From 3f5d8f435e5f93c5cc36bc881e0374386f52455c Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Tue, 2 Jan 2024 16:23:47 -0800 Subject: [PATCH 1/7] gen Signed-off-by: Katrina Rogan --- .../gen/pb-cpp/flyteidl/admin/common.pb.cc | 404 +- .../gen/pb-cpp/flyteidl/admin/common.pb.h | 204 + .../gen/pb-cpp/flyteidl/admin/execution.pb.cc | 326 +- .../gen/pb-cpp/flyteidl/admin/execution.pb.h | 68 + .../pb-cpp/flyteidl/admin/launch_plan.pb.cc | 87 +- .../pb-cpp/flyteidl/admin/launch_plan.pb.h | 68 + .../flyteidl/admin/matchable_resource.pb.cc | 108 +- .../flyteidl/admin/matchable_resource.pb.h | 68 + .../gen/pb-cpp/flyteidl/admin/project.pb.cc | 543 +- .../gen/pb-cpp/flyteidl/admin/project.pb.h | 350 +- .../flyteidl/admin/project_attributes.pb.cc | 267 +- .../flyteidl/admin/project_attributes.pb.h | 204 + .../admin/project_domain_attributes.pb.cc | 277 +- .../admin/project_domain_attributes.pb.h | 204 + .../flyteidl/admin/workflow_attributes.pb.cc | 273 +- .../flyteidl/admin/workflow_attributes.pb.h | 204 + .../gen/pb-cpp/flyteidl/core/identifier.pb.cc | 193 +- .../gen/pb-cpp/flyteidl/core/identifier.pb.h | 136 + .../flyteidl/datacatalog/datacatalog.pb.cc | 386 +- .../flyteidl/datacatalog/datacatalog.pb.h | 248 + .../pb-cpp/flyteidl/service/admin.grpc.pb.h | 18 +- .../gen/pb-cpp/flyteidl/service/admin.pb.cc | 598 +- .../service/external_plugin_service.pb.cc | 54 +- .../service/external_plugin_service.pb.h | 1 - .../gen/pb-go/flyteidl/admin/common.pb.go | 186 +- .../gen/pb-go/flyteidl/admin/execution.pb.go | 252 +- .../pb-go/flyteidl/admin/launch_plan.pb.go | 164 +- .../flyteidl/admin/matchable_resource.pb.go | 200 +- .../gen/pb-go/flyteidl/admin/project.pb.go | 150 +- .../flyteidl/admin/project_attributes.pb.go | 96 +- .../admin/project_domain_attributes.pb.go | 100 +- .../flyteidl/admin/workflow_attributes.pb.go | 100 +- .../flyteidl/artifact/artifacts.swagger.json | 15 + .../gen/pb-go/flyteidl/core/identifier.pb.go | 85 +- .../gen/pb-go/flyteidl/core/workflow.pb.go | 2 +- .../flyteidl/datacatalog/datacatalog.pb.go | 257 +- .../gen/pb-go/flyteidl/service/admin.pb.go | 304 +- .../gen/pb-go/flyteidl/service/admin.pb.gw.go | 6626 +++++++++-- .../pb-go/flyteidl/service/admin.swagger.json | 5905 ++++++++-- .../pb-go/flyteidl/service/agent.swagger.json | 8 + .../flyteidl/service/dataproxy.swagger.json | 4 + .../service/external_plugin_service.pb.go | 70 +- .../external_plugin_service.swagger.json | 4 + .../flyteidl/service/flyteadmin/README.md | 56 +- .../service/flyteadmin/api/swagger.yaml | 4883 ++++++-- .../service/flyteadmin/api_admin_service.go | 7343 ++++++++++-- .../model_admin_execution_create_request.go | 2 + ...dmin_matchable_attributes_configuration.go | 4 +- .../model_admin_named_entity_identifier.go | 2 + .../service/flyteadmin/model_admin_project.go | 4 +- .../model_admin_project_attributes.go | 2 + ...admin_project_attributes_delete_request.go | 2 + .../model_admin_project_domain_attributes.go | 2 + ...roject_domain_attributes_delete_request.go | 2 + .../model_admin_project_identifier.go | 17 + .../model_admin_workflow_attributes.go | 2 + ...dmin_workflow_attributes_delete_request.go | 2 + .../flyteadmin/model_core_array_node.go | 2 +- .../flyteadmin/model_core_identifier.go | 2 + ...odel_core_workflow_execution_identifier.go | 2 + .../gen/pb-go/flyteidl/service/openapi.go | 4 +- .../flyteidl/service/signal.swagger.json | 11 + .../gen/pb-java/datacatalog/Datacatalog.java | 684 +- .../gen/pb-java/flyteidl/admin/Common.java | 655 +- .../flyteidl/admin/ExecutionOuterClass.java | 381 +- .../flyteidl/admin/LaunchPlanOuterClass.java | 190 +- .../admin/MatchableResourceOuterClass.java | 211 +- .../admin/ProjectAttributesOuterClass.java | 556 +- .../ProjectDomainAttributesOuterClass.java | 566 +- .../flyteidl/admin/ProjectOuterClass.java | 1119 +- .../admin/WorkflowAttributesOuterClass.java | 562 +- .../flyteidl/core/IdentifierOuterClass.java | 385 +- .../gen/pb-java/flyteidl/core/Workflow.java | 10 +- .../gen/pb-java/flyteidl/service/Admin.java | 596 +- .../ExternalPluginServiceOuterClass.java | 49 +- flyteidl/gen/pb-js/flyteidl.d.ts | 166 + flyteidl/gen/pb-js/flyteidl.js | 435 + .../pb_python/flyteidl/admin/common_pb2.py | 112 +- .../pb_python/flyteidl/admin/common_pb2.pyi | 18 +- .../pb_python/flyteidl/admin/execution_pb2.py | 100 +- .../flyteidl/admin/execution_pb2.pyi | 6 +- .../flyteidl/admin/launch_plan_pb2.py | 8 +- .../flyteidl/admin/launch_plan_pb2.pyi | 6 +- .../flyteidl/admin/matchable_resource_pb2.py | 16 +- .../flyteidl/admin/matchable_resource_pb2.pyi | 6 +- .../flyteidl/admin/project_attributes_pb2.py | 28 +- .../flyteidl/admin/project_attributes_pb2.pyi | 18 +- .../admin/project_domain_attributes_pb2.py | 28 +- .../admin/project_domain_attributes_pb2.pyi | 18 +- .../pb_python/flyteidl/admin/project_pb2.py | 34 +- .../pb_python/flyteidl/admin/project_pb2.pyi | 14 +- .../flyteidl/admin/workflow_attributes_pb2.py | 28 +- .../admin/workflow_attributes_pb2.pyi | 18 +- .../pb_python/flyteidl/core/identifier_pb2.py | 24 +- .../flyteidl/core/identifier_pb2.pyi | 12 +- .../flyteidl/datacatalog/datacatalog_pb2.py | 74 +- .../flyteidl/datacatalog/datacatalog_pb2.pyi | 14 +- .../pb_python/flyteidl/service/admin_pb2.py | 82 +- .../flyteidl/service/admin_pb2_grpc.py | 6 +- .../service/external_plugin_service_pb2.py | 35 +- .../service/external_plugin_service_pb2.pyi | 1 - .../flyteidl/service/flyteadmin/README.md | 56 +- .../service/flyteadmin/flyteadmin/__init__.py | 1 + .../flyteadmin/api/admin_service_api.py | 9801 ++++++++++++++--- .../flyteadmin/flyteadmin/models/__init__.py | 1 + .../models/admin_execution_create_request.py | 34 +- ...dmin_matchable_attributes_configuration.py | 34 +- .../models/admin_named_entity_identifier.py | 34 +- .../flyteadmin/models/admin_project.py | 39 +- .../models/admin_project_attributes.py | 34 +- ...admin_project_attributes_delete_request.py | 34 +- .../models/admin_project_domain_attributes.py | 34 +- ...roject_domain_attributes_delete_request.py | 34 +- .../models/admin_project_identifier.py | 145 + .../models/admin_workflow_attributes.py | 34 +- ...dmin_workflow_attributes_delete_request.py | 34 +- .../flyteadmin/models/core_array_node.py | 4 +- .../flyteadmin/models/core_identifier.py | 34 +- .../core_workflow_execution_identifier.py | 34 +- .../test/test_admin_project_identifier.py | 40 + .../flyteadmin/test/test_admin_service_api.py | 317 +- flyteidl/gen/pb_rust/datacatalog.rs | 11 +- flyteidl/gen/pb_rust/flyteidl.admin.rs | 66 +- flyteidl/gen/pb_rust/flyteidl.core.rs | 8 +- flyteidl/go.mod | 2 + flyteidl/protos/flyteidl/admin/common.proto | 9 + .../protos/flyteidl/admin/execution.proto | 3 + .../protos/flyteidl/admin/launch_plan.proto | 5 +- .../flyteidl/admin/matchable_resource.proto | 7 +- flyteidl/protos/flyteidl/admin/project.proto | 14 +- .../flyteidl/admin/project_attributes.proto | 9 + .../admin/project_domain_attributes.proto | 11 +- .../flyteidl/admin/workflow_attributes.proto | 9 + .../protos/flyteidl/core/identifier.proto | 6 + flyteidl/protos/flyteidl/core/workflow.proto | 2 +- .../flyteidl/datacatalog/datacatalog.proto | 7 + flyteidl/protos/flyteidl/service/admin.proto | 177 +- .../service/external_plugin_service.proto | 1 - .../catalog/async_client_impl_test.go | 4 +- .../nodes/catalog/datacatalog/transformer.go | 16 +- .../catalog/datacatalog/transformer_test.go | 1 + 141 files changed, 41904 insertions(+), 8674 deletions(-) create mode 100644 flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_identifier.go create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_identifier.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_identifier.py diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.cc index 982f3fb6b7..60e9f6862c 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.cc @@ -560,6 +560,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fcommon_2eproto:: PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityIdentifier, project_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityIdentifier, domain_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityIdentifier, name_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityIdentifier, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityMetadata, _internal_metadata_), ~0u, // no _extensions_ @@ -593,6 +594,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fcommon_2eproto:: PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityIdentifierListRequest, token_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityIdentifierListRequest, sort_by_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityIdentifierListRequest, filters_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityIdentifierListRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityListRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -605,6 +607,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fcommon_2eproto:: PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityListRequest, token_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityListRequest, sort_by_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityListRequest, filters_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityListRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NamedEntityIdentifierList, _internal_metadata_), ~0u, // no _extensions_ @@ -750,31 +753,31 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fcommon_2eproto:: }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::NamedEntityIdentifier)}, - { 8, -1, sizeof(::flyteidl::admin::NamedEntityMetadata)}, - { 15, -1, sizeof(::flyteidl::admin::NamedEntity)}, - { 23, -1, sizeof(::flyteidl::admin::Sort)}, - { 30, -1, sizeof(::flyteidl::admin::NamedEntityIdentifierListRequest)}, - { 41, -1, sizeof(::flyteidl::admin::NamedEntityListRequest)}, - { 53, -1, sizeof(::flyteidl::admin::NamedEntityIdentifierList)}, - { 60, -1, sizeof(::flyteidl::admin::NamedEntityList)}, - { 67, -1, sizeof(::flyteidl::admin::NamedEntityGetRequest)}, - { 74, -1, sizeof(::flyteidl::admin::NamedEntityUpdateRequest)}, - { 82, -1, sizeof(::flyteidl::admin::NamedEntityUpdateResponse)}, - { 87, -1, sizeof(::flyteidl::admin::ObjectGetRequest)}, - { 93, -1, sizeof(::flyteidl::admin::ResourceListRequest)}, - { 103, -1, sizeof(::flyteidl::admin::EmailNotification)}, - { 109, -1, sizeof(::flyteidl::admin::PagerDutyNotification)}, - { 115, -1, sizeof(::flyteidl::admin::SlackNotification)}, - { 121, -1, sizeof(::flyteidl::admin::Notification)}, - { 131, -1, sizeof(::flyteidl::admin::UrlBlob)}, - { 138, 145, sizeof(::flyteidl::admin::Labels_ValuesEntry_DoNotUse)}, - { 147, -1, sizeof(::flyteidl::admin::Labels)}, - { 153, 160, sizeof(::flyteidl::admin::Annotations_ValuesEntry_DoNotUse)}, - { 162, -1, sizeof(::flyteidl::admin::Annotations)}, - { 168, -1, sizeof(::flyteidl::admin::Envs)}, - { 174, -1, sizeof(::flyteidl::admin::AuthRole)}, - { 181, -1, sizeof(::flyteidl::admin::RawOutputDataConfig)}, - { 187, -1, sizeof(::flyteidl::admin::FlyteURLs)}, + { 9, -1, sizeof(::flyteidl::admin::NamedEntityMetadata)}, + { 16, -1, sizeof(::flyteidl::admin::NamedEntity)}, + { 24, -1, sizeof(::flyteidl::admin::Sort)}, + { 31, -1, sizeof(::flyteidl::admin::NamedEntityIdentifierListRequest)}, + { 43, -1, sizeof(::flyteidl::admin::NamedEntityListRequest)}, + { 56, -1, sizeof(::flyteidl::admin::NamedEntityIdentifierList)}, + { 63, -1, sizeof(::flyteidl::admin::NamedEntityList)}, + { 70, -1, sizeof(::flyteidl::admin::NamedEntityGetRequest)}, + { 77, -1, sizeof(::flyteidl::admin::NamedEntityUpdateRequest)}, + { 85, -1, sizeof(::flyteidl::admin::NamedEntityUpdateResponse)}, + { 90, -1, sizeof(::flyteidl::admin::ObjectGetRequest)}, + { 96, -1, sizeof(::flyteidl::admin::ResourceListRequest)}, + { 106, -1, sizeof(::flyteidl::admin::EmailNotification)}, + { 112, -1, sizeof(::flyteidl::admin::PagerDutyNotification)}, + { 118, -1, sizeof(::flyteidl::admin::SlackNotification)}, + { 124, -1, sizeof(::flyteidl::admin::Notification)}, + { 134, -1, sizeof(::flyteidl::admin::UrlBlob)}, + { 141, 148, sizeof(::flyteidl::admin::Labels_ValuesEntry_DoNotUse)}, + { 150, -1, sizeof(::flyteidl::admin::Labels)}, + { 156, 163, sizeof(::flyteidl::admin::Annotations_ValuesEntry_DoNotUse)}, + { 165, -1, sizeof(::flyteidl::admin::Annotations)}, + { 171, -1, sizeof(::flyteidl::admin::Envs)}, + { 177, -1, sizeof(::flyteidl::admin::AuthRole)}, + { 184, -1, sizeof(::flyteidl::admin::RawOutputDataConfig)}, + { 190, -1, sizeof(::flyteidl::admin::FlyteURLs)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -817,78 +820,78 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2fcommon_2eproto[] = "admin\032\035flyteidl/core/execution.proto\032\036fl" "yteidl/core/identifier.proto\032\034flyteidl/c" "ore/literals.proto\032\037google/protobuf/time" - "stamp.proto\"F\n\025NamedEntityIdentifier\022\017\n\007" + "stamp.proto\"S\n\025NamedEntityIdentifier\022\017\n\007" "project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\014\n\004name\030\003 " - "\001(\t\"[\n\023NamedEntityMetadata\022\023\n\013descriptio" - "n\030\001 \001(\t\022/\n\005state\030\002 \001(\0162 .flyteidl.admin." - "NamedEntityState\"\253\001\n\013NamedEntity\0222\n\rreso" - "urce_type\030\001 \001(\0162\033.flyteidl.core.Resource" - "Type\0221\n\002id\030\002 \001(\0132%.flyteidl.admin.NamedE" - "ntityIdentifier\0225\n\010metadata\030\003 \001(\0132#.flyt" - "eidl.admin.NamedEntityMetadata\"r\n\004Sort\022\013" - "\n\003key\030\001 \001(\t\0221\n\tdirection\030\002 \001(\0162\036.flyteid" - "l.admin.Sort.Direction\"*\n\tDirection\022\016\n\nD" - "ESCENDING\020\000\022\r\n\tASCENDING\020\001\"\231\001\n NamedEnti" - "tyIdentifierListRequest\022\017\n\007project\030\001 \001(\t" - "\022\016\n\006domain\030\002 \001(\t\022\r\n\005limit\030\003 \001(\r\022\r\n\005token" + "\001(\t\022\013\n\003org\030\004 \001(\t\"[\n\023NamedEntityMetadata\022" + "\023\n\013description\030\001 \001(\t\022/\n\005state\030\002 \001(\0162 .fl" + "yteidl.admin.NamedEntityState\"\253\001\n\013NamedE" + "ntity\0222\n\rresource_type\030\001 \001(\0162\033.flyteidl." + "core.ResourceType\0221\n\002id\030\002 \001(\0132%.flyteidl" + ".admin.NamedEntityIdentifier\0225\n\010metadata" + "\030\003 \001(\0132#.flyteidl.admin.NamedEntityMetad" + "ata\"r\n\004Sort\022\013\n\003key\030\001 \001(\t\0221\n\tdirection\030\002 " + "\001(\0162\036.flyteidl.admin.Sort.Direction\"*\n\tD" + "irection\022\016\n\nDESCENDING\020\000\022\r\n\tASCENDING\020\001\"" + "\246\001\n NamedEntityIdentifierListRequest\022\017\n\007" + "project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\r\n\005limit\030\003" + " \001(\r\022\r\n\005token\030\004 \001(\t\022%\n\007sort_by\030\005 \001(\0132\024.f" + "lyteidl.admin.Sort\022\017\n\007filters\030\006 \001(\t\022\013\n\003o" + "rg\030\007 \001(\t\"\320\001\n\026NamedEntityListRequest\0222\n\rr" + "esource_type\030\001 \001(\0162\033.flyteidl.core.Resou" + "rceType\022\017\n\007project\030\002 \001(\t\022\016\n\006domain\030\003 \001(\t" + "\022\r\n\005limit\030\004 \001(\r\022\r\n\005token\030\005 \001(\t\022%\n\007sort_b" + "y\030\006 \001(\0132\024.flyteidl.admin.Sort\022\017\n\007filters" + "\030\007 \001(\t\022\013\n\003org\030\010 \001(\t\"c\n\031NamedEntityIdenti" + "fierList\0227\n\010entities\030\001 \003(\0132%.flyteidl.ad" + "min.NamedEntityIdentifier\022\r\n\005token\030\002 \001(\t" + "\"O\n\017NamedEntityList\022-\n\010entities\030\001 \003(\0132\033." + "flyteidl.admin.NamedEntity\022\r\n\005token\030\002 \001(" + "\t\"~\n\025NamedEntityGetRequest\0222\n\rresource_t" + "ype\030\001 \001(\0162\033.flyteidl.core.ResourceType\0221" + "\n\002id\030\002 \001(\0132%.flyteidl.admin.NamedEntityI" + "dentifier\"\270\001\n\030NamedEntityUpdateRequest\0222" + "\n\rresource_type\030\001 \001(\0162\033.flyteidl.core.Re" + "sourceType\0221\n\002id\030\002 \001(\0132%.flyteidl.admin." + "NamedEntityIdentifier\0225\n\010metadata\030\003 \001(\0132" + "#.flyteidl.admin.NamedEntityMetadata\"\033\n\031" + "NamedEntityUpdateResponse\"9\n\020ObjectGetRe" + "quest\022%\n\002id\030\001 \001(\0132\031.flyteidl.core.Identi" + "fier\"\236\001\n\023ResourceListRequest\0221\n\002id\030\001 \001(\013" + "2%.flyteidl.admin.NamedEntityIdentifier\022" + "\r\n\005limit\030\002 \001(\r\022\r\n\005token\030\003 \001(\t\022\017\n\007filters" "\030\004 \001(\t\022%\n\007sort_by\030\005 \001(\0132\024.flyteidl.admin" - ".Sort\022\017\n\007filters\030\006 \001(\t\"\303\001\n\026NamedEntityLi" - "stRequest\0222\n\rresource_type\030\001 \001(\0162\033.flyte" - "idl.core.ResourceType\022\017\n\007project\030\002 \001(\t\022\016" - "\n\006domain\030\003 \001(\t\022\r\n\005limit\030\004 \001(\r\022\r\n\005token\030\005" - " \001(\t\022%\n\007sort_by\030\006 \001(\0132\024.flyteidl.admin.S" - "ort\022\017\n\007filters\030\007 \001(\t\"c\n\031NamedEntityIdent" - "ifierList\0227\n\010entities\030\001 \003(\0132%.flyteidl.a" - "dmin.NamedEntityIdentifier\022\r\n\005token\030\002 \001(" - "\t\"O\n\017NamedEntityList\022-\n\010entities\030\001 \003(\0132\033" - ".flyteidl.admin.NamedEntity\022\r\n\005token\030\002 \001" - "(\t\"~\n\025NamedEntityGetRequest\0222\n\rresource_" - "type\030\001 \001(\0162\033.flyteidl.core.ResourceType\022" - "1\n\002id\030\002 \001(\0132%.flyteidl.admin.NamedEntity" - "Identifier\"\270\001\n\030NamedEntityUpdateRequest\022" - "2\n\rresource_type\030\001 \001(\0162\033.flyteidl.core.R" - "esourceType\0221\n\002id\030\002 \001(\0132%.flyteidl.admin" - ".NamedEntityIdentifier\0225\n\010metadata\030\003 \001(\013" - "2#.flyteidl.admin.NamedEntityMetadata\"\033\n" - "\031NamedEntityUpdateResponse\"9\n\020ObjectGetR" - "equest\022%\n\002id\030\001 \001(\0132\031.flyteidl.core.Ident" - "ifier\"\236\001\n\023ResourceListRequest\0221\n\002id\030\001 \001(" - "\0132%.flyteidl.admin.NamedEntityIdentifier" - "\022\r\n\005limit\030\002 \001(\r\022\r\n\005token\030\003 \001(\t\022\017\n\007filter" - "s\030\004 \001(\t\022%\n\007sort_by\030\005 \001(\0132\024.flyteidl.admi" - "n.Sort\"-\n\021EmailNotification\022\030\n\020recipient" - "s_email\030\001 \003(\t\"1\n\025PagerDutyNotification\022\030" - "\n\020recipients_email\030\001 \003(\t\"-\n\021SlackNotific" - "ation\022\030\n\020recipients_email\030\001 \003(\t\"\363\001\n\014Noti" - "fication\0226\n\006phases\030\001 \003(\0162&.flyteidl.core" - ".WorkflowExecution.Phase\0222\n\005email\030\002 \001(\0132" - "!.flyteidl.admin.EmailNotificationH\000\022;\n\n" - "pager_duty\030\003 \001(\0132%.flyteidl.admin.PagerD" - "utyNotificationH\000\0222\n\005slack\030\004 \001(\0132!.flyte" - "idl.admin.SlackNotificationH\000B\006\n\004type\")\n" - "\007UrlBlob\022\013\n\003url\030\001 \001(\t\022\r\n\005bytes\030\002 \001(\003:\002\030\001" - "\"k\n\006Labels\0222\n\006values\030\001 \003(\0132\".flyteidl.ad" - "min.Labels.ValuesEntry\032-\n\013ValuesEntry\022\013\n" - "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"u\n\013Annotat" - "ions\0227\n\006values\030\001 \003(\0132\'.flyteidl.admin.An" - "notations.ValuesEntry\032-\n\013ValuesEntry\022\013\n\003" - "key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"3\n\004Envs\022+\n\006" - "values\030\001 \003(\0132\033.flyteidl.core.KeyValuePai" - "r\"N\n\010AuthRole\022\032\n\022assumable_iam_role\030\001 \001(" - "\t\022\"\n\032kubernetes_service_account\030\002 \001(\t:\002\030" - "\001\"5\n\023RawOutputDataConfig\022\036\n\026output_locat" - "ion_prefix\030\001 \001(\t\":\n\tFlyteURLs\022\016\n\006inputs\030" - "\001 \001(\t\022\017\n\007outputs\030\002 \001(\t\022\014\n\004deck\030\003 \001(\t*\\\n\020" - "NamedEntityState\022\027\n\023NAMED_ENTITY_ACTIVE\020" - "\000\022\031\n\025NAMED_ENTITY_ARCHIVED\020\001\022\024\n\020SYSTEM_G" - "ENERATED\020\002B=Z;github.com/flyteorg/flyte/" - "flyteidl/gen/pb-go/flyteidl/adminb\006proto" - "3" + ".Sort\"-\n\021EmailNotification\022\030\n\020recipients" + "_email\030\001 \003(\t\"1\n\025PagerDutyNotification\022\030\n" + "\020recipients_email\030\001 \003(\t\"-\n\021SlackNotifica" + "tion\022\030\n\020recipients_email\030\001 \003(\t\"\363\001\n\014Notif" + "ication\0226\n\006phases\030\001 \003(\0162&.flyteidl.core." + "WorkflowExecution.Phase\0222\n\005email\030\002 \001(\0132!" + ".flyteidl.admin.EmailNotificationH\000\022;\n\np" + "ager_duty\030\003 \001(\0132%.flyteidl.admin.PagerDu" + "tyNotificationH\000\0222\n\005slack\030\004 \001(\0132!.flytei" + "dl.admin.SlackNotificationH\000B\006\n\004type\")\n\007" + "UrlBlob\022\013\n\003url\030\001 \001(\t\022\r\n\005bytes\030\002 \001(\003:\002\030\001\"" + "k\n\006Labels\0222\n\006values\030\001 \003(\0132\".flyteidl.adm" + "in.Labels.ValuesEntry\032-\n\013ValuesEntry\022\013\n\003" + "key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"u\n\013Annotati" + "ons\0227\n\006values\030\001 \003(\0132\'.flyteidl.admin.Ann" + "otations.ValuesEntry\032-\n\013ValuesEntry\022\013\n\003k" + "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"3\n\004Envs\022+\n\006v" + "alues\030\001 \003(\0132\033.flyteidl.core.KeyValuePair" + "\"N\n\010AuthRole\022\032\n\022assumable_iam_role\030\001 \001(\t" + "\022\"\n\032kubernetes_service_account\030\002 \001(\t:\002\030\001" + "\"5\n\023RawOutputDataConfig\022\036\n\026output_locati" + "on_prefix\030\001 \001(\t\":\n\tFlyteURLs\022\016\n\006inputs\030\001" + " \001(\t\022\017\n\007outputs\030\002 \001(\t\022\014\n\004deck\030\003 \001(\t*\\\n\020N" + "amedEntityState\022\027\n\023NAMED_ENTITY_ACTIVE\020\000" + "\022\031\n\025NAMED_ENTITY_ARCHIVED\020\001\022\024\n\020SYSTEM_GE" + "NERATED\020\002B=Z;github.com/flyteorg/flyte/f" + "lyteidl/gen/pb-go/flyteidl/adminb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fcommon_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fcommon_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fcommon_2eproto, - "flyteidl/admin/common.proto", &assign_descriptors_table_flyteidl_2fadmin_2fcommon_2eproto, 2801, + "flyteidl/admin/common.proto", &assign_descriptors_table_flyteidl_2fadmin_2fcommon_2eproto, 2840, }; void AddDescriptors_flyteidl_2fadmin_2fcommon_2eproto() { @@ -955,6 +958,7 @@ class NamedEntityIdentifier::HasBitSetters { const int NamedEntityIdentifier::kProjectFieldNumber; const int NamedEntityIdentifier::kDomainFieldNumber; const int NamedEntityIdentifier::kNameFieldNumber; +const int NamedEntityIdentifier::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 NamedEntityIdentifier::NamedEntityIdentifier() @@ -978,6 +982,10 @@ NamedEntityIdentifier::NamedEntityIdentifier(const NamedEntityIdentifier& from) if (from.name().size() > 0) { name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } // @@protoc_insertion_point(copy_constructor:flyteidl.admin.NamedEntityIdentifier) } @@ -987,6 +995,7 @@ void NamedEntityIdentifier::SharedCtor() { project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } NamedEntityIdentifier::~NamedEntityIdentifier() { @@ -998,6 +1007,7 @@ void NamedEntityIdentifier::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void NamedEntityIdentifier::SetCachedSize(int size) const { @@ -1018,6 +1028,7 @@ void NamedEntityIdentifier::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); _internal_metadata_.Clear(); } @@ -1082,6 +1093,22 @@ const char* NamedEntityIdentifier::_InternalParse(const char* begin, const char* ptr += size; break; } + // string org = 4; + case 4: { + if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.NamedEntityIdentifier.org"); + object = msg->mutable_org(); + 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) { @@ -1161,6 +1188,21 @@ bool NamedEntityIdentifier::MergePartialFromCodedStream( break; } + // string org = 4; + case 4: { + if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.NamedEntityIdentifier.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -1218,6 +1260,16 @@ void NamedEntityIdentifier::SerializeWithCachedSizes( 3, this->name(), output); } + // string org = 4; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.NamedEntityIdentifier.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 4, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -1264,6 +1316,17 @@ ::google::protobuf::uint8* NamedEntityIdentifier::InternalSerializeWithCachedSiz 3, this->name(), target); } + // string org = 4; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.NamedEntityIdentifier.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 4, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -1306,6 +1369,13 @@ size_t NamedEntityIdentifier::ByteSizeLong() const { this->name()); } + // string org = 4; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -1345,6 +1415,10 @@ void NamedEntityIdentifier::MergeFrom(const NamedEntityIdentifier& from) { name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } } void NamedEntityIdentifier::CopyFrom(const ::google::protobuf::Message& from) { @@ -1378,6 +1452,8 @@ void NamedEntityIdentifier::InternalSwap(NamedEntityIdentifier* other) { GetArenaNoVirtual()); name_.Swap(&other->name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); } ::google::protobuf::Metadata NamedEntityIdentifier::GetMetadata() const { @@ -2500,6 +2576,7 @@ const int NamedEntityIdentifierListRequest::kLimitFieldNumber; const int NamedEntityIdentifierListRequest::kTokenFieldNumber; const int NamedEntityIdentifierListRequest::kSortByFieldNumber; const int NamedEntityIdentifierListRequest::kFiltersFieldNumber; +const int NamedEntityIdentifierListRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 NamedEntityIdentifierListRequest::NamedEntityIdentifierListRequest() @@ -2527,6 +2604,10 @@ NamedEntityIdentifierListRequest::NamedEntityIdentifierListRequest(const NamedEn if (from.filters().size() > 0) { filters_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filters_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_sort_by()) { sort_by_ = new ::flyteidl::admin::Sort(*from.sort_by_); } else { @@ -2543,6 +2624,7 @@ void NamedEntityIdentifierListRequest::SharedCtor() { domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); filters_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); ::memset(&sort_by_, 0, static_cast( reinterpret_cast(&limit_) - reinterpret_cast(&sort_by_)) + sizeof(limit_)); @@ -2558,6 +2640,7 @@ void NamedEntityIdentifierListRequest::SharedDtor() { domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); filters_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete sort_by_; } @@ -2580,6 +2663,7 @@ void NamedEntityIdentifierListRequest::Clear() { domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); filters_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && sort_by_ != nullptr) { delete sort_by_; } @@ -2685,6 +2769,22 @@ const char* NamedEntityIdentifierListRequest::_InternalParse(const char* begin, ptr += size; break; } + // string org = 7; + case 7: { + if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.NamedEntityIdentifierListRequest.org"); + object = msg->mutable_org(); + 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) { @@ -2803,6 +2903,21 @@ bool NamedEntityIdentifierListRequest::MergePartialFromCodedStream( break; } + // string org = 7; + case 7: { + if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.NamedEntityIdentifierListRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -2881,6 +2996,16 @@ void NamedEntityIdentifierListRequest::SerializeWithCachedSizes( 6, this->filters(), output); } + // string org = 7; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.NamedEntityIdentifierListRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 7, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -2950,6 +3075,17 @@ ::google::protobuf::uint8* NamedEntityIdentifierListRequest::InternalSerializeWi 6, this->filters(), target); } + // string org = 7; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.NamedEntityIdentifierListRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 7, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -2999,6 +3135,13 @@ size_t NamedEntityIdentifierListRequest::ByteSizeLong() const { this->filters()); } + // string org = 7; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.Sort sort_by = 5; if (this->has_sort_by()) { total_size += 1 + @@ -3056,6 +3199,10 @@ void NamedEntityIdentifierListRequest::MergeFrom(const NamedEntityIdentifierList filters_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filters_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_sort_by()) { mutable_sort_by()->::flyteidl::admin::Sort::MergeFrom(from.sort_by()); } @@ -3097,6 +3244,8 @@ void NamedEntityIdentifierListRequest::InternalSwap(NamedEntityIdentifierListReq GetArenaNoVirtual()); filters_.Swap(&other->filters_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(sort_by_, other->sort_by_); swap(limit_, other->limit_); } @@ -3130,6 +3279,7 @@ const int NamedEntityListRequest::kLimitFieldNumber; const int NamedEntityListRequest::kTokenFieldNumber; const int NamedEntityListRequest::kSortByFieldNumber; const int NamedEntityListRequest::kFiltersFieldNumber; +const int NamedEntityListRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 NamedEntityListRequest::NamedEntityListRequest() @@ -3157,6 +3307,10 @@ NamedEntityListRequest::NamedEntityListRequest(const NamedEntityListRequest& fro if (from.filters().size() > 0) { filters_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filters_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_sort_by()) { sort_by_ = new ::flyteidl::admin::Sort(*from.sort_by_); } else { @@ -3175,6 +3329,7 @@ void NamedEntityListRequest::SharedCtor() { domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); filters_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); ::memset(&sort_by_, 0, static_cast( reinterpret_cast(&limit_) - reinterpret_cast(&sort_by_)) + sizeof(limit_)); @@ -3190,6 +3345,7 @@ void NamedEntityListRequest::SharedDtor() { domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); filters_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete sort_by_; } @@ -3212,6 +3368,7 @@ void NamedEntityListRequest::Clear() { domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); filters_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && sort_by_ != nullptr) { delete sort_by_; } @@ -3327,6 +3484,22 @@ const char* NamedEntityListRequest::_InternalParse(const char* begin, const char ptr += size; break; } + // string org = 8; + case 8: { + if (static_cast<::google::protobuf::uint8>(tag) != 66) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.NamedEntityListRequest.org"); + object = msg->mutable_org(); + 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) { @@ -3459,6 +3632,21 @@ bool NamedEntityListRequest::MergePartialFromCodedStream( break; } + // string org = 8; + case 8: { + if (static_cast< ::google::protobuf::uint8>(tag) == (66 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.NamedEntityListRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -3543,6 +3731,16 @@ void NamedEntityListRequest::SerializeWithCachedSizes( 7, this->filters(), output); } + // string org = 8; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.NamedEntityListRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 8, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -3618,6 +3816,17 @@ ::google::protobuf::uint8* NamedEntityListRequest::InternalSerializeWithCachedSi 7, this->filters(), target); } + // string org = 8; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.NamedEntityListRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 8, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -3667,6 +3876,13 @@ size_t NamedEntityListRequest::ByteSizeLong() const { this->filters()); } + // string org = 8; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.Sort sort_by = 6; if (this->has_sort_by()) { total_size += 1 + @@ -3730,6 +3946,10 @@ void NamedEntityListRequest::MergeFrom(const NamedEntityListRequest& from) { filters_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filters_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_sort_by()) { mutable_sort_by()->::flyteidl::admin::Sort::MergeFrom(from.sort_by()); } @@ -3774,6 +3994,8 @@ void NamedEntityListRequest::InternalSwap(NamedEntityListRequest* other) { GetArenaNoVirtual()); filters_.Swap(&other->filters_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(sort_by_, other->sort_by_); swap(resource_type_, other->resource_type_); swap(limit_, other->limit_); diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.h index b2eb1cb4e5..a553cfad4a 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.h @@ -353,6 +353,20 @@ class NamedEntityIdentifier final : ::std::string* release_name(); void set_allocated_name(::std::string* name); + // string org = 4; + void clear_org(); + static const int kOrgFieldNumber = 4; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // @@protoc_insertion_point(class_scope:flyteidl.admin.NamedEntityIdentifier) private: class HasBitSetters; @@ -361,6 +375,7 @@ class NamedEntityIdentifier final : ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr name_; + ::google::protobuf::internal::ArenaStringPtr org_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fcommon_2eproto; }; @@ -929,6 +944,20 @@ class NamedEntityIdentifierListRequest final : ::std::string* release_filters(); void set_allocated_filters(::std::string* filters); + // string org = 7; + void clear_org(); + static const int kOrgFieldNumber = 7; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.Sort sort_by = 5; bool has_sort_by() const; void clear_sort_by(); @@ -953,6 +982,7 @@ class NamedEntityIdentifierListRequest final : ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr token_; ::google::protobuf::internal::ArenaStringPtr filters_; + ::google::protobuf::internal::ArenaStringPtr org_; ::flyteidl::admin::Sort* sort_by_; ::google::protobuf::uint32 limit_; mutable ::google::protobuf::internal::CachedSize _cached_size_; @@ -1111,6 +1141,20 @@ class NamedEntityListRequest final : ::std::string* release_filters(); void set_allocated_filters(::std::string* filters); + // string org = 8; + void clear_org(); + static const int kOrgFieldNumber = 8; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.Sort sort_by = 6; bool has_sort_by() const; void clear_sort_by(); @@ -1141,6 +1185,7 @@ class NamedEntityListRequest final : ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr token_; ::google::protobuf::internal::ArenaStringPtr filters_; + ::google::protobuf::internal::ArenaStringPtr org_; ::flyteidl::admin::Sort* sort_by_; int resource_type_; ::google::protobuf::uint32 limit_; @@ -3710,6 +3755,59 @@ inline void NamedEntityIdentifier::set_allocated_name(::std::string* name) { // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.NamedEntityIdentifier.name) } +// string org = 4; +inline void NamedEntityIdentifier::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& NamedEntityIdentifier::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.NamedEntityIdentifier.org) + return org_.GetNoArena(); +} +inline void NamedEntityIdentifier::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.NamedEntityIdentifier.org) +} +#if LANG_CXX11 +inline void NamedEntityIdentifier::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.NamedEntityIdentifier.org) +} +#endif +inline void NamedEntityIdentifier::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.NamedEntityIdentifier.org) +} +inline void NamedEntityIdentifier::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.NamedEntityIdentifier.org) +} +inline ::std::string* NamedEntityIdentifier::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.NamedEntityIdentifier.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* NamedEntityIdentifier::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.NamedEntityIdentifier.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void NamedEntityIdentifier::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.NamedEntityIdentifier.org) +} + // ------------------------------------------------------------------- // NamedEntityMetadata @@ -4253,6 +4351,59 @@ inline void NamedEntityIdentifierListRequest::set_allocated_filters(::std::strin // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.NamedEntityIdentifierListRequest.filters) } +// string org = 7; +inline void NamedEntityIdentifierListRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& NamedEntityIdentifierListRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.NamedEntityIdentifierListRequest.org) + return org_.GetNoArena(); +} +inline void NamedEntityIdentifierListRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.NamedEntityIdentifierListRequest.org) +} +#if LANG_CXX11 +inline void NamedEntityIdentifierListRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.NamedEntityIdentifierListRequest.org) +} +#endif +inline void NamedEntityIdentifierListRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.NamedEntityIdentifierListRequest.org) +} +inline void NamedEntityIdentifierListRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.NamedEntityIdentifierListRequest.org) +} +inline ::std::string* NamedEntityIdentifierListRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.NamedEntityIdentifierListRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* NamedEntityIdentifierListRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.NamedEntityIdentifierListRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void NamedEntityIdentifierListRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.NamedEntityIdentifierListRequest.org) +} + // ------------------------------------------------------------------- // NamedEntityListRequest @@ -4548,6 +4699,59 @@ inline void NamedEntityListRequest::set_allocated_filters(::std::string* filters // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.NamedEntityListRequest.filters) } +// string org = 8; +inline void NamedEntityListRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& NamedEntityListRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.NamedEntityListRequest.org) + return org_.GetNoArena(); +} +inline void NamedEntityListRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.NamedEntityListRequest.org) +} +#if LANG_CXX11 +inline void NamedEntityListRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.NamedEntityListRequest.org) +} +#endif +inline void NamedEntityListRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.NamedEntityListRequest.org) +} +inline void NamedEntityListRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.NamedEntityListRequest.org) +} +inline ::std::string* NamedEntityListRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.NamedEntityListRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* NamedEntityListRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.NamedEntityListRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void NamedEntityListRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.NamedEntityListRequest.org) +} + // ------------------------------------------------------------------- // NamedEntityIdentifierList diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.cc index 6165cc0849..3b146336fe 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.cc @@ -561,6 +561,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fexecution_2eprot PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionCreateRequest, name_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionCreateRequest, spec_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionCreateRequest, inputs_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionCreateRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionRelaunchRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -751,28 +752,28 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fexecution_2eprot }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::ExecutionCreateRequest)}, - { 10, -1, sizeof(::flyteidl::admin::ExecutionRelaunchRequest)}, - { 18, -1, sizeof(::flyteidl::admin::ExecutionRecoverRequest)}, - { 26, -1, sizeof(::flyteidl::admin::ExecutionCreateResponse)}, - { 32, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetRequest)}, - { 38, -1, sizeof(::flyteidl::admin::Execution)}, - { 46, -1, sizeof(::flyteidl::admin::ExecutionList)}, - { 53, -1, sizeof(::flyteidl::admin::LiteralMapBlob)}, - { 61, -1, sizeof(::flyteidl::admin::AbortMetadata)}, - { 68, -1, sizeof(::flyteidl::admin::ExecutionClosure)}, - { 88, -1, sizeof(::flyteidl::admin::SystemMetadata)}, - { 95, -1, sizeof(::flyteidl::admin::ExecutionMetadata)}, - { 108, -1, sizeof(::flyteidl::admin::NotificationList)}, - { 114, -1, sizeof(::flyteidl::admin::ExecutionSpec)}, - { 137, -1, sizeof(::flyteidl::admin::ExecutionTerminateRequest)}, - { 144, -1, sizeof(::flyteidl::admin::ExecutionTerminateResponse)}, - { 149, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetDataRequest)}, - { 155, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetDataResponse)}, - { 164, -1, sizeof(::flyteidl::admin::ExecutionUpdateRequest)}, - { 171, -1, sizeof(::flyteidl::admin::ExecutionStateChangeDetails)}, - { 179, -1, sizeof(::flyteidl::admin::ExecutionUpdateResponse)}, - { 184, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetMetricsRequest)}, - { 191, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetMetricsResponse)}, + { 11, -1, sizeof(::flyteidl::admin::ExecutionRelaunchRequest)}, + { 19, -1, sizeof(::flyteidl::admin::ExecutionRecoverRequest)}, + { 27, -1, sizeof(::flyteidl::admin::ExecutionCreateResponse)}, + { 33, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetRequest)}, + { 39, -1, sizeof(::flyteidl::admin::Execution)}, + { 47, -1, sizeof(::flyteidl::admin::ExecutionList)}, + { 54, -1, sizeof(::flyteidl::admin::LiteralMapBlob)}, + { 62, -1, sizeof(::flyteidl::admin::AbortMetadata)}, + { 69, -1, sizeof(::flyteidl::admin::ExecutionClosure)}, + { 89, -1, sizeof(::flyteidl::admin::SystemMetadata)}, + { 96, -1, sizeof(::flyteidl::admin::ExecutionMetadata)}, + { 109, -1, sizeof(::flyteidl::admin::NotificationList)}, + { 115, -1, sizeof(::flyteidl::admin::ExecutionSpec)}, + { 138, -1, sizeof(::flyteidl::admin::ExecutionTerminateRequest)}, + { 145, -1, sizeof(::flyteidl::admin::ExecutionTerminateResponse)}, + { 150, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetDataRequest)}, + { 156, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetDataResponse)}, + { 165, -1, sizeof(::flyteidl::admin::ExecutionUpdateRequest)}, + { 172, -1, sizeof(::flyteidl::admin::ExecutionStateChangeDetails)}, + { 180, -1, sizeof(::flyteidl::admin::ExecutionUpdateResponse)}, + { 185, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetMetricsRequest)}, + { 192, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetMetricsResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -818,119 +819,119 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2fexecution_2eproto[] = "idl/core/security.proto\032\036google/protobuf" "/duration.proto\032\037google/protobuf/timesta" "mp.proto\032\036google/protobuf/wrappers.proto" - "\"\237\001\n\026ExecutionCreateRequest\022\017\n\007project\030\001" + "\"\254\001\n\026ExecutionCreateRequest\022\017\n\007project\030\001" " \001(\t\022\016\n\006domain\030\002 \001(\t\022\014\n\004name\030\003 \001(\t\022+\n\004sp" "ec\030\004 \001(\0132\035.flyteidl.admin.ExecutionSpec\022" ")\n\006inputs\030\005 \001(\0132\031.flyteidl.core.LiteralM" - "ap\"\177\n\030ExecutionRelaunchRequest\0226\n\002id\030\001 \001" - "(\0132*.flyteidl.core.WorkflowExecutionIden" - "tifier\022\014\n\004name\030\003 \001(\t\022\027\n\017overwrite_cache\030" - "\004 \001(\010J\004\010\002\020\003\"\224\001\n\027ExecutionRecoverRequest\022" + "ap\022\013\n\003org\030\006 \001(\t\"\177\n\030ExecutionRelaunchRequ" + "est\0226\n\002id\030\001 \001(\0132*.flyteidl.core.Workflow" + "ExecutionIdentifier\022\014\n\004name\030\003 \001(\t\022\027\n\017ove" + "rwrite_cache\030\004 \001(\010J\004\010\002\020\003\"\224\001\n\027ExecutionRe" + "coverRequest\0226\n\002id\030\001 \001(\0132*.flyteidl.core" + ".WorkflowExecutionIdentifier\022\014\n\004name\030\002 \001" + "(\t\0223\n\010metadata\030\003 \001(\0132!.flyteidl.admin.Ex" + "ecutionMetadata\"Q\n\027ExecutionCreateRespon" + "se\0226\n\002id\030\001 \001(\0132*.flyteidl.core.WorkflowE" + "xecutionIdentifier\"U\n\033WorkflowExecutionG" + "etRequest\0226\n\002id\030\001 \001(\0132*.flyteidl.core.Wo" + "rkflowExecutionIdentifier\"\243\001\n\tExecution\022" "6\n\002id\030\001 \001(\0132*.flyteidl.core.WorkflowExec" - "utionIdentifier\022\014\n\004name\030\002 \001(\t\0223\n\010metadat" - "a\030\003 \001(\0132!.flyteidl.admin.ExecutionMetada" - "ta\"Q\n\027ExecutionCreateResponse\0226\n\002id\030\001 \001(" - "\0132*.flyteidl.core.WorkflowExecutionIdent" - "ifier\"U\n\033WorkflowExecutionGetRequest\0226\n\002" - "id\030\001 \001(\0132*.flyteidl.core.WorkflowExecuti" - "onIdentifier\"\243\001\n\tExecution\0226\n\002id\030\001 \001(\0132*" - ".flyteidl.core.WorkflowExecutionIdentifi" - "er\022+\n\004spec\030\002 \001(\0132\035.flyteidl.admin.Execut" - "ionSpec\0221\n\007closure\030\003 \001(\0132 .flyteidl.admi" - "n.ExecutionClosure\"M\n\rExecutionList\022-\n\ne" - "xecutions\030\001 \003(\0132\031.flyteidl.admin.Executi" - "on\022\r\n\005token\030\002 \001(\t\"X\n\016LiteralMapBlob\022/\n\006v" - "alues\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\rAbortMeta" - "data\022\r\n\005cause\030\001 \001(\t\022\021\n\tprincipal\030\002 \001(\t\"\360" - "\005\n\020ExecutionClosure\0225\n\007outputs\030\001 \001(\0132\036.f" - "lyteidl.admin.LiteralMapBlobB\002\030\001H\000\022.\n\005er" - "ror\030\002 \001(\0132\035.flyteidl.core.ExecutionError" - "H\000\022\031\n\013abort_cause\030\n \001(\tB\002\030\001H\000\0227\n\016abort_m" - "etadata\030\014 \001(\0132\035.flyteidl.admin.AbortMeta" - "dataH\000\0224\n\013output_data\030\r \001(\0132\031.flyteidl.c" - "ore.LiteralMapB\002\030\001H\000\0226\n\017computed_inputs\030" - "\003 \001(\0132\031.flyteidl.core.LiteralMapB\002\030\001\0225\n\005" - "phase\030\004 \001(\0162&.flyteidl.core.WorkflowExec" - "ution.Phase\022.\n\nstarted_at\030\005 \001(\0132\032.google" - ".protobuf.Timestamp\022+\n\010duration\030\006 \001(\0132\031." - "google.protobuf.Duration\022.\n\ncreated_at\030\007" - " \001(\0132\032.google.protobuf.Timestamp\022.\n\nupda" - "ted_at\030\010 \001(\0132\032.google.protobuf.Timestamp" - "\0223\n\rnotifications\030\t \003(\0132\034.flyteidl.admin" - ".Notification\022.\n\013workflow_id\030\013 \001(\0132\031.fly" - "teidl.core.Identifier\022I\n\024state_change_de" - "tails\030\016 \001(\0132+.flyteidl.admin.ExecutionSt" - "ateChangeDetailsB\017\n\routput_result\">\n\016Sys" - "temMetadata\022\031\n\021execution_cluster\030\001 \001(\t\022\021" - "\n\tnamespace\030\002 \001(\t\"\213\004\n\021ExecutionMetadata\022" - "=\n\004mode\030\001 \001(\0162/.flyteidl.admin.Execution" - "Metadata.ExecutionMode\022\021\n\tprincipal\030\002 \001(" - "\t\022\017\n\007nesting\030\003 \001(\r\0220\n\014scheduled_at\030\004 \001(\013" - "2\032.google.protobuf.Timestamp\022E\n\025parent_n" - "ode_execution\030\005 \001(\0132&.flyteidl.core.Node" - "ExecutionIdentifier\022G\n\023reference_executi" - "on\030\020 \001(\0132*.flyteidl.core.WorkflowExecuti" - "onIdentifier\0227\n\017system_metadata\030\021 \001(\0132\036." - "flyteidl.admin.SystemMetadata\022/\n\014artifac" - "t_ids\030\022 \003(\0132\031.flyteidl.core.ArtifactID\"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_WO" - "RKFLOW\020\004\022\r\n\tRECOVERED\020\005\"G\n\020NotificationL" - "ist\0223\n\rnotifications\030\001 \003(\0132\034.flyteidl.ad" - "min.Notification\"\262\006\n\rExecutionSpec\022.\n\013la" - "unch_plan\030\001 \001(\0132\031.flyteidl.core.Identifi" - "er\022-\n\006inputs\030\002 \001(\0132\031.flyteidl.core.Liter" - "alMapB\002\030\001\0223\n\010metadata\030\003 \001(\0132!.flyteidl.a" - "dmin.ExecutionMetadata\0229\n\rnotifications\030" - "\005 \001(\0132 .flyteidl.admin.NotificationListH" - "\000\022\025\n\013disable_all\030\006 \001(\010H\000\022&\n\006labels\030\007 \001(\013" - "2\026.flyteidl.admin.Labels\0220\n\013annotations\030" - "\010 \001(\0132\033.flyteidl.admin.Annotations\0228\n\020se" - "curity_context\030\n \001(\0132\036.flyteidl.core.Sec" - "urityContext\022/\n\tauth_role\030\020 \001(\0132\030.flytei" - "dl.admin.AuthRoleB\002\030\001\022;\n\022quality_of_serv" - "ice\030\021 \001(\0132\037.flyteidl.core.QualityOfServi" - "ce\022\027\n\017max_parallelism\030\022 \001(\005\022C\n\026raw_outpu" - "t_data_config\030\023 \001(\0132#.flyteidl.admin.Raw" - "OutputDataConfig\022=\n\022cluster_assignment\030\024" - " \001(\0132!.flyteidl.admin.ClusterAssignment\022" - "1\n\rinterruptible\030\025 \001(\0132\032.google.protobuf" - ".BoolValue\022\027\n\017overwrite_cache\030\026 \001(\010\022\"\n\004e" - "nvs\030\027 \001(\0132\024.flyteidl.admin.Envs\022\014\n\004tags\030" - "\030 \003(\tB\030\n\026notification_overridesJ\004\010\004\020\005\"b\n" - "\031ExecutionTerminateRequest\0226\n\002id\030\001 \001(\0132*" - ".flyteidl.core.WorkflowExecutionIdentifi" - "er\022\r\n\005cause\030\002 \001(\t\"\034\n\032ExecutionTerminateR" - "esponse\"Y\n\037WorkflowExecutionGetDataReque" + "utionIdentifier\022+\n\004spec\030\002 \001(\0132\035.flyteidl" + ".admin.ExecutionSpec\0221\n\007closure\030\003 \001(\0132 ." + "flyteidl.admin.ExecutionClosure\"M\n\rExecu" + "tionList\022-\n\nexecutions\030\001 \003(\0132\031.flyteidl." + "admin.Execution\022\r\n\005token\030\002 \001(\t\"X\n\016Litera" + "lMapBlob\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\tprin" + "cipal\030\002 \001(\t\"\360\005\n\020ExecutionClosure\0225\n\007outp" + "uts\030\001 \001(\0132\036.flyteidl.admin.LiteralMapBlo" + "bB\002\030\001H\000\022.\n\005error\030\002 \001(\0132\035.flyteidl.core.E" + "xecutionErrorH\000\022\031\n\013abort_cause\030\n \001(\tB\002\030\001" + "H\000\0227\n\016abort_metadata\030\014 \001(\0132\035.flyteidl.ad" + "min.AbortMetadataH\000\0224\n\013output_data\030\r \001(\013" + "2\031.flyteidl.core.LiteralMapB\002\030\001H\000\0226\n\017com" + "puted_inputs\030\003 \001(\0132\031.flyteidl.core.Liter" + "alMapB\002\030\001\0225\n\005phase\030\004 \001(\0162&.flyteidl.core" + ".WorkflowExecution.Phase\022.\n\nstarted_at\030\005" + " \001(\0132\032.google.protobuf.Timestamp\022+\n\010dura" + "tion\030\006 \001(\0132\031.google.protobuf.Duration\022.\n" + "\ncreated_at\030\007 \001(\0132\032.google.protobuf.Time" + "stamp\022.\n\nupdated_at\030\010 \001(\0132\032.google.proto" + "buf.Timestamp\0223\n\rnotifications\030\t \003(\0132\034.f" + "lyteidl.admin.Notification\022.\n\013workflow_i" + "d\030\013 \001(\0132\031.flyteidl.core.Identifier\022I\n\024st" + "ate_change_details\030\016 \001(\0132+.flyteidl.admi" + "n.ExecutionStateChangeDetailsB\017\n\routput_" + "result\">\n\016SystemMetadata\022\031\n\021execution_cl" + "uster\030\001 \001(\t\022\021\n\tnamespace\030\002 \001(\t\"\213\004\n\021Execu" + "tionMetadata\022=\n\004mode\030\001 \001(\0162/.flyteidl.ad" + "min.ExecutionMetadata.ExecutionMode\022\021\n\tp" + "rincipal\030\002 \001(\t\022\017\n\007nesting\030\003 \001(\r\0220\n\014sched" + "uled_at\030\004 \001(\0132\032.google.protobuf.Timestam" + "p\022E\n\025parent_node_execution\030\005 \001(\0132&.flyte" + "idl.core.NodeExecutionIdentifier\022G\n\023refe" + "rence_execution\030\020 \001(\0132*.flyteidl.core.Wo" + "rkflowExecutionIdentifier\0227\n\017system_meta" + "data\030\021 \001(\0132\036.flyteidl.admin.SystemMetada" + "ta\022/\n\014artifact_ids\030\022 \003(\0132\031.flyteidl.core" + ".ArtifactID\"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\020" + "NotificationList\0223\n\rnotifications\030\001 \003(\0132" + "\034.flyteidl.admin.Notification\"\262\006\n\rExecut" + "ionSpec\022.\n\013launch_plan\030\001 \001(\0132\031.flyteidl." + "core.Identifier\022-\n\006inputs\030\002 \001(\0132\031.flytei" + "dl.core.LiteralMapB\002\030\001\0223\n\010metadata\030\003 \001(\013" + "2!.flyteidl.admin.ExecutionMetadata\0229\n\rn" + "otifications\030\005 \001(\0132 .flyteidl.admin.Noti" + "ficationListH\000\022\025\n\013disable_all\030\006 \001(\010H\000\022&\n" + "\006labels\030\007 \001(\0132\026.flyteidl.admin.Labels\0220\n" + "\013annotations\030\010 \001(\0132\033.flyteidl.admin.Anno" + "tations\0228\n\020security_context\030\n \001(\0132\036.flyt" + "eidl.core.SecurityContext\022/\n\tauth_role\030\020" + " \001(\0132\030.flyteidl.admin.AuthRoleB\002\030\001\022;\n\022qu" + "ality_of_service\030\021 \001(\0132\037.flyteidl.core.Q" + "ualityOfService\022\027\n\017max_parallelism\030\022 \001(\005" + "\022C\n\026raw_output_data_config\030\023 \001(\0132#.flyte" + "idl.admin.RawOutputDataConfig\022=\n\022cluster" + "_assignment\030\024 \001(\0132!.flyteidl.admin.Clust" + "erAssignment\0221\n\rinterruptible\030\025 \001(\0132\032.go" + "ogle.protobuf.BoolValue\022\027\n\017overwrite_cac" + "he\030\026 \001(\010\022\"\n\004envs\030\027 \001(\0132\024.flyteidl.admin." + "Envs\022\014\n\004tags\030\030 \003(\tB\030\n\026notification_overr" + "idesJ\004\010\004\020\005\"b\n\031ExecutionTerminateRequest\022" + "6\n\002id\030\001 \001(\0132*.flyteidl.core.WorkflowExec" + "utionIdentifier\022\r\n\005cause\030\002 \001(\t\"\034\n\032Execut" + "ionTerminateResponse\"Y\n\037WorkflowExecutio" + "nGetDataRequest\0226\n\002id\030\001 \001(\0132*.flyteidl.c" + "ore.WorkflowExecutionIdentifier\"\336\001\n Work" + "flowExecutionGetDataResponse\022,\n\007outputs\030" + "\001 \001(\0132\027.flyteidl.admin.UrlBlobB\002\030\001\022+\n\006in" + "puts\030\002 \001(\0132\027.flyteidl.admin.UrlBlobB\002\030\001\022" + ".\n\013full_inputs\030\003 \001(\0132\031.flyteidl.core.Lit" + "eralMap\022/\n\014full_outputs\030\004 \001(\0132\031.flyteidl" + ".core.LiteralMap\"\177\n\026ExecutionUpdateReque" "st\0226\n\002id\030\001 \001(\0132*.flyteidl.core.WorkflowE" - "xecutionIdentifier\"\336\001\n WorkflowExecution" - "GetDataResponse\022,\n\007outputs\030\001 \001(\0132\027.flyte" - "idl.admin.UrlBlobB\002\030\001\022+\n\006inputs\030\002 \001(\0132\027." - "flyteidl.admin.UrlBlobB\002\030\001\022.\n\013full_input" - "s\030\003 \001(\0132\031.flyteidl.core.LiteralMap\022/\n\014fu" - "ll_outputs\030\004 \001(\0132\031.flyteidl.core.Literal" - "Map\"\177\n\026ExecutionUpdateRequest\0226\n\002id\030\001 \001(" - "\0132*.flyteidl.core.WorkflowExecutionIdent" - "ifier\022-\n\005state\030\002 \001(\0162\036.flyteidl.admin.Ex" - "ecutionState\"\220\001\n\033ExecutionStateChangeDet" - "ails\022-\n\005state\030\001 \001(\0162\036.flyteidl.admin.Exe" - "cutionState\022/\n\013occurred_at\030\002 \001(\0132\032.googl" - "e.protobuf.Timestamp\022\021\n\tprincipal\030\003 \001(\t\"" - "\031\n\027ExecutionUpdateResponse\"k\n\"WorkflowEx" - "ecutionGetMetricsRequest\0226\n\002id\030\001 \001(\0132*.f" - "lyteidl.core.WorkflowExecutionIdentifier" - "\022\r\n\005depth\030\002 \001(\005\"H\n#WorkflowExecutionGetM" - "etricsResponse\022!\n\004span\030\001 \001(\0132\023.flyteidl." - "core.Span*>\n\016ExecutionState\022\024\n\020EXECUTION" - "_ACTIVE\020\000\022\026\n\022EXECUTION_ARCHIVED\020\001B=Z;git" - "hub.com/flyteorg/flyte/flyteidl/gen/pb-g" - "o/flyteidl/adminb\006proto3" + "xecutionIdentifier\022-\n\005state\030\002 \001(\0162\036.flyt" + "eidl.admin.ExecutionState\"\220\001\n\033ExecutionS" + "tateChangeDetails\022-\n\005state\030\001 \001(\0162\036.flyte" + "idl.admin.ExecutionState\022/\n\013occurred_at\030" + "\002 \001(\0132\032.google.protobuf.Timestamp\022\021\n\tpri" + "ncipal\030\003 \001(\t\"\031\n\027ExecutionUpdateResponse\"" + "k\n\"WorkflowExecutionGetMetricsRequest\0226\n" + "\002id\030\001 \001(\0132*.flyteidl.core.WorkflowExecut" + "ionIdentifier\022\r\n\005depth\030\002 \001(\005\"H\n#Workflow" + "ExecutionGetMetricsResponse\022!\n\004span\030\001 \001(" + "\0132\023.flyteidl.core.Span*>\n\016ExecutionState" + "\022\024\n\020EXECUTION_ACTIVE\020\000\022\026\n\022EXECUTION_ARCH" + "IVED\020\001B=Z;github.com/flyteorg/flyte/flyt" + "eidl/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, 4704, + "flyteidl/admin/execution.proto", &assign_descriptors_table_flyteidl_2fadmin_2fexecution_2eproto, 4717, }; void AddDescriptors_flyteidl_2fadmin_2fexecution_2eproto() { @@ -1033,6 +1034,7 @@ const int ExecutionCreateRequest::kDomainFieldNumber; const int ExecutionCreateRequest::kNameFieldNumber; const int ExecutionCreateRequest::kSpecFieldNumber; const int ExecutionCreateRequest::kInputsFieldNumber; +const int ExecutionCreateRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ExecutionCreateRequest::ExecutionCreateRequest() @@ -1056,6 +1058,10 @@ ExecutionCreateRequest::ExecutionCreateRequest(const ExecutionCreateRequest& fro if (from.name().size() > 0) { name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_spec()) { spec_ = new ::flyteidl::admin::ExecutionSpec(*from.spec_); } else { @@ -1075,6 +1081,7 @@ void ExecutionCreateRequest::SharedCtor() { project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); ::memset(&spec_, 0, static_cast( reinterpret_cast(&inputs_) - reinterpret_cast(&spec_)) + sizeof(inputs_)); @@ -1089,6 +1096,7 @@ void ExecutionCreateRequest::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete spec_; if (this != internal_default_instance()) delete inputs_; } @@ -1111,6 +1119,7 @@ void ExecutionCreateRequest::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && spec_ != nullptr) { delete spec_; } @@ -1209,6 +1218,22 @@ const char* ExecutionCreateRequest::_InternalParse(const char* begin, const char {parser_till_end, object}, ptr - size, ptr)); break; } + // string org = 6; + case 6: { + if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ExecutionCreateRequest.org"); + object = msg->mutable_org(); + 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) { @@ -1310,6 +1335,21 @@ bool ExecutionCreateRequest::MergePartialFromCodedStream( break; } + // string org = 6; + case 6: { + if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ExecutionCreateRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -1379,6 +1419,16 @@ void ExecutionCreateRequest::SerializeWithCachedSizes( 5, HasBitSetters::inputs(this), output); } + // string org = 6; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ExecutionCreateRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 6, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -1439,6 +1489,17 @@ ::google::protobuf::uint8* ExecutionCreateRequest::InternalSerializeWithCachedSi 5, HasBitSetters::inputs(this), target); } + // string org = 6; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ExecutionCreateRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 6, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -1481,6 +1542,13 @@ size_t ExecutionCreateRequest::ByteSizeLong() const { this->name()); } + // string org = 6; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.ExecutionSpec spec = 4; if (this->has_spec()) { total_size += 1 + @@ -1534,6 +1602,10 @@ void ExecutionCreateRequest::MergeFrom(const ExecutionCreateRequest& from) { name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_spec()) { mutable_spec()->::flyteidl::admin::ExecutionSpec::MergeFrom(from.spec()); } @@ -1573,6 +1645,8 @@ void ExecutionCreateRequest::InternalSwap(ExecutionCreateRequest* other) { GetArenaNoVirtual()); name_.Swap(&other->name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(spec_, other->spec_); swap(inputs_, other->inputs_); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.h index fbe4b1f4f4..e98933aa24 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.h @@ -348,6 +348,20 @@ class ExecutionCreateRequest final : ::std::string* release_name(); void set_allocated_name(::std::string* name); + // string org = 6; + void clear_org(); + static const int kOrgFieldNumber = 6; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.ExecutionSpec spec = 4; bool has_spec() const; void clear_spec(); @@ -374,6 +388,7 @@ class ExecutionCreateRequest final : ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr name_; + ::google::protobuf::internal::ArenaStringPtr org_; ::flyteidl::admin::ExecutionSpec* spec_; ::flyteidl::core::LiteralMap* inputs_; mutable ::google::protobuf::internal::CachedSize _cached_size_; @@ -3853,6 +3868,59 @@ inline void ExecutionCreateRequest::set_allocated_inputs(::flyteidl::core::Liter // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ExecutionCreateRequest.inputs) } +// string org = 6; +inline void ExecutionCreateRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ExecutionCreateRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ExecutionCreateRequest.org) + return org_.GetNoArena(); +} +inline void ExecutionCreateRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ExecutionCreateRequest.org) +} +#if LANG_CXX11 +inline void ExecutionCreateRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ExecutionCreateRequest.org) +} +#endif +inline void ExecutionCreateRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ExecutionCreateRequest.org) +} +inline void ExecutionCreateRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ExecutionCreateRequest.org) +} +inline ::std::string* ExecutionCreateRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ExecutionCreateRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ExecutionCreateRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ExecutionCreateRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ExecutionCreateRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ExecutionCreateRequest.org) +} + // ------------------------------------------------------------------- // ExecutionRelaunchRequest diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/launch_plan.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/launch_plan.pb.cc index a69ec02fdb..d02760dfd5 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/launch_plan.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/launch_plan.pb.cc @@ -408,6 +408,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2flaunch_5fplan_2e PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ActiveLaunchPlanListRequest, limit_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ActiveLaunchPlanListRequest, token_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ActiveLaunchPlanListRequest, sort_by_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ActiveLaunchPlanListRequest, org_), }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::LaunchPlanCreateRequest)}, @@ -501,18 +502,19 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2flaunch_5fplan_2eproto[] "\001(\0162\037.flyteidl.admin.LaunchPlanState\"\032\n\030" "LaunchPlanUpdateResponse\"L\n\027ActiveLaunch" "PlanRequest\0221\n\002id\030\001 \001(\0132%.flyteidl.admin" - ".NamedEntityIdentifier\"\203\001\n\033ActiveLaunchP" + ".NamedEntityIdentifier\"\220\001\n\033ActiveLaunchP" "lanListRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domai" "n\030\002 \001(\t\022\r\n\005limit\030\003 \001(\r\022\r\n\005token\030\004 \001(\t\022%\n" - "\007sort_by\030\005 \001(\0132\024.flyteidl.admin.Sort*+\n\017" - "LaunchPlanState\022\014\n\010INACTIVE\020\000\022\n\n\006ACTIVE\020" - "\001B=Z;github.com/flyteorg/flyte/flyteidl/" - "gen/pb-go/flyteidl/adminb\006proto3" + "\007sort_by\030\005 \001(\0132\024.flyteidl.admin.Sort\022\013\n\003" + "org\030\006 \001(\t*+\n\017LaunchPlanState\022\014\n\010INACTIVE" + "\020\000\022\n\n\006ACTIVE\020\001B=Z;github.com/flyteorg/fl" + "yte/flyteidl/gen/pb-go/flyteidl/adminb\006p" + "roto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2flaunch_5fplan_2eproto = { false, InitDefaults_flyteidl_2fadmin_2flaunch_5fplan_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2flaunch_5fplan_2eproto, - "flyteidl/admin/launch_plan.proto", &assign_descriptors_table_flyteidl_2fadmin_2flaunch_5fplan_2eproto, 2472, + "flyteidl/admin/launch_plan.proto", &assign_descriptors_table_flyteidl_2fadmin_2flaunch_5fplan_2eproto, 2485, }; void AddDescriptors_flyteidl_2fadmin_2flaunch_5fplan_2eproto() { @@ -5446,6 +5448,7 @@ const int ActiveLaunchPlanListRequest::kDomainFieldNumber; const int ActiveLaunchPlanListRequest::kLimitFieldNumber; const int ActiveLaunchPlanListRequest::kTokenFieldNumber; const int ActiveLaunchPlanListRequest::kSortByFieldNumber; +const int ActiveLaunchPlanListRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ActiveLaunchPlanListRequest::ActiveLaunchPlanListRequest() @@ -5469,6 +5472,10 @@ ActiveLaunchPlanListRequest::ActiveLaunchPlanListRequest(const ActiveLaunchPlanL if (from.token().size() > 0) { token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_sort_by()) { sort_by_ = new ::flyteidl::admin::Sort(*from.sort_by_); } else { @@ -5484,6 +5491,7 @@ void ActiveLaunchPlanListRequest::SharedCtor() { project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); ::memset(&sort_by_, 0, static_cast( reinterpret_cast(&limit_) - reinterpret_cast(&sort_by_)) + sizeof(limit_)); @@ -5498,6 +5506,7 @@ void ActiveLaunchPlanListRequest::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete sort_by_; } @@ -5519,6 +5528,7 @@ void ActiveLaunchPlanListRequest::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && sort_by_ != nullptr) { delete sort_by_; } @@ -5608,6 +5618,22 @@ const char* ActiveLaunchPlanListRequest::_InternalParse(const char* begin, const {parser_till_end, object}, ptr - size, ptr)); break; } + // string org = 6; + case 6: { + if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ActiveLaunchPlanListRequest.org"); + object = msg->mutable_org(); + 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) { @@ -5711,6 +5737,21 @@ bool ActiveLaunchPlanListRequest::MergePartialFromCodedStream( break; } + // string org = 6; + case 6: { + if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ActiveLaunchPlanListRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -5779,6 +5820,16 @@ void ActiveLaunchPlanListRequest::SerializeWithCachedSizes( 5, HasBitSetters::sort_by(this), output); } + // string org = 6; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ActiveLaunchPlanListRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 6, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -5837,6 +5888,17 @@ ::google::protobuf::uint8* ActiveLaunchPlanListRequest::InternalSerializeWithCac 5, HasBitSetters::sort_by(this), target); } + // string org = 6; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ActiveLaunchPlanListRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 6, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -5879,6 +5941,13 @@ size_t ActiveLaunchPlanListRequest::ByteSizeLong() const { this->token()); } + // string org = 6; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.Sort sort_by = 5; if (this->has_sort_by()) { total_size += 1 + @@ -5932,6 +6001,10 @@ void ActiveLaunchPlanListRequest::MergeFrom(const ActiveLaunchPlanListRequest& f token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_sort_by()) { mutable_sort_by()->::flyteidl::admin::Sort::MergeFrom(from.sort_by()); } @@ -5971,6 +6044,8 @@ void ActiveLaunchPlanListRequest::InternalSwap(ActiveLaunchPlanListRequest* othe GetArenaNoVirtual()); token_.Swap(&other->token_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(sort_by_, other->sort_by_); swap(limit_, other->limit_); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/launch_plan.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/launch_plan.pb.h index 27e0deca98..8334ed7e4a 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/launch_plan.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/launch_plan.pb.h @@ -1807,6 +1807,20 @@ class ActiveLaunchPlanListRequest final : ::std::string* release_token(); void set_allocated_token(::std::string* token); + // string org = 6; + void clear_org(); + static const int kOrgFieldNumber = 6; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.Sort sort_by = 5; bool has_sort_by() const; void clear_sort_by(); @@ -1830,6 +1844,7 @@ class ActiveLaunchPlanListRequest final : ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr token_; + ::google::protobuf::internal::ArenaStringPtr org_; ::flyteidl::admin::Sort* sort_by_; ::google::protobuf::uint32 limit_; mutable ::google::protobuf::internal::CachedSize _cached_size_; @@ -3636,6 +3651,59 @@ inline void ActiveLaunchPlanListRequest::set_allocated_sort_by(::flyteidl::admin // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ActiveLaunchPlanListRequest.sort_by) } +// string org = 6; +inline void ActiveLaunchPlanListRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ActiveLaunchPlanListRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ActiveLaunchPlanListRequest.org) + return org_.GetNoArena(); +} +inline void ActiveLaunchPlanListRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ActiveLaunchPlanListRequest.org) +} +#if LANG_CXX11 +inline void ActiveLaunchPlanListRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ActiveLaunchPlanListRequest.org) +} +#endif +inline void ActiveLaunchPlanListRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ActiveLaunchPlanListRequest.org) +} +inline void ActiveLaunchPlanListRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ActiveLaunchPlanListRequest.org) +} +inline ::std::string* ActiveLaunchPlanListRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ActiveLaunchPlanListRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ActiveLaunchPlanListRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ActiveLaunchPlanListRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ActiveLaunchPlanListRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ActiveLaunchPlanListRequest.org) +} + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.cc index b38613ca8a..82edc1a1ec 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.cc @@ -415,6 +415,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fmatchable_5freso PROTOBUF_FIELD_OFFSET(::flyteidl::admin::MatchableAttributesConfiguration, project_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::MatchableAttributesConfiguration, workflow_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::MatchableAttributesConfiguration, launch_plan_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::MatchableAttributesConfiguration, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ListMatchableAttributesRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -440,8 +441,8 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SE { 58, -1, sizeof(::flyteidl::admin::WorkflowExecutionConfig)}, { 71, -1, sizeof(::flyteidl::admin::MatchingAttributes)}, { 85, -1, sizeof(::flyteidl::admin::MatchableAttributesConfiguration)}, - { 95, -1, sizeof(::flyteidl::admin::ListMatchableAttributesRequest)}, - { 101, -1, sizeof(::flyteidl::admin::ListMatchableAttributesResponse)}, + { 96, -1, sizeof(::flyteidl::admin::ListMatchableAttributesRequest)}, + { 102, -1, sizeof(::flyteidl::admin::ListMatchableAttributesResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -515,29 +516,29 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2fmatchable_5fresource_2ep "sH\000\022L\n\031workflow_execution_config\030\007 \001(\0132\'" ".flyteidl.admin.WorkflowExecutionConfigH" "\000\022\?\n\022cluster_assignment\030\010 \001(\0132!.flyteidl" - ".admin.ClusterAssignmentH\000B\010\n\006target\"\242\001\n" + ".admin.ClusterAssignmentH\000B\010\n\006target\"\257\001\n" " MatchableAttributesConfiguration\0226\n\natt" "ributes\030\001 \001(\0132\".flyteidl.admin.MatchingA" "ttributes\022\016\n\006domain\030\002 \001(\t\022\017\n\007project\030\003 \001" "(\t\022\020\n\010workflow\030\004 \001(\t\022\023\n\013launch_plan\030\005 \001(" - "\t\"Z\n\036ListMatchableAttributesRequest\0228\n\rr" - "esource_type\030\001 \001(\0162!.flyteidl.admin.Matc" - "hableResource\"k\n\037ListMatchableAttributes" - "Response\022H\n\016configurations\030\001 \003(\01320.flyte" - "idl.admin.MatchableAttributesConfigurati" - "on*\340\001\n\021MatchableResource\022\021\n\rTASK_RESOURC" - "E\020\000\022\024\n\020CLUSTER_RESOURCE\020\001\022\023\n\017EXECUTION_Q" - "UEUE\020\002\022\033\n\027EXECUTION_CLUSTER_LABEL\020\003\022$\n Q" - "UALITY_OF_SERVICE_SPECIFICATION\020\004\022\023\n\017PLU" - "GIN_OVERRIDE\020\005\022\035\n\031WORKFLOW_EXECUTION_CON" - "FIG\020\006\022\026\n\022CLUSTER_ASSIGNMENT\020\007B=Z;github." - "com/flyteorg/flyte/flyteidl/gen/pb-go/fl" - "yteidl/adminb\006proto3" + "\t\022\013\n\003org\030\006 \001(\t\"Z\n\036ListMatchableAttribute" + "sRequest\0228\n\rresource_type\030\001 \001(\0162!.flytei" + "dl.admin.MatchableResource\"k\n\037ListMatcha" + "bleAttributesResponse\022H\n\016configurations\030" + "\001 \003(\01320.flyteidl.admin.MatchableAttribut" + "esConfiguration*\340\001\n\021MatchableResource\022\021\n" + "\rTASK_RESOURCE\020\000\022\024\n\020CLUSTER_RESOURCE\020\001\022\023" + "\n\017EXECUTION_QUEUE\020\002\022\033\n\027EXECUTION_CLUSTER" + "_LABEL\020\003\022$\n QUALITY_OF_SERVICE_SPECIFICA" + "TION\020\004\022\023\n\017PLUGIN_OVERRIDE\020\005\022\035\n\031WORKFLOW_" + "EXECUTION_CONFIG\020\006\022\026\n\022CLUSTER_ASSIGNMENT" + "\020\007B=Z;github.com/flyteorg/flyte/flyteidl" + "/gen/pb-go/flyteidl/adminb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fmatchable_5fresource_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fmatchable_5fresource_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fmatchable_5fresource_2eproto, - "flyteidl/admin/matchable_resource.proto", &assign_descriptors_table_flyteidl_2fadmin_2fmatchable_5fresource_2eproto, 2620, + "flyteidl/admin/matchable_resource.proto", &assign_descriptors_table_flyteidl_2fadmin_2fmatchable_5fresource_2eproto, 2633, }; void AddDescriptors_flyteidl_2fadmin_2fmatchable_5fresource_2eproto() { @@ -4901,6 +4902,7 @@ const int MatchableAttributesConfiguration::kDomainFieldNumber; const int MatchableAttributesConfiguration::kProjectFieldNumber; const int MatchableAttributesConfiguration::kWorkflowFieldNumber; const int MatchableAttributesConfiguration::kLaunchPlanFieldNumber; +const int MatchableAttributesConfiguration::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 MatchableAttributesConfiguration::MatchableAttributesConfiguration() @@ -4928,6 +4930,10 @@ MatchableAttributesConfiguration::MatchableAttributesConfiguration(const Matchab if (from.launch_plan().size() > 0) { launch_plan_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.launch_plan_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_attributes()) { attributes_ = new ::flyteidl::admin::MatchingAttributes(*from.attributes_); } else { @@ -4943,6 +4949,7 @@ void MatchableAttributesConfiguration::SharedCtor() { project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); launch_plan_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); attributes_ = nullptr; } @@ -4956,6 +4963,7 @@ void MatchableAttributesConfiguration::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); launch_plan_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete attributes_; } @@ -4978,6 +4986,7 @@ void MatchableAttributesConfiguration::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); launch_plan_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && attributes_ != nullptr) { delete attributes_; } @@ -5075,6 +5084,22 @@ const char* MatchableAttributesConfiguration::_InternalParse(const char* begin, ptr += size; break; } + // string org = 6; + case 6: { + if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.MatchableAttributesConfiguration.org"); + object = msg->mutable_org(); + 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) { @@ -5180,6 +5205,21 @@ bool MatchableAttributesConfiguration::MergePartialFromCodedStream( break; } + // string org = 6; + case 6: { + if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.MatchableAttributesConfiguration.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -5253,6 +5293,16 @@ void MatchableAttributesConfiguration::SerializeWithCachedSizes( 5, this->launch_plan(), output); } + // string org = 6; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.MatchableAttributesConfiguration.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 6, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -5317,6 +5367,17 @@ ::google::protobuf::uint8* MatchableAttributesConfiguration::InternalSerializeWi 5, this->launch_plan(), target); } + // string org = 6; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.MatchableAttributesConfiguration.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 6, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -5366,6 +5427,13 @@ size_t MatchableAttributesConfiguration::ByteSizeLong() const { this->launch_plan()); } + // string org = 6; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchingAttributes attributes = 1; if (this->has_attributes()) { total_size += 1 + @@ -5416,6 +5484,10 @@ void MatchableAttributesConfiguration::MergeFrom(const MatchableAttributesConfig launch_plan_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.launch_plan_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_attributes()) { mutable_attributes()->::flyteidl::admin::MatchingAttributes::MergeFrom(from.attributes()); } @@ -5454,6 +5526,8 @@ void MatchableAttributesConfiguration::InternalSwap(MatchableAttributesConfigura GetArenaNoVirtual()); launch_plan_.Swap(&other->launch_plan_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(attributes_, other->attributes_); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.h index 12ea29fdf1..1bd845f182 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.h @@ -1707,6 +1707,20 @@ class MatchableAttributesConfiguration final : ::std::string* release_launch_plan(); void set_allocated_launch_plan(::std::string* launch_plan); + // string org = 6; + void clear_org(); + static const int kOrgFieldNumber = 6; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchingAttributes attributes = 1; bool has_attributes() const; void clear_attributes(); @@ -1725,6 +1739,7 @@ class MatchableAttributesConfiguration final : ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr workflow_; ::google::protobuf::internal::ArenaStringPtr launch_plan_; + ::google::protobuf::internal::ArenaStringPtr org_; ::flyteidl::admin::MatchingAttributes* attributes_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fmatchable_5fresource_2eproto; @@ -3568,6 +3583,59 @@ inline void MatchableAttributesConfiguration::set_allocated_launch_plan(::std::s // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.MatchableAttributesConfiguration.launch_plan) } +// string org = 6; +inline void MatchableAttributesConfiguration::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& MatchableAttributesConfiguration::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.MatchableAttributesConfiguration.org) + return org_.GetNoArena(); +} +inline void MatchableAttributesConfiguration::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.MatchableAttributesConfiguration.org) +} +#if LANG_CXX11 +inline void MatchableAttributesConfiguration::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.MatchableAttributesConfiguration.org) +} +#endif +inline void MatchableAttributesConfiguration::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.MatchableAttributesConfiguration.org) +} +inline void MatchableAttributesConfiguration::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.MatchableAttributesConfiguration.org) +} +inline ::std::string* MatchableAttributesConfiguration::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.MatchableAttributesConfiguration.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* MatchableAttributesConfiguration::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.MatchableAttributesConfiguration.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void MatchableAttributesConfiguration::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.MatchableAttributesConfiguration.org) +} + // ------------------------------------------------------------------- // ListMatchableAttributesRequest diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc index 979041c005..667fb6a497 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc @@ -19,13 +19,18 @@ extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Sort_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Labels_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fproject_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Domain_flyteidl_2fadmin_2fproject_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fproject_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_Project_flyteidl_2fadmin_2fproject_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fproject_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fproject_2eproto ::google::protobuf::internal::SCCInfo<3> scc_info_Project_flyteidl_2fadmin_2fproject_2eproto; namespace flyteidl { namespace admin { class DomainDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; } _Domain_default_instance_; +class ProjectIdentifierDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ProjectIdentifier_default_instance_; class ProjectDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; @@ -66,6 +71,20 @@ static void InitDefaultsDomain_flyteidl_2fadmin_2fproject_2eproto() { ::google::protobuf::internal::SCCInfo<0> scc_info_Domain_flyteidl_2fadmin_2fproject_2eproto = {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsDomain_flyteidl_2fadmin_2fproject_2eproto}, {}}; +static void InitDefaultsProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ProjectIdentifier_default_instance_; + new (ptr) ::flyteidl::admin::ProjectIdentifier(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ProjectIdentifier::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto}, {}}; + static void InitDefaultsProject_flyteidl_2fadmin_2fproject_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -77,10 +96,11 @@ static void InitDefaultsProject_flyteidl_2fadmin_2fproject_2eproto() { ::flyteidl::admin::Project::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<2> scc_info_Project_flyteidl_2fadmin_2fproject_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsProject_flyteidl_2fadmin_2fproject_2eproto}, { +::google::protobuf::internal::SCCInfo<3> scc_info_Project_flyteidl_2fadmin_2fproject_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsProject_flyteidl_2fadmin_2fproject_2eproto}, { &scc_info_Domain_flyteidl_2fadmin_2fproject_2eproto.base, - &scc_info_Labels_flyteidl_2fadmin_2fcommon_2eproto.base,}}; + &scc_info_Labels_flyteidl_2fadmin_2fcommon_2eproto.base, + &scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto.base,}}; static void InitDefaultsProjects_flyteidl_2fadmin_2fproject_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -157,6 +177,7 @@ ::google::protobuf::internal::SCCInfo<0> scc_info_ProjectUpdateResponse_flyteidl void InitDefaults_flyteidl_2fadmin_2fproject_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_Domain_flyteidl_2fadmin_2fproject_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_Project_flyteidl_2fadmin_2fproject_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_Projects_flyteidl_2fadmin_2fproject_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_ProjectListRequest_flyteidl_2fadmin_2fproject_2eproto.base); @@ -165,7 +186,7 @@ void InitDefaults_flyteidl_2fadmin_2fproject_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_ProjectUpdateResponse_flyteidl_2fadmin_2fproject_2eproto.base); } -::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fproject_2eproto[7]; +::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fproject_2eproto[8]; const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fadmin_2fproject_2eproto[1]; constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fadmin_2fproject_2eproto = nullptr; @@ -178,6 +199,13 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_2eproto: PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Domain, id_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Domain, name_), ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectIdentifier, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectIdentifier, id_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectIdentifier, org_), + ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ @@ -188,6 +216,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_2eproto: PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, description_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, labels_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, state_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, identifier_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Projects, _internal_metadata_), ~0u, // no _extensions_ @@ -223,16 +252,18 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_2eproto: }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::Domain)}, - { 7, -1, sizeof(::flyteidl::admin::Project)}, - { 18, -1, sizeof(::flyteidl::admin::Projects)}, - { 25, -1, sizeof(::flyteidl::admin::ProjectListRequest)}, - { 34, -1, sizeof(::flyteidl::admin::ProjectRegisterRequest)}, - { 40, -1, sizeof(::flyteidl::admin::ProjectRegisterResponse)}, - { 45, -1, sizeof(::flyteidl::admin::ProjectUpdateResponse)}, + { 7, -1, sizeof(::flyteidl::admin::ProjectIdentifier)}, + { 14, -1, sizeof(::flyteidl::admin::Project)}, + { 26, -1, sizeof(::flyteidl::admin::Projects)}, + { 33, -1, sizeof(::flyteidl::admin::ProjectListRequest)}, + { 42, -1, sizeof(::flyteidl::admin::ProjectRegisterRequest)}, + { 48, -1, sizeof(::flyteidl::admin::ProjectRegisterResponse)}, + { 53, -1, sizeof(::flyteidl::admin::ProjectUpdateResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { reinterpret_cast(&::flyteidl::admin::_Domain_default_instance_), + reinterpret_cast(&::flyteidl::admin::_ProjectIdentifier_default_instance_), reinterpret_cast(&::flyteidl::admin::_Project_default_instance_), reinterpret_cast(&::flyteidl::admin::_Projects_default_instance_), reinterpret_cast(&::flyteidl::admin::_ProjectListRequest_default_instance_), @@ -244,34 +275,37 @@ static ::google::protobuf::Message const * const file_default_instances[] = { ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fadmin_2fproject_2eproto = { {}, AddDescriptors_flyteidl_2fadmin_2fproject_2eproto, "flyteidl/admin/project.proto", schemas, file_default_instances, TableStruct_flyteidl_2fadmin_2fproject_2eproto::offsets, - file_level_metadata_flyteidl_2fadmin_2fproject_2eproto, 7, file_level_enum_descriptors_flyteidl_2fadmin_2fproject_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fproject_2eproto, + file_level_metadata_flyteidl_2fadmin_2fproject_2eproto, 8, file_level_enum_descriptors_flyteidl_2fadmin_2fproject_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fproject_2eproto, }; const char descriptor_table_protodef_flyteidl_2fadmin_2fproject_2eproto[] = "\n\034flyteidl/admin/project.proto\022\016flyteidl" ".admin\032\033flyteidl/admin/common.proto\"\"\n\006D" - "omain\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\"\376\001\n\007Proj" - "ect\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\'\n\007domains" - "\030\003 \003(\0132\026.flyteidl.admin.Domain\022\023\n\013descri" - "ption\030\004 \001(\t\022&\n\006labels\030\005 \001(\0132\026.flyteidl.a" - "dmin.Labels\0223\n\005state\030\006 \001(\0162$.flyteidl.ad" - "min.Project.ProjectState\">\n\014ProjectState" - "\022\n\n\006ACTIVE\020\000\022\014\n\010ARCHIVED\020\001\022\024\n\020SYSTEM_GEN" - "ERATED\020\002\"D\n\010Projects\022)\n\010projects\030\001 \003(\0132\027" - ".flyteidl.admin.Project\022\r\n\005token\030\002 \001(\t\"j" - "\n\022ProjectListRequest\022\r\n\005limit\030\001 \001(\r\022\r\n\005t" - "oken\030\002 \001(\t\022\017\n\007filters\030\003 \001(\t\022%\n\007sort_by\030\004" - " \001(\0132\024.flyteidl.admin.Sort\"B\n\026ProjectReg" - "isterRequest\022(\n\007project\030\001 \001(\0132\027.flyteidl" - ".admin.Project\"\031\n\027ProjectRegisterRespons" - "e\"\027\n\025ProjectUpdateResponseB=Z;github.com" - "/flyteorg/flyte/flyteidl/gen/pb-go/flyte" - "idl/adminb\006proto3" + "omain\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\",\n\021Proje" + "ctIdentifier\022\n\n\002id\030\001 \001(\t\022\013\n\003org\030\002 \001(\t\"\271\002" + "\n\007Project\022\016\n\002id\030\001 \001(\tB\002\030\001\022\014\n\004name\030\002 \001(\t\022" + "\'\n\007domains\030\003 \003(\0132\026.flyteidl.admin.Domain" + "\022\023\n\013description\030\004 \001(\t\022&\n\006labels\030\005 \001(\0132\026." + "flyteidl.admin.Labels\0223\n\005state\030\006 \001(\0162$.f" + "lyteidl.admin.Project.ProjectState\0225\n\nid" + "entifier\030\007 \001(\0132!.flyteidl.admin.ProjectI" + "dentifier\">\n\014ProjectState\022\n\n\006ACTIVE\020\000\022\014\n" + "\010ARCHIVED\020\001\022\024\n\020SYSTEM_GENERATED\020\002\"D\n\010Pro" + "jects\022)\n\010projects\030\001 \003(\0132\027.flyteidl.admin" + ".Project\022\r\n\005token\030\002 \001(\t\"j\n\022ProjectListRe" + "quest\022\r\n\005limit\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\022\017\n\007f" + "ilters\030\003 \001(\t\022%\n\007sort_by\030\004 \001(\0132\024.flyteidl" + ".admin.Sort\"B\n\026ProjectRegisterRequest\022(\n" + "\007project\030\001 \001(\0132\027.flyteidl.admin.Project\"" + "\031\n\027ProjectRegisterResponse\"\027\n\025ProjectUpd" + "ateResponseB=Z;github.com/flyteorg/flyte" + "/flyteidl/gen/pb-go/flyteidl/adminb\006prot" + "o3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fproject_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fproject_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fproject_2eproto, - "flyteidl/admin/project.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_2eproto, 737, + "flyteidl/admin/project.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_2eproto, 842, }; void AddDescriptors_flyteidl_2fadmin_2fproject_2eproto() { @@ -680,21 +714,398 @@ ::google::protobuf::Metadata Domain::GetMetadata() const { } +// =================================================================== + +void ProjectIdentifier::InitAsDefaultInstance() { +} +class ProjectIdentifier::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int ProjectIdentifier::kIdFieldNumber; +const int ProjectIdentifier::kOrgFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ProjectIdentifier::ProjectIdentifier() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ProjectIdentifier) +} +ProjectIdentifier::ProjectIdentifier(const ProjectIdentifier& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.id().size() > 0) { + id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_); + } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectIdentifier) +} + +void ProjectIdentifier::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto.base); + id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +ProjectIdentifier::~ProjectIdentifier() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ProjectIdentifier) + SharedDtor(); +} + +void ProjectIdentifier::SharedDtor() { + id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +void ProjectIdentifier::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ProjectIdentifier& ProjectIdentifier::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto.base); + return *internal_default_instance(); +} + + +void ProjectIdentifier::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ProjectIdentifier) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ProjectIdentifier::_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) { + // string 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); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectIdentifier.id"); + object = msg->mutable_id(); + 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; + } + // string org = 2; + case 2: { + if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectIdentifier.org"); + object = msg->mutable_org(); + 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 ProjectIdentifier::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.ProjectIdentifier) + 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)) { + // string id = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_id())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->id().data(), static_cast(this->id().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectIdentifier.id")); + } else { + goto handle_unusual; + } + break; + } + + // string org = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectIdentifier.org")); + } 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.ProjectIdentifier) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ProjectIdentifier) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ProjectIdentifier::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ProjectIdentifier) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string id = 1; + if (this->id().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->id().data(), static_cast(this->id().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectIdentifier.id"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 1, this->id(), output); + } + + // string org = 2; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectIdentifier.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 2, this->org(), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ProjectIdentifier) +} + +::google::protobuf::uint8* ProjectIdentifier::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ProjectIdentifier) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string id = 1; + if (this->id().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->id().data(), static_cast(this->id().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectIdentifier.id"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 1, this->id(), target); + } + + // string org = 2; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectIdentifier.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 2, this->org(), 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.ProjectIdentifier) + return target; +} + +size_t ProjectIdentifier::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ProjectIdentifier) + 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 id = 1; + if (this->id().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->id()); + } + + // string org = 2; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ProjectIdentifier::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ProjectIdentifier) + GOOGLE_DCHECK_NE(&from, this); + const ProjectIdentifier* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ProjectIdentifier) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ProjectIdentifier) + MergeFrom(*source); + } +} + +void ProjectIdentifier::MergeFrom(const ProjectIdentifier& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ProjectIdentifier) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.id().size() > 0) { + + id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_); + } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } +} + +void ProjectIdentifier::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ProjectIdentifier) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ProjectIdentifier::CopyFrom(const ProjectIdentifier& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ProjectIdentifier) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ProjectIdentifier::IsInitialized() const { + return true; +} + +void ProjectIdentifier::Swap(ProjectIdentifier* other) { + if (other == this) return; + InternalSwap(other); +} +void ProjectIdentifier::InternalSwap(ProjectIdentifier* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::google::protobuf::Metadata ProjectIdentifier::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fproject_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fproject_2eproto[kIndexInFileMessages]; +} + + // =================================================================== void Project::InitAsDefaultInstance() { ::flyteidl::admin::_Project_default_instance_._instance.get_mutable()->labels_ = const_cast< ::flyteidl::admin::Labels*>( ::flyteidl::admin::Labels::internal_default_instance()); + ::flyteidl::admin::_Project_default_instance_._instance.get_mutable()->identifier_ = const_cast< ::flyteidl::admin::ProjectIdentifier*>( + ::flyteidl::admin::ProjectIdentifier::internal_default_instance()); } class Project::HasBitSetters { public: static const ::flyteidl::admin::Labels& labels(const Project* msg); + static const ::flyteidl::admin::ProjectIdentifier& identifier(const Project* msg); }; const ::flyteidl::admin::Labels& Project::HasBitSetters::labels(const Project* msg) { return *msg->labels_; } +const ::flyteidl::admin::ProjectIdentifier& +Project::HasBitSetters::identifier(const Project* msg) { + return *msg->identifier_; +} void Project::clear_labels() { if (GetArenaNoVirtual() == nullptr && labels_ != nullptr) { delete labels_; @@ -708,6 +1119,7 @@ const int Project::kDomainsFieldNumber; const int Project::kDescriptionFieldNumber; const int Project::kLabelsFieldNumber; const int Project::kStateFieldNumber; +const int Project::kIdentifierFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 Project::Project() @@ -737,6 +1149,11 @@ Project::Project(const Project& from) } else { labels_ = nullptr; } + if (from.has_identifier()) { + identifier_ = new ::flyteidl::admin::ProjectIdentifier(*from.identifier_); + } else { + identifier_ = nullptr; + } state_ = from.state_; // @@protoc_insertion_point(copy_constructor:flyteidl.admin.Project) } @@ -762,6 +1179,7 @@ void Project::SharedDtor() { name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete labels_; + if (this != internal_default_instance()) delete identifier_; } void Project::SetCachedSize(int size) const { @@ -787,6 +1205,10 @@ void Project::Clear() { delete labels_; } labels_ = nullptr; + if (GetArenaNoVirtual() == nullptr && identifier_ != nullptr) { + delete identifier_; + } + identifier_ = nullptr; state_ = 0; _internal_metadata_.Clear(); } @@ -804,7 +1226,7 @@ const char* Project::_InternalParse(const char* begin, const char* end, void* ob ptr = ::google::protobuf::io::Parse32(ptr, &tag); GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); switch (tag >> 3) { - // string id = 1; + // string id = 1 [deprecated = true]; case 1: { if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; ptr = ::google::protobuf::io::ReadSize(ptr, &size); @@ -889,6 +1311,19 @@ const char* Project::_InternalParse(const char* begin, const char* end, void* ob GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); break; } + // .flyteidl.admin.ProjectIdentifier identifier = 7; + case 7: { + if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::admin::ProjectIdentifier::_InternalParse; + object = msg->mutable_identifier(); + 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) { @@ -923,7 +1358,7 @@ bool Project::MergePartialFromCodedStream( tag = p.first; if (!p.second) goto handle_unusual; switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // string id = 1; + // string id = 1 [deprecated = true]; case 1: { if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { DO_(::google::protobuf::internal::WireFormatLite::ReadString( @@ -1004,6 +1439,17 @@ bool Project::MergePartialFromCodedStream( break; } + // .flyteidl.admin.ProjectIdentifier identifier = 7; + case 7: { + if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_identifier())); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -1031,7 +1477,7 @@ void Project::SerializeWithCachedSizes( ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; - // string id = 1; + // string id = 1 [deprecated = true]; if (this->id().size() > 0) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->id().data(), static_cast(this->id().length()), @@ -1082,6 +1528,12 @@ void Project::SerializeWithCachedSizes( 6, this->state(), output); } + // .flyteidl.admin.ProjectIdentifier identifier = 7; + if (this->has_identifier()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 7, HasBitSetters::identifier(this), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -1095,7 +1547,7 @@ ::google::protobuf::uint8* Project::InternalSerializeWithCachedSizesToArray( ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; - // string id = 1; + // string id = 1 [deprecated = true]; if (this->id().size() > 0) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->id().data(), static_cast(this->id().length()), @@ -1149,6 +1601,13 @@ ::google::protobuf::uint8* Project::InternalSerializeWithCachedSizesToArray( 6, this->state(), target); } + // .flyteidl.admin.ProjectIdentifier identifier = 7; + if (this->has_identifier()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 7, HasBitSetters::identifier(this), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -1181,7 +1640,7 @@ size_t Project::ByteSizeLong() const { } } - // string id = 1; + // string id = 1 [deprecated = true]; if (this->id().size() > 0) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize( @@ -1209,6 +1668,13 @@ size_t Project::ByteSizeLong() const { *labels_); } + // .flyteidl.admin.ProjectIdentifier identifier = 7; + if (this->has_identifier()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *identifier_); + } + // .flyteidl.admin.Project.ProjectState state = 6; if (this->state() != 0) { total_size += 1 + @@ -1258,6 +1724,9 @@ void Project::MergeFrom(const Project& from) { if (from.has_labels()) { mutable_labels()->::flyteidl::admin::Labels::MergeFrom(from.labels()); } + if (from.has_identifier()) { + mutable_identifier()->::flyteidl::admin::ProjectIdentifier::MergeFrom(from.identifier()); + } if (from.state() != 0) { set_state(from.state()); } @@ -1296,6 +1765,7 @@ void Project::InternalSwap(Project* other) { description_.Swap(&other->description_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); swap(labels_, other->labels_); + swap(identifier_, other->identifier_); swap(state_, other->state_); } @@ -2864,6 +3334,9 @@ namespace protobuf { template<> PROTOBUF_NOINLINE ::flyteidl::admin::Domain* Arena::CreateMaybeMessage< ::flyteidl::admin::Domain >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::admin::Domain >(arena); } +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ProjectIdentifier* Arena::CreateMaybeMessage< ::flyteidl::admin::ProjectIdentifier >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ProjectIdentifier >(arena); +} template<> PROTOBUF_NOINLINE ::flyteidl::admin::Project* Arena::CreateMaybeMessage< ::flyteidl::admin::Project >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::admin::Project >(arena); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h index b1fa7e9e3b..22e211a4f0 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h @@ -43,7 +43,7 @@ struct TableStruct_flyteidl_2fadmin_2fproject_2eproto { PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::google::protobuf::internal::ParseTable schema[7] + static const ::google::protobuf::internal::ParseTable schema[8] PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::FieldMetadata field_metadata[]; static const ::google::protobuf::internal::SerializationTable serialization_table[]; @@ -58,6 +58,9 @@ extern DomainDefaultTypeInternal _Domain_default_instance_; class Project; class ProjectDefaultTypeInternal; extern ProjectDefaultTypeInternal _Project_default_instance_; +class ProjectIdentifier; +class ProjectIdentifierDefaultTypeInternal; +extern ProjectIdentifierDefaultTypeInternal _ProjectIdentifier_default_instance_; class ProjectListRequest; class ProjectListRequestDefaultTypeInternal; extern ProjectListRequestDefaultTypeInternal _ProjectListRequest_default_instance_; @@ -79,6 +82,7 @@ namespace google { namespace protobuf { template<> ::flyteidl::admin::Domain* Arena::CreateMaybeMessage<::flyteidl::admin::Domain>(Arena*); template<> ::flyteidl::admin::Project* Arena::CreateMaybeMessage<::flyteidl::admin::Project>(Arena*); +template<> ::flyteidl::admin::ProjectIdentifier* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectIdentifier>(Arena*); template<> ::flyteidl::admin::ProjectListRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectListRequest>(Arena*); template<> ::flyteidl::admin::ProjectRegisterRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectRegisterRequest>(Arena*); template<> ::flyteidl::admin::ProjectRegisterResponse* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectRegisterResponse>(Arena*); @@ -248,6 +252,141 @@ class Domain final : }; // ------------------------------------------------------------------- +class ProjectIdentifier final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ProjectIdentifier) */ { + public: + ProjectIdentifier(); + virtual ~ProjectIdentifier(); + + ProjectIdentifier(const ProjectIdentifier& from); + + inline ProjectIdentifier& operator=(const ProjectIdentifier& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ProjectIdentifier(ProjectIdentifier&& from) noexcept + : ProjectIdentifier() { + *this = ::std::move(from); + } + + inline ProjectIdentifier& operator=(ProjectIdentifier&& 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 ProjectIdentifier& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ProjectIdentifier* internal_default_instance() { + return reinterpret_cast( + &_ProjectIdentifier_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + void Swap(ProjectIdentifier* other); + friend void swap(ProjectIdentifier& a, ProjectIdentifier& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ProjectIdentifier* New() const final { + return CreateMaybeMessage(nullptr); + } + + ProjectIdentifier* 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 ProjectIdentifier& from); + void MergeFrom(const ProjectIdentifier& 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(ProjectIdentifier* 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 id = 1; + void clear_id(); + static const int kIdFieldNumber = 1; + const ::std::string& id() const; + void set_id(const ::std::string& value); + #if LANG_CXX11 + void set_id(::std::string&& value); + #endif + void set_id(const char* value); + void set_id(const char* value, size_t size); + ::std::string* mutable_id(); + ::std::string* release_id(); + void set_allocated_id(::std::string* id); + + // string org = 2; + void clear_org(); + static const int kOrgFieldNumber = 2; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectIdentifier) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr id_; + ::google::protobuf::internal::ArenaStringPtr org_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fproject_2eproto; +}; +// ------------------------------------------------------------------- + class Project final : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.Project) */ { public: @@ -286,7 +425,7 @@ class Project final : &_Project_default_instance_); } static constexpr int kIndexInFileMessages = - 1; + 2; void Swap(Project* other); friend void swap(Project& a, Project& b) { @@ -383,19 +522,19 @@ class Project final : const ::google::protobuf::RepeatedPtrField< ::flyteidl::admin::Domain >& domains() const; - // string id = 1; - void clear_id(); - static const int kIdFieldNumber = 1; - const ::std::string& id() const; - void set_id(const ::std::string& value); + // string id = 1 [deprecated = true]; + PROTOBUF_DEPRECATED void clear_id(); + PROTOBUF_DEPRECATED static const int kIdFieldNumber = 1; + PROTOBUF_DEPRECATED const ::std::string& id() const; + PROTOBUF_DEPRECATED void set_id(const ::std::string& value); #if LANG_CXX11 - void set_id(::std::string&& value); + PROTOBUF_DEPRECATED void set_id(::std::string&& value); #endif - void set_id(const char* value); - void set_id(const char* value, size_t size); - ::std::string* mutable_id(); - ::std::string* release_id(); - void set_allocated_id(::std::string* id); + PROTOBUF_DEPRECATED void set_id(const char* value); + PROTOBUF_DEPRECATED void set_id(const char* value, size_t size); + PROTOBUF_DEPRECATED ::std::string* mutable_id(); + PROTOBUF_DEPRECATED ::std::string* release_id(); + PROTOBUF_DEPRECATED void set_allocated_id(::std::string* id); // string name = 2; void clear_name(); @@ -434,6 +573,15 @@ class Project final : ::flyteidl::admin::Labels* mutable_labels(); void set_allocated_labels(::flyteidl::admin::Labels* labels); + // .flyteidl.admin.ProjectIdentifier identifier = 7; + bool has_identifier() const; + void clear_identifier(); + static const int kIdentifierFieldNumber = 7; + const ::flyteidl::admin::ProjectIdentifier& identifier() const; + ::flyteidl::admin::ProjectIdentifier* release_identifier(); + ::flyteidl::admin::ProjectIdentifier* mutable_identifier(); + void set_allocated_identifier(::flyteidl::admin::ProjectIdentifier* identifier); + // .flyteidl.admin.Project.ProjectState state = 6; void clear_state(); static const int kStateFieldNumber = 6; @@ -450,6 +598,7 @@ class Project final : ::google::protobuf::internal::ArenaStringPtr name_; ::google::protobuf::internal::ArenaStringPtr description_; ::flyteidl::admin::Labels* labels_; + ::flyteidl::admin::ProjectIdentifier* identifier_; int state_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fproject_2eproto; @@ -494,7 +643,7 @@ class Projects final : &_Projects_default_instance_); } static constexpr int kIndexInFileMessages = - 2; + 3; void Swap(Projects* other); friend void swap(Projects& a, Projects& b) { @@ -627,7 +776,7 @@ class ProjectListRequest final : &_ProjectListRequest_default_instance_); } static constexpr int kIndexInFileMessages = - 3; + 4; void Swap(ProjectListRequest* other); friend void swap(ProjectListRequest& a, ProjectListRequest& b) { @@ -779,7 +928,7 @@ class ProjectRegisterRequest final : &_ProjectRegisterRequest_default_instance_); } static constexpr int kIndexInFileMessages = - 4; + 5; void Swap(ProjectRegisterRequest* other); friend void swap(ProjectRegisterRequest& a, ProjectRegisterRequest& b) { @@ -894,7 +1043,7 @@ class ProjectRegisterResponse final : &_ProjectRegisterResponse_default_instance_); } static constexpr int kIndexInFileMessages = - 5; + 6; void Swap(ProjectRegisterResponse* other); friend void swap(ProjectRegisterResponse& a, ProjectRegisterResponse& b) { @@ -999,7 +1148,7 @@ class ProjectUpdateResponse final : &_ProjectUpdateResponse_default_instance_); } static constexpr int kIndexInFileMessages = - 6; + 7; void Swap(ProjectUpdateResponse* other); friend void swap(ProjectUpdateResponse& a, ProjectUpdateResponse& b) { @@ -1183,9 +1332,119 @@ inline void Domain::set_allocated_name(::std::string* name) { // ------------------------------------------------------------------- -// Project +// ProjectIdentifier // string id = 1; +inline void ProjectIdentifier::clear_id() { + id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectIdentifier::id() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectIdentifier.id) + return id_.GetNoArena(); +} +inline void ProjectIdentifier::set_id(const ::std::string& value) { + + id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectIdentifier.id) +} +#if LANG_CXX11 +inline void ProjectIdentifier::set_id(::std::string&& value) { + + id_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectIdentifier.id) +} +#endif +inline void ProjectIdentifier::set_id(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectIdentifier.id) +} +inline void ProjectIdentifier::set_id(const char* value, size_t size) { + + id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectIdentifier.id) +} +inline ::std::string* ProjectIdentifier::mutable_id() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectIdentifier.id) + return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectIdentifier::release_id() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectIdentifier.id) + + return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectIdentifier::set_allocated_id(::std::string* id) { + if (id != nullptr) { + + } else { + + } + id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectIdentifier.id) +} + +// string org = 2; +inline void ProjectIdentifier::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectIdentifier::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectIdentifier.org) + return org_.GetNoArena(); +} +inline void ProjectIdentifier::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectIdentifier.org) +} +#if LANG_CXX11 +inline void ProjectIdentifier::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectIdentifier.org) +} +#endif +inline void ProjectIdentifier::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectIdentifier.org) +} +inline void ProjectIdentifier::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectIdentifier.org) +} +inline ::std::string* ProjectIdentifier::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectIdentifier.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectIdentifier::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectIdentifier.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectIdentifier::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectIdentifier.org) +} + +// ------------------------------------------------------------------- + +// Project + +// string id = 1 [deprecated = true]; inline void Project::clear_id() { id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } @@ -1433,6 +1692,57 @@ inline void Project::set_state(::flyteidl::admin::Project_ProjectState value) { // @@protoc_insertion_point(field_set:flyteidl.admin.Project.state) } +// .flyteidl.admin.ProjectIdentifier identifier = 7; +inline bool Project::has_identifier() const { + return this != internal_default_instance() && identifier_ != nullptr; +} +inline void Project::clear_identifier() { + if (GetArenaNoVirtual() == nullptr && identifier_ != nullptr) { + delete identifier_; + } + identifier_ = nullptr; +} +inline const ::flyteidl::admin::ProjectIdentifier& Project::identifier() const { + const ::flyteidl::admin::ProjectIdentifier* p = identifier_; + // @@protoc_insertion_point(field_get:flyteidl.admin.Project.identifier) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::admin::_ProjectIdentifier_default_instance_); +} +inline ::flyteidl::admin::ProjectIdentifier* Project::release_identifier() { + // @@protoc_insertion_point(field_release:flyteidl.admin.Project.identifier) + + ::flyteidl::admin::ProjectIdentifier* temp = identifier_; + identifier_ = nullptr; + return temp; +} +inline ::flyteidl::admin::ProjectIdentifier* Project::mutable_identifier() { + + if (identifier_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::admin::ProjectIdentifier>(GetArenaNoVirtual()); + identifier_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.Project.identifier) + return identifier_; +} +inline void Project::set_allocated_identifier(::flyteidl::admin::ProjectIdentifier* identifier) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete identifier_; + } + if (identifier) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + identifier = ::google::protobuf::internal::GetOwnedMessage( + message_arena, identifier, submessage_arena); + } + + } else { + + } + identifier_ = identifier; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.Project.identifier) +} + // ------------------------------------------------------------------- // Projects @@ -1767,6 +2077,8 @@ inline void ProjectRegisterRequest::set_allocated_project(::flyteidl::admin::Pro // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.cc index ad78bb68cf..40a47623d7 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.cc @@ -173,6 +173,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_5fattrib ~0u, // no _weak_field_map_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributes, project_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributes, matching_attributes_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributes, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesUpdateRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -191,6 +192,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_5fattrib ~0u, // no _weak_field_map_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesGetRequest, project_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesGetRequest, resource_type_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesGetRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesGetResponse, _internal_metadata_), ~0u, // no _extensions_ @@ -204,6 +206,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_5fattrib ~0u, // no _weak_field_map_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesDeleteRequest, project_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesDeleteRequest, resource_type_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesDeleteRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesDeleteResponse, _internal_metadata_), ~0u, // no _extensions_ @@ -212,12 +215,12 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_5fattrib }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::ProjectAttributes)}, - { 7, -1, sizeof(::flyteidl::admin::ProjectAttributesUpdateRequest)}, - { 13, -1, sizeof(::flyteidl::admin::ProjectAttributesUpdateResponse)}, - { 18, -1, sizeof(::flyteidl::admin::ProjectAttributesGetRequest)}, - { 25, -1, sizeof(::flyteidl::admin::ProjectAttributesGetResponse)}, - { 31, -1, sizeof(::flyteidl::admin::ProjectAttributesDeleteRequest)}, - { 38, -1, sizeof(::flyteidl::admin::ProjectAttributesDeleteResponse)}, + { 8, -1, sizeof(::flyteidl::admin::ProjectAttributesUpdateRequest)}, + { 14, -1, sizeof(::flyteidl::admin::ProjectAttributesUpdateResponse)}, + { 19, -1, sizeof(::flyteidl::admin::ProjectAttributesGetRequest)}, + { 27, -1, sizeof(::flyteidl::admin::ProjectAttributesGetResponse)}, + { 33, -1, sizeof(::flyteidl::admin::ProjectAttributesDeleteRequest)}, + { 41, -1, sizeof(::flyteidl::admin::ProjectAttributesDeleteResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -239,28 +242,29 @@ ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_fl const char descriptor_table_protodef_flyteidl_2fadmin_2fproject_5fattributes_2eproto[] = "\n\'flyteidl/admin/project_attributes.prot" "o\022\016flyteidl.admin\032\'flyteidl/admin/matcha" - "ble_resource.proto\"e\n\021ProjectAttributes\022" + "ble_resource.proto\"r\n\021ProjectAttributes\022" "\017\n\007project\030\001 \001(\t\022\?\n\023matching_attributes\030" "\002 \001(\0132\".flyteidl.admin.MatchingAttribute" - "s\"W\n\036ProjectAttributesUpdateRequest\0225\n\na" - "ttributes\030\001 \001(\0132!.flyteidl.admin.Project" - "Attributes\"!\n\037ProjectAttributesUpdateRes" - "ponse\"h\n\033ProjectAttributesGetRequest\022\017\n\007" - "project\030\001 \001(\t\0228\n\rresource_type\030\002 \001(\0162!.f" - "lyteidl.admin.MatchableResource\"U\n\034Proje" - "ctAttributesGetResponse\0225\n\nattributes\030\001 " - "\001(\0132!.flyteidl.admin.ProjectAttributes\"k" - "\n\036ProjectAttributesDeleteRequest\022\017\n\007proj" - "ect\030\001 \001(\t\0228\n\rresource_type\030\002 \001(\0162!.flyte" - "idl.admin.MatchableResource\"!\n\037ProjectAt" - "tributesDeleteResponseB=Z;github.com/fly" - "teorg/flyte/flyteidl/gen/pb-go/flyteidl/" - "adminb\006proto3" + "s\022\013\n\003org\030\003 \001(\t\"W\n\036ProjectAttributesUpdat" + "eRequest\0225\n\nattributes\030\001 \001(\0132!.flyteidl." + "admin.ProjectAttributes\"!\n\037ProjectAttrib" + "utesUpdateResponse\"u\n\033ProjectAttributesG" + "etRequest\022\017\n\007project\030\001 \001(\t\0228\n\rresource_t" + "ype\030\002 \001(\0162!.flyteidl.admin.MatchableReso" + "urce\022\013\n\003org\030\003 \001(\t\"U\n\034ProjectAttributesGe" + "tResponse\0225\n\nattributes\030\001 \001(\0132!.flyteidl" + ".admin.ProjectAttributes\"x\n\036ProjectAttri" + "butesDeleteRequest\022\017\n\007project\030\001 \001(\t\0228\n\rr" + "esource_type\030\002 \001(\0162!.flyteidl.admin.Matc" + "hableResource\022\013\n\003org\030\003 \001(\t\"!\n\037ProjectAtt" + "ributesDeleteResponseB=Z;github.com/flyt" + "eorg/flyte/flyteidl/gen/pb-go/flyteidl/a" + "dminb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fproject_5fattributes_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fproject_5fattributes_2eproto, - "flyteidl/admin/project_attributes.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto, 733, + "flyteidl/admin/project_attributes.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto, 772, }; void AddDescriptors_flyteidl_2fadmin_2fproject_5fattributes_2eproto() { @@ -300,6 +304,7 @@ void ProjectAttributes::clear_matching_attributes() { #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int ProjectAttributes::kProjectFieldNumber; const int ProjectAttributes::kMatchingAttributesFieldNumber; +const int ProjectAttributes::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ProjectAttributes::ProjectAttributes() @@ -315,6 +320,10 @@ ProjectAttributes::ProjectAttributes(const ProjectAttributes& from) if (from.project().size() > 0) { project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_matching_attributes()) { matching_attributes_ = new ::flyteidl::admin::MatchingAttributes(*from.matching_attributes_); } else { @@ -327,6 +336,7 @@ void ProjectAttributes::SharedCtor() { ::google::protobuf::internal::InitSCC( &scc_info_ProjectAttributes_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); matching_attributes_ = nullptr; } @@ -337,6 +347,7 @@ ProjectAttributes::~ProjectAttributes() { void ProjectAttributes::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete matching_attributes_; } @@ -356,6 +367,7 @@ void ProjectAttributes::Clear() { (void) cached_has_bits; project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && matching_attributes_ != nullptr) { delete matching_attributes_; } @@ -405,6 +417,22 @@ const char* ProjectAttributes::_InternalParse(const char* begin, const char* end {parser_till_end, object}, ptr - size, ptr)); break; } + // string org = 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.ProjectAttributes.org"); + object = msg->mutable_org(); + 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) { @@ -465,6 +493,21 @@ bool ProjectAttributes::MergePartialFromCodedStream( break; } + // string org = 3; + case 3: { + if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectAttributes.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -508,6 +551,16 @@ void ProjectAttributes::SerializeWithCachedSizes( 2, HasBitSetters::matching_attributes(this), output); } + // string org = 3; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributes.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 3, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -539,6 +592,17 @@ ::google::protobuf::uint8* ProjectAttributes::InternalSerializeWithCachedSizesTo 2, HasBitSetters::matching_attributes(this), target); } + // string org = 3; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributes.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 3, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -567,6 +631,13 @@ size_t ProjectAttributes::ByteSizeLong() const { this->project()); } + // string org = 3; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchingAttributes matching_attributes = 2; if (this->has_matching_attributes()) { total_size += 1 + @@ -605,6 +676,10 @@ void ProjectAttributes::MergeFrom(const ProjectAttributes& from) { project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_matching_attributes()) { mutable_matching_attributes()->::flyteidl::admin::MatchingAttributes::MergeFrom(from.matching_attributes()); } @@ -637,6 +712,8 @@ void ProjectAttributes::InternalSwap(ProjectAttributes* other) { _internal_metadata_.Swap(&other->_internal_metadata_); project_.Swap(&other->project_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(matching_attributes_, other->matching_attributes_); } @@ -1153,6 +1230,7 @@ class ProjectAttributesGetRequest::HasBitSetters { #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int ProjectAttributesGetRequest::kProjectFieldNumber; const int ProjectAttributesGetRequest::kResourceTypeFieldNumber; +const int ProjectAttributesGetRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ProjectAttributesGetRequest::ProjectAttributesGetRequest() @@ -1168,6 +1246,10 @@ ProjectAttributesGetRequest::ProjectAttributesGetRequest(const ProjectAttributes if (from.project().size() > 0) { project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } resource_type_ = from.resource_type_; // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectAttributesGetRequest) } @@ -1176,6 +1258,7 @@ void ProjectAttributesGetRequest::SharedCtor() { ::google::protobuf::internal::InitSCC( &scc_info_ProjectAttributesGetRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; } @@ -1186,6 +1269,7 @@ ProjectAttributesGetRequest::~ProjectAttributesGetRequest() { void ProjectAttributesGetRequest::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void ProjectAttributesGetRequest::SetCachedSize(int size) const { @@ -1204,6 +1288,7 @@ void ProjectAttributesGetRequest::Clear() { (void) cached_has_bits; project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; _internal_metadata_.Clear(); } @@ -1245,6 +1330,22 @@ const char* ProjectAttributesGetRequest::_InternalParse(const char* begin, const GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); break; } + // string org = 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.ProjectAttributesGetRequest.org"); + object = msg->mutable_org(); + 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) { @@ -1308,6 +1409,21 @@ bool ProjectAttributesGetRequest::MergePartialFromCodedStream( break; } + // string org = 3; + case 3: { + if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectAttributesGetRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -1351,6 +1467,16 @@ void ProjectAttributesGetRequest::SerializeWithCachedSizes( 2, this->resource_type(), output); } + // string org = 3; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributesGetRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 3, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -1381,6 +1507,17 @@ ::google::protobuf::uint8* ProjectAttributesGetRequest::InternalSerializeWithCac 2, this->resource_type(), target); } + // string org = 3; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributesGetRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 3, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -1409,6 +1546,13 @@ size_t ProjectAttributesGetRequest::ByteSizeLong() const { this->project()); } + // string org = 3; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchableResource resource_type = 2; if (this->resource_type() != 0) { total_size += 1 + @@ -1446,6 +1590,10 @@ void ProjectAttributesGetRequest::MergeFrom(const ProjectAttributesGetRequest& f project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.resource_type() != 0) { set_resource_type(from.resource_type()); } @@ -1478,6 +1626,8 @@ void ProjectAttributesGetRequest::InternalSwap(ProjectAttributesGetRequest* othe _internal_metadata_.Swap(&other->_internal_metadata_); project_.Swap(&other->project_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(resource_type_, other->resource_type_); } @@ -1785,6 +1935,7 @@ class ProjectAttributesDeleteRequest::HasBitSetters { #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int ProjectAttributesDeleteRequest::kProjectFieldNumber; const int ProjectAttributesDeleteRequest::kResourceTypeFieldNumber; +const int ProjectAttributesDeleteRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ProjectAttributesDeleteRequest::ProjectAttributesDeleteRequest() @@ -1800,6 +1951,10 @@ ProjectAttributesDeleteRequest::ProjectAttributesDeleteRequest(const ProjectAttr if (from.project().size() > 0) { project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } resource_type_ = from.resource_type_; // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectAttributesDeleteRequest) } @@ -1808,6 +1963,7 @@ void ProjectAttributesDeleteRequest::SharedCtor() { ::google::protobuf::internal::InitSCC( &scc_info_ProjectAttributesDeleteRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; } @@ -1818,6 +1974,7 @@ ProjectAttributesDeleteRequest::~ProjectAttributesDeleteRequest() { void ProjectAttributesDeleteRequest::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void ProjectAttributesDeleteRequest::SetCachedSize(int size) const { @@ -1836,6 +1993,7 @@ void ProjectAttributesDeleteRequest::Clear() { (void) cached_has_bits; project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; _internal_metadata_.Clear(); } @@ -1877,6 +2035,22 @@ const char* ProjectAttributesDeleteRequest::_InternalParse(const char* begin, co GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); break; } + // string org = 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.ProjectAttributesDeleteRequest.org"); + object = msg->mutable_org(); + 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) { @@ -1940,6 +2114,21 @@ bool ProjectAttributesDeleteRequest::MergePartialFromCodedStream( break; } + // string org = 3; + case 3: { + if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectAttributesDeleteRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -1983,6 +2172,16 @@ void ProjectAttributesDeleteRequest::SerializeWithCachedSizes( 2, this->resource_type(), output); } + // string org = 3; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributesDeleteRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 3, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -2013,6 +2212,17 @@ ::google::protobuf::uint8* ProjectAttributesDeleteRequest::InternalSerializeWith 2, this->resource_type(), target); } + // string org = 3; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributesDeleteRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 3, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -2041,6 +2251,13 @@ size_t ProjectAttributesDeleteRequest::ByteSizeLong() const { this->project()); } + // string org = 3; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchableResource resource_type = 2; if (this->resource_type() != 0) { total_size += 1 + @@ -2078,6 +2295,10 @@ void ProjectAttributesDeleteRequest::MergeFrom(const ProjectAttributesDeleteRequ project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.resource_type() != 0) { set_resource_type(from.resource_type()); } @@ -2110,6 +2331,8 @@ void ProjectAttributesDeleteRequest::InternalSwap(ProjectAttributesDeleteRequest _internal_metadata_.Swap(&other->_internal_metadata_); project_.Swap(&other->project_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(resource_type_, other->resource_type_); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.h index 3c859a5e4a..af00e25767 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.h @@ -199,6 +199,20 @@ class ProjectAttributes final : ::std::string* release_project(); void set_allocated_project(::std::string* project); + // string org = 3; + void clear_org(); + static const int kOrgFieldNumber = 3; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchingAttributes matching_attributes = 2; bool has_matching_attributes() const; void clear_matching_attributes(); @@ -214,6 +228,7 @@ class ProjectAttributes final : ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; ::google::protobuf::internal::ArenaStringPtr project_; + ::google::protobuf::internal::ArenaStringPtr org_; ::flyteidl::admin::MatchingAttributes* matching_attributes_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto; @@ -549,6 +564,20 @@ class ProjectAttributesGetRequest final : ::std::string* release_project(); void set_allocated_project(::std::string* project); + // string org = 3; + void clear_org(); + static const int kOrgFieldNumber = 3; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchableResource resource_type = 2; void clear_resource_type(); static const int kResourceTypeFieldNumber = 2; @@ -561,6 +590,7 @@ class ProjectAttributesGetRequest final : ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; ::google::protobuf::internal::ArenaStringPtr project_; + ::google::protobuf::internal::ArenaStringPtr org_; int resource_type_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto; @@ -791,6 +821,20 @@ class ProjectAttributesDeleteRequest final : ::std::string* release_project(); void set_allocated_project(::std::string* project); + // string org = 3; + void clear_org(); + static const int kOrgFieldNumber = 3; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchableResource resource_type = 2; void clear_resource_type(); static const int kResourceTypeFieldNumber = 2; @@ -803,6 +847,7 @@ class ProjectAttributesDeleteRequest final : ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; ::google::protobuf::internal::ArenaStringPtr project_; + ::google::protobuf::internal::ArenaStringPtr org_; int resource_type_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto; @@ -1021,6 +1066,59 @@ inline void ProjectAttributes::set_allocated_matching_attributes(::flyteidl::adm // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectAttributes.matching_attributes) } +// string org = 3; +inline void ProjectAttributes::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectAttributes::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributes.org) + return org_.GetNoArena(); +} +inline void ProjectAttributes::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectAttributes.org) +} +#if LANG_CXX11 +inline void ProjectAttributes::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectAttributes.org) +} +#endif +inline void ProjectAttributes::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectAttributes.org) +} +inline void ProjectAttributes::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectAttributes.org) +} +inline ::std::string* ProjectAttributes::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectAttributes.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectAttributes::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectAttributes.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectAttributes::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectAttributes.org) +} + // ------------------------------------------------------------------- // ProjectAttributesUpdateRequest @@ -1151,6 +1249,59 @@ inline void ProjectAttributesGetRequest::set_resource_type(::flyteidl::admin::Ma // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectAttributesGetRequest.resource_type) } +// string org = 3; +inline void ProjectAttributesGetRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectAttributesGetRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributesGetRequest.org) + return org_.GetNoArena(); +} +inline void ProjectAttributesGetRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectAttributesGetRequest.org) +} +#if LANG_CXX11 +inline void ProjectAttributesGetRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectAttributesGetRequest.org) +} +#endif +inline void ProjectAttributesGetRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectAttributesGetRequest.org) +} +inline void ProjectAttributesGetRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectAttributesGetRequest.org) +} +inline ::std::string* ProjectAttributesGetRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectAttributesGetRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectAttributesGetRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectAttributesGetRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectAttributesGetRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectAttributesGetRequest.org) +} + // ------------------------------------------------------------------- // ProjectAttributesGetResponse @@ -1277,6 +1428,59 @@ inline void ProjectAttributesDeleteRequest::set_resource_type(::flyteidl::admin: // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectAttributesDeleteRequest.resource_type) } +// string org = 3; +inline void ProjectAttributesDeleteRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectAttributesDeleteRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributesDeleteRequest.org) + return org_.GetNoArena(); +} +inline void ProjectAttributesDeleteRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectAttributesDeleteRequest.org) +} +#if LANG_CXX11 +inline void ProjectAttributesDeleteRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectAttributesDeleteRequest.org) +} +#endif +inline void ProjectAttributesDeleteRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectAttributesDeleteRequest.org) +} +inline void ProjectAttributesDeleteRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectAttributesDeleteRequest.org) +} +inline ::std::string* ProjectAttributesDeleteRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectAttributesDeleteRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectAttributesDeleteRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectAttributesDeleteRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectAttributesDeleteRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectAttributesDeleteRequest.org) +} + // ------------------------------------------------------------------- // ProjectAttributesDeleteResponse diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project_domain_attributes.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/project_domain_attributes.pb.cc index 6de4670235..25b576c211 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/project_domain_attributes.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project_domain_attributes.pb.cc @@ -174,6 +174,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_5fdomain PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributes, project_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributes, domain_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributes, matching_attributes_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributes, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesUpdateRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -193,6 +194,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_5fdomain PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesGetRequest, project_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesGetRequest, domain_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesGetRequest, resource_type_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesGetRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesGetResponse, _internal_metadata_), ~0u, // no _extensions_ @@ -207,6 +209,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_5fdomain PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesDeleteRequest, project_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesDeleteRequest, domain_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesDeleteRequest, resource_type_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesDeleteRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectDomainAttributesDeleteResponse, _internal_metadata_), ~0u, // no _extensions_ @@ -215,12 +218,12 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_5fdomain }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::ProjectDomainAttributes)}, - { 8, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesUpdateRequest)}, - { 14, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesUpdateResponse)}, - { 19, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesGetRequest)}, - { 27, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesGetResponse)}, - { 33, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesDeleteRequest)}, - { 41, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesDeleteResponse)}, + { 9, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesUpdateRequest)}, + { 15, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesUpdateResponse)}, + { 20, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesGetRequest)}, + { 29, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesGetResponse)}, + { 35, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesDeleteRequest)}, + { 44, -1, sizeof(::flyteidl::admin::ProjectDomainAttributesDeleteResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -242,31 +245,32 @@ ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_fl const char descriptor_table_protodef_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto[] = "\n.flyteidl/admin/project_domain_attribut" "es.proto\022\016flyteidl.admin\032\'flyteidl/admin" - "/matchable_resource.proto\"{\n\027ProjectDoma" - "inAttributes\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030" - "\002 \001(\t\022\?\n\023matching_attributes\030\003 \001(\0132\".fly" - "teidl.admin.MatchingAttributes\"c\n$Projec" - "tDomainAttributesUpdateRequest\022;\n\nattrib" - "utes\030\001 \001(\0132\'.flyteidl.admin.ProjectDomai" - "nAttributes\"\'\n%ProjectDomainAttributesUp" - "dateResponse\"~\n!ProjectDomainAttributesG" - "etRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001" - "(\t\0228\n\rresource_type\030\003 \001(\0162!.flyteidl.adm" - "in.MatchableResource\"a\n\"ProjectDomainAtt" - "ributesGetResponse\022;\n\nattributes\030\001 \001(\0132\'" - ".flyteidl.admin.ProjectDomainAttributes\"" - "\201\001\n$ProjectDomainAttributesDeleteRequest" - "\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\0228\n\rres" - "ource_type\030\003 \001(\0162!.flyteidl.admin.Matcha" - "bleResource\"\'\n%ProjectDomainAttributesDe" - "leteResponseB=Z;github.com/flyteorg/flyt" - "e/flyteidl/gen/pb-go/flyteidl/adminb\006pro" - "to3" + "/matchable_resource.proto\"\210\001\n\027ProjectDom" + "ainAttributes\022\017\n\007project\030\001 \001(\t\022\016\n\006domain" + "\030\002 \001(\t\022\?\n\023matching_attributes\030\003 \001(\0132\".fl" + "yteidl.admin.MatchingAttributes\022\013\n\003org\030\004" + " \001(\t\"c\n$ProjectDomainAttributesUpdateReq" + "uest\022;\n\nattributes\030\001 \001(\0132\'.flyteidl.admi" + "n.ProjectDomainAttributes\"\'\n%ProjectDoma" + "inAttributesUpdateResponse\"\213\001\n!ProjectDo" + "mainAttributesGetRequest\022\017\n\007project\030\001 \001(" + "\t\022\016\n\006domain\030\002 \001(\t\0228\n\rresource_type\030\003 \001(\016" + "2!.flyteidl.admin.MatchableResource\022\013\n\003o" + "rg\030\004 \001(\t\"a\n\"ProjectDomainAttributesGetRe" + "sponse\022;\n\nattributes\030\001 \001(\0132\'.flyteidl.ad" + "min.ProjectDomainAttributes\"\216\001\n$ProjectD" + "omainAttributesDeleteRequest\022\017\n\007project\030" + "\001 \001(\t\022\016\n\006domain\030\002 \001(\t\0228\n\rresource_type\030\003" + " \001(\0162!.flyteidl.admin.MatchableResource\022" + "\013\n\003org\030\004 \001(\t\"\'\n%ProjectDomainAttributesD" + "eleteResponseB=Z;github.com/flyteorg/fly" + "te/flyteidl/gen/pb-go/flyteidl/adminb\006pr" + "oto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto, - "flyteidl/admin/project_domain_attributes.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto, 843, + "flyteidl/admin/project_domain_attributes.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto, 884, }; void AddDescriptors_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto() { @@ -307,6 +311,7 @@ void ProjectDomainAttributes::clear_matching_attributes() { const int ProjectDomainAttributes::kProjectFieldNumber; const int ProjectDomainAttributes::kDomainFieldNumber; const int ProjectDomainAttributes::kMatchingAttributesFieldNumber; +const int ProjectDomainAttributes::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ProjectDomainAttributes::ProjectDomainAttributes() @@ -326,6 +331,10 @@ ProjectDomainAttributes::ProjectDomainAttributes(const ProjectDomainAttributes& if (from.domain().size() > 0) { domain_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.domain_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_matching_attributes()) { matching_attributes_ = new ::flyteidl::admin::MatchingAttributes(*from.matching_attributes_); } else { @@ -339,6 +348,7 @@ void ProjectDomainAttributes::SharedCtor() { &scc_info_ProjectDomainAttributes_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto.base); project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); matching_attributes_ = nullptr; } @@ -350,6 +360,7 @@ ProjectDomainAttributes::~ProjectDomainAttributes() { void ProjectDomainAttributes::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete matching_attributes_; } @@ -370,6 +381,7 @@ void ProjectDomainAttributes::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && matching_attributes_ != nullptr) { delete matching_attributes_; } @@ -435,6 +447,22 @@ const char* ProjectDomainAttributes::_InternalParse(const char* begin, const cha {parser_till_end, object}, ptr - size, ptr)); break; } + // string org = 4; + case 4: { + if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectDomainAttributes.org"); + object = msg->mutable_org(); + 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) { @@ -510,6 +538,21 @@ bool ProjectDomainAttributes::MergePartialFromCodedStream( break; } + // string org = 4; + case 4: { + if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectDomainAttributes.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -563,6 +606,16 @@ void ProjectDomainAttributes::SerializeWithCachedSizes( 3, HasBitSetters::matching_attributes(this), output); } + // string org = 4; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectDomainAttributes.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 4, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -605,6 +658,17 @@ ::google::protobuf::uint8* ProjectDomainAttributes::InternalSerializeWithCachedS 3, HasBitSetters::matching_attributes(this), target); } + // string org = 4; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectDomainAttributes.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 4, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -640,6 +704,13 @@ size_t ProjectDomainAttributes::ByteSizeLong() const { this->domain()); } + // string org = 4; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchingAttributes matching_attributes = 3; if (this->has_matching_attributes()) { total_size += 1 + @@ -682,6 +753,10 @@ void ProjectDomainAttributes::MergeFrom(const ProjectDomainAttributes& from) { domain_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.domain_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_matching_attributes()) { mutable_matching_attributes()->::flyteidl::admin::MatchingAttributes::MergeFrom(from.matching_attributes()); } @@ -716,6 +791,8 @@ void ProjectDomainAttributes::InternalSwap(ProjectDomainAttributes* other) { GetArenaNoVirtual()); domain_.Swap(&other->domain_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(matching_attributes_, other->matching_attributes_); } @@ -1233,6 +1310,7 @@ class ProjectDomainAttributesGetRequest::HasBitSetters { const int ProjectDomainAttributesGetRequest::kProjectFieldNumber; const int ProjectDomainAttributesGetRequest::kDomainFieldNumber; const int ProjectDomainAttributesGetRequest::kResourceTypeFieldNumber; +const int ProjectDomainAttributesGetRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ProjectDomainAttributesGetRequest::ProjectDomainAttributesGetRequest() @@ -1252,6 +1330,10 @@ ProjectDomainAttributesGetRequest::ProjectDomainAttributesGetRequest(const Proje if (from.domain().size() > 0) { domain_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.domain_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } resource_type_ = from.resource_type_; // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectDomainAttributesGetRequest) } @@ -1261,6 +1343,7 @@ void ProjectDomainAttributesGetRequest::SharedCtor() { &scc_info_ProjectDomainAttributesGetRequest_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto.base); project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; } @@ -1272,6 +1355,7 @@ ProjectDomainAttributesGetRequest::~ProjectDomainAttributesGetRequest() { void ProjectDomainAttributesGetRequest::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void ProjectDomainAttributesGetRequest::SetCachedSize(int size) const { @@ -1291,6 +1375,7 @@ void ProjectDomainAttributesGetRequest::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; _internal_metadata_.Clear(); } @@ -1348,6 +1433,22 @@ const char* ProjectDomainAttributesGetRequest::_InternalParse(const char* begin, GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); break; } + // string org = 4; + case 4: { + if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectDomainAttributesGetRequest.org"); + object = msg->mutable_org(); + 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) { @@ -1426,6 +1527,21 @@ bool ProjectDomainAttributesGetRequest::MergePartialFromCodedStream( break; } + // string org = 4; + case 4: { + if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectDomainAttributesGetRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -1479,6 +1595,16 @@ void ProjectDomainAttributesGetRequest::SerializeWithCachedSizes( 3, this->resource_type(), output); } + // string org = 4; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectDomainAttributesGetRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 4, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -1520,6 +1646,17 @@ ::google::protobuf::uint8* ProjectDomainAttributesGetRequest::InternalSerializeW 3, this->resource_type(), target); } + // string org = 4; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectDomainAttributesGetRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 4, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -1555,6 +1692,13 @@ size_t ProjectDomainAttributesGetRequest::ByteSizeLong() const { this->domain()); } + // string org = 4; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchableResource resource_type = 3; if (this->resource_type() != 0) { total_size += 1 + @@ -1596,6 +1740,10 @@ void ProjectDomainAttributesGetRequest::MergeFrom(const ProjectDomainAttributesG domain_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.domain_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.resource_type() != 0) { set_resource_type(from.resource_type()); } @@ -1630,6 +1778,8 @@ void ProjectDomainAttributesGetRequest::InternalSwap(ProjectDomainAttributesGetR GetArenaNoVirtual()); domain_.Swap(&other->domain_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(resource_type_, other->resource_type_); } @@ -1938,6 +2088,7 @@ class ProjectDomainAttributesDeleteRequest::HasBitSetters { const int ProjectDomainAttributesDeleteRequest::kProjectFieldNumber; const int ProjectDomainAttributesDeleteRequest::kDomainFieldNumber; const int ProjectDomainAttributesDeleteRequest::kResourceTypeFieldNumber; +const int ProjectDomainAttributesDeleteRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ProjectDomainAttributesDeleteRequest::ProjectDomainAttributesDeleteRequest() @@ -1957,6 +2108,10 @@ ProjectDomainAttributesDeleteRequest::ProjectDomainAttributesDeleteRequest(const if (from.domain().size() > 0) { domain_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.domain_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } resource_type_ = from.resource_type_; // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectDomainAttributesDeleteRequest) } @@ -1966,6 +2121,7 @@ void ProjectDomainAttributesDeleteRequest::SharedCtor() { &scc_info_ProjectDomainAttributesDeleteRequest_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto.base); project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; } @@ -1977,6 +2133,7 @@ ProjectDomainAttributesDeleteRequest::~ProjectDomainAttributesDeleteRequest() { void ProjectDomainAttributesDeleteRequest::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void ProjectDomainAttributesDeleteRequest::SetCachedSize(int size) const { @@ -1996,6 +2153,7 @@ void ProjectDomainAttributesDeleteRequest::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; _internal_metadata_.Clear(); } @@ -2053,6 +2211,22 @@ const char* ProjectDomainAttributesDeleteRequest::_InternalParse(const char* beg GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); break; } + // string org = 4; + case 4: { + if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectDomainAttributesDeleteRequest.org"); + object = msg->mutable_org(); + 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) { @@ -2131,6 +2305,21 @@ bool ProjectDomainAttributesDeleteRequest::MergePartialFromCodedStream( break; } + // string org = 4; + case 4: { + if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectDomainAttributesDeleteRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -2184,6 +2373,16 @@ void ProjectDomainAttributesDeleteRequest::SerializeWithCachedSizes( 3, this->resource_type(), output); } + // string org = 4; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectDomainAttributesDeleteRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 4, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -2225,6 +2424,17 @@ ::google::protobuf::uint8* ProjectDomainAttributesDeleteRequest::InternalSeriali 3, this->resource_type(), target); } + // string org = 4; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectDomainAttributesDeleteRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 4, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -2260,6 +2470,13 @@ size_t ProjectDomainAttributesDeleteRequest::ByteSizeLong() const { this->domain()); } + // string org = 4; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchableResource resource_type = 3; if (this->resource_type() != 0) { total_size += 1 + @@ -2301,6 +2518,10 @@ void ProjectDomainAttributesDeleteRequest::MergeFrom(const ProjectDomainAttribut domain_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.domain_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.resource_type() != 0) { set_resource_type(from.resource_type()); } @@ -2335,6 +2556,8 @@ void ProjectDomainAttributesDeleteRequest::InternalSwap(ProjectDomainAttributesD GetArenaNoVirtual()); domain_.Swap(&other->domain_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(resource_type_, other->resource_type_); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project_domain_attributes.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/project_domain_attributes.pb.h index 3ad739b9dd..aa27ef3a0a 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/project_domain_attributes.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project_domain_attributes.pb.h @@ -213,6 +213,20 @@ class ProjectDomainAttributes final : ::std::string* release_domain(); void set_allocated_domain(::std::string* domain); + // string org = 4; + void clear_org(); + static const int kOrgFieldNumber = 4; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchingAttributes matching_attributes = 3; bool has_matching_attributes() const; void clear_matching_attributes(); @@ -229,6 +243,7 @@ class ProjectDomainAttributes final : ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr domain_; + ::google::protobuf::internal::ArenaStringPtr org_; ::flyteidl::admin::MatchingAttributes* matching_attributes_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto; @@ -578,6 +593,20 @@ class ProjectDomainAttributesGetRequest final : ::std::string* release_domain(); void set_allocated_domain(::std::string* domain); + // string org = 4; + void clear_org(); + static const int kOrgFieldNumber = 4; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchableResource resource_type = 3; void clear_resource_type(); static const int kResourceTypeFieldNumber = 3; @@ -591,6 +620,7 @@ class ProjectDomainAttributesGetRequest final : ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr domain_; + ::google::protobuf::internal::ArenaStringPtr org_; int resource_type_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto; @@ -835,6 +865,20 @@ class ProjectDomainAttributesDeleteRequest final : ::std::string* release_domain(); void set_allocated_domain(::std::string* domain); + // string org = 4; + void clear_org(); + static const int kOrgFieldNumber = 4; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchableResource resource_type = 3; void clear_resource_type(); static const int kResourceTypeFieldNumber = 3; @@ -848,6 +892,7 @@ class ProjectDomainAttributesDeleteRequest final : ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr domain_; + ::google::protobuf::internal::ArenaStringPtr org_; int resource_type_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fdomain_5fattributes_2eproto; @@ -1119,6 +1164,59 @@ inline void ProjectDomainAttributes::set_allocated_matching_attributes(::flyteid // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectDomainAttributes.matching_attributes) } +// string org = 4; +inline void ProjectDomainAttributes::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectDomainAttributes::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectDomainAttributes.org) + return org_.GetNoArena(); +} +inline void ProjectDomainAttributes::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectDomainAttributes.org) +} +#if LANG_CXX11 +inline void ProjectDomainAttributes::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectDomainAttributes.org) +} +#endif +inline void ProjectDomainAttributes::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectDomainAttributes.org) +} +inline void ProjectDomainAttributes::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectDomainAttributes.org) +} +inline ::std::string* ProjectDomainAttributes::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectDomainAttributes.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectDomainAttributes::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectDomainAttributes.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectDomainAttributes::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectDomainAttributes.org) +} + // ------------------------------------------------------------------- // ProjectDomainAttributesUpdateRequest @@ -1302,6 +1400,59 @@ inline void ProjectDomainAttributesGetRequest::set_resource_type(::flyteidl::adm // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectDomainAttributesGetRequest.resource_type) } +// string org = 4; +inline void ProjectDomainAttributesGetRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectDomainAttributesGetRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectDomainAttributesGetRequest.org) + return org_.GetNoArena(); +} +inline void ProjectDomainAttributesGetRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectDomainAttributesGetRequest.org) +} +#if LANG_CXX11 +inline void ProjectDomainAttributesGetRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectDomainAttributesGetRequest.org) +} +#endif +inline void ProjectDomainAttributesGetRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectDomainAttributesGetRequest.org) +} +inline void ProjectDomainAttributesGetRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectDomainAttributesGetRequest.org) +} +inline ::std::string* ProjectDomainAttributesGetRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectDomainAttributesGetRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectDomainAttributesGetRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectDomainAttributesGetRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectDomainAttributesGetRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectDomainAttributesGetRequest.org) +} + // ------------------------------------------------------------------- // ProjectDomainAttributesGetResponse @@ -1481,6 +1632,59 @@ inline void ProjectDomainAttributesDeleteRequest::set_resource_type(::flyteidl:: // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectDomainAttributesDeleteRequest.resource_type) } +// string org = 4; +inline void ProjectDomainAttributesDeleteRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectDomainAttributesDeleteRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectDomainAttributesDeleteRequest.org) + return org_.GetNoArena(); +} +inline void ProjectDomainAttributesDeleteRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectDomainAttributesDeleteRequest.org) +} +#if LANG_CXX11 +inline void ProjectDomainAttributesDeleteRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectDomainAttributesDeleteRequest.org) +} +#endif +inline void ProjectDomainAttributesDeleteRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectDomainAttributesDeleteRequest.org) +} +inline void ProjectDomainAttributesDeleteRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectDomainAttributesDeleteRequest.org) +} +inline ::std::string* ProjectDomainAttributesDeleteRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectDomainAttributesDeleteRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectDomainAttributesDeleteRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectDomainAttributesDeleteRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectDomainAttributesDeleteRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectDomainAttributesDeleteRequest.org) +} + // ------------------------------------------------------------------- // ProjectDomainAttributesDeleteResponse diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/workflow_attributes.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/workflow_attributes.pb.cc index 0a85bfeb1d..f181c74738 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/workflow_attributes.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/workflow_attributes.pb.cc @@ -175,6 +175,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fworkflow_5fattri PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributes, domain_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributes, workflow_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributes, matching_attributes_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributes, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesUpdateRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -195,6 +196,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fworkflow_5fattri PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesGetRequest, domain_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesGetRequest, workflow_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesGetRequest, resource_type_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesGetRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesGetResponse, _internal_metadata_), ~0u, // no _extensions_ @@ -210,6 +212,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fworkflow_5fattri PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesDeleteRequest, domain_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesDeleteRequest, workflow_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesDeleteRequest, resource_type_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesDeleteRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowAttributesDeleteResponse, _internal_metadata_), ~0u, // no _extensions_ @@ -218,12 +221,12 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fworkflow_5fattri }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::WorkflowAttributes)}, - { 9, -1, sizeof(::flyteidl::admin::WorkflowAttributesUpdateRequest)}, - { 15, -1, sizeof(::flyteidl::admin::WorkflowAttributesUpdateResponse)}, - { 20, -1, sizeof(::flyteidl::admin::WorkflowAttributesGetRequest)}, - { 29, -1, sizeof(::flyteidl::admin::WorkflowAttributesGetResponse)}, - { 35, -1, sizeof(::flyteidl::admin::WorkflowAttributesDeleteRequest)}, - { 44, -1, sizeof(::flyteidl::admin::WorkflowAttributesDeleteResponse)}, + { 10, -1, sizeof(::flyteidl::admin::WorkflowAttributesUpdateRequest)}, + { 16, -1, sizeof(::flyteidl::admin::WorkflowAttributesUpdateResponse)}, + { 21, -1, sizeof(::flyteidl::admin::WorkflowAttributesGetRequest)}, + { 31, -1, sizeof(::flyteidl::admin::WorkflowAttributesGetResponse)}, + { 37, -1, sizeof(::flyteidl::admin::WorkflowAttributesDeleteRequest)}, + { 47, -1, sizeof(::flyteidl::admin::WorkflowAttributesDeleteResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -245,31 +248,32 @@ ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_fl const char descriptor_table_protodef_flyteidl_2fadmin_2fworkflow_5fattributes_2eproto[] = "\n(flyteidl/admin/workflow_attributes.pro" "to\022\016flyteidl.admin\032\'flyteidl/admin/match" - "able_resource.proto\"\210\001\n\022WorkflowAttribut" + "able_resource.proto\"\225\001\n\022WorkflowAttribut" "es\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\020\n\010w" "orkflow\030\003 \001(\t\022\?\n\023matching_attributes\030\004 \001" - "(\0132\".flyteidl.admin.MatchingAttributes\"Y" - "\n\037WorkflowAttributesUpdateRequest\0226\n\natt" - "ributes\030\001 \001(\0132\".flyteidl.admin.WorkflowA" - "ttributes\"\"\n WorkflowAttributesUpdateRes" - "ponse\"\213\001\n\034WorkflowAttributesGetRequest\022\017" - "\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\020\n\010workf" - "low\030\003 \001(\t\0228\n\rresource_type\030\004 \001(\0162!.flyte" - "idl.admin.MatchableResource\"W\n\035WorkflowA" - "ttributesGetResponse\0226\n\nattributes\030\001 \001(\013" - "2\".flyteidl.admin.WorkflowAttributes\"\216\001\n" - "\037WorkflowAttributesDeleteRequest\022\017\n\007proj" - "ect\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\020\n\010workflow\030\003 " - "\001(\t\0228\n\rresource_type\030\004 \001(\0162!.flyteidl.ad" - "min.MatchableResource\"\"\n WorkflowAttribu" - "tesDeleteResponseB=Z;github.com/flyteorg" - "/flyte/flyteidl/gen/pb-go/flyteidl/admin" - "b\006proto3" + "(\0132\".flyteidl.admin.MatchingAttributes\022\013" + "\n\003org\030\005 \001(\t\"Y\n\037WorkflowAttributesUpdateR" + "equest\0226\n\nattributes\030\001 \001(\0132\".flyteidl.ad" + "min.WorkflowAttributes\"\"\n WorkflowAttrib" + "utesUpdateResponse\"\230\001\n\034WorkflowAttribute" + "sGetRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002" + " \001(\t\022\020\n\010workflow\030\003 \001(\t\0228\n\rresource_type\030" + "\004 \001(\0162!.flyteidl.admin.MatchableResource" + "\022\013\n\003org\030\005 \001(\t\"W\n\035WorkflowAttributesGetRe" + "sponse\0226\n\nattributes\030\001 \001(\0132\".flyteidl.ad" + "min.WorkflowAttributes\"\233\001\n\037WorkflowAttri" + "butesDeleteRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006d" + "omain\030\002 \001(\t\022\020\n\010workflow\030\003 \001(\t\0228\n\rresourc" + "e_type\030\004 \001(\0162!.flyteidl.admin.MatchableR" + "esource\022\013\n\003org\030\005 \001(\t\"\"\n WorkflowAttribut" + "esDeleteResponseB=Z;github.com/flyteorg/" + "flyte/flyteidl/gen/pb-go/flyteidl/adminb" + "\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fworkflow_5fattributes_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fworkflow_5fattributes_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fworkflow_5fattributes_2eproto, - "flyteidl/admin/workflow_attributes.proto", &assign_descriptors_table_flyteidl_2fadmin_2fworkflow_5fattributes_2eproto, 848, + "flyteidl/admin/workflow_attributes.proto", &assign_descriptors_table_flyteidl_2fadmin_2fworkflow_5fattributes_2eproto, 887, }; void AddDescriptors_flyteidl_2fadmin_2fworkflow_5fattributes_2eproto() { @@ -311,6 +315,7 @@ const int WorkflowAttributes::kProjectFieldNumber; const int WorkflowAttributes::kDomainFieldNumber; const int WorkflowAttributes::kWorkflowFieldNumber; const int WorkflowAttributes::kMatchingAttributesFieldNumber; +const int WorkflowAttributes::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 WorkflowAttributes::WorkflowAttributes() @@ -334,6 +339,10 @@ WorkflowAttributes::WorkflowAttributes(const WorkflowAttributes& from) if (from.workflow().size() > 0) { workflow_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.workflow_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_matching_attributes()) { matching_attributes_ = new ::flyteidl::admin::MatchingAttributes(*from.matching_attributes_); } else { @@ -348,6 +357,7 @@ void WorkflowAttributes::SharedCtor() { project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); matching_attributes_ = nullptr; } @@ -360,6 +370,7 @@ void WorkflowAttributes::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete matching_attributes_; } @@ -381,6 +392,7 @@ void WorkflowAttributes::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && matching_attributes_ != nullptr) { delete matching_attributes_; } @@ -462,6 +474,22 @@ const char* WorkflowAttributes::_InternalParse(const char* begin, const char* en {parser_till_end, object}, ptr - size, ptr)); break; } + // string org = 5; + case 5: { + if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.WorkflowAttributes.org"); + object = msg->mutable_org(); + 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) { @@ -552,6 +580,21 @@ bool WorkflowAttributes::MergePartialFromCodedStream( break; } + // string org = 5; + case 5: { + if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.WorkflowAttributes.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -615,6 +658,16 @@ void WorkflowAttributes::SerializeWithCachedSizes( 4, HasBitSetters::matching_attributes(this), output); } + // string org = 5; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.WorkflowAttributes.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 5, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -668,6 +721,17 @@ ::google::protobuf::uint8* WorkflowAttributes::InternalSerializeWithCachedSizesT 4, HasBitSetters::matching_attributes(this), target); } + // string org = 5; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.WorkflowAttributes.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 5, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -710,6 +774,13 @@ size_t WorkflowAttributes::ByteSizeLong() const { this->workflow()); } + // string org = 5; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchingAttributes matching_attributes = 4; if (this->has_matching_attributes()) { total_size += 1 + @@ -756,6 +827,10 @@ void WorkflowAttributes::MergeFrom(const WorkflowAttributes& from) { workflow_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.workflow_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_matching_attributes()) { mutable_matching_attributes()->::flyteidl::admin::MatchingAttributes::MergeFrom(from.matching_attributes()); } @@ -792,6 +867,8 @@ void WorkflowAttributes::InternalSwap(WorkflowAttributes* other) { GetArenaNoVirtual()); workflow_.Swap(&other->workflow_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(matching_attributes_, other->matching_attributes_); } @@ -1310,6 +1387,7 @@ const int WorkflowAttributesGetRequest::kProjectFieldNumber; const int WorkflowAttributesGetRequest::kDomainFieldNumber; const int WorkflowAttributesGetRequest::kWorkflowFieldNumber; const int WorkflowAttributesGetRequest::kResourceTypeFieldNumber; +const int WorkflowAttributesGetRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 WorkflowAttributesGetRequest::WorkflowAttributesGetRequest() @@ -1333,6 +1411,10 @@ WorkflowAttributesGetRequest::WorkflowAttributesGetRequest(const WorkflowAttribu if (from.workflow().size() > 0) { workflow_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.workflow_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } resource_type_ = from.resource_type_; // @@protoc_insertion_point(copy_constructor:flyteidl.admin.WorkflowAttributesGetRequest) } @@ -1343,6 +1425,7 @@ void WorkflowAttributesGetRequest::SharedCtor() { project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; } @@ -1355,6 +1438,7 @@ void WorkflowAttributesGetRequest::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void WorkflowAttributesGetRequest::SetCachedSize(int size) const { @@ -1375,6 +1459,7 @@ void WorkflowAttributesGetRequest::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; _internal_metadata_.Clear(); } @@ -1448,6 +1533,22 @@ const char* WorkflowAttributesGetRequest::_InternalParse(const char* begin, cons GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); break; } + // string org = 5; + case 5: { + if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.WorkflowAttributesGetRequest.org"); + object = msg->mutable_org(); + 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) { @@ -1541,6 +1642,21 @@ bool WorkflowAttributesGetRequest::MergePartialFromCodedStream( break; } + // string org = 5; + case 5: { + if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.WorkflowAttributesGetRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -1604,6 +1720,16 @@ void WorkflowAttributesGetRequest::SerializeWithCachedSizes( 4, this->resource_type(), output); } + // string org = 5; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.WorkflowAttributesGetRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 5, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -1656,6 +1782,17 @@ ::google::protobuf::uint8* WorkflowAttributesGetRequest::InternalSerializeWithCa 4, this->resource_type(), target); } + // string org = 5; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.WorkflowAttributesGetRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 5, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -1698,6 +1835,13 @@ size_t WorkflowAttributesGetRequest::ByteSizeLong() const { this->workflow()); } + // string org = 5; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchableResource resource_type = 4; if (this->resource_type() != 0) { total_size += 1 + @@ -1743,6 +1887,10 @@ void WorkflowAttributesGetRequest::MergeFrom(const WorkflowAttributesGetRequest& workflow_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.workflow_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.resource_type() != 0) { set_resource_type(from.resource_type()); } @@ -1779,6 +1927,8 @@ void WorkflowAttributesGetRequest::InternalSwap(WorkflowAttributesGetRequest* ot GetArenaNoVirtual()); workflow_.Swap(&other->workflow_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(resource_type_, other->resource_type_); } @@ -2088,6 +2238,7 @@ const int WorkflowAttributesDeleteRequest::kProjectFieldNumber; const int WorkflowAttributesDeleteRequest::kDomainFieldNumber; const int WorkflowAttributesDeleteRequest::kWorkflowFieldNumber; const int WorkflowAttributesDeleteRequest::kResourceTypeFieldNumber; +const int WorkflowAttributesDeleteRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 WorkflowAttributesDeleteRequest::WorkflowAttributesDeleteRequest() @@ -2111,6 +2262,10 @@ WorkflowAttributesDeleteRequest::WorkflowAttributesDeleteRequest(const WorkflowA if (from.workflow().size() > 0) { workflow_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.workflow_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } resource_type_ = from.resource_type_; // @@protoc_insertion_point(copy_constructor:flyteidl.admin.WorkflowAttributesDeleteRequest) } @@ -2121,6 +2276,7 @@ void WorkflowAttributesDeleteRequest::SharedCtor() { project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; } @@ -2133,6 +2289,7 @@ void WorkflowAttributesDeleteRequest::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void WorkflowAttributesDeleteRequest::SetCachedSize(int size) const { @@ -2153,6 +2310,7 @@ void WorkflowAttributesDeleteRequest::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); workflow_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; _internal_metadata_.Clear(); } @@ -2226,6 +2384,22 @@ const char* WorkflowAttributesDeleteRequest::_InternalParse(const char* begin, c GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); break; } + // string org = 5; + case 5: { + if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.WorkflowAttributesDeleteRequest.org"); + object = msg->mutable_org(); + 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) { @@ -2319,6 +2493,21 @@ bool WorkflowAttributesDeleteRequest::MergePartialFromCodedStream( break; } + // string org = 5; + case 5: { + if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.WorkflowAttributesDeleteRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -2382,6 +2571,16 @@ void WorkflowAttributesDeleteRequest::SerializeWithCachedSizes( 4, this->resource_type(), output); } + // string org = 5; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.WorkflowAttributesDeleteRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 5, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -2434,6 +2633,17 @@ ::google::protobuf::uint8* WorkflowAttributesDeleteRequest::InternalSerializeWit 4, this->resource_type(), target); } + // string org = 5; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.WorkflowAttributesDeleteRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 5, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -2476,6 +2686,13 @@ size_t WorkflowAttributesDeleteRequest::ByteSizeLong() const { this->workflow()); } + // string org = 5; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchableResource resource_type = 4; if (this->resource_type() != 0) { total_size += 1 + @@ -2521,6 +2738,10 @@ void WorkflowAttributesDeleteRequest::MergeFrom(const WorkflowAttributesDeleteRe workflow_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.workflow_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.resource_type() != 0) { set_resource_type(from.resource_type()); } @@ -2557,6 +2778,8 @@ void WorkflowAttributesDeleteRequest::InternalSwap(WorkflowAttributesDeleteReque GetArenaNoVirtual()); workflow_.Swap(&other->workflow_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(resource_type_, other->resource_type_); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/workflow_attributes.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/workflow_attributes.pb.h index f6e12acc87..52d266d94b 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/workflow_attributes.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/workflow_attributes.pb.h @@ -227,6 +227,20 @@ class WorkflowAttributes final : ::std::string* release_workflow(); void set_allocated_workflow(::std::string* workflow); + // string org = 5; + void clear_org(); + static const int kOrgFieldNumber = 5; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchingAttributes matching_attributes = 4; bool has_matching_attributes() const; void clear_matching_attributes(); @@ -244,6 +258,7 @@ class WorkflowAttributes final : ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr workflow_; + ::google::protobuf::internal::ArenaStringPtr org_; ::flyteidl::admin::MatchingAttributes* matching_attributes_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fworkflow_5fattributes_2eproto; @@ -607,6 +622,20 @@ class WorkflowAttributesGetRequest final : ::std::string* release_workflow(); void set_allocated_workflow(::std::string* workflow); + // string org = 5; + void clear_org(); + static const int kOrgFieldNumber = 5; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchableResource resource_type = 4; void clear_resource_type(); static const int kResourceTypeFieldNumber = 4; @@ -621,6 +650,7 @@ class WorkflowAttributesGetRequest final : ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr workflow_; + ::google::protobuf::internal::ArenaStringPtr org_; int resource_type_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fworkflow_5fattributes_2eproto; @@ -879,6 +909,20 @@ class WorkflowAttributesDeleteRequest final : ::std::string* release_workflow(); void set_allocated_workflow(::std::string* workflow); + // string org = 5; + void clear_org(); + static const int kOrgFieldNumber = 5; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchableResource resource_type = 4; void clear_resource_type(); static const int kResourceTypeFieldNumber = 4; @@ -893,6 +937,7 @@ class WorkflowAttributesDeleteRequest final : ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr workflow_; + ::google::protobuf::internal::ArenaStringPtr org_; int resource_type_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fworkflow_5fattributes_2eproto; @@ -1217,6 +1262,59 @@ inline void WorkflowAttributes::set_allocated_matching_attributes(::flyteidl::ad // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.WorkflowAttributes.matching_attributes) } +// string org = 5; +inline void WorkflowAttributes::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& WorkflowAttributes::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.WorkflowAttributes.org) + return org_.GetNoArena(); +} +inline void WorkflowAttributes::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.WorkflowAttributes.org) +} +#if LANG_CXX11 +inline void WorkflowAttributes::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.WorkflowAttributes.org) +} +#endif +inline void WorkflowAttributes::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.WorkflowAttributes.org) +} +inline void WorkflowAttributes::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.WorkflowAttributes.org) +} +inline ::std::string* WorkflowAttributes::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.WorkflowAttributes.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* WorkflowAttributes::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.WorkflowAttributes.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void WorkflowAttributes::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.WorkflowAttributes.org) +} + // ------------------------------------------------------------------- // WorkflowAttributesUpdateRequest @@ -1453,6 +1551,59 @@ inline void WorkflowAttributesGetRequest::set_resource_type(::flyteidl::admin::M // @@protoc_insertion_point(field_set:flyteidl.admin.WorkflowAttributesGetRequest.resource_type) } +// string org = 5; +inline void WorkflowAttributesGetRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& WorkflowAttributesGetRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.WorkflowAttributesGetRequest.org) + return org_.GetNoArena(); +} +inline void WorkflowAttributesGetRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.WorkflowAttributesGetRequest.org) +} +#if LANG_CXX11 +inline void WorkflowAttributesGetRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.WorkflowAttributesGetRequest.org) +} +#endif +inline void WorkflowAttributesGetRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.WorkflowAttributesGetRequest.org) +} +inline void WorkflowAttributesGetRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.WorkflowAttributesGetRequest.org) +} +inline ::std::string* WorkflowAttributesGetRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.WorkflowAttributesGetRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* WorkflowAttributesGetRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.WorkflowAttributesGetRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void WorkflowAttributesGetRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.WorkflowAttributesGetRequest.org) +} + // ------------------------------------------------------------------- // WorkflowAttributesGetResponse @@ -1685,6 +1836,59 @@ inline void WorkflowAttributesDeleteRequest::set_resource_type(::flyteidl::admin // @@protoc_insertion_point(field_set:flyteidl.admin.WorkflowAttributesDeleteRequest.resource_type) } +// string org = 5; +inline void WorkflowAttributesDeleteRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& WorkflowAttributesDeleteRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.WorkflowAttributesDeleteRequest.org) + return org_.GetNoArena(); +} +inline void WorkflowAttributesDeleteRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.WorkflowAttributesDeleteRequest.org) +} +#if LANG_CXX11 +inline void WorkflowAttributesDeleteRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.WorkflowAttributesDeleteRequest.org) +} +#endif +inline void WorkflowAttributesDeleteRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.WorkflowAttributesDeleteRequest.org) +} +inline void WorkflowAttributesDeleteRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.WorkflowAttributesDeleteRequest.org) +} +inline ::std::string* WorkflowAttributesDeleteRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.WorkflowAttributesDeleteRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* WorkflowAttributesDeleteRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.WorkflowAttributesDeleteRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void WorkflowAttributesDeleteRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.WorkflowAttributesDeleteRequest.org) +} + // ------------------------------------------------------------------- // WorkflowAttributesDeleteResponse diff --git a/flyteidl/gen/pb-cpp/flyteidl/core/identifier.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/core/identifier.pb.cc index 23adc9e27e..1e16dd7858 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/core/identifier.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/core/identifier.pb.cc @@ -140,6 +140,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fcore_2fidentifier_2eprot PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identifier, domain_), PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identifier, name_), PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identifier, version_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identifier, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::core::WorkflowExecutionIdentifier, _internal_metadata_), ~0u, // no _extensions_ @@ -148,6 +149,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fcore_2fidentifier_2eprot PROTOBUF_FIELD_OFFSET(::flyteidl::core::WorkflowExecutionIdentifier, project_), PROTOBUF_FIELD_OFFSET(::flyteidl::core::WorkflowExecutionIdentifier, domain_), PROTOBUF_FIELD_OFFSET(::flyteidl::core::WorkflowExecutionIdentifier, name_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::WorkflowExecutionIdentifier, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::core::NodeExecutionIdentifier, _internal_metadata_), ~0u, // no _extensions_ @@ -173,10 +175,10 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fcore_2fidentifier_2eprot }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::core::Identifier)}, - { 10, -1, sizeof(::flyteidl::core::WorkflowExecutionIdentifier)}, - { 18, -1, sizeof(::flyteidl::core::NodeExecutionIdentifier)}, - { 25, -1, sizeof(::flyteidl::core::TaskExecutionIdentifier)}, - { 33, -1, sizeof(::flyteidl::core::SignalIdentifier)}, + { 11, -1, sizeof(::flyteidl::core::WorkflowExecutionIdentifier)}, + { 20, -1, sizeof(::flyteidl::core::NodeExecutionIdentifier)}, + { 27, -1, sizeof(::flyteidl::core::TaskExecutionIdentifier)}, + { 35, -1, sizeof(::flyteidl::core::SignalIdentifier)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -195,30 +197,31 @@ ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_fl const char descriptor_table_protodef_flyteidl_2fcore_2fidentifier_2eproto[] = "\n\036flyteidl/core/identifier.proto\022\rflytei" - "dl.core\"\200\001\n\nIdentifier\0222\n\rresource_type\030" + "dl.core\"\215\001\n\nIdentifier\0222\n\rresource_type\030" "\001 \001(\0162\033.flyteidl.core.ResourceType\022\017\n\007pr" "oject\030\002 \001(\t\022\016\n\006domain\030\003 \001(\t\022\014\n\004name\030\004 \001(" - "\t\022\017\n\007version\030\005 \001(\t\"L\n\033WorkflowExecutionI" - "dentifier\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001" - "(\t\022\014\n\004name\030\004 \001(\t\"l\n\027NodeExecutionIdentif" - "ier\022\017\n\007node_id\030\001 \001(\t\022@\n\014execution_id\030\002 \001" - "(\0132*.flyteidl.core.WorkflowExecutionIden" - "tifier\"\237\001\n\027TaskExecutionIdentifier\022*\n\007ta" - "sk_id\030\001 \001(\0132\031.flyteidl.core.Identifier\022A" - "\n\021node_execution_id\030\002 \001(\0132&.flyteidl.cor" - "e.NodeExecutionIdentifier\022\025\n\rretry_attem" - "pt\030\003 \001(\r\"g\n\020SignalIdentifier\022\021\n\tsignal_i" - "d\030\001 \001(\t\022@\n\014execution_id\030\002 \001(\0132*.flyteidl" - ".core.WorkflowExecutionIdentifier*U\n\014Res" - "ourceType\022\017\n\013UNSPECIFIED\020\000\022\010\n\004TASK\020\001\022\014\n\010" - "WORKFLOW\020\002\022\017\n\013LAUNCH_PLAN\020\003\022\013\n\007DATASET\020\004" - "B= 1900 Identifier::Identifier() @@ -291,6 +295,10 @@ Identifier::Identifier(const Identifier& from) if (from.version().size() > 0) { version_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.version_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } resource_type_ = from.resource_type_; // @@protoc_insertion_point(copy_constructor:flyteidl.core.Identifier) } @@ -302,6 +310,7 @@ void Identifier::SharedCtor() { domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); version_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; } @@ -315,6 +324,7 @@ void Identifier::SharedDtor() { domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); version_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void Identifier::SetCachedSize(int size) const { @@ -336,6 +346,7 @@ void Identifier::Clear() { domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; _internal_metadata_.Clear(); } @@ -425,6 +436,22 @@ const char* Identifier::_InternalParse(const char* begin, const char* end, void* ptr += size; break; } + // string org = 6; + case 6: { + if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.core.Identifier.org"); + object = msg->mutable_org(); + 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) { @@ -533,6 +560,21 @@ bool Identifier::MergePartialFromCodedStream( break; } + // string org = 6; + case 6: { + if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.core.Identifier.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -606,6 +648,16 @@ void Identifier::SerializeWithCachedSizes( 5, this->version(), output); } + // string org = 6; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.core.Identifier.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 6, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -669,6 +721,17 @@ ::google::protobuf::uint8* Identifier::InternalSerializeWithCachedSizesToArray( 5, this->version(), target); } + // string org = 6; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.core.Identifier.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 6, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -718,6 +781,13 @@ size_t Identifier::ByteSizeLong() const { this->version()); } + // string org = 6; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.core.ResourceType resource_type = 1; if (this->resource_type() != 0) { total_size += 1 + @@ -767,6 +837,10 @@ void Identifier::MergeFrom(const Identifier& from) { version_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.version_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.resource_type() != 0) { set_resource_type(from.resource_type()); } @@ -805,6 +879,8 @@ void Identifier::InternalSwap(Identifier* other) { GetArenaNoVirtual()); version_.Swap(&other->version_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(resource_type_, other->resource_type_); } @@ -826,6 +902,7 @@ class WorkflowExecutionIdentifier::HasBitSetters { const int WorkflowExecutionIdentifier::kProjectFieldNumber; const int WorkflowExecutionIdentifier::kDomainFieldNumber; const int WorkflowExecutionIdentifier::kNameFieldNumber; +const int WorkflowExecutionIdentifier::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 WorkflowExecutionIdentifier::WorkflowExecutionIdentifier() @@ -849,6 +926,10 @@ WorkflowExecutionIdentifier::WorkflowExecutionIdentifier(const WorkflowExecution if (from.name().size() > 0) { name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } // @@protoc_insertion_point(copy_constructor:flyteidl.core.WorkflowExecutionIdentifier) } @@ -858,6 +939,7 @@ void WorkflowExecutionIdentifier::SharedCtor() { project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } WorkflowExecutionIdentifier::~WorkflowExecutionIdentifier() { @@ -869,6 +951,7 @@ void WorkflowExecutionIdentifier::SharedDtor() { project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void WorkflowExecutionIdentifier::SetCachedSize(int size) const { @@ -889,6 +972,7 @@ void WorkflowExecutionIdentifier::Clear() { project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); _internal_metadata_.Clear(); } @@ -953,6 +1037,22 @@ const char* WorkflowExecutionIdentifier::_InternalParse(const char* begin, const ptr += size; break; } + // string org = 5; + case 5: { + if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.core.WorkflowExecutionIdentifier.org"); + object = msg->mutable_org(); + 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) { @@ -1032,6 +1132,21 @@ bool WorkflowExecutionIdentifier::MergePartialFromCodedStream( break; } + // string org = 5; + case 5: { + if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.core.WorkflowExecutionIdentifier.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -1089,6 +1204,16 @@ void WorkflowExecutionIdentifier::SerializeWithCachedSizes( 4, this->name(), output); } + // string org = 5; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.core.WorkflowExecutionIdentifier.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 5, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -1135,6 +1260,17 @@ ::google::protobuf::uint8* WorkflowExecutionIdentifier::InternalSerializeWithCac 4, this->name(), target); } + // string org = 5; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.core.WorkflowExecutionIdentifier.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 5, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -1177,6 +1313,13 @@ size_t WorkflowExecutionIdentifier::ByteSizeLong() const { this->name()); } + // string org = 5; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -1216,6 +1359,10 @@ void WorkflowExecutionIdentifier::MergeFrom(const WorkflowExecutionIdentifier& f name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } } void WorkflowExecutionIdentifier::CopyFrom(const ::google::protobuf::Message& from) { @@ -1249,6 +1396,8 @@ void WorkflowExecutionIdentifier::InternalSwap(WorkflowExecutionIdentifier* othe GetArenaNoVirtual()); name_.Swap(&other->name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); } ::google::protobuf::Metadata WorkflowExecutionIdentifier::GetMetadata() const { diff --git a/flyteidl/gen/pb-cpp/flyteidl/core/identifier.pb.h b/flyteidl/gen/pb-cpp/flyteidl/core/identifier.pb.h index d3ee554d5a..efcc339874 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/core/identifier.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/core/identifier.pb.h @@ -257,6 +257,20 @@ class Identifier final : ::std::string* release_version(); void set_allocated_version(::std::string* version); + // string org = 6; + void clear_org(); + static const int kOrgFieldNumber = 6; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.core.ResourceType resource_type = 1; void clear_resource_type(); static const int kResourceTypeFieldNumber = 1; @@ -272,6 +286,7 @@ class Identifier final : ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr name_; ::google::protobuf::internal::ArenaStringPtr version_; + ::google::protobuf::internal::ArenaStringPtr org_; int resource_type_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fcore_2fidentifier_2eproto; @@ -415,6 +430,20 @@ class WorkflowExecutionIdentifier final : ::std::string* release_name(); void set_allocated_name(::std::string* name); + // string org = 5; + void clear_org(); + static const int kOrgFieldNumber = 5; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // @@protoc_insertion_point(class_scope:flyteidl.core.WorkflowExecutionIdentifier) private: class HasBitSetters; @@ -423,6 +452,7 @@ class WorkflowExecutionIdentifier final : ::google::protobuf::internal::ArenaStringPtr project_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr name_; + ::google::protobuf::internal::ArenaStringPtr org_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fcore_2fidentifier_2eproto; }; @@ -1055,6 +1085,59 @@ inline void Identifier::set_allocated_version(::std::string* version) { // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Identifier.version) } +// string org = 6; +inline void Identifier::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& Identifier::org() const { + // @@protoc_insertion_point(field_get:flyteidl.core.Identifier.org) + return org_.GetNoArena(); +} +inline void Identifier::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.core.Identifier.org) +} +#if LANG_CXX11 +inline void Identifier::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.core.Identifier.org) +} +#endif +inline void Identifier::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.core.Identifier.org) +} +inline void Identifier::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.core.Identifier.org) +} +inline ::std::string* Identifier::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.core.Identifier.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* Identifier::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.core.Identifier.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void Identifier::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Identifier.org) +} + // ------------------------------------------------------------------- // WorkflowExecutionIdentifier @@ -1218,6 +1301,59 @@ inline void WorkflowExecutionIdentifier::set_allocated_name(::std::string* name) // @@protoc_insertion_point(field_set_allocated:flyteidl.core.WorkflowExecutionIdentifier.name) } +// string org = 5; +inline void WorkflowExecutionIdentifier::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& WorkflowExecutionIdentifier::org() const { + // @@protoc_insertion_point(field_get:flyteidl.core.WorkflowExecutionIdentifier.org) + return org_.GetNoArena(); +} +inline void WorkflowExecutionIdentifier::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.core.WorkflowExecutionIdentifier.org) +} +#if LANG_CXX11 +inline void WorkflowExecutionIdentifier::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.core.WorkflowExecutionIdentifier.org) +} +#endif +inline void WorkflowExecutionIdentifier::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.core.WorkflowExecutionIdentifier.org) +} +inline void WorkflowExecutionIdentifier::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.core.WorkflowExecutionIdentifier.org) +} +inline ::std::string* WorkflowExecutionIdentifier::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.core.WorkflowExecutionIdentifier.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* WorkflowExecutionIdentifier::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.core.WorkflowExecutionIdentifier.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void WorkflowExecutionIdentifier::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.core.WorkflowExecutionIdentifier.org) +} + // ------------------------------------------------------------------- // NodeExecutionIdentifier diff --git a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc index dbd20da087..98eff8cf24 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc @@ -200,6 +200,7 @@ class DatasetPropertyFilterDefaultTypeInternal { ::google::protobuf::internal::ArenaStringPtr name_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr version_; + ::google::protobuf::internal::ArenaStringPtr partition_; } _DatasetPropertyFilter_default_instance_; class PaginationOptionsDefaultTypeInternal { public: @@ -1000,6 +1001,8 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fdatacatalog_2fdatacatalo PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetID, domain_), PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetID, version_), PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetID, uuid_), + PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetID, partition_), + PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetID, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::datacatalog::Artifact, _internal_metadata_), ~0u, // no _extensions_ @@ -1096,6 +1099,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fdatacatalog_2fdatacatalo offsetof(::datacatalog::DatasetPropertyFilterDefaultTypeInternal, name_), offsetof(::datacatalog::DatasetPropertyFilterDefaultTypeInternal, domain_), offsetof(::datacatalog::DatasetPropertyFilterDefaultTypeInternal, version_), + offsetof(::datacatalog::DatasetPropertyFilterDefaultTypeInternal, partition_), PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetPropertyFilter, property_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::datacatalog::PaginationOptions, _internal_metadata_), @@ -1133,19 +1137,19 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SE { 149, -1, sizeof(::datacatalog::Dataset)}, { 157, -1, sizeof(::datacatalog::Partition)}, { 164, -1, sizeof(::datacatalog::DatasetID)}, - { 174, -1, sizeof(::datacatalog::Artifact)}, - { 186, -1, sizeof(::datacatalog::ArtifactData)}, - { 193, -1, sizeof(::datacatalog::Tag)}, - { 201, 208, sizeof(::datacatalog::Metadata_KeyMapEntry_DoNotUse)}, - { 210, -1, sizeof(::datacatalog::Metadata)}, - { 216, -1, sizeof(::datacatalog::FilterExpression)}, - { 222, -1, sizeof(::datacatalog::SinglePropertyFilter)}, - { 233, -1, sizeof(::datacatalog::ArtifactPropertyFilter)}, - { 240, -1, sizeof(::datacatalog::TagPropertyFilter)}, - { 247, -1, sizeof(::datacatalog::PartitionPropertyFilter)}, - { 254, -1, sizeof(::datacatalog::KeyValuePair)}, - { 261, -1, sizeof(::datacatalog::DatasetPropertyFilter)}, - { 271, -1, sizeof(::datacatalog::PaginationOptions)}, + { 176, -1, sizeof(::datacatalog::Artifact)}, + { 188, -1, sizeof(::datacatalog::ArtifactData)}, + { 195, -1, sizeof(::datacatalog::Tag)}, + { 203, 210, sizeof(::datacatalog::Metadata_KeyMapEntry_DoNotUse)}, + { 212, -1, sizeof(::datacatalog::Metadata)}, + { 218, -1, sizeof(::datacatalog::FilterExpression)}, + { 224, -1, sizeof(::datacatalog::SinglePropertyFilter)}, + { 235, -1, sizeof(::datacatalog::ArtifactPropertyFilter)}, + { 242, -1, sizeof(::datacatalog::TagPropertyFilter)}, + { 249, -1, sizeof(::datacatalog::PartitionPropertyFilter)}, + { 256, -1, sizeof(::datacatalog::KeyValuePair)}, + { 263, -1, sizeof(::datacatalog::DatasetPropertyFilter)}, + { 274, -1, sizeof(::datacatalog::PaginationOptions)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -1252,78 +1256,80 @@ const char descriptor_table_protodef_flyteidl_2fdatacatalog_2fdatacatalog_2eprot "datacatalog.DatasetID\022\'\n\010metadata\030\002 \001(\0132" "\025.datacatalog.Metadata\022\025\n\rpartitionKeys\030" "\003 \003(\t\"\'\n\tPartition\022\013\n\003key\030\001 \001(\t\022\r\n\005value" - "\030\002 \001(\t\"Y\n\tDatasetID\022\017\n\007project\030\001 \001(\t\022\014\n\004" + "\030\002 \001(\t\"y\n\tDatasetID\022\017\n\007project\030\001 \001(\t\022\014\n\004" "name\030\002 \001(\t\022\016\n\006domain\030\003 \001(\t\022\017\n\007version\030\004 " - "\001(\t\022\014\n\004UUID\030\005 \001(\t\"\215\002\n\010Artifact\022\n\n\002id\030\001 \001" - "(\t\022\'\n\007dataset\030\002 \001(\0132\026.datacatalog.Datase" - "tID\022\'\n\004data\030\003 \003(\0132\031.datacatalog.Artifact" - "Data\022\'\n\010metadata\030\004 \001(\0132\025.datacatalog.Met" - "adata\022*\n\npartitions\030\005 \003(\0132\026.datacatalog." - "Partition\022\036\n\004tags\030\006 \003(\0132\020.datacatalog.Ta" - "g\022.\n\ncreated_at\030\007 \001(\0132\032.google.protobuf." - "Timestamp\"C\n\014ArtifactData\022\014\n\004name\030\001 \001(\t\022" - "%\n\005value\030\002 \001(\0132\026.flyteidl.core.Literal\"Q" - "\n\003Tag\022\014\n\004name\030\001 \001(\t\022\023\n\013artifact_id\030\002 \001(\t" - "\022\'\n\007dataset\030\003 \001(\0132\026.datacatalog.DatasetI" - "D\"m\n\010Metadata\0222\n\007key_map\030\001 \003(\0132!.datacat" - "alog.Metadata.KeyMapEntry\032-\n\013KeyMapEntry" - "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"F\n\020Filt" - "erExpression\0222\n\007filters\030\001 \003(\0132!.datacata" - "log.SinglePropertyFilter\"\211\003\n\024SinglePrope" - "rtyFilter\0224\n\ntag_filter\030\001 \001(\0132\036.datacata" - "log.TagPropertyFilterH\000\022@\n\020partition_fil" - "ter\030\002 \001(\0132$.datacatalog.PartitionPropert" - "yFilterH\000\022>\n\017artifact_filter\030\003 \001(\0132#.dat" - "acatalog.ArtifactPropertyFilterH\000\022<\n\016dat" - "aset_filter\030\004 \001(\0132\".datacatalog.DatasetP" - "ropertyFilterH\000\022F\n\010operator\030\n \001(\01624.data" - "catalog.SinglePropertyFilter.ComparisonO" - "perator\" \n\022ComparisonOperator\022\n\n\006EQUALS\020" - "\000B\021\n\017property_filter\";\n\026ArtifactProperty" - "Filter\022\025\n\013artifact_id\030\001 \001(\tH\000B\n\n\010propert" - "y\"3\n\021TagPropertyFilter\022\022\n\010tag_name\030\001 \001(\t" - "H\000B\n\n\010property\"S\n\027PartitionPropertyFilte" - "r\022,\n\007key_val\030\001 \001(\0132\031.datacatalog.KeyValu" - "ePairH\000B\n\n\010property\"*\n\014KeyValuePair\022\013\n\003k" - "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"k\n\025DatasetProper" - "tyFilter\022\021\n\007project\030\001 \001(\tH\000\022\016\n\004name\030\002 \001(" - "\tH\000\022\020\n\006domain\030\003 \001(\tH\000\022\021\n\007version\030\004 \001(\tH\000" - "B\n\n\010property\"\361\001\n\021PaginationOptions\022\r\n\005li" - "mit\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\0227\n\007sortKey\030\003 \001(" - "\0162&.datacatalog.PaginationOptions.SortKe" - "y\022;\n\tsortOrder\030\004 \001(\0162(.datacatalog.Pagin" - "ationOptions.SortOrder\"*\n\tSortOrder\022\016\n\nD" - "ESCENDING\020\000\022\r\n\tASCENDING\020\001\"\034\n\007SortKey\022\021\n" - "\rCREATION_TIME\020\0002\206\007\n\013DataCatalog\022V\n\rCrea" - "teDataset\022!.datacatalog.CreateDatasetReq" - "uest\032\".datacatalog.CreateDatasetResponse" - "\022M\n\nGetDataset\022\036.datacatalog.GetDatasetR" - "equest\032\037.datacatalog.GetDatasetResponse\022" - "Y\n\016CreateArtifact\022\".datacatalog.CreateAr" - "tifactRequest\032#.datacatalog.CreateArtifa" - "ctResponse\022P\n\013GetArtifact\022\037.datacatalog." - "GetArtifactRequest\032 .datacatalog.GetArti" - "factResponse\022A\n\006AddTag\022\032.datacatalog.Add" - "TagRequest\032\033.datacatalog.AddTagResponse\022" - "V\n\rListArtifacts\022!.datacatalog.ListArtif" - "actsRequest\032\".datacatalog.ListArtifactsR" - "esponse\022S\n\014ListDatasets\022 .datacatalog.Li" - "stDatasetsRequest\032!.datacatalog.ListData" - "setsResponse\022Y\n\016UpdateArtifact\022\".datacat" - "alog.UpdateArtifactRequest\032#.datacatalog" - ".UpdateArtifactResponse\022q\n\026GetOrExtendRe" - "servation\022*.datacatalog.GetOrExtendReser" - "vationRequest\032+.datacatalog.GetOrExtendR" - "eservationResponse\022e\n\022ReleaseReservation" - "\022&.datacatalog.ReleaseReservationRequest" - "\032\'.datacatalog.ReleaseReservationRespons" - "eBCZAgithub.com/flyteorg/flyte/flyteidl/" - "gen/pb-go/flyteidl/datacatalogb\006proto3" + "\001(\t\022\014\n\004UUID\030\005 \001(\t\022\021\n\tpartition\030\006 \001(\t\022\013\n\003" + "org\030\007 \001(\t\"\215\002\n\010Artifact\022\n\n\002id\030\001 \001(\t\022\'\n\007da" + "taset\030\002 \001(\0132\026.datacatalog.DatasetID\022\'\n\004d" + "ata\030\003 \003(\0132\031.datacatalog.ArtifactData\022\'\n\010" + "metadata\030\004 \001(\0132\025.datacatalog.Metadata\022*\n" + "\npartitions\030\005 \003(\0132\026.datacatalog.Partitio" + "n\022\036\n\004tags\030\006 \003(\0132\020.datacatalog.Tag\022.\n\ncre" + "ated_at\030\007 \001(\0132\032.google.protobuf.Timestam" + "p\"C\n\014ArtifactData\022\014\n\004name\030\001 \001(\t\022%\n\005value" + "\030\002 \001(\0132\026.flyteidl.core.Literal\"Q\n\003Tag\022\014\n" + "\004name\030\001 \001(\t\022\023\n\013artifact_id\030\002 \001(\t\022\'\n\007data" + "set\030\003 \001(\0132\026.datacatalog.DatasetID\"m\n\010Met" + "adata\0222\n\007key_map\030\001 \003(\0132!.datacatalog.Met" + "adata.KeyMapEntry\032-\n\013KeyMapEntry\022\013\n\003key\030" + "\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"F\n\020FilterExpres" + "sion\0222\n\007filters\030\001 \003(\0132!.datacatalog.Sing" + "lePropertyFilter\"\211\003\n\024SinglePropertyFilte" + "r\0224\n\ntag_filter\030\001 \001(\0132\036.datacatalog.TagP" + "ropertyFilterH\000\022@\n\020partition_filter\030\002 \001(" + "\0132$.datacatalog.PartitionPropertyFilterH" + "\000\022>\n\017artifact_filter\030\003 \001(\0132#.datacatalog" + ".ArtifactPropertyFilterH\000\022<\n\016dataset_fil" + "ter\030\004 \001(\0132\".datacatalog.DatasetPropertyF" + "ilterH\000\022F\n\010operator\030\n \001(\01624.datacatalog." + "SinglePropertyFilter.ComparisonOperator\"" + " \n\022ComparisonOperator\022\n\n\006EQUALS\020\000B\021\n\017pro" + "perty_filter\";\n\026ArtifactPropertyFilter\022\025" + "\n\013artifact_id\030\001 \001(\tH\000B\n\n\010property\"3\n\021Tag" + "PropertyFilter\022\022\n\010tag_name\030\001 \001(\tH\000B\n\n\010pr" + "operty\"S\n\027PartitionPropertyFilter\022,\n\007key" + "_val\030\001 \001(\0132\031.datacatalog.KeyValuePairH\000B" + "\n\n\010property\"*\n\014KeyValuePair\022\013\n\003key\030\001 \001(\t" + "\022\r\n\005value\030\002 \001(\t\"\200\001\n\025DatasetPropertyFilte" + "r\022\021\n\007project\030\001 \001(\tH\000\022\016\n\004name\030\002 \001(\tH\000\022\020\n\006" + "domain\030\003 \001(\tH\000\022\021\n\007version\030\004 \001(\tH\000\022\023\n\tpar" + "tition\030\005 \001(\tH\000B\n\n\010property\"\361\001\n\021Paginatio" + "nOptions\022\r\n\005limit\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\0227" + "\n\007sortKey\030\003 \001(\0162&.datacatalog.Pagination" + "Options.SortKey\022;\n\tsortOrder\030\004 \001(\0162(.dat" + "acatalog.PaginationOptions.SortOrder\"*\n\t" + "SortOrder\022\016\n\nDESCENDING\020\000\022\r\n\tASCENDING\020\001" + "\"\034\n\007SortKey\022\021\n\rCREATION_TIME\020\0002\206\007\n\013DataC" + "atalog\022V\n\rCreateDataset\022!.datacatalog.Cr" + "eateDatasetRequest\032\".datacatalog.CreateD" + "atasetResponse\022M\n\nGetDataset\022\036.datacatal" + "og.GetDatasetRequest\032\037.datacatalog.GetDa" + "tasetResponse\022Y\n\016CreateArtifact\022\".dataca" + "talog.CreateArtifactRequest\032#.datacatalo" + "g.CreateArtifactResponse\022P\n\013GetArtifact\022" + "\037.datacatalog.GetArtifactRequest\032 .datac" + "atalog.GetArtifactResponse\022A\n\006AddTag\022\032.d" + "atacatalog.AddTagRequest\032\033.datacatalog.A" + "ddTagResponse\022V\n\rListArtifacts\022!.datacat" + "alog.ListArtifactsRequest\032\".datacatalog." + "ListArtifactsResponse\022S\n\014ListDatasets\022 ." + "datacatalog.ListDatasetsRequest\032!.dataca" + "talog.ListDatasetsResponse\022Y\n\016UpdateArti" + "fact\022\".datacatalog.UpdateArtifactRequest" + "\032#.datacatalog.UpdateArtifactResponse\022q\n" + "\026GetOrExtendReservation\022*.datacatalog.Ge" + "tOrExtendReservationRequest\032+.datacatalo" + "g.GetOrExtendReservationResponse\022e\n\022Rele" + "aseReservation\022&.datacatalog.ReleaseRese" + "rvationRequest\032\'.datacatalog.ReleaseRese" + "rvationResponseBCZAgithub.com/flyteorg/f" + "lyte/flyteidl/gen/pb-go/flyteidl/datacat" + "alogb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fdatacatalog_2fdatacatalog_2eproto = { false, InitDefaults_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, descriptor_table_protodef_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, - "flyteidl/datacatalog/datacatalog.proto", &assign_descriptors_table_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, 4918, + "flyteidl/datacatalog/datacatalog.proto", &assign_descriptors_table_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, 4972, }; void AddDescriptors_flyteidl_2fdatacatalog_2fdatacatalog_2eproto() { @@ -9658,6 +9664,8 @@ const int DatasetID::kNameFieldNumber; const int DatasetID::kDomainFieldNumber; const int DatasetID::kVersionFieldNumber; const int DatasetID::kUUIDFieldNumber; +const int DatasetID::kPartitionFieldNumber; +const int DatasetID::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 DatasetID::DatasetID() @@ -9689,6 +9697,14 @@ DatasetID::DatasetID(const DatasetID& from) if (from.uuid().size() > 0) { uuid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.uuid_); } + partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.partition().size() > 0) { + partition_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.partition_); + } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } // @@protoc_insertion_point(copy_constructor:datacatalog.DatasetID) } @@ -9700,6 +9716,8 @@ void DatasetID::SharedCtor() { domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); version_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); uuid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } DatasetID::~DatasetID() { @@ -9713,6 +9731,8 @@ void DatasetID::SharedDtor() { domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); version_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); uuid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + partition_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void DatasetID::SetCachedSize(int size) const { @@ -9735,6 +9755,8 @@ void DatasetID::Clear() { domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); uuid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + partition_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); _internal_metadata_.Clear(); } @@ -9831,6 +9853,38 @@ const char* DatasetID::_InternalParse(const char* begin, const char* end, void* ptr += size; break; } + // string partition = 6; + case 6: { + if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("datacatalog.DatasetID.partition"); + object = msg->mutable_partition(); + 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; + } + // string org = 7; + case 7: { + if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("datacatalog.DatasetID.org"); + object = msg->mutable_org(); + 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) { @@ -9940,6 +9994,36 @@ bool DatasetID::MergePartialFromCodedStream( break; } + // string partition = 6; + case 6: { + if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_partition())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->partition().data(), static_cast(this->partition().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "datacatalog.DatasetID.partition")); + } else { + goto handle_unusual; + } + break; + } + + // string org = 7; + case 7: { + if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "datacatalog.DatasetID.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -10017,6 +10101,26 @@ void DatasetID::SerializeWithCachedSizes( 5, this->uuid(), output); } + // string partition = 6; + if (this->partition().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->partition().data(), static_cast(this->partition().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "datacatalog.DatasetID.partition"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 6, this->partition(), output); + } + + // string org = 7; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "datacatalog.DatasetID.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 7, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -10085,6 +10189,28 @@ ::google::protobuf::uint8* DatasetID::InternalSerializeWithCachedSizesToArray( 5, this->uuid(), target); } + // string partition = 6; + if (this->partition().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->partition().data(), static_cast(this->partition().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "datacatalog.DatasetID.partition"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 6, this->partition(), target); + } + + // string org = 7; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "datacatalog.DatasetID.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 7, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -10141,6 +10267,20 @@ size_t DatasetID::ByteSizeLong() const { this->uuid()); } + // string partition = 6; + if (this->partition().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->partition()); + } + + // string org = 7; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -10188,6 +10328,14 @@ void DatasetID::MergeFrom(const DatasetID& from) { uuid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.uuid_); } + if (from.partition().size() > 0) { + + partition_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.partition_); + } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } } void DatasetID::CopyFrom(const ::google::protobuf::Message& from) { @@ -10225,6 +10373,10 @@ void DatasetID::InternalSwap(DatasetID* other) { GetArenaNoVirtual()); uuid_.Swap(&other->uuid_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + partition_.Swap(&other->partition_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); } ::google::protobuf::Metadata DatasetID::GetMetadata() const { @@ -14418,6 +14570,8 @@ void DatasetPropertyFilter::InitAsDefaultInstance() { &::google::protobuf::internal::GetEmptyStringAlreadyInited()); ::datacatalog::_DatasetPropertyFilter_default_instance_.version_.UnsafeSetDefault( &::google::protobuf::internal::GetEmptyStringAlreadyInited()); + ::datacatalog::_DatasetPropertyFilter_default_instance_.partition_.UnsafeSetDefault( + &::google::protobuf::internal::GetEmptyStringAlreadyInited()); } class DatasetPropertyFilter::HasBitSetters { public: @@ -14428,6 +14582,7 @@ const int DatasetPropertyFilter::kProjectFieldNumber; const int DatasetPropertyFilter::kNameFieldNumber; const int DatasetPropertyFilter::kDomainFieldNumber; const int DatasetPropertyFilter::kVersionFieldNumber; +const int DatasetPropertyFilter::kPartitionFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 DatasetPropertyFilter::DatasetPropertyFilter() @@ -14457,6 +14612,10 @@ DatasetPropertyFilter::DatasetPropertyFilter(const DatasetPropertyFilter& from) set_version(from.version()); break; } + case kPartition: { + set_partition(from.partition()); + break; + } case PROPERTY_NOT_SET: { break; } @@ -14509,6 +14668,10 @@ void DatasetPropertyFilter::clear_property() { property_.version_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); break; } + case kPartition: { + property_.partition_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + break; + } case PROPERTY_NOT_SET: { break; } @@ -14604,6 +14767,22 @@ const char* DatasetPropertyFilter::_InternalParse(const char* begin, const char* ptr += size; break; } + // string partition = 5; + case 5: { + if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("datacatalog.DatasetPropertyFilter.partition"); + object = msg->mutable_partition(); + 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) { @@ -14698,6 +14877,21 @@ bool DatasetPropertyFilter::MergePartialFromCodedStream( break; } + // string partition = 5; + case 5: { + if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_partition())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->partition().data(), static_cast(this->partition().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "datacatalog.DatasetPropertyFilter.partition")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -14765,6 +14959,16 @@ void DatasetPropertyFilter::SerializeWithCachedSizes( 4, this->version(), output); } + // string partition = 5; + if (has_partition()) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->partition().data(), static_cast(this->partition().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "datacatalog.DatasetPropertyFilter.partition"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 5, this->partition(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -14822,6 +15026,17 @@ ::google::protobuf::uint8* DatasetPropertyFilter::InternalSerializeWithCachedSiz 4, this->version(), target); } + // string partition = 5; + if (has_partition()) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->partition().data(), static_cast(this->partition().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "datacatalog.DatasetPropertyFilter.partition"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 5, this->partition(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -14872,6 +15087,13 @@ size_t DatasetPropertyFilter::ByteSizeLong() const { this->version()); break; } + // string partition = 5; + case kPartition: { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->partition()); + break; + } case PROPERTY_NOT_SET: { break; } @@ -14920,6 +15142,10 @@ void DatasetPropertyFilter::MergeFrom(const DatasetPropertyFilter& from) { set_version(from.version()); break; } + case kPartition: { + set_partition(from.partition()); + break; + } case PROPERTY_NOT_SET: { break; } diff --git a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h index da52d149e1..c5167c11ba 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h @@ -3518,6 +3518,34 @@ class DatasetID final : ::std::string* release_uuid(); void set_allocated_uuid(::std::string* uuid); + // string partition = 6; + void clear_partition(); + static const int kPartitionFieldNumber = 6; + const ::std::string& partition() const; + void set_partition(const ::std::string& value); + #if LANG_CXX11 + void set_partition(::std::string&& value); + #endif + void set_partition(const char* value); + void set_partition(const char* value, size_t size); + ::std::string* mutable_partition(); + ::std::string* release_partition(); + void set_allocated_partition(::std::string* partition); + + // string org = 7; + void clear_org(); + static const int kOrgFieldNumber = 7; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // @@protoc_insertion_point(class_scope:datacatalog.DatasetID) private: class HasBitSetters; @@ -3528,6 +3556,8 @@ class DatasetID final : ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr version_; ::google::protobuf::internal::ArenaStringPtr uuid_; + ::google::protobuf::internal::ArenaStringPtr partition_; + ::google::protobuf::internal::ArenaStringPtr org_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fdatacatalog_2fdatacatalog_2eproto; }; @@ -5039,6 +5069,7 @@ class DatasetPropertyFilter final : kName = 2, kDomain = 3, kVersion = 4, + kPartition = 5, PROPERTY_NOT_SET = 0, }; @@ -5173,6 +5204,23 @@ class DatasetPropertyFilter final : ::std::string* release_version(); void set_allocated_version(::std::string* version); + // string partition = 5; + private: + bool has_partition() const; + public: + void clear_partition(); + static const int kPartitionFieldNumber = 5; + const ::std::string& partition() const; + void set_partition(const ::std::string& value); + #if LANG_CXX11 + void set_partition(::std::string&& value); + #endif + void set_partition(const char* value); + void set_partition(const char* value, size_t size); + ::std::string* mutable_partition(); + ::std::string* release_partition(); + void set_allocated_partition(::std::string* partition); + void clear_property(); PropertyCase property_case() const; // @@protoc_insertion_point(class_scope:datacatalog.DatasetPropertyFilter) @@ -5182,6 +5230,7 @@ class DatasetPropertyFilter final : void set_has_name(); void set_has_domain(); void set_has_version(); + void set_has_partition(); inline bool has_property() const; inline void clear_has_property(); @@ -5193,6 +5242,7 @@ class DatasetPropertyFilter final : ::google::protobuf::internal::ArenaStringPtr name_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr version_; + ::google::protobuf::internal::ArenaStringPtr partition_; } property_; mutable ::google::protobuf::internal::CachedSize _cached_size_; ::google::protobuf::uint32 _oneof_case_[1]; @@ -8044,6 +8094,112 @@ inline void DatasetID::set_allocated_uuid(::std::string* uuid) { // @@protoc_insertion_point(field_set_allocated:datacatalog.DatasetID.UUID) } +// string partition = 6; +inline void DatasetID::clear_partition() { + partition_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& DatasetID::partition() const { + // @@protoc_insertion_point(field_get:datacatalog.DatasetID.partition) + return partition_.GetNoArena(); +} +inline void DatasetID::set_partition(const ::std::string& value) { + + partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:datacatalog.DatasetID.partition) +} +#if LANG_CXX11 +inline void DatasetID::set_partition(::std::string&& value) { + + partition_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:datacatalog.DatasetID.partition) +} +#endif +inline void DatasetID::set_partition(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:datacatalog.DatasetID.partition) +} +inline void DatasetID::set_partition(const char* value, size_t size) { + + partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:datacatalog.DatasetID.partition) +} +inline ::std::string* DatasetID::mutable_partition() { + + // @@protoc_insertion_point(field_mutable:datacatalog.DatasetID.partition) + return partition_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* DatasetID::release_partition() { + // @@protoc_insertion_point(field_release:datacatalog.DatasetID.partition) + + return partition_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void DatasetID::set_allocated_partition(::std::string* partition) { + if (partition != nullptr) { + + } else { + + } + partition_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), partition); + // @@protoc_insertion_point(field_set_allocated:datacatalog.DatasetID.partition) +} + +// string org = 7; +inline void DatasetID::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& DatasetID::org() const { + // @@protoc_insertion_point(field_get:datacatalog.DatasetID.org) + return org_.GetNoArena(); +} +inline void DatasetID::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:datacatalog.DatasetID.org) +} +#if LANG_CXX11 +inline void DatasetID::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:datacatalog.DatasetID.org) +} +#endif +inline void DatasetID::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:datacatalog.DatasetID.org) +} +inline void DatasetID::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:datacatalog.DatasetID.org) +} +inline ::std::string* DatasetID::mutable_org() { + + // @@protoc_insertion_point(field_mutable:datacatalog.DatasetID.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* DatasetID::release_org() { + // @@protoc_insertion_point(field_release:datacatalog.DatasetID.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void DatasetID::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:datacatalog.DatasetID.org) +} + // ------------------------------------------------------------------- // Artifact @@ -9597,6 +9753,98 @@ inline void DatasetPropertyFilter::set_allocated_version(::std::string* version) // @@protoc_insertion_point(field_set_allocated:datacatalog.DatasetPropertyFilter.version) } +// string partition = 5; +inline bool DatasetPropertyFilter::has_partition() const { + return property_case() == kPartition; +} +inline void DatasetPropertyFilter::set_has_partition() { + _oneof_case_[0] = kPartition; +} +inline void DatasetPropertyFilter::clear_partition() { + if (has_partition()) { + property_.partition_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + clear_has_property(); + } +} +inline const ::std::string& DatasetPropertyFilter::partition() const { + // @@protoc_insertion_point(field_get:datacatalog.DatasetPropertyFilter.partition) + if (has_partition()) { + return property_.partition_.GetNoArena(); + } + return *&::google::protobuf::internal::GetEmptyStringAlreadyInited(); +} +inline void DatasetPropertyFilter::set_partition(const ::std::string& value) { + // @@protoc_insertion_point(field_set:datacatalog.DatasetPropertyFilter.partition) + if (!has_partition()) { + clear_property(); + set_has_partition(); + property_.partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + } + property_.partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:datacatalog.DatasetPropertyFilter.partition) +} +#if LANG_CXX11 +inline void DatasetPropertyFilter::set_partition(::std::string&& value) { + // @@protoc_insertion_point(field_set:datacatalog.DatasetPropertyFilter.partition) + if (!has_partition()) { + clear_property(); + set_has_partition(); + property_.partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + } + property_.partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:datacatalog.DatasetPropertyFilter.partition) +} +#endif +inline void DatasetPropertyFilter::set_partition(const char* value) { + GOOGLE_DCHECK(value != nullptr); + if (!has_partition()) { + clear_property(); + set_has_partition(); + property_.partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + } + property_.partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(value)); + // @@protoc_insertion_point(field_set_char:datacatalog.DatasetPropertyFilter.partition) +} +inline void DatasetPropertyFilter::set_partition(const char* value, size_t size) { + if (!has_partition()) { + clear_property(); + set_has_partition(); + property_.partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + } + property_.partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:datacatalog.DatasetPropertyFilter.partition) +} +inline ::std::string* DatasetPropertyFilter::mutable_partition() { + if (!has_partition()) { + clear_property(); + set_has_partition(); + property_.partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + } + // @@protoc_insertion_point(field_mutable:datacatalog.DatasetPropertyFilter.partition) + return property_.partition_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* DatasetPropertyFilter::release_partition() { + // @@protoc_insertion_point(field_release:datacatalog.DatasetPropertyFilter.partition) + if (has_partition()) { + clear_has_property(); + return property_.partition_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + } else { + return nullptr; + } +} +inline void DatasetPropertyFilter::set_allocated_partition(::std::string* partition) { + if (has_property()) { + clear_property(); + } + if (partition != nullptr) { + set_has_partition(); + property_.partition_.UnsafeSetDefault(partition); + } + // @@protoc_insertion_point(field_set_allocated:datacatalog.DatasetPropertyFilter.partition) +} + inline bool DatasetPropertyFilter::has_property() const { return property_case() != PROPERTY_NOT_SET; } 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 77f3dc1487..830119f9ad 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h @@ -66,7 +66,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Task>> PrepareAsyncGetTask(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Task>>(PrepareAsyncGetTaskRaw(context, request, cq)); } - // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. virtual ::grpc::Status ListTaskIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::flyteidl::admin::NamedEntityIdentifierList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>> AsyncListTaskIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>>(AsyncListTaskIdsRaw(context, request, cq)); @@ -278,7 +278,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectRegisterResponse>> PrepareAsyncRegisterProject(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectRegisterRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectRegisterResponse>>(PrepareAsyncRegisterProjectRaw(context, request, cq)); } - // Updates an existing :ref:`ref_flyteidl.admin.Project` + // Updates an existing :ref:`ref_flyteidl.admin.Project` // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. virtual ::grpc::Status UpdateProject(::grpc::ClientContext* context, const ::flyteidl::admin::Project& request, ::flyteidl::admin::ProjectUpdateResponse* response) = 0; @@ -288,7 +288,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectUpdateResponse>> PrepareAsyncUpdateProject(::grpc::ClientContext* context, const ::flyteidl::admin::Project& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectUpdateResponse>>(PrepareAsyncUpdateProjectRaw(context, request, cq)); } - // Fetches a list of :ref:`ref_flyteidl.admin.Project` + // Fetches a list of :ref:`ref_flyteidl.admin.Project` virtual ::grpc::Status ListProjects(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectListRequest& request, ::flyteidl::admin::Projects* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Projects>> AsyncListProjects(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Projects>>(AsyncListProjectsRaw(context, request, cq)); @@ -492,7 +492,7 @@ class AdminService final { virtual void GetTask(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Task* response, std::function) = 0; virtual void GetTask(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::Task* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetTask(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Task* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; - // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. virtual void ListTaskIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response, std::function) = 0; virtual void ListTaskIds(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntityIdentifierList* response, std::function) = 0; virtual void ListTaskIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; @@ -626,14 +626,14 @@ class AdminService final { virtual void RegisterProject(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectRegisterResponse* response, std::function) = 0; virtual void RegisterProject(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectRegisterRequest* request, ::flyteidl::admin::ProjectRegisterResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void RegisterProject(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectRegisterResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; - // Updates an existing :ref:`ref_flyteidl.admin.Project` + // Updates an existing :ref:`ref_flyteidl.admin.Project` // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. virtual void UpdateProject(::grpc::ClientContext* context, const ::flyteidl::admin::Project* request, ::flyteidl::admin::ProjectUpdateResponse* response, std::function) = 0; virtual void UpdateProject(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectUpdateResponse* response, std::function) = 0; virtual void UpdateProject(::grpc::ClientContext* context, const ::flyteidl::admin::Project* request, ::flyteidl::admin::ProjectUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void UpdateProject(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; - // Fetches a list of :ref:`ref_flyteidl.admin.Project` + // Fetches a list of :ref:`ref_flyteidl.admin.Project` virtual void ListProjects(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectListRequest* request, ::flyteidl::admin::Projects* response, std::function) = 0; virtual void ListProjects(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Projects* response, std::function) = 0; virtual void ListProjects(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectListRequest* request, ::flyteidl::admin::Projects* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; @@ -1632,7 +1632,7 @@ class AdminService final { virtual ::grpc::Status CreateTask(::grpc::ServerContext* context, const ::flyteidl::admin::TaskCreateRequest* request, ::flyteidl::admin::TaskCreateResponse* response); // Fetch a :ref:`ref_flyteidl.admin.Task` definition. virtual ::grpc::Status GetTask(::grpc::ServerContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::Task* response); - // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. virtual ::grpc::Status ListTaskIds(::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response); // Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. virtual ::grpc::Status ListTasks(::grpc::ServerContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::TaskList* response); @@ -1688,11 +1688,11 @@ class AdminService final { virtual ::grpc::Status GetNodeExecutionData(::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionGetDataRequest* request, ::flyteidl::admin::NodeExecutionGetDataResponse* response); // Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. virtual ::grpc::Status RegisterProject(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectRegisterRequest* request, ::flyteidl::admin::ProjectRegisterResponse* response); - // Updates an existing :ref:`ref_flyteidl.admin.Project` + // Updates an existing :ref:`ref_flyteidl.admin.Project` // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. virtual ::grpc::Status UpdateProject(::grpc::ServerContext* context, const ::flyteidl::admin::Project* request, ::flyteidl::admin::ProjectUpdateResponse* response); - // Fetches a list of :ref:`ref_flyteidl.admin.Project` + // Fetches a list of :ref:`ref_flyteidl.admin.Project` virtual ::grpc::Status ListProjects(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectListRequest* request, ::flyteidl::admin::Projects* response); // Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. virtual ::grpc::Status CreateWorkflowEvent(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionEventRequest* request, ::flyteidl::admin::WorkflowExecutionEventResponse* response); diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc index 991c8bb312..6a5fa9886f 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc @@ -52,263 +52,379 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "admin/task_execution.proto\032\034flyteidl/adm" "in/version.proto\032\033flyteidl/admin/common." "proto\032\'flyteidl/admin/description_entity" - ".proto2\204N\n\014AdminService\022m\n\nCreateTask\022!." + ".proto2\245r\n\014AdminService\022m\n\nCreateTask\022!." "flyteidl.admin.TaskCreateRequest\032\".flyte" "idl.admin.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/a" - "pi/v1/tasks:\001*\022\210\001\n\007GetTask\022 .flyteidl.ad" + "pi/v1/tasks:\001*\022\330\001\n\007GetTask\022 .flyteidl.ad" "min.ObjectGetRequest\032\024.flyteidl.admin.Ta" - "sk\"E\202\323\344\223\002\?\022=/api/v1/tasks/{id.project}/{" - "id.domain}/{id.name}/{id.version}\022\227\001\n\013Li" + "sk\"\224\001\202\323\344\223\002\215\001\022=/api/v1/tasks/{id.project}" + "/{id.domain}/{id.name}/{id.version}ZL\022J/" + "api/v1/tasks/org/{id.org}/{id.project}/{" + "id.domain}/{id.name}/{id.version}\022\305\001\n\013Li" "stTaskIds\0220.flyteidl.admin.NamedEntityId" "entifierListRequest\032).flyteidl.admin.Nam" - "edEntityIdentifierList\"+\202\323\344\223\002%\022#/api/v1/" - "task_ids/{project}/{domain}\022\256\001\n\tListTask" - "s\022#.flyteidl.admin.ResourceListRequest\032\030" - ".flyteidl.admin.TaskList\"b\202\323\344\223\002\\\0220/api/v" - "1/tasks/{id.project}/{id.domain}/{id.nam" - "e}Z(\022&/api/v1/tasks/{id.project}/{id.dom" - "ain}\022}\n\016CreateWorkflow\022%.flyteidl.admin." - "WorkflowCreateRequest\032&.flyteidl.admin.W" - "orkflowCreateResponse\"\034\202\323\344\223\002\026\"\021/api/v1/w" - "orkflows:\001*\022\224\001\n\013GetWorkflow\022 .flyteidl.a" - "dmin.ObjectGetRequest\032\030.flyteidl.admin.W" - "orkflow\"I\202\323\344\223\002C\022A/api/v1/workflows/{id.p" - "roject}/{id.domain}/{id.name}/{id.versio" - "n}\022\237\001\n\017ListWorkflowIds\0220.flyteidl.admin." - "NamedEntityIdentifierListRequest\032).flyte" - "idl.admin.NamedEntityIdentifierList\"/\202\323\344" - "\223\002)\022\'/api/v1/workflow_ids/{project}/{dom" - "ain}\022\276\001\n\rListWorkflows\022#.flyteidl.admin." - "ResourceListRequest\032\034.flyteidl.admin.Wor" - "kflowList\"j\202\323\344\223\002d\0224/api/v1/workflows/{id" - ".project}/{id.domain}/{id.name}Z,\022*/api/" - "v1/workflows/{id.project}/{id.domain}\022\206\001" - "\n\020CreateLaunchPlan\022\'.flyteidl.admin.Laun" - "chPlanCreateRequest\032(.flyteidl.admin.Lau" - "nchPlanCreateResponse\"\037\202\323\344\223\002\031\"\024/api/v1/l" - "aunch_plans:\001*\022\233\001\n\rGetLaunchPlan\022 .flyte" - "idl.admin.ObjectGetRequest\032\032.flyteidl.ad" - "min.LaunchPlan\"L\202\323\344\223\002F\022D/api/v1/launch_p" - "lans/{id.project}/{id.domain}/{id.name}/" - "{id.version}\022\242\001\n\023GetActiveLaunchPlan\022\'.f" - "lyteidl.admin.ActiveLaunchPlanRequest\032\032." - "flyteidl.admin.LaunchPlan\"F\202\323\344\223\002@\022>/api/" - "v1/active_launch_plans/{id.project}/{id." + "edEntityIdentifierList\"Y\202\323\344\223\002S\022#/api/v1/" + "task_ids/{project}/{domain}Z,\022*/api/v1/t" + "asks/org/{org}/{project}/{domain}\022\250\002\n\tLi" + "stTasks\022#.flyteidl.admin.ResourceListReq" + "uest\032\030.flyteidl.admin.TaskList\"\333\001\202\323\344\223\002\324\001" + "\0220/api/v1/tasks/{id.project}/{id.domain}" + "/{id.name}Z\?\022=/api/v1/tasks/org/{id.org}" + "/{id.project}/{id.domain}/{id.name}Z(\022&/" + "api/v1/tasks/{id.project}/{id.domain}Z5\022" + "3/api/v1/tasks/org/{id.org}/{id.project}" + "/{id.domain}\022}\n\016CreateWorkflow\022%.flyteid" + "l.admin.WorkflowCreateRequest\032&.flyteidl" + ".admin.WorkflowCreateResponse\"\034\202\323\344\223\002\026\"\021/" + "api/v1/workflows:\001*\022\350\001\n\013GetWorkflow\022 .fl" + "yteidl.admin.ObjectGetRequest\032\030.flyteidl" + ".admin.Workflow\"\234\001\202\323\344\223\002\225\001\022A/api/v1/workf" + "lows/{id.project}/{id.domain}/{id.name}/" + "{id.version}ZP\022N/api/v1/workflows/org/{i" + "d.org}/{id.project}/{id.domain}/{id.name" + "}/{id.version}\022\321\001\n\017ListWorkflowIds\0220.fly" + "teidl.admin.NamedEntityIdentifierListReq" + "uest\032).flyteidl.admin.NamedEntityIdentif" + "ierList\"a\202\323\344\223\002[\022\'/api/v1/workflow_ids/{p" + "roject}/{domain}Z0\022./api/v1/workflows/or" + "g/{org}/{project}/{domain}\022\300\002\n\rListWorkf" + "lows\022#.flyteidl.admin.ResourceListReques" + "t\032\034.flyteidl.admin.WorkflowList\"\353\001\202\323\344\223\002\344" + "\001\0224/api/v1/workflows/{id.project}/{id.do" + "main}/{id.name}ZC\022A/api/v1/workflows/org" + "/{id.org}/{id.project}/{id.domain}/{id.n" + "ame}Z,\022*/api/v1/workflows/{id.project}/{" + "id.domain}Z9\0227/api/v1/workflows/org/{id." + "org}/{id.project}/{id.domain}\022\206\001\n\020Create" + "LaunchPlan\022\'.flyteidl.admin.LaunchPlanCr" + "eateRequest\032(.flyteidl.admin.LaunchPlanC" + "reateResponse\"\037\202\323\344\223\002\031\"\024/api/v1/launch_pl" + "ans:\001*\022\362\001\n\rGetLaunchPlan\022 .flyteidl.admi" + "n.ObjectGetRequest\032\032.flyteidl.admin.Laun" + "chPlan\"\242\001\202\323\344\223\002\233\001\022D/api/v1/launch_plans/{" + "id.project}/{id.domain}/{id.name}/{id.ve" + "rsion}ZS\022Q/api/v1/launch_plans/org/{id.o" + "rg}/{id.project}/{id.domain}/{id.name}/{" + "id.version}\022\363\001\n\023GetActiveLaunchPlan\022\'.fl" + "yteidl.admin.ActiveLaunchPlanRequest\032\032.f" + "lyteidl.admin.LaunchPlan\"\226\001\202\323\344\223\002\217\001\022>/api" + "/v1/active_launch_plans/{id.project}/{id" + ".domain}/{id.name}ZM\022K/api/v1/active_lau" + "nch_plans/org/{id.org}/{id.project}/{id." "domain}/{id.name}\022\234\001\n\025ListActiveLaunchPl" "ans\022+.flyteidl.admin.ActiveLaunchPlanLis" "tRequest\032\036.flyteidl.admin.LaunchPlanList" "\"6\202\323\344\223\0020\022./api/v1/active_launch_plans/{p" - "roject}/{domain}\022\244\001\n\021ListLaunchPlanIds\0220" + "roject}/{domain}\022\334\001\n\021ListLaunchPlanIds\0220" ".flyteidl.admin.NamedEntityIdentifierLis" "tRequest\032).flyteidl.admin.NamedEntityIde" - "ntifierList\"2\202\323\344\223\002,\022*/api/v1/launch_plan" - "_ids/{project}/{domain}\022\310\001\n\017ListLaunchPl" - "ans\022#.flyteidl.admin.ResourceListRequest" - "\032\036.flyteidl.admin.LaunchPlanList\"p\202\323\344\223\002j" - "\0227/api/v1/launch_plans/{id.project}/{id." - "domain}/{id.name}Z/\022-/api/v1/launch_plan" - "s/{id.project}/{id.domain}\022\266\001\n\020UpdateLau" - "nchPlan\022\'.flyteidl.admin.LaunchPlanUpdat" - "eRequest\032(.flyteidl.admin.LaunchPlanUpda" - "teResponse\"O\202\323\344\223\002I\032D/api/v1/launch_plans" - "/{id.project}/{id.domain}/{id.name}/{id." - "version}:\001*\022\201\001\n\017CreateExecution\022&.flytei" - "dl.admin.ExecutionCreateRequest\032\'.flytei" - "dl.admin.ExecutionCreateResponse\"\035\202\323\344\223\002\027" - "\"\022/api/v1/executions:\001*\022\216\001\n\021RelaunchExec" - "ution\022(.flyteidl.admin.ExecutionRelaunch" - "Request\032\'.flyteidl.admin.ExecutionCreate" - "Response\"&\202\323\344\223\002 \"\033/api/v1/executions/rel" - "aunch:\001*\022\213\001\n\020RecoverExecution\022\'.flyteidl" - ".admin.ExecutionRecoverRequest\032\'.flyteid" - "l.admin.ExecutionCreateResponse\"%\202\323\344\223\002\037\"" - "\032/api/v1/executions/recover:\001*\022\225\001\n\014GetEx" - "ecution\022+.flyteidl.admin.WorkflowExecuti" - "onGetRequest\032\031.flyteidl.admin.Execution\"" - "=\202\323\344\223\0027\0225/api/v1/executions/{id.project}" - "/{id.domain}/{id.name}\022\244\001\n\017UpdateExecuti" - "on\022&.flyteidl.admin.ExecutionUpdateReque" - "st\032\'.flyteidl.admin.ExecutionUpdateRespo" - "nse\"@\202\323\344\223\002:\0325/api/v1/executions/{id.proj" - "ect}/{id.domain}/{id.name}:\001*\022\271\001\n\020GetExe" - "cutionData\022/.flyteidl.admin.WorkflowExec" - "utionGetDataRequest\0320.flyteidl.admin.Wor" - "kflowExecutionGetDataResponse\"B\202\323\344\223\002<\022:/" - "api/v1/data/executions/{id.project}/{id." - "domain}/{id.name}\022\211\001\n\016ListExecutions\022#.f" - "lyteidl.admin.ResourceListRequest\032\035.flyt" - "eidl.admin.ExecutionList\"3\202\323\344\223\002-\022+/api/v" - "1/executions/{id.project}/{id.domain}\022\255\001" - "\n\022TerminateExecution\022).flyteidl.admin.Ex" - "ecutionTerminateRequest\032*.flyteidl.admin" - ".ExecutionTerminateResponse\"@\202\323\344\223\002:*5/ap" - "i/v1/executions/{id.project}/{id.domain}" - "/{id.name}:\001*\022\322\001\n\020GetNodeExecution\022\'.fly" - "teidl.admin.NodeExecutionGetRequest\032\035.fl" - "yteidl.admin.NodeExecution\"v\202\323\344\223\002p\022n/api" - "/v1/node_executions/{id.execution_id.pro" - "ject}/{id.execution_id.domain}/{id.execu" - "tion_id.name}/{id.node_id}\022\336\001\n\022ListNodeE" - "xecutions\022(.flyteidl.admin.NodeExecution" - "ListRequest\032!.flyteidl.admin.NodeExecuti" - "onList\"{\202\323\344\223\002u\022s/api/v1/node_executions/" - "{workflow_execution_id.project}/{workflo" - "w_execution_id.domain}/{workflow_executi" - "on_id.name}\022\245\004\n\031ListNodeExecutionsForTas" - "k\022/.flyteidl.admin.NodeExecutionForTaskL" - "istRequest\032!.flyteidl.admin.NodeExecutio" - "nList\"\263\003\202\323\344\223\002\254\003\022\251\003/api/v1/children/task_" - "executions/{task_execution_id.node_execu" - "tion_id.execution_id.project}/{task_exec" - "ution_id.node_execution_id.execution_id." - "domain}/{task_execution_id.node_executio" - "n_id.execution_id.name}/{task_execution_" - "id.node_execution_id.node_id}/{task_exec" - "ution_id.task_id.project}/{task_executio" - "n_id.task_id.domain}/{task_execution_id." - "task_id.name}/{task_execution_id.task_id" - ".version}/{task_execution_id.retry_attem" - "pt}\022\356\001\n\024GetNodeExecutionData\022+.flyteidl." - "admin.NodeExecutionGetDataRequest\032,.flyt" - "eidl.admin.NodeExecutionGetDataResponse\"" - "{\202\323\344\223\002u\022s/api/v1/data/node_executions/{i" - "d.execution_id.project}/{id.execution_id" - ".domain}/{id.execution_id.name}/{id.node" - "_id}\022\177\n\017RegisterProject\022&.flyteidl.admin" - ".ProjectRegisterRequest\032\'.flyteidl.admin" - ".ProjectRegisterResponse\"\033\202\323\344\223\002\025\"\020/api/v" - "1/projects:\001*\022q\n\rUpdateProject\022\027.flyteid" - "l.admin.Project\032%.flyteidl.admin.Project" - "UpdateResponse\" \202\323\344\223\002\032\032\025/api/v1/projects" - "/{id}:\001*\022f\n\014ListProjects\022\".flyteidl.admi" - "n.ProjectListRequest\032\030.flyteidl.admin.Pr" - "ojects\"\030\202\323\344\223\002\022\022\020/api/v1/projects\022\231\001\n\023Cre" - "ateWorkflowEvent\022-.flyteidl.admin.Workfl" - "owExecutionEventRequest\032..flyteidl.admin" - ".WorkflowExecutionEventResponse\"#\202\323\344\223\002\035\"" - "\030/api/v1/events/workflows:\001*\022\211\001\n\017CreateN" - "odeEvent\022).flyteidl.admin.NodeExecutionE" - "ventRequest\032*.flyteidl.admin.NodeExecuti" - "onEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/" - "nodes:\001*\022\211\001\n\017CreateTaskEvent\022).flyteidl." - "admin.TaskExecutionEventRequest\032*.flytei" - "dl.admin.TaskExecutionEventResponse\"\037\202\323\344" - "\223\002\031\"\024/api/v1/events/tasks:\001*\022\200\003\n\020GetTask" - "Execution\022\'.flyteidl.admin.TaskExecution" - "GetRequest\032\035.flyteidl.admin.TaskExecutio" - "n\"\243\002\202\323\344\223\002\234\002\022\231\002/api/v1/task_executions/{i" - "d.node_execution_id.execution_id.project" - "}/{id.node_execution_id.execution_id.dom" - "ain}/{id.node_execution_id.execution_id." - "name}/{id.node_execution_id.node_id}/{id" - ".task_id.project}/{id.task_id.domain}/{i" - "d.task_id.name}/{id.task_id.version}/{id" - ".retry_attempt}\022\230\002\n\022ListTaskExecutions\022(" - ".flyteidl.admin.TaskExecutionListRequest" - "\032!.flyteidl.admin.TaskExecutionList\"\264\001\202\323" - "\344\223\002\255\001\022\252\001/api/v1/task_executions/{node_ex" - "ecution_id.execution_id.project}/{node_e" - "xecution_id.execution_id.domain}/{node_e" - "xecution_id.execution_id.name}/{node_exe" - "cution_id.node_id}\022\234\003\n\024GetTaskExecutionD" - "ata\022+.flyteidl.admin.TaskExecutionGetDat" - "aRequest\032,.flyteidl.admin.TaskExecutionG" - "etDataResponse\"\250\002\202\323\344\223\002\241\002\022\236\002/api/v1/data/" - "task_executions/{id.node_execution_id.ex" - "ecution_id.project}/{id.node_execution_i" - "d.execution_id.domain}/{id.node_executio" - "n_id.execution_id.name}/{id.node_executi" - "on_id.node_id}/{id.task_id.project}/{id." - "task_id.domain}/{id.task_id.name}/{id.ta" - "sk_id.version}/{id.retry_attempt}\022\343\001\n\035Up" - "dateProjectDomainAttributes\0224.flyteidl.a" - "dmin.ProjectDomainAttributesUpdateReques" - "t\0325.flyteidl.admin.ProjectDomainAttribut" - "esUpdateResponse\"U\202\323\344\223\002O\032J/api/v1/projec" - "t_domain_attributes/{attributes.project}" - "/{attributes.domain}:\001*\022\301\001\n\032GetProjectDo" - "mainAttributes\0221.flyteidl.admin.ProjectD" - "omainAttributesGetRequest\0322.flyteidl.adm" - "in.ProjectDomainAttributesGetResponse\"<\202" - "\323\344\223\0026\0224/api/v1/project_domain_attributes" - "/{project}/{domain}\022\315\001\n\035DeleteProjectDom" - "ainAttributes\0224.flyteidl.admin.ProjectDo" - "mainAttributesDeleteRequest\0325.flyteidl.a" - "dmin.ProjectDomainAttributesDeleteRespon" - "se\"\?\202\323\344\223\0029*4/api/v1/project_domain_attri" - "butes/{project}/{domain}:\001*\022\266\001\n\027UpdatePr" - "ojectAttributes\022..flyteidl.admin.Project" - "AttributesUpdateRequest\032/.flyteidl.admin" - ".ProjectAttributesUpdateResponse\":\202\323\344\223\0024" - "\032//api/v1/project_attributes/{attributes" - ".project}:\001*\022\237\001\n\024GetProjectAttributes\022+." - "flyteidl.admin.ProjectAttributesGetReque" - "st\032,.flyteidl.admin.ProjectAttributesGet" - "Response\",\202\323\344\223\002&\022$/api/v1/project_attrib" - "utes/{project}\022\253\001\n\027DeleteProjectAttribut" - "es\022..flyteidl.admin.ProjectAttributesDel" - "eteRequest\032/.flyteidl.admin.ProjectAttri" - "butesDeleteResponse\"/\202\323\344\223\002)*$/api/v1/pro" - "ject_attributes/{project}:\001*\022\344\001\n\030UpdateW" - "orkflowAttributes\022/.flyteidl.admin.Workf" - "lowAttributesUpdateRequest\0320.flyteidl.ad" - "min.WorkflowAttributesUpdateResponse\"e\202\323" - "\344\223\002_\032Z/api/v1/workflow_attributes/{attri" - "butes.project}/{attributes.domain}/{attr" - "ibutes.workflow}:\001*\022\267\001\n\025GetWorkflowAttri" - "butes\022,.flyteidl.admin.WorkflowAttribute" - "sGetRequest\032-.flyteidl.admin.WorkflowAtt" - "ributesGetResponse\"A\202\323\344\223\002;\0229/api/v1/work" - "flow_attributes/{project}/{domain}/{work" - "flow}\022\303\001\n\030DeleteWorkflowAttributes\022/.fly" - "teidl.admin.WorkflowAttributesDeleteRequ" - "est\0320.flyteidl.admin.WorkflowAttributesD" - "eleteResponse\"D\202\323\344\223\002>*9/api/v1/workflow_" - "attributes/{project}/{domain}/{workflow}" - ":\001*\022\240\001\n\027ListMatchableAttributes\022..flytei" - "dl.admin.ListMatchableAttributesRequest\032" - "/.flyteidl.admin.ListMatchableAttributes" - "Response\"$\202\323\344\223\002\036\022\034/api/v1/matchable_attr" - "ibutes\022\237\001\n\021ListNamedEntities\022&.flyteidl." - "admin.NamedEntityListRequest\032\037.flyteidl." - "admin.NamedEntityList\"A\202\323\344\223\002;\0229/api/v1/n" - "amed_entities/{resource_type}/{project}/" - "{domain}\022\247\001\n\016GetNamedEntity\022%.flyteidl.a" - "dmin.NamedEntityGetRequest\032\033.flyteidl.ad" - "min.NamedEntity\"Q\202\323\344\223\002K\022I/api/v1/named_e" + "ntifierList\"j\202\323\344\223\002d\022*/api/v1/launch_plan" + "_ids/{project}/{domain}Z6\0224/api/v1/launc" + "h_plan_ids/org/{org}/{project}/{domain}\022" + "\320\002\n\017ListLaunchPlans\022#.flyteidl.admin.Res" + "ourceListRequest\032\036.flyteidl.admin.Launch" + "PlanList\"\367\001\202\323\344\223\002\360\001\0227/api/v1/launch_plans" + "/{id.project}/{id.domain}/{id.name}ZF\022D/" + "api/v1/launch_plans/org/{id.org}/{id.pro" + "ject}/{id.domain}/{id.name}Z/\022-/api/v1/l" + "aunch_plans/{id.project}/{id.domain}Z<\022:" + "/api/v1/launch_plans/org/{id.org}/{id.pr" + "oject}/{id.domain}\022\215\002\n\020UpdateLaunchPlan\022" + "\'.flyteidl.admin.LaunchPlanUpdateRequest" + "\032(.flyteidl.admin.LaunchPlanUpdateRespon" + "se\"\245\001\202\323\344\223\002\236\001\032D/api/v1/launch_plans/{id.p" + "roject}/{id.domain}/{id.name}/{id.versio" + "n}:\001*ZS\032Q/api/v1/launch_plans/org/{id.or" + "g}/{id.project}/{id.domain}/{id.name}/{i" + "d.version}\022\201\001\n\017CreateExecution\022&.flyteid" + "l.admin.ExecutionCreateRequest\032\'.flyteid" + "l.admin.ExecutionCreateResponse\"\035\202\323\344\223\002\027\"" + "\022/api/v1/executions:\001*\022\216\001\n\021RelaunchExecu" + "tion\022(.flyteidl.admin.ExecutionRelaunchR" + "equest\032\'.flyteidl.admin.ExecutionCreateR" + "esponse\"&\202\323\344\223\002 \"\033/api/v1/executions/rela" + "unch:\001*\022\213\001\n\020RecoverExecution\022\'.flyteidl." + "admin.ExecutionRecoverRequest\032\'.flyteidl" + ".admin.ExecutionCreateResponse\"%\202\323\344\223\002\037\"\032" + "/api/v1/executions/recover:\001*\022\334\001\n\014GetExe" + "cution\022+.flyteidl.admin.WorkflowExecutio" + "nGetRequest\032\031.flyteidl.admin.Execution\"\203" + "\001\202\323\344\223\002}\0225/api/v1/executions/{id.project}" + "/{id.domain}/{id.name}ZD\022B/api/v1/execut" + "ions/org/{id.org}/{id.project}/{id.domai" + "n}/{id.name}\022\357\001\n\017UpdateExecution\022&.flyte" + "idl.admin.ExecutionUpdateRequest\032\'.flyte" + "idl.admin.ExecutionUpdateResponse\"\212\001\202\323\344\223" + "\002\203\001\0325/api/v1/executions/{id.project}/{id" + ".domain}/{id.name}:\001*ZG\032B/api/v1/executi" + "ons/org/{id.org}/{id.project}/{id.domain" + "}/{id.name}:\001*\022\206\002\n\020GetExecutionData\022/.fl" + "yteidl.admin.WorkflowExecutionGetDataReq" + "uest\0320.flyteidl.admin.WorkflowExecutionG" + "etDataResponse\"\216\001\202\323\344\223\002\207\001\022:/api/v1/data/e" + "xecutions/{id.project}/{id.domain}/{id.n" + "ame}ZI\022G/api/v1/data/executions/org/{id." + "org}/{id.project}/{id.domain}/{id.name}\022" + "\305\001\n\016ListExecutions\022#.flyteidl.admin.Reso" + "urceListRequest\032\035.flyteidl.admin.Executi" + "onList\"o\202\323\344\223\002i\022+/api/v1/executions/{id.p" + "roject}/{id.domain}Z:\0228/api/v1/execution" + "s/org/{id.org}/{id.project}/{id.domain}\022" + "\375\001\n\022TerminateExecution\022).flyteidl.admin." + "ExecutionTerminateRequest\032*.flyteidl.adm" + "in.ExecutionTerminateResponse\"\217\001\202\323\344\223\002\210\001*" + "5/api/v1/executions/{id.project}/{id.dom" + "ain}/{id.name}:\001*ZL*G/api/v1/data/execut" + "ions/org/{id.org}/{id.project}/{id.domai" + "n}/{id.name}:\001*\022\342\002\n\020GetNodeExecution\022\'.f" + "lyteidl.admin.NodeExecutionGetRequest\032\035." + "flyteidl.admin.NodeExecution\"\205\002\202\323\344\223\002\376\001\022n" + "/api/v1/node_executions/{id.execution_id" + ".project}/{id.execution_id.domain}/{id.e" + "xecution_id.name}/{id.node_id}Z\213\001\022\210\001/api" + "/v1/node_executions/org/{id.execution_id" + ".org}/{id.execution_id.project}/{id.exec" + "ution_id.domain}/{id.execution_id.name}/" + "{id.node_id}\022\371\002\n\022ListNodeExecutions\022(.fl" + "yteidl.admin.NodeExecutionListRequest\032!." + "flyteidl.admin.NodeExecutionList\"\225\002\202\323\344\223\002" + "\216\002\022s/api/v1/node_executions/{workflow_ex" + "ecution_id.project}/{workflow_execution_" + "id.domain}/{workflow_execution_id.name}Z" + "\226\001\022\223\001/api/v1/node_executions/org/{workfl" + "ow_execution_id.org}/{workflow_execution" + "_id.project}/{workflow_execution_id.doma" + "in}/{workflow_execution_id.name}\022\217\010\n\031Lis" + "tNodeExecutionsForTask\022/.flyteidl.admin." + "NodeExecutionForTaskListRequest\032!.flytei" + "dl.admin.NodeExecutionList\"\235\007\202\323\344\223\002\226\007\022\251\003/" + "api/v1/children/task_executions/{task_ex" + "ecution_id.node_execution_id.execution_i" + "d.project}/{task_execution_id.node_execu" + "tion_id.execution_id.domain}/{task_execu" + "tion_id.node_execution_id.execution_id.n" + "ame}/{task_execution_id.node_execution_i" + "d.node_id}/{task_execution_id.task_id.pr" + "oject}/{task_execution_id.task_id.domain" + "}/{task_execution_id.task_id.name}/{task" + "_execution_id.task_id.version}/{task_exe" + "cution_id.retry_attempt}Z\347\003\022\344\003/api/v1/ch" + "ildren/task_executions/org/{task_executi" + "on_id.node_execution_id.execution_id.org" + "}/{task_execution_id.node_execution_id.e" + "xecution_id.project}/{task_execution_id." + "node_execution_id.execution_id.domain}/{" + "task_execution_id.node_execution_id.exec" + "ution_id.name}/{task_execution_id.node_e" + "xecution_id.node_id}/{task_execution_id." + "task_id.project}/{task_execution_id.task" + "_id.domain}/{task_execution_id.task_id.n" + "ame}/{task_execution_id.task_id.version}" + "/{task_execution_id.retry_attempt}\022\203\003\n\024G" + "etNodeExecutionData\022+.flyteidl.admin.Nod" + "eExecutionGetDataRequest\032,.flyteidl.admi" + "n.NodeExecutionGetDataResponse\"\217\002\202\323\344\223\002\210\002" + "\022s/api/v1/data/node_executions/{id.execu" + "tion_id.project}/{id.execution_id.domain" + "}/{id.execution_id.name}/{id.node_id}Z\220\001" + "\022\215\001/api/v1/data/node_executions/org/{id." + "execution_id.org}/{id.execution_id.proje" + "ct}/{id.execution_id.domain}/{id.executi" + "on_id.name}/{id.node_id}\022\177\n\017RegisterProj" + "ect\022&.flyteidl.admin.ProjectRegisterRequ" + "est\032\'.flyteidl.admin.ProjectRegisterResp" + "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\207\002\n\rUp" + "dateProject\022\027.flyteidl.admin.Project\032%.f" + "lyteidl.admin.ProjectUpdateResponse\"\265\001\202\323" + "\344\223\002\256\001\032\025/api/v1/projects/{id}:\001*Z%\032 /api/" + "v1/projects/{identifier.id}:\001*Z/\032*/api/v" + "1/projects/org/{identifier.org}/{id}:\001*Z" + ":\0325/api/v1/projects/org/{identifier.org}" + "/{identifier.id}:\001*\022f\n\014ListProjects\022\".fl" + "yteidl.admin.ProjectListRequest\032\030.flytei" + "dl.admin.Projects\"\030\202\323\344\223\002\022\022\020/api/v1/proje" + "cts\022\231\001\n\023CreateWorkflowEvent\022-.flyteidl.a" + "dmin.WorkflowExecutionEventRequest\032..fly" + "teidl.admin.WorkflowExecutionEventRespon" + "se\"#\202\323\344\223\002\035\"\030/api/v1/events/workflows:\001*\022" + "\211\001\n\017CreateNodeEvent\022).flyteidl.admin.Nod" + "eExecutionEventRequest\032*.flyteidl.admin." + "NodeExecutionEventResponse\"\037\202\323\344\223\002\031\"\024/api" + "/v1/events/nodes:\001*\022\211\001\n\017CreateTaskEvent\022" + ").flyteidl.admin.TaskExecutionEventReque" + "st\032*.flyteidl.admin.TaskExecutionEventRe" + "sponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/tasks:\001*\022" + "\313\005\n\020GetTaskExecution\022\'.flyteidl.admin.Ta" + "skExecutionGetRequest\032\035.flyteidl.admin.T" + "askExecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1/task_ex" + "ecutions/{id.node_execution_id.execution" + "_id.project}/{id.node_execution_id.execu" + "tion_id.domain}/{id.node_execution_id.ex" + "ecution_id.name}/{id.node_execution_id.n" + "ode_id}/{id.task_id.project}/{id.task_id" + ".domain}/{id.task_id.name}/{id.task_id.v" + "ersion}/{id.retry_attempt}Z\310\002\022\305\002/api/v1/" + "task_executions/org/{id.node_execution_i" + "d.execution_id.org}/{id.node_execution_i" + "d.execution_id.project}/{id.node_executi" + "on_id.execution_id.domain}/{id.node_exec" + "ution_id.execution_id.name}/{id.node_exe" + "cution_id.node_id}/{id.task_id.project}/" + "{id.task_id.domain}/{id.task_id.name}/{i" + "d.task_id.version}/{id.retry_attempt}\022\361\003" + "\n\022ListTaskExecutions\022(.flyteidl.admin.Ta" + "skExecutionListRequest\032!.flyteidl.admin." + "TaskExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/api/v1/ta" + "sk_executions/{node_execution_id.executi" + "on_id.project}/{node_execution_id.execut" + "ion_id.domain}/{node_execution_id.execut" + "ion_id.name}/{node_execution_id.node_id}" + "Z\326\001\022\323\001/api/v1/task_executions/org/{node_" + "execution_id.execution_id.org}/{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}\022\354\005\n\024GetTaskExecutionDa" + "ta\022+.flyteidl.admin.TaskExecutionGetData" + "Request\032,.flyteidl.admin.TaskExecutionGe" + "tDataResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v1/data/t" + "ask_executions/{id.node_execution_id.exe" + "cution_id.project}/{id.node_execution_id" + ".execution_id.domain}/{id.node_execution" + "_id.execution_id.name}/{id.node_executio" + "n_id.node_id}/{id.task_id.project}/{id.t" + "ask_id.domain}/{id.task_id.name}/{id.tas" + "k_id.version}/{id.retry_attempt}Z\315\002\022\312\002/a" + "pi/v1/data/task_executions/org/{id.node_" + "execution_id.execution_id.org}/{id.node_" + "execution_id.execution_id.project}/{id.n" + "ode_execution_id.execution_id.domain}/{i" + "d.node_execution_id.execution_id.name}/{" + "id.node_execution_id.node_id}/{id.task_i" + "d.project}/{id.task_id.domain}/{id.task_" + "id.name}/{id.task_id.version}/{id.retry_" + "attempt}\022\313\002\n\035UpdateProjectDomainAttribut" + "es\0224.flyteidl.admin.ProjectDomainAttribu" + "tesUpdateRequest\0325.flyteidl.admin.Projec" + "tDomainAttributesUpdateResponse\"\274\001\202\323\344\223\002\265" + "\001\032J/api/v1/project_domain_attributes/{at" + "tributes.project}/{attributes.domain}:\001*" + "Zd\032_/api/v1/project_domain_attributes/or" + "g/{attributes.org}/{attributes.project}/" + "{attributes.domain}:\001*\022\203\002\n\032GetProjectDom" + "ainAttributes\0221.flyteidl.admin.ProjectDo" + "mainAttributesGetRequest\0322.flyteidl.admi" + "n.ProjectDomainAttributesGetResponse\"~\202\323" + "\344\223\002x\0224/api/v1/project_domain_attributes/" + "{project}/{domain}Z@\022>/api/v1/project_do" + "main_attributes/org/{org}/{project}/{dom" + "ain}\022\223\002\n\035DeleteProjectDomainAttributes\0224" + ".flyteidl.admin.ProjectDomainAttributesD" + "eleteRequest\0325.flyteidl.admin.ProjectDom" + "ainAttributesDeleteResponse\"\204\001\202\323\344\223\002~*4/a" + "pi/v1/project_domain_attributes/{project" + "}/{domain}:\001*ZC*>/api/v1/project_domain_" + "attributes/org/{org}/{project}/{domain}:" + "\001*\022\212\002\n\027UpdateProjectAttributes\022..flyteid" + "l.admin.ProjectAttributesUpdateRequest\032/" + ".flyteidl.admin.ProjectAttributesUpdateR" + "esponse\"\215\001\202\323\344\223\002\206\001\032//api/v1/project_attri" + "butes/{attributes.project}:\001*ZP\032K/api/v1" + "/project_domain_attributes/org/{attribut" + "es.org}/{attributes.project}:\001*\022\330\001\n\024GetP" + "rojectAttributes\022+.flyteidl.admin.Projec" + "tAttributesGetRequest\032,.flyteidl.admin.P" + "rojectAttributesGetResponse\"e\202\323\344\223\002_\022$/ap" + "i/v1/project_attributes/{project}Z7\0225/ap" + "i/v1/project_domain_attributes/org/{org}" + "/{project}\022\347\001\n\027DeleteProjectAttributes\022." + ".flyteidl.admin.ProjectAttributesDeleteR" + "equest\032/.flyteidl.admin.ProjectAttribute" + "sDeleteResponse\"k\202\323\344\223\002e*$/api/v1/project" + "_attributes/{project}:\001*Z:*5/api/v1/proj" + "ect_domain_attributes/org/{org}/{project" + "}:\001*\022\334\002\n\030UpdateWorkflowAttributes\022/.flyt" + "eidl.admin.WorkflowAttributesUpdateReque" + "st\0320.flyteidl.admin.WorkflowAttributesUp" + "dateResponse\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/workflow" + "_attributes/{attributes.project}/{attrib" + "utes.domain}/{attributes.workflow}:\001*Zt\032" + "o/api/v1/workflow_attributes/org/{attrib" + "utes.org}/{attributes.project}/{attribut" + "es.domain}/{attributes.workflow}:\001*\022\200\002\n\025" + "GetWorkflowAttributes\022,.flyteidl.admin.W" + "orkflowAttributesGetRequest\032-.flyteidl.a" + "dmin.WorkflowAttributesGetResponse\"\211\001\202\323\344" + "\223\002\202\001\0229/api/v1/workflow_attributes/{proje" + "ct}/{domain}/{workflow}ZE\022C/api/v1/workf" + "low_attributes/org/{org}/{project}/{doma" + "in}/{workflow}\022\217\002\n\030DeleteWorkflowAttribu" + "tes\022/.flyteidl.admin.WorkflowAttributesD" + "eleteRequest\0320.flyteidl.admin.WorkflowAt" + "tributesDeleteResponse\"\217\001\202\323\344\223\002\210\001*9/api/v" + "1/workflow_attributes/{project}/{domain}" + "/{workflow}:\001*ZH*C/api/v1/workflow_attri" + "butes/org/{org}/{project}/{domain}/{work" + "flow}:\001*\022\240\001\n\027ListMatchableAttributes\022..f" + "lyteidl.admin.ListMatchableAttributesReq" + "uest\032/.flyteidl.admin.ListMatchableAttri" + "butesResponse\"$\202\323\344\223\002\036\022\034/api/v1/matchable" + "_attributes\022\350\001\n\021ListNamedEntities\022&.flyt" + "eidl.admin.NamedEntityListRequest\032\037.flyt" + "eidl.admin.NamedEntityList\"\211\001\202\323\344\223\002\202\001\0229/a" + "pi/v1/named_entities/{resource_type}/{pr" + "oject}/{domain}ZE\022C/api/v1/named_entitie" + "s/{resource_type}/org/{org}/{project}/{d" + "omain}\022\203\002\n\016GetNamedEntity\022%.flyteidl.adm" + "in.NamedEntityGetRequest\032\033.flyteidl.admi" + "n.NamedEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1/named_e" "ntities/{resource_type}/{id.project}/{id" - ".domain}/{id.name}\022\276\001\n\021UpdateNamedEntity" - "\022(.flyteidl.admin.NamedEntityUpdateReque" - "st\032).flyteidl.admin.NamedEntityUpdateRes" - "ponse\"T\202\323\344\223\002N\032I/api/v1/named_entities/{r" - "esource_type}/{id.project}/{id.domain}/{" - "id.name}:\001*\022l\n\nGetVersion\022!.flyteidl.adm" - "in.GetVersionRequest\032\".flyteidl.admin.Ge" - "tVersionResponse\"\027\202\323\344\223\002\021\022\017/api/v1/versio" - "n\022\304\001\n\024GetDescriptionEntity\022 .flyteidl.ad" - "min.ObjectGetRequest\032!.flyteidl.admin.De" - "scriptionEntity\"g\202\323\344\223\002a\022_/api/v1/descrip" - "tion_entities/{id.resource_type}/{id.pro" - "ject}/{id.domain}/{id.name}/{id.version}" - "\022\222\002\n\027ListDescriptionEntities\022,.flyteidl." - "admin.DescriptionEntityListRequest\032%.fly" - "teidl.admin.DescriptionEntityList\"\241\001\202\323\344\223" - "\002\232\001\022O/api/v1/description_entities/{resou" - "rce_type}/{id.project}/{id.domain}/{id.n" - "ame}ZG\022E/api/v1/description_entities/{re" - "source_type}/{id.project}/{id.domain}\022\305\001" - "\n\023GetExecutionMetrics\0222.flyteidl.admin.W" - "orkflowExecutionGetMetricsRequest\0323.flyt" - "eidl.admin.WorkflowExecutionGetMetricsRe" - "sponse\"E\202\323\344\223\002\?\022=/api/v1/metrics/executio" - "ns/{id.project}/{id.domain}/{id.name}B\?Z" - "=github.com/flyteorg/flyte/flyteidl/gen/" - "pb-go/flyteidl/serviceb\006proto3" + ".domain}/{id.name}ZX\022V/api/v1/named_enti" + "ties/{resource_type}/org/{id.org}/{id.pr" + "oject}/{id.domain}/{id.name}\022\235\002\n\021UpdateN" + "amedEntity\022(.flyteidl.admin.NamedEntityU" + "pdateRequest\032).flyteidl.admin.NamedEntit" + "yUpdateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/v1/named" + "_entities/{resource_type}/{id.project}/{" + "id.domain}/{id.name}:\001*Z[\032V/api/v1/named" + "_entities/{resource_type}/org/{id.org}/{" + "id.project}/{id.domain}/{id.name}:\001*\022l\n\n" + "GetVersion\022!.flyteidl.admin.GetVersionRe" + "quest\032\".flyteidl.admin.GetVersionRespons" + "e\"\027\202\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024GetDescri" + "ptionEntity\022 .flyteidl.admin.ObjectGetRe" + "quest\032!.flyteidl.admin.DescriptionEntity" + "\"\330\001\202\323\344\223\002\321\001\022_/api/v1/description_entities" + "/{id.resource_type}/{id.project}/{id.dom" + "ain}/{id.name}/{id.version}Zn\022l/api/v1/d" + "escription_entities/org/{id.org}/{id.res" + "ource_type}/{id.project}/{id.domain}/{id" + ".name}/{id.version}\022\310\003\n\027ListDescriptionE" + "ntities\022,.flyteidl.admin.DescriptionEnti" + "tyListRequest\032%.flyteidl.admin.Descripti" + "onEntityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/descript" + "ion_entities/{resource_type}/{id.project" + "}/{id.domain}/{id.name}Z^\022\\/api/v1/descr" + "iption_entities/{resource_type}/org/{id." + "org}/{id.project}/{id.domain}/{id.name}Z" + "G\022E/api/v1/description_entities/{resourc" + "e_type}/{id.project}/{id.domain}ZT\022R/api" + "/v1/description_entities/{resource_type}" + "/org/{id.org}/{id.project}/{id.domain}\022\225" + "\002\n\023GetExecutionMetrics\0222.flyteidl.admin." + "WorkflowExecutionGetMetricsRequest\0323.fly" + "teidl.admin.WorkflowExecutionGetMetricsR" + "esponse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metrics/execu" + "tions/{id.project}/{id.domain}/{id.name}" + "ZL\022J/api/v1/metrics/executions/org/{id.o" + "rg}/{id.project}/{id.domain}/{id.name}B\?" + "Z=github.com/flyteorg/flyte/flyteidl/gen" + "/pb-go/flyteidl/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fadmin_2eproto = { false, InitDefaults_flyteidl_2fservice_2fadmin_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto, - "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 10670, + "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 15311, }; void AddDescriptors_flyteidl_2fservice_2fadmin_2eproto() { diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/external_plugin_service.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/external_plugin_service.pb.cc index 481be2619e..68b912f826 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/external_plugin_service.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/external_plugin_service.pb.cc @@ -216,45 +216,43 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fexternal_5fplugin_5fse "\n.flyteidl/service/external_plugin_servi" "ce.proto\022\020flyteidl.service\032\034flyteidl/cor" "e/literals.proto\032\031flyteidl/core/tasks.pr" - "oto\032\035flyteidl/core/interface.proto\"\210\001\n\021T" - "askCreateRequest\022)\n\006inputs\030\001 \001(\0132\031.flyte" - "idl.core.LiteralMap\022-\n\010template\030\002 \001(\0132\033." - "flyteidl.core.TaskTemplate\022\025\n\routput_pre" - "fix\030\003 \001(\t:\002\030\001\"(\n\022TaskCreateResponse\022\016\n\006j" - "ob_id\030\001 \001(\t:\002\030\001\"7\n\016TaskGetRequest\022\021\n\ttas" - "k_type\030\001 \001(\t\022\016\n\006job_id\030\002 \001(\t:\002\030\001\"i\n\017Task" - "GetResponse\022&\n\005state\030\001 \001(\0162\027.flyteidl.se" - "rvice.State\022*\n\007outputs\030\002 \001(\0132\031.flyteidl." - "core.LiteralMap:\002\030\001\":\n\021TaskDeleteRequest" - "\022\021\n\ttask_type\030\001 \001(\t\022\016\n\006job_id\030\002 \001(\t:\002\030\001\"" - "\030\n\022TaskDeleteResponse:\002\030\001*b\n\005State\022\025\n\021RE" - "TRYABLE_FAILURE\020\000\022\025\n\021PERMANENT_FAILURE\020\001" - "\022\013\n\007PENDING\020\002\022\013\n\007RUNNING\020\003\022\r\n\tSUCCEEDED\020" - "\004\032\002\030\0012\250\002\n\025ExternalPluginService\022\\\n\nCreat" - "eTask\022#.flyteidl.service.TaskCreateReque" - "st\032$.flyteidl.service.TaskCreateResponse" - "\"\003\210\002\001\022S\n\007GetTask\022 .flyteidl.service.Task" - "GetRequest\032!.flyteidl.service.TaskGetRes" - "ponse\"\003\210\002\001\022\\\n\nDeleteTask\022#.flyteidl.serv" - "ice.TaskDeleteRequest\032$.flyteidl.service" - ".TaskDeleteResponse\"\003\210\002\001B\?Z=github.com/f" - "lyteorg/flyte/flyteidl/gen/pb-go/flyteid" - "l/serviceb\006proto3" + "oto\"\210\001\n\021TaskCreateRequest\022)\n\006inputs\030\001 \001(" + "\0132\031.flyteidl.core.LiteralMap\022-\n\010template" + "\030\002 \001(\0132\033.flyteidl.core.TaskTemplate\022\025\n\ro" + "utput_prefix\030\003 \001(\t:\002\030\001\"(\n\022TaskCreateResp" + "onse\022\016\n\006job_id\030\001 \001(\t:\002\030\001\"7\n\016TaskGetReque" + "st\022\021\n\ttask_type\030\001 \001(\t\022\016\n\006job_id\030\002 \001(\t:\002\030" + "\001\"i\n\017TaskGetResponse\022&\n\005state\030\001 \001(\0162\027.fl" + "yteidl.service.State\022*\n\007outputs\030\002 \001(\0132\031." + "flyteidl.core.LiteralMap:\002\030\001\":\n\021TaskDele" + "teRequest\022\021\n\ttask_type\030\001 \001(\t\022\016\n\006job_id\030\002" + " \001(\t:\002\030\001\"\030\n\022TaskDeleteResponse:\002\030\001*b\n\005St" + "ate\022\025\n\021RETRYABLE_FAILURE\020\000\022\025\n\021PERMANENT_" + "FAILURE\020\001\022\013\n\007PENDING\020\002\022\013\n\007RUNNING\020\003\022\r\n\tS" + "UCCEEDED\020\004\032\002\030\0012\250\002\n\025ExternalPluginService" + "\022\\\n\nCreateTask\022#.flyteidl.service.TaskCr" + "eateRequest\032$.flyteidl.service.TaskCreat" + "eResponse\"\003\210\002\001\022S\n\007GetTask\022 .flyteidl.ser" + "vice.TaskGetRequest\032!.flyteidl.service.T" + "askGetResponse\"\003\210\002\001\022\\\n\nDeleteTask\022#.flyt" + "eidl.service.TaskDeleteRequest\032$.flyteid" + "l.service.TaskDeleteResponse\"\003\210\002\001B\?Z=git" + "hub.com/flyteorg/flyte/flyteidl/gen/pb-g" + "o/flyteidl/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fexternal_5fplugin_5fservice_2eproto = { false, InitDefaults_flyteidl_2fservice_2fexternal_5fplugin_5fservice_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fexternal_5fplugin_5fservice_2eproto, - "flyteidl/service/external_plugin_service.proto", &assign_descriptors_table_flyteidl_2fservice_2fexternal_5fplugin_5fservice_2eproto, 1057, + "flyteidl/service/external_plugin_service.proto", &assign_descriptors_table_flyteidl_2fservice_2fexternal_5fplugin_5fservice_2eproto, 1026, }; void AddDescriptors_flyteidl_2fservice_2fexternal_5fplugin_5fservice_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[3] = + static constexpr ::google::protobuf::internal::InitFunc deps[2] = { ::AddDescriptors_flyteidl_2fcore_2fliterals_2eproto, ::AddDescriptors_flyteidl_2fcore_2ftasks_2eproto, - ::AddDescriptors_flyteidl_2fcore_2finterface_2eproto, }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fexternal_5fplugin_5fservice_2eproto, deps, 3); + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fexternal_5fplugin_5fservice_2eproto, deps, 2); } // Force running AddDescriptors() at dynamic initialization time. diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/external_plugin_service.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/external_plugin_service.pb.h index 82d5616c5c..bd326d980e 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/external_plugin_service.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/external_plugin_service.pb.h @@ -34,7 +34,6 @@ #include #include "flyteidl/core/literals.pb.h" #include "flyteidl/core/tasks.pb.h" -#include "flyteidl/core/interface.pb.h" // @@protoc_insertion_point(includes) #include #define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fservice_2fexternal_5fplugin_5fservice_2eproto diff --git a/flyteidl/gen/pb-go/flyteidl/admin/common.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/common.pb.go index 3703dfb22e..d5598fd1db 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/common.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/common.pb.go @@ -93,7 +93,9 @@ type NamedEntityIdentifier struct { // User provided value for the resource. // The combination of project + domain + name uniquely identifies the resource. // +optional - in certain contexts - like 'List API', 'Launch plans' - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,4,opt,name=org,proto3" json:"org,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -145,6 +147,13 @@ func (m *NamedEntityIdentifier) GetName() string { return "" } +func (m *NamedEntityIdentifier) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Additional metadata around a named entity. type NamedEntityMetadata struct { // Common description across all versions of the entity @@ -329,7 +338,9 @@ type NamedEntityIdentifierListRequest struct { SortBy *Sort `protobuf:"bytes,5,opt,name=sort_by,json=sortBy,proto3" json:"sort_by,omitempty"` // Indicates a list of filters passed as string. // +optional - Filters string `protobuf:"bytes,6,opt,name=filters,proto3" json:"filters,omitempty"` + Filters string `protobuf:"bytes,6,opt,name=filters,proto3" json:"filters,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,7,opt,name=org,proto3" json:"org,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -402,6 +413,13 @@ func (m *NamedEntityIdentifierListRequest) GetFilters() string { return "" } +func (m *NamedEntityIdentifierListRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Represents a request structure to list NamedEntity objects type NamedEntityListRequest struct { // Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. @@ -423,7 +441,9 @@ type NamedEntityListRequest struct { SortBy *Sort `protobuf:"bytes,6,opt,name=sort_by,json=sortBy,proto3" json:"sort_by,omitempty"` // Indicates a list of filters passed as string. // +optional - Filters string `protobuf:"bytes,7,opt,name=filters,proto3" json:"filters,omitempty"` + Filters string `protobuf:"bytes,7,opt,name=filters,proto3" json:"filters,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,8,opt,name=org,proto3" json:"org,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -503,6 +523,13 @@ func (m *NamedEntityListRequest) GetFilters() string { return "" } +func (m *NamedEntityListRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Represents a list of NamedEntityIdentifiers. type NamedEntityIdentifierList struct { // A list of identifiers. @@ -1484,80 +1511,81 @@ func init() { func init() { proto.RegisterFile("flyteidl/admin/common.proto", fileDescriptor_7c2cf612a185829c) } var fileDescriptor_7c2cf612a185829c = []byte{ - // 1192 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xdf, 0x73, 0xdb, 0xc4, - 0x13, 0x8f, 0x1c, 0xc7, 0xa9, 0x37, 0x6d, 0xea, 0x5e, 0xd2, 0x7e, 0xdd, 0xe4, 0x4b, 0x09, 0x62, - 0xf8, 0xd1, 0x0e, 0xb5, 0x67, 0x52, 0x0a, 0xf4, 0x37, 0x4e, 0xac, 0xb6, 0x99, 0xa6, 0x6e, 0x90, - 0xd3, 0x32, 0x65, 0x60, 0xc4, 0x59, 0x3a, 0xbb, 0x47, 0x24, 0x9d, 0xb8, 0x3b, 0xb5, 0x15, 0x2f, - 0x0c, 0xbc, 0xf1, 0xc6, 0x03, 0xff, 0x10, 0x4f, 0x0c, 0xef, 0xfc, 0x41, 0xcc, 0x9d, 0x24, 0x5b, - 0x56, 0xdc, 0x42, 0xd3, 0xce, 0xf0, 0x76, 0x7b, 0xbb, 0x7b, 0xfb, 0xd9, 0xcf, 0xed, 0xae, 0x4e, - 0xb0, 0x3e, 0xf4, 0x13, 0x49, 0xa8, 0xe7, 0xb7, 0xb1, 0x17, 0xd0, 0xb0, 0xed, 0xb2, 0x20, 0x60, - 0x61, 0x2b, 0xe2, 0x4c, 0x32, 0xb4, 0x9c, 0x2b, 0x5b, 0x5a, 0xb9, 0xf6, 0xd6, 0xd8, 0xd8, 0x65, - 0x9c, 0xb4, 0xc9, 0x73, 0xe2, 0xc6, 0x92, 0xe6, 0xe6, 0x6b, 0xe7, 0xa6, 0xd5, 0xd4, 0x23, 0xa1, - 0xa4, 0x43, 0x4a, 0x78, 0xa6, 0xff, 0xff, 0xb4, 0xde, 0xa7, 0x92, 0x70, 0xec, 0x8b, 0x4c, 0xfb, - 0xf6, 0x88, 0xb1, 0x91, 0x4f, 0xda, 0x5a, 0x1a, 0xc4, 0xc3, 0xb6, 0xa4, 0x01, 0x11, 0x12, 0x07, - 0x51, 0x6a, 0x60, 0x7e, 0x03, 0xa7, 0x7b, 0x38, 0x20, 0x9e, 0x15, 0x4a, 0x2a, 0x93, 0x9d, 0xf1, - 0xe9, 0xa8, 0x09, 0x8b, 0x11, 0x67, 0xdf, 0x11, 0x57, 0x36, 0x8d, 0x0d, 0xe3, 0xc3, 0xba, 0x9d, - 0x8b, 0xe8, 0x0c, 0xd4, 0x3c, 0x16, 0x60, 0x1a, 0x36, 0x2b, 0x5a, 0x91, 0x49, 0x08, 0x41, 0x35, - 0xc4, 0x01, 0x69, 0xce, 0xeb, 0x5d, 0xbd, 0x36, 0x19, 0xac, 0x14, 0x8e, 0xbf, 0x4f, 0x24, 0xf6, - 0xb0, 0xc4, 0x68, 0x03, 0x96, 0x3c, 0x22, 0x5c, 0x4e, 0x23, 0x95, 0x69, 0x16, 0xa0, 0xb8, 0x85, - 0x3e, 0x81, 0x05, 0x21, 0xb1, 0x24, 0x3a, 0xc6, 0xf2, 0xe6, 0x46, 0x6b, 0x9a, 0xb5, 0x56, 0xe1, - 0xd4, 0xbe, 0xb2, 0xb3, 0x53, 0x73, 0xf3, 0x0f, 0x03, 0x96, 0x0a, 0x3a, 0xf4, 0x39, 0x9c, 0xe0, - 0x44, 0xb0, 0x98, 0xbb, 0xc4, 0x91, 0x49, 0x44, 0x74, 0xac, 0xe5, 0xcd, 0xf5, 0xc9, 0x79, 0x8a, - 0xb6, 0x96, 0x9d, 0xd9, 0xec, 0x27, 0x11, 0xb1, 0x8f, 0xf3, 0x82, 0x84, 0x2e, 0x43, 0x85, 0x7a, - 0x1a, 0xc6, 0xd2, 0xe6, 0x7b, 0x2f, 0x81, 0x31, 0xe1, 0xce, 0xae, 0x50, 0x0f, 0xdd, 0x82, 0x63, - 0x41, 0x96, 0xae, 0x66, 0x64, 0x69, 0xf3, 0xdd, 0x97, 0x38, 0xe7, 0xcc, 0xd8, 0x63, 0x27, 0xf3, - 0x67, 0x03, 0xaa, 0x7d, 0xc6, 0x25, 0x6a, 0xc0, 0xfc, 0x01, 0x49, 0x32, 0x92, 0xd4, 0x12, 0x5d, - 0x87, 0xba, 0x47, 0x39, 0x71, 0x35, 0x79, 0x29, 0x41, 0xe7, 0xca, 0x87, 0x2b, 0xd7, 0x56, 0x37, - 0xb7, 0xb2, 0x27, 0x0e, 0xe6, 0x05, 0xa8, 0x8f, 0xf7, 0xd1, 0x32, 0x40, 0xd7, 0xea, 0x6f, 0x5b, - 0xbd, 0xee, 0x4e, 0xef, 0x4e, 0x63, 0x0e, 0x9d, 0x80, 0x7a, 0x67, 0x2c, 0x1a, 0xe6, 0x9f, 0x06, - 0x6c, 0xcc, 0xcc, 0x71, 0x97, 0x0a, 0x69, 0x93, 0xef, 0x63, 0x22, 0xe4, 0x11, 0x4a, 0x65, 0x15, - 0x16, 0x7c, 0x1a, 0x50, 0xa9, 0x99, 0x39, 0x61, 0xa7, 0x82, 0xda, 0x95, 0xec, 0x80, 0x84, 0xcd, - 0xaa, 0x36, 0x4e, 0x05, 0x74, 0x11, 0x16, 0x05, 0xe3, 0xd2, 0x19, 0x24, 0xcd, 0x05, 0xcd, 0xe3, - 0xea, 0xac, 0x54, 0xed, 0x9a, 0x32, 0xda, 0x4a, 0x14, 0x98, 0x21, 0xf5, 0x25, 0xe1, 0xa2, 0x59, - 0x4b, 0xc1, 0x64, 0xa2, 0xf9, 0x53, 0x05, 0xce, 0x14, 0x72, 0x29, 0x66, 0xf0, 0xfa, 0x55, 0x52, - 0xe0, 0xa0, 0xf2, 0x22, 0x0e, 0xe6, 0x67, 0x73, 0x50, 0x9d, 0xc9, 0xc1, 0xc2, 0x0b, 0x38, 0xa8, - 0xbd, 0x1a, 0x07, 0x8b, 0xd3, 0x1c, 0x48, 0x38, 0xfb, 0xc2, 0xeb, 0x44, 0x1d, 0x38, 0xa6, 0x64, - 0x49, 0x89, 0x68, 0x1a, 0x1b, 0xf3, 0xff, 0xbe, 0xde, 0xc7, 0x6e, 0x13, 0xf8, 0x95, 0x02, 0x7c, - 0xf3, 0x5b, 0x38, 0x59, 0x22, 0x1e, 0x7d, 0x7a, 0x28, 0xd6, 0xfa, 0x4b, 0x62, 0xfd, 0x63, 0x84, - 0x5f, 0x8d, 0xa9, 0x39, 0x76, 0x87, 0xbc, 0xc1, 0xab, 0x3d, 0xda, 0x00, 0x30, 0xff, 0x32, 0xa0, - 0x59, 0xd0, 0x3e, 0x8c, 0x3c, 0x35, 0xa6, 0xfe, 0x63, 0x54, 0xaf, 0x3f, 0x96, 0xd6, 0xa7, 0x2a, - 0x28, 0xcf, 0x4a, 0x44, 0x2c, 0x14, 0xc4, 0xbc, 0x01, 0x8d, 0x07, 0x03, 0x55, 0xf5, 0x85, 0x0b, - 0x38, 0xaf, 0x81, 0x1a, 0x3a, 0xd6, 0xd9, 0x52, 0x7e, 0x25, 0xca, 0x7e, 0x37, 0x60, 0x25, 0x4f, - 0xb9, 0xd8, 0x9e, 0x97, 0x0b, 0x47, 0xbc, 0x42, 0xae, 0xe3, 0x0e, 0xab, 0xcc, 0xec, 0xb0, 0xf9, - 0x62, 0x87, 0x15, 0x5a, 0xa6, 0x3a, 0xd5, 0x32, 0xaf, 0x38, 0x7f, 0xcc, 0x9b, 0x70, 0xca, 0x0a, - 0x30, 0xf5, 0x7b, 0x4c, 0x21, 0x71, 0xb1, 0x9e, 0xb2, 0xe7, 0xa1, 0xc1, 0x89, 0x4b, 0x23, 0x4a, - 0x42, 0x29, 0x1c, 0xa2, 0xf4, 0xba, 0xea, 0xeb, 0xf6, 0xc9, 0xc9, 0xbe, 0x76, 0x33, 0xb7, 0xe0, - 0xf4, 0x1e, 0x1e, 0x11, 0xde, 0x8d, 0x65, 0x72, 0xd4, 0x33, 0x6e, 0xc2, 0xa9, 0xbe, 0x8f, 0xdd, - 0x83, 0xa3, 0xfa, 0xff, 0x56, 0x81, 0xe3, 0x53, 0xbe, 0x37, 0xa1, 0x16, 0x3d, 0xc1, 0x22, 0xeb, - 0xd5, 0xe5, 0xcd, 0xf7, 0x4b, 0xf7, 0xf8, 0x25, 0xe3, 0x07, 0x43, 0x9f, 0x3d, 0xb3, 0xc6, 0x8f, - 0x97, 0x3d, 0x65, 0x6e, 0x67, 0x5e, 0xe8, 0x0a, 0x2c, 0xa4, 0x01, 0xd3, 0x7a, 0x7d, 0xa7, 0xcc, - 0xe0, 0x21, 0xc6, 0xee, 0xce, 0xd9, 0xa9, 0x07, 0xba, 0x0d, 0x10, 0x29, 0x3e, 0x1c, 0x2f, 0x96, - 0x49, 0x56, 0xb2, 0x87, 0x6a, 0x60, 0x26, 0x63, 0x77, 0xe7, 0xec, 0x7a, 0x94, 0x2b, 0x14, 0x04, - 0xa1, 0x38, 0xd1, 0xd7, 0x3b, 0x03, 0xc2, 0x21, 0xc2, 0x14, 0x04, 0xed, 0xb1, 0x55, 0x83, 0xaa, - 0xea, 0x51, 0xf3, 0x32, 0x2c, 0x3e, 0xe4, 0xfe, 0x96, 0xcf, 0x06, 0xea, 0x9b, 0x1c, 0x73, 0x3f, - 0xff, 0x26, 0xc7, 0xdc, 0x57, 0x65, 0x35, 0x48, 0x24, 0x11, 0x3a, 0xc5, 0x79, 0x3b, 0x15, 0xae, - 0x56, 0x9a, 0x86, 0xf9, 0x23, 0xd4, 0x76, 0xf1, 0x80, 0xf8, 0x02, 0x5d, 0x85, 0xda, 0x53, 0xec, - 0xc7, 0xe3, 0x91, 0x67, 0x96, 0x41, 0xa4, 0x76, 0xad, 0x47, 0xda, 0xc8, 0x0a, 0x25, 0x4f, 0xec, - 0xcc, 0x63, 0xed, 0x0a, 0x2c, 0x15, 0xb6, 0x67, 0x3c, 0x0a, 0x56, 0x61, 0x41, 0x9b, 0xe6, 0x83, - 0x51, 0x0b, 0x57, 0x2b, 0x9f, 0x19, 0xe6, 0x2f, 0x06, 0x2c, 0x75, 0xc2, 0x90, 0x49, 0x9d, 0x97, - 0x40, 0xb7, 0x4a, 0x30, 0x3e, 0x28, 0xc3, 0x28, 0x18, 0xbf, 0x69, 0x2c, 0xd7, 0xa0, 0x6a, 0x85, - 0x4f, 0x05, 0xba, 0x54, 0xc2, 0x50, 0x9e, 0x7c, 0xf7, 0x48, 0xa2, 0x43, 0xec, 0x61, 0xca, 0xf3, - 0xb8, 0xe6, 0x0f, 0x70, 0xac, 0x13, 0xcb, 0x27, 0x36, 0xf3, 0x09, 0xfa, 0x08, 0x10, 0x16, 0x22, - 0x0e, 0xf0, 0xc0, 0x27, 0x0e, 0xc5, 0x81, 0xc3, 0x99, 0x4f, 0x32, 0x0c, 0x8d, 0xb1, 0x66, 0x07, - 0x07, 0xda, 0xfa, 0x3a, 0xac, 0x1d, 0xc4, 0x03, 0xc2, 0x43, 0x22, 0x89, 0x70, 0x04, 0xe1, 0x4f, - 0xa9, 0x4b, 0x1c, 0xec, 0xba, 0x2c, 0x0e, 0xf3, 0x2f, 0x76, 0x73, 0x62, 0xd1, 0x4f, 0x0d, 0x3a, - 0xa9, 0x5e, 0xdf, 0xe2, 0x3d, 0x58, 0xb1, 0xf1, 0xb3, 0x07, 0xb1, 0x8c, 0x62, 0xd9, 0xc5, 0x12, - 0x6f, 0xb3, 0x70, 0x48, 0x47, 0xe8, 0x63, 0x38, 0xc3, 0xf4, 0x9e, 0xe3, 0xb3, 0xb4, 0x6e, 0x9c, - 0x88, 0x93, 0x21, 0x7d, 0x9e, 0x41, 0x59, 0x4d, 0xb5, 0xbb, 0x99, 0x72, 0x4f, 0xeb, 0xcc, 0x2f, - 0xa0, 0x7e, 0x5b, 0xa5, 0xfb, 0xd0, 0xde, 0x15, 0xea, 0x81, 0x40, 0xc3, 0x28, 0x96, 0x22, 0x73, - 0xc9, 0x24, 0x35, 0x92, 0x52, 0x67, 0x91, 0x3f, 0x29, 0x32, 0x51, 0xbd, 0xb4, 0x3d, 0xe2, 0x1e, - 0xe4, 0x2f, 0x6d, 0xb5, 0xbe, 0xf0, 0x35, 0x34, 0xca, 0x6f, 0x62, 0xf4, 0x3f, 0x58, 0xe9, 0x75, - 0xee, 0x5b, 0x5d, 0xc7, 0xea, 0xed, 0xef, 0xec, 0x3f, 0x76, 0x3a, 0xdb, 0xfb, 0x3b, 0x8f, 0xac, - 0xc6, 0x1c, 0x3a, 0x0b, 0xa7, 0xa7, 0x15, 0xf6, 0xf6, 0xdd, 0x9d, 0x47, 0x56, 0xb7, 0x61, 0xa0, - 0x55, 0x68, 0xf4, 0x1f, 0xf7, 0xf7, 0xad, 0xfb, 0xce, 0x1d, 0xab, 0x67, 0xd9, 0x9d, 0x7d, 0xab, - 0xdb, 0xa8, 0x6c, 0xdd, 0xf8, 0xea, 0xda, 0x88, 0xca, 0x27, 0xf1, 0xa0, 0xe5, 0xb2, 0xa0, 0xad, - 0xaf, 0x8a, 0xf1, 0x51, 0xba, 0x68, 0x8f, 0xff, 0x40, 0x46, 0x24, 0x6c, 0x47, 0x83, 0x8b, 0x23, - 0xd6, 0x9e, 0xfe, 0x01, 0x1a, 0xd4, 0xf4, 0xcf, 0xc6, 0xa5, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, - 0x5a, 0xee, 0x56, 0xed, 0x19, 0x0d, 0x00, 0x00, + // 1207 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0x5f, 0x73, 0xdb, 0x44, + 0x10, 0x8f, 0x1c, 0xc7, 0x89, 0x37, 0x6d, 0xea, 0x5e, 0xd2, 0xe2, 0x26, 0x50, 0x82, 0x18, 0xfe, + 0xb4, 0x43, 0xed, 0x99, 0x94, 0x02, 0xfd, 0x8f, 0x13, 0xab, 0x6d, 0xa6, 0xa9, 0x1b, 0xe4, 0xb4, + 0x4c, 0x19, 0x66, 0xc4, 0x59, 0x3a, 0xbb, 0x87, 0x25, 0x9d, 0xb8, 0x3b, 0xb5, 0x35, 0x2f, 0xcc, + 0xf0, 0xc6, 0x1b, 0x33, 0xf0, 0x85, 0x78, 0xe2, 0x0b, 0xf0, 0xc6, 0x97, 0x61, 0xee, 0x24, 0xd9, + 0xb2, 0xe2, 0x16, 0x92, 0x76, 0x86, 0xb7, 0xdb, 0xdb, 0xdd, 0xdb, 0xdf, 0xfe, 0x6e, 0x77, 0x75, + 0x82, 0x8d, 0xbe, 0x3f, 0x92, 0x84, 0x7a, 0x7e, 0x13, 0x7b, 0x01, 0x0d, 0x9b, 0x2e, 0x0b, 0x02, + 0x16, 0x36, 0x22, 0xce, 0x24, 0x43, 0x2b, 0x99, 0xb2, 0xa1, 0x95, 0xeb, 0xef, 0x8c, 0x8d, 0x5d, + 0xc6, 0x49, 0x93, 0xbc, 0x20, 0x6e, 0x2c, 0x69, 0x66, 0xbe, 0x7e, 0x7e, 0x5a, 0x4d, 0x3d, 0x12, + 0x4a, 0xda, 0xa7, 0x84, 0xa7, 0xfa, 0xb7, 0xa7, 0xf5, 0x3e, 0x95, 0x84, 0x63, 0x5f, 0xa4, 0xda, + 0x77, 0x07, 0x8c, 0x0d, 0x7c, 0xd2, 0xd4, 0x52, 0x2f, 0xee, 0x37, 0x25, 0x0d, 0x88, 0x90, 0x38, + 0x88, 0x12, 0x03, 0x93, 0xc1, 0x99, 0x0e, 0x0e, 0x88, 0x67, 0x85, 0x92, 0xca, 0xd1, 0xee, 0xf8, + 0x74, 0x54, 0x87, 0xc5, 0x88, 0xb3, 0xef, 0x89, 0x2b, 0xeb, 0xc6, 0xa6, 0xf1, 0x71, 0xd5, 0xce, + 0x44, 0x74, 0x16, 0x2a, 0x1e, 0x0b, 0x30, 0x0d, 0xeb, 0x25, 0xad, 0x48, 0x25, 0x84, 0xa0, 0x1c, + 0xe2, 0x80, 0xd4, 0xe7, 0xf5, 0xae, 0x5e, 0xa3, 0x1a, 0xcc, 0x33, 0x3e, 0xa8, 0x97, 0xf5, 0x96, + 0x5a, 0x9a, 0x0c, 0x56, 0x73, 0x01, 0x1f, 0x10, 0x89, 0x3d, 0x2c, 0x31, 0xda, 0x84, 0x65, 0x8f, + 0x08, 0x97, 0xd3, 0x48, 0xe5, 0x9e, 0x86, 0xcc, 0x6f, 0xa1, 0xcf, 0x60, 0x41, 0x48, 0x2c, 0x89, + 0x8e, 0xba, 0xb2, 0xb5, 0xd9, 0x98, 0xe6, 0xb1, 0x91, 0x3b, 0xb5, 0xab, 0xec, 0xec, 0xc4, 0xdc, + 0xfc, 0xd3, 0x80, 0xe5, 0x9c, 0x0e, 0x7d, 0x09, 0x27, 0x39, 0x11, 0x2c, 0xe6, 0x2e, 0x71, 0xe4, + 0x28, 0x22, 0x3a, 0xd6, 0xca, 0xd6, 0xc6, 0xe4, 0x3c, 0x45, 0x64, 0xc3, 0x4e, 0x6d, 0x0e, 0x46, + 0x11, 0xb1, 0x4f, 0xf0, 0x9c, 0x84, 0xae, 0x40, 0x89, 0x7a, 0x1a, 0xc6, 0xf2, 0xd6, 0x07, 0xaf, + 0x80, 0x31, 0x61, 0xd3, 0x2e, 0x51, 0x0f, 0xdd, 0x86, 0xa5, 0x20, 0x4d, 0x57, 0x73, 0xb4, 0xbc, + 0xf5, 0xfe, 0x2b, 0x9c, 0x33, 0x66, 0xec, 0xb1, 0x93, 0xf9, 0xb3, 0x01, 0xe5, 0x2e, 0xe3, 0x52, + 0xb1, 0x3a, 0x24, 0xa3, 0x94, 0x24, 0xb5, 0x44, 0x37, 0xa0, 0xea, 0x51, 0x4e, 0x5c, 0x4d, 0x5e, + 0x42, 0xd0, 0xf9, 0xe2, 0xe1, 0xca, 0xb5, 0xd1, 0xce, 0xac, 0xec, 0x89, 0x83, 0x79, 0x11, 0xaa, + 0xe3, 0x7d, 0xb4, 0x02, 0xd0, 0xb6, 0xba, 0x3b, 0x56, 0xa7, 0xbd, 0xdb, 0xb9, 0x5b, 0x9b, 0x43, + 0x27, 0xa1, 0xda, 0x1a, 0x8b, 0x86, 0xf9, 0xb7, 0x01, 0x9b, 0x33, 0x73, 0xdc, 0xa3, 0x42, 0xda, + 0xe4, 0x87, 0x98, 0x08, 0x79, 0x8c, 0xe2, 0x59, 0x83, 0x05, 0x9f, 0x06, 0x54, 0x6a, 0x66, 0x4e, + 0xda, 0x89, 0xa0, 0x76, 0x25, 0x1b, 0x92, 0x30, 0x2d, 0xa0, 0x44, 0x40, 0x97, 0x60, 0x51, 0x30, + 0x2e, 0x9d, 0xde, 0xa8, 0xbe, 0xa0, 0x79, 0x5c, 0x9b, 0x95, 0xaa, 0x5d, 0x51, 0x46, 0xdb, 0x23, + 0x05, 0xa6, 0x4f, 0x7d, 0x49, 0xb8, 0xa8, 0x57, 0x12, 0x30, 0xa9, 0x98, 0x55, 0xe7, 0xe2, 0xa4, + 0x3a, 0x7f, 0x2b, 0xc1, 0xd9, 0x5c, 0x76, 0xf9, 0x9c, 0x5e, 0xbf, 0x6e, 0x72, 0xac, 0x94, 0x5e, + 0xc6, 0xca, 0xfc, 0x6c, 0x56, 0xca, 0x33, 0x59, 0x59, 0x78, 0x09, 0x2b, 0x95, 0xa3, 0xb1, 0xb2, + 0x38, 0x93, 0x95, 0xa5, 0x09, 0x2b, 0x12, 0xce, 0xbd, 0xf4, 0xca, 0x51, 0x0b, 0x96, 0x94, 0x2c, + 0x29, 0x11, 0x75, 0x63, 0x73, 0xfe, 0xbf, 0xf7, 0xc4, 0xd8, 0x6d, 0x92, 0x50, 0x29, 0x97, 0x90, + 0xf9, 0x1d, 0x9c, 0x2a, 0x5c, 0x05, 0xfa, 0xfc, 0x50, 0xac, 0x8d, 0x57, 0xc4, 0xfa, 0xd7, 0x08, + 0xbf, 0x1a, 0x53, 0xd3, 0xef, 0x2e, 0x79, 0x83, 0x97, 0x7d, 0xbc, 0x21, 0x61, 0xfe, 0x65, 0x40, + 0x3d, 0xa7, 0x7d, 0x14, 0x79, 0x6a, 0x94, 0xfd, 0xcf, 0xa8, 0x5e, 0x7f, 0x74, 0x6d, 0x4c, 0x55, + 0x50, 0x96, 0x95, 0x88, 0x58, 0x28, 0x88, 0x79, 0x13, 0x6a, 0x0f, 0x7b, 0xaa, 0x0f, 0x72, 0x17, + 0x70, 0x41, 0x03, 0x35, 0x74, 0xac, 0x73, 0x85, 0xfc, 0x0a, 0x94, 0xfd, 0x61, 0xc0, 0x6a, 0x96, + 0x72, 0xbe, 0x61, 0xaf, 0xe4, 0x8e, 0x38, 0x42, 0xae, 0xe3, 0x9e, 0x2b, 0xcd, 0xec, 0xb9, 0xf9, + 0x7c, 0xcf, 0xe5, 0x9a, 0xa8, 0x3c, 0xdd, 0x44, 0x47, 0x9b, 0x51, 0xe6, 0x2d, 0x38, 0x6d, 0x05, + 0x98, 0xfa, 0x1d, 0xa6, 0x90, 0xb8, 0x58, 0x4f, 0xe2, 0x0b, 0x50, 0xe3, 0xc4, 0xa5, 0x11, 0x25, + 0xa1, 0x14, 0x0e, 0x51, 0x7a, 0x5d, 0xf5, 0x55, 0xfb, 0xd4, 0x64, 0x5f, 0xbb, 0x99, 0xdb, 0x70, + 0x66, 0x1f, 0x0f, 0x08, 0x6f, 0xc7, 0x72, 0x74, 0xdc, 0x33, 0x6e, 0xc1, 0xe9, 0xae, 0x8f, 0xdd, + 0xe1, 0x71, 0xfd, 0x7f, 0x2f, 0xc1, 0x89, 0x29, 0xdf, 0x5b, 0x50, 0x89, 0x9e, 0x62, 0x91, 0xf6, + 0xea, 0xca, 0xd6, 0x87, 0x85, 0x7b, 0xfc, 0x9a, 0xf1, 0x61, 0xdf, 0x67, 0xcf, 0xad, 0xf1, 0x93, + 0x67, 0x5f, 0x99, 0xdb, 0xa9, 0x17, 0xba, 0x0a, 0x0b, 0x49, 0xc0, 0xa4, 0x5e, 0xdf, 0x2b, 0x32, + 0x78, 0x88, 0xb1, 0x7b, 0x73, 0x76, 0xe2, 0x81, 0xee, 0x00, 0x44, 0x8a, 0x0f, 0xc7, 0x8b, 0xe5, + 0x28, 0x2d, 0xd9, 0x43, 0x35, 0x30, 0x93, 0xb1, 0x7b, 0x73, 0x76, 0x35, 0xca, 0x14, 0x0a, 0x82, + 0x50, 0x9c, 0xe8, 0xeb, 0x9d, 0x01, 0xe1, 0x10, 0x61, 0x0a, 0x82, 0xf6, 0xd8, 0xae, 0x40, 0x59, + 0xf5, 0xa8, 0x79, 0x05, 0x16, 0x1f, 0x71, 0x7f, 0xdb, 0x67, 0x3d, 0x35, 0x59, 0x63, 0xee, 0x67, + 0xdf, 0xed, 0x98, 0xfb, 0xaa, 0xac, 0x7a, 0x23, 0x49, 0x84, 0x4e, 0x71, 0xde, 0x4e, 0x84, 0x6b, + 0xa5, 0xba, 0x61, 0xfe, 0x04, 0x95, 0x3d, 0xdc, 0x23, 0xbe, 0x40, 0xd7, 0xa0, 0xf2, 0x0c, 0xfb, + 0xf1, 0x78, 0xe4, 0x99, 0x45, 0x10, 0x89, 0x5d, 0xe3, 0xb1, 0x36, 0xb2, 0x42, 0xc9, 0x47, 0x76, + 0xea, 0xb1, 0x7e, 0x15, 0x96, 0x73, 0xdb, 0x33, 0x1e, 0x0e, 0x6b, 0xb0, 0xa0, 0x4d, 0xb3, 0xc1, + 0xa8, 0x85, 0x6b, 0xa5, 0x2f, 0x0c, 0xf3, 0x17, 0x03, 0x96, 0x5b, 0x61, 0xc8, 0xa4, 0xce, 0x4b, + 0xa0, 0xdb, 0x05, 0x18, 0x1f, 0x15, 0x61, 0xe4, 0x8c, 0xdf, 0x34, 0x96, 0xeb, 0x50, 0xb6, 0xc2, + 0x67, 0x02, 0x5d, 0x2e, 0x60, 0x28, 0x4e, 0xbe, 0xfb, 0x64, 0xa4, 0x43, 0xec, 0x63, 0xca, 0xb3, + 0xb8, 0xe6, 0x8f, 0xb0, 0xd4, 0x8a, 0xe5, 0x53, 0x9b, 0xf9, 0x04, 0x7d, 0x02, 0x08, 0x0b, 0x11, + 0x07, 0xb8, 0xe7, 0x13, 0x87, 0xe2, 0xc0, 0xe1, 0xcc, 0x27, 0x29, 0x86, 0xda, 0x58, 0xb3, 0x8b, + 0x03, 0x6d, 0x7d, 0x03, 0xd6, 0x87, 0x71, 0x8f, 0xf0, 0x90, 0x48, 0x22, 0x1c, 0x41, 0xf8, 0x33, + 0xea, 0x12, 0x07, 0xbb, 0x2e, 0x8b, 0xc3, 0xec, 0x1b, 0x5e, 0x9f, 0x58, 0x74, 0x13, 0x83, 0x56, + 0xa2, 0xd7, 0xb7, 0x78, 0x1f, 0x56, 0x6d, 0xfc, 0xfc, 0x61, 0x2c, 0xa3, 0x58, 0xb6, 0xb1, 0xc4, + 0x3b, 0x2c, 0xec, 0xd3, 0x01, 0xfa, 0x14, 0xce, 0x32, 0xbd, 0xe7, 0xf8, 0x2c, 0xa9, 0x1b, 0x27, + 0xe2, 0xa4, 0x4f, 0x5f, 0xa4, 0x50, 0xd6, 0x12, 0xed, 0x5e, 0xaa, 0xdc, 0xd7, 0x3a, 0xf3, 0x2b, + 0xa8, 0xde, 0x51, 0xe9, 0x3e, 0xb2, 0xf7, 0x84, 0x7a, 0x32, 0xd0, 0x30, 0x8a, 0xa5, 0x48, 0x5d, + 0x52, 0x49, 0x8d, 0xa4, 0xc4, 0x59, 0x64, 0x8f, 0x8c, 0x54, 0x54, 0xef, 0x73, 0x8f, 0xb8, 0xc3, + 0xec, 0x7d, 0xae, 0xd6, 0x17, 0xbf, 0x85, 0x5a, 0xf1, 0xdd, 0x8c, 0xde, 0x82, 0xd5, 0x4e, 0xeb, + 0x81, 0xd5, 0x76, 0xac, 0xce, 0xc1, 0xee, 0xc1, 0x13, 0xa7, 0xb5, 0x73, 0xb0, 0xfb, 0xd8, 0xaa, + 0xcd, 0xa1, 0x73, 0x70, 0x66, 0x5a, 0x61, 0xef, 0xdc, 0xdb, 0x7d, 0x6c, 0xb5, 0x6b, 0x06, 0x5a, + 0x83, 0x5a, 0xf7, 0x49, 0xf7, 0xc0, 0x7a, 0xe0, 0xdc, 0xb5, 0x3a, 0x96, 0xdd, 0x3a, 0xb0, 0xda, + 0xb5, 0xd2, 0xf6, 0xcd, 0x6f, 0xae, 0x0f, 0xa8, 0x7c, 0x1a, 0xf7, 0x1a, 0x2e, 0x0b, 0x9a, 0xfa, + 0xaa, 0x18, 0x1f, 0x24, 0x8b, 0xe6, 0xf8, 0xbf, 0x65, 0x40, 0xc2, 0x66, 0xd4, 0xbb, 0x34, 0x60, + 0xcd, 0xe9, 0xdf, 0xa6, 0x5e, 0x45, 0xff, 0xa2, 0x5c, 0xfe, 0x27, 0x00, 0x00, 0xff, 0xff, 0xa8, + 0x9c, 0xe3, 0x6a, 0x4f, 0x0d, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go index 6ee9c5dc15..a77fcce08b 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go @@ -115,10 +115,12 @@ type ExecutionCreateRequest struct { // The inputs required to start the execution. All required inputs must be // included in this map. If not required and not provided, defaults apply. // +optional - Inputs *core.LiteralMap `protobuf:"bytes,5,opt,name=inputs,proto3" json:"inputs,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Inputs *core.LiteralMap `protobuf:"bytes,5,opt,name=inputs,proto3" json:"inputs,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,6,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ExecutionCreateRequest) Reset() { *m = ExecutionCreateRequest{} } @@ -181,6 +183,13 @@ func (m *ExecutionCreateRequest) GetInputs() *core.LiteralMap { return nil } +func (m *ExecutionCreateRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Request to relaunch the referenced execution. type ExecutionRelaunchRequest struct { // Identifier of the workflow execution to relaunch. @@ -1739,122 +1748,123 @@ func init() { func init() { proto.RegisterFile("flyteidl/admin/execution.proto", fileDescriptor_4e2785d91b3809ec) } var fileDescriptor_4e2785d91b3809ec = []byte{ - // 1862 bytes of a gzipped FileDescriptorProto + // 1874 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x5b, 0x73, 0xdb, 0xc6, - 0x15, 0x16, 0x29, 0x52, 0xa2, 0x0e, 0x25, 0x8a, 0x5e, 0x29, 0x0a, 0x2c, 0x3b, 0xb6, 0x82, 0x4c, - 0x6b, 0x4f, 0x32, 0x25, 0x27, 0x4a, 0x3d, 0x9d, 0x38, 0x71, 0x26, 0x14, 0x45, 0x87, 0x4c, 0x75, - 0x71, 0x57, 0x17, 0xe7, 0x32, 0x19, 0x74, 0x09, 0x2c, 0x49, 0x34, 0xb8, 0x79, 0x77, 0x21, 0xd9, - 0xff, 0xa0, 0xd3, 0xa7, 0x3e, 0xb6, 0xff, 0xa0, 0x4f, 0x7d, 0xec, 0x2f, 0xe8, 0x8f, 0xea, 0x63, - 0x07, 0x8b, 0x05, 0x08, 0x80, 0x94, 0x25, 0x8f, 0xf5, 0x86, 0x3d, 0xe7, 0x3b, 0x67, 0xcf, 0x9e, - 0x3d, 0xb7, 0x05, 0x3c, 0x18, 0x39, 0x6f, 0x04, 0xb5, 0x2d, 0xa7, 0x4d, 0x2c, 0xd7, 0xf6, 0xda, - 0xf4, 0x35, 0x35, 0x43, 0x61, 0xfb, 0x5e, 0x2b, 0x60, 0xbe, 0xf0, 0x51, 0x23, 0xe1, 0xb7, 0x24, - 0x7f, 0xfb, 0x51, 0x01, 0x6f, 0x3a, 0x21, 0x17, 0x94, 0x19, 0x84, 0x73, 0x7b, 0xec, 0xb9, 0xd4, - 0x13, 0xb1, 0xe0, 0xf6, 0xbd, 0x22, 0xd0, 0x77, 0xdd, 0x44, 0xeb, 0xf6, 0xfd, 0x94, 0x69, 0xfa, - 0x8c, 0xb6, 0x1d, 0x5b, 0x50, 0x46, 0x1c, 0xae, 0xb8, 0x1f, 0xe5, 0xb9, 0x05, 0x93, 0xb6, 0x1f, - 0xe6, 0xd9, 0x84, 0x09, 0x7b, 0x44, 0x4c, 0x61, 0xd8, 0x96, 0x02, 0x3c, 0xc8, 0x03, 0x6c, 0x8b, - 0x7a, 0xc2, 0x1e, 0xd9, 0x94, 0xcd, 0x98, 0x26, 0xf9, 0x2e, 0x15, 0xcc, 0x36, 0xf9, 0x7c, 0xd3, - 0x38, 0x35, 0x43, 0x66, 0x8b, 0x37, 0x89, 0xea, 0xb1, 0xef, 0x8f, 0x1d, 0xda, 0x96, 0xab, 0x61, - 0x38, 0x6a, 0x5b, 0x21, 0x23, 0x59, 0xdb, 0x8a, 0x7c, 0x61, 0xbb, 0x94, 0x0b, 0xe2, 0x06, 0x57, - 0x29, 0xb8, 0x64, 0x24, 0x08, 0x28, 0x53, 0xdb, 0xeb, 0xff, 0x2d, 0xc1, 0x56, 0x2f, 0x39, 0x70, - 0x97, 0x51, 0x22, 0x28, 0xa6, 0xaf, 0x42, 0xca, 0x05, 0xd2, 0x60, 0x39, 0x60, 0xfe, 0x5f, 0xa8, - 0x29, 0xb4, 0xd2, 0x4e, 0xe9, 0xf1, 0x0a, 0x4e, 0x96, 0x68, 0x0b, 0x96, 0x2c, 0xdf, 0x25, 0xb6, - 0xa7, 0x95, 0x25, 0x43, 0xad, 0x10, 0x82, 0x8a, 0x47, 0x5c, 0xaa, 0x2d, 0x4a, 0xaa, 0xfc, 0x46, - 0x9f, 0x43, 0x85, 0x07, 0xd4, 0xd4, 0x2a, 0x3b, 0xa5, 0xc7, 0xf5, 0xdd, 0x8f, 0x5a, 0xf9, 0xfb, - 0x6d, 0xa5, 0x7b, 0x9f, 0x04, 0xd4, 0xc4, 0x12, 0x8a, 0x3e, 0x87, 0x25, 0xdb, 0x0b, 0x42, 0xc1, - 0xb5, 0xaa, 0x14, 0xba, 0x3b, 0x15, 0x8a, 0x7c, 0xd4, 0x3a, 0x88, 0xaf, 0xef, 0x90, 0x04, 0x58, - 0x01, 0xf5, 0x7f, 0x96, 0x40, 0x4b, 0x55, 0x61, 0xea, 0x90, 0xd0, 0x33, 0x27, 0xc9, 0x41, 0x9e, - 0x42, 0xd9, 0xb6, 0xe4, 0x19, 0xea, 0xbb, 0x9f, 0x16, 0x74, 0xbd, 0xf4, 0xd9, 0xaf, 0x23, 0xc7, - 0xbf, 0x4c, 0x85, 0x07, 0xe9, 0xed, 0xe1, 0xb2, 0x6d, 0xcd, 0x3d, 0xd2, 0x23, 0x58, 0xf7, 0x2f, - 0x28, 0xbb, 0x64, 0xb6, 0xa0, 0x86, 0x49, 0xcc, 0x09, 0x95, 0xa7, 0xab, 0xe1, 0x46, 0x4a, 0xee, - 0x46, 0xd4, 0xef, 0x2b, 0xb5, 0x72, 0x73, 0x51, 0xff, 0x57, 0x09, 0x3e, 0xcc, 0xd8, 0x66, 0x46, - 0xa0, 0xdb, 0x34, 0xad, 0x9c, 0x31, 0xed, 0x19, 0xd4, 0x5c, 0x2a, 0x88, 0x45, 0x04, 0x91, 0x26, - 0xd7, 0x77, 0x3f, 0xbe, 0xd2, 0xe3, 0x87, 0x0a, 0x88, 0x53, 0x11, 0xfd, 0x2c, 0x63, 0x69, 0x12, - 0x0c, 0x3c, 0xf0, 0x3d, 0x4e, 0xdf, 0xc7, 0x52, 0xfd, 0x47, 0xb8, 0x37, 0x03, 0xf9, 0x8e, 0x8a, - 0x5b, 0x70, 0x82, 0xfe, 0x9f, 0x12, 0xac, 0xa4, 0xbc, 0xf7, 0x72, 0x67, 0x12, 0xa8, 0xe5, 0x9b, - 0x07, 0xea, 0x53, 0x58, 0x36, 0x1d, 0x9f, 0x87, 0x8c, 0x2a, 0x67, 0xef, 0x5c, 0x29, 0xd5, 0x8d, - 0x71, 0x38, 0x11, 0xd0, 0xff, 0x0c, 0x6b, 0x29, 0xf3, 0xc0, 0xe6, 0x02, 0x7d, 0x09, 0x90, 0x56, - 0x1e, 0xae, 0x95, 0x76, 0x16, 0xf3, 0x91, 0x5f, 0xd0, 0x87, 0x33, 0x60, 0xb4, 0x09, 0x55, 0xe1, - 0xff, 0x4a, 0x93, 0x74, 0x8c, 0x17, 0x3a, 0x85, 0xc6, 0x34, 0x53, 0xf6, 0x1c, 0x7f, 0x88, 0xfe, - 0x00, 0x4b, 0x17, 0xc4, 0x09, 0x29, 0x57, 0x2e, 0xba, 0x3a, 0xb1, 0xf6, 0xca, 0x5a, 0xa9, 0xbf, - 0x80, 0x15, 0x1c, 0x21, 0x58, 0x0c, 0x99, 0x1d, 0xab, 0xef, 0x2f, 0xe0, 0x68, 0xb1, 0xb7, 0x04, - 0x15, 0x19, 0x33, 0x5d, 0x58, 0xeb, 0x0c, 0x7d, 0x26, 0x92, 0x70, 0x8a, 0xac, 0x31, 0x49, 0xc8, - 0xa9, 0xaa, 0x1a, 0xf1, 0x02, 0xdd, 0x87, 0x95, 0x80, 0xd9, 0x9e, 0x69, 0x07, 0xc4, 0x51, 0x76, - 0x4e, 0x09, 0xfa, 0x3f, 0x96, 0xa1, 0x59, 0xf4, 0x15, 0xfa, 0x06, 0x96, 0xfd, 0x50, 0xc8, 0x42, - 0x10, 0xdb, 0xfb, 0xa0, 0xe8, 0x8e, 0xfc, 0xf9, 0x94, 0xd1, 0x89, 0x10, 0x7a, 0x02, 0x55, 0xca, - 0x98, 0xcf, 0x66, 0xaf, 0x54, 0x9e, 0x36, 0xdd, 0xaf, 0x17, 0x81, 0xfa, 0x0b, 0x38, 0x46, 0xa3, - 0xdf, 0x40, 0x9d, 0x44, 0x07, 0x32, 0xe2, 0x53, 0x40, 0x64, 0xab, 0x52, 0x0d, 0x92, 0xd1, 0x95, - 0x07, 0x7a, 0x0e, 0x8d, 0x18, 0x96, 0x26, 0xdc, 0xea, 0xfc, 0xc8, 0xc9, 0x79, 0xa7, 0xbf, 0x80, - 0xd7, 0x48, 0xce, 0x5d, 0xdf, 0x42, 0x3d, 0x36, 0xd8, 0x90, 0x4a, 0xd6, 0x6e, 0x76, 0x33, 0x10, - 0xcb, 0xec, 0x47, 0x1a, 0x9e, 0xc3, 0xba, 0xe9, 0xbb, 0x41, 0x28, 0xa8, 0x65, 0xa8, 0xc2, 0xb9, - 0x78, 0x03, 0x2d, 0xb8, 0x91, 0x48, 0x0d, 0xa4, 0x10, 0xfa, 0x1a, 0xaa, 0xc1, 0x84, 0xf0, 0xb8, - 0x9a, 0x35, 0x76, 0x7f, 0x7b, 0x5d, 0x02, 0xb5, 0x5e, 0x44, 0x68, 0x1c, 0x0b, 0x45, 0xf1, 0xcb, - 0x05, 0x61, 0x91, 0x11, 0x44, 0xa8, 0xca, 0xbd, 0xdd, 0x8a, 0xdb, 0x4f, 0x2b, 0x69, 0x3f, 0xad, - 0xd3, 0xa4, 0x3f, 0xe1, 0x15, 0x85, 0xee, 0x08, 0xf4, 0x04, 0x6a, 0x49, 0x5f, 0xd3, 0x96, 0x94, - 0xe5, 0x45, 0xc1, 0x7d, 0x05, 0xc0, 0x29, 0x34, 0xda, 0xd1, 0x94, 0x45, 0x4a, 0xee, 0xb8, 0x7c, - 0xfd, 0x8e, 0x0a, 0xdd, 0x91, 0xc9, 0x16, 0x06, 0x56, 0x22, 0x5a, 0xbb, 0x5e, 0x54, 0xa1, 0x3b, - 0x02, 0xed, 0xc1, 0x9a, 0xe7, 0x47, 0x75, 0xc3, 0x24, 0x71, 0xaa, 0xae, 0xc8, 0x54, 0xbd, 0x5f, - 0xbc, 0xf6, 0xa3, 0x0c, 0x08, 0xe7, 0x45, 0xd0, 0x53, 0xa8, 0x5f, 0x2a, 0x6f, 0x1a, 0xb6, 0xa5, - 0xd5, 0xe7, 0xde, 0x56, 0xa6, 0x3e, 0x41, 0x82, 0x1e, 0x58, 0xe8, 0x17, 0xd8, 0xe4, 0x82, 0x44, - 0x9d, 0x67, 0x42, 0xbc, 0x31, 0x35, 0x2c, 0x2a, 0x88, 0xed, 0x70, 0xad, 0x21, 0x95, 0x7c, 0x76, - 0x75, 0xdd, 0x8a, 0x84, 0xba, 0x52, 0x66, 0x3f, 0x16, 0xc1, 0x88, 0xcf, 0xd0, 0xf6, 0xd6, 0x61, - 0x4d, 0x85, 0x23, 0xa3, 0x3c, 0x74, 0x84, 0xfe, 0x33, 0x34, 0x4e, 0xde, 0x70, 0x41, 0xdd, 0x34, - 0x62, 0x3f, 0x83, 0x3b, 0x69, 0xf1, 0x31, 0xd4, 0x40, 0xa6, 0x92, 0xbd, 0x49, 0xa7, 0x49, 0x2c, - 0xe9, 0x51, 0xde, 0x47, 0x9d, 0x89, 0x07, 0xc4, 0x4c, 0x5a, 0xd5, 0x94, 0xa0, 0xff, 0xaf, 0x02, - 0x77, 0x66, 0x1a, 0x12, 0xea, 0x42, 0xc5, 0xf5, 0xad, 0xb8, 0x80, 0x34, 0x76, 0xdb, 0xd7, 0x76, - 0xb0, 0x0c, 0xc5, 0xb7, 0x28, 0x96, 0xc2, 0x6f, 0x2f, 0x38, 0xd1, 0x70, 0xe3, 0x51, 0x2e, 0x6c, - 0x6f, 0x2c, 0x73, 0x65, 0x0d, 0x27, 0x4b, 0xf4, 0x0c, 0x56, 0xb9, 0x39, 0xa1, 0x56, 0xe8, 0xc4, - 0xc1, 0x51, 0xb9, 0x36, 0x38, 0xea, 0x29, 0xbe, 0x23, 0xd0, 0x4f, 0xf0, 0x41, 0x40, 0x18, 0xf5, - 0x84, 0xe1, 0xf9, 0x16, 0x35, 0x52, 0x7f, 0xa8, 0x8c, 0x28, 0x26, 0xd5, 0x91, 0x6f, 0xd1, 0x79, - 0x1d, 0x69, 0x23, 0x56, 0x92, 0x63, 0xa3, 0x9f, 0x61, 0x83, 0xd1, 0x11, 0x65, 0xd4, 0x33, 0xb3, - 0x9a, 0x9b, 0xef, 0xdc, 0xef, 0x50, 0xaa, 0x66, 0xaa, 0xfc, 0x3b, 0x58, 0xe7, 0xf2, 0x9e, 0xa7, - 0x05, 0xed, 0xce, 0xfc, 0xaa, 0x9b, 0x0f, 0x07, 0xdc, 0xe0, 0xf9, 0xf0, 0xf8, 0x1a, 0x56, 0x33, - 0x33, 0x32, 0xd7, 0x50, 0xb1, 0x95, 0x49, 0xf3, 0x3a, 0x0a, 0x32, 0xd8, 0xc7, 0xf5, 0x04, 0x3e, - 0xb0, 0xb8, 0x3e, 0xce, 0xf4, 0xc5, 0xe8, 0x36, 0x11, 0xc0, 0xd2, 0x61, 0xe7, 0xe8, 0xac, 0x73, - 0xd0, 0x5c, 0x40, 0x6b, 0xb0, 0x72, 0xd2, 0xed, 0xf7, 0xf6, 0xcf, 0x0e, 0x7a, 0xfb, 0xcd, 0x52, - 0xc4, 0x3a, 0xf9, 0xf1, 0xe4, 0xb4, 0x77, 0xd8, 0x2c, 0xa3, 0x55, 0xa8, 0xe1, 0xde, 0x41, 0xe7, - 0xec, 0xa8, 0xdb, 0x6f, 0x2e, 0x22, 0x04, 0x8d, 0x6e, 0x7f, 0x70, 0xb0, 0x6f, 0xbc, 0x3c, 0xc6, - 0x7f, 0x7c, 0x7e, 0x70, 0xfc, 0xb2, 0x59, 0x89, 0x84, 0x71, 0xaf, 0x7b, 0x7c, 0xde, 0xc3, 0xbd, - 0xfd, 0x66, 0x55, 0x3f, 0x87, 0x66, 0x36, 0x45, 0x65, 0x0f, 0x9e, 0xc9, 0xed, 0xd2, 0x3b, 0xe7, - 0xb6, 0xfe, 0xf7, 0x5a, 0xe6, 0x04, 0x27, 0xf1, 0x98, 0x50, 0x8f, 0x07, 0x52, 0x23, 0x70, 0x88, - 0x77, 0x45, 0xef, 0xcd, 0x66, 0x7b, 0x8c, 0x7e, 0xe1, 0x10, 0x0f, 0x3d, 0x49, 0x67, 0xe1, 0xf2, - 0x4d, 0x4a, 0xba, 0x02, 0xbf, 0xe7, 0x1c, 0x88, 0xfa, 0x45, 0x3f, 0x54, 0xe7, 0x8f, 0x37, 0x45, - 0x07, 0x46, 0xdd, 0x2d, 0x5f, 0xe9, 0x3e, 0x86, 0xba, 0x65, 0x73, 0x32, 0x74, 0xa8, 0x41, 0x1c, - 0x47, 0x56, 0xf7, 0x5a, 0xd4, 0xbe, 0x14, 0xb1, 0xe3, 0x38, 0xa8, 0x05, 0x4b, 0x0e, 0x19, 0x52, - 0x87, 0xab, 0x12, 0xbe, 0x35, 0xd3, 0xe5, 0x25, 0x17, 0x2b, 0x14, 0x7a, 0x06, 0x75, 0xe2, 0x79, - 0xbe, 0x50, 0xa6, 0xc5, 0xc5, 0xfb, 0xde, 0x4c, 0xd7, 0x9d, 0x42, 0x70, 0x16, 0x8f, 0x06, 0xd0, - 0x4c, 0x1e, 0x59, 0x86, 0xe9, 0x7b, 0x82, 0xbe, 0x16, 0xb2, 0xc7, 0xe7, 0x02, 0x5d, 0xfa, 0xf6, - 0x44, 0xc1, 0xba, 0x31, 0x0a, 0xaf, 0xf3, 0x3c, 0x01, 0x7d, 0x09, 0x2b, 0x24, 0x14, 0x13, 0x83, - 0xf9, 0x0e, 0x55, 0x59, 0xa8, 0xcd, 0xd8, 0x11, 0x8a, 0x09, 0xf6, 0x1d, 0x2a, 0xaf, 0xa7, 0x46, - 0xd4, 0x0a, 0x1d, 0x02, 0x7a, 0x15, 0x12, 0x27, 0x32, 0xc2, 0x1f, 0x19, 0x9c, 0xb2, 0x0b, 0xdb, - 0xa4, 0x2a, 0xe1, 0x1e, 0x16, 0xec, 0xf8, 0x53, 0x0c, 0x3c, 0x1e, 0x9d, 0xc4, 0x30, 0xdc, 0x7c, - 0x55, 0xa0, 0x44, 0x4f, 0x12, 0x97, 0xbc, 0x36, 0x02, 0xc2, 0x88, 0xe3, 0x50, 0xc7, 0xe6, 0xae, - 0x86, 0x76, 0x4a, 0x8f, 0xab, 0xb8, 0xe1, 0x92, 0xd7, 0x2f, 0xa6, 0x54, 0xf4, 0x03, 0x6c, 0x31, - 0x72, 0x69, 0x64, 0x26, 0x8e, 0xc8, 0x09, 0x23, 0x7b, 0xac, 0x6d, 0xc8, 0xbd, 0x3f, 0x29, 0xda, - 0x8f, 0xc9, 0xe5, 0x71, 0x3a, 0x6a, 0x74, 0x25, 0x14, 0x6f, 0xb0, 0x59, 0x22, 0x7a, 0x01, 0x68, - 0xf6, 0x71, 0xae, 0x6d, 0xce, 0x0f, 0x3e, 0xd5, 0x1d, 0x3a, 0x29, 0x10, 0xdf, 0x31, 0x8b, 0x24, - 0xf4, 0x2d, 0xac, 0xd9, 0x9e, 0xa0, 0x8c, 0x85, 0x81, 0xb0, 0x87, 0x0e, 0xd5, 0x3e, 0xb8, 0xa2, - 0x14, 0xef, 0xf9, 0xbe, 0x73, 0x1e, 0x4d, 0xaa, 0x38, 0x2f, 0x30, 0xef, 0xa5, 0xb6, 0x35, 0xef, - 0xa5, 0x86, 0x1e, 0x43, 0x85, 0x7a, 0x17, 0x5c, 0xfb, 0x50, 0xee, 0xb0, 0x39, 0x93, 0x2b, 0xde, - 0x05, 0xc7, 0x12, 0x11, 0xbd, 0xba, 0x04, 0x19, 0x73, 0x4d, 0xdb, 0x59, 0x8c, 0x5e, 0x5d, 0xd1, - 0xf7, 0x9e, 0x06, 0x5b, 0xd9, 0xa8, 0x37, 0x22, 0xe5, 0xcc, 0xb6, 0x28, 0xff, 0xbe, 0x52, 0xab, - 0x34, 0xab, 0xba, 0x0b, 0x77, 0xd3, 0x6c, 0x3b, 0xa5, 0xcc, 0xb5, 0xbd, 0xcc, 0x33, 0xfb, 0x7d, - 0xde, 0x2c, 0xe9, 0xa8, 0x5d, 0xce, 0x8c, 0xda, 0xfa, 0x7d, 0xd8, 0x9e, 0xb7, 0x5d, 0xfc, 0x90, - 0xd3, 0x7f, 0x81, 0x87, 0xf3, 0x1e, 0x63, 0xd1, 0x4d, 0xde, 0xc6, 0x83, 0xec, 0xaf, 0x65, 0xd8, - 0xb9, 0x5a, 0xbf, 0x7a, 0x4c, 0x3e, 0x29, 0x4e, 0xf6, 0x1f, 0x16, 0x3d, 0x7e, 0xc6, 0x9c, 0x64, - 0xa4, 0x9f, 0x0e, 0xf4, 0x5f, 0x14, 0x8a, 0xe1, 0x5b, 0xa5, 0x92, 0x52, 0xf8, 0x14, 0xea, 0xa3, - 0xd0, 0x71, 0x6e, 0x3a, 0x19, 0x63, 0x88, 0xd0, 0xe9, 0x44, 0xbc, 0x2a, 0x65, 0x13, 0x63, 0x2b, - 0xd7, 0x09, 0xcb, 0xad, 0xe2, 0xd4, 0xe0, 0xfa, 0xdf, 0xb2, 0xff, 0x56, 0xce, 0xe4, 0x00, 0x79, - 0x1b, 0x97, 0xfe, 0x7b, 0xa8, 0xca, 0xb9, 0x4d, 0x3a, 0xa1, 0x31, 0xdb, 0x9e, 0xf3, 0x13, 0x1f, - 0x8e, 0xc1, 0xfa, 0xbf, 0x4b, 0x70, 0xef, 0x2d, 0xb3, 0xe0, 0x54, 0x6b, 0xe9, 0x1d, 0xb4, 0xa2, - 0xaf, 0xa0, 0xee, 0x9b, 0x66, 0xc8, 0x58, 0x3c, 0x2b, 0x95, 0xaf, 0x9d, 0x95, 0x20, 0x81, 0x77, - 0x44, 0x7e, 0x42, 0x5b, 0x2c, 0x3e, 0x09, 0xef, 0x66, 0xfe, 0x45, 0x24, 0xce, 0x53, 0x21, 0x7c, - 0x01, 0xfa, 0xbc, 0x10, 0x3b, 0x8c, 0x7f, 0xac, 0xdd, 0x52, 0x62, 0x59, 0x34, 0x10, 0x13, 0x79, - 0xa2, 0x2a, 0x8e, 0x17, 0xfa, 0x11, 0x7c, 0xf2, 0xd6, 0x7d, 0x55, 0x74, 0x3f, 0x82, 0x0a, 0x0f, - 0xd2, 0x46, 0xbf, 0x51, 0xec, 0x2a, 0x01, 0xf1, 0xb0, 0x04, 0x7c, 0xfa, 0x0d, 0x34, 0xf2, 0x6e, - 0x45, 0x9b, 0xd0, 0xec, 0xfd, 0xd0, 0xeb, 0x9e, 0x9d, 0x0e, 0x8e, 0x8f, 0x8c, 0x4e, 0xf7, 0x74, - 0x70, 0xde, 0x6b, 0x2e, 0xa0, 0x2d, 0x40, 0x19, 0x2a, 0xee, 0xf6, 0x07, 0xe7, 0xd1, 0xfc, 0xb3, - 0xf7, 0xec, 0xa7, 0xaf, 0xc6, 0xb6, 0x98, 0x84, 0xc3, 0x96, 0xe9, 0xbb, 0x6d, 0xb9, 0x8d, 0xcf, - 0xc6, 0xf1, 0x47, 0x3b, 0xfd, 0xaf, 0x38, 0xa6, 0x5e, 0x3b, 0x18, 0xfe, 0x6e, 0xec, 0xb7, 0xf3, - 0xbf, 0x48, 0x87, 0x4b, 0xf2, 0x7e, 0xbe, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xae, 0xc9, - 0xe4, 0xb3, 0x94, 0x15, 0x00, 0x00, + 0x15, 0x16, 0x29, 0x52, 0xa6, 0x0e, 0x2d, 0x8a, 0x5e, 0x29, 0x0a, 0x2c, 0x3b, 0xb6, 0x82, 0x4c, + 0x6b, 0x4f, 0x32, 0x25, 0x27, 0x4a, 0x3d, 0x9d, 0x38, 0x71, 0x26, 0x14, 0x45, 0x47, 0x4c, 0x75, + 0x71, 0x57, 0x17, 0xe7, 0x32, 0x19, 0x74, 0x05, 0x2c, 0x29, 0x34, 0xb8, 0x79, 0x77, 0x21, 0xd9, + 0xff, 0xa0, 0xd3, 0xa7, 0x3e, 0xb6, 0xff, 0xa0, 0x4f, 0x7d, 0xec, 0x4f, 0xe9, 0x6f, 0xe9, 0x63, + 0x67, 0x17, 0x0b, 0x10, 0x00, 0x29, 0x4b, 0x1e, 0xeb, 0x0d, 0x7b, 0xce, 0x77, 0xce, 0x9e, 0x3d, + 0x7b, 0x6e, 0x0b, 0x78, 0x30, 0xf2, 0xde, 0x08, 0xea, 0x3a, 0x5e, 0x97, 0x38, 0xbe, 0x1b, 0x74, + 0xe9, 0x6b, 0x6a, 0xc7, 0xc2, 0x0d, 0x83, 0x4e, 0xc4, 0x42, 0x11, 0xa2, 0x56, 0xca, 0xef, 0x28, + 0xfe, 0xfa, 0xa3, 0x12, 0xde, 0xf6, 0x62, 0x2e, 0x28, 0xb3, 0x08, 0xe7, 0xee, 0x38, 0xf0, 0x69, + 0x20, 0x12, 0xc1, 0xf5, 0x7b, 0x65, 0x60, 0xe8, 0xfb, 0xa9, 0xd6, 0xf5, 0xfb, 0x19, 0xd3, 0x0e, + 0x19, 0xed, 0x7a, 0xae, 0xa0, 0x8c, 0x78, 0x5c, 0x73, 0x3f, 0x2a, 0x72, 0x4b, 0x26, 0xad, 0x3f, + 0x2c, 0xb2, 0x09, 0x13, 0xee, 0x88, 0xd8, 0xc2, 0x72, 0x1d, 0x0d, 0x78, 0x50, 0x04, 0xb8, 0x0e, + 0x0d, 0x84, 0x3b, 0x72, 0x29, 0x9b, 0x32, 0x4d, 0xf1, 0x7d, 0x2a, 0x98, 0x6b, 0xf3, 0xd9, 0xa6, + 0x71, 0x6a, 0xc7, 0xcc, 0x15, 0x6f, 0x52, 0xd5, 0xe3, 0x30, 0x1c, 0x7b, 0xb4, 0xab, 0x56, 0xa7, + 0xf1, 0xa8, 0xeb, 0xc4, 0x8c, 0xe4, 0x6d, 0x2b, 0xf3, 0x85, 0xeb, 0x53, 0x2e, 0x88, 0x1f, 0x5d, + 0xa6, 0xe0, 0x82, 0x91, 0x28, 0xa2, 0x4c, 0x6f, 0x6f, 0xfe, 0xb7, 0x02, 0x6b, 0x83, 0xf4, 0xc0, + 0x7d, 0x46, 0x89, 0xa0, 0x98, 0xbe, 0x8a, 0x29, 0x17, 0xc8, 0x80, 0x5b, 0x11, 0x0b, 0xff, 0x42, + 0x6d, 0x61, 0x54, 0x36, 0x2a, 0x8f, 0x17, 0x71, 0xba, 0x44, 0x6b, 0xb0, 0xe0, 0x84, 0x3e, 0x71, + 0x03, 0xa3, 0xaa, 0x18, 0x7a, 0x85, 0x10, 0xd4, 0x02, 0xe2, 0x53, 0x63, 0x5e, 0x51, 0xd5, 0x37, + 0xfa, 0x1c, 0x6a, 0x3c, 0xa2, 0xb6, 0x51, 0xdb, 0xa8, 0x3c, 0x6e, 0x6e, 0x7e, 0xd4, 0x29, 0xde, + 0x6f, 0x27, 0xdb, 0xfb, 0x30, 0xa2, 0x36, 0x56, 0x50, 0xf4, 0x39, 0x2c, 0xb8, 0x41, 0x14, 0x0b, + 0x6e, 0xd4, 0x95, 0xd0, 0xdd, 0x89, 0x90, 0xf4, 0x51, 0x67, 0x37, 0xb9, 0xbe, 0x3d, 0x12, 0x61, + 0x0d, 0x44, 0x6d, 0x98, 0x0f, 0xd9, 0xd8, 0x58, 0x50, 0x1b, 0xcb, 0x4f, 0xf3, 0x9f, 0x15, 0x30, + 0x32, 0xe5, 0x98, 0x7a, 0x24, 0x0e, 0xec, 0xb3, 0xf4, 0x68, 0x4f, 0xa1, 0xea, 0x3a, 0xea, 0x54, + 0xcd, 0xcd, 0x4f, 0x4b, 0xda, 0x5f, 0x86, 0xec, 0xd7, 0x91, 0x17, 0x5e, 0x64, 0xc2, 0xc3, 0xec, + 0x3e, 0x71, 0xd5, 0x75, 0x66, 0x1e, 0xf2, 0x11, 0x2c, 0x87, 0xe7, 0x94, 0x5d, 0x30, 0x57, 0x50, + 0xcb, 0x26, 0xf6, 0x19, 0x55, 0xe7, 0x6d, 0xe0, 0x56, 0x46, 0xee, 0x4b, 0xea, 0xf7, 0xb5, 0x46, + 0xb5, 0x3d, 0x6f, 0xfe, 0xab, 0x02, 0x1f, 0xe6, 0x6c, 0xb3, 0x25, 0xe8, 0x26, 0x4d, 0xab, 0xe6, + 0x4c, 0x7b, 0x06, 0x0d, 0x9f, 0x0a, 0xe2, 0x10, 0x41, 0x94, 0xc9, 0xcd, 0xcd, 0x8f, 0x2f, 0xbd, + 0x83, 0x3d, 0x0d, 0xc4, 0x99, 0x88, 0x79, 0x9c, 0xb3, 0x34, 0x0d, 0x0f, 0x1e, 0x85, 0x01, 0xa7, + 0xef, 0x63, 0xa9, 0xf9, 0x23, 0xdc, 0x9b, 0x82, 0x7c, 0x47, 0xc5, 0x0d, 0x38, 0xc1, 0xfc, 0x4f, + 0x05, 0x16, 0x33, 0xde, 0x7b, 0xb9, 0x33, 0x0d, 0xdd, 0xea, 0xf5, 0x43, 0xf7, 0x29, 0xdc, 0xb2, + 0xbd, 0x90, 0xc7, 0x8c, 0x6a, 0x67, 0x6f, 0x5c, 0x2a, 0xd5, 0x4f, 0x70, 0x38, 0x15, 0x30, 0xff, + 0x0c, 0x4b, 0x19, 0x73, 0xd7, 0xe5, 0x02, 0x7d, 0x09, 0x90, 0xd5, 0x22, 0x6e, 0x54, 0x36, 0xe6, + 0x8b, 0xb9, 0x50, 0xd2, 0x87, 0x73, 0x60, 0xb4, 0x0a, 0x75, 0x11, 0xfe, 0x4a, 0xd3, 0x04, 0x4d, + 0x16, 0x26, 0x85, 0xd6, 0x24, 0x77, 0xb6, 0xbc, 0xf0, 0x14, 0xfd, 0x01, 0x16, 0xce, 0x89, 0x17, + 0x53, 0xae, 0x5d, 0x74, 0x79, 0xaa, 0x6d, 0x55, 0x8d, 0xca, 0xce, 0x1c, 0xd6, 0x70, 0x84, 0x60, + 0x3e, 0x66, 0x6e, 0xa2, 0x7e, 0x67, 0x0e, 0xcb, 0xc5, 0xd6, 0x02, 0xd4, 0x54, 0xcc, 0xf4, 0x61, + 0xa9, 0x77, 0x1a, 0x32, 0x91, 0x86, 0x93, 0xb4, 0xc6, 0x26, 0x31, 0xa7, 0xba, 0x8e, 0x24, 0x0b, + 0x74, 0x1f, 0x16, 0x23, 0xe6, 0x06, 0xb6, 0x1b, 0x11, 0x4f, 0xdb, 0x39, 0x21, 0x98, 0xff, 0xb8, + 0x05, 0xed, 0xb2, 0xaf, 0xd0, 0x37, 0x70, 0x2b, 0x8c, 0x85, 0x2a, 0x0d, 0x89, 0xbd, 0x0f, 0xca, + 0xee, 0x28, 0x9e, 0x4f, 0x1b, 0x9d, 0x0a, 0xa1, 0x27, 0x50, 0xa7, 0x8c, 0x85, 0x6c, 0xfa, 0x4a, + 0xd5, 0x69, 0xb3, 0xfd, 0x06, 0x12, 0xb4, 0x33, 0x87, 0x13, 0x34, 0xfa, 0x0d, 0x34, 0x89, 0x3c, + 0x90, 0x95, 0x9c, 0x02, 0xa4, 0xad, 0x5a, 0x35, 0x28, 0x46, 0x5f, 0x1d, 0xe8, 0x39, 0xb4, 0x12, + 0x58, 0x96, 0x70, 0xb7, 0x67, 0x47, 0x4e, 0xc1, 0x3b, 0x3b, 0x73, 0x78, 0x89, 0x14, 0xdc, 0xf5, + 0x2d, 0x34, 0x13, 0x83, 0x2d, 0xa5, 0x64, 0xe9, 0x7a, 0x37, 0x03, 0x89, 0xcc, 0xb6, 0xd4, 0xf0, + 0x1c, 0x96, 0xed, 0xd0, 0x8f, 0x62, 0x41, 0x1d, 0x4b, 0x97, 0xd2, 0xf9, 0x6b, 0x68, 0xc1, 0xad, + 0x54, 0x6a, 0x98, 0x94, 0xd5, 0xaf, 0xa1, 0x1e, 0x9d, 0x11, 0x9e, 0x54, 0xb3, 0xd6, 0xe6, 0x6f, + 0xaf, 0x4a, 0xa0, 0xce, 0x0b, 0x89, 0xc6, 0x89, 0x90, 0x8c, 0x5f, 0x2e, 0x08, 0x93, 0x46, 0x10, + 0xa1, 0x6b, 0xf9, 0x7a, 0x27, 0x69, 0x48, 0x9d, 0xb4, 0x21, 0x75, 0x8e, 0xd2, 0x8e, 0x85, 0x17, + 0x35, 0xba, 0x27, 0xd0, 0x13, 0x68, 0xa4, 0x9d, 0x4e, 0x15, 0x75, 0x69, 0x79, 0x59, 0x70, 0x5b, + 0x03, 0x70, 0x06, 0x95, 0x3b, 0xda, 0xaa, 0x48, 0xa9, 0x1d, 0x6f, 0x5d, 0xbd, 0xa3, 0x46, 0xf7, + 0x54, 0xb2, 0xc5, 0x91, 0x93, 0x8a, 0x36, 0xae, 0x16, 0xd5, 0xe8, 0x9e, 0x40, 0x5b, 0xb0, 0x14, + 0x84, 0xb2, 0x6e, 0xd8, 0x24, 0x49, 0xd5, 0x45, 0x95, 0xaa, 0xf7, 0xcb, 0xd7, 0xbe, 0x9f, 0x03, + 0xe1, 0xa2, 0x08, 0x7a, 0x0a, 0xcd, 0x0b, 0xed, 0x4d, 0xcb, 0x75, 0x8c, 0xe6, 0xcc, 0xdb, 0xca, + 0xd5, 0x27, 0x48, 0xd1, 0x43, 0x07, 0xfd, 0x02, 0xab, 0x5c, 0x10, 0xd9, 0x79, 0xce, 0x48, 0x30, + 0xa6, 0x96, 0x43, 0x05, 0x71, 0x3d, 0x6e, 0xb4, 0x94, 0x92, 0xcf, 0x2e, 0xaf, 0x5b, 0x52, 0xa8, + 0xaf, 0x64, 0xb6, 0x13, 0x11, 0x8c, 0xf8, 0x14, 0x6d, 0x6b, 0x19, 0x96, 0x74, 0x38, 0x32, 0xca, + 0x63, 0x4f, 0x98, 0x3f, 0x43, 0xeb, 0xf0, 0x0d, 0x17, 0xd4, 0xcf, 0x22, 0xf6, 0x33, 0xb8, 0x93, + 0x15, 0x1f, 0x4b, 0x8f, 0x68, 0x3a, 0xd9, 0xdb, 0x74, 0x92, 0xc4, 0x8a, 0x2e, 0xf3, 0x5e, 0x76, + 0x26, 0x1e, 0x11, 0x3b, 0x6d, 0x55, 0x13, 0x82, 0xf9, 0xbf, 0x1a, 0xdc, 0x99, 0x6a, 0x48, 0xa8, + 0x0f, 0x35, 0x3f, 0x74, 0x92, 0x02, 0xd2, 0xda, 0xec, 0x5e, 0xd9, 0xc1, 0x72, 0x94, 0xd0, 0xa1, + 0x58, 0x09, 0xbf, 0xbd, 0xe0, 0xc8, 0x71, 0x27, 0xa0, 0x5c, 0xb8, 0xc1, 0x58, 0xe5, 0xca, 0x12, + 0x4e, 0x97, 0xe8, 0x19, 0xdc, 0xe6, 0xf6, 0x19, 0x75, 0x62, 0x2f, 0x09, 0x8e, 0xda, 0x95, 0xc1, + 0xd1, 0xcc, 0xf0, 0x3d, 0x81, 0x7e, 0x82, 0x0f, 0x22, 0xc2, 0x68, 0x20, 0xac, 0x20, 0x74, 0xa8, + 0x95, 0xf9, 0x43, 0x67, 0x44, 0x39, 0xa9, 0xf6, 0x43, 0x87, 0xce, 0xea, 0x48, 0x2b, 0x89, 0x92, + 0x02, 0x1b, 0xfd, 0x0c, 0x2b, 0x8c, 0x8e, 0x28, 0xa3, 0x81, 0x9d, 0xd7, 0xdc, 0x7e, 0xe7, 0x7e, + 0x87, 0x32, 0x35, 0x13, 0xe5, 0xdf, 0xc1, 0x32, 0x57, 0xf7, 0x3c, 0x29, 0x68, 0x77, 0x66, 0x57, + 0xdd, 0x62, 0x38, 0xe0, 0x16, 0x2f, 0x86, 0xc7, 0xd7, 0x70, 0x3b, 0x37, 0x35, 0x73, 0x03, 0x95, + 0x5b, 0x99, 0x32, 0xaf, 0xa7, 0x21, 0xc3, 0x6d, 0xdc, 0x4c, 0xe1, 0x43, 0x87, 0x9b, 0xe3, 0x5c, + 0x5f, 0x94, 0xb7, 0x89, 0x00, 0x16, 0xf6, 0x7a, 0xfb, 0xc7, 0xbd, 0xdd, 0xf6, 0x1c, 0x5a, 0x82, + 0xc5, 0xc3, 0xfe, 0xce, 0x60, 0xfb, 0x78, 0x77, 0xb0, 0xdd, 0xae, 0x48, 0xd6, 0xe1, 0x8f, 0x87, + 0x47, 0x83, 0xbd, 0x76, 0x15, 0xdd, 0x86, 0x06, 0x1e, 0xec, 0xf6, 0x8e, 0xf7, 0xfb, 0x3b, 0xed, + 0x79, 0x84, 0xa0, 0xd5, 0xdf, 0x19, 0xee, 0x6e, 0x5b, 0x2f, 0x0f, 0xf0, 0x1f, 0x9f, 0xef, 0x1e, + 0xbc, 0x6c, 0xd7, 0xa4, 0x30, 0x1e, 0xf4, 0x0f, 0x4e, 0x06, 0x78, 0xb0, 0xdd, 0xae, 0x9b, 0x27, + 0xd0, 0xce, 0xa7, 0xa8, 0xea, 0xc1, 0x53, 0xb9, 0x5d, 0x79, 0xe7, 0xdc, 0x36, 0xff, 0xde, 0xc8, + 0x9d, 0xe0, 0x30, 0x19, 0x13, 0x9a, 0xc9, 0x40, 0x6a, 0x45, 0x1e, 0x09, 0x2e, 0xe9, 0xbd, 0xf9, + 0x6c, 0x4f, 0xd0, 0x2f, 0x3c, 0x12, 0xa0, 0x27, 0xd9, 0x74, 0x5c, 0xbd, 0x4e, 0x49, 0x4f, 0x27, + 0xe4, 0xf7, 0x9b, 0x03, 0xd1, 0x4e, 0xd9, 0x0f, 0xf5, 0xd9, 0xe3, 0x4d, 0xd9, 0x81, 0xb2, 0xbb, + 0x15, 0x2b, 0xdd, 0xc7, 0xd0, 0x74, 0x5c, 0x4e, 0x4e, 0x3d, 0x6a, 0x11, 0xcf, 0x53, 0xd5, 0xbd, + 0x21, 0xdb, 0x97, 0x26, 0xf6, 0x3c, 0x0f, 0x75, 0x60, 0xc1, 0x23, 0xa7, 0xd4, 0xe3, 0xba, 0x84, + 0xaf, 0x4d, 0x75, 0x79, 0xc5, 0xc5, 0x1a, 0x85, 0x9e, 0x41, 0x93, 0x04, 0x41, 0x28, 0xb4, 0x69, + 0x49, 0xf1, 0xbe, 0x37, 0xd5, 0x75, 0x27, 0x10, 0x9c, 0xc7, 0xa3, 0x21, 0xb4, 0xd3, 0x67, 0x97, + 0x65, 0x87, 0x81, 0xa0, 0xaf, 0x85, 0xea, 0xf1, 0x85, 0x40, 0x57, 0xbe, 0x3d, 0xd4, 0xb0, 0x7e, + 0x82, 0xc2, 0xcb, 0xbc, 0x48, 0x40, 0x5f, 0xc2, 0x22, 0x89, 0xc5, 0x99, 0xc5, 0x42, 0x8f, 0xea, + 0x2c, 0x34, 0xa6, 0xec, 0x88, 0xc5, 0x19, 0x0e, 0x3d, 0xaa, 0xae, 0xa7, 0x41, 0xf4, 0x0a, 0xed, + 0x01, 0x7a, 0x15, 0x13, 0x4f, 0x1a, 0x11, 0x8e, 0x2c, 0x4e, 0xd9, 0xb9, 0x6b, 0x53, 0x9d, 0x70, + 0x0f, 0x4b, 0x76, 0xfc, 0x29, 0x01, 0x1e, 0x8c, 0x0e, 0x13, 0x18, 0x6e, 0xbf, 0x2a, 0x51, 0xe4, + 0x93, 0xc4, 0x27, 0xaf, 0xad, 0x88, 0x30, 0xe2, 0x79, 0xd4, 0x73, 0xb9, 0x6f, 0xa0, 0x8d, 0xca, + 0xe3, 0x3a, 0x6e, 0xf9, 0xe4, 0xf5, 0x8b, 0x09, 0x15, 0xfd, 0x00, 0x6b, 0x8c, 0x5c, 0x58, 0xb9, + 0x89, 0x43, 0x3a, 0x61, 0xe4, 0x8e, 0x8d, 0x15, 0xb5, 0xf7, 0x27, 0x65, 0xfb, 0x31, 0xb9, 0x38, + 0xc8, 0x46, 0x8d, 0xbe, 0x82, 0xe2, 0x15, 0x36, 0x4d, 0x44, 0x2f, 0x00, 0x4d, 0x3f, 0xd7, 0x8d, + 0xd5, 0xd9, 0xc1, 0xa7, 0xbb, 0x43, 0x2f, 0x03, 0xe2, 0x3b, 0x76, 0x99, 0x84, 0xbe, 0x85, 0x25, + 0x37, 0x10, 0x94, 0xb1, 0x38, 0x12, 0xee, 0xa9, 0x47, 0x8d, 0x0f, 0x2e, 0x29, 0xc5, 0x5b, 0x61, + 0xe8, 0x9d, 0xc8, 0x49, 0x15, 0x17, 0x05, 0x66, 0xbd, 0xd4, 0xd6, 0x66, 0xbd, 0xd4, 0xd0, 0x63, + 0xa8, 0xd1, 0xe0, 0x9c, 0x1b, 0x1f, 0xaa, 0x1d, 0x56, 0xa7, 0x72, 0x25, 0x38, 0xe7, 0x58, 0x21, + 0xe4, 0xab, 0x4b, 0x90, 0x31, 0x37, 0x8c, 0x8d, 0x79, 0xf9, 0xea, 0x92, 0xdf, 0x5b, 0x06, 0xac, + 0xe5, 0xa3, 0xde, 0x92, 0xca, 0x99, 0xeb, 0x50, 0xfe, 0x7d, 0xad, 0x51, 0x6b, 0xd7, 0x4d, 0x1f, + 0xee, 0x66, 0xd9, 0x76, 0x44, 0x99, 0xef, 0x06, 0xb9, 0x87, 0xf7, 0xfb, 0xbc, 0x59, 0xb2, 0x51, + 0xbb, 0x9a, 0x1b, 0xb5, 0xcd, 0xfb, 0xb0, 0x3e, 0x6b, 0xbb, 0xe4, 0x21, 0x67, 0xfe, 0x02, 0x0f, + 0x67, 0x3d, 0xc6, 0xe4, 0x4d, 0xde, 0xc4, 0x83, 0xec, 0xaf, 0x55, 0xd8, 0xb8, 0x5c, 0xbf, 0x7e, + 0x4c, 0x3e, 0x29, 0x4f, 0xf6, 0x1f, 0x96, 0x3d, 0x7e, 0xcc, 0xbc, 0x74, 0xa4, 0x9f, 0x0c, 0xf4, + 0x5f, 0x94, 0x8a, 0xe1, 0x5b, 0xa5, 0xd2, 0x52, 0xf8, 0x14, 0x9a, 0xa3, 0xd8, 0xf3, 0xae, 0x3b, + 0x19, 0x63, 0x90, 0xe8, 0x6c, 0x22, 0xbe, 0xad, 0x64, 0x53, 0x63, 0x6b, 0x57, 0x09, 0xab, 0xad, + 0x92, 0xd4, 0xe0, 0xe6, 0xdf, 0xf2, 0x7f, 0x5b, 0x8e, 0xd5, 0x00, 0x79, 0x13, 0x97, 0xfe, 0x7b, + 0xa8, 0xab, 0xb9, 0x4d, 0x39, 0xa1, 0x35, 0xdd, 0x9e, 0x8b, 0x13, 0x1f, 0x4e, 0xc0, 0xe6, 0xbf, + 0x2b, 0x70, 0xef, 0x2d, 0xb3, 0xe0, 0x44, 0x6b, 0xe5, 0x1d, 0xb4, 0xa2, 0xaf, 0xa0, 0x19, 0xda, + 0x76, 0xcc, 0x58, 0x32, 0x2b, 0x55, 0xaf, 0x9c, 0x95, 0x20, 0x85, 0xf7, 0x44, 0x71, 0x42, 0x9b, + 0x2f, 0x3f, 0x09, 0xef, 0xe6, 0xfe, 0x45, 0xa4, 0xce, 0xd3, 0x21, 0x7c, 0x0e, 0xe6, 0xac, 0x10, + 0xdb, 0x4b, 0x7e, 0xb5, 0xdd, 0x50, 0x62, 0x39, 0x34, 0x12, 0x67, 0xea, 0x44, 0x75, 0x9c, 0x2c, + 0xcc, 0x7d, 0xf8, 0xe4, 0xad, 0xfb, 0xea, 0xe8, 0x7e, 0x04, 0x35, 0x1e, 0x65, 0x8d, 0x7e, 0xa5, + 0xdc, 0x55, 0x22, 0x12, 0x60, 0x05, 0xf8, 0xf4, 0x1b, 0x68, 0x15, 0xdd, 0x8a, 0x56, 0xa1, 0x3d, + 0xf8, 0x61, 0xd0, 0x3f, 0x3e, 0x1a, 0x1e, 0xec, 0x5b, 0xbd, 0xfe, 0xd1, 0xf0, 0x64, 0xd0, 0x9e, + 0x43, 0x6b, 0x80, 0x72, 0x54, 0xdc, 0xdf, 0x19, 0x9e, 0xc8, 0xf9, 0x67, 0xeb, 0xd9, 0x4f, 0x5f, + 0x8d, 0x5d, 0x71, 0x16, 0x9f, 0x76, 0xec, 0xd0, 0xef, 0xaa, 0x6d, 0x42, 0x36, 0x4e, 0x3e, 0xba, + 0xd9, 0x9f, 0xc6, 0x31, 0x0d, 0xba, 0xd1, 0xe9, 0xef, 0xc6, 0x61, 0xb7, 0xf8, 0xd3, 0xf4, 0x74, + 0x41, 0xdd, 0xcf, 0x17, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xd6, 0xfa, 0xb5, 0xe8, 0xa6, 0x15, + 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/launch_plan.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/launch_plan.pb.go index 5e7b95f8ca..1a5a48e613 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/launch_plan.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/launch_plan.pb.go @@ -757,7 +757,7 @@ func (m *ActiveLaunchPlanRequest) GetId() *NamedEntityIdentifier { return nil } -// Represents a request structure to list active launch plans within a project/domain. +// Represents a request structure to list active launch plans within a project/domain and optional org. // See :ref:`ref_flyteidl.admin.LaunchPlan` for more details type ActiveLaunchPlanListRequest struct { // Name of the project that contains the identifiers. @@ -775,7 +775,9 @@ type ActiveLaunchPlanListRequest struct { Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"` // Sort ordering. // +optional - SortBy *Sort `protobuf:"bytes,5,opt,name=sort_by,json=sortBy,proto3" json:"sort_by,omitempty"` + SortBy *Sort `protobuf:"bytes,5,opt,name=sort_by,json=sortBy,proto3" json:"sort_by,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,6,opt,name=org,proto3" json:"org,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -841,6 +843,13 @@ func (m *ActiveLaunchPlanListRequest) GetSortBy() *Sort { return nil } +func (m *ActiveLaunchPlanListRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + func init() { proto.RegisterEnum("flyteidl.admin.LaunchPlanState", LaunchPlanState_name, LaunchPlanState_value) proto.RegisterType((*LaunchPlanCreateRequest)(nil), "flyteidl.admin.LaunchPlanCreateRequest") @@ -860,79 +869,80 @@ func init() { func init() { proto.RegisterFile("flyteidl/admin/launch_plan.proto", fileDescriptor_368a863574f5e699) } var fileDescriptor_368a863574f5e699 = []byte{ - // 1183 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdd, 0x8e, 0x1b, 0x35, - 0x14, 0x26, 0x69, 0xf6, 0xef, 0x6c, 0x37, 0x9b, 0xba, 0x65, 0x3b, 0x4d, 0x4b, 0xbb, 0x04, 0x21, - 0x16, 0x68, 0x13, 0xa9, 0xd0, 0x8b, 0xfe, 0x49, 0x64, 0xd3, 0xbd, 0x88, 0xe8, 0xcf, 0xe2, 0x2d, - 0x15, 0xe2, 0x66, 0xe4, 0xcc, 0x9c, 0x24, 0xa6, 0x9e, 0xf1, 0xd4, 0xf6, 0xec, 0x66, 0xc5, 0x0b, - 0x21, 0xde, 0x81, 0x47, 0xe0, 0x82, 0x37, 0x42, 0xe3, 0xf1, 0x4c, 0x92, 0xc9, 0x56, 0x05, 0x24, - 0xae, 0x66, 0xec, 0xf3, 0x7d, 0x9f, 0x7d, 0x8e, 0x8f, 0xcf, 0x31, 0xec, 0x8f, 0xc5, 0xb9, 0x41, - 0x1e, 0x8a, 0x1e, 0x0b, 0x23, 0x1e, 0xf7, 0x04, 0x4b, 0xe3, 0x60, 0xea, 0x27, 0x82, 0xc5, 0xdd, - 0x44, 0x49, 0x23, 0x49, 0xb3, 0x40, 0x74, 0x2d, 0xa2, 0xfd, 0x49, 0xc9, 0x08, 0xa4, 0xc2, 0x1e, - 0xce, 0x30, 0x48, 0x0d, 0x97, 0x0e, 0xde, 0xbe, 0xb5, 0x6c, 0x16, 0xdc, 0xa0, 0x62, 0x42, 0x3b, - 0xeb, 0xed, 0x65, 0x2b, 0x0f, 0x31, 0x36, 0x7c, 0xcc, 0x51, 0x39, 0x7b, 0x45, 0x9c, 0xc7, 0x06, - 0xd5, 0x98, 0x05, 0x78, 0xb1, 0xb8, 0xc6, 0x20, 0x55, 0xdc, 0x9c, 0xaf, 0x90, 0x73, 0x5f, 0x74, - 0x30, 0xc5, 0x30, 0x15, 0x05, 0xf9, 0x66, 0xc5, 0x1c, 0xc8, 0x28, 0x2a, 0xb7, 0x7d, 0x63, 0x22, - 0xe5, 0x44, 0x60, 0xcf, 0x8e, 0x46, 0xe9, 0xb8, 0xc7, 0xe2, 0x42, 0xf6, 0x4e, 0xd5, 0x64, 0x78, - 0x84, 0xda, 0xb0, 0x28, 0x29, 0x9c, 0xaa, 0x02, 0xce, 0x14, 0x4b, 0x12, 0x54, 0xce, 0xe9, 0xce, - 0x0c, 0xae, 0x3f, 0xb7, 0x61, 0x3d, 0x16, 0x2c, 0x1e, 0x28, 0x64, 0x06, 0x29, 0xbe, 0x4b, 0x51, - 0x1b, 0xf2, 0x25, 0xd4, 0x79, 0xe8, 0xd5, 0xf6, 0x6b, 0x07, 0xdb, 0xf7, 0x6f, 0x74, 0xcb, 0x48, - 0x67, 0xde, 0x75, 0x87, 0x65, 0x70, 0x68, 0x9d, 0x87, 0xe4, 0x3e, 0x34, 0x74, 0x82, 0x81, 0x57, - 0xb7, 0xe0, 0xdb, 0xdd, 0xe5, 0x63, 0xe9, 0xce, 0x57, 0x38, 0x49, 0x30, 0xa0, 0x16, 0xdb, 0x69, - 0x83, 0xb7, 0xba, 0xb2, 0x4e, 0x64, 0xac, 0xb1, 0xf3, 0x5b, 0x0d, 0x60, 0x6e, 0xfc, 0x9f, 0x77, - 0x42, 0x1e, 0xc3, 0x46, 0x20, 0xa4, 0x4e, 0x15, 0x7a, 0x97, 0x2c, 0xed, 0xd3, 0xf7, 0xd3, 0x06, - 0x39, 0x90, 0x16, 0x8c, 0x0e, 0x42, 0x73, 0x6e, 0x7d, 0xce, 0xb5, 0x21, 0x4f, 0xe1, 0xf2, 0x42, - 0xa6, 0x6a, 0xaf, 0xb6, 0x7f, 0xe9, 0x60, 0xfb, 0x7e, 0xfb, 0xfd, 0x9a, 0x74, 0x5b, 0x94, 0xff, - 0x9a, 0x5c, 0x83, 0x35, 0x23, 0xdf, 0x62, 0x6c, 0x5d, 0xd8, 0xa2, 0xf9, 0xa0, 0x73, 0x0a, 0x8d, - 0x7e, 0x6a, 0xa6, 0xe4, 0x2e, 0x10, 0xa6, 0x75, 0x1a, 0xb1, 0x91, 0x40, 0x9f, 0xb3, 0xc8, 0x57, - 0x52, 0xa0, 0x0d, 0xcd, 0x16, 0x6d, 0x95, 0x96, 0x21, 0x8b, 0xa8, 0x14, 0x48, 0x9e, 0x40, 0xfb, - 0x6d, 0x3a, 0x42, 0x15, 0xa3, 0x41, 0xed, 0x6b, 0x54, 0xa7, 0x3c, 0x40, 0x9f, 0x05, 0x81, 0x4c, - 0x63, 0xe3, 0x16, 0xf0, 0xe6, 0x88, 0x93, 0x1c, 0xd0, 0xcf, 0xed, 0x8f, 0xea, 0x5e, 0xad, 0xf3, - 0xc7, 0xc6, 0xa2, 0x7f, 0x59, 0xd0, 0xc8, 0x23, 0xd8, 0x3e, 0x93, 0xea, 0xed, 0x58, 0xc8, 0x33, - 0xff, 0x9f, 0x1c, 0x0b, 0x14, 0xe8, 0x61, 0x48, 0xbe, 0x87, 0xdd, 0x6c, 0xde, 0x9c, 0xfb, 0x11, - 0x1a, 0x16, 0x32, 0xc3, 0xdc, 0x49, 0x75, 0xde, 0x1f, 0x9e, 0x17, 0x0e, 0x49, 0x9b, 0x39, 0xb5, - 0x18, 0x93, 0x43, 0x68, 0x86, 0x38, 0x66, 0xa9, 0x30, 0x3e, 0x8f, 0x93, 0xd4, 0x68, 0x77, 0x7c, - 0x37, 0x2b, 0x7b, 0x39, 0x66, 0x8a, 0x45, 0x68, 0x50, 0xbd, 0x60, 0x09, 0xdd, 0x71, 0x94, 0xa1, - 0x65, 0x90, 0x27, 0x70, 0x79, 0xcc, 0x67, 0x18, 0x16, 0x0a, 0x8d, 0x0b, 0xbd, 0x79, 0x9e, 0x57, - 0x8a, 0x8c, 0xbf, 0x6d, 0xe1, 0x8e, 0xbd, 0x07, 0x0d, 0x1b, 0xff, 0xb5, 0x2c, 0x92, 0x87, 0x75, - 0xaf, 0x46, 0xed, 0x98, 0x74, 0x61, 0x5d, 0xb0, 0x11, 0x0a, 0xed, 0xad, 0x5b, 0xbd, 0xbd, 0x55, - 0xef, 0x32, 0x2b, 0x75, 0x28, 0xf2, 0x14, 0xb6, 0x59, 0x1c, 0x4b, 0xc3, 0xb2, 0x62, 0xa5, 0xbd, - 0x8d, 0xaa, 0x1b, 0x39, 0xa9, 0x3f, 0x87, 0xd0, 0x45, 0x3c, 0xb9, 0x0b, 0x0d, 0x96, 0x9a, 0xa9, - 0xb7, 0x69, 0x79, 0xd7, 0x56, 0x78, 0xa9, 0x99, 0xe6, 0x9b, 0xcb, 0x50, 0xe4, 0x21, 0x6c, 0x65, - 0xdf, 0x3c, 0x73, 0xb6, 0x2c, 0xc5, 0xbb, 0x88, 0x92, 0x65, 0x90, 0xa5, 0x6d, 0x32, 0x37, 0x22, - 0x43, 0x68, 0x15, 0x75, 0xcd, 0x0f, 0x64, 0x6c, 0x70, 0x66, 0x3c, 0xa8, 0xde, 0x34, 0x1b, 0xb1, - 0x13, 0x07, 0x1b, 0xe4, 0x28, 0xba, 0xab, 0x97, 0x27, 0xc8, 0x0b, 0x20, 0xef, 0x52, 0x26, 0x32, - 0x25, 0x39, 0x2e, 0x52, 0xd3, 0x6b, 0x59, 0xb1, 0x3b, 0x15, 0xb1, 0x1f, 0x72, 0xe0, 0xab, 0xb1, - 0x4b, 0x50, 0xda, 0x7a, 0x57, 0x99, 0x21, 0x3f, 0xc1, 0x9e, 0x62, 0x67, 0xbe, 0x4c, 0x4d, 0x92, - 0x1a, 0x3f, 0x4b, 0x8f, 0x6c, 0x83, 0x63, 0x3e, 0xf1, 0xae, 0x58, 0xc9, 0xcf, 0xaa, 0x1e, 0x52, - 0x76, 0xf6, 0xca, 0x82, 0x9f, 0x31, 0xc3, 0x06, 0x16, 0x4a, 0xaf, 0xaa, 0xd5, 0x49, 0xf2, 0x05, - 0xec, 0x46, 0x6c, 0xe6, 0x27, 0x4c, 0x31, 0x21, 0x50, 0x70, 0x1d, 0x79, 0x64, 0xbf, 0x76, 0xb0, - 0x46, 0x9b, 0x11, 0x9b, 0x1d, 0xcf, 0x67, 0xc9, 0x77, 0xb0, 0x63, 0x7b, 0x82, 0x4a, 0x13, 0xc3, - 0x47, 0x02, 0xbd, 0xab, 0x76, 0xe5, 0x76, 0x37, 0x2f, 0xc1, 0xdd, 0xa2, 0x04, 0x77, 0x0f, 0xa5, - 0x14, 0x6f, 0x98, 0x48, 0x91, 0x2e, 0x13, 0xb2, 0xa5, 0xe4, 0x29, 0xaa, 0x33, 0xc5, 0x0d, 0xfa, - 0x01, 0x0b, 0xa6, 0xe8, 0x5d, 0xdb, 0xaf, 0x1d, 0x6c, 0xd2, 0x66, 0x39, 0x3d, 0xc8, 0x66, 0xc9, - 0x01, 0x34, 0x30, 0x3e, 0xd5, 0xde, 0xc7, 0x17, 0x1f, 0xf8, 0x51, 0x7c, 0xaa, 0xa9, 0x45, 0x74, - 0xfe, 0xac, 0xc3, 0x95, 0x95, 0xea, 0x45, 0x1e, 0xc0, 0x9a, 0x36, 0xcc, 0xe4, 0x85, 0xa3, 0xb9, - 0x18, 0xef, 0x95, 0x32, 0x99, 0xc1, 0x68, 0x8e, 0x26, 0xcf, 0x60, 0x17, 0x67, 0x09, 0x06, 0x66, - 0x7e, 0x5f, 0xea, 0x1f, 0xbe, 0x71, 0xcd, 0x82, 0xe3, 0x2e, 0xcd, 0x11, 0xb4, 0x4a, 0x95, 0xfc, - 0xbc, 0x8a, 0x8b, 0xdb, 0xae, 0xc8, 0xbc, 0x61, 0x8a, 0x67, 0xe5, 0x2c, 0x53, 0x29, 0x57, 0xce, - 0x0f, 0x48, 0x93, 0x87, 0x00, 0x81, 0xed, 0x1a, 0xa1, 0xcf, 0x8c, 0xbb, 0xb7, 0xab, 0xb1, 0x7e, - 0x5d, 0xf4, 0x43, 0xba, 0xe5, 0xd0, 0x7d, 0x93, 0x51, 0xd3, 0x24, 0x2c, 0xa8, 0x6b, 0x1f, 0xa6, - 0x3a, 0x74, 0xdf, 0x74, 0xfe, 0xaa, 0x01, 0x59, 0x2d, 0x4d, 0xe4, 0x5b, 0xd8, 0x2c, 0x3a, 0xba, - 0x2b, 0x88, 0x2b, 0x57, 0xea, 0xc4, 0xd9, 0x69, 0x89, 0x24, 0x87, 0xb0, 0x13, 0xcb, 0xac, 0x4a, - 0x06, 0xee, 0xe2, 0xd7, 0x6d, 0xab, 0xb8, 0x55, 0xa5, 0xbe, 0x5c, 0x00, 0xd1, 0x65, 0x0a, 0xe9, - 0xc3, 0x15, 0xd7, 0x6d, 0x02, 0x19, 0x87, 0x3c, 0xd7, 0xb9, 0xe4, 0xf2, 0xa2, 0xea, 0x52, 0x3f, - 0x3e, 0xa7, 0xad, 0x1c, 0x3e, 0x28, 0xd1, 0x9d, 0x5f, 0x17, 0xdf, 0x00, 0x3f, 0x5a, 0x57, 0xff, - 0xc3, 0x1b, 0xa0, 0xcc, 0xa9, 0xfa, 0xbf, 0xc9, 0xa9, 0xe5, 0x67, 0x40, 0xb1, 0xb8, 0x7b, 0x06, - 0x1c, 0xc3, 0xf5, 0x7e, 0x60, 0xf8, 0x29, 0x2e, 0xf4, 0x4a, 0xb7, 0xb1, 0x07, 0x0b, 0x1b, 0xfb, - 0x7c, 0x25, 0x5e, 0x2c, 0xc2, 0xf0, 0xc8, 0x36, 0x8b, 0xe5, 0x4d, 0x76, 0x7e, 0xaf, 0xc1, 0xcd, - 0xaa, 0x64, 0xd6, 0xb4, 0x0b, 0x59, 0x0f, 0x36, 0x12, 0x25, 0x7f, 0xc1, 0xc0, 0xb8, 0x9e, 0x5a, - 0x0c, 0xc9, 0x1e, 0xac, 0x87, 0x32, 0x62, 0xbc, 0xe8, 0xcb, 0x6e, 0x94, 0xb5, 0x6b, 0xc1, 0x23, - 0x6e, 0x6c, 0xcc, 0x77, 0x68, 0x3e, 0x98, 0x37, 0xf1, 0xc6, 0x42, 0x13, 0x27, 0xf7, 0x60, 0x43, - 0x4b, 0x65, 0xfc, 0xd1, 0xb9, 0x4b, 0xba, 0x95, 0x9b, 0x7b, 0x22, 0x95, 0xa1, 0xeb, 0x19, 0xe8, - 0xf0, 0xfc, 0xab, 0xaf, 0x61, 0xb7, 0x12, 0x34, 0x72, 0x19, 0x36, 0x87, 0x2f, 0xfb, 0x83, 0xd7, - 0xc3, 0x37, 0x47, 0xad, 0x8f, 0x08, 0xc0, 0xba, 0xfb, 0xaf, 0x1d, 0x3e, 0xfd, 0xf9, 0xf1, 0x84, - 0x9b, 0x69, 0x3a, 0xea, 0x06, 0x32, 0xea, 0x59, 0x59, 0xa9, 0x26, 0xf9, 0x4f, 0xaf, 0x7c, 0x5d, - 0x4e, 0x30, 0xee, 0x25, 0xa3, 0x7b, 0x13, 0xd9, 0x5b, 0x7e, 0x70, 0x8e, 0xd6, 0x6d, 0x8e, 0x7c, - 0xf3, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0d, 0xba, 0x5e, 0x97, 0x74, 0x0b, 0x00, 0x00, + // 1195 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdb, 0x72, 0xdb, 0x36, + 0x13, 0xfe, 0x25, 0xcb, 0xa7, 0x75, 0x2c, 0x2b, 0x48, 0x7e, 0x87, 0x51, 0xf2, 0x27, 0xfe, 0xd5, + 0xe9, 0xd4, 0x6d, 0x13, 0x69, 0x26, 0x6d, 0x2e, 0x72, 0x9a, 0xa9, 0xac, 0xf8, 0x42, 0xd3, 0x1c, + 0x5c, 0x38, 0xcd, 0x74, 0x7a, 0xc3, 0x81, 0xc8, 0x95, 0x84, 0x06, 0x24, 0x18, 0x00, 0xb4, 0xe5, + 0xe9, 0x0b, 0xf5, 0x21, 0xda, 0x47, 0xe8, 0x45, 0xdf, 0xa8, 0x43, 0x10, 0xa4, 0x24, 0xca, 0x99, + 0xb4, 0x9d, 0xe9, 0x15, 0x09, 0xec, 0xf7, 0x2d, 0x76, 0x17, 0x7b, 0x00, 0x1c, 0x8c, 0xc5, 0x85, + 0x41, 0x1e, 0x8a, 0x1e, 0x0b, 0x23, 0x1e, 0xf7, 0x04, 0x4b, 0xe3, 0x60, 0xea, 0x27, 0x82, 0xc5, + 0xdd, 0x44, 0x49, 0x23, 0x49, 0xb3, 0x40, 0x74, 0x2d, 0xa2, 0xfd, 0xbf, 0x92, 0x11, 0x48, 0x85, + 0x3d, 0x9c, 0x61, 0x90, 0x1a, 0x2e, 0x1d, 0xbc, 0x7d, 0x7b, 0x59, 0x2c, 0xb8, 0x41, 0xc5, 0x84, + 0x76, 0xd2, 0x3b, 0xcb, 0x52, 0x1e, 0x62, 0x6c, 0xf8, 0x98, 0xa3, 0x72, 0xf2, 0x8a, 0x72, 0x1e, + 0x1b, 0x54, 0x63, 0x16, 0xe0, 0xe5, 0xca, 0x35, 0x06, 0xa9, 0xe2, 0xe6, 0x62, 0x85, 0x9c, 0xfb, + 0xa2, 0x83, 0x29, 0x86, 0xa9, 0x28, 0xc8, 0xb7, 0x2a, 0xe2, 0x40, 0x46, 0x51, 0x69, 0xf6, 0xcd, + 0x89, 0x94, 0x13, 0x81, 0x3d, 0xbb, 0x1a, 0xa5, 0xe3, 0x1e, 0x8b, 0x0b, 0xb5, 0x77, 0xab, 0x22, + 0xc3, 0x23, 0xd4, 0x86, 0x45, 0x49, 0xe1, 0x54, 0x15, 0x70, 0xae, 0x58, 0x92, 0xa0, 0x72, 0x4e, + 0x77, 0x66, 0x70, 0xe3, 0x85, 0x0d, 0xeb, 0x89, 0x60, 0xf1, 0x40, 0x21, 0x33, 0x48, 0xf1, 0x7d, + 0x8a, 0xda, 0x90, 0xcf, 0xa1, 0xce, 0x43, 0xaf, 0x76, 0x50, 0x3b, 0xdc, 0x79, 0x70, 0xb3, 0x5b, + 0x46, 0x3a, 0xf3, 0xae, 0x3b, 0x2c, 0x83, 0x43, 0xeb, 0x3c, 0x24, 0x0f, 0xa0, 0xa1, 0x13, 0x0c, + 0xbc, 0xba, 0x05, 0xdf, 0xe9, 0x2e, 0x5f, 0x4b, 0x77, 0x7e, 0xc2, 0x69, 0x82, 0x01, 0xb5, 0xd8, + 0x4e, 0x1b, 0xbc, 0xd5, 0x93, 0x75, 0x22, 0x63, 0x8d, 0x9d, 0x5f, 0x6a, 0x00, 0x73, 0xe1, 0xbf, + 0x6c, 0x09, 0x79, 0x02, 0x9b, 0x81, 0x90, 0x3a, 0x55, 0xe8, 0xad, 0x59, 0xda, 0xff, 0x3f, 0x4c, + 0x1b, 0xe4, 0x40, 0x5a, 0x30, 0x3a, 0x08, 0xcd, 0xb9, 0xf4, 0x05, 0xd7, 0x86, 0x3c, 0x83, 0x2b, + 0x0b, 0x99, 0xaa, 0xbd, 0xda, 0xc1, 0xda, 0xe1, 0xce, 0x83, 0xf6, 0x87, 0x75, 0xd2, 0x1d, 0x51, + 0xfe, 0x6b, 0x72, 0x1d, 0xd6, 0x8d, 0x7c, 0x87, 0xb1, 0x75, 0x61, 0x9b, 0xe6, 0x8b, 0xce, 0x19, + 0x34, 0xfa, 0xa9, 0x99, 0x92, 0x7b, 0x40, 0x98, 0xd6, 0x69, 0xc4, 0x46, 0x02, 0x7d, 0xce, 0x22, + 0x5f, 0x49, 0x81, 0x36, 0x34, 0xdb, 0xb4, 0x55, 0x4a, 0x86, 0x2c, 0xa2, 0x52, 0x20, 0x79, 0x0a, + 0xed, 0x77, 0xe9, 0x08, 0x55, 0x8c, 0x06, 0xb5, 0xaf, 0x51, 0x9d, 0xf1, 0x00, 0x7d, 0x16, 0x04, + 0x32, 0x8d, 0x8d, 0x3b, 0xc0, 0x9b, 0x23, 0x4e, 0x73, 0x40, 0x3f, 0x97, 0x3f, 0xae, 0x7b, 0xb5, + 0xce, 0x6f, 0x9b, 0x8b, 0xfe, 0x65, 0x41, 0x23, 0x8f, 0x61, 0xe7, 0x5c, 0xaa, 0x77, 0x63, 0x21, + 0xcf, 0xfd, 0xbf, 0x72, 0x2d, 0x50, 0xa0, 0x87, 0x21, 0xf9, 0x16, 0xf6, 0xb2, 0x7d, 0x73, 0xe1, + 0x47, 0x68, 0x58, 0xc8, 0x0c, 0x73, 0x37, 0xd5, 0xf9, 0x70, 0x78, 0x5e, 0x3a, 0x24, 0x6d, 0xe6, + 0xd4, 0x62, 0x4d, 0x8e, 0xa0, 0x19, 0xe2, 0x98, 0xa5, 0xc2, 0xf8, 0x3c, 0x4e, 0x52, 0xa3, 0xdd, + 0xf5, 0xdd, 0xaa, 0xd8, 0x72, 0xc2, 0x14, 0x8b, 0xd0, 0xa0, 0x7a, 0xc9, 0x12, 0xba, 0xeb, 0x28, + 0x43, 0xcb, 0x20, 0x4f, 0xe1, 0xca, 0x98, 0xcf, 0x30, 0x2c, 0x34, 0x34, 0x2e, 0xf5, 0xe6, 0x45, + 0xde, 0x29, 0x32, 0xfe, 0x8e, 0x85, 0x3b, 0xf6, 0x3e, 0x34, 0x6c, 0xfc, 0xd7, 0xb3, 0x48, 0x1e, + 0xd5, 0xbd, 0x1a, 0xb5, 0x6b, 0xd2, 0x85, 0x0d, 0xc1, 0x46, 0x28, 0xb4, 0xb7, 0x61, 0xf5, 0xed, + 0xaf, 0x7a, 0x97, 0x49, 0xa9, 0x43, 0x91, 0x67, 0xb0, 0xc3, 0xe2, 0x58, 0x1a, 0x96, 0x35, 0x2b, + 0xed, 0x6d, 0x56, 0xdd, 0xc8, 0x49, 0xfd, 0x39, 0x84, 0x2e, 0xe2, 0xc9, 0x3d, 0x68, 0xb0, 0xd4, + 0x4c, 0xbd, 0x2d, 0xcb, 0xbb, 0xbe, 0xc2, 0x4b, 0xcd, 0x34, 0x37, 0x2e, 0x43, 0x91, 0x47, 0xb0, + 0x9d, 0x7d, 0xf3, 0xcc, 0xd9, 0xb6, 0x14, 0xef, 0x32, 0x4a, 0x96, 0x41, 0x96, 0xb6, 0xc5, 0xdc, + 0x8a, 0x0c, 0xa1, 0x55, 0xf4, 0x35, 0x3f, 0x90, 0xb1, 0xc1, 0x99, 0xf1, 0xa0, 0x5a, 0x69, 0x36, + 0x62, 0xa7, 0x0e, 0x36, 0xc8, 0x51, 0x74, 0x4f, 0x2f, 0x6f, 0x90, 0x97, 0x40, 0xde, 0xa7, 0x4c, + 0x64, 0x9a, 0xe4, 0xb8, 0x48, 0x4d, 0xaf, 0x65, 0x95, 0xdd, 0xad, 0x28, 0xfb, 0x2e, 0x07, 0xbe, + 0x1e, 0xbb, 0x04, 0xa5, 0xad, 0xf7, 0x95, 0x1d, 0xf2, 0x03, 0xec, 0x2b, 0x76, 0xee, 0xcb, 0xd4, + 0x24, 0xa9, 0xf1, 0xb3, 0xf4, 0xc8, 0x0c, 0x1c, 0xf3, 0x89, 0x77, 0xd5, 0xaa, 0xfc, 0xa4, 0xea, + 0x21, 0x65, 0xe7, 0xaf, 0x2d, 0xf8, 0x39, 0x33, 0x6c, 0x60, 0xa1, 0xf4, 0x9a, 0x5a, 0xdd, 0x24, + 0x9f, 0xc1, 0x5e, 0xc4, 0x66, 0x7e, 0xc2, 0x14, 0x13, 0x02, 0x05, 0xd7, 0x91, 0x47, 0x0e, 0x6a, + 0x87, 0xeb, 0xb4, 0x19, 0xb1, 0xd9, 0xc9, 0x7c, 0x97, 0x7c, 0x03, 0xbb, 0x76, 0x26, 0xa8, 0x34, + 0x31, 0x7c, 0x24, 0xd0, 0xbb, 0x66, 0x4f, 0x6e, 0x77, 0xf3, 0x16, 0xdc, 0x2d, 0x5a, 0x70, 0xf7, + 0x48, 0x4a, 0xf1, 0x96, 0x89, 0x14, 0xe9, 0x32, 0x21, 0x3b, 0x4a, 0x9e, 0xa1, 0x3a, 0x57, 0xdc, + 0xa0, 0x1f, 0xb0, 0x60, 0x8a, 0xde, 0xf5, 0x83, 0xda, 0xe1, 0x16, 0x6d, 0x96, 0xdb, 0x83, 0x6c, + 0x97, 0x1c, 0x42, 0x03, 0xe3, 0x33, 0xed, 0xfd, 0xf7, 0xf2, 0x0b, 0x3f, 0x8e, 0xcf, 0x34, 0xb5, + 0x88, 0xce, 0xef, 0x75, 0xb8, 0xba, 0xd2, 0xbd, 0xc8, 0x43, 0x58, 0xd7, 0x86, 0x99, 0xbc, 0x71, + 0x34, 0x17, 0xe3, 0xbd, 0xd2, 0x26, 0x33, 0x18, 0xcd, 0xd1, 0xe4, 0x39, 0xec, 0xe1, 0x2c, 0xc1, + 0xc0, 0xcc, 0xeb, 0xa5, 0xfe, 0xf1, 0x8a, 0x6b, 0x16, 0x1c, 0x57, 0x34, 0xc7, 0xd0, 0x2a, 0xb5, + 0xe4, 0xf7, 0x55, 0x14, 0x6e, 0xbb, 0xa2, 0xe6, 0x2d, 0x53, 0x3c, 0x6b, 0x67, 0x99, 0x96, 0xf2, + 0xe4, 0xfc, 0x82, 0x34, 0x79, 0x04, 0x10, 0xd8, 0xa9, 0x11, 0xfa, 0xcc, 0xb8, 0xba, 0x5d, 0x8d, + 0xf5, 0x9b, 0x62, 0x1e, 0xd2, 0x6d, 0x87, 0xee, 0x9b, 0x8c, 0x9a, 0x26, 0x61, 0x41, 0x5d, 0xff, + 0x38, 0xd5, 0xa1, 0xfb, 0xa6, 0xf3, 0x47, 0x0d, 0xc8, 0x6a, 0x6b, 0x22, 0x5f, 0xc3, 0x56, 0x31, + 0xd1, 0x5d, 0x43, 0x5c, 0x29, 0xa9, 0x53, 0x27, 0xa7, 0x25, 0x92, 0x1c, 0xc1, 0x6e, 0x2c, 0xb3, + 0x2e, 0x19, 0xb8, 0xc2, 0xaf, 0xdb, 0x51, 0x71, 0xbb, 0x4a, 0x7d, 0xb5, 0x00, 0xa2, 0xcb, 0x14, + 0xd2, 0x87, 0xab, 0x6e, 0xda, 0x04, 0x32, 0x0e, 0x79, 0xae, 0x67, 0xcd, 0xe5, 0x45, 0xd5, 0xa5, + 0x7e, 0x7c, 0x41, 0x5b, 0x39, 0x7c, 0x50, 0xa2, 0x3b, 0x3f, 0x2f, 0xbe, 0x01, 0xbe, 0xb7, 0xae, + 0xfe, 0x83, 0x37, 0x40, 0x99, 0x53, 0xf5, 0xbf, 0x93, 0x53, 0xcb, 0xcf, 0x80, 0xe2, 0x70, 0xf7, + 0x0c, 0x38, 0x81, 0x1b, 0xfd, 0xc0, 0xf0, 0x33, 0x5c, 0x98, 0x95, 0xce, 0xb0, 0x87, 0x0b, 0x86, + 0x7d, 0xba, 0x12, 0x2f, 0x16, 0x61, 0x78, 0x6c, 0x87, 0xc5, 0xb2, 0x91, 0x9d, 0x5f, 0x6b, 0x70, + 0xab, 0xaa, 0x32, 0x1b, 0xda, 0x85, 0x5a, 0x0f, 0x36, 0x13, 0x25, 0x7f, 0xc2, 0xc0, 0xb8, 0x99, + 0x5a, 0x2c, 0xc9, 0x3e, 0x6c, 0x84, 0x32, 0x62, 0xbc, 0x98, 0xcb, 0x6e, 0x95, 0x8d, 0x6b, 0xc1, + 0x23, 0x6e, 0x6c, 0xcc, 0x77, 0x69, 0xbe, 0x98, 0x0f, 0xf1, 0xc6, 0xc2, 0x10, 0x27, 0xf7, 0x61, + 0x53, 0x4b, 0x65, 0xfc, 0xd1, 0x85, 0x4b, 0xba, 0x95, 0xca, 0x3d, 0x95, 0xca, 0xd0, 0x8d, 0x0c, + 0x74, 0x74, 0x41, 0x5a, 0xb0, 0x26, 0xd5, 0xc4, 0x8e, 0x90, 0x6d, 0x9a, 0xfd, 0x7e, 0xf1, 0x25, + 0xec, 0x55, 0xc2, 0x48, 0xae, 0xc0, 0xd6, 0xf0, 0x55, 0x7f, 0xf0, 0x66, 0xf8, 0xf6, 0xb8, 0xf5, + 0x1f, 0x02, 0xb0, 0xe1, 0xfe, 0x6b, 0x47, 0xcf, 0x7e, 0x7c, 0x32, 0xe1, 0x66, 0x9a, 0x8e, 0xba, + 0x81, 0x8c, 0x7a, 0xf6, 0x20, 0xa9, 0x26, 0xf9, 0x4f, 0xaf, 0x7c, 0x6f, 0x4e, 0x30, 0xee, 0x25, + 0xa3, 0xfb, 0x13, 0xd9, 0x5b, 0x7e, 0x82, 0x8e, 0x36, 0x6c, 0xd6, 0x7c, 0xf5, 0x67, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x47, 0x12, 0xae, 0xfa, 0x86, 0x0b, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go index b721e43d73..93810d4040 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go @@ -724,19 +724,21 @@ func (*MatchingAttributes) XXX_OneofWrappers() []interface{} { } } -// Represents a custom set of attributes applied for either a domain; a domain and project; or -// domain, project and workflow name. +// Represents a custom set of attributes applied for either a domain (and optional org); a domain and project (and optional org); +// or domain, project and workflow name (and optional org). // These are used to override system level defaults for kubernetes cluster resource management, // default execution values, and more all across different levels of specificity. type MatchableAttributesConfiguration struct { - Attributes *MatchingAttributes `protobuf:"bytes,1,opt,name=attributes,proto3" json:"attributes,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` - Project string `protobuf:"bytes,3,opt,name=project,proto3" json:"project,omitempty"` - Workflow string `protobuf:"bytes,4,opt,name=workflow,proto3" json:"workflow,omitempty"` - LaunchPlan string `protobuf:"bytes,5,opt,name=launch_plan,json=launchPlan,proto3" json:"launch_plan,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Attributes *MatchingAttributes `protobuf:"bytes,1,opt,name=attributes,proto3" json:"attributes,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` + Project string `protobuf:"bytes,3,opt,name=project,proto3" json:"project,omitempty"` + Workflow string `protobuf:"bytes,4,opt,name=workflow,proto3" json:"workflow,omitempty"` + LaunchPlan string `protobuf:"bytes,5,opt,name=launch_plan,json=launchPlan,proto3" json:"launch_plan,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,6,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *MatchableAttributesConfiguration) Reset() { *m = MatchableAttributesConfiguration{} } @@ -799,6 +801,13 @@ func (m *MatchableAttributesConfiguration) GetLaunchPlan() string { return "" } +func (m *MatchableAttributesConfiguration) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Request all matching resource attributes for a resource type. // See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details type ListMatchableAttributesRequest struct { @@ -905,89 +914,90 @@ func init() { } var fileDescriptor_1d15bcabb02640f4 = []byte{ - // 1338 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0x59, 0x73, 0x1a, 0x47, - 0x10, 0x66, 0x75, 0x20, 0xd4, 0xc4, 0xb0, 0x1a, 0x5b, 0x12, 0x92, 0x62, 0x5b, 0xd9, 0x1c, 0x56, - 0x92, 0x32, 0xa4, 0x48, 0x1e, 0x9c, 0xc3, 0x55, 0x41, 0x78, 0x31, 0x94, 0x91, 0x90, 0x06, 0xf0, - 0x91, 0x97, 0xad, 0x61, 0x19, 0x96, 0x8d, 0xf6, 0xd2, 0xec, 0xac, 0x10, 0x95, 0x3f, 0x91, 0x87, - 0xe4, 0xa7, 0xe4, 0xa7, 0xe4, 0x3d, 0xef, 0xc9, 0x8f, 0x48, 0xed, 0x09, 0xac, 0xc0, 0xe5, 0xb7, - 0x99, 0x9e, 0xaf, 0x8f, 0xe9, 0xe9, 0xfe, 0x7a, 0xe0, 0xc9, 0xc8, 0x98, 0x72, 0xaa, 0x0f, 0x8d, - 0x0a, 0x19, 0x9a, 0xba, 0x55, 0x31, 0x09, 0x57, 0xc7, 0x64, 0x60, 0x50, 0x85, 0x51, 0xd7, 0xf6, - 0x98, 0x4a, 0xcb, 0x0e, 0xb3, 0xb9, 0x8d, 0x0a, 0x31, 0xb0, 0x1c, 0x00, 0x0f, 0x8f, 0x52, 0x8a, - 0xaa, 0x6d, 0x9a, 0xb6, 0x15, 0x82, 0x0f, 0xd3, 0x56, 0x55, 0xc3, 0x73, 0x39, 0x65, 0x0a, 0x71, - 0x5d, 0x5d, 0xb3, 0x4c, 0x6a, 0xf1, 0x08, 0xf8, 0x30, 0x01, 0xaa, 0x36, 0xa3, 0x15, 0x7a, 0x4b, - 0x55, 0x8f, 0xeb, 0x89, 0x9d, 0x8f, 0x17, 0x8f, 0x5d, 0xaa, 0x7a, 0x4c, 0xe7, 0xd3, 0xe8, 0xf4, - 0x91, 0x66, 0xdb, 0x9a, 0x41, 0x2b, 0xc1, 0x6e, 0xe0, 0x8d, 0x2a, 0x13, 0x46, 0x1c, 0x87, 0x32, - 0x37, 0x3c, 0x97, 0xfe, 0x14, 0x40, 0xec, 0x11, 0xf7, 0x0a, 0x47, 0x37, 0xe9, 0x3a, 0x54, 0x45, - 0x22, 0xac, 0xab, 0x8e, 0x57, 0x12, 0x8e, 0x85, 0x93, 0x6d, 0xec, 0x2f, 0x7d, 0x89, 0xe6, 0x78, - 0xa5, 0xb5, 0x50, 0xa2, 0x39, 0x1e, 0xda, 0x83, 0xac, 0x49, 0x4d, 0x9b, 0x4d, 0x4b, 0xeb, 0x81, - 0x30, 0xda, 0xa1, 0x12, 0x6c, 0xb9, 0xdc, 0x66, 0x44, 0xa3, 0xa5, 0x8d, 0xe0, 0x20, 0xde, 0xa2, - 0xaf, 0x61, 0x87, 0x3a, 0x63, 0x6a, 0x52, 0x46, 0x0c, 0x25, 0xc6, 0x6c, 0x06, 0x18, 0x31, 0x39, - 0xe8, 0x86, 0x72, 0xe9, 0x77, 0x01, 0xf6, 0xe6, 0xe3, 0xaa, 0x71, 0xce, 0xf4, 0x81, 0xc7, 0xa9, - 0x8b, 0x7e, 0x82, 0xdc, 0x90, 0x8e, 0x88, 0x67, 0x70, 0x37, 0x08, 0x31, 0x5f, 0x3d, 0x2e, 0x2f, - 0x26, 0xbe, 0x9c, 0xbe, 0x11, 0x4e, 0x34, 0xd0, 0x33, 0xc8, 0x1a, 0xba, 0xa9, 0x73, 0x37, 0xb8, - 0xcc, 0x87, 0xe8, 0x46, 0x78, 0xe9, 0x2f, 0x01, 0x0e, 0xea, 0xe1, 0x23, 0x2d, 0x89, 0xea, 0x1d, - 0x00, 0x49, 0x76, 0x25, 0xe1, 0x78, 0xfd, 0x24, 0x5f, 0xfd, 0x3e, 0x6d, 0x7b, 0xa5, 0x7a, 0x79, - 0xb6, 0x94, 0x2d, 0xce, 0xa6, 0x78, 0xce, 0xd8, 0xe1, 0x73, 0x28, 0xa6, 0x8e, 0xfd, 0xf7, 0xb8, - 0xa2, 0xd3, 0xf8, 0x85, 0xae, 0xe8, 0x14, 0x3d, 0x80, 0xcd, 0x1b, 0x62, 0x78, 0x34, 0x7a, 0xa3, - 0x70, 0xf3, 0xc3, 0xda, 0x33, 0x41, 0x2a, 0x43, 0x49, 0x8e, 0x6b, 0xe6, 0xd2, 0xa3, 0xde, 0x7c, - 0xd4, 0x08, 0x36, 0x38, 0xd1, 0xc2, 0x78, 0xb7, 0x71, 0xb0, 0x96, 0x9e, 0xc2, 0x6e, 0x82, 0x8f, - 0x02, 0x6e, 0x93, 0x01, 0x35, 0x66, 0x2e, 0x84, 0x39, 0x17, 0xd2, 0x7f, 0x02, 0x14, 0x2e, 0x0c, - 0x4f, 0xd3, 0xad, 0xce, 0x0d, 0x65, 0x4c, 0x1f, 0x52, 0x74, 0x04, 0xdb, 0x9c, 0xb8, 0x57, 0x0a, - 0x9f, 0x3a, 0x31, 0x38, 0xe7, 0x0b, 0x7a, 0x53, 0x27, 0x38, 0x74, 0x02, 0xb8, 0xa2, 0x0f, 0x4b, - 0x6b, 0x81, 0xdf, 0x5c, 0x28, 0x68, 0x0d, 0x91, 0x01, 0xfb, 0xa6, 0xee, 0xba, 0xba, 0xa5, 0x29, - 0x11, 0x68, 0x40, 0xc7, 0xe4, 0x46, 0xb7, 0x59, 0x50, 0x4d, 0x85, 0xea, 0x77, 0xe9, 0x94, 0x2e, - 0xba, 0x2e, 0x9f, 0x85, 0xda, 0xa1, 0xf4, 0x34, 0xd2, 0xc5, 0xbb, 0xe6, 0x32, 0xb1, 0x54, 0x85, - 0xdd, 0xa5, 0x78, 0x94, 0x83, 0x8d, 0x46, 0xad, 0xd5, 0x16, 0x33, 0xa8, 0x08, 0xf9, 0x7e, 0x57, - 0x56, 0x5e, 0xc8, 0x8d, 0x5a, 0xbf, 0xdd, 0x13, 0x05, 0xa9, 0x03, 0xc5, 0x45, 0x97, 0x7e, 0x41, - 0x6e, 0xdb, 0xf1, 0x26, 0x7a, 0xf9, 0x47, 0xef, 0x0f, 0x13, 0xcf, 0x14, 0xa4, 0x7f, 0xd7, 0x61, - 0xff, 0x8d, 0xcd, 0xae, 0x46, 0x86, 0x3d, 0x99, 0xe5, 0xdd, 0xb6, 0x46, 0xba, 0x86, 0x9e, 0x40, - 0xd1, 0x24, 0xb7, 0x8a, 0x43, 0x18, 0x31, 0x0c, 0x6a, 0xe8, 0xae, 0x19, 0xa4, 0x73, 0x13, 0x17, - 0x4c, 0x72, 0x7b, 0x31, 0x93, 0xa2, 0x16, 0x88, 0x71, 0xe3, 0x2b, 0xaa, 0x6d, 0x71, 0x7a, 0xcb, - 0xa3, 0xfa, 0x9e, 0x8b, 0xc4, 0xe7, 0x87, 0x72, 0x37, 0x82, 0xd5, 0x43, 0x14, 0x2e, 0xba, 0x8b, - 0x02, 0xf4, 0x16, 0xf6, 0x18, 0x99, 0x28, 0xb6, 0xc7, 0x1d, 0x8f, 0x2b, 0x43, 0xc2, 0x89, 0x6f, - 0x71, 0xa4, 0x6b, 0x41, 0xa3, 0xe7, 0xab, 0x9f, 0xa6, 0xaf, 0x86, 0xc9, 0xa4, 0x13, 0x80, 0x5f, - 0x10, 0x4e, 0xc2, 0xc0, 0xf1, 0x7d, 0x76, 0x57, 0x88, 0xca, 0x90, 0x35, 0xfc, 0x42, 0x72, 0x83, - 0xb7, 0xcc, 0x57, 0xf7, 0xd2, 0x96, 0x82, 0x32, 0x73, 0x71, 0x84, 0x42, 0xcf, 0x21, 0x4f, 0x2c, - 0xcb, 0xe6, 0xc4, 0xcf, 0x88, 0x1b, 0x50, 0x45, 0xbe, 0x7a, 0x94, 0x56, 0xaa, 0xcd, 0x20, 0x78, - 0x1e, 0x8f, 0x7e, 0x86, 0x7b, 0xba, 0xc5, 0x29, 0x63, 0x9e, 0xc3, 0xf5, 0x81, 0x41, 0x4b, 0xd9, - 0xc0, 0xc0, 0x61, 0x39, 0xa4, 0xc4, 0x72, 0x4c, 0x89, 0xe5, 0x53, 0xdb, 0x36, 0x5e, 0xfb, 0xb5, - 0x8c, 0x17, 0x15, 0xfc, 0xf4, 0xfb, 0xef, 0x34, 0x61, 0x3a, 0xa7, 0x8a, 0x4a, 0xd4, 0x31, 0x2d, - 0x6d, 0x1d, 0x0b, 0x27, 0x39, 0x5c, 0x48, 0xc4, 0x75, 0x5f, 0x8a, 0x4e, 0x60, 0x83, 0x5a, 0x37, - 0x6e, 0x29, 0x17, 0x78, 0x78, 0x90, 0x0e, 0x51, 0xb6, 0x6e, 0x5c, 0x1c, 0x20, 0xa4, 0x3f, 0xb2, - 0x80, 0xce, 0xfc, 0xf9, 0xa1, 0x5b, 0xda, 0x5c, 0x1f, 0x0e, 0xa0, 0x14, 0x74, 0x4c, 0x3c, 0x50, - 0x94, 0x05, 0x2e, 0xf1, 0x8d, 0x7e, 0xf1, 0x3e, 0x9e, 0x9a, 0x59, 0x6a, 0x66, 0xf0, 0x1e, 0x5f, - 0xce, 0x9b, 0x57, 0x70, 0x14, 0xcf, 0x98, 0x65, 0x6e, 0xc2, 0x72, 0xf9, 0xf2, 0x83, 0x29, 0xab, - 0x99, 0xc1, 0x07, 0xea, 0x4a, 0x3a, 0x1c, 0xc3, 0x61, 0x32, 0xa8, 0x94, 0x6b, 0x9f, 0x75, 0xe6, - 0x7d, 0x85, 0x95, 0x74, 0x72, 0x27, 0x4f, 0x2b, 0x68, 0xaa, 0x99, 0xc1, 0x25, 0xba, 0x8a, 0xc2, - 0x14, 0xd8, 0x9f, 0x79, 0x8a, 0x2f, 0x18, 0x54, 0x50, 0x54, 0x66, 0x9f, 0xaf, 0x74, 0x33, 0xcf, - 0x6e, 0xcd, 0x0c, 0xde, 0xa5, 0x4b, 0x69, 0xaf, 0x03, 0xe8, 0xda, 0x23, 0x86, 0xdf, 0x5a, 0xf6, - 0x48, 0x71, 0x29, 0xbb, 0xd1, 0x55, 0x1a, 0x55, 0xe3, 0xe3, 0x54, 0x77, 0x5d, 0x86, 0xc0, 0xce, - 0xa8, 0x1b, 0xc2, 0x9a, 0x19, 0x2c, 0x5e, 0xa7, 0x64, 0xa8, 0x0d, 0x62, 0x44, 0x6e, 0x33, 0xda, - 0xc8, 0xa6, 0xcd, 0x2d, 0xa3, 0x0d, 0x3f, 0x11, 0x45, 0x27, 0xc5, 0x3e, 0x14, 0x0e, 0x26, 0x11, - 0x7d, 0x28, 0x73, 0x89, 0x08, 0x5b, 0x76, 0x2b, 0x30, 0xfb, 0x24, 0x6d, 0x76, 0x05, 0xdf, 0x34, - 0x33, 0x78, 0x7f, 0xb2, 0x82, 0x8a, 0x30, 0xa0, 0xbb, 0x3f, 0x94, 0xa8, 0xe0, 0x3f, 0x59, 0x51, - 0x34, 0xb5, 0x04, 0xd8, 0xcc, 0xe0, 0x1d, 0x35, 0x2d, 0x3c, 0xcd, 0x41, 0x96, 0x13, 0xa6, 0x51, - 0x2e, 0xfd, 0x2d, 0xc0, 0xf1, 0x59, 0xfc, 0xad, 0x9a, 0x3d, 0x6e, 0xe8, 0xdb, 0x63, 0x41, 0x47, - 0xa3, 0xd3, 0xd4, 0x88, 0xf5, 0x5d, 0x4b, 0x69, 0xd7, 0x77, 0x9b, 0x6b, 0x7e, 0x96, 0xfa, 0xdf, - 0x96, 0xa1, 0x6d, 0x12, 0xdd, 0x8a, 0xe6, 0x64, 0xb4, 0xf3, 0xbf, 0x2d, 0x0e, 0xb3, 0x7f, 0xa5, - 0x2a, 0x8f, 0xfe, 0x33, 0xf1, 0x16, 0x1d, 0x42, 0x2e, 0xce, 0x49, 0xf4, 0xa3, 0x49, 0xf6, 0xe8, - 0x31, 0xe4, 0x0d, 0xe2, 0x59, 0xea, 0x58, 0x71, 0x0c, 0x62, 0x45, 0x9f, 0x19, 0x08, 0x45, 0x17, - 0x06, 0xb1, 0xa4, 0x31, 0x3c, 0x6a, 0xeb, 0x2e, 0x5f, 0x72, 0x35, 0x4c, 0xaf, 0x3d, 0xea, 0x72, - 0xd4, 0x80, 0x7b, 0x49, 0x37, 0x26, 0xf3, 0xb2, 0x70, 0x37, 0xa5, 0x89, 0x89, 0xb8, 0xd9, 0xf0, - 0x47, 0xb1, 0x9e, 0x3f, 0x56, 0xa5, 0xdf, 0xe0, 0xf1, 0x4a, 0x4f, 0xae, 0x63, 0x5b, 0x2e, 0x45, - 0x6f, 0xa1, 0xa0, 0xce, 0x27, 0x34, 0x1e, 0x56, 0xdf, 0xac, 0xf4, 0xb5, 0xe2, 0x25, 0x70, 0xca, - 0xce, 0x57, 0xff, 0x08, 0xb0, 0x73, 0x27, 0x40, 0xb4, 0x03, 0xf7, 0x7a, 0xb5, 0xee, 0x2b, 0x05, - 0xcb, 0xdd, 0x4e, 0x1f, 0xd7, 0x65, 0x31, 0x83, 0x1e, 0x80, 0x58, 0x6f, 0xf7, 0xbb, 0x3d, 0x19, - 0xcf, 0xa4, 0x02, 0xba, 0x0f, 0x45, 0xf9, 0xad, 0x5c, 0xef, 0xf7, 0x5a, 0x9d, 0x73, 0xe5, 0xb2, - 0x2f, 0xf7, 0x65, 0x71, 0x0d, 0x1d, 0xc1, 0xfe, 0x4c, 0x18, 0x2b, 0xb5, 0x6b, 0xa7, 0x72, 0x5b, - 0x5c, 0x47, 0x9f, 0xc1, 0xf1, 0x65, 0xbf, 0xd6, 0x6e, 0xf5, 0xde, 0x29, 0x9d, 0x86, 0xd2, 0x95, - 0xf1, 0xeb, 0x56, 0x5d, 0x56, 0xba, 0x17, 0x72, 0xbd, 0xd5, 0x68, 0xd5, 0x6b, 0xbe, 0x8e, 0xb8, - 0xe1, 0xdb, 0xbd, 0x68, 0xf7, 0x5f, 0xb6, 0xce, 0x95, 0xce, 0x6b, 0x19, 0xe3, 0xd6, 0x0b, 0x59, - 0xdc, 0x44, 0x0f, 0xe1, 0xe0, 0x4d, 0x07, 0xbf, 0x6a, 0xb4, 0x3b, 0x6f, 0x94, 0x39, 0x07, 0x9d, - 0xf3, 0x46, 0xeb, 0xa5, 0x98, 0x45, 0x7b, 0x80, 0x62, 0x67, 0xb5, 0x6e, 0xb7, 0xf5, 0xf2, 0xfc, - 0x4c, 0x3e, 0xef, 0x89, 0x5b, 0xa7, 0xcf, 0x7f, 0xf9, 0x51, 0xd3, 0xf9, 0xd8, 0x1b, 0x94, 0x55, - 0xdb, 0xac, 0x04, 0x09, 0xb3, 0x99, 0x16, 0x2e, 0x2a, 0xc9, 0x17, 0x5c, 0xa3, 0x56, 0xc5, 0x19, - 0x3c, 0xd5, 0xec, 0xca, 0xe2, 0xef, 0x7e, 0x90, 0x0d, 0xa6, 0xcd, 0xb7, 0xff, 0x07, 0x00, 0x00, - 0xff, 0xff, 0x9e, 0xa4, 0xff, 0x06, 0x4c, 0x0c, 0x00, 0x00, + // 1350 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0x5b, 0x53, 0xdb, 0x46, + 0x14, 0xb6, 0xb9, 0x18, 0x73, 0xdc, 0x80, 0xd8, 0x04, 0x30, 0xd0, 0x24, 0x54, 0xbd, 0x84, 0xb6, + 0x13, 0xbb, 0x43, 0xfb, 0x90, 0x5e, 0x32, 0x53, 0xe3, 0x88, 0xe0, 0x89, 0xc1, 0xb0, 0xb6, 0x73, + 0xe9, 0x8b, 0x66, 0x2d, 0xaf, 0x65, 0x15, 0x49, 0x2b, 0x56, 0x2b, 0xc0, 0xd3, 0x3f, 0xd1, 0x87, + 0xf6, 0xa7, 0xf4, 0xff, 0xf4, 0xad, 0x0f, 0xed, 0x8f, 0xe8, 0x68, 0x75, 0xb1, 0x2d, 0xec, 0x4c, + 0xde, 0x76, 0xcf, 0x7e, 0xe7, 0xb2, 0x67, 0xcf, 0xf9, 0xce, 0xc2, 0x93, 0x81, 0x3d, 0x12, 0xd4, + 0xea, 0xdb, 0x55, 0xd2, 0x77, 0x2c, 0xb7, 0xea, 0x10, 0x61, 0x0c, 0x49, 0xcf, 0xa6, 0x3a, 0xa7, + 0x3e, 0x0b, 0xb8, 0x41, 0x2b, 0x1e, 0x67, 0x82, 0xa1, 0xb5, 0x04, 0x58, 0x91, 0xc0, 0xdd, 0xbd, + 0x8c, 0xa2, 0xc1, 0x1c, 0x87, 0xb9, 0x11, 0x78, 0x37, 0x6b, 0xd5, 0xb0, 0x03, 0x5f, 0x50, 0xae, + 0x13, 0xdf, 0xb7, 0x4c, 0xd7, 0xa1, 0xae, 0x88, 0x81, 0x0f, 0x53, 0xa0, 0xc1, 0x38, 0xad, 0xd2, + 0x5b, 0x6a, 0x04, 0xc2, 0x4a, 0xed, 0x7c, 0x3c, 0x7d, 0xec, 0x53, 0x23, 0xe0, 0x96, 0x18, 0xc5, + 0xa7, 0x8f, 0x4c, 0xc6, 0x4c, 0x9b, 0x56, 0xe5, 0xae, 0x17, 0x0c, 0xaa, 0x37, 0x9c, 0x78, 0x1e, + 0xe5, 0x7e, 0x74, 0xae, 0xfe, 0x99, 0x07, 0xa5, 0x43, 0xfc, 0x4b, 0x1c, 0xdf, 0xa4, 0xed, 0x51, + 0x03, 0x29, 0xb0, 0x68, 0x78, 0x41, 0x39, 0xbf, 0x9f, 0x3f, 0x58, 0xc5, 0xe1, 0x32, 0x94, 0x98, + 0x5e, 0x50, 0x5e, 0x88, 0x24, 0xa6, 0x17, 0xa0, 0x2d, 0x28, 0x38, 0xd4, 0x61, 0x7c, 0x54, 0x5e, + 0x94, 0xc2, 0x78, 0x87, 0xca, 0xb0, 0xe2, 0x0b, 0xc6, 0x89, 0x49, 0xcb, 0x4b, 0xf2, 0x20, 0xd9, + 0xa2, 0xaf, 0x61, 0x83, 0x7a, 0x43, 0xea, 0x50, 0x4e, 0x6c, 0x3d, 0xc1, 0x2c, 0x4b, 0x8c, 0x92, + 0x1e, 0xb4, 0x23, 0xb9, 0xfa, 0x7b, 0x1e, 0xb6, 0x26, 0xe3, 0xaa, 0x09, 0xc1, 0xad, 0x5e, 0x20, + 0xa8, 0x8f, 0x7e, 0x82, 0x62, 0x9f, 0x0e, 0x48, 0x60, 0x0b, 0x5f, 0x86, 0x58, 0x3a, 0xdc, 0xaf, + 0x4c, 0x27, 0xbe, 0x92, 0xbd, 0x11, 0x4e, 0x35, 0xd0, 0x33, 0x28, 0xd8, 0x96, 0x63, 0x09, 0x5f, + 0x5e, 0xe6, 0x43, 0x74, 0x63, 0xbc, 0xfa, 0x57, 0x1e, 0x76, 0xea, 0xd1, 0x23, 0xcd, 0x88, 0xea, + 0x1d, 0x00, 0x49, 0x77, 0xe5, 0xfc, 0xfe, 0xe2, 0x41, 0xe9, 0xf0, 0xfb, 0xac, 0xed, 0xb9, 0xea, + 0x95, 0xf1, 0x52, 0x73, 0x05, 0x1f, 0xe1, 0x09, 0x63, 0xbb, 0xcf, 0x61, 0x3d, 0x73, 0x1c, 0xbe, + 0xc7, 0x25, 0x1d, 0x25, 0x2f, 0x74, 0x49, 0x47, 0xe8, 0x01, 0x2c, 0x5f, 0x13, 0x3b, 0xa0, 0xf1, + 0x1b, 0x45, 0x9b, 0x1f, 0x16, 0x9e, 0xe5, 0xd5, 0x0a, 0x94, 0xb5, 0xa4, 0x66, 0x2e, 0x02, 0x1a, + 0x4c, 0x46, 0x8d, 0x60, 0x49, 0x10, 0x33, 0x8a, 0x77, 0x15, 0xcb, 0xb5, 0xfa, 0x14, 0x36, 0x53, + 0x7c, 0x1c, 0x70, 0x93, 0xf4, 0xa8, 0x3d, 0x76, 0x91, 0x9f, 0x70, 0xa1, 0xfe, 0x97, 0x87, 0xb5, + 0x73, 0x3b, 0x30, 0x2d, 0xb7, 0x75, 0x4d, 0x39, 0xb7, 0xfa, 0x14, 0xed, 0xc1, 0xaa, 0x20, 0xfe, + 0xa5, 0x2e, 0x46, 0x5e, 0x02, 0x2e, 0x86, 0x82, 0xce, 0xc8, 0x93, 0x87, 0x9e, 0x84, 0xeb, 0x56, + 0xbf, 0xbc, 0x20, 0xfd, 0x16, 0x23, 0x41, 0xa3, 0x8f, 0x6c, 0xd8, 0x76, 0x2c, 0xdf, 0xb7, 0x5c, + 0x53, 0x8f, 0x41, 0x3d, 0x3a, 0x24, 0xd7, 0x16, 0xe3, 0xb2, 0x9a, 0xd6, 0x0e, 0xbf, 0xcb, 0xa6, + 0x74, 0xda, 0x75, 0xe5, 0x34, 0xd2, 0x8e, 0xa4, 0x47, 0xb1, 0x2e, 0xde, 0x74, 0x66, 0x89, 0xd5, + 0x43, 0xd8, 0x9c, 0x89, 0x47, 0x45, 0x58, 0x3a, 0xae, 0x35, 0x9a, 0x4a, 0x0e, 0xad, 0x43, 0xa9, + 0xdb, 0xd6, 0xf4, 0x17, 0xda, 0x71, 0xad, 0xdb, 0xec, 0x28, 0x79, 0xb5, 0x05, 0xeb, 0xd3, 0x2e, + 0xc3, 0x82, 0x5c, 0x65, 0xc9, 0x26, 0x7e, 0xf9, 0x47, 0xef, 0x0f, 0x13, 0x8f, 0x15, 0xd4, 0x7f, + 0x17, 0x61, 0xfb, 0x0d, 0xe3, 0x97, 0x03, 0x9b, 0xdd, 0x8c, 0xf3, 0xce, 0xdc, 0x81, 0x65, 0xa2, + 0x27, 0xb0, 0xee, 0x90, 0x5b, 0xdd, 0x23, 0x9c, 0xd8, 0x36, 0xb5, 0x2d, 0xdf, 0x91, 0xe9, 0x5c, + 0xc6, 0x6b, 0x0e, 0xb9, 0x3d, 0x1f, 0x4b, 0x51, 0x03, 0x94, 0xa4, 0xf1, 0x75, 0x83, 0xb9, 0x82, + 0xde, 0x8a, 0xb8, 0xbe, 0x27, 0x22, 0x09, 0xf9, 0xa1, 0xd2, 0x8e, 0x61, 0xf5, 0x08, 0x85, 0xd7, + 0xfd, 0x69, 0x01, 0x7a, 0x0b, 0x5b, 0x9c, 0xdc, 0xe8, 0x2c, 0x10, 0x5e, 0x20, 0xf4, 0x3e, 0x11, + 0x24, 0xb4, 0x38, 0xb0, 0x4c, 0xd9, 0xe8, 0xa5, 0xc3, 0x4f, 0xb3, 0x57, 0xc3, 0xe4, 0xa6, 0x25, + 0xc1, 0x2f, 0x88, 0x20, 0x51, 0xe0, 0xf8, 0x3e, 0xbf, 0x2b, 0x44, 0x15, 0x28, 0xd8, 0x61, 0x21, + 0xf9, 0xf2, 0x2d, 0x4b, 0x87, 0x5b, 0x59, 0x4b, 0xb2, 0xcc, 0x7c, 0x1c, 0xa3, 0xd0, 0x73, 0x28, + 0x11, 0xd7, 0x65, 0x82, 0x84, 0x19, 0xf1, 0x25, 0x55, 0x94, 0x0e, 0xf7, 0xb2, 0x4a, 0xb5, 0x31, + 0x04, 0x4f, 0xe2, 0xd1, 0xcf, 0x70, 0xcf, 0x72, 0x05, 0xe5, 0x3c, 0xf0, 0x84, 0xd5, 0xb3, 0x69, + 0xb9, 0x20, 0x0d, 0xec, 0x56, 0x22, 0x4a, 0xac, 0x24, 0x94, 0x58, 0x39, 0x62, 0xcc, 0x7e, 0x1d, + 0xd6, 0x32, 0x9e, 0x56, 0x08, 0xd3, 0x1f, 0xbe, 0xd3, 0x0d, 0xb7, 0x04, 0xd5, 0x0d, 0x62, 0x0c, + 0x69, 0x79, 0x65, 0x3f, 0x7f, 0x50, 0xc4, 0x6b, 0xa9, 0xb8, 0x1e, 0x4a, 0xd1, 0x01, 0x2c, 0x51, + 0xf7, 0xda, 0x2f, 0x17, 0xa5, 0x87, 0x07, 0xd9, 0x10, 0x35, 0xf7, 0xda, 0xc7, 0x12, 0xa1, 0xfe, + 0x51, 0x00, 0x74, 0x1a, 0xce, 0x0f, 0xcb, 0x35, 0x27, 0xfa, 0xb0, 0x07, 0x65, 0xd9, 0x31, 0xc9, + 0x40, 0xd1, 0xa7, 0xb8, 0x24, 0x34, 0xfa, 0xc5, 0xfb, 0x78, 0x6a, 0x6c, 0xe9, 0x24, 0x87, 0xb7, + 0xc4, 0x6c, 0xde, 0xbc, 0x84, 0xbd, 0x64, 0xc6, 0xcc, 0x72, 0x13, 0x95, 0xcb, 0x97, 0x1f, 0x4c, + 0x59, 0x27, 0x39, 0xbc, 0x63, 0xcc, 0xa5, 0xc3, 0x21, 0xec, 0xa6, 0x83, 0x4a, 0xbf, 0x0a, 0x59, + 0x67, 0xd2, 0x57, 0x54, 0x49, 0x07, 0x77, 0xf2, 0x34, 0x87, 0xa6, 0x4e, 0x72, 0xb8, 0x4c, 0xe7, + 0x51, 0x98, 0x0e, 0xdb, 0x63, 0x4f, 0xc9, 0x05, 0x65, 0x05, 0xc5, 0x65, 0xf6, 0xf9, 0x5c, 0x37, + 0x93, 0xec, 0x76, 0x92, 0xc3, 0x9b, 0x74, 0x26, 0xed, 0xb5, 0x00, 0x5d, 0x05, 0xc4, 0x0e, 0x5b, + 0x8b, 0x0d, 0x74, 0x9f, 0xf2, 0x6b, 0xcb, 0xa0, 0x71, 0x35, 0x3e, 0xce, 0x74, 0xd7, 0x45, 0x04, + 0x6c, 0x0d, 0xda, 0x11, 0xec, 0x24, 0x87, 0x95, 0xab, 0x8c, 0x0c, 0x35, 0x41, 0x89, 0xc9, 0x6d, + 0x4c, 0x1b, 0x85, 0xac, 0xb9, 0x59, 0xb4, 0x11, 0x26, 0x62, 0xdd, 0xcb, 0xb0, 0x0f, 0x85, 0x9d, + 0x9b, 0x98, 0x3e, 0xf4, 0x89, 0x44, 0x44, 0x2d, 0xbb, 0x22, 0xcd, 0x3e, 0xc9, 0x9a, 0x9d, 0xc3, + 0x37, 0x27, 0x39, 0xbc, 0x7d, 0x33, 0x87, 0x8a, 0x30, 0xa0, 0xbb, 0x3f, 0x94, 0xb8, 0xe0, 0x3f, + 0x99, 0x53, 0x34, 0xb5, 0x14, 0x78, 0x92, 0xc3, 0x1b, 0x46, 0x56, 0x78, 0x54, 0x84, 0x82, 0x20, + 0xdc, 0xa4, 0x42, 0xfd, 0x27, 0x0f, 0xfb, 0xa7, 0xc9, 0xb7, 0x6a, 0xfc, 0xb8, 0x91, 0xef, 0x80, + 0xcb, 0x8e, 0x46, 0x47, 0x99, 0x11, 0x1b, 0xba, 0x56, 0xb3, 0xae, 0xef, 0x36, 0xd7, 0xe4, 0x2c, + 0x0d, 0xbf, 0x2d, 0x7d, 0xe6, 0x10, 0xcb, 0x8d, 0xe7, 0x64, 0xbc, 0x0b, 0xbf, 0x2d, 0x1e, 0x67, + 0xbf, 0x52, 0x43, 0xc4, 0xff, 0x99, 0x64, 0x8b, 0x76, 0xa1, 0x98, 0xe4, 0x24, 0xfe, 0xd1, 0xa4, + 0x7b, 0xf4, 0x18, 0x4a, 0x36, 0x09, 0x5c, 0x63, 0xa8, 0x7b, 0x36, 0x71, 0xe3, 0xcf, 0x0c, 0x44, + 0xa2, 0x73, 0x9b, 0xb8, 0xe1, 0x9c, 0x66, 0xdc, 0x94, 0xaf, 0xbb, 0x8a, 0xc3, 0xa5, 0x3a, 0x84, + 0x47, 0x4d, 0xcb, 0x17, 0x33, 0x2e, 0x8b, 0xe9, 0x55, 0x40, 0x7d, 0x81, 0x8e, 0xe1, 0x5e, 0xda, + 0x9f, 0xe9, 0x04, 0x5d, 0xbb, 0x9b, 0xe4, 0xd4, 0x44, 0xd2, 0x7e, 0xf8, 0xa3, 0x44, 0x2f, 0x1c, + 0xb4, 0xea, 0x6f, 0xf0, 0x78, 0xae, 0x27, 0xdf, 0x63, 0xae, 0x4f, 0xd1, 0x5b, 0x58, 0x33, 0x26, + 0x53, 0x9c, 0x8c, 0xaf, 0x6f, 0xe6, 0xfa, 0x9a, 0xf3, 0x36, 0x38, 0x63, 0xe7, 0xab, 0xbf, 0xf3, + 0xb0, 0x71, 0x27, 0x40, 0xb4, 0x01, 0xf7, 0x3a, 0xb5, 0xf6, 0x2b, 0x1d, 0x6b, 0xed, 0x56, 0x17, + 0xd7, 0x35, 0x25, 0x87, 0x1e, 0x80, 0x52, 0x6f, 0x76, 0xdb, 0x1d, 0x0d, 0x8f, 0xa5, 0x79, 0x74, + 0x1f, 0xd6, 0xb5, 0xb7, 0x5a, 0xbd, 0xdb, 0x69, 0xb4, 0xce, 0xf4, 0x8b, 0xae, 0xd6, 0xd5, 0x94, + 0x05, 0xb4, 0x07, 0xdb, 0x63, 0x61, 0xa2, 0xd4, 0xac, 0x1d, 0x69, 0x4d, 0x65, 0x11, 0x7d, 0x06, + 0xfb, 0x17, 0xdd, 0x5a, 0xb3, 0xd1, 0x79, 0xa7, 0xb7, 0x8e, 0xf5, 0xb6, 0x86, 0x5f, 0x37, 0xea, + 0x9a, 0xde, 0x3e, 0xd7, 0xea, 0x8d, 0xe3, 0x46, 0xbd, 0x16, 0xea, 0x28, 0x4b, 0xa1, 0xdd, 0xf3, + 0x66, 0xf7, 0x65, 0xe3, 0x4c, 0x6f, 0xbd, 0xd6, 0x30, 0x6e, 0xbc, 0xd0, 0x94, 0x65, 0xf4, 0x10, + 0x76, 0xde, 0xb4, 0xf0, 0xab, 0xe3, 0x66, 0xeb, 0x8d, 0x3e, 0xe1, 0xa0, 0x75, 0x76, 0xdc, 0x78, + 0xa9, 0x14, 0xd0, 0x16, 0xa0, 0xc4, 0x59, 0xad, 0xdd, 0x6e, 0xbc, 0x3c, 0x3b, 0xd5, 0xce, 0x3a, + 0xca, 0xca, 0xd1, 0xf3, 0x5f, 0x7e, 0x34, 0x2d, 0x31, 0x0c, 0x7a, 0x15, 0x83, 0x39, 0x55, 0x99, + 0x30, 0xc6, 0xcd, 0x68, 0x51, 0x4d, 0x3f, 0xe5, 0x26, 0x75, 0xab, 0x5e, 0xef, 0xa9, 0xc9, 0xaa, + 0xd3, 0xff, 0xfd, 0x5e, 0x41, 0xce, 0x9f, 0x6f, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xeb, 0x2e, + 0x6f, 0x69, 0x5e, 0x0c, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go index 662d2311ac..9ca8d739de 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go @@ -49,7 +49,7 @@ func (x Project_ProjectState) String() string { } func (Project_ProjectState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{1, 0} + return fileDescriptor_2db065ce03bf106d, []int{2, 0} } // Namespace within a project commonly used to differentiate between different service instances. @@ -103,28 +103,80 @@ func (m *Domain) GetName() string { return "" } +type ProjectIdentifier struct { + // Globally unique project name. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProjectIdentifier) Reset() { *m = ProjectIdentifier{} } +func (m *ProjectIdentifier) String() string { return proto.CompactTextString(m) } +func (*ProjectIdentifier) ProtoMessage() {} +func (*ProjectIdentifier) Descriptor() ([]byte, []int) { + return fileDescriptor_2db065ce03bf106d, []int{1} +} + +func (m *ProjectIdentifier) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProjectIdentifier.Unmarshal(m, b) +} +func (m *ProjectIdentifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProjectIdentifier.Marshal(b, m, deterministic) +} +func (m *ProjectIdentifier) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProjectIdentifier.Merge(m, src) +} +func (m *ProjectIdentifier) XXX_Size() int { + return xxx_messageInfo_ProjectIdentifier.Size(m) +} +func (m *ProjectIdentifier) XXX_DiscardUnknown() { + xxx_messageInfo_ProjectIdentifier.DiscardUnknown(m) +} + +var xxx_messageInfo_ProjectIdentifier proto.InternalMessageInfo + +func (m *ProjectIdentifier) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func (m *ProjectIdentifier) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Top-level namespace used to classify different entities like workflows and executions. type Project struct { + // Deprecated, use identifier instead. // Globally unique project name. - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Deprecated: Do not use. // Display name. Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Domains []*Domain `protobuf:"bytes,3,rep,name=domains,proto3" json:"domains,omitempty"` Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` // Leverage Labels from flyteidl.admin.common.proto to // tag projects with ownership information. - Labels *Labels `protobuf:"bytes,5,opt,name=labels,proto3" json:"labels,omitempty"` - State Project_ProjectState `protobuf:"varint,6,opt,name=state,proto3,enum=flyteidl.admin.Project_ProjectState" json:"state,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Labels *Labels `protobuf:"bytes,5,opt,name=labels,proto3" json:"labels,omitempty"` + State Project_ProjectState `protobuf:"varint,6,opt,name=state,proto3,enum=flyteidl.admin.Project_ProjectState" json:"state,omitempty"` + // Optional, org key applied to the project. + Identifier *ProjectIdentifier `protobuf:"bytes,7,opt,name=identifier,proto3" json:"identifier,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Project) Reset() { *m = Project{} } func (m *Project) String() string { return proto.CompactTextString(m) } func (*Project) ProtoMessage() {} func (*Project) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{1} + return fileDescriptor_2db065ce03bf106d, []int{2} } func (m *Project) XXX_Unmarshal(b []byte) error { @@ -145,6 +197,7 @@ func (m *Project) XXX_DiscardUnknown() { var xxx_messageInfo_Project proto.InternalMessageInfo +// Deprecated: Do not use. func (m *Project) GetId() string { if m != nil { return m.Id @@ -187,6 +240,13 @@ func (m *Project) GetState() Project_ProjectState { return Project_ACTIVE } +func (m *Project) GetIdentifier() *ProjectIdentifier { + if m != nil { + return m.Identifier + } + return nil +} + // Represents a list of projects. // See :ref:`ref_flyteidl.admin.Project` for more details type Projects struct { @@ -203,7 +263,7 @@ func (m *Projects) Reset() { *m = Projects{} } func (m *Projects) String() string { return proto.CompactTextString(m) } func (*Projects) ProtoMessage() {} func (*Projects) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{2} + return fileDescriptor_2db065ce03bf106d, []int{3} } func (m *Projects) XXX_Unmarshal(b []byte) error { @@ -264,7 +324,7 @@ func (m *ProjectListRequest) Reset() { *m = ProjectListRequest{} } func (m *ProjectListRequest) String() string { return proto.CompactTextString(m) } func (*ProjectListRequest) ProtoMessage() {} func (*ProjectListRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{3} + return fileDescriptor_2db065ce03bf106d, []int{4} } func (m *ProjectListRequest) XXX_Unmarshal(b []byte) error { @@ -327,7 +387,7 @@ func (m *ProjectRegisterRequest) Reset() { *m = ProjectRegisterRequest{} func (m *ProjectRegisterRequest) String() string { return proto.CompactTextString(m) } func (*ProjectRegisterRequest) ProtoMessage() {} func (*ProjectRegisterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{4} + return fileDescriptor_2db065ce03bf106d, []int{5} } func (m *ProjectRegisterRequest) XXX_Unmarshal(b []byte) error { @@ -366,7 +426,7 @@ func (m *ProjectRegisterResponse) Reset() { *m = ProjectRegisterResponse func (m *ProjectRegisterResponse) String() string { return proto.CompactTextString(m) } func (*ProjectRegisterResponse) ProtoMessage() {} func (*ProjectRegisterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{5} + return fileDescriptor_2db065ce03bf106d, []int{6} } func (m *ProjectRegisterResponse) XXX_Unmarshal(b []byte) error { @@ -398,7 +458,7 @@ func (m *ProjectUpdateResponse) Reset() { *m = ProjectUpdateResponse{} } func (m *ProjectUpdateResponse) String() string { return proto.CompactTextString(m) } func (*ProjectUpdateResponse) ProtoMessage() {} func (*ProjectUpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{6} + return fileDescriptor_2db065ce03bf106d, []int{7} } func (m *ProjectUpdateResponse) XXX_Unmarshal(b []byte) error { @@ -422,6 +482,7 @@ var xxx_messageInfo_ProjectUpdateResponse proto.InternalMessageInfo func init() { proto.RegisterEnum("flyteidl.admin.Project_ProjectState", Project_ProjectState_name, Project_ProjectState_value) proto.RegisterType((*Domain)(nil), "flyteidl.admin.Domain") + proto.RegisterType((*ProjectIdentifier)(nil), "flyteidl.admin.ProjectIdentifier") proto.RegisterType((*Project)(nil), "flyteidl.admin.Project") proto.RegisterType((*Projects)(nil), "flyteidl.admin.Projects") proto.RegisterType((*ProjectListRequest)(nil), "flyteidl.admin.ProjectListRequest") @@ -433,34 +494,37 @@ func init() { func init() { proto.RegisterFile("flyteidl/admin/project.proto", fileDescriptor_2db065ce03bf106d) } var fileDescriptor_2db065ce03bf106d = []byte{ - // 459 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0xc7, 0xb1, 0xdb, 0xd8, 0x61, 0x52, 0xa2, 0x68, 0x14, 0x1a, 0xf3, 0x71, 0xb0, 0x2c, 0x0e, - 0x39, 0x50, 0x1b, 0xd2, 0x1b, 0x08, 0xa4, 0xb4, 0xb1, 0xa0, 0xa2, 0x20, 0xb4, 0x49, 0x2b, 0xc1, - 0xa5, 0xf2, 0xc7, 0xd6, 0x2c, 0xd8, 0x5e, 0xe3, 0xdd, 0x1e, 0xf2, 0x08, 0x3c, 0x0c, 0xef, 0x88, - 0xbc, 0x5e, 0x57, 0x6d, 0x08, 0xa8, 0x27, 0xef, 0xcc, 0xfc, 0x76, 0xe6, 0x3f, 0x33, 0x5e, 0x78, - 0x7a, 0x99, 0xaf, 0x25, 0x65, 0x69, 0x1e, 0x44, 0x69, 0xc1, 0xca, 0xa0, 0xaa, 0xf9, 0x77, 0x9a, - 0x48, 0xbf, 0xaa, 0xb9, 0xe4, 0x38, 0xec, 0xa2, 0xbe, 0x8a, 0x3e, 0x7e, 0xb2, 0x41, 0x27, 0xbc, - 0x28, 0x78, 0xd9, 0xc2, 0xde, 0x73, 0xb0, 0x16, 0xbc, 0x88, 0x58, 0x89, 0x43, 0x30, 0x59, 0xea, - 0x18, 0xae, 0x31, 0xbd, 0x4f, 0x4c, 0x96, 0x22, 0xc2, 0x6e, 0x19, 0x15, 0xd4, 0x31, 0x95, 0x47, - 0x9d, 0xbd, 0xdf, 0x26, 0xd8, 0x9f, 0xdb, 0x62, 0x77, 0xe1, 0xf1, 0x05, 0xd8, 0xa9, 0xca, 0x2e, - 0x9c, 0x1d, 0x77, 0x67, 0x3a, 0x98, 0xed, 0xfb, 0xb7, 0xc5, 0xf9, 0x6d, 0x71, 0xd2, 0x61, 0xe8, - 0xc2, 0x20, 0xa5, 0x22, 0xa9, 0x59, 0x25, 0x19, 0x2f, 0x9d, 0x5d, 0x95, 0xec, 0xa6, 0x0b, 0x7d, - 0xb0, 0xf2, 0x28, 0xa6, 0xb9, 0x70, 0x7a, 0xae, 0xb1, 0x2d, 0xe5, 0xa9, 0x8a, 0x12, 0x4d, 0xe1, - 0x2b, 0xe8, 0x09, 0x19, 0x49, 0xea, 0x58, 0xae, 0x31, 0x1d, 0xce, 0x9e, 0x6d, 0xe2, 0xba, 0x9f, - 0xee, 0xbb, 0x6c, 0x58, 0xd2, 0x5e, 0xf1, 0xde, 0xc2, 0xde, 0x4d, 0x37, 0x02, 0x58, 0xf3, 0xe3, - 0xd5, 0xc9, 0x79, 0x38, 0xba, 0x87, 0x7b, 0xd0, 0x9f, 0x93, 0xe3, 0xf7, 0x27, 0xe7, 0xe1, 0x62, - 0x64, 0xe0, 0x18, 0x46, 0xcb, 0x2f, 0xcb, 0x55, 0xf8, 0xf1, 0xe2, 0x5d, 0xf8, 0x29, 0x24, 0xf3, - 0x55, 0xb8, 0x18, 0x99, 0xde, 0x19, 0xf4, 0xf5, 0x7d, 0x81, 0x87, 0xd0, 0xd7, 0x7b, 0x12, 0x8e, - 0xa1, 0x86, 0x31, 0xf9, 0x87, 0x14, 0x72, 0x0d, 0xe2, 0x18, 0x7a, 0x92, 0xff, 0xa0, 0xa5, 0x9e, - 0x6a, 0x6b, 0x78, 0xbf, 0x0c, 0x40, 0xcd, 0x9e, 0x32, 0x21, 0x09, 0xfd, 0x79, 0x45, 0x85, 0x6c, - 0xe0, 0x9c, 0x15, 0x4c, 0xaa, 0xa5, 0x3c, 0x20, 0xad, 0xb1, 0x3d, 0x05, 0x3a, 0x60, 0x5f, 0xb2, - 0x5c, 0xd2, 0xba, 0xd9, 0x4c, 0xe3, 0xef, 0x4c, 0x3c, 0x00, 0x5b, 0xf0, 0x5a, 0x5e, 0xc4, 0x6b, - 0x35, 0xfd, 0xc1, 0x6c, 0xbc, 0x29, 0x73, 0xc9, 0x6b, 0x49, 0xac, 0x06, 0x3a, 0x5a, 0x7b, 0x1f, - 0x60, 0xbf, 0x93, 0x4d, 0x33, 0x26, 0x24, 0xad, 0x3b, 0x39, 0x2f, 0xc1, 0xd6, 0x7d, 0x28, 0x41, - 0xff, 0xe9, 0xb7, 0xe3, 0xbc, 0x47, 0x30, 0xf9, 0x2b, 0x99, 0xa8, 0x78, 0x29, 0xa8, 0x37, 0x81, - 0x87, 0x3a, 0x74, 0x56, 0xa5, 0xcd, 0x8a, 0x74, 0xe0, 0xe8, 0xcd, 0xd7, 0xd7, 0x19, 0x93, 0xdf, - 0xae, 0x62, 0x3f, 0xe1, 0x45, 0xa0, 0x2a, 0xf0, 0x3a, 0x6b, 0x0f, 0xc1, 0xf5, 0xaf, 0x9f, 0xd1, - 0x32, 0xa8, 0xe2, 0x83, 0x8c, 0x07, 0xb7, 0x5f, 0x43, 0x6c, 0xa9, 0x77, 0x70, 0xf8, 0x27, 0x00, - 0x00, 0xff, 0xff, 0x33, 0x79, 0x69, 0x68, 0x54, 0x03, 0x00, 0x00, + // 507 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x93, 0x5f, 0x6f, 0xd3, 0x3c, + 0x14, 0xc6, 0xdf, 0xa4, 0x6b, 0xd2, 0xf7, 0x74, 0x54, 0xc5, 0x2a, 0xab, 0xf9, 0x73, 0x51, 0x22, + 0x2e, 0x7a, 0xc1, 0x12, 0xe8, 0xc4, 0x0d, 0x08, 0xa4, 0x76, 0x8d, 0xa0, 0x62, 0x20, 0xe4, 0x76, + 0x93, 0xe0, 0x66, 0x6a, 0x1b, 0x37, 0x18, 0x92, 0x38, 0xd8, 0xde, 0x45, 0x3f, 0x02, 0xdf, 0x97, + 0x0f, 0x80, 0xe2, 0x38, 0x5d, 0xd7, 0xad, 0x5c, 0xc5, 0xf6, 0xf9, 0x9d, 0xe7, 0x3c, 0xc7, 0x27, + 0x86, 0x27, 0xab, 0x64, 0xad, 0x28, 0x8b, 0x92, 0x60, 0x1e, 0xa5, 0x2c, 0x0b, 0x72, 0xc1, 0x7f, + 0xd0, 0xa5, 0xf2, 0x73, 0xc1, 0x15, 0x47, 0xad, 0x2a, 0xea, 0xeb, 0xe8, 0xa3, 0xc7, 0x3b, 0xf4, + 0x92, 0xa7, 0x29, 0xcf, 0x4a, 0xd8, 0x7b, 0x0e, 0xce, 0x98, 0xa7, 0x73, 0x96, 0xa1, 0x16, 0xd8, + 0x2c, 0xc2, 0x56, 0xcf, 0xea, 0xff, 0x4f, 0x6c, 0x16, 0x21, 0x04, 0x07, 0xd9, 0x3c, 0xa5, 0xd8, + 0xd6, 0x27, 0x7a, 0xed, 0xbd, 0x82, 0xfb, 0x5f, 0xca, 0x5a, 0x93, 0x88, 0x66, 0x8a, 0xad, 0x18, + 0x15, 0xb7, 0x12, 0xdb, 0x50, 0xe3, 0x22, 0x36, 0x79, 0xc5, 0xd2, 0xfb, 0x63, 0x83, 0x6b, 0xf2, + 0x10, 0xba, 0xa6, 0x47, 0x36, 0xb6, 0xf6, 0x95, 0x42, 0x2f, 0xc0, 0x8d, 0xb4, 0x31, 0x89, 0x6b, + 0xbd, 0x5a, 0xbf, 0x39, 0x38, 0xf2, 0x6f, 0xf6, 0xe5, 0x97, 0xbe, 0x49, 0x85, 0xa1, 0x1e, 0x34, + 0x23, 0x2a, 0x97, 0x82, 0xe5, 0x8a, 0xf1, 0x0c, 0x1f, 0x68, 0xb1, 0xed, 0x23, 0xe4, 0x83, 0x93, + 0xcc, 0x17, 0x34, 0x91, 0xb8, 0xde, 0xb3, 0xee, 0x92, 0x3c, 0xd3, 0x51, 0x62, 0x28, 0xf4, 0x1a, + 0xea, 0x52, 0xcd, 0x15, 0xc5, 0x4e, 0xcf, 0xea, 0xb7, 0x06, 0xcf, 0x76, 0x71, 0xd3, 0x53, 0xf5, + 0x9d, 0x16, 0x2c, 0x29, 0x53, 0xd0, 0x10, 0x80, 0x6d, 0xee, 0x08, 0xbb, 0xba, 0xde, 0xd3, 0x3d, + 0x02, 0xd7, 0x97, 0x49, 0xb6, 0x92, 0xbc, 0x77, 0x70, 0xb8, 0xad, 0x8c, 0x00, 0x9c, 0xe1, 0xe9, + 0x6c, 0x72, 0x11, 0xb6, 0xff, 0x43, 0x87, 0xd0, 0x18, 0x92, 0xd3, 0x0f, 0x93, 0x8b, 0x70, 0xdc, + 0xb6, 0x50, 0x07, 0xda, 0xd3, 0xaf, 0xd3, 0x59, 0xf8, 0xe9, 0xf2, 0x7d, 0xf8, 0x39, 0x24, 0xc3, + 0x59, 0x38, 0x6e, 0xdb, 0xde, 0x39, 0x34, 0x4c, 0xbe, 0x44, 0x27, 0xd0, 0x30, 0x7f, 0x89, 0xc4, + 0x96, 0xbe, 0xcf, 0xee, 0x1e, 0x33, 0x64, 0x03, 0xa2, 0x0e, 0xd4, 0x15, 0xff, 0x49, 0x33, 0x33, + 0x98, 0x72, 0xe3, 0xfd, 0xb6, 0x00, 0x19, 0xf6, 0x8c, 0x49, 0x45, 0xe8, 0xaf, 0x2b, 0x2a, 0x55, + 0x01, 0x27, 0x2c, 0x65, 0x4a, 0xcf, 0xf6, 0x1e, 0x29, 0x37, 0x77, 0x4b, 0x20, 0x0c, 0xee, 0x8a, + 0x25, 0x8a, 0x8a, 0x62, 0xb8, 0xc5, 0x79, 0xb5, 0x45, 0xc7, 0xe0, 0x4a, 0x2e, 0xd4, 0xe5, 0x62, + 0xad, 0x07, 0xd8, 0x1c, 0x74, 0x76, 0x6d, 0x4e, 0xb9, 0x50, 0xc4, 0x29, 0xa0, 0xd1, 0xda, 0xfb, + 0x08, 0x47, 0x95, 0x6d, 0x1a, 0x33, 0xa9, 0xa8, 0xa8, 0xec, 0xbc, 0x04, 0xd7, 0xf4, 0xa1, 0x0d, + 0xfd, 0xa3, 0xdf, 0x8a, 0xf3, 0x1e, 0x42, 0xf7, 0x96, 0x98, 0xcc, 0x79, 0x26, 0xa9, 0xd7, 0x85, + 0x07, 0x26, 0x74, 0x9e, 0x47, 0xc5, 0x94, 0x4d, 0x60, 0xf4, 0xf6, 0xdb, 0x9b, 0x98, 0xa9, 0xef, + 0x57, 0x0b, 0x7f, 0xc9, 0xd3, 0x40, 0x57, 0xe0, 0x22, 0x2e, 0x17, 0xc1, 0xe6, 0xe1, 0xc5, 0x34, + 0x0b, 0xf2, 0xc5, 0x71, 0xcc, 0x83, 0x9b, 0x6f, 0x71, 0xe1, 0xe8, 0x57, 0x78, 0xf2, 0x37, 0x00, + 0x00, 0xff, 0xff, 0x5f, 0x55, 0xa8, 0x93, 0xd2, 0x03, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/project_attributes.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/project_attributes.pb.go index 349d2cfd85..befb738eb7 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/project_attributes.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/project_attributes.pb.go @@ -24,11 +24,13 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type ProjectAttributes struct { // Unique project id for which this set of attributes will be applied. - Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` - MatchingAttributes *MatchingAttributes `protobuf:"bytes,2,opt,name=matching_attributes,json=matchingAttributes,proto3" json:"matching_attributes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + MatchingAttributes *MatchingAttributes `protobuf:"bytes,2,opt,name=matching_attributes,json=matchingAttributes,proto3" json:"matching_attributes,omitempty"` + // Optional, org key applied to the project. + Org string `protobuf:"bytes,3,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProjectAttributes) Reset() { *m = ProjectAttributes{} } @@ -70,6 +72,13 @@ func (m *ProjectAttributes) GetMatchingAttributes() *MatchingAttributes { return nil } +func (m *ProjectAttributes) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Sets custom attributes for a project // For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type ProjectAttributesUpdateRequest struct { @@ -152,10 +161,12 @@ type ProjectAttributesGetRequest struct { Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` // Which type of matchable attributes to return. // +required - ResourceType MatchableResource `protobuf:"varint,2,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ResourceType MatchableResource `protobuf:"varint,2,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` + // Optional, org key applied to the project. + Org string `protobuf:"bytes,3,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProjectAttributesGetRequest) Reset() { *m = ProjectAttributesGetRequest{} } @@ -197,6 +208,13 @@ func (m *ProjectAttributesGetRequest) GetResourceType() MatchableResource { return MatchableResource_TASK_RESOURCE } +func (m *ProjectAttributesGetRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Response to get an individual project level attribute override. // For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type ProjectAttributesGetResponse struct { @@ -246,10 +264,12 @@ type ProjectAttributesDeleteRequest struct { Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` // Which type of matchable attributes to delete. // +required - ResourceType MatchableResource `protobuf:"varint,2,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ResourceType MatchableResource `protobuf:"varint,2,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` + // Optional, org key applied to the project. + Org string `protobuf:"bytes,3,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProjectAttributesDeleteRequest) Reset() { *m = ProjectAttributesDeleteRequest{} } @@ -291,6 +311,13 @@ func (m *ProjectAttributesDeleteRequest) GetResourceType() MatchableResource { return MatchableResource_TASK_RESOURCE } +func (m *ProjectAttributesDeleteRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Purposefully empty, may be populated in the future. type ProjectAttributesDeleteResponse struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -338,25 +365,26 @@ func init() { } var fileDescriptor_cb8dc9faa9640256 = []byte{ - // 317 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x92, 0x31, 0x4f, 0xc3, 0x30, - 0x10, 0x85, 0x65, 0x06, 0x10, 0x06, 0x2a, 0x11, 0x96, 0x0a, 0x10, 0xb4, 0x5e, 0xe8, 0x42, 0x2c, - 0xc1, 0x88, 0x18, 0x8a, 0x10, 0x4c, 0x95, 0x90, 0x81, 0x85, 0xa5, 0x72, 0xd2, 0x23, 0x0d, 0x4a, - 0x62, 0xe3, 0x5c, 0x86, 0x4c, 0x48, 0xfd, 0xe5, 0x48, 0x4e, 0xdc, 0xa6, 0x4d, 0xba, 0xc1, 0x96, - 0x58, 0xef, 0xde, 0xfb, 0xfc, 0x7c, 0xf4, 0xea, 0x33, 0x29, 0x11, 0xe2, 0x59, 0xc2, 0xe5, 0x2c, - 0x8d, 0x33, 0xae, 0x8d, 0xfa, 0x82, 0x10, 0xa7, 0x12, 0xd1, 0xc4, 0x41, 0x81, 0x90, 0xfb, 0xda, - 0x28, 0x54, 0x5e, 0xcf, 0x09, 0x7d, 0x2b, 0x3c, 0xdd, 0x1c, 0x4c, 0x25, 0x86, 0x73, 0x19, 0x24, - 0x30, 0x35, 0x90, 0xab, 0xc2, 0x84, 0x50, 0x0d, 0xb2, 0x05, 0xa1, 0xc7, 0x2f, 0x95, 0xeb, 0x78, - 0x69, 0xea, 0xf5, 0xe9, 0x5e, 0x1d, 0xd5, 0x27, 0x03, 0x32, 0xda, 0x17, 0xee, 0xd7, 0x7b, 0xa5, - 0x27, 0xd6, 0x2b, 0xce, 0xa2, 0x06, 0x45, 0x7f, 0x67, 0x40, 0x46, 0x07, 0x37, 0xcc, 0x5f, 0xc7, - 0xf0, 0x27, 0xb5, 0x74, 0x65, 0x2d, 0xbc, 0xb4, 0x75, 0xc6, 0x42, 0x7a, 0xd1, 0x62, 0x78, 0xd7, - 0x33, 0x89, 0x20, 0xe0, 0xbb, 0x80, 0x1c, 0xbd, 0x31, 0xa5, 0x8d, 0x34, 0x62, 0xd3, 0x86, 0x9b, - 0x69, 0x2d, 0x0f, 0xd1, 0x18, 0x62, 0x43, 0x7a, 0xb9, 0x35, 0x24, 0xd7, 0x2a, 0xcb, 0x81, 0xfd, - 0xd0, 0xb3, 0x96, 0xe4, 0x19, 0xd0, 0x41, 0x6c, 0x6f, 0xe5, 0x89, 0x1e, 0xb9, 0x5e, 0xa7, 0x58, - 0x6a, 0xb0, 0x7d, 0xf4, 0xda, 0x84, 0x13, 0xf7, 0x0c, 0xa2, 0x56, 0x8b, 0x43, 0x37, 0xf7, 0x56, - 0x6a, 0x60, 0x92, 0x9e, 0x77, 0x03, 0x54, 0x80, 0x7f, 0x51, 0xc3, 0x82, 0x74, 0x94, 0xfd, 0x08, - 0x09, 0xac, 0xca, 0xfe, 0xff, 0x7b, 0x76, 0xbd, 0x85, 0x63, 0xa8, 0xae, 0xfa, 0x70, 0xff, 0x71, - 0x17, 0xc5, 0x38, 0x2f, 0x02, 0x3f, 0x54, 0x29, 0xb7, 0xfe, 0xca, 0x44, 0xd5, 0x07, 0x5f, 0x6e, - 0x77, 0x04, 0x19, 0xd7, 0xc1, 0x75, 0xa4, 0xf8, 0xfa, 0xc2, 0x07, 0xbb, 0x76, 0xbd, 0x6f, 0x7f, - 0x03, 0x00, 0x00, 0xff, 0xff, 0xda, 0x8d, 0xf5, 0x81, 0x42, 0x03, 0x00, 0x00, + // 332 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x93, 0x4f, 0x4b, 0xc3, 0x40, + 0x10, 0xc5, 0x59, 0x0b, 0x8a, 0xa3, 0x16, 0x8d, 0x97, 0xa0, 0xa2, 0x6d, 0x2e, 0xf6, 0x62, 0x02, + 0x7a, 0x14, 0x0f, 0x15, 0xd1, 0x53, 0x41, 0xa2, 0x5e, 0xbc, 0x94, 0x4d, 0x3a, 0x6e, 0x23, 0x49, + 0x76, 0xdd, 0x4c, 0x0e, 0xfd, 0x18, 0x42, 0x3f, 0xb0, 0xb8, 0xe9, 0xf6, 0x5f, 0xd2, 0x9b, 0xe0, + 0x6d, 0x13, 0xde, 0xbc, 0xf7, 0xdb, 0xb7, 0x0c, 0x5c, 0x7e, 0xa4, 0x13, 0xc2, 0x64, 0x94, 0x06, + 0x7c, 0x94, 0x25, 0x79, 0xa0, 0xb4, 0xfc, 0xc4, 0x98, 0x86, 0x9c, 0x48, 0x27, 0x51, 0x49, 0x58, + 0xf8, 0x4a, 0x4b, 0x92, 0x4e, 0xdb, 0x0a, 0x7d, 0x23, 0x3c, 0x59, 0x1f, 0xcc, 0x38, 0xc5, 0x63, + 0x1e, 0xa5, 0x38, 0xd4, 0x58, 0xc8, 0x52, 0xc7, 0x58, 0x0d, 0x7a, 0x53, 0x06, 0x47, 0xcf, 0x95, + 0x6b, 0x7f, 0x6e, 0xea, 0xb8, 0xb0, 0x33, 0x8b, 0x72, 0x59, 0x87, 0xf5, 0x76, 0x43, 0xfb, 0xe9, + 0xbc, 0xc0, 0xb1, 0xf1, 0x4a, 0x72, 0xb1, 0x44, 0xe1, 0x6e, 0x75, 0x58, 0x6f, 0xef, 0xda, 0xf3, + 0x57, 0x31, 0xfc, 0xc1, 0x4c, 0xba, 0xb0, 0x0e, 0x9d, 0xac, 0xf6, 0xcf, 0x39, 0x84, 0x96, 0xd4, + 0xc2, 0x6d, 0x99, 0xa8, 0xdf, 0xa3, 0x17, 0xc3, 0x79, 0x8d, 0xea, 0x4d, 0x8d, 0x38, 0x61, 0x88, + 0x5f, 0x25, 0x16, 0xe4, 0xf4, 0x01, 0x96, 0xf2, 0x99, 0xc9, 0xef, 0xae, 0xe7, 0xd7, 0x3c, 0xc2, + 0xa5, 0x21, 0xaf, 0x0b, 0x17, 0x1b, 0x43, 0x0a, 0x25, 0xf3, 0x02, 0xbd, 0x6f, 0x06, 0xa7, 0x35, + 0xcd, 0x13, 0x92, 0xa5, 0xd8, 0x5c, 0xd4, 0x23, 0x1c, 0xd8, 0xaa, 0x87, 0x34, 0x51, 0x68, 0x2a, + 0x6a, 0xd7, 0x11, 0x07, 0xf6, 0x65, 0xc2, 0x99, 0x3a, 0xdc, 0xb7, 0x73, 0xaf, 0x13, 0x85, 0x0d, + 0xdd, 0x70, 0x38, 0x6b, 0x46, 0xaa, 0x98, 0xff, 0xa2, 0x99, 0x29, 0x6b, 0xe8, 0xff, 0x01, 0x53, + 0x5c, 0xf4, 0xff, 0x1f, 0x37, 0x6f, 0x7a, 0x30, 0x4b, 0x55, 0x5d, 0xfe, 0xfe, 0xee, 0xfd, 0x56, + 0x24, 0x34, 0x2e, 0x23, 0x3f, 0x96, 0x59, 0x60, 0x12, 0xa5, 0x16, 0xd5, 0x21, 0x98, 0x2f, 0x85, + 0xc0, 0x3c, 0x50, 0xd1, 0x95, 0x90, 0xc1, 0xea, 0x9e, 0x44, 0xdb, 0x66, 0x2b, 0x6e, 0x7e, 0x02, + 0x00, 0x00, 0xff, 0xff, 0x54, 0xae, 0x47, 0x2e, 0x79, 0x03, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/project_domain_attributes.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/project_domain_attributes.pb.go index 4708ef1e5e..610eb7d08f 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/project_domain_attributes.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/project_domain_attributes.pb.go @@ -26,11 +26,13 @@ type ProjectDomainAttributes struct { // Unique project id for which this set of attributes will be applied. Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` // Unique domain id for which this set of attributes will be applied. - Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` - MatchingAttributes *MatchingAttributes `protobuf:"bytes,3,opt,name=matching_attributes,json=matchingAttributes,proto3" json:"matching_attributes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` + MatchingAttributes *MatchingAttributes `protobuf:"bytes,3,opt,name=matching_attributes,json=matchingAttributes,proto3" json:"matching_attributes,omitempty"` + // Optional, org key applied to the attributes. + Org string `protobuf:"bytes,4,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProjectDomainAttributes) Reset() { *m = ProjectDomainAttributes{} } @@ -79,6 +81,13 @@ func (m *ProjectDomainAttributes) GetMatchingAttributes() *MatchingAttributes { return nil } +func (m *ProjectDomainAttributes) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Sets custom attributes for a project-domain combination. // For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type ProjectDomainAttributesUpdateRequest struct { @@ -164,10 +173,12 @@ type ProjectDomainAttributesGetRequest struct { Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` // Which type of matchable attributes to return. // +required - ResourceType MatchableResource `protobuf:"varint,3,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ResourceType MatchableResource `protobuf:"varint,3,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` + // Optional, org key applied to the attributes. + Org string `protobuf:"bytes,4,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProjectDomainAttributesGetRequest) Reset() { *m = ProjectDomainAttributesGetRequest{} } @@ -216,6 +227,13 @@ func (m *ProjectDomainAttributesGetRequest) GetResourceType() MatchableResource return MatchableResource_TASK_RESOURCE } +func (m *ProjectDomainAttributesGetRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Response to get an individual project domain attribute override. // For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type ProjectDomainAttributesGetResponse struct { @@ -268,10 +286,12 @@ type ProjectDomainAttributesDeleteRequest struct { Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` // Which type of matchable attributes to delete. // +required - ResourceType MatchableResource `protobuf:"varint,3,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ResourceType MatchableResource `protobuf:"varint,3,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` + // Optional, org key applied to the attributes. + Org string `protobuf:"bytes,4,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProjectDomainAttributesDeleteRequest) Reset() { *m = ProjectDomainAttributesDeleteRequest{} } @@ -320,6 +340,13 @@ func (m *ProjectDomainAttributesDeleteRequest) GetResourceType() MatchableResour return MatchableResource_TASK_RESOURCE } +func (m *ProjectDomainAttributesDeleteRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Purposefully empty, may be populated in the future. type ProjectDomainAttributesDeleteResponse struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -367,27 +394,28 @@ func init() { } var fileDescriptor_e8ab0b551a649f05 = []byte{ - // 342 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x53, 0x4f, 0x4b, 0xfb, 0x40, - 0x10, 0x65, 0x7f, 0x3f, 0xa8, 0x38, 0x6a, 0x0f, 0x11, 0x34, 0x78, 0x6a, 0x17, 0xa5, 0xbd, 0x98, - 0x40, 0x3d, 0x8a, 0x07, 0xa5, 0xd8, 0x93, 0x20, 0x51, 0x2f, 0x5e, 0x42, 0xfe, 0x8c, 0x69, 0x24, - 0xc9, 0xae, 0xc9, 0xe4, 0xd0, 0x0f, 0x23, 0xf4, 0xa3, 0x8a, 0xbb, 0xd9, 0xfe, 0xd3, 0x28, 0x82, - 0xe0, 0x2d, 0x93, 0xbc, 0x79, 0xef, 0xe5, 0x3d, 0x06, 0x9c, 0xa7, 0x6c, 0x46, 0x98, 0xc6, 0x99, - 0x1b, 0xc4, 0x79, 0x5a, 0xb8, 0xb2, 0x14, 0xcf, 0x18, 0x91, 0x1f, 0x8b, 0x3c, 0x48, 0x0b, 0x3f, - 0x20, 0x2a, 0xd3, 0xb0, 0x26, 0xac, 0x1c, 0x59, 0x0a, 0x12, 0x56, 0xd7, 0xe0, 0x1d, 0x85, 0x3f, - 0x1a, 0x6c, 0xec, 0xe7, 0x01, 0x45, 0xd3, 0x20, 0xcc, 0xd0, 0x2f, 0xb1, 0x12, 0x75, 0x19, 0xa1, - 0x5e, 0xe4, 0x73, 0x06, 0x87, 0xb7, 0x9a, 0x7c, 0xac, 0xb8, 0x2f, 0x17, 0xd4, 0x96, 0x0d, 0x5b, - 0x8d, 0xae, 0xcd, 0x7a, 0x6c, 0xb8, 0xed, 0x99, 0xd1, 0x3a, 0x80, 0x8e, 0x76, 0x62, 0xff, 0x53, - 0x1f, 0x9a, 0xc9, 0xba, 0x83, 0x7d, 0xa5, 0x94, 0x16, 0xc9, 0x8a, 0x47, 0xfb, 0x7f, 0x8f, 0x0d, - 0x77, 0x46, 0xdc, 0x59, 0x37, 0xe9, 0xdc, 0x34, 0xd0, 0xa5, 0xa4, 0x67, 0xe5, 0x1f, 0xde, 0x71, - 0x01, 0xc7, 0x2d, 0x0e, 0x1f, 0x64, 0x1c, 0x10, 0x7a, 0xf8, 0x52, 0x63, 0x45, 0xd6, 0x04, 0x60, - 0x45, 0x93, 0x29, 0xcd, 0xc1, 0xa6, 0x66, 0x0b, 0x93, 0xb7, 0xb2, 0xca, 0x07, 0x70, 0xf2, 0x8d, - 0x60, 0x25, 0x45, 0x51, 0x21, 0x7f, 0x65, 0xd0, 0x6f, 0x41, 0x4e, 0x90, 0x8c, 0xaf, 0x9f, 0xc7, - 0x78, 0x0d, 0x7b, 0xa6, 0x26, 0x9f, 0x66, 0x12, 0x55, 0x80, 0xdd, 0x51, 0xff, 0xd3, 0x00, 0xdf, - 0x5b, 0xf5, 0x1a, 0xb4, 0xb7, 0x6b, 0xf6, 0xee, 0x67, 0x12, 0x79, 0x0e, 0xfc, 0x2b, 0x7b, 0xfa, - 0x2f, 0x7e, 0x2f, 0xb7, 0x39, 0x6b, 0x6d, 0x6a, 0x8c, 0x19, 0x2e, 0x9b, 0xfa, 0xbb, 0x44, 0xda, - 0xab, 0x35, 0x0e, 0x75, 0x28, 0x57, 0x17, 0x8f, 0xe7, 0x49, 0x4a, 0xd3, 0x3a, 0x74, 0x22, 0x91, - 0xbb, 0x4a, 0x45, 0x94, 0x89, 0x7e, 0x70, 0x17, 0xc7, 0x95, 0x60, 0xe1, 0xca, 0xf0, 0x34, 0x11, - 0xee, 0xfa, 0xbd, 0x85, 0x1d, 0x75, 0x5d, 0x67, 0x6f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd5, 0x3f, - 0x53, 0x68, 0xc8, 0x03, 0x00, 0x00, + // 355 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x93, 0x4f, 0x4b, 0xc3, 0x40, + 0x10, 0xc5, 0x59, 0x2b, 0x15, 0x47, 0x2d, 0xb2, 0x82, 0x06, 0x4f, 0x6d, 0x50, 0xda, 0x8b, 0x09, + 0xd4, 0xa3, 0x78, 0x50, 0x8a, 0x3d, 0x09, 0x12, 0xf5, 0xe2, 0x25, 0xe4, 0xcf, 0x98, 0x46, 0x92, + 0xec, 0xba, 0xd9, 0x1c, 0xfa, 0xa9, 0x84, 0x7e, 0x42, 0xe9, 0x26, 0xdb, 0xa6, 0xb5, 0x51, 0x04, + 0x0f, 0xde, 0x76, 0x93, 0x99, 0x79, 0xbf, 0x7d, 0x8f, 0x01, 0xeb, 0x35, 0x99, 0x4a, 0x8c, 0xc3, + 0xc4, 0xf6, 0xc2, 0x34, 0xce, 0x6c, 0x2e, 0xd8, 0x1b, 0x06, 0xd2, 0x0d, 0x59, 0xea, 0xc5, 0x99, + 0xeb, 0x49, 0x29, 0x62, 0xbf, 0x90, 0x98, 0x5b, 0x5c, 0x30, 0xc9, 0x68, 0x47, 0xd7, 0x5b, 0xaa, + 0xfe, 0xb4, 0xbf, 0xd6, 0x9f, 0x7a, 0x32, 0x98, 0x78, 0x7e, 0x82, 0xae, 0xc0, 0x9c, 0x15, 0x22, + 0xc0, 0xb2, 0xd1, 0x9c, 0x11, 0x38, 0x79, 0x28, 0x87, 0x8f, 0xd4, 0xec, 0x9b, 0xc5, 0x68, 0x6a, + 0xc0, 0x4e, 0xa5, 0x6b, 0x90, 0x2e, 0x19, 0xec, 0x3a, 0xfa, 0x4a, 0x8f, 0xa1, 0x5d, 0x92, 0x18, + 0x5b, 0xea, 0x47, 0x75, 0xa3, 0x8f, 0x70, 0xa4, 0x94, 0xe2, 0x2c, 0xaa, 0x31, 0x1a, 0xad, 0x2e, + 0x19, 0xec, 0x0d, 0x4d, 0x6b, 0x15, 0xd2, 0xba, 0xaf, 0x4a, 0x97, 0x92, 0x0e, 0x4d, 0xbf, 0x7c, + 0xa3, 0x87, 0xd0, 0x62, 0x22, 0x32, 0xb6, 0x95, 0xd2, 0xfc, 0x68, 0x32, 0x38, 0x6b, 0x60, 0x7e, + 0xe6, 0xa1, 0x27, 0xd1, 0xc1, 0xf7, 0x02, 0x73, 0x49, 0xc7, 0x00, 0x35, 0x0a, 0xa2, 0x28, 0xfa, + 0xeb, 0x14, 0x0d, 0x93, 0x9c, 0x5a, 0xab, 0xd9, 0x87, 0xf3, 0x1f, 0x04, 0x73, 0xce, 0xb2, 0x1c, + 0xcd, 0x0f, 0x02, 0xbd, 0x86, 0xca, 0x31, 0x4a, 0xcd, 0xf5, 0x7b, 0x63, 0xef, 0xe0, 0x40, 0x07, + 0xe7, 0xca, 0x29, 0x47, 0x65, 0x69, 0x67, 0xd8, 0xdb, 0x68, 0xe9, 0x3c, 0x67, 0xa7, 0xaa, 0x76, + 0xf6, 0x75, 0xdf, 0xd3, 0x94, 0xe3, 0x06, 0x2f, 0x53, 0x30, 0xbf, 0x03, 0x2e, 0xdf, 0xf5, 0x77, + 0x4e, 0xce, 0x48, 0x63, 0x76, 0x23, 0x4c, 0x70, 0x99, 0xdd, 0x7f, 0xf2, 0xa8, 0x39, 0x7e, 0xcd, + 0x5c, 0xda, 0x74, 0x7b, 0xfd, 0x72, 0x15, 0xc5, 0x72, 0x52, 0xf8, 0x56, 0xc0, 0x52, 0x5b, 0xe9, + 0x32, 0x11, 0x95, 0x07, 0x7b, 0xb1, 0x92, 0x11, 0x66, 0x36, 0xf7, 0x2f, 0x22, 0x66, 0xaf, 0x6e, + 0xa9, 0xdf, 0x56, 0x3b, 0x79, 0xf9, 0x19, 0x00, 0x00, 0xff, 0xff, 0x21, 0xef, 0xc1, 0x38, 0xfe, + 0x03, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/workflow_attributes.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/workflow_attributes.pb.go index 5b3d82dce6..7d7b831b1a 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/workflow_attributes.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/workflow_attributes.pb.go @@ -28,11 +28,13 @@ type WorkflowAttributes struct { // Unique domain id for which this set of attributes will be applied. Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` // Workflow name for which this set of attributes will be applied. - Workflow string `protobuf:"bytes,3,opt,name=workflow,proto3" json:"workflow,omitempty"` - MatchingAttributes *MatchingAttributes `protobuf:"bytes,4,opt,name=matching_attributes,json=matchingAttributes,proto3" json:"matching_attributes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Workflow string `protobuf:"bytes,3,opt,name=workflow,proto3" json:"workflow,omitempty"` + MatchingAttributes *MatchingAttributes `protobuf:"bytes,4,opt,name=matching_attributes,json=matchingAttributes,proto3" json:"matching_attributes,omitempty"` + // Optional, org key applied to the attributes. + Org string `protobuf:"bytes,5,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *WorkflowAttributes) Reset() { *m = WorkflowAttributes{} } @@ -88,6 +90,13 @@ func (m *WorkflowAttributes) GetMatchingAttributes() *MatchingAttributes { return nil } +func (m *WorkflowAttributes) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Sets custom attributes for a project, domain and workflow combination. // For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type WorkflowAttributesUpdateRequest struct { @@ -175,10 +184,12 @@ type WorkflowAttributesGetRequest struct { Workflow string `protobuf:"bytes,3,opt,name=workflow,proto3" json:"workflow,omitempty"` // Which type of matchable attributes to return. // +required - ResourceType MatchableResource `protobuf:"varint,4,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ResourceType MatchableResource `protobuf:"varint,4,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` + // Optional, org key applied to the attributes. + Org string `protobuf:"bytes,5,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *WorkflowAttributesGetRequest) Reset() { *m = WorkflowAttributesGetRequest{} } @@ -234,6 +245,13 @@ func (m *WorkflowAttributesGetRequest) GetResourceType() MatchableResource { return MatchableResource_TASK_RESOURCE } +func (m *WorkflowAttributesGetRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Response to get an individual workflow attribute override. type WorkflowAttributesGetResponse struct { Attributes *WorkflowAttributes `protobuf:"bytes,1,opt,name=attributes,proto3" json:"attributes,omitempty"` @@ -288,10 +306,12 @@ type WorkflowAttributesDeleteRequest struct { Workflow string `protobuf:"bytes,3,opt,name=workflow,proto3" json:"workflow,omitempty"` // Which type of matchable attributes to delete. // +required - ResourceType MatchableResource `protobuf:"varint,4,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ResourceType MatchableResource `protobuf:"varint,4,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` + // Optional, org key applied to the attributes. + Org string `protobuf:"bytes,5,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *WorkflowAttributesDeleteRequest) Reset() { *m = WorkflowAttributesDeleteRequest{} } @@ -347,6 +367,13 @@ func (m *WorkflowAttributesDeleteRequest) GetResourceType() MatchableResource { return MatchableResource_TASK_RESOURCE } +func (m *WorkflowAttributesDeleteRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Purposefully empty, may be populated in the future. type WorkflowAttributesDeleteResponse struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -394,27 +421,28 @@ func init() { } var fileDescriptor_8ba8a51ab86bc38c = []byte{ - // 349 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x93, 0x4f, 0x4b, 0xc3, 0x40, - 0x10, 0xc5, 0x59, 0x95, 0xaa, 0xa3, 0xf6, 0xb0, 0x82, 0x84, 0xa2, 0x58, 0xf7, 0x62, 0x2f, 0x26, - 0x50, 0x8f, 0xe2, 0xc1, 0x22, 0x7a, 0xf2, 0x12, 0x15, 0xc1, 0x4b, 0xc9, 0x9f, 0x69, 0x1a, 0x4d, - 0xb2, 0xeb, 0x66, 0x43, 0xe9, 0xf7, 0x12, 0xfa, 0xf5, 0xc4, 0x4d, 0xb6, 0x7f, 0x4c, 0x7a, 0xeb, - 0xc1, 0x5b, 0xa7, 0xfb, 0x66, 0xe6, 0x97, 0xf7, 0x18, 0xe8, 0x8d, 0x92, 0xa9, 0xc2, 0x38, 0x4c, - 0x1c, 0x2f, 0x4c, 0xe3, 0xcc, 0x99, 0x70, 0xf9, 0x39, 0x4a, 0xf8, 0x64, 0xe8, 0x29, 0x25, 0x63, - 0xbf, 0x50, 0x98, 0xdb, 0x42, 0x72, 0xc5, 0x69, 0xdb, 0x28, 0x6d, 0xad, 0xec, 0x5c, 0xfe, 0xe9, - 0x4c, 0x3d, 0x15, 0x8c, 0x3d, 0x3f, 0xc1, 0xa1, 0xc4, 0x9c, 0x17, 0x32, 0xc0, 0xb2, 0x91, 0xcd, - 0x08, 0xd0, 0xb7, 0x6a, 0xec, 0xdd, 0x7c, 0x2a, 0xb5, 0x60, 0x57, 0x48, 0xfe, 0x81, 0x81, 0xb2, - 0x48, 0x97, 0xf4, 0xf6, 0x5d, 0x53, 0xd2, 0x13, 0x68, 0x85, 0x3c, 0xf5, 0xe2, 0xcc, 0xda, 0xd2, - 0x0f, 0x55, 0x45, 0x3b, 0xb0, 0x67, 0xf0, 0xac, 0x6d, 0xfd, 0x32, 0xaf, 0xe9, 0x33, 0x1c, 0x6b, - 0x80, 0x38, 0x8b, 0x96, 0xd0, 0xad, 0x9d, 0x2e, 0xe9, 0x1d, 0xf4, 0x99, 0xbd, 0xca, 0x6e, 0x3f, - 0x55, 0xd2, 0x05, 0x8e, 0x4b, 0xd3, 0xda, 0x7f, 0x0c, 0xe1, 0xbc, 0x0e, 0xfe, 0x2a, 0x42, 0x4f, - 0xa1, 0x8b, 0x5f, 0x05, 0xe6, 0x8a, 0x0e, 0x00, 0x96, 0xd6, 0x91, 0xe6, 0x75, 0xf5, 0x21, 0xee, - 0x52, 0x17, 0x63, 0xd0, 0x5d, 0xbf, 0x26, 0x17, 0x3c, 0xcb, 0x91, 0x7d, 0x13, 0x38, 0xad, 0x8b, - 0x1e, 0x51, 0x19, 0x90, 0xcd, 0xda, 0xf9, 0x00, 0x47, 0x26, 0xc5, 0xa1, 0x9a, 0x0a, 0xd4, 0x46, - 0xb6, 0xfb, 0x17, 0x8d, 0x46, 0xfe, 0x86, 0xee, 0x56, 0x6a, 0xf7, 0xd0, 0xf4, 0xbd, 0x4c, 0x05, - 0xb2, 0x00, 0xce, 0xd6, 0x50, 0x97, 0xdf, 0xb5, 0x11, 0xff, 0x66, 0xa4, 0x29, 0xa7, 0x7b, 0x4c, - 0x70, 0x91, 0xd3, 0xff, 0xb4, 0xa7, 0x31, 0x79, 0x03, 0x5e, 0x3a, 0x34, 0xb8, 0x7d, 0xbf, 0x89, - 0x62, 0x35, 0x2e, 0x7c, 0x3b, 0xe0, 0xa9, 0xa3, 0x17, 0x70, 0x19, 0x95, 0x3f, 0x9c, 0xf9, 0x0d, - 0x46, 0x98, 0x39, 0xc2, 0xbf, 0x8a, 0xb8, 0xb3, 0x7a, 0x96, 0x7e, 0x4b, 0x1f, 0xe1, 0xf5, 0x4f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x90, 0x9e, 0xe0, 0xf5, 0xe9, 0x03, 0x00, 0x00, + // 362 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x53, 0x4d, 0x4b, 0xc3, 0x40, + 0x10, 0x65, 0xad, 0x56, 0x1d, 0xb5, 0xc8, 0x0a, 0x12, 0x8a, 0x62, 0xcd, 0xc5, 0x5e, 0x4c, 0xa0, + 0x1e, 0xc5, 0x83, 0x45, 0xf4, 0xe4, 0x25, 0x2a, 0x82, 0x97, 0x92, 0x8f, 0x69, 0x1a, 0x4d, 0xb2, + 0xeb, 0x66, 0x43, 0xe9, 0x1f, 0x14, 0xfa, 0xaf, 0xa4, 0x9b, 0x6c, 0x3f, 0x4c, 0x7a, 0xeb, 0xc5, + 0xdb, 0xce, 0xee, 0x9b, 0x99, 0xf7, 0xde, 0xec, 0x40, 0x77, 0x18, 0x4f, 0x24, 0x46, 0x41, 0x6c, + 0xbb, 0x41, 0x12, 0xa5, 0xf6, 0x98, 0x89, 0xaf, 0x61, 0xcc, 0xc6, 0x03, 0x57, 0x4a, 0x11, 0x79, + 0xb9, 0xc4, 0xcc, 0xe2, 0x82, 0x49, 0x46, 0x5b, 0x1a, 0x69, 0x29, 0x64, 0xfb, 0xea, 0x4f, 0x66, + 0xe2, 0x4a, 0x7f, 0xe4, 0x7a, 0x31, 0x0e, 0x04, 0x66, 0x2c, 0x17, 0x3e, 0x16, 0x89, 0xe6, 0x94, + 0x00, 0x7d, 0x2f, 0xcb, 0xde, 0xcf, 0xab, 0x52, 0x03, 0x76, 0xb9, 0x60, 0x9f, 0xe8, 0x4b, 0x83, + 0x74, 0x48, 0x77, 0xdf, 0xd1, 0x21, 0x3d, 0x85, 0x66, 0xc0, 0x12, 0x37, 0x4a, 0x8d, 0x2d, 0xf5, + 0x50, 0x46, 0xb4, 0x0d, 0x7b, 0x9a, 0x9e, 0xd1, 0x50, 0x2f, 0xf3, 0x98, 0xbe, 0xc0, 0x89, 0x22, + 0x10, 0xa5, 0xe1, 0x12, 0x75, 0x63, 0xbb, 0x43, 0xba, 0x07, 0x3d, 0xd3, 0x5a, 0xe5, 0x6e, 0x3d, + 0x97, 0xd0, 0x05, 0x1d, 0x87, 0x26, 0x95, 0x3b, 0x7a, 0x0c, 0x0d, 0x26, 0x42, 0x63, 0x47, 0xf5, + 0x9a, 0x1d, 0x4d, 0x84, 0x8b, 0xaa, 0x94, 0x37, 0x1e, 0xb8, 0x12, 0x1d, 0xfc, 0xce, 0x31, 0x93, + 0xb4, 0x0f, 0xb0, 0x44, 0x80, 0xd4, 0x13, 0xa8, 0x16, 0x71, 0x96, 0xb2, 0x4c, 0x13, 0x3a, 0xeb, + 0xdb, 0x64, 0x9c, 0xa5, 0x19, 0x9a, 0x3f, 0x04, 0xce, 0xaa, 0xa0, 0x27, 0x94, 0x9a, 0xc8, 0x66, + 0x0d, 0x7e, 0x84, 0x23, 0x3d, 0xd7, 0x81, 0x9c, 0x70, 0x54, 0xd6, 0xb6, 0x7a, 0x97, 0xb5, 0xd6, + 0xce, 0xbe, 0x81, 0x53, 0xa2, 0x9d, 0x43, 0x9d, 0xf7, 0x3a, 0xe1, 0x58, 0xe3, 0xa9, 0x0f, 0xe7, + 0x6b, 0x74, 0x14, 0x4a, 0x37, 0xe2, 0xe8, 0x94, 0xd4, 0x4d, 0xee, 0x01, 0x63, 0x5c, 0x4c, 0xee, + 0xbf, 0x18, 0x56, 0xfb, 0x3b, 0xb4, 0x94, 0xc2, 0xb3, 0xfe, 0xdd, 0xc7, 0x6d, 0x18, 0xc9, 0x51, + 0xee, 0x59, 0x3e, 0x4b, 0x6c, 0xd5, 0x92, 0x89, 0xb0, 0x38, 0xd8, 0xf3, 0xcd, 0x0d, 0x31, 0xb5, + 0xb9, 0x77, 0x1d, 0x32, 0x7b, 0x75, 0x99, 0xbd, 0xa6, 0x5a, 0xdd, 0x9b, 0xdf, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xf4, 0x79, 0x1c, 0x80, 0x1f, 0x04, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.swagger.json b/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.swagger.json index 8617ff5fee..93f70d35ef 100644 --- a/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/artifact/artifacts.swagger.json @@ -512,6 +512,13 @@ "INPUTS", "OUTPUTS" ] + }, + { + "name": "exec_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ @@ -1417,6 +1424,10 @@ "version": { "type": "string", "description": "Specific version of the resource." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "description": "Encapsulation of fields that uniquely identifies a Flyte resource." @@ -2012,6 +2023,10 @@ "name": { "type": "string", "description": "User or system provided value for the resource." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "title": "Encapsulation of fields that uniquely identifies a Flyte workflow execution" diff --git a/flyteidl/gen/pb-go/flyteidl/core/identifier.pb.go b/flyteidl/gen/pb-go/flyteidl/core/identifier.pb.go index 4ea56b88f2..bb4d3264e4 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/identifier.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/core/identifier.pb.go @@ -70,7 +70,9 @@ type Identifier struct { // User provided value for the resource. Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` // Specific version of the resource. - Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"` + Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,6,opt,name=org,proto3" json:"org,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -136,6 +138,13 @@ func (m *Identifier) GetVersion() string { return "" } +func (m *Identifier) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Encapsulation of fields that uniquely identifies a Flyte workflow execution type WorkflowExecutionIdentifier struct { // Name of the project the resource belongs to. @@ -144,7 +153,9 @@ type WorkflowExecutionIdentifier struct { // A domain can be considered as a subset within a specific project. Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` // User or system provided value for the resource. - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,5,opt,name=org,proto3" json:"org,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -196,6 +207,13 @@ func (m *WorkflowExecutionIdentifier) GetName() string { return "" } +func (m *WorkflowExecutionIdentifier) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Encapsulation of fields that identify a Flyte node execution entity. type NodeExecutionIdentifier struct { NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` @@ -362,35 +380,36 @@ func init() { func init() { proto.RegisterFile("flyteidl/core/identifier.proto", fileDescriptor_adfa846a86e1fa0c) } var fileDescriptor_adfa846a86e1fa0c = []byte{ - // 467 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x53, 0x41, 0x8f, 0xd2, 0x50, - 0x10, 0xb6, 0x2c, 0x02, 0x3b, 0x05, 0xb7, 0xbe, 0x83, 0xd4, 0x90, 0x98, 0x4d, 0x4d, 0xcc, 0x66, - 0x13, 0xdb, 0x04, 0x6f, 0xc6, 0x83, 0x75, 0x97, 0x8d, 0xcd, 0x22, 0xbb, 0x29, 0x25, 0x24, 0x5e, - 0x48, 0x69, 0x87, 0xfa, 0x04, 0xfa, 0x9a, 0xd7, 0x87, 0xda, 0x8b, 0x89, 0x7f, 0xc8, 0x9f, 0xe1, - 0xef, 0x32, 0xaf, 0x94, 0xdd, 0x42, 0x40, 0x2f, 0x7b, 0xeb, 0xcc, 0xf7, 0xbd, 0xf9, 0xbe, 0x99, - 0xce, 0xc0, 0x8b, 0xd9, 0x22, 0x13, 0x48, 0xc3, 0x85, 0x15, 0x30, 0x8e, 0x16, 0x0d, 0x31, 0x16, - 0x74, 0x46, 0x91, 0x9b, 0x09, 0x67, 0x82, 0x91, 0xd6, 0x06, 0x37, 0x25, 0x6e, 0xfc, 0x56, 0x00, - 0x9c, 0x3b, 0x0e, 0x79, 0x0f, 0x2d, 0x8e, 0x29, 0x5b, 0xf1, 0x00, 0x27, 0x22, 0x4b, 0x50, 0x57, - 0x4e, 0x95, 0xb3, 0x27, 0xdd, 0x8e, 0xb9, 0xf5, 0xca, 0x74, 0x0b, 0x8e, 0x97, 0x25, 0xe8, 0x36, - 0x79, 0x29, 0x22, 0x3a, 0xd4, 0x13, 0xce, 0xbe, 0x62, 0x20, 0xf4, 0xca, 0xa9, 0x72, 0x76, 0xec, - 0x6e, 0x42, 0xf2, 0x0c, 0x6a, 0x21, 0x5b, 0xfa, 0x34, 0xd6, 0x8f, 0x72, 0xa0, 0x88, 0x08, 0x81, - 0x6a, 0xec, 0x2f, 0x51, 0xaf, 0xe6, 0xd9, 0xfc, 0x5b, 0x56, 0xf9, 0x86, 0x3c, 0xa5, 0x2c, 0xd6, - 0x1f, 0xaf, 0xab, 0x14, 0xa1, 0x11, 0x40, 0x67, 0xcc, 0xf8, 0x7c, 0xb6, 0x60, 0xdf, 0x7b, 0x3f, - 0x30, 0x58, 0x09, 0xca, 0xe2, 0x52, 0x03, 0x25, 0x79, 0xe5, 0x90, 0x7c, 0xe5, 0x7f, 0xf2, 0xc6, - 0x2f, 0x05, 0xda, 0x03, 0x16, 0xe2, 0x3e, 0x85, 0x36, 0xd4, 0x63, 0x16, 0xe2, 0x84, 0x86, 0x85, - 0x42, 0x4d, 0x86, 0x4e, 0x48, 0x3e, 0x41, 0x13, 0x37, 0x7c, 0x89, 0x4a, 0x19, 0xb5, 0x7b, 0xbe, - 0x33, 0xba, 0x7f, 0x98, 0x77, 0x55, 0xbc, 0x4f, 0x1a, 0x7f, 0x14, 0x68, 0x7b, 0x7e, 0x3a, 0xdf, - 0xe7, 0xa1, 0x0b, 0x75, 0xe1, 0xa7, 0xf3, 0x8d, 0x07, 0xb5, 0xfb, 0x7c, 0x47, 0xa5, 0x54, 0xb4, - 0x26, 0x99, 0x4e, 0x48, 0x5c, 0x78, 0x9a, 0xfb, 0xde, 0xe3, 0xf1, 0xd5, 0xce, 0xeb, 0x03, 0xad, - 0xbb, 0x27, 0xf1, 0x36, 0x40, 0x5e, 0xca, 0x75, 0x11, 0x3c, 0x9b, 0xf8, 0x42, 0xe0, 0x32, 0x11, - 0xf9, 0x9f, 0x6d, 0xc9, 0x8d, 0x10, 0x3c, 0xb3, 0xd7, 0x39, 0xe3, 0x27, 0x68, 0x43, 0x1a, 0xc5, - 0xfe, 0xa2, 0xd4, 0x40, 0x07, 0x8e, 0xd3, 0x3c, 0x77, 0x3f, 0xc6, 0x46, 0x5a, 0x90, 0x1e, 0x78, - 0x90, 0xe7, 0x23, 0x68, 0x96, 0xf7, 0x95, 0x9c, 0x80, 0x3a, 0x1a, 0x0c, 0x6f, 0x7b, 0x17, 0xce, - 0x95, 0xd3, 0xbb, 0xd4, 0x1e, 0x91, 0x06, 0x54, 0x3d, 0x7b, 0x78, 0xad, 0x29, 0xa4, 0x09, 0x8d, - 0xf1, 0x8d, 0x7b, 0x7d, 0xd5, 0xbf, 0x19, 0x6b, 0x15, 0x49, 0xec, 0xdb, 0xa3, 0xc1, 0xc5, 0xc7, - 0xc9, 0x6d, 0xdf, 0x1e, 0x68, 0x47, 0x44, 0x85, 0xfa, 0xa5, 0xed, 0xd9, 0xc3, 0x9e, 0xa7, 0x55, - 0x3f, 0xbc, 0xfb, 0xfc, 0x36, 0xa2, 0xe2, 0xcb, 0x6a, 0x6a, 0x06, 0x6c, 0x69, 0xe5, 0xde, 0x18, - 0x8f, 0xd6, 0x1f, 0xd6, 0xdd, 0x11, 0x46, 0x18, 0x5b, 0xc9, 0xf4, 0x75, 0xc4, 0xac, 0xad, 0xbb, - 0x9c, 0xd6, 0xf2, 0x6b, 0x7c, 0xf3, 0x37, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x34, 0xd8, 0xe0, 0xaf, - 0x03, 0x00, 0x00, + // 481 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x53, 0xcf, 0x8f, 0xd2, 0x40, + 0x14, 0xb6, 0x0b, 0x5b, 0xd8, 0x57, 0x70, 0xeb, 0x1c, 0xa4, 0x86, 0xc4, 0x6c, 0x30, 0x31, 0x9b, + 0x4d, 0x6c, 0x13, 0xbc, 0x19, 0x0f, 0xd6, 0x5d, 0x36, 0x36, 0x8b, 0xec, 0xa6, 0x94, 0x90, 0x78, + 0x21, 0xa5, 0x7d, 0xd4, 0x11, 0xe8, 0x34, 0xd3, 0x41, 0xed, 0xc5, 0xc4, 0xff, 0xcc, 0x93, 0x7f, + 0x97, 0x99, 0x52, 0x96, 0x42, 0x58, 0xbd, 0x78, 0x7b, 0x3f, 0xbe, 0x79, 0xdf, 0xf7, 0xde, 0xbc, + 0x07, 0xcf, 0x67, 0x8b, 0x4c, 0x20, 0x0d, 0x17, 0x56, 0xc0, 0x38, 0x5a, 0x34, 0xc4, 0x58, 0xd0, + 0x19, 0x45, 0x6e, 0x26, 0x9c, 0x09, 0x46, 0x9a, 0x9b, 0xbc, 0x29, 0xf3, 0x9d, 0x5f, 0x0a, 0x80, + 0x73, 0x8f, 0x21, 0xef, 0xa0, 0xc9, 0x31, 0x65, 0x2b, 0x1e, 0xe0, 0x44, 0x64, 0x09, 0x1a, 0xca, + 0x99, 0x72, 0xfe, 0xb8, 0xdb, 0x36, 0x77, 0x5e, 0x99, 0x6e, 0x81, 0xf1, 0xb2, 0x04, 0xdd, 0x06, + 0x2f, 0x79, 0xc4, 0x80, 0x5a, 0xc2, 0xd9, 0x17, 0x0c, 0x84, 0x71, 0x74, 0xa6, 0x9c, 0x9f, 0xb8, + 0x1b, 0x97, 0x3c, 0x05, 0x35, 0x64, 0x4b, 0x9f, 0xc6, 0x46, 0x25, 0x4f, 0x14, 0x1e, 0x21, 0x50, + 0x8d, 0xfd, 0x25, 0x1a, 0xd5, 0x3c, 0x9a, 0xdb, 0xb2, 0xca, 0x57, 0xe4, 0x29, 0x65, 0xb1, 0x71, + 0xbc, 0xae, 0x52, 0xb8, 0x44, 0x87, 0x0a, 0xe3, 0x91, 0xa1, 0xe6, 0x51, 0x69, 0x76, 0x56, 0xd0, + 0x1e, 0x33, 0x3e, 0x9f, 0x2d, 0xd8, 0xb7, 0xde, 0x77, 0x0c, 0x56, 0x82, 0xb2, 0xb8, 0xd4, 0x52, + 0x49, 0x90, 0xf2, 0x90, 0xa0, 0xa3, 0x7f, 0x0a, 0x2a, 0x68, 0x8f, 0xb7, 0xb4, 0x3f, 0x15, 0x68, + 0x0d, 0x58, 0x88, 0x87, 0x38, 0x5b, 0x50, 0x8b, 0x59, 0x88, 0x13, 0x1a, 0x16, 0x9c, 0xaa, 0x74, + 0x9d, 0x90, 0x7c, 0x84, 0x06, 0x6e, 0xf0, 0x32, 0x2b, 0x89, 0xb5, 0xee, 0xc5, 0xde, 0x78, 0xff, + 0xd2, 0x8e, 0xab, 0xe1, 0x36, 0xd8, 0xf9, 0xad, 0x40, 0xcb, 0xf3, 0xd3, 0xf9, 0x21, 0x0d, 0x5d, + 0xa8, 0x09, 0x3f, 0x9d, 0x6f, 0x34, 0x68, 0xdd, 0x67, 0x7b, 0x2c, 0xa5, 0xa2, 0xaa, 0x44, 0x3a, + 0x21, 0x71, 0xe1, 0x49, 0xae, 0xfb, 0x80, 0xc6, 0x97, 0x7b, 0xaf, 0x1f, 0x68, 0xdd, 0x3d, 0x8d, + 0x77, 0x13, 0xe4, 0x85, 0x5c, 0x29, 0xc1, 0xb3, 0x89, 0x2f, 0x04, 0x2e, 0x13, 0x91, 0xff, 0x7e, + 0x53, 0x6e, 0x8d, 0xe0, 0x99, 0xbd, 0x8e, 0x75, 0x7e, 0x80, 0x3e, 0xa4, 0x51, 0xec, 0x2f, 0x4a, + 0x0d, 0xb4, 0xe1, 0x24, 0xcd, 0x63, 0xdb, 0x31, 0xd6, 0xd3, 0x02, 0xf4, 0x9f, 0x07, 0x79, 0x31, + 0x82, 0x46, 0x79, 0xa7, 0xc9, 0x29, 0x68, 0xa3, 0xc1, 0xf0, 0xae, 0x77, 0xe9, 0x5c, 0x3b, 0xbd, + 0x2b, 0xfd, 0x11, 0xa9, 0x43, 0xd5, 0xb3, 0x87, 0x37, 0xba, 0x42, 0x1a, 0x50, 0x1f, 0xdf, 0xba, + 0x37, 0xd7, 0xfd, 0xdb, 0xb1, 0x7e, 0x24, 0x81, 0x7d, 0x7b, 0x34, 0xb8, 0xfc, 0x30, 0xb9, 0xeb, + 0xdb, 0x03, 0xbd, 0x42, 0x34, 0xa8, 0x5d, 0xd9, 0x9e, 0x3d, 0xec, 0x79, 0x7a, 0xf5, 0xfd, 0xdb, + 0x4f, 0x6f, 0x22, 0x2a, 0x3e, 0xaf, 0xa6, 0x66, 0xc0, 0x96, 0x56, 0xae, 0x8d, 0xf1, 0x68, 0x6d, + 0x58, 0xf7, 0x87, 0x1a, 0x61, 0x6c, 0x25, 0xd3, 0x57, 0x11, 0xb3, 0x76, 0x6e, 0x77, 0xaa, 0xe6, + 0x17, 0xfb, 0xfa, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0xea, 0x9d, 0xb8, 0xd3, 0x03, 0x00, + 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/core/workflow.pb.go b/flyteidl/gen/pb-go/flyteidl/core/workflow.pb.go index 8ab1496330..1556ddd8c3 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/workflow.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/core/workflow.pb.go @@ -647,7 +647,7 @@ type ArrayNode struct { // node is the sub-node that will be executed for each element in the array. Node *Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` // parallelism defines the minimum number of instances to bring up concurrently at any given - // point. Note that this is an optimistic restriction and that, due to network partitioning or + // point. Note that this is an optimistic restriction and that, due to network orging or // other failures, the actual number of currently running instances might be more. This has to // be a positive number if assigned. Default value is size. Parallelism uint32 `protobuf:"varint,2,opt,name=parallelism,proto3" json:"parallelism,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go b/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go index 1095091b5c..e1225ffa0a 100644 --- a/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go @@ -1319,11 +1319,15 @@ func (m *Partition) GetValue() string { // // DatasetID message that is composed of several string fields. type DatasetID struct { - Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Domain string `protobuf:"bytes,3,opt,name=domain,proto3" json:"domain,omitempty"` - Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` - UUID string `protobuf:"bytes,5,opt,name=UUID,proto3" json:"UUID,omitempty"` + Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Domain string `protobuf:"bytes,3,opt,name=domain,proto3" json:"domain,omitempty"` + Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + UUID string `protobuf:"bytes,5,opt,name=UUID,proto3" json:"UUID,omitempty"` + // Optional, partition key applied to the dataset. + Partition string `protobuf:"bytes,6,opt,name=partition,proto3" json:"partition,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,7,opt,name=org,proto3" json:"org,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1389,6 +1393,20 @@ func (m *DatasetID) GetUUID() string { return "" } +func (m *DatasetID) GetPartition() string { + if m != nil { + return m.Partition + } + return "" +} + +func (m *DatasetID) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // // Artifact message. It is composed of several string fields. type Artifact struct { @@ -2039,6 +2057,7 @@ type DatasetPropertyFilter struct { // *DatasetPropertyFilter_Name // *DatasetPropertyFilter_Domain // *DatasetPropertyFilter_Version + // *DatasetPropertyFilter_Partition Property isDatasetPropertyFilter_Property `protobuf_oneof:"property"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2090,6 +2109,10 @@ type DatasetPropertyFilter_Version struct { Version string `protobuf:"bytes,4,opt,name=version,proto3,oneof"` } +type DatasetPropertyFilter_Partition struct { + Partition string `protobuf:"bytes,5,opt,name=partition,proto3,oneof"` +} + func (*DatasetPropertyFilter_Project) isDatasetPropertyFilter_Property() {} func (*DatasetPropertyFilter_Name) isDatasetPropertyFilter_Property() {} @@ -2098,6 +2121,8 @@ func (*DatasetPropertyFilter_Domain) isDatasetPropertyFilter_Property() {} func (*DatasetPropertyFilter_Version) isDatasetPropertyFilter_Property() {} +func (*DatasetPropertyFilter_Partition) isDatasetPropertyFilter_Property() {} + func (m *DatasetPropertyFilter) GetProperty() isDatasetPropertyFilter_Property { if m != nil { return m.Property @@ -2133,6 +2158,13 @@ func (m *DatasetPropertyFilter) GetVersion() string { return "" } +func (m *DatasetPropertyFilter) GetPartition() string { + if x, ok := m.GetProperty().(*DatasetPropertyFilter_Partition); ok { + return x.Partition + } + return "" +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*DatasetPropertyFilter) XXX_OneofWrappers() []interface{} { return []interface{}{ @@ -2140,6 +2172,7 @@ func (*DatasetPropertyFilter) XXX_OneofWrappers() []interface{} { (*DatasetPropertyFilter_Name)(nil), (*DatasetPropertyFilter_Domain)(nil), (*DatasetPropertyFilter_Version)(nil), + (*DatasetPropertyFilter_Partition)(nil), } } @@ -2260,112 +2293,114 @@ func init() { } var fileDescriptor_275951237ff4368a = []byte{ - // 1675 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0x4b, 0x6f, 0xdb, 0xc6, - 0x13, 0x37, 0x25, 0x47, 0x32, 0x47, 0x96, 0x22, 0x6f, 0x6c, 0x47, 0x56, 0x12, 0x5b, 0x61, 0x02, - 0xff, 0x8d, 0xfc, 0x1b, 0x29, 0xb5, 0x93, 0xa0, 0x49, 0x8b, 0xb6, 0xb2, 0xa5, 0xd8, 0xaa, 0xe3, - 0x47, 0xe8, 0x07, 0xd0, 0x07, 0x20, 0xac, 0xcd, 0x35, 0xc3, 0x9a, 0x12, 0x19, 0x72, 0x9d, 0x5a, - 0xa7, 0xa2, 0x97, 0x1e, 0xda, 0xde, 0x0a, 0xf4, 0x0b, 0xf4, 0x83, 0xf4, 0x98, 0x5b, 0xbf, 0x50, - 0x2f, 0xc5, 0x92, 0xbb, 0x14, 0x49, 0x51, 0xb6, 0xe2, 0x43, 0x80, 0x5e, 0x08, 0xee, 0xee, 0xcc, - 0x6f, 0xe7, 0xb1, 0xb3, 0x33, 0xb3, 0xb0, 0x78, 0x62, 0xf6, 0x28, 0x31, 0x34, 0xb3, 0xa6, 0x61, - 0x8a, 0x8f, 0x31, 0xc5, 0xa6, 0xa5, 0x87, 0xff, 0xab, 0xb6, 0x63, 0x51, 0x0b, 0xe5, 0x42, 0x53, - 0xe5, 0xdb, 0x01, 0xd3, 0xb1, 0xe5, 0x90, 0x9a, 0x69, 0x50, 0xe2, 0x60, 0xd3, 0xf5, 0x49, 0xcb, - 0xf3, 0xba, 0x65, 0xe9, 0x26, 0xa9, 0x79, 0xa3, 0xa3, 0xb3, 0x93, 0x9a, 0x76, 0xe6, 0x60, 0x6a, - 0x58, 0x5d, 0xbe, 0xbe, 0x10, 0x5f, 0xa7, 0x46, 0x87, 0xb8, 0x14, 0x77, 0x6c, 0x9f, 0x40, 0x79, - 0x01, 0xd3, 0x6b, 0x0e, 0xc1, 0x94, 0x34, 0x30, 0xc5, 0x2e, 0xa1, 0x2a, 0x79, 0x73, 0x46, 0x5c, - 0x8a, 0xaa, 0x90, 0xd5, 0xfc, 0x99, 0x92, 0x54, 0x91, 0x96, 0x72, 0xcb, 0xd3, 0xd5, 0xb0, 0xa0, - 0x82, 0x5a, 0x10, 0x29, 0x37, 0x61, 0x26, 0x86, 0xe3, 0xda, 0x56, 0xd7, 0x25, 0x4a, 0x13, 0xa6, - 0xd6, 0x09, 0x8d, 0xa1, 0x3f, 0x8a, 0xa3, 0xcf, 0x26, 0xa1, 0xb7, 0x1a, 0x7d, 0xfc, 0x06, 0xa0, - 0x30, 0x8c, 0x0f, 0xfe, 0xde, 0x52, 0xfe, 0x21, 0x79, 0x30, 0x75, 0x87, 0x1a, 0x27, 0xf8, 0xf8, - 0xea, 0xe2, 0xa0, 0xbb, 0x90, 0xc3, 0x1c, 0xa4, 0x6d, 0x68, 0xa5, 0x54, 0x45, 0x5a, 0x92, 0x37, - 0xc6, 0x54, 0x10, 0x93, 0x2d, 0x0d, 0xdd, 0x82, 0x09, 0x8a, 0xf5, 0x76, 0x17, 0x77, 0x48, 0x29, - 0xcd, 0xd7, 0xb3, 0x14, 0xeb, 0xdb, 0xb8, 0x43, 0x56, 0x0b, 0x30, 0xf9, 0xe6, 0x8c, 0x38, 0xbd, - 0xf6, 0x6b, 0xdc, 0xd5, 0x4c, 0xa2, 0x6c, 0xc0, 0x8d, 0x88, 0x5c, 0x5c, 0xbf, 0x8f, 0x61, 0x42, - 0x20, 0x72, 0xc9, 0x66, 0x22, 0x92, 0x05, 0x0c, 0x01, 0x99, 0xf2, 0x95, 0x70, 0x44, 0x5c, 0xc9, - 0x2b, 0x60, 0x95, 0x60, 0x36, 0x8e, 0xc5, 0xbd, 0xba, 0x02, 0xf9, 0xba, 0xa6, 0xed, 0x63, 0x5d, - 0xa0, 0x2b, 0x90, 0xa6, 0x58, 0xe7, 0xc0, 0xc5, 0x08, 0x30, 0xa3, 0x62, 0x8b, 0x4a, 0x11, 0x0a, - 0x82, 0x89, 0xc3, 0xfc, 0x25, 0xc1, 0xf4, 0x4b, 0xc3, 0x0d, 0x14, 0x77, 0xaf, 0xee, 0x91, 0x27, - 0x90, 0x39, 0x31, 0x4c, 0x4a, 0x1c, 0xcf, 0x19, 0xb9, 0xe5, 0x3b, 0x11, 0x86, 0x17, 0xde, 0x52, - 0xf3, 0xdc, 0x76, 0x88, 0xeb, 0x1a, 0x56, 0x57, 0xe5, 0xc4, 0xe8, 0x73, 0x00, 0x1b, 0xeb, 0x46, - 0xd7, 0x0b, 0x1a, 0xcf, 0x4f, 0xb9, 0xe5, 0xf9, 0x08, 0xeb, 0x6e, 0xb0, 0xbc, 0x63, 0xb3, 0xaf, - 0xab, 0x86, 0x38, 0x94, 0x53, 0x98, 0x89, 0x29, 0xc0, 0x5d, 0xb7, 0x02, 0xb2, 0xb0, 0xa3, 0x5b, - 0x92, 0x2a, 0xe9, 0xe1, 0xf6, 0xee, 0xd3, 0xa1, 0x3b, 0x00, 0x5d, 0x72, 0x4e, 0xdb, 0xd4, 0x3a, - 0x25, 0x5d, 0xff, 0x54, 0xa9, 0x32, 0x9b, 0xd9, 0x67, 0x13, 0xca, 0x6f, 0x12, 0xdc, 0x60, 0xbb, - 0x71, 0xf5, 0x03, 0x6b, 0xf5, 0x75, 0x97, 0xae, 0xae, 0x7b, 0xea, 0xbd, 0x75, 0xd7, 0x7d, 0xe7, - 0xf5, 0xa5, 0xe1, 0xaa, 0x3f, 0x82, 0x09, 0xee, 0x15, 0xa1, 0x79, 0x72, 0x58, 0x06, 0x54, 0x97, - 0xe9, 0xfd, 0x8f, 0x04, 0x33, 0x07, 0xb6, 0x96, 0x70, 0xa8, 0x3f, 0x78, 0xe4, 0xa2, 0x87, 0x30, - 0xce, 0xa0, 0x4a, 0xe3, 0x9e, 0x62, 0x73, 0x89, 0x2e, 0x65, 0xdb, 0xaa, 0x1e, 0x19, 0x8b, 0xba, - 0x0e, 0xa1, 0xd8, 0x63, 0xb9, 0x96, 0x10, 0x75, 0x5b, 0x7c, 0x51, 0x0d, 0xc8, 0x06, 0xee, 0x86, - 0x67, 0x30, 0x1b, 0x57, 0x9e, 0x1b, 0x7a, 0x21, 0xaa, 0x8b, 0xe4, 0xd9, 0x2d, 0xa4, 0x89, 0x82, - 0x21, 0xaf, 0x12, 0x97, 0x38, 0x6f, 0x3d, 0x87, 0xb5, 0x1a, 0xe8, 0x09, 0x00, 0x37, 0x84, 0x60, - 0x18, 0x6e, 0x32, 0x99, 0x53, 0xb6, 0x34, 0x34, 0x17, 0xb2, 0x88, 0xef, 0x1d, 0x61, 0x0f, 0xe5, - 0x9d, 0x04, 0x77, 0xd6, 0x09, 0xdd, 0x71, 0x9a, 0xe7, 0x94, 0x74, 0xb5, 0xd0, 0x76, 0xc2, 0x47, - 0x75, 0x28, 0x38, 0xfd, 0xd9, 0xfe, 0xbe, 0xe5, 0xc8, 0xbe, 0x11, 0x39, 0xd5, 0x7c, 0x88, 0xc3, - 0xdf, 0xdf, 0xfa, 0xa1, 0x4b, 0x9c, 0xc0, 0x63, 0x6a, 0xd6, 0x1b, 0xb7, 0x34, 0xb4, 0x01, 0xe8, - 0x35, 0xc1, 0x0e, 0x3d, 0x22, 0x98, 0xb6, 0x8d, 0x2e, 0x65, 0x5c, 0x26, 0x0f, 0xe4, 0xb9, 0xaa, - 0x9f, 0xfe, 0xaa, 0x22, 0xfd, 0x55, 0x1b, 0x3c, 0x3d, 0xaa, 0x53, 0x01, 0x53, 0x8b, 0xf3, 0x28, - 0x7f, 0xa6, 0x20, 0x17, 0x92, 0xe2, 0xbf, 0x22, 0x37, 0x7a, 0x06, 0x40, 0xce, 0x6d, 0xc3, 0x21, - 0x6e, 0x1b, 0xd3, 0xd2, 0x38, 0x97, 0x31, 0x8e, 0xb0, 0x2f, 0x12, 0xbf, 0x2a, 0x73, 0xea, 0x3a, - 0x8d, 0x9c, 0xce, 0xcc, 0x48, 0xa7, 0x53, 0xf9, 0x0e, 0xe6, 0x87, 0xb9, 0x9b, 0x9f, 0xca, 0xe7, - 0x90, 0x0b, 0x59, 0x81, 0x1b, 0xad, 0x34, 0xcc, 0x68, 0x6a, 0x98, 0x58, 0xe9, 0xc1, 0x9c, 0x4a, - 0x4c, 0x82, 0x5d, 0xf2, 0xa1, 0x0f, 0x92, 0x72, 0x1b, 0xca, 0x49, 0x5b, 0xf3, 0x4c, 0xf5, 0x8b, - 0x04, 0x59, 0x1e, 0x1a, 0x68, 0x11, 0x52, 0x97, 0x06, 0x4f, 0xca, 0xd0, 0x22, 0xd6, 0x4d, 0x8d, - 0x64, 0x5d, 0x74, 0x1f, 0xf2, 0x36, 0x8b, 0x5f, 0xb6, 0xf7, 0x26, 0xe9, 0xb9, 0xa5, 0x74, 0x25, - 0xbd, 0x24, 0xab, 0xd1, 0x49, 0x65, 0x05, 0xe4, 0x5d, 0x31, 0x81, 0x8a, 0x90, 0x3e, 0x25, 0x3d, - 0x1e, 0xfc, 0xec, 0x17, 0x4d, 0xc3, 0xb5, 0xb7, 0xd8, 0x3c, 0x13, 0xa1, 0xea, 0x0f, 0x94, 0x1f, - 0x41, 0x0e, 0xc4, 0x43, 0x25, 0xc8, 0xda, 0x8e, 0xf5, 0x3d, 0xe1, 0xb5, 0x80, 0xac, 0x8a, 0x21, - 0x42, 0x30, 0x1e, 0x0a, 0x73, 0xef, 0x1f, 0xcd, 0x42, 0x46, 0xb3, 0x3a, 0xd8, 0xf0, 0x13, 0xa4, - 0xac, 0xf2, 0x11, 0x43, 0x79, 0x4b, 0x1c, 0x96, 0x53, 0xbc, 0x63, 0x27, 0xab, 0x62, 0xc8, 0x50, - 0x0e, 0x0e, 0x5a, 0x0d, 0xef, 0xca, 0x93, 0x55, 0xef, 0x5f, 0x79, 0x97, 0x82, 0x09, 0x71, 0x85, - 0xa1, 0x42, 0x60, 0x43, 0xd9, 0xb3, 0x55, 0xe8, 0x22, 0x4f, 0x8d, 0x76, 0x91, 0x8b, 0x8b, 0x38, - 0xfd, 0xfe, 0x17, 0xf1, 0xf8, 0x68, 0xce, 0x78, 0xca, 0xf2, 0x23, 0x37, 0xb3, 0x5b, 0xba, 0xe6, - 0xed, 0x33, 0x1b, 0xcb, 0x8f, 0x7c, 0x59, 0x0d, 0x51, 0xa2, 0xfb, 0x30, 0x4e, 0xb1, 0xee, 0x96, - 0x32, 0x1e, 0xc7, 0x60, 0x31, 0xe4, 0xad, 0xb2, 0xb0, 0x3d, 0xf6, 0x8a, 0x2b, 0x8d, 0x85, 0x6d, - 0xf6, 0xf2, 0xb0, 0xe5, 0xd4, 0x75, 0xaa, 0xec, 0xc2, 0x64, 0x58, 0xc3, 0xc0, 0x67, 0x52, 0xc8, - 0x67, 0x1f, 0x85, 0x0f, 0x01, 0x93, 0x5b, 0xf4, 0x11, 0x55, 0xd6, 0x47, 0x54, 0x5f, 0xfa, 0x7d, - 0x84, 0x38, 0x1c, 0x26, 0xa4, 0xf7, 0xb1, 0x9e, 0x08, 0xb4, 0x90, 0x90, 0x30, 0x23, 0xe9, 0x32, - 0xe4, 0xba, 0xf4, 0x68, 0xc5, 0xfc, 0x4f, 0x12, 0x4c, 0x08, 0x7b, 0xa3, 0xe7, 0x90, 0x3d, 0x25, - 0xbd, 0x76, 0x07, 0xdb, 0xbc, 0x58, 0xb8, 0x9b, 0xe8, 0x97, 0xea, 0x26, 0xe9, 0x6d, 0x61, 0xbb, - 0xd9, 0xa5, 0x4e, 0x4f, 0xcd, 0x9c, 0x7a, 0x83, 0xf2, 0x33, 0xc8, 0x85, 0xa6, 0x47, 0x0d, 0x85, - 0xe7, 0xa9, 0x4f, 0x24, 0x65, 0x07, 0x8a, 0xf1, 0xc2, 0x08, 0x7d, 0x0a, 0x59, 0xbf, 0x34, 0x72, - 0x13, 0x45, 0xd9, 0x33, 0xba, 0xba, 0x49, 0x76, 0x1d, 0xcb, 0x26, 0x0e, 0xed, 0xf9, 0xdc, 0xaa, - 0xe0, 0x50, 0xfe, 0x4e, 0xc3, 0x74, 0x12, 0x05, 0xfa, 0x02, 0x80, 0x25, 0xcf, 0x48, 0x85, 0x36, - 0x1f, 0x3f, 0x14, 0x51, 0x9e, 0x8d, 0x31, 0x55, 0xa6, 0x58, 0xe7, 0x00, 0xaf, 0xa0, 0x18, 0x9c, - 0xae, 0x76, 0xa4, 0xc8, 0xbd, 0x9f, 0x7c, 0x1a, 0x07, 0xc0, 0xae, 0x07, 0xfc, 0x1c, 0x72, 0x1b, - 0xae, 0x07, 0x4e, 0xe5, 0x88, 0xbe, 0xef, 0xee, 0x25, 0xc6, 0xd1, 0x00, 0x60, 0x41, 0x70, 0x73, - 0xbc, 0x4d, 0x28, 0x88, 0xba, 0x82, 0xc3, 0xf9, 0x31, 0xa6, 0x24, 0x1d, 0x85, 0x01, 0xb4, 0x3c, - 0xe7, 0xe5, 0x60, 0xbb, 0x30, 0xc1, 0x08, 0x30, 0xb5, 0x9c, 0x12, 0x54, 0xa4, 0xa5, 0xc2, 0xf2, - 0xe3, 0x4b, 0xfd, 0x50, 0x5d, 0xb3, 0x3a, 0x36, 0x76, 0x0c, 0x97, 0x95, 0xaa, 0x3e, 0xaf, 0x1a, - 0xa0, 0x28, 0x15, 0x40, 0x83, 0xeb, 0x08, 0x20, 0xd3, 0x7c, 0x75, 0x50, 0x7f, 0xb9, 0x57, 0x1c, - 0x5b, 0x9d, 0x82, 0xeb, 0x36, 0x07, 0xe4, 0x1a, 0x28, 0xeb, 0x30, 0x9b, 0xac, 0x7f, 0xbc, 0x86, - 0x94, 0x06, 0x6b, 0xc8, 0x55, 0x80, 0x09, 0x81, 0xa7, 0x7c, 0x06, 0x53, 0x03, 0x1e, 0x8e, 0x14, - 0x99, 0x52, 0xbc, 0x3d, 0x0c, 0x73, 0x7f, 0x0b, 0x37, 0x87, 0x38, 0x16, 0x3d, 0xf6, 0x43, 0x87, - 0x15, 0x0e, 0x12, 0x2f, 0x1c, 0xc2, 0x76, 0xda, 0x24, 0xbd, 0x43, 0x76, 0xde, 0x77, 0xb1, 0xc1, - 0xac, 0xcc, 0x82, 0xe6, 0x10, 0x9b, 0x11, 0xf0, 0xa7, 0x30, 0x19, 0xa6, 0x1a, 0x39, 0x99, 0xfc, - 0x2a, 0xc1, 0x4c, 0xa2, 0x37, 0x51, 0x39, 0x96, 0x59, 0x98, 0x5a, 0x22, 0xb7, 0x4c, 0x87, 0x73, - 0xcb, 0xc6, 0x18, 0xbf, 0x60, 0x4a, 0xd1, 0xec, 0xc2, 0x24, 0xe5, 0xf9, 0xa5, 0x1c, 0xcb, 0x2f, - 0x0c, 0x8b, 0x4f, 0x44, 0xb4, 0xf8, 0x3d, 0x05, 0x53, 0x03, 0xad, 0x0a, 0x93, 0xdc, 0x34, 0x3a, - 0x86, 0x2f, 0x47, 0x5e, 0xf5, 0x07, 0x6c, 0x36, 0xdc, 0x65, 0xf8, 0x03, 0xf4, 0x25, 0x64, 0x5d, - 0xcb, 0xa1, 0x9b, 0xa4, 0xe7, 0x09, 0x51, 0x58, 0x5e, 0xbc, 0xb8, 0x0f, 0xaa, 0xee, 0xf9, 0xd4, - 0xaa, 0x60, 0x43, 0x2f, 0x40, 0x66, 0xbf, 0x3b, 0x8e, 0xc6, 0x0f, 0x7f, 0x61, 0x79, 0x69, 0x04, - 0x0c, 0x8f, 0x5e, 0xed, 0xb3, 0x2a, 0x0f, 0x40, 0x0e, 0xe6, 0x51, 0x01, 0xa0, 0xd1, 0xdc, 0x5b, - 0x6b, 0x6e, 0x37, 0x5a, 0xdb, 0xeb, 0xc5, 0x31, 0x94, 0x07, 0xb9, 0x1e, 0x0c, 0x25, 0xe5, 0x36, - 0x64, 0xb9, 0x1c, 0x68, 0x0a, 0xf2, 0x6b, 0x6a, 0xb3, 0xbe, 0xdf, 0xda, 0xd9, 0x6e, 0xef, 0xb7, - 0xb6, 0x9a, 0xc5, 0xb1, 0xe5, 0x9f, 0xb3, 0x90, 0x63, 0x3e, 0x5a, 0xf3, 0x05, 0x40, 0x87, 0x90, - 0x8f, 0x3c, 0xd1, 0xa0, 0xe8, 0xed, 0x96, 0xf4, 0x0c, 0x54, 0x56, 0x2e, 0x22, 0xe1, 0xf5, 0xde, - 0x16, 0x40, 0xff, 0x69, 0x06, 0x45, 0x6f, 0xb6, 0x81, 0xa7, 0x9f, 0xf2, 0xc2, 0xd0, 0x75, 0x0e, - 0xf7, 0x35, 0x14, 0xa2, 0x8f, 0x0e, 0x28, 0x49, 0x88, 0x58, 0x23, 0x58, 0xbe, 0x77, 0x21, 0x0d, - 0x87, 0xde, 0x85, 0x5c, 0xe8, 0x95, 0x05, 0x0d, 0x88, 0x12, 0x07, 0xad, 0x0c, 0x27, 0xe0, 0x88, - 0x75, 0xc8, 0xf8, 0x4f, 0x1a, 0x28, 0x5a, 0x84, 0x46, 0x1e, 0x47, 0xca, 0xb7, 0x12, 0xd7, 0x38, - 0xc4, 0x21, 0xe4, 0x23, 0x2f, 0x08, 0x31, 0xb7, 0x24, 0x3d, 0x8f, 0xc4, 0xdc, 0x92, 0xfc, 0x00, - 0xb1, 0x07, 0x93, 0xe1, 0xee, 0x1c, 0x55, 0x06, 0x78, 0x62, 0xcf, 0x08, 0xe5, 0xbb, 0x17, 0x50, - 0xf4, 0x9d, 0x13, 0xed, 0x45, 0x63, 0xce, 0x49, 0xec, 0xd2, 0x63, 0xce, 0x19, 0xd2, 0xcc, 0xbe, - 0x81, 0xd9, 0xe4, 0xc6, 0x02, 0x3d, 0x88, 0xbb, 0x61, 0x78, 0xb3, 0x59, 0xfe, 0xff, 0x48, 0xb4, - 0x7c, 0x4b, 0x02, 0x68, 0xb0, 0xe4, 0x47, 0x8b, 0xb1, 0x76, 0x62, 0x48, 0x3b, 0x52, 0xfe, 0xdf, - 0xa5, 0x74, 0xfe, 0x36, 0xab, 0x6b, 0xdf, 0xd4, 0x75, 0x83, 0xbe, 0x3e, 0x3b, 0xaa, 0x1e, 0x5b, - 0x9d, 0x9a, 0x57, 0x87, 0x59, 0x8e, 0xee, 0xff, 0xd4, 0x82, 0xe7, 0x5d, 0x9d, 0x74, 0x6b, 0xf6, - 0xd1, 0x43, 0xdd, 0xaa, 0x25, 0x3d, 0x13, 0x1f, 0x65, 0xbc, 0x92, 0x70, 0xe5, 0xdf, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x62, 0x68, 0x58, 0x86, 0x45, 0x16, 0x00, 0x00, + // 1709 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x6f, 0xdb, 0x46, + 0x16, 0x37, 0x25, 0x5b, 0x32, 0x9f, 0x2c, 0x45, 0x9e, 0xd8, 0x8e, 0xac, 0x38, 0xb6, 0xc2, 0x04, + 0x5e, 0x23, 0xbb, 0x91, 0xb2, 0x76, 0x12, 0x6c, 0xb2, 0x8b, 0xdd, 0x95, 0x2d, 0xc5, 0x56, 0x1d, + 0x7f, 0x84, 0xfe, 0x00, 0xfa, 0x01, 0x08, 0x63, 0x73, 0xcc, 0xb0, 0xa6, 0x44, 0x86, 0x1c, 0xa7, + 0xd6, 0xb1, 0x97, 0x1e, 0x8a, 0xde, 0x0a, 0xf4, 0x1f, 0xe8, 0xb1, 0x87, 0xfe, 0x09, 0x3d, 0xe6, + 0xd6, 0x7f, 0xa8, 0x97, 0x62, 0xc8, 0x19, 0x8a, 0xa4, 0x28, 0x5b, 0xf1, 0x21, 0x40, 0x2f, 0x04, + 0x67, 0xe6, 0xbd, 0xdf, 0xbc, 0x8f, 0x79, 0xf3, 0xde, 0x1b, 0x58, 0x3e, 0x33, 0x7b, 0x94, 0x18, + 0x9a, 0x59, 0xd3, 0x30, 0xc5, 0xa7, 0x98, 0x62, 0xd3, 0xd2, 0xc3, 0xff, 0x55, 0xdb, 0xb1, 0xa8, + 0x85, 0x72, 0xa1, 0xa9, 0xf2, 0x42, 0xc0, 0x74, 0x6a, 0x39, 0xa4, 0x66, 0x1a, 0x94, 0x38, 0xd8, + 0x74, 0x7d, 0xd2, 0xf2, 0xa2, 0x6e, 0x59, 0xba, 0x49, 0x6a, 0xde, 0xe8, 0xe4, 0xe2, 0xac, 0xa6, + 0x5d, 0x38, 0x98, 0x1a, 0x56, 0x97, 0xaf, 0x2f, 0xc5, 0xd7, 0xa9, 0xd1, 0x21, 0x2e, 0xc5, 0x1d, + 0xdb, 0x27, 0x50, 0x5e, 0xc1, 0xcc, 0x86, 0x43, 0x30, 0x25, 0x0d, 0x4c, 0xb1, 0x4b, 0xa8, 0x4a, + 0xde, 0x5d, 0x10, 0x97, 0xa2, 0x2a, 0x64, 0x35, 0x7f, 0xa6, 0x24, 0x55, 0xa4, 0x95, 0xdc, 0xea, + 0x4c, 0x35, 0x2c, 0xa8, 0xa0, 0x16, 0x44, 0xca, 0x1d, 0x98, 0x8d, 0xe1, 0xb8, 0xb6, 0xd5, 0x75, + 0x89, 0xd2, 0x84, 0xe9, 0x4d, 0x42, 0x63, 0xe8, 0x4f, 0xe2, 0xe8, 0x73, 0x49, 0xe8, 0xad, 0x46, + 0x1f, 0xbf, 0x01, 0x28, 0x0c, 0xe3, 0x83, 0x7f, 0xb4, 0x94, 0x3f, 0x49, 0x1e, 0x4c, 0xdd, 0xa1, + 0xc6, 0x19, 0x3e, 0xbd, 0xb9, 0x38, 0xe8, 0x3e, 0xe4, 0x30, 0x07, 0x69, 0x1b, 0x5a, 0x29, 0x55, + 0x91, 0x56, 0xe4, 0xad, 0x31, 0x15, 0xc4, 0x64, 0x4b, 0x43, 0x77, 0x61, 0x92, 0x62, 0xbd, 0xdd, + 0xc5, 0x1d, 0x52, 0x4a, 0xf3, 0xf5, 0x2c, 0xc5, 0xfa, 0x2e, 0xee, 0x90, 0xf5, 0x02, 0x4c, 0xbd, + 0xbb, 0x20, 0x4e, 0xaf, 0xfd, 0x16, 0x77, 0x35, 0x93, 0x28, 0x5b, 0x70, 0x3b, 0x22, 0x17, 0xd7, + 0xef, 0x9f, 0x30, 0x29, 0x10, 0xb9, 0x64, 0xb3, 0x11, 0xc9, 0x02, 0x86, 0x80, 0x4c, 0xf9, 0x4c, + 0x38, 0x22, 0xae, 0xe4, 0x0d, 0xb0, 0x4a, 0x30, 0x17, 0xc7, 0xe2, 0x5e, 0x5d, 0x83, 0x7c, 0x5d, + 0xd3, 0x0e, 0xb1, 0x2e, 0xd0, 0x15, 0x48, 0x53, 0xac, 0x73, 0xe0, 0x62, 0x04, 0x98, 0x51, 0xb1, + 0x45, 0xa5, 0x08, 0x05, 0xc1, 0xc4, 0x61, 0x7e, 0x93, 0x60, 0xe6, 0xb5, 0xe1, 0x06, 0x8a, 0xbb, + 0x37, 0xf7, 0xc8, 0x33, 0xc8, 0x9c, 0x19, 0x26, 0x25, 0x8e, 0xe7, 0x8c, 0xdc, 0xea, 0xbd, 0x08, + 0xc3, 0x2b, 0x6f, 0xa9, 0x79, 0x69, 0x3b, 0xc4, 0x75, 0x0d, 0xab, 0xab, 0x72, 0x62, 0xf4, 0x5f, + 0x00, 0x1b, 0xeb, 0x46, 0xd7, 0x0b, 0x1a, 0xcf, 0x4f, 0xb9, 0xd5, 0xc5, 0x08, 0xeb, 0x7e, 0xb0, + 0xbc, 0x67, 0xb3, 0xaf, 0xab, 0x86, 0x38, 0x94, 0x73, 0x98, 0x8d, 0x29, 0xc0, 0x5d, 0xb7, 0x06, + 0xb2, 0xb0, 0xa3, 0x5b, 0x92, 0x2a, 0xe9, 0xe1, 0xf6, 0xee, 0xd3, 0xa1, 0x7b, 0x00, 0x5d, 0x72, + 0x49, 0xdb, 0xd4, 0x3a, 0x27, 0x5d, 0xff, 0x54, 0xa9, 0x32, 0x9b, 0x39, 0x64, 0x13, 0xca, 0x0f, + 0x12, 0xdc, 0x66, 0xbb, 0x71, 0xf5, 0x03, 0x6b, 0xf5, 0x75, 0x97, 0x6e, 0xae, 0x7b, 0xea, 0xa3, + 0x75, 0xd7, 0x7d, 0xe7, 0xf5, 0xa5, 0xe1, 0xaa, 0x3f, 0x81, 0x49, 0xee, 0x15, 0xa1, 0x79, 0x72, + 0x58, 0x06, 0x54, 0xd7, 0xe9, 0xfd, 0x87, 0x04, 0xb3, 0x47, 0xb6, 0x96, 0x70, 0xa8, 0x3f, 0x79, + 0xe4, 0xa2, 0xc7, 0x30, 0xce, 0xa0, 0x4a, 0xe3, 0x9e, 0x62, 0xf3, 0x89, 0x2e, 0x65, 0xdb, 0xaa, + 0x1e, 0x19, 0x8b, 0xba, 0x0e, 0xa1, 0xd8, 0x63, 0x99, 0x48, 0x88, 0xba, 0x1d, 0xbe, 0xa8, 0x06, + 0x64, 0x03, 0x77, 0xc3, 0x0b, 0x98, 0x8b, 0x2b, 0xcf, 0x0d, 0xbd, 0x14, 0xd5, 0x45, 0xf2, 0xec, + 0x16, 0xd2, 0x44, 0xc1, 0x90, 0x57, 0x89, 0x4b, 0x9c, 0xf7, 0x9e, 0xc3, 0x5a, 0x0d, 0xf4, 0x0c, + 0x80, 0x1b, 0x42, 0x30, 0x0c, 0x37, 0x99, 0xcc, 0x29, 0x5b, 0x1a, 0x9a, 0x0f, 0x59, 0xc4, 0xf7, + 0x8e, 0xb0, 0x87, 0xf2, 0x41, 0x82, 0x7b, 0x9b, 0x84, 0xee, 0x39, 0xcd, 0x4b, 0x4a, 0xba, 0x5a, + 0x68, 0x3b, 0xe1, 0xa3, 0x3a, 0x14, 0x9c, 0xfe, 0x6c, 0x7f, 0xdf, 0x72, 0x64, 0xdf, 0x88, 0x9c, + 0x6a, 0x3e, 0xc4, 0xe1, 0xef, 0x6f, 0x7d, 0xd3, 0x25, 0x4e, 0xe0, 0x31, 0x35, 0xeb, 0x8d, 0x5b, + 0x1a, 0xda, 0x02, 0xf4, 0x96, 0x60, 0x87, 0x9e, 0x10, 0x4c, 0xdb, 0x46, 0x97, 0x32, 0x2e, 0x93, + 0x07, 0xf2, 0x7c, 0xd5, 0x4f, 0x7f, 0x55, 0x91, 0xfe, 0xaa, 0x0d, 0x9e, 0x1e, 0xd5, 0xe9, 0x80, + 0xa9, 0xc5, 0x79, 0x94, 0x9f, 0x53, 0x90, 0x0b, 0x49, 0xf1, 0x57, 0x91, 0x1b, 0xbd, 0x00, 0x20, + 0x97, 0xb6, 0xe1, 0x10, 0xb7, 0x8d, 0x69, 0x69, 0x9c, 0xcb, 0x18, 0x47, 0x38, 0x14, 0x89, 0x5f, + 0x95, 0x39, 0x75, 0x9d, 0x46, 0x4e, 0x67, 0x66, 0xa4, 0xd3, 0xa9, 0x7c, 0x05, 0x8b, 0xc3, 0xdc, + 0xcd, 0x4f, 0xe5, 0x4b, 0xc8, 0x85, 0xac, 0xc0, 0x8d, 0x56, 0x1a, 0x66, 0x34, 0x35, 0x4c, 0xac, + 0xf4, 0x60, 0x5e, 0x25, 0x26, 0xc1, 0x2e, 0xf9, 0xd4, 0x07, 0x49, 0x59, 0x80, 0x72, 0xd2, 0xd6, + 0x3c, 0x53, 0x7d, 0x2f, 0x41, 0x96, 0x87, 0x06, 0x5a, 0x86, 0xd4, 0xb5, 0xc1, 0x93, 0x32, 0xb4, + 0x88, 0x75, 0x53, 0x23, 0x59, 0x17, 0x3d, 0x84, 0xbc, 0xcd, 0xe2, 0x97, 0xed, 0xbd, 0x4d, 0x7a, + 0x6e, 0x29, 0x5d, 0x49, 0xaf, 0xc8, 0x6a, 0x74, 0x52, 0x59, 0x03, 0x79, 0x5f, 0x4c, 0xa0, 0x22, + 0xa4, 0xcf, 0x49, 0x8f, 0x07, 0x3f, 0xfb, 0x45, 0x33, 0x30, 0xf1, 0x1e, 0x9b, 0x17, 0x22, 0x54, + 0xfd, 0x81, 0xf2, 0xab, 0x04, 0x72, 0x20, 0x1f, 0x2a, 0x41, 0xd6, 0x76, 0xac, 0xaf, 0x09, 0x2f, + 0x06, 0x64, 0x55, 0x0c, 0x11, 0x82, 0xf1, 0x50, 0x9c, 0x7b, 0xff, 0x68, 0x0e, 0x32, 0x9a, 0xd5, + 0xc1, 0x86, 0x9f, 0x21, 0x65, 0x95, 0x8f, 0x18, 0xca, 0x7b, 0xe2, 0xb0, 0xa4, 0xe2, 0x9d, 0x3b, + 0x59, 0x15, 0x43, 0x86, 0x72, 0x74, 0xd4, 0x6a, 0x78, 0x77, 0x9e, 0xac, 0x7a, 0xff, 0x68, 0x01, + 0xe4, 0x40, 0x0f, 0xef, 0xb8, 0xc9, 0x6a, 0x7f, 0x82, 0xe9, 0x61, 0x39, 0x7a, 0x29, 0xeb, 0xeb, + 0x61, 0x39, 0xba, 0xf2, 0x21, 0x05, 0x93, 0xe2, 0xce, 0x43, 0x85, 0xc0, 0xe8, 0xb2, 0x67, 0xdc, + 0xd0, 0xcd, 0x9f, 0x1a, 0xed, 0xe6, 0x17, 0x37, 0x77, 0xfa, 0xe3, 0x6f, 0xee, 0xf1, 0xd1, 0xbc, + 0xf7, 0x9c, 0x25, 0x54, 0xae, 0x8f, 0x5b, 0x9a, 0xf0, 0xf6, 0x99, 0x8b, 0x25, 0x54, 0xbe, 0xac, + 0x86, 0x28, 0xd1, 0x43, 0x18, 0xa7, 0x58, 0x77, 0x4b, 0x19, 0x8f, 0x63, 0xb0, 0x7a, 0xf2, 0x56, + 0x59, 0x9c, 0x9f, 0x7a, 0xd5, 0x98, 0xc6, 0xe2, 0x3c, 0x7b, 0x7d, 0x9c, 0x73, 0xea, 0x3a, 0x55, + 0xf6, 0x61, 0x2a, 0xac, 0x61, 0xe0, 0x63, 0x29, 0xe4, 0xe3, 0x7f, 0x84, 0x4f, 0x0d, 0x93, 0x5b, + 0x34, 0x1e, 0x55, 0xd6, 0x78, 0x54, 0x5f, 0xfb, 0x8d, 0x87, 0x38, 0x4d, 0x26, 0xa4, 0x0f, 0xb1, + 0x9e, 0x08, 0xb4, 0x94, 0x90, 0x61, 0x23, 0xf9, 0x35, 0xe4, 0xba, 0xf4, 0x68, 0xd5, 0xff, 0xb7, + 0x12, 0x4c, 0x0a, 0x7b, 0xa3, 0x97, 0x90, 0x3d, 0x27, 0xbd, 0x76, 0x07, 0xdb, 0xbc, 0xba, 0xb8, + 0x9f, 0xe8, 0x97, 0xea, 0x36, 0xe9, 0xed, 0x60, 0xbb, 0xd9, 0xa5, 0x4e, 0x4f, 0xcd, 0x9c, 0x7b, + 0x83, 0xf2, 0x0b, 0xc8, 0x85, 0xa6, 0x47, 0x8d, 0x9d, 0x97, 0xa9, 0x7f, 0x49, 0xca, 0x1e, 0x14, + 0xe3, 0x95, 0x14, 0xfa, 0x37, 0x64, 0xfd, 0x5a, 0xca, 0x4d, 0x14, 0xe5, 0xc0, 0xe8, 0xea, 0x26, + 0xd9, 0x77, 0x2c, 0x9b, 0x38, 0xb4, 0xe7, 0x73, 0xab, 0x82, 0x43, 0xf9, 0x3d, 0x0d, 0x33, 0x49, + 0x14, 0xe8, 0x7f, 0x00, 0x2c, 0xdb, 0x46, 0x4a, 0xba, 0xc5, 0xf8, 0xa1, 0x88, 0xf2, 0x6c, 0x8d, + 0xa9, 0x32, 0xc5, 0x3a, 0x07, 0x78, 0x03, 0xc5, 0xe0, 0x74, 0xb5, 0x23, 0x55, 0xf1, 0xc3, 0xe4, + 0xd3, 0x38, 0x00, 0x76, 0x2b, 0xe0, 0xe7, 0x90, 0xbb, 0x70, 0x2b, 0x70, 0x2a, 0x47, 0xf4, 0x7d, + 0xf7, 0x20, 0x31, 0x8e, 0x06, 0x00, 0x0b, 0x82, 0x9b, 0xe3, 0x6d, 0x43, 0x41, 0x14, 0x22, 0x1c, + 0xce, 0x8f, 0x31, 0x25, 0xe9, 0x28, 0x0c, 0xa0, 0xe5, 0x39, 0x2f, 0x07, 0xdb, 0x87, 0x49, 0x46, + 0x80, 0xa9, 0xe5, 0x94, 0xa0, 0x22, 0xad, 0x14, 0x56, 0x9f, 0x5e, 0xeb, 0x87, 0xea, 0x86, 0xd5, + 0xb1, 0xb1, 0x63, 0xb8, 0xac, 0xb6, 0xf5, 0x79, 0xd5, 0x00, 0x45, 0xa9, 0x00, 0x1a, 0x5c, 0x47, + 0x00, 0x99, 0xe6, 0x9b, 0xa3, 0xfa, 0xeb, 0x83, 0xe2, 0xd8, 0xfa, 0x34, 0xdc, 0xb2, 0x39, 0x20, + 0xd7, 0x40, 0xd9, 0x84, 0xb9, 0x64, 0xfd, 0xe3, 0x45, 0xa7, 0x34, 0x58, 0x74, 0xae, 0x03, 0x4c, + 0x0a, 0x3c, 0xe5, 0x3f, 0x30, 0x3d, 0xe0, 0xe1, 0x48, 0x55, 0x2a, 0xc5, 0xfb, 0xc9, 0x30, 0xf7, + 0x97, 0x70, 0x67, 0x88, 0x63, 0xd1, 0x53, 0x3f, 0x74, 0x58, 0xa5, 0x21, 0xf1, 0x4a, 0x23, 0x6c, + 0xa7, 0x6d, 0xd2, 0x3b, 0x66, 0xe7, 0x7d, 0x1f, 0x1b, 0xcc, 0xca, 0x2c, 0x68, 0x8e, 0xb1, 0x19, + 0x01, 0x7f, 0x0e, 0x53, 0x61, 0xaa, 0x91, 0xb3, 0xcf, 0x2f, 0x12, 0xcc, 0x26, 0x7a, 0x13, 0x95, + 0x63, 0x99, 0x88, 0xa9, 0x25, 0x72, 0xd1, 0x4c, 0x38, 0x17, 0x6d, 0x8d, 0xf1, 0x0b, 0xa6, 0x14, + 0xcd, 0x46, 0x4c, 0x52, 0x9e, 0x8f, 0xca, 0xb1, 0x7c, 0xc4, 0xb0, 0x44, 0x46, 0x5a, 0x0c, 0x67, + 0x9f, 0x09, 0xbe, 0xda, 0x9f, 0x8a, 0x68, 0xf9, 0x63, 0x0a, 0xa6, 0x07, 0x7a, 0x1f, 0xa6, 0x99, + 0x69, 0x74, 0x0c, 0x5f, 0xce, 0xbc, 0xea, 0x0f, 0xd8, 0x6c, 0xb8, 0x6d, 0xf1, 0x07, 0xe8, 0xff, + 0x90, 0x75, 0x2d, 0x87, 0x6e, 0x93, 0x9e, 0x27, 0x64, 0x61, 0x75, 0xf9, 0xea, 0xc6, 0xaa, 0x7a, + 0xe0, 0x53, 0xab, 0x82, 0x0d, 0xbd, 0x02, 0x99, 0xfd, 0xee, 0x39, 0x1a, 0x0f, 0x8e, 0xc2, 0xea, + 0xca, 0x08, 0x18, 0x1e, 0xbd, 0xda, 0x67, 0x55, 0x1e, 0x81, 0x1c, 0xcc, 0xa3, 0x02, 0x40, 0xa3, + 0x79, 0xb0, 0xd1, 0xdc, 0x6d, 0xb4, 0x76, 0x37, 0x8b, 0x63, 0x28, 0x0f, 0x72, 0x3d, 0x18, 0x4a, + 0xca, 0x02, 0x64, 0xb9, 0x1c, 0x68, 0x1a, 0xf2, 0x1b, 0x6a, 0xb3, 0x7e, 0xd8, 0xda, 0xdb, 0x6d, + 0x1f, 0xb6, 0x76, 0x9a, 0xc5, 0xb1, 0xd5, 0xef, 0xb2, 0x90, 0x63, 0x3e, 0xdc, 0xf0, 0x05, 0x40, + 0xc7, 0x90, 0x8f, 0xbc, 0xf9, 0xa0, 0xe8, 0xed, 0x97, 0xf4, 0xae, 0x54, 0x56, 0xae, 0x22, 0xe1, + 0x05, 0xe4, 0x0e, 0x40, 0xff, 0xad, 0x07, 0x45, 0x6f, 0xbe, 0x81, 0xb7, 0xa4, 0xf2, 0xd2, 0xd0, + 0x75, 0x0e, 0xf7, 0x39, 0x14, 0xa2, 0xaf, 0x18, 0x28, 0x49, 0x88, 0x58, 0x67, 0x59, 0x7e, 0x70, + 0x25, 0x0d, 0x87, 0xde, 0x87, 0x5c, 0xe8, 0xd9, 0x06, 0x0d, 0x88, 0x12, 0x07, 0xad, 0x0c, 0x27, + 0xe0, 0x88, 0x75, 0xc8, 0xf8, 0x6f, 0x24, 0x28, 0x5a, 0xd5, 0x46, 0x5e, 0x5b, 0xca, 0x77, 0x13, + 0xd7, 0x38, 0xc4, 0x31, 0xe4, 0x23, 0x4f, 0x12, 0x31, 0xb7, 0x24, 0xbd, 0xb7, 0xc4, 0xdc, 0x92, + 0xfc, 0xa2, 0x71, 0x00, 0x53, 0xe1, 0x76, 0x1f, 0x55, 0x06, 0x78, 0x62, 0xef, 0x12, 0xe5, 0xfb, + 0x57, 0x50, 0xf4, 0x9d, 0x13, 0x6d, 0x6e, 0x63, 0xce, 0x49, 0x6c, 0xfb, 0x63, 0xce, 0x19, 0xd2, + 0x1d, 0xbf, 0x83, 0xb9, 0xe4, 0x4e, 0x05, 0x3d, 0x8a, 0xbb, 0x61, 0x78, 0xf7, 0x5a, 0xfe, 0xfb, + 0x48, 0xb4, 0x7c, 0x4b, 0x02, 0x68, 0xb0, 0x87, 0x40, 0xcb, 0xb1, 0xfe, 0x64, 0x48, 0x7f, 0x53, + 0xfe, 0xdb, 0xb5, 0x74, 0xfe, 0x36, 0xeb, 0x1b, 0x5f, 0xd4, 0x75, 0x83, 0xbe, 0xbd, 0x38, 0xa9, + 0x9e, 0x5a, 0x9d, 0x9a, 0x57, 0xa7, 0x59, 0x8e, 0xee, 0xff, 0xd4, 0x82, 0xf7, 0x62, 0x9d, 0x74, + 0x6b, 0xf6, 0xc9, 0x63, 0xdd, 0xaa, 0x25, 0xbd, 0x3b, 0x9f, 0x64, 0xbc, 0x92, 0x71, 0xed, 0xcf, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x23, 0xbf, 0xe7, 0xc8, 0x96, 0x16, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go index 60bc47c3ec..6a44e26214 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go @@ -29,143 +29,173 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("flyteidl/service/admin.proto", fileDescriptor_5cfa31da1d67295d) } var fileDescriptor_5cfa31da1d67295d = []byte{ - // 2165 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x9a, 0xdf, 0x6f, 0x1d, 0x47, - 0x15, 0xc7, 0x35, 0x36, 0x02, 0x31, 0x4d, 0x62, 0x7b, 0x9a, 0x60, 0x67, 0x63, 0x27, 0xe9, 0xba, - 0x8e, 0x7f, 0xdf, 0x75, 0x93, 0xb4, 0x55, 0x43, 0xd3, 0xd4, 0xad, 0x9d, 0x2b, 0x43, 0x9a, 0x14, - 0x93, 0x82, 0x64, 0x21, 0x5d, 0xad, 0xef, 0x4e, 0x9c, 0x4d, 0xee, 0xbd, 0x7b, 0xbb, 0x3b, 0x76, - 0xb1, 0x2c, 0x8b, 0x1f, 0x42, 0x88, 0x0a, 0x89, 0x07, 0x7e, 0x08, 0x0a, 0x11, 0xa5, 0x50, 0xc4, - 0xcf, 0xf2, 0x02, 0x2a, 0xe2, 0xa5, 0x12, 0x02, 0x24, 0x5e, 0x78, 0x81, 0x77, 0x5e, 0xe8, 0x33, - 0x7f, 0x03, 0xda, 0x33, 0x33, 0x7b, 0x77, 0x76, 0x77, 0x76, 0x67, 0x4d, 0xca, 0x13, 0x6f, 0xf6, - 0x3d, 0xdf, 0x99, 0xf9, 0x9c, 0x33, 0x67, 0xce, 0xcc, 0xee, 0x0e, 0x9e, 0xbc, 0xd3, 0xd9, 0x67, - 0xd4, 0xf7, 0x3a, 0x4e, 0x44, 0xc3, 0x3d, 0xbf, 0x4d, 0x1d, 0xd7, 0xeb, 0xfa, 0xbd, 0x46, 0x3f, - 0x0c, 0x58, 0x40, 0x46, 0xa5, 0xb5, 0x21, 0xac, 0xd6, 0xe4, 0x4e, 0x10, 0xec, 0x74, 0xa8, 0xe3, - 0xf6, 0x7d, 0xc7, 0xed, 0xf5, 0x02, 0xe6, 0x32, 0x3f, 0xe8, 0x45, 0x5c, 0x6f, 0x0d, 0x7a, 0x83, - 0x5e, 0x9c, 0x7e, 0x18, 0xdc, 0xa3, 0x6d, 0x26, 0xac, 0x8d, 0x62, 0x6b, 0xcb, 0x0b, 0xba, 0xae, - 0xdf, 0x6b, 0xb9, 0x8c, 0x85, 0xfe, 0xf6, 0x2e, 0xa3, 0xb2, 0xb7, 0x59, 0x8d, 0x3e, 0x27, 0x3c, - 0x9d, 0x11, 0x32, 0x37, 0xba, 0x2f, 0x4c, 0x53, 0x19, 0xd3, 0x6b, 0x41, 0x78, 0xff, 0x4e, 0x27, - 0x78, 0x4d, 0x98, 0xe7, 0x34, 0xe6, 0xfc, 0x18, 0xe7, 0x33, 0xca, 0x8e, 0xbb, 0xdb, 0x6b, 0xdf, - 0x6d, 0xf5, 0x3b, 0xae, 0x08, 0x96, 0x65, 0x65, 0x14, 0x74, 0x8f, 0xf6, 0xa4, 0xeb, 0x67, 0xb3, - 0xb6, 0xcf, 0xd3, 0xf6, 0x6e, 0x1c, 0x39, 0x8d, 0xab, 0x5d, 0x97, 0xb5, 0xef, 0xba, 0xdb, 0x1d, - 0xda, 0x0a, 0x69, 0x14, 0xec, 0x86, 0x6d, 0x2a, 0x84, 0xd3, 0x19, 0x61, 0x2f, 0xf0, 0x68, 0x2b, - 0xdb, 0xdb, 0x74, 0x41, 0x3c, 0x72, 0xa2, 0xec, 0x5c, 0xed, 0xd1, 0x30, 0x1a, 0x58, 0xcf, 0x64, - 0xac, 0xed, 0xa0, 0xdb, 0xd5, 0xd2, 0x7a, 0x34, 0x6a, 0x87, 0x7e, 0x3f, 0xee, 0xbc, 0x45, 0x7b, - 0xcc, 0x67, 0xfb, 0x5c, 0x78, 0xf1, 0x2b, 0x37, 0xf1, 0xb1, 0xd5, 0x58, 0xf2, 0x69, 0x9e, 0x3e, - 0xa4, 0x8b, 0xf1, 0x8b, 0x21, 0x75, 0x19, 0xbd, 0xed, 0x46, 0xf7, 0xc9, 0x63, 0x49, 0x46, 0x34, - 0x78, 0xd6, 0xc5, 0xbf, 0x72, 0xfb, 0x26, 0x7d, 0x75, 0x97, 0x46, 0xcc, 0xb2, 0xcb, 0x24, 0x51, - 0x3f, 0xe8, 0x45, 0xd4, 0x9e, 0xf8, 0xf2, 0x3f, 0xde, 0xff, 0xd6, 0x10, 0xb1, 0x8f, 0x43, 0x56, - 0xee, 0x3d, 0x01, 0xfe, 0x46, 0x57, 0xd0, 0x02, 0xf9, 0x1a, 0xc2, 0x1f, 0x69, 0x52, 0x06, 0x83, - 0x9d, 0xcf, 0xf6, 0x74, 0x6b, 0x3b, 0xce, 0xa6, 0x26, 0x65, 0x72, 0xac, 0x93, 0x45, 0x63, 0xd9, - 0xeb, 0xd0, 0xfb, 0x35, 0x72, 0x55, 0xe9, 0xdd, 0x39, 0xf0, 0xbd, 0x86, 0x48, 0xc8, 0x43, 0xf8, - 0x87, 0x67, 0x31, 0xff, 0xbb, 0xe7, 0x76, 0x29, 0xff, 0x4b, 0x44, 0xf5, 0x90, 0x7c, 0x17, 0xe1, - 0x47, 0x6e, 0xf8, 0x11, 0xb0, 0x6c, 0x78, 0x11, 0x59, 0xc9, 0x0e, 0x76, 0xd3, 0xed, 0x52, 0x6f, - 0x1d, 0xa2, 0xb7, 0xe1, 0xc5, 0x51, 0xbc, 0xe3, 0xd3, 0x30, 0x6e, 0x21, 0xf1, 0xe6, 0x8d, 0x5b, - 0xd8, 0x8b, 0xc0, 0x3c, 0x43, 0xa6, 0xd3, 0xcc, 0x2d, 0xdf, 0x8b, 0x9c, 0x83, 0x01, 0xb3, 0x00, - 0x26, 0xbf, 0x41, 0xf8, 0xa3, 0x92, 0x2c, 0x22, 0xd3, 0xd9, 0x51, 0x36, 0x45, 0x02, 0xa6, 0x51, - 0x26, 0x8a, 0x22, 0x05, 0x23, 0x6f, 0xc3, 0xc8, 0x9f, 0x23, 0x2b, 0x75, 0xa3, 0xb5, 0x35, 0x47, - 0x2e, 0x98, 0xb5, 0x21, 0x87, 0xf8, 0x04, 0xcf, 0x80, 0xcf, 0x8a, 0xd5, 0x4a, 0x66, 0xb2, 0x3c, - 0xd2, 0xa2, 0x26, 0xd3, 0x85, 0x2a, 0x99, 0x48, 0xa8, 0x49, 0x70, 0xe2, 0x63, 0xf6, 0x98, 0x04, - 0x92, 0x65, 0x01, 0x92, 0xea, 0xdb, 0x08, 0x3f, 0xd2, 0xa4, 0x2c, 0x19, 0xbc, 0x3a, 0xb1, 0x26, - 0x74, 0xe3, 0xda, 0x1b, 0x30, 0xd2, 0x8b, 0x64, 0x35, 0x37, 0x52, 0xed, 0x04, 0x7b, 0x13, 0xe1, - 0x91, 0x78, 0x0a, 0x64, 0xdf, 0x1f, 0x78, 0x92, 0x39, 0xc0, 0x3e, 0x4f, 0x66, 0xb3, 0xec, 0xba, - 0x44, 0x7b, 0x0f, 0xe1, 0xe3, 0x69, 0x42, 0xc3, 0x64, 0x9b, 0xd4, 0x45, 0x0f, 0x28, 0xee, 0x01, - 0x85, 0x47, 0x2e, 0x1f, 0x25, 0x82, 0x5b, 0x4b, 0x64, 0xc1, 0xbc, 0x1d, 0xf9, 0x2a, 0xc2, 0xa3, - 0x3c, 0x55, 0x6e, 0x40, 0xf5, 0x7f, 0xb9, 0xe3, 0xf6, 0xc8, 0x6c, 0x16, 0x6f, 0x60, 0x53, 0xb3, - 0x6f, 0xae, 0x5a, 0x28, 0xf2, 0xef, 0x1c, 0xf8, 0x74, 0xda, 0x3e, 0x29, 0xd9, 0x52, 0x9b, 0x0d, - 0xa4, 0xe0, 0x0f, 0x10, 0x3e, 0xde, 0xa4, 0x2c, 0x45, 0x51, 0x9d, 0x84, 0x96, 0x7e, 0x78, 0xfb, - 0x06, 0x0c, 0x78, 0x9d, 0xac, 0x15, 0x0d, 0x58, 0x3b, 0x13, 0x7f, 0x8c, 0xf0, 0xa3, 0x4d, 0xca, - 0x56, 0xdb, 0xcc, 0xdf, 0x2b, 0x8d, 0x54, 0x56, 0x61, 0x82, 0x7a, 0x1d, 0x50, 0x9f, 0x27, 0xcf, - 0x49, 0x54, 0x17, 0x3a, 0x69, 0xd5, 0x24, 0x26, 0x0f, 0x10, 0x3e, 0x15, 0x27, 0x50, 0x96, 0x21, - 0x22, 0x8b, 0x55, 0x98, 0xe9, 0xe4, 0x3c, 0xab, 0x47, 0x85, 0xf4, 0x7c, 0x0a, 0x70, 0x57, 0x48, - 0xa3, 0x14, 0x37, 0xbf, 0x56, 0xde, 0x46, 0x78, 0x2c, 0xee, 0x60, 0xd0, 0xdd, 0x07, 0xbe, 0x9e, - 0x2f, 0x02, 0x6a, 0x6a, 0x45, 0xa4, 0x18, 0x75, 0x4b, 0xfa, 0xaf, 0xa2, 0xe8, 0xa4, 0xe3, 0x67, - 0xb4, 0xa8, 0xab, 0xe2, 0xd6, 0x07, 0x98, 0x7b, 0xe4, 0xe9, 0x23, 0x66, 0xe4, 0x96, 0x43, 0x96, - 0x6b, 0x35, 0x25, 0xef, 0x22, 0x3c, 0xfa, 0x4a, 0xdf, 0x33, 0x5e, 0xdc, 0x5c, 0x6b, 0xb0, 0xb8, - 0xa5, 0x50, 0x2c, 0xee, 0x5b, 0xe0, 0xd9, 0x86, 0xf5, 0x50, 0xd6, 0x5a, 0x5c, 0x0c, 0xbe, 0x84, - 0xf0, 0x08, 0x2f, 0x20, 0xeb, 0xf2, 0x88, 0x47, 0x72, 0x3b, 0x5d, 0x62, 0x52, 0x6b, 0xd2, 0x6c, - 0xa5, 0x4e, 0x50, 0x4f, 0x01, 0xf5, 0xb8, 0x4d, 0x24, 0x75, 0x72, 0x9c, 0x84, 0x82, 0xf4, 0x0d, - 0x84, 0xc7, 0x36, 0x29, 0xf7, 0x64, 0x40, 0x31, 0xa7, 0xed, 0x5d, 0x6a, 0x6b, 0x73, 0x5c, 0x00, - 0x8e, 0xf3, 0xf6, 0x99, 0x3c, 0x87, 0x13, 0x8a, 0x4e, 0x63, 0xa0, 0xaf, 0x23, 0x3c, 0xba, 0x49, - 0xdb, 0xc1, 0x1e, 0x0d, 0x07, 0x3c, 0xb3, 0x25, 0x3c, 0x20, 0xad, 0x8d, 0x33, 0x03, 0x38, 0xe7, - 0x6c, 0xab, 0x10, 0x07, 0xfa, 0x8c, 0x69, 0xbe, 0x83, 0xf0, 0xb1, 0x26, 0x65, 0x03, 0x92, 0x45, - 0xdd, 0x9e, 0x96, 0x48, 0x52, 0x95, 0xfb, 0xb4, 0x96, 0xc6, 0xbe, 0x0a, 0xe3, 0x3f, 0x4d, 0x9e, - 0x2c, 0x18, 0xdf, 0xa0, 0x08, 0xbe, 0x8d, 0xf0, 0x08, 0x4f, 0x4f, 0x93, 0xd4, 0x51, 0x33, 0x7e, - 0xb6, 0x52, 0x27, 0x62, 0xf4, 0x3c, 0x30, 0x5e, 0xb1, 0x8e, 0xc6, 0x18, 0x87, 0xef, 0x0f, 0x08, - 0x8f, 0xa6, 0xc3, 0xb7, 0xe6, 0x32, 0x97, 0x38, 0x26, 0x21, 0x8c, 0x95, 0x12, 0x78, 0xc5, 0xbc, - 0x81, 0x20, 0x7f, 0x01, 0xc8, 0x9f, 0x25, 0x57, 0x24, 0xb9, 0xe7, 0x32, 0xb7, 0x66, 0x88, 0x5f, - 0x47, 0xf8, 0x44, 0x5c, 0xd1, 0x92, 0x41, 0x0c, 0x0b, 0xe4, 0x94, 0x36, 0xbc, 0x50, 0x1f, 0x2f, - 0x01, 0xda, 0x32, 0x59, 0xac, 0x11, 0x54, 0xf2, 0x0e, 0xc2, 0xe4, 0x36, 0x0d, 0xbb, 0x7e, 0x4f, - 0x99, 0xf1, 0x79, 0xed, 0x50, 0x89, 0x58, 0x52, 0x2d, 0x98, 0x48, 0xd5, 0x79, 0x5f, 0x38, 0xfa, - 0xbc, 0xff, 0x9d, 0xcf, 0xfb, 0xcd, 0xc0, 0xa3, 0x25, 0x8b, 0x58, 0x31, 0xa7, 0x96, 0xcd, 0x54, - 0xa9, 0xd0, 0xde, 0x03, 0xbc, 0x3e, 0xe9, 0x49, 0x3c, 0xf5, 0x51, 0x9a, 0x33, 0x26, 0xff, 0xb6, - 0xb2, 0xc0, 0x8a, 0x25, 0x4d, 0xaf, 0x18, 0x06, 0x15, 0x1b, 0x7a, 0xf7, 0xbd, 0x43, 0xf2, 0x4f, - 0x84, 0x49, 0x3c, 0x85, 0x0a, 0x4d, 0x94, 0xaf, 0x95, 0x8a, 0x3d, 0x9d, 0x19, 0x8f, 0x55, 0x2a, - 0xed, 0x03, 0xf0, 0x6d, 0x97, 0x44, 0x5a, 0xdf, 0x92, 0xb3, 0xba, 0xc6, 0xc3, 0x62, 0x7b, 0xe2, - 0x67, 0xb1, 0x99, 0x67, 0xfc, 0x4f, 0x3f, 0x84, 0x4f, 0xe7, 0x1d, 0xbc, 0x1e, 0x84, 0xf0, 0x18, - 0xee, 0x94, 0xd2, 0x0b, 0x55, 0x4d, 0x77, 0x7f, 0x3b, 0x0c, 0xfe, 0xfe, 0x7a, 0x98, 0xfc, 0x62, - 0x58, 0x7a, 0xdc, 0xbe, 0xeb, 0x77, 0xbc, 0x90, 0x66, 0x5f, 0x7e, 0x44, 0xce, 0x81, 0xfa, 0x43, - 0x4b, 0xce, 0x8d, 0xf2, 0x8b, 0x26, 0x2a, 0xb5, 0x9b, 0x26, 0x01, 0xab, 0xdd, 0x52, 0x64, 0x8e, - 0x49, 0x3b, 0x99, 0x5a, 0x45, 0x6a, 0xf1, 0xe0, 0x5f, 0xea, 0x83, 0xd4, 0x94, 0xc0, 0x4a, 0x89, - 0x96, 0x4a, 0x0a, 0xe4, 0xc1, 0xa4, 0x48, 0x13, 0x52, 0x16, 0xee, 0xb7, 0x5c, 0xc6, 0x68, 0xb7, - 0xcf, 0x0e, 0xc9, 0xbf, 0x11, 0x3e, 0x99, 0x5d, 0xdd, 0x50, 0xd9, 0x17, 0xab, 0x56, 0x78, 0xba, - 0xaa, 0x2f, 0x99, 0x89, 0x45, 0x4d, 0xca, 0x2d, 0x0c, 0xa8, 0xe8, 0xff, 0xa3, 0x95, 0xff, 0x05, - 0x3c, 0xb2, 0x49, 0x77, 0xfc, 0x88, 0xd1, 0xf0, 0x65, 0xde, 0x61, 0x7e, 0xb3, 0x15, 0x06, 0xa9, - 0xd3, 0x6e, 0xb6, 0x39, 0x9d, 0x70, 0xf0, 0x0c, 0x38, 0x78, 0xca, 0x1e, 0x95, 0x0e, 0x0a, 0x74, - 0x38, 0xa5, 0xbd, 0x8a, 0x8f, 0xf3, 0xbd, 0x59, 0x0e, 0x3f, 0xae, 0xe9, 0xd6, 0x9a, 0xd1, 0x18, - 0x32, 0x5b, 0xfb, 0x79, 0x18, 0xcd, 0xb2, 0x4e, 0x65, 0x47, 0x8b, 0x1d, 0x87, 0x12, 0x7e, 0x07, - 0x1f, 0x8b, 0x97, 0xa8, 0x68, 0x1e, 0x11, 0x5b, 0xd3, 0x71, 0xe9, 0xdb, 0x25, 0xd9, 0x5a, 0xbe, - 0xe9, 0x23, 0x39, 0xef, 0xc8, 0x1b, 0x08, 0x3f, 0xaa, 0xbe, 0x14, 0x5a, 0xdf, 0xa3, 0x3d, 0x46, - 0x96, 0x2b, 0x37, 0x7d, 0xd0, 0xc9, 0xa1, 0x1b, 0xa6, 0x72, 0x11, 0x80, 0x69, 0x00, 0x9a, 0xb2, - 0x27, 0x92, 0x3d, 0x2e, 0x36, 0x47, 0xea, 0x0b, 0xa3, 0xd7, 0x93, 0x03, 0x3a, 0xe4, 0x26, 0x70, - 0xcd, 0x97, 0xa6, 0xad, 0xc2, 0xb4, 0x60, 0x22, 0xd5, 0xbd, 0x39, 0x10, 0x3c, 0x71, 0x0e, 0x66, - 0x58, 0xe2, 0x3a, 0xab, 0x61, 0x01, 0x93, 0x19, 0x4b, 0x91, 0xb4, 0x82, 0x25, 0x79, 0x3b, 0xfb, - 0xc5, 0x61, 0xd8, 0xde, 0x95, 0x2e, 0xf2, 0xdb, 0xbb, 0x62, 0x2e, 0xdb, 0xde, 0x15, 0xa1, 0xfd, - 0x93, 0x21, 0x18, 0xfe, 0xc1, 0x10, 0x79, 0x63, 0x48, 0x79, 0x0b, 0x9a, 0x59, 0xe7, 0xc6, 0xb5, - 0xbf, 0x46, 0xb1, 0x37, 0xae, 0xee, 0x15, 0xe5, 0xbc, 0xb0, 0x7e, 0x17, 0x15, 0xec, 0x7c, 0x85, - 0x2e, 0x2c, 0xc9, 0xf9, 0x1a, 0xfc, 0xbd, 0x21, 0x7e, 0x18, 0x51, 0x62, 0x57, 0x70, 0x18, 0x51, - 0xec, 0xa5, 0xbb, 0x73, 0x4e, 0x69, 0xff, 0x0e, 0xc1, 0x4c, 0xbc, 0x83, 0xc8, 0x2f, 0x91, 0x76, - 0x26, 0x8c, 0xa7, 0xc1, 0x74, 0x0e, 0xcc, 0x26, 0x40, 0x1f, 0x7d, 0xf2, 0x60, 0x18, 0xb6, 0x27, - 0xc5, 0x9f, 0xe2, 0xed, 0x29, 0x9b, 0xa1, 0xa5, 0xdb, 0x53, 0xb1, 0x58, 0x2c, 0x99, 0x9f, 0xf3, - 0xa4, 0x7d, 0x6b, 0x88, 0xfc, 0x70, 0x48, 0xd9, 0xa1, 0xfe, 0x9f, 0xb9, 0xd9, 0xcc, 0xfd, 0x17, - 0xc2, 0x53, 0xca, 0x66, 0xb6, 0x06, 0x5d, 0xae, 0x26, 0xdf, 0xed, 0xc8, 0x65, 0xcd, 0x36, 0x92, - 0x15, 0xaa, 0x8f, 0xb5, 0x4f, 0xd6, 0x6c, 0x25, 0x66, 0xee, 0x15, 0x98, 0xb8, 0x5b, 0xd6, 0x27, - 0x32, 0x3b, 0x53, 0xfe, 0xe3, 0xa6, 0x73, 0xa0, 0x7e, 0x5b, 0x14, 0xc1, 0x49, 0xfd, 0x28, 0x82, - 0x13, 0x97, 0xc8, 0x3f, 0x22, 0x6c, 0x35, 0x29, 0xd3, 0xb9, 0xf8, 0x84, 0x21, 0x6c, 0xaa, 0x6c, - 0x5e, 0xac, 0xd3, 0x44, 0x38, 0xf7, 0x2c, 0x38, 0xf7, 0xd4, 0xe0, 0x1d, 0x7b, 0x89, 0x73, 0xf9, - 0x77, 0x84, 0x7f, 0x43, 0x78, 0x6a, 0x8d, 0x76, 0xe8, 0x7f, 0x3f, 0x53, 0xbc, 0x97, 0xba, 0x33, - 0x25, 0x5b, 0x09, 0x67, 0xae, 0x81, 0x33, 0xcf, 0x2c, 0x1c, 0xc9, 0x99, 0x78, 0x4e, 0xde, 0x45, - 0x78, 0x5c, 0xc9, 0xbc, 0x94, 0x27, 0x0d, 0x0d, 0x93, 0x2e, 0xdb, 0x1c, 0x63, 0xbd, 0xa0, 0xbf, - 0x02, 0xf4, 0x97, 0x2d, 0x27, 0x4b, 0x5f, 0x91, 0x60, 0x31, 0xf8, 0x9b, 0xfc, 0xc0, 0x9d, 0xa7, - 0x5e, 0xac, 0xa4, 0x48, 0x25, 0xd0, 0x92, 0x99, 0x58, 0xf0, 0x2e, 0x01, 0xef, 0x05, 0xf2, 0x78, - 0x19, 0xaf, 0x84, 0x24, 0xbf, 0x42, 0x78, 0x5c, 0x49, 0x95, 0x5a, 0xa1, 0x55, 0xd3, 0xc3, 0x31, - 0xd6, 0x0b, 0x54, 0xf1, 0x3d, 0x6b, 0xc1, 0x08, 0x35, 0x8e, 0xe7, 0xfb, 0x08, 0x4f, 0xf0, 0xe9, - 0x91, 0xa7, 0xc4, 0x14, 0xae, 0xf6, 0xf5, 0x94, 0x2e, 0x15, 0x56, 0xcc, 0x1b, 0x08, 0x60, 0x0a, - 0xc0, 0x2d, 0x6b, 0x2b, 0xf7, 0x01, 0xee, 0x08, 0xd5, 0x46, 0xf9, 0x4d, 0x76, 0x04, 0x6e, 0xfe, - 0x1e, 0xe1, 0x53, 0xa9, 0xef, 0x9d, 0x29, 0x1f, 0x97, 0xaa, 0x91, 0x53, 0x89, 0xb3, 0x6c, 0xa8, - 0x16, 0xde, 0xad, 0x82, 0x77, 0x1f, 0x27, 0xcf, 0x94, 0x7a, 0x97, 0x5b, 0xa1, 0x83, 0x77, 0x13, - 0x87, 0xe4, 0x4f, 0x08, 0x4f, 0xf0, 0x49, 0x3e, 0xda, 0x04, 0xa9, 0x09, 0xb5, 0x62, 0xde, 0x40, - 0xb8, 0xb0, 0x06, 0x2e, 0x3c, 0xb7, 0x70, 0x74, 0x17, 0xe2, 0xf8, 0xff, 0x08, 0xe1, 0xf1, 0xf8, - 0x20, 0xf5, 0x92, 0xbc, 0x13, 0x52, 0xb6, 0x28, 0x34, 0x42, 0xed, 0xa2, 0xd0, 0xea, 0x85, 0x0b, - 0x8f, 0x83, 0x0b, 0x67, 0xc9, 0xa4, 0x74, 0x61, 0x70, 0x33, 0x65, 0xe0, 0x43, 0x5c, 0x59, 0xe0, - 0x6b, 0xd5, 0xe0, 0xe3, 0x92, 0x4f, 0xa3, 0xfc, 0xc3, 0x6d, 0xea, 0xdb, 0x53, 0xfa, 0x0c, 0x79, - 0xae, 0x42, 0x97, 0x4f, 0x85, 0xf8, 0xa8, 0xe0, 0xf1, 0xab, 0x26, 0x7e, 0x1c, 0x42, 0x79, 0x49, - 0xa6, 0xc5, 0xf6, 0xfb, 0xf1, 0x19, 0x22, 0xbf, 0x09, 0xfd, 0x0c, 0xe1, 0x13, 0x4d, 0x9a, 0x02, - 0xdc, 0xcf, 0x5f, 0x1a, 0x48, 0x19, 0x53, 0x69, 0x7b, 0xa6, 0x44, 0x66, 0x7f, 0x0a, 0xc8, 0x3e, - 0x49, 0x36, 0x4c, 0xc9, 0xaa, 0x5f, 0x18, 0xbf, 0x87, 0xf0, 0x18, 0x5f, 0xe8, 0x69, 0xd8, 0xb9, - 0x12, 0x0a, 0xb5, 0x8e, 0xcc, 0x1b, 0x28, 0xc5, 0xe4, 0xde, 0x06, 0xfa, 0x9b, 0xd6, 0xc3, 0xa3, - 0x8f, 0xf3, 0xb5, 0x83, 0x71, 0x93, 0xb2, 0xcf, 0xf0, 0xb3, 0x5b, 0xfe, 0x8e, 0xcf, 0xc0, 0xa6, - 0xbd, 0xe3, 0x93, 0x96, 0x08, 0xd4, 0x71, 0x40, 0x1d, 0x23, 0x23, 0x12, 0x55, 0x9c, 0x0d, 0xc9, - 0x9f, 0xf9, 0xa6, 0xb6, 0x36, 0xb8, 0x82, 0x24, 0x22, 0x56, 0xfd, 0x45, 0x3c, 0x87, 0x96, 0xeb, - 0xc4, 0xde, 0x81, 0x61, 0x5d, 0xd2, 0x4a, 0x4e, 0xe3, 0xd9, 0xab, 0x4e, 0x10, 0x27, 0x38, 0x9e, - 0xd6, 0x0c, 0x95, 0xfa, 0xcd, 0xfc, 0x9b, 0x43, 0x7c, 0x91, 0x67, 0x11, 0xfc, 0xa2, 0x32, 0x9b, - 0xe3, 0x4c, 0xaf, 0xa6, 0x19, 0x23, 0xb5, 0xfd, 0x16, 0x7f, 0x2a, 0xfb, 0x3e, 0x22, 0xb7, 0xca, - 0x7d, 0xab, 0xed, 0xd8, 0x56, 0x93, 0xac, 0x3f, 0x94, 0x2e, 0xc9, 0x5f, 0xf8, 0x45, 0x82, 0xe4, - 0x71, 0xe9, 0x25, 0xca, 0x42, 0xbf, 0x1d, 0x91, 0x8b, 0x26, 0x5f, 0x72, 0x84, 0x58, 0x86, 0xe5, - 0x52, 0xad, 0x36, 0x22, 0xeb, 0x72, 0x77, 0xbf, 0xba, 0x5c, 0x50, 0xef, 0x53, 0xc6, 0x0b, 0xd7, - 0xb6, 0xae, 0xee, 0xf8, 0xec, 0xee, 0xee, 0x76, 0xa3, 0x1d, 0x74, 0x1d, 0xe0, 0x08, 0xc2, 0x1d, - 0xfe, 0x87, 0x93, 0xdc, 0xa5, 0xdb, 0xa1, 0x3d, 0xa7, 0xbf, 0xbd, 0xbc, 0x13, 0x38, 0xd9, 0x3b, - 0x99, 0xdb, 0x1f, 0x86, 0xeb, 0x74, 0x97, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0x69, 0x42, 0xd8, - 0x48, 0xae, 0x29, 0x00, 0x00, + // 2654 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x6d, 0x8c, 0x15, 0x57, + 0xf9, 0xcf, 0x99, 0xa5, 0x7f, 0xfe, 0x9e, 0xf2, 0xb2, 0x3c, 0x05, 0x77, 0x19, 0x58, 0xa0, 0x43, + 0x61, 0xe1, 0x02, 0x77, 0xb6, 0x50, 0x5a, 0x4b, 0xac, 0x95, 0xb2, 0xf4, 0x4a, 0x0b, 0x14, 0x17, + 0xac, 0x7a, 0x6b, 0xbc, 0x99, 0xbd, 0xf7, 0xb0, 0x4c, 0xb9, 0xf7, 0xce, 0x75, 0x66, 0x76, 0x5b, + 0x42, 0xb6, 0x6a, 0x51, 0x4a, 0xdb, 0x2c, 0x98, 0x20, 0x24, 0x8d, 0x6d, 0x63, 0x4c, 0x48, 0x7c, + 0x8b, 0x1f, 0x4c, 0xea, 0x27, 0x3f, 0xf8, 0x85, 0xa4, 0xb1, 0x31, 0x69, 0x53, 0x5f, 0x9a, 0xc8, + 0x27, 0x43, 0x42, 0x13, 0x8d, 0x5a, 0xfd, 0xa0, 0x7e, 0xd0, 0x98, 0x39, 0x2f, 0xf3, 0x7e, 0xe6, + 0xe5, 0xee, 0x6e, 0xd3, 0x44, 0xbe, 0xed, 0xde, 0xe7, 0x77, 0x9e, 0xf3, 0x3c, 0xbf, 0xe7, 0xe5, + 0x9c, 0x33, 0x73, 0x06, 0xaf, 0x3f, 0xd9, 0x3e, 0xe3, 0x12, 0xb3, 0xd5, 0xd6, 0x1d, 0x62, 0xcf, + 0x98, 0x4d, 0xa2, 0x1b, 0xad, 0x8e, 0xd9, 0xad, 0xf6, 0x6c, 0xcb, 0xb5, 0x60, 0x50, 0x48, 0xab, + 0x5c, 0xaa, 0xae, 0x9f, 0xb2, 0xac, 0xa9, 0x36, 0xd1, 0x8d, 0x9e, 0xa9, 0x1b, 0xdd, 0xae, 0xe5, + 0x1a, 0xae, 0x69, 0x75, 0x1d, 0x86, 0x57, 0x03, 0x6d, 0x54, 0x8b, 0xde, 0xb3, 0xad, 0xa7, 0x49, + 0xd3, 0xe5, 0xd2, 0x6a, 0xba, 0xb4, 0xd1, 0xb2, 0x3a, 0x86, 0xd9, 0x6d, 0x18, 0xae, 0x6b, 0x9b, + 0x93, 0xd3, 0x2e, 0x11, 0xda, 0x46, 0x25, 0xf8, 0x04, 0x70, 0x6d, 0x0c, 0xe8, 0x1a, 0xce, 0x69, + 0x2e, 0x1a, 0x89, 0x89, 0x9e, 0xb1, 0xec, 0xd3, 0x27, 0xdb, 0xd6, 0x33, 0x5c, 0xbc, 0x4d, 0x22, + 0x4e, 0xce, 0xb1, 0x29, 0x86, 0x6c, 0x1b, 0xd3, 0xdd, 0xe6, 0xa9, 0x46, 0xaf, 0x6d, 0x70, 0xb2, + 0x54, 0x35, 0x86, 0x20, 0x33, 0xa4, 0x2b, 0x5c, 0xdf, 0x10, 0x97, 0x3d, 0x4b, 0x9a, 0xd3, 0x1e, + 0x73, 0x12, 0x57, 0x3b, 0x86, 0xdb, 0x3c, 0x65, 0x4c, 0xb6, 0x49, 0xc3, 0x26, 0x8e, 0x35, 0x6d, + 0x37, 0x09, 0x07, 0x6e, 0x8e, 0x01, 0xbb, 0x56, 0x8b, 0x34, 0xe2, 0xda, 0x36, 0xa7, 0xf0, 0x91, + 0x00, 0xc5, 0x63, 0x35, 0x43, 0x6c, 0x27, 0x90, 0xae, 0x8b, 0x49, 0x9b, 0x56, 0xa7, 0x23, 0xb5, + 0xb6, 0x45, 0x9c, 0xa6, 0x6d, 0xf6, 0x3c, 0xe5, 0x0d, 0xd2, 0x75, 0x4d, 0xf7, 0x0c, 0x03, 0xee, + 0xbe, 0x66, 0xe3, 0x65, 0xfb, 0x3d, 0xc8, 0x71, 0x96, 0x3e, 0xd0, 0xc1, 0xf8, 0x80, 0x4d, 0x0c, + 0x97, 0x9c, 0x30, 0x9c, 0xd3, 0x70, 0xb7, 0x9f, 0x11, 0x55, 0x96, 0x75, 0xde, 0xaf, 0x4c, 0x3e, + 0x41, 0xbe, 0x32, 0x4d, 0x1c, 0x57, 0xd5, 0xb2, 0x20, 0x4e, 0xcf, 0xea, 0x3a, 0x44, 0x1b, 0x7e, + 0xfe, 0xdd, 0x9b, 0x97, 0x15, 0xd0, 0x96, 0xd3, 0xac, 0x9c, 0xb9, 0x97, 0xfa, 0xeb, 0xec, 0x43, + 0x15, 0x78, 0x0f, 0xe1, 0xa5, 0x35, 0xe2, 0xd2, 0xc9, 0x36, 0xc5, 0x35, 0x3d, 0x31, 0xe9, 0x65, + 0x53, 0x8d, 0xb8, 0x62, 0xae, 0xd5, 0x69, 0x73, 0x69, 0xdf, 0x46, 0x54, 0xfd, 0x1c, 0x82, 0x87, + 0x22, 0xfa, 0xf5, 0xb3, 0x66, 0xab, 0xca, 0x53, 0x72, 0x96, 0xfe, 0xc3, 0xf2, 0x98, 0xfd, 0xdd, + 0x35, 0x3a, 0x84, 0xfd, 0xc5, 0x79, 0x9d, 0xad, 0x1f, 0x86, 0xc7, 0xa2, 0x0a, 0x2c, 0x7b, 0x8a, + 0x22, 0x2c, 0x7b, 0x6a, 0xb6, 0xac, 0x36, 0xb8, 0x8e, 0xf0, 0x9d, 0x87, 0x4d, 0x87, 0xfa, 0x76, + 0xa8, 0xe5, 0xc0, 0x58, 0xdc, 0xf8, 0xa3, 0x46, 0x87, 0xb4, 0x0e, 0xd2, 0x68, 0x1c, 0x6a, 0x79, + 0x51, 0x39, 0x69, 0x12, 0xdb, 0x1b, 0x21, 0xdc, 0xdd, 0x5e, 0x78, 0x84, 0xf6, 0x45, 0x4a, 0xc1, + 0x71, 0xd8, 0x1c, 0x76, 0xa0, 0x61, 0xb6, 0x1c, 0xfd, 0x6c, 0x60, 0x33, 0x37, 0xb8, 0xbe, 0x13, + 0x2a, 0x29, 0x7e, 0x32, 0x27, 0x13, 0x68, 0xf8, 0xbe, 0x82, 0x3f, 0x26, 0xfc, 0x70, 0x60, 0x73, + 0xdc, 0xa6, 0x09, 0x9e, 0xfe, 0x61, 0xc3, 0x87, 0xd3, 0xe2, 0x44, 0xed, 0xfc, 0x3d, 0x8b, 0xd5, + 0xaf, 0x11, 0x8c, 0x95, 0x8d, 0x55, 0xfd, 0xe1, 0x78, 0x7c, 0x4b, 0x86, 0xa7, 0xbe, 0x0d, 0xb6, + 0x16, 0x9b, 0xb4, 0xbe, 0x17, 0xf6, 0xf4, 0x31, 0x15, 0xcc, 0xe2, 0x15, 0x2c, 0xf3, 0x3f, 0xcf, + 0xbb, 0x14, 0x6c, 0x89, 0x33, 0x21, 0x24, 0xd1, 0x22, 0xda, 0x9a, 0x07, 0xe3, 0x85, 0xb4, 0x9e, + 0xb2, 0xf7, 0x71, 0x6d, 0x95, 0xb0, 0x4e, 0xb4, 0x43, 0x5a, 0x4c, 0xef, 0x23, 0x7c, 0x67, 0x8d, + 0xb8, 0xfe, 0xe4, 0xf9, 0x05, 0x35, 0x2c, 0x9b, 0x57, 0x7b, 0x95, 0x05, 0xea, 0x0a, 0x82, 0xfd, + 0x89, 0xb9, 0x4a, 0x17, 0xd6, 0x31, 0x38, 0x9a, 0x54, 0x32, 0xaf, 0xe2, 0x7a, 0x07, 0xe1, 0x95, + 0x5e, 0x42, 0x09, 0x7b, 0x17, 0xbd, 0xc0, 0x0c, 0x4a, 0xc7, 0x53, 0x30, 0x1a, 0x77, 0x44, 0x56, + 0x64, 0x63, 0x50, 0x95, 0xf8, 0x2c, 0x2b, 0xb4, 0x5f, 0x28, 0x78, 0x79, 0xd8, 0xa7, 0x82, 0xc5, + 0xb6, 0x5e, 0x16, 0x43, 0x6a, 0xf7, 0x1f, 0x59, 0x1c, 0x6f, 0x22, 0xb8, 0xaf, 0x9f, 0x38, 0xd6, + 0x0f, 0xa4, 0xc5, 0xbf, 0x6c, 0xe1, 0x85, 0x1a, 0x4e, 0xfe, 0xe4, 0xf5, 0x07, 0xe1, 0x81, 0x3e, + 0xa7, 0x84, 0xf3, 0x08, 0x0f, 0xb2, 0x92, 0x39, 0x4c, 0x57, 0xff, 0x63, 0x6d, 0xa3, 0x0b, 0xa3, + 0x71, 0x82, 0x02, 0x59, 0xb4, 0x0a, 0xb7, 0xe5, 0x03, 0x79, 0x1d, 0x6e, 0xa4, 0xa4, 0xae, 0xd5, + 0x56, 0x0b, 0x43, 0x43, 0x9b, 0x0d, 0x5a, 0x8a, 0x7f, 0x43, 0x78, 0x79, 0x8d, 0xb8, 0x21, 0x2b, + 0xf2, 0x8b, 0x51, 0x95, 0x4f, 0xaf, 0x7d, 0x8f, 0x85, 0xf1, 0x3b, 0x08, 0xc6, 0xd3, 0xa6, 0x2c, + 0x5d, 0x91, 0xc7, 0xe1, 0xb3, 0xa9, 0x7a, 0xe6, 0x55, 0x94, 0x7f, 0x47, 0xf8, 0xae, 0x1a, 0x71, + 0xf7, 0x37, 0x5d, 0x73, 0x26, 0x33, 0x00, 0x71, 0x44, 0x11, 0x06, 0xae, 0x32, 0x06, 0x2e, 0x21, + 0xf8, 0x94, 0xb0, 0xdc, 0xa0, 0x6a, 0x1a, 0x25, 0x89, 0xa8, 0x1f, 0x81, 0xc7, 0xb3, 0x34, 0x94, + 0xa4, 0x00, 0x5e, 0x45, 0x78, 0x8d, 0x57, 0x6a, 0x71, 0xa7, 0x1c, 0xd8, 0x91, 0xe7, 0x77, 0xb8, + 0x8c, 0x37, 0xc8, 0x7d, 0xa7, 0x85, 0x7c, 0x3f, 0x75, 0x3f, 0xd4, 0x55, 0x52, 0xbd, 0x4f, 0x76, + 0x95, 0x1b, 0x08, 0xaf, 0xf2, 0x14, 0x04, 0xea, 0x16, 0xbd, 0x57, 0x3e, 0x4d, 0x4d, 0x6d, 0x05, + 0x45, 0x1f, 0xb2, 0x51, 0xd6, 0x2e, 0xef, 0x0f, 0xfa, 0x53, 0x1c, 0x9d, 0xd9, 0x34, 0xdf, 0x56, + 0xd8, 0x42, 0x10, 0xe6, 0xbd, 0x50, 0xdb, 0xcc, 0xe3, 0xfb, 0x1f, 0x2c, 0xdf, 0xfe, 0x8a, 0x82, + 0x6e, 0x54, 0x36, 0xd1, 0x1e, 0x95, 0x14, 0x6b, 0xd9, 0xf6, 0xa9, 0xc3, 0xae, 0x52, 0x26, 0xd4, + 0x3f, 0x09, 0xfb, 0xfa, 0x9f, 0x18, 0xe6, 0x14, 0x3c, 0xf8, 0xb9, 0x5e, 0xab, 0x70, 0x13, 0x65, + 0xd8, 0x02, 0x4d, 0x54, 0x00, 0x79, 0x13, 0xbd, 0xc6, 0x18, 0x7e, 0x1d, 0xa9, 0x0b, 0xd2, 0xd3, + 0xf6, 0xa1, 0x4a, 0xfd, 0xb8, 0xba, 0x08, 0x6d, 0xed, 0xeb, 0x08, 0xaf, 0x64, 0xfd, 0xff, 0xa0, + 0x38, 0xa1, 0x41, 0x62, 0xc3, 0xe6, 0x8b, 0xa2, 0x4b, 0xca, 0x68, 0x2e, 0x8e, 0x93, 0x31, 0x42, + 0xb9, 0x18, 0xd2, 0x40, 0xd8, 0xef, 0x9f, 0x06, 0xe9, 0x7a, 0x72, 0x11, 0xe1, 0x55, 0x13, 0x84, + 0xf9, 0x14, 0x58, 0xb1, 0x4d, 0xaa, 0x5d, 0x60, 0x4b, 0xdb, 0xb1, 0x95, 0xda, 0xb1, 0x49, 0x5b, + 0x97, 0xb4, 0x43, 0xb7, 0xb9, 0x52, 0xcf, 0xa0, 0x97, 0x11, 0x1e, 0x9c, 0x20, 0x4d, 0x6b, 0x86, + 0xd8, 0x81, 0x3d, 0xa3, 0x19, 0xf6, 0x50, 0x68, 0x69, 0x73, 0xb6, 0x50, 0x73, 0x36, 0x6a, 0x6a, + 0xaa, 0x39, 0x54, 0xa7, 0x67, 0xcd, 0x0d, 0x84, 0x97, 0xd5, 0x88, 0x1b, 0x58, 0xb2, 0x43, 0xb6, + 0x29, 0xf2, 0x21, 0xa1, 0x85, 0x77, 0xad, 0xd4, 0x1a, 0xed, 0x1c, 0xcb, 0xd1, 0x59, 0xd8, 0x9b, + 0x62, 0x40, 0x81, 0xd2, 0x1d, 0x87, 0x47, 0x52, 0x06, 0x96, 0x5d, 0x62, 0xfe, 0x82, 0xf0, 0x4a, + 0x56, 0x3c, 0x45, 0x32, 0x30, 0x5a, 0x8f, 0xa3, 0xb9, 0x38, 0x4e, 0xf5, 0x4b, 0xcc, 0xd5, 0x73, + 0x48, 0xed, 0xcf, 0x57, 0xaf, 0xfe, 0x6a, 0xea, 0x02, 0xb8, 0xeb, 0x05, 0xf4, 0xbc, 0x82, 0x07, + 0xc3, 0x01, 0x1d, 0x37, 0x5c, 0x03, 0xf4, 0x22, 0x41, 0xf5, 0x90, 0xc2, 0xf7, 0xb1, 0xe2, 0x03, + 0x38, 0x09, 0x17, 0x19, 0x09, 0x2f, 0xa0, 0xa0, 0x83, 0xb6, 0x0c, 0xd7, 0x28, 0x19, 0xf5, 0x43, + 0x50, 0x93, 0x8d, 0x2e, 0x1b, 0xfa, 0xeb, 0x08, 0xaf, 0xf0, 0xd6, 0x23, 0xdf, 0xe2, 0x82, 0xcb, + 0xdb, 0x88, 0x34, 0xec, 0x74, 0x75, 0xb3, 0xa8, 0x9b, 0x26, 0xec, 0x28, 0x11, 0xea, 0xfa, 0x3e, + 0xf8, 0x44, 0xbf, 0xd1, 0x85, 0x7f, 0x23, 0x0c, 0x27, 0x88, 0xdd, 0x31, 0xbb, 0x91, 0x2c, 0xde, + 0x2e, 0x35, 0xd3, 0x07, 0x0b, 0x8f, 0x2a, 0x45, 0xa0, 0x3c, 0x8c, 0x97, 0x58, 0x18, 0x2f, 0xa0, + 0x4a, 0xff, 0xb9, 0x7c, 0xb8, 0xb2, 0x50, 0x41, 0xf4, 0x12, 0xfa, 0x0f, 0x2c, 0xa1, 0x8f, 0x5a, + 0x2d, 0x92, 0xd1, 0x2f, 0x23, 0xe2, 0x50, 0x87, 0x1a, 0xc9, 0x04, 0x6a, 0xdf, 0x54, 0xa8, 0xbb, + 0xff, 0x41, 0xd0, 0x15, 0x26, 0x47, 0x1f, 0x3b, 0x32, 0x9f, 0xfd, 0x7f, 0x1b, 0x71, 0x93, 0x23, + 0x92, 0xb0, 0xfd, 0x11, 0x41, 0xb0, 0x36, 0x52, 0xed, 0x66, 0x6b, 0xb6, 0xfe, 0x32, 0x82, 0x0b, + 0x48, 0x36, 0xa7, 0xa0, 0x29, 0xa2, 0xc4, 0xe7, 0x6c, 0xe1, 0xad, 0x81, 0x7f, 0x29, 0x18, 0xbc, + 0xf4, 0x8e, 0xb0, 0xe3, 0x24, 0x97, 0xc9, 0x88, 0x3c, 0x5c, 0x35, 0x77, 0xe7, 0x22, 0xb5, 0x2b, + 0x8c, 0xeb, 0x8b, 0x0a, 0x38, 0x52, 0xae, 0xfd, 0x67, 0x03, 0x12, 0x1f, 0xd3, 0xe5, 0xbe, 0xa7, + 0xe9, 0x62, 0xd6, 0x5a, 0xae, 0x22, 0xb8, 0x9c, 0x4d, 0x78, 0xfa, 0x68, 0x46, 0xfb, 0xe2, 0x19, + 0x06, 0x97, 0xfe, 0x1f, 0xaf, 0x4d, 0x72, 0xff, 0xa8, 0x65, 0xd3, 0x67, 0xbb, 0x7a, 0x26, 0xb1, + 0x1c, 0x55, 0x32, 0x12, 0xaf, 0x2d, 0xa5, 0x91, 0xb8, 0xba, 0x14, 0x7e, 0x30, 0x20, 0x18, 0x69, + 0x9e, 0x32, 0xdb, 0x2d, 0x9b, 0xc4, 0x9f, 0xa8, 0x3b, 0xfa, 0xd9, 0xe8, 0x0f, 0x0d, 0x91, 0x36, + 0x91, 0x5f, 0x24, 0xac, 0x94, 0x1e, 0xea, 0x13, 0x56, 0x7a, 0x24, 0x4f, 0xea, 0x22, 0xe3, 0x44, + 0xd6, 0xa7, 0xa1, 0xf9, 0xd3, 0xdf, 0x4c, 0x1f, 0x04, 0x26, 0xc3, 0x58, 0x01, 0x91, 0x5a, 0x25, + 0x00, 0x62, 0xaf, 0x9c, 0x86, 0xb1, 0x89, 0x6b, 0x9f, 0x69, 0x18, 0xae, 0x4b, 0x3a, 0x3d, 0x77, + 0xb6, 0x7e, 0x6b, 0x00, 0x6e, 0xe6, 0x87, 0x8b, 0x66, 0x72, 0x69, 0xf6, 0x58, 0x92, 0xdf, 0x8e, + 0xf4, 0x47, 0x22, 0xd2, 0x70, 0x6e, 0x00, 0xaf, 0x8e, 0x2f, 0x79, 0x74, 0x1f, 0xb7, 0x23, 0x6f, + 0xd9, 0x0b, 0xef, 0xe1, 0x76, 0x16, 0x03, 0x8b, 0x85, 0x9f, 0x75, 0xe7, 0x0b, 0xa1, 0xee, 0x4c, + 0x17, 0xef, 0x0f, 0x69, 0x39, 0xfc, 0x16, 0x82, 0x39, 0x94, 0x39, 0xf1, 0x87, 0xbe, 0x26, 0x7e, + 0x15, 0xaf, 0x9c, 0x20, 0x53, 0xa6, 0xe3, 0x12, 0xfb, 0x18, 0x53, 0x98, 0x3c, 0x3a, 0x70, 0x81, + 0xc0, 0x49, 0x8f, 0x0e, 0x09, 0x1c, 0x67, 0x7d, 0x1d, 0x25, 0x7d, 0x8d, 0x36, 0x28, 0x5c, 0xe7, + 0xa6, 0xd3, 0xa3, 0xeb, 0x0b, 0x0a, 0x5e, 0xce, 0x8e, 0x1a, 0x62, 0xfe, 0x21, 0x89, 0x5e, 0x75, + 0x8b, 0x44, 0x10, 0x3b, 0xa9, 0xbc, 0xc1, 0x76, 0x77, 0x3f, 0x41, 0xea, 0x9a, 0xf8, 0x84, 0x9e, + 0xef, 0x74, 0xf7, 0xb6, 0x45, 0xdd, 0x94, 0x26, 0x13, 0xcf, 0xa9, 0xaa, 0x1c, 0xa6, 0xab, 0x95, + 0x04, 0x8c, 0x87, 0xc8, 0x87, 0x8a, 0xe8, 0xd0, 0x01, 0xfb, 0x82, 0xd3, 0x51, 0xee, 0x80, 0xd8, + 0x64, 0x70, 0x12, 0x2f, 0xf3, 0x16, 0x2e, 0xee, 0x94, 0x03, 0x9a, 0xc4, 0xdd, 0xcc, 0x57, 0x69, + 0x62, 0xb4, 0x78, 0xa9, 0x0a, 0x09, 0xd2, 0xe1, 0x15, 0x84, 0xef, 0x8a, 0xbe, 0x87, 0x3a, 0x38, + 0x43, 0xba, 0x2e, 0xec, 0xca, 0x3d, 0x0e, 0x51, 0x9c, 0x98, 0xba, 0x5a, 0x14, 0xce, 0xc3, 0xb2, + 0x99, 0x1a, 0x34, 0xa2, 0x0d, 0xfb, 0x5b, 0x6e, 0x4f, 0xec, 0x44, 0xdf, 0x51, 0xbd, 0xe8, 0x3f, + 0x4c, 0xa1, 0x75, 0x4c, 0xed, 0xda, 0x9e, 0x59, 0xe2, 0x11, 0x9b, 0x2a, 0x45, 0xa0, 0xb2, 0x87, + 0xf4, 0xdc, 0x1e, 0xaf, 0x34, 0x62, 0xb6, 0x78, 0xbb, 0x0f, 0x89, 0x2d, 0x54, 0x54, 0xcc, 0x96, + 0x34, 0x68, 0x8e, 0x2d, 0xfe, 0x8b, 0xf0, 0xb7, 0xee, 0xa0, 0xe7, 0x83, 0x88, 0x8a, 0xe4, 0xf9, + 0x20, 0x22, 0xce, 0x3a, 0x1f, 0x44, 0x80, 0xda, 0x9f, 0x97, 0xd0, 0xe9, 0x6f, 0x2d, 0x81, 0x57, + 0x94, 0xc8, 0x0b, 0xe2, 0x58, 0x47, 0x2c, 0xbc, 0x4e, 0x96, 0x58, 0x18, 0x0b, 0xaf, 0x84, 0x39, + 0x4b, 0x5f, 0xea, 0x5a, 0x97, 0xb6, 0xb8, 0x25, 0x57, 0xb3, 0xd4, 0xe5, 0x2b, 0xb9, 0x33, 0x79, + 0x53, 0x81, 0xeb, 0x52, 0x7a, 0x44, 0xdf, 0x2e, 0xb4, 0x03, 0xf9, 0x5f, 0xa7, 0x12, 0x3e, 0x18, + 0x60, 0x07, 0xb1, 0x48, 0x1a, 0xa6, 0x1c, 0xc4, 0x22, 0xf2, 0xcc, 0xed, 0x7f, 0x02, 0xa9, 0xcd, + 0x0d, 0xd0, 0xa4, 0x3e, 0x3f, 0x00, 0x3f, 0x44, 0xd2, 0xa4, 0x2e, 0x1c, 0x86, 0xa2, 0x31, 0x28, + 0x16, 0x00, 0x39, 0xfb, 0xf5, 0xdf, 0x22, 0x78, 0x17, 0x65, 0x66, 0x59, 0xa1, 0x14, 0xfb, 0xc8, + 0x39, 0x06, 0x7f, 0xba, 0x83, 0x6e, 0xf7, 0x22, 0x81, 0x4a, 0xdf, 0xee, 0xc5, 0xbb, 0x58, 0xe6, + 0x76, 0x2f, 0x1d, 0xcc, 0xdb, 0xea, 0x3f, 0x59, 0x63, 0xfb, 0x60, 0x09, 0xbc, 0xae, 0x44, 0xb6, + 0x5d, 0xb7, 0xbb, 0x5b, 0xbc, 0xbb, 0xfd, 0x4a, 0x81, 0x5f, 0x66, 0x73, 0x74, 0xbb, 0xc5, 0x95, + 0x69, 0x71, 0x6f, 0x29, 0x78, 0x24, 0xb2, 0xad, 0x1d, 0xa7, 0x2a, 0xf7, 0xfb, 0xd7, 0x12, 0xe1, + 0x3e, 0xc9, 0xd6, 0x2d, 0x0e, 0x8c, 0x3e, 0xaf, 0xdf, 0x5b, 0x72, 0x14, 0xaf, 0x84, 0x9f, 0xb3, + 0x3d, 0xf1, 0x1b, 0x48, 0x7d, 0x2c, 0xb6, 0x1f, 0x4c, 0xde, 0xde, 0xd4, 0xcf, 0x46, 0x2f, 0x4f, + 0x72, 0x7a, 0x42, 0x3f, 0x72, 0x7a, 0xbc, 0x0d, 0x6f, 0x4b, 0x6d, 0xe4, 0x2b, 0xa4, 0xa9, 0x13, + 0x1a, 0xcf, 0x72, 0xa4, 0xf8, 0x2c, 0x70, 0x4e, 0xc1, 0x6a, 0x8d, 0xb8, 0x32, 0x2a, 0xef, 0x2d, + 0x48, 0x4a, 0x68, 0x4b, 0xb4, 0xbb, 0xcc, 0x10, 0x4e, 0xe2, 0x73, 0x94, 0xc3, 0x67, 0x83, 0x57, + 0xd1, 0x19, 0x14, 0x26, 0x5f, 0x61, 0x7f, 0x3a, 0xb8, 0x99, 0x90, 0xc3, 0x94, 0xec, 0x65, 0xf6, + 0x65, 0x05, 0x8f, 0x8c, 0x93, 0x36, 0x99, 0x7f, 0x4e, 0x31, 0x2d, 0x65, 0x73, 0x4a, 0x8c, 0xe2, + 0x74, 0x7c, 0x83, 0xe5, 0xd4, 0x73, 0x95, 0xbe, 0xf8, 0xf0, 0x92, 0xe7, 0x40, 0x65, 0x9e, 0x94, + 0x78, 0xb9, 0xf1, 0x92, 0x82, 0x87, 0x22, 0x95, 0x16, 0xe2, 0xa3, 0x2a, 0xf1, 0x4c, 0x56, 0x5d, + 0x7a, 0x61, 0x3c, 0xe7, 0x60, 0x8e, 0x71, 0x70, 0x1e, 0xa9, 0x7a, 0xdc, 0x93, 0x9c, 0x82, 0xf2, + 0xfc, 0x3f, 0xa6, 0x3e, 0xbe, 0x80, 0xc5, 0xc3, 0x2f, 0xcc, 0xae, 0x0e, 0x0a, 0x25, 0xc4, 0xc4, + 0x8e, 0x5c, 0xcf, 0x42, 0xc5, 0xb1, 0xb3, 0x18, 0x98, 0x73, 0x40, 0x28, 0x05, 0x0d, 0xb8, 0x27, + 0x8b, 0x01, 0x61, 0x64, 0xfd, 0x01, 0xd8, 0xdb, 0x57, 0xcc, 0xe1, 0x16, 0xc2, 0x43, 0x91, 0xec, + 0x2f, 0x15, 0xe7, 0x68, 0xc6, 0xeb, 0x85, 0xf1, 0xdc, 0xc7, 0xd3, 0xd4, 0x47, 0x52, 0x29, 0xe4, + 0x23, 0x7d, 0x10, 0x50, 0xe9, 0xcf, 0x4d, 0xfa, 0xba, 0x5a, 0xc1, 0xc3, 0x2c, 0xcf, 0xc4, 0x91, + 0x3a, 0xe4, 0xaa, 0xf4, 0x2d, 0xa7, 0x2c, 0xa7, 0xc7, 0x8a, 0x0f, 0xe0, 0xce, 0xde, 0x60, 0x49, + 0xfd, 0x1b, 0xa4, 0xd6, 0x13, 0xd7, 0x19, 0xfb, 0x58, 0x26, 0x22, 0xbf, 0x09, 0x45, 0x94, 0x24, + 0x57, 0xb5, 0xb2, 0x26, 0x98, 0xd7, 0xb2, 0x21, 0x9d, 0x15, 0xbe, 0xa6, 0xe0, 0x35, 0xa1, 0x7b, + 0xb0, 0x21, 0x6e, 0x77, 0xe6, 0x53, 0x15, 0xaa, 0x92, 0x5d, 0x05, 0xd1, 0x9c, 0xd5, 0x17, 0x19, + 0xab, 0xcf, 0x23, 0x78, 0x30, 0x93, 0xd5, 0x44, 0x93, 0x0b, 0x5e, 0xac, 0xcc, 0xd6, 0x0f, 0xc2, + 0x81, 0x5c, 0xc6, 0x24, 0xbd, 0x32, 0xa4, 0x06, 0x2e, 0x29, 0x78, 0x98, 0x65, 0x78, 0x7f, 0x19, + 0x16, 0xad, 0xa6, 0xb1, 0xe2, 0x03, 0x12, 0x2f, 0x60, 0xfb, 0xe7, 0xc2, 0x4b, 0xa0, 0xcf, 0x54, + 0x16, 0x82, 0x0e, 0x2f, 0x29, 0xbe, 0x8b, 0xf0, 0x90, 0x77, 0x6e, 0x3c, 0x22, 0x3e, 0xdc, 0xc8, + 0xea, 0x2e, 0x12, 0xa0, 0xb4, 0xbb, 0x48, 0xf1, 0x9c, 0x8e, 0x7b, 0x28, 0x1b, 0x1b, 0x60, 0xbd, + 0x70, 0x26, 0xf8, 0x7c, 0x24, 0xf0, 0x06, 0xde, 0xe7, 0x57, 0xf5, 0x82, 0x9b, 0x75, 0x26, 0x71, + 0x92, 0x4f, 0x6b, 0x43, 0x17, 0xef, 0xc2, 0x47, 0xe6, 0x8d, 0x39, 0xb8, 0xb4, 0xfc, 0xf4, 0xb6, + 0xbc, 0x2d, 0xf6, 0x45, 0x88, 0xe9, 0x85, 0x43, 0x7c, 0xcb, 0xd2, 0x70, 0xcf, 0xf4, 0x48, 0x1a, + 0xa9, 0xe1, 0xfc, 0xcc, 0x19, 0x9c, 0xb9, 0xd3, 0x39, 0xa7, 0xe0, 0x15, 0x35, 0x12, 0xf2, 0xf4, + 0x4c, 0xf2, 0xaa, 0x7c, 0x48, 0x18, 0x2a, 0xca, 0x75, 0x19, 0x30, 0xed, 0xc7, 0xcc, 0xc5, 0x6b, + 0x08, 0x0e, 0x15, 0x75, 0x31, 0xff, 0x36, 0xc7, 0x17, 0xe0, 0xc9, 0x32, 0x2e, 0x97, 0xb8, 0xdc, + 0xf1, 0x9a, 0x82, 0x57, 0xb1, 0xd6, 0x1c, 0x26, 0x62, 0x5b, 0x86, 0x87, 0xd1, 0xce, 0xbf, 0xbd, + 0x00, 0x92, 0x67, 0xe0, 0x4f, 0x19, 0x33, 0x3f, 0x42, 0xea, 0xc2, 0x31, 0xe3, 0x15, 0xe8, 0x53, + 0xea, 0x22, 0x91, 0xe3, 0xd5, 0x6c, 0x1b, 0xe3, 0x1a, 0x71, 0x9f, 0x64, 0xa7, 0xb0, 0xe4, 0xc7, + 0x48, 0x81, 0x4c, 0xfa, 0x31, 0x52, 0x18, 0xc2, 0x99, 0x18, 0xa2, 0x44, 0xac, 0x82, 0x95, 0xc2, + 0x6e, 0x7e, 0xca, 0x83, 0x9f, 0x29, 0x74, 0x6b, 0x35, 0x1e, 0x7c, 0x2b, 0xc5, 0x03, 0x92, 0x7f, + 0x75, 0x3b, 0x61, 0x5a, 0x42, 0x89, 0xf6, 0x1e, 0x0b, 0xc0, 0x3b, 0x08, 0xfc, 0xf3, 0x54, 0xe2, + 0xab, 0x2c, 0x4a, 0x1b, 0x3d, 0x6a, 0x96, 0x8c, 0x44, 0xf4, 0x72, 0x77, 0x17, 0xda, 0x99, 0x53, + 0x24, 0x22, 0x31, 0xbf, 0xf9, 0xe0, 0xcd, 0x01, 0xd6, 0x5a, 0xe3, 0x4e, 0x9b, 0x69, 0x2b, 0x6e, + 0x82, 0x99, 0x70, 0x0f, 0xdb, 0x52, 0x08, 0xad, 0xfd, 0x8e, 0xbd, 0xe5, 0x7b, 0x5b, 0x81, 0x27, + 0xb2, 0xb9, 0x2c, 0x5f, 0xec, 0x5f, 0x86, 0x2f, 0x95, 0x52, 0x59, 0xf6, 0x2e, 0x6f, 0x0d, 0x0e, + 0x2e, 0x88, 0xc9, 0xf5, 0x13, 0x30, 0xb1, 0xf0, 0x86, 0xc2, 0x15, 0x85, 0x5e, 0xe1, 0xf7, 0x1f, + 0xb8, 0x1d, 0x21, 0xae, 0x6d, 0x36, 0x1d, 0xd8, 0x5d, 0xe4, 0x26, 0x1d, 0x07, 0x8b, 0x60, 0xee, + 0x29, 0x35, 0x86, 0x57, 0x67, 0xca, 0xc7, 0x7c, 0x1d, 0x06, 0x29, 0x79, 0x07, 0x2f, 0xf4, 0x31, + 0x5f, 0x8a, 0x82, 0x92, 0x61, 0x7b, 0xe4, 0xe1, 0xfa, 0x43, 0x53, 0xa6, 0x7b, 0x6a, 0x7a, 0xb2, + 0xda, 0xb4, 0x3a, 0x3a, 0xf5, 0xcb, 0x53, 0x41, 0xff, 0xd0, 0xfd, 0x8f, 0x2d, 0xa7, 0x48, 0x57, + 0xef, 0x4d, 0xee, 0x9a, 0xb2, 0xf4, 0xf8, 0x47, 0xbb, 0x93, 0xff, 0x47, 0xbf, 0xb7, 0xdc, 0xf3, + 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8e, 0xb6, 0xde, 0x29, 0xcf, 0x3b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go index ea8c99459c..4c5d78837c 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go @@ -119,11 +119,11 @@ func request_AdminService_GetTask_0(ctx context.Context, marshaler runtime.Marsh } var ( - filter_AdminService_ListTaskIds_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} + filter_AdminService_GetTask_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4, "version": 5}, Base: []int{1, 1, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7}} ) -func request_AdminService_ListTaskIds_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.NamedEntityIdentifierListRequest +func request_AdminService_GetTask_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ObjectGetRequest var metadata runtime.ServerMetadata var ( @@ -133,46 +133,79 @@ func request_AdminService_ListTaskIds_0(ctx context.Context, marshaler runtime.M _ = err ) - val, ok = pathParams["project"] + val, ok = pathParams["id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") } - protoReq.Project, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) } - val, ok = pathParams["domain"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - protoReq.Domain, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + val, ok = pathParams["id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTaskIds_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetTask_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListTaskIds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetTask(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListTasks_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} + filter_AdminService_ListTaskIds_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} ) -func request_AdminService_ListTasks_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ResourceListRequest +func request_AdminService_ListTaskIds_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityIdentifierListRequest var metadata runtime.ServerMetadata var ( @@ -182,57 +215,46 @@ func request_AdminService_ListTasks_0(ctx context.Context, marshaler runtime.Mar _ = err ) - val, ok = pathParams["id.project"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") - } - - err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) - } - - val, ok = pathParams["id.domain"] + val, ok = pathParams["project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + protoReq.Project, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) } - val, ok = pathParams["id.name"] + val, ok = pathParams["domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + protoReq.Domain, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTasks_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTaskIds_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListTasks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListTaskIds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListTasks_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}} + filter_AdminService_ListTaskIds_1 = &utilities.DoubleArray{Encoding: map[string]int{"org": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}} ) -func request_AdminService_ListTasks_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ResourceListRequest +func request_AdminService_ListTaskIds_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityIdentifierListRequest var metadata runtime.ServerMetadata var ( @@ -242,63 +264,57 @@ func request_AdminService_ListTasks_1(ctx context.Context, marshaler runtime.Mar _ = err ) - val, ok = pathParams["id.project"] + val, ok = pathParams["org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + protoReq.Org, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) } - val, ok = pathParams["id.domain"] + val, ok = pathParams["project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + protoReq.Project, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) } - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTasks_1); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") } - msg, err := client.ListTasks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} + protoReq.Domain, err = runtime.String(val) -func request_AdminService_CreateWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.WorkflowCreateRequest - var metadata runtime.ServerMetadata + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTaskIds_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.CreateWorkflow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListTaskIds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetWorkflow_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3, "version": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} + filter_AdminService_ListTasks_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} ) -func request_AdminService_GetWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ObjectGetRequest +func request_AdminService_ListTasks_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ResourceListRequest var metadata runtime.ServerMetadata var ( @@ -341,35 +357,24 @@ func request_AdminService_GetWorkflow_0(ctx context.Context, marshaler runtime.M return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } - val, ok = pathParams["id.version"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") - } - - err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) - } - if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetWorkflow_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTasks_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetWorkflow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListTasks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListWorkflowIds_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} + filter_AdminService_ListTasks_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} ) -func request_AdminService_ListWorkflowIds_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.NamedEntityIdentifierListRequest +func request_AdminService_ListTasks_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ResourceListRequest var metadata runtime.ServerMetadata var ( @@ -379,45 +384,67 @@ func request_AdminService_ListWorkflowIds_0(ctx context.Context, marshaler runti _ = err ) - val, ok = pathParams["project"] + val, ok = pathParams["id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") } - protoReq.Project, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) } - val, ok = pathParams["domain"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - protoReq.Domain, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListWorkflowIds_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTasks_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListWorkflowIds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListTasks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListWorkflows_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} + filter_AdminService_ListTasks_2 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}} ) -func request_AdminService_ListWorkflows_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { +func request_AdminService_ListTasks_2(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.ResourceListRequest var metadata runtime.ServerMetadata @@ -450,34 +477,23 @@ func request_AdminService_ListWorkflows_0(ctx context.Context, marshaler runtime return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["id.name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") - } - - err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) - } - if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListWorkflows_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTasks_2); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListWorkflows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListTasks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListWorkflows_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}} + filter_AdminService_ListTasks_3 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} ) -func request_AdminService_ListWorkflows_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { +func request_AdminService_ListTasks_3(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.ResourceListRequest var metadata runtime.ServerMetadata @@ -488,6 +504,17 @@ func request_AdminService_ListWorkflows_1(ctx context.Context, marshaler runtime _ = err ) + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + val, ok = pathParams["id.project"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") @@ -513,17 +540,17 @@ func request_AdminService_ListWorkflows_1(ctx context.Context, marshaler runtime if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListWorkflows_1); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTasks_3); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListWorkflows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListTasks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_CreateLaunchPlan_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.LaunchPlanCreateRequest +func request_AdminService_CreateWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowCreateRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -534,16 +561,16 @@ func request_AdminService_CreateLaunchPlan_0(ctx context.Context, marshaler runt return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.CreateLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.CreateWorkflow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetLaunchPlan_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3, "version": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} + filter_AdminService_GetWorkflow_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3, "version": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} ) -func request_AdminService_GetLaunchPlan_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { +func request_AdminService_GetWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.ObjectGetRequest var metadata runtime.ServerMetadata @@ -601,21 +628,21 @@ func request_AdminService_GetLaunchPlan_0(ctx context.Context, marshaler runtime if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetLaunchPlan_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetWorkflow_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetWorkflow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetActiveLaunchPlan_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} + filter_AdminService_GetWorkflow_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4, "version": 5}, Base: []int{1, 1, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7}} ) -func request_AdminService_GetActiveLaunchPlan_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ActiveLaunchPlanRequest +func request_AdminService_GetWorkflow_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ObjectGetRequest var metadata runtime.ServerMetadata var ( @@ -625,6 +652,17 @@ func request_AdminService_GetActiveLaunchPlan_0(ctx context.Context, marshaler r _ = err ) + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + val, ok = pathParams["id.project"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") @@ -658,24 +696,35 @@ func request_AdminService_GetActiveLaunchPlan_0(ctx context.Context, marshaler r return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetActiveLaunchPlan_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + val, ok = pathParams["id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") } - msg, err := client.GetActiveLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetWorkflow_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetWorkflow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListActiveLaunchPlans_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} + filter_AdminService_ListWorkflowIds_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} ) -func request_AdminService_ListActiveLaunchPlans_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ActiveLaunchPlanListRequest +func request_AdminService_ListWorkflowIds_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityIdentifierListRequest var metadata runtime.ServerMetadata var ( @@ -710,20 +759,20 @@ func request_AdminService_ListActiveLaunchPlans_0(ctx context.Context, marshaler if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListActiveLaunchPlans_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListWorkflowIds_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListActiveLaunchPlans(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListWorkflowIds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListLaunchPlanIds_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} + filter_AdminService_ListWorkflowIds_1 = &utilities.DoubleArray{Encoding: map[string]int{"org": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}} ) -func request_AdminService_ListLaunchPlanIds_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { +func request_AdminService_ListWorkflowIds_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.NamedEntityIdentifierListRequest var metadata runtime.ServerMetadata @@ -734,6 +783,17 @@ func request_AdminService_ListLaunchPlanIds_0(ctx context.Context, marshaler run _ = err ) + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + val, ok = pathParams["project"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") @@ -759,20 +819,20 @@ func request_AdminService_ListLaunchPlanIds_0(ctx context.Context, marshaler run if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListLaunchPlanIds_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListWorkflowIds_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListLaunchPlanIds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListWorkflowIds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListLaunchPlans_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} + filter_AdminService_ListWorkflows_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} ) -func request_AdminService_ListLaunchPlans_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { +func request_AdminService_ListWorkflows_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.ResourceListRequest var metadata runtime.ServerMetadata @@ -819,20 +879,20 @@ func request_AdminService_ListLaunchPlans_0(ctx context.Context, marshaler runti if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListLaunchPlans_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListWorkflows_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListLaunchPlans(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListWorkflows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListLaunchPlans_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}} + filter_AdminService_ListWorkflows_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} ) -func request_AdminService_ListLaunchPlans_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { +func request_AdminService_ListWorkflows_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.ResourceListRequest var metadata runtime.ServerMetadata @@ -843,6 +903,17 @@ func request_AdminService_ListLaunchPlans_1(ctx context.Context, marshaler runti _ = err ) + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + val, ok = pathParams["id.project"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") @@ -865,29 +936,36 @@ func request_AdminService_ListLaunchPlans_1(ctx context.Context, marshaler runti return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListLaunchPlans_1); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListWorkflows_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListLaunchPlans(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListWorkflows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_UpdateLaunchPlan_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.LaunchPlanUpdateRequest - var metadata runtime.ServerMetadata +var ( + filter_AdminService_ListWorkflows_2 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}} +) - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } +func request_AdminService_ListWorkflows_2(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ResourceListRequest + var metadata runtime.ServerMetadata var ( val string @@ -918,69 +996,80 @@ func request_AdminService_UpdateLaunchPlan_0(ctx context.Context, marshaler runt return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["id.name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListWorkflows_2); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + msg, err := client.ListWorkflows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) - } +} - val, ok = pathParams["id.version"] +var ( + filter_AdminService_ListWorkflows_3 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} +) + +func request_AdminService_ListWorkflows_3(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ResourceListRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) } - msg, err := client.UpdateLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } -func request_AdminService_CreateExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ExecutionCreateRequest - var metadata runtime.ServerMetadata + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - msg, err := client.CreateExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } -} + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) -func request_AdminService_RelaunchExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ExecutionRelaunchRequest - var metadata runtime.ServerMetadata + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListWorkflows_3); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.RelaunchExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListWorkflows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_RecoverExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ExecutionRecoverRequest +func request_AdminService_CreateLaunchPlan_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.LaunchPlanCreateRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -991,17 +1080,17 @@ func request_AdminService_RecoverExecution_0(ctx context.Context, marshaler runt return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.RecoverExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.CreateLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetExecution_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} + filter_AdminService_GetLaunchPlan_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3, "version": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} ) -func request_AdminService_GetExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.WorkflowExecutionGetRequest +func request_AdminService_GetLaunchPlan_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ObjectGetRequest var metadata runtime.ServerMetadata var ( @@ -1044,29 +1133,36 @@ func request_AdminService_GetExecution_0(ctx context.Context, marshaler runtime. return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } + val, ok = pathParams["id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) + } + if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetExecution_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetLaunchPlan_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_UpdateExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ExecutionUpdateRequest - var metadata runtime.ServerMetadata +var ( + filter_AdminService_GetLaunchPlan_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4, "version": 5}, Base: []int{1, 1, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7}} +) - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } +func request_AdminService_GetLaunchPlan_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ObjectGetRequest + var metadata runtime.ServerMetadata var ( val string @@ -1075,6 +1171,17 @@ func request_AdminService_UpdateExecution_0(ctx context.Context, marshaler runti _ = err ) + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + val, ok = pathParams["id.project"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") @@ -1108,17 +1215,35 @@ func request_AdminService_UpdateExecution_0(ctx context.Context, marshaler runti return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } - msg, err := client.UpdateExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + val, ok = pathParams["id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetLaunchPlan_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetExecutionData_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} + filter_AdminService_GetActiveLaunchPlan_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} ) -func request_AdminService_GetExecutionData_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.WorkflowExecutionGetDataRequest +func request_AdminService_GetActiveLaunchPlan_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ActiveLaunchPlanRequest var metadata runtime.ServerMetadata var ( @@ -1164,21 +1289,21 @@ func request_AdminService_GetExecutionData_0(ctx context.Context, marshaler runt if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetExecutionData_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetActiveLaunchPlan_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetExecutionData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetActiveLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListExecutions_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}} + filter_AdminService_GetActiveLaunchPlan_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} ) -func request_AdminService_ListExecutions_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ResourceListRequest +func request_AdminService_GetActiveLaunchPlan_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ActiveLaunchPlanRequest var metadata runtime.ServerMetadata var ( @@ -1188,6 +1313,17 @@ func request_AdminService_ListExecutions_0(ctx context.Context, marshaler runtim _ = err ) + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + val, ok = pathParams["id.project"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") @@ -1210,29 +1346,36 @@ func request_AdminService_ListExecutions_0(ctx context.Context, marshaler runtim return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListExecutions_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetActiveLaunchPlan_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListExecutions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetActiveLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_TerminateExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ExecutionTerminateRequest - var metadata runtime.ServerMetadata +var ( + filter_AdminService_ListActiveLaunchPlans_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } +func request_AdminService_ListActiveLaunchPlans_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ActiveLaunchPlanListRequest + var metadata runtime.ServerMetadata var ( val string @@ -1241,50 +1384,46 @@ func request_AdminService_TerminateExecution_0(ctx context.Context, marshaler ru _ = err ) - val, ok = pathParams["id.project"] + val, ok = pathParams["project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + protoReq.Project, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) } - val, ok = pathParams["id.domain"] + val, ok = pathParams["domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + protoReq.Domain, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) } - val, ok = pathParams["id.name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - - err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListActiveLaunchPlans_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.TerminateExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListActiveLaunchPlans(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetNodeExecution_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "execution_id": 1, "project": 2, "domain": 3, "name": 4, "node_id": 5}, Base: []int{1, 6, 1, 1, 2, 2, 5, 0, 0, 4, 0, 6, 0}, Check: []int{0, 1, 2, 3, 2, 5, 2, 4, 6, 7, 10, 2, 12}} + filter_AdminService_ListLaunchPlanIds_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} ) -func request_AdminService_GetNodeExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.NodeExecutionGetRequest +func request_AdminService_ListLaunchPlanIds_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityIdentifierListRequest var metadata runtime.ServerMetadata var ( @@ -1294,68 +1433,46 @@ func request_AdminService_GetNodeExecution_0(ctx context.Context, marshaler runt _ = err ) - val, ok = pathParams["id.execution_id.project"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.project") - } - - err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.project", val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.project", err) - } - - val, ok = pathParams["id.execution_id.domain"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.domain") - } - - err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.domain", val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.domain", err) - } - - val, ok = pathParams["id.execution_id.name"] + val, ok = pathParams["project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.name", val) + protoReq.Project, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) } - val, ok = pathParams["id.node_id"] + val, ok = pathParams["domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.node_id", val) + protoReq.Domain, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_id", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetNodeExecution_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListLaunchPlanIds_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetNodeExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListLaunchPlanIds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListNodeExecutions_0 = &utilities.DoubleArray{Encoding: map[string]int{"workflow_execution_id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} + filter_AdminService_ListLaunchPlanIds_1 = &utilities.DoubleArray{Encoding: map[string]int{"org": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}} ) -func request_AdminService_ListNodeExecutions_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.NodeExecutionListRequest +func request_AdminService_ListLaunchPlanIds_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityIdentifierListRequest var metadata runtime.ServerMetadata var ( @@ -1365,57 +1482,57 @@ func request_AdminService_ListNodeExecutions_0(ctx context.Context, marshaler ru _ = err ) - val, ok = pathParams["workflow_execution_id.project"] + val, ok = pathParams["org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") } - err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.project", val) + protoReq.Org, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) } - val, ok = pathParams["workflow_execution_id.domain"] + val, ok = pathParams["project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") } - err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.domain", val) + protoReq.Project, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) } - val, ok = pathParams["workflow_execution_id.name"] + val, ok = pathParams["domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.name", val) + protoReq.Domain, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListNodeExecutions_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListLaunchPlanIds_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListNodeExecutions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListLaunchPlanIds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListNodeExecutionsForTask_0 = &utilities.DoubleArray{Encoding: map[string]int{"task_execution_id": 0, "node_execution_id": 1, "execution_id": 2, "project": 3, "domain": 4, "name": 5, "node_id": 6, "task_id": 7, "version": 8, "retry_attempt": 9}, Base: []int{1, 20, 1, 1, 1, 4, 3, 2, 7, 5, 3, 0, 0, 0, 9, 6, 0, 15, 9, 0, 17, 12, 0, 19, 15, 0, 19, 18, 0, 20, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 2, 9, 10, 5, 8, 11, 2, 15, 16, 2, 18, 19, 2, 21, 22, 2, 24, 25, 2, 27, 28, 2, 30}} + filter_AdminService_ListLaunchPlans_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} ) -func request_AdminService_ListNodeExecutionsForTask_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.NodeExecutionForTaskListRequest +func request_AdminService_ListLaunchPlans_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ResourceListRequest var metadata runtime.ServerMetadata var ( @@ -1425,123 +1542,128 @@ func request_AdminService_ListNodeExecutionsForTask_0(ctx context.Context, marsh _ = err ) - val, ok = pathParams["task_execution_id.node_execution_id.execution_id.project"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.execution_id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.execution_id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.execution_id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - val, ok = pathParams["task_execution_id.node_execution_id.execution_id.domain"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.execution_id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.execution_id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.execution_id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["task_execution_id.node_execution_id.execution_id.name"] + val, ok = pathParams["id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.execution_id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.execution_id.name", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.execution_id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } - val, ok = pathParams["task_execution_id.node_execution_id.node_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.node_id") + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListLaunchPlans_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.node_id", val) + msg, err := client.ListLaunchPlans(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.node_id", err) - } +} - val, ok = pathParams["task_execution_id.task_id.project"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.project") - } +var ( + filter_AdminService_ListLaunchPlans_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} +) - err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.project", val) +func request_AdminService_ListLaunchPlans_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ResourceListRequest + var metadata runtime.ServerMetadata - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.project", err) - } + var ( + val string + ok bool + err error + _ = err + ) - val, ok = pathParams["task_execution_id.task_id.domain"] + val, ok = pathParams["id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") } - err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) } - val, ok = pathParams["task_execution_id.task_id.name"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.name", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - val, ok = pathParams["task_execution_id.task_id.version"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.version") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.version", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.version", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["task_execution_id.retry_attempt"] + val, ok = pathParams["id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.retry_attempt") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.retry_attempt", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.retry_attempt", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListNodeExecutionsForTask_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListLaunchPlans_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListNodeExecutionsForTask(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListLaunchPlans(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetNodeExecutionData_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "execution_id": 1, "project": 2, "domain": 3, "name": 4, "node_id": 5}, Base: []int{1, 6, 1, 1, 2, 2, 5, 0, 0, 4, 0, 6, 0}, Check: []int{0, 1, 2, 3, 2, 5, 2, 4, 6, 7, 10, 2, 12}} + filter_AdminService_ListLaunchPlans_2 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}} ) -func request_AdminService_GetNodeExecutionData_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.NodeExecutionGetDataRequest +func request_AdminService_ListLaunchPlans_2(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ResourceListRequest var metadata runtime.ServerMetadata var ( @@ -1551,81 +1673,102 @@ func request_AdminService_GetNodeExecutionData_0(ctx context.Context, marshaler _ = err ) - val, ok = pathParams["id.execution_id.project"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - val, ok = pathParams["id.execution_id.domain"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["id.execution_id.name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.name") + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - - err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.name", val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.name", err) + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListLaunchPlans_2); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - val, ok = pathParams["id.node_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_id") - } + msg, err := client.ListLaunchPlans(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err - err = runtime.PopulateFieldFromPath(&protoReq, "id.node_id", val) +} + +var ( + filter_AdminService_ListLaunchPlans_3 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} +) + +func request_AdminService_ListLaunchPlans_3(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ResourceListRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_id", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) } - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetNodeExecutionData_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - msg, err := client.GetNodeExecutionData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } -} + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) -func request_AdminService_RegisterProject_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ProjectRegisterRequest - var metadata runtime.ServerMetadata + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListLaunchPlans_3); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.RegisterProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListLaunchPlans(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_UpdateProject_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.Project +func request_AdminService_UpdateLaunchPlan_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.LaunchPlanUpdateRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1643,44 +1786,139 @@ func request_AdminService_UpdateProject_0(ctx context.Context, marshaler runtime _ = err ) - val, ok = pathParams["id"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - protoReq.Id, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - msg, err := client.UpdateProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + val, ok = pathParams["id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) + } + + msg, err := client.UpdateLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListProjects_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_AdminService_UpdateLaunchPlan_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4, "version": 5}, Base: []int{1, 1, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7}} ) -func request_AdminService_ListProjects_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ProjectListRequest +func request_AdminService_UpdateLaunchPlan_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.LaunchPlanUpdateRequest var metadata runtime.ServerMetadata + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + val, ok = pathParams["id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) + } + if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListProjects_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_UpdateLaunchPlan_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListProjects(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.UpdateLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_CreateWorkflowEvent_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.WorkflowExecutionEventRequest +func request_AdminService_CreateExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ExecutionCreateRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1691,13 +1929,13 @@ func request_AdminService_CreateWorkflowEvent_0(ctx context.Context, marshaler r return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.CreateWorkflowEvent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.CreateExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_CreateNodeEvent_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.NodeExecutionEventRequest +func request_AdminService_RelaunchExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ExecutionRelaunchRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1708,13 +1946,13 @@ func request_AdminService_CreateNodeEvent_0(ctx context.Context, marshaler runti return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.CreateNodeEvent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.RelaunchExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_CreateTaskEvent_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.TaskExecutionEventRequest +func request_AdminService_RecoverExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ExecutionRecoverRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1725,17 +1963,17 @@ func request_AdminService_CreateTaskEvent_0(ctx context.Context, marshaler runti return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.CreateTaskEvent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.RecoverExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetTaskExecution_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "node_execution_id": 1, "execution_id": 2, "project": 3, "domain": 4, "name": 5, "node_id": 6, "task_id": 7, "version": 8, "retry_attempt": 9}, Base: []int{1, 20, 1, 1, 1, 4, 3, 2, 7, 5, 3, 0, 0, 0, 9, 6, 0, 15, 9, 0, 17, 12, 0, 19, 15, 0, 19, 18, 0, 20, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 2, 9, 10, 5, 8, 11, 2, 15, 16, 2, 18, 19, 2, 21, 22, 2, 24, 25, 2, 27, 28, 2, 30}} + filter_AdminService_GetExecution_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} ) -func request_AdminService_GetTaskExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.TaskExecutionGetRequest +func request_AdminService_GetExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowExecutionGetRequest var metadata runtime.ServerMetadata var ( @@ -1745,125 +1983,134 @@ func request_AdminService_GetTaskExecution_0(ctx context.Context, marshaler runt _ = err ) - val, ok = pathParams["id.node_execution_id.execution_id.project"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - val, ok = pathParams["id.node_execution_id.execution_id.domain"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["id.node_execution_id.execution_id.name"] + val, ok = pathParams["id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.name", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } - val, ok = pathParams["id.node_execution_id.node_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.node_id") + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetExecution_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.node_id", val) + msg, err := client.GetExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.node_id", err) - } +} - val, ok = pathParams["id.task_id.project"] +var ( + filter_AdminService_GetExecution_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} +) + +func request_AdminService_GetExecution_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowExecutionGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) } - val, ok = pathParams["id.task_id.domain"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - val, ok = pathParams["id.task_id.name"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.name", val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.name", err) - } - - val, ok = pathParams["id.task_id.version"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.version") - } - - err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.version", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.version", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["id.retry_attempt"] + val, ok = pathParams["id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.retry_attempt") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.retry_attempt", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.retry_attempt", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetTaskExecution_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetExecution_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetTaskExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -var ( - filter_AdminService_ListTaskExecutions_0 = &utilities.DoubleArray{Encoding: map[string]int{"node_execution_id": 0, "execution_id": 1, "project": 2, "domain": 3, "name": 4, "node_id": 5}, Base: []int{1, 6, 1, 1, 2, 2, 5, 0, 0, 4, 0, 6, 0}, Check: []int{0, 1, 2, 3, 2, 5, 2, 4, 6, 7, 10, 2, 12}} -) - -func request_AdminService_ListTaskExecutions_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.TaskExecutionListRequest +func request_AdminService_UpdateExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ExecutionUpdateRequest var metadata runtime.ServerMetadata + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + var ( val string ok bool @@ -1871,70 +2118,56 @@ func request_AdminService_ListTaskExecutions_0(ctx context.Context, marshaler ru _ = err ) - val, ok = pathParams["node_execution_id.execution_id.project"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.execution_id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.execution_id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.execution_id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - val, ok = pathParams["node_execution_id.execution_id.domain"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.execution_id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.execution_id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.execution_id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["node_execution_id.execution_id.name"] + val, ok = pathParams["id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.execution_id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.execution_id.name", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.execution_id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } - val, ok = pathParams["node_execution_id.node_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.node_id") - } + msg, err := client.UpdateExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err - err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.node_id", val) +} - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.node_id", err) - } +func request_AdminService_UpdateExecution_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ExecutionUpdateRequest + var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTaskExecutions_0); err != nil { + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListTaskExecutions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -var ( - filter_AdminService_GetTaskExecutionData_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "node_execution_id": 1, "execution_id": 2, "project": 3, "domain": 4, "name": 5, "node_id": 6, "task_id": 7, "version": 8, "retry_attempt": 9}, Base: []int{1, 20, 1, 1, 1, 4, 3, 2, 7, 5, 3, 0, 0, 0, 9, 6, 0, 15, 9, 0, 17, 12, 0, 19, 15, 0, 19, 18, 0, 20, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 2, 9, 10, 5, 8, 11, 2, 15, 16, 2, 18, 19, 2, 21, 22, 2, 24, 25, 2, 27, 28, 2, 30}} -) - -func request_AdminService_GetTaskExecutionData_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.TaskExecutionGetDataRequest - var metadata runtime.ServerMetadata - var ( val string ok bool @@ -1942,128 +2175,122 @@ func request_AdminService_GetTaskExecutionData_0(ctx context.Context, marshaler _ = err ) - val, ok = pathParams["id.node_execution_id.execution_id.project"] + val, ok = pathParams["id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) } - val, ok = pathParams["id.node_execution_id.execution_id.domain"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - val, ok = pathParams["id.node_execution_id.execution_id.name"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.name", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["id.node_execution_id.node_id"] + val, ok = pathParams["id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.node_id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.node_id", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.node_id", err) - } - - val, ok = pathParams["id.task_id.project"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } - err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.project", val) + msg, err := client.UpdateExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.project", err) - } +} - val, ok = pathParams["id.task_id.domain"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.domain") - } +var ( + filter_AdminService_GetExecutionData_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} +) - err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.domain", val) +func request_AdminService_GetExecutionData_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowExecutionGetDataRequest + var metadata runtime.ServerMetadata - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.domain", err) - } + var ( + val string + ok bool + err error + _ = err + ) - val, ok = pathParams["id.task_id.name"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.name", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - val, ok = pathParams["id.task_id.version"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.version") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.version", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.version", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["id.retry_attempt"] + val, ok = pathParams["id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.retry_attempt") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.retry_attempt", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.retry_attempt", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetTaskExecutionData_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetExecutionData_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetTaskExecutionData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetExecutionData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_UpdateProjectDomainAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ProjectDomainAttributesUpdateRequest - var metadata runtime.ServerMetadata +var ( + filter_AdminService_GetExecutionData_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} +) - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } +func request_AdminService_GetExecutionData_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowExecutionGetDataRequest + var metadata runtime.ServerMetadata var ( val string @@ -2072,93 +2299,69 @@ func request_AdminService_UpdateProjectDomainAttributes_0(ctx context.Context, m _ = err ) - val, ok = pathParams["attributes.project"] + val, ok = pathParams["id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") } - err = runtime.PopulateFieldFromPath(&protoReq, "attributes.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) } - val, ok = pathParams["attributes.domain"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "attributes.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - msg, err := client.UpdateProjectDomainAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -var ( - filter_AdminService_GetProjectDomainAttributes_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} -) - -func request_AdminService_GetProjectDomainAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ProjectDomainAttributesGetRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["project"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - protoReq.Project, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - val, ok = pathParams["domain"] + val, ok = pathParams["id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") } - protoReq.Domain, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetProjectDomainAttributes_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetExecutionData_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetProjectDomainAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetExecutionData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_DeleteProjectDomainAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ProjectDomainAttributesDeleteRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } +var ( + filter_AdminService_ListExecutions_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}} +) + +func request_AdminService_ListExecutions_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ResourceListRequest + var metadata runtime.ServerMetadata var ( val string @@ -2167,44 +2370,47 @@ func request_AdminService_DeleteProjectDomainAttributes_0(ctx context.Context, m _ = err ) - val, ok = pathParams["project"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - protoReq.Project, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - val, ok = pathParams["domain"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - protoReq.Domain, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - msg, err := client.DeleteProjectDomainAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListExecutions_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListExecutions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_UpdateProjectAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ProjectAttributesUpdateRequest - var metadata runtime.ServerMetadata +var ( + filter_AdminService_ListExecutions_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} +) - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } +func request_AdminService_ListExecutions_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ResourceListRequest + var metadata runtime.ServerMetadata var ( val string @@ -2213,62 +2419,53 @@ func request_AdminService_UpdateProjectAttributes_0(ctx context.Context, marshal _ = err ) - val, ok = pathParams["attributes.project"] + val, ok = pathParams["id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") } - err = runtime.PopulateFieldFromPath(&protoReq, "attributes.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) } - msg, err := client.UpdateProjectAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -var ( - filter_AdminService_GetProjectAttributes_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} -) + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } -func request_AdminService_GetProjectAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ProjectAttributesGetRequest - var metadata runtime.ServerMetadata + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) - var ( - val string - ok bool - err error - _ = err - ) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } - val, ok = pathParams["project"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - protoReq.Project, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetProjectAttributes_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListExecutions_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetProjectAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListExecutions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_DeleteProjectAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ProjectAttributesDeleteRequest +func request_AdminService_TerminateExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ExecutionTerminateRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -2286,24 +2483,46 @@ func request_AdminService_DeleteProjectAttributes_0(ctx context.Context, marshal _ = err ) - val, ok = pathParams["project"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - protoReq.Project, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - msg, err := client.DeleteProjectAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + msg, err := client.TerminateExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_UpdateWorkflowAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.WorkflowAttributesUpdateRequest +func request_AdminService_TerminateExecution_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ExecutionTerminateRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -2321,50 +2540,61 @@ func request_AdminService_UpdateWorkflowAttributes_0(ctx context.Context, marsha _ = err ) - val, ok = pathParams["attributes.project"] + val, ok = pathParams["id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") } - err = runtime.PopulateFieldFromPath(&protoReq, "attributes.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) } - val, ok = pathParams["attributes.domain"] + val, ok = pathParams["id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "attributes.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) } - val, ok = pathParams["attributes.workflow"] + val, ok = pathParams["id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.workflow") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "attributes.workflow", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.workflow", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) } - msg, err := client.UpdateWorkflowAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + msg, err := client.TerminateExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetWorkflowAttributes_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1, "workflow": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}} + filter_AdminService_GetNodeExecution_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "execution_id": 1, "project": 2, "domain": 3, "name": 4, "node_id": 5}, Base: []int{1, 6, 1, 1, 2, 2, 5, 0, 0, 4, 0, 6, 0}, Check: []int{0, 1, 2, 3, 2, 5, 2, 4, 6, 7, 10, 2, 12}} ) -func request_AdminService_GetWorkflowAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.WorkflowAttributesGetRequest +func request_AdminService_GetNodeExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NodeExecutionGetRequest var metadata runtime.ServerMetadata var ( @@ -2374,62 +2604,69 @@ func request_AdminService_GetWorkflowAttributes_0(ctx context.Context, marshaler _ = err ) - val, ok = pathParams["project"] + val, ok = pathParams["id.execution_id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.project") } - protoReq.Project, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.project", err) } - val, ok = pathParams["domain"] + val, ok = pathParams["id.execution_id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.domain") } - protoReq.Domain, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.domain", err) } - val, ok = pathParams["workflow"] + val, ok = pathParams["id.execution_id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.name") } - protoReq.Workflow, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.name", err) + } + + val, ok = pathParams["id.node_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_id", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetWorkflowAttributes_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetNodeExecution_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetWorkflowAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetNodeExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_DeleteWorkflowAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.WorkflowAttributesDeleteRequest - var metadata runtime.ServerMetadata +var ( + filter_AdminService_GetNodeExecution_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "execution_id": 1, "org": 2, "project": 3, "domain": 4, "name": 5, "node_id": 6}, Base: []int{1, 8, 1, 1, 2, 2, 3, 3, 0, 0, 0, 7, 6, 0, 8, 0}, Check: []int{0, 1, 2, 3, 2, 5, 2, 7, 4, 6, 8, 2, 12, 13, 2, 15}} +) - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } +func request_AdminService_GetNodeExecution_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NodeExecutionGetRequest + var metadata runtime.ServerMetadata var ( val string @@ -2438,602 +2675,4519 @@ func request_AdminService_DeleteWorkflowAttributes_0(ctx context.Context, marsha _ = err ) - val, ok = pathParams["project"] + val, ok = pathParams["id.execution_id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.org") } - protoReq.Project, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.org", err) } - val, ok = pathParams["domain"] + val, ok = pathParams["id.execution_id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.project") } - protoReq.Domain, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.project", err) } - val, ok = pathParams["workflow"] + val, ok = pathParams["id.execution_id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.domain") } - protoReq.Workflow, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.domain", err) } - msg, err := client.DeleteWorkflowAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} + val, ok = pathParams["id.execution_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.name") + } -var ( - filter_AdminService_ListMatchableAttributes_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.name", val) -func request_AdminService_ListMatchableAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ListMatchableAttributesRequest - var metadata runtime.ServerMetadata + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.name", err) + } + + val, ok = pathParams["id.node_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_id", err) + } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListMatchableAttributes_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetNodeExecution_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListMatchableAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetNodeExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListNamedEntities_0 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}} + filter_AdminService_ListNodeExecutions_0 = &utilities.DoubleArray{Encoding: map[string]int{"workflow_execution_id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} ) -func request_AdminService_ListNamedEntities_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.NamedEntityListRequest +func request_AdminService_ListNodeExecutions_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NodeExecutionListRequest var metadata runtime.ServerMetadata var ( val string - e int32 ok bool err error _ = err ) - val, ok = pathParams["resource_type"] + val, ok = pathParams["workflow_execution_id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.project") } - e, err = runtime.Enum(val, core.ResourceType_value) + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.project", err) } - protoReq.ResourceType = core.ResourceType(e) - - val, ok = pathParams["project"] + val, ok = pathParams["workflow_execution_id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.domain") } - protoReq.Project, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.domain", err) } - val, ok = pathParams["domain"] + val, ok = pathParams["workflow_execution_id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.name") } - protoReq.Domain, err = runtime.String(val) + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.name", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListNamedEntities_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListNodeExecutions_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListNamedEntities(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListNodeExecutions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetNamedEntity_0 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "id": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 3, 3, 3, 2, 4, 5, 6}} + filter_AdminService_ListNodeExecutions_1 = &utilities.DoubleArray{Encoding: map[string]int{"workflow_execution_id": 0, "org": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} ) -func request_AdminService_GetNamedEntity_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.NamedEntityGetRequest +func request_AdminService_ListNodeExecutions_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NodeExecutionListRequest var metadata runtime.ServerMetadata var ( val string - e int32 ok bool err error _ = err ) - val, ok = pathParams["resource_type"] + val, ok = pathParams["workflow_execution_id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.org") } - e, err = runtime.Enum(val, core.ResourceType_value) + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.org", err) } - protoReq.ResourceType = core.ResourceType(e) - - val, ok = pathParams["id.project"] + val, ok = pathParams["workflow_execution_id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.project", err) } - val, ok = pathParams["id.domain"] + val, ok = pathParams["workflow_execution_id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.domain", err) } - val, ok = pathParams["id.name"] + val, ok = pathParams["workflow_execution_id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.name", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetNamedEntity_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListNodeExecutions_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetNamedEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListNodeExecutions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AdminService_UpdateNamedEntity_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.NamedEntityUpdateRequest - var metadata runtime.ServerMetadata +var ( + filter_AdminService_ListNodeExecutionsForTask_0 = &utilities.DoubleArray{Encoding: map[string]int{"task_execution_id": 0, "node_execution_id": 1, "execution_id": 2, "project": 3, "domain": 4, "name": 5, "node_id": 6, "task_id": 7, "version": 8, "retry_attempt": 9}, Base: []int{1, 20, 1, 1, 1, 4, 3, 2, 7, 5, 3, 0, 0, 0, 9, 6, 0, 15, 9, 0, 17, 12, 0, 19, 15, 0, 19, 18, 0, 20, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 2, 9, 10, 5, 8, 11, 2, 15, 16, 2, 18, 19, 2, 21, 22, 2, 24, 25, 2, 27, 28, 2, 30}} +) - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } +func request_AdminService_ListNodeExecutionsForTask_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NodeExecutionForTaskListRequest + var metadata runtime.ServerMetadata var ( val string - e int32 ok bool err error _ = err ) - val, ok = pathParams["resource_type"] + val, ok = pathParams["task_execution_id.node_execution_id.execution_id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.execution_id.project") } - e, err = runtime.Enum(val, core.ResourceType_value) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.execution_id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.execution_id.project", err) } - protoReq.ResourceType = core.ResourceType(e) - - val, ok = pathParams["id.project"] + val, ok = pathParams["task_execution_id.node_execution_id.execution_id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.execution_id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.execution_id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.execution_id.domain", err) } - val, ok = pathParams["id.domain"] + val, ok = pathParams["task_execution_id.node_execution_id.execution_id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.execution_id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.execution_id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.execution_id.name", err) } - val, ok = pathParams["id.name"] + val, ok = pathParams["task_execution_id.node_execution_id.node_id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.node_id") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.node_id", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.node_id", err) } - msg, err := client.UpdateNamedEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func request_AdminService_GetVersion_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.GetVersionRequest - var metadata runtime.ServerMetadata - - msg, err := client.GetVersion(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -var ( - filter_AdminService_GetDescriptionEntity_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "resource_type": 1, "project": 2, "domain": 3, "name": 4, "version": 5}, Base: []int{1, 1, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7}} -) - -func request_AdminService_GetDescriptionEntity_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ObjectGetRequest - var metadata runtime.ServerMetadata - - var ( - val string - e int32 - ok bool - err error - _ = err - ) - - val, ok = pathParams["id.resource_type"] + val, ok = pathParams["task_execution_id.task_id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.resource_type") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.resource_type", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.resource_type", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.project", err) } - protoReq.Id.ResourceType = core.ResourceType(e) - - val, ok = pathParams["id.project"] + val, ok = pathParams["task_execution_id.task_id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.domain", err) } - val, ok = pathParams["id.domain"] + val, ok = pathParams["task_execution_id.task_id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.name", err) } - val, ok = pathParams["id.name"] + val, ok = pathParams["task_execution_id.task_id.version"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.version") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.version", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.version", err) } - val, ok = pathParams["id.version"] + val, ok = pathParams["task_execution_id.retry_attempt"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.retry_attempt") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.retry_attempt", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.retry_attempt", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetDescriptionEntity_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListNodeExecutionsForTask_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetDescriptionEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListNodeExecutionsForTask(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListDescriptionEntities_0 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "id": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 3, 3, 3, 2, 4, 5, 6}} + filter_AdminService_ListNodeExecutionsForTask_1 = &utilities.DoubleArray{Encoding: map[string]int{"task_execution_id": 0, "node_execution_id": 1, "execution_id": 2, "org": 3, "project": 4, "domain": 5, "name": 6, "node_id": 7, "task_id": 8, "version": 9, "retry_attempt": 10}, Base: []int{1, 23, 1, 1, 1, 4, 3, 2, 7, 5, 3, 13, 0, 0, 0, 10, 6, 0, 12, 9, 0, 18, 12, 0, 20, 15, 0, 22, 18, 0, 22, 21, 0, 23, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 2, 9, 10, 2, 5, 8, 11, 12, 16, 17, 2, 19, 20, 2, 22, 23, 2, 25, 26, 2, 28, 29, 2, 31, 32, 2, 34}} ) -func request_AdminService_ListDescriptionEntities_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.DescriptionEntityListRequest +func request_AdminService_ListNodeExecutionsForTask_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NodeExecutionForTaskListRequest var metadata runtime.ServerMetadata var ( val string - e int32 ok bool err error _ = err ) - val, ok = pathParams["resource_type"] + val, ok = pathParams["task_execution_id.node_execution_id.execution_id.org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.execution_id.org") } - e, err = runtime.Enum(val, core.ResourceType_value) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.execution_id.org", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.execution_id.org", err) } - protoReq.ResourceType = core.ResourceType(e) - - val, ok = pathParams["id.project"] + val, ok = pathParams["task_execution_id.node_execution_id.execution_id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.execution_id.project") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.execution_id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.execution_id.project", err) } - val, ok = pathParams["id.domain"] + val, ok = pathParams["task_execution_id.node_execution_id.execution_id.domain"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.execution_id.domain") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.execution_id.domain", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.execution_id.domain", err) } - val, ok = pathParams["id.name"] + val, ok = pathParams["task_execution_id.node_execution_id.execution_id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.execution_id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.execution_id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.execution_id.name", err) + } + + val, ok = pathParams["task_execution_id.node_execution_id.node_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.node_execution_id.node_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.node_execution_id.node_id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.node_execution_id.node_id", err) + } + + val, ok = pathParams["task_execution_id.task_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.project", err) + } + + val, ok = pathParams["task_execution_id.task_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.domain", err) + } + + val, ok = pathParams["task_execution_id.task_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.name", err) + } + + val, ok = pathParams["task_execution_id.task_id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.task_id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.task_id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.task_id.version", err) + } + + val, ok = pathParams["task_execution_id.retry_attempt"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "task_execution_id.retry_attempt") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "task_execution_id.retry_attempt", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "task_execution_id.retry_attempt", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListDescriptionEntities_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListNodeExecutionsForTask_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListDescriptionEntities(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListNodeExecutionsForTask(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_ListDescriptionEntities_1 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "id": 1, "project": 2, "domain": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 3, 3, 2, 4, 5}} + filter_AdminService_GetNodeExecutionData_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "execution_id": 1, "project": 2, "domain": 3, "name": 4, "node_id": 5}, Base: []int{1, 6, 1, 1, 2, 2, 5, 0, 0, 4, 0, 6, 0}, Check: []int{0, 1, 2, 3, 2, 5, 2, 4, 6, 7, 10, 2, 12}} ) -func request_AdminService_ListDescriptionEntities_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.DescriptionEntityListRequest +func request_AdminService_GetNodeExecutionData_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NodeExecutionGetDataRequest var metadata runtime.ServerMetadata var ( val string - e int32 ok bool err error _ = err ) - val, ok = pathParams["resource_type"] + val, ok = pathParams["id.execution_id.project"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.project") } - e, err = runtime.Enum(val, core.ResourceType_value) + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.project", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.project", err) } - protoReq.ResourceType = core.ResourceType(e) + val, ok = pathParams["id.execution_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.domain") + } - val, ok = pathParams["id.project"] + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.domain", err) + } + + val, ok = pathParams["id.execution_id.name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.name") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.name", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.name", err) } - val, ok = pathParams["id.domain"] + val, ok = pathParams["id.node_id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_id") } - err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_id", val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_id", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListDescriptionEntities_1); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetNodeExecutionData_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ListDescriptionEntities(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetNodeExecutionData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } var ( - filter_AdminService_GetExecutionMetrics_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} + filter_AdminService_GetNodeExecutionData_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "execution_id": 1, "org": 2, "project": 3, "domain": 4, "name": 5, "node_id": 6}, Base: []int{1, 8, 1, 1, 2, 2, 3, 3, 0, 0, 0, 7, 6, 0, 8, 0}, Check: []int{0, 1, 2, 3, 2, 5, 2, 7, 4, 6, 8, 2, 12, 13, 2, 15}} ) -func request_AdminService_GetExecutionMetrics_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.WorkflowExecutionGetMetricsRequest - var metadata runtime.ServerMetadata +func request_AdminService_GetNodeExecutionData_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NodeExecutionGetDataRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.execution_id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.org", err) + } + + val, ok = pathParams["id.execution_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.project", err) + } + + val, ok = pathParams["id.execution_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.domain", err) + } + + val, ok = pathParams["id.execution_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.name", err) + } + + val, ok = pathParams["id.node_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetNodeExecutionData_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetNodeExecutionData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_RegisterProject_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectRegisterRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.RegisterProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateProject_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.Project + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.UpdateProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateProject_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.Project + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["identifier.id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "identifier.id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "identifier.id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "identifier.id", err) + } + + msg, err := client.UpdateProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateProject_2(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.Project + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["identifier.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "identifier.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "identifier.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "identifier.org", err) + } + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.UpdateProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateProject_3(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.Project + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["identifier.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "identifier.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "identifier.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "identifier.org", err) + } + + val, ok = pathParams["identifier.id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "identifier.id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "identifier.id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "identifier.id", err) + } + + msg, err := client.UpdateProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListProjects_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AdminService_ListProjects_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectListRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListProjects_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListProjects(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_CreateWorkflowEvent_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowExecutionEventRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateWorkflowEvent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_CreateNodeEvent_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NodeExecutionEventRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateNodeEvent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_CreateTaskEvent_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.TaskExecutionEventRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateTaskEvent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetTaskExecution_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "node_execution_id": 1, "execution_id": 2, "project": 3, "domain": 4, "name": 5, "node_id": 6, "task_id": 7, "version": 8, "retry_attempt": 9}, Base: []int{1, 20, 1, 1, 1, 4, 3, 2, 7, 5, 3, 0, 0, 0, 9, 6, 0, 15, 9, 0, 17, 12, 0, 19, 15, 0, 19, 18, 0, 20, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 2, 9, 10, 5, 8, 11, 2, 15, 16, 2, 18, 19, 2, 21, 22, 2, 24, 25, 2, 27, 28, 2, 30}} +) + +func request_AdminService_GetTaskExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.TaskExecutionGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.node_execution_id.execution_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.project", err) + } + + val, ok = pathParams["id.node_execution_id.execution_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.domain", err) + } + + val, ok = pathParams["id.node_execution_id.execution_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.name", err) + } + + val, ok = pathParams["id.node_execution_id.node_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.node_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.node_id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.node_id", err) + } + + val, ok = pathParams["id.task_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.project", err) + } + + val, ok = pathParams["id.task_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.domain", err) + } + + val, ok = pathParams["id.task_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.name", err) + } + + val, ok = pathParams["id.task_id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.version", err) + } + + val, ok = pathParams["id.retry_attempt"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.retry_attempt") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.retry_attempt", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.retry_attempt", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetTaskExecution_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetTaskExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetTaskExecution_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "node_execution_id": 1, "execution_id": 2, "org": 3, "project": 4, "domain": 5, "name": 6, "node_id": 7, "task_id": 8, "version": 9, "retry_attempt": 10}, Base: []int{1, 23, 1, 1, 1, 4, 3, 2, 7, 5, 3, 13, 0, 0, 0, 10, 6, 0, 12, 9, 0, 18, 12, 0, 20, 15, 0, 22, 18, 0, 22, 21, 0, 23, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 2, 9, 10, 2, 5, 8, 11, 12, 16, 17, 2, 19, 20, 2, 22, 23, 2, 25, 26, 2, 28, 29, 2, 31, 32, 2, 34}} +) + +func request_AdminService_GetTaskExecution_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.TaskExecutionGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.node_execution_id.execution_id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.org", err) + } + + val, ok = pathParams["id.node_execution_id.execution_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.project", err) + } + + val, ok = pathParams["id.node_execution_id.execution_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.domain", err) + } + + val, ok = pathParams["id.node_execution_id.execution_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.name", err) + } + + val, ok = pathParams["id.node_execution_id.node_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.node_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.node_id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.node_id", err) + } + + val, ok = pathParams["id.task_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.project", err) + } + + val, ok = pathParams["id.task_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.domain", err) + } + + val, ok = pathParams["id.task_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.name", err) + } + + val, ok = pathParams["id.task_id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.version", err) + } + + val, ok = pathParams["id.retry_attempt"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.retry_attempt") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.retry_attempt", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.retry_attempt", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetTaskExecution_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetTaskExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListTaskExecutions_0 = &utilities.DoubleArray{Encoding: map[string]int{"node_execution_id": 0, "execution_id": 1, "project": 2, "domain": 3, "name": 4, "node_id": 5}, Base: []int{1, 6, 1, 1, 2, 2, 5, 0, 0, 4, 0, 6, 0}, Check: []int{0, 1, 2, 3, 2, 5, 2, 4, 6, 7, 10, 2, 12}} +) + +func request_AdminService_ListTaskExecutions_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.TaskExecutionListRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["node_execution_id.execution_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.execution_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.execution_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.execution_id.project", err) + } + + val, ok = pathParams["node_execution_id.execution_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.execution_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.execution_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.execution_id.domain", err) + } + + val, ok = pathParams["node_execution_id.execution_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.execution_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.execution_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.execution_id.name", err) + } + + val, ok = pathParams["node_execution_id.node_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.node_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.node_id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.node_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTaskExecutions_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListTaskExecutions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListTaskExecutions_1 = &utilities.DoubleArray{Encoding: map[string]int{"node_execution_id": 0, "execution_id": 1, "org": 2, "project": 3, "domain": 4, "name": 5, "node_id": 6}, Base: []int{1, 8, 1, 1, 2, 2, 3, 3, 0, 0, 0, 7, 6, 0, 8, 0}, Check: []int{0, 1, 2, 3, 2, 5, 2, 7, 4, 6, 8, 2, 12, 13, 2, 15}} +) + +func request_AdminService_ListTaskExecutions_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.TaskExecutionListRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["node_execution_id.execution_id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.execution_id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.execution_id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.execution_id.org", err) + } + + val, ok = pathParams["node_execution_id.execution_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.execution_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.execution_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.execution_id.project", err) + } + + val, ok = pathParams["node_execution_id.execution_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.execution_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.execution_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.execution_id.domain", err) + } + + val, ok = pathParams["node_execution_id.execution_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.execution_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.execution_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.execution_id.name", err) + } + + val, ok = pathParams["node_execution_id.node_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "node_execution_id.node_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "node_execution_id.node_id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_execution_id.node_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListTaskExecutions_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListTaskExecutions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetTaskExecutionData_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "node_execution_id": 1, "execution_id": 2, "project": 3, "domain": 4, "name": 5, "node_id": 6, "task_id": 7, "version": 8, "retry_attempt": 9}, Base: []int{1, 20, 1, 1, 1, 4, 3, 2, 7, 5, 3, 0, 0, 0, 9, 6, 0, 15, 9, 0, 17, 12, 0, 19, 15, 0, 19, 18, 0, 20, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 2, 9, 10, 5, 8, 11, 2, 15, 16, 2, 18, 19, 2, 21, 22, 2, 24, 25, 2, 27, 28, 2, 30}} +) + +func request_AdminService_GetTaskExecutionData_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.TaskExecutionGetDataRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.node_execution_id.execution_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.project", err) + } + + val, ok = pathParams["id.node_execution_id.execution_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.domain", err) + } + + val, ok = pathParams["id.node_execution_id.execution_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.name", err) + } + + val, ok = pathParams["id.node_execution_id.node_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.node_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.node_id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.node_id", err) + } + + val, ok = pathParams["id.task_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.project", err) + } + + val, ok = pathParams["id.task_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.domain", err) + } + + val, ok = pathParams["id.task_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.name", err) + } + + val, ok = pathParams["id.task_id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.version", err) + } + + val, ok = pathParams["id.retry_attempt"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.retry_attempt") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.retry_attempt", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.retry_attempt", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetTaskExecutionData_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetTaskExecutionData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetTaskExecutionData_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "node_execution_id": 1, "execution_id": 2, "org": 3, "project": 4, "domain": 5, "name": 6, "node_id": 7, "task_id": 8, "version": 9, "retry_attempt": 10}, Base: []int{1, 23, 1, 1, 1, 4, 3, 2, 7, 5, 3, 13, 0, 0, 0, 10, 6, 0, 12, 9, 0, 18, 12, 0, 20, 15, 0, 22, 18, 0, 22, 21, 0, 23, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 2, 9, 10, 2, 5, 8, 11, 12, 16, 17, 2, 19, 20, 2, 22, 23, 2, 25, 26, 2, 28, 29, 2, 31, 32, 2, 34}} +) + +func request_AdminService_GetTaskExecutionData_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.TaskExecutionGetDataRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.node_execution_id.execution_id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.org", err) + } + + val, ok = pathParams["id.node_execution_id.execution_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.project", err) + } + + val, ok = pathParams["id.node_execution_id.execution_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.domain", err) + } + + val, ok = pathParams["id.node_execution_id.execution_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.execution_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.execution_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.execution_id.name", err) + } + + val, ok = pathParams["id.node_execution_id.node_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.node_execution_id.node_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.node_execution_id.node_id", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.node_execution_id.node_id", err) + } + + val, ok = pathParams["id.task_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.project", err) + } + + val, ok = pathParams["id.task_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.domain", err) + } + + val, ok = pathParams["id.task_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.name", err) + } + + val, ok = pathParams["id.task_id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.task_id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.task_id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.task_id.version", err) + } + + val, ok = pathParams["id.retry_attempt"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.retry_attempt") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.retry_attempt", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.retry_attempt", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetTaskExecutionData_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetTaskExecutionData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateProjectDomainAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectDomainAttributesUpdateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["attributes.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.project", err) + } + + val, ok = pathParams["attributes.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.domain", err) + } + + msg, err := client.UpdateProjectDomainAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateProjectDomainAttributes_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectDomainAttributesUpdateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["attributes.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.org", err) + } + + val, ok = pathParams["attributes.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.project", err) + } + + val, ok = pathParams["attributes.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.domain", err) + } + + msg, err := client.UpdateProjectDomainAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetProjectDomainAttributes_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_AdminService_GetProjectDomainAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectDomainAttributesGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetProjectDomainAttributes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetProjectDomainAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetProjectDomainAttributes_1 = &utilities.DoubleArray{Encoding: map[string]int{"org": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}} +) + +func request_AdminService_GetProjectDomainAttributes_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectDomainAttributesGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetProjectDomainAttributes_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetProjectDomainAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_DeleteProjectDomainAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectDomainAttributesDeleteRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + msg, err := client.DeleteProjectDomainAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_DeleteProjectDomainAttributes_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectDomainAttributesDeleteRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + msg, err := client.DeleteProjectDomainAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateProjectAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectAttributesUpdateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["attributes.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.project", err) + } + + msg, err := client.UpdateProjectAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateProjectAttributes_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectAttributesUpdateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["attributes.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.org", err) + } + + val, ok = pathParams["attributes.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.project", err) + } + + msg, err := client.UpdateProjectAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetProjectAttributes_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_AdminService_GetProjectAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectAttributesGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetProjectAttributes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetProjectAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetProjectAttributes_1 = &utilities.DoubleArray{Encoding: map[string]int{"org": 0, "project": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_AdminService_GetProjectAttributes_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectAttributesGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetProjectAttributes_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetProjectAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_DeleteProjectAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectAttributesDeleteRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + msg, err := client.DeleteProjectAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_DeleteProjectAttributes_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectAttributesDeleteRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + msg, err := client.DeleteProjectAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateWorkflowAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowAttributesUpdateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["attributes.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.project", err) + } + + val, ok = pathParams["attributes.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.domain", err) + } + + val, ok = pathParams["attributes.workflow"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.workflow") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.workflow", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.workflow", err) + } + + msg, err := client.UpdateWorkflowAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateWorkflowAttributes_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowAttributesUpdateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["attributes.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.org", err) + } + + val, ok = pathParams["attributes.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.project", err) + } + + val, ok = pathParams["attributes.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.domain", err) + } + + val, ok = pathParams["attributes.workflow"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "attributes.workflow") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "attributes.workflow", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attributes.workflow", err) + } + + msg, err := client.UpdateWorkflowAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetWorkflowAttributes_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1, "workflow": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}} +) + +func request_AdminService_GetWorkflowAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowAttributesGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + val, ok = pathParams["workflow"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow") + } + + protoReq.Workflow, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetWorkflowAttributes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetWorkflowAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetWorkflowAttributes_1 = &utilities.DoubleArray{Encoding: map[string]int{"org": 0, "project": 1, "domain": 2, "workflow": 3}, Base: []int{1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 1, 2, 3, 4, 5}} +) + +func request_AdminService_GetWorkflowAttributes_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowAttributesGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + val, ok = pathParams["workflow"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow") + } + + protoReq.Workflow, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetWorkflowAttributes_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetWorkflowAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_DeleteWorkflowAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowAttributesDeleteRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + val, ok = pathParams["workflow"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow") + } + + protoReq.Workflow, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow", err) + } + + msg, err := client.DeleteWorkflowAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_DeleteWorkflowAttributes_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowAttributesDeleteRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + val, ok = pathParams["workflow"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow") + } + + protoReq.Workflow, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow", err) + } + + msg, err := client.DeleteWorkflowAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListMatchableAttributes_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AdminService_ListMatchableAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ListMatchableAttributesRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListMatchableAttributes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListMatchableAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListNamedEntities_0 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}} +) + +func request_AdminService_ListNamedEntities_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityListRequest + var metadata runtime.ServerMetadata + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + } + + e, err = runtime.Enum(val, core.ResourceType_value) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + } + + protoReq.ResourceType = core.ResourceType(e) + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListNamedEntities_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNamedEntities(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListNamedEntities_1 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "org": 1, "project": 2, "domain": 3}, Base: []int{1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 1, 2, 3, 4, 5}} +) + +func request_AdminService_ListNamedEntities_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityListRequest + var metadata runtime.ServerMetadata + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + } + + e, err = runtime.Enum(val, core.ResourceType_value) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + } + + protoReq.ResourceType = core.ResourceType(e) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListNamedEntities_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNamedEntities(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetNamedEntity_0 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "id": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 3, 3, 3, 2, 4, 5, 6}} +) + +func request_AdminService_GetNamedEntity_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + } + + e, err = runtime.Enum(val, core.ResourceType_value) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + } + + protoReq.ResourceType = core.ResourceType(e) + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetNamedEntity_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetNamedEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetNamedEntity_1 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "id": 1, "org": 2, "project": 3, "domain": 4, "name": 5}, Base: []int{1, 1, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0}, Check: []int{0, 1, 1, 3, 3, 3, 3, 2, 4, 5, 6, 7}} +) + +func request_AdminService_GetNamedEntity_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + } + + e, err = runtime.Enum(val, core.ResourceType_value) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + } + + protoReq.ResourceType = core.ResourceType(e) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetNamedEntity_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetNamedEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateNamedEntity_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityUpdateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + } + + e, err = runtime.Enum(val, core.ResourceType_value) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + } + + protoReq.ResourceType = core.ResourceType(e) + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + msg, err := client.UpdateNamedEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateNamedEntity_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NamedEntityUpdateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + } + + e, err = runtime.Enum(val, core.ResourceType_value) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + } + + protoReq.ResourceType = core.ResourceType(e) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + msg, err := client.UpdateNamedEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_GetVersion_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.GetVersionRequest + var metadata runtime.ServerMetadata + + msg, err := client.GetVersion(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetDescriptionEntity_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "resource_type": 1, "project": 2, "domain": 3, "name": 4, "version": 5}, Base: []int{1, 1, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7}} +) + +func request_AdminService_GetDescriptionEntity_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ObjectGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.resource_type") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.resource_type", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.resource_type", err) + } + + protoReq.Id.ResourceType = core.ResourceType(e) + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + val, ok = pathParams["id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetDescriptionEntity_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetDescriptionEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetDescriptionEntity_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "resource_type": 2, "project": 3, "domain": 4, "name": 5, "version": 6}, Base: []int{1, 1, 1, 2, 3, 4, 5, 6, 0, 0, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7, 8}} +) + +func request_AdminService_GetDescriptionEntity_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ObjectGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + val, ok = pathParams["id.resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.resource_type") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.resource_type", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.resource_type", err) + } + + protoReq.Id.ResourceType = core.ResourceType(e) + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + val, ok = pathParams["id.version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.version") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.version", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.version", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetDescriptionEntity_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetDescriptionEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListDescriptionEntities_0 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "id": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 3, 3, 3, 2, 4, 5, 6}} +) + +func request_AdminService_ListDescriptionEntities_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.DescriptionEntityListRequest + var metadata runtime.ServerMetadata + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + } + + e, err = runtime.Enum(val, core.ResourceType_value) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + } + + protoReq.ResourceType = core.ResourceType(e) + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListDescriptionEntities_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListDescriptionEntities(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListDescriptionEntities_1 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "id": 1, "org": 2, "project": 3, "domain": 4, "name": 5}, Base: []int{1, 1, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0}, Check: []int{0, 1, 1, 3, 3, 3, 3, 2, 4, 5, 6, 7}} +) + +func request_AdminService_ListDescriptionEntities_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.DescriptionEntityListRequest + var metadata runtime.ServerMetadata + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + } + + e, err = runtime.Enum(val, core.ResourceType_value) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + } + + protoReq.ResourceType = core.ResourceType(e) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListDescriptionEntities_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListDescriptionEntities(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListDescriptionEntities_2 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "id": 1, "project": 2, "domain": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 3, 3, 2, 4, 5}} +) + +func request_AdminService_ListDescriptionEntities_2(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.DescriptionEntityListRequest + var metadata runtime.ServerMetadata + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + } + + e, err = runtime.Enum(val, core.ResourceType_value) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + } + + protoReq.ResourceType = core.ResourceType(e) + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListDescriptionEntities_2); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListDescriptionEntities(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListDescriptionEntities_3 = &utilities.DoubleArray{Encoding: map[string]int{"resource_type": 0, "id": 1, "org": 2, "project": 3, "domain": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 3, 3, 3, 2, 4, 5, 6}} +) + +func request_AdminService_ListDescriptionEntities_3(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.DescriptionEntityListRequest + var metadata runtime.ServerMetadata + + var ( + val string + e int32 + ok bool + err error + _ = err + ) + + val, ok = pathParams["resource_type"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "resource_type") + } + + e, err = runtime.Enum(val, core.ResourceType_value) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "resource_type", err) + } + + protoReq.ResourceType = core.ResourceType(e) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListDescriptionEntities_3); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListDescriptionEntities(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetExecutionMetrics_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} +) + +func request_AdminService_GetExecutionMetrics_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowExecutionGetMetricsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetExecutionMetrics_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetExecutionMetrics(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_GetExecutionMetrics_1 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "org": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} +) + +func request_AdminService_GetExecutionMetrics_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowExecutionGetMetricsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + val, ok = pathParams["id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) + } + + val, ok = pathParams["id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) + } + + val, ok = pathParams["id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetExecutionMetrics_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetExecutionMetrics(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +// RegisterAdminServiceHandlerFromEndpoint is same as RegisterAdminServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterAdminServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterAdminServiceHandler(ctx, mux, conn) +} + +// RegisterAdminServiceHandler registers the http handlers for service AdminService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterAdminServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterAdminServiceHandlerClient(ctx, mux, NewAdminServiceClient(conn)) +} + +// RegisterAdminServiceHandlerClient registers the http handlers for service AdminService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "AdminServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "AdminServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "AdminServiceClient" to call the correct interceptors. +func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client AdminServiceClient) error { + + mux.Handle("POST", pattern_AdminService_CreateTask_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateTask_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateTask_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetTask_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetTask_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetTask_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetTask_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetTask_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetTask_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListTaskIds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListTaskIds_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListTaskIds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListTaskIds_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListTaskIds_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListTaskIds_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListTasks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListTasks_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListTasks_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListTasks_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListTasks_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListTasks_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListTasks_2, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListTasks_2(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListTasks_2(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListTasks_3, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListTasks_3(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListTasks_3(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_CreateWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateWorkflow_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateWorkflow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetWorkflow_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetWorkflow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetWorkflow_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetWorkflow_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetWorkflow_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListWorkflowIds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListWorkflowIds_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListWorkflowIds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListWorkflowIds_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListWorkflowIds_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListWorkflowIds_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListWorkflows_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListWorkflows_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListWorkflows_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListWorkflows_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListWorkflows_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListWorkflows_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListWorkflows_2, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListWorkflows_2(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListWorkflows_2(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListWorkflows_3, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListWorkflows_3(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListWorkflows_3(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_CreateLaunchPlan_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateLaunchPlan_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateLaunchPlan_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetLaunchPlan_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetLaunchPlan_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetLaunchPlan_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetLaunchPlan_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetLaunchPlan_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetLaunchPlan_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetActiveLaunchPlan_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetActiveLaunchPlan_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetActiveLaunchPlan_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetActiveLaunchPlan_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetActiveLaunchPlan_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetActiveLaunchPlan_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListActiveLaunchPlans_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListActiveLaunchPlans_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListActiveLaunchPlans_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListLaunchPlanIds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListLaunchPlanIds_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListLaunchPlanIds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListLaunchPlanIds_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListLaunchPlanIds_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListLaunchPlanIds_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListLaunchPlans_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListLaunchPlans_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListLaunchPlans_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListLaunchPlans_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListLaunchPlans_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListLaunchPlans_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListLaunchPlans_2, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListLaunchPlans_2(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListLaunchPlans_2(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_ListLaunchPlans_3, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListLaunchPlans_3(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListLaunchPlans_3(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_UpdateLaunchPlan_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_UpdateLaunchPlan_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_UpdateLaunchPlan_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_UpdateLaunchPlan_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_UpdateLaunchPlan_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_UpdateLaunchPlan_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_CreateExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateExecution_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_RelaunchExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_RelaunchExecution_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_RelaunchExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_RecoverExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_RecoverExecution_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_RecoverExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetExecution_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetExecution_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetExecution_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetExecution_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_UpdateExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_UpdateExecution_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_UpdateExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_UpdateExecution_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_UpdateExecution_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_UpdateExecution_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetExecutionData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetExecutionData_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetExecutionData_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - var ( - val string - ok bool - err error - _ = err - ) + }) - val, ok = pathParams["id.project"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.project") - } + mux.Handle("GET", pattern_AdminService_GetExecutionData_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetExecutionData_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } - err = runtime.PopulateFieldFromPath(&protoReq, "id.project", val) + forward_AdminService_GetExecutionData_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.project", err) - } + }) - val, ok = pathParams["id.domain"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.domain") - } + mux.Handle("GET", pattern_AdminService_ListExecutions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListExecutions_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } - err = runtime.PopulateFieldFromPath(&protoReq, "id.domain", val) + forward_AdminService_ListExecutions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.domain", err) - } + }) - val, ok = pathParams["id.name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.name") - } + mux.Handle("GET", pattern_AdminService_ListExecutions_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListExecutions_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } - err = runtime.PopulateFieldFromPath(&protoReq, "id.name", val) + forward_AdminService_ListExecutions_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.name", err) - } + }) - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetExecutionMetrics_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } + mux.Handle("DELETE", pattern_AdminService_TerminateExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_TerminateExecution_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } - msg, err := client.GetExecutionMetrics(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err + forward_AdminService_TerminateExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) -} + }) -// RegisterAdminServiceHandlerFromEndpoint is same as RegisterAdminServiceHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterAdminServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { + mux.Handle("DELETE", pattern_AdminService_TerminateExecution_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_TerminateExecution_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterAdminServiceHandler(ctx, mux, conn) -} -// RegisterAdminServiceHandler registers the http handlers for service AdminService to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterAdminServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterAdminServiceHandlerClient(ctx, mux, NewAdminServiceClient(conn)) -} + forward_AdminService_TerminateExecution_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) -// RegisterAdminServiceHandlerClient registers the http handlers for service AdminService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "AdminServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "AdminServiceClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "AdminServiceClient" to call the correct interceptors. -func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client AdminServiceClient) error { + }) - mux.Handle("POST", pattern_AdminService_CreateTask_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetNodeExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3042,18 +7196,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_CreateTask_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetNodeExecution_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_CreateTask_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetNodeExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetTask_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetNodeExecution_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3062,18 +7216,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetTask_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetNodeExecution_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetTask_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetNodeExecution_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListTaskIds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListNodeExecutions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3082,18 +7236,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListTaskIds_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListNodeExecutions_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListTaskIds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListNodeExecutions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListTasks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListNodeExecutions_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3102,18 +7256,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListTasks_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListNodeExecutions_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListTasks_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListNodeExecutions_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListTasks_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListNodeExecutionsForTask_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3122,18 +7276,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListTasks_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListNodeExecutionsForTask_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListTasks_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListNodeExecutionsForTask_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AdminService_CreateWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListNodeExecutionsForTask_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3142,18 +7296,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_CreateWorkflow_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListNodeExecutionsForTask_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_CreateWorkflow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListNodeExecutionsForTask_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetNodeExecutionData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3162,18 +7316,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetWorkflow_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetNodeExecutionData_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetWorkflow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetNodeExecutionData_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListWorkflowIds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetNodeExecutionData_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3182,18 +7336,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListWorkflowIds_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetNodeExecutionData_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListWorkflowIds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetNodeExecutionData_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListWorkflows_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AdminService_RegisterProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3202,18 +7356,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListWorkflows_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_RegisterProject_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListWorkflows_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_RegisterProject_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListWorkflows_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3222,18 +7376,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListWorkflows_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateProject_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListWorkflows_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateProject_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AdminService_CreateLaunchPlan_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateProject_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3242,18 +7396,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_CreateLaunchPlan_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateProject_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_CreateLaunchPlan_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateProject_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetLaunchPlan_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateProject_2, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3262,18 +7416,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetLaunchPlan_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateProject_2(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetLaunchPlan_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateProject_2(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetActiveLaunchPlan_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateProject_3, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3282,18 +7436,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetActiveLaunchPlan_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateProject_3(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetActiveLaunchPlan_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateProject_3(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListActiveLaunchPlans_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListProjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3302,18 +7456,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListActiveLaunchPlans_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListProjects_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListActiveLaunchPlans_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListProjects_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListLaunchPlanIds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AdminService_CreateWorkflowEvent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3322,18 +7476,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListLaunchPlanIds_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_CreateWorkflowEvent_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListLaunchPlanIds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_CreateWorkflowEvent_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListLaunchPlans_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AdminService_CreateNodeEvent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3342,18 +7496,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListLaunchPlans_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_CreateNodeEvent_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListLaunchPlans_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_CreateNodeEvent_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListLaunchPlans_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AdminService_CreateTaskEvent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3362,18 +7516,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListLaunchPlans_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_CreateTaskEvent_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListLaunchPlans_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_CreateTaskEvent_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("PUT", pattern_AdminService_UpdateLaunchPlan_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetTaskExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3382,18 +7536,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_UpdateLaunchPlan_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetTaskExecution_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_UpdateLaunchPlan_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetTaskExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AdminService_CreateExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetTaskExecution_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3402,18 +7556,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_CreateExecution_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetTaskExecution_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_CreateExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetTaskExecution_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AdminService_RelaunchExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListTaskExecutions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3422,18 +7576,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_RelaunchExecution_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListTaskExecutions_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_RelaunchExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListTaskExecutions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AdminService_RecoverExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListTaskExecutions_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3442,18 +7596,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_RecoverExecution_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListTaskExecutions_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_RecoverExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListTaskExecutions_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetTaskExecutionData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3462,18 +7616,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetExecution_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetTaskExecutionData_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetTaskExecutionData_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("PUT", pattern_AdminService_UpdateExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetTaskExecutionData_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3482,18 +7636,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_UpdateExecution_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetTaskExecutionData_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_UpdateExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetTaskExecutionData_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetExecutionData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateProjectDomainAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3502,18 +7656,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetExecutionData_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateProjectDomainAttributes_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetExecutionData_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateProjectDomainAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListExecutions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateProjectDomainAttributes_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3522,18 +7676,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListExecutions_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateProjectDomainAttributes_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListExecutions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateProjectDomainAttributes_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("DELETE", pattern_AdminService_TerminateExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetProjectDomainAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3542,18 +7696,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_TerminateExecution_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetProjectDomainAttributes_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_TerminateExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetProjectDomainAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetNodeExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetProjectDomainAttributes_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3562,18 +7716,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetNodeExecution_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetProjectDomainAttributes_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetNodeExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetProjectDomainAttributes_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListNodeExecutions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("DELETE", pattern_AdminService_DeleteProjectDomainAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3582,18 +7736,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListNodeExecutions_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_DeleteProjectDomainAttributes_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListNodeExecutions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_DeleteProjectDomainAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListNodeExecutionsForTask_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("DELETE", pattern_AdminService_DeleteProjectDomainAttributes_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3602,18 +7756,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListNodeExecutionsForTask_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_DeleteProjectDomainAttributes_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListNodeExecutionsForTask_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_DeleteProjectDomainAttributes_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetNodeExecutionData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateProjectAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3622,18 +7776,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetNodeExecutionData_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateProjectAttributes_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetNodeExecutionData_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateProjectAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AdminService_RegisterProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateProjectAttributes_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3642,18 +7796,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_RegisterProject_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateProjectAttributes_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_RegisterProject_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateProjectAttributes_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("PUT", pattern_AdminService_UpdateProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetProjectAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3662,18 +7816,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_UpdateProject_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetProjectAttributes_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_UpdateProject_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetProjectAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListProjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetProjectAttributes_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3682,18 +7836,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListProjects_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetProjectAttributes_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListProjects_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetProjectAttributes_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AdminService_CreateWorkflowEvent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("DELETE", pattern_AdminService_DeleteProjectAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3702,18 +7856,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_CreateWorkflowEvent_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_DeleteProjectAttributes_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_CreateWorkflowEvent_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_DeleteProjectAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AdminService_CreateNodeEvent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("DELETE", pattern_AdminService_DeleteProjectAttributes_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3722,18 +7876,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_CreateNodeEvent_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_DeleteProjectAttributes_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_CreateNodeEvent_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_DeleteProjectAttributes_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AdminService_CreateTaskEvent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateWorkflowAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3742,18 +7896,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_CreateTaskEvent_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateWorkflowAttributes_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_CreateTaskEvent_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateWorkflowAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetTaskExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateWorkflowAttributes_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3762,18 +7916,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetTaskExecution_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateWorkflowAttributes_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetTaskExecution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateWorkflowAttributes_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListTaskExecutions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetWorkflowAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3782,18 +7936,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListTaskExecutions_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetWorkflowAttributes_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListTaskExecutions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetWorkflowAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetTaskExecutionData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetWorkflowAttributes_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3802,18 +7956,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetTaskExecutionData_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetWorkflowAttributes_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetTaskExecutionData_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetWorkflowAttributes_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("PUT", pattern_AdminService_UpdateProjectDomainAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("DELETE", pattern_AdminService_DeleteWorkflowAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3822,18 +7976,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_UpdateProjectDomainAttributes_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_DeleteWorkflowAttributes_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_UpdateProjectDomainAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_DeleteWorkflowAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetProjectDomainAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("DELETE", pattern_AdminService_DeleteWorkflowAttributes_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3842,18 +7996,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetProjectDomainAttributes_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_DeleteWorkflowAttributes_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetProjectDomainAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_DeleteWorkflowAttributes_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("DELETE", pattern_AdminService_DeleteProjectDomainAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListMatchableAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3862,18 +8016,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_DeleteProjectDomainAttributes_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListMatchableAttributes_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_DeleteProjectDomainAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListMatchableAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("PUT", pattern_AdminService_UpdateProjectAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListNamedEntities_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3882,18 +8036,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_UpdateProjectAttributes_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListNamedEntities_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_UpdateProjectAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListNamedEntities_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetProjectAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListNamedEntities_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3902,18 +8056,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetProjectAttributes_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListNamedEntities_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetProjectAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListNamedEntities_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("DELETE", pattern_AdminService_DeleteProjectAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetNamedEntity_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3922,18 +8076,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_DeleteProjectAttributes_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetNamedEntity_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_DeleteProjectAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetNamedEntity_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("PUT", pattern_AdminService_UpdateWorkflowAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetNamedEntity_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3942,18 +8096,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_UpdateWorkflowAttributes_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetNamedEntity_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_UpdateWorkflowAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetNamedEntity_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetWorkflowAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateNamedEntity_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3962,18 +8116,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetWorkflowAttributes_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateNamedEntity_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetWorkflowAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateNamedEntity_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("DELETE", pattern_AdminService_DeleteWorkflowAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_AdminService_UpdateNamedEntity_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -3982,18 +8136,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_DeleteWorkflowAttributes_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_UpdateNamedEntity_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_DeleteWorkflowAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_UpdateNamedEntity_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListMatchableAttributes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetVersion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -4002,18 +8156,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListMatchableAttributes_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetVersion_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListMatchableAttributes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetVersion_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListNamedEntities_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetDescriptionEntity_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -4022,18 +8176,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListNamedEntities_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetDescriptionEntity_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListNamedEntities_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetDescriptionEntity_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetNamedEntity_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetDescriptionEntity_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -4042,18 +8196,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetNamedEntity_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetDescriptionEntity_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetNamedEntity_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetDescriptionEntity_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("PUT", pattern_AdminService_UpdateNamedEntity_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListDescriptionEntities_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -4062,18 +8216,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_UpdateNamedEntity_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListDescriptionEntities_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_UpdateNamedEntity_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListDescriptionEntities_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetVersion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListDescriptionEntities_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -4082,18 +8236,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetVersion_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListDescriptionEntities_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetVersion_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListDescriptionEntities_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetDescriptionEntity_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListDescriptionEntities_2, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -4102,18 +8256,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetDescriptionEntity_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListDescriptionEntities_2(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetDescriptionEntity_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListDescriptionEntities_2(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListDescriptionEntities_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_ListDescriptionEntities_3, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -4122,18 +8276,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListDescriptionEntities_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_ListDescriptionEntities_3(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListDescriptionEntities_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_ListDescriptionEntities_3(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_ListDescriptionEntities_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetExecutionMetrics_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -4142,18 +8296,18 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_ListDescriptionEntities_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetExecutionMetrics_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_ListDescriptionEntities_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetExecutionMetrics_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AdminService_GetExecutionMetrics_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AdminService_GetExecutionMetrics_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -4162,14 +8316,14 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AdminService_GetExecutionMetrics_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AdminService_GetExecutionMetrics_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AdminService_GetExecutionMetrics_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AdminService_GetExecutionMetrics_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4181,38 +8335,66 @@ var ( pattern_AdminService_GetTask_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "tasks", "id.project", "id.domain", "id.name", "id.version"}, "")) + pattern_AdminService_GetTask_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "tasks", "org", "id.org", "id.project", "id.domain", "id.name", "id.version"}, "")) + pattern_AdminService_ListTaskIds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "task_ids", "project", "domain"}, "")) + pattern_AdminService_ListTaskIds_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "tasks", "org", "project", "domain"}, "")) + pattern_AdminService_ListTasks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "tasks", "id.project", "id.domain", "id.name"}, "")) - pattern_AdminService_ListTasks_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "tasks", "id.project", "id.domain"}, "")) + pattern_AdminService_ListTasks_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "tasks", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + + pattern_AdminService_ListTasks_2 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "tasks", "id.project", "id.domain"}, "")) + + pattern_AdminService_ListTasks_3 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "tasks", "org", "id.org", "id.project", "id.domain"}, "")) pattern_AdminService_CreateWorkflow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "workflows"}, "")) pattern_AdminService_GetWorkflow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "workflows", "id.project", "id.domain", "id.name", "id.version"}, "")) + pattern_AdminService_GetWorkflow_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "workflows", "org", "id.org", "id.project", "id.domain", "id.name", "id.version"}, "")) + pattern_AdminService_ListWorkflowIds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "workflow_ids", "project", "domain"}, "")) + pattern_AdminService_ListWorkflowIds_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "workflows", "org", "project", "domain"}, "")) + pattern_AdminService_ListWorkflows_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "workflows", "id.project", "id.domain", "id.name"}, "")) - pattern_AdminService_ListWorkflows_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "workflows", "id.project", "id.domain"}, "")) + pattern_AdminService_ListWorkflows_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "workflows", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + + pattern_AdminService_ListWorkflows_2 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "workflows", "id.project", "id.domain"}, "")) + + pattern_AdminService_ListWorkflows_3 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "workflows", "org", "id.org", "id.project", "id.domain"}, "")) pattern_AdminService_CreateLaunchPlan_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "launch_plans"}, "")) pattern_AdminService_GetLaunchPlan_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "launch_plans", "id.project", "id.domain", "id.name", "id.version"}, "")) + pattern_AdminService_GetLaunchPlan_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "launch_plans", "org", "id.org", "id.project", "id.domain", "id.name", "id.version"}, "")) + pattern_AdminService_GetActiveLaunchPlan_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "active_launch_plans", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_GetActiveLaunchPlan_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "active_launch_plans", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_ListActiveLaunchPlans_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "active_launch_plans", "project", "domain"}, "")) pattern_AdminService_ListLaunchPlanIds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "launch_plan_ids", "project", "domain"}, "")) + pattern_AdminService_ListLaunchPlanIds_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "launch_plan_ids", "org", "project", "domain"}, "")) + pattern_AdminService_ListLaunchPlans_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "launch_plans", "id.project", "id.domain", "id.name"}, "")) - pattern_AdminService_ListLaunchPlans_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "launch_plans", "id.project", "id.domain"}, "")) + pattern_AdminService_ListLaunchPlans_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "launch_plans", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + + pattern_AdminService_ListLaunchPlans_2 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "launch_plans", "id.project", "id.domain"}, "")) + + pattern_AdminService_ListLaunchPlans_3 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "launch_plans", "org", "id.org", "id.project", "id.domain"}, "")) pattern_AdminService_UpdateLaunchPlan_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "launch_plans", "id.project", "id.domain", "id.name", "id.version"}, "")) + pattern_AdminService_UpdateLaunchPlan_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "launch_plans", "org", "id.org", "id.project", "id.domain", "id.name", "id.version"}, "")) + pattern_AdminService_CreateExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "executions"}, "")) pattern_AdminService_RelaunchExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "executions", "relaunch"}, "")) @@ -4221,26 +8403,50 @@ var ( pattern_AdminService_GetExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "executions", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_GetExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "executions", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_UpdateExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "executions", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_UpdateExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "executions", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_GetExecutionData_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "data", "executions", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_GetExecutionData_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "data", "executions", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_ListExecutions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "executions", "id.project", "id.domain"}, "")) + pattern_AdminService_ListExecutions_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "executions", "org", "id.org", "id.project", "id.domain"}, "")) + pattern_AdminService_TerminateExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "executions", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_TerminateExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "data", "executions", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_GetNodeExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "node_executions", "id.execution_id.project", "id.execution_id.domain", "id.execution_id.name", "id.node_id"}, "")) + pattern_AdminService_GetNodeExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "node_executions", "org", "id.execution_id.org", "id.execution_id.project", "id.execution_id.domain", "id.execution_id.name", "id.node_id"}, "")) + pattern_AdminService_ListNodeExecutions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "node_executions", "workflow_execution_id.project", "workflow_execution_id.domain", "workflow_execution_id.name"}, "")) + pattern_AdminService_ListNodeExecutions_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "node_executions", "org", "workflow_execution_id.org", "workflow_execution_id.project", "workflow_execution_id.domain", "workflow_execution_id.name"}, "")) + pattern_AdminService_ListNodeExecutionsForTask_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9, 1, 0, 4, 1, 5, 10, 1, 0, 4, 1, 5, 11, 1, 0, 4, 1, 5, 12}, []string{"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"}, "")) + pattern_AdminService_ListNodeExecutionsForTask_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9, 1, 0, 4, 1, 5, 10, 1, 0, 4, 1, 5, 11, 1, 0, 4, 1, 5, 12, 1, 0, 4, 1, 5, 13, 1, 0, 4, 1, 5, 14}, []string{"api", "v1", "children", "task_executions", "org", "task_execution_id.node_execution_id.execution_id.org", "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"}, "")) + pattern_AdminService_GetNodeExecutionData_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "data", "node_executions", "id.execution_id.project", "id.execution_id.domain", "id.execution_id.name", "id.node_id"}, "")) + pattern_AdminService_GetNodeExecutionData_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9}, []string{"api", "v1", "data", "node_executions", "org", "id.execution_id.org", "id.execution_id.project", "id.execution_id.domain", "id.execution_id.name", "id.node_id"}, "")) + pattern_AdminService_RegisterProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "projects"}, "")) pattern_AdminService_UpdateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "id"}, "")) + pattern_AdminService_UpdateProject_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "identifier.id"}, "")) + + pattern_AdminService_UpdateProject_2 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "projects", "org", "identifier.org", "id"}, "")) + + pattern_AdminService_UpdateProject_3 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "projects", "org", "identifier.org", "identifier.id"}, "")) + pattern_AdminService_ListProjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "projects"}, "")) pattern_AdminService_CreateWorkflowEvent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "events", "workflows"}, "")) @@ -4251,45 +8457,83 @@ var ( pattern_AdminService_GetTaskExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9, 1, 0, 4, 1, 5, 10, 1, 0, 4, 1, 5, 11}, []string{"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"}, "")) + pattern_AdminService_GetTaskExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9, 1, 0, 4, 1, 5, 10, 1, 0, 4, 1, 5, 11, 1, 0, 4, 1, 5, 12, 1, 0, 4, 1, 5, 13}, []string{"api", "v1", "task_executions", "org", "id.node_execution_id.execution_id.org", "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"}, "")) + pattern_AdminService_ListTaskExecutions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"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"}, "")) + pattern_AdminService_ListTaskExecutions_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "task_executions", "org", "node_execution_id.execution_id.org", "node_execution_id.execution_id.project", "node_execution_id.execution_id.domain", "node_execution_id.execution_id.name", "node_execution_id.node_id"}, "")) + pattern_AdminService_GetTaskExecutionData_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9, 1, 0, 4, 1, 5, 10, 1, 0, 4, 1, 5, 11, 1, 0, 4, 1, 5, 12}, []string{"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"}, "")) + pattern_AdminService_GetTaskExecutionData_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9, 1, 0, 4, 1, 5, 10, 1, 0, 4, 1, 5, 11, 1, 0, 4, 1, 5, 12, 1, 0, 4, 1, 5, 13, 1, 0, 4, 1, 5, 14}, []string{"api", "v1", "data", "task_executions", "org", "id.node_execution_id.execution_id.org", "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"}, "")) + pattern_AdminService_UpdateProjectDomainAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "project_domain_attributes", "attributes.project", "attributes.domain"}, "")) + pattern_AdminService_UpdateProjectDomainAttributes_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "project_domain_attributes", "org", "attributes.org", "attributes.project", "attributes.domain"}, "")) + pattern_AdminService_GetProjectDomainAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "project_domain_attributes", "project", "domain"}, "")) + pattern_AdminService_GetProjectDomainAttributes_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "project_domain_attributes", "org", "project", "domain"}, "")) + pattern_AdminService_DeleteProjectDomainAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "project_domain_attributes", "project", "domain"}, "")) + pattern_AdminService_DeleteProjectDomainAttributes_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "project_domain_attributes", "org", "project", "domain"}, "")) + pattern_AdminService_UpdateProjectAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "project_attributes", "attributes.project"}, "")) + pattern_AdminService_UpdateProjectAttributes_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "project_domain_attributes", "org", "attributes.org", "attributes.project"}, "")) + pattern_AdminService_GetProjectAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "project_attributes", "project"}, "")) + pattern_AdminService_GetProjectAttributes_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "project_domain_attributes", "org", "project"}, "")) + pattern_AdminService_DeleteProjectAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "project_attributes", "project"}, "")) + pattern_AdminService_DeleteProjectAttributes_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "project_domain_attributes", "org", "project"}, "")) + pattern_AdminService_UpdateWorkflowAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "workflow_attributes", "attributes.project", "attributes.domain", "attributes.workflow"}, "")) + pattern_AdminService_UpdateWorkflowAttributes_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "workflow_attributes", "org", "attributes.org", "attributes.project", "attributes.domain", "attributes.workflow"}, "")) + pattern_AdminService_GetWorkflowAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "workflow_attributes", "project", "domain", "workflow"}, "")) + pattern_AdminService_GetWorkflowAttributes_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "workflow_attributes", "org", "project", "domain", "workflow"}, "")) + pattern_AdminService_DeleteWorkflowAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "workflow_attributes", "project", "domain", "workflow"}, "")) + pattern_AdminService_DeleteWorkflowAttributes_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "workflow_attributes", "org", "project", "domain", "workflow"}, "")) + pattern_AdminService_ListMatchableAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "matchable_attributes"}, "")) pattern_AdminService_ListNamedEntities_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "named_entities", "resource_type", "project", "domain"}, "")) + pattern_AdminService_ListNamedEntities_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "named_entities", "resource_type", "org", "project", "domain"}, "")) + pattern_AdminService_GetNamedEntity_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "named_entities", "resource_type", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_GetNamedEntity_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "named_entities", "resource_type", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_UpdateNamedEntity_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "named_entities", "resource_type", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_UpdateNamedEntity_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "named_entities", "resource_type", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_GetVersion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "version"}, "")) pattern_AdminService_GetDescriptionEntity_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "description_entities", "id.resource_type", "id.project", "id.domain", "id.name", "id.version"}, "")) + pattern_AdminService_GetDescriptionEntity_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9}, []string{"api", "v1", "description_entities", "org", "id.org", "id.resource_type", "id.project", "id.domain", "id.name", "id.version"}, "")) + pattern_AdminService_ListDescriptionEntities_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "description_entities", "resource_type", "id.project", "id.domain", "id.name"}, "")) - pattern_AdminService_ListDescriptionEntities_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "description_entities", "resource_type", "id.project", "id.domain"}, "")) + pattern_AdminService_ListDescriptionEntities_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "description_entities", "resource_type", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + + pattern_AdminService_ListDescriptionEntities_2 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "description_entities", "resource_type", "id.project", "id.domain"}, "")) + + pattern_AdminService_ListDescriptionEntities_3 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "description_entities", "resource_type", "org", "id.org", "id.project", "id.domain"}, "")) pattern_AdminService_GetExecutionMetrics_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "metrics", "executions", "id.project", "id.domain", "id.name"}, "")) + + pattern_AdminService_GetExecutionMetrics_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "metrics", "executions", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) ) var ( @@ -4297,38 +8541,66 @@ var ( forward_AdminService_GetTask_0 = runtime.ForwardResponseMessage + forward_AdminService_GetTask_1 = runtime.ForwardResponseMessage + forward_AdminService_ListTaskIds_0 = runtime.ForwardResponseMessage + forward_AdminService_ListTaskIds_1 = runtime.ForwardResponseMessage + forward_AdminService_ListTasks_0 = runtime.ForwardResponseMessage forward_AdminService_ListTasks_1 = runtime.ForwardResponseMessage + forward_AdminService_ListTasks_2 = runtime.ForwardResponseMessage + + forward_AdminService_ListTasks_3 = runtime.ForwardResponseMessage + forward_AdminService_CreateWorkflow_0 = runtime.ForwardResponseMessage forward_AdminService_GetWorkflow_0 = runtime.ForwardResponseMessage + forward_AdminService_GetWorkflow_1 = runtime.ForwardResponseMessage + forward_AdminService_ListWorkflowIds_0 = runtime.ForwardResponseMessage + forward_AdminService_ListWorkflowIds_1 = runtime.ForwardResponseMessage + forward_AdminService_ListWorkflows_0 = runtime.ForwardResponseMessage forward_AdminService_ListWorkflows_1 = runtime.ForwardResponseMessage + forward_AdminService_ListWorkflows_2 = runtime.ForwardResponseMessage + + forward_AdminService_ListWorkflows_3 = runtime.ForwardResponseMessage + forward_AdminService_CreateLaunchPlan_0 = runtime.ForwardResponseMessage forward_AdminService_GetLaunchPlan_0 = runtime.ForwardResponseMessage + forward_AdminService_GetLaunchPlan_1 = runtime.ForwardResponseMessage + forward_AdminService_GetActiveLaunchPlan_0 = runtime.ForwardResponseMessage + forward_AdminService_GetActiveLaunchPlan_1 = runtime.ForwardResponseMessage + forward_AdminService_ListActiveLaunchPlans_0 = runtime.ForwardResponseMessage forward_AdminService_ListLaunchPlanIds_0 = runtime.ForwardResponseMessage + forward_AdminService_ListLaunchPlanIds_1 = runtime.ForwardResponseMessage + forward_AdminService_ListLaunchPlans_0 = runtime.ForwardResponseMessage forward_AdminService_ListLaunchPlans_1 = runtime.ForwardResponseMessage + forward_AdminService_ListLaunchPlans_2 = runtime.ForwardResponseMessage + + forward_AdminService_ListLaunchPlans_3 = runtime.ForwardResponseMessage + forward_AdminService_UpdateLaunchPlan_0 = runtime.ForwardResponseMessage + forward_AdminService_UpdateLaunchPlan_1 = runtime.ForwardResponseMessage + forward_AdminService_CreateExecution_0 = runtime.ForwardResponseMessage forward_AdminService_RelaunchExecution_0 = runtime.ForwardResponseMessage @@ -4337,26 +8609,50 @@ var ( forward_AdminService_GetExecution_0 = runtime.ForwardResponseMessage + forward_AdminService_GetExecution_1 = runtime.ForwardResponseMessage + forward_AdminService_UpdateExecution_0 = runtime.ForwardResponseMessage + forward_AdminService_UpdateExecution_1 = runtime.ForwardResponseMessage + forward_AdminService_GetExecutionData_0 = runtime.ForwardResponseMessage + forward_AdminService_GetExecutionData_1 = runtime.ForwardResponseMessage + forward_AdminService_ListExecutions_0 = runtime.ForwardResponseMessage + forward_AdminService_ListExecutions_1 = runtime.ForwardResponseMessage + forward_AdminService_TerminateExecution_0 = runtime.ForwardResponseMessage + forward_AdminService_TerminateExecution_1 = runtime.ForwardResponseMessage + forward_AdminService_GetNodeExecution_0 = runtime.ForwardResponseMessage + forward_AdminService_GetNodeExecution_1 = runtime.ForwardResponseMessage + forward_AdminService_ListNodeExecutions_0 = runtime.ForwardResponseMessage + forward_AdminService_ListNodeExecutions_1 = runtime.ForwardResponseMessage + forward_AdminService_ListNodeExecutionsForTask_0 = runtime.ForwardResponseMessage + forward_AdminService_ListNodeExecutionsForTask_1 = runtime.ForwardResponseMessage + forward_AdminService_GetNodeExecutionData_0 = runtime.ForwardResponseMessage + forward_AdminService_GetNodeExecutionData_1 = runtime.ForwardResponseMessage + forward_AdminService_RegisterProject_0 = runtime.ForwardResponseMessage forward_AdminService_UpdateProject_0 = runtime.ForwardResponseMessage + forward_AdminService_UpdateProject_1 = runtime.ForwardResponseMessage + + forward_AdminService_UpdateProject_2 = runtime.ForwardResponseMessage + + forward_AdminService_UpdateProject_3 = runtime.ForwardResponseMessage + forward_AdminService_ListProjects_0 = runtime.ForwardResponseMessage forward_AdminService_CreateWorkflowEvent_0 = runtime.ForwardResponseMessage @@ -4367,43 +8663,81 @@ var ( forward_AdminService_GetTaskExecution_0 = runtime.ForwardResponseMessage + forward_AdminService_GetTaskExecution_1 = runtime.ForwardResponseMessage + forward_AdminService_ListTaskExecutions_0 = runtime.ForwardResponseMessage + forward_AdminService_ListTaskExecutions_1 = runtime.ForwardResponseMessage + forward_AdminService_GetTaskExecutionData_0 = runtime.ForwardResponseMessage + forward_AdminService_GetTaskExecutionData_1 = runtime.ForwardResponseMessage + forward_AdminService_UpdateProjectDomainAttributes_0 = runtime.ForwardResponseMessage + forward_AdminService_UpdateProjectDomainAttributes_1 = runtime.ForwardResponseMessage + forward_AdminService_GetProjectDomainAttributes_0 = runtime.ForwardResponseMessage + forward_AdminService_GetProjectDomainAttributes_1 = runtime.ForwardResponseMessage + forward_AdminService_DeleteProjectDomainAttributes_0 = runtime.ForwardResponseMessage + forward_AdminService_DeleteProjectDomainAttributes_1 = runtime.ForwardResponseMessage + forward_AdminService_UpdateProjectAttributes_0 = runtime.ForwardResponseMessage + forward_AdminService_UpdateProjectAttributes_1 = runtime.ForwardResponseMessage + forward_AdminService_GetProjectAttributes_0 = runtime.ForwardResponseMessage + forward_AdminService_GetProjectAttributes_1 = runtime.ForwardResponseMessage + forward_AdminService_DeleteProjectAttributes_0 = runtime.ForwardResponseMessage + forward_AdminService_DeleteProjectAttributes_1 = runtime.ForwardResponseMessage + forward_AdminService_UpdateWorkflowAttributes_0 = runtime.ForwardResponseMessage + forward_AdminService_UpdateWorkflowAttributes_1 = runtime.ForwardResponseMessage + forward_AdminService_GetWorkflowAttributes_0 = runtime.ForwardResponseMessage + forward_AdminService_GetWorkflowAttributes_1 = runtime.ForwardResponseMessage + forward_AdminService_DeleteWorkflowAttributes_0 = runtime.ForwardResponseMessage + forward_AdminService_DeleteWorkflowAttributes_1 = runtime.ForwardResponseMessage + forward_AdminService_ListMatchableAttributes_0 = runtime.ForwardResponseMessage forward_AdminService_ListNamedEntities_0 = runtime.ForwardResponseMessage + forward_AdminService_ListNamedEntities_1 = runtime.ForwardResponseMessage + forward_AdminService_GetNamedEntity_0 = runtime.ForwardResponseMessage + forward_AdminService_GetNamedEntity_1 = runtime.ForwardResponseMessage + forward_AdminService_UpdateNamedEntity_0 = runtime.ForwardResponseMessage + forward_AdminService_UpdateNamedEntity_1 = runtime.ForwardResponseMessage + forward_AdminService_GetVersion_0 = runtime.ForwardResponseMessage forward_AdminService_GetDescriptionEntity_0 = runtime.ForwardResponseMessage + forward_AdminService_GetDescriptionEntity_1 = runtime.ForwardResponseMessage + forward_AdminService_ListDescriptionEntities_0 = runtime.ForwardResponseMessage forward_AdminService_ListDescriptionEntities_1 = runtime.ForwardResponseMessage + forward_AdminService_ListDescriptionEntities_2 = runtime.ForwardResponseMessage + + forward_AdminService_ListDescriptionEntities_3 = runtime.ForwardResponseMessage + forward_AdminService_GetExecutionMetrics_0 = runtime.ForwardResponseMessage + + forward_AdminService_GetExecutionMetrics_1 = runtime.ForwardResponseMessage ) diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json index b2d41e5616..f760045744 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json @@ -15,6 +15,53 @@ "application/json" ], "paths": { + "/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`.", + "operationId": "GetActiveLaunchPlan2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlan" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}": { "get": { "summary": "Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`.", @@ -48,6 +95,13 @@ "in": "path", "required": true, "type": "string" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ @@ -115,6 +169,13 @@ "ASCENDING" ], "default": "DESCENDING" + }, + { + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ @@ -122,10 +183,10 @@ ] } }, - "/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}": { + "/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`.", - "operationId": "ListNodeExecutionsForTask", + "operationId": "ListNodeExecutionsForTask2", "responses": { "200": { "description": "A successful response.", @@ -135,6 +196,13 @@ } }, "parameters": [ + { + "name": "task_execution_id.node_execution_id.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, { "name": "task_execution_id.node_execution_id.execution_id.project", "description": "Name of the project the resource belongs to.", @@ -212,6 +280,13 @@ ], "default": "UNSPECIFIED" }, + { + "name": "task_execution_id.task_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, { "name": "limit", "description": "Indicates the number of resources to be returned.\n+required.", @@ -259,181 +334,150 @@ ] } }, - "/api/v1/data/executions/{id.project}/{id.domain}/{id.name}": { + "/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}": { "get": { - "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`.", - "operationId": "GetExecutionData", + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`.", + "operationId": "ListNodeExecutionsForTask", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminWorkflowExecutionGetDataResponse" + "$ref": "#/definitions/adminNodeExecutionList" } } }, "parameters": [ { - "name": "id.project", + "name": "task_execution_id.node_execution_id.execution_id.project", "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "id.domain", + "name": "task_execution_id.node_execution_id.execution_id.domain", "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", "in": "path", "required": true, "type": "string" }, { - "name": "id.name", + "name": "task_execution_id.node_execution_id.execution_id.name", "description": "User or system provided value for the resource.", "in": "path", "required": true, "type": "string" - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}": { - "get": { - "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`.", - "operationId": "GetNodeExecutionData", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminNodeExecutionGetDataResponse" - } - } - }, - "parameters": [ + }, { - "name": "id.execution_id.project", - "description": "Name of the project the resource belongs to.", + "name": "task_execution_id.node_execution_id.node_id", "in": "path", "required": true, "type": "string" }, { - "name": "id.execution_id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "name": "task_execution_id.task_id.project", + "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "id.execution_id.name", - "description": "User or system provided value for the resource.", + "name": "task_execution_id.task_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", "in": "path", "required": true, "type": "string" }, { - "name": "id.node_id", + "name": "task_execution_id.task_id.name", + "description": "User provided value for the resource.", "in": "path", "required": true, "type": "string" - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/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}": { - "get": { - "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`.", - "operationId": "GetTaskExecutionData", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminTaskExecutionGetDataResponse" - } - } - }, - "parameters": [ + }, { - "name": "id.node_execution_id.execution_id.project", - "description": "Name of the project the resource belongs to.", + "name": "task_execution_id.task_id.version", + "description": "Specific version of the resource.", "in": "path", "required": true, "type": "string" }, { - "name": "id.node_execution_id.execution_id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "name": "task_execution_id.retry_attempt", "in": "path", "required": true, - "type": "string" + "type": "integer", + "format": "int64" }, { - "name": "id.node_execution_id.execution_id.name", - "description": "User or system provided value for the resource.", - "in": "path", - "required": true, - "type": "string" + "name": "task_execution_id.task_id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ], + "default": "UNSPECIFIED" }, { - "name": "id.node_execution_id.node_id", - "in": "path", - "required": true, + "name": "task_execution_id.task_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, "type": "string" }, { - "name": "id.task_id.project", - "description": "Name of the project the resource belongs to.", - "in": "path", - "required": true, + "name": "task_execution_id.node_execution_id.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, "type": "string" }, { - "name": "id.task_id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", - "in": "path", - "required": true, - "type": "string" + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" }, { - "name": "id.task_id.name", - "description": "User provided value for the resource.", - "in": "path", - "required": true, + "name": "token", + "description": "In the case of multiple pages of results, the, server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, "type": "string" }, { - "name": "id.task_id.version", - "description": "Specific version of the resource.", - "in": "path", - "required": true, + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, "type": "string" }, { - "name": "id.retry_attempt", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" }, { - "name": "id.task_id.resource_type", - "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", "in": "query", "required": false, "type": "string", "enum": [ - "UNSPECIFIED", - "TASK", - "WORKFLOW", - "LAUNCH_PLAN", - "DATASET" + "DESCENDING", + "ASCENDING" ], - "default": "UNSPECIFIED" + "default": "DESCENDING" } ], "tags": [ @@ -441,32 +485,25 @@ ] } }, - "/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}": { + "/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}": { "get": { - "summary": "Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object.", - "operationId": "GetDescriptionEntity", + "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "GetExecutionData2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminDescriptionEntity" + "$ref": "#/definitions/adminWorkflowExecutionGetDataResponse" } } }, "parameters": [ { - "name": "id.resource_type", - "description": "Identifies the specific type of resource that this identifier corresponds to.", + "name": "id.org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, - "type": "string", - "enum": [ - "UNSPECIFIED", - "TASK", - "WORKFLOW", - "LAUNCH_PLAN", - "DATASET" - ] + "type": "string" }, { "name": "id.project", @@ -484,14 +521,7 @@ }, { "name": "id.name", - "description": "User provided value for the resource.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.version", - "description": "Specific version of the resource.", + "description": "User or system provided value for the resource.", "in": "path", "required": true, "type": "string" @@ -500,34 +530,25 @@ "tags": [ "AdminService" ] - } - }, - "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}": { - "get": { - "summary": "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions.", - "operationId": "ListDescriptionEntities2", + }, + "delete": { + "summary": "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "TerminateExecution2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminDescriptionEntityList" + "$ref": "#/definitions/adminExecutionTerminateResponse" } } }, "parameters": [ { - "name": "resource_type", - "description": "Identifies the specific type of resource that this identifier corresponds to.", + "name": "id.org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, - "type": "string", - "enum": [ - "UNSPECIFIED", - "TASK", - "WORKFLOW", - "LAUNCH_PLAN", - "DATASET" - ] + "type": "string" }, { "name": "id.project", @@ -545,51 +566,171 @@ }, { "name": "id.name", - "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", - "in": "query", - "required": false, + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, "type": "string" }, { - "name": "limit", - "description": "Indicates the number of resources to be returned.\n+required.", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionTerminateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/data/executions/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "GetExecutionData", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminWorkflowExecutionGetDataResponse" + } + } + }, + "parameters": [ + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" }, { - "name": "token", - "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", - "in": "query", - "required": false, + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, "type": "string" }, { - "name": "filters", - "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", - "in": "query", - "required": false, + "name": "id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, "type": "string" }, { - "name": "sort_by.key", - "description": "Indicates an attribute to sort the response values.\n+required.", + "name": "id.org", + "description": "Optional, org key applied to the resource.", "in": "query", "required": false, "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}": { + "get": { + "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`.", + "operationId": "GetNodeExecutionData2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNodeExecutionGetDataResponse" + } + } + }, + "parameters": [ + { + "name": "id.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" }, { - "name": "sort_by.direction", - "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "name": "id.execution_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_id", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}": { + "get": { + "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`.", + "operationId": "GetNodeExecutionData", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNodeExecutionGetDataResponse" + } + } + }, + "parameters": [ + { + "name": "id.execution_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.org", + "description": "Optional, org key applied to the resource.", "in": "query", "required": false, - "type": "string", - "enum": [ - "DESCENDING", - "ASCENDING" - ], - "default": "DESCENDING" + "type": "string" } ], "tags": [ @@ -597,57 +738,3565 @@ ] } }, - "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}": { + "/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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}": { "get": { - "summary": "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions.", - "operationId": "ListDescriptionEntities", + "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`.", + "operationId": "GetTaskExecutionData2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminDescriptionEntityList" + "$ref": "#/definitions/adminTaskExecutionGetDataResponse" } } }, "parameters": [ { - "name": "resource_type", - "description": "Identifies the specific type of resource that this identifier corresponds to.", + "name": "id.node_execution_id.execution_id.org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, - "type": "string", - "enum": [ - "UNSPECIFIED", - "TASK", - "WORKFLOW", - "LAUNCH_PLAN", - "DATASET" - ] + "type": "string" }, { - "name": "id.project", + "name": "id.node_execution_id.execution_id.project", "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "id.domain", + "name": "id.node_execution_id.execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_execution_id.execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_execution_id.node_id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.task_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.task_id.domain", "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", "in": "path", "required": true, "type": "string" }, { - "name": "id.name", - "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "name": "id.task_id.name", + "description": "User provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.task_id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.retry_attempt", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "id.task_id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ], + "default": "UNSPECIFIED" + }, + { + "name": "id.task_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/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}": { + "get": { + "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`.", + "operationId": "GetTaskExecutionData", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminTaskExecutionGetDataResponse" + } + } + }, + "parameters": [ + { + "name": "id.node_execution_id.execution_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_execution_id.execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_execution_id.execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_execution_id.node_id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.task_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.task_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.task_id.name", + "description": "User provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.task_id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.retry_attempt", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "id.task_id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ], + "default": "UNSPECIFIED" + }, + { + "name": "id.task_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "id.node_execution_id.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}": { + "get": { + "summary": "Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object.", + "operationId": "GetDescriptionEntity2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminDescriptionEntity" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}": { + "get": { + "summary": "Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object.", + "operationId": "GetDescriptionEntity", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminDescriptionEntity" + } + } + }, + "parameters": [ + { + "name": "id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions.", + "operationId": "ListDescriptionEntities4", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminDescriptionEntityList" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions.", + "operationId": "ListDescriptionEntities2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminDescriptionEntityList" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions.", + "operationId": "ListDescriptionEntities3", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminDescriptionEntityList" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions.", + "operationId": "ListDescriptionEntities", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminDescriptionEntityList" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/events/nodes": { + "post": { + "summary": "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred.", + "operationId": "CreateNodeEvent", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNodeExecutionEventResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminNodeExecutionEventRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/events/tasks": { + "post": { + "summary": "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred.", + "operationId": "CreateTaskEvent", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminTaskExecutionEventResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminTaskExecutionEventRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/events/workflows": { + "post": { + "summary": "Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred.", + "operationId": "CreateWorkflowEvent", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminWorkflowExecutionEventResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminWorkflowExecutionEventRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/executions": { + "post": { + "summary": "Triggers the creation of a :ref:`ref_flyteidl.admin.Execution`", + "operationId": "CreateExecution", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionCreateResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionCreateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "ListExecutions2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionList" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Fetches a :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "GetExecution2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecution" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, + "put": { + "summary": "Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "UpdateExecution2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionUpdateResponse" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionUpdateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/executions/recover": { + "post": { + "summary": "Recreates a previously-run workflow execution that will only start executing from the last known failure point.\nIn Recover mode, users cannot change any input parameters or update the version of the execution.\nThis is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures,\ndownstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\nSee :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details.", + "operationId": "RecoverExecution", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionCreateResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionRecoverRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/executions/relaunch": { + "post": { + "summary": "Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution`", + "operationId": "RelaunchExecution", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionCreateResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionRelaunchRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/executions/{id.project}/{id.domain}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "ListExecutions", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionList" + } + } + }, + "parameters": [ + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/executions/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Fetches a :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "GetExecution", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecution" + } + } + }, + "parameters": [ + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, + "delete": { + "summary": "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "TerminateExecution", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionTerminateResponse" + } + } + }, + "parameters": [ + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionTerminateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + }, + "put": { + "summary": "Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "UpdateExecution", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionUpdateResponse" + } + } + }, + "parameters": [ + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionUpdateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/launch_plan_ids/org/{org}/{project}/{domain}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects.", + "operationId": "ListLaunchPlanIds2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNamedEntityIdentifierList" + } + } + }, + "parameters": [ + { + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "project", + "description": "Name of the project that contains the identifiers.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "domain", + "description": "Name of the domain the identifiers belongs to within the project.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\n+optional.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/launch_plan_ids/{project}/{domain}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects.", + "operationId": "ListLaunchPlanIds", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNamedEntityIdentifierList" + } + } + }, + "parameters": [ + { + "name": "project", + "description": "Name of the project that contains the identifiers.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "domain", + "description": "Name of the domain the identifiers belongs to within the project.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/launch_plans": { + "post": { + "summary": "Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition", + "operationId": "CreateLaunchPlan", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlanCreateResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminLaunchPlanCreateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", + "operationId": "ListLaunchPlans4", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlanList" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", + "operationId": "ListLaunchPlans2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlanList" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}": { + "get": { + "summary": "Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition.", + "operationId": "GetLaunchPlan2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlan" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ], + "default": "UNSPECIFIED" + } + ], + "tags": [ + "AdminService" + ] + }, + "put": { + "summary": "Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`.", + "operationId": "UpdateLaunchPlan2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlanUpdateResponse" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/launch_plans/{id.project}/{id.domain}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", + "operationId": "ListLaunchPlans3", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlanList" + } + } + }, + "parameters": [ + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", + "operationId": "ListLaunchPlans", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlanList" + } + } + }, + "parameters": [ + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}": { + "get": { + "summary": "Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition.", + "operationId": "GetLaunchPlan", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlan" + } + } + }, + "parameters": [ + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ], + "default": "UNSPECIFIED" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, + "put": { + "summary": "Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`.", + "operationId": "UpdateLaunchPlan", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlanUpdateResponse" + } + } + }, + "parameters": [ + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminLaunchPlanUpdateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/matchable_attributes": { + "get": { + "summary": "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type.", + "operationId": "ListMatchableAttributes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminListMatchableAttributesResponse" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "TASK_RESOURCE", + "CLUSTER_RESOURCE", + "EXECUTION_QUEUE", + "EXECUTION_CLUSTER_LABEL", + "QUALITY_OF_SERVICE_SPECIFICATION", + "PLUGIN_OVERRIDE", + "WORKFLOW_EXECUTION_CONFIG", + "CLUSTER_ASSIGNMENT" + ], + "default": "TASK_RESOURCE" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "GetExecutionMetrics2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminWorkflowExecutionGetMetricsResponse" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "depth", + "description": "depth defines the number of Flyte entity levels to traverse when breaking down execution details.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "GetExecutionMetrics", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminWorkflowExecutionGetMetricsResponse" + } + } + }, + "parameters": [ + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "depth", + "description": "depth defines the number of Flyte entity levels to traverse when breaking down execution details.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Returns a :ref:`ref_flyteidl.admin.NamedEntity` object.", + "operationId": "GetNamedEntity2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNamedEntity" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "Resource type of the metadata to get. One of Task, Workflow or LaunchPlan.\n+required", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, + "put": { + "summary": "Updates a :ref:`ref_flyteidl.admin.NamedEntity` object.", + "operationId": "UpdateNamedEntity2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNamedEntityUpdateResponse" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "Resource type of the metadata to update\n+required", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminNamedEntityUpdateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}": { + "get": { + "summary": "Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects.", + "operationId": "ListNamedEntities2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNamedEntityList" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "Resource type of the metadata to query. One of Task, Workflow or LaunchPlan.\n+required", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "project", + "description": "Name of the project that contains the identifiers.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "domain", + "description": "Name of the domain the identifiers belongs to within the project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\n+optional.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}": { + "get": { + "summary": "Returns a :ref:`ref_flyteidl.admin.NamedEntity` object.", + "operationId": "GetNamedEntity", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNamedEntity" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "Resource type of the metadata to get. One of Task, Workflow or LaunchPlan.\n+required", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, + "put": { + "summary": "Updates a :ref:`ref_flyteidl.admin.NamedEntity` object.", + "operationId": "UpdateNamedEntity", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNamedEntityUpdateResponse" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "Resource type of the metadata to update\n+required", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminNamedEntityUpdateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/named_entities/{resource_type}/{project}/{domain}": { + "get": { + "summary": "Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects.", + "operationId": "ListNamedEntities", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNamedEntityList" + } + } + }, + "parameters": [ + { + "name": "resource_type", + "description": "Resource type of the metadata to query. One of Task, Workflow or LaunchPlan.\n+required", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ] + }, + { + "name": "project", + "description": "Name of the project that contains the identifiers.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "domain", + "description": "Name of the domain the identifiers belongs to within the project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}": { + "get": { + "summary": "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`.", + "operationId": "GetNodeExecution2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/flyteidladminNodeExecution" + } + } + }, + "parameters": [ + { + "name": "id.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_id", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`.", + "operationId": "ListNodeExecutions2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNodeExecutionList" + } + } + }, + "parameters": [ + { + "name": "workflow_execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "workflow_execution_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "workflow_execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "workflow_execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + }, + { + "name": "unique_parent_id", + "description": "Unique identifier of the parent node in the execution\n+optional.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}": { + "get": { + "summary": "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`.", + "operationId": "GetNodeExecution", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/flyteidladminNodeExecution" + } + } + }, + "parameters": [ + { + "name": "id.execution_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`.", + "operationId": "ListNodeExecutions", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNodeExecutionList" + } + } + }, + "parameters": [ + { + "name": "workflow_execution_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "workflow_execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "workflow_execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "workflow_execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + }, + { + "name": "unique_parent_id", + "description": "Unique identifier of the parent node in the execution\n+optional.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/project_attributes/{attributes.project}": { + "put": { + "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level", + "operationId": "UpdateProjectAttributes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectAttributesUpdateResponse" + } + } + }, + "parameters": [ + { + "name": "attributes.project", + "description": "Unique project id for which this set of attributes will be applied.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminProjectAttributesUpdateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/project_attributes/{project}": { + "get": { + "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", + "operationId": "GetProjectAttributes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectAttributesGetResponse" + } + } + }, + "parameters": [ + { + "name": "project", + "description": "Unique project id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "resource_type", + "description": "Which type of matchable attributes to return.\n+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "TASK_RESOURCE", + "CLUSTER_RESOURCE", + "EXECUTION_QUEUE", + "EXECUTION_CLUSTER_LABEL", + "QUALITY_OF_SERVICE_SPECIFICATION", + "PLUGIN_OVERRIDE", + "WORKFLOW_EXECUTION_CONFIG", + "CLUSTER_ASSIGNMENT" + ], + "default": "TASK_RESOURCE" + }, + { + "name": "org", + "description": "Optional, org key applied to the project.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, + "delete": { + "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", + "operationId": "DeleteProjectAttributes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectAttributesDeleteResponse" + } + } + }, + "parameters": [ + { + "name": "project", + "description": "Unique project id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminProjectAttributesDeleteRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}": { + "put": { + "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level", + "operationId": "UpdateProjectAttributes2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectAttributesUpdateResponse" + } + } + }, + "parameters": [ + { + "name": "attributes.org", + "description": "Optional, org key applied to the project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "attributes.project", + "description": "Unique project id for which this set of attributes will be applied.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminProjectAttributesUpdateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}": { + "put": { + "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", + "operationId": "UpdateProjectDomainAttributes2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectDomainAttributesUpdateResponse" + } + } + }, + "parameters": [ + { + "name": "attributes.org", + "description": "Optional, org key applied to the attributes.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "attributes.project", + "description": "Unique project id for which this set of attributes will be applied.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "attributes.domain", + "description": "Unique domain id for which this set of attributes will be applied.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminProjectDomainAttributesUpdateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/project_domain_attributes/org/{org}/{project}": { + "get": { + "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", + "operationId": "GetProjectAttributes2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectAttributesGetResponse" + } + } + }, + "parameters": [ + { + "name": "org", + "description": "Optional, org key applied to the project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "project", + "description": "Unique project id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "resource_type", + "description": "Which type of matchable attributes to return.\n+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "TASK_RESOURCE", + "CLUSTER_RESOURCE", + "EXECUTION_QUEUE", + "EXECUTION_CLUSTER_LABEL", + "QUALITY_OF_SERVICE_SPECIFICATION", + "PLUGIN_OVERRIDE", + "WORKFLOW_EXECUTION_CONFIG", + "CLUSTER_ASSIGNMENT" + ], + "default": "TASK_RESOURCE" + } + ], + "tags": [ + "AdminService" + ] + }, + "delete": { + "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", + "operationId": "DeleteProjectAttributes2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectAttributesDeleteResponse" + } + } + }, + "parameters": [ + { + "name": "org", + "description": "Optional, org key applied to the project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "project", + "description": "Unique project id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminProjectAttributesDeleteRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/project_domain_attributes/org/{org}/{project}/{domain}": { + "get": { + "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", + "operationId": "GetProjectDomainAttributes2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectDomainAttributesGetResponse" + } + } + }, + "parameters": [ + { + "name": "org", + "description": "Optional, org key applied to the attributes.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "project", + "description": "Unique project id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "domain", + "description": "Unique domain id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "resource_type", + "description": "Which type of matchable attributes to return.\n+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "TASK_RESOURCE", + "CLUSTER_RESOURCE", + "EXECUTION_QUEUE", + "EXECUTION_CLUSTER_LABEL", + "QUALITY_OF_SERVICE_SPECIFICATION", + "PLUGIN_OVERRIDE", + "WORKFLOW_EXECUTION_CONFIG", + "CLUSTER_ASSIGNMENT" + ], + "default": "TASK_RESOURCE" + } + ], + "tags": [ + "AdminService" + ] + }, + "delete": { + "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", + "operationId": "DeleteProjectDomainAttributes2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectDomainAttributesDeleteResponse" + } + } + }, + "parameters": [ + { + "name": "org", + "description": "Optional, org key applied to the attributes.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "project", + "description": "Unique project id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "domain", + "description": "Unique domain id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminProjectDomainAttributesDeleteRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}": { + "put": { + "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", + "operationId": "UpdateProjectDomainAttributes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectDomainAttributesUpdateResponse" + } + } + }, + "parameters": [ + { + "name": "attributes.project", + "description": "Unique project id for which this set of attributes will be applied.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "attributes.domain", + "description": "Unique domain id for which this set of attributes will be applied.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminProjectDomainAttributesUpdateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/project_domain_attributes/{project}/{domain}": { + "get": { + "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", + "operationId": "GetProjectDomainAttributes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectDomainAttributesGetResponse" + } + } + }, + "parameters": [ + { + "name": "project", + "description": "Unique project id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "domain", + "description": "Unique domain id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "resource_type", + "description": "Which type of matchable attributes to return.\n+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "TASK_RESOURCE", + "CLUSTER_RESOURCE", + "EXECUTION_QUEUE", + "EXECUTION_CLUSTER_LABEL", + "QUALITY_OF_SERVICE_SPECIFICATION", + "PLUGIN_OVERRIDE", + "WORKFLOW_EXECUTION_CONFIG", + "CLUSTER_ASSIGNMENT" + ], + "default": "TASK_RESOURCE" + }, + { + "name": "org", + "description": "Optional, org key applied to the attributes.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, + "delete": { + "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", + "operationId": "DeleteProjectDomainAttributes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectDomainAttributesDeleteResponse" + } + } + }, + "parameters": [ + { + "name": "project", + "description": "Unique project id which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "domain", + "description": "Unique domain id which this set of attributes references.\n+required", "in": "path", "required": true, "type": "string" }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminProjectDomainAttributesDeleteRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/projects": { + "get": { + "summary": "Fetches a list of :ref:`ref_flyteidl.admin.Project`", + "operationId": "ListProjects", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjects" + } + } + }, + "parameters": [ { "name": "limit", - "description": "Indicates the number of resources to be returned.\n+required.", + "description": "Indicates the number of projects to be returned.\n+required.", "in": "query", "required": false, "type": "integer", @@ -655,7 +4304,7 @@ }, { "name": "token", - "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", "in": "query", "required": false, "type": "string" @@ -690,17 +4339,15 @@ "tags": [ "AdminService" ] - } - }, - "/api/v1/events/nodes": { + }, "post": { - "summary": "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred.", - "operationId": "CreateNodeEvent", + "summary": "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment.", + "operationId": "RegisterProject", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminNodeExecutionEventResponse" + "$ref": "#/definitions/adminProjectRegisterResponse" } } }, @@ -710,7 +4357,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/adminNodeExecutionEventRequest" + "$ref": "#/definitions/adminProjectRegisterRequest" } } ], @@ -719,79 +4366,39 @@ ] } }, - "/api/v1/events/tasks": { - "post": { - "summary": "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred.", - "operationId": "CreateTaskEvent", + "/api/v1/projects/org/{identifier.org}/{identifier.id}": { + "put": { + "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", + "operationId": "UpdateProject4", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminTaskExecutionEventResponse" + "$ref": "#/definitions/adminProjectUpdateResponse" } } }, "parameters": [ { - "name": "body", - "in": "body", + "name": "identifier.org", + "description": "Optional, org key applied to the resource.", + "in": "path", "required": true, - "schema": { - "$ref": "#/definitions/adminTaskExecutionEventRequest" - } - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/events/workflows": { - "post": { - "summary": "Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred.", - "operationId": "CreateWorkflowEvent", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminWorkflowExecutionEventResponse" - } - } - }, - "parameters": [ + "type": "string" + }, { - "name": "body", - "in": "body", + "name": "identifier.id", + "description": "Globally unique project name.", + "in": "path", "required": true, - "schema": { - "$ref": "#/definitions/adminWorkflowExecutionEventRequest" - } - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/executions": { - "post": { - "summary": "Triggers the creation of a :ref:`ref_flyteidl.admin.Execution`", - "operationId": "CreateExecution", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminExecutionCreateResponse" - } - } - }, - "parameters": [ + "type": "string" + }, { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/adminExecutionCreateRequest" + "$ref": "#/definitions/adminProject" } } ], @@ -800,25 +4407,39 @@ ] } }, - "/api/v1/executions/recover": { - "post": { - "summary": "Recreates a previously-run workflow execution that will only start executing from the last known failure point.\nIn Recover mode, users cannot change any input parameters or update the version of the execution.\nThis is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures,\ndownstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\nSee :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details.", - "operationId": "RecoverExecution", + "/api/v1/projects/org/{identifier.org}/{id}": { + "put": { + "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", + "operationId": "UpdateProject3", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminExecutionCreateResponse" + "$ref": "#/definitions/adminProjectUpdateResponse" } } }, "parameters": [ + { + "name": "identifier.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id", + "description": "Deprecated, use identifier instead.\nGlobally unique project name.", + "in": "path", + "required": true, + "type": "string" + }, { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/adminExecutionRecoverRequest" + "$ref": "#/definitions/adminProject" } } ], @@ -827,25 +4448,32 @@ ] } }, - "/api/v1/executions/relaunch": { - "post": { - "summary": "Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution`", - "operationId": "RelaunchExecution", + "/api/v1/projects/{identifier.id}": { + "put": { + "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", + "operationId": "UpdateProject2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminExecutionCreateResponse" + "$ref": "#/definitions/adminProjectUpdateResponse" } } }, "parameters": [ + { + "name": "identifier.id", + "description": "Globally unique project name.", + "in": "path", + "required": true, + "type": "string" + }, { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/adminExecutionRelaunchRequest" + "$ref": "#/definitions/adminProject" } } ], @@ -854,80 +4482,33 @@ ] } }, - "/api/v1/executions/{id.project}/{id.domain}": { - "get": { - "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Execution`.", - "operationId": "ListExecutions", + "/api/v1/projects/{id}": { + "put": { + "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", + "operationId": "UpdateProject", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminExecutionList" + "$ref": "#/definitions/adminProjectUpdateResponse" } } }, "parameters": [ { - "name": "id.project", - "description": "Name of the project the resource belongs to.", + "name": "id", + "description": "Deprecated, use identifier instead.\nGlobally unique project name.", "in": "path", "required": true, "type": "string" }, { - "name": "id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", - "in": "path", + "name": "body", + "in": "body", "required": true, - "type": "string" - }, - { - "name": "id.name", - "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "limit", - "description": "Indicates the number of resources to be returned.\n+required.", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "token", - "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "filters", - "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "sort_by.key", - "description": "Indicates an attribute to sort the response values.\n+required.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "sort_by.direction", - "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "DESCENDING", - "ASCENDING" - ], - "default": "DESCENDING" + "schema": { + "$ref": "#/definitions/adminProject" + } } ], "tags": [ @@ -935,131 +4516,109 @@ ] } }, - "/api/v1/executions/{id.project}/{id.domain}/{id.name}": { + "/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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}": { "get": { - "summary": "Fetches a :ref:`ref_flyteidl.admin.Execution`.", - "operationId": "GetExecution", + "summary": "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`.", + "operationId": "GetTaskExecution2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminExecution" + "$ref": "#/definitions/flyteidladminTaskExecution" } } }, "parameters": [ { - "name": "id.project", - "description": "Name of the project the resource belongs to.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "name": "id.node_execution_id.execution_id.org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, "type": "string" }, { - "name": "id.name", - "description": "User or system provided value for the resource.", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "AdminService" - ] - }, - "delete": { - "summary": "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`.", - "operationId": "TerminateExecution", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminExecutionTerminateResponse" - } - } - }, - "parameters": [ - { - "name": "id.project", + "name": "id.node_execution_id.execution_id.project", "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "id.domain", + "name": "id.node_execution_id.execution_id.domain", "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", "in": "path", "required": true, "type": "string" }, { - "name": "id.name", + "name": "id.node_execution_id.execution_id.name", "description": "User or system provided value for the resource.", "in": "path", "required": true, "type": "string" }, { - "name": "body", - "in": "body", + "name": "id.node_execution_id.node_id", + "in": "path", "required": true, - "schema": { - "$ref": "#/definitions/adminExecutionTerminateRequest" - } - } - ], - "tags": [ - "AdminService" - ] - }, - "put": { - "summary": "Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`.", - "operationId": "UpdateExecution", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminExecutionUpdateResponse" - } - } - }, - "parameters": [ + "type": "string" + }, { - "name": "id.project", + "name": "id.task_id.project", "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "id.domain", + "name": "id.task_id.domain", "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", "in": "path", "required": true, "type": "string" }, { - "name": "id.name", - "description": "User or system provided value for the resource.", + "name": "id.task_id.name", + "description": "User provided value for the resource.", "in": "path", "required": true, "type": "string" }, { - "name": "body", - "in": "body", + "name": "id.task_id.version", + "description": "Specific version of the resource.", + "in": "path", "required": true, - "schema": { - "$ref": "#/definitions/adminExecutionUpdateRequest" - } + "type": "string" + }, + { + "name": "id.retry_attempt", + "in": "path", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "id.task_id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ], + "default": "UNSPECIFIED" + }, + { + "name": "id.task_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ @@ -1067,29 +4626,49 @@ ] } }, - "/api/v1/launch_plan_ids/{project}/{domain}": { + "/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}": { "get": { - "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects.", - "operationId": "ListLaunchPlanIds", + "summary": "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`.", + "operationId": "ListTaskExecutions2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminNamedEntityIdentifierList" + "$ref": "#/definitions/adminTaskExecutionList" } } }, "parameters": [ { - "name": "project", - "description": "Name of the project that contains the identifiers.\n+required", + "name": "node_execution_id.execution_id.org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, "type": "string" }, { - "name": "domain", - "description": "Name of the domain the identifiers belongs to within the project.\n+required", + "name": "node_execution_id.execution_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "node_execution_id.execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "node_execution_id.execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "node_execution_id.node_id", "in": "path", "required": true, "type": "string" @@ -1109,6 +4688,13 @@ "required": false, "type": "string" }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, { "name": "sort_by.key", "description": "Indicates an attribute to sort the response values.\n+required.", @@ -1127,13 +4713,6 @@ "ASCENDING" ], "default": "DESCENDING" - }, - { - "name": "filters", - "description": "Indicates a list of filters passed as string.\n+optional.", - "in": "query", - "required": false, - "type": "string" } ], "tags": [ @@ -1141,107 +4720,109 @@ ] } }, - "/api/v1/launch_plans": { - "post": { - "summary": "Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition", - "operationId": "CreateLaunchPlan", + "/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}": { + "get": { + "summary": "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`.", + "operationId": "GetTaskExecution", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminLaunchPlanCreateResponse" + "$ref": "#/definitions/flyteidladminTaskExecution" } } }, "parameters": [ { - "name": "body", - "in": "body", + "name": "id.node_execution_id.execution_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", "required": true, - "schema": { - "$ref": "#/definitions/adminLaunchPlanCreateRequest" - } - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/launch_plans/{id.project}/{id.domain}": { - "get": { - "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", - "operationId": "ListLaunchPlans2", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminLaunchPlanList" - } - } - }, - "parameters": [ + "type": "string" + }, { - "name": "id.project", + "name": "id.node_execution_id.execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_execution_id.execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.node_execution_id.node_id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.task_id.project", "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "id.domain", + "name": "id.task_id.domain", "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", "in": "path", "required": true, "type": "string" }, { - "name": "id.name", - "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", - "in": "query", - "required": false, + "name": "id.task_id.name", + "description": "User provided value for the resource.", + "in": "path", + "required": true, "type": "string" }, { - "name": "limit", - "description": "Indicates the number of resources to be returned.\n+required.", - "in": "query", - "required": false, + "name": "id.task_id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.retry_attempt", + "in": "path", + "required": true, "type": "integer", "format": "int64" }, { - "name": "token", - "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "name": "id.task_id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", "in": "query", "required": false, - "type": "string" + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ], + "default": "UNSPECIFIED" }, { - "name": "filters", - "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "name": "id.task_id.org", + "description": "Optional, org key applied to the resource.", "in": "query", "required": false, "type": "string" }, { - "name": "sort_by.key", - "description": "Indicates an attribute to sort the response values.\n+required.", + "name": "id.node_execution_id.execution_id.org", + "description": "Optional, org key applied to the resource.", "in": "query", "required": false, "type": "string" - }, - { - "name": "sort_by.direction", - "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "DESCENDING", - "ASCENDING" - ], - "default": "DESCENDING" } ], "tags": [ @@ -1249,40 +4830,53 @@ ] } }, - "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}": { + "/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}": { "get": { - "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", - "operationId": "ListLaunchPlans", + "summary": "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`.", + "operationId": "ListTaskExecutions", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminLaunchPlanList" + "$ref": "#/definitions/adminTaskExecutionList" } } }, "parameters": [ { - "name": "id.project", + "name": "node_execution_id.execution_id.project", "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "name": "node_execution_id.execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "node_execution_id.execution_id.name", + "description": "User or system provided value for the resource.", "in": "path", "required": true, "type": "string" }, { - "name": "id.name", - "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "name": "node_execution_id.node_id", "in": "path", "required": true, "type": "string" }, + { + "name": "node_execution_id.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, { "name": "limit", "description": "Indicates the number of resources to be returned.\n+required.", @@ -1293,7 +4887,7 @@ }, { "name": "token", - "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", "in": "query", "required": false, "type": "string" @@ -1330,114 +4924,80 @@ ] } }, - "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}": { + "/api/v1/task_ids/{project}/{domain}": { "get": { - "summary": "Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition.", - "operationId": "GetLaunchPlan", + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects.", + "operationId": "ListTaskIds", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminLaunchPlan" + "$ref": "#/definitions/adminNamedEntityIdentifierList" } } }, "parameters": [ { - "name": "id.project", - "description": "Name of the project the resource belongs to.", + "name": "project", + "description": "Name of the project that contains the identifiers.\n+required", "in": "path", "required": true, "type": "string" }, { - "name": "id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "name": "domain", + "description": "Name of the domain the identifiers belongs to within the project.\n+required", "in": "path", "required": true, "type": "string" }, { - "name": "id.name", - "description": "User provided value for the resource.", - "in": "path", - "required": true, + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, "type": "string" }, { - "name": "id.version", - "description": "Specific version of the resource.", - "in": "path", - "required": true, + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, "type": "string" }, { - "name": "id.resource_type", - "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", "in": "query", "required": false, "type": "string", "enum": [ - "UNSPECIFIED", - "TASK", - "WORKFLOW", - "LAUNCH_PLAN", - "DATASET" + "DESCENDING", + "ASCENDING" ], - "default": "UNSPECIFIED" - } - ], - "tags": [ - "AdminService" - ] - }, - "put": { - "summary": "Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`.", - "operationId": "UpdateLaunchPlan", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminLaunchPlanUpdateResponse" - } - } - }, - "parameters": [ - { - "name": "id.project", - "description": "Name of the project the resource belongs to.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", - "in": "path", - "required": true, - "type": "string" + "default": "DESCENDING" }, { - "name": "id.name", - "description": "User provided value for the resource.", - "in": "path", - "required": true, + "name": "filters", + "description": "Indicates a list of filters passed as string.\n+optional.", + "in": "query", + "required": false, "type": "string" }, { - "name": "id.version", - "description": "Specific version of the resource.", - "in": "path", - "required": true, + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/adminLaunchPlanUpdateRequest" - } } ], "tags": [ @@ -1445,36 +5005,26 @@ ] } }, - "/api/v1/matchable_attributes": { - "get": { - "summary": "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type.", - "operationId": "ListMatchableAttributes", + "/api/v1/tasks": { + "post": { + "summary": "Create and upload a :ref:`ref_flyteidl.admin.Task` definition", + "operationId": "CreateTask", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminListMatchableAttributesResponse" + "$ref": "#/definitions/flyteidladminTaskCreateResponse" } } }, "parameters": [ { - "name": "resource_type", - "description": "+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "TASK_RESOURCE", - "CLUSTER_RESOURCE", - "EXECUTION_QUEUE", - "EXECUTION_CLUSTER_LABEL", - "QUALITY_OF_SERVICE_SPECIFICATION", - "PLUGIN_OVERRIDE", - "WORKFLOW_EXECUTION_CONFIG", - "CLUSTER_ASSIGNMENT" - ], - "default": "TASK_RESOURCE" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/flyteidladminTaskCreateRequest" + } } ], "tags": [ @@ -1482,19 +5032,26 @@ ] } }, - "/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}": { + "/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}": { "get": { - "summary": "Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`.", - "operationId": "GetExecutionMetrics", + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", + "operationId": "ListTasks4", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminWorkflowExecutionGetMetricsResponse" + "$ref": "#/definitions/adminTaskList" } } }, "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, { "name": "id.project", "description": "Name of the project the resource belongs to.", @@ -1511,18 +5068,51 @@ }, { "name": "id.name", - "description": "User or system provided value for the resource.", - "in": "path", - "required": true, + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", + "in": "query", + "required": false, "type": "string" }, { - "name": "depth", - "description": "depth defines the number of Flyte entity levels to traverse when breaking down execution details.", + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", "in": "query", "required": false, "type": "integer", - "format": "int32" + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" } ], "tags": [ @@ -1530,32 +5120,25 @@ ] } }, - "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}": { + "/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}": { "get": { - "summary": "Returns a :ref:`ref_flyteidl.admin.NamedEntity` object.", - "operationId": "GetNamedEntity", + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", + "operationId": "ListTasks2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminNamedEntity" + "$ref": "#/definitions/adminTaskList" } } }, "parameters": [ { - "name": "resource_type", - "description": "Resource type of the metadata to get. One of Task, Workflow or LaunchPlan.\n+required", + "name": "id.org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, - "type": "string", - "enum": [ - "UNSPECIFIED", - "TASK", - "WORKFLOW", - "LAUNCH_PLAN", - "DATASET" - ] + "type": "string" }, { "name": "id.project", @@ -1577,37 +5160,73 @@ "in": "path", "required": true, "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" } ], "tags": [ "AdminService" ] - }, - "put": { - "summary": "Updates a :ref:`ref_flyteidl.admin.NamedEntity` object.", - "operationId": "UpdateNamedEntity", + } + }, + "/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}": { + "get": { + "summary": "Fetch a :ref:`ref_flyteidl.admin.Task` definition.", + "operationId": "GetTask2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminNamedEntityUpdateResponse" + "$ref": "#/definitions/adminTask" } } }, "parameters": [ { - "name": "resource_type", - "description": "Resource type of the metadata to update\n+required", + "name": "id.org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, - "type": "string", - "enum": [ - "UNSPECIFIED", - "TASK", - "WORKFLOW", - "LAUNCH_PLAN", - "DATASET" - ] + "type": "string" }, { "name": "id.project", @@ -1625,18 +5244,32 @@ }, { "name": "id.name", - "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", + "description": "User provided value for the resource.", "in": "path", "required": true, "type": "string" }, { - "name": "body", - "in": "body", + "name": "id.version", + "description": "Specific version of the resource.", + "in": "path", "required": true, - "schema": { - "$ref": "#/definitions/adminNamedEntityUpdateRequest" - } + "type": "string" + }, + { + "name": "id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ], + "default": "UNSPECIFIED" } ], "tags": [ @@ -1644,32 +5277,25 @@ ] } }, - "/api/v1/named_entities/{resource_type}/{project}/{domain}": { + "/api/v1/tasks/org/{org}/{project}/{domain}": { "get": { - "summary": "Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects.", - "operationId": "ListNamedEntities", + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects.", + "operationId": "ListTaskIds2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminNamedEntityList" + "$ref": "#/definitions/adminNamedEntityIdentifierList" } } }, "parameters": [ { - "name": "resource_type", - "description": "Resource type of the metadata to query. One of Task, Workflow or LaunchPlan.\n+required", + "name": "org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, - "type": "string", - "enum": [ - "UNSPECIFIED", - "TASK", - "WORKFLOW", - "LAUNCH_PLAN", - "DATASET" - ] + "type": "string" }, { "name": "project", @@ -1680,14 +5306,14 @@ }, { "name": "domain", - "description": "Name of the domain the identifiers belongs to within the project.", + "description": "Name of the domain the identifiers belongs to within the project.\n+required", "in": "path", "required": true, "type": "string" }, { "name": "limit", - "description": "Indicates the number of resources to be returned.", + "description": "Indicates the number of resources to be returned.\n+required.", "in": "query", "required": false, "type": "integer", @@ -1732,45 +5358,87 @@ ] } }, - "/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}": { + "/api/v1/tasks/{id.project}/{id.domain}": { "get": { - "summary": "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`.", - "operationId": "GetNodeExecution", + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", + "operationId": "ListTasks3", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/flyteidladminNodeExecution" + "$ref": "#/definitions/adminTaskList" } } }, "parameters": [ { - "name": "id.execution_id.project", + "name": "id.project", "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "id.execution_id.domain", + "name": "id.domain", "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", "in": "path", "required": true, "type": "string" }, { - "name": "id.execution_id.name", - "description": "User or system provided value for the resource.", - "in": "path", - "required": true, + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", + "in": "query", + "required": false, "type": "string" }, { - "name": "id.node_id", - "in": "path", - "required": true, + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" } ], "tags": [ @@ -1778,40 +5446,47 @@ ] } }, - "/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}": { + "/api/v1/tasks/{id.project}/{id.domain}/{id.name}": { "get": { - "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`.", - "operationId": "ListNodeExecutions", + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", + "operationId": "ListTasks", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminNodeExecutionList" + "$ref": "#/definitions/adminTaskList" } } }, "parameters": [ { - "name": "workflow_execution_id.project", + "name": "id.project", "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "workflow_execution_id.domain", + "name": "id.domain", "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", "in": "path", "required": true, "type": "string" }, { - "name": "workflow_execution_id.name", - "description": "User or system provided value for the resource.", + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", "in": "path", "required": true, "type": "string" }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, { "name": "limit", "description": "Indicates the number of resources to be returned.\n+required.", @@ -1822,6 +5497,7 @@ }, { "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", "in": "query", "required": false, "type": "string" @@ -1851,13 +5527,6 @@ "ASCENDING" ], "default": "DESCENDING" - }, - { - "name": "unique_parent_id", - "description": "Unique identifier of the parent node in the execution\n+optional.", - "in": "query", - "required": false, - "type": "string" } ], "tags": [ @@ -1865,129 +5534,111 @@ ] } }, - "/api/v1/project_attributes/{attributes.project}": { - "put": { - "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level", - "operationId": "UpdateProjectAttributes", + "/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}": { + "get": { + "summary": "Fetch a :ref:`ref_flyteidl.admin.Task` definition.", + "operationId": "GetTask", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminProjectAttributesUpdateResponse" + "$ref": "#/definitions/adminTask" } } }, "parameters": [ { - "name": "attributes.project", - "description": "Unique project id for which this set of attributes will be applied.", + "name": "id.project", + "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "body", - "in": "body", + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", "required": true, - "schema": { - "$ref": "#/definitions/adminProjectAttributesUpdateRequest" - } - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/project_attributes/{project}": { - "get": { - "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", - "operationId": "GetProjectAttributes", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminProjectAttributesGetResponse" - } - } - }, - "parameters": [ + "type": "string" + }, { - "name": "project", - "description": "Unique project id which this set of attributes references.\n+required", + "name": "id.name", + "description": "User provided value for the resource.", "in": "path", "required": true, "type": "string" }, { - "name": "resource_type", - "description": "Which type of matchable attributes to return.\n+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", + "name": "id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", "in": "query", "required": false, "type": "string", "enum": [ - "TASK_RESOURCE", - "CLUSTER_RESOURCE", - "EXECUTION_QUEUE", - "EXECUTION_CLUSTER_LABEL", - "QUALITY_OF_SERVICE_SPECIFICATION", - "PLUGIN_OVERRIDE", - "WORKFLOW_EXECUTION_CONFIG", - "CLUSTER_ASSIGNMENT" + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" ], - "default": "TASK_RESOURCE" + "default": "UNSPECIFIED" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ "AdminService" ] - }, - "delete": { - "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", - "operationId": "DeleteProjectAttributes", + } + }, + "/api/v1/version": { + "get": { + "operationId": "GetVersion", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminProjectAttributesDeleteResponse" + "$ref": "#/definitions/adminGetVersionResponse" } } }, - "parameters": [ - { - "name": "project", - "description": "Unique project id which this set of attributes references.\n+required", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/adminProjectAttributesDeleteRequest" - } - } - ], "tags": [ "AdminService" ] } }, - "/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}": { + "/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}": { "put": { - "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", - "operationId": "UpdateProjectDomainAttributes", + "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", + "operationId": "UpdateWorkflowAttributes2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminProjectDomainAttributesUpdateResponse" + "$ref": "#/definitions/adminWorkflowAttributesUpdateResponse" } } }, "parameters": [ + { + "name": "attributes.org", + "description": "Optional, org key applied to the attributes.", + "in": "path", + "required": true, + "type": "string" + }, { "name": "attributes.project", "description": "Unique project id for which this set of attributes will be applied.", @@ -2002,12 +5653,19 @@ "required": true, "type": "string" }, + { + "name": "attributes.workflow", + "description": "Workflow name for which this set of attributes will be applied.", + "in": "path", + "required": true, + "type": "string" + }, { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/adminProjectDomainAttributesUpdateRequest" + "$ref": "#/definitions/adminWorkflowAttributesUpdateRequest" } } ], @@ -2016,19 +5674,26 @@ ] } }, - "/api/v1/project_domain_attributes/{project}/{domain}": { + "/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}": { "get": { - "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", - "operationId": "GetProjectDomainAttributes", + "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", + "operationId": "GetWorkflowAttributes2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminProjectDomainAttributesGetResponse" + "$ref": "#/definitions/adminWorkflowAttributesGetResponse" } } }, "parameters": [ + { + "name": "org", + "description": "Optional, org key applied to the attributes.", + "in": "path", + "required": true, + "type": "string" + }, { "name": "project", "description": "Unique project id which this set of attributes references.\n+required", @@ -2043,6 +5708,13 @@ "required": true, "type": "string" }, + { + "name": "workflow", + "description": "Workflow name which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, { "name": "resource_type", "description": "Which type of matchable attributes to return.\n+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", @@ -2067,17 +5739,24 @@ ] }, "delete": { - "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", - "operationId": "DeleteProjectDomainAttributes", + "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", + "operationId": "DeleteWorkflowAttributes2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminProjectDomainAttributesDeleteResponse" + "$ref": "#/definitions/adminWorkflowAttributesDeleteResponse" } } }, "parameters": [ + { + "name": "org", + "description": "Optional, org key applied to the attributes.", + "in": "path", + "required": true, + "type": "string" + }, { "name": "project", "description": "Unique project id which this set of attributes references.\n+required", @@ -2092,12 +5771,19 @@ "required": true, "type": "string" }, + { + "name": "workflow", + "description": "Workflow name which this set of attributes references.\n+required", + "in": "path", + "required": true, + "type": "string" + }, { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/adminProjectDomainAttributesDeleteRequest" + "$ref": "#/definitions/adminWorkflowAttributesDeleteRequest" } } ], @@ -2106,107 +5792,36 @@ ] } }, - "/api/v1/projects": { - "get": { - "summary": "Fetches a list of :ref:`ref_flyteidl.admin.Project`", - "operationId": "ListProjects", + "/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}": { + "put": { + "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", + "operationId": "UpdateWorkflowAttributes", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminProjects" + "$ref": "#/definitions/adminWorkflowAttributesUpdateResponse" } } }, "parameters": [ { - "name": "limit", - "description": "Indicates the number of projects to be returned.\n+required.", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "token", - "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "filters", - "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", - "in": "query", - "required": false, + "name": "attributes.project", + "description": "Unique project id for which this set of attributes will be applied.", + "in": "path", + "required": true, "type": "string" }, { - "name": "sort_by.key", - "description": "Indicates an attribute to sort the response values.\n+required.", - "in": "query", - "required": false, + "name": "attributes.domain", + "description": "Unique domain id for which this set of attributes will be applied.", + "in": "path", + "required": true, "type": "string" }, { - "name": "sort_by.direction", - "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "DESCENDING", - "ASCENDING" - ], - "default": "DESCENDING" - } - ], - "tags": [ - "AdminService" - ] - }, - "post": { - "summary": "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment.", - "operationId": "RegisterProject", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminProjectRegisterResponse" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/adminProjectRegisterRequest" - } - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/projects/{id}": { - "put": { - "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project` \nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", - "operationId": "UpdateProject", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminProjectUpdateResponse" - } - } - }, - "parameters": [ - { - "name": "id", - "description": "Globally unique project name.", + "name": "attributes.workflow", + "description": "Workflow name for which this set of attributes will be applied.", "in": "path", "required": true, "type": "string" @@ -2216,7 +5831,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/adminProject" + "$ref": "#/definitions/adminWorkflowAttributesUpdateRequest" } } ], @@ -2225,182 +5840,110 @@ ] } }, - "/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}": { + "/api/v1/workflow_attributes/{project}/{domain}/{workflow}": { "get": { - "summary": "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`.", - "operationId": "GetTaskExecution", + "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", + "operationId": "GetWorkflowAttributes", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/flyteidladminTaskExecution" + "$ref": "#/definitions/adminWorkflowAttributesGetResponse" } } }, "parameters": [ { - "name": "id.node_execution_id.execution_id.project", - "description": "Name of the project the resource belongs to.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.node_execution_id.execution_id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.node_execution_id.execution_id.name", - "description": "User or system provided value for the resource.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.node_execution_id.node_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.task_id.project", - "description": "Name of the project the resource belongs to.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.task_id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "name": "project", + "description": "Unique project id which this set of attributes references.\n+required", "in": "path", "required": true, "type": "string" }, { - "name": "id.task_id.name", - "description": "User provided value for the resource.", + "name": "domain", + "description": "Unique domain id which this set of attributes references.\n+required", "in": "path", "required": true, "type": "string" }, { - "name": "id.task_id.version", - "description": "Specific version of the resource.", + "name": "workflow", + "description": "Workflow name which this set of attributes references.\n+required", "in": "path", "required": true, "type": "string" }, { - "name": "id.retry_attempt", - "in": "path", - "required": true, - "type": "integer", - "format": "int64" + "name": "resource_type", + "description": "Which type of matchable attributes to return.\n+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "TASK_RESOURCE", + "CLUSTER_RESOURCE", + "EXECUTION_QUEUE", + "EXECUTION_CLUSTER_LABEL", + "QUALITY_OF_SERVICE_SPECIFICATION", + "PLUGIN_OVERRIDE", + "WORKFLOW_EXECUTION_CONFIG", + "CLUSTER_ASSIGNMENT" + ], + "default": "TASK_RESOURCE" }, { - "name": "id.task_id.resource_type", - "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "name": "org", + "description": "Optional, org key applied to the attributes.", "in": "query", "required": false, - "type": "string", - "enum": [ - "UNSPECIFIED", - "TASK", - "WORKFLOW", - "LAUNCH_PLAN", - "DATASET" - ], - "default": "UNSPECIFIED" + "type": "string" } ], "tags": [ "AdminService" ] - } - }, - "/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}": { - "get": { - "summary": "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`.", - "operationId": "ListTaskExecutions", + }, + "delete": { + "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", + "operationId": "DeleteWorkflowAttributes", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminTaskExecutionList" + "$ref": "#/definitions/adminWorkflowAttributesDeleteResponse" } } }, "parameters": [ { - "name": "node_execution_id.execution_id.project", - "description": "Name of the project the resource belongs to.", + "name": "project", + "description": "Unique project id which this set of attributes references.\n+required", "in": "path", "required": true, "type": "string" }, { - "name": "node_execution_id.execution_id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "name": "domain", + "description": "Unique domain id which this set of attributes references.\n+required", "in": "path", "required": true, "type": "string" }, { - "name": "node_execution_id.execution_id.name", - "description": "User or system provided value for the resource.", + "name": "workflow", + "description": "Workflow name which this set of attributes references.\n+required", "in": "path", "required": true, "type": "string" }, { - "name": "node_execution_id.node_id", - "in": "path", + "name": "body", + "in": "body", "required": true, - "type": "string" - }, - { - "name": "limit", - "description": "Indicates the number of resources to be returned.\n+required.", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "token", - "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "filters", - "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "sort_by.key", - "description": "Indicates an attribute to sort the response values.\n+required.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "sort_by.direction", - "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "DESCENDING", - "ASCENDING" - ], - "default": "DESCENDING" + "schema": { + "$ref": "#/definitions/adminWorkflowAttributesDeleteRequest" + } } ], "tags": [ @@ -2408,10 +5951,10 @@ ] } }, - "/api/v1/task_ids/{project}/{domain}": { + "/api/v1/workflow_ids/{project}/{domain}": { "get": { - "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects.", - "operationId": "ListTaskIds", + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects.", + "operationId": "ListWorkflowIds", "responses": { "200": { "description": "A successful response.", @@ -2475,6 +6018,13 @@ "in": "query", "required": false, "type": "string" + }, + { + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ @@ -2482,15 +6032,15 @@ ] } }, - "/api/v1/tasks": { + "/api/v1/workflows": { "post": { - "summary": "Create and upload a :ref:`ref_flyteidl.admin.Task` definition", - "operationId": "CreateTask", + "summary": "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition", + "operationId": "CreateWorkflow", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/flyteidladminTaskCreateResponse" + "$ref": "#/definitions/adminWorkflowCreateResponse" } } }, @@ -2500,7 +6050,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/flyteidladminTaskCreateRequest" + "$ref": "#/definitions/adminWorkflowCreateRequest" } } ], @@ -2509,100 +6059,26 @@ ] } }, - "/api/v1/tasks/{id.project}/{id.domain}": { + "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}": { "get": { - "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", - "operationId": "ListTasks2", + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions.", + "operationId": "ListWorkflows4", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminTaskList" + "$ref": "#/definitions/adminWorkflowList" } } }, "parameters": [ { - "name": "id.project", - "description": "Name of the project the resource belongs to.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "name": "id.org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, "type": "string" }, - { - "name": "id.name", - "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "limit", - "description": "Indicates the number of resources to be returned.\n+required.", - "in": "query", - "required": false, - "type": "integer", - "format": "int64" - }, - { - "name": "token", - "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "filters", - "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "sort_by.key", - "description": "Indicates an attribute to sort the response values.\n+required.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "sort_by.direction", - "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "DESCENDING", - "ASCENDING" - ], - "default": "DESCENDING" - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/tasks/{id.project}/{id.domain}/{id.name}": { - "get": { - "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", - "operationId": "ListTasks", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminTaskList" - } - } - }, - "parameters": [ { "name": "id.project", "description": "Name of the project the resource belongs to.", @@ -2619,9 +6095,9 @@ }, { "name": "id.name", - "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", - "in": "path", - "required": true, + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'.", + "in": "query", + "required": false, "type": "string" }, { @@ -2655,77 +6131,15 @@ }, { "name": "sort_by.direction", - "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "DESCENDING", - "ASCENDING" - ], - "default": "DESCENDING" - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}": { - "get": { - "summary": "Fetch a :ref:`ref_flyteidl.admin.Task` definition.", - "operationId": "GetTask", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminTask" - } - } - }, - "parameters": [ - { - "name": "id.project", - "description": "Name of the project the resource belongs to.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.name", - "description": "User provided value for the resource.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.version", - "description": "Specific version of the resource.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.resource_type", - "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", "in": "query", "required": false, "type": "string", "enum": [ - "UNSPECIFIED", - "TASK", - "WORKFLOW", - "LAUNCH_PLAN", - "DATASET" + "DESCENDING", + "ASCENDING" ], - "default": "UNSPECIFIED" + "default": "DESCENDING" } ], "tags": [ @@ -2733,167 +6147,156 @@ ] } }, - "/api/v1/version": { + "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}": { "get": { - "operationId": "GetVersion", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminGetVersionResponse" - } - } - }, - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}": { - "put": { - "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", - "operationId": "UpdateWorkflowAttributes", + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions.", + "operationId": "ListWorkflows2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminWorkflowAttributesUpdateResponse" + "$ref": "#/definitions/adminWorkflowList" } } }, "parameters": [ { - "name": "attributes.project", - "description": "Unique project id for which this set of attributes will be applied.", + "name": "id.org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, "type": "string" }, { - "name": "attributes.domain", - "description": "Unique domain id for which this set of attributes will be applied.", + "name": "id.project", + "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "attributes.workflow", - "description": "Workflow name for which this set of attributes will be applied.", + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", "in": "path", "required": true, "type": "string" }, { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/adminWorkflowAttributesUpdateRequest" - } - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/workflow_attributes/{project}/{domain}/{workflow}": { - "get": { - "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", - "operationId": "GetWorkflowAttributes", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminWorkflowAttributesGetResponse" - } - } - }, - "parameters": [ - { - "name": "project", - "description": "Unique project id which this set of attributes references.\n+required", + "name": "id.name", + "description": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'", "in": "path", "required": true, "type": "string" }, { - "name": "domain", - "description": "Unique domain id which this set of attributes references.\n+required", - "in": "path", - "required": true, + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, "type": "string" }, { - "name": "workflow", - "description": "Workflow name which this set of attributes references.\n+required", - "in": "path", - "required": true, + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, "type": "string" }, { - "name": "resource_type", - "description": "Which type of matchable attributes to return.\n+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", "in": "query", "required": false, "type": "string", "enum": [ - "TASK_RESOURCE", - "CLUSTER_RESOURCE", - "EXECUTION_QUEUE", - "EXECUTION_CLUSTER_LABEL", - "QUALITY_OF_SERVICE_SPECIFICATION", - "PLUGIN_OVERRIDE", - "WORKFLOW_EXECUTION_CONFIG", - "CLUSTER_ASSIGNMENT" + "DESCENDING", + "ASCENDING" ], - "default": "TASK_RESOURCE" + "default": "DESCENDING" } ], "tags": [ "AdminService" ] - }, - "delete": { - "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", - "operationId": "DeleteWorkflowAttributes", + } + }, + "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}": { + "get": { + "summary": "Fetch a :ref:`ref_flyteidl.admin.Workflow` definition.", + "operationId": "GetWorkflow2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/adminWorkflowAttributesDeleteResponse" + "$ref": "#/definitions/adminWorkflow" } } }, "parameters": [ { - "name": "project", - "description": "Unique project id which this set of attributes references.\n+required", + "name": "id.org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, "type": "string" }, { - "name": "domain", - "description": "Unique domain id which this set of attributes references.\n+required", + "name": "id.project", + "description": "Name of the project the resource belongs to.", "in": "path", "required": true, "type": "string" }, { - "name": "workflow", - "description": "Workflow name which this set of attributes references.\n+required", + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", "in": "path", "required": true, "type": "string" }, { - "name": "body", - "in": "body", + "name": "id.name", + "description": "User provided value for the resource.", + "in": "path", "required": true, - "schema": { - "$ref": "#/definitions/adminWorkflowAttributesDeleteRequest" - } + "type": "string" + }, + { + "name": "id.version", + "description": "Specific version of the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.resource_type", + "description": "Identifies the specific type of resource that this identifier corresponds to.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ], + "default": "UNSPECIFIED" } ], "tags": [ @@ -2901,10 +6304,10 @@ ] } }, - "/api/v1/workflow_ids/{project}/{domain}": { + "/api/v1/workflows/org/{org}/{project}/{domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects.", - "operationId": "ListWorkflowIds", + "operationId": "ListWorkflowIds2", "responses": { "200": { "description": "A successful response.", @@ -2914,6 +6317,13 @@ } }, "parameters": [ + { + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, { "name": "project", "description": "Name of the project that contains the identifiers.\n+required", @@ -2975,37 +6385,10 @@ ] } }, - "/api/v1/workflows": { - "post": { - "summary": "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition", - "operationId": "CreateWorkflow", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminWorkflowCreateResponse" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/adminWorkflowCreateRequest" - } - } - ], - "tags": [ - "AdminService" - ] - } - }, "/api/v1/workflows/{id.project}/{id.domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions.", - "operationId": "ListWorkflows2", + "operationId": "ListWorkflows3", "responses": { "200": { "description": "A successful response.", @@ -3036,6 +6419,13 @@ "required": false, "type": "string" }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, { "name": "limit", "description": "Indicates the number of resources to be returned.\n+required.", @@ -3117,6 +6507,13 @@ "required": true, "type": "string" }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, { "name": "limit", "description": "Indicates the number of resources to be returned.\n+required.", @@ -3219,6 +6616,13 @@ "DATASET" ], "default": "UNSPECIFIED" + }, + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ @@ -3839,6 +7243,10 @@ "inputs": { "$ref": "#/definitions/coreLiteralMap", "title": "The inputs required to start the execution. All required inputs must be\nincluded in this map. If not required and not provided, defaults apply.\n+optional" + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "description": "Request to launch an execution with the given project, domain and optionally-assigned name." @@ -4403,9 +7811,13 @@ }, "launch_plan": { "type": "string" + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, - "description": "Represents a custom set of attributes applied for either a domain; a domain and project; or\ndomain, project and workflow name.\nThese are used to override system level defaults for kubernetes cluster resource management,\ndefault execution values, and more all across different levels of specificity." + "description": "Represents a custom set of attributes applied for either a domain (and optional org); a domain and project (and optional org);\nor domain, project and workflow name (and optional org).\nThese are used to override system level defaults for kubernetes cluster resource management,\ndefault execution values, and more all across different levels of specificity." }, "adminMatchableResource": { "type": "string", @@ -4483,6 +7895,10 @@ "name": { "type": "string", "title": "User provided value for the resource.\nThe combination of project + domain + name uniquely identifies the resource.\n+optional - in certain contexts - like 'List API', 'Launch plans'" + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "description": "Encapsulation of fields that identifies a Flyte resource.\nA Flyte resource can be a task, workflow or launch plan.\nA resource can internally have multiple versions and is uniquely identified\nby project, domain, and name." @@ -4796,7 +8212,7 @@ "properties": { "id": { "type": "string", - "description": "Globally unique project name." + "description": "Deprecated, use identifier instead.\nGlobally unique project name." }, "name": { "type": "string", @@ -4817,6 +8233,10 @@ }, "state": { "$ref": "#/definitions/ProjectProjectState" + }, + "identifier": { + "$ref": "#/definitions/adminProjectIdentifier", + "description": "Optional, org key applied to the project." } }, "description": "Top-level namespace used to classify different entities like workflows and executions." @@ -4830,6 +8250,10 @@ }, "matching_attributes": { "$ref": "#/definitions/adminMatchingAttributes" + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the project." } }, "title": "Defines a set of custom matching attributes at the project level.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" @@ -4844,6 +8268,10 @@ "resource_type": { "$ref": "#/definitions/adminMatchableResource", "title": "Which type of matchable attributes to delete.\n+required" + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the project." } }, "title": "Request to delete a set matchable project level attribute override.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" @@ -4888,6 +8316,10 @@ }, "matching_attributes": { "$ref": "#/definitions/adminMatchingAttributes" + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the attributes." } }, "title": "Defines a set of custom matching attributes which defines resource defaults for a project and domain.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" @@ -4906,6 +8338,10 @@ "resource_type": { "$ref": "#/definitions/adminMatchableResource", "title": "Which type of matchable attributes to delete.\n+required" + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the attributes." } }, "title": "Request to delete a set matchable project domain attribute override.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" @@ -4937,6 +8373,19 @@ "type": "object", "description": "Purposefully empty, may be populated in the future." }, + "adminProjectIdentifier": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Globally unique project name." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." + } + } + }, "adminProjectRegisterRequest": { "type": "object", "properties": { @@ -5366,6 +8815,10 @@ }, "matching_attributes": { "$ref": "#/definitions/adminMatchingAttributes" + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the attributes." } }, "title": "Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" @@ -5388,6 +8841,10 @@ "resource_type": { "$ref": "#/definitions/adminMatchableResource", "title": "Which type of matchable attributes to delete.\n+required" + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the attributes." } }, "title": "Request to delete a set matchable workflow attribute override.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" @@ -5612,7 +9069,7 @@ "parallelism": { "type": "integer", "format": "int64", - "description": "parallelism defines the minimum number of instances to bring up concurrently at any given\npoint. Note that this is an optimistic restriction and that, due to network partitioning or\nother failures, the actual number of currently running instances might be more. This has to\nbe a positive number if assigned. Default value is size." + "description": "parallelism defines the minimum number of instances to bring up concurrently at any given\npoint. Note that this is an optimistic restriction and that, due to network orging or\nother failures, the actual number of currently running instances might be more. This has to\nbe a positive number if assigned. Default value is size." }, "min_successes": { "type": "integer", @@ -6200,6 +9657,10 @@ "version": { "type": "string", "description": "Specific version of the resource." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "description": "Encapsulation of fields that uniquely identifies a Flyte resource." @@ -7370,6 +10831,10 @@ "name": { "type": "string", "description": "User or system provided value for the resource." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "title": "Encapsulation of fields that uniquely identifies a Flyte workflow execution" diff --git a/flyteidl/gen/pb-go/flyteidl/service/agent.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/agent.swagger.json index b7eacff5f7..d8a056b268 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/agent.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/agent.swagger.json @@ -597,6 +597,10 @@ "version": { "type": "string", "description": "Specific version of the resource." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "description": "Encapsulation of fields that uniquely identifies a Flyte resource." @@ -1407,6 +1411,10 @@ "name": { "type": "string", "description": "User or system provided value for the resource." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "title": "Encapsulation of fields that uniquely identifies a Flyte workflow execution" diff --git a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json index 0fd08544b3..939f94f862 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json @@ -579,6 +579,10 @@ "name": { "type": "string", "description": "User or system provided value for the resource." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "title": "Encapsulation of fields that uniquely identifies a Flyte workflow execution" diff --git a/flyteidl/gen/pb-go/flyteidl/service/external_plugin_service.pb.go b/flyteidl/gen/pb-go/flyteidl/service/external_plugin_service.pb.go index ab64516b19..ddd75fa855 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/external_plugin_service.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/external_plugin_service.pb.go @@ -371,41 +371,41 @@ func init() { } var fileDescriptor_74cbdb08eef5b1d1 = []byte{ - // 544 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x51, 0x6f, 0xd2, 0x50, - 0x14, 0xb6, 0x9d, 0x1b, 0xe3, 0xcc, 0x4d, 0x76, 0x13, 0x62, 0xc7, 0x34, 0x41, 0xe6, 0xc3, 0x62, - 0xb2, 0x36, 0xb2, 0x07, 0x13, 0x13, 0x63, 0x18, 0x54, 0x24, 0xb2, 0x86, 0x14, 0x78, 0xd0, 0x2c, - 0x69, 0x5a, 0x38, 0x60, 0xb7, 0xae, 0xbd, 0xb6, 0xb7, 0x66, 0xfc, 0x03, 0x7f, 0xca, 0x7e, 0xa6, - 0xb9, 0xf7, 0xb6, 0x1d, 0x30, 0xe5, 0xc1, 0x37, 0x7a, 0xce, 0x77, 0xbe, 0x73, 0xbe, 0xef, 0x9c, - 0x0b, 0xe8, 0xb3, 0x60, 0xc1, 0xd0, 0x9f, 0x06, 0x46, 0x82, 0xf1, 0x2f, 0x7f, 0x82, 0x06, 0xde, - 0x31, 0x8c, 0x43, 0x37, 0x70, 0x68, 0x90, 0xce, 0xfd, 0xd0, 0xc9, 0xe2, 0x3a, 0x8d, 0x23, 0x16, - 0x91, 0x4a, 0x8e, 0xd7, 0xb3, 0x78, 0xed, 0x65, 0xc1, 0x30, 0x89, 0x62, 0x34, 0x02, 0x9f, 0x61, - 0xec, 0x06, 0x89, 0xc4, 0xd7, 0x8e, 0x56, 0xb3, 0xcc, 0x4d, 0x6e, 0xf2, 0xd4, 0xab, 0xd5, 0x94, - 0x1f, 0x32, 0x8c, 0x67, 0x6e, 0xde, 0xa9, 0x71, 0xaf, 0xc0, 0xe1, 0xc8, 0x4d, 0x6e, 0xda, 0x31, - 0xba, 0x0c, 0x6d, 0xfc, 0x99, 0x62, 0xc2, 0xc8, 0x3b, 0xd8, 0xf1, 0x43, 0x9a, 0xb2, 0x44, 0x53, - 0xea, 0xca, 0xe9, 0x5e, 0xf3, 0xa8, 0x10, 0xa0, 0x73, 0x16, 0xbd, 0x2f, 0xdb, 0x5f, 0xba, 0xd4, - 0xce, 0x80, 0xe4, 0x3d, 0xec, 0x32, 0xbc, 0xa5, 0x81, 0xcb, 0x50, 0x53, 0x45, 0xd1, 0xf1, 0x5a, - 0x11, 0x6f, 0x33, 0xca, 0x20, 0x76, 0x01, 0x26, 0x27, 0xb0, 0x1f, 0xa5, 0x8c, 0xa6, 0xcc, 0xa1, - 0x31, 0xce, 0xfc, 0x3b, 0x6d, 0xab, 0xae, 0x9c, 0x96, 0xed, 0x67, 0x32, 0x38, 0x10, 0xb1, 0x0f, - 0xaa, 0xa6, 0x34, 0x0c, 0x20, 0xcb, 0x93, 0x26, 0x34, 0x0a, 0x13, 0x24, 0x55, 0xd8, 0xb9, 0x8e, - 0x3c, 0xc7, 0x9f, 0x8a, 0x51, 0xcb, 0xf6, 0xf6, 0x75, 0xe4, 0xf5, 0xa6, 0xa2, 0xe0, 0x0b, 0x1c, - 0xf0, 0x82, 0x2e, 0xb2, 0x5c, 0xd7, 0x31, 0x94, 0xb9, 0x37, 0x0e, 0x5b, 0x50, 0xcc, 0xf0, 0xbb, - 0x3c, 0x30, 0x5a, 0xd0, 0x65, 0x26, 0x75, 0x9d, 0x69, 0x01, 0xcf, 0x0b, 0xa6, 0xac, 0xef, 0x19, - 0x6c, 0x27, 0x8c, 0x8b, 0xe5, 0x34, 0x07, 0xcd, 0x17, 0xfa, 0xfa, 0xca, 0xf4, 0x21, 0x4f, 0xdb, - 0x12, 0x45, 0xce, 0xa1, 0x24, 0x05, 0x25, 0x99, 0x3b, 0x1b, 0x2c, 0xcd, 0x91, 0xa2, 0xf5, 0x57, - 0xb9, 0x9f, 0x0e, 0x06, 0xf8, 0xb0, 0x9f, 0xff, 0xd5, 0xa1, 0x49, 0x0b, 0x73, 0x32, 0x29, 0x85, - 0x67, 0xde, 0x7a, 0xb0, 0x2d, 0xe6, 0x25, 0x55, 0x38, 0xb4, 0xcd, 0x91, 0xfd, 0xad, 0x75, 0xd1, - 0x37, 0x9d, 0xcf, 0xad, 0x5e, 0x7f, 0x6c, 0x9b, 0x95, 0x27, 0x3c, 0x3c, 0x30, 0xed, 0xcb, 0x96, - 0x65, 0x5a, 0xa3, 0x22, 0xac, 0x90, 0x3d, 0x28, 0x0d, 0x4c, 0xab, 0xd3, 0xb3, 0xba, 0x15, 0x95, - 0x7f, 0xd8, 0x63, 0xcb, 0xe2, 0x1f, 0x5b, 0x64, 0x1f, 0xca, 0xc3, 0x71, 0xbb, 0x6d, 0x9a, 0x1d, - 0xb3, 0x53, 0x79, 0x5a, 0x53, 0x35, 0xa5, 0x79, 0xaf, 0x42, 0xd5, 0xcc, 0xee, 0x7e, 0x20, 0xce, - 0x7e, 0x28, 0xad, 0x22, 0x57, 0x00, 0x72, 0xad, 0x7c, 0x3a, 0x72, 0xf2, 0xd8, 0xcb, 0x47, 0x27, - 0x5a, 0x7b, 0xb3, 0x19, 0x24, 0xa5, 0x35, 0xb6, 0x7e, 0xab, 0x0a, 0x19, 0x42, 0xa9, 0x8b, 0x4c, - 0x50, 0xd7, 0xff, 0x5e, 0xf5, 0x70, 0x22, 0xb5, 0xd7, 0x1b, 0x10, 0xcb, 0xa4, 0x57, 0x00, 0xd2, - 0xc6, 0x4d, 0x23, 0xaf, 0x6c, 0xed, 0x5f, 0x23, 0xaf, 0x6e, 0x43, 0xb0, 0x5f, 0x7c, 0xfa, 0xfe, - 0x71, 0xee, 0xb3, 0x1f, 0xa9, 0xa7, 0x4f, 0xa2, 0x5b, 0x43, 0x94, 0x45, 0xf1, 0x5c, 0xfe, 0x30, - 0x8a, 0x17, 0x3d, 0xc7, 0xd0, 0xa0, 0xde, 0xd9, 0x3c, 0x32, 0xd6, 0xff, 0x5f, 0xbc, 0x1d, 0xf1, - 0xbc, 0xcf, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xda, 0xdb, 0x38, 0x09, 0x7a, 0x04, 0x00, 0x00, + // 534 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x41, 0x6f, 0xda, 0x4c, + 0x10, 0xfd, 0xec, 0x7c, 0x40, 0x98, 0x34, 0x29, 0x59, 0x09, 0xd5, 0x21, 0x3d, 0x50, 0xd2, 0x43, + 0x54, 0x29, 0xb6, 0x4a, 0x0e, 0x95, 0x2a, 0x55, 0x15, 0x01, 0x97, 0xa2, 0x12, 0x0b, 0x2d, 0x70, + 0x68, 0x15, 0xc9, 0xb2, 0x61, 0x42, 0x9d, 0x38, 0x78, 0x6b, 0xaf, 0xab, 0xf0, 0x0f, 0xfa, 0x53, + 0xf2, 0x33, 0xab, 0xdd, 0x35, 0x0e, 0x90, 0x96, 0x43, 0x6f, 0xde, 0x99, 0x37, 0x6f, 0xdf, 0x9b, + 0x99, 0x35, 0x98, 0xd7, 0xe1, 0x82, 0x63, 0x30, 0x0d, 0xad, 0x04, 0xe3, 0x9f, 0xc1, 0x04, 0x2d, + 0xbc, 0xe7, 0x18, 0xcf, 0xbd, 0xd0, 0x65, 0x61, 0x3a, 0x0b, 0xe6, 0x6e, 0x16, 0x37, 0x59, 0x1c, + 0xf1, 0x88, 0x54, 0x96, 0x78, 0x33, 0x8b, 0xd7, 0x5e, 0xe6, 0x0c, 0x93, 0x28, 0x46, 0x2b, 0x0c, + 0x38, 0xc6, 0x5e, 0x98, 0x28, 0x7c, 0xed, 0x68, 0x3d, 0xcb, 0xbd, 0xe4, 0x36, 0x4b, 0x35, 0x1e, + 0x34, 0x38, 0x1c, 0x79, 0xc9, 0x6d, 0x3b, 0x46, 0x8f, 0x23, 0xc5, 0x1f, 0x29, 0x26, 0x9c, 0xbc, + 0x85, 0x62, 0x30, 0x67, 0x29, 0x4f, 0x0c, 0xad, 0xae, 0x9d, 0xee, 0x35, 0x8f, 0x72, 0x85, 0xa6, + 0x60, 0x30, 0xfb, 0x8a, 0xff, 0xd2, 0x63, 0x34, 0x03, 0x92, 0x77, 0xb0, 0xcb, 0xf1, 0x8e, 0x85, + 0x1e, 0x47, 0x43, 0x97, 0x45, 0xc7, 0x1b, 0x45, 0xe2, 0x9a, 0x51, 0x06, 0xa1, 0x39, 0x98, 0x9c, + 0xc0, 0x7e, 0x94, 0x72, 0x96, 0x72, 0x97, 0xc5, 0x78, 0x1d, 0xdc, 0x1b, 0x3b, 0x75, 0xed, 0xb4, + 0x4c, 0x9f, 0xa9, 0xe0, 0x40, 0xc6, 0xde, 0xeb, 0x86, 0xd6, 0xb0, 0x80, 0xac, 0x2a, 0x4d, 0x58, + 0x34, 0x4f, 0x90, 0x54, 0xa1, 0x78, 0x13, 0xf9, 0x6e, 0x30, 0x95, 0x52, 0xcb, 0xb4, 0x70, 0x13, + 0xf9, 0xbd, 0xa9, 0x2c, 0xf8, 0x0c, 0x07, 0xa2, 0xa0, 0x8b, 0x7c, 0xe9, 0xeb, 0x18, 0xca, 0xc2, + 0xbc, 0xcb, 0x17, 0x0c, 0x33, 0xfc, 0xae, 0x08, 0x8c, 0x16, 0x6c, 0x95, 0x49, 0xdf, 0x64, 0x5a, + 0xc0, 0xf3, 0x9c, 0x29, 0xbb, 0xf7, 0x0c, 0x0a, 0x09, 0x17, 0x66, 0x05, 0xcd, 0x41, 0xf3, 0x85, + 0xb9, 0x39, 0x13, 0x73, 0x28, 0xd2, 0x54, 0xa1, 0xc8, 0x39, 0x94, 0x94, 0xa1, 0x24, 0xeb, 0xce, + 0x96, 0x96, 0x2e, 0x91, 0xf2, 0xea, 0x2f, 0x6a, 0x3e, 0x1d, 0x0c, 0xf1, 0x71, 0x3e, 0xff, 0xea, + 0xc3, 0x50, 0x2d, 0x5c, 0x92, 0x29, 0x2b, 0x22, 0xf3, 0xc6, 0x87, 0x82, 0xd4, 0x4b, 0xaa, 0x70, + 0x48, 0xed, 0x11, 0xfd, 0xda, 0xba, 0xe8, 0xdb, 0xee, 0xa7, 0x56, 0xaf, 0x3f, 0xa6, 0x76, 0xe5, + 0x3f, 0x11, 0x1e, 0xd8, 0xf4, 0xb2, 0xe5, 0xd8, 0xce, 0x28, 0x0f, 0x6b, 0x64, 0x0f, 0x4a, 0x03, + 0xdb, 0xe9, 0xf4, 0x9c, 0x6e, 0x45, 0x17, 0x07, 0x3a, 0x76, 0x1c, 0x71, 0xd8, 0x21, 0xfb, 0x50, + 0x1e, 0x8e, 0xdb, 0x6d, 0xdb, 0xee, 0xd8, 0x9d, 0xca, 0xff, 0x35, 0xdd, 0xd0, 0x9a, 0x0f, 0x3a, + 0x54, 0xed, 0x6c, 0xb1, 0x07, 0x72, 0xaf, 0x87, 0xaa, 0x55, 0xe4, 0x0a, 0x40, 0x8d, 0x55, 0xa8, + 0x23, 0x27, 0x4f, 0x7b, 0xf9, 0x64, 0x45, 0x6b, 0xaf, 0xb7, 0x83, 0x94, 0xb5, 0xc6, 0xce, 0x2f, + 0x5d, 0x23, 0x43, 0x28, 0x75, 0x91, 0x4b, 0xea, 0xfa, 0x9f, 0xab, 0x1e, 0x57, 0xa4, 0xf6, 0x6a, + 0x0b, 0x62, 0x95, 0xf4, 0x0a, 0x40, 0xb5, 0x71, 0x9b, 0xe4, 0xb5, 0xa9, 0xfd, 0x4d, 0xf2, 0xfa, + 0x34, 0x24, 0xfb, 0xc5, 0xc7, 0x6f, 0x1f, 0x66, 0x01, 0xff, 0x9e, 0xfa, 0xe6, 0x24, 0xba, 0xb3, + 0x64, 0x59, 0x14, 0xcf, 0xd4, 0x87, 0x95, 0xbf, 0xe6, 0x19, 0xce, 0x2d, 0xe6, 0x9f, 0xcd, 0x22, + 0x6b, 0xf3, 0x07, 0xe2, 0x17, 0xe5, 0xf3, 0x3e, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xd9, 0xdd, + 0xd7, 0x35, 0x5b, 0x04, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/external_plugin_service.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/external_plugin_service.swagger.json index adf61a5c1f..1abbb6085d 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/external_plugin_service.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/external_plugin_service.swagger.json @@ -449,6 +449,10 @@ "version": { "type": "string", "description": "Specific version of the resource." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "description": "Encapsulation of fields that uniquely identifies a Flyte resource." diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md index 5a4f66f46a..e3d647ce62 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md @@ -29,55 +29,100 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**CreateWorkflow**](docs/AdminServiceApi.md#createworkflow) | **Post** /api/v1/workflows | Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition *AdminServiceApi* | [**CreateWorkflowEvent**](docs/AdminServiceApi.md#createworkflowevent) | **Post** /api/v1/events/workflows | Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. *AdminServiceApi* | [**DeleteProjectAttributes**](docs/AdminServiceApi.md#deleteprojectattributes) | **Delete** /api/v1/project_attributes/{project} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**DeleteProjectAttributes2**](docs/AdminServiceApi.md#deleteprojectattributes2) | **Delete** /api/v1/project_domain_attributes/org/{org}/{project} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**DeleteProjectDomainAttributes**](docs/AdminServiceApi.md#deleteprojectdomainattributes) | **Delete** /api/v1/project_domain_attributes/{project}/{domain} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**DeleteProjectDomainAttributes2**](docs/AdminServiceApi.md#deleteprojectdomainattributes2) | **Delete** /api/v1/project_domain_attributes/org/{org}/{project}/{domain} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**DeleteWorkflowAttributes**](docs/AdminServiceApi.md#deleteworkflowattributes) | **Delete** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +*AdminServiceApi* | [**DeleteWorkflowAttributes2**](docs/AdminServiceApi.md#deleteworkflowattributes2) | **Delete** /api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. *AdminServiceApi* | [**GetActiveLaunchPlan**](docs/AdminServiceApi.md#getactivelaunchplan) | **Get** /api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name} | Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**GetActiveLaunchPlan2**](docs/AdminServiceApi.md#getactivelaunchplan2) | **Get** /api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**GetDescriptionEntity**](docs/AdminServiceApi.md#getdescriptionentity) | **Get** /api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. +*AdminServiceApi* | [**GetDescriptionEntity2**](docs/AdminServiceApi.md#getdescriptionentity2) | **Get** /api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. *AdminServiceApi* | [**GetExecution**](docs/AdminServiceApi.md#getexecution) | **Get** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Fetches a :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**GetExecution2**](docs/AdminServiceApi.md#getexecution2) | **Get** /api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetches a :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**GetExecutionData**](docs/AdminServiceApi.md#getexecutiondata) | **Get** /api/v1/data/executions/{id.project}/{id.domain}/{id.name} | Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**GetExecutionData2**](docs/AdminServiceApi.md#getexecutiondata2) | **Get** /api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**GetExecutionMetrics**](docs/AdminServiceApi.md#getexecutionmetrics) | **Get** /api/v1/metrics/executions/{id.project}/{id.domain}/{id.name} | Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**GetExecutionMetrics2**](docs/AdminServiceApi.md#getexecutionmetrics2) | **Get** /api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**GetLaunchPlan**](docs/AdminServiceApi.md#getlaunchplan) | **Get** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. +*AdminServiceApi* | [**GetLaunchPlan2**](docs/AdminServiceApi.md#getlaunchplan2) | **Get** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. *AdminServiceApi* | [**GetNamedEntity**](docs/AdminServiceApi.md#getnamedentity) | **Get** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. +*AdminServiceApi* | [**GetNamedEntity2**](docs/AdminServiceApi.md#getnamedentity2) | **Get** /api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. *AdminServiceApi* | [**GetNodeExecution**](docs/AdminServiceApi.md#getnodeexecution) | **Get** /api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**GetNodeExecution2**](docs/AdminServiceApi.md#getnodeexecution2) | **Get** /api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. *AdminServiceApi* | [**GetNodeExecutionData**](docs/AdminServiceApi.md#getnodeexecutiondata) | **Get** /api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**GetNodeExecutionData2**](docs/AdminServiceApi.md#getnodeexecutiondata2) | **Get** /api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. *AdminServiceApi* | [**GetProjectAttributes**](docs/AdminServiceApi.md#getprojectattributes) | **Get** /api/v1/project_attributes/{project} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**GetProjectAttributes2**](docs/AdminServiceApi.md#getprojectattributes2) | **Get** /api/v1/project_domain_attributes/org/{org}/{project} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**GetProjectDomainAttributes**](docs/AdminServiceApi.md#getprojectdomainattributes) | **Get** /api/v1/project_domain_attributes/{project}/{domain} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**GetProjectDomainAttributes2**](docs/AdminServiceApi.md#getprojectdomainattributes2) | **Get** /api/v1/project_domain_attributes/org/{org}/{project}/{domain} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**GetTask**](docs/AdminServiceApi.md#gettask) | **Get** /api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Task` definition. +*AdminServiceApi* | [**GetTask2**](docs/AdminServiceApi.md#gettask2) | **Get** /api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Task` definition. *AdminServiceApi* | [**GetTaskExecution**](docs/AdminServiceApi.md#gettaskexecution) | **Get** /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} | Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**GetTaskExecution2**](docs/AdminServiceApi.md#gettaskexecution2) | **Get** /api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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} | Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**GetTaskExecutionData**](docs/AdminServiceApi.md#gettaskexecutiondata) | **Get** /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} | Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**GetTaskExecutionData2**](docs/AdminServiceApi.md#gettaskexecutiondata2) | **Get** /api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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} | Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**GetVersion**](docs/AdminServiceApi.md#getversion) | **Get** /api/v1/version | *AdminServiceApi* | [**GetWorkflow**](docs/AdminServiceApi.md#getworkflow) | **Get** /api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. +*AdminServiceApi* | [**GetWorkflow2**](docs/AdminServiceApi.md#getworkflow2) | **Get** /api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. *AdminServiceApi* | [**GetWorkflowAttributes**](docs/AdminServiceApi.md#getworkflowattributes) | **Get** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +*AdminServiceApi* | [**GetWorkflowAttributes2**](docs/AdminServiceApi.md#getworkflowattributes2) | **Get** /api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. *AdminServiceApi* | [**ListActiveLaunchPlans**](docs/AdminServiceApi.md#listactivelaunchplans) | **Get** /api/v1/active_launch_plans/{project}/{domain} | List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**ListDescriptionEntities**](docs/AdminServiceApi.md#listdescriptionentities) | **Get** /api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. -*AdminServiceApi* | [**ListDescriptionEntities2**](docs/AdminServiceApi.md#listdescriptionentities2) | **Get** /api/v1/description_entities/{resource_type}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. +*AdminServiceApi* | [**ListDescriptionEntities2**](docs/AdminServiceApi.md#listdescriptionentities2) | **Get** /api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. +*AdminServiceApi* | [**ListDescriptionEntities3**](docs/AdminServiceApi.md#listdescriptionentities3) | **Get** /api/v1/description_entities/{resource_type}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. +*AdminServiceApi* | [**ListDescriptionEntities4**](docs/AdminServiceApi.md#listdescriptionentities4) | **Get** /api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. *AdminServiceApi* | [**ListExecutions**](docs/AdminServiceApi.md#listexecutions) | **Get** /api/v1/executions/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**ListExecutions2**](docs/AdminServiceApi.md#listexecutions2) | **Get** /api/v1/executions/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**ListLaunchPlanIds**](docs/AdminServiceApi.md#listlaunchplanids) | **Get** /api/v1/launch_plan_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. +*AdminServiceApi* | [**ListLaunchPlanIds2**](docs/AdminServiceApi.md#listlaunchplanids2) | **Get** /api/v1/launch_plan_ids/org/{org}/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. *AdminServiceApi* | [**ListLaunchPlans**](docs/AdminServiceApi.md#listlaunchplans) | **Get** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. -*AdminServiceApi* | [**ListLaunchPlans2**](docs/AdminServiceApi.md#listlaunchplans2) | **Get** /api/v1/launch_plans/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +*AdminServiceApi* | [**ListLaunchPlans2**](docs/AdminServiceApi.md#listlaunchplans2) | **Get** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +*AdminServiceApi* | [**ListLaunchPlans3**](docs/AdminServiceApi.md#listlaunchplans3) | **Get** /api/v1/launch_plans/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +*AdminServiceApi* | [**ListLaunchPlans4**](docs/AdminServiceApi.md#listlaunchplans4) | **Get** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. *AdminServiceApi* | [**ListMatchableAttributes**](docs/AdminServiceApi.md#listmatchableattributes) | **Get** /api/v1/matchable_attributes | Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. *AdminServiceApi* | [**ListNamedEntities**](docs/AdminServiceApi.md#listnamedentities) | **Get** /api/v1/named_entities/{resource_type}/{project}/{domain} | Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. +*AdminServiceApi* | [**ListNamedEntities2**](docs/AdminServiceApi.md#listnamedentities2) | **Get** /api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain} | Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. *AdminServiceApi* | [**ListNodeExecutions**](docs/AdminServiceApi.md#listnodeexecutions) | **Get** /api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**ListNodeExecutions2**](docs/AdminServiceApi.md#listnodeexecutions2) | **Get** /api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. *AdminServiceApi* | [**ListNodeExecutionsForTask**](docs/AdminServiceApi.md#listnodeexecutionsfortask) | **Get** /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} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**ListNodeExecutionsForTask2**](docs/AdminServiceApi.md#listnodeexecutionsfortask2) | **Get** /api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**ListProjects**](docs/AdminServiceApi.md#listprojects) | **Get** /api/v1/projects | Fetches a list of :ref:`ref_flyteidl.admin.Project` *AdminServiceApi* | [**ListTaskExecutions**](docs/AdminServiceApi.md#listtaskexecutions) | **Get** /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} | Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**ListTaskExecutions2**](docs/AdminServiceApi.md#listtaskexecutions2) | **Get** /api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} | Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**ListTaskIds**](docs/AdminServiceApi.md#listtaskids) | **Get** /api/v1/task_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. +*AdminServiceApi* | [**ListTaskIds2**](docs/AdminServiceApi.md#listtaskids2) | **Get** /api/v1/tasks/org/{org}/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. *AdminServiceApi* | [**ListTasks**](docs/AdminServiceApi.md#listtasks) | **Get** /api/v1/tasks/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. -*AdminServiceApi* | [**ListTasks2**](docs/AdminServiceApi.md#listtasks2) | **Get** /api/v1/tasks/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +*AdminServiceApi* | [**ListTasks2**](docs/AdminServiceApi.md#listtasks2) | **Get** /api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +*AdminServiceApi* | [**ListTasks3**](docs/AdminServiceApi.md#listtasks3) | **Get** /api/v1/tasks/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +*AdminServiceApi* | [**ListTasks4**](docs/AdminServiceApi.md#listtasks4) | **Get** /api/v1/tasks/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. *AdminServiceApi* | [**ListWorkflowIds**](docs/AdminServiceApi.md#listworkflowids) | **Get** /api/v1/workflow_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. +*AdminServiceApi* | [**ListWorkflowIds2**](docs/AdminServiceApi.md#listworkflowids2) | **Get** /api/v1/workflows/org/{org}/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. *AdminServiceApi* | [**ListWorkflows**](docs/AdminServiceApi.md#listworkflows) | **Get** /api/v1/workflows/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. -*AdminServiceApi* | [**ListWorkflows2**](docs/AdminServiceApi.md#listworkflows2) | **Get** /api/v1/workflows/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +*AdminServiceApi* | [**ListWorkflows2**](docs/AdminServiceApi.md#listworkflows2) | **Get** /api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +*AdminServiceApi* | [**ListWorkflows3**](docs/AdminServiceApi.md#listworkflows3) | **Get** /api/v1/workflows/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +*AdminServiceApi* | [**ListWorkflows4**](docs/AdminServiceApi.md#listworkflows4) | **Get** /api/v1/workflows/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. *AdminServiceApi* | [**RecoverExecution**](docs/AdminServiceApi.md#recoverexecution) | **Post** /api/v1/executions/recover | 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. *AdminServiceApi* | [**RegisterProject**](docs/AdminServiceApi.md#registerproject) | **Post** /api/v1/projects | Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. *AdminServiceApi* | [**RelaunchExecution**](docs/AdminServiceApi.md#relaunchexecution) | **Post** /api/v1/executions/relaunch | Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` *AdminServiceApi* | [**TerminateExecution**](docs/AdminServiceApi.md#terminateexecution) | **Delete** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**TerminateExecution2**](docs/AdminServiceApi.md#terminateexecution2) | **Delete** /api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**UpdateExecution**](docs/AdminServiceApi.md#updateexecution) | **Put** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**UpdateExecution2**](docs/AdminServiceApi.md#updateexecution2) | **Put** /api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**UpdateLaunchPlan**](docs/AdminServiceApi.md#updatelaunchplan) | **Put** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**UpdateLaunchPlan2**](docs/AdminServiceApi.md#updatelaunchplan2) | **Put** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**UpdateNamedEntity**](docs/AdminServiceApi.md#updatenamedentity) | **Put** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. -*AdminServiceApi* | [**UpdateProject**](docs/AdminServiceApi.md#updateproject) | **Put** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**UpdateNamedEntity2**](docs/AdminServiceApi.md#updatenamedentity2) | **Put** /api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. +*AdminServiceApi* | [**UpdateProject**](docs/AdminServiceApi.md#updateproject) | **Put** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**UpdateProject2**](docs/AdminServiceApi.md#updateproject2) | **Put** /api/v1/projects/{identifier.id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**UpdateProject3**](docs/AdminServiceApi.md#updateproject3) | **Put** /api/v1/projects/org/{identifier.org}/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**UpdateProject4**](docs/AdminServiceApi.md#updateproject4) | **Put** /api/v1/projects/org/{identifier.org}/{identifier.id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. *AdminServiceApi* | [**UpdateProjectAttributes**](docs/AdminServiceApi.md#updateprojectattributes) | **Put** /api/v1/project_attributes/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level +*AdminServiceApi* | [**UpdateProjectAttributes2**](docs/AdminServiceApi.md#updateprojectattributes2) | **Put** /api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level *AdminServiceApi* | [**UpdateProjectDomainAttributes**](docs/AdminServiceApi.md#updateprojectdomainattributes) | **Put** /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**UpdateProjectDomainAttributes2**](docs/AdminServiceApi.md#updateprojectdomainattributes2) | **Put** /api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**UpdateWorkflowAttributes**](docs/AdminServiceApi.md#updateworkflowattributes) | **Put** /api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +*AdminServiceApi* | [**UpdateWorkflowAttributes2**](docs/AdminServiceApi.md#updateworkflowattributes2) | **Put** /api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. ## Documentation For Models @@ -165,6 +210,7 @@ Class | Method | HTTP request | Description - [AdminProjectDomainAttributesGetResponse](docs/AdminProjectDomainAttributesGetResponse.md) - [AdminProjectDomainAttributesUpdateRequest](docs/AdminProjectDomainAttributesUpdateRequest.md) - [AdminProjectDomainAttributesUpdateResponse](docs/AdminProjectDomainAttributesUpdateResponse.md) + - [AdminProjectIdentifier](docs/AdminProjectIdentifier.md) - [AdminProjectRegisterRequest](docs/AdminProjectRegisterRequest.md) - [AdminProjectRegisterResponse](docs/AdminProjectRegisterResponse.md) - [AdminProjectUpdateResponse](docs/AdminProjectUpdateResponse.md) diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index 392faa0aab..9000f5d714 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -11,6 +11,45 @@ consumes: produces: - "application/json" paths: + /api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}: + get: + tags: + - "AdminService" + summary: "Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`." + operationId: "GetActiveLaunchPlan2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'" + required: true + type: "string" + x-exportParamName: "IdName" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminLaunchPlan" /api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}: get: tags: @@ -39,6 +78,13 @@ paths: required: true type: "string" x-exportParamName: "IdName" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" responses: 200: description: "A successful response." @@ -100,11 +146,163 @@ paths: - "ASCENDING" x-exportParamName: "SortByDirection" x-optionalDataType: "String" + - name: "org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "Org" + x-optionalDataType: "String" responses: 200: description: "A successful response." schema: $ref: "#/definitions/adminLaunchPlanList" + ? /api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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} + : get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by\ + \ the reference :ref:`ref_flyteidl.admin.TaskExecution`." + operationId: "ListNodeExecutionsForTask2" + parameters: + - name: "task_execution_id.node_execution_id.execution_id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "TaskExecutionIdNodeExecutionIdExecutionIdOrg" + - name: "task_execution_id.node_execution_id.execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "TaskExecutionIdNodeExecutionIdExecutionIdProject" + - name: "task_execution_id.node_execution_id.execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "TaskExecutionIdNodeExecutionIdExecutionIdDomain" + - name: "task_execution_id.node_execution_id.execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "TaskExecutionIdNodeExecutionIdExecutionIdName" + - name: "task_execution_id.node_execution_id.node_id" + in: "path" + required: true + type: "string" + x-exportParamName: "TaskExecutionIdNodeExecutionIdNodeId" + - name: "task_execution_id.task_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "TaskExecutionIdTaskIdProject" + - name: "task_execution_id.task_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "TaskExecutionIdTaskIdDomain" + - name: "task_execution_id.task_id.name" + in: "path" + description: "User provided value for the resource." + required: true + type: "string" + x-exportParamName: "TaskExecutionIdTaskIdName" + - name: "task_execution_id.task_id.version" + in: "path" + description: "Specific version of the resource." + required: true + type: "string" + x-exportParamName: "TaskExecutionIdTaskIdVersion" + - name: "task_execution_id.retry_attempt" + in: "path" + required: true + type: "integer" + format: "int64" + x-exportParamName: "TaskExecutionIdRetryAttempt" + - name: "task_execution_id.task_id.resource_type" + in: "query" + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to.\n\n - DATASET: A dataset represents an entity modeled\ + \ in Flyte DataCatalog. A Dataset is also a versioned entity and can be\ + \ a compilation of multiple individual objects.\nEventually all Catalog\ + \ objects should be modeled similar to Flyte Objects. The Dataset entities\ + \ makes it possible for the UI and CLI to act on the objects \nin a similar\ + \ manner to other Flyte objects" + required: false + type: "string" + default: "UNSPECIFIED" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "TaskExecutionIdTaskIdResourceType" + x-optionalDataType: "String" + - name: "task_execution_id.task_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "TaskExecutionIdTaskIdOrg" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, the, server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNodeExecutionList" ? /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} : get: tags: @@ -188,6 +386,20 @@ paths: - "DATASET" x-exportParamName: "TaskExecutionIdTaskIdResourceType" x-optionalDataType: "String" + - name: "task_execution_id.task_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "TaskExecutionIdTaskIdOrg" + x-optionalDataType: "String" + - name: "task_execution_id.node_execution_id.execution_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "TaskExecutionIdNodeExecutionIdExecutionIdOrg" + x-optionalDataType: "String" - name: "limit" in: "query" description: "Indicates the number of resources to be returned.\n+required." @@ -237,6 +449,85 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminNodeExecutionList" + /api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}: + get: + tags: + - "AdminService" + summary: "Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`." + operationId: "GetExecutionData2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminWorkflowExecutionGetDataResponse" + delete: + tags: + - "AdminService" + summary: "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`." + operationId: "TerminateExecution2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminExecutionTerminateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminExecutionTerminateResponse" /api/v1/data/executions/{id.project}/{id.domain}/{id.name}: get: tags: @@ -263,11 +554,60 @@ paths: required: true type: "string" x-exportParamName: "IdName" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" responses: 200: description: "A successful response." schema: $ref: "#/definitions/adminWorkflowExecutionGetDataResponse" + ? /api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} + : get: + tags: + - "AdminService" + summary: "Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`." + operationId: "GetNodeExecutionData2" + parameters: + - name: "id.execution_id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdExecutionIdOrg" + - name: "id.execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdExecutionIdProject" + - name: "id.execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdExecutionIdDomain" + - name: "id.execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdExecutionIdName" + - name: "id.node_id" + in: "path" + required: true + type: "string" + x-exportParamName: "IdNodeId" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNodeExecutionGetDataResponse" /api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}: get: tags: @@ -299,11 +639,118 @@ paths: required: true type: "string" x-exportParamName: "IdNodeId" + - name: "id.execution_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdExecutionIdOrg" + x-optionalDataType: "String" responses: 200: description: "A successful response." schema: $ref: "#/definitions/adminNodeExecutionGetDataResponse" + ? /api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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} + : get: + tags: + - "AdminService" + summary: "Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`." + operationId: "GetTaskExecutionData2" + parameters: + - name: "id.node_execution_id.execution_id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdOrg" + - name: "id.node_execution_id.execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdProject" + - name: "id.node_execution_id.execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdDomain" + - name: "id.node_execution_id.execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdName" + - name: "id.node_execution_id.node_id" + in: "path" + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdNodeId" + - name: "id.task_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdTaskIdProject" + - name: "id.task_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdTaskIdDomain" + - name: "id.task_id.name" + in: "path" + description: "User provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdTaskIdName" + - name: "id.task_id.version" + in: "path" + description: "Specific version of the resource." + required: true + type: "string" + x-exportParamName: "IdTaskIdVersion" + - name: "id.retry_attempt" + in: "path" + required: true + type: "integer" + format: "int64" + x-exportParamName: "IdRetryAttempt" + - name: "id.task_id.resource_type" + in: "query" + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to.\n\n - DATASET: A dataset represents an entity modeled\ + \ in Flyte DataCatalog. A Dataset is also a versioned entity and can be\ + \ a compilation of multiple individual objects.\nEventually all Catalog\ + \ objects should be modeled similar to Flyte Objects. The Dataset entities\ + \ makes it possible for the UI and CLI to act on the objects \nin a similar\ + \ manner to other Flyte objects" + required: false + type: "string" + default: "UNSPECIFIED" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "IdTaskIdResourceType" + x-optionalDataType: "String" + - name: "id.task_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdTaskIdOrg" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminTaskExecutionGetDataResponse" ? /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} : get: tags: @@ -386,11 +833,81 @@ paths: - "DATASET" x-exportParamName: "IdTaskIdResourceType" x-optionalDataType: "String" + - name: "id.task_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdTaskIdOrg" + x-optionalDataType: "String" + - name: "id.node_execution_id.execution_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdOrg" + x-optionalDataType: "String" responses: 200: description: "A successful response." schema: $ref: "#/definitions/adminTaskExecutionGetDataResponse" + /api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}: + get: + tags: + - "AdminService" + summary: "Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object." + operationId: "GetDescriptionEntity2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.resource_type" + in: "path" + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to." + required: true + type: "string" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "IdResourceType" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + - name: "id.version" + in: "path" + description: "Specific version of the resource." + required: true + type: "string" + x-exportParamName: "IdVersion" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminDescriptionEntity" /api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}: get: tags: @@ -436,17 +953,24 @@ paths: required: true type: "string" x-exportParamName: "IdVersion" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" responses: 200: description: "A successful response." schema: $ref: "#/definitions/adminDescriptionEntity" - /api/v1/description_entities/{resource_type}/{id.project}/{id.domain}: + /api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}: get: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions." - operationId: "ListDescriptionEntities2" + operationId: "ListDescriptionEntities4" parameters: - name: "resource_type" in: "path" @@ -461,6 +985,12 @@ paths: - "LAUNCH_PLAN" - "DATASET" x-exportParamName: "ResourceType" + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" - name: "id.project" in: "path" description: "Name of the project the resource belongs to." @@ -532,12 +1062,12 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminDescriptionEntityList" - /api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}: + /api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}: get: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions." - operationId: "ListDescriptionEntities" + operationId: "ListDescriptionEntities2" parameters: - name: "resource_type" in: "path" @@ -552,6 +1082,12 @@ paths: - "LAUNCH_PLAN" - "DATASET" x-exportParamName: "ResourceType" + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" - name: "id.project" in: "path" description: "Name of the project the resource belongs to." @@ -622,37 +1158,232 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminDescriptionEntityList" - /api/v1/events/nodes: - post: + /api/v1/description_entities/{resource_type}/{id.project}/{id.domain}: + get: tags: - "AdminService" - summary: "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred." - operationId: "CreateNodeEvent" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions." + operationId: "ListDescriptionEntities3" parameters: - - in: "body" - name: "body" + - name: "resource_type" + in: "path" + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to." required: true - schema: - $ref: "#/definitions/adminNodeExecutionEventRequest" - x-exportParamName: "Body" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminNodeExecutionEventResponse" - /api/v1/events/tasks: - post: - tags: - - "AdminService" - summary: "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred." - operationId: "CreateTaskEvent" - parameters: - - in: "body" - name: "body" + type: "string" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "ResourceType" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." required: true - schema: - $ref: "#/definitions/adminTaskExecutionEventRequest" - x-exportParamName: "Body" + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "query" + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'." + required: false + type: "string" + x-exportParamName: "IdName" + x-optionalDataType: "String" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, the server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminDescriptionEntityList" + /api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions." + operationId: "ListDescriptionEntities" + parameters: + - name: "resource_type" + in: "path" + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to." + required: true + type: "string" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "ResourceType" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'" + required: true + type: "string" + x-exportParamName: "IdName" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, the server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminDescriptionEntityList" + /api/v1/events/nodes: + post: + tags: + - "AdminService" + summary: "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred." + operationId: "CreateNodeEvent" + parameters: + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminNodeExecutionEventRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNodeExecutionEventResponse" + /api/v1/events/tasks: + post: + tags: + - "AdminService" + summary: "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred." + operationId: "CreateTaskEvent" + parameters: + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminTaskExecutionEventRequest" + x-exportParamName: "Body" responses: 200: description: "A successful response." @@ -694,6 +1425,169 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminExecutionCreateResponse" + /api/v1/executions/org/{id.org}/{id.project}/{id.domain}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Execution`." + operationId: "ListExecutions2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "query" + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'." + required: false + type: "string" + x-exportParamName: "IdName" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, this server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminExecutionList" + /api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}: + get: + tags: + - "AdminService" + summary: "Fetches a :ref:`ref_flyteidl.admin.Execution`." + operationId: "GetExecution2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminExecution" + put: + tags: + - "AdminService" + summary: "Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`." + operationId: "UpdateExecution2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminExecutionUpdateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminExecutionUpdateResponse" /api/v1/executions/recover: post: tags: @@ -766,6 +1660,13 @@ paths: type: "string" x-exportParamName: "IdName" x-optionalDataType: "String" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" - name: "limit" in: "query" description: "Indicates the number of resources to be returned.\n+required." @@ -841,6 +1742,13 @@ paths: required: true type: "string" x-exportParamName: "IdName" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" responses: 200: description: "A successful response." @@ -918,6 +1826,81 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminExecutionTerminateResponse" + /api/v1/launch_plan_ids/org/{org}/{project}/{domain}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ + \ launch plan objects." + operationId: "ListLaunchPlanIds2" + parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "Org" + - name: "project" + in: "path" + description: "Name of the project that contains the identifiers.\n+required" + required: true + type: "string" + x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Name of the domain the identifiers belongs to within the project.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Domain" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, the server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNamedEntityIdentifierList" /api/v1/launch_plan_ids/{project}/{domain}: get: tags: @@ -982,6 +1965,13 @@ paths: type: "string" x-exportParamName: "Filters" x-optionalDataType: "String" + - name: "org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "Org" + x-optionalDataType: "String" responses: 200: description: "A successful response." @@ -1005,13 +1995,19 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminLaunchPlanCreateResponse" - /api/v1/launch_plans/{id.project}/{id.domain}: + /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}: get: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions." - operationId: "ListLaunchPlans2" + operationId: "ListLaunchPlans4" parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" - name: "id.project" in: "path" description: "Name of the project the resource belongs to." @@ -1083,13 +2079,19 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminLaunchPlanList" - /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}: + /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}: get: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions." - operationId: "ListLaunchPlans" + operationId: "ListLaunchPlans2" parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" - name: "id.project" in: "path" description: "Name of the project the resource belongs to." @@ -1160,13 +2162,19 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminLaunchPlanList" - /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}: + /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}: get: tags: - "AdminService" summary: "Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition." - operationId: "GetLaunchPlan" + operationId: "GetLaunchPlan2" parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" - name: "id.project" in: "path" description: "Name of the project the resource belongs to." @@ -1221,8 +2229,14 @@ paths: tags: - "AdminService" summary: "Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`." - operationId: "UpdateLaunchPlan" + operationId: "UpdateLaunchPlan2" parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" - name: "id.project" in: "path" description: "Name of the project the resource belongs to." @@ -1248,63 +2262,17 @@ paths: required: true type: "string" x-exportParamName: "IdVersion" - - in: "body" - name: "body" - required: true - schema: - $ref: "#/definitions/adminLaunchPlanUpdateRequest" - x-exportParamName: "Body" responses: 200: description: "A successful response." schema: $ref: "#/definitions/adminLaunchPlanUpdateResponse" - /api/v1/matchable_attributes: - get: - tags: - - "AdminService" - summary: "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ - \ for a specific resource type." - operationId: "ListMatchableAttributes" - parameters: - - name: "resource_type" - in: "query" - description: "+required.\n\n - TASK_RESOURCE: Applies to customizable task\ - \ resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring\ - \ templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures\ - \ task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL:\ - \ Configures the K8s cluster label to be used for execution to be run\n\ - \ - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service\ - \ when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable\ - \ plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG:\ - \ Adds defaults for customizable workflow-execution specifications and overrides.\n\ - \ - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which\ - \ this execution should run." - required: false - type: "string" - default: "TASK_RESOURCE" - enum: - - "TASK_RESOURCE" - - "CLUSTER_RESOURCE" - - "EXECUTION_QUEUE" - - "EXECUTION_CLUSTER_LABEL" - - "QUALITY_OF_SERVICE_SPECIFICATION" - - "PLUGIN_OVERRIDE" - - "WORKFLOW_EXECUTION_CONFIG" - - "CLUSTER_ASSIGNMENT" - x-exportParamName: "ResourceType" - x-optionalDataType: "String" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminListMatchableAttributesResponse" - /api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}: + /api/v1/launch_plans/{id.project}/{id.domain}: get: tags: - "AdminService" - summary: "Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`." - operationId: "GetExecutionMetrics" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions." + operationId: "ListLaunchPlans3" parameters: - name: "id.project" in: "path" @@ -1320,18 +2288,339 @@ paths: type: "string" x-exportParamName: "IdDomain" - name: "id.name" - in: "path" - description: "User or system provided value for the resource." - required: true + in: "query" + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'." + required: false type: "string" x-exportParamName: "IdName" - - name: "depth" + x-optionalDataType: "String" + - name: "id.org" in: "query" - description: "depth defines the number of Flyte entity levels to traverse\ - \ when breaking down execution details." + description: "Optional, org key applied to the resource." required: false - type: "integer" - format: "int32" + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, this server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminLaunchPlanList" + /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions." + operationId: "ListLaunchPlans" + parameters: + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'" + required: true + type: "string" + x-exportParamName: "IdName" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, this server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminLaunchPlanList" + /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}: + get: + tags: + - "AdminService" + summary: "Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition." + operationId: "GetLaunchPlan" + parameters: + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + - name: "id.version" + in: "path" + description: "Specific version of the resource." + required: true + type: "string" + x-exportParamName: "IdVersion" + - name: "id.resource_type" + in: "query" + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to.\n\n - DATASET: A dataset represents an entity modeled\ + \ in Flyte DataCatalog. A Dataset is also a versioned entity and can be\ + \ a compilation of multiple individual objects.\nEventually all Catalog\ + \ objects should be modeled similar to Flyte Objects. The Dataset entities\ + \ makes it possible for the UI and CLI to act on the objects \nin a similar\ + \ manner to other Flyte objects" + required: false + type: "string" + default: "UNSPECIFIED" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "IdResourceType" + x-optionalDataType: "String" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminLaunchPlan" + put: + tags: + - "AdminService" + summary: "Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`." + operationId: "UpdateLaunchPlan" + parameters: + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + - name: "id.version" + in: "path" + description: "Specific version of the resource." + required: true + type: "string" + x-exportParamName: "IdVersion" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminLaunchPlanUpdateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminLaunchPlanUpdateResponse" + /api/v1/matchable_attributes: + get: + tags: + - "AdminService" + summary: "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a specific resource type." + operationId: "ListMatchableAttributes" + parameters: + - name: "resource_type" + in: "query" + description: "+required.\n\n - TASK_RESOURCE: Applies to customizable task\ + \ resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring\ + \ templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures\ + \ task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL:\ + \ Configures the K8s cluster label to be used for execution to be run\n\ + \ - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service\ + \ when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable\ + \ plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG:\ + \ Adds defaults for customizable workflow-execution specifications and overrides.\n\ + \ - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which\ + \ this execution should run." + required: false + type: "string" + default: "TASK_RESOURCE" + enum: + - "TASK_RESOURCE" + - "CLUSTER_RESOURCE" + - "EXECUTION_QUEUE" + - "EXECUTION_CLUSTER_LABEL" + - "QUALITY_OF_SERVICE_SPECIFICATION" + - "PLUGIN_OVERRIDE" + - "WORKFLOW_EXECUTION_CONFIG" + - "CLUSTER_ASSIGNMENT" + x-exportParamName: "ResourceType" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminListMatchableAttributesResponse" + /api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}: + get: + tags: + - "AdminService" + summary: "Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`." + operationId: "GetExecutionMetrics2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + - name: "depth" + in: "query" + description: "depth defines the number of Flyte entity levels to traverse\ + \ when breaking down execution details." + required: false + type: "integer" + format: "int32" x-exportParamName: "Depth" x-optionalDataType: "Int32" responses: @@ -1339,12 +2628,59 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminWorkflowExecutionGetMetricsResponse" - /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}: + /api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}: + get: + tags: + - "AdminService" + summary: "Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`." + operationId: "GetExecutionMetrics" + parameters: + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" + - name: "depth" + in: "query" + description: "depth defines the number of Flyte entity levels to traverse\ + \ when breaking down execution details." + required: false + type: "integer" + format: "int32" + x-exportParamName: "Depth" + x-optionalDataType: "Int32" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminWorkflowExecutionGetMetricsResponse" + /api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}: get: tags: - "AdminService" summary: "Returns a :ref:`ref_flyteidl.admin.NamedEntity` object." - operationId: "GetNamedEntity" + operationId: "GetNamedEntity2" parameters: - name: "resource_type" in: "path" @@ -1359,6 +2695,12 @@ paths: - "LAUNCH_PLAN" - "DATASET" x-exportParamName: "ResourceType" + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" - name: "id.project" in: "path" description: "Name of the project the resource belongs to." @@ -1389,7 +2731,7 @@ paths: tags: - "AdminService" summary: "Updates a :ref:`ref_flyteidl.admin.NamedEntity` object." - operationId: "UpdateNamedEntity" + operationId: "UpdateNamedEntity2" parameters: - name: "resource_type" in: "path" @@ -1403,6 +2745,12 @@ paths: - "LAUNCH_PLAN" - "DATASET" x-exportParamName: "ResourceType" + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" - name: "id.project" in: "path" description: "Name of the project the resource belongs to." @@ -1435,12 +2783,12 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminNamedEntityUpdateResponse" - /api/v1/named_entities/{resource_type}/{project}/{domain}: + /api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}: get: tags: - "AdminService" summary: "Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects." - operationId: "ListNamedEntities" + operationId: "ListNamedEntities2" parameters: - name: "resource_type" in: "path" @@ -1455,6 +2803,12 @@ paths: - "LAUNCH_PLAN" - "DATASET" x-exportParamName: "ResourceType" + - name: "org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "Org" - name: "project" in: "path" description: "Name of the project that contains the identifiers.\n+required" @@ -1515,71 +2869,144 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminNamedEntityList" - /api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}: + /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}: get: tags: - "AdminService" - summary: "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`." - operationId: "GetNodeExecution" + summary: "Returns a :ref:`ref_flyteidl.admin.NamedEntity` object." + operationId: "GetNamedEntity" parameters: - - name: "id.execution_id.project" + - name: "resource_type" + in: "path" + description: "Resource type of the metadata to get. One of Task, Workflow\ + \ or LaunchPlan.\n+required" + required: true + type: "string" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "ResourceType" + - name: "id.project" in: "path" description: "Name of the project the resource belongs to." required: true type: "string" - x-exportParamName: "IdExecutionIdProject" - - name: "id.execution_id.domain" + x-exportParamName: "IdProject" + - name: "id.domain" in: "path" description: "Name of the domain the resource belongs to.\nA domain can be\ \ considered as a subset within a specific project." required: true type: "string" - x-exportParamName: "IdExecutionIdDomain" - - name: "id.execution_id.name" + x-exportParamName: "IdDomain" + - name: "id.name" in: "path" - description: "User or system provided value for the resource." + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'" required: true type: "string" - x-exportParamName: "IdExecutionIdName" - - name: "id.node_id" - in: "path" - required: true + x-exportParamName: "IdName" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false type: "string" - x-exportParamName: "IdNodeId" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" responses: 200: description: "A successful response." schema: - $ref: "#/definitions/flyteidladminNodeExecution" - /api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}: - get: + $ref: "#/definitions/adminNamedEntity" + put: tags: - "AdminService" - summary: "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`." - operationId: "ListNodeExecutions" + summary: "Updates a :ref:`ref_flyteidl.admin.NamedEntity` object." + operationId: "UpdateNamedEntity" parameters: - - name: "workflow_execution_id.project" + - name: "resource_type" + in: "path" + description: "Resource type of the metadata to update\n+required" + required: true + type: "string" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "ResourceType" + - name: "id.project" in: "path" description: "Name of the project the resource belongs to." required: true type: "string" - x-exportParamName: "WorkflowExecutionIdProject" - - name: "workflow_execution_id.domain" + x-exportParamName: "IdProject" + - name: "id.domain" in: "path" description: "Name of the domain the resource belongs to.\nA domain can be\ \ considered as a subset within a specific project." required: true type: "string" - x-exportParamName: "WorkflowExecutionIdDomain" - - name: "workflow_execution_id.name" + x-exportParamName: "IdDomain" + - name: "id.name" in: "path" - description: "User or system provided value for the resource." + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'" required: true type: "string" - x-exportParamName: "WorkflowExecutionIdName" + x-exportParamName: "IdName" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminNamedEntityUpdateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNamedEntityUpdateResponse" + /api/v1/named_entities/{resource_type}/{project}/{domain}: + get: + tags: + - "AdminService" + summary: "Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects." + operationId: "ListNamedEntities" + parameters: + - name: "resource_type" + in: "path" + description: "Resource type of the metadata to query. One of Task, Workflow\ + \ or LaunchPlan.\n+required" + required: true + type: "string" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "ResourceType" + - name: "project" + in: "path" + description: "Name of the project that contains the identifiers.\n+required" + required: true + type: "string" + x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Name of the domain the identifiers belongs to within the project." + required: true + type: "string" + x-exportParamName: "Domain" - name: "limit" in: "query" - description: "Indicates the number of resources to be returned.\n+required." + description: "Indicates the number of resources to be returned." required: false type: "integer" format: "int64" @@ -1587,18 +3014,12 @@ paths: x-optionalDataType: "Int64" - name: "token" in: "query" + description: "In the case of multiple pages of results, the server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." required: false type: "string" x-exportParamName: "Token" x-optionalDataType: "String" - - name: "filters" - in: "query" - description: "Indicates a list of filters passed as string.\nMore info on\ - \ constructing filters : \n+optional." - required: false - type: "string" - x-exportParamName: "Filters" - x-optionalDataType: "String" - name: "sort_by.key" in: "query" description: "Indicates an attribute to sort the response values.\n+required." @@ -1613,57 +3034,2036 @@ paths: \ order." required: false type: "string" - default: "DESCENDING" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "Org" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNamedEntityList" + ? /api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} + : get: + tags: + - "AdminService" + summary: "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`." + operationId: "GetNodeExecution2" + parameters: + - name: "id.execution_id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdExecutionIdOrg" + - name: "id.execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdExecutionIdProject" + - name: "id.execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdExecutionIdDomain" + - name: "id.execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdExecutionIdName" + - name: "id.node_id" + in: "path" + required: true + type: "string" + x-exportParamName: "IdNodeId" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/flyteidladminNodeExecution" + ? /api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} + : get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`." + operationId: "ListNodeExecutions2" + parameters: + - name: "workflow_execution_id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "WorkflowExecutionIdOrg" + - name: "workflow_execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "WorkflowExecutionIdProject" + - name: "workflow_execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "WorkflowExecutionIdDomain" + - name: "workflow_execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "WorkflowExecutionIdName" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + - name: "unique_parent_id" + in: "query" + description: "Unique identifier of the parent node in the execution\n+optional." + required: false + type: "string" + x-exportParamName: "UniqueParentId" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNodeExecutionList" + /api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}: + get: + tags: + - "AdminService" + summary: "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`." + operationId: "GetNodeExecution" + parameters: + - name: "id.execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdExecutionIdProject" + - name: "id.execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdExecutionIdDomain" + - name: "id.execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdExecutionIdName" + - name: "id.node_id" + in: "path" + required: true + type: "string" + x-exportParamName: "IdNodeId" + - name: "id.execution_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdExecutionIdOrg" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/flyteidladminNodeExecution" + /api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`." + operationId: "ListNodeExecutions" + parameters: + - name: "workflow_execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "WorkflowExecutionIdProject" + - name: "workflow_execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "WorkflowExecutionIdDomain" + - name: "workflow_execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "WorkflowExecutionIdName" + - name: "workflow_execution_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "WorkflowExecutionIdOrg" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + - name: "unique_parent_id" + in: "query" + description: "Unique identifier of the parent node in the execution\n+optional." + required: false + type: "string" + x-exportParamName: "UniqueParentId" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNodeExecutionList" + /api/v1/project_attributes/{attributes.project}: + put: + tags: + - "AdminService" + summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ at the project level" + operationId: "UpdateProjectAttributes" + parameters: + - name: "attributes.project" + in: "path" + description: "Unique project id for which this set of attributes will be applied." + required: true + type: "string" + x-exportParamName: "AttributesProject" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProjectAttributesUpdateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectAttributesUpdateResponse" + /api/v1/project_attributes/{project}: + get: + tags: + - "AdminService" + summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." + operationId: "GetProjectAttributes" + parameters: + - name: "project" + in: "path" + description: "Unique project id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Project" + - name: "resource_type" + in: "query" + description: "Which type of matchable attributes to return.\n+required.\n\n\ + \ - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n\ + \ - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster\ + \ resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution\ + \ queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster\ + \ label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION:\ + \ Configures default quality of service when undefined in an execution spec.\n\ + \ - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior\ + \ for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for\ + \ customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT:\ + \ Controls how to select an available cluster on which this execution should\ + \ run." + required: false + type: "string" + default: "TASK_RESOURCE" + enum: + - "TASK_RESOURCE" + - "CLUSTER_RESOURCE" + - "EXECUTION_QUEUE" + - "EXECUTION_CLUSTER_LABEL" + - "QUALITY_OF_SERVICE_SPECIFICATION" + - "PLUGIN_OVERRIDE" + - "WORKFLOW_EXECUTION_CONFIG" + - "CLUSTER_ASSIGNMENT" + x-exportParamName: "ResourceType" + x-optionalDataType: "String" + - name: "org" + in: "query" + description: "Optional, org key applied to the project." + required: false + type: "string" + x-exportParamName: "Org" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectAttributesGetResponse" + delete: + tags: + - "AdminService" + summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." + operationId: "DeleteProjectAttributes" + parameters: + - name: "project" + in: "path" + description: "Unique project id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Project" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProjectAttributesDeleteRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectAttributesDeleteResponse" + /api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}: + put: + tags: + - "AdminService" + summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ at the project level" + operationId: "UpdateProjectAttributes2" + parameters: + - name: "attributes.org" + in: "path" + description: "Optional, org key applied to the project." + required: true + type: "string" + x-exportParamName: "AttributesOrg" + - name: "attributes.project" + in: "path" + description: "Unique project id for which this set of attributes will be applied." + required: true + type: "string" + x-exportParamName: "AttributesProject" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProjectAttributesUpdateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectAttributesUpdateResponse" + /api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}: + put: + tags: + - "AdminService" + summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." + operationId: "UpdateProjectDomainAttributes2" + parameters: + - name: "attributes.org" + in: "path" + description: "Optional, org key applied to the attributes." + required: true + type: "string" + x-exportParamName: "AttributesOrg" + - name: "attributes.project" + in: "path" + description: "Unique project id for which this set of attributes will be applied." + required: true + type: "string" + x-exportParamName: "AttributesProject" + - name: "attributes.domain" + in: "path" + description: "Unique domain id for which this set of attributes will be applied." + required: true + type: "string" + x-exportParamName: "AttributesDomain" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProjectDomainAttributesUpdateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectDomainAttributesUpdateResponse" + /api/v1/project_domain_attributes/org/{org}/{project}: + get: + tags: + - "AdminService" + summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." + operationId: "GetProjectAttributes2" + parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the project." + required: true + type: "string" + x-exportParamName: "Org" + - name: "project" + in: "path" + description: "Unique project id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Project" + - name: "resource_type" + in: "query" + description: "Which type of matchable attributes to return.\n+required.\n\n\ + \ - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n\ + \ - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster\ + \ resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution\ + \ queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster\ + \ label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION:\ + \ Configures default quality of service when undefined in an execution spec.\n\ + \ - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior\ + \ for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for\ + \ customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT:\ + \ Controls how to select an available cluster on which this execution should\ + \ run." + required: false + type: "string" + default: "TASK_RESOURCE" + enum: + - "TASK_RESOURCE" + - "CLUSTER_RESOURCE" + - "EXECUTION_QUEUE" + - "EXECUTION_CLUSTER_LABEL" + - "QUALITY_OF_SERVICE_SPECIFICATION" + - "PLUGIN_OVERRIDE" + - "WORKFLOW_EXECUTION_CONFIG" + - "CLUSTER_ASSIGNMENT" + x-exportParamName: "ResourceType" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectAttributesGetResponse" + delete: + tags: + - "AdminService" + summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." + operationId: "DeleteProjectAttributes2" + parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the project." + required: true + type: "string" + x-exportParamName: "Org" + - name: "project" + in: "path" + description: "Unique project id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Project" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProjectAttributesDeleteRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectAttributesDeleteResponse" + /api/v1/project_domain_attributes/org/{org}/{project}/{domain}: + get: + tags: + - "AdminService" + summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." + operationId: "GetProjectDomainAttributes2" + parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the attributes." + required: true + type: "string" + x-exportParamName: "Org" + - name: "project" + in: "path" + description: "Unique project id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Unique domain id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Domain" + - name: "resource_type" + in: "query" + description: "Which type of matchable attributes to return.\n+required.\n\n\ + \ - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n\ + \ - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster\ + \ resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution\ + \ queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster\ + \ label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION:\ + \ Configures default quality of service when undefined in an execution spec.\n\ + \ - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior\ + \ for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for\ + \ customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT:\ + \ Controls how to select an available cluster on which this execution should\ + \ run." + required: false + type: "string" + default: "TASK_RESOURCE" + enum: + - "TASK_RESOURCE" + - "CLUSTER_RESOURCE" + - "EXECUTION_QUEUE" + - "EXECUTION_CLUSTER_LABEL" + - "QUALITY_OF_SERVICE_SPECIFICATION" + - "PLUGIN_OVERRIDE" + - "WORKFLOW_EXECUTION_CONFIG" + - "CLUSTER_ASSIGNMENT" + x-exportParamName: "ResourceType" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectDomainAttributesGetResponse" + delete: + tags: + - "AdminService" + summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." + operationId: "DeleteProjectDomainAttributes2" + parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the attributes." + required: true + type: "string" + x-exportParamName: "Org" + - name: "project" + in: "path" + description: "Unique project id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Unique domain id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Domain" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProjectDomainAttributesDeleteRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectDomainAttributesDeleteResponse" + /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}: + put: + tags: + - "AdminService" + summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." + operationId: "UpdateProjectDomainAttributes" + parameters: + - name: "attributes.project" + in: "path" + description: "Unique project id for which this set of attributes will be applied." + required: true + type: "string" + x-exportParamName: "AttributesProject" + - name: "attributes.domain" + in: "path" + description: "Unique domain id for which this set of attributes will be applied." + required: true + type: "string" + x-exportParamName: "AttributesDomain" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProjectDomainAttributesUpdateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectDomainAttributesUpdateResponse" + /api/v1/project_domain_attributes/{project}/{domain}: + get: + tags: + - "AdminService" + summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." + operationId: "GetProjectDomainAttributes" + parameters: + - name: "project" + in: "path" + description: "Unique project id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Unique domain id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Domain" + - name: "resource_type" + in: "query" + description: "Which type of matchable attributes to return.\n+required.\n\n\ + \ - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n\ + \ - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster\ + \ resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution\ + \ queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster\ + \ label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION:\ + \ Configures default quality of service when undefined in an execution spec.\n\ + \ - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior\ + \ for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for\ + \ customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT:\ + \ Controls how to select an available cluster on which this execution should\ + \ run." + required: false + type: "string" + default: "TASK_RESOURCE" + enum: + - "TASK_RESOURCE" + - "CLUSTER_RESOURCE" + - "EXECUTION_QUEUE" + - "EXECUTION_CLUSTER_LABEL" + - "QUALITY_OF_SERVICE_SPECIFICATION" + - "PLUGIN_OVERRIDE" + - "WORKFLOW_EXECUTION_CONFIG" + - "CLUSTER_ASSIGNMENT" + x-exportParamName: "ResourceType" + x-optionalDataType: "String" + - name: "org" + in: "query" + description: "Optional, org key applied to the attributes." + required: false + type: "string" + x-exportParamName: "Org" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectDomainAttributesGetResponse" + delete: + tags: + - "AdminService" + summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." + operationId: "DeleteProjectDomainAttributes" + parameters: + - name: "project" + in: "path" + description: "Unique project id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Unique domain id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Domain" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProjectDomainAttributesDeleteRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectDomainAttributesDeleteResponse" + /api/v1/projects: + get: + tags: + - "AdminService" + summary: "Fetches a list of :ref:`ref_flyteidl.admin.Project`" + operationId: "ListProjects" + parameters: + - name: "limit" + in: "query" + description: "Indicates the number of projects to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, this server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjects" + post: + tags: + - "AdminService" + summary: "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment." + operationId: "RegisterProject" + parameters: + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProjectRegisterRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectRegisterResponse" + /api/v1/projects/org/{identifier.org}/{identifier.id}: + put: + tags: + - "AdminService" + summary: "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project\ + \ should be passed but the domains property should be empty;\nit will be ignored\ + \ in the handler as domains cannot be updated via this API." + operationId: "UpdateProject4" + parameters: + - name: "identifier.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdentifierOrg" + - name: "identifier.id" + in: "path" + description: "Globally unique project name." + required: true + type: "string" + x-exportParamName: "IdentifierId" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProject" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectUpdateResponse" + /api/v1/projects/org/{identifier.org}/{id}: + put: + tags: + - "AdminService" + summary: "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project\ + \ should be passed but the domains property should be empty;\nit will be ignored\ + \ in the handler as domains cannot be updated via this API." + operationId: "UpdateProject3" + parameters: + - name: "identifier.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdentifierOrg" + - name: "id" + in: "path" + description: "Deprecated, use identifier instead.\nGlobally unique project\ + \ name." + required: true + type: "string" + x-exportParamName: "Id" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProject" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectUpdateResponse" + /api/v1/projects/{identifier.id}: + put: + tags: + - "AdminService" + summary: "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project\ + \ should be passed but the domains property should be empty;\nit will be ignored\ + \ in the handler as domains cannot be updated via this API." + operationId: "UpdateProject2" + parameters: + - name: "identifier.id" + in: "path" + description: "Globally unique project name." + required: true + type: "string" + x-exportParamName: "IdentifierId" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProject" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectUpdateResponse" + /api/v1/projects/{id}: + put: + tags: + - "AdminService" + summary: "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project\ + \ should be passed but the domains property should be empty;\nit will be ignored\ + \ in the handler as domains cannot be updated via this API." + operationId: "UpdateProject" + parameters: + - name: "id" + in: "path" + description: "Deprecated, use identifier instead.\nGlobally unique project\ + \ name." + required: true + type: "string" + x-exportParamName: "Id" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProject" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectUpdateResponse" + ? /api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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} + : get: + tags: + - "AdminService" + summary: "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`." + operationId: "GetTaskExecution2" + parameters: + - name: "id.node_execution_id.execution_id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdOrg" + - name: "id.node_execution_id.execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdProject" + - name: "id.node_execution_id.execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdDomain" + - name: "id.node_execution_id.execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdName" + - name: "id.node_execution_id.node_id" + in: "path" + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdNodeId" + - name: "id.task_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdTaskIdProject" + - name: "id.task_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdTaskIdDomain" + - name: "id.task_id.name" + in: "path" + description: "User provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdTaskIdName" + - name: "id.task_id.version" + in: "path" + description: "Specific version of the resource." + required: true + type: "string" + x-exportParamName: "IdTaskIdVersion" + - name: "id.retry_attempt" + in: "path" + required: true + type: "integer" + format: "int64" + x-exportParamName: "IdRetryAttempt" + - name: "id.task_id.resource_type" + in: "query" + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to.\n\n - DATASET: A dataset represents an entity modeled\ + \ in Flyte DataCatalog. A Dataset is also a versioned entity and can be\ + \ a compilation of multiple individual objects.\nEventually all Catalog\ + \ objects should be modeled similar to Flyte Objects. The Dataset entities\ + \ makes it possible for the UI and CLI to act on the objects \nin a similar\ + \ manner to other Flyte objects" + required: false + type: "string" + default: "UNSPECIFIED" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "IdTaskIdResourceType" + x-optionalDataType: "String" + - name: "id.task_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdTaskIdOrg" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/flyteidladminTaskExecution" + ? /api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} + : get: + tags: + - "AdminService" + summary: "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`." + operationId: "ListTaskExecutions2" + parameters: + - name: "node_execution_id.execution_id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "NodeExecutionIdExecutionIdOrg" + - name: "node_execution_id.execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "NodeExecutionIdExecutionIdProject" + - name: "node_execution_id.execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "NodeExecutionIdExecutionIdDomain" + - name: "node_execution_id.execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "NodeExecutionIdExecutionIdName" + - name: "node_execution_id.node_id" + in: "path" + required: true + type: "string" + x-exportParamName: "NodeExecutionIdNodeId" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, the server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminTaskExecutionList" + ? /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} + : get: + tags: + - "AdminService" + summary: "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`." + operationId: "GetTaskExecution" + parameters: + - name: "id.node_execution_id.execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdProject" + - name: "id.node_execution_id.execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdDomain" + - name: "id.node_execution_id.execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdName" + - name: "id.node_execution_id.node_id" + in: "path" + required: true + type: "string" + x-exportParamName: "IdNodeExecutionIdNodeId" + - name: "id.task_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdTaskIdProject" + - name: "id.task_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdTaskIdDomain" + - name: "id.task_id.name" + in: "path" + description: "User provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdTaskIdName" + - name: "id.task_id.version" + in: "path" + description: "Specific version of the resource." + required: true + type: "string" + x-exportParamName: "IdTaskIdVersion" + - name: "id.retry_attempt" + in: "path" + required: true + type: "integer" + format: "int64" + x-exportParamName: "IdRetryAttempt" + - name: "id.task_id.resource_type" + in: "query" + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to.\n\n - DATASET: A dataset represents an entity modeled\ + \ in Flyte DataCatalog. A Dataset is also a versioned entity and can be\ + \ a compilation of multiple individual objects.\nEventually all Catalog\ + \ objects should be modeled similar to Flyte Objects. The Dataset entities\ + \ makes it possible for the UI and CLI to act on the objects \nin a similar\ + \ manner to other Flyte objects" + required: false + type: "string" + default: "UNSPECIFIED" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "IdTaskIdResourceType" + x-optionalDataType: "String" + - name: "id.task_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdTaskIdOrg" + x-optionalDataType: "String" + - name: "id.node_execution_id.execution_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdNodeExecutionIdExecutionIdOrg" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/flyteidladminTaskExecution" + ? /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} + : get: + tags: + - "AdminService" + summary: "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`." + operationId: "ListTaskExecutions" + parameters: + - name: "node_execution_id.execution_id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "NodeExecutionIdExecutionIdProject" + - name: "node_execution_id.execution_id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "NodeExecutionIdExecutionIdDomain" + - name: "node_execution_id.execution_id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "NodeExecutionIdExecutionIdName" + - name: "node_execution_id.node_id" + in: "path" + required: true + type: "string" + x-exportParamName: "NodeExecutionIdNodeId" + - name: "node_execution_id.execution_id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "NodeExecutionIdExecutionIdOrg" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, the server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminTaskExecutionList" + /api/v1/task_ids/{project}/{domain}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ + \ task objects." + operationId: "ListTaskIds" + parameters: + - name: "project" + in: "path" + description: "Name of the project that contains the identifiers.\n+required" + required: true + type: "string" + x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Name of the domain the identifiers belongs to within the project.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Domain" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, the server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "Org" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNamedEntityIdentifierList" + /api/v1/tasks: + post: + tags: + - "AdminService" + summary: "Create and upload a :ref:`ref_flyteidl.admin.Task` definition" + operationId: "CreateTask" + parameters: + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/flyteidladminTaskCreateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/flyteidladminTaskCreateResponse" + /api/v1/tasks/org/{id.org}/{id.project}/{id.domain}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." + operationId: "ListTasks4" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "query" + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'." + required: false + type: "string" + x-exportParamName: "IdName" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, this server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminTaskList" + /api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." + operationId: "ListTasks2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'" + required: true + type: "string" + x-exportParamName: "IdName" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, this server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminTaskList" + /api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}: + get: + tags: + - "AdminService" + summary: "Fetch a :ref:`ref_flyteidl.admin.Task` definition." + operationId: "GetTask2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + - name: "id.version" + in: "path" + description: "Specific version of the resource." + required: true + type: "string" + x-exportParamName: "IdVersion" + - name: "id.resource_type" + in: "query" + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to.\n\n - DATASET: A dataset represents an entity modeled\ + \ in Flyte DataCatalog. A Dataset is also a versioned entity and can be\ + \ a compilation of multiple individual objects.\nEventually all Catalog\ + \ objects should be modeled similar to Flyte Objects. The Dataset entities\ + \ makes it possible for the UI and CLI to act on the objects \nin a similar\ + \ manner to other Flyte objects" + required: false + type: "string" + default: "UNSPECIFIED" + enum: + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "IdResourceType" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminTask" + /api/v1/tasks/org/{org}/{project}/{domain}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ + \ task objects." + operationId: "ListTaskIds2" + parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "Org" + - name: "project" + in: "path" + description: "Name of the project that contains the identifiers.\n+required" + required: true + type: "string" + x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Name of the domain the identifiers belongs to within the project.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Domain" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, the server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNamedEntityIdentifierList" + /api/v1/tasks/{id.project}/{id.domain}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." + operationId: "ListTasks3" + parameters: + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "query" + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'." + required: false + type: "string" + x-exportParamName: "IdName" + x-optionalDataType: "String" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, this server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminTaskList" + /api/v1/tasks/{id.project}/{id.domain}/{id.name}: + get: + tags: + - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." + operationId: "ListTasks" + parameters: + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'" + required: true + type: "string" + x-exportParamName: "IdName" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, this server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminTaskList" + /api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}: + get: + tags: + - "AdminService" + summary: "Fetch a :ref:`ref_flyteidl.admin.Task` definition." + operationId: "GetTask" + parameters: + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + - name: "id.version" + in: "path" + description: "Specific version of the resource." + required: true + type: "string" + x-exportParamName: "IdVersion" + - name: "id.resource_type" + in: "query" + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to.\n\n - DATASET: A dataset represents an entity modeled\ + \ in Flyte DataCatalog. A Dataset is also a versioned entity and can be\ + \ a compilation of multiple individual objects.\nEventually all Catalog\ + \ objects should be modeled similar to Flyte Objects. The Dataset entities\ + \ makes it possible for the UI and CLI to act on the objects \nin a similar\ + \ manner to other Flyte objects" + required: false + type: "string" + default: "UNSPECIFIED" enum: - - "DESCENDING" - - "ASCENDING" - x-exportParamName: "SortByDirection" + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "IdResourceType" x-optionalDataType: "String" - - name: "unique_parent_id" + - name: "id.org" in: "query" - description: "Unique identifier of the parent node in the execution\n+optional." + description: "Optional, org key applied to the resource." required: false type: "string" - x-exportParamName: "UniqueParentId" + x-exportParamName: "IdOrg" x-optionalDataType: "String" responses: 200: description: "A successful response." schema: - $ref: "#/definitions/adminNodeExecutionList" - /api/v1/project_attributes/{attributes.project}: + $ref: "#/definitions/adminTask" + /api/v1/version: + get: + tags: + - "AdminService" + operationId: "GetVersion" + parameters: [] + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminGetVersionResponse" + /api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}: put: tags: - "AdminService" summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ - \ at the project level" - operationId: "UpdateProjectAttributes" + \ for a project, domain and workflow." + operationId: "UpdateWorkflowAttributes2" parameters: + - name: "attributes.org" + in: "path" + description: "Optional, org key applied to the attributes." + required: true + type: "string" + x-exportParamName: "AttributesOrg" - name: "attributes.project" in: "path" description: "Unique project id for which this set of attributes will be applied." required: true type: "string" x-exportParamName: "AttributesProject" + - name: "attributes.domain" + in: "path" + description: "Unique domain id for which this set of attributes will be applied." + required: true + type: "string" + x-exportParamName: "AttributesDomain" + - name: "attributes.workflow" + in: "path" + description: "Workflow name for which this set of attributes will be applied." + required: true + type: "string" + x-exportParamName: "AttributesWorkflow" - in: "body" name: "body" required: true schema: - $ref: "#/definitions/adminProjectAttributesUpdateRequest" + $ref: "#/definitions/adminWorkflowAttributesUpdateRequest" x-exportParamName: "Body" responses: 200: description: "A successful response." schema: - $ref: "#/definitions/adminProjectAttributesUpdateResponse" - /api/v1/project_attributes/{project}: + $ref: "#/definitions/adminWorkflowAttributesUpdateResponse" + /api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}: get: tags: - "AdminService" summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ - \ for a project and domain." - operationId: "GetProjectAttributes" + \ for a project, domain and workflow." + operationId: "GetWorkflowAttributes2" parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the attributes." + required: true + type: "string" + x-exportParamName: "Org" - name: "project" in: "path" description: "Unique project id which this set of attributes references.\n\ @@ -1671,6 +5071,19 @@ paths: required: true type: "string" x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Unique domain id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Domain" + - name: "workflow" + in: "path" + description: "Workflow name which this set of attributes references.\n+required" + required: true + type: "string" + x-exportParamName: "Workflow" - name: "resource_type" in: "query" description: "Which type of matchable attributes to return.\n+required.\n\n\ @@ -1703,14 +5116,20 @@ paths: 200: description: "A successful response." schema: - $ref: "#/definitions/adminProjectAttributesGetResponse" + $ref: "#/definitions/adminWorkflowAttributesGetResponse" delete: tags: - "AdminService" summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ - \ for a project and domain." - operationId: "DeleteProjectAttributes" + \ for a project, domain and workflow." + operationId: "DeleteWorkflowAttributes2" parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the attributes." + required: true + type: "string" + x-exportParamName: "Org" - name: "project" in: "path" description: "Unique project id which this set of attributes references.\n\ @@ -1718,24 +5137,37 @@ paths: required: true type: "string" x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Unique domain id which this set of attributes references.\n\ + +required" + required: true + type: "string" + x-exportParamName: "Domain" + - name: "workflow" + in: "path" + description: "Workflow name which this set of attributes references.\n+required" + required: true + type: "string" + x-exportParamName: "Workflow" - in: "body" name: "body" required: true schema: - $ref: "#/definitions/adminProjectAttributesDeleteRequest" + $ref: "#/definitions/adminWorkflowAttributesDeleteRequest" x-exportParamName: "Body" responses: 200: description: "A successful response." schema: - $ref: "#/definitions/adminProjectAttributesDeleteResponse" - /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}: + $ref: "#/definitions/adminWorkflowAttributesDeleteResponse" + /api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}: put: tags: - "AdminService" summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ - \ for a project and domain." - operationId: "UpdateProjectDomainAttributes" + \ for a project, domain and workflow." + operationId: "UpdateWorkflowAttributes" parameters: - name: "attributes.project" in: "path" @@ -1749,24 +5181,30 @@ paths: required: true type: "string" x-exportParamName: "AttributesDomain" + - name: "attributes.workflow" + in: "path" + description: "Workflow name for which this set of attributes will be applied." + required: true + type: "string" + x-exportParamName: "AttributesWorkflow" - in: "body" name: "body" required: true schema: - $ref: "#/definitions/adminProjectDomainAttributesUpdateRequest" + $ref: "#/definitions/adminWorkflowAttributesUpdateRequest" x-exportParamName: "Body" responses: 200: description: "A successful response." schema: - $ref: "#/definitions/adminProjectDomainAttributesUpdateResponse" - /api/v1/project_domain_attributes/{project}/{domain}: + $ref: "#/definitions/adminWorkflowAttributesUpdateResponse" + /api/v1/workflow_attributes/{project}/{domain}/{workflow}: get: tags: - "AdminService" summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ - \ for a project and domain." - operationId: "GetProjectDomainAttributes" + \ for a project, domain and workflow." + operationId: "GetWorkflowAttributes" parameters: - name: "project" in: "path" @@ -1782,6 +5220,12 @@ paths: required: true type: "string" x-exportParamName: "Domain" + - name: "workflow" + in: "path" + description: "Workflow name which this set of attributes references.\n+required" + required: true + type: "string" + x-exportParamName: "Workflow" - name: "resource_type" in: "query" description: "Which type of matchable attributes to return.\n+required.\n\n\ @@ -1810,17 +5254,24 @@ paths: - "CLUSTER_ASSIGNMENT" x-exportParamName: "ResourceType" x-optionalDataType: "String" + - name: "org" + in: "query" + description: "Optional, org key applied to the attributes." + required: false + type: "string" + x-exportParamName: "Org" + x-optionalDataType: "String" responses: 200: description: "A successful response." schema: - $ref: "#/definitions/adminProjectDomainAttributesGetResponse" + $ref: "#/definitions/adminWorkflowAttributesGetResponse" delete: tags: - "AdminService" summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ - \ for a project and domain." - operationId: "DeleteProjectDomainAttributes" + \ for a project, domain and workflow." + operationId: "DeleteWorkflowAttributes" parameters: - name: "project" in: "path" @@ -1836,290 +5287,30 @@ paths: required: true type: "string" x-exportParamName: "Domain" - - in: "body" - name: "body" - required: true - schema: - $ref: "#/definitions/adminProjectDomainAttributesDeleteRequest" - x-exportParamName: "Body" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminProjectDomainAttributesDeleteResponse" - /api/v1/projects: - get: - tags: - - "AdminService" - summary: "Fetches a list of :ref:`ref_flyteidl.admin.Project`" - operationId: "ListProjects" - parameters: - - name: "limit" - in: "query" - description: "Indicates the number of projects to be returned.\n+required." - required: false - type: "integer" - format: "int64" - x-exportParamName: "Limit" - x-optionalDataType: "Int64" - - name: "token" - in: "query" - description: "In the case of multiple pages of results, this server-provided\ - \ token can be used to fetch the next page\nin a query.\n+optional." - required: false - type: "string" - x-exportParamName: "Token" - x-optionalDataType: "String" - - name: "filters" - in: "query" - description: "Indicates a list of filters passed as string.\nMore info on\ - \ constructing filters : \n+optional." - required: false - type: "string" - x-exportParamName: "Filters" - x-optionalDataType: "String" - - name: "sort_by.key" - in: "query" - description: "Indicates an attribute to sort the response values.\n+required." - required: false - type: "string" - x-exportParamName: "SortByKey" - x-optionalDataType: "String" - - name: "sort_by.direction" - in: "query" - description: "Indicates the direction to apply sort key for response values.\n\ - +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ - \ order." - required: false - type: "string" - default: "DESCENDING" - enum: - - "DESCENDING" - - "ASCENDING" - x-exportParamName: "SortByDirection" - x-optionalDataType: "String" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminProjects" - post: - tags: - - "AdminService" - summary: "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment." - operationId: "RegisterProject" - parameters: - - in: "body" - name: "body" - required: true - schema: - $ref: "#/definitions/adminProjectRegisterRequest" - x-exportParamName: "Body" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminProjectRegisterResponse" - /api/v1/projects/{id}: - put: - tags: - - "AdminService" - summary: "Updates an existing :ref:`ref_flyteidl.admin.Project` \nflyteidl.admin.Project\ - \ should be passed but the domains property should be empty;\nit will be ignored\ - \ in the handler as domains cannot be updated via this API." - operationId: "UpdateProject" - parameters: - - name: "id" + - name: "workflow" in: "path" - description: "Globally unique project name." + description: "Workflow name which this set of attributes references.\n+required" required: true type: "string" - x-exportParamName: "Id" + x-exportParamName: "Workflow" - in: "body" name: "body" required: true schema: - $ref: "#/definitions/adminProject" + $ref: "#/definitions/adminWorkflowAttributesDeleteRequest" x-exportParamName: "Body" responses: 200: description: "A successful response." schema: - $ref: "#/definitions/adminProjectUpdateResponse" - ? /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} - : get: - tags: - - "AdminService" - summary: "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`." - operationId: "GetTaskExecution" - parameters: - - name: "id.node_execution_id.execution_id.project" - in: "path" - description: "Name of the project the resource belongs to." - required: true - type: "string" - x-exportParamName: "IdNodeExecutionIdExecutionIdProject" - - name: "id.node_execution_id.execution_id.domain" - in: "path" - description: "Name of the domain the resource belongs to.\nA domain can be\ - \ considered as a subset within a specific project." - required: true - type: "string" - x-exportParamName: "IdNodeExecutionIdExecutionIdDomain" - - name: "id.node_execution_id.execution_id.name" - in: "path" - description: "User or system provided value for the resource." - required: true - type: "string" - x-exportParamName: "IdNodeExecutionIdExecutionIdName" - - name: "id.node_execution_id.node_id" - in: "path" - required: true - type: "string" - x-exportParamName: "IdNodeExecutionIdNodeId" - - name: "id.task_id.project" - in: "path" - description: "Name of the project the resource belongs to." - required: true - type: "string" - x-exportParamName: "IdTaskIdProject" - - name: "id.task_id.domain" - in: "path" - description: "Name of the domain the resource belongs to.\nA domain can be\ - \ considered as a subset within a specific project." - required: true - type: "string" - x-exportParamName: "IdTaskIdDomain" - - name: "id.task_id.name" - in: "path" - description: "User provided value for the resource." - required: true - type: "string" - x-exportParamName: "IdTaskIdName" - - name: "id.task_id.version" - in: "path" - description: "Specific version of the resource." - required: true - type: "string" - x-exportParamName: "IdTaskIdVersion" - - name: "id.retry_attempt" - in: "path" - required: true - type: "integer" - format: "int64" - x-exportParamName: "IdRetryAttempt" - - name: "id.task_id.resource_type" - in: "query" - description: "Identifies the specific type of resource that this identifier\ - \ corresponds to.\n\n - DATASET: A dataset represents an entity modeled\ - \ in Flyte DataCatalog. A Dataset is also a versioned entity and can be\ - \ a compilation of multiple individual objects.\nEventually all Catalog\ - \ objects should be modeled similar to Flyte Objects. The Dataset entities\ - \ makes it possible for the UI and CLI to act on the objects \nin a similar\ - \ manner to other Flyte objects" - required: false - type: "string" - default: "UNSPECIFIED" - enum: - - "UNSPECIFIED" - - "TASK" - - "WORKFLOW" - - "LAUNCH_PLAN" - - "DATASET" - x-exportParamName: "IdTaskIdResourceType" - x-optionalDataType: "String" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/flyteidladminTaskExecution" - ? /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} - : get: - tags: - - "AdminService" - summary: "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`." - operationId: "ListTaskExecutions" - parameters: - - name: "node_execution_id.execution_id.project" - in: "path" - description: "Name of the project the resource belongs to." - required: true - type: "string" - x-exportParamName: "NodeExecutionIdExecutionIdProject" - - name: "node_execution_id.execution_id.domain" - in: "path" - description: "Name of the domain the resource belongs to.\nA domain can be\ - \ considered as a subset within a specific project." - required: true - type: "string" - x-exportParamName: "NodeExecutionIdExecutionIdDomain" - - name: "node_execution_id.execution_id.name" - in: "path" - description: "User or system provided value for the resource." - required: true - type: "string" - x-exportParamName: "NodeExecutionIdExecutionIdName" - - name: "node_execution_id.node_id" - in: "path" - required: true - type: "string" - x-exportParamName: "NodeExecutionIdNodeId" - - name: "limit" - in: "query" - description: "Indicates the number of resources to be returned.\n+required." - required: false - type: "integer" - format: "int64" - x-exportParamName: "Limit" - x-optionalDataType: "Int64" - - name: "token" - in: "query" - description: "In the case of multiple pages of results, the server-provided\ - \ token can be used to fetch the next page\nin a query.\n+optional." - required: false - type: "string" - x-exportParamName: "Token" - x-optionalDataType: "String" - - name: "filters" - in: "query" - description: "Indicates a list of filters passed as string.\nMore info on\ - \ constructing filters : \n+optional." - required: false - type: "string" - x-exportParamName: "Filters" - x-optionalDataType: "String" - - name: "sort_by.key" - in: "query" - description: "Indicates an attribute to sort the response values.\n+required." - required: false - type: "string" - x-exportParamName: "SortByKey" - x-optionalDataType: "String" - - name: "sort_by.direction" - in: "query" - description: "Indicates the direction to apply sort key for response values.\n\ - +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ - \ order." - required: false - type: "string" - default: "DESCENDING" - enum: - - "DESCENDING" - - "ASCENDING" - x-exportParamName: "SortByDirection" - x-optionalDataType: "String" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminTaskExecutionList" - /api/v1/task_ids/{project}/{domain}: + $ref: "#/definitions/adminWorkflowAttributesDeleteResponse" + /api/v1/workflow_ids/{project}/{domain}: get: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ - \ task objects." - operationId: "ListTaskIds" + \ workflow objects." + operationId: "ListWorkflowIds" parameters: - name: "project" in: "path" @@ -2177,36 +5368,49 @@ paths: type: "string" x-exportParamName: "Filters" x-optionalDataType: "String" + - name: "org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "Org" + x-optionalDataType: "String" responses: 200: description: "A successful response." schema: $ref: "#/definitions/adminNamedEntityIdentifierList" - /api/v1/tasks: + /api/v1/workflows: post: tags: - "AdminService" - summary: "Create and upload a :ref:`ref_flyteidl.admin.Task` definition" - operationId: "CreateTask" + summary: "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition" + operationId: "CreateWorkflow" parameters: - in: "body" name: "body" required: true schema: - $ref: "#/definitions/flyteidladminTaskCreateRequest" + $ref: "#/definitions/adminWorkflowCreateRequest" x-exportParamName: "Body" responses: 200: description: "A successful response." schema: - $ref: "#/definitions/flyteidladminTaskCreateResponse" - /api/v1/tasks/{id.project}/{id.domain}: + $ref: "#/definitions/adminWorkflowCreateResponse" + /api/v1/workflows/org/{id.org}/{id.project}/{id.domain}: get: tags: - "AdminService" - summary: "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." - operationId: "ListTasks2" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions." + operationId: "ListWorkflows4" parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" - name: "id.project" in: "path" description: "Name of the project the resource belongs to." @@ -2277,91 +5481,20 @@ paths: 200: description: "A successful response." schema: - $ref: "#/definitions/adminTaskList" - /api/v1/tasks/{id.project}/{id.domain}/{id.name}: - get: - tags: - - "AdminService" - summary: "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." - operationId: "ListTasks" - parameters: - - name: "id.project" - in: "path" - description: "Name of the project the resource belongs to." - required: true - type: "string" - x-exportParamName: "IdProject" - - name: "id.domain" - in: "path" - description: "Name of the domain the resource belongs to.\nA domain can be\ - \ considered as a subset within a specific project." - required: true - type: "string" - x-exportParamName: "IdDomain" - - name: "id.name" - in: "path" - description: "User provided value for the resource.\nThe combination of project\ - \ + domain + name uniquely identifies the resource.\n+optional - in certain\ - \ contexts - like 'List API', 'Launch plans'" - required: true - type: "string" - x-exportParamName: "IdName" - - name: "limit" - in: "query" - description: "Indicates the number of resources to be returned.\n+required." - required: false - type: "integer" - format: "int64" - x-exportParamName: "Limit" - x-optionalDataType: "Int64" - - name: "token" - in: "query" - description: "In the case of multiple pages of results, this server-provided\ - \ token can be used to fetch the next page\nin a query.\n+optional." - required: false - type: "string" - x-exportParamName: "Token" - x-optionalDataType: "String" - - name: "filters" - in: "query" - description: "Indicates a list of filters passed as string.\nMore info on\ - \ constructing filters : \n+optional." - required: false - type: "string" - x-exportParamName: "Filters" - x-optionalDataType: "String" - - name: "sort_by.key" - in: "query" - description: "Indicates an attribute to sort the response values.\n+required." - required: false - type: "string" - x-exportParamName: "SortByKey" - x-optionalDataType: "String" - - name: "sort_by.direction" - in: "query" - description: "Indicates the direction to apply sort key for response values.\n\ - +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ - \ order." - required: false - type: "string" - default: "DESCENDING" - enum: - - "DESCENDING" - - "ASCENDING" - x-exportParamName: "SortByDirection" - x-optionalDataType: "String" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminTaskList" - /api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}: + $ref: "#/definitions/adminWorkflowList" + /api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}: get: tags: - "AdminService" - summary: "Fetch a :ref:`ref_flyteidl.admin.Task` definition." - operationId: "GetTask" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions." + operationId: "ListWorkflows2" parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" - name: "id.project" in: "path" description: "Name of the project the resource belongs to." @@ -2377,196 +5510,138 @@ paths: x-exportParamName: "IdDomain" - name: "id.name" in: "path" - description: "User provided value for the resource." + description: "User provided value for the resource.\nThe combination of project\ + \ + domain + name uniquely identifies the resource.\n+optional - in certain\ + \ contexts - like 'List API', 'Launch plans'" required: true type: "string" x-exportParamName: "IdName" - - name: "id.version" - in: "path" - description: "Specific version of the resource." - required: true + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, this server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false type: "string" - x-exportParamName: "IdVersion" - - name: "id.resource_type" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" in: "query" - description: "Identifies the specific type of resource that this identifier\ - \ corresponds to.\n\n - DATASET: A dataset represents an entity modeled\ - \ in Flyte DataCatalog. A Dataset is also a versioned entity and can be\ - \ a compilation of multiple individual objects.\nEventually all Catalog\ - \ objects should be modeled similar to Flyte Objects. The Dataset entities\ - \ makes it possible for the UI and CLI to act on the objects \nin a similar\ - \ manner to other Flyte objects" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." required: false type: "string" - default: "UNSPECIFIED" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" enum: - - "UNSPECIFIED" - - "TASK" - - "WORKFLOW" - - "LAUNCH_PLAN" - - "DATASET" - x-exportParamName: "IdResourceType" + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" x-optionalDataType: "String" responses: 200: description: "A successful response." schema: - $ref: "#/definitions/adminTask" - /api/v1/version: + $ref: "#/definitions/adminWorkflowList" + /api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}: get: tags: - "AdminService" - operationId: "GetVersion" - parameters: [] - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminGetVersionResponse" - /api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}: - put: - tags: - - "AdminService" - summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ - \ for a project, domain and workflow." - operationId: "UpdateWorkflowAttributes" + summary: "Fetch a :ref:`ref_flyteidl.admin.Workflow` definition." + operationId: "GetWorkflow2" parameters: - - name: "attributes.project" + - name: "id.org" in: "path" - description: "Unique project id for which this set of attributes will be applied." + description: "Optional, org key applied to the resource." required: true type: "string" - x-exportParamName: "AttributesProject" - - name: "attributes.domain" - in: "path" - description: "Unique domain id for which this set of attributes will be applied." - required: true - type: "string" - x-exportParamName: "AttributesDomain" - - name: "attributes.workflow" + x-exportParamName: "IdOrg" + - name: "id.project" in: "path" - description: "Workflow name for which this set of attributes will be applied." + description: "Name of the project the resource belongs to." required: true type: "string" - x-exportParamName: "AttributesWorkflow" - - in: "body" - name: "body" - required: true - schema: - $ref: "#/definitions/adminWorkflowAttributesUpdateRequest" - x-exportParamName: "Body" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminWorkflowAttributesUpdateResponse" - /api/v1/workflow_attributes/{project}/{domain}/{workflow}: - get: - tags: - - "AdminService" - summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ - \ for a project, domain and workflow." - operationId: "GetWorkflowAttributes" - parameters: - - name: "project" + x-exportParamName: "IdProject" + - name: "id.domain" in: "path" - description: "Unique project id which this set of attributes references.\n\ - +required" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." required: true type: "string" - x-exportParamName: "Project" - - name: "domain" + x-exportParamName: "IdDomain" + - name: "id.name" in: "path" - description: "Unique domain id which this set of attributes references.\n\ - +required" + description: "User provided value for the resource." required: true type: "string" - x-exportParamName: "Domain" - - name: "workflow" + x-exportParamName: "IdName" + - name: "id.version" in: "path" - description: "Workflow name which this set of attributes references.\n+required" + description: "Specific version of the resource." required: true type: "string" - x-exportParamName: "Workflow" - - name: "resource_type" + x-exportParamName: "IdVersion" + - name: "id.resource_type" in: "query" - description: "Which type of matchable attributes to return.\n+required.\n\n\ - \ - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n\ - \ - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster\ - \ resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution\ - \ queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster\ - \ label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION:\ - \ Configures default quality of service when undefined in an execution spec.\n\ - \ - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior\ - \ for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for\ - \ customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT:\ - \ Controls how to select an available cluster on which this execution should\ - \ run." + description: "Identifies the specific type of resource that this identifier\ + \ corresponds to.\n\n - DATASET: A dataset represents an entity modeled\ + \ in Flyte DataCatalog. A Dataset is also a versioned entity and can be\ + \ a compilation of multiple individual objects.\nEventually all Catalog\ + \ objects should be modeled similar to Flyte Objects. The Dataset entities\ + \ makes it possible for the UI and CLI to act on the objects \nin a similar\ + \ manner to other Flyte objects" required: false type: "string" - default: "TASK_RESOURCE" + default: "UNSPECIFIED" enum: - - "TASK_RESOURCE" - - "CLUSTER_RESOURCE" - - "EXECUTION_QUEUE" - - "EXECUTION_CLUSTER_LABEL" - - "QUALITY_OF_SERVICE_SPECIFICATION" - - "PLUGIN_OVERRIDE" - - "WORKFLOW_EXECUTION_CONFIG" - - "CLUSTER_ASSIGNMENT" - x-exportParamName: "ResourceType" + - "UNSPECIFIED" + - "TASK" + - "WORKFLOW" + - "LAUNCH_PLAN" + - "DATASET" + x-exportParamName: "IdResourceType" x-optionalDataType: "String" responses: 200: description: "A successful response." schema: - $ref: "#/definitions/adminWorkflowAttributesGetResponse" - delete: - tags: - - "AdminService" - summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ - \ for a project, domain and workflow." - operationId: "DeleteWorkflowAttributes" - parameters: - - name: "project" - in: "path" - description: "Unique project id which this set of attributes references.\n\ - +required" - required: true - type: "string" - x-exportParamName: "Project" - - name: "domain" - in: "path" - description: "Unique domain id which this set of attributes references.\n\ - +required" - required: true - type: "string" - x-exportParamName: "Domain" - - name: "workflow" - in: "path" - description: "Workflow name which this set of attributes references.\n+required" - required: true - type: "string" - x-exportParamName: "Workflow" - - in: "body" - name: "body" - required: true - schema: - $ref: "#/definitions/adminWorkflowAttributesDeleteRequest" - x-exportParamName: "Body" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminWorkflowAttributesDeleteResponse" - /api/v1/workflow_ids/{project}/{domain}: + $ref: "#/definitions/adminWorkflow" + /api/v1/workflows/org/{org}/{project}/{domain}: get: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ \ workflow objects." - operationId: "ListWorkflowIds" + operationId: "ListWorkflowIds2" parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "Org" - name: "project" in: "path" description: "Name of the project that contains the identifiers.\n+required" @@ -2628,30 +5703,12 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminNamedEntityIdentifierList" - /api/v1/workflows: - post: - tags: - - "AdminService" - summary: "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition" - operationId: "CreateWorkflow" - parameters: - - in: "body" - name: "body" - required: true - schema: - $ref: "#/definitions/adminWorkflowCreateRequest" - x-exportParamName: "Body" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminWorkflowCreateResponse" /api/v1/workflows/{id.project}/{id.domain}: get: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions." - operationId: "ListWorkflows2" + operationId: "ListWorkflows3" parameters: - name: "id.project" in: "path" @@ -2675,6 +5732,13 @@ paths: type: "string" x-exportParamName: "IdName" x-optionalDataType: "String" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" - name: "limit" in: "query" description: "Indicates the number of resources to be returned.\n+required." @@ -2752,6 +5816,13 @@ paths: required: true type: "string" x-exportParamName: "IdName" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" - name: "limit" in: "query" description: "Indicates the number of resources to be returned.\n+required." @@ -2853,6 +5924,13 @@ paths: - "DATASET" x-exportParamName: "IdResourceType" x-optionalDataType: "String" + - name: "id.org" + in: "query" + description: "Optional, org key applied to the resource." + required: false + type: "string" + x-exportParamName: "IdOrg" + x-optionalDataType: "String" responses: 200: description: "A successful response." @@ -3300,6 +6378,7 @@ definitions: example: short_description: "short_description" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -3334,6 +6413,7 @@ definitions: descriptionEntities: - short_description: "short_description" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -3351,6 +6431,7 @@ definitions: - "tags" - short_description: "short_description" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -3441,6 +6522,7 @@ definitions: \ Get and List execution requests." example: id: + org: "org" domain: "domain" name: "name" project: "project" @@ -3451,6 +6533,7 @@ definitions: uri: "uri" phase: {} workflow_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -3514,11 +6597,13 @@ definitions: principal: "principal" parent_node_execution: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" reference_execution: + org: "org" domain: "domain" name: "name" project: "project" @@ -3579,6 +6664,7 @@ definitions: - "tags" - "tags" launch_plan: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -3738,6 +6824,7 @@ definitions: uri: "uri" phase: {} workflow_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -3825,6 +6912,9 @@ definitions: \ be\nincluded in this map. If not required and not provided, defaults apply.\n\ +optional" $ref: "#/definitions/coreLiteralMap" + org: + type: "string" + description: "Optional, org key applied to the resource." description: "Request to launch an execution with the given project, domain and\ \ optionally-assigned name." adminExecutionCreateResponse: @@ -3837,6 +6927,7 @@ definitions: \ a generated name." example: id: + org: "org" domain: "domain" name: "name" project: "project" @@ -3857,6 +6948,7 @@ definitions: example: executions: - id: + org: "org" domain: "domain" name: "name" project: "project" @@ -3867,6 +6959,7 @@ definitions: uri: "uri" phase: {} workflow_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -3930,11 +7023,13 @@ definitions: principal: "principal" parent_node_execution: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" reference_execution: + org: "org" domain: "domain" name: "name" project: "project" @@ -3995,6 +7090,7 @@ definitions: - "tags" - "tags" launch_plan: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -4089,6 +7185,7 @@ definitions: kubernetes_service_account: "kubernetes_service_account" assumable_iam_role: "assumable_iam_role" - id: + org: "org" domain: "domain" name: "name" project: "project" @@ -4099,6 +7196,7 @@ definitions: uri: "uri" phase: {} workflow_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -4162,11 +7260,13 @@ definitions: principal: "principal" parent_node_execution: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" reference_execution: + org: "org" domain: "domain" name: "name" project: "project" @@ -4227,6 +7327,7 @@ definitions: - "tags" - "tags" launch_plan: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -4370,11 +7471,13 @@ definitions: principal: "principal" parent_node_execution: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" reference_execution: + org: "org" domain: "domain" name: "name" project: "project" @@ -4546,11 +7649,13 @@ definitions: principal: "principal" parent_node_execution: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" reference_execution: + org: "org" domain: "domain" name: "name" project: "project" @@ -4611,6 +7716,7 @@ definitions: - "tags" - "tags" launch_plan: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -4843,6 +7949,7 @@ definitions: \ have a default value for said input." example: id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -5190,6 +8297,7 @@ definitions: required: true spec: workflow_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -5964,6 +9072,7 @@ definitions: example: launch_plans: - id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -6311,6 +9420,7 @@ definitions: required: true spec: workflow_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -6686,6 +9796,7 @@ definitions: kubernetes_service_account: "kubernetes_service_account" assumable_iam_role: "assumable_iam_role" - id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -7033,6 +10144,7 @@ definitions: required: true spec: workflow_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -7539,6 +10651,7 @@ definitions: description: "User-provided launch plan definition and configuration values." example: workflow_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -7953,6 +11066,7 @@ definitions: configurations: - launch_plan: "launch_plan" workflow: "workflow" + org: "org" domain: "domain" project: "project" attributes: @@ -8060,6 +11174,7 @@ definitions: task_type: "task_type" - launch_plan: "launch_plan" workflow: "workflow" + org: "org" domain: "domain" project: "project" attributes: @@ -8193,13 +11308,18 @@ definitions: type: "string" launch_plan: type: "string" - description: "Represents a custom set of attributes applied for either a domain;\ - \ a domain and project; or\ndomain, project and workflow name.\nThese are used\ - \ to override system level defaults for kubernetes cluster resource management,\n\ - default execution values, and more all across different levels of specificity." + org: + type: "string" + description: "Optional, org key applied to the resource." + description: "Represents a custom set of attributes applied for either a domain\ + \ (and optional org); a domain and project (and optional org);\nor domain, project\ + \ and workflow name (and optional org).\nThese are used to override system level\ + \ defaults for kubernetes cluster resource management,\ndefault execution values,\ + \ and more all across different levels of specificity." example: launch_plan: "launch_plan" workflow: "workflow" + org: "org" domain: "domain" project: "project" attributes: @@ -8473,6 +11593,7 @@ definitions: state: {} resource_type: {} id: + org: "org" domain: "domain" name: "name" project: "project" @@ -8491,11 +11612,15 @@ definitions: title: "User provided value for the resource.\nThe combination of project\ \ + domain + name uniquely identifies the resource.\n+optional - in certain\ \ contexts - like 'List API', 'Launch plans'" + org: + type: "string" + description: "Optional, org key applied to the resource." description: "Encapsulation of fields that identifies a Flyte resource.\nA Flyte\ \ resource can be a task, workflow or launch plan.\nA resource can internally\ \ have multiple versions and is uniquely identified\nby project, domain, and\ \ name." example: + org: "org" domain: "domain" name: "name" project: "project" @@ -8515,10 +11640,12 @@ definitions: description: "Represents a list of NamedEntityIdentifiers." example: entities: - - domain: "domain" + - org: "org" + domain: "domain" name: "name" project: "project" - - domain: "domain" + - org: "org" + domain: "domain" name: "name" project: "project" token: "token" @@ -8543,6 +11670,7 @@ definitions: state: {} resource_type: {} id: + org: "org" domain: "domain" name: "name" project: "project" @@ -8551,6 +11679,7 @@ definitions: state: {} resource_type: {} id: + org: "org" domain: "domain" name: "name" project: "project" @@ -8652,6 +11781,7 @@ definitions: duration: "duration" workflow_node_metadata: executionId: + org: "org" domain: "domain" name: "name" project: "project" @@ -8660,6 +11790,7 @@ definitions: catalog_key: source_task_execution: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -8667,12 +11798,14 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" retry_attempt: 0 dataset_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -10222,6 +13355,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -10247,12 +13381,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -11378,6 +14514,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -11403,12 +14540,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -12533,6 +15672,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -12558,12 +15698,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -12572,6 +15714,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -14233,6 +17376,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -14258,12 +17402,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -15389,6 +18535,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -15414,12 +18561,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -16544,6 +19693,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -16569,12 +19719,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -16583,6 +19735,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -16876,6 +20029,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -17207,6 +20361,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -18908,6 +22063,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -18933,12 +22089,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -20064,6 +23222,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -20089,12 +23248,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -21219,6 +24380,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -21244,12 +24406,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -21258,6 +24422,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -21447,6 +24612,7 @@ definitions: - "ids" dynamic_job_spec_uri: "dynamic_job_spec_uri" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -21482,6 +24648,7 @@ definitions: input_uri: "input_uri" id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -21491,6 +24658,7 @@ definitions: duration: "duration" workflow_node_metadata: executionId: + org: "org" domain: "domain" name: "name" project: "project" @@ -21499,6 +24667,7 @@ definitions: catalog_key: source_task_execution: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -21506,12 +24675,14 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" retry_attempt: 0 dataset_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -21543,6 +24714,7 @@ definitions: input_uri: "input_uri" id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -21552,6 +24724,7 @@ definitions: duration: "duration" workflow_node_metadata: executionId: + org: "org" domain: "domain" name: "name" project: "project" @@ -21560,6 +24733,7 @@ definitions: catalog_key: source_task_execution: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -21567,12 +24741,14 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" retry_attempt: 0 dataset_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -21770,7 +24946,8 @@ definitions: properties: id: type: "string" - description: "Globally unique project name." + description: "Deprecated, use identifier instead.\nGlobally unique project\ + \ name." name: type: "string" description: "Display name." @@ -21786,9 +24963,15 @@ definitions: $ref: "#/definitions/adminLabels" state: $ref: "#/definitions/ProjectProjectState" + identifier: + description: "Optional, org key applied to the project." + $ref: "#/definitions/adminProjectIdentifier" description: "Top-level namespace used to classify different entities like workflows\ \ and executions." example: + identifier: + org: "org" + id: "id" name: "name" domains: - name: "name" @@ -21809,9 +24992,13 @@ definitions: description: "Unique project id for which this set of attributes will be applied." matching_attributes: $ref: "#/definitions/adminMatchingAttributes" + org: + type: "string" + description: "Optional, org key applied to the project." title: "Defines a set of custom matching attributes at the project level.\nFor\ \ more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" example: + org: "org" project: "project" matching_attributes: quality_of_service: @@ -21925,6 +25112,9 @@ definitions: resource_type: title: "Which type of matchable attributes to delete.\n+required" $ref: "#/definitions/adminMatchableResource" + org: + type: "string" + description: "Optional, org key applied to the project." title: "Request to delete a set matchable project level attribute override.\n\ For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" adminProjectAttributesDeleteResponse: @@ -21939,6 +25129,7 @@ definitions: \ info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" example: attributes: + org: "org" project: "project" matching_attributes: quality_of_service: @@ -22065,9 +25256,13 @@ definitions: description: "Unique domain id for which this set of attributes will be applied." matching_attributes: $ref: "#/definitions/adminMatchingAttributes" + org: + type: "string" + description: "Optional, org key applied to the attributes." title: "Defines a set of custom matching attributes which defines resource defaults\ \ for a project and domain.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" example: + org: "org" domain: "domain" project: "project" matching_attributes: @@ -22185,6 +25380,9 @@ definitions: resource_type: title: "Which type of matchable attributes to delete.\n+required" $ref: "#/definitions/adminMatchableResource" + org: + type: "string" + description: "Optional, org key applied to the attributes." title: "Request to delete a set matchable project domain attribute override.\n\ For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" adminProjectDomainAttributesDeleteResponse: @@ -22199,6 +25397,7 @@ definitions: \ more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" example: attributes: + org: "org" domain: "domain" project: "project" matching_attributes: @@ -22315,6 +25514,18 @@ definitions: adminProjectDomainAttributesUpdateResponse: type: "object" description: "Purposefully empty, may be populated in the future." + adminProjectIdentifier: + type: "object" + properties: + id: + type: "string" + description: "Globally unique project name." + org: + type: "string" + description: "Optional, org key applied to the resource." + example: + org: "org" + id: "id" adminProjectRegisterRequest: type: "object" properties: @@ -22345,7 +25556,10 @@ definitions: \ for more details" example: projects: - - name: "name" + - identifier: + org: "org" + id: "id" + name: "name" domains: - name: "name" id: "id" @@ -22357,7 +25571,10 @@ definitions: labels: values: key: "values" - - name: "name" + - identifier: + org: "org" + id: "id" + name: "name" domains: - name: "name" id: "id" @@ -22490,6 +25707,7 @@ definitions: example: short_description: "short_description" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -22603,6 +25821,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -22950,6 +26169,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -23392,6 +26612,7 @@ definitions: - input_uri: "input_uri" id: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -23399,6 +26620,7 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -23486,6 +26708,7 @@ definitions: - input_uri: "input_uri" id: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -23493,6 +26716,7 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -23597,6 +26821,7 @@ definitions: tasks: - short_description: "short_description" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -23710,6 +26935,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -23938,6 +27164,7 @@ definitions: statement: "statement" - short_description: "short_description" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -24051,6 +27278,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -24384,6 +27612,7 @@ definitions: example: short_description: "short_description" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -25866,6 +29095,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -25891,12 +29121,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -27022,6 +30254,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -27047,12 +30280,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -28177,6 +31412,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -28202,12 +31438,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -28216,6 +31454,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -29877,6 +33116,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -29902,12 +33142,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -31033,6 +34275,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -31058,12 +34301,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -32188,6 +35433,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -32213,12 +35459,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -32227,6 +35475,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -32520,6 +35769,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -32851,6 +36101,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -34552,6 +37803,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -34577,12 +37829,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -35708,6 +38962,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -35733,12 +38988,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -36863,6 +40120,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -36888,12 +40146,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -36902,6 +40162,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -37104,11 +40365,15 @@ definitions: description: "Workflow name for which this set of attributes will be applied." matching_attributes: $ref: "#/definitions/adminMatchingAttributes" + org: + type: "string" + description: "Optional, org key applied to the attributes." title: "Defines a set of custom matching attributes which defines resource defaults\ \ for a project, domain and workflow.\nFor more info on matchable attributes,\ \ see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" example: workflow: "workflow" + org: "org" domain: "domain" project: "project" matching_attributes: @@ -37229,6 +40494,9 @@ definitions: resource_type: title: "Which type of matchable attributes to delete.\n+required" $ref: "#/definitions/adminMatchableResource" + org: + type: "string" + description: "Optional, org key applied to the attributes." title: "Request to delete a set matchable workflow attribute override.\nFor more\ \ info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" adminWorkflowAttributesDeleteResponse: @@ -37243,6 +40511,7 @@ definitions: example: attributes: workflow: "workflow" + org: "org" domain: "domain" project: "project" matching_attributes: @@ -38848,6 +42117,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -38873,12 +42143,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -40004,6 +43276,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -40029,12 +43302,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -41159,6 +44434,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -41184,12 +44460,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -41198,6 +44476,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -42859,6 +46138,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -42884,12 +46164,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -44015,6 +47297,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -44040,12 +47323,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -45170,6 +48455,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -45195,12 +48481,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -45209,6 +48497,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -45502,6 +48791,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -45833,6 +49123,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -47534,6 +50825,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -47559,12 +50851,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -48690,6 +51984,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -48715,12 +52010,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -49845,6 +53142,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -49870,12 +53168,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -49884,6 +53184,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -50251,12 +53552,14 @@ definitions: - null - null workflow_id: + org: "org" domain: "domain" name: "name" project: "project" end_time: "2000-01-23T04:56:07.000+00:00" task_id: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -50264,6 +53567,7 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -50272,6 +53576,7 @@ definitions: operation_id: "operation_id" node_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -50295,6 +53600,7 @@ definitions: workflows: - short_description: "short_description" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -51777,6 +55083,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -51802,12 +55109,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -52933,6 +56242,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -52958,12 +56268,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -54088,6 +57400,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -54113,12 +57426,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -54127,6 +57442,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -55788,6 +59104,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -55813,12 +59130,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -56944,6 +60263,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -56969,12 +60289,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -58099,6 +61421,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -58124,12 +61447,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -58138,6 +61463,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -58431,6 +61757,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -58762,6 +62089,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -60463,6 +63791,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -60488,12 +63817,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -61619,6 +64950,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -61644,12 +64976,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -62774,6 +66108,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -62799,12 +66134,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -62813,6 +66150,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -63003,6 +66341,7 @@ definitions: created_at: "2000-01-23T04:56:07.000+00:00" - short_description: "short_description" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -64485,6 +67824,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -64510,12 +67850,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -65641,6 +68983,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -65666,12 +69009,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -66796,6 +70141,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -66821,12 +70167,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -66835,6 +70183,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -68496,6 +71845,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -68521,12 +71871,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -69652,6 +73004,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -69677,12 +73030,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -70807,6 +74162,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -70832,12 +74188,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -70846,6 +74204,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -71139,6 +74498,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -71470,6 +74830,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -73171,6 +76532,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -73196,12 +76558,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -74327,6 +77691,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -74352,12 +77717,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -75482,6 +78849,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -75507,12 +78875,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -75521,6 +78891,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -75768,7 +79139,7 @@ definitions: format: "int64" description: "parallelism defines the minimum number of instances to bring\ \ up concurrently at any given\npoint. Note that this is an optimistic restriction\ - \ and that, due to network partitioning or\nother failures, the actual number\ + \ and that, due to network orging or\nother failures, the actual number\ \ of currently running instances might be more. This has to\nbe a positive\ \ number if assigned. Default value is size." min_successes: @@ -77365,6 +80736,7 @@ definitions: example: source_task_execution: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -77372,12 +80744,14 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" retry_attempt: 0 dataset_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -77738,6 +81112,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -79451,6 +82826,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -79476,12 +82852,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -80607,6 +83985,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -80632,12 +84011,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -81762,6 +85143,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -81787,12 +85169,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -81801,6 +85185,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -83489,6 +86874,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -83514,12 +86900,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -84645,6 +88033,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -84670,12 +88059,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -85800,6 +89191,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -85825,12 +89217,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -85839,6 +89233,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -87500,6 +90895,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -87525,12 +90921,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -88656,6 +92054,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -88681,12 +92080,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -89811,6 +93212,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -89836,12 +93238,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -89850,6 +93254,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -90143,6 +93548,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -90474,6 +93880,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -92175,6 +95582,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -92200,12 +95608,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -93331,6 +96741,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -93356,12 +96767,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -94486,6 +97899,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -94511,12 +97925,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -94525,6 +97941,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -95102,8 +98519,12 @@ definitions: version: type: "string" description: "Specific version of the resource." + org: + type: "string" + description: "Optional, org key applied to the resource." description: "Encapsulation of fields that uniquely identifies a Flyte resource." example: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -97626,6 +101047,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -97651,12 +101073,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -97672,6 +101096,7 @@ definitions: description: "Encapsulation of fields that identify a Flyte node execution entity." example: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -99015,12 +102440,14 @@ definitions: - null - null workflow_id: + org: "org" domain: "domain" name: "name" project: "project" end_time: "2000-01-23T04:56:07.000+00:00" task_id: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -99028,6 +102455,7 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -99036,6 +102464,7 @@ definitions: operation_id: "operation_id" node_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -99140,6 +102569,7 @@ definitions: description: "Encapsulation of fields that identify a Flyte task execution entity." example: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -99147,6 +102577,7 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -99276,6 +102707,7 @@ definitions: description: "Refers to the task that the Node is to execute." example: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -99486,6 +102918,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -100285,8 +103718,12 @@ definitions: name: type: "string" description: "User or system provided value for the resource." + org: + type: "string" + description: "Optional, org key applied to the resource." title: "Encapsulation of fields that uniquely identifies a Flyte workflow execution" example: + org: "org" domain: "domain" name: "name" project: "project" @@ -100361,12 +103798,14 @@ definitions: description: "Refers to a the workflow the node is to execute." example: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -101889,6 +105328,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -101914,12 +105354,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -103045,6 +106487,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -103070,12 +106513,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -104200,6 +107645,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -104225,12 +107671,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -104239,6 +107687,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -106200,6 +109649,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -106225,12 +109675,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -107356,6 +110808,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -107381,12 +110834,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -108511,6 +111966,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -108536,12 +111992,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -108550,6 +112008,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -110211,6 +113670,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -110236,12 +113696,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -111367,6 +114829,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -111392,12 +114855,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -112522,6 +115987,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -112547,12 +116013,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -112561,6 +116029,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -112854,6 +116323,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -113185,6 +116655,7 @@ definitions: enabled: true input_path: "input_path" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -114886,6 +118357,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -114911,12 +118383,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -116042,6 +119516,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -116067,12 +119542,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -117197,6 +120674,7 @@ definitions: alias: "alias" task_node: reference_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -117222,12 +120700,14 @@ definitions: id: "id" workflow_node: launchplan_ref: + org: "org" domain: "domain" resource_type: {} name: "name" project: "project" version: "version" sub_workflow_ref: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -117236,6 +120716,7 @@ definitions: metadata_defaults: interruptible: true id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -117425,6 +120906,7 @@ definitions: - "ids" dynamic_job_spec_uri: "dynamic_job_spec_uri" id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -117460,6 +120942,7 @@ definitions: input_uri: "input_uri" id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -117469,6 +120952,7 @@ definitions: duration: "duration" workflow_node_metadata: executionId: + org: "org" domain: "domain" name: "name" project: "project" @@ -117477,6 +120961,7 @@ definitions: catalog_key: source_task_execution: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -117484,12 +120969,14 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" retry_attempt: 0 dataset_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -117550,6 +121037,7 @@ definitions: input_uri: "input_uri" id: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -117557,6 +121045,7 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" @@ -117658,6 +121147,7 @@ definitions: catalog_key: source_task_execution: task_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -117665,12 +121155,14 @@ definitions: version: "version" node_execution_id: execution_id: + org: "org" domain: "domain" name: "name" project: "project" node_id: "node_id" retry_attempt: 0 dataset_id: + org: "org" domain: "domain" resource_type: {} name: "name" @@ -117690,6 +121182,7 @@ definitions: title: "Metadata for a WorkflowNode" example: executionId: + org: "org" domain: "domain" name: "name" project: "project" diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go index 1ad9e1f583..5b7fc29b27 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go @@ -743,25 +743,25 @@ func (a *AdminServiceApiService) DeleteProjectAttributes(ctx context.Context, pr /* AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org key applied to the project. * @param project Unique project id which this set of attributes references. +required - * @param domain Unique domain id which this set of attributes references. +required * @param body -@return AdminProjectDomainAttributesDeleteResponse +@return AdminProjectAttributesDeleteResponse */ -func (a *AdminServiceApiService) DeleteProjectDomainAttributes(ctx context.Context, project string, domain string, body AdminProjectDomainAttributesDeleteRequest) (AdminProjectDomainAttributesDeleteResponse, *http.Response, error) { +func (a *AdminServiceApiService) DeleteProjectAttributes2(ctx context.Context, org string, project string, body AdminProjectAttributesDeleteRequest) (AdminProjectAttributesDeleteResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Delete") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectDomainAttributesDeleteResponse + localVarReturnValue AdminProjectAttributesDeleteResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/{project}/{domain}" + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/org/{org}/{project}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -817,7 +817,7 @@ func (a *AdminServiceApiService) DeleteProjectDomainAttributes(ctx context.Conte } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectDomainAttributesDeleteResponse + var v AdminProjectAttributesDeleteResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -834,29 +834,27 @@ func (a *AdminServiceApiService) DeleteProjectDomainAttributes(ctx context.Conte } /* -AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required * @param domain Unique domain id which this set of attributes references. +required - * @param workflow Workflow name which this set of attributes references. +required * @param body -@return AdminWorkflowAttributesDeleteResponse +@return AdminProjectDomainAttributesDeleteResponse */ -func (a *AdminServiceApiService) DeleteWorkflowAttributes(ctx context.Context, project string, domain string, workflow string, body AdminWorkflowAttributesDeleteRequest) (AdminWorkflowAttributesDeleteResponse, *http.Response, error) { +func (a *AdminServiceApiService) DeleteProjectDomainAttributes(ctx context.Context, project string, domain string, body AdminProjectDomainAttributesDeleteRequest) (AdminProjectDomainAttributesDeleteResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Delete") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowAttributesDeleteResponse + localVarReturnValue AdminProjectDomainAttributesDeleteResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/{project}/{domain}" localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -912,7 +910,7 @@ func (a *AdminServiceApiService) DeleteWorkflowAttributes(ctx context.Context, p } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowAttributesDeleteResponse + var v AdminProjectDomainAttributesDeleteResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -929,28 +927,29 @@ func (a *AdminServiceApiService) DeleteWorkflowAttributes(ctx context.Context, p } /* -AdminServiceApiService Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param org Optional, org key applied to the attributes. + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param body -@return AdminLaunchPlan +@return AdminProjectDomainAttributesDeleteResponse */ -func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProject string, idDomain string, idName string) (AdminLaunchPlan, *http.Response, error) { +func (a *AdminServiceApiService) DeleteProjectDomainAttributes2(ctx context.Context, org string, project string, domain string, body AdminProjectDomainAttributesDeleteRequest) (AdminProjectDomainAttributesDeleteResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Delete") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminLaunchPlan + localVarReturnValue AdminProjectDomainAttributesDeleteResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/org/{org}/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -973,6 +972,8 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProj if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -1004,7 +1005,7 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProj } if localVarHttpResponse.StatusCode == 200 { - var v AdminLaunchPlan + var v AdminProjectDomainAttributesDeleteResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1021,32 +1022,29 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProj } /* -AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idResourceType Identifies the specific type of resource that this identifier corresponds to. - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. - * @param idVersion Specific version of the resource. + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param workflow Workflow name which this set of attributes references. +required + * @param body -@return AdminDescriptionEntity +@return AdminWorkflowAttributesDeleteResponse */ -func (a *AdminServiceApiService) GetDescriptionEntity(ctx context.Context, idResourceType string, idProject string, idDomain string, idName string, idVersion string) (AdminDescriptionEntity, *http.Response, error) { +func (a *AdminServiceApiService) DeleteWorkflowAttributes(ctx context.Context, project string, domain string, workflow string, body AdminWorkflowAttributesDeleteRequest) (AdminWorkflowAttributesDeleteResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Delete") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminDescriptionEntity + localVarReturnValue AdminWorkflowAttributesDeleteResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}" - localVarPath = strings.Replace(localVarPath, "{"+"id.resource_type"+"}", fmt.Sprintf("%v", idResourceType), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -1069,6 +1067,8 @@ func (a *AdminServiceApiService) GetDescriptionEntity(ctx context.Context, idRes if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -1100,7 +1100,7 @@ func (a *AdminServiceApiService) GetDescriptionEntity(ctx context.Context, idRes } if localVarHttpResponse.StatusCode == 200 { - var v AdminDescriptionEntity + var v AdminWorkflowAttributesDeleteResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1117,28 +1117,31 @@ func (a *AdminServiceApiService) GetDescriptionEntity(ctx context.Context, idRes } /* -AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.Execution`. +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User or system provided value for the resource. + * @param org Optional, org key applied to the attributes. + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param workflow Workflow name which this set of attributes references. +required + * @param body -@return AdminExecution +@return AdminWorkflowAttributesDeleteResponse */ -func (a *AdminServiceApiService) GetExecution(ctx context.Context, idProject string, idDomain string, idName string) (AdminExecution, *http.Response, error) { +func (a *AdminServiceApiService) DeleteWorkflowAttributes2(ctx context.Context, org string, project string, domain string, workflow string, body AdminWorkflowAttributesDeleteRequest) (AdminWorkflowAttributesDeleteResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Delete") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminExecution + localVarReturnValue AdminWorkflowAttributesDeleteResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/executions/{id.project}/{id.domain}/{id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -1161,6 +1164,8 @@ func (a *AdminServiceApiService) GetExecution(ctx context.Context, idProject str if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -1192,7 +1197,7 @@ func (a *AdminServiceApiService) GetExecution(ctx context.Context, idProject str } if localVarHttpResponse.StatusCode == 200 { - var v AdminExecution + var v AdminWorkflowAttributesDeleteResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1209,25 +1214,32 @@ func (a *AdminServiceApiService) GetExecution(ctx context.Context, idProject str } /* -AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. +AdminServiceApiService Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User or system provided value for the resource. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *GetActiveLaunchPlanOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminWorkflowExecutionGetDataResponse +@return AdminLaunchPlan */ -func (a *AdminServiceApiService) GetExecutionData(ctx context.Context, idProject string, idDomain string, idName string) (AdminWorkflowExecutionGetDataResponse, *http.Response, error) { + +type GetActiveLaunchPlanOpts struct { + IdOrg optional.String +} + +func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *GetActiveLaunchPlanOpts) (AdminLaunchPlan, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowExecutionGetDataResponse + localVarReturnValue AdminLaunchPlan ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/data/executions/{id.project}/{id.domain}/{id.name}" + localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}" localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) @@ -1236,6 +1248,9 @@ func (a *AdminServiceApiService) GetExecutionData(ctx context.Context, idProject localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -1284,7 +1299,7 @@ func (a *AdminServiceApiService) GetExecutionData(ctx context.Context, idProject } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowExecutionGetDataResponse + var v AdminLaunchPlan err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1301,32 +1316,27 @@ func (a *AdminServiceApiService) GetExecutionData(ctx context.Context, idProject } /* -AdminServiceApiService Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. +AdminServiceApiService Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User or system provided value for the resource. - * @param optional nil or *GetExecutionMetricsOpts - Optional Parameters: - * @param "Depth" (optional.Int32) - depth defines the number of Flyte entity levels to traverse when breaking down execution details. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' -@return AdminWorkflowExecutionGetMetricsResponse +@return AdminLaunchPlan */ - -type GetExecutionMetricsOpts struct { - Depth optional.Int32 -} - -func (a *AdminServiceApiService) GetExecutionMetrics(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *GetExecutionMetricsOpts) (AdminWorkflowExecutionGetMetricsResponse, *http.Response, error) { +func (a *AdminServiceApiService) GetActiveLaunchPlan2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string) (AdminLaunchPlan, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowExecutionGetMetricsResponse + localVarReturnValue AdminLaunchPlan ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}" + localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) @@ -1335,9 +1345,6 @@ func (a *AdminServiceApiService) GetExecutionMetrics(ctx context.Context, idProj localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Depth.IsSet() { - localVarQueryParams.Add("depth", parameterToString(localVarOptionals.Depth.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -1386,7 +1393,7 @@ func (a *AdminServiceApiService) GetExecutionMetrics(ctx context.Context, idProj } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowExecutionGetMetricsResponse + var v AdminLaunchPlan err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1403,33 +1410,35 @@ func (a *AdminServiceApiService) GetExecutionMetrics(ctx context.Context, idProj } /* -AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. +AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idResourceType Identifies the specific type of resource that this identifier corresponds to. * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. * @param idName User provided value for the resource. * @param idVersion Specific version of the resource. - * @param optional nil or *GetLaunchPlanOpts - Optional Parameters: - * @param "IdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param optional nil or *GetDescriptionEntityOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminLaunchPlan +@return AdminDescriptionEntity */ -type GetLaunchPlanOpts struct { - IdResourceType optional.String +type GetDescriptionEntityOpts struct { + IdOrg optional.String } -func (a *AdminServiceApiService) GetLaunchPlan(ctx context.Context, idProject string, idDomain string, idName string, idVersion string, localVarOptionals *GetLaunchPlanOpts) (AdminLaunchPlan, *http.Response, error) { +func (a *AdminServiceApiService) GetDescriptionEntity(ctx context.Context, idResourceType string, idProject string, idDomain string, idName string, idVersion string, localVarOptionals *GetDescriptionEntityOpts) (AdminDescriptionEntity, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminLaunchPlan + localVarReturnValue AdminDescriptionEntity ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath := a.client.cfg.BasePath + "/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath = strings.Replace(localVarPath, "{"+"id.resource_type"+"}", fmt.Sprintf("%v", idResourceType), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) @@ -1439,8 +1448,8 @@ func (a *AdminServiceApiService) GetLaunchPlan(ctx context.Context, idProject st localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdResourceType.IsSet() { - localVarQueryParams.Add("id.resource_type", parameterToString(localVarOptionals.IdResourceType.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -1490,7 +1499,7 @@ func (a *AdminServiceApiService) GetLaunchPlan(ctx context.Context, idProject st } if localVarHttpResponse.StatusCode == 200 { - var v AdminLaunchPlan + var v AdminDescriptionEntity err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1507,30 +1516,34 @@ func (a *AdminServiceApiService) GetLaunchPlan(ctx context.Context, idProject st } /* -AdminServiceApiService Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. +AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param resourceType Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required + * @param idOrg Optional, org key applied to the resource. + * @param idResourceType Identifies the specific type of resource that this identifier corresponds to. * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param idName User provided value for the resource. + * @param idVersion Specific version of the resource. -@return AdminNamedEntity +@return AdminDescriptionEntity */ -func (a *AdminServiceApiService) GetNamedEntity(ctx context.Context, resourceType string, idProject string, idDomain string, idName string) (AdminNamedEntity, *http.Response, error) { +func (a *AdminServiceApiService) GetDescriptionEntity2(ctx context.Context, idOrg string, idResourceType string, idProject string, idDomain string, idName string, idVersion string) (AdminDescriptionEntity, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminNamedEntity + localVarReturnValue AdminDescriptionEntity ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.resource_type"+"}", fmt.Sprintf("%v", idResourceType), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -1584,7 +1597,7 @@ func (a *AdminServiceApiService) GetNamedEntity(ctx context.Context, resourceTyp } if localVarHttpResponse.StatusCode == 200 { - var v AdminNamedEntity + var v AdminDescriptionEntity err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1601,35 +1614,43 @@ func (a *AdminServiceApiService) GetNamedEntity(ctx context.Context, resourceTyp } /* -AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. +AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.Execution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idExecutionIdProject Name of the project the resource belongs to. - * @param idExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idExecutionIdName User or system provided value for the resource. - * @param idNodeId + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User or system provided value for the resource. + * @param optional nil or *GetExecutionOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. -@return FlyteidladminNodeExecution +@return AdminExecution */ -func (a *AdminServiceApiService) GetNodeExecution(ctx context.Context, idExecutionIdProject string, idExecutionIdDomain string, idExecutionIdName string, idNodeId string) (FlyteidladminNodeExecution, *http.Response, error) { + +type GetExecutionOpts struct { + IdOrg optional.String +} + +func (a *AdminServiceApiService) GetExecution(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *GetExecutionOpts) (AdminExecution, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue FlyteidladminNodeExecution + localVarReturnValue AdminExecution ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" - localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.project"+"}", fmt.Sprintf("%v", idExecutionIdProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.domain"+"}", fmt.Sprintf("%v", idExecutionIdDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.name"+"}", fmt.Sprintf("%v", idExecutionIdName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.node_id"+"}", fmt.Sprintf("%v", idNodeId), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -1678,7 +1699,7 @@ func (a *AdminServiceApiService) GetNodeExecution(ctx context.Context, idExecuti } if localVarHttpResponse.StatusCode == 200 { - var v FlyteidladminNodeExecution + var v AdminExecution err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1695,30 +1716,30 @@ func (a *AdminServiceApiService) GetNodeExecution(ctx context.Context, idExecuti } /* -AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. +AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.Execution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idExecutionIdProject Name of the project the resource belongs to. - * @param idExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idExecutionIdName User or system provided value for the resource. - * @param idNodeId + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User or system provided value for the resource. -@return AdminNodeExecutionGetDataResponse +@return AdminExecution */ -func (a *AdminServiceApiService) GetNodeExecutionData(ctx context.Context, idExecutionIdProject string, idExecutionIdDomain string, idExecutionIdName string, idNodeId string) (AdminNodeExecutionGetDataResponse, *http.Response, error) { +func (a *AdminServiceApiService) GetExecution2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string) (AdminExecution, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminNodeExecutionGetDataResponse + localVarReturnValue AdminExecution ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" - localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.project"+"}", fmt.Sprintf("%v", idExecutionIdProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.domain"+"}", fmt.Sprintf("%v", idExecutionIdDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.name"+"}", fmt.Sprintf("%v", idExecutionIdName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.node_id"+"}", fmt.Sprintf("%v", idNodeId), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -1772,7 +1793,7 @@ func (a *AdminServiceApiService) GetNodeExecutionData(ctx context.Context, idExe } if localVarHttpResponse.StatusCode == 200 { - var v AdminNodeExecutionGetDataResponse + var v AdminExecution err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1789,38 +1810,42 @@ func (a *AdminServiceApiService) GetNodeExecutionData(ctx context.Context, idExe } /* -AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param project Unique project id which this set of attributes references. +required - * @param optional nil or *GetProjectAttributesOpts - Optional Parameters: - * @param "ResourceType" (optional.String) - Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User or system provided value for the resource. + * @param optional nil or *GetExecutionDataOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminProjectAttributesGetResponse +@return AdminWorkflowExecutionGetDataResponse */ -type GetProjectAttributesOpts struct { - ResourceType optional.String +type GetExecutionDataOpts struct { + IdOrg optional.String } -func (a *AdminServiceApiService) GetProjectAttributes(ctx context.Context, project string, localVarOptionals *GetProjectAttributesOpts) (AdminProjectAttributesGetResponse, *http.Response, error) { +func (a *AdminServiceApiService) GetExecutionData(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *GetExecutionDataOpts) (AdminWorkflowExecutionGetDataResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectAttributesGetResponse + localVarReturnValue AdminWorkflowExecutionGetDataResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/project_attributes/{project}" - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/data/executions/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { - localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -1870,7 +1895,7 @@ func (a *AdminServiceApiService) GetProjectAttributes(ctx context.Context, proje } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectAttributesGetResponse + var v AdminWorkflowExecutionGetDataResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1887,41 +1912,35 @@ func (a *AdminServiceApiService) GetProjectAttributes(ctx context.Context, proje } /* -AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param project Unique project id which this set of attributes references. +required - * @param domain Unique domain id which this set of attributes references. +required - * @param optional nil or *GetProjectDomainAttributesOpts - Optional Parameters: - * @param "ResourceType" (optional.String) - Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User or system provided value for the resource. -@return AdminProjectDomainAttributesGetResponse +@return AdminWorkflowExecutionGetDataResponse */ - -type GetProjectDomainAttributesOpts struct { - ResourceType optional.String -} - -func (a *AdminServiceApiService) GetProjectDomainAttributes(ctx context.Context, project string, domain string, localVarOptionals *GetProjectDomainAttributesOpts) (AdminProjectDomainAttributesGetResponse, *http.Response, error) { +func (a *AdminServiceApiService) GetExecutionData2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string) (AdminWorkflowExecutionGetDataResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectDomainAttributesGetResponse + localVarReturnValue AdminWorkflowExecutionGetDataResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/{project}/{domain}" - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { - localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -1970,7 +1989,7 @@ func (a *AdminServiceApiService) GetProjectDomainAttributes(ctx context.Context, } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectDomainAttributesGetResponse + var v AdminWorkflowExecutionGetDataResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1987,44 +2006,47 @@ func (a *AdminServiceApiService) GetProjectDomainAttributes(ctx context.Context, } /* -AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.Task` definition. +AdminServiceApiService Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. - * @param idVersion Specific version of the resource. - * @param optional nil or *GetTaskOpts - Optional Parameters: - * @param "IdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param idName User or system provided value for the resource. + * @param optional nil or *GetExecutionMetricsOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Depth" (optional.Int32) - depth defines the number of Flyte entity levels to traverse when breaking down execution details. -@return AdminTask +@return AdminWorkflowExecutionGetMetricsResponse */ -type GetTaskOpts struct { - IdResourceType optional.String +type GetExecutionMetricsOpts struct { + IdOrg optional.String + Depth optional.Int32 } -func (a *AdminServiceApiService) GetTask(ctx context.Context, idProject string, idDomain string, idName string, idVersion string, localVarOptionals *GetTaskOpts) (AdminTask, *http.Response, error) { +func (a *AdminServiceApiService) GetExecutionMetrics(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *GetExecutionMetricsOpts) (AdminWorkflowExecutionGetMetricsResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminTask + localVarReturnValue AdminWorkflowExecutionGetMetricsResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath := a.client.cfg.BasePath + "/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}" localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdResourceType.IsSet() { - localVarQueryParams.Add("id.resource_type", parameterToString(localVarOptionals.IdResourceType.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Depth.IsSet() { + localVarQueryParams.Add("depth", parameterToString(localVarOptionals.Depth.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -2074,7 +2096,7 @@ func (a *AdminServiceApiService) GetTask(ctx context.Context, idProject string, } if localVarHttpResponse.StatusCode == 200 { - var v AdminTask + var v AdminWorkflowExecutionGetMetricsResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -2091,54 +2113,44 @@ func (a *AdminServiceApiService) GetTask(ctx context.Context, idProject string, } /* -AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. +AdminServiceApiService Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. - * @param idNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idNodeExecutionIdExecutionIdName User or system provided value for the resource. - * @param idNodeExecutionIdNodeId - * @param idTaskIdProject Name of the project the resource belongs to. - * @param idTaskIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idTaskIdName User provided value for the resource. - * @param idTaskIdVersion Specific version of the resource. - * @param idRetryAttempt - * @param optional nil or *GetTaskExecutionOpts - Optional Parameters: - * @param "IdTaskIdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User or system provided value for the resource. + * @param optional nil or *GetExecutionMetrics2Opts - Optional Parameters: + * @param "Depth" (optional.Int32) - depth defines the number of Flyte entity levels to traverse when breaking down execution details. -@return FlyteidladminTaskExecution +@return AdminWorkflowExecutionGetMetricsResponse */ -type GetTaskExecutionOpts struct { - IdTaskIdResourceType optional.String +type GetExecutionMetrics2Opts struct { + Depth optional.Int32 } -func (a *AdminServiceApiService) GetTaskExecution(ctx context.Context, idNodeExecutionIdExecutionIdProject string, idNodeExecutionIdExecutionIdDomain string, idNodeExecutionIdExecutionIdName string, idNodeExecutionIdNodeId string, idTaskIdProject string, idTaskIdDomain string, idTaskIdName string, idTaskIdVersion string, idRetryAttempt int64, localVarOptionals *GetTaskExecutionOpts) (FlyteidladminTaskExecution, *http.Response, error) { +func (a *AdminServiceApiService) GetExecutionMetrics2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, localVarOptionals *GetExecutionMetrics2Opts) (AdminWorkflowExecutionGetMetricsResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue FlyteidladminTaskExecution + localVarReturnValue AdminWorkflowExecutionGetMetricsResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/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}" - localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.node_id"+"}", fmt.Sprintf("%v", idNodeExecutionIdNodeId), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.project"+"}", fmt.Sprintf("%v", idTaskIdProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.domain"+"}", fmt.Sprintf("%v", idTaskIdDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.name"+"}", fmt.Sprintf("%v", idTaskIdName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.version"+"}", fmt.Sprintf("%v", idTaskIdVersion), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.retry_attempt"+"}", fmt.Sprintf("%v", idRetryAttempt), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdTaskIdResourceType.IsSet() { - localVarQueryParams.Add("id.task_id.resource_type", parameterToString(localVarOptionals.IdTaskIdResourceType.Value(), "")) + if localVarOptionals != nil && localVarOptionals.Depth.IsSet() { + localVarQueryParams.Add("depth", parameterToString(localVarOptionals.Depth.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -2188,7 +2200,7 @@ func (a *AdminServiceApiService) GetTaskExecution(ctx context.Context, idNodeExe } if localVarHttpResponse.StatusCode == 200 { - var v FlyteidladminTaskExecution + var v AdminWorkflowExecutionGetMetricsResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -2205,54 +2217,49 @@ func (a *AdminServiceApiService) GetTaskExecution(ctx context.Context, idNodeExe } /* -AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. +AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. - * @param idNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idNodeExecutionIdExecutionIdName User or system provided value for the resource. - * @param idNodeExecutionIdNodeId - * @param idTaskIdProject Name of the project the resource belongs to. - * @param idTaskIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idTaskIdName User provided value for the resource. - * @param idTaskIdVersion Specific version of the resource. - * @param idRetryAttempt - * @param optional nil or *GetTaskExecutionDataOpts - Optional Parameters: - * @param "IdTaskIdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. + * @param idVersion Specific version of the resource. + * @param optional nil or *GetLaunchPlanOpts - Optional Parameters: + * @param "IdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminTaskExecutionGetDataResponse +@return AdminLaunchPlan */ -type GetTaskExecutionDataOpts struct { - IdTaskIdResourceType optional.String +type GetLaunchPlanOpts struct { + IdResourceType optional.String + IdOrg optional.String } -func (a *AdminServiceApiService) GetTaskExecutionData(ctx context.Context, idNodeExecutionIdExecutionIdProject string, idNodeExecutionIdExecutionIdDomain string, idNodeExecutionIdExecutionIdName string, idNodeExecutionIdNodeId string, idTaskIdProject string, idTaskIdDomain string, idTaskIdName string, idTaskIdVersion string, idRetryAttempt int64, localVarOptionals *GetTaskExecutionDataOpts) (AdminTaskExecutionGetDataResponse, *http.Response, error) { +func (a *AdminServiceApiService) GetLaunchPlan(ctx context.Context, idProject string, idDomain string, idName string, idVersion string, localVarOptionals *GetLaunchPlanOpts) (AdminLaunchPlan, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminTaskExecutionGetDataResponse + localVarReturnValue AdminLaunchPlan ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/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}" - localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.node_id"+"}", fmt.Sprintf("%v", idNodeExecutionIdNodeId), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.project"+"}", fmt.Sprintf("%v", idTaskIdProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.domain"+"}", fmt.Sprintf("%v", idTaskIdDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.name"+"}", fmt.Sprintf("%v", idTaskIdName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.version"+"}", fmt.Sprintf("%v", idTaskIdVersion), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.retry_attempt"+"}", fmt.Sprintf("%v", idRetryAttempt), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdTaskIdResourceType.IsSet() { - localVarQueryParams.Add("id.task_id.resource_type", parameterToString(localVarOptionals.IdTaskIdResourceType.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdResourceType.IsSet() { + localVarQueryParams.Add("id.resource_type", parameterToString(localVarOptionals.IdResourceType.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -2302,7 +2309,7 @@ func (a *AdminServiceApiService) GetTaskExecutionData(ctx context.Context, idNod } if localVarHttpResponse.StatusCode == 200 { - var v AdminTaskExecutionGetDataResponse + var v AdminLaunchPlan err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -2319,27 +2326,47 @@ func (a *AdminServiceApiService) GetTaskExecutionData(ctx context.Context, idNod } /* -AdminServiceApiService +AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. + * @param idVersion Specific version of the resource. + * @param optional nil or *GetLaunchPlan2Opts - Optional Parameters: + * @param "IdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects -@return AdminGetVersionResponse +@return AdminLaunchPlan */ -func (a *AdminServiceApiService) GetVersion(ctx context.Context) (AdminGetVersionResponse, *http.Response, error) { + +type GetLaunchPlan2Opts struct { + IdResourceType optional.String +} + +func (a *AdminServiceApiService) GetLaunchPlan2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, idVersion string, localVarOptionals *GetLaunchPlan2Opts) (AdminLaunchPlan, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminGetVersionResponse + localVarReturnValue AdminLaunchPlan ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/version" + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.IdResourceType.IsSet() { + localVarQueryParams.Add("id.resource_type", parameterToString(localVarOptionals.IdResourceType.Value(), "")) + } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -2388,7 +2415,7 @@ func (a *AdminServiceApiService) GetVersion(ctx context.Context) (AdminGetVersio } if localVarHttpResponse.StatusCode == 200 { - var v AdminGetVersionResponse + var v AdminLaunchPlan err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -2405,44 +2432,44 @@ func (a *AdminServiceApiService) GetVersion(ctx context.Context) (AdminGetVersio } /* -AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. +AdminServiceApiService Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param resourceType Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. - * @param idVersion Specific version of the resource. - * @param optional nil or *GetWorkflowOpts - Optional Parameters: - * @param "IdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *GetNamedEntityOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminWorkflow +@return AdminNamedEntity */ -type GetWorkflowOpts struct { - IdResourceType optional.String +type GetNamedEntityOpts struct { + IdOrg optional.String } -func (a *AdminServiceApiService) GetWorkflow(ctx context.Context, idProject string, idDomain string, idName string, idVersion string, localVarOptionals *GetWorkflowOpts) (AdminWorkflow, *http.Response, error) { +func (a *AdminServiceApiService) GetNamedEntity(ctx context.Context, resourceType string, idProject string, idDomain string, idName string, localVarOptionals *GetNamedEntityOpts) (AdminNamedEntity, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflow + localVarReturnValue AdminNamedEntity ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath := a.client.cfg.BasePath + "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdResourceType.IsSet() { - localVarQueryParams.Add("id.resource_type", parameterToString(localVarOptionals.IdResourceType.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -2492,7 +2519,7 @@ func (a *AdminServiceApiService) GetWorkflow(ctx context.Context, idProject stri } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflow + var v AdminNamedEntity err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -2509,43 +2536,37 @@ func (a *AdminServiceApiService) GetWorkflow(ctx context.Context, idProject stri } /* -AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +AdminServiceApiService Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param project Unique project id which this set of attributes references. +required - * @param domain Unique domain id which this set of attributes references. +required - * @param workflow Workflow name which this set of attributes references. +required - * @param optional nil or *GetWorkflowAttributesOpts - Optional Parameters: - * @param "ResourceType" (optional.String) - Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + * @param resourceType Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' -@return AdminWorkflowAttributesGetResponse +@return AdminNamedEntity */ - -type GetWorkflowAttributesOpts struct { - ResourceType optional.String -} - -func (a *AdminServiceApiService) GetWorkflowAttributes(ctx context.Context, project string, domain string, workflow string, localVarOptionals *GetWorkflowAttributesOpts) (AdminWorkflowAttributesGetResponse, *http.Response, error) { +func (a *AdminServiceApiService) GetNamedEntity2(ctx context.Context, resourceType string, idOrg string, idProject string, idDomain string, idName string) (AdminNamedEntity, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowAttributesGetResponse + localVarReturnValue AdminNamedEntity ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { - localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -2594,7 +2615,7 @@ func (a *AdminServiceApiService) GetWorkflowAttributes(ctx context.Context, proj } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowAttributesGetResponse + var v AdminNamedEntity err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -2611,55 +2632,44 @@ func (a *AdminServiceApiService) GetWorkflowAttributes(ctx context.Context, proj } /* -AdminServiceApiService List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. +AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param project Name of the project that contains the identifiers. +required. - * @param domain Name of the domain the identifiers belongs to within the project. +required. - * @param optional nil or *ListActiveLaunchPlansOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.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. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param idExecutionIdProject Name of the project the resource belongs to. + * @param idExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idExecutionIdName User or system provided value for the resource. + * @param idNodeId + * @param optional nil or *GetNodeExecutionOpts - Optional Parameters: + * @param "IdExecutionIdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminLaunchPlanList +@return FlyteidladminNodeExecution */ -type ListActiveLaunchPlansOpts struct { - Limit optional.Int64 - Token optional.String - SortByKey optional.String - SortByDirection optional.String +type GetNodeExecutionOpts struct { + IdExecutionIdOrg optional.String } -func (a *AdminServiceApiService) ListActiveLaunchPlans(ctx context.Context, project string, domain string, localVarOptionals *ListActiveLaunchPlansOpts) (AdminLaunchPlanList, *http.Response, error) { +func (a *AdminServiceApiService) GetNodeExecution(ctx context.Context, idExecutionIdProject string, idExecutionIdDomain string, idExecutionIdName string, idNodeId string, localVarOptionals *GetNodeExecutionOpts) (FlyteidladminNodeExecution, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminLaunchPlanList + localVarReturnValue FlyteidladminNodeExecution ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/{project}/{domain}" - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.project"+"}", fmt.Sprintf("%v", idExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.domain"+"}", fmt.Sprintf("%v", idExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.name"+"}", fmt.Sprintf("%v", idExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_id"+"}", fmt.Sprintf("%v", idNodeId), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdExecutionIdOrg.IsSet() { + localVarQueryParams.Add("id.execution_id.org", parameterToString(localVarOptionals.IdExecutionIdOrg.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -2709,7 +2719,7 @@ func (a *AdminServiceApiService) ListActiveLaunchPlans(ctx context.Context, proj } if localVarHttpResponse.StatusCode == 200 { - var v AdminLaunchPlanList + var v FlyteidladminNodeExecution err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -2726,65 +2736,37 @@ func (a *AdminServiceApiService) ListActiveLaunchPlans(ctx context.Context, proj } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. +AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param resourceType Identifies the specific type of resource that this identifier corresponds to. - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' - * @param optional nil or *ListDescriptionEntitiesOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.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. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param idExecutionIdOrg Optional, org key applied to the resource. + * @param idExecutionIdProject Name of the project the resource belongs to. + * @param idExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idExecutionIdName User or system provided value for the resource. + * @param idNodeId -@return AdminDescriptionEntityList +@return FlyteidladminNodeExecution */ - -type ListDescriptionEntitiesOpts struct { - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String -} - -func (a *AdminServiceApiService) ListDescriptionEntities(ctx context.Context, resourceType string, idProject string, idDomain string, idName string, localVarOptionals *ListDescriptionEntitiesOpts) (AdminDescriptionEntityList, *http.Response, error) { +func (a *AdminServiceApiService) GetNodeExecution2(ctx context.Context, idExecutionIdOrg string, idExecutionIdProject string, idExecutionIdDomain string, idExecutionIdName string, idNodeId string) (FlyteidladminNodeExecution, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminDescriptionEntityList + localVarReturnValue FlyteidladminNodeExecution ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.org"+"}", fmt.Sprintf("%v", idExecutionIdOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.project"+"}", fmt.Sprintf("%v", idExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.domain"+"}", fmt.Sprintf("%v", idExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.name"+"}", fmt.Sprintf("%v", idExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_id"+"}", fmt.Sprintf("%v", idNodeId), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -2833,7 +2815,7 @@ func (a *AdminServiceApiService) ListDescriptionEntities(ctx context.Context, re } if localVarHttpResponse.StatusCode == 200 { - var v AdminDescriptionEntityList + var v FlyteidladminNodeExecution err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -2850,67 +2832,44 @@ func (a *AdminServiceApiService) ListDescriptionEntities(ctx context.Context, re } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. +AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param resourceType Identifies the specific type of resource that this identifier corresponds to. - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param optional nil or *ListDescriptionEntities2Opts - Optional Parameters: - * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.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. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param idExecutionIdProject Name of the project the resource belongs to. + * @param idExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idExecutionIdName User or system provided value for the resource. + * @param idNodeId + * @param optional nil or *GetNodeExecutionDataOpts - Optional Parameters: + * @param "IdExecutionIdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminDescriptionEntityList +@return AdminNodeExecutionGetDataResponse */ -type ListDescriptionEntities2Opts struct { - IdName optional.String - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String +type GetNodeExecutionDataOpts struct { + IdExecutionIdOrg optional.String } -func (a *AdminServiceApiService) ListDescriptionEntities2(ctx context.Context, resourceType string, idProject string, idDomain string, localVarOptionals *ListDescriptionEntities2Opts) (AdminDescriptionEntityList, *http.Response, error) { +func (a *AdminServiceApiService) GetNodeExecutionData(ctx context.Context, idExecutionIdProject string, idExecutionIdDomain string, idExecutionIdName string, idNodeId string, localVarOptionals *GetNodeExecutionDataOpts) (AdminNodeExecutionGetDataResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminDescriptionEntityList + localVarReturnValue AdminNodeExecutionGetDataResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}" - localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.project"+"}", fmt.Sprintf("%v", idExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.domain"+"}", fmt.Sprintf("%v", idExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.name"+"}", fmt.Sprintf("%v", idExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_id"+"}", fmt.Sprintf("%v", idNodeId), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { - localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdExecutionIdOrg.IsSet() { + localVarQueryParams.Add("id.execution_id.org", parameterToString(localVarOptionals.IdExecutionIdOrg.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -2960,7 +2919,7 @@ func (a *AdminServiceApiService) ListDescriptionEntities2(ctx context.Context, r } if localVarHttpResponse.StatusCode == 200 { - var v AdminDescriptionEntityList + var v AdminNodeExecutionGetDataResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -2977,66 +2936,37 @@ func (a *AdminServiceApiService) ListDescriptionEntities2(ctx context.Context, r } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Execution`. +AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param optional nil or *ListExecutionsOpts - Optional Parameters: - * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param idExecutionIdOrg Optional, org key applied to the resource. + * @param idExecutionIdProject Name of the project the resource belongs to. + * @param idExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idExecutionIdName User or system provided value for the resource. + * @param idNodeId -@return AdminExecutionList +@return AdminNodeExecutionGetDataResponse */ - -type ListExecutionsOpts struct { - IdName optional.String - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String -} - -func (a *AdminServiceApiService) ListExecutions(ctx context.Context, idProject string, idDomain string, localVarOptionals *ListExecutionsOpts) (AdminExecutionList, *http.Response, error) { +func (a *AdminServiceApiService) GetNodeExecutionData2(ctx context.Context, idExecutionIdOrg string, idExecutionIdProject string, idExecutionIdDomain string, idExecutionIdName string, idNodeId string) (AdminNodeExecutionGetDataResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminExecutionList + localVarReturnValue AdminNodeExecutionGetDataResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/executions/{id.project}/{id.domain}" - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.org"+"}", fmt.Sprintf("%v", idExecutionIdOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.project"+"}", fmt.Sprintf("%v", idExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.domain"+"}", fmt.Sprintf("%v", idExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.execution_id.name"+"}", fmt.Sprintf("%v", idExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_id"+"}", fmt.Sprintf("%v", idNodeId), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { - localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -3085,7 +3015,7 @@ func (a *AdminServiceApiService) ListExecutions(ctx context.Context, idProject s } if localVarHttpResponse.StatusCode == 200 { - var v AdminExecutionList + var v AdminNodeExecutionGetDataResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -3102,60 +3032,43 @@ func (a *AdminServiceApiService) ListExecutions(ctx context.Context, idProject s } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. +AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param project Name of the project that contains the identifiers. +required - * @param domain Name of the domain the identifiers belongs to within the project. +required - * @param optional nil or *ListLaunchPlanIdsOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.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. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + * @param project Unique project id which this set of attributes references. +required + * @param optional nil or *GetProjectAttributesOpts - Optional Parameters: + * @param "ResourceType" (optional.String) - Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + * @param "Org" (optional.String) - Optional, org key applied to the project. -@return AdminNamedEntityIdentifierList +@return AdminProjectAttributesGetResponse */ -type ListLaunchPlanIdsOpts struct { - Limit optional.Int64 - Token optional.String - SortByKey optional.String - SortByDirection optional.String - Filters optional.String +type GetProjectAttributesOpts struct { + ResourceType optional.String + Org optional.String } -func (a *AdminServiceApiService) ListLaunchPlanIds(ctx context.Context, project string, domain string, localVarOptionals *ListLaunchPlanIdsOpts) (AdminNamedEntityIdentifierList, *http.Response, error) { +func (a *AdminServiceApiService) GetProjectAttributes(ctx context.Context, project string, localVarOptionals *GetProjectAttributesOpts) (AdminProjectAttributesGetResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminNamedEntityIdentifierList + localVarReturnValue AdminProjectAttributesGetResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plan_ids/{project}/{domain}" + localVarPath := a.client.cfg.BasePath + "/api/v1/project_attributes/{project}" localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { + localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -3205,7 +3118,7 @@ func (a *AdminServiceApiService) ListLaunchPlanIds(ctx context.Context, project } if localVarHttpResponse.StatusCode == 200 { - var v AdminNamedEntityIdentifierList + var v AdminProjectAttributesGetResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -3222,62 +3135,40 @@ func (a *AdminServiceApiService) ListLaunchPlanIds(ctx context.Context, project } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' - * @param optional nil or *ListLaunchPlansOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param org Optional, org key applied to the project. + * @param project Unique project id which this set of attributes references. +required + * @param optional nil or *GetProjectAttributes2Opts - Optional Parameters: + * @param "ResourceType" (optional.String) - Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. -@return AdminLaunchPlanList +@return AdminProjectAttributesGetResponse */ -type ListLaunchPlansOpts struct { - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String +type GetProjectAttributes2Opts struct { + ResourceType optional.String } -func (a *AdminServiceApiService) ListLaunchPlans(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *ListLaunchPlansOpts) (AdminLaunchPlanList, *http.Response, error) { +func (a *AdminServiceApiService) GetProjectAttributes2(ctx context.Context, org string, project string, localVarOptionals *GetProjectAttributes2Opts) (AdminProjectAttributesGetResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminLaunchPlanList + localVarReturnValue AdminProjectAttributesGetResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/org/{org}/{project}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { + localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -3327,7 +3218,7 @@ func (a *AdminServiceApiService) ListLaunchPlans(ctx context.Context, idProject } if localVarHttpResponse.StatusCode == 200 { - var v AdminLaunchPlanList + var v AdminProjectAttributesGetResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -3344,65 +3235,45 @@ func (a *AdminServiceApiService) ListLaunchPlans(ctx context.Context, idProject } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param optional nil or *ListLaunchPlans2Opts - Optional Parameters: - * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param optional nil or *GetProjectDomainAttributesOpts - Optional Parameters: + * @param "ResourceType" (optional.String) - Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + * @param "Org" (optional.String) - Optional, org key applied to the attributes. -@return AdminLaunchPlanList +@return AdminProjectDomainAttributesGetResponse */ -type ListLaunchPlans2Opts struct { - IdName optional.String - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String +type GetProjectDomainAttributesOpts struct { + ResourceType optional.String + Org optional.String } -func (a *AdminServiceApiService) ListLaunchPlans2(ctx context.Context, idProject string, idDomain string, localVarOptionals *ListLaunchPlans2Opts) (AdminLaunchPlanList, *http.Response, error) { +func (a *AdminServiceApiService) GetProjectDomainAttributes(ctx context.Context, project string, domain string, localVarOptionals *GetProjectDomainAttributesOpts) (AdminProjectDomainAttributesGetResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminLaunchPlanList + localVarReturnValue AdminProjectDomainAttributesGetResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/{id.project}/{id.domain}" - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { - localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { + localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -3452,7 +3323,7 @@ func (a *AdminServiceApiService) ListLaunchPlans2(ctx context.Context, idProject } if localVarHttpResponse.StatusCode == 200 { - var v AdminLaunchPlanList + var v AdminProjectDomainAttributesGetResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -3469,29 +3340,35 @@ func (a *AdminServiceApiService) ListLaunchPlans2(ctx context.Context, idProject } /* -AdminServiceApiService Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. +AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param optional nil or *ListMatchableAttributesOpts - Optional Parameters: - * @param "ResourceType" (optional.String) - +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + * @param org Optional, org key applied to the attributes. + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param optional nil or *GetProjectDomainAttributes2Opts - Optional Parameters: + * @param "ResourceType" (optional.String) - Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. -@return AdminListMatchableAttributesResponse +@return AdminProjectDomainAttributesGetResponse */ -type ListMatchableAttributesOpts struct { +type GetProjectDomainAttributes2Opts struct { ResourceType optional.String } -func (a *AdminServiceApiService) ListMatchableAttributes(ctx context.Context, localVarOptionals *ListMatchableAttributesOpts) (AdminListMatchableAttributesResponse, *http.Response, error) { +func (a *AdminServiceApiService) GetProjectDomainAttributes2(ctx context.Context, org string, project string, domain string, localVarOptionals *GetProjectDomainAttributes2Opts) (AdminProjectDomainAttributesGetResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminListMatchableAttributesResponse + localVarReturnValue AdminProjectDomainAttributesGetResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/matchable_attributes" + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/org/{org}/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -3548,7 +3425,7 @@ func (a *AdminServiceApiService) ListMatchableAttributes(ctx context.Context, lo } if localVarHttpResponse.StatusCode == 200 { - var v AdminListMatchableAttributesResponse + var v AdminProjectDomainAttributesGetResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -3565,62 +3442,49 @@ func (a *AdminServiceApiService) ListMatchableAttributes(ctx context.Context, lo } /* -AdminServiceApiService Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. +AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.Task` definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param resourceType Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required - * @param project Name of the project that contains the identifiers. +required - * @param domain Name of the domain the identifiers belongs to within the project. - * @param optional nil or *ListNamedEntitiesOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. - * @param "Token" (optional.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. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. + * @param idVersion Specific version of the resource. + * @param optional nil or *GetTaskOpts - Optional Parameters: + * @param "IdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminNamedEntityList +@return AdminTask */ -type ListNamedEntitiesOpts struct { - Limit optional.Int64 - Token optional.String - SortByKey optional.String - SortByDirection optional.String - Filters optional.String +type GetTaskOpts struct { + IdResourceType optional.String + IdOrg optional.String } -func (a *AdminServiceApiService) ListNamedEntities(ctx context.Context, resourceType string, project string, domain string, localVarOptionals *ListNamedEntitiesOpts) (AdminNamedEntityList, *http.Response, error) { +func (a *AdminServiceApiService) GetTask(ctx context.Context, idProject string, idDomain string, idName string, idVersion string, localVarOptionals *GetTaskOpts) (AdminTask, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminNamedEntityList + localVarReturnValue AdminTask ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/named_entities/{resource_type}/{project}/{domain}" - localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdResourceType.IsSet() { + localVarQueryParams.Add("id.resource_type", parameterToString(localVarOptionals.IdResourceType.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -3670,7 +3534,7 @@ func (a *AdminServiceApiService) ListNamedEntities(ctx context.Context, resource } if localVarHttpResponse.StatusCode == 200 { - var v AdminNamedEntityList + var v AdminTask err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -3687,67 +3551,46 @@ func (a *AdminServiceApiService) ListNamedEntities(ctx context.Context, resource } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. +AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.Task` definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param workflowExecutionIdProject Name of the project the resource belongs to. - * @param workflowExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param workflowExecutionIdName User or system provided value for the resource. - * @param optional nil or *ListNodeExecutionsOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.String) - - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - * @param "UniqueParentId" (optional.String) - Unique identifier of the parent node in the execution +optional. + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. + * @param idVersion Specific version of the resource. + * @param optional nil or *GetTask2Opts - Optional Parameters: + * @param "IdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects -@return AdminNodeExecutionList +@return AdminTask */ -type ListNodeExecutionsOpts struct { - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String - UniqueParentId optional.String +type GetTask2Opts struct { + IdResourceType optional.String } -func (a *AdminServiceApiService) ListNodeExecutions(ctx context.Context, workflowExecutionIdProject string, workflowExecutionIdDomain string, workflowExecutionIdName string, localVarOptionals *ListNodeExecutionsOpts) (AdminNodeExecutionList, *http.Response, error) { +func (a *AdminServiceApiService) GetTask2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, idVersion string, localVarOptionals *GetTask2Opts) (AdminTask, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminNodeExecutionList + localVarReturnValue AdminTask ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"workflow_execution_id.project"+"}", fmt.Sprintf("%v", workflowExecutionIdProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"workflow_execution_id.domain"+"}", fmt.Sprintf("%v", workflowExecutionIdDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"workflow_execution_id.name"+"}", fmt.Sprintf("%v", workflowExecutionIdName), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.UniqueParentId.IsSet() { - localVarQueryParams.Add("unique_parent_id", parameterToString(localVarOptionals.UniqueParentId.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdResourceType.IsSet() { + localVarQueryParams.Add("id.resource_type", parameterToString(localVarOptionals.IdResourceType.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -3797,7 +3640,7 @@ func (a *AdminServiceApiService) ListNodeExecutions(ctx context.Context, workflo } if localVarHttpResponse.StatusCode == 200 { - var v AdminNodeExecutionList + var v AdminTask err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -3814,79 +3657,64 @@ func (a *AdminServiceApiService) ListNodeExecutions(ctx context.Context, workflo } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. +AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param taskExecutionIdNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. - * @param taskExecutionIdNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param taskExecutionIdNodeExecutionIdExecutionIdName User or system provided value for the resource. - * @param taskExecutionIdNodeExecutionIdNodeId - * @param taskExecutionIdTaskIdProject Name of the project the resource belongs to. - * @param taskExecutionIdTaskIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param taskExecutionIdTaskIdName User provided value for the resource. - * @param taskExecutionIdTaskIdVersion Specific version of the resource. - * @param taskExecutionIdRetryAttempt - * @param optional nil or *ListNodeExecutionsForTaskOpts - Optional Parameters: - * @param "TaskExecutionIdTaskIdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.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. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param idNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. + * @param idNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idNodeExecutionIdExecutionIdName User or system provided value for the resource. + * @param idNodeExecutionIdNodeId + * @param idTaskIdProject Name of the project the resource belongs to. + * @param idTaskIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idTaskIdName User provided value for the resource. + * @param idTaskIdVersion Specific version of the resource. + * @param idRetryAttempt + * @param optional nil or *GetTaskExecutionOpts - Optional Parameters: + * @param "IdTaskIdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param "IdTaskIdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "IdNodeExecutionIdExecutionIdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminNodeExecutionList +@return FlyteidladminTaskExecution */ -type ListNodeExecutionsForTaskOpts struct { - TaskExecutionIdTaskIdResourceType optional.String - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String +type GetTaskExecutionOpts struct { + IdTaskIdResourceType optional.String + IdTaskIdOrg optional.String + IdNodeExecutionIdExecutionIdOrg optional.String } -func (a *AdminServiceApiService) ListNodeExecutionsForTask(ctx context.Context, taskExecutionIdNodeExecutionIdExecutionIdProject string, taskExecutionIdNodeExecutionIdExecutionIdDomain string, taskExecutionIdNodeExecutionIdExecutionIdName string, taskExecutionIdNodeExecutionIdNodeId string, taskExecutionIdTaskIdProject string, taskExecutionIdTaskIdDomain string, taskExecutionIdTaskIdName string, taskExecutionIdTaskIdVersion string, taskExecutionIdRetryAttempt int64, localVarOptionals *ListNodeExecutionsForTaskOpts) (AdminNodeExecutionList, *http.Response, error) { +func (a *AdminServiceApiService) GetTaskExecution(ctx context.Context, idNodeExecutionIdExecutionIdProject string, idNodeExecutionIdExecutionIdDomain string, idNodeExecutionIdExecutionIdName string, idNodeExecutionIdNodeId string, idTaskIdProject string, idTaskIdDomain string, idTaskIdName string, idTaskIdVersion string, idRetryAttempt int64, localVarOptionals *GetTaskExecutionOpts) (FlyteidladminTaskExecution, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminNodeExecutionList + localVarReturnValue FlyteidladminTaskExecution ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/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}" - localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdExecutionIdProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdExecutionIdDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdExecutionIdName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.node_id"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdNodeId), -1) - localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.project"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.domain"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.name"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.version"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdVersion), -1) - localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.retry_attempt"+"}", fmt.Sprintf("%v", taskExecutionIdRetryAttempt), -1) + localVarPath := a.client.cfg.BasePath + "/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}" + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.node_id"+"}", fmt.Sprintf("%v", idNodeExecutionIdNodeId), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.project"+"}", fmt.Sprintf("%v", idTaskIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.domain"+"}", fmt.Sprintf("%v", idTaskIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.name"+"}", fmt.Sprintf("%v", idTaskIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.version"+"}", fmt.Sprintf("%v", idTaskIdVersion), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.retry_attempt"+"}", fmt.Sprintf("%v", idRetryAttempt), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.TaskExecutionIdTaskIdResourceType.IsSet() { - localVarQueryParams.Add("task_execution_id.task_id.resource_type", parameterToString(localVarOptionals.TaskExecutionIdTaskIdResourceType.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdTaskIdResourceType.IsSet() { + localVarQueryParams.Add("id.task_id.resource_type", parameterToString(localVarOptionals.IdTaskIdResourceType.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdTaskIdOrg.IsSet() { + localVarQueryParams.Add("id.task_id.org", parameterToString(localVarOptionals.IdTaskIdOrg.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdNodeExecutionIdExecutionIdOrg.IsSet() { + localVarQueryParams.Add("id.node_execution_id.execution_id.org", parameterToString(localVarOptionals.IdNodeExecutionIdExecutionIdOrg.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -3936,7 +3764,7 @@ func (a *AdminServiceApiService) ListNodeExecutionsForTask(ctx context.Context, } if localVarHttpResponse.StatusCode == 200 { - var v AdminNodeExecutionList + var v FlyteidladminTaskExecution err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -3953,56 +3781,61 @@ func (a *AdminServiceApiService) ListNodeExecutionsForTask(ctx context.Context, } /* -AdminServiceApiService Fetches a list of :ref:`ref_flyteidl.admin.Project` +AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param optional nil or *ListProjectsOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of projects to be returned. +required. - * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param idNodeExecutionIdExecutionIdOrg Optional, org key applied to the resource. + * @param idNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. + * @param idNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idNodeExecutionIdExecutionIdName User or system provided value for the resource. + * @param idNodeExecutionIdNodeId + * @param idTaskIdProject Name of the project the resource belongs to. + * @param idTaskIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idTaskIdName User provided value for the resource. + * @param idTaskIdVersion Specific version of the resource. + * @param idRetryAttempt + * @param optional nil or *GetTaskExecution2Opts - Optional Parameters: + * @param "IdTaskIdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param "IdTaskIdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminProjects +@return FlyteidladminTaskExecution */ -type ListProjectsOpts struct { - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String +type GetTaskExecution2Opts struct { + IdTaskIdResourceType optional.String + IdTaskIdOrg optional.String } -func (a *AdminServiceApiService) ListProjects(ctx context.Context, localVarOptionals *ListProjectsOpts) (AdminProjects, *http.Response, error) { +func (a *AdminServiceApiService) GetTaskExecution2(ctx context.Context, idNodeExecutionIdExecutionIdOrg string, idNodeExecutionIdExecutionIdProject string, idNodeExecutionIdExecutionIdDomain string, idNodeExecutionIdExecutionIdName string, idNodeExecutionIdNodeId string, idTaskIdProject string, idTaskIdDomain string, idTaskIdName string, idTaskIdVersion string, idRetryAttempt int64, localVarOptionals *GetTaskExecution2Opts) (FlyteidladminTaskExecution, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjects + localVarReturnValue FlyteidladminTaskExecution ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/projects" + localVarPath := a.client.cfg.BasePath + "/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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}" + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.org"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.node_id"+"}", fmt.Sprintf("%v", idNodeExecutionIdNodeId), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.project"+"}", fmt.Sprintf("%v", idTaskIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.domain"+"}", fmt.Sprintf("%v", idTaskIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.name"+"}", fmt.Sprintf("%v", idTaskIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.version"+"}", fmt.Sprintf("%v", idTaskIdVersion), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.retry_attempt"+"}", fmt.Sprintf("%v", idRetryAttempt), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdTaskIdResourceType.IsSet() { + localVarQueryParams.Add("id.task_id.resource_type", parameterToString(localVarOptionals.IdTaskIdResourceType.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdTaskIdOrg.IsSet() { + localVarQueryParams.Add("id.task_id.org", parameterToString(localVarOptionals.IdTaskIdOrg.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -4052,7 +3885,7 @@ func (a *AdminServiceApiService) ListProjects(ctx context.Context, localVarOptio } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjects + var v FlyteidladminTaskExecution err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -4069,65 +3902,5490 @@ func (a *AdminServiceApiService) ListProjects(ctx context.Context, localVarOptio } /* -AdminServiceApiService Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. +AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param nodeExecutionIdExecutionIdProject Name of the project the resource belongs to. - * @param nodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param nodeExecutionIdExecutionIdName User or system provided value for the resource. - * @param nodeExecutionIdNodeId - * @param optional nil or *ListTaskExecutionsOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.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. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param idNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. + * @param idNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idNodeExecutionIdExecutionIdName User or system provided value for the resource. + * @param idNodeExecutionIdNodeId + * @param idTaskIdProject Name of the project the resource belongs to. + * @param idTaskIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idTaskIdName User provided value for the resource. + * @param idTaskIdVersion Specific version of the resource. + * @param idRetryAttempt + * @param optional nil or *GetTaskExecutionDataOpts - Optional Parameters: + * @param "IdTaskIdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param "IdTaskIdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "IdNodeExecutionIdExecutionIdOrg" (optional.String) - Optional, org key applied to the resource. -@return AdminTaskExecutionList +@return AdminTaskExecutionGetDataResponse */ -type ListTaskExecutionsOpts struct { - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String +type GetTaskExecutionDataOpts struct { + IdTaskIdResourceType optional.String + IdTaskIdOrg optional.String + IdNodeExecutionIdExecutionIdOrg optional.String } -func (a *AdminServiceApiService) ListTaskExecutions(ctx context.Context, nodeExecutionIdExecutionIdProject string, nodeExecutionIdExecutionIdDomain string, nodeExecutionIdExecutionIdName string, nodeExecutionIdNodeId string, localVarOptionals *ListTaskExecutionsOpts) (AdminTaskExecutionList, *http.Response, error) { +func (a *AdminServiceApiService) GetTaskExecutionData(ctx context.Context, idNodeExecutionIdExecutionIdProject string, idNodeExecutionIdExecutionIdDomain string, idNodeExecutionIdExecutionIdName string, idNodeExecutionIdNodeId string, idTaskIdProject string, idTaskIdDomain string, idTaskIdName string, idTaskIdVersion string, idRetryAttempt int64, localVarOptionals *GetTaskExecutionDataOpts) (AdminTaskExecutionGetDataResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminTaskExecutionList + localVarReturnValue AdminTaskExecutionGetDataResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/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}" - localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", nodeExecutionIdExecutionIdProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", nodeExecutionIdExecutionIdDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", nodeExecutionIdExecutionIdName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.node_id"+"}", fmt.Sprintf("%v", nodeExecutionIdNodeId), -1) + localVarPath := a.client.cfg.BasePath + "/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}" + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.node_id"+"}", fmt.Sprintf("%v", idNodeExecutionIdNodeId), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.project"+"}", fmt.Sprintf("%v", idTaskIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.domain"+"}", fmt.Sprintf("%v", idTaskIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.name"+"}", fmt.Sprintf("%v", idTaskIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.version"+"}", fmt.Sprintf("%v", idTaskIdVersion), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.retry_attempt"+"}", fmt.Sprintf("%v", idRetryAttempt), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdTaskIdResourceType.IsSet() { + localVarQueryParams.Add("id.task_id.resource_type", parameterToString(localVarOptionals.IdTaskIdResourceType.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdTaskIdOrg.IsSet() { + localVarQueryParams.Add("id.task_id.org", parameterToString(localVarOptionals.IdTaskIdOrg.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + if localVarOptionals != nil && localVarOptionals.IdNodeExecutionIdExecutionIdOrg.IsSet() { + localVarQueryParams.Add("id.node_execution_id.execution_id.org", parameterToString(localVarOptionals.IdNodeExecutionIdExecutionIdOrg.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminTaskExecutionGetDataResponse + 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 Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idNodeExecutionIdExecutionIdOrg Optional, org key applied to the resource. + * @param idNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. + * @param idNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idNodeExecutionIdExecutionIdName User or system provided value for the resource. + * @param idNodeExecutionIdNodeId + * @param idTaskIdProject Name of the project the resource belongs to. + * @param idTaskIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idTaskIdName User provided value for the resource. + * @param idTaskIdVersion Specific version of the resource. + * @param idRetryAttempt + * @param optional nil or *GetTaskExecutionData2Opts - Optional Parameters: + * @param "IdTaskIdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param "IdTaskIdOrg" (optional.String) - Optional, org key applied to the resource. + +@return AdminTaskExecutionGetDataResponse +*/ + +type GetTaskExecutionData2Opts struct { + IdTaskIdResourceType optional.String + IdTaskIdOrg optional.String +} + +func (a *AdminServiceApiService) GetTaskExecutionData2(ctx context.Context, idNodeExecutionIdExecutionIdOrg string, idNodeExecutionIdExecutionIdProject string, idNodeExecutionIdExecutionIdDomain string, idNodeExecutionIdExecutionIdName string, idNodeExecutionIdNodeId string, idTaskIdProject string, idTaskIdDomain string, idTaskIdName string, idTaskIdVersion string, idRetryAttempt int64, localVarOptionals *GetTaskExecutionData2Opts) (AdminTaskExecutionGetDataResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminTaskExecutionGetDataResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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}" + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.org"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", idNodeExecutionIdExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.node_execution_id.node_id"+"}", fmt.Sprintf("%v", idNodeExecutionIdNodeId), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.project"+"}", fmt.Sprintf("%v", idTaskIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.domain"+"}", fmt.Sprintf("%v", idTaskIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.name"+"}", fmt.Sprintf("%v", idTaskIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.task_id.version"+"}", fmt.Sprintf("%v", idTaskIdVersion), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.retry_attempt"+"}", fmt.Sprintf("%v", idRetryAttempt), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdTaskIdResourceType.IsSet() { + localVarQueryParams.Add("id.task_id.resource_type", parameterToString(localVarOptionals.IdTaskIdResourceType.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.IdTaskIdOrg.IsSet() { + localVarQueryParams.Add("id.task_id.org", parameterToString(localVarOptionals.IdTaskIdOrg.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminTaskExecutionGetDataResponse + 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 + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + +@return AdminGetVersionResponse +*/ +func (a *AdminServiceApiService) GetVersion(ctx context.Context) (AdminGetVersionResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminGetVersionResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/version" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminGetVersionResponse + 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 Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. + * @param idVersion Specific version of the resource. + * @param optional nil or *GetWorkflowOpts - Optional Parameters: + * @param "IdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + +@return AdminWorkflow +*/ + +type GetWorkflowOpts struct { + IdResourceType optional.String + IdOrg optional.String +} + +func (a *AdminServiceApiService) GetWorkflow(ctx context.Context, idProject string, idDomain string, idName string, idVersion string, localVarOptionals *GetWorkflowOpts) (AdminWorkflow, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflow + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdResourceType.IsSet() { + localVarQueryParams.Add("id.resource_type", parameterToString(localVarOptionals.IdResourceType.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflow + 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 Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. + * @param idVersion Specific version of the resource. + * @param optional nil or *GetWorkflow2Opts - Optional Parameters: + * @param "IdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + +@return AdminWorkflow +*/ + +type GetWorkflow2Opts struct { + IdResourceType optional.String +} + +func (a *AdminServiceApiService) GetWorkflow2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, idVersion string, localVarOptionals *GetWorkflow2Opts) (AdminWorkflow, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflow + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdResourceType.IsSet() { + localVarQueryParams.Add("id.resource_type", parameterToString(localVarOptionals.IdResourceType.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflow + 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 Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param workflow Workflow name which this set of attributes references. +required + * @param optional nil or *GetWorkflowAttributesOpts - Optional Parameters: + * @param "ResourceType" (optional.String) - Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + * @param "Org" (optional.String) - Optional, org key applied to the attributes. + +@return AdminWorkflowAttributesGetResponse +*/ + +type GetWorkflowAttributesOpts struct { + ResourceType optional.String + Org optional.String +} + +func (a *AdminServiceApiService) GetWorkflowAttributes(ctx context.Context, project string, domain string, workflow string, localVarOptionals *GetWorkflowAttributesOpts) (AdminWorkflowAttributesGetResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowAttributesGetResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { + localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflowAttributesGetResponse + 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 Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org key applied to the attributes. + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param workflow Workflow name which this set of attributes references. +required + * @param optional nil or *GetWorkflowAttributes2Opts - Optional Parameters: + * @param "ResourceType" (optional.String) - Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + +@return AdminWorkflowAttributesGetResponse +*/ + +type GetWorkflowAttributes2Opts struct { + ResourceType optional.String +} + +func (a *AdminServiceApiService) GetWorkflowAttributes2(ctx context.Context, org string, project string, domain string, workflow string, localVarOptionals *GetWorkflowAttributes2Opts) (AdminWorkflowAttributesGetResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowAttributesGetResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { + localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflowAttributesGetResponse + 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 List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param project Name of the project that contains the identifiers. +required. + * @param domain Name of the domain the identifiers belongs to within the project. +required. + * @param optional nil or *ListActiveLaunchPlansOpts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Org" (optional.String) - Optional, org key applied to the resource. + +@return AdminLaunchPlanList +*/ + +type ListActiveLaunchPlansOpts struct { + Limit optional.Int64 + Token optional.String + SortByKey optional.String + SortByDirection optional.String + Org optional.String +} + +func (a *AdminServiceApiService) ListActiveLaunchPlans(ctx context.Context, project string, domain string, localVarOptionals *ListActiveLaunchPlansOpts) (AdminLaunchPlanList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminLaunchPlanList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminLaunchPlanList + 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 Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param resourceType Identifies the specific type of resource that this identifier corresponds to. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *ListDescriptionEntitiesOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminDescriptionEntityList +*/ + +type ListDescriptionEntitiesOpts struct { + IdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListDescriptionEntities(ctx context.Context, resourceType string, idProject string, idDomain string, idName string, localVarOptionals *ListDescriptionEntitiesOpts) (AdminDescriptionEntityList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminDescriptionEntityList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminDescriptionEntityList + 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 Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param resourceType Identifies the specific type of resource that this identifier corresponds to. + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *ListDescriptionEntities2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminDescriptionEntityList +*/ + +type ListDescriptionEntities2Opts struct { + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListDescriptionEntities2(ctx context.Context, resourceType string, idOrg string, idProject string, idDomain string, idName string, localVarOptionals *ListDescriptionEntities2Opts) (AdminDescriptionEntityList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminDescriptionEntityList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminDescriptionEntityList + 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 Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param resourceType Identifies the specific type of resource that this identifier corresponds to. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param optional nil or *ListDescriptionEntities3Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminDescriptionEntityList +*/ + +type ListDescriptionEntities3Opts struct { + IdName optional.String + IdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListDescriptionEntities3(ctx context.Context, resourceType string, idProject string, idDomain string, localVarOptionals *ListDescriptionEntities3Opts) (AdminDescriptionEntityList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminDescriptionEntityList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminDescriptionEntityList + 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 Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param resourceType Identifies the specific type of resource that this identifier corresponds to. + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param optional nil or *ListDescriptionEntities4Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminDescriptionEntityList +*/ + +type ListDescriptionEntities4Opts struct { + IdName optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListDescriptionEntities4(ctx context.Context, resourceType string, idOrg string, idProject string, idDomain string, localVarOptionals *ListDescriptionEntities4Opts) (AdminDescriptionEntityList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminDescriptionEntityList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminDescriptionEntityList + 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 Fetch a list of :ref:`ref_flyteidl.admin.Execution`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param optional nil or *ListExecutionsOpts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminExecutionList +*/ + +type ListExecutionsOpts struct { + IdName optional.String + IdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListExecutions(ctx context.Context, idProject string, idDomain string, localVarOptionals *ListExecutionsOpts) (AdminExecutionList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminExecutionList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/{id.project}/{id.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminExecutionList + 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 Fetch a list of :ref:`ref_flyteidl.admin.Execution`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param optional nil or *ListExecutions2Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminExecutionList +*/ + +type ListExecutions2Opts struct { + IdName optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListExecutions2(ctx context.Context, idOrg string, idProject string, idDomain string, localVarOptionals *ListExecutions2Opts) (AdminExecutionList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminExecutionList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminExecutionList + 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 Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param project Name of the project that contains the identifiers. +required + * @param domain Name of the domain the identifiers belongs to within the project. +required + * @param optional nil or *ListLaunchPlanIdsOpts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + * @param "Org" (optional.String) - Optional, org key applied to the resource. + +@return AdminNamedEntityIdentifierList +*/ + +type ListLaunchPlanIdsOpts struct { + Limit optional.Int64 + Token optional.String + SortByKey optional.String + SortByDirection optional.String + Filters optional.String + Org optional.String +} + +func (a *AdminServiceApiService) ListLaunchPlanIds(ctx context.Context, project string, domain string, localVarOptionals *ListLaunchPlanIdsOpts) (AdminNamedEntityIdentifierList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNamedEntityIdentifierList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plan_ids/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNamedEntityIdentifierList + 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 Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org key applied to the resource. + * @param project Name of the project that contains the identifiers. +required + * @param domain Name of the domain the identifiers belongs to within the project. +required + * @param optional nil or *ListLaunchPlanIds2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + +@return AdminNamedEntityIdentifierList +*/ + +type ListLaunchPlanIds2Opts struct { + Limit optional.Int64 + Token optional.String + SortByKey optional.String + SortByDirection optional.String + Filters optional.String +} + +func (a *AdminServiceApiService) ListLaunchPlanIds2(ctx context.Context, org string, project string, domain string, localVarOptionals *ListLaunchPlanIds2Opts) (AdminNamedEntityIdentifierList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNamedEntityIdentifierList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plan_ids/org/{org}/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNamedEntityIdentifierList + 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 Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *ListLaunchPlansOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminLaunchPlanList +*/ + +type ListLaunchPlansOpts struct { + IdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListLaunchPlans(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *ListLaunchPlansOpts) (AdminLaunchPlanList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminLaunchPlanList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminLaunchPlanList + 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 Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *ListLaunchPlans2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminLaunchPlanList +*/ + +type ListLaunchPlans2Opts struct { + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListLaunchPlans2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, localVarOptionals *ListLaunchPlans2Opts) (AdminLaunchPlanList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminLaunchPlanList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminLaunchPlanList + 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 Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param optional nil or *ListLaunchPlans3Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminLaunchPlanList +*/ + +type ListLaunchPlans3Opts struct { + IdName optional.String + IdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListLaunchPlans3(ctx context.Context, idProject string, idDomain string, localVarOptionals *ListLaunchPlans3Opts) (AdminLaunchPlanList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminLaunchPlanList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/{id.project}/{id.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminLaunchPlanList + 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 Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param optional nil or *ListLaunchPlans4Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminLaunchPlanList +*/ + +type ListLaunchPlans4Opts struct { + IdName optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListLaunchPlans4(ctx context.Context, idOrg string, idProject string, idDomain string, localVarOptionals *ListLaunchPlans4Opts) (AdminLaunchPlanList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminLaunchPlanList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminLaunchPlanList + 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 Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param optional nil or *ListMatchableAttributesOpts - Optional Parameters: + * @param "ResourceType" (optional.String) - +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + +@return AdminListMatchableAttributesResponse +*/ + +type ListMatchableAttributesOpts struct { + ResourceType optional.String +} + +func (a *AdminServiceApiService) ListMatchableAttributes(ctx context.Context, localVarOptionals *ListMatchableAttributesOpts) (AdminListMatchableAttributesResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminListMatchableAttributesResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/matchable_attributes" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { + localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminListMatchableAttributesResponse + 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 Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param resourceType Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required + * @param project Name of the project that contains the identifiers. +required + * @param domain Name of the domain the identifiers belongs to within the project. + * @param optional nil or *ListNamedEntitiesOpts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. + * @param "Token" (optional.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. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + * @param "Org" (optional.String) - Optional, org key applied to the resource. + +@return AdminNamedEntityList +*/ + +type ListNamedEntitiesOpts struct { + Limit optional.Int64 + Token optional.String + SortByKey optional.String + SortByDirection optional.String + Filters optional.String + Org optional.String +} + +func (a *AdminServiceApiService) ListNamedEntities(ctx context.Context, resourceType string, project string, domain string, localVarOptionals *ListNamedEntitiesOpts) (AdminNamedEntityList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNamedEntityList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/named_entities/{resource_type}/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNamedEntityList + 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 Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param resourceType Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required + * @param org Optional, org key applied to the resource. + * @param project Name of the project that contains the identifiers. +required + * @param domain Name of the domain the identifiers belongs to within the project. + * @param optional nil or *ListNamedEntities2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. + * @param "Token" (optional.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. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + +@return AdminNamedEntityList +*/ + +type ListNamedEntities2Opts struct { + Limit optional.Int64 + Token optional.String + SortByKey optional.String + SortByDirection optional.String + Filters optional.String +} + +func (a *AdminServiceApiService) ListNamedEntities2(ctx context.Context, resourceType string, org string, project string, domain string, localVarOptionals *ListNamedEntities2Opts) (AdminNamedEntityList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNamedEntityList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNamedEntityList + 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 Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param workflowExecutionIdProject Name of the project the resource belongs to. + * @param workflowExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param workflowExecutionIdName User or system provided value for the resource. + * @param optional nil or *ListNodeExecutionsOpts - Optional Parameters: + * @param "WorkflowExecutionIdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "UniqueParentId" (optional.String) - Unique identifier of the parent node in the execution +optional. + +@return AdminNodeExecutionList +*/ + +type ListNodeExecutionsOpts struct { + WorkflowExecutionIdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String + UniqueParentId optional.String +} + +func (a *AdminServiceApiService) ListNodeExecutions(ctx context.Context, workflowExecutionIdProject string, workflowExecutionIdDomain string, workflowExecutionIdName string, localVarOptionals *ListNodeExecutionsOpts) (AdminNodeExecutionList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNodeExecutionList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"workflow_execution_id.project"+"}", fmt.Sprintf("%v", workflowExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow_execution_id.domain"+"}", fmt.Sprintf("%v", workflowExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow_execution_id.name"+"}", fmt.Sprintf("%v", workflowExecutionIdName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.WorkflowExecutionIdOrg.IsSet() { + localVarQueryParams.Add("workflow_execution_id.org", parameterToString(localVarOptionals.WorkflowExecutionIdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.UniqueParentId.IsSet() { + localVarQueryParams.Add("unique_parent_id", parameterToString(localVarOptionals.UniqueParentId.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNodeExecutionList + 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 Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param workflowExecutionIdOrg Optional, org key applied to the resource. + * @param workflowExecutionIdProject Name of the project the resource belongs to. + * @param workflowExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param workflowExecutionIdName User or system provided value for the resource. + * @param optional nil or *ListNodeExecutions2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "UniqueParentId" (optional.String) - Unique identifier of the parent node in the execution +optional. + +@return AdminNodeExecutionList +*/ + +type ListNodeExecutions2Opts struct { + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String + UniqueParentId optional.String +} + +func (a *AdminServiceApiService) ListNodeExecutions2(ctx context.Context, workflowExecutionIdOrg string, workflowExecutionIdProject string, workflowExecutionIdDomain string, workflowExecutionIdName string, localVarOptionals *ListNodeExecutions2Opts) (AdminNodeExecutionList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNodeExecutionList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"workflow_execution_id.org"+"}", fmt.Sprintf("%v", workflowExecutionIdOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow_execution_id.project"+"}", fmt.Sprintf("%v", workflowExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow_execution_id.domain"+"}", fmt.Sprintf("%v", workflowExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow_execution_id.name"+"}", fmt.Sprintf("%v", workflowExecutionIdName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.UniqueParentId.IsSet() { + localVarQueryParams.Add("unique_parent_id", parameterToString(localVarOptionals.UniqueParentId.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNodeExecutionList + 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 Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param taskExecutionIdNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. + * @param taskExecutionIdNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param taskExecutionIdNodeExecutionIdExecutionIdName User or system provided value for the resource. + * @param taskExecutionIdNodeExecutionIdNodeId + * @param taskExecutionIdTaskIdProject Name of the project the resource belongs to. + * @param taskExecutionIdTaskIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param taskExecutionIdTaskIdName User provided value for the resource. + * @param taskExecutionIdTaskIdVersion Specific version of the resource. + * @param taskExecutionIdRetryAttempt + * @param optional nil or *ListNodeExecutionsForTaskOpts - Optional Parameters: + * @param "TaskExecutionIdTaskIdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param "TaskExecutionIdTaskIdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "TaskExecutionIdNodeExecutionIdExecutionIdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminNodeExecutionList +*/ + +type ListNodeExecutionsForTaskOpts struct { + TaskExecutionIdTaskIdResourceType optional.String + TaskExecutionIdTaskIdOrg optional.String + TaskExecutionIdNodeExecutionIdExecutionIdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListNodeExecutionsForTask(ctx context.Context, taskExecutionIdNodeExecutionIdExecutionIdProject string, taskExecutionIdNodeExecutionIdExecutionIdDomain string, taskExecutionIdNodeExecutionIdExecutionIdName string, taskExecutionIdNodeExecutionIdNodeId string, taskExecutionIdTaskIdProject string, taskExecutionIdTaskIdDomain string, taskExecutionIdTaskIdName string, taskExecutionIdTaskIdVersion string, taskExecutionIdRetryAttempt int64, localVarOptionals *ListNodeExecutionsForTaskOpts) (AdminNodeExecutionList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNodeExecutionList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/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}" + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.node_id"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdNodeId), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.project"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.domain"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.name"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.version"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdVersion), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.retry_attempt"+"}", fmt.Sprintf("%v", taskExecutionIdRetryAttempt), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.TaskExecutionIdTaskIdResourceType.IsSet() { + localVarQueryParams.Add("task_execution_id.task_id.resource_type", parameterToString(localVarOptionals.TaskExecutionIdTaskIdResourceType.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.TaskExecutionIdTaskIdOrg.IsSet() { + localVarQueryParams.Add("task_execution_id.task_id.org", parameterToString(localVarOptionals.TaskExecutionIdTaskIdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.TaskExecutionIdNodeExecutionIdExecutionIdOrg.IsSet() { + localVarQueryParams.Add("task_execution_id.node_execution_id.execution_id.org", parameterToString(localVarOptionals.TaskExecutionIdNodeExecutionIdExecutionIdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNodeExecutionList + 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 Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param taskExecutionIdNodeExecutionIdExecutionIdOrg Optional, org key applied to the resource. + * @param taskExecutionIdNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. + * @param taskExecutionIdNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param taskExecutionIdNodeExecutionIdExecutionIdName User or system provided value for the resource. + * @param taskExecutionIdNodeExecutionIdNodeId + * @param taskExecutionIdTaskIdProject Name of the project the resource belongs to. + * @param taskExecutionIdTaskIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param taskExecutionIdTaskIdName User provided value for the resource. + * @param taskExecutionIdTaskIdVersion Specific version of the resource. + * @param taskExecutionIdRetryAttempt + * @param optional nil or *ListNodeExecutionsForTask2Opts - Optional Parameters: + * @param "TaskExecutionIdTaskIdResourceType" (optional.String) - Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + * @param "TaskExecutionIdTaskIdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminNodeExecutionList +*/ + +type ListNodeExecutionsForTask2Opts struct { + TaskExecutionIdTaskIdResourceType optional.String + TaskExecutionIdTaskIdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListNodeExecutionsForTask2(ctx context.Context, taskExecutionIdNodeExecutionIdExecutionIdOrg string, taskExecutionIdNodeExecutionIdExecutionIdProject string, taskExecutionIdNodeExecutionIdExecutionIdDomain string, taskExecutionIdNodeExecutionIdExecutionIdName string, taskExecutionIdNodeExecutionIdNodeId string, taskExecutionIdTaskIdProject string, taskExecutionIdTaskIdDomain string, taskExecutionIdTaskIdName string, taskExecutionIdTaskIdVersion string, taskExecutionIdRetryAttempt int64, localVarOptionals *ListNodeExecutionsForTask2Opts) (AdminNodeExecutionList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNodeExecutionList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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}" + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.execution_id.org"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdExecutionIdOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.node_execution_id.node_id"+"}", fmt.Sprintf("%v", taskExecutionIdNodeExecutionIdNodeId), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.project"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.domain"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.name"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.task_id.version"+"}", fmt.Sprintf("%v", taskExecutionIdTaskIdVersion), -1) + localVarPath = strings.Replace(localVarPath, "{"+"task_execution_id.retry_attempt"+"}", fmt.Sprintf("%v", taskExecutionIdRetryAttempt), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.TaskExecutionIdTaskIdResourceType.IsSet() { + localVarQueryParams.Add("task_execution_id.task_id.resource_type", parameterToString(localVarOptionals.TaskExecutionIdTaskIdResourceType.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.TaskExecutionIdTaskIdOrg.IsSet() { + localVarQueryParams.Add("task_execution_id.task_id.org", parameterToString(localVarOptionals.TaskExecutionIdTaskIdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNodeExecutionList + 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 Fetches a list of :ref:`ref_flyteidl.admin.Project` + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param optional nil or *ListProjectsOpts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of projects to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminProjects +*/ + +type ListProjectsOpts struct { + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListProjects(ctx context.Context, localVarOptionals *ListProjectsOpts) (AdminProjects, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminProjects + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/projects" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminProjects + 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 Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param nodeExecutionIdExecutionIdProject Name of the project the resource belongs to. + * @param nodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param nodeExecutionIdExecutionIdName User or system provided value for the resource. + * @param nodeExecutionIdNodeId + * @param optional nil or *ListTaskExecutionsOpts - Optional Parameters: + * @param "NodeExecutionIdExecutionIdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminTaskExecutionList +*/ + +type ListTaskExecutionsOpts struct { + NodeExecutionIdExecutionIdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListTaskExecutions(ctx context.Context, nodeExecutionIdExecutionIdProject string, nodeExecutionIdExecutionIdDomain string, nodeExecutionIdExecutionIdName string, nodeExecutionIdNodeId string, localVarOptionals *ListTaskExecutionsOpts) (AdminTaskExecutionList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminTaskExecutionList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/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}" + localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", nodeExecutionIdExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", nodeExecutionIdExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", nodeExecutionIdExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.node_id"+"}", fmt.Sprintf("%v", nodeExecutionIdNodeId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.NodeExecutionIdExecutionIdOrg.IsSet() { + localVarQueryParams.Add("node_execution_id.execution_id.org", parameterToString(localVarOptionals.NodeExecutionIdExecutionIdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminTaskExecutionList + 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 Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param nodeExecutionIdExecutionIdOrg Optional, org key applied to the resource. + * @param nodeExecutionIdExecutionIdProject Name of the project the resource belongs to. + * @param nodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param nodeExecutionIdExecutionIdName User or system provided value for the resource. + * @param nodeExecutionIdNodeId + * @param optional nil or *ListTaskExecutions2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminTaskExecutionList +*/ + +type ListTaskExecutions2Opts struct { + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListTaskExecutions2(ctx context.Context, nodeExecutionIdExecutionIdOrg string, nodeExecutionIdExecutionIdProject string, nodeExecutionIdExecutionIdDomain string, nodeExecutionIdExecutionIdName string, nodeExecutionIdNodeId string, localVarOptionals *ListTaskExecutions2Opts) (AdminTaskExecutionList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminTaskExecutionList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}" + localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.execution_id.org"+"}", fmt.Sprintf("%v", nodeExecutionIdExecutionIdOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.execution_id.project"+"}", fmt.Sprintf("%v", nodeExecutionIdExecutionIdProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.execution_id.domain"+"}", fmt.Sprintf("%v", nodeExecutionIdExecutionIdDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.execution_id.name"+"}", fmt.Sprintf("%v", nodeExecutionIdExecutionIdName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"node_execution_id.node_id"+"}", fmt.Sprintf("%v", nodeExecutionIdNodeId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminTaskExecutionList + 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 Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param project Name of the project that contains the identifiers. +required + * @param domain Name of the domain the identifiers belongs to within the project. +required + * @param optional nil or *ListTaskIdsOpts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + * @param "Org" (optional.String) - Optional, org key applied to the resource. + +@return AdminNamedEntityIdentifierList +*/ + +type ListTaskIdsOpts struct { + Limit optional.Int64 + Token optional.String + SortByKey optional.String + SortByDirection optional.String + Filters optional.String + Org optional.String +} + +func (a *AdminServiceApiService) ListTaskIds(ctx context.Context, project string, domain string, localVarOptionals *ListTaskIdsOpts) (AdminNamedEntityIdentifierList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNamedEntityIdentifierList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/task_ids/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNamedEntityIdentifierList + 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 Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org key applied to the resource. + * @param project Name of the project that contains the identifiers. +required + * @param domain Name of the domain the identifiers belongs to within the project. +required + * @param optional nil or *ListTaskIds2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + +@return AdminNamedEntityIdentifierList +*/ + +type ListTaskIds2Opts struct { + Limit optional.Int64 + Token optional.String + SortByKey optional.String + SortByDirection optional.String + Filters optional.String +} + +func (a *AdminServiceApiService) ListTaskIds2(ctx context.Context, org string, project string, domain string, localVarOptionals *ListTaskIds2Opts) (AdminNamedEntityIdentifierList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNamedEntityIdentifierList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/org/{org}/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNamedEntityIdentifierList + 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 Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *ListTasksOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminTaskList +*/ + +type ListTasksOpts struct { + IdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListTasks(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *ListTasksOpts) (AdminTaskList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminTaskList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminTaskList + 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 Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *ListTasks2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminTaskList +*/ + +type ListTasks2Opts struct { + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListTasks2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, localVarOptionals *ListTasks2Opts) (AdminTaskList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminTaskList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminTaskList + 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 Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param optional nil or *ListTasks3Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminTaskList +*/ + +type ListTasks3Opts struct { + IdName optional.String + IdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListTasks3(ctx context.Context, idProject string, idDomain string, localVarOptionals *ListTasks3Opts) (AdminTaskList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminTaskList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/{id.project}/{id.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminTaskList + 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 Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param optional nil or *ListTasks4Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminTaskList +*/ + +type ListTasks4Opts struct { + IdName optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListTasks4(ctx context.Context, idOrg string, idProject string, idDomain string, localVarOptionals *ListTasks4Opts) (AdminTaskList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminTaskList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminTaskList + 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 Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param project Name of the project that contains the identifiers. +required + * @param domain Name of the domain the identifiers belongs to within the project. +required + * @param optional nil or *ListWorkflowIdsOpts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + * @param "Org" (optional.String) - Optional, org key applied to the resource. + +@return AdminNamedEntityIdentifierList +*/ + +type ListWorkflowIdsOpts struct { + Limit optional.Int64 + Token optional.String + SortByKey optional.String + SortByDirection optional.String + Filters optional.String + Org optional.String +} + +func (a *AdminServiceApiService) ListWorkflowIds(ctx context.Context, project string, domain string, localVarOptionals *ListWorkflowIdsOpts) (AdminNamedEntityIdentifierList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNamedEntityIdentifierList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_ids/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNamedEntityIdentifierList + 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 Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org key applied to the resource. + * @param project Name of the project that contains the identifiers. +required + * @param domain Name of the domain the identifiers belongs to within the project. +required + * @param optional nil or *ListWorkflowIds2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.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. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + +@return AdminNamedEntityIdentifierList +*/ + +type ListWorkflowIds2Opts struct { + Limit optional.Int64 + Token optional.String + SortByKey optional.String + SortByDirection optional.String + Filters optional.String +} + +func (a *AdminServiceApiService) ListWorkflowIds2(ctx context.Context, org string, project string, domain string, localVarOptionals *ListWorkflowIds2Opts) (AdminNamedEntityIdentifierList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminNamedEntityIdentifierList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/org/{org}/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNamedEntityIdentifierList + 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 Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *ListWorkflowsOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminWorkflowList +*/ + +type ListWorkflowsOpts struct { + IdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListWorkflows(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *ListWorkflowsOpts) (AdminWorkflowList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflowList + 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 Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *ListWorkflows2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminWorkflowList +*/ + +type ListWorkflows2Opts struct { + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, localVarOptionals *ListWorkflows2Opts) (AdminWorkflowList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflowList + 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 Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param optional nil or *ListWorkflows3Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminWorkflowList +*/ + +type ListWorkflows3Opts struct { + IdName optional.String + IdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListWorkflows3(ctx context.Context, idProject string, idDomain string, localVarOptionals *ListWorkflows3Opts) (AdminWorkflowList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/{id.project}/{id.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflowList + 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 Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param optional nil or *ListWorkflows4Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminWorkflowList +*/ + +type ListWorkflows4Opts struct { + IdName optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListWorkflows4(ctx context.Context, idOrg string, idProject string, idDomain string, localVarOptionals *ListWorkflows4Opts) (AdminWorkflowList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflowList + 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 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. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param body + +@return AdminExecutionCreateResponse +*/ +func (a *AdminServiceApiService) RecoverExecution(ctx context.Context, body AdminExecutionRecoverRequest) (AdminExecutionCreateResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Post") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminExecutionCreateResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/recover" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &body + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminExecutionCreateResponse + 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 Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param body + +@return AdminProjectRegisterResponse +*/ +func (a *AdminServiceApiService) RegisterProject(ctx context.Context, body AdminProjectRegisterRequest) (AdminProjectRegisterResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Post") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminProjectRegisterResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/projects" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &body + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminProjectRegisterResponse + 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 Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param body + +@return AdminExecutionCreateResponse +*/ +func (a *AdminServiceApiService) RelaunchExecution(ctx context.Context, body AdminExecutionRelaunchRequest) (AdminExecutionCreateResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Post") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminExecutionCreateResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/relaunch" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &body + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminExecutionCreateResponse + 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 Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User or system provided value for the resource. + * @param body + +@return AdminExecutionTerminateResponse +*/ +func (a *AdminServiceApiService) TerminateExecution(ctx context.Context, idProject string, idDomain string, idName string, body AdminExecutionTerminateRequest) (AdminExecutionTerminateResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Delete") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminExecutionTerminateResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -4145,6 +9403,8 @@ func (a *AdminServiceApiService) ListTaskExecutions(ctx context.Context, nodeExe if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -4176,7 +9436,7 @@ func (a *AdminServiceApiService) ListTaskExecutions(ctx context.Context, nodeExe } if localVarHttpResponse.StatusCode == 200 { - var v AdminTaskExecutionList + var v AdminExecutionTerminateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -4193,61 +9453,36 @@ func (a *AdminServiceApiService) ListTaskExecutions(ctx context.Context, nodeExe } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. +AdminServiceApiService Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param project Name of the project that contains the identifiers. +required - * @param domain Name of the domain the identifiers belongs to within the project. +required - * @param optional nil or *ListTaskIdsOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.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. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User or system provided value for the resource. + * @param body -@return AdminNamedEntityIdentifierList +@return AdminExecutionTerminateResponse */ - -type ListTaskIdsOpts struct { - Limit optional.Int64 - Token optional.String - SortByKey optional.String - SortByDirection optional.String - Filters optional.String -} - -func (a *AdminServiceApiService) ListTaskIds(ctx context.Context, project string, domain string, localVarOptionals *ListTaskIdsOpts) (AdminNamedEntityIdentifierList, *http.Response, error) { +func (a *AdminServiceApiService) TerminateExecution2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, body AdminExecutionTerminateRequest) (AdminExecutionTerminateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Delete") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminNamedEntityIdentifierList + localVarReturnValue AdminExecutionTerminateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/task_ids/{project}/{domain}" - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -4265,6 +9500,8 @@ func (a *AdminServiceApiService) ListTaskIds(ctx context.Context, project string if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -4296,7 +9533,7 @@ func (a *AdminServiceApiService) ListTaskIds(ctx context.Context, project string } if localVarHttpResponse.StatusCode == 200 { - var v AdminNamedEntityIdentifierList + var v AdminExecutionTerminateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -4313,40 +9550,26 @@ func (a *AdminServiceApiService) ListTaskIds(ctx context.Context, project string } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +AdminServiceApiService Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' - * @param optional nil or *ListTasksOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param idName User or system provided value for the resource. + * @param body -@return AdminTaskList +@return AdminExecutionUpdateResponse */ - -type ListTasksOpts struct { - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String -} - -func (a *AdminServiceApiService) ListTasks(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *ListTasksOpts) (AdminTaskList, *http.Response, error) { +func (a *AdminServiceApiService) UpdateExecution(ctx context.Context, idProject string, idDomain string, idName string, body AdminExecutionUpdateRequest) (AdminExecutionUpdateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminTaskList + localVarReturnValue AdminExecutionUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/{id.project}/{id.domain}/{id.name}" + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/{id.project}/{id.domain}/{id.name}" localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) @@ -4355,21 +9578,6 @@ func (a *AdminServiceApiService) ListTasks(ctx context.Context, idProject string localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -4387,6 +9595,8 @@ func (a *AdminServiceApiService) ListTasks(ctx context.Context, idProject string if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -4418,7 +9628,7 @@ func (a *AdminServiceApiService) ListTasks(ctx context.Context, idProject string } if localVarHttpResponse.StatusCode == 200 { - var v AdminTaskList + var v AdminExecutionUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -4435,66 +9645,36 @@ func (a *AdminServiceApiService) ListTasks(ctx context.Context, idProject string } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +AdminServiceApiService Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param optional nil or *ListTasks2Opts - Optional Parameters: - * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param idName User or system provided value for the resource. + * @param body -@return AdminTaskList +@return AdminExecutionUpdateResponse */ - -type ListTasks2Opts struct { - IdName optional.String - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String -} - -func (a *AdminServiceApiService) ListTasks2(ctx context.Context, idProject string, idDomain string, localVarOptionals *ListTasks2Opts) (AdminTaskList, *http.Response, error) { +func (a *AdminServiceApiService) UpdateExecution2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, body AdminExecutionUpdateRequest) (AdminExecutionUpdateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminTaskList + localVarReturnValue AdminExecutionUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/{id.project}/{id.domain}" + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { - localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -4512,6 +9692,8 @@ func (a *AdminServiceApiService) ListTasks2(ctx context.Context, idProject strin if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -4543,7 +9725,7 @@ func (a *AdminServiceApiService) ListTasks2(ctx context.Context, idProject strin } if localVarHttpResponse.StatusCode == 200 { - var v AdminTaskList + var v AdminExecutionUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -4560,61 +9742,36 @@ func (a *AdminServiceApiService) ListTasks2(ctx context.Context, idProject strin } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. +AdminServiceApiService Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param project Name of the project that contains the identifiers. +required - * @param domain Name of the domain the identifiers belongs to within the project. +required - * @param optional nil or *ListWorkflowIdsOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.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. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. +optional. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. + * @param idVersion Specific version of the resource. + * @param body -@return AdminNamedEntityIdentifierList +@return AdminLaunchPlanUpdateResponse */ - -type ListWorkflowIdsOpts struct { - Limit optional.Int64 - Token optional.String - SortByKey optional.String - SortByDirection optional.String - Filters optional.String -} - -func (a *AdminServiceApiService) ListWorkflowIds(ctx context.Context, project string, domain string, localVarOptionals *ListWorkflowIdsOpts) (AdminNamedEntityIdentifierList, *http.Response, error) { +func (a *AdminServiceApiService) UpdateLaunchPlan(ctx context.Context, idProject string, idDomain string, idName string, idVersion string, body AdminLaunchPlanUpdateRequest) (AdminLaunchPlanUpdateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminNamedEntityIdentifierList + localVarReturnValue AdminLaunchPlanUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_ids/{project}/{domain}" - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -4632,6 +9789,8 @@ func (a *AdminServiceApiService) ListWorkflowIds(ctx context.Context, project st if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -4663,7 +9822,7 @@ func (a *AdminServiceApiService) ListWorkflowIds(ctx context.Context, project st } if localVarHttpResponse.StatusCode == 200 { - var v AdminNamedEntityIdentifierList + var v AdminLaunchPlanUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -4674,69 +9833,43 @@ func (a *AdminServiceApiService) ListWorkflowIds(ctx context.Context, project st } return localVarReturnValue, localVarHttpResponse, newErr - } - - return localVarReturnValue, localVarHttpResponse, nil -} - -/* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' - * @param optional nil or *ListWorkflowsOpts - Optional Parameters: - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - -@return AdminWorkflowList -*/ - -type ListWorkflowsOpts struct { - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String + } + + return localVarReturnValue, localVarHttpResponse, nil } -func (a *AdminServiceApiService) ListWorkflows(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *ListWorkflowsOpts) (AdminWorkflowList, *http.Response, error) { +/* +AdminServiceApiService Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. + * @param idVersion Specific version of the resource. + +@return AdminLaunchPlanUpdateResponse +*/ +func (a *AdminServiceApiService) UpdateLaunchPlan2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, idVersion string) (AdminLaunchPlanUpdateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowList + localVarReturnValue AdminLaunchPlanUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/{id.project}/{id.domain}/{id.name}" + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -4785,7 +9918,7 @@ func (a *AdminServiceApiService) ListWorkflows(ctx context.Context, idProject st } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowList + var v AdminLaunchPlanUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -4802,66 +9935,36 @@ func (a *AdminServiceApiService) ListWorkflows(ctx context.Context, idProject st } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +AdminServiceApiService Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param resourceType Resource type of the metadata to update +required * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param optional nil or *ListWorkflows2Opts - Optional Parameters: - * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param body -@return AdminWorkflowList +@return AdminNamedEntityUpdateResponse */ - -type ListWorkflows2Opts struct { - IdName optional.String - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String -} - -func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idProject string, idDomain string, localVarOptionals *ListWorkflows2Opts) (AdminWorkflowList, *http.Response, error) { +func (a *AdminServiceApiService) UpdateNamedEntity(ctx context.Context, resourceType string, idProject string, idDomain string, idName string, body AdminNamedEntityUpdateRequest) (AdminNamedEntityUpdateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowList + localVarReturnValue AdminNamedEntityUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/{id.project}/{id.domain}" + localVarPath := a.client.cfg.BasePath + "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { - localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -4879,6 +9982,8 @@ func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idProject s if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -4910,7 +10015,7 @@ func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idProject s } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowList + var v AdminNamedEntityUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -4927,23 +10032,33 @@ func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idProject s } /* -AdminServiceApiService 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. +AdminServiceApiService Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param resourceType Resource type of the metadata to update +required + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' * @param body -@return AdminExecutionCreateResponse +@return AdminNamedEntityUpdateResponse */ -func (a *AdminServiceApiService) RecoverExecution(ctx context.Context, body AdminExecutionRecoverRequest) (AdminExecutionCreateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateNamedEntity2(ctx context.Context, resourceType string, idOrg string, idProject string, idDomain string, idName string, body AdminNamedEntityUpdateRequest) (AdminNamedEntityUpdateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminExecutionCreateResponse + localVarReturnValue AdminNamedEntityUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/executions/recover" + localVarPath := a.client.cfg.BasePath + "/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -4999,7 +10114,7 @@ func (a *AdminServiceApiService) RecoverExecution(ctx context.Context, body Admi } if localVarHttpResponse.StatusCode == 200 { - var v AdminExecutionCreateResponse + var v AdminNamedEntityUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -5016,23 +10131,25 @@ func (a *AdminServiceApiService) RecoverExecution(ctx context.Context, body Admi } /* -AdminServiceApiService Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. +AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param id Deprecated, use identifier instead. Globally unique project name. * @param body -@return AdminProjectRegisterResponse +@return AdminProjectUpdateResponse */ -func (a *AdminServiceApiService) RegisterProject(ctx context.Context, body AdminProjectRegisterRequest) (AdminProjectRegisterResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProject(ctx context.Context, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectRegisterResponse + localVarReturnValue AdminProjectUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/projects" + localVarPath := a.client.cfg.BasePath + "/api/v1/projects/{id}" + localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", fmt.Sprintf("%v", id), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -5088,7 +10205,7 @@ func (a *AdminServiceApiService) RegisterProject(ctx context.Context, body Admin } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectRegisterResponse + var v AdminProjectUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -5105,23 +10222,25 @@ func (a *AdminServiceApiService) RegisterProject(ctx context.Context, body Admin } /* -AdminServiceApiService Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` +AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param identifierId Globally unique project name. * @param body -@return AdminExecutionCreateResponse +@return AdminProjectUpdateResponse */ -func (a *AdminServiceApiService) RelaunchExecution(ctx context.Context, body AdminExecutionRelaunchRequest) (AdminExecutionCreateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProject2(ctx context.Context, identifierId string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminExecutionCreateResponse + localVarReturnValue AdminProjectUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/executions/relaunch" + localVarPath := a.client.cfg.BasePath + "/api/v1/projects/{identifier.id}" + localVarPath = strings.Replace(localVarPath, "{"+"identifier.id"+"}", fmt.Sprintf("%v", identifierId), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -5177,7 +10296,7 @@ func (a *AdminServiceApiService) RelaunchExecution(ctx context.Context, body Adm } if localVarHttpResponse.StatusCode == 200 { - var v AdminExecutionCreateResponse + var v AdminProjectUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -5194,29 +10313,27 @@ func (a *AdminServiceApiService) RelaunchExecution(ctx context.Context, body Adm } /* -AdminServiceApiService Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. +AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User or system provided value for the resource. + * @param identifierOrg Optional, org key applied to the resource. + * @param id Deprecated, use identifier instead. Globally unique project name. * @param body -@return AdminExecutionTerminateResponse +@return AdminProjectUpdateResponse */ -func (a *AdminServiceApiService) TerminateExecution(ctx context.Context, idProject string, idDomain string, idName string, body AdminExecutionTerminateRequest) (AdminExecutionTerminateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProject3(ctx context.Context, identifierOrg string, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminExecutionTerminateResponse + localVarReturnValue AdminProjectUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/executions/{id.project}/{id.domain}/{id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/projects/org/{identifier.org}/{id}" + localVarPath = strings.Replace(localVarPath, "{"+"identifier.org"+"}", fmt.Sprintf("%v", identifierOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", fmt.Sprintf("%v", id), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -5272,7 +10389,7 @@ func (a *AdminServiceApiService) TerminateExecution(ctx context.Context, idProje } if localVarHttpResponse.StatusCode == 200 { - var v AdminExecutionTerminateResponse + var v AdminProjectUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -5289,29 +10406,27 @@ func (a *AdminServiceApiService) TerminateExecution(ctx context.Context, idProje } /* -AdminServiceApiService Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. +AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User or system provided value for the resource. + * @param identifierOrg Optional, org key applied to the resource. + * @param identifierId Globally unique project name. * @param body -@return AdminExecutionUpdateResponse +@return AdminProjectUpdateResponse */ -func (a *AdminServiceApiService) UpdateExecution(ctx context.Context, idProject string, idDomain string, idName string, body AdminExecutionUpdateRequest) (AdminExecutionUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProject4(ctx context.Context, identifierOrg string, identifierId string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminExecutionUpdateResponse + localVarReturnValue AdminProjectUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/executions/{id.project}/{id.domain}/{id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/projects/org/{identifier.org}/{identifier.id}" + localVarPath = strings.Replace(localVarPath, "{"+"identifier.org"+"}", fmt.Sprintf("%v", identifierOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"identifier.id"+"}", fmt.Sprintf("%v", identifierId), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -5367,7 +10482,7 @@ func (a *AdminServiceApiService) UpdateExecution(ctx context.Context, idProject } if localVarHttpResponse.StatusCode == 200 { - var v AdminExecutionUpdateResponse + var v AdminProjectUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -5384,31 +10499,25 @@ func (a *AdminServiceApiService) UpdateExecution(ctx context.Context, idProject } /* -AdminServiceApiService Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. +AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. - * @param idVersion Specific version of the resource. + * @param attributesProject Unique project id for which this set of attributes will be applied. * @param body -@return AdminLaunchPlanUpdateResponse +@return AdminProjectAttributesUpdateResponse */ -func (a *AdminServiceApiService) UpdateLaunchPlan(ctx context.Context, idProject string, idDomain string, idName string, idVersion string, body AdminLaunchPlanUpdateRequest) (AdminLaunchPlanUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProjectAttributes(ctx context.Context, attributesProject string, body AdminProjectAttributesUpdateRequest) (AdminProjectAttributesUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminLaunchPlanUpdateResponse + localVarReturnValue AdminProjectAttributesUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}" - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.version"+"}", fmt.Sprintf("%v", idVersion), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/project_attributes/{attributes.project}" + localVarPath = strings.Replace(localVarPath, "{"+"attributes.project"+"}", fmt.Sprintf("%v", attributesProject), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -5464,7 +10573,7 @@ func (a *AdminServiceApiService) UpdateLaunchPlan(ctx context.Context, idProject } if localVarHttpResponse.StatusCode == 200 { - var v AdminLaunchPlanUpdateResponse + var v AdminProjectAttributesUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -5481,31 +10590,27 @@ func (a *AdminServiceApiService) UpdateLaunchPlan(ctx context.Context, idProject } /* -AdminServiceApiService Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. +AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param resourceType Resource type of the metadata to update +required - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param attributesOrg Optional, org key applied to the project. + * @param attributesProject Unique project id for which this set of attributes will be applied. * @param body -@return AdminNamedEntityUpdateResponse +@return AdminProjectAttributesUpdateResponse */ -func (a *AdminServiceApiService) UpdateNamedEntity(ctx context.Context, resourceType string, idProject string, idDomain string, idName string, body AdminNamedEntityUpdateRequest) (AdminNamedEntityUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProjectAttributes2(ctx context.Context, attributesOrg string, attributesProject string, body AdminProjectAttributesUpdateRequest) (AdminProjectAttributesUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminNamedEntityUpdateResponse + localVarReturnValue AdminProjectAttributesUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"resource_type"+"}", fmt.Sprintf("%v", resourceType), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}" + localVarPath = strings.Replace(localVarPath, "{"+"attributes.org"+"}", fmt.Sprintf("%v", attributesOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"attributes.project"+"}", fmt.Sprintf("%v", attributesProject), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -5561,7 +10666,7 @@ func (a *AdminServiceApiService) UpdateNamedEntity(ctx context.Context, resource } if localVarHttpResponse.StatusCode == 200 { - var v AdminNamedEntityUpdateResponse + var v AdminProjectAttributesUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -5578,25 +10683,27 @@ func (a *AdminServiceApiService) UpdateNamedEntity(ctx context.Context, resource } /* -AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param id Globally unique project name. + * @param attributesProject Unique project id for which this set of attributes will be applied. + * @param attributesDomain Unique domain id for which this set of attributes will be applied. * @param body -@return AdminProjectUpdateResponse +@return AdminProjectDomainAttributesUpdateResponse */ -func (a *AdminServiceApiService) UpdateProject(ctx context.Context, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProjectDomainAttributes(ctx context.Context, attributesProject string, attributesDomain string, body AdminProjectDomainAttributesUpdateRequest) (AdminProjectDomainAttributesUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectUpdateResponse + localVarReturnValue AdminProjectDomainAttributesUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/projects/{id}" - localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", fmt.Sprintf("%v", id), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"attributes.project"+"}", fmt.Sprintf("%v", attributesProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"attributes.domain"+"}", fmt.Sprintf("%v", attributesDomain), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -5652,7 +10759,7 @@ func (a *AdminServiceApiService) UpdateProject(ctx context.Context, id string, b } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectUpdateResponse + var v AdminProjectDomainAttributesUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -5669,25 +10776,29 @@ func (a *AdminServiceApiService) UpdateProject(ctx context.Context, id string, b } /* -AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level +AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param attributesOrg Optional, org key applied to the attributes. * @param attributesProject Unique project id for which this set of attributes will be applied. + * @param attributesDomain Unique domain id for which this set of attributes will be applied. * @param body -@return AdminProjectAttributesUpdateResponse +@return AdminProjectDomainAttributesUpdateResponse */ -func (a *AdminServiceApiService) UpdateProjectAttributes(ctx context.Context, attributesProject string, body AdminProjectAttributesUpdateRequest) (AdminProjectAttributesUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProjectDomainAttributes2(ctx context.Context, attributesOrg string, attributesProject string, attributesDomain string, body AdminProjectDomainAttributesUpdateRequest) (AdminProjectDomainAttributesUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectAttributesUpdateResponse + localVarReturnValue AdminProjectDomainAttributesUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/project_attributes/{attributes.project}" + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}" + localVarPath = strings.Replace(localVarPath, "{"+"attributes.org"+"}", fmt.Sprintf("%v", attributesOrg), -1) localVarPath = strings.Replace(localVarPath, "{"+"attributes.project"+"}", fmt.Sprintf("%v", attributesProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"attributes.domain"+"}", fmt.Sprintf("%v", attributesDomain), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -5743,7 +10854,7 @@ func (a *AdminServiceApiService) UpdateProjectAttributes(ctx context.Context, at } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectAttributesUpdateResponse + var v AdminProjectDomainAttributesUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -5760,27 +10871,29 @@ func (a *AdminServiceApiService) UpdateProjectAttributes(ctx context.Context, at } /* -AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param attributesProject Unique project id for which this set of attributes will be applied. * @param attributesDomain Unique domain id for which this set of attributes will be applied. + * @param attributesWorkflow Workflow name for which this set of attributes will be applied. * @param body -@return AdminProjectDomainAttributesUpdateResponse +@return AdminWorkflowAttributesUpdateResponse */ -func (a *AdminServiceApiService) UpdateProjectDomainAttributes(ctx context.Context, attributesProject string, attributesDomain string, body AdminProjectDomainAttributesUpdateRequest) (AdminProjectDomainAttributesUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateWorkflowAttributes(ctx context.Context, attributesProject string, attributesDomain string, attributesWorkflow string, body AdminWorkflowAttributesUpdateRequest) (AdminWorkflowAttributesUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectDomainAttributesUpdateResponse + localVarReturnValue AdminWorkflowAttributesUpdateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}" + localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}" localVarPath = strings.Replace(localVarPath, "{"+"attributes.project"+"}", fmt.Sprintf("%v", attributesProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"attributes.domain"+"}", fmt.Sprintf("%v", attributesDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"attributes.workflow"+"}", fmt.Sprintf("%v", attributesWorkflow), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -5836,7 +10949,7 @@ func (a *AdminServiceApiService) UpdateProjectDomainAttributes(ctx context.Conte } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectDomainAttributesUpdateResponse + var v AdminWorkflowAttributesUpdateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -5855,6 +10968,7 @@ func (a *AdminServiceApiService) UpdateProjectDomainAttributes(ctx context.Conte /* AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param attributesOrg Optional, org key applied to the attributes. * @param attributesProject Unique project id for which this set of attributes will be applied. * @param attributesDomain Unique domain id for which this set of attributes will be applied. * @param attributesWorkflow Workflow name for which this set of attributes will be applied. @@ -5862,7 +10976,7 @@ AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.M @return AdminWorkflowAttributesUpdateResponse */ -func (a *AdminServiceApiService) UpdateWorkflowAttributes(ctx context.Context, attributesProject string, attributesDomain string, attributesWorkflow string, body AdminWorkflowAttributesUpdateRequest) (AdminWorkflowAttributesUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateWorkflowAttributes2(ctx context.Context, attributesOrg string, attributesProject string, attributesDomain string, attributesWorkflow string, body AdminWorkflowAttributesUpdateRequest) (AdminWorkflowAttributesUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} @@ -5872,7 +10986,8 @@ func (a *AdminServiceApiService) UpdateWorkflowAttributes(ctx context.Context, a ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}" + localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}" + localVarPath = strings.Replace(localVarPath, "{"+"attributes.org"+"}", fmt.Sprintf("%v", attributesOrg), -1) localVarPath = strings.Replace(localVarPath, "{"+"attributes.project"+"}", fmt.Sprintf("%v", attributesProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"attributes.domain"+"}", fmt.Sprintf("%v", attributesDomain), -1) localVarPath = strings.Replace(localVarPath, "{"+"attributes.workflow"+"}", fmt.Sprintf("%v", attributesWorkflow), -1) diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_create_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_create_request.go index b8da1d4fca..c7eff0aded 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_create_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_create_request.go @@ -16,4 +16,6 @@ type AdminExecutionCreateRequest struct { Name string `json:"name,omitempty"` Spec *AdminExecutionSpec `json:"spec,omitempty"` Inputs *CoreLiteralMap `json:"inputs,omitempty"` + // Optional, org key applied to the resource. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_matchable_attributes_configuration.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_matchable_attributes_configuration.go index df6a99884c..a9381abc9b 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_matchable_attributes_configuration.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_matchable_attributes_configuration.go @@ -9,11 +9,13 @@ package flyteadmin -// Represents a custom set of attributes applied for either a domain; a domain and project; or domain, project and workflow name. These are used to override system level defaults for kubernetes cluster resource management, default execution values, and more all across different levels of specificity. +// Represents a custom set of attributes applied for either a domain (and optional org); a domain and project (and optional org); or domain, project and workflow name (and optional org). These are used to override system level defaults for kubernetes cluster resource management, default execution values, and more all across different levels of specificity. type AdminMatchableAttributesConfiguration struct { Attributes *AdminMatchingAttributes `json:"attributes,omitempty"` Domain string `json:"domain,omitempty"` Project string `json:"project,omitempty"` Workflow string `json:"workflow,omitempty"` LaunchPlan string `json:"launch_plan,omitempty"` + // Optional, org key applied to the resource. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_named_entity_identifier.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_named_entity_identifier.go index 9fa96c57b2..ac55ee330b 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_named_entity_identifier.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_named_entity_identifier.go @@ -16,4 +16,6 @@ type AdminNamedEntityIdentifier struct { // Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. Domain string `json:"domain,omitempty"` Name string `json:"name,omitempty"` + // Optional, org key applied to the resource. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go index 59da87f6cc..eab400115d 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go @@ -11,7 +11,7 @@ package flyteadmin // Top-level namespace used to classify different entities like workflows and executions. type AdminProject struct { - // Globally unique project name. + // Deprecated, use identifier instead. Globally unique project name. Id string `json:"id,omitempty"` // Display name. Name string `json:"name,omitempty"` @@ -20,4 +20,6 @@ type AdminProject struct { // Leverage Labels from flyteidl.admin.common.proto to tag projects with ownership information. Labels *AdminLabels `json:"labels,omitempty"` State *ProjectProjectState `json:"state,omitempty"` + // Optional, org key applied to the project. + Identifier *AdminProjectIdentifier `json:"identifier,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes.go index a719e4737b..7772a1b781 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes.go @@ -13,4 +13,6 @@ type AdminProjectAttributes struct { // Unique project id for which this set of attributes will be applied. Project string `json:"project,omitempty"` MatchingAttributes *AdminMatchingAttributes `json:"matching_attributes,omitempty"` + // Optional, org key applied to the project. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_request.go index 3081254e92..c94bdf8d78 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_request.go @@ -12,4 +12,6 @@ package flyteadmin type AdminProjectAttributesDeleteRequest struct { Project string `json:"project,omitempty"` ResourceType *AdminMatchableResource `json:"resource_type,omitempty"` + // Optional, org key applied to the project. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes.go index 8cc141bc42..7f25ab536c 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes.go @@ -15,4 +15,6 @@ type AdminProjectDomainAttributes struct { // Unique domain id for which this set of attributes will be applied. Domain string `json:"domain,omitempty"` MatchingAttributes *AdminMatchingAttributes `json:"matching_attributes,omitempty"` + // Optional, org key applied to the attributes. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_delete_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_delete_request.go index 00b251417d..6431b0ffc9 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_delete_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_delete_request.go @@ -13,4 +13,6 @@ type AdminProjectDomainAttributesDeleteRequest struct { Project string `json:"project,omitempty"` Domain string `json:"domain,omitempty"` ResourceType *AdminMatchableResource `json:"resource_type,omitempty"` + // Optional, org key applied to the attributes. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_identifier.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_identifier.go new file mode 100644 index 0000000000..cd5e620e6d --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_identifier.go @@ -0,0 +1,17 @@ +/* + * 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 AdminProjectIdentifier struct { + // Globally unique project name. + Id string `json:"id,omitempty"` + // Optional, org key applied to the resource. + Org string `json:"org,omitempty"` +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes.go index dba5c88346..f8fdf30748 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes.go @@ -17,4 +17,6 @@ type AdminWorkflowAttributes struct { // Workflow name for which this set of attributes will be applied. Workflow string `json:"workflow,omitempty"` MatchingAttributes *AdminMatchingAttributes `json:"matching_attributes,omitempty"` + // Optional, org key applied to the attributes. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_delete_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_delete_request.go index 31bca658db..26df12fc94 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_delete_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_delete_request.go @@ -14,4 +14,6 @@ type AdminWorkflowAttributesDeleteRequest struct { Domain string `json:"domain,omitempty"` Workflow string `json:"workflow,omitempty"` ResourceType *AdminMatchableResource `json:"resource_type,omitempty"` + // Optional, org key applied to the attributes. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_array_node.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_array_node.go index 3af3d44494..aba5cd75e4 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_array_node.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_array_node.go @@ -13,7 +13,7 @@ package flyteadmin type CoreArrayNode struct { // node is the sub-node that will be executed for each element in the array. Node *CoreNode `json:"node,omitempty"` - // parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network partitioning or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. + // parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network orging or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. Parallelism int64 `json:"parallelism,omitempty"` // min_successes is an absolute number of the minimum number of successful completions of sub-nodes. As soon as this criteria is met, the ArrayNode will be marked as successful and outputs will be computed. This has to be a non-negative number if assigned. Default value is size (if specified). MinSuccesses int64 `json:"min_successes,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_identifier.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_identifier.go index 36a08549cb..33cc281aa9 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_identifier.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_identifier.go @@ -21,4 +21,6 @@ type CoreIdentifier struct { Name string `json:"name,omitempty"` // Specific version of the resource. Version string `json:"version,omitempty"` + // Optional, org key applied to the resource. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_workflow_execution_identifier.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_workflow_execution_identifier.go index cf61bea6ca..92f6945956 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_workflow_execution_identifier.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_workflow_execution_identifier.go @@ -16,4 +16,6 @@ type CoreWorkflowExecutionIdentifier struct { Domain string `json:"domain,omitempty"` // User or system provided value for the resource. Name string `json:"name,omitempty"` + // Optional, org key applied to the resource. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index 84081d9498..5cc1c20880 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\x7b\x73\xeb\xb8\x95\x2f\x0c\xff\x3f\x9f\x02\x67\xcf\xa9\xea\xee\x44\xb6\x3b\xc9\x4c\xde\x94\xa7\x4e\xbd\x8f\xda\xd6\xde\xad\xd3\xbe\xc5\x97\xee\xe9\x67\x94\x52\x43\x24\x24\x21\x26\x01\x06\x00\xed\xad\x4e\xe5\xbb\x3f\x85\x85\x0b\x41\x8a\x94\xa8\x8b\x6d\x79\x37\x67\xaa\xd2\xde\x22\x89\xeb\xc2\xc2\xba\xfe\xd6\x3f\xff\x0d\xa1\x0f\xf2\x19\xcf\x66\x44\x7c\x38\x45\x1f\xfe\x78\xfc\xed\x87\x9e\xfe\x8d\xb2\x29\xff\x70\x8a\xf4\x73\x84\x3e\x28\xaa\x12\xa2\x9f\x4f\x93\x85\x22\x34\x4e\x4e\x24\x11\x4f\x34\x22\x27\x38\x4e\x29\x3b\xce\x04\x57\x1c\x3e\x44\xe8\xc3\x13\x11\x92\x72\xa6\x5f\xb7\x7f\x22\xc6\x15\x92\x44\x7d\xf8\x37\x84\xfe\x05\xcd\xcb\x68\x4e\x52\x22\x3f\x9c\xa2\xff\x31\x1f\xcd\x95\xca\x5c\x03\xfa\x6f\xa9\xdf\xfd\x1b\xbc\x1b\x71\x26\xf3\xd2\xcb\x38\xcb\x12\x1a\x61\x45\x39\x3b\xf9\xbb\xe4\xac\x78\x37\x13\x3c\xce\xa3\x96\xef\x62\x35\x97\xc5\x1c\x4f\x70\x46\x4f\x9e\xfe\x70\x82\x23\x45\x9f\xc8\x38\xc1\x39\x8b\xe6\xe3\x2c\xc1\x4c\x9e\xfc\x93\xc6\x7a\x8e\x7f\x27\x91\xfa\x17\xfc\x23\xe6\x29\xa6\xcc\xfc\xcd\x70\x4a\xfe\xe5\xdb\x41\xe8\xc3\x8c\xa8\xe0\x9f\x7a\xb6\x79\x9a\x62\xb1\xd0\x2b\xf2\x91\xa8\x68\x8e\xd4\x9c\x20\xd3\x0f\x72\x4b\xc4\xa7\x08\xa3\x53\x41\xa6\xa7\xbf\x08\x32\x1d\xbb\x85\x3e\x36\x0b\x7c\x01\xa3\xb9\x49\x30\xfb\xe5\xd8\x2e\x13\xb4\xcc\x33\x22\x60\x6e\xc3\x58\xb7\xfe\x89\xa8\x3e\x34\x5b\xbc\x1f\xbe\x2d\x88\xcc\x38\x93\x44\x96\x86\x87\xd0\x87\x3f\x7e\xfb\x6d\xe5\x27\x84\x3e\xc4\x44\x46\x82\x66\xca\xee\x65\x1f\xc9\x3c\x8a\x88\x94\xd3\x3c\x41\xae\xa5\x70\x30\x66\xaa\x7a\x63\xf1\x52\x63\x08\x7d\xf8\xdf\x82\x4c\x75\x3b\xff\x7e\x12\x93\x29\x65\x54\xb7\x2b\x0d\xfd\x04\xa3\x2d\x7d\xf5\xaf\x7f\xab\xfb\xfb\x5f\xc1\x8c\x32\x2c\x70\x4a\x14\x11\xc5\x8e\x9b\xff\xab\xcc\x45\xef\x91\xee\xbc\xd8\xc7\xea\xc0\x2b\xb3\xbd\xc2\x29\xd1\x7b\xa2\x77\xca\x7e\x01\x7f\x0b\x22\x79\x2e\x22\x82\x26\x24\xe1\x6c\x26\x91\xe2\x4b\x6b\x40\xa1\x05\x4d\x5e\xd5\x27\x82\xfc\x23\xa7\x82\xe8\xbd\x52\x22\x27\x95\xa7\x6a\x91\xc1\x20\xa5\x12\x94\xcd\xc2\xa5\xf8\x57\xaf\xd5\xd4\x0c\x55\x6e\x30\x33\xf3\x41\xe3\xc4\x46\xac\xef\x5e\x89\x30\x43\x13\x82\xf4\x59\xa4\x31\x11\x24\x46\x58\x22\x8c\x64\x3e\x91\x44\xa1\x67\xaa\xe6\x94\xe9\x7f\x67\x24\xa2\x53\x1a\xb9\x35\x3b\x9c\xb5\x81\x3f\x57\xaf\xcc\x83\x24\x42\x0f\xfc\x89\xc6\x24\x46\x4f\x38\xc9\x09\x9a\x72\x51\x5a\x9e\xe3\x11\xbb\x9f\xeb\x75\x48\x27\x94\xc1\xc9\xd3\x6b\xe9\x28\xe4\xf7\x6e\xb9\x7e\x8f\x74\x7f\x28\x67\xf4\x1f\x39\x49\x16\x88\xc6\x84\x29\x3a\xa5\x44\x56\x5b\xfb\x3d\x87\xfe\x71\x82\x8e\x90\x5e\x67\x22\x14\xac\x37\x67\x8a\x7c\x56\x12\x1d\xa1\x84\x3e\x12\xf4\xd5\x05\x95\x0a\xf5\x6f\x86\x5f\xf5\xd0\x57\xe6\xbc\x20\xe0\x4d\x5f\xbd\xc2\x0a\xfb\xbf\xff\x16\x1c\x3d\x85\x67\xd5\x43\xf7\xa1\xaf\x4f\xf3\x9d\xb9\x1a\x8a\x16\xfe\xf6\x6f\x61\x3b\x76\xbf\x56\xf3\xdb\x82\xd9\x5a\x4e\xdb\x96\xbf\xc2\x32\x95\x59\xab\xd4\x3b\xb4\x2b\x67\xd5\xed\x56\x59\xab\x7c\x5f\xbc\x55\x4f\xe1\xa5\xf9\xeb\x2e\xcc\x15\x2b\xa0\x7a\x4c\x99\x39\x24\xfe\xcc\x08\xa9\xcf\x89\xa3\xde\x03\x61\x29\xbb\xf0\xda\x60\x66\x01\xbb\x75\x5c\x34\x58\x95\x03\x9c\x77\x42\x53\xba\x6e\x7f\x87\x2c\xd6\x22\x97\x65\x76\x2c\x4f\x27\x44\xe8\x65\x70\x6c\x0f\x66\x3b\xd1\x6c\x50\xe5\x82\x91\xb8\xc5\x34\xff\x91\x13\xb1\x58\x31\xcf\x29\x4e\x64\xd3\x44\x29\x53\x44\xcb\xb7\x95\xc7\x53\x2e\x52\xac\xec\x0b\x7f\xfe\x8f\x4d\x17\x42\xf1\x47\xb2\x6e\xff\x87\x66\x37\x23\x2c\x81\x0c\xd2\x3c\x51\x34\x4b\x08\xca\xf0\x8c\x48\xbb\x22\x79\xa2\x64\x0f\x5e\xd3\x32\x35\x11\x47\xfe\x06\x82\x1e\xdc\xcd\x9b\x4b\xf8\x05\x4d\xbd\x00\xc9\xc8\x67\x05\x2d\x8d\x18\xdc\xbd\xb0\x44\xe1\x8d\xf2\x02\x4b\xb9\x1d\xcd\x48\x2e\xd4\x78\xb2\x38\x7e\x24\x4b\xfd\x36\x52\x0e\x66\x08\x2b\x25\xe8\x24\x57\x44\xcf\x5b\xb7\xe1\xee\x4e\x60\x8f\xe6\x82\x6e\xc3\x1a\xde\x6e\xc2\x31\x15\x24\x82\xb9\x6d\x72\x60\xfc\x57\x7a\xde\x5a\x7f\x59\x98\xd9\x3f\x92\x05\xc8\x23\x35\x2b\xe0\xb7\x7c\xc4\x46\x0c\x1d\xa1\xf3\xc1\xdd\xd9\xe0\xea\x7c\x78\xf5\xe9\x14\x7d\xb7\x40\x31\x99\xe2\x3c\x51\x3d\x34\xa5\x24\x89\x25\xc2\x82\x40\x93\x24\xd6\x32\x87\x1e\x0c\x61\x31\x65\x33\xc4\x45\x4c\xc4\xcb\x2d\x63\xe5\x29\x61\x79\x5a\xb9\x57\xe0\xf7\x62\xf4\x95\x2f\xb4\x88\xe1\x1f\x95\x9e\xfc\x6d\x69\x81\x61\xc6\xba\xef\xa0\xb5\x57\x13\x6a\xa2\x39\x4d\x62\x41\xd8\x89\xc2\xf2\x71\x4c\x3e\x93\x28\x37\x77\xf2\x3f\xcb\x3f\x8c\xb5\x64\xca\x63\x52\xfe\xa5\xf4\x8f\x42\x14\xda\xf8\x53\xaf\xa5\x6e\xfc\x25\xe8\xb4\xed\xbe\x83\x5f\x68\x5c\xfb\x36\xfc\xb2\x66\x0e\xee\x9d\x15\x83\x75\xaf\x34\x8e\xca\xbd\x60\x25\xbe\xda\x77\x04\x51\x62\x31\xc6\x4a\x91\x34\x53\x1b\xea\xeb\x18\x25\x5a\xae\x5c\x25\x47\x5e\xf1\x98\x0c\x5c\x7f\xbf\x20\x23\xce\x92\x18\x4d\x16\x96\x6b\x4d\x89\x20\x2c\x22\xcd\x2d\xdc\x63\xf9\x58\xb4\xb0\x4e\x18\x2d\xf5\x27\x3f\x72\xa1\x3f\x7f\x0f\x02\x69\x69\xe0\xaf\x21\x93\x6e\x7b\xe2\xbe\x38\x0b\xc1\x96\xfc\xa3\xb3\x27\xec\xbe\x92\x6d\xad\x0f\x5c\x20\xb9\x90\x8a\xa4\x6b\xed\x10\xef\x67\x21\xec\x05\x71\xa8\x03\xae\xdc\x51\xbf\x81\x53\x5f\xbe\x71\xbb\xe3\xbd\xc1\x92\xed\xcb\x8a\x78\xe8\xf3\x74\x3e\x9c\xd5\x53\xbd\x73\xdb\x17\x38\x31\xde\xc5\x34\x4b\xb2\xe0\xbe\x07\xf9\x42\xe6\x86\xc6\xbd\x72\xab\x3d\x86\x01\xac\x51\x34\xcb\x76\x68\x7f\xfe\xf4\xa7\xa1\x85\xc6\x98\xe3\xd4\x9c\xca\xc0\x58\x85\x22\x2e\x8c\x2c\x18\xdb\xf3\x6e\x74\xcd\xfe\x7d\xff\x6e\x70\x7f\x8a\xfa\x28\xc6\x0a\xeb\x03\x2e\x48\x26\x88\x24\x4c\x81\x1e\xaf\xbf\x57\x0b\x94\xf2\x98\x24\x46\xe3\xfc\xa8\x25\x5f\x74\x8e\x15\x3e\xc3\x0a\x27\x7c\x76\x8c\xfa\xf0\x4f\xfd\x31\x95\x08\x27\x92\x23\xec\xc8\x8a\xc4\xae\x09\xcc\x62\xc7\x5a\x30\x8a\x78\x9a\xd1\xc4\xdb\xe0\xbd\x71\x85\xb2\x98\x3e\xd1\x38\xc7\x09\xe2\x13\xcd\x55\xb4\x86\x3c\x78\x22\x4c\xe5\x38\x49\x16\x08\x27\x09\xb2\xdd\xba\x17\x90\x9c\xf3\x3c\x89\x75\xbb\x6e\x94\x92\xa6\x34\xc1\x42\xab\xe0\x66\xb4\xd7\xb6\x2d\x74\x3f\x27\x7e\xac\x30\x2e\xbd\x9a\x29\x7e\x24\x12\x51\x85\x32\x2e\x25\x9d\x24\xc5\x99\x7f\x18\x22\x18\xf7\xd9\xc5\x10\xf4\xf9\x48\x21\x6e\x78\xa8\xeb\xdc\xda\x6f\x5c\x8f\x29\x66\x8c\x40\xc7\x5c\xcd\x89\xb0\xdd\xdb\x97\xdf\x5a\x35\x7f\xb8\xba\xbb\x19\x9c\x0d\x3f\x0e\x07\xe7\xcb\xba\xf9\x7d\xff\xee\x87\xe5\x5f\x7f\xba\xbe\xfd\xe1\xe3\xc5\xf5\x4f\xcb\x4f\x2e\xfa\x0f\x57\x67\xdf\x8f\x6f\x2e\xfa\x57\xcb\x0f\x2d\x59\xb5\x56\xf3\xc3\x91\x6d\x78\xb6\x3a\x9b\xe6\x4b\xd9\x34\x7b\x5f\xae\x51\x73\x4a\x13\xd0\x41\x5b\x1b\x34\xbd\x0d\xc1\x7e\x89\x32\x2c\xa5\x91\x8c\xcc\x08\x8e\x47\xec\x92\x0b\xcd\xc0\xa6\x5c\xf3\x08\x2d\x3d\x29\x91\x47\x8a\xb2\x99\xff\xe8\x14\x8d\xf2\x6f\xbf\xfd\x53\x74\x41\xd9\x23\xfc\x45\x0e\x71\x71\x3a\x8b\x6f\x67\xf1\xfd\x6d\x59\x7c\xb5\xe8\x73\x12\x1a\x7a\xf7\x1b\x32\xa4\x85\x0b\x96\xe5\x0a\x44\x09\x9e\x2b\xfd\xa7\xee\x12\xc8\x63\x45\xe0\x50\x3b\x83\xe2\x27\xa2\xfc\x8b\x5a\xb4\x79\x0f\x76\xc4\x9f\xb8\x78\x9c\x26\xfc\xd9\x0f\xfc\x13\x51\x7a\xec\xb7\xb6\x97\x2e\x94\xa8\x0b\x25\x7a\xdb\x50\xa2\x83\x32\xe6\xbd\x3c\xf3\x2b\x5b\xfe\x0c\x07\x6c\xf0\x64\x35\x3a\xaa\x1a\xfc\x50\x81\x9b\xe9\x55\xb8\x66\xd9\x99\xb3\x86\x73\x96\x5e\x7e\x2f\xdc\xb3\x34\xe8\xd7\xe7\x9c\xbf\x09\x7f\x4b\xe7\x4e\xd9\x72\xa1\xde\x25\x83\x6d\x79\x77\xbc\x9a\x33\xe4\xe5\x19\xfe\x52\x6c\xc3\x26\xc1\x0c\x1b\x44\x2f\xb4\x0e\x57\x58\x13\x9f\x50\x1b\x90\x50\x17\x81\xb0\x1c\x72\x50\x1b\x63\xb0\x5b\x50\xc1\xb6\x77\x53\xfb\x30\x81\x4f\x44\x95\x5e\x7e\x2f\x77\x53\x69\xd0\xaf\x7f\x37\xfd\x46\xa3\x03\xba\x70\x80\x17\x5c\xba\x2f\xfd\x46\x3b\x5c\x87\xff\x6f\xc0\xc3\xdf\xb9\xf4\x37\x5a\xa3\x2f\xcb\x87\xff\xa5\x3a\xed\xdf\xa7\x97\xbe\x73\xcb\x77\x6e\xf9\xb7\xf0\x9f\xbc\x3f\xb7\xfc\xcb\xaa\xa7\xc5\xf1\x1a\x3b\x5a\xb0\xfa\x5a\x70\x28\xff\xd5\xc2\x49\x03\x7f\x39\x95\x6f\xd3\xa0\xf1\x46\x1d\xee\xbc\x18\xdf\x00\x8e\xd0\x2f\x96\x90\xd6\xa8\x73\x4b\xdf\xbd\x07\x75\x6e\x79\xd0\x2f\xaf\xc3\xbd\x19\xf3\x7d\xa1\xcb\xf3\x9d\xb0\x81\xcd\x6f\xcb\x2f\x58\x26\xef\x64\xf1\x97\xcf\xc6\x3f\x98\x09\xbd\x1f\xd9\xfb\x0d\x2e\xde\x96\xb7\xee\xde\x73\xb2\x6a\xae\xd9\xe0\x76\x5a\x97\x61\x55\xfd\x9a\x12\xf9\xc7\x77\x79\xdf\xbe\x46\x92\x55\x77\xe1\x76\x17\xae\x6d\xaa\xbb\x70\xbf\xe0\x0b\xf7\xe0\xe0\x6f\x0e\x26\x02\xb4\x0b\x22\xef\x80\x31\xba\x18\xf2\x3d\x2e\x4e\x17\x43\xde\xc5\x90\xff\xc6\x62\xc8\x77\xd1\x9e\xb6\xc5\xa2\x7c\x0b\x3d\xaa\x53\xa3\x3a\x35\x2a\xfc\xbd\x53\xa3\x3a\x35\xaa\x53\xa3\xbe\x70\x14\xd1\x4e\x87\x6a\xbf\x10\x9d\x0e\xd5\x7a\xa9\x3a\x1d\x6a\xc5\xe2\x74\x3a\x54\xa7\x43\xfd\xb6\x74\x28\xf2\x44\x98\x92\x90\x8c\x16\x6a\x14\x1f\x32\x2e\x9b\x35\xa1\x90\x3b\xd4\x68\x41\xd0\x66\x39\x29\x0c\x02\x97\x7e\x41\x73\x2c\x11\x8f\xa2\x5c\x54\xce\x40\x55\x0f\x3a\x13\x04\x2b\x02\x2d\xe8\x0f\xdf\x83\xfe\xb3\x3c\xdd\xd7\x8a\xc1\x9f\xf0\x78\x89\xda\xcd\x41\xa8\x7b\xb2\x5a\x1e\xd9\xdb\xd4\xff\x91\x93\x76\xea\xdf\x0b\x12\xb5\xc2\xf2\x71\xcf\x44\x5d\xca\xb5\xd8\x8a\xa8\xa1\x85\xf7\x42\xd4\xcb\xd3\xfd\xcd\x10\x75\xdd\xd4\x0f\x81\xa8\x9f\x6d\x1e\xff\x9e\x09\x7b\x09\x1e\x60\x2b\xe2\xf6\xad\xbc\x17\x02\xaf\x9f\xf6\x6f\x86\xc8\x9b\xa6\xff\xb6\x84\xee\x53\x24\x5b\x93\xf8\xbd\xa0\xb3\x99\x56\x33\x40\xc3\xd3\xa4\xb8\xbe\x46\x50\x91\x14\xb8\x96\xac\xfd\xab\xef\x81\xa4\xfd\x60\xcd\xd8\x7f\x33\xb4\xbc\x34\xef\x03\x21\xe2\x13\x41\x22\xfe\x04\xf5\xc2\xda\x11\xf3\x2d\x01\x0a\x06\x7e\x9d\x09\xf2\x44\x79\x2e\x93\xc5\x91\xc8\x19\x72\xcc\x1f\xf9\xe6\x8d\xb5\xfa\x99\x26\x09\xe2\x4c\xeb\x5f\x0a\x0b\xe5\x1e\x6b\xfd\x5b\xf0\x14\x4e\x45\x82\xa5\x42\x8f\x8c\x3f\x33\x34\xc5\x34\xc9\x05\x41\x19\xa7\x4c\x1d\x8f\xd8\x90\xa1\x5b\x33\x46\xc8\x1b\xe8\xa1\x5c\xea\xb3\x14\x61\xc6\xb8\x42\xd1\x1c\xb3\x19\x41\x98\x2d\x6c\x02\x6e\x41\x19\x88\x0b\x94\x67\x31\xd6\x8a\xef\x9c\x54\xa3\xf4\xfc\x18\xc1\x7c\x47\x25\xa2\x12\x91\xcf\x4a\x90\x94\x24\x0b\xdd\x87\xa6\x7d\xc5\x91\x5d\x1f\x33\x54\x9b\xce\x47\x84\xe0\x42\x42\xc6\xc1\x64\xf1\x2b\x66\x8a\x32\x82\x40\x51\x92\xc6\x34\x77\x84\x2e\xb8\x04\xb3\xcd\x0f\x7f\x91\x28\x4a\x72\xa9\x88\xe8\xa1\x49\x3e\x93\x5a\x53\xcc\x12\xac\xa6\x5c\xa4\x7a\x84\x94\x49\x85\x27\x34\xa1\x6a\xd1\x43\x29\x8e\xe6\xa6\x2d\x58\x03\xd9\x1b\xb1\x98\x3f\x33\xa9\x04\xc1\xbe\x77\xf7\x10\x7d\x1d\x3e\x33\x04\x20\xbf\xe9\x41\xda\x21\x4d\xb5\xba\x1b\x0c\xbf\xd8\x71\xb3\x27\xba\x11\x12\xa3\x09\x89\x70\x2e\xad\x87\x41\x89\x05\x22\x9f\xe7\x38\x97\xb0\x77\x7a\x7a\x36\x67\x23\xe2\x69\x96\x10\x45\x10\x9d\x22\x25\x28\x89\x11\x9e\x61\xaa\x97\xee\x8e\xac\x00\x41\xf7\x44\x6f\x37\xd0\x52\xfd\x2f\xa0\x7e\xa7\x5c\x10\x14\x13\x85\x69\xb2\xd2\xeb\x64\xbf\xed\xb8\xdc\x7b\xe2\x72\xe5\x0d\x3f\x08\x36\x67\x40\xfc\xf7\x70\x69\x33\x6b\xba\x8f\x70\xb2\xe3\xfd\x7d\x6b\x07\xd5\xd1\xf6\xfb\xa2\x6d\xb3\x6b\x87\x43\xdc\xaf\x16\x83\xdd\xbe\xa2\x45\x51\xcd\xe2\x5d\xd1\xf4\x6b\x84\x05\x74\x0e\xe7\xce\xe1\xdc\xb8\x32\xef\xd3\xe1\x7c\x30\x1e\xa3\xce\xe7\xfc\x42\x3e\x67\x2a\x3b\xa7\x73\xe7\x74\x6e\xbb\x40\x9d\xd3\xb9\x73\x3a\xbf\x5f\xa7\xf3\x4b\xe2\x3e\xef\x15\xdd\xf9\x5d\x89\xd6\x9d\x58\xdd\x89\xd5\x1d\x84\xb3\x9f\xda\xbe\x58\x98\xfb\xfa\x43\x4c\x12\xa2\x48\xb3\x3d\x8b\x88\x54\x6b\x0b\xe6\x7a\xa6\x4c\xcb\x71\x33\x41\xa4\xdc\x95\x21\xf9\x86\xdf\x27\x5b\xf2\xc3\xef\xa0\xe6\x3b\x3e\xd5\xf1\xa9\x6d\xa6\x76\x38\xa6\xd9\xe0\x30\xbf\x96\x6d\xd6\xf3\xdf\x2c\x6f\x96\xfe\x1e\x8c\x1b\xb2\xf0\x8b\x1a\x0a\xd7\x52\xbb\xe2\xfe\x70\x5b\x3a\xdf\x91\x1f\x9b\xbe\xde\x27\x33\x36\x63\xef\x38\x71\xc7\x89\x3b\x4e\xfc\xbe\x39\xb1\x3b\xc9\x6f\xea\x22\x33\x7e\xba\x71\x96\x60\x36\xa6\xb1\x3c\xf9\x67\xa1\xcb\xbf\x94\x87\x4c\x1f\xa8\xd8\xa4\x98\xfa\x94\x4e\xf1\x8b\xfe\x24\x29\x0c\xe6\x1e\x33\x73\x8d\x13\xcd\xd8\xd8\x6f\x12\xcc\x86\xf1\xbb\xf0\xa3\xd5\xce\xfe\x35\x7c\x6a\xbb\xf0\x71\xac\xc0\xd3\x81\x29\x33\x26\xbc\x22\xaf\xb6\x64\xa0\x3c\x8c\x13\xbe\x0b\x57\x0f\x26\x16\x30\x76\xc7\xaf\x83\x45\x39\xbc\x69\x77\x7e\x9d\x2e\x97\xb0\xf3\x5c\xb4\x9c\x70\xe7\xb9\x38\x5c\xcf\xc5\x5b\xb9\x23\x5f\xf9\x78\xbe\x96\x58\xd7\x3e\x08\xdf\x44\xab\x41\x50\x6b\x9e\x25\x1c\xc7\xab\x5c\x31\x85\xe0\x15\x82\xa3\xac\x8d\xc4\x2f\x3e\x7b\x0f\xc2\x5a\x31\xda\xdf\x58\x24\xdf\xf2\xc4\x0f\x45\x4b\x79\xc5\x50\xbe\x7a\x12\xdf\x40\x25\x79\x1f\xf8\xa9\xc5\x78\xbb\xd0\xbe\xce\xa2\xf4\xf6\x16\xa5\x2e\xb4\xaf\x53\x01\x0f\x4c\x05\xec\x42\xfb\xba\xd0\xbe\x4e\x41\x5e\x3d\xed\x4e\x41\xfe\x22\x42\xfb\x5a\x89\xda\x2f\x88\xbd\xb9\xbb\xd0\xdd\xc9\xdc\xee\xbd\x4e\xe6\xee\x64\xee\x2f\x54\xe6\x3e\x8c\x15\xee\x04\xee\x4e\xe0\xee\x04\xee\x4e\xe0\xee\x04\xee\xbd\x2f\x63\x27\x70\xbf\x66\x81\xce\x7a\xa9\x7b\x4d\x92\xcd\x7b\xf5\xe5\x74\xe2\x76\x27\x6e\x1f\xb6\xb8\x7d\x30\x13\x7a\x3f\x65\x1e\xdb\xcd\xa7\x2b\x52\xde\x15\x29\xef\x8a\x94\xbf\x78\x91\x72\xf7\x75\x8b\x8c\x0f\x7b\xb8\x14\x56\xb9\x34\x80\x8f\x82\xcc\xa8\x54\xc0\xfe\xdb\xc8\x2b\xeb\x13\x3d\xde\xab\x9c\xd2\xa5\x7a\xf8\xa7\x9d\xd4\xd2\x49\x2d\xbf\x51\xa9\xe5\x80\x62\xc1\x0e\x22\x63\x25\xc5\x2a\x9a\xe3\x49\x42\xc6\xde\xe8\x23\xdb\xea\xc1\x17\x54\x2a\x89\xa2\x5c\x2a\x9e\x36\x5f\x2e\x97\xae\x87\xbe\xef\xe0\x8c\xb3\x29\x9d\xe5\xe6\x6e\x31\xe0\x9c\xc1\x89\x2e\x24\xc1\x45\x46\xd6\x79\xaa\x6a\x5a\x7f\x17\xd7\x52\xfd\xd0\x5f\xeb\x76\xda\x44\x70\x2f\x8c\x7c\x56\xea\xd6\xb2\xd6\xf8\x76\x70\x77\xfd\x70\x7b\x36\x38\x45\xfd\x2c\x4b\xa8\xb1\xbb\x1b\x52\xa0\xbf\xea\x49\x21\x85\xe5\x63\xb1\x97\xc2\x90\xb9\xc1\xb0\x05\x43\xbf\x96\x8d\xd1\x11\x3a\xbb\x78\xb8\xbb\x1f\xdc\x36\x34\x68\x09\x05\xf2\x56\x49\x9a\x25\x58\x91\x18\x3d\xe6\x13\x22\x18\xd1\xd2\x8e\x45\xba\x2d\xcc\xff\xa6\xd1\xc1\x7f\x0f\xce\x1e\xee\x87\xd7\x57\xe3\xbf\x3e\x0c\x1e\x06\xa7\xc8\x51\x9c\x6e\x56\x8f\x4b\x8f\x22\x5e\x30\x9c\x6a\x0d\x44\xff\x50\x64\xca\xfe\x23\x27\x39\x41\x58\x4a\x3a\x63\x29\x01\x44\xe0\x52\x8b\x6e\xc0\x17\xfd\xef\x06\x17\xe5\x96\xe7\x24\x84\xdf\x45\x09\x9e\x90\xc4\xfa\x23\xc0\xc4\xae\x09\x3d\x80\x2a\x36\x8e\x8a\xdc\xac\xea\x5f\x1f\xfa\x17\xc3\xfb\x9f\xc7\xd7\x1f\xc7\x77\x83\xdb\x1f\x87\x67\x83\xb1\x95\x2a\xcf\xfa\xba\xdf\x52\x4f\x56\xf8\x44\xff\xc8\x71\xa2\xb5\x13\x3e\x75\x78\xbc\xe8\x79\x4e\x18\xca\x19\x50\x9c\x51\x79\xb4\x1e\xe4\x3b\xd5\xa7\xcc\xcc\xe8\xe6\xe2\xe1\xd3\xf0\x6a\x7c\xfd\xe3\xe0\xf6\x76\x78\x3e\x38\x45\x77\x24\x01\xa5\xc0\x2d\x3a\xec\x62\x96\xe4\x33\xca\x10\x4d\xb3\x84\xe8\xd5\xc0\x36\x9b\x78\x8e\x9f\x28\x17\xf6\xe8\xce\xe8\x13\x61\x66\x1d\xe1\xcc\x42\xfb\x4e\xf8\x1e\x07\x4b\x77\x7d\xf5\x71\xf8\xe9\x14\xf5\xe3\xd8\xcf\x41\x42\x1b\x25\xca\x71\xb0\xce\x47\xe5\x61\x6b\xe6\x00\xdd\x1b\x22\xe2\x4f\x44\x08\x1a\x93\x0a\x1d\xf5\xef\xee\x86\x9f\xae\x2e\x07\x57\xf7\xb0\x62\x4a\xf0\x44\xa2\x39\x7f\x06\x53\x36\xcc\x10\x2c\xdc\x4f\x98\x26\xd0\x99\xdb\x2c\xce\xd0\xf3\x9c\x82\xfb\x03\x80\x99\x7d\xcf\x46\x3f\x13\x39\x7b\x73\xeb\x6c\xe9\xe0\x2d\xab\x2d\xd5\x93\xb4\xfc\x46\xe5\x58\xac\x7a\xa1\x44\xe5\xcb\x2f\xae\xa3\xd6\xe5\x2f\x2a\xe4\xd6\xac\xac\x2d\xd1\x4b\xf3\x4c\x8b\xbd\x6e\xad\xab\x95\xd7\xf0\xf5\xae\x59\xa2\x04\x8d\xe4\xcb\x42\x3d\x89\x9c\x29\x9a\x12\x64\x3b\xb3\x87\x73\x8f\xf0\x4f\x97\xa6\xe1\xf7\x70\xc1\x2e\x95\x72\xf8\x44\x94\x1d\x7e\xa7\x02\x76\x2a\xe0\x61\xa8\x80\xef\x2d\xdb\x3f\x26\xd9\x72\x87\x95\x89\xc1\x3b\xc6\xeb\xb5\x14\xa4\x61\xec\x89\xd6\xa2\x9a\x90\x27\x92\x80\x94\xa7\x04\xd6\x4a\xa3\x95\x5d\x26\x82\xe0\x47\x2d\xf0\xc5\xfc\x39\x94\x5c\x6a\x90\xfb\xd1\x7e\x6e\xe1\x36\x41\x1c\x7f\xfa\xe3\xeb\x5d\x16\x7a\xb9\xe3\xd7\x28\xe1\x7d\x0b\x41\x32\x2b\x31\x02\x83\x04\xfb\x5f\xac\x25\x78\xcd\x6d\x11\x7c\xf1\x1e\x2e\x8a\x70\xb8\x07\xa4\x75\xdd\x86\x4a\xb0\x63\xa1\x29\x51\x38\xc6\x0a\xeb\x43\x33\x23\xea\x18\x5d\x33\x78\x76\x8f\xe5\x63\x0f\xb9\x2b\x4f\xb3\x95\xc2\xca\xf0\x0a\xa9\xf5\xef\xc4\x80\xbf\x39\x1f\xef\xae\xef\xee\xfa\xae\x5f\x99\x2e\xcc\xb3\x61\x85\xf7\x75\x31\x6e\xe4\xf3\xda\xdf\xfd\x65\x5a\x7c\xbf\x57\xd8\xeb\x3a\xb9\xf6\x7a\xa1\x99\xca\x59\xdd\x6d\x65\xfe\xaf\xbb\xad\xba\xdb\xaa\xbb\xad\x0e\x60\x85\xdf\xdc\x61\x58\xc3\xdd\xdf\xd4\x63\xb8\x4e\x3b\xdd\x1a\xf2\xae\xd0\x46\x37\x01\xbd\xfb\xa5\x2d\xb6\x5d\xf1\x0d\x7d\x1f\x3e\xc2\x60\x92\xaf\x91\xd6\xb6\xd7\xcb\xdc\xe4\x8b\x74\xfa\xe9\x0b\xde\xf8\x1d\x02\xe1\x5e\x11\x08\x0f\x63\xae\x2f\x92\x02\xf7\x36\x16\xd3\xb7\x4f\x7b\xeb\xa0\x06\xbb\xc4\xae\x2e\xb1\x0b\x7e\xef\xa0\x06\xf7\x47\xad\x2f\x2b\x5d\xf3\x98\x8c\x2b\x51\x02\xfe\x9f\xe3\xaa\xe7\xa7\xf4\x24\x74\x03\x95\x1e\x14\x99\x6e\xd0\x3a\x8d\xf7\x59\x44\xea\x8a\xc7\xa4\x75\x24\x41\xe9\xe5\x03\x97\xc1\xdd\x3c\x8d\x2c\x5e\x1a\xf8\x0b\x4b\xe2\x0d\x5b\xfe\x25\x1a\x76\x6a\x08\xb8\xb3\xf2\xac\x5d\xa8\x2f\x35\xbe\xa0\xe0\x50\xef\xc8\x53\xd1\x8e\x8d\xbb\x98\xc6\x71\x03\x33\xaf\x7f\xee\x59\x7a\xfd\xe3\x97\xc1\x0c\x6a\xcf\xd1\xc1\xac\x12\xbe\xfd\x3e\xec\x2a\xe1\x88\x5f\xc3\xb2\xb2\x72\xef\xbf\x38\xae\xbe\x8a\x92\x3b\xde\xde\x72\xb9\xbe\x54\x0e\xdf\x41\xfc\xac\xb2\x75\x74\x18\x3a\x9d\xa9\xe5\x70\x26\xdc\x99\x5a\xde\xb5\xa9\xc5\xb8\x68\xc7\x19\x16\x84\xa9\x1a\x91\xba\x7a\x9d\xc0\xeb\x21\xe6\x82\x93\x3a\xa0\x01\xa4\x25\x5a\x64\x2f\x64\x7f\x55\x7d\x59\xb6\x17\x2b\x18\x04\x99\x90\x27\xff\x2c\xfe\xf6\xc2\x7a\xa9\x02\xc4\x8a\xe8\x24\x83\xf5\x2f\xf5\x1d\x9d\xdb\x40\xa5\xdd\x73\x25\xb1\x2a\x89\x82\x10\x44\xbd\x36\x9e\xe9\xc6\xbc\xfd\xbe\x52\x24\x97\x06\xfd\xba\xb1\x4d\xcb\x1b\xdf\xee\x00\xb9\x9d\xa1\x26\xdd\x2f\xc8\x29\xd3\xd2\x28\x9f\x16\x17\x83\x44\xcf\x34\x49\x00\x51\x04\x32\x1e\x9b\x6e\x80\xdf\x5c\xc4\x43\xe3\xce\xbf\x69\xdc\x43\x1d\x77\xa8\x63\x09\x6d\xec\xa9\xfb\xca\x99\x76\xc4\x06\xe9\xac\xa0\x0d\xad\x31\xc0\x7e\x19\x9c\xe0\x13\x51\xaf\xc5\x06\xb6\x3d\xfb\x2b\xcf\xbd\x20\x53\x22\x08\x8b\xc8\x01\x7a\xdb\x37\x09\x03\xf9\xc9\x4c\xd2\xc6\x80\x78\x28\x81\x70\xaa\x8a\x5b\x3d\xad\x24\xea\x76\x99\xe4\x5d\x26\x79\x97\x49\x5e\x3d\xea\x5d\x26\x79\x97\x49\x5e\x9b\x03\x11\x93\x84\x28\xd2\x28\x55\x9c\xc3\xe3\xb7\x92\x2a\x4c\xef\x5f\x86\x60\x61\xe6\xd2\xc9\x16\xbf\x19\xcd\xc2\x6d\xf8\x41\x68\x16\xe6\xac\xad\x33\x3f\x94\x7e\xac\x09\xb1\x7e\x75\x93\xc4\x36\x4c\xa3\x64\x97\x38\x87\xd7\xdf\x25\xeb\xa8\x0e\xbd\xb3\x51\xa0\x60\xeb\x5e\x8e\x93\x2c\x1d\x81\x76\x13\xb7\x1e\xc3\xf7\x3b\xef\x43\xe1\xa0\x4d\x74\x7f\xa8\x7c\x74\xeb\xa4\x94\x43\xb1\xd8\x7c\x41\x3c\xb2\xb3\xde\xbc\x71\xae\xc4\x12\x33\x7c\xb7\xd3\xed\x8c\x55\x9d\xb1\xaa\x33\x56\x75\xc6\xaa\xce\x58\x85\x3a\x63\xd5\xc6\xc6\xaa\x2f\x48\xa6\xea\x0c\x57\x9d\x58\xb5\xbf\xe9\x1e\xaa\x96\x79\x48\xd6\xba\xd6\x28\xe9\x45\x0e\xd5\xda\xc8\x7b\x3b\xed\x5f\xd6\x84\xdc\xdf\xb8\x11\xbc\x1f\x7e\x25\x5f\x9a\x25\xed\x12\x58\xec\x76\xf4\x8b\x8d\x2b\xee\x4a\x87\xd6\xae\x55\x17\xf6\xbc\x62\x71\xba\xb0\xe7\x2e\xec\xf9\xe0\xc2\x9e\xf7\xae\xac\x64\x5c\xae\x02\x24\x32\xa5\xb3\x56\xe6\x3f\xbb\x3b\x1b\x12\x8d\x80\x14\x0c\xca\x71\x4c\xb2\x84\x2f\xc0\x92\xb2\xe2\x3a\x77\x5d\xdc\x2c\x49\xd4\x87\x7e\xa3\xbb\x91\xbf\x96\xce\x71\x28\x32\x69\x31\xef\x83\x90\x42\x4f\xfe\x59\x49\xe7\x6f\x85\x97\xc9\x10\xf9\x4c\x25\xdc\x4a\xeb\x09\x7b\xc4\xea\x9f\x04\xa5\x0b\xed\x3d\x38\xc9\x55\x90\xbb\x27\xb5\x60\x95\x11\xa1\x16\xc1\x9b\x24\xcd\xd4\xe2\xbf\x46\x8c\x2a\xef\x61\xa3\x33\xc6\x85\xe1\x6a\xfa\xe3\x39\x66\x71\x42\x84\xbe\x54\x5d\x3b\x11\x66\x8c\x2b\x10\x37\x60\x06\x31\x7a\xa2\xd8\x08\x27\xfd\x9b\x61\x6b\x3f\xf3\x3b\x3a\x5d\xaf\x5d\xac\x6e\xcd\x5d\xf7\x29\xe1\x13\xa8\x60\x99\x97\x75\x7a\xdd\x40\xe7\x19\x2d\xed\xdc\x5b\x31\x04\x85\xe5\x63\x15\x38\xa4\x9c\x85\x3e\x5e\x09\x25\xb2\xe6\xdd\x12\xc6\xfc\xea\x57\x2b\x70\x23\xe5\x67\x16\x80\x04\x1e\xc3\x90\xab\xe3\x70\x3f\x86\x1d\xba\xdf\x8a\x96\xdd\x2f\xae\x74\x37\xfc\x28\x88\x12\x8b\x31\x56\x4a\x33\x99\x7d\x62\x9c\xdc\x63\xf9\xd8\x1a\xe3\xa4\xf4\xf2\x81\xb3\x9c\x12\xc6\x49\x79\xe0\x2f\xce\x72\x5a\x52\xe7\x1a\xce\xf4\xfe\xf2\xe3\xdb\x9e\xb5\x0d\x26\xfe\x5b\xc9\x95\x6f\xc7\x7b\xd6\x99\x69\xdf\x63\xde\xfc\x2a\x66\x7a\x30\x23\xac\xf0\xf3\x2f\xf1\xe4\x96\x6f\xa7\xee\x88\xae\x5a\xa3\x2f\xae\x10\x6e\x45\xe8\x58\x33\xb7\x77\x52\x10\xb7\x2a\x37\xed\x7b\x54\x2f\x63\xe6\x0e\x76\x63\x93\x18\xa0\x61\x19\xad\xdc\x9f\x21\x17\x15\x54\x94\x9e\x9d\x43\xa2\x35\x95\x61\x42\x7c\xc4\x85\x91\xbc\x62\x7b\x66\x8d\xd9\xce\x80\xf9\x9e\xa2\x3e\x8a\x6d\x6d\x7e\x41\x32\x41\x24\x61\xca\xa8\xda\xa6\xde\x95\x2b\xef\x4f\x99\xb5\x10\x9d\x63\x85\xcf\xb0\xc2\x09\x9f\x1d\xa3\xbe\x2f\xec\x4f\x25\xc2\x89\xe4\x08\x3b\xc2\x21\xb1\x6b\x02\xb3\xd8\xb1\x07\x8c\x22\x9e\x66\x34\xf1\x48\xed\xde\x8a\x4f\x59\x4c\x9f\x68\x9c\xe3\xc4\x23\x63\x8f\xd8\xe0\x89\x30\x95\x83\x0a\x87\x93\x04\xd9\x6e\xdd\x0b\x81\x7e\xee\x46\x29\x69\x4a\x13\x2c\x90\xe2\x76\xb4\xd7\xb6\x2d\x74\x3f\x27\x7e\xac\x0e\x05\x1c\xa5\xf8\x91\x48\x44\x15\xca\xb8\x94\x74\x92\x14\xc7\xf8\x61\x88\x60\xdc\x67\x17\x43\x30\x8d\x46\x0a\x71\xc3\x07\x5d\xe7\xd6\x4f\xe0\x7a\x4c\x31\x63\x04\x3a\xe6\x6a\x4e\x84\xed\xde\xbe\xfc\xd6\x56\xce\xb7\xc6\x88\x6e\xb6\x98\x86\x23\x7b\x3b\xa5\xb3\xb5\xc6\xd9\x56\xdd\x6c\xa7\x6b\x36\x2b\x9a\x2f\xe0\xa5\x6d\xaf\x0d\x5e\x50\x59\x56\x07\xdf\x85\xcb\xb6\x34\xe2\xd7\xc0\x47\xfb\x8d\x2a\x82\x9d\x16\xf8\x22\xeb\xf6\xa5\xaa\x80\x07\xae\xff\x75\xc8\x6e\x1d\x8a\x7d\x17\x80\xb1\xc7\xc5\xe9\x02\x30\xba\x00\x8c\x2f\x36\x00\xa3\x59\x9b\xa0\xf1\xce\xe9\x7a\x1b\x56\x90\xf2\x46\x01\xf1\x0b\x88\x52\x58\x3e\xb6\xad\x29\xa5\x45\xe5\x61\xfc\x2e\xa4\xfa\xda\x09\xbf\x86\x74\xdf\xd5\x29\xda\x6b\x9d\xa2\x83\x9b\x76\x27\xf8\x75\x82\x5f\x27\xdb\xb4\x9c\x70\x27\xdb\x1c\xae\x6c\xf3\x56\x0a\xcb\x97\x04\xa1\xab\x85\xa7\x52\x66\xcc\xca\x00\x5b\x03\x47\x03\xee\x81\x3c\x4b\x38\x8e\xd7\x05\xe1\xfc\x82\x0a\xb9\x66\x85\x68\x66\xda\xd5\x1f\x1c\xb8\x64\xb6\x14\x7f\x63\x46\xfe\x5b\x88\xa9\x6d\x9c\xfa\x9b\x86\xd5\x02\xfd\x42\x30\x59\x29\x28\xed\xa5\xb4\x90\x2a\x4d\xb7\x52\x38\xe4\x1f\x0f\x9c\xaa\xfd\x96\xbe\x86\x7a\xf1\x05\x3b\x08\x3a\x27\xc0\x6f\xb3\xf0\xf9\xc1\x48\xad\x9d\x6a\xd7\x65\x55\x76\x46\xfd\x4e\xf1\xed\x14\xdf\xbd\x2f\xe3\x21\x29\xbe\x6f\x28\x51\x9b\x34\x91\x17\x29\x63\xb8\x9d\x6c\xdd\x89\xd6\x9d\x68\xdd\x89\xd6\x5f\xac\x68\x7d\x18\x2b\xdc\xc9\xd5\x9d\x5c\xdd\xc9\xd5\x9d\x5c\xdd\xc9\xd5\x7b\x5f\xc6\x4e\xae\xae\xc8\xd5\xf0\x97\x4b\x93\xde\x54\xc8\x6e\x2d\x5c\xb7\xc8\x89\x7e\x2f\x92\x75\x27\x55\x77\x52\xf5\x61\x4b\xd5\x07\x33\xa1\x2f\x2f\x11\xb2\x4b\x25\xec\x52\x09\xbb\x54\xc2\xb7\x48\x25\x74\xbc\x64\x95\x84\xb2\x2c\x58\xfc\xb8\xc4\x81\x0e\x56\xb6\x28\x46\xbb\x6d\x78\xc7\xbe\x96\xda\x01\xcd\x6f\x53\x69\xaa\xf4\x9b\x6b\xe8\x80\xea\x4f\xf5\x9c\xb4\xa0\x19\x85\x1b\xdf\x7a\x84\xb0\x9f\xec\x9b\xef\x0b\x0c\x7c\x79\xd4\x5d\xfd\x29\x14\xec\x5a\x57\x7f\xea\x05\xe7\xed\x0e\xd7\x9a\x99\x3b\x1a\x35\x36\xde\x77\x3a\xed\x37\x07\x97\x6b\x3e\xe9\x6f\x1a\x2e\x57\x7b\x93\x2c\x25\xef\x9c\xfc\xb3\xf6\xa2\x78\x83\xb2\x5b\x1b\xdf\x0e\x9f\x88\xfa\x52\xae\x86\xae\xec\x56\x57\x1f\x62\x4f\xd3\xdd\x8a\xf5\xbf\xdb\xd9\x76\x45\xc6\xba\x22\x63\x5d\x91\xb1\xae\xc8\x58\x57\x64\x0c\xfd\xc6\x8b\x8c\x6d\x2c\x3e\x9a\x71\x7c\x29\x12\x64\x57\x64\xac\x13\x22\xf7\x37\xdd\xdf\x96\x10\x79\x80\x16\x84\x83\xa8\xa6\xe6\x2d\x08\x6f\x8e\xfb\xe1\x46\xd2\x16\xfb\xc3\x2d\x68\x87\xff\x61\xff\xaf\xc3\xff\xe8\xf0\x3f\x1a\x66\xdd\x05\xb3\x76\xf8\x1f\xa8\x0b\xd7\xec\xc2\x35\x0f\x39\x5c\xb3\xc5\x36\x76\xf8\x1f\x2d\xc5\xb9\x17\xc2\x00\x71\x32\xd7\x46\x38\x20\x3f\x2d\x2b\x1a\x07\x2b\xa5\xb9\xb1\xfe\x76\x70\x40\x6a\xa7\x7d\x10\x2a\xc9\x2b\xe2\x80\xd4\xd1\x75\x6b\x05\xe4\x7d\xe0\x81\xb8\xd1\x76\x89\x8b\x5d\x88\xf5\xe1\x87\x58\x1f\x5c\xe2\xe2\xc1\x48\xb2\x9d\xba\xd7\xe5\x2e\x76\xb9\x8b\x9d\x32\xdc\x29\xc3\x7b\x5f\xc6\x43\x52\x86\xdf\x58\xc2\x7e\x41\x5c\x90\xdd\x64\xed\x4e\xd4\x36\xef\x75\xa2\x76\x27\x6a\x7f\xa1\xa2\xf6\x61\xac\x70\x27\x67\x77\x72\x76\x27\x67\x77\x72\x76\x27\x67\xef\x7d\x19\x3b\x39\xfb\xd5\x70\x42\xea\x84\xed\x96\xf9\x36\xef\x49\xd2\xee\xa4\xec\x4e\xca\x3e\x6c\x29\xfb\x60\x26\xd4\x61\x86\x74\x98\x21\x1d\x66\x48\x87\x19\xb2\x95\x7c\xf3\x6f\xf6\x58\x7e\x08\x6e\x62\x7f\x65\x7f\xf8\x2e\xe1\x93\xfb\x45\x46\xf4\x7f\xcf\x69\x4a\x98\x04\x69\x94\xaa\x45\x28\xcf\x34\xac\xfc\xf2\x9a\x7f\xb8\x1b\x5e\x7d\xba\x08\xb3\x69\x3e\x5c\x3e\x5c\xdc\x0f\x6f\xfa\xb7\x7e\x5d\xfc\xac\xc2\xb5\xb0\xdf\x95\x44\x32\x4b\xf2\xb7\x44\xeb\x9e\x70\x6a\xee\x14\x56\xb9\xdc\x6e\x64\xb7\x83\xbb\xc1\xed\x8f\x90\x0d\x34\x3e\x1f\xde\xf5\xbf\xbb\x28\x11\x44\xe9\x79\xff\xec\xaf\x0f\xc3\xdb\xe6\xe7\x83\xff\x1e\xde\xdd\xdf\x35\x3d\xbd\x1d\x5c\x0c\xfa\x77\xcd\x5f\x7f\xec\x0f\x2f\x1e\x6e\x07\x2b\xd7\x63\xe5\x68\x57\x2b\x21\x12\x16\x09\xe2\xfc\x51\x64\xb9\x86\x28\xd6\x10\x79\xf1\xd1\xb1\xc3\xba\xbe\x4e\xd1\x83\xd5\xe9\xa9\x6d\xdc\x30\xd8\xa0\x21\xa3\x8c\xc4\x54\xe2\x49\x42\xe2\xa5\x96\xdc\x1a\x36\xb5\x84\x4b\x83\x7a\xd6\xda\xb3\x17\x39\x35\xcf\x8b\x0c\x2f\x40\x90\xa3\xa8\x08\x8b\x6b\xfa\x30\xfb\xd0\xd8\x03\xd3\xbc\x8b\x3e\x91\x52\x4f\x51\x2e\x04\x61\x2a\x59\x20\xf2\x99\x4a\x25\x97\x1a\x75\xdb\xd7\xd4\xac\xbd\x53\x7d\x83\x73\x2c\xd1\x84\x10\x56\x1e\xbf\x20\x09\xc1\xb2\x66\xcc\x76\xf7\xdb\x2d\x8b\xdf\x2b\x6b\x8d\x31\x97\xd1\x14\xd3\x24\x17\xa4\x72\x5a\x78\x9a\x61\x41\x25\x67\x83\xcf\xfa\x2e\xd3\x07\xf9\x1a\x3e\xe7\x62\xbb\x13\x33\xf8\x6b\x48\xc1\x57\xe5\x7f\x7e\xba\x2f\xff\xab\x74\xe6\x2f\xee\xcb\xff\x5a\x4d\xeb\x41\xc3\x55\xca\x3e\x42\x9f\xee\x4f\xd1\x27\x08\x71\x12\xe8\x7e\x8e\x0d\xc5\x5e\xdc\x9f\xa2\x0b\x22\x25\xfc\x52\x7c\xac\xa8\x4a\x60\x6e\xdf\x51\x86\xc5\x02\xb9\xe9\x9b\x44\x57\x1c\xcd\x11\xf1\x4b\x53\x5d\x3c\xf6\xf7\x9c\x81\xea\x5e\xac\xde\x05\x9f\xd1\x08\x27\xbb\x2d\x62\xff\xaa\xc4\x07\xae\x6f\x57\x2e\x45\xf8\xf6\xf2\x5a\xf4\xaf\xce\x21\x89\xd4\x0d\xb5\x66\xe6\x57\x44\x6a\x22\x89\x38\x8b\xad\x97\x46\xdf\xfe\x8b\x40\xa8\xff\x3b\x87\x44\xdc\x5c\x52\x36\xd3\x2d\xa2\x13\x74\x7d\x3b\x62\xd7\x22\x36\x86\x50\xa2\xa5\x61\x43\x73\x54\x22\xc6\x15\xa2\x69\xc6\x85\xc2\x4c\x69\x45\x00\xc4\x00\xbb\x22\x86\x03\x9c\xf1\x34\xcd\x15\xd6\x07\x6d\x69\x51\x99\x31\x87\xdc\x11\x35\x8c\xc1\xb5\x52\xb3\x86\x46\x4e\x28\xe6\x92\x09\xdd\xbe\x96\x51\xca\x3a\x34\x8d\x97\x54\x59\xd7\x04\x16\x02\x97\xa5\x89\x0f\x54\x91\xb4\xfa\x7e\xcb\x20\xcf\x7f\xd5\x1a\x08\xce\x4c\x52\x05\x11\x7d\x11\xcd\xa9\x22\x91\xd2\x47\x70\x2b\x9a\x78\xb8\xfa\xe1\xea\xfa\xa7\x50\x82\xf8\xd0\xbf\x3c\xff\xf3\x7f\x94\x7e\xb8\xbd\x5c\xfa\x61\xfc\xe3\x9f\x97\x7e\xf9\xff\xad\xa4\xa7\x6a\x4f\x4b\x7a\x7e\x30\x97\x23\x10\xa9\xc1\x26\xec\xa6\x8a\x68\x8a\x67\x04\xc9\x3c\xd3\x14\x20\x8f\xcb\xfb\xab\x45\xca\x0b\x8e\x63\xca\x66\x26\x03\xf4\x82\x2a\x22\x70\x72\x89\xb3\x8f\xce\x7e\xbd\xc5\xea\xfc\xdf\xbb\x52\xbe\xee\x87\x9f\xfb\x97\x61\xc6\xef\x87\x9b\xdb\xeb\xfb\xeb\x95\xb3\x2e\xb5\xb0\x7c\x8c\xf4\xe3\x53\xf8\x5f\x74\x82\x74\xeb\x5e\xf2\x4d\x89\xc2\x5a\x23\x40\x5f\x9b\xa4\x39\x9f\x48\x43\x59\x02\xa7\x26\x13\x34\xa5\x70\xa5\x18\x0b\xde\x37\x46\xb8\xf6\xda\x83\x3f\x37\xe6\x03\xd0\x96\xdd\xa5\xcc\x62\x2c\x62\xf4\x77\x59\x4d\x1f\x07\xc3\xb1\xf9\x81\xc4\xe8\x08\xcd\x95\xca\xe4\xe9\xc9\xc9\xf3\xf3\xf3\xb1\x7e\xfb\x98\x8b\xd9\x89\xfe\xe3\x88\xb0\xe3\xb9\x4a\x13\x93\x2e\xaf\x57\xe1\x14\xdd\x08\xae\xaf\x10\x50\xd0\x89\xa0\x38\xa1\xbf\x92\x18\x4d\x0c\xff\xe3\x53\xf4\x4b\xc4\x05\x39\x2e\x36\xc6\x1a\x95\xec\x3d\x62\x0d\x4f\x27\xfa\xa5\x1a\x66\x52\xdd\x4f\x14\x93\x88\xc6\x56\xcc\x20\x2c\xe2\x60\x79\x34\xbe\x0a\xdd\x9e\xcb\x34\xd4\x1a\x4d\x96\xab\x62\x39\x03\x65\x05\xc7\x24\xc8\x76\x57\xbc\x4c\x70\x5a\xf1\x19\x1a\xb5\x35\xd7\x2a\xba\xbe\x5b\x31\xdc\xaa\xee\xd5\x4c\x4f\x38\xe2\x09\x9a\xe4\xd3\x29\x11\xa1\x43\xba\xa7\xb5\x19\x2a\x91\x20\x11\x4f\x53\x90\x18\xf4\x57\xb9\x34\x54\x0d\x2b\x66\x47\x7b\x3c\x62\xb0\xff\x5a\xcd\x01\x0a\x88\x39\xb0\x3a\x46\x48\x8c\x30\x5b\x98\x6e\x26\xf9\x34\x6c\xdf\xc0\x50\xe0\x18\x51\x35\x62\xfd\x24\x41\x82\xa4\x5c\x91\x20\x87\x12\x9c\x67\xe5\x05\x07\x16\x29\x48\x96\xe0\x88\xc4\x86\x1e\x12\x1e\xe1\x04\x4d\x69\x42\xe4\x42\x2a\x92\x86\x0d\x7c\x0d\xb6\x1a\xbd\x66\x54\xa2\x98\x3f\xb3\x84\x63\x3b\x8f\xea\x67\xdf\x94\x4f\xe3\xc0\x41\x04\x0c\x84\xe0\x02\xfe\xe7\x07\xca\xe2\xbd\x71\xa8\x87\xbb\xc1\x6d\xf8\xef\xbb\x9f\xef\xee\x07\x97\x9b\x71\x1f\x4f\x59\x30\x3c\xd0\xe1\x4f\xd1\x9d\x59\x04\x2e\xb4\x44\x24\x1a\x26\x75\x69\x49\xa9\xf8\x81\xc7\x5b\x72\xdf\xcb\xfe\xd5\x43\xbf\xc4\x51\xee\xce\xbe\x1f\x9c\x3f\x54\xf4\x01\x3b\xbf\x92\x0c\x6f\xd4\xbf\xf0\xb7\xb3\xef\x87\x17\xe7\xe3\x1a\x85\xf1\xc3\xed\xe0\xec\xfa\xc7\xc1\x6d\xa1\xdb\xd5\x2e\x51\x65\x30\x55\x66\x75\x6f\x98\xd2\x9c\xc7\x68\xb2\xa8\x07\x84\xd0\x92\x73\x02\xbe\xd8\x02\x12\xc5\xb4\x7a\x0a\xbc\xc9\x61\x73\x14\x5f\xa4\x3c\x26\x3d\xfb\x0e\x20\x69\x18\xe3\x8a\x91\x98\xeb\x1b\xd6\xbd\x63\x16\x18\x2a\x0c\xc8\x85\x5f\xb8\x53\xd4\x47\x52\xbf\x98\xeb\x43\x2d\xe8\x6c\x06\x86\xc3\xca\x50\x4d\x6b\xf6\x53\x58\x5e\xf8\xce\xec\x7f\x26\x38\x9c\x73\xdd\xad\xb5\x38\x7b\xab\x84\xf9\x10\x50\x57\xca\x2d\x0a\x0c\x06\x87\x9a\xa1\xb9\xcd\xd2\x8b\xd0\xb8\x5e\xe6\x3c\x1a\x7b\x91\x3e\x5c\xc0\xb6\xa4\xb1\x77\x66\x82\x3c\x51\x9e\x07\x9f\x5a\x60\x8f\xd2\x8e\xd7\x36\x5f\x2c\x00\x2c\x9b\x31\x8a\x54\x9a\xf1\xe4\x51\xdb\x82\x66\x61\x4f\xd0\xc2\x54\xf0\xb4\xa6\x8d\xf2\x31\x19\x5e\xdf\x29\x81\x15\x99\x2d\xce\x2d\xcb\xd8\xfe\x78\x9c\x5f\xff\x74\x75\x71\xdd\x3f\x1f\x0f\xfa\x9f\xca\x27\xde\x3f\xb9\xbb\xbf\x1d\xf4\x2f\xcb\x8f\xc6\x57\xd7\xf7\x63\xf7\xc6\x4a\x92\x6f\xe8\x60\xf9\x9e\x2e\xbf\x78\x8a\x34\xcb\x05\xd6\xe8\x00\xef\x02\xfe\x38\x21\x53\x2e\x0c\x9f\x4f\x5d\xe8\x82\x15\x61\xdc\xda\x5a\x5d\xac\x32\x8b\x53\xb0\x8c\xd5\x35\x69\xac\xde\x4a\x10\x9c\xc2\x3d\x81\x19\x1a\xb0\xf8\xe8\x7a\x7a\x74\x67\x7e\x4c\xb1\x78\x24\xc2\x7f\xfa\x2c\xa8\x52\x84\x95\x54\x3a\xec\x86\xec\x95\xc4\xa2\x83\x63\x74\xab\xf9\xbe\x7e\xdf\x5f\x6a\x9a\xd8\x63\xa2\x30\x4d\xa4\x1d\x6c\x69\x5d\x4f\xd1\x05\x16\xb3\xc2\x0e\xf7\x35\x9f\x4e\x4d\x63\xdf\x98\x61\xe8\x3b\xac\x34\x8b\x1a\xde\xab\x49\xc3\xdd\x8b\xd0\x9f\x7d\xd9\xcb\xc3\xcb\x54\xf5\x90\xed\x46\x53\x0f\x37\xb0\xe2\x46\x63\x2f\xe9\x86\xf6\x49\x0d\xad\xc1\xc4\xcd\xe3\xd5\x97\x4c\x7d\xdb\xcb\xe4\x54\x7e\xb1\x86\x9c\x4c\x2e\x95\xde\xf9\xa9\xd6\x36\x6b\x68\x89\x7c\xa6\xd6\x60\x10\x8e\xbb\x42\x42\x45\x33\x60\x5e\xc5\x59\x46\xb0\x90\x75\xbb\x5d\x16\x03\x1b\xf6\xde\xf4\x14\xf6\x61\x37\xd9\xf5\xd3\x43\x9c\x81\xc1\xc1\x0b\x11\x15\x8a\x6c\x41\x03\xa6\xad\x25\x0a\xb8\x01\xb4\xa5\x6b\x8b\x6c\x74\x49\xa5\x56\x1a\xcd\x8f\xdf\x59\xc8\xa5\xed\x08\xe2\x63\x7f\x78\x51\x11\x2e\xc6\xe7\x83\x8f\xfd\x87\x8b\xd5\x66\xc2\xd2\x77\xd5\x2d\x46\x47\x48\x3f\x2f\xfb\xcd\xe9\xd4\xdc\x19\x0e\x38\xca\xa8\xb4\x84\x81\xd1\xca\x42\xd5\x18\x7b\x75\x4c\xb2\x84\x2f\x52\xc2\xc0\xc4\x53\xba\x09\xf5\x7a\x4e\x31\xb5\x57\x4b\x30\x58\xb0\xe2\x58\xb3\x1b\x5c\x63\x47\x0e\xad\x8a\xc4\xfe\xe6\x2d\x83\x55\x55\x58\xf7\x8d\xf1\x9e\xd9\xff\xdc\x29\xac\xb6\x3c\x63\xfd\xb3\xfb\xe1\x8f\x83\xb2\x7e\x78\xf6\xfd\xf0\xc7\x3a\xa9\x66\xfc\x69\x70\x35\xb8\xed\xdf\xaf\x11\x4e\x2a\x4d\xd6\x09\x27\x52\x0f\xb8\xea\x3d\xa5\xd2\x47\x04\x45\x06\xf2\x0a\x51\x25\xd1\x13\x95\x74\x42\x01\x20\xcc\x7a\x22\x1f\x86\xc0\x59\x9f\x70\x42\x63\xaa\x16\x4e\x7c\x31\xfd\x96\xf7\x51\x73\x52\xdb\xbe\x31\x3b\x84\xfe\x49\xb0\xf2\x99\xcd\x71\x93\x3e\x45\xa0\xdb\x3e\x81\xd2\x16\x7c\xc6\xb4\x20\xcd\x66\x44\x98\xe1\x80\xf7\x25\x1c\x4b\xf0\x5c\x8f\x2a\x14\x56\x8a\x55\xf3\x42\xeb\x8c\x30\x22\x00\x04\xce\x77\x62\x04\x29\x41\xd8\x57\x5a\xe6\xca\x12\x1a\x51\x95\x2c\x50\x04\x36\x2c\x30\x67\xa6\x98\xe1\x99\x15\x0e\x40\xcd\xa9\x90\xc4\x5f\x0d\x8a\xda\xf5\xd4\x9a\xf6\xef\x29\xd9\xf2\x98\x3d\x5c\x9d\x0f\x3e\x0e\xaf\xca\x24\xf0\xfd\xf0\x53\x49\x84\xbd\x1c\x9c\x0f\x1f\x4a\xb7\xb9\x96\x64\x57\xcb\xf5\xd5\x66\x6b\x8e\xa2\x7f\xe9\x14\x9d\x9b\x4f\x4f\xf5\xe2\xd6\x40\xc4\x79\xe5\xb7\xb2\x0e\xb7\x2e\x24\xcf\xfd\x31\x60\x4a\xd4\xfa\x25\xda\x9a\x90\xac\x0f\xb2\x64\x43\xaa\x0f\x55\x58\xea\xfb\xaa\xea\x54\xae\x4e\xd9\xbd\x08\x41\x97\xc7\x85\x65\x29\x8c\x61\x00\xa3\x41\x93\x11\xab\xc6\xad\x55\x30\xec\x1f\xc1\x45\x9d\xe6\x52\x19\x57\x22\x10\x27\x7a\xfc\x8b\xd4\x0b\x0a\xae\xc6\x63\x74\x47\xc8\x88\x39\xeb\xc1\x8c\xaa\x79\x3e\x39\x8e\x78\x7a\x52\xe0\x13\x9e\xe0\x8c\xa6\x58\x4b\xd2\x44\x2c\x4e\x26\x09\x9f\x9c\xa4\x58\x2a\x22\x4e\xb2\xc7\x19\x44\xc0\x38\x77\xea\x89\x6f\x76\xc6\xff\xfd\xe2\x4f\xdf\x1e\x5d\xfc\xe5\xdb\x0f\xcb\x16\xb2\xa6\xfd\x1f\xb0\x08\x67\x32\x4f\x6c\xc4\x9c\x08\xd7\xc6\x1d\xf9\x9c\xac\xdb\xef\xab\xf2\x76\xed\xa6\xbf\x9e\xdd\x3c\x94\x2c\xd6\xe5\x7f\x5e\x0e\x2e\xaf\x6f\x7f\x2e\x71\xca\xfb\xeb\xdb\xfe\xa7\x12\x43\x1d\xdc\x7c\x3f\xb8\x1c\xdc\xf6\x2f\xc6\xee\xe1\x2e\xb6\xb7\x1f\x18\x7f\x66\xe5\xa5\x91\x8e\x03\x2e\xf5\x74\x8a\x3e\x72\x81\x7e\xf0\x3b\x79\x34\xc1\x12\xae\x18\x77\x67\xc9\x1e\xca\x78\x0c\x8c\x17\x91\x6c\x4e\x52\x22\x70\x62\x6d\x06\x52\x71\x81\x67\xe6\xa6\x97\x91\xc0\x2a\x9a\x23\x99\xe1\x88\xf4\x50\x04\xd4\x30\xeb\xc1\xa6\x80\xaa\xc5\x67\x55\x3b\xdf\x6d\xce\x14\x4d\x89\x53\xc1\xed\x3f\xef\xcd\x66\x6c\xb1\x39\xd7\xf7\xdf\x97\x85\xbd\x8f\x17\x3f\xdf\x0f\xc6\x77\xe7\x3f\xac\x5c\x4f\xf3\x59\x69\x64\x77\x10\x80\x74\xc6\x93\x3c\x65\xe1\xdf\xdb\x8f\x6d\x78\x75\x3f\xf8\x54\x1d\xdd\x75\xff\xbe\x4c\x19\xb7\xe5\x00\xb7\x0f\xdf\x5d\x5f\x5f\x0c\x4a\x2e\xe1\x0f\xe7\xfd\xfb\xc1\xfd\xf0\xb2\x44\x3f\xe7\x0f\xb7\x06\x8d\x70\xd5\x34\xdd\x08\x6a\x26\xaa\xa7\x15\x4e\x73\xdf\xac\xb0\x15\x27\xea\xdb\x80\x72\x73\x96\x8f\x02\xb8\x1d\x13\x0e\x06\x56\x9d\x23\x6f\x52\x8d\xcc\x48\x6b\xd9\xa1\x2a\x6f\x13\x6a\x66\xc7\x2b\x37\x7a\x15\x57\xbe\xf7\x43\x30\x50\xa0\x46\xd9\xc6\x49\xc2\x9f\x4d\x28\x6f\x4a\xf5\xad\x6c\x81\xd1\xf4\x2b\xb2\xf0\x10\x1e\xd7\x70\xbc\xf2\xb6\x90\x48\x10\x75\xc9\x73\xa6\xb6\x27\xb9\xfe\x55\x89\xef\x0c\xae\x7e\x1c\xff\xd8\x2f\x53\xe0\xf0\x62\x35\xab\x09\x9b\xa8\xb9\x8a\xfb\x57\x3f\xfb\x4b\x18\x02\xbe\x7b\x5e\x43\x35\xb2\x6b\x94\x50\x2d\xf6\x46\x58\x6b\xaf\x09\x48\x34\x88\x50\x30\x39\xa4\x7a\x72\x10\x60\x9a\x19\x7f\x92\xe1\x4f\x66\x90\xa7\xee\x8f\x4a\x7b\x12\xd6\x05\xac\xa9\x2e\x9e\x1e\xda\xb1\x5a\x35\x43\x84\x3d\x51\xc1\x01\xcf\x16\x3d\x61\x41\xb5\x34\x6e\x5a\xd6\x73\x3d\x85\xff\xdd\xac\x4d\x30\x8c\x56\x18\xd7\x1d\x17\xea\xdc\x07\xf2\x6e\x67\x0d\xa9\x0b\x68\x5d\x0e\x65\xad\x37\x74\x2c\x7f\x5b\xb3\x39\x3b\x06\xfc\x96\x27\xfc\x8f\xe4\x9c\xe2\x44\x33\x80\xfd\xc9\x8b\xfd\xab\xbb\x61\x59\x7e\x2c\xab\x19\x01\x5f\xde\x5a\x5e\x04\x43\xa5\x19\xb9\x53\x26\xee\xfe\x7a\x61\xb4\x0b\x00\x3d\x36\xe7\x36\x50\x2c\x40\x00\x72\x28\x28\x19\x16\xb2\xf2\x85\x44\x00\x84\x56\x04\x5c\xe9\x3b\x0b\xc2\x99\x9e\x38\x8d\x47\x8c\x7c\xce\x08\x93\x10\x1c\x60\xee\xb3\xc2\xd7\x2e\x8f\xd1\x70\x0a\x2c\x41\xbf\xce\x50\xce\xac\x03\x4c\x5f\xb8\x66\x90\x3d\x2d\xca\xda\x21\x78\x0d\x11\x0c\x2f\x8c\xb8\x60\xa9\x62\xf0\x23\xf6\x93\x77\xa2\xc1\xa3\x29\xd7\x0c\x48\xef\xa2\x6d\xef\x14\x61\x26\x69\x0f\x69\x85\xa5\xba\xa7\x90\x3a\xa0\x15\x4a\x1b\xc2\xa5\x39\x8d\xfd\xf3\xf5\xaf\x81\xa5\x38\xe1\xf0\x32\xa8\xbf\x0b\x2a\x57\x41\x83\x68\x9c\x18\x8f\xc9\xb8\xfd\x9d\x10\x71\x41\xac\x9f\x65\xe3\x6b\x60\x1d\x63\xbf\xc7\xf2\x71\xc9\xf7\x30\x64\x52\x61\x16\x91\xb3\x04\xcb\x2d\x83\x90\x9c\x8d\xa3\x57\x96\x38\x6e\x6f\x1f\x6e\xee\x87\xdf\xad\xe1\xf2\xd5\x8f\x97\xc3\x80\xa2\x24\x77\xee\xb9\x89\xe0\x38\x46\x9a\x7d\xce\xb8\x71\x05\x5a\xc1\xbf\x80\xfe\x36\x79\x3d\x3e\xa0\xb2\x04\x3b\x5e\xa4\x23\x58\x3b\x47\xe8\x4a\xa0\x76\x21\x50\xa4\x57\x02\x05\x26\x0f\xb7\xd5\xe0\x59\x34\x05\x49\xac\x75\x2b\x4b\xb0\x9a\x72\x91\x1a\x2e\x5f\x9a\xb4\x69\x7c\x75\xa3\x94\x29\x22\x44\x9e\x29\xea\xb0\xdc\xab\x52\x2a\x54\x78\xe7\xb3\x4b\x22\x25\x9e\x91\x5d\x1c\xd0\x75\xca\xc3\xdd\x8f\xe1\x3f\xc1\xc1\xdc\x46\xf6\x2f\x8d\xd0\x45\xbe\x3b\x7a\xba\x66\x1f\x4d\x20\xcf\x0d\x4f\x68\xb4\x65\xc0\xdd\xc7\xfe\xf0\x62\x3c\xbc\xd4\x4a\x7c\xff\x7e\x70\x51\x12\x25\xe0\x59\xff\xe3\xfd\xe0\xd6\x82\x58\xf7\xbf\xbb\x18\x8c\xaf\xae\xcf\x07\x77\xe3\xb3\xeb\xcb\x9b\x8b\xc1\x9a\xc8\x9c\xc6\xc6\x97\xad\xab\xd5\x57\x4f\x97\x7e\x81\x1d\xd6\xbc\x2c\xb4\x97\x41\xd6\x18\xa6\x09\x38\xc1\xb9\x71\x86\x63\xc4\x78\x4c\xe0\x67\xe9\xac\x33\x1e\x39\x1a\x0d\xd5\x57\x49\x82\x70\xae\x78\x8a\xc1\x6b\x93\x2c\x46\x0c\x4f\x34\x6b\xc5\x49\x12\x84\x77\x89\x9c\x31\xcd\x62\x75\x63\x06\xa2\x3d\x4a\x88\x66\xe7\x59\x90\xec\x67\xfd\x06\x53\xca\x20\xd2\x36\xc5\xe2\xd1\xb8\x99\x8a\x2e\x8b\x43\x21\x11\x96\x23\xa6\xc7\x45\xac\x61\xa8\xcd\x0a\x9f\xb6\x7a\xab\x71\x75\x52\xfc\x48\xf4\xaa\xa4\x79\x34\x47\x99\xe0\x33\x41\xa4\xb4\xb6\xe5\x08\x33\x13\x80\x60\x5f\xd7\xd7\xd0\x88\x31\xae\x97\xc2\x99\xb0\x63\x92\x11\x16\x13\x16\x51\x93\xd6\x07\xbe\x7b\x6f\xda\x9c\x09\x9c\xcd\x91\xe4\xe0\xf4\x86\x65\x07\xfb\x95\xf9\xc8\xdd\x64\x66\xc6\xe6\x71\x68\x81\x16\xb9\xe6\x13\xd7\x20\x27\x9a\x55\x86\x8f\xdd\x65\xe8\xdc\x2e\xc6\x0e\x98\x66\x09\x51\x06\xac\x1f\x96\x1c\x36\x43\xaf\x75\x69\x3f\xf4\x36\xd5\x6d\x82\xbe\xb0\xdd\x98\xb1\xb4\x23\x3a\xae\xb1\x6c\xdb\x23\x85\xbe\xc7\x2c\x4e\x74\x2b\xce\x87\x51\x3e\x8b\x90\x8a\xd2\xd7\x54\xe3\x4e\xe3\x2e\xb7\x68\x84\x73\xb9\xcb\x35\x5a\xc9\xc5\x34\x56\xc1\xa3\x22\x28\x04\xc8\xdb\x26\x62\xc2\xea\x66\x9a\x45\xe2\x84\xdb\x55\x32\xaf\xe7\xa6\xfe\x13\x82\xd1\x34\x5c\xb3\x99\xa0\x2c\xa2\x19\x4e\xb6\xd2\xfd\x2a\xc1\xf8\x36\xc6\xfd\x6b\x3a\xd5\xe4\xf3\xcd\x92\xdb\x56\x11\x91\x42\x82\xb2\x1d\xa6\xdf\xc2\x0d\x2c\x49\x36\xab\x81\xc8\x22\x9a\x04\x0b\x9e\x1b\x7f\x1c\xac\x0b\x89\x6b\x8e\xea\x71\xdd\x76\xeb\x93\x81\xcb\x01\xd0\x5b\x6c\xb6\x89\xfc\x69\x5a\xbf\x4a\x2b\xb6\x77\x13\x8c\x87\x93\x9b\xfa\x36\xeb\x76\x20\x78\xf8\xaf\x55\xb4\x73\x89\x33\x4d\x33\x16\xb6\x1f\x17\x73\xb4\x4a\x92\xad\x0a\xe6\xe2\x67\x02\xdf\xb9\xcf\x0b\x69\xbf\x1b\xc5\x12\xda\x00\xa8\xe5\x4e\x4a\x31\x04\x41\x8e\xb9\xa5\xf1\x69\xae\x65\x59\x84\x21\x0a\x01\x7d\x4d\x8e\x67\xc7\xc8\x15\x61\xe8\xa1\xfe\xcd\xcd\xe0\xea\xbc\x87\x88\x8a\xbe\x71\x31\x8b\x36\x60\x69\xc4\x14\xb7\xd2\xca\xc2\x15\xd0\x48\x89\x98\x91\xd2\x9c\x5d\x74\x13\x84\x2a\xcf\xa8\x54\x36\x7c\x56\xf3\x95\xa0\xd4\x09\x4d\xab\x62\xb6\xa1\x90\x5c\xcd\x77\x21\x0d\x2c\x65\x9e\x6a\x5d\x76\x4c\x71\x3a\x16\x3c\xd9\x85\x29\x9c\xc3\x54\x40\x5d\xf6\xe9\xf9\x14\xa7\x48\x37\x6b\x43\x41\xbc\xcb\xd1\x8b\x74\x5a\x30\xd2\x7c\x59\xdf\x9b\xc1\xbd\xe5\xbc\x0f\x36\x1e\x8d\xba\x10\x08\x48\xdf\x6f\x60\x15\x85\xd9\x78\x6c\x2d\xf5\x63\x1c\x45\x5a\xe5\xde\xf3\xa4\x82\xfa\x39\xce\x25\x60\x3b\x7a\xb1\x69\xae\xa3\x73\x37\xcc\x4c\x73\x30\x08\x06\xd6\x57\xae\xe4\x11\x2d\xda\xaf\xe9\x77\xb2\x58\xea\xd5\x55\xb8\x79\x90\xde\xa4\x62\x2e\x61\x49\x60\x27\xa5\xa9\x90\xa3\xe6\x64\x81\xe6\xf8\x89\x94\xba\x74\x09\x31\xba\xe1\x05\xcf\x45\x1d\xa3\x1b\xb1\x73\x92\x09\xa2\x25\xfd\xaa\x03\xc5\xd3\xf4\x6d\x99\x12\x3b\xba\xee\xe8\xfa\xdd\xd3\xf5\x99\x29\x94\xd4\xf7\x85\xb1\x76\x12\xe0\x4c\x63\xe3\x8c\xf3\x64\xdc\xc2\x26\xd2\x7e\xc5\x4b\x9e\xb0\x4a\xd9\x28\x80\x04\xe0\x39\xc8\x47\xa5\x6b\x93\xeb\xbb\x2e\x48\xb1\xb5\xc3\x5b\xb1\x0c\xce\x65\x16\xd4\xcb\xd9\xe5\xbc\xd7\xb5\xb2\xaa\x25\xf4\xe2\x62\xce\x99\x91\x6f\xbc\xbb\x2c\xac\x7f\x5a\x3a\x4c\x4e\x14\xa1\x6c\xa9\x1a\x9b\xa1\x67\xbd\xc0\x46\xee\xf8\x47\xce\x15\x96\xdf\x1c\x8f\x98\x16\xa2\x1e\xc9\xc2\x98\x5b\xb5\x98\xf2\x3b\x2d\x8b\x1f\x49\xc2\x24\x84\x7b\xff\xce\xb8\xe7\x34\x89\x3b\x73\xb5\x51\x4d\x4d\x11\x38\x08\xba\xf6\xbd\x40\x88\xae\x6d\xd4\x4a\x49\x45\x00\x34\xc8\xf9\x66\x2e\xf6\x99\x19\xfe\x8c\x28\x48\xb1\x56\x54\x81\xce\x14\x9b\x2a\x73\x4b\x43\x5f\x6b\xba\x32\x54\x21\x38\xf8\x49\xe2\x7c\x37\xc6\x2f\x97\xdb\x58\xcb\x19\xbd\xb6\x70\x67\x63\xde\x4f\x9c\xdd\x28\x12\x7c\xa9\x74\x1b\x96\xc8\xec\xf4\xc4\xb0\x03\xe7\xbf\x26\xec\xf8\x99\x3e\xd2\x8c\xc4\x14\x43\x04\xbc\xfe\xd7\x89\x9e\xd7\xbf\x9f\xdd\x5e\x5f\x8d\x8b\x4c\x9e\xff\x1a\xb1\x7e\x22\xb9\xcf\x52\x40\x8c\x33\x1f\x6e\x9f\x09\xe2\x44\x42\x3b\x17\xb0\xba\x16\x66\xc4\x11\x6b\x1a\x41\xcc\x23\x79\x8c\x9f\xe5\x31\x4e\xf1\xaf\x9c\x81\x2b\xbd\x0f\x7f\x9e\x25\x3c\x8f\x7f\xc2\x2a\x9a\x9f\xc0\xb9\x56\x27\xe4\x89\x30\x65\xdc\x54\x7a\xb9\x62\x48\xde\x95\x10\xad\xff\xef\x7a\xcc\x45\x52\x91\xd4\x9a\x6c\x44\x32\x85\xfe\x1f\x41\x26\x9c\xab\xfa\x4b\x8a\x4f\xa7\x92\x6c\x74\x21\x15\x4a\xda\xdd\x35\xfa\xcb\x9f\xbf\xfd\x83\x26\xa1\x6d\xd6\x78\x78\x77\x3d\xd6\xdf\xff\xfb\xb9\xfd\x5e\x6e\xc0\xee\xae\xb3\x82\xb5\x39\xe2\x31\x81\xf3\x39\x83\xdb\x4f\x80\xf3\x02\xd8\x1b\x90\x43\xb1\x8f\x75\xdc\xed\xbc\xd4\xfa\x6e\x2a\xdb\x56\x8b\x09\x2a\x76\x30\x47\x74\x84\x18\x47\xa9\x89\x35\xc5\x0c\xfd\xc7\x0f\xdf\xd5\x6f\x60\x2e\xe8\x56\x1d\x52\x0b\xd7\x10\x74\x29\xe9\xaf\x44\x22\x4d\x35\x9a\x8a\x79\xaa\xbb\x16\x44\xce\x79\x12\xa3\x67\x02\x6a\x92\x8d\x03\xf5\x5a\xb9\x20\x23\x16\x36\x01\x21\x87\x08\x27\x8a\xcf\x08\xdc\xd5\x4e\x51\x53\x44\x68\x51\xc5\x64\x69\x28\x2e\x48\xcf\x40\x7d\xdd\xfd\xc9\xc5\x56\xc3\x34\xe1\x91\x4b\x6a\xb1\x26\xb9\x78\x52\x3f\xf3\x69\xd5\xf4\x8a\x9a\x6d\xf8\xd5\x4d\xb6\x66\xdb\xfa\xa5\xb1\x49\x28\xd6\x86\x55\xdd\x99\xfa\xc1\xd0\x88\xb3\x71\x42\xd9\xe3\x56\x9b\x71\xed\x44\x39\xdd\x82\x5d\x33\xdd\xa2\xb7\x73\x1b\x0b\xc8\x06\xe7\xe3\x63\x9e\x24\x26\xb5\x25\xdc\x1e\x90\xbb\xcc\xba\x81\x30\x90\x99\x1c\x50\x12\x5b\xbf\x97\xd5\x84\x05\x61\x10\xf0\x36\x62\x93\x85\xf5\xd9\xca\x1e\x92\x79\x34\x77\x99\x79\x11\x67\x52\x8b\xd1\x5c\xa0\x88\xa7\xa9\x29\x6e\xca\x08\x52\x9c\x27\xd2\x46\xbb\xb3\x23\x85\x23\x35\x62\x45\x7f\x6b\x4e\x9e\xa9\x80\xb4\x5b\xea\x5e\x7b\x97\x4e\x51\x69\x69\xa5\xc0\x4d\xe3\x10\xb3\x01\x8c\x60\xc6\x13\x15\xa0\x3f\xf0\xe5\xb3\x64\x36\xac\x41\x33\x90\x73\x2e\xd4\x38\xae\xe5\x39\x6b\x89\xa6\xca\x08\x19\x39\x4a\x20\x68\x98\x3f\x69\xe1\x9f\x3c\x7b\xe3\xeb\xaa\x21\x68\xaa\x5e\x35\x82\x76\xc7\x68\xe5\xc8\x36\x25\xc1\x86\xb5\x32\x08\x1e\x51\x39\x26\x7c\xdd\x18\xef\xe0\xab\x33\xfd\xd1\xca\xc5\xab\x9e\x3b\x27\x04\xf1\xb8\x00\x9b\x33\xf7\xba\xcd\x08\x59\xb5\xa6\x16\x3a\xe1\xe5\x32\x47\x57\x4d\xe5\xa1\x6c\xc9\xd5\x63\x01\x93\xbd\x24\x20\x6b\x62\x31\xa1\x4a\x60\x51\x42\x0a\xf1\xfa\xa0\x24\x58\x40\x7c\xd6\x88\x19\xdc\x38\xa3\x29\xc4\x28\xa6\x12\x12\x44\xe0\x2e\x0d\x9c\x61\xa8\x9d\x12\x58\x39\xda\x45\x9e\xa3\x89\x3f\x87\xc0\xb2\x82\x34\x1c\xb3\xd3\x1d\x79\x7c\x2c\xad\x9f\xf1\x28\x2f\x04\xb9\x08\x24\x5c\x8b\xa9\x83\x28\x93\x74\x36\x57\x88\x32\x6b\x77\xc4\xc9\x8c\x0b\xaa\xe6\xa9\xec\xa1\x49\x2e\xb5\x16\x6a\x82\xd5\x4c\x3c\x0a\x51\x51\x2b\x2e\xb4\x6b\x12\x71\x5c\x69\x70\x59\x45\xd9\x82\x34\xda\x1d\xca\x41\xe5\xae\x58\x43\x38\x7d\x8f\x33\x58\x6d\x83\x42\xdd\x46\x03\x4f\x89\x4c\x1c\x20\x77\xc8\x4e\x50\x05\xa4\xe9\x1c\x00\x2a\xe4\xde\xbc\x14\xaf\x51\x88\x0b\x99\x64\x50\x41\x5c\xec\x36\x48\x5e\x65\x64\x4a\x83\xde\xe4\x9d\x4e\x69\xa6\x6a\x03\xb7\x96\x5d\x45\xb7\x01\xe6\x4f\xbb\xc5\x86\x64\x2c\xa0\x66\x40\x6a\x1b\xb1\x3b\x42\x9a\x81\xdc\x96\xf6\xde\x94\xc6\x85\x29\xd8\x44\x8f\xd5\x24\xbf\x8b\x13\xfb\x7c\x70\x77\x76\x3b\xbc\x31\x90\x13\xd7\xb7\x97\xfd\xfb\x71\x8d\x5f\xbb\xe6\xad\xcb\xfe\xed\x0f\xe7\xeb\x5f\xfb\xfe\xbe\x9c\x95\x5d\xf3\xca\xed\xdd\xea\x64\x8e\x16\x43\xac\x49\x0a\xab\xed\xe7\x14\x65\x0b\x35\xe7\xcc\x87\x28\xc4\x25\xde\x74\x84\x4c\x46\xb0\x82\x10\x22\x21\x55\x8d\xe3\xf0\x1e\xe2\x72\xd6\x4b\x98\xe5\xcd\x32\x30\x6c\x7b\x15\x8d\x36\x38\x91\x9f\x12\x3e\x01\xbf\x75\x5e\x2a\x71\xbb\x22\x02\x7d\xc7\x78\x9f\x73\x2a\xb3\x04\x2f\x96\x7a\x58\x77\xe5\x5c\xe1\x94\x40\xc4\x71\x81\x1f\xe7\x92\x45\xf4\xce\x40\x02\x93\xbf\xd7\xe9\x14\x32\x99\x14\xc5\x8a\xa0\x09\x51\xcf\x90\x37\xe7\x7e\xf5\xb6\x54\x17\x30\x22\x8f\x47\x0c\xcc\x39\x23\xbd\xc8\x71\x0e\xd1\x7e\xa3\x0f\x3d\x34\xfa\x10\x93\x27\x92\xf0\x4c\xef\xbc\xfe\xa1\xe1\x92\x19\xa4\x98\x26\x57\x5c\x79\xcb\xdc\x2e\xfb\x29\x48\x44\x33\x90\xcc\xc7\x44\xb7\xfb\x7a\x82\x47\x89\x92\x1d\x3b\x83\x31\x20\x1c\xc7\x5a\xc9\x06\x56\xe6\x86\x57\x84\x00\xb1\x60\xea\xa5\x5a\x99\x9b\x88\x14\xde\xfc\x6d\x7a\x0c\xdb\x2c\x9b\x3d\x6b\x77\x80\x3d\xbd\xa0\x4b\x76\xd7\x8b\x5c\x6b\x25\x3f\x90\x05\xa4\x60\xdc\x60\x2a\xb6\x74\xcd\xd6\xc5\xbc\xbe\x88\x93\x76\x50\xd3\xd1\x01\xb9\x6b\xeb\xd7\x61\x37\xc7\xad\x8f\xd5\x7b\x2d\x2d\xd5\xc5\x72\xf9\x8e\x5b\xaa\xad\x0f\x4d\x4a\x6a\x63\x08\x03\xaa\x2a\x5e\x19\x89\x36\xd0\xb8\xfc\x00\xef\xf4\x77\x6b\x35\x15\x2f\xae\x45\x61\x4d\x7f\xd8\x05\x9b\x1c\x5f\xcd\xc7\x27\x6b\x47\x1c\x25\x5c\x96\xb1\x72\x5a\x0f\xfa\xcc\x7e\xba\x6a\xdc\x83\x90\x7c\xb5\x5c\xb8\x51\x40\x43\xcd\xc2\x57\xc0\x20\xcd\x3d\xa3\xac\x87\xcc\xbe\xdd\x43\x14\xa2\x2d\x41\x21\x4b\x0a\xe4\x00\x16\xa3\xc2\x0d\x32\x62\x45\xcc\x8a\x44\xcf\x24\x81\x30\xb7\x88\xa7\x19\x98\xf8\xed\x70\x6d\x4b\x24\x36\x11\xc3\x3d\xc4\x73\xa5\x1b\x33\x39\x39\xce\x88\x6b\x13\x7e\x0a\xb7\x87\xf1\xbd\xd9\xe0\x77\x0f\x2c\x6d\x68\xdd\xdc\xa5\x94\xa1\x4f\x44\x41\x2b\x00\xdc\x1f\x4e\x10\xf4\x84\x6a\x08\x65\xfd\xda\xef\x70\xa2\xec\x4c\x36\xd8\xf9\x02\x38\xe5\xbb\x84\x4f\x56\x1b\x09\xa0\x71\xf4\x70\x3b\x74\x16\xc9\x22\x7e\x2a\x40\x2f\x2e\x79\x14\x07\x37\xb7\x83\xb3\xfe\xfd\xe0\xfc\x18\x3d\x48\xa2\x97\xc7\x4f\x17\xf2\xab\xbd\x4a\x62\x46\x6e\x91\x58\x98\x54\x04\x37\x19\x42\x88\x10\xa5\x2c\xe8\x35\x8c\xa3\x0c\xd3\xb2\x9a\xb0\x01\x24\x85\x5a\x43\x1d\x00\x0b\x55\xe7\x69\x23\xf3\xd6\x9d\x40\x88\x93\x1a\xbf\x9f\x28\x35\x33\xde\x74\x39\x32\x6f\x1d\xf9\x94\x23\xfa\x5e\x7a\x32\x70\xb4\xd4\x9c\x50\x81\x5a\x4d\xcb\x10\xd5\xb8\xfd\x9c\x82\x10\xf7\x4b\x9c\xad\x4e\x3f\xc5\xcf\x25\xa2\x35\xa2\x70\xe0\xbb\x7f\xe9\x73\xe0\xd8\xda\xd8\xb0\xc2\xdd\x27\x58\x38\xb4\x0c\x6f\xf5\x7c\xd3\x64\x7c\x48\x67\x24\x0b\x27\x56\x19\x84\x8d\x63\x95\x08\xce\x0e\xfc\x42\x19\x2a\x5d\x89\x3d\x34\xa5\x9f\x6d\xa3\x45\x7c\xbb\x7b\x35\x08\x78\x68\x88\xa7\x9c\xe3\xe5\x33\xb5\x81\xd8\x70\x03\xdf\xaf\x14\x22\xb9\xd4\x22\x51\xa4\xc5\x25\x41\x22\x2e\xf4\x4d\x01\xdd\x16\x5e\x88\x75\x22\x83\xc2\x42\x2f\xca\xb2\x57\x66\xd5\xe9\x2f\x6a\x90\xc4\x58\x91\x23\x2d\x7a\xad\x49\x80\xb6\x39\x32\x90\x4d\x83\x55\x00\x07\x56\xdc\x3c\x13\x32\xc3\xcc\x85\x66\x37\x0c\xd7\x5d\x79\x3b\xb0\x2a\xad\x02\x61\x48\x0f\x03\xf9\x0a\x52\x7f\x4a\xe3\x90\x19\xac\xe7\xca\x71\xd8\xe8\x97\x43\x58\xb6\x67\xec\x83\x71\x1a\x06\x9b\x67\xf1\x21\x0d\x36\xc1\x52\x21\x3b\xa6\x26\x53\x44\xa0\x22\xbe\xac\x11\xb6\xa4\xdb\xb7\x55\xde\x34\x09\x95\xb5\x58\x02\x9e\x11\xe9\x70\x53\x0c\x4a\x8c\xd6\x69\x9c\x20\x6c\x4a\x31\xfb\xb3\x6d\x6b\x32\xbb\x5b\x22\x64\x26\x10\xa4\xbf\xdc\xf4\x31\xea\xb3\x25\xbc\x2c\x17\x97\x55\x5a\x2f\x73\x27\xe1\xe4\x19\x2f\x24\xca\x84\x81\x96\x31\x91\xfb\x6e\xf2\xa0\x81\x95\x3f\xf2\xa1\x10\xca\xa5\x4e\x20\xb0\xc5\xac\x0f\x9a\x73\x72\xef\xf8\x05\x5c\x79\x95\xa8\x72\x2f\x90\x17\xcd\x15\xb6\x8a\x16\xac\x4e\x91\x71\x34\xc7\x6c\x46\xc6\xce\xc8\xba\x8d\xb6\xa4\xdb\x39\x83\x66\xce\x6d\x2b\xf5\x97\xd3\x8d\x51\x98\x6c\xfd\x17\xf3\xaa\x37\x20\xea\x43\x20\x15\x9e\x11\x64\x46\xd4\xca\x2c\x5d\x8a\x18\xb3\x60\xc3\xa0\x27\xd8\x56\x07\xe5\x28\xfa\x26\xe1\x1d\x42\x9f\x2e\xf0\x84\x24\x6f\x13\x39\x01\x5d\x5b\xe3\x3c\x78\xeb\x4c\x36\x00\x41\xcf\x60\xcf\xaf\xb0\x0c\x6b\xbd\x17\x79\x5d\x6e\xc0\xaa\x79\x96\xaa\x9f\xef\x30\x51\x57\x2b\x64\x9b\xa9\x36\x55\x10\x09\xaf\xbd\xa0\xd2\x46\x9d\x81\x2d\xbc\xfe\xaa\x36\xe5\xed\x06\x12\x14\xfc\x68\x18\xc7\xce\x15\x3f\xd6\x4e\x65\x6b\x90\x81\x96\x55\xf0\x86\x53\xc4\x38\x23\x88\xca\xe2\x65\x55\x4e\x87\xf2\x10\x3d\x5a\xc4\x37\xc6\x17\x5f\xa5\xcb\x17\x5f\x7a\x69\x4b\x4b\x01\x9e\xe0\x6d\x03\x2e\xbf\x9b\x11\xad\xa8\x62\xb1\x00\x88\x4f\xc3\x87\xcb\x32\xdd\xda\x71\xee\x5d\xe0\xbe\x77\x08\xae\x41\xa4\xae\xe2\x08\xc4\xc8\xca\xe0\x90\xc1\x41\xb5\x2f\xd9\x8f\x2c\x4c\xcd\x88\x79\xcb\x06\x10\x22\x95\x28\xc5\x19\xf8\xf4\x18\x57\xc5\x57\x06\x76\x49\xf9\x2d\xec\x39\x41\x5c\x9a\x1a\x5a\x0d\x2b\xb0\xce\xb4\xe3\xae\xdf\x62\x5d\xcb\xf0\x96\x0e\x9a\x77\x46\x9f\x08\x73\x34\xdd\x73\x67\x42\x0f\xca\x75\x9a\x2c\x8e\x30\x84\x19\x93\x38\xf4\x7c\xac\xe6\x48\xc6\x20\x73\x08\xf6\xc8\xf6\x4b\x76\x5f\x1b\x46\x63\x40\xd2\x4a\xe8\xf6\x2e\x30\x3c\xa4\x52\x8b\xdb\x6b\x32\xc1\xb1\x44\xbf\x63\x5c\xfd\x2e\x40\x36\x76\xc6\x0b\xf8\xd4\x99\xa0\x7a\x4b\x25\x5b\xe0\xd0\x5a\xc2\x41\x38\x40\xd8\x5a\xbb\xf2\xbb\xc6\x06\x14\x81\xef\x2f\x2a\x8d\x0e\x96\xb3\xe0\x9a\x6a\x5e\x75\x1e\x7b\x54\xbd\x16\xaa\x06\x4f\x53\x56\xaf\x38\xe9\x25\x43\xa7\x5c\xe7\xa2\xf7\x7b\xd1\xca\x35\xbf\x84\x08\xb0\x0b\xb5\xa5\xad\x23\xa7\xd6\x80\x20\xd7\xdb\x25\xb6\xc9\xf3\x6c\x92\xcb\x45\x39\x74\xcd\x96\xc1\x68\x40\xf9\x3d\x1e\xb1\x8f\x5c\xd8\x2b\x58\xda\x3a\x03\x13\x1c\x3d\x1e\x11\x16\x23\x9c\xab\xb9\x41\xdb\xb5\x7e\x85\x85\xa5\x06\x2d\x69\x00\xd9\x78\x28\x0d\x2a\x23\x2c\x62\x57\xf1\xe2\x89\xbb\x51\x8c\x58\xd0\x08\x54\x32\x80\x42\x4f\x50\xaa\xb6\x49\xd5\x24\x52\xeb\x57\x4d\x6b\x51\x57\x84\x75\xa9\x04\xeb\xea\x73\x56\x2a\x2a\x0b\x35\x18\x20\xc0\x89\x4f\x97\x57\x67\xe8\xac\x8d\x4e\xbf\xd3\xf4\xbc\xec\x85\xe8\x59\x8d\xc2\x98\xa4\xec\x0c\xb4\xa4\xf3\xad\xe3\xb5\x25\xd4\xe0\x69\x2e\x20\x5c\xb7\xae\xcd\xaf\xa3\x39\x4d\x0a\xdf\xc5\x37\x3d\x3f\x4c\xdd\x64\x42\x9e\x48\x62\x30\xeb\x23\x01\x91\xf9\xc6\x6a\xf8\x2d\xfa\x3f\xa6\x30\x29\xfa\xc3\x88\x7d\x02\x36\x9c\x24\x0b\x40\xd4\xf4\x2d\x63\x55\x69\xe6\xb1\x76\x00\xca\xa6\x02\xa1\xf2\x40\xcc\x5e\xcf\xf1\x13\x19\x31\xd7\xcc\xff\x41\x8f\xe8\xf7\xe8\x0f\x4d\xea\x9d\x0b\xb0\x7f\x61\x3b\xc7\xc7\x20\x7c\x3d\xb8\xe5\x2c\xa3\xb4\xfc\xc6\x99\x41\x4a\x46\xc8\x1a\x64\x0d\x0f\x8c\x4d\xd9\x13\x8f\x96\xb2\x38\xc2\x53\x8b\x05\x61\x6a\xcc\x78\x4c\xc6\xa4\xc6\xa5\xb9\x82\x49\x68\x21\xe0\x8a\xc7\x64\xad\x43\xd2\x33\xd3\x9f\xc0\x74\x23\xf3\x89\xdf\x0e\x48\xf0\xf7\xd9\xdc\xde\xfa\x50\xa6\xb4\xfa\x91\x7b\xf4\xd9\x6d\xc6\xbd\xad\x33\xd5\x85\x89\xf6\xe0\x42\xb0\x03\xa8\x77\xe8\x25\x58\x39\xf7\x7a\xf5\x38\x56\x1d\x01\xfa\x65\x3d\x73\x7b\x59\x05\xb8\xba\x50\xfb\x44\xd0\x19\xd5\xf2\x7b\x7b\x87\x2d\x70\xc2\x6d\xbc\x19\x06\x64\xb4\x95\x3b\xa3\x58\x0a\x07\xb4\x72\xe4\xe9\xaf\x70\x42\x4e\x78\x5e\x15\xe0\xed\x02\x50\x19\xba\xfb\xad\xac\xbe\xd0\x7c\x78\x66\x32\x00\xc9\x9c\x9a\x9c\xfb\xfe\xd9\x05\xd2\xa7\x83\xa7\x06\x98\x0a\x16\x2d\x57\x73\x2e\xe8\xaf\xab\x68\x1b\x0b\x45\xa7\x38\x52\xe3\xbd\xd4\x71\x69\x26\xa6\xbe\xed\x67\x78\xde\xda\xd4\x77\x87\x9f\x48\x10\x02\x08\x01\x7e\xb6\x15\xe9\x5d\xa9\x55\x7e\xcb\x05\x62\xfc\xb9\x00\xa6\x72\xdf\x03\x16\x73\x90\x3a\x81\xb5\xd2\x93\x41\x0c\xaf\xa4\x40\x9f\x00\x13\xf5\x95\x32\x69\x91\x00\x31\x6e\x00\x9e\x34\x79\xce\x31\x8b\x13\x77\x85\x20\x6e\x62\x6a\x16\xcf\x78\xb1\x91\x57\x3b\x8c\x6c\x2c\xf2\xe4\xcc\xf6\x97\x95\x20\xe0\x01\x46\x52\x53\x25\x65\xaf\x4e\x15\x45\x93\x1c\xa0\x6d\xf5\x9a\x4c\xf3\xc4\xd4\xc3\x88\xb8\x88\x4d\x41\x7a\x59\xca\xca\x83\xe8\x66\xa7\x35\x61\xe5\x1b\xa4\x16\x01\xd4\x56\xdc\x30\x86\xb1\x95\x72\xfd\x5f\x73\x92\xef\x29\xb1\xf1\x4d\x43\xc1\xef\xf1\x4c\x16\xb1\xdd\x66\x6d\xf4\x95\x57\xac\xef\x3f\xf4\x4c\x65\x90\x0a\xec\x0c\xb6\x1e\x59\xcb\x58\x3a\x4c\xbd\xd5\x8d\x0c\x65\xb7\xa6\xa2\xc0\x1e\x2c\x65\xaf\x11\x26\xb3\x2c\x7a\xd6\x70\x75\x4b\x7e\x4f\x3e\x31\x16\xbd\x8e\xf9\xc9\x95\x66\xa8\x08\x75\x2f\x68\x89\xda\xe2\xee\x58\xd6\x55\x56\x06\x9b\x17\x76\x29\x7f\x5b\xd4\xe4\xa8\x2b\x0e\xd9\x2c\xcf\x82\x02\xf0\xde\xa2\x78\xd9\x97\x16\x76\xb7\x70\xc8\x63\xb4\xf0\x67\xb4\x05\x08\x97\x71\x4b\xb8\xa8\xbf\x3a\x37\xb0\xeb\xd8\x86\xca\x5d\x2f\x87\x43\x34\x9d\x08\xc3\x92\x0e\xf5\x48\x2c\xa3\xee\xac\x3d\x0c\xbe\xc0\xca\xdb\xd8\x65\xbd\xc4\xf8\x7a\x27\xc3\x93\xe3\x38\xc2\xd1\xbc\x71\x52\x13\xce\x13\x82\x59\x93\x52\x50\xfb\xb8\x7a\x44\x0c\x66\x2c\xb0\xee\x24\x01\xe0\x64\xb7\x04\xb6\xd8\x66\xa1\x15\xb1\x18\x00\xef\x0d\x0f\x37\x21\x97\x6e\xa0\x8a\x30\x67\x50\xa3\x6c\x96\x90\xea\x5a\xd9\xca\x04\x3d\xdb\x49\x12\xe5\x49\x50\x6d\x33\x23\x42\x8f\x5a\x2f\xf1\x13\x61\x5a\x15\xb3\xe3\x70\x3e\xa2\x67\x97\x67\xee\x6b\x6c\xf5\x7c\xd7\xce\x4d\x09\xc9\x9c\xf1\x88\xc1\xc1\xe5\xe5\xc3\xaa\x69\x55\x6a\xed\x2d\x34\xf7\x6d\x7d\x3a\x03\x21\x62\xe3\xe3\x79\x57\xb6\xbe\x6f\x7c\x26\x4d\xdf\x63\x08\xdd\xd8\xd9\x63\x19\x78\xb5\x0a\x04\x0c\xb3\xb1\x0e\xe5\xec\x95\x6c\xf3\x10\x0c\x53\x8e\xe6\x0d\x62\x61\x9a\x50\xb6\x5e\xf4\x2e\x29\xaa\x8a\xb8\xdb\xa0\xe5\x50\x56\x46\x00\xb4\xf4\xe7\x83\xd1\x77\xd5\xb9\xbd\xb0\x52\x7d\xd9\x13\xee\xd3\xa6\x8a\xe8\x51\x5b\x37\x57\x09\x0c\xa0\x0f\x90\xaa\xff\x93\x31\x5c\x50\x69\x84\x7b\x57\x3d\x24\xcd\xd4\xc2\x16\x9b\x83\x7b\xb1\x24\xef\x03\x90\x5e\x9d\xd7\xbd\x7a\x47\xc6\x25\xbf\x7b\x5d\x67\xd0\x91\xb5\xd6\xd4\x36\xe9\x16\x3a\x04\x66\xa9\x00\x61\x34\x05\xd9\x98\xba\xbd\x63\x9c\x34\x9a\x08\xf7\xc0\x34\x41\x39\x2a\xc0\x2f\x2c\xa6\xae\x12\x39\xd1\xbc\x0b\x27\x49\x65\x5e\x18\xb2\xcc\x95\xaf\xdd\x37\x29\x0a\x0c\xb7\x8f\x01\x48\xf0\x84\x6c\xe4\xf5\xbf\x30\x1f\xac\xa4\x22\x78\x05\x02\xe6\xb3\x2c\x59\xb4\x0b\xd4\x0f\xb5\xdf\x5a\xec\xb9\x75\x03\x0b\x11\xeb\x56\xde\x4d\x65\xd4\xb7\xed\x86\x28\x49\x94\x0b\xaa\x16\x63\x6b\x4b\x6d\xcf\xb4\xee\xec\x97\x67\xf6\xc3\x36\x86\x8a\x53\xe4\xfa\x73\xb6\x5b\xb8\xa7\x04\x35\x85\x89\xec\x14\xda\x6c\x37\xce\xd5\xbc\x16\x93\x6a\xd5\xc2\x3a\x50\xac\x76\x43\xd5\x5d\x6c\x3b\x3c\x5b\xf0\x64\xcc\xa7\x0e\x6e\xaa\xfd\xc2\x56\x2b\xc1\x6c\x60\x84\x76\xa8\xd6\x99\xa0\x5c\xd8\x82\x2b\x6d\x62\x05\x53\xfc\x79\x9c\x61\x81\x93\x84\x24\x54\xa6\xdb\x9b\xcc\xff\xf4\xc7\x95\xa3\x3d\x33\x85\x81\xa4\x2d\xb3\xf5\x99\xa6\x79\x8a\x58\x9e\x4e\xac\x94\x8b\xe5\x63\x88\x29\xea\x10\x10\x0c\x34\x96\x1b\x60\x09\x87\x41\x04\x28\xb1\x23\x16\xe0\x85\x5b\x53\x05\x8e\xe6\x94\x3c\x01\x9a\xa9\x60\x44\xca\x63\x74\xc5\x15\x39\x45\x97\x38\xbb\x07\x41\xcd\x54\xea\x9c\x19\xa7\x03\x96\x48\x4b\xad\x39\xa3\xaa\x37\x62\x16\x64\xdc\xad\xca\x49\xc4\x99\x01\x9a\x8d\x60\x61\x7d\x13\x60\x45\x77\x88\xab\xca\xe5\x8b\x52\xd9\xb0\xd8\x02\x3f\x8f\x83\xa0\xe0\xb1\x49\xba\xd8\x80\x8e\x6f\xf1\xb3\x09\x83\x3f\xc7\x0a\x9b\x22\xbc\xab\x24\x77\x1b\x67\x66\x0b\x33\x19\x7c\x65\x17\x8f\xc3\x2d\xc8\x87\x2f\x29\x67\x82\x7e\xbf\xa6\xc7\xe4\x18\x7d\x97\xf0\x89\xec\x15\xa6\x2a\xf3\x50\x12\x25\x7b\xc6\xef\x07\xff\x36\x19\x76\xdf\xb8\xd5\x2f\xf8\x3e\x54\x53\x9c\xd2\xcf\x06\x5b\x44\xfe\xe9\xf4\xe4\x24\x5d\x1c\x4d\xf2\xe8\x91\x28\xfd\x17\xc8\x14\xb5\x2b\xe4\x80\xb9\x70\x1d\xcc\xd7\xba\xd5\x59\x86\x08\x6b\x45\x91\x36\x5b\x49\x12\x80\xa3\xd7\x57\xba\xaf\x57\xeb\x10\xa5\x38\xab\x2f\xc6\x69\xa7\x2c\xf2\xa6\xe3\x55\xc2\xb1\x7e\x1d\x6d\xc5\xd4\xe3\x0d\xe1\xb3\xa7\x09\x9e\x55\x54\x96\x0d\x94\x94\xeb\x94\x5a\x2a\xd2\x73\x87\x30\x16\x7d\xca\xca\xc1\x7b\x5f\x39\x2f\x2f\x78\x6b\xad\x17\xeb\x78\xc4\xfa\x12\x3d\x13\x53\x66\x17\x52\x3d\xc1\xe9\x93\x53\x39\xf7\x89\x9e\x60\x86\x86\x46\x0d\xca\xb0\x01\xa3\xb0\x8a\xa3\xd3\xac\x9c\x5b\xcc\x6a\xa0\x38\x91\xa4\xa7\x1b\x06\x93\xaa\x8b\xcf\x44\xcf\x02\x67\x19\x11\x23\x66\x11\x63\x01\x17\x9d\x73\x1b\x7b\xd3\x14\xa4\xdf\x69\x94\xaf\xab\x51\x06\x6b\x4f\xca\x79\xa0\xeb\xce\x37\xa4\x8d\xae\x5a\xe1\xba\x4c\x48\xb7\x7c\x5a\x16\x6d\x1b\x40\xff\xf6\x66\xe3\x96\x63\x5e\xa7\x9d\xf7\x2b\xd9\x0f\x50\xc5\x3b\x05\x05\x52\x16\xc5\x4a\x9d\xad\xcf\xab\xef\x25\x31\x07\x00\xc7\xe1\xe3\x98\x13\x19\x18\xf1\x91\xb7\xc5\x25\x74\x4a\xb4\xf4\x31\x62\x9a\x8c\x43\x87\x83\xc1\x2d\x77\x30\xe6\xba\xd3\x48\x70\x29\x6d\x42\x83\x69\x67\x75\x5a\xda\x0e\x25\x12\x0d\xf8\xfa\xf0\xfa\x6a\xbc\x5c\x2c\x31\x78\xe6\xca\x26\xda\x87\xb5\xd8\x05\x8d\x4d\xad\x2d\x92\x58\xac\xc5\x06\x65\x12\x4f\xce\x2e\x86\xbe\x36\x58\xa5\xeb\xe5\x3a\x89\x21\x60\x7d\x73\xa5\xc4\xe5\x19\x07\x35\x13\x2b\x4d\xac\xa8\x9a\xb8\x7e\xb3\xca\x61\xd4\xbb\xa0\x11\x56\xb6\x7e\x2d\x7f\x28\xd3\xcc\xba\x68\xff\x3d\x6d\x53\xc3\xb5\x12\x81\xc0\xf8\xd2\x81\x0b\x20\x78\xe9\xb7\xa4\xc2\x69\x16\x66\xb2\x3a\x38\x56\x3b\x4d\x73\xd4\x9a\x2e\xc1\x57\x85\x89\x8f\xb0\x09\x12\xaa\x0e\x6e\x69\x2b\x36\xf3\x78\xdd\x5b\xf4\xf9\x7d\x44\x87\xbf\x5e\x6a\x78\xb2\x28\x82\x21\xa5\x95\xdd\x5c\x65\xf3\x06\xbb\xff\x84\x78\xa4\xfd\xc6\x0d\xdd\x35\xf7\xd3\x23\x72\x09\x82\xa5\x75\x7f\x43\x8a\x64\x25\x7d\x6a\x03\xf3\xb0\x1f\xb3\x49\xb2\x3e\xf2\xb5\x2d\x82\xab\xc6\x96\x6b\x8b\xdc\x41\xa4\x42\x90\x27\x22\x80\x76\x6c\x28\x15\x2b\x1f\x55\x9c\x08\x82\xe3\x45\xb0\x22\x3e\x8e\xc3\xf4\x0c\xe6\x31\x49\x53\xad\xc0\x83\x6a\xc2\xf8\x11\xcf\x9c\xce\x52\x7a\x0b\x0a\x93\xd0\xa9\xbe\xb1\x82\x28\x10\xfd\x05\x3b\x22\x9f\xa9\x54\x5a\xae\xa8\x09\x81\x75\x8d\x80\xc4\x03\xe5\xca\xe6\xc4\xde\x70\xa3\x0f\xfd\xef\xae\x6f\xef\x07\xe7\xa3\x0f\x45\xd2\x83\xcb\xea\xf3\x40\x5b\xae\x6e\x02\x67\x23\xe6\xe3\x94\x3d\xae\x34\xec\x25\xc2\x71\x5c\x00\x46\x58\x25\xd2\xc8\x6c\x2b\x39\x72\x70\x2a\xd6\x46\x28\xaf\x68\xe6\x01\x52\xbb\x0e\xf5\x64\xad\x70\x9d\x95\x4e\x8e\x49\x50\x5b\x91\x49\xb4\xa7\xcb\x26\x84\xc4\x55\x46\xd7\x26\xca\x61\x36\x32\xf2\xec\x74\x25\xb8\x9d\x4f\xb0\xb9\x84\x37\xe3\x76\x6e\x43\xb6\xd8\xd4\x8f\xf4\x33\x89\x6f\x1b\xa4\xaa\xbd\x24\x0a\xb5\x0a\xb0\xac\xdd\x85\x9c\xd1\x4d\x34\x7e\x3f\x95\x07\xfd\x5d\x7b\xb6\x74\x5d\x20\xdd\x15\xa8\xb5\x00\x59\xab\x10\x46\x11\x11\x0a\x53\x86\xa6\x70\xb0\x59\xb4\x40\x80\x83\x42\xc0\x87\xfd\x47\x94\x52\x06\x80\x0c\xab\x96\xf6\xa1\x3c\x8f\x0d\x84\xd6\xcb\xe1\xd5\xc3\x7d\x49\x54\xfd\xfe\xfa\xa1\x5c\x2b\xbf\xff\xf3\x4a\x59\xb5\xd2\xc2\xaa\x60\xa1\x60\x8a\x45\x72\xa7\x05\xef\xf5\x2b\x53\x3b\xd1\x64\xa1\xc8\xc3\xed\xc5\x4e\xf2\x5d\xbd\xb3\xac\x11\x7a\x3d\x94\xae\xea\x81\x26\xda\x7c\x1a\x93\x68\x1d\x38\x6c\x7b\x3a\x32\x51\x50\x7a\x1d\xac\x35\xd1\x02\xc7\x61\x89\x32\x2c\xac\x1f\x2a\x36\x01\x50\xe5\x82\x6b\x46\xf3\x5a\x05\xcc\xf1\x89\xa8\x1f\xf5\xd5\xc7\xd9\x3e\x92\x4b\xac\x28\x0b\xfe\x51\x32\x7e\x32\x0d\x6f\x70\xd2\xec\x50\x56\x64\x10\x39\x61\x19\x7a\x40\xb6\x87\x10\xce\xe2\xd8\x14\xde\xef\xeb\xe6\x60\x45\x5c\x98\xa6\x56\x49\x39\xd3\x14\x69\x50\x6a\x1d\xb4\x6d\xd0\x1c\x9f\x9a\x8f\x5b\x02\xfd\x05\xc9\x02\xba\xad\x62\x29\x51\xff\x66\x58\xb3\xd6\x17\x55\x17\xd2\x97\x55\x25\x28\xf1\xde\xac\x7d\x63\x4f\x05\x59\x9f\x07\x01\x36\x65\x67\xba\x1b\xba\x94\x71\xfa\xdf\x94\x23\x09\x0e\x01\x04\xb9\x4e\x65\x28\x65\x73\xaf\xc1\x3b\xde\x2c\xc1\xb1\x58\x86\x0d\xb1\xa4\xc2\x01\xd9\xec\x9a\x10\x3f\x69\x39\x74\xbb\x17\xe2\x29\x71\x53\x87\xd8\xc6\x16\xec\x0d\x63\xaa\x98\x4d\x1b\x90\xa9\x1f\x0d\x45\x7b\x0c\x12\x40\x55\x71\x75\x2e\x5d\xc8\xb5\x85\x04\x08\xa7\x1b\x52\xdb\x66\xb8\x54\xc5\xf8\x9c\xf9\xdb\x42\x7c\xe3\x0c\x5b\xbb\x03\x28\x51\xae\x00\x45\x5d\xbd\xc2\xe3\x11\x0b\x02\x56\xa4\x51\x7b\xf4\x19\x71\x35\x5f\xa0\x90\x30\x03\xbc\x70\xc8\x7d\xf2\xc2\x4f\x69\x07\xaa\xc8\x03\x6a\x5e\xae\xda\xb2\xd4\x8f\x3d\x9d\x72\x8e\x5d\x7e\xa7\xb3\xa0\xd8\x38\xc0\xd0\xbe\x04\xed\x05\x75\x1a\x6c\xc7\x60\x8e\x06\xa3\x05\x0e\xaa\x00\x06\x98\x00\x31\x27\x92\x7d\xa5\x7c\x06\x2d\x4d\x16\x2e\xa4\xba\xe2\x1e\xd0\x52\x1d\xa6\xb6\xe5\xd5\x07\x7c\x0f\xa0\x57\x9b\x2a\x0e\xc1\xb1\x5a\x6b\xa6\x72\x3e\x5e\xa0\x84\x30\x16\x09\x3a\x6d\xb2\xaa\x7f\xce\x48\xb4\x0d\x32\xcf\x0d\x16\x38\x25\x8a\x88\x55\xe1\x48\xe5\x1a\xdd\x20\xe2\xb8\x1d\xb4\xfd\x9a\x5d\x34\x05\x4c\xaa\x95\x6e\xbc\x76\x7b\xb1\x0e\x69\xc7\xcf\x62\x23\x50\x31\x3d\x8d\x1f\xad\xe5\x7f\xc3\x59\xd8\x7e\x8a\x69\xd8\x68\xab\x00\x58\x69\xd7\x39\xbd\x0e\xc2\xcc\xfd\x12\x56\x4b\x29\x5c\xe8\x40\xa0\x65\xd6\x8f\xb2\x09\x53\x66\x1d\x2f\xdd\x0b\xef\x76\x19\x0e\x2e\x33\xb9\x72\xa8\x4a\xb9\x13\x40\x25\xa0\x52\x19\x78\x95\x7a\x5c\x18\x10\x5a\xea\x22\x24\x03\xb7\x9f\x45\x0d\x2c\x0c\xba\x56\xb2\xaa\xd6\xec\xaa\x2c\xd7\x1a\x1e\xb7\x2f\xcc\x8c\x4e\xa2\xd9\xb7\x44\xb3\x8e\x94\x4b\xd1\xb5\x9a\x3a\x89\xa8\xc0\xf7\xd8\x5a\xda\x16\x77\xa1\x3c\x41\x48\xe9\xb2\x57\xa4\x2d\xc8\x0b\x57\x3f\x65\xfe\x5f\x65\x0e\xee\x88\x3a\x24\xd5\xba\x5c\xd5\xe3\xc0\x05\x05\x1e\xa8\x24\x94\x06\x6c\x5c\x0d\x8c\xd6\x84\x41\x1a\x2b\xff\xf0\xca\x38\xb0\x20\x67\x7c\xc1\x73\xf4\x4c\xe5\x1c\x29\x3e\x62\x10\x27\xe8\xbd\x01\x8a\x23\xf3\x62\x0f\xde\x02\x74\x09\x99\x4f\x52\xaa\x10\x0e\x66\x58\x32\x49\xf6\xec\x79\xd6\x1f\xc0\x8c\x6b\xe1\x0b\xea\x90\x8f\xd6\x1c\x9a\x2d\xec\x6b\x45\x23\xbb\x22\x14\x04\x31\xcd\x2f\x8b\x51\x10\x68\x3c\xa1\x86\x59\x7b\xe6\x3a\x90\x02\x54\x6f\x6d\xb0\x58\xac\x00\x98\x4b\xa5\xaa\xdc\x2d\xd6\xd0\xb3\x06\xa0\xa0\xd8\x88\x56\x08\x05\xc5\xeb\xfb\x80\x28\x68\xaa\xfe\xb6\x2a\x65\xd5\x7d\xd2\x60\xff\x76\xa9\xd0\x8a\xbb\xc0\xf9\x50\x52\xba\x69\x94\x94\x0e\x0d\x2c\xae\x48\x08\xd8\x3e\xbc\xbc\x29\x7a\x19\xce\x78\xc4\x59\x4c\x37\x88\x17\x86\x0a\x5f\x93\x7c\xda\x67\x8b\xf5\xd8\x43\x69\x18\xa8\x6f\xed\x25\x81\x24\x52\x8f\x7a\xb9\x56\x65\x2d\xda\x0f\x29\x3d\x48\x09\x2d\xc3\x01\x91\xea\xed\xc4\xb8\x82\xbc\x9f\x08\xaa\xf7\x2f\xe5\xa2\x8e\x58\xbd\x94\xb4\x9a\x6f\xef\x9a\x46\xb2\x57\xe0\xbb\x80\x47\xb8\x59\x58\xab\xdb\x4f\x3e\x10\xcf\x28\xf4\xb6\x0e\x7f\x55\x0c\x2e\xdc\x90\x4d\x01\x54\x5a\x38\xda\x26\xd7\xbc\x86\x73\xd4\x0f\x7d\x29\xc9\x63\xed\xd9\xb5\x82\xc1\x1e\xd5\xcf\xa5\x1b\xa4\x75\x4e\x8c\x97\xe3\xed\x8d\x61\x83\xba\x63\x6f\x6b\xa8\xb8\x93\xb7\x29\x30\x0c\x80\xb2\x7b\x83\xc1\xad\x22\x53\xe8\xc6\x7b\xe0\x82\xb6\x63\xc7\x26\x1c\xc7\x83\xb3\x57\xf6\xa4\x34\x63\x13\x52\xf9\x22\xb3\xde\xb4\x2a\x74\xe0\x13\x15\x36\x26\x99\x86\xd6\x0d\x28\x07\x6d\x43\x39\x2b\xb7\x85\x17\x40\x73\x16\x13\xc1\x08\x56\xf3\xd7\xcb\x04\x39\xdb\xd5\x84\x1e\x8c\xef\x65\xb3\x42\xec\x48\x71\x39\x39\x64\x97\xe1\x96\xcb\xe3\xaf\x1d\xa7\x7e\xbd\x8d\x35\xcb\x06\x48\xf8\x02\xd1\x4b\xea\x6d\x8d\x69\x33\xc0\x1f\xda\x84\x4a\x77\x4a\x16\xa9\x57\x39\x5f\x26\x6d\xa6\xc6\x36\xb5\x94\x30\xa3\x4f\x7b\x58\x56\x7b\xcd\x92\x7c\x11\xf9\x29\x2f\x9f\x32\xb1\xaa\x80\x77\x1e\x64\x51\x40\x15\x75\x85\x29\xb3\xdc\x6b\x55\xe2\x84\x96\x7b\x53\x5c\x97\x2b\x71\xf0\x59\x38\x5f\x7c\x12\x4e\x97\x92\xd1\xa5\x64\xd4\xec\x51\x97\x92\x81\xd0\xa1\xa5\x64\xac\x53\x41\x57\x19\x69\xbd\xdf\x10\x0a\xad\x96\xaa\x1b\x99\xfd\x5d\xa3\x47\x6e\x9f\x76\xe0\xec\x9c\x61\xcc\x96\xfd\xc5\xfe\x50\x1b\xb6\xb5\xf4\x59\x75\xb6\xa1\xcd\x95\x2d\xaa\xae\x0b\x2c\xe2\xc4\x42\x10\xda\xa0\xea\xb2\x8d\x6c\x95\x39\x77\xc4\xbe\xe7\xcf\xe4\x89\x88\x1e\xc2\x0a\xa5\x1c\x70\xad\x8a\x18\x1e\x38\x08\x25\x34\x7b\x13\xab\x81\xd1\x15\x4e\x49\x6c\x8a\x5d\x06\xa1\x97\xd6\xa8\x6c\xdd\xc1\x75\x48\xbb\x00\x1a\x6b\xb6\xc1\xc5\x76\x8c\x98\x09\x87\x34\x21\x78\x20\x2b\x50\x37\x31\x20\x98\xdf\x79\x67\xf5\xef\x8e\xd1\xbd\xbe\x9f\xa8\x2c\x8f\x37\x00\xde\x6b\x1a\xdb\x88\xcd\x04\xcf\x33\x6f\xe7\xe3\x13\x53\xf5\xd8\x44\x68\x2d\x3b\xab\x61\x30\xce\x53\x1d\xe1\x58\xeb\xe2\xab\x09\xe7\x4d\x22\x65\xb7\x82\x59\x0a\x09\x48\x1f\x43\x1f\xfe\x67\xc3\xf1\x8d\x8f\x39\x00\x97\x59\x85\xc1\xff\x42\x0e\xf0\x73\x22\xc1\x2a\xe4\x3d\x03\xa5\x5c\xf7\x32\x9e\x42\xed\x38\x57\xd9\x6d\xbd\x6f\xc5\xf9\x1f\xea\xa1\x1a\x8a\xce\x6d\x5c\x9a\x49\xa4\xb5\xf7\xc4\x8b\x59\x74\x5b\x47\xf8\x36\xf1\x8b\x9b\x5c\x64\x1c\x24\xb1\x64\xe1\xa0\x25\x2c\xc8\x5f\xc6\xb3\xdc\xc4\xde\xd1\x30\x14\xab\x96\xb2\xa9\x54\x97\x58\x45\x73\xcd\xb9\x0b\x54\xb6\x3d\xc5\x24\x16\x5c\xf9\x65\xad\xbc\x35\x33\x38\x0b\x7b\x6f\x70\x7b\xac\xa2\x9e\x20\xc6\xd0\x07\x72\x7a\x49\x22\xd5\xfd\x19\xd7\xa0\xad\x65\x1e\xd8\x45\xdd\x27\xf6\x89\x9e\xe8\x3a\x2a\x5a\x37\xfe\x76\xb4\x55\x2e\xb6\xb6\xf7\x68\xc7\x1d\x60\x6e\xce\x2d\xa8\x58\xf1\xa2\x2d\xce\xdb\x10\xa2\x20\xe8\x76\x99\x4a\xb6\x40\xc2\x93\x16\x47\xbc\xc5\x35\xc5\x99\x56\x22\x14\xd7\xb7\xa4\x98\x19\x39\xd6\xc4\xf2\x22\x8c\x72\x41\xdd\xd9\xaf\xe4\xad\x37\x53\x07\x58\x28\x4f\xc2\x62\x5a\x11\x0e\xea\x0c\x9a\xa0\x04\x1c\xa9\x1c\xfb\xe0\x49\xa0\x09\x57\xff\xde\xe4\xe8\x3b\xe7\xbf\x70\xe2\x5d\xcd\x9e\xae\x25\xec\x1d\x76\x19\xd7\x61\x30\xb6\x3a\x69\x94\xcd\x02\x00\xc7\x7a\x2b\x71\x9b\xb2\x17\xb5\x5f\xb6\x2b\xdd\x51\xfb\xa9\x93\x7d\xb6\xf9\x76\x05\xc0\xd4\xd6\xf1\xe3\xa5\x58\x7c\x1b\xac\x6b\xa5\xa7\x10\x5a\xd3\xda\xef\x00\x78\x98\x42\x30\x01\xb6\xd2\xd4\x7f\xf9\xbf\x4c\x99\x34\xb3\x34\xff\x85\xb8\x18\x31\xf3\x7b\xcf\x97\x28\xd1\x2f\x14\xd8\xbf\x38\x25\x05\x8c\xa7\x28\x03\xfe\x01\xec\x89\x05\x6c\x33\x38\xcf\xbe\x42\x83\x1e\xc3\x63\x3e\x21\x82\x11\x3d\x34\x07\x90\xe0\x99\x59\x8a\x19\x9e\x01\xaa\x74\x0f\xa2\xf7\x40\x5c\x2d\x54\x11\x43\xd2\xa6\xd4\x25\x70\x2b\xcd\x2c\x6d\x4e\x70\x51\xf2\x19\xfa\x34\xa2\xac\x05\xb5\x2d\x42\x40\xea\xa9\xff\xd6\xf6\xbf\x9d\xc4\x7e\xdf\xbf\xfb\x61\x7c\x3b\xb8\xbb\x7e\xb8\x3d\x2b\x89\xed\x67\x17\x0f\x77\xf7\x83\xdb\xda\x67\x45\x3e\xed\x5f\x1f\x06\x0f\x0d\x8f\x5c\x03\x17\xfd\xef\x06\xa5\xfa\xe9\x7f\x7d\xe8\x5f\x0c\xef\x7f\x1e\x5f\x7f\x1c\xdf\x0d\x6e\x7f\x1c\x9e\x0d\xc6\x77\x37\x83\xb3\xe1\xc7\xe1\x59\x5f\x7f\x19\xbe\x7b\x73\xf1\xf0\x69\x78\x35\x76\xa1\xd1\xe1\xa3\x9f\xae\x6f\x7f\xf8\x78\x71\xfd\xd3\x38\xe8\xf2\xfa\xea\xe3\xf0\x53\xdd\x2c\xfa\x77\x77\xc3\x4f\x57\x97\x83\xab\xd5\x75\xda\xeb\x57\xa3\xb1\x04\x74\x70\x91\x05\x46\xa3\x40\x4c\x9a\x2c\x2c\x69\xd3\x5f\xc1\x77\x71\x63\xe8\xf1\xa8\xe7\xfe\x32\x55\xd5\x8f\x34\x0b\x74\x7e\xb1\x82\x7b\x8c\x98\x77\xae\xfa\x4b\x55\xe1\x99\x74\xe9\xd1\xa5\xd1\x9e\xa2\x3e\x9c\x15\x50\x18\x4a\x9d\x42\xf6\x85\x1f\xa9\x73\xc7\x03\x1d\x26\x34\xa5\xe0\x99\x47\x47\xa8\xba\xe1\xe5\x06\xed\x9c\x60\x08\xd6\x6f\x17\xaf\x3a\x0d\xb2\x9a\x79\x0d\x94\x72\x8a\x1c\x87\x26\xc6\x9c\x60\xf0\x71\x17\x0c\xa7\x34\xaa\xa6\x89\x00\x44\x2c\x2a\xe0\x50\xaa\x2d\x96\x08\xac\xdc\xf2\x9c\xa0\x1f\xfe\x52\x0c\x0a\x3c\x18\x56\xf3\xce\x97\x8a\x29\xda\x07\x22\x37\xab\xba\x8e\x3c\x4b\x3d\xb9\x63\x6e\x4d\xcb\x70\x6e\x6d\xd1\x76\x70\x37\xe5\x2c\x80\x44\x2b\xf9\x9e\xf4\xf1\x36\x33\xaa\xd0\xf8\x29\xba\x03\x38\x16\x59\xa8\xee\x7a\x17\xb3\x24\x9f\x51\x86\x68\x9a\x25\xc0\x63\x8c\x3e\x3f\x21\x73\xfc\x44\xb9\xab\x5c\x62\x0a\xbc\xc0\x3a\x5a\xd1\x0a\x1d\xa1\xc6\x83\x72\x8a\xfa\x71\x2c\xcb\x0c\xae\x44\x39\x8e\x65\x1e\x95\x87\x1d\xa2\x98\xb1\xd8\xb3\xcd\x0a\x1d\x15\x47\x0e\x56\x6c\xff\x80\x33\xcb\xec\xb0\x7c\xf7\xee\x70\xfd\xeb\x15\x1c\x3b\x52\x1e\x6f\x25\x0c\xdc\x63\xf9\xe8\x58\xf3\x3a\x81\xc0\x41\xff\xec\xd6\xa3\xc5\x00\x6a\xdb\xa9\x5f\xd9\x31\x1c\xb4\xed\xfa\x6c\x44\xae\x5e\xd3\xa5\x9b\x71\x52\xa9\xda\xd6\xba\xbf\x52\xd5\xb7\xda\xce\xf6\xea\xed\xa9\x97\xc6\xe0\x48\x8e\x3d\xfd\x6f\x30\x8f\x1b\xf8\xf4\xda\x7f\xb9\x52\x64\x1b\x07\xeb\xb6\xa9\x0f\x68\x29\x91\xd8\xfa\x81\x56\xd2\xe1\x9e\x20\xa8\xda\x0b\x83\x50\x73\x83\x46\xe0\xee\xc3\x94\xd9\x4a\x4c\xc4\xfb\xa3\x5c\xed\x71\x7d\x8e\x7d\x75\x40\x3c\xe1\x4f\x25\xe5\x32\x25\x52\xe2\x06\x50\x95\xc0\x24\xb6\x0b\x63\xf0\x27\xd4\x7e\xd8\x92\x9e\xdc\x99\xbc\xd7\x5f\xad\x32\xfa\xdc\x86\x9a\xb1\x9b\xa8\x16\x58\x63\x17\x0d\x8c\xae\x4d\x4e\xa0\xe6\x2f\xbd\x22\x98\x86\x8b\x20\xc6\xa8\xc9\xfd\xd3\xd2\xac\x56\x5d\xb0\xda\x02\x5b\xa1\x0b\x6f\xf3\x18\x9c\xa0\xf5\xad\x51\xbb\xad\x5f\x05\x97\xd7\x67\x03\xaa\x2b\xf9\x3b\xc3\xe2\xe3\x11\x4f\x53\x23\x17\x94\x6c\xa9\x3d\x84\x4d\x2a\x66\x21\x4d\xc9\x3c\x9a\x1b\x2f\x93\xbe\x32\x7a\x23\xf6\x1c\x6c\x48\x29\x58\xb9\x1f\xb6\x04\x88\xa7\x9f\xf5\x71\xa3\x4f\xa5\x10\x70\x10\x19\x29\xc4\x23\x07\x84\x60\x1c\x82\x45\xe5\xb0\x35\x04\x1e\xec\xd7\x0e\xa4\xbe\x45\x99\xc8\xca\xfa\x36\x15\x8b\xf4\x73\x0b\x6a\x34\xee\xa0\x29\xb7\x1d\x42\x50\x26\xb2\x6e\x04\x7b\xa8\x12\xf9\xaa\x10\xe4\x3e\xa5\xd4\x64\x20\xa7\x13\x8b\xa3\xa1\xa7\xeb\x56\xfb\xf7\x6e\x46\xbf\x37\x7e\x87\xbc\x01\x78\x25\x68\xcd\xa3\x90\xa3\x23\x2d\xb3\x3a\x40\x00\x1b\x88\x21\xd1\x91\x41\x36\xfc\x0a\xa2\x41\xfb\x37\xc3\xaf\x7a\xe8\xab\x30\x23\xee\xab\xad\x0e\xa0\x1d\xb7\xad\x14\x09\xda\x54\x29\x2d\xa2\x7c\xec\x60\xaf\x2a\x27\xd1\xee\x99\x3d\x88\xa8\xe9\x1c\xea\x2f\x4b\xdf\x80\x73\x1a\x2a\x1f\x1a\xff\xad\x0f\xca\xb6\x2e\x20\x23\xe3\x52\x59\xb3\x76\xf1\x88\x4d\x16\x55\x27\x4f\xcf\x7b\x79\x5a\x9f\xd2\x9d\xab\xf9\xe9\xf6\x96\x53\xa8\xf7\x1c\x2c\xbc\xfa\x3e\x58\x93\x94\xdd\xf7\x25\x67\x0a\x2e\xd6\x14\xa5\xd0\x45\xd9\xd7\xcd\xaa\x64\x2f\x73\x8b\x59\xbb\x29\xeb\xe4\x9f\xf7\x46\x6e\x2d\x42\xd3\xfb\x75\x2b\x62\xb3\x12\x1a\x84\xeb\x8e\xca\x5e\x96\xca\xf6\x91\x95\x51\x1e\xdc\xe6\x17\xe8\x99\x91\xe3\x82\x66\x9c\xc1\x55\x2b\x13\x9e\xc1\x97\x4a\x3e\xae\xaf\x95\xbc\xa1\xcf\x37\x58\x93\xf5\x4e\xdf\x3b\x13\x38\x60\xdc\xae\xcb\x63\xad\x0e\xb5\xaf\x6c\xa1\x24\x4e\x4d\x06\xa6\xa2\x29\xe9\x99\xca\x5c\x45\xb0\x83\x3d\xaf\x40\x6e\x26\x46\x69\x4e\xa8\x70\x9d\x58\x1c\xc4\x8d\x52\xf6\x37\x94\xc6\x9b\x68\x64\x87\x48\x93\xab\xfe\xe5\xe0\x7c\x3c\xb8\xba\x1f\xde\xff\x5c\x83\x71\x59\x7e\xec\x60\x2e\x83\x17\xee\x7e\xbe\xbb\x1f\x5c\x8e\x3f\x0d\xae\x06\xb7\xfd\xfb\x35\x10\x98\xab\x3a\x6b\x82\x57\xcc\x65\x9d\xfa\xb6\x09\xc4\xa2\x33\xf3\xd6\xf4\xbe\x0c\x84\x19\x74\x42\x49\x03\x18\xa6\x81\x27\x60\x31\x11\x28\x26\x4f\x24\xe1\x59\x61\x56\xad\x5d\xb0\x00\x25\xb3\xa6\xfd\x55\x48\x99\xd0\x66\x75\x8d\x4f\x91\x29\xf3\x17\x54\x3a\xf6\x0d\x82\xc8\x87\x05\x61\x5f\x29\x44\x3e\x67\x09\x8d\xa8\x0a\xd2\x17\xb9\xb0\xee\x15\xe3\x3e\x84\xe8\xd4\x35\xc4\xb5\xb7\x68\x94\xbd\xeb\xfc\xa1\x27\x7d\x59\xdb\xf7\x27\xca\xa3\xb6\xad\x2d\x72\xb4\x07\xc5\xbe\xc1\x69\xbc\x04\x2a\xb7\xc5\xe8\x5e\xc2\x3c\xb0\x9c\xa3\x63\x53\x10\x1b\x00\xe7\xea\x07\xb9\xfe\x36\x5c\x15\x27\x53\x3a\xd7\xab\x03\x65\xda\x51\xea\x1b\x87\xbb\x94\x6a\xaa\xee\x01\x1d\xc4\xc6\xae\x6f\x18\xb0\xb0\x54\xd3\x86\x99\x98\x53\x8c\x04\x49\xb9\xd2\x0a\x98\x89\x08\xe8\x69\xa1\x8a\xe2\x84\xfe\x0a\x38\x5a\x82\x1c\x07\x11\x14\x0e\x7d\xac\x70\x1f\x58\x8c\x8b\xe3\x11\x3b\x1f\xdc\xdc\x0e\xce\x34\x43\x3a\x46\x0f\x12\x20\xb2\x4a\x53\x3f\xb7\xe4\x6d\xc4\xb1\x30\x92\x81\x32\xa9\x08\x6e\x0a\x06\x23\x42\x70\xd1\x9e\x3f\xf8\xfe\x06\xf0\x5d\x3d\x79\xc3\xb3\x92\x6d\xca\x19\x00\xae\x1a\x0b\x62\x07\x39\x03\x7b\xcf\xc9\xba\xc5\xcf\xa5\x15\x09\x21\x42\x40\x12\x29\xaf\xfa\x0b\xae\x36\x80\x8c\xb6\x9f\x5f\xa9\xcf\x1b\xf8\x76\xd5\x3c\xef\x21\xc4\x4e\xaa\x02\xb1\xd4\x80\x9a\xfa\xca\x3c\x95\x79\x36\x8a\x8a\xe2\x2d\xe0\x44\x2a\xa4\x3f\x21\x33\xcc\x90\xc8\x19\xab\x40\xd8\x86\x96\xb6\xe5\xa0\x99\x4d\x8f\xaa\x5e\x33\x9c\xf2\x9c\x99\xd2\xb2\x7a\x54\x35\x83\x91\x19\x61\x6a\xcd\x60\xde\x0a\x2c\xa6\x32\xd4\xc3\xc5\x8b\xa9\x19\x68\x13\x64\x4c\x9d\x3f\x09\xaa\x6e\x6f\x76\x2d\xbb\xa0\xbc\x92\x53\x49\x1f\x2a\x7f\x3f\xd7\x6b\xd9\x58\x3e\xee\xdc\xdd\x3d\x96\x8f\xeb\xbb\x8a\x49\xf4\xb8\xe9\x65\x53\xcd\xcc\x4c\x6c\xd1\xf2\x25\x63\xdf\x42\x3f\xb5\xe5\x63\xa0\x56\x7d\xf4\x88\xbe\xbf\xbf\xbc\x40\x53\xaa\xe5\x5e\x7d\xad\x5c\x61\x2d\x63\x3f\x88\xc4\xd9\x85\xad\x6d\x35\x17\x89\xbf\x7b\x61\xe3\x9d\x28\x15\x48\x09\xfa\x46\xc3\x33\xe2\x8c\xbd\xc2\x22\x02\x56\xca\xc7\x08\xcc\x62\x9e\x9a\x79\x9c\xc8\x7c\x3a\xa5\x9f\x8f\x15\x16\xdf\x34\xac\x87\x89\xaa\x18\xff\x9d\x4f\xc6\x7a\x44\x3b\x5e\xc4\x75\xcd\x21\x5b\x4b\xdb\x2f\x9b\x9d\xd9\xb9\x79\xf7\xff\xf2\x09\x64\xbb\x43\xc2\xbe\xf3\xce\xd9\x48\x05\xfb\x8a\xa3\xa4\xa2\xb8\x74\x09\x88\x25\xe2\x42\x10\x9b\x24\x6f\xea\x9f\x66\x58\x28\x0a\xd6\x5a\x07\xe4\x52\x42\xf0\x2f\xb6\x28\xac\xf6\x3e\xc7\x05\x5a\xf6\x84\x10\x70\xf0\x64\x34\xd9\x4c\xe9\x3d\x2b\xf9\x26\x2b\x27\xd0\x46\x9e\x5a\x6c\x4f\x30\xc8\xac\x15\xb1\x06\x4f\x84\xa9\xbd\xe8\x27\xd0\x44\x4d\xda\x7e\x3b\x2f\x83\x29\x43\x3a\x3c\x2f\x2e\x37\x17\xd2\x1b\x46\x35\x29\x81\xe1\x9e\xb7\x89\x52\xd6\xa5\xde\xe4\xe8\x7f\x6a\xed\x3b\x86\x57\x97\xd7\x65\x4d\x68\xbc\x5d\xed\xa2\xca\x7b\x11\xd6\xea\xca\x0f\x6c\x09\x36\x24\x89\xb1\x62\x04\x20\x17\x56\x39\xad\xee\xb9\xe9\x53\xd3\x56\xa5\xcb\xb5\x5b\xbe\x05\xb2\x4e\xa9\x99\x4f\x04\x52\x3a\xf7\x11\x88\xbe\x49\xee\x3e\x0c\xe4\x41\x24\x10\x42\xbd\xd2\x8a\x65\x4a\xa1\x6b\xce\xe7\x25\x3b\xdc\x42\x46\x37\x83\xd1\x42\x23\xc9\x04\x89\xf4\x55\x76\x8a\x6e\x12\xa2\x25\xaf\x5c\x4b\x5f\x79\x92\x38\x14\xb2\xd5\xd2\xe1\x46\xc8\x79\x2f\x3e\xaf\x40\xf7\x58\x31\x31\x87\xc2\xb7\x7a\x66\xc1\x1a\xec\x1f\x71\x21\x58\x5f\x30\x21\x83\x21\xb1\xac\x45\x02\x87\x5f\x98\xb8\x59\x30\x25\xe1\xd2\x45\x46\x7f\xd5\xec\x57\x10\x39\xe7\x8d\x49\x8e\xe1\x6c\x5f\x66\x0e\x6e\x29\x5f\x70\x12\xee\x3e\x6c\x8a\xab\x6e\x21\xd7\x54\xee\xc0\x92\x88\xb3\x6a\x8a\xbe\x42\x85\x8f\xfe\xb0\x98\xb0\xf6\x6e\xb5\x43\x83\x5b\xb2\x30\xb5\x85\xf8\x6c\x85\xeb\xa2\x50\x66\x16\xc6\xf7\xea\x3f\x2f\x0c\xc8\x45\x4a\x00\x55\xb2\xa8\x8c\x87\xf4\x5d\xdb\xb4\xc5\x7a\x9e\xe3\x5c\x6c\x04\x49\x51\x20\xab\x6f\xc2\xb9\x6d\x32\x4a\x31\x2c\xbd\x08\xf5\xec\xd2\x16\xbc\x00\x31\xda\x86\x1a\xc9\x12\x5a\x9d\x25\x1b\xb3\x8c\xb5\x2a\x5e\x33\x53\xde\xd5\xad\x06\x52\x72\x21\xca\xbc\x94\x77\xad\x44\x81\xa5\x09\x74\xf8\x67\x9b\xe3\x9f\xd9\xea\x27\x9e\xf6\x00\xad\x50\x09\x48\xfc\x2f\x1c\x68\x55\xc1\xc1\x1a\xbd\xd7\x65\x3e\x95\x76\xa7\x55\x9a\x53\xe9\x0b\xcd\x4b\xce\x77\xf4\xc0\xe9\xc9\x2c\xc6\x90\x38\xba\x4b\x14\x4e\x69\xfe\xc6\x7b\x00\x6d\x92\x18\x19\xf4\x02\x83\xce\x6c\xd7\xce\x7b\x4e\x32\x2c\x08\x53\x23\x76\xab\x47\x61\xbe\x28\x22\x31\x5c\x1c\x8e\x43\xcc\x87\xba\xba\x53\x84\xed\x57\xb0\xe8\x4d\x81\x70\x72\x6c\x5e\x02\xd5\xf4\x05\x93\xec\xbf\x33\xef\x18\xcc\x03\x8b\xf9\xa3\xa7\x4a\xa7\x85\x1a\xaf\x05\xc8\x68\x4e\x01\x72\x20\x26\xd2\x5e\x48\x54\x59\x4c\x09\x2f\x7e\xe7\xc4\x61\x44\xc3\x67\x9e\x7f\xd5\x31\x6c\x67\x28\x60\xce\x40\x27\x47\x2c\xe8\x63\x05\xa4\xa8\x51\xd6\xb7\x54\x25\x60\x9f\x69\xec\x1d\x5f\xf0\x4f\xb3\x43\x5c\xd0\x19\x65\x41\x61\x27\x3b\xbd\x14\x67\x60\xde\x35\x67\x90\x4f\xfd\x9d\x76\x6f\xb3\x0c\x8e\x61\xc4\xff\xf3\xdf\x7f\x3b\xa6\x4d\xde\x0f\x39\xb6\x2b\x70\x08\x3b\xb9\xd9\xb6\x84\x3b\x1f\xa0\x88\x34\xa0\x53\x04\x3a\xad\x2c\x65\x4e\x14\xbf\xda\xcb\x4d\x13\x0d\x57\x73\xe3\xee\x2d\x93\x3b\xf8\x46\x44\xbe\xe2\x6c\x98\x2b\xe6\x6d\xd7\x92\x4a\xc8\x0e\xd0\x23\x31\x27\xd9\x1b\x08\xc2\xa2\xe9\x4b\x66\x9a\x11\x2b\x3e\x91\x06\x0f\xc5\x40\xd0\x9a\x1f\x8a\xd5\x69\xb9\x30\xab\x78\x7f\x11\x29\x51\xb8\xc3\x83\x68\x64\x57\xe2\xc3\x44\x91\xea\xf6\x2b\x37\x6d\x85\x73\x07\x58\x8c\xbb\x44\x6d\xce\xb1\x7c\xb9\xd0\x9c\xda\xd2\x54\xc6\x9a\x1e\x0a\x0f\xeb\x82\x74\xcc\x20\x4d\xb6\xa7\xde\x90\x5c\x12\x61\x38\x9d\x87\xc3\xb2\x94\x10\x22\x4d\x42\x8c\xe6\x1a\x5f\x23\x49\x31\xdd\x28\x9f\x40\xbf\x5f\x8f\x83\x59\x72\x36\xe0\x19\x11\xe3\x38\x57\x4b\xc7\x62\x55\x8c\xbf\xfe\xe8\x3c\x57\x8b\xf5\xed\xcb\x04\x2f\x97\xe6\x59\x85\x3d\xaa\xdf\x6f\x68\x76\xbd\xc4\x1c\x84\xf8\x94\xa5\xe6\x06\x64\x4f\x52\x41\xf6\xb4\x31\xa7\x25\x13\x09\xdc\xc0\x4c\x01\xa4\x5e\xa1\x49\xd9\x2b\xda\xe0\x8f\xc3\xc8\xd1\x24\x2f\x4c\x4a\xbe\xa2\x43\x7c\x3c\x62\x1f\x4d\x49\x14\xd0\xf2\xcc\x00\x22\x48\xf8\x21\x9f\x33\x2e\x49\x29\x03\xad\xa6\x4a\x83\xcd\x20\xb5\xc3\xa8\x17\xd6\x8b\x8f\x76\x97\xd5\xdf\x1c\xa3\x75\x79\xc3\x97\xa7\x5c\x4f\x81\x3b\x89\x83\x11\xcd\xa8\xa6\x9d\x71\xed\x49\x7b\xb9\x4a\xc1\x45\x4c\x17\xe0\x60\xa9\x64\xd1\x43\x7e\x7a\x15\x82\x48\xc8\x13\x01\x73\x3a\x8c\x31\xac\xc5\x51\xb6\xeb\x35\xb0\x93\x75\x07\xa8\x48\xff\x04\xb6\x80\xe2\xea\x08\xca\x49\x72\x75\xb4\x58\x4e\xff\xd9\x39\x53\xad\x2e\x30\x65\x03\xf1\xbc\x1f\xd6\x24\x59\x10\x85\xc8\x67\x45\x6c\xd5\xd2\x7b\x97\x4b\xb8\x9c\x7e\x80\xea\xd3\xa1\x9a\x65\xc7\x17\xaf\x1f\xdd\x77\x19\xe4\x2e\x59\x32\x76\x57\xbe\x4d\x1e\x9c\x63\x16\xdb\x8c\x58\xab\x64\x68\x61\x0b\x66\x67\x8c\x6e\x3e\x57\xc0\xe6\x75\x06\x60\xee\xa6\x4d\x83\x3a\x0f\x17\x99\x53\x18\xb5\xca\x02\xe1\x15\x5c\x68\xc9\x3d\x67\x8a\x26\x9a\x38\xec\x18\x24\x9a\x42\x64\x9c\x05\x2a\x84\xc8\xf6\x26\x2c\x3c\x2a\x25\x65\xb3\xb1\x5d\x49\x97\xdc\xd9\xee\x62\x28\xd3\xd4\xa5\x69\xca\xfc\xf8\x9d\x6b\x68\xb5\x51\xdd\x90\x35\xe0\x94\xb9\xb4\x52\xd0\x38\x18\x77\x93\xb1\x00\x73\x2e\x1b\x75\x4c\x63\xb3\x14\xd4\x14\xc7\x86\x89\x6e\x62\x77\x07\x99\x6e\x19\xc7\xa1\xb8\x42\xa4\x4d\x15\x35\x09\x60\x10\xa9\xaf\x1a\x72\x61\x65\x63\x0e\xec\x90\x79\x11\xcd\x96\xe6\xf2\x99\xfe\x95\x74\x5a\xec\xba\xb3\xe9\x08\x38\x49\x26\x38\x7a\xf4\x5a\x98\xb7\x45\x70\xe1\x4a\x1b\x68\xb9\x12\x6a\xb7\x19\xe2\xd2\x03\x8d\x40\xba\x09\xbd\x85\x06\xc9\xc7\x0e\xbb\xe8\xdc\xac\x9a\x85\x48\x33\xd0\x4d\x66\xf4\x26\xb7\x21\x26\x59\xc2\x17\x69\xc3\x7d\x56\x4d\x21\xdc\x25\x52\xa7\x29\x83\x71\xaf\x57\x59\x85\xe9\x6d\x7c\x99\x2d\xe5\x23\xed\x01\x57\x6a\x03\x2e\xf9\x29\xe1\x13\x30\xa9\x5a\xf3\x83\xcb\xb1\x09\x52\x3d\xaa\xe7\x79\xd3\xcc\x9f\xea\x89\xa4\x32\x4b\xb4\x32\xd3\xdc\x83\xc9\x39\x79\xd9\x7d\x33\x18\x05\xeb\xad\x83\xed\xa3\xb5\x6b\x3f\x7f\x09\x04\xe3\x0b\x27\x09\x98\x77\x0d\xff\xaa\x58\xd9\x4c\xb2\xdf\xb1\x71\x52\x2b\x3e\x62\x0a\xcf\xdc\xe6\x5a\xe1\x92\x3f\x33\x22\xe4\x9c\x66\xa5\x9a\x8e\x3b\x87\x87\x5b\x8a\xb6\xff\x31\xc1\xd0\x1b\xf0\x4e\x9e\x1d\x19\x84\x12\x4d\x1f\x32\xc3\x51\x61\x15\x8d\x12\x2c\x25\x9d\x2e\x02\x60\x11\x1f\x69\x0b\xe9\x5b\x65\x33\x42\x50\x46\xad\x8e\xd1\x98\xf1\xed\x27\xb3\x7e\xf7\xac\xc2\x87\xf2\xf1\xa3\x71\x88\xe0\xa6\xef\x93\x65\x14\x19\x77\x53\x5b\x34\x99\x46\x24\x5a\x03\x21\xb0\x5d\x26\xfc\x4a\xf0\x9f\x66\x33\x42\x21\x4c\xda\x61\x5b\x45\xc6\x03\x7e\x84\x60\x38\xaa\x94\x4a\x09\x9b\xaf\x15\x27\x67\x17\xd6\xc4\xe9\xc1\x42\x00\x53\xa1\xf8\xb8\x87\xe4\x4e\x20\x5b\x6d\xe8\xe2\x9c\x24\x64\x2f\x11\xd7\x5b\x10\x49\x35\x9c\x21\x20\x8f\x95\xa4\x51\x94\x19\x58\x6f\x5c\xd8\x22\x10\xbc\x01\xaa\xa7\x7e\xe8\x3f\x99\x81\xda\x58\xf0\xba\x5d\x04\xc3\x20\xac\x72\x5b\xdd\xa5\x0e\xf3\xcf\xb4\x60\x49\xae\xe8\xa6\x44\x57\x45\xa7\x5e\x5e\x39\x44\x52\x7b\xe3\x90\xe9\xa5\x71\x7d\x22\x6d\xc2\x3b\xd6\x1e\x80\xad\x38\xd0\x32\x9f\x6e\x47\x17\xd6\x81\xaa\x38\x9a\x11\xc0\x64\xa1\x2c\xa6\x4f\x34\xce\x71\xf2\xae\x68\x62\x6f\x09\x1f\x7b\x5a\xfd\xfa\x43\xbe\xd9\xa9\xbd\x23\x4a\xba\x2b\x61\x09\x46\xd1\x6e\xce\x01\x6e\xc1\x61\x1c\x4b\x23\xb8\x7e\xf1\x72\xcb\xce\x20\x09\x76\x64\x16\x2a\xe0\x37\x24\x50\x99\x39\xc6\xf6\x0b\x0f\x0b\x50\x02\xc4\xc2\x25\x10\x41\xb3\x46\x6f\xcf\xf5\xaa\xa4\xfd\xa5\x8b\x5e\x9b\xd3\x78\x75\x54\x05\x75\x77\xf2\xe0\x66\xf2\xa0\x03\xd9\x3c\xc0\xcb\xbf\xe9\x18\x1c\xe6\xfd\x73\x00\xc2\xe1\xd2\x95\xb8\x3f\x11\xf1\x1d\x91\xc9\x41\x48\x8a\x4b\x5b\xf1\x5a\xf2\xe2\x91\x43\x39\x2a\x30\x83\x0e\x77\x8b\x0e\xe3\x24\xdf\x5a\x37\xd0\xcb\x5d\xb0\xeb\xe9\x65\x2f\xf4\x01\x80\x9f\x18\xf2\xa2\x73\x5b\x41\x04\x0e\x6f\x10\x4b\xb7\xe4\x7b\x58\x13\xa5\x68\x87\xd7\x2a\x3e\x71\x69\x39\x5f\x62\x7b\x6d\x12\x5c\xeb\xcd\x7d\x49\x52\xdb\x74\x2c\xfb\xd0\x51\x5e\xd8\x8b\x63\xa9\x31\xf8\xa0\x0b\x16\x6e\x77\x8b\xd6\x40\xeb\xb8\x2d\xdb\xe7\x21\xab\x2b\xfb\xb6\x7b\x1a\xbf\xcb\xf1\x1b\x67\x82\x4c\xe9\xe7\xad\x44\xf1\x1b\xf8\xd4\xaa\x97\x7a\x99\x2b\x85\xe4\xc0\x3d\x03\x85\xe7\x82\x80\x46\xbb\xd2\xb6\xd8\xd4\x88\x15\x99\x91\x36\x2d\xf2\x91\x2c\x10\x17\xa5\x9f\xb6\x05\x81\xdc\x7f\xd1\x3b\xb3\xaf\x73\xa5\x32\x79\x7a\x72\x32\xa3\x6a\x9e\x4f\x8e\x23\x9e\x9a\x38\x7c\x2e\x66\xe6\x8f\x13\x2a\x65\x4e\xe4\xc9\x1f\xff\xf0\x87\x62\x8b\x27\x38\x7a\x9c\x19\x58\x9d\x65\xbf\x53\x79\xcb\x09\x96\xbb\x45\xf6\xb8\x14\xb6\x17\x4e\x65\x0e\xba\x71\xc9\xa3\xfa\x1b\xa9\x70\x9a\x85\xa1\xa0\xa6\x6c\x9c\x54\xb8\x28\x56\x01\x79\x89\x7a\x9a\x68\x8e\xb3\x8c\xb0\x66\xb3\x83\x49\x34\xdd\x81\xf5\xb8\x54\x55\x3b\x42\xf2\x39\x4b\x30\x2b\xc3\x2f\x40\xe5\x25\x41\x22\xc2\x94\x85\x06\x28\xca\x5d\x03\x35\x1a\x08\x20\xc3\xff\x37\x4b\x45\x84\x39\x52\x59\x94\x54\x73\xc3\xb1\xe5\x4d\x5d\xd1\x4b\x1c\x2c\x5d\xb5\xa4\x6c\xb1\x76\xc4\xad\xda\xaa\x24\xc5\xbb\xe5\xf2\xe7\x9b\x97\xb4\x11\x9c\x8d\xc9\x67\xcd\xe4\xe4\xb6\x80\x5d\x0f\x92\x48\xd4\xff\xe9\x0e\xc9\x05\x53\xf8\xf3\x29\xba\xa4\x0c\x04\xd8\xef\x79\x2e\x24\x3a\xc7\x8b\x23\x3e\x3d\x4a\x39\x53\x73\x74\x09\xff\x6b\x7f\x7a\x26\xe4\x11\xfd\x4c\xb0\xb0\xfc\xc1\x96\xa4\xf3\x35\xd8\x35\x09\x89\x9c\x49\x44\x9e\xf4\x09\xfd\xc3\x7f\xa2\xd4\xb4\x7c\x8a\xbe\x3d\xf9\xc3\x7f\xa2\xdf\xc1\xff\xff\xff\xd1\xef\x1a\x34\xfd\xcd\x20\xbf\xa0\x72\xf1\x6d\xd9\x9d\xdb\xab\xac\xd4\x16\x15\xe7\xcf\x04\x2f\x76\xaa\xb6\xe5\x47\x1a\x3d\xf2\xe9\x74\xac\x09\xc3\x24\xf2\x8d\xb1\x58\x82\x8b\xde\x12\x3f\x95\xda\xda\xd3\xa6\x92\x5d\x51\x43\xc6\x76\x6a\x10\x1f\x1c\xbb\x96\x79\x51\x79\x17\x82\x88\x4a\xd5\x8c\xa9\x84\xaf\x48\xac\xb9\xea\x26\xa7\xc3\x59\xf7\x5c\xf2\xb7\xb3\xe0\x84\x08\x29\x61\x3d\x75\x1f\xf8\x17\x46\xb1\x9a\x40\x1f\xbb\x90\xb5\xc7\x61\x29\xbc\xf6\x8b\x89\x99\x84\xa9\xbd\x55\xbc\xa4\x5c\xea\x7c\x7d\xa8\xe4\x1d\x17\x3b\xe9\x5b\x8f\xa4\x31\x95\x61\x4d\xbd\x24\x57\xc3\x37\xac\xec\x0f\x19\xe2\x5c\x78\x1c\x63\x63\x17\xb1\x55\x15\xd7\x5b\x31\xa9\x30\xc1\x65\xed\x0e\xbd\x9e\xfa\xb9\xff\x64\xdd\x30\x21\xd2\xcc\xbd\x5d\xd4\x8b\x83\xd1\x6a\x11\x49\xb3\xc4\x9a\x11\xd7\x80\x1d\xae\xdb\xd0\x3b\x8f\x6f\x01\x8d\x43\xd8\x23\xe4\x6f\x30\x27\xd9\x5a\x00\x81\xfa\xfd\xcc\x45\x44\xce\xf8\x6e\x61\xaf\x09\x65\x4b\xf1\xf2\xed\x4b\x11\xf9\xd5\xbb\xb0\x45\xa7\x1c\x1e\x30\x8f\x0b\x65\xc1\xb8\x05\x6c\x15\x8a\x00\x88\xb4\x3c\x1b\x00\xb4\xdb\x07\xd6\xe5\x52\x6d\x84\x1d\xb8\xb6\x31\x1c\x17\x0c\xcf\x95\xd6\xa8\x54\xd4\x10\x58\xf3\xc2\x15\xb1\x6b\x10\x54\xb4\xf3\x38\x82\x2a\x31\x45\xa4\x52\xa5\x1a\x3b\x36\xa5\x52\xc4\x96\x58\xa5\xa6\x60\x53\x0f\x09\x0c\x41\x99\x6a\xae\xdb\x93\x44\x1c\x4d\x71\x44\xd9\xac\x17\xc0\x54\x02\x64\x44\x78\x1d\xd4\x11\xe9\x3d\x96\x8f\xfb\x0d\x34\xdc\xb9\x80\x25\x8d\x8b\x22\x6a\x16\x58\xc6\x38\x36\xe8\x12\x46\x9f\xc2\xf2\xb1\x09\x59\x69\x09\xd6\x6d\xc5\xe8\xfc\x52\x38\x30\xb8\x55\xe3\x73\x29\xe8\x24\xd4\xa7\xa0\x66\x83\x2b\xa9\x6c\x41\x1e\x5d\xc6\x1f\xf6\x28\x2c\x55\x74\xd3\x15\xe3\x97\x73\x2e\xd4\x78\x4b\x5c\xd8\x6a\x1a\x3d\x23\x47\x09\x00\xba\xf0\x27\x22\x9e\x28\x79\x2e\xc3\xab\x6e\x42\x8b\xc6\x68\x16\x44\xd5\x01\xfe\x66\x9a\x71\x48\xa1\x99\xa2\x14\xb3\x85\x61\x94\x9a\xb9\x60\xf9\x28\x7d\x21\x57\x24\x53\x9c\x24\x3d\x24\x48\x2e\x4d\x81\x63\x49\x92\xe9\x91\x2b\x85\x11\xa3\x84\xcf\x68\x84\x13\x34\x49\x78\xf4\x28\x4d\x86\x1b\x9b\x19\x26\x95\x09\x1e\x11\x29\x03\xc9\xaa\xc8\x66\xb7\x39\x86\x50\xc5\x55\x11\x91\x52\x46\xa5\xa2\x91\x13\x99\x0a\x50\x0a\x53\x4b\x3c\xc2\x60\x12\x86\x8c\x4d\x18\xae\x96\xf4\x88\x01\xe7\xcc\x99\x2d\x9a\x04\xd7\xb5\xc5\xdc\x73\x41\xe2\x4d\x07\x68\x0f\x10\x82\x8e\x42\xc6\xaa\x7c\x20\xd7\x1c\xa9\x33\xfb\x19\x1c\xe3\x55\x24\x70\x5b\x3e\x51\x9e\x20\xfd\x49\x2b\xc1\x1a\x41\x4c\xb9\x0f\x81\x2f\x49\x2e\x3e\x32\xfc\xc0\x10\xcd\x60\xc8\x0d\x38\x66\xeb\x68\x5a\xaf\x22\x88\x3c\x50\xa7\xab\xea\x35\xa7\x2c\x4a\xf2\xd8\x57\x6a\xd4\x22\xc0\x93\x26\x12\xb7\x3c\x7a\xed\xb5\xa0\xd0\x43\x58\xa2\x67\x92\x24\xfa\xbf\x26\x02\xfe\xc8\x17\x4e\xd0\x2c\xd9\x14\xb7\x80\x4e\x1c\x97\x6e\xa2\xa8\x83\x43\xa7\xbc\xc1\x6a\x6e\x72\xfe\x53\xae\x4c\x91\x4c\x83\x4e\xe9\xec\x5b\x06\xce\x70\x92\xf0\x09\x9c\x74\x00\xae\x74\x79\xae\x41\x5a\x5d\x1e\x45\x84\xc4\x24\x46\x5f\x07\x07\xd7\xe3\x51\x7c\x53\x0f\xa3\x58\x5a\x91\x03\x00\xad\xac\x1a\xd6\x1a\xa1\x2b\xcb\x75\xde\x8e\xd1\x4d\x05\x98\x25\xac\xdf\x8e\xab\x30\x5d\xbd\xa5\x2d\x7c\x1b\xa0\xcb\xca\x24\x5e\x6e\x87\x36\x04\xba\x2c\xf5\xb9\x07\xa0\xcb\xca\x3c\x1b\x62\xf7\xf9\xec\x45\x73\x8e\xf5\xa4\x2e\x78\xfb\x44\x30\x03\x10\x66\xee\xce\x12\x09\xba\x03\xb9\xa8\x23\xc4\xc3\x02\xf1\xac\x54\x43\x7c\x5b\x10\xcf\xca\x60\x0e\x19\xc4\xb3\x32\xd4\xc3\x05\xf1\xac\x19\x68\x0b\x10\x4f\xe3\xdc\x1f\x6b\xa2\x6e\xc7\x14\x20\xb1\x65\x92\x4f\xef\x20\xd5\x7b\xe5\x18\xcf\x4c\xe0\x80\xb9\xc6\xdc\x1d\x6d\x31\xad\x61\xb4\x36\x07\xb2\x29\x1c\xaa\xe2\x84\xd8\x94\xf6\xbc\xf7\xcd\x80\x3f\x6c\x6a\x76\xef\x85\xd6\x6e\xb0\x43\x46\x38\xb3\x39\xe5\x4d\xa5\x66\x0e\x27\x7b\x76\x3b\x7c\x54\xc0\x20\x2c\xb1\xfc\x56\x08\x62\x97\x95\xaa\x0d\x73\xfe\x6c\x2b\x27\x01\x19\x1a\xa2\x6c\x24\x41\xe8\x74\x6c\x95\xb6\xa6\x95\xa3\x4c\x91\x59\x55\xa7\x2d\x0e\x0d\x65\xea\x4f\x7f\x5c\xcb\x89\x0c\xc4\xa2\x53\x0f\x83\xda\x09\xde\xd9\x61\x9f\x91\x18\x45\x73\xad\x15\x49\xad\xbe\xe8\xe9\x98\x9b\x55\xa2\x14\x53\xa7\x48\xe5\xd2\xb8\x96\xa8\x1c\xb1\x12\x26\xe9\x31\xfa\x08\x05\x61\x71\x9a\x69\xfd\xcb\xcf\x8f\x6a\x4a\x1a\xe5\xdf\x7e\xfb\x27\x82\xbe\x45\x29\xc1\xac\xa4\xc3\x82\xda\xa4\xaf\x3e\xc0\xf0\x53\x73\x32\x62\xb5\x5b\x81\x06\x9f\x4d\x8d\x29\x17\xef\x37\x64\x53\xee\x74\x62\x28\x74\x88\xa3\x39\x92\xf9\xc4\x54\xea\x0d\x6c\x18\x4e\x90\xbe\xe0\x33\x70\x54\xc3\x8d\xec\x06\xbd\xea\x14\xbe\x6c\x0c\x80\x75\x37\xb6\xbd\x8d\xfb\x70\x8f\x1c\x49\x52\xc2\x76\xaa\x71\x9a\x19\xce\x17\x1e\x7c\x69\x70\x5f\x7a\xc6\x87\xa0\xf5\x33\x6c\x2d\xfb\x5a\x96\x86\x70\x5e\xf0\x92\xe5\x09\x16\xf6\xe8\x8f\x98\x56\x34\x04\x79\xa2\x3c\x97\xc9\x02\xc5\x9c\x91\x1e\x50\x42\x1e\xcd\x8d\x63\x55\xeb\x2c\xd8\x16\xac\x78\xa2\x32\xd7\x0a\x2d\xb4\xe5\xea\x63\x48\x85\x0d\x26\xd5\x9c\x42\x3f\x5a\xfd\x26\xf0\x55\x98\x25\x87\xda\x69\x51\x21\x6c\x6c\x85\xe7\xb7\x84\x8d\x2d\x51\x55\x07\x1b\xeb\x61\x63\x97\xd7\xe5\x10\x61\x63\x2b\x7b\xde\x0e\x36\xb6\x6e\xcb\xb7\x80\x8d\x2d\x35\xf3\xc5\xc0\xc6\x56\x56\xf4\x8b\x81\x8d\xad\xcc\xab\x83\x8d\xfd\xf2\x60\x63\x77\x04\x46\xad\xe7\xc5\x06\x5f\x49\x51\xb6\xd8\x98\xc8\xbe\x92\x68\x78\xad\x09\x2c\x7a\x2c\x07\xb5\xf9\xeb\x6a\x77\x30\xd6\x7a\x26\xb4\x19\x18\x6b\xad\xaa\xde\xcc\xea\x76\x05\x78\x02\xc5\xe0\x95\xc1\x58\x4b\x13\xe8\xe2\x2b\x37\x8f\xaf\xac\x25\x3e\xdb\xb7\x1e\x9e\x0b\xba\xac\x5e\xc8\x2d\xe1\x58\x4b\xfb\xd3\x2a\x12\x13\x44\xf7\x3d\x50\xe2\xcb\x4a\xf3\xf7\xa5\x43\xbe\x56\x96\x0f\x57\x51\x5a\x60\x68\x2d\xe1\x39\xb4\x38\xa3\x84\x87\xfe\xff\x8e\x72\xb7\x88\x0c\xae\x2c\xaf\xf7\xab\x18\x5a\x6c\x41\xaa\xad\x29\xd4\x69\xa5\xfb\x49\x94\x75\xc9\x93\x1b\xba\x98\xdd\x20\xee\x32\x12\x35\xd8\x98\x69\x4a\xf7\xd5\xec\xba\x8b\xcc\x63\x61\x81\x42\xbe\x94\x17\xaa\xaf\x27\x33\x1c\x23\xe3\x57\xd2\x61\x01\xa8\xc3\x7c\x39\xa3\x52\x89\xc6\xd8\xa6\xa5\x11\xee\xe2\x2a\xcd\xf2\xd6\x01\x31\xc1\xaa\xce\xb6\xfb\x2c\x25\x29\x17\xeb\x02\xab\x6a\xbf\xb4\xa5\x6e\xb6\xf9\x94\x64\x73\x92\x6a\x49\x66\xbc\x69\x23\x6d\xf7\xdb\x27\x0d\xdb\xdc\x35\x13\xe8\x58\x22\x82\xc0\x11\xaa\xdf\x8d\x0d\x22\x65\xeb\xed\xde\x75\x9b\x2d\x66\xe6\x86\x0e\x21\x07\xa6\xbc\xda\xe0\x66\x5f\x2a\xb9\xbb\x81\xbe\x6b\x63\x3a\x7c\x48\xcd\xfa\xa8\x8d\x15\xf1\x1a\xab\x70\xa7\x8a\xaf\x6c\x21\xe8\x0d\x5c\xf9\x65\xef\xbc\xe6\x84\x61\x15\xe0\xcd\x03\x3c\x1a\x50\x53\x97\x97\x07\x22\x73\x24\x11\x47\xa1\x66\x50\x1a\xcc\xf2\x7a\x95\xa8\xc4\x69\x94\x3b\x10\x49\x2e\x1a\xa3\x4c\xdb\x18\xb4\x23\x95\xe3\x04\x34\x89\xb0\x7a\x65\x75\x53\x27\x8b\x9a\xb4\xc7\x76\x1e\x13\xca\xd4\x9f\xff\x63\xa3\xdd\xd4\xaa\x95\x5d\x37\xa8\xb8\x85\xa3\x88\x48\x63\x63\xb7\x51\xc8\x78\xc2\x9f\xa0\xd8\xd6\x2e\xbb\xaa\x8f\xb2\x9e\xb7\x66\xf0\x1e\x8a\x38\x2e\x48\xdd\x88\x0b\x73\xc1\xf3\xd9\xdc\xd9\x90\xf4\x99\xd1\x53\xab\xdb\xcb\x1f\x97\x6c\xe4\x1b\xef\xe5\x77\x39\x4d\xb6\xb3\xd0\xdd\x95\xca\x90\x7d\x1a\xde\x23\x39\xf7\xa7\x75\x02\xcd\xd6\x6e\xec\xf2\xa0\xdb\xf7\x69\xbf\xf5\xfe\x1a\xe8\xa6\xe7\xe0\x37\xa7\x3c\x49\xc0\xd3\x20\x49\xfa\x44\x44\x7d\xf7\x30\xe1\x7b\xba\x19\x72\x9e\x1f\x00\x7c\x5d\x24\x46\xb4\x92\xbf\x6e\x8c\x68\x28\x91\x1b\x7d\x35\x68\xc1\x84\xaa\x71\x46\x58\x9d\x8d\xed\xa7\xe5\x0a\x30\xef\x2c\x60\xd0\x45\x8f\xed\x2d\x68\xd0\x2d\xc9\x2b\x07\x0e\xae\x99\xc7\xa1\x06\x0f\x56\x98\x9d\x8f\xe5\x2b\xae\x19\x17\x38\x64\x14\x9f\xbe\x5e\xe2\x11\xeb\x97\xf2\x29\x5c\xa5\xec\xc9\xa2\x08\xc8\x36\x3a\x44\xc8\xcc\xa0\xce\x86\x35\xac\x80\x1b\x4d\xff\x05\x9a\x8e\x01\xaf\x35\x21\x85\x2e\x6c\x10\xa2\xc9\x49\x7c\x84\xa3\x45\x94\xd0\x28\xd0\x99\x67\x02\x67\xf3\x3a\x8e\xe7\x76\xbe\x43\xdd\x79\x2b\xd4\x9d\xa6\x82\x54\x9b\xc4\x6d\x3b\xba\x62\x38\x25\x1d\x1a\x50\x1d\x1a\x50\xcf\xe3\x5d\xb0\xa2\xb4\xd6\x1b\xc2\x28\x2c\x9f\xbb\x0e\x12\xe8\x0d\x20\x81\xb6\x39\x7c\x05\xde\x4f\xe9\xd8\x75\x30\x45\x1f\x5a\xc1\x14\xf9\x4b\xf0\xa0\x90\x67\x9a\xcf\xe3\x1b\x23\x9a\x2c\x0f\xec\x2d\x61\x89\x6a\xc4\x85\x4d\xe4\xa6\x55\xb8\x44\xab\xe8\xa2\xd5\xba\xbc\x2d\x4a\xd0\x66\x2b\xb3\x11\x00\x50\xed\xdd\x75\x20\x70\x40\xcd\xdb\x70\x20\xe7\x66\x9f\x59\x2d\x9b\xd5\x0e\x0d\x33\x5b\x36\x51\xb0\x36\x4b\x72\xf1\xf4\xf0\xbe\x12\x5d\x8a\x22\x6b\xdb\x25\xbb\xf4\x9d\x0f\x9a\x08\x34\xe7\x49\xec\x40\x28\xfc\x6a\xf9\x0e\x7c\x26\x80\x5f\x20\xb7\x19\x50\xec\x1c\xb4\xad\xa2\x20\xd8\xaa\x94\x16\xbf\x89\x30\xdc\x3d\x30\x9a\x7d\x58\x11\x3c\x27\xd9\xc6\x7e\xb0\x56\x16\x91\x65\xf3\xf7\x8a\x31\x96\x56\x08\xac\xe6\xf5\xc3\x5c\x6b\xf7\x5d\x33\xb8\x55\xa2\x47\x60\x1c\x14\x75\xa5\x3e\x0d\x9d\xc1\xd3\x27\xea\x0c\x11\x38\xec\x71\xa5\x97\xce\xcd\xae\x95\xa7\xae\x4a\x2c\x5b\x04\x83\x2d\x55\x6e\xdb\x1d\x1c\x28\xc5\x9f\xc7\x19\x16\x38\x49\x48\x42\x65\xfa\x62\xc1\xc0\x67\x65\x77\xad\x3e\xab\x82\x1b\x13\x11\xcb\xd3\x89\x21\x45\x37\x10\x5b\xec\x4f\x71\x24\x72\x16\x42\x9b\xf9\x8d\xf1\xc5\x04\x73\xb8\x17\xc0\xaa\x14\xcd\xa1\x6a\xeb\x14\x53\xc1\x88\x6c\xac\x91\x49\xa2\x5c\x50\xb5\x18\xdb\x92\xa3\xed\x0f\xdc\x9d\xfd\xf2\xcc\x7e\xb8\xda\xc3\xed\xb2\xfa\x5d\x7f\xbe\xc4\x69\x46\x04\x94\x09\x72\x05\x6f\x82\xb2\xaa\x16\xb5\x81\xf8\x5a\x43\x10\xfe\xbc\x74\x6d\x37\x05\x0e\xe3\xe7\x71\x90\x51\x35\x8e\xaa\xc4\xb1\xee\xb0\xd6\xe1\x4e\xad\x9a\xe4\x0b\x23\x2f\x35\x78\x91\x5f\xa0\xca\x88\x4d\x9b\x30\x4d\xeb\x01\x07\xae\x60\xb0\x57\x16\x1b\x13\xa4\xbc\x5b\xa5\xaa\x61\x9c\x16\xeb\xa7\x2e\xf8\x68\xc5\x60\xfb\xc1\x57\x2d\x46\x1c\x74\xb2\xa7\x61\xeb\x83\x2e\x44\x9e\x29\x3a\x59\x86\xb6\x51\xfb\x2b\x21\xda\x4f\x20\xcd\xda\xb9\x19\x4a\xdd\x9a\xba\xa2\x25\x4e\x6c\x67\xa7\xe5\x7f\x8b\x23\xe6\x10\x82\x0c\xc2\x52\x98\xc7\x77\x9d\x52\xa5\x5c\xa2\x80\x31\x40\x6b\xea\x2c\xdb\x66\xbf\x72\xe1\x1e\x18\x2a\xbd\x1a\x13\xd1\xf1\x88\xf5\x25\x7a\x26\x88\x11\x0b\x21\x51\x53\xc3\xd5\x5b\xb5\xa1\xf6\xd3\x84\xe8\x9e\x7c\x6c\x8a\x16\x1e\xa8\x92\xbe\xfc\x98\xe9\x63\x8a\x13\x49\x7a\xba\x61\xa8\x5a\xaa\x38\x04\x7f\x62\xf4\x2c\x70\x96\x11\x31\x62\x36\x8b\x03\x1c\x2e\x9c\x27\xa6\xfd\xa6\x10\x57\xbb\x06\x64\x1c\xe1\x68\xfe\x4a\x7b\x84\x21\x19\x27\x9a\x93\xd8\xe5\x0b\x97\xb7\xc7\xcd\xdb\x18\xac\x37\xd8\xac\xe1\xd4\x95\xcf\xea\xd9\x4e\x92\x48\x73\x14\x5f\x66\x3a\x23\x42\x8f\x5a\xd3\xf0\x13\x61\x88\x4e\xdd\x38\x6c\xec\x0e\x7a\x06\xcf\x94\x26\xfd\x27\x4c\x13\x93\x80\xef\xba\x76\x42\xa0\x31\xbf\x8f\x98\x71\x77\xb3\xa8\x94\xa1\x4a\x19\x95\x73\xcd\xa9\x73\xf0\x49\x82\x9a\xd1\x94\x38\xc3\x9e\x36\x39\xcd\x03\xfd\xfa\x6a\x0e\xfa\x44\x05\x67\x29\x24\xc9\x58\x5c\x26\xb7\x7c\x92\x28\x7f\x3c\x6a\x53\x1c\xd7\x4a\xc4\x71\x2c\xcb\xc6\x4f\xa3\x56\xd2\x5f\x4b\x66\x97\xa3\x52\x56\x60\x14\xc0\x0a\x41\x10\xa7\xab\x2c\xb6\x4a\xfe\xed\x52\x1b\x96\x53\x1b\xea\xd7\xe6\x10\xd3\x1b\xfc\x21\xde\x34\xc5\xa1\x69\xfb\xf7\x21\xd9\xee\x31\xd5\xe1\x8d\x73\x02\x5e\x26\x1d\xe0\x6d\xf3\x37\x5e\x22\x75\xa3\x4b\x70\x78\xc3\x04\x87\xd6\x96\xda\x72\x6c\x76\xf3\xb1\xdd\x28\x39\x60\x0d\x98\x53\x5d\x2f\x97\x44\x09\x1a\xc9\x7d\xf0\x07\x99\xe1\x96\x51\x6d\xa0\x05\x66\x6b\xa4\x26\xfd\x82\x77\x42\x42\x9c\x98\xaf\xf3\x37\x11\x04\x3f\xc6\xfc\x79\xc9\x56\x27\x43\x34\x8d\x4b\xae\xc5\x1e\x41\x22\x2a\x49\x29\x92\x85\x4a\xc4\x88\xb4\xc6\x4e\x3c\x62\x73\x4a\x04\x16\xd1\x1c\xb2\x1b\x8b\x8d\x31\x59\xb2\x06\xd0\xc8\xc4\x32\x84\xde\xa6\x0d\x36\xbd\xc5\xba\x57\x2d\x4c\x1e\x9f\xce\xee\xb9\x1e\x49\x6a\x3e\xf1\xc2\x8c\x95\x32\x42\x93\x5c\xab\xed\xdf\x35\x10\xdf\x2f\xf6\x8b\x06\xe3\xfb\x60\xa2\xe0\x8b\x96\x01\xf9\x05\x35\x74\x41\xf9\x2f\x14\x94\x5f\xb3\xc4\x9b\x05\xe6\x6f\x65\xf2\x7b\xfd\x98\x61\xd7\xf3\x6b\xc4\x0d\xaf\x0b\xda\xca\x27\xe3\x17\x3f\x7a\xb5\x73\x6e\x7b\x02\x7f\xf2\x44\x61\x24\x62\xa1\xe9\x6c\x42\xe2\x18\x38\xad\xe2\xb6\x52\x74\x41\x3b\xce\x3c\xa0\xef\x5e\x2c\x35\xb1\xe3\x84\xb3\x99\xa4\xb1\x01\x5b\xc9\x30\x54\x6c\x0d\x8d\x17\x00\x2e\x00\xfb\x9b\x24\x44\x38\xaf\x84\x40\x5f\x4b\xca\x2c\x9a\xa2\xff\x2d\xe6\x44\xb2\xaf\x94\x31\x16\x60\xb6\x40\x8f\x8c\x3f\x27\x24\x9e\xc1\x0e\x55\x07\x73\x84\x28\xe9\x21\xaa\xfc\x67\x02\xd0\x08\x78\xae\x46\x7a\xec\x10\x6b\x66\x34\x00\x62\xbf\x0d\x6a\xa2\xfb\x66\xbe\x39\x46\x68\xc8\xd0\x14\x47\xaa\x87\x64\x3e\x29\xda\x8f\xb9\x29\x72\xad\xb5\xef\x60\xe2\x45\x23\x5d\xcc\x78\x4d\xe7\xf5\x67\xc3\x71\x07\x4d\xae\xfd\x84\xe2\x9d\x62\xeb\x9e\xf0\x2e\x10\xa3\x97\xb9\xb4\x41\x18\x88\x33\x7f\xf4\x2d\xbc\x92\xc7\x88\x06\xbc\x4f\x83\xb7\xcc\x78\xdc\x68\xeb\xac\x4c\x65\xd3\xb1\x14\x81\x90\x56\x50\xb2\x8e\x2a\x68\xd7\x2c\xb7\x96\x9a\xa4\x12\x04\xa7\xd6\x39\xa0\xaf\x1a\x10\x6b\x4c\x18\xa4\x1e\x3d\x15\x46\xc2\xdc\x64\x8b\x2f\x28\x7b\xd4\xbb\x5b\xa0\x62\x43\x7d\x79\xe8\xb9\x6e\xd3\x32\x7d\xe3\x91\x33\xce\x8c\x83\x70\x27\xb9\x93\xce\x18\x4e\x36\xb4\x71\x2c\xad\xdc\xb2\x4f\xcf\xc9\x59\x56\x5c\xd0\x52\x84\x31\xf6\x21\xd3\xe3\x46\x36\xa4\xca\x7c\x43\x79\x0f\xa3\x98\x64\x84\xc5\x84\x45\x0b\x20\x11\x06\xc8\x39\x82\xe1\x04\x61\xf8\x0e\x27\xc7\xe8\xdc\xe4\xd7\x78\x09\xcf\x5e\xeb\x70\xa1\xa7\x98\xd1\xa9\xd6\x13\xc0\x08\x6b\x47\x39\x62\x66\x98\xce\x07\x12\x14\xed\xf7\x2b\x56\xb7\x33\xfa\x06\xb9\xda\x11\x95\x98\x95\xbf\x47\xab\x2f\x1c\xe8\x6d\xd5\xee\xe8\xe6\x5c\x0d\x02\x99\x4f\x8e\xe0\xdf\xa5\x84\x33\x07\xd4\x53\xa0\xc8\x90\x84\x80\x39\xd0\x7a\xbc\xe0\x62\x6c\x02\x96\xdb\x87\xdf\x6e\x4d\x1e\x47\xd0\x47\x49\xa9\x49\x29\xa3\x69\x9e\x06\xce\x3b\x53\xb1\x20\xb2\xf6\x4b\x93\x89\x91\x69\x3d\x20\x72\xe0\xe5\x48\x5f\xae\x6c\x81\x66\xf4\x89\xb0\x11\xcb\x38\x65\xea\x18\x5d\x71\x45\x82\x12\x11\x06\x3a\x8a\x67\x8a\xa6\x06\xed\x54\x10\x7d\x0e\x0c\x28\x36\x00\x4d\xce\xb1\xea\xa1\x38\x87\xa3\xca\x88\xd2\xac\x43\xdf\xb8\x0a\x76\x06\xe2\xa3\xc5\x88\x99\x9b\x6e\x8a\x69\x92\x0b\x62\x65\x56\x6c\xf2\x62\x8a\x21\x17\x23\xb3\x48\x68\xc1\x24\x52\x3a\x9b\x2b\xbd\x45\x5a\xc6\xb3\xfe\xc6\xb9\xe6\x46\x7c\xc4\x26\x04\x61\x94\x71\x49\x15\x7d\xf2\xfe\x4b\x3a\x45\x58\x4a\xb0\xa0\x1c\xa3\xf3\x92\xfd\x9f\x4a\x50\xbd\x9b\xe2\x6a\x29\x1b\x5b\xdb\x73\x73\x3e\xce\xce\x1b\x59\xea\xc5\xae\x32\x9e\x48\x9e\xe4\x2a\x74\xc1\xd6\xef\x6d\x61\x1a\x77\xc0\xfd\x60\x20\xe6\xd3\x11\x73\x74\x2d\x8f\x51\x5f\x22\xc9\xf5\x2e\x49\xb3\x95\x91\xa0\x8a\x08\x6a\x50\x9c\x88\x32\x9b\xe0\xcf\xa9\x3f\x03\x29\x16\x8f\x5a\x84\x0a\x2d\xf0\x06\x53\xb4\x64\xed\x98\x18\x09\x09\x60\xad\xc2\xed\x00\xd3\x3f\x62\x9c\x1d\x31\x32\xc3\xeb\x76\x64\xc4\x4a\x5b\x82\xbe\xa6\xd3\x42\x21\x6d\xf2\x39\x06\x6b\x37\x86\xc8\xa7\xa6\x5d\x32\x1d\x37\x6d\xd2\x34\xe1\x78\x8d\xdb\x78\x5a\x1c\x7a\xf4\x77\x3e\x31\x63\xd4\x7a\x3f\x57\x20\x05\x6a\xf5\x6a\xca\x05\x99\x63\x16\xf7\xdc\x66\x95\xc7\x06\x37\xa3\x35\xb5\x39\x65\x0c\x24\x41\x07\x22\x4c\x0c\x16\x13\x66\xc1\x5e\x58\xc5\xcd\x6e\x45\xb1\x0f\x1b\xdd\x15\xbe\x35\xa8\x7d\x62\x0c\x10\x86\xe5\x2d\x32\x7b\xc4\x25\x4d\xb3\xa4\xc8\x69\x0a\x6c\xa3\x53\x2d\x62\x39\x1e\xc9\x9f\xc0\x74\xe5\xb4\x36\xb8\xd5\xed\xce\x69\x3a\xab\x19\xb9\x67\xa4\x70\x6b\x38\x9b\x97\x29\x83\x19\xb0\xb0\xaf\x25\xd1\xff\x54\xa4\x50\xfb\x8c\xb0\x3e\x62\x4e\x04\xf9\x06\xb8\x8c\x6d\x36\x30\x9e\x69\x11\xda\xc0\xbc\xda\xf5\x43\x91\x71\x72\x97\xce\x89\x3d\x0c\xee\xd5\xda\x8b\x4a\x51\x2d\x66\x7f\x47\x01\xa1\xea\x7c\x47\xd8\x79\xca\x62\xd2\x58\xcc\xa9\x15\xd7\x68\xba\x5b\x0c\x43\x1d\x6f\x5b\x7f\xe1\x7e\x4e\x24\x41\xea\xd9\x03\xa5\x69\xbd\x0a\x4c\x96\x82\x24\xe4\x09\x17\x77\x9c\xef\xcb\xb2\xcb\x08\xcb\x86\xf2\x28\x80\x36\xa6\xc7\xbf\x7d\xe2\xb0\x1f\xdf\xb5\x1e\xca\x13\x4e\x6c\xe2\x86\xf5\x95\xcb\xe6\x0d\x1b\x9e\xef\x14\x43\x6a\x5b\xa9\x5b\xcf\x66\x11\xc3\xf5\xfd\x03\x59\xd4\xaf\xc8\x1a\x10\xbf\x55\xd9\xd8\x7e\xd9\x37\xb0\x55\xdf\x14\xdf\x2c\xaf\x71\xe3\xca\xfd\x50\x9a\xf2\x1b\x24\x11\xdd\x2c\x55\x80\x86\x3f\x65\x3e\x9d\xd2\xcf\xa0\xd5\xba\x9b\xc4\x69\x1e\x91\xe0\x52\x73\x31\x90\x55\x90\xdb\x3c\xe3\x48\xde\x25\xa1\xa8\xf6\x4b\xad\x65\x6d\x4c\xd1\x8d\xab\xfd\xd7\x9c\x88\x9d\xd6\xdb\x93\xea\x26\xe1\x88\xc1\x29\xa9\xd7\x11\x5d\xa3\x0a\xb7\x8c\x49\x0a\x5b\xbd\xc7\x0d\x4b\xb7\x1e\xfe\xbb\xf6\xb3\x89\x61\xbe\x9b\x0f\x24\xe4\xda\x2b\x6d\x6a\x45\x7c\x9a\x8f\x4d\x76\x45\x79\x34\x7f\xeb\x59\x80\x71\x6c\x03\xa7\x7c\xaa\x2f\x76\x31\x23\xc6\x31\x62\x6a\x36\x29\x5b\x69\x20\xd0\xd4\x6d\x63\x94\xcd\x46\xcc\xad\xad\xec\x21\x13\x26\x5e\x61\xa8\x25\x6c\x77\x1c\x7c\xea\x09\xbb\x9d\x49\xd5\xf8\xd5\x19\x91\x52\x5f\x8c\x52\x09\x4c\x99\xf5\xe1\xb8\xf5\x91\x23\x86\x8e\xaa\x71\xea\x3d\xb0\x23\xf4\x5c\xb6\x67\xaf\x18\xa0\x1c\xb1\x6b\x63\x9d\xf9\x23\xfa\x5a\xe1\x99\xb9\x25\x00\xbd\x11\x27\x80\xfb\x08\x5a\x82\xd5\xca\x83\xe4\x00\x7f\x22\x69\xfc\xcd\xe9\xaa\x3e\x8d\x0d\xe1\x6b\x68\x06\x0e\xb9\x5e\xc3\x62\x81\xe8\xb4\xf8\x07\x89\xbf\x59\xd5\x52\xf1\xd1\x23\x59\xf4\xaa\x8b\xdc\x7c\x6f\xdc\xe3\x9d\x22\x34\x5f\xea\xe2\x80\x41\xb7\x77\x52\xe2\x09\x49\x7e\x2c\x26\x8a\x56\xb2\xa2\xef\x28\xc3\xbb\xf1\xa0\xda\xe1\xb5\x8b\x40\x9f\x2c\x9a\xea\xb6\xd5\xb0\x9e\xad\x11\x47\xfa\x46\x96\x25\x48\x77\x67\x25\x76\x57\xd5\x0f\x43\xd4\xe3\x9c\x24\x19\x8a\xe9\x14\x5c\x6f\x0a\xe8\xc5\x83\xa7\x9a\x7a\x37\x5a\xa1\x49\x73\x66\x80\x70\x4d\xd4\xc7\xb3\x3d\xe9\x96\x65\x14\x8d\x1f\x8f\xd8\x50\x7d\x25\x91\x54\x82\xb3\x99\x56\xa6\xe3\x27\x2a\x8b\x42\x6e\xfa\x40\xe6\x29\x11\xb6\x0b\x2a\x8d\xd4\x6d\x8b\x20\x61\x77\xb1\xe9\xb1\xe9\xab\x0f\x04\x1f\x57\x6c\x50\xff\x68\xf4\x0a\x3d\x4a\xe9\xa2\xa6\x6a\xc2\xde\xed\xe6\x56\x78\xe7\x2b\x9b\x2e\x7f\x0c\xad\x93\x28\x2d\x0c\x99\x8e\x5f\x9e\x54\xcd\x98\x76\xd5\x57\x98\x30\x37\xbe\x10\xda\x5e\x04\xae\x6a\x40\x6e\xd2\x9c\x74\x3f\xce\xb1\x65\x06\xb7\x91\x8a\x55\x99\xa0\x1d\xb5\xd1\x9e\x42\x13\x26\xa1\x60\xff\x90\x0a\x2b\x1a\xd9\x5b\x80\x0b\x6b\xc5\xb5\x7a\x75\xf3\xd6\xee\xaa\x93\xc8\x08\x27\xcb\x3b\xbc\xc2\xa7\x6e\xde\x5f\x6d\xe8\xb4\xc7\xcd\xb4\xbd\x12\xd8\x24\xe2\x49\xb2\x49\x99\xb6\xca\xcc\xcf\x8a\xcf\x57\x8f\xa8\xe8\x47\x6f\x80\xdb\x0b\x38\x35\xc6\x40\x81\x13\xeb\x2e\x92\xca\xee\x52\xf8\x92\xb9\xd4\x16\x56\x7d\x1c\x31\x3e\x85\x42\x7e\x49\x53\xe4\x7a\x26\x78\x4a\x37\xa9\x24\x61\x82\xb9\x6f\x9d\xef\x7f\x8d\x27\xc5\x45\x08\x80\xf9\xcd\x90\x97\xed\x11\x30\x09\xb0\x35\xa9\xad\x38\x43\x29\xce\xb6\x5a\xf0\x75\x91\x2f\x7d\x94\x9a\xb0\x23\xbb\x7a\x80\x29\x4d\xa0\x26\x1e\x2c\xf2\x33\x5e\x14\xf0\x2f\x4d\x35\x02\xd8\x46\xe4\xf0\xa0\x5f\x1f\xb2\x29\xdf\xe0\x70\x16\x70\x2d\xf6\xf4\x61\x47\xb3\xc1\xf9\xf3\x91\x18\x66\xf7\xcd\x9a\xb6\x39\x8f\x67\x75\x44\xbd\xf1\xc9\x74\x2b\xf8\x92\x7e\xd8\x90\x89\x04\xdf\xfc\x6b\x93\xbb\xb5\x7c\xb4\x82\x16\x11\x0c\x67\xf5\x52\x5d\x96\xe8\x70\xef\x6b\x54\x69\x07\x9e\x15\x09\x63\x37\xf5\xad\xbe\xc2\x9a\xd9\x43\xd2\x6a\xb1\x76\xc4\xa7\xda\xac\xd6\x81\xeb\xd1\x57\x36\xd8\x59\x93\x5b\xb7\x18\xc0\xcd\xa4\xd5\x1a\x8a\xec\x13\x9b\x86\x3f\xa5\x09\x91\xc7\x68\x58\xe3\xc4\x75\x49\xf0\x3e\x68\xdc\xa4\x03\x3a\xe9\x29\x17\x34\x28\x7e\xee\x64\x24\x44\xa1\x08\x5b\x18\xc8\x12\x38\x2d\xc0\x7d\x3a\xe7\xcf\x26\x03\x4f\x50\xcd\xb3\x8c\xb0\xaa\xc0\xa5\xa5\x79\x01\xb5\x1e\x21\xe3\x50\xf3\x1f\x70\x93\x17\xa1\xd5\x1c\xef\x0c\x0b\x2d\x10\xd5\x2d\xdd\x47\x19\xcb\xf6\x18\x03\xae\xd7\x7b\xfd\x45\x1b\xa5\xc0\xbd\xbb\xc3\xe8\xbc\x94\xbf\xb9\x3d\xf2\x23\x7c\xea\x0c\xbb\x18\x4d\x05\x01\x2d\x3b\xf5\xb8\x61\xa6\x70\x00\xe7\x70\xdf\xdd\x9d\xff\x70\xf2\x30\x44\x44\x45\x28\xa1\x8f\x64\xc4\x22\xf9\x04\x4a\xdf\x3f\x72\xa2\xf4\xcf\x0d\x46\x20\x9a\x12\x26\x81\x13\x50\xd5\x52\x5f\x73\x0b\xa3\xff\x7b\x5e\xfe\xbe\x8d\x56\xee\xb1\x2e\x35\xed\xba\x9a\x7e\x40\xa6\x50\xb6\xcc\x2c\x6d\x8d\x5d\xf3\x3b\xe3\x6f\x1d\xd4\x55\xfc\xde\x22\x25\x9a\xfd\x3d\x67\x1b\x0a\x5d\x67\xc5\x47\xc1\x28\x1a\x64\xba\x34\xc3\x50\xcf\x63\xb3\x5c\x6b\xf3\x4d\x6d\xeb\xeb\x98\x48\x01\x3d\xe3\xfc\xe7\x45\x71\x74\xa4\x04\x21\xc0\x42\x3c\x3d\xd9\xbb\xde\xa2\x8d\xf9\x89\x05\x1f\x1d\x8f\xd8\xa5\x8b\xaa\x2b\x7e\x95\x85\xaf\x21\x9d\x04\x65\x4e\xca\xad\x40\xb3\x31\x95\xfe\x07\x28\x5a\x27\xf3\x44\x99\xaa\xbd\x53\xca\x70\xe2\x07\x6a\x9e\xd4\x71\x09\x81\x59\x34\xdf\xd5\x4d\x4e\xa7\x63\x92\x6c\x22\x89\x0e\xa7\x83\x44\x6a\xfa\x8e\x1e\x1b\x4e\xe7\x36\x75\xa9\x8b\xc9\xd8\x6a\xfb\xa6\xb6\x25\x2a\xdc\xec\x38\x31\x55\x73\x09\x82\x38\xac\x6a\x86\xbc\x01\xc1\xd2\xbb\x68\x25\x75\x13\x86\x65\x52\x53\x7d\xda\x19\xf4\x82\xb0\x1a\x31\x91\x33\x28\xa8\xe5\xa3\x32\x31\x2a\x6a\xa2\x44\x2e\x46\xc2\x46\xac\xcc\x34\x9b\x30\x25\x47\xcc\xcb\x5a\x3f\xe3\xb9\x04\x7f\x54\x4a\x94\xbe\xa0\xbe\x86\x5a\xf7\x26\x2c\xba\x87\x32\x41\x53\x70\x29\xcb\x6f\x6a\xb6\xee\x0c\x2b\x9c\xf0\xd9\xbe\xad\x4a\x5b\xa6\xd8\xb8\x61\xa0\xe1\xb9\x5e\xfc\x19\x61\x44\xc0\x44\xc1\x96\x5d\x7b\x84\x5b\x58\xb9\x1b\x38\x37\x78\x12\xad\xf3\x57\x7a\x8b\x05\xce\x15\x4f\xb5\x7e\x8b\x93\x64\xd1\x33\x5e\x67\x82\xe6\x58\xce\xdd\x46\x1b\x87\x61\x9b\xbb\xc9\x2e\xee\x19\x8e\xe6\xe4\x4e\x61\x95\xd7\x46\x66\x55\x46\xf9\x81\xb0\x3c\xfd\x70\x8a\xfe\xa7\x98\xe3\x59\xff\xec\xfb\xc1\xf8\x7c\x78\xd7\xff\xee\x62\x70\x1e\xcc\xc7\x3e\xb9\x1c\xde\xdd\x2d\xff\xfa\xfd\xf0\x7e\xf9\xc7\x9b\xeb\x9b\x87\x8b\xfe\x7d\x5d\x2b\x17\xd7\xd7\x3f\x3c\xdc\x8c\x3f\xf6\x87\x17\x0f\xb7\x83\x9a\x4f\x1f\xee\x9b\x1f\xde\xfd\x30\xbc\xb9\x19\x78\x2b\xfd\xdf\x82\xd3\x05\x1e\x72\x3d\xd1\x86\x69\x54\x0f\xe0\x11\x2a\xbf\x78\x8a\x1e\xaa\xe5\x9d\x6c\xbe\x95\xc1\xea\x7a\xc6\x52\xf3\x30\x48\xf7\x03\x4b\x6b\xb1\x28\x4d\x9f\x9a\x90\xe4\x68\x4e\x50\xc2\xf9\x63\x9e\x59\xd6\x66\x8c\xea\x8c\x1b\xc3\x0f\x91\x41\x6b\xdf\x0f\xef\x4f\x97\xcb\x4c\xf9\xc6\x02\x54\x50\x6f\x43\x7e\xc6\x06\x21\x00\xd8\x29\xd8\x52\x5c\xf9\xa1\xc2\x43\x1d\xf4\xe0\x77\x66\x55\x3f\xa6\x35\xcc\x54\xa5\x9b\xd8\x44\x4b\x17\x13\x0b\x1a\x2e\xef\xeb\xaa\xd5\xf4\xcb\x61\xea\x6b\xa2\x09\x89\x70\x6e\x02\xb7\xf5\x3d\x25\x04\x17\xe1\x80\x0b\x7a\xd8\x5f\xa3\x96\x8e\x6a\x1b\xac\xec\x99\x9e\xb8\x7c\xa4\x59\x46\xe2\x0f\xcb\xf2\x4b\xb9\x02\xbe\x84\xd3\xa7\xfb\x0c\xce\xa4\xd6\xeb\x41\xe7\x77\xc5\xe1\xe6\x0b\x1f\x2d\x04\xc1\xa9\x45\xb8\x2e\x14\xab\xd0\x77\x82\x2f\xde\x45\x21\xfc\x07\x2b\xf4\x4c\x00\x36\x26\xb7\xd5\x31\x8d\xee\xad\xcf\x36\x74\x67\xfc\xf6\xae\xd6\x6d\x09\x4e\xa6\x91\x19\xef\x43\xe0\xd6\xdf\x4b\xb2\x99\xb3\x6d\x2d\xf6\xc7\xb9\x69\x14\xb8\xb3\x8b\xeb\x87\x11\xef\xd3\x39\x57\x73\x23\xad\xb9\x2c\x34\xdb\x6e\x33\x1e\x87\x77\x56\x2a\xe2\xd1\x7e\x60\xa5\x42\x0f\x6b\xd7\xea\x9e\xc7\x78\xa1\x89\x03\x82\x13\x64\x9e\x65\x5c\x28\xd4\xd0\x86\x09\x55\x34\xe3\x83\x3b\xc7\xce\xc3\xf3\x38\x68\x44\x4b\x18\xb2\xa6\x5e\x58\x3b\x08\x28\xbb\xae\x81\x8f\x2b\x48\x02\x02\x45\xd0\xd7\x76\x4c\x4b\x2a\x75\x89\x42\xeb\x84\xdf\x5d\xb2\x28\x33\x7d\xc1\xb7\x2d\x35\x5c\xd7\xfb\xb5\x6b\xa1\x76\xcb\x13\x32\x55\xe3\x0d\x9d\x52\xd0\x22\x6b\x42\xcd\xa3\xb3\xf9\x1e\x5a\x6c\xaf\x25\xfc\xd1\x06\x2f\x6b\xd5\x20\xb0\x10\x08\xce\x95\x91\x4f\x0b\x1d\x06\xb9\xd5\x04\xf3\x82\xed\xd4\xe6\xbb\x7b\x21\x50\xcb\xfc\x26\xe6\xcb\xa7\x86\x1f\x8f\xd8\x00\x82\x44\x0b\x45\xc4\xa5\xc1\x83\x16\xb0\x56\xfe\x2f\x15\x56\x7f\xd5\x8c\x94\x66\x14\xfb\x82\xee\x4d\x68\x21\x49\x16\xa8\x28\x9e\x5f\xfa\xae\xcd\xe9\x31\x56\x6f\x27\x02\x9a\x09\x9b\xa3\x23\x15\xc9\xac\x65\xde\xcc\xb3\x88\x66\x06\xaf\xb0\xee\xea\x18\xfd\xe4\x2c\x3f\x90\xdc\xe3\x93\x5d\x5c\x7c\x6a\x82\x17\x0e\xf8\xba\x6e\x61\xf7\x81\x25\xbd\xef\x74\x9f\xd5\x0b\xec\x41\x2b\x6b\x56\xb9\xa4\x80\x33\x66\x2c\xb2\x1b\x84\x0b\x9d\xf9\x8f\xee\xc8\xea\xc8\xc7\x8f\x50\x6a\xdc\x46\x8f\x83\xd0\xc1\x92\xc5\xff\x32\x9b\x65\xd0\x36\x5c\x30\x85\x2d\xfd\x6c\x3d\xa8\xfa\xfc\x80\x07\xd0\x80\x71\xa0\x29\x4d\x12\x90\x03\x8e\x51\x9f\x2d\x1c\x58\x85\xbe\x0a\x5d\x10\x29\x9d\x31\xbe\x2e\x8f\xbe\x81\x98\xa2\x80\x98\xee\x9a\x89\xc9\xc4\x69\x14\x58\x45\xfb\xa1\xa8\x3d\xe0\xd6\x69\xde\x82\x97\xab\x7e\xb4\x47\xab\xdb\x40\x79\x0f\x6f\xf3\xd7\xca\x00\x5b\x1a\x6e\xf0\xe1\xbf\xea\x87\xfe\x29\xc7\x02\x33\x05\x79\x4d\x56\x74\x17\x24\x48\xaf\x26\x9f\x21\x06\x95\x19\x43\x30\xfc\x14\x6e\xae\x73\xf9\x9b\x30\x31\x1a\xf7\x10\x3d\x26\xc7\x50\x81\x56\x68\x59\x62\x52\xbc\x39\xd7\x92\xc3\x88\x2d\xe5\x6b\x1c\xa3\x7e\x22\xb9\xfd\x82\xb0\x28\xe1\x12\x42\x70\x27\x21\x38\x38\x50\xbe\x75\x2b\x4d\x16\xa0\xa0\xc0\x56\x16\xcd\x73\xfb\x20\xf8\x10\x0a\xa9\x82\x4f\x3c\x81\x93\x5e\xfc\xfe\x7b\x9e\x19\x6f\x45\x53\x9c\xc4\x0b\x96\xac\x5a\xba\x86\x5e\x6c\x93\x4c\x39\xe4\x55\x1b\x04\x6f\xc0\xc6\x14\x79\x34\x01\xca\x1c\xfa\x1a\x2b\x94\x10\x2c\x15\xfa\xc3\x37\x1b\xc5\x86\xb8\x09\x16\xdc\xd5\x1e\xdf\x22\x19\xde\xa5\x53\x86\xc2\x9d\xef\x18\xea\xe3\x62\xa1\x10\x46\x8c\x3c\x87\xd9\x33\x1c\x12\x9e\x5c\xd1\x5b\x12\xe0\x77\x98\x98\x79\x83\x3e\x04\x19\xa9\x46\x65\x6a\xe0\x23\xae\xa4\x83\x75\x9f\xda\x61\xd5\x50\x56\xcf\x47\x9f\x41\xb8\xb9\x7e\xa9\x48\x6c\x9c\x63\x35\x62\x96\xb3\xba\xb0\x91\x20\x95\xbd\x9f\x24\xe5\x64\x42\x0c\xf9\xb2\x4c\x4f\x58\x8f\x3e\x3e\xf6\x0b\x74\x05\xea\x97\xcf\xe8\x2a\xd9\xe9\x8a\xc3\x62\x72\x0e\x3c\xa6\x63\xd8\x76\xad\xb4\x53\x67\x5f\x7e\x45\x21\xb8\xa6\xfb\x0b\x3e\xa3\x11\x4e\x5a\x08\xc3\xa4\x6e\xc8\x6b\x0e\xd6\xb2\x4d\x7f\x85\x6c\xbc\xef\x0e\xda\x8b\xca\xf5\xf6\x71\xb8\x66\x9f\x79\x8d\xb9\xbd\x61\x73\x03\xd9\x62\x17\x05\xdc\xa7\x16\xbe\x96\xc7\xb7\x34\xf4\x61\x0c\xc0\x06\xeb\xb9\x60\x01\x14\xe0\x58\x87\xc9\x2f\x8b\x83\xbc\xe5\x20\x4d\xd2\x06\x7b\x1a\xc6\x67\xdf\x6c\xf0\xbc\x66\xef\x7b\xfa\xbd\x62\xfe\x6e\x2a\x3e\x08\x6e\x79\xe2\xcd\xc2\x5e\x3f\xfe\x3b\x8e\x20\x9b\x11\x7a\x72\x79\x94\xcb\xa0\x93\xae\x54\x07\x06\x63\x7e\xad\x78\x98\x09\x1e\x11\x29\x8f\xd1\x00\x2e\x1a\xfb\x4f\x84\xa7\xce\x21\x11\xbc\x3c\x62\x5a\x33\x71\x18\x75\x41\xfb\x65\x12\xaf\x3b\x01\x06\xf0\x76\x27\x5f\x4e\xba\xbe\x0e\x5b\x93\x36\xe1\xf0\x76\xa1\x0d\x28\xdd\x84\x06\xb3\x53\x14\xf3\xe8\x91\x88\x13\x41\x62\x2a\x4f\xc1\xb7\xae\x1a\x9d\x7a\xa9\xd6\xb6\x77\x96\x34\x9a\x02\x05\xd6\x24\xfe\x9f\x99\xfe\x6d\xe8\xbf\x4b\x21\xea\x21\x3a\x05\x75\xc2\xe5\x9d\x9a\x44\x2b\x07\xe9\x47\x98\x12\x0b\x13\x95\xec\x4c\x59\x95\x85\x70\x9a\x86\x16\xda\x9a\x32\xa6\xc5\x3e\x62\x70\xb6\x9c\xb6\xc9\xcc\xb1\x01\x07\x66\x52\x8a\xdb\x7c\x2d\xc3\x2e\x32\xac\xe6\x12\xe0\x39\xca\x6b\x60\x95\x2e\xf8\x54\xaf\x10\xce\x20\x5e\xc1\x58\x29\x8a\x8f\x3c\x88\x84\x54\x34\x49\x46\xcc\x24\x58\x00\x92\xc6\x57\xb5\x28\x40\xfa\xd3\x1e\xc2\x71\x8c\xfe\xf7\xd7\x1f\x2f\x7e\xbe\x1f\x8c\x87\x57\x60\xb4\x1e\x5e\x0c\xbe\xe9\xf9\x1f\xaf\x1f\xee\xfd\xaf\xc6\xc2\xf2\x44\x04\x4a\xf1\x23\xa8\x78\x4c\x12\x9b\x20\x4a\x46\x2c\x1c\xa9\xc3\x47\xd2\x4f\x24\x71\x91\xae\x56\x4c\xf1\x30\xd1\x76\x0f\x9b\xc0\x55\x2d\x6c\xe6\x06\xca\xef\xad\xff\x64\x35\x0d\x3a\xe2\xf1\x5d\x38\x31\x10\xf2\x80\xb1\x0c\x00\x73\xac\xee\x5b\x10\x1c\x61\x33\xca\x9a\xe2\xf1\x08\x7b\x7a\x49\x21\xfe\x07\xb2\x80\x80\xf0\x1b\x4c\x45\x6b\xda\xab\x47\x3c\x74\x27\x46\xeb\xe9\x58\x56\x0f\x95\x34\xb2\xb0\xc9\x28\x6e\x8c\xf9\xac\x03\xbb\x7d\xf3\xe9\x5a\x08\x4d\xf2\x59\x09\x87\xc4\xe5\x73\x56\x1d\x5c\xa5\xbf\x68\x0a\x1a\x1c\xb1\xfb\xeb\xf3\xeb\x53\x44\x12\x3c\xe1\x90\xae\x68\x43\x82\x5c\x13\x76\xc1\x22\x9e\x06\x0d\x95\x50\xd8\x7a\x28\x2b\x50\xd8\x42\x23\xda\xb1\x69\x63\x0d\x1a\x5b\xc6\xc5\x32\x86\xd9\x7e\x55\x40\x3b\xd9\x1b\x2e\xda\x5c\xff\xfa\x35\x93\xbf\x91\x69\x45\xae\xc2\x79\xed\xdd\x3c\x25\x18\x10\x3a\xac\x5b\xc8\xda\xf2\x6d\x00\x6b\x92\x94\x6a\x46\xeb\x83\x23\x8f\xad\x0b\xbe\x78\x93\x33\xf4\xc3\x5f\x24\x9a\xe4\x6a\xc4\xca\x6d\x70\x86\xfa\x3f\xdd\xa1\xef\xb0\x8a\xe6\xdf\x8c\x18\xe4\x0f\xfe\xf0\x97\x06\xb8\xc8\x8d\x11\x98\xf5\x9a\x9c\x63\x85\x2f\x38\x8e\x29\x9b\xd5\xc1\x2f\x17\x35\xf2\x06\xf7\xfd\x53\x74\x6d\x75\xf8\x22\xdb\x55\x39\xd8\x93\xa0\x21\x60\xc8\x30\x11\xc7\x45\x80\x95\xb3\x32\x44\xad\xd1\xcc\xe0\xc2\x1a\xb1\x7b\x83\x3b\xad\xb9\x2a\x55\x28\xe3\xb6\x4e\xa3\xd6\xca\x0c\x22\x37\x76\x59\xe0\x24\x59\x20\xbd\x3a\x40\xc6\x7e\x33\xac\x3c\x06\xf2\xcc\x32\xb3\x1f\x31\x50\xd0\x7d\xfe\x6d\xc2\x23\x9c\x40\x4c\xde\x51\x60\xd3\xd3\x6a\x3b\xcf\x01\x03\x07\x82\x61\xd8\xa2\x1c\x3a\xeb\x61\x99\xbc\x50\x16\x6e\x14\x18\x00\x60\x1f\xad\x37\x36\xe5\x9a\xe3\x18\xbc\x59\x30\xbe\x25\x66\x75\xf4\x87\x1e\x7f\xd6\x2c\x8b\x7e\xea\x53\xd3\x79\xce\x1c\xde\x5a\x04\xe6\x7b\xb6\x80\xf0\x6d\x28\xac\xc6\x21\xf4\xa3\xe0\xce\x96\x28\x97\x76\xd1\xdf\x89\xc1\x67\x23\x66\x22\x05\x4b\xfb\x12\x22\x14\x06\xbd\x73\x06\x81\x8c\xcb\xf9\xf0\x79\x66\x03\x1b\xad\xac\x9f\x09\x72\xe4\xb3\xbc\xe3\xd2\x9a\xea\x1b\xf6\x18\xdd\x86\xea\x75\xcc\xa3\x3c\x75\xd5\x23\x20\x43\xdc\x46\xc0\xd9\x4b\xd4\x53\x88\xb9\xd8\xd7\x51\x3c\x20\xd1\x29\x02\x10\x39\xad\xf5\x63\x43\x30\xfd\xf0\xd3\x65\x49\xbd\x59\xf0\x05\xde\xb1\x5b\xd4\x9a\x69\x68\x9c\x95\x5b\x2a\xb5\xb6\x33\xf6\xc2\x55\x81\x70\xcf\x05\x08\x5b\xe4\x73\xc6\xc1\xc8\x6d\x12\xa0\x79\xfc\x95\x44\xc3\x1b\x2d\x01\x69\x8d\xd7\x9f\xc1\x5c\x2a\x13\x5c\x66\xf2\x94\xe1\x6b\x93\x2e\xd0\x43\xdf\xa2\x51\xfe\xed\xb7\x7f\x8a\xd0\x67\xf7\xc7\x9f\xff\xf3\x3f\xff\xf4\xe7\x4d\xd2\x49\x9c\x42\x0e\xed\x16\x6b\xe4\x4b\x66\x96\x45\xa2\x70\x07\x96\x39\xd5\x0e\xbb\x60\x0f\x60\xd3\xf2\x6f\x83\x64\x1d\xc4\x0e\xe1\x99\x3d\xe1\x32\x3c\x99\xa8\x74\x34\x8b\x48\x02\x49\x54\xaf\xcc\x21\xbc\xb0\x6b\x25\xfa\xff\xb5\x02\x90\x75\xac\x8f\xca\x76\x31\x4e\x34\xf1\xe2\xb5\x6e\x04\x7d\x6d\xed\x7f\x0a\x1c\x88\xdf\xb8\x0b\x8e\x27\x31\x11\x66\x4c\xde\x64\xe7\x0d\x89\xc0\x1c\xc8\xe7\x2c\xe1\xb1\x83\x80\x2f\xf0\x0e\x28\x08\x08\x83\xcf\x58\x73\xee\x9e\x85\x0a\xb5\xf9\xa5\xe0\x79\x99\xe2\x88\xd8\x5c\xe8\xaf\x3f\x9f\xea\xdf\x7a\x68\x71\x0a\x41\xa4\x3d\xf4\xeb\xa9\x45\x04\xc4\x42\x8d\xf5\x4f\xdf\x38\x59\xdb\x36\x01\x83\xa6\x12\x7d\x75\xf2\x84\xc5\x09\xb0\xe7\x13\x33\xa2\xaf\x2c\x67\xf5\xb5\x7f\x43\xd9\x3c\xe1\xfc\xd1\x06\xd8\x2e\x7d\x78\xe2\xc0\x65\x81\xbc\xbd\xdf\xc4\x6c\xbd\x07\x1f\x52\xe8\x08\x5e\x20\xe8\x38\x9b\xa0\xe3\xbf\x4b\xce\xd0\xf1\x02\xa7\x89\xfd\xd5\x3d\xb5\xf1\xbf\x58\xda\x9c\xb8\xd8\x07\xf9\x24\x0b\x63\x29\xfd\x2e\xe1\x13\x98\xd5\xa5\x9b\xa9\x89\xa0\x85\x81\x16\xb7\x4f\x71\x61\xd9\x89\x38\xb0\x0d\xc0\x48\x4c\xb9\x32\xaf\xd8\xf4\xd6\xe5\x59\x7d\xf6\x43\xfa\x6f\xe3\x17\x86\x45\x71\x49\x7c\xc6\x38\xec\xa3\xd7\x74\xa3\x9f\xd1\xd7\x96\x05\x7d\xa3\xef\x18\x1b\xae\x6c\x96\xa1\xae\x83\x85\xef\xe0\xe7\xa0\x03\xca\x90\x49\xcb\x5c\xf1\xe5\xaf\x27\xc7\xc7\xc7\xfe\x6b\x40\xe6\xf9\x7f\x11\x55\x92\x24\x53\xd3\x92\xbb\xc1\x16\x23\x76\xe9\x8a\x4b\x39\xe3\x75\x01\x5b\x9d\x09\xae\x78\xc4\x13\x74\x54\x18\x74\x63\x1e\x49\xf4\xef\x5a\xac\x0d\x96\x12\x7e\xd4\x7a\x5c\x03\xd4\xbd\xa9\x66\xf1\x4a\x87\xca\x1a\xc4\xab\xc7\x2a\x44\xaa\xf5\x8a\x2d\x96\x61\x32\x32\xd0\x82\xa6\x9c\x13\x8b\x66\x2b\x84\x7e\x99\x7c\x56\xf0\xa8\x01\x2c\xb8\x36\x94\xbd\xfe\xa6\x5c\x62\xb7\x05\x66\xb0\x21\xeb\x86\x05\xb0\x98\x9e\x96\x33\x98\x79\xf6\x42\xf7\x89\xbe\x5c\x58\x58\xee\x48\xe6\x69\x8a\xc5\xe2\xa4\x38\x6d\xcb\xc4\x59\xa0\xc9\x02\x8f\x49\xdc\x02\x80\x0b\x37\xb1\x47\xcb\x46\x31\x58\xf1\xd2\xdd\x68\xfe\xec\x46\x50\xaf\x39\x40\x65\x22\x2c\xe2\xb1\xa5\xeb\x22\xfb\xb4\x2c\xb1\xf8\x77\x96\x65\x15\x17\x11\x23\x0b\x63\x1c\x53\x06\xa6\xcc\xbe\xe1\x3e\x6e\x60\xdf\x7c\x0c\x95\xff\xc9\x6c\x03\xf7\xe8\xf0\xfa\xce\x7d\xd3\xfe\xd2\x85\x75\x28\x8b\xec\x38\x09\x31\x80\xd9\x0c\x09\xfc\x5c\x5c\xbf\x10\xdb\x61\xac\x33\xb9\xcf\xcd\x35\xff\x3e\xe3\x37\x34\xd1\xb7\x16\xd0\xf8\xf1\x88\x95\x7e\xee\x21\x92\xd0\x94\x32\x1f\x5b\x67\x98\x3b\x9f\x1a\xe9\xf9\x91\x2a\xbd\x65\x32\x7e\xd4\x1c\xcc\x61\x57\x06\x2a\x55\x9f\x2d\x1c\xe9\x78\xc7\x94\xb5\x40\xe4\x52\x8f\xab\xd0\xd1\x21\x6b\x9f\xc6\xe4\xc8\x0a\xa4\x34\x20\x3c\x38\xbf\xff\x1f\x7b\x6f\xda\xdd\xc6\x91\xa4\x8d\x7e\xef\x5f\x91\xd7\xef\x07\x49\xef\x80\xa0\xe5\x9e\x99\xe3\xd1\x1c\x9f\x73\x61\x8a\xb2\xd9\xa6\x28\x36\x17\xbb\xe7\x36\xfa\x40\x89\xaa\x04\x90\xc3\x42\x66\xb9\x16\xd2\xe8\xe5\xbf\xdf\x93\x11\x91\x4b\xad\xa8\x22\x48\xc9\xd3\xe3\x0f\x33\x6d\x11\x40\xee\x4b\x64\xc4\x13\xcf\x33\x57\xa6\x34\xbb\x97\x3c\x5c\x38\x28\x2f\x28\xee\xc8\x8a\xfe\x04\x27\x00\xd4\x51\xc1\xfc\x3a\xfb\xb7\xc5\x40\x39\x55\xe5\xf6\xd0\x64\x13\x82\x0f\x7f\x2e\x37\xdd\x65\x26\xec\x4d\x45\x89\x4b\x42\x95\x5b\xbb\xa1\x46\xac\xb8\x53\x32\x7f\x62\x11\x25\x1c\xd9\xf8\x4c\x41\x80\x7c\x9c\x60\x80\x34\x0d\xea\xc2\xeb\x05\xab\x41\x1d\xc1\x44\xa8\x97\xf8\xef\x57\x8c\xee\x86\x2f\x27\x74\x9f\x67\xb9\x63\x39\xc3\x39\x07\x1d\x6a\x11\xa3\x0f\x1d\x94\x17\xd6\x3c\x8b\xd1\x5b\x1e\xbe\x2a\x30\x83\xd7\xd8\x5f\x3b\x5d\xb2\x07\x99\x6f\xe6\xea\x46\x5b\x87\x23\x53\xda\x69\x57\x4c\xe0\x31\xda\xa8\x8f\xe7\x70\x08\x40\xab\xdb\x56\x80\x39\x84\x0f\xca\x35\x02\x14\xec\x42\xe9\x58\x1c\x46\xd2\x78\xe3\x63\x15\x36\x7e\x9d\x09\xcc\x07\x83\x9b\xa2\x2b\x9d\x56\xe4\xf9\x48\xdf\x7c\x7d\xe2\xe1\x1e\xa2\x72\x4c\xad\xfa\x61\x94\x82\x48\xc8\x7f\xea\x6e\x35\x28\xc5\xbe\x38\x83\x6c\xe0\xca\xd8\x3b\x45\x88\x43\x27\x21\x6a\x61\x64\x1c\x74\xf7\x63\xdf\x23\x18\x76\x07\x30\xe6\x6c\x9d\xe9\x32\x75\x29\xf3\x36\xdd\x0f\xa7\x81\x6c\x9a\x33\xb5\xd2\x6f\xe8\x4d\x75\x2e\xd5\x1d\xae\xf8\xe7\x9a\x23\x14\xfd\x10\x71\x85\xaa\xd6\x2a\xd1\x43\x1f\x8e\x98\x54\x51\x52\xc2\xc5\x97\x17\x3c\xba\x43\xe1\x92\x2e\xa7\xaf\xf9\xcd\x62\x7f\x32\x65\x87\xc5\x54\x26\x09\x55\xeb\x2f\x50\x20\x83\x03\x17\xd0\xbd\xe4\x8c\xb3\xdb\xab\xb3\xf6\xba\xef\x64\x33\x98\xd3\x7e\x7b\x56\x17\x08\xfc\xbf\x1f\xe4\x28\xdc\x65\x8d\xfa\x57\x54\x96\xba\x73\x2e\x75\x11\xcb\xe3\x22\x2d\xcc\x03\x22\xbe\x6a\x71\xed\x8f\x5e\xa7\xeb\xb4\x5c\x98\x81\x4a\xc6\x00\x04\x4c\x2b\xbe\xbb\xbc\x9d\x05\xbf\xeb\x5b\x2a\xdf\x5d\xde\xb2\xa0\x0e\x24\x75\x4e\x44\x54\x38\xa4\xf1\x94\x9d\x78\xad\x85\xba\x65\x1e\x8b\x7b\x19\x61\x8a\xeb\xc4\x58\x45\x73\x05\x14\xe6\xe6\xad\x73\x64\x79\x2f\xd9\x77\x97\xb7\xc4\x96\xe9\xf9\x6d\x50\x36\x02\x28\x2c\xc6\x5d\x3b\x35\xf2\x70\xa5\xd5\x11\x52\xfb\x64\xb1\x8f\x76\x4c\xe0\x71\x1d\xf1\xb4\x28\xc9\xc0\xb8\x7f\x3d\xb5\x73\x72\xe5\x23\x21\xa6\x59\x7a\xae\x8c\xad\x84\x59\x06\xa0\x70\x66\x3a\xdd\x9c\xda\xda\xa0\x1e\x02\x0e\x80\x41\x3b\xe8\xf0\x97\x2e\xc3\x8f\xab\x1d\xe3\xd9\x52\x16\x99\x79\x86\xe1\x8f\x27\xc8\x44\xb6\xb1\x2a\x56\x38\x6f\xde\x32\x22\x51\x3a\x98\x60\xa9\x8a\x7c\xae\x82\x0c\x16\x97\x15\x8c\xc9\x0b\x52\x31\xa0\xfc\x05\xec\x8d\xa5\x20\x8d\x12\x5d\xc6\xf6\x5a\xcd\x9c\xc8\xdd\x2e\x45\x23\x6a\xae\x80\x99\xc4\xdc\xad\xda\x98\xa1\xfe\xee\x7f\xc3\x3e\xaa\x7b\x19\x4b\x7e\x54\x88\x3c\xe1\x47\xc5\xbf\x7e\x9c\xd4\xfe\xc4\x5f\x7f\xf9\xe5\x47\xd4\xeb\xeb\xa2\x5d\x08\xd8\x95\x0e\x74\xf0\xb4\xc7\x29\x1c\x4f\xa1\x59\xa5\x07\xcc\xd3\xb9\xbc\x13\xec\x23\x4e\xf7\x47\x22\x29\x7e\xdc\xb4\xcd\x55\xdb\xbc\xb1\xc7\x4c\x1b\x50\xc6\xb7\xcf\x1b\xeb\x99\xb6\xd7\xeb\xe9\xbf\xad\x97\x66\xb6\xbe\x5a\x4f\x5f\x7f\x09\xff\x59\x9b\xa3\x7d\x9b\xd7\x65\xcf\xb4\x35\xbb\xe5\x20\x6a\xd9\x96\xee\x2c\x9a\xab\xfd\x87\x11\x1b\x77\x16\xc1\xaa\x6d\xdb\xf8\xbc\x10\x87\x66\xb7\x22\x77\xf5\x08\xf4\x75\x83\x14\xbc\x37\x22\x78\x20\xa3\xb6\x67\xc3\x06\xb8\x67\x37\xb5\x77\x08\xc0\x85\x0f\x47\xf0\xf1\xc0\xf7\x87\xf5\xa7\xf6\xdd\x3d\xdd\xe9\x6f\x66\x22\xc4\x08\x06\x99\x6b\xf3\xf5\x81\x8d\xac\x7c\xb5\xaf\x8d\x0f\x1c\x55\x03\x9b\x62\x35\x31\xbd\xd6\xc7\xec\x22\xbb\x1c\xd1\x65\x92\xbb\xbc\x3f\xd7\x12\x0b\xad\x74\xef\x6b\x5b\xef\x9a\xf6\x52\x28\x4a\xe8\xa2\x6e\x2d\x0b\x3f\x70\x45\x1c\x08\x85\x33\x4f\xea\xc5\x76\x30\x11\xba\xaf\xf8\x2d\xfd\xf8\x7d\x83\x16\xdd\x99\x97\xef\x21\x33\xdb\x91\x61\x6d\xb9\x32\xd6\x9a\xad\xb5\x23\xb0\x84\xaf\xfc\x47\x35\xe9\x36\x7d\x54\x83\xb0\xc6\x81\x7a\xfd\x54\x95\x2d\xe5\x01\x63\xab\x3c\xc1\xd8\x41\xb1\x01\xb7\xb2\xd7\xb9\xb5\xc7\x9c\x77\x2f\xa3\x26\x6e\xc2\xb3\x35\x3a\xbd\x72\x51\xe4\xaf\x5a\x66\xd8\xe7\xb1\x1d\x30\xc3\xd6\xec\x5a\x8c\xe3\xf9\xb0\xf6\x18\xb8\x54\xfa\x76\x9a\x6b\x65\x55\x14\xc3\xbd\xb4\x6c\xfd\x21\xe3\xbb\x4f\xae\x8b\x74\x86\x0a\x52\xc0\xc7\xda\xcd\x83\x75\x20\x1d\xec\x05\xdf\x3a\x96\x17\x2a\xcd\xe6\xec\x62\xe3\x96\x02\xf4\x5c\xba\xdb\x30\x88\xeb\x75\x68\x13\x88\x91\xb6\xab\x05\x73\x35\xb3\x5f\xf1\xac\xd4\xb9\x44\x2f\x0b\xa6\x23\x96\x4b\xcc\x70\x01\x9f\x19\xf7\xa3\x4e\x9d\xeb\xe8\xc4\xd8\x84\xfc\x5a\x17\x6e\x73\x91\xf9\xdb\xc8\xb3\x96\x86\xfd\xe8\xa8\x79\x18\x6b\x71\xef\x89\x6e\xbb\x48\x45\xd9\xb1\x6c\xab\x78\xf8\x43\x85\x0a\x22\xc2\x6a\x44\x31\x40\x5e\x40\xb2\xf3\xcb\xd4\x93\x9b\xd7\x2a\x6b\xee\xd6\xe2\xa0\xd3\x58\xf2\xed\x22\xd3\xdd\x32\xcc\x03\x86\xc9\x16\x51\xf1\xd9\x6f\x50\x96\x71\xc7\x7e\x2e\x79\x82\x97\x9b\xa2\xe5\x68\x9b\x0d\xee\x8f\xaf\xfe\x9d\xcd\xe0\xf6\x61\xef\xe1\x5c\x04\xd0\x16\x94\x56\x68\x26\xb7\xa9\xc8\x72\xad\x78\xa7\x1e\xf9\xdd\xd7\xf9\x82\x34\x55\xcd\xd3\x58\x97\x4d\xfd\xd4\x11\x3d\x69\x29\x2d\xec\x14\x67\x77\xe5\x52\x64\x4a\xa0\xe6\x3a\x7c\x8f\xd9\xef\x0d\x6a\xae\xe6\x65\xb1\xf9\x6a\x11\x25\x72\xb0\xd0\x2b\x64\x8c\xce\xcc\xcf\x4e\xf0\x57\x7d\x1d\xa8\x94\x5f\x69\xba\x62\xf8\x19\xc3\xcf\xa6\xec\x5b\x1e\xdd\x09\x15\xb3\x34\x29\xd7\x92\x08\x62\xd0\xdc\x97\xd5\x87\x7d\xb5\x63\x68\x5b\x60\xf9\xe6\x1a\x9a\xab\x2d\xbf\x43\xf1\x15\x32\x22\xcd\xcb\xa1\x8b\x5e\xd0\xb9\x4a\x16\xb2\xb9\x76\xf7\xce\x96\xbb\x0f\x9b\xc5\xd4\xd7\x5e\x5e\x62\xbe\xdc\xc3\x46\x13\xca\xa8\xe2\xa9\x19\xb1\x71\xdd\x6a\x6d\xf0\x78\x59\xae\x15\xa7\xbe\x4f\x8d\xc1\xdd\x0b\x21\x3c\x10\x10\x2a\x15\xe3\x40\x05\xf6\x22\x67\x65\x6a\xed\x33\x88\x2d\x25\x80\xf4\xc1\x29\x30\x1f\xa4\x32\xba\x43\x6c\x29\x64\x4f\x30\xd7\xbd\x86\x48\x33\x13\x1e\xe4\xd8\x76\x34\xac\x90\x08\xe7\x30\xdc\x4a\x43\x7f\x68\xcf\x3a\x1d\x98\x19\x52\x6c\x84\x5a\x3c\x42\x06\x67\xf8\xa4\x55\xb2\x40\xc8\x0c\x76\x31\x3a\x37\x84\xa5\x92\x44\x7b\xed\xdf\xd8\x4e\xe3\x41\xae\x6a\x66\xb4\xcc\x59\xce\x0b\x99\x9b\xb3\xac\x75\xc4\x3d\xfd\xd0\x21\xa3\xce\xc7\x71\x1e\xb5\xf0\x1d\xd5\xc6\xc2\x65\x9a\x4d\xd9\x3b\x88\x6c\x04\x2f\x03\xed\xd8\x83\xba\x0e\xac\x62\x23\x3a\x69\x74\x9f\x02\xa2\x69\x7b\x10\x7c\xbf\x37\x60\xe5\xb2\x0a\xa7\x6c\xe6\x23\xca\xc8\x9f\x84\xb1\xe2\x3d\x3d\x12\x49\x2e\x1e\xb3\xf8\x06\x05\x5f\x00\x75\x05\x0b\x88\x81\x25\x95\x9b\xbf\x7b\x3e\x75\xd7\xcc\x07\x48\xdc\xe7\x77\x42\xf5\x79\xd8\x87\xb7\x10\x43\x20\xbd\x2e\x01\x17\x5b\xd1\x18\x5e\x79\x4c\x03\x87\x6f\x3b\x4f\x59\x25\x57\xc7\x66\xc8\xcd\x33\x24\xba\xa3\x74\x41\x8c\xb0\x11\xe9\xd5\xc3\x46\xe7\xe1\x3e\xb3\xf3\x87\x2f\xd9\xac\x74\xea\x56\x90\x6e\xe9\x06\x18\x71\x96\x4a\x87\x9c\x58\xd0\x6a\xb7\x49\xd1\xad\xe3\xe6\x9b\xd9\x23\x14\x86\x01\x90\x09\xb6\xa8\x96\xdd\xac\xd2\xf2\xa9\xd4\x53\xf6\x13\x51\x37\x47\xb8\xd1\xa0\x1f\xbe\xce\x3f\x40\x7d\x4f\x41\x07\x83\x7e\xbe\xa7\x4f\xc5\x7a\x64\x10\xda\x81\x8c\xad\xff\x51\x43\x9a\x06\x5d\x94\xa9\x8e\x99\x5f\xef\x5d\xb9\x2e\x4a\x69\x04\x99\xfe\x0a\xbb\x15\x34\x6e\x70\xdf\xf6\x6d\xb5\xf7\x01\x52\x8d\x2d\x4b\x99\xc4\xc8\xe7\x17\x58\xa8\xda\x9a\x40\x20\x24\x04\xf6\x88\xcc\xdd\x05\xd7\xb2\xe8\x7f\xf8\x3a\xbf\xd4\xf1\x21\x0b\x6b\x3c\x67\x6b\x73\x5d\x0f\x48\x64\xc9\x43\x34\xd1\x76\xff\x48\xa4\xba\x3b\x05\x21\x5e\xe4\x55\xe5\xdc\x9e\x06\x03\xe6\x6c\x59\xae\xae\x41\xa6\xb3\x8b\x16\x29\x50\xb0\xb3\x79\xce\x66\x9e\x4d\x35\x2e\xeb\xae\x6b\x52\x08\xc2\xe4\xed\x11\xce\xfe\x70\xfd\xe1\xe2\x68\xcb\xb3\x7c\xc3\x81\x76\xc2\x96\x35\xb1\xca\xe7\xf8\x5e\xb7\xd0\x0a\xa9\xe6\xea\x88\xad\xf5\x04\x81\x3c\x6f\xd8\xa6\x28\xd2\xfc\xcd\xf1\xf1\x5a\x16\x9b\x72\x39\x8d\xf4\xf6\xd8\x0f\xcd\x31\x4f\xe5\xf1\x32\xd1\xcb\xe3\x4c\x40\x2a\xc7\xd1\xeb\xe9\x57\xaf\x61\x66\x8e\xef\x5f\x1f\x03\x7c\x63\xba\xd6\xff\xe7\xfc\xab\xff\xf8\xfd\xbf\x9b\x82\xd3\x5d\xb1\xd1\xea\x0d\xa1\x84\x7a\xcb\x3e\xc2\x67\xc2\x31\xfe\xa4\x56\xcb\x7f\x4c\xbf\x0c\x9b\x41\x5f\xdd\xea\x58\x24\xf9\xf1\xfd\xeb\x85\x9d\x98\x69\xda\xa1\x2d\xf1\x5b\xf2\xc3\x27\x48\x7e\xb8\x93\xc5\x6f\xc9\x0f\x9f\x35\xf9\x61\xb8\xc9\xe5\xce\x18\x60\x93\xf6\xe7\xa3\xf9\xbb\x3b\x23\x6d\x2c\x60\xdf\x39\xd4\x72\x39\x84\xa9\x69\x07\x5c\x11\x23\xa5\xde\x6a\xdd\x75\x6f\x99\x0e\x9f\xdf\x58\x45\x97\xce\xd7\xc5\x28\x26\x0e\x80\x1a\xca\x08\xd4\x02\xd0\x47\x99\x72\xd9\x96\xd2\x10\x28\xdc\x1c\x30\x84\xa8\xb8\xd1\x4e\x3b\x36\x44\x98\x8a\xb4\x99\x44\xbc\x78\x12\x89\xaa\xd6\x3a\x10\x95\x39\xba\xfc\x86\xdd\x3d\xc0\x34\x26\x9c\xf2\x41\x23\xfa\x8c\x62\x22\x4f\xad\x22\x42\xdd\x7d\xa4\x82\x48\x82\xbf\xb6\xa8\x6a\xfd\x60\x95\x43\x9e\x42\x6f\xc3\x23\xc6\x87\x69\x6d\xe0\x22\x85\xb6\xd8\x76\x75\x34\x63\xc3\xf3\xc7\xc1\xf3\x67\x48\xd6\xeb\xa2\xb1\x88\x6d\x96\xb9\xad\xd0\xde\xc6\x96\xff\xc8\x5c\xee\x96\x66\x31\x2d\xb3\x54\xe7\x22\x9f\xb2\x77\x3a\x43\x62\x2d\x62\xbd\xf1\x29\x07\x57\xef\x4e\xd8\xeb\xaf\xff\xe3\xf7\x73\xf5\xb2\xc5\x18\x82\x4b\x54\x67\x6b\xca\x80\x00\x13\x68\xcb\xf3\x42\x64\xc7\xd9\x2a\x3a\xc6\xab\xe3\xd8\xfc\xfe\x88\x2a\x3d\xd2\xab\x23\x27\x26\x70\x44\xbc\xea\xd3\x6d\xfc\xaa\x0b\x1b\xd8\x6e\x70\x7f\xb6\x47\xcf\xac\xc3\x30\x6f\x9b\xdf\xfd\x07\x6b\x65\x0b\xa1\x21\x42\x56\x48\x0e\x16\x0b\x92\x21\xea\x95\x93\xbf\xc1\x4c\x5b\x54\xca\xd2\xab\x96\xff\xf8\x36\xd1\xcb\xfc\x95\xa3\x60\xe5\xb9\xad\xc3\x73\x22\xb6\x9d\xdb\x8d\x3d\x77\xc8\xeb\x9b\x86\xe2\x39\xdd\x6a\xf6\x4c\x0c\xa7\x6d\xcc\xc0\xb7\x1f\x1a\xde\x16\x44\x46\x28\x9e\xe9\x52\x59\x7d\x09\xad\x84\x5e\x01\xd0\x08\x9e\x49\x16\x27\x09\x91\x05\x40\xdf\x39\xf6\xa7\x4c\xa4\x68\x7d\x40\x0c\xac\x7b\xb8\x0f\xd4\x58\xd9\x37\xce\xcf\xa1\xb1\x72\xe8\xb8\xd3\xc1\xf8\x99\x06\xfc\xd0\x64\x06\xdc\x4a\x63\x30\x40\xe6\xfb\x7b\xe3\xfd\xee\x1c\xf0\x1a\xcf\x5e\xce\x20\xe5\x19\x58\xf0\xe2\xa8\xd0\x47\x40\x9b\x07\x64\x6c\xa8\x7a\xd4\x05\x02\x02\x9c\xc4\x98\xeb\xde\x7c\x7f\x40\x3b\xf1\xd5\xf6\x4b\xd0\x50\x32\x58\x73\x24\x11\x27\x50\xb8\x54\x4a\x64\x14\x01\xde\x6b\x19\x8c\x44\x51\x84\x53\xd9\x8f\x09\xf7\x6e\x8a\x50\x91\xc6\x65\x04\xf2\xe0\x10\x98\x32\x78\x9a\x6c\xf4\x56\x1b\x5b\x57\x97\x79\xf0\x21\x3e\x6d\xc1\x98\xe8\x34\xcc\xb7\x3c\x45\x7b\xf5\xf3\xf5\xc6\x6c\x2d\xf3\x11\xba\xa0\xc3\x2f\x8d\x12\xf9\x5a\x56\x65\x8d\xf6\xb4\xdf\xe9\xd1\xf4\xaf\x1b\xc0\xe8\x6c\x21\xe4\xb7\xe1\xf7\xc2\xaa\x4c\xc8\xbf\x9a\x47\xaf\x59\x52\xee\x19\xe9\x2c\x10\x84\x94\x21\x1b\x74\x08\xa0\xb4\xb7\x6e\x27\x5f\x4b\xb9\x1d\x39\x07\x2e\xcd\x69\xc8\x04\x70\x85\x89\x3f\x36\xe3\xe7\xa8\x35\xe5\xa7\x6b\x5f\x82\x5f\xad\x34\x2f\x13\xcb\x58\x3e\xae\xa9\xd7\xae\x00\x22\x27\x6f\xb6\xdb\x13\x3e\x42\x7e\x18\x8e\x31\x1e\x08\xd6\xb6\xe8\x82\x19\x8f\xdf\x8c\x20\xf1\x36\x66\xec\xa0\x12\x5c\x9c\x8d\x11\x0c\xf6\x42\xd7\x00\x8e\xf3\xbf\xf6\xb9\x33\xdb\x10\xe6\xc8\x91\xeb\xf3\x87\x4d\x2b\x1b\x9e\x05\xf7\xc3\x7b\x2f\x23\x0c\x00\xdc\x65\x09\x9f\x5f\x7c\xb8\x09\xb1\x45\x12\x7b\x7b\x14\x6d\x44\x74\x07\xde\x34\xbc\xf2\x70\x33\x50\x3a\x3c\x00\x9e\xbd\xf8\x68\xa1\x2d\x50\x66\xe7\xf4\x58\x9c\x26\x91\xce\x58\x2c\xf3\x34\xe1\x3b\x80\x24\x28\xcc\x14\xf4\x70\x06\x97\x62\x6b\x8e\x82\x7d\xc1\x84\xe1\x33\x6d\x66\x65\xe6\x7f\x37\x76\x2c\x3d\xf4\xdb\x0f\x66\xf3\x3c\x60\xb9\xd8\x72\x55\xc8\x68\xae\xb6\x82\xab\x10\x43\x4a\x90\x0c\x33\xc8\xb1\x16\xa4\x58\xb0\x5a\x89\xa8\xf0\x94\xc7\xf0\x08\x71\x23\xb5\x6f\x0f\x8e\xeb\xbb\xdb\x79\xbd\x5d\xff\xde\x0a\x24\xcb\x2d\x20\x94\x69\x0d\xd1\xd5\xf8\xc8\x50\x23\x88\xd5\xd2\x95\x6b\x1f\xb5\xf0\x2f\xbb\xa6\xd8\x52\x14\x0f\x02\x18\x7d\x88\x82\xa0\xcd\xc6\x3f\x58\xb0\xe8\x90\xf4\xbd\x99\x63\x00\x24\x82\xf7\x06\x85\x2f\x6d\xb0\x10\xfa\xe8\xa8\x07\x55\x8d\x43\xf0\x05\x91\x22\x80\x2b\xf0\x05\x39\x35\x5f\xc0\x35\x6d\x5e\xc1\xd9\xbd\x88\xe7\xaa\x4a\xec\x48\x36\xa3\xdf\x70\xcc\x4b\x71\x3e\xcd\x69\x63\xc7\x78\x50\xa0\xe7\x14\xc8\xac\x3c\x8d\xb5\x4b\xfb\xef\x91\x06\xc5\x4e\x3f\xe7\xab\xca\xaa\x12\x0f\x7d\x0c\x7b\xb5\x4e\x92\xda\x23\x65\xde\x0a\xfa\xc7\x2d\x4a\x47\x5b\x87\x9c\xb6\x0e\xae\x4d\x4e\xeb\x86\x1b\xbc\xad\x8c\xb9\xb2\x7c\x2e\xab\x32\x41\x9e\xf2\xae\xac\x19\x62\xb1\xb4\xb9\xa7\x9f\x2f\x07\xd9\x39\x5d\x59\xa0\x6e\xea\x40\x3a\x01\x74\x1e\xcf\x3a\xbb\xea\x85\xca\x4b\x30\x29\xac\xb0\x21\x44\x25\xd6\xa2\x80\xdb\x3c\x2e\x13\xa4\x27\x81\x70\x0a\x30\x62\xf2\x24\x61\xb2\xc8\xe7\xca\x11\x78\x62\x6a\x0c\x9c\xb0\x36\xde\x12\xd3\x93\x0b\xaa\x80\x62\xe1\x63\xae\xc0\x0e\x93\x91\x2c\x1a\x09\x07\xbb\x50\x0c\x2c\x4d\x05\xc7\x6c\x7a\x9c\xb6\xb9\x0a\xdf\x5c\xf5\x49\xa0\xd4\x73\xd0\x8f\x7f\x8a\x2c\xf0\x1e\xc7\xad\xa9\xe2\x51\x28\x1b\xec\x9d\x79\x70\x59\x9d\x6f\x6c\x2d\x31\xf8\x10\x2e\xd8\xbc\x6a\x8a\xdc\x06\x50\xfc\xbb\x15\xb2\x6a\xa2\x32\xe1\x19\xa6\x13\xad\xca\x84\xc9\x55\x20\x59\x0e\x73\x80\xf4\x8d\x66\xba\x22\x0d\x77\xb5\x0d\xa1\xe4\x7c\x2b\x02\xe6\x18\x72\xef\x24\x01\xe2\x07\x35\x29\x10\x4a\x62\xca\x7a\x35\x65\x6f\x3d\x41\x2d\xce\x30\xec\x89\x80\xf6\x59\xe6\x78\xfc\xb9\xf6\x06\xa4\x07\xa8\xe5\x2f\x57\xe6\x49\xf9\x22\xd8\x75\x1d\x33\x08\xf2\x31\xe3\xe0\x44\x56\x3c\xa8\x1f\xe3\xde\x4a\x7a\x62\x7e\x5a\x03\x19\xb9\x0d\xd1\xd1\x40\x7b\x2b\x8c\x6c\x64\x48\x99\xfd\x88\x86\x3a\x4a\xf2\x96\xc6\x6e\x7b\x14\xd2\x61\x1e\x47\x36\x35\xd0\x1b\x1c\xdf\xd0\x60\xe5\x84\xe0\xb1\x21\x23\xbb\xe6\xc5\x58\x24\x99\x4b\x1d\x1b\xdf\xd0\x56\xd4\xde\x90\x66\xc2\xe9\x31\xb2\x9d\x33\xf3\x9b\x47\x36\x34\x2f\x97\x47\x78\x40\x3b\x45\x22\x38\x2a\x04\x8f\x36\x55\x16\x07\xcb\xb5\xec\x7a\x00\x59\x7c\xb0\x1f\xc7\x13\x50\xcc\xfc\x9a\x03\xc9\x45\x66\x9a\x3f\x65\x1f\x94\x40\x9c\xa7\x5e\x05\x97\x0a\x35\x80\xb4\x19\x41\xee\xc6\x9d\x72\x4b\xd3\x30\x75\x67\xc9\xad\xcc\x96\x9b\x30\xee\x4b\x87\x53\x0f\x97\x0d\x9e\x22\x1d\xb6\x64\x9b\x38\xd4\x01\xe6\xe5\x30\x8a\x88\xf6\x37\x7f\x00\x97\x1e\x7f\x02\xb4\xf5\x63\xf8\xb4\xf4\xe6\x3d\xb8\x57\x9c\x4d\x76\xa8\xae\x1b\x86\xe0\xe7\x7d\xe3\x7b\xb9\xa9\x62\x66\x47\x48\x29\xde\x5e\xbc\x3d\x7d\x77\x76\x51\xd5\x3f\xfc\xe3\xed\xe9\x6d\xf5\x2f\x57\xb7\x17\x17\x67\x17\xdf\x85\x7f\xba\xbe\x3d\x39\x39\x3d\x7d\x5b\xfd\xde\xbb\xd9\xd9\x79\xed\x7b\xe6\x4f\xd5\x2f\xcd\xbe\xfd\x70\x55\x53\x5c\xb4\x72\x89\xc1\x9f\x6e\xce\xde\x9f\xbe\x5d\x7c\xb8\xad\x88\x36\xbe\xfd\xaf\x8b\xd9\xfb\xb3\x93\x45\x4b\x7b\xae\x4e\x4f\x3e\xfc\x78\x7a\xb5\x47\x73\xd1\xf7\xb7\x75\x48\x9f\x02\x5b\xf8\x68\x05\xce\x19\x5b\x65\x52\xa8\x38\xd9\x61\xa6\x88\x7d\xd9\xd6\xa0\xdf\xe1\xdd\x2b\xb7\x42\x97\x87\x24\x7c\xdc\x6c\x04\xd3\xf7\x22\x03\x1e\x2e\x2c\x8d\x48\x3b\x7c\xce\x7f\xbd\xd6\x4c\x14\x59\x33\x2a\xd0\x9b\xd7\x56\x64\x3b\x97\x39\xd9\xd7\x1c\xcf\xe1\x48\x95\xb0\x54\x64\x7d\x6d\x01\xcb\x28\x2b\xd3\x42\x2e\xbb\x53\x78\x46\xa7\xbe\x0f\x7d\x7b\x23\xe3\x70\x3b\x3d\xdb\x45\xfb\xc1\x58\xc9\x64\x39\x04\x26\x0f\x25\x3c\x56\x58\xd6\xfd\xda\x42\x8b\xd3\x72\x99\xc8\x88\xc9\xb8\xee\x4f\x21\x46\x0a\x70\x19\xd7\x89\xc9\x53\x91\x81\xa9\x6a\x5e\x00\x69\x26\x8e\x78\x59\x6c\x90\x44\x93\x12\x67\x48\x46\x66\xae\x72\x11\x65\x02\x63\x01\x22\x07\x27\x2d\x2a\x8a\x06\x35\x41\x63\x88\x43\x26\x06\xba\xba\x69\x20\x12\xd3\x11\x23\xc0\x5f\x62\xe9\x23\x9c\xa4\xf8\xfd\xde\xa1\xa1\x16\x4b\xd4\x2c\x0d\x60\x61\x70\xc3\xe3\x87\x56\x97\xd4\xf4\xdb\x9c\xd4\x4e\x97\x13\x27\xd9\x66\x1a\xb5\x77\x63\xdf\x1a\x0b\x17\x4a\x35\xf5\x86\x4a\xa7\x8f\x4e\x32\x01\x97\x08\x41\x1a\xac\xff\x02\x70\x4d\x94\x99\x04\x09\x49\xe6\xa9\xb6\x14\x1b\x9e\xac\xd0\xe2\x30\x53\xd3\xce\xeb\x81\xe5\xdf\xe8\x3b\xa1\xae\x70\xc2\x3e\xcb\x71\xa8\xf0\xe5\xe3\x59\x85\x9c\x47\xc8\xbb\x30\x4d\x1b\xed\xaa\xb2\x99\x99\x60\x4c\x15\xf8\x4e\x08\x3e\xc6\x04\x24\xaf\x19\x60\x93\x3a\x57\x2b\xf9\x8b\x29\x70\xae\x44\x2b\x6b\x3a\x80\xc9\x2c\xbf\xa3\x3b\x97\x01\x38\x87\x24\x79\x77\x42\x81\xa2\x29\xd0\xf3\xed\x5f\xb3\xe3\xfc\xe7\xcd\xb9\xe8\x71\xe8\x83\xcf\x4f\x56\x84\x5e\xc3\x28\x8f\x1d\xa7\x02\x33\xc2\x1c\x0b\x06\xac\x9b\x93\xf3\xb3\xd3\x8b\x9b\xc5\xc9\xd5\xe9\xdb\xd3\x8b\x9b\xb3\xd9\xf9\xf5\xd0\xed\xf7\x14\x59\x7c\xb5\xdd\x57\x4f\x66\x73\x27\xc4\x31\xed\x3c\x9f\x4c\xee\x3a\xe5\xb7\x1d\x4c\xc9\xfe\xd6\xcb\x38\x5d\xc4\x32\x8f\xcc\xf5\xb7\x5b\x08\x15\x83\xdc\xc4\xa3\x96\x6a\x7b\x51\xf5\x5e\xb8\x6f\x30\xf7\x0d\x7b\x82\xe0\x6d\x77\x6f\x57\xb4\xfb\x1c\x20\x99\xe0\x86\xcc\x84\xd9\xfc\x71\x85\xe5\x63\xba\x5f\x63\xcc\x14\x77\x58\xdf\xaa\x45\xd4\xfb\x84\xed\x95\x79\x5e\x02\x99\x88\xfd\x1a\xe0\x51\x3b\x46\x85\x38\x80\x43\xcd\x0b\x19\xe8\xb5\x33\x99\xcf\xd5\x96\xab\x98\x17\x3a\xdb\x75\x74\x71\xd8\xe1\x19\x6e\x9b\xea\x11\x1a\x5e\xd9\x4a\x88\xd8\xce\x02\x7e\x95\xab\xfa\x52\x42\x65\x8c\x9b\x0f\x3f\x9c\x5e\x5c\x2f\x4e\x2f\x7e\x5c\x5c\x5e\x9d\xbe\x3b\xfb\x93\x83\xc9\xa6\x3c\x6f\xd3\x67\x4e\x33\x61\x4e\x17\x4b\x34\xd6\x7a\xbe\xa0\x68\xb2\x2d\x87\x84\x32\xe5\x6a\xae\xec\xc9\x92\xf9\xe2\x37\x99\x2e\xd7\x9b\xf6\x82\xea\xad\xbc\x9c\xdd\x7c\xff\xa8\x66\x02\x0d\x24\x2a\xab\xe2\x6e\x6b\xc2\x85\xe5\x8a\xce\x3d\xc4\x18\xd7\x9a\x07\x64\xa6\xf0\xd5\xb6\x28\x43\xc7\x89\xf6\xa8\xd7\x4b\xf3\xd0\xea\x35\xfe\x5b\xbe\xde\xb5\x80\x6e\x82\x73\xb3\x72\x8d\x00\x7c\x1d\x05\xba\x1b\xa5\xbd\x69\xf9\x5b\xe5\x06\xfb\xea\x28\x11\xeb\xb5\x88\x71\x79\xd5\x0b\x26\x1f\x1c\x1d\x81\x91\xbf\xd7\xdb\x46\x91\x24\x74\x0f\xb8\x98\x1d\xde\x6b\xf8\x01\x7e\xe9\x7e\xd2\x7e\x56\x9c\x10\x95\x13\xc4\x37\x0b\xae\x3a\x02\xc9\xfb\xf3\xc1\xda\x8b\xff\x90\x31\x97\xaa\x47\x0e\x13\x1b\x32\xf0\xfb\xa0\x0b\xf0\x72\x38\xbe\xd5\xb5\xe3\x4a\xa4\x09\x8f\x84\x4b\x70\x41\x0e\x5e\x78\xd7\x3f\x26\x80\x47\x42\xc5\x8a\xfc\x2d\x81\x80\xb1\xd7\x66\x6b\x5b\x02\xe0\xb9\xbd\xb2\xe7\xf1\xf3\xbb\x56\x7a\x1f\x6e\xc4\xbc\x09\x8e\x66\x54\x8a\xa4\xbc\x08\xf4\x45\x81\xfc\x6a\x27\x66\x7d\xd4\x72\xa8\xd5\xfc\x23\x4d\x3c\xbe\x99\xab\x8e\x6e\x6e\xb9\x6d\xdd\xf2\x70\xa6\x63\x9f\xbf\xb0\x28\xb2\x5e\x3a\xec\xa7\x08\x47\x5c\x66\x7a\x2b\x73\x31\x2b\x8a\x4c\x2e\xcb\x50\x0f\x78\x24\x60\xae\xf2\x38\xf1\x1d\x4e\x33\x1d\x97\x91\x25\xb0\x82\xde\x7a\xd8\x0f\x79\xf9\xac\xd5\x11\xb3\x23\xb3\xfa\xe8\xe5\x26\xe2\x23\xc8\xf6\x40\x86\xb5\xb6\x18\x9b\x3d\x18\x3b\x7c\x7f\x97\xf6\x2a\x7f\xe2\x9c\xd1\xee\xc1\xb4\x6b\x60\x58\x1a\x38\xb3\x5f\x07\x0b\xb8\x03\x35\x45\xcb\x65\xc9\x31\x80\x5e\xb5\x51\xba\xf8\x6a\xdc\x55\x33\x0e\xdc\x35\x0c\x1b\x53\x4d\xa7\x42\xbb\x61\xc3\x73\x34\xe7\x8b\x68\x53\x6d\x38\xf4\xa6\xca\xdb\x5b\x6f\xae\x33\x8f\x0f\x73\x9b\x0c\x0a\xa3\x4d\xd0\xd1\x20\xc9\xb1\x5d\xd1\x60\x75\x82\xd2\x9d\xfe\x7b\x4c\xb9\x58\xfc\x5c\x8a\x31\xba\xca\x36\x55\xe3\x8f\xf0\xb3\xbd\x80\x14\x89\xd8\x2d\xe7\x7b\x2d\xe4\xd6\x58\x40\x3c\x8b\x36\x6c\xc9\x73\x22\x04\x0c\xd9\x12\x50\x00\x9e\x49\xf3\x2b\x1e\x15\x24\x88\x6b\xab\xb5\xa2\xb8\x37\x16\x0a\x69\xcc\x5a\xef\xf5\x68\x5b\x6e\xfb\x06\x60\x8c\xf7\xda\x36\xe3\xec\xed\xa8\x18\x42\x68\x87\xbb\x77\x32\x5e\xb1\x70\x3b\x25\xbc\x54\xd1\x86\xa5\x09\x47\x42\x89\x0d\xcf\xf1\xa0\xb0\x08\x1d\xbe\x94\x89\x2c\x80\xa9\x0b\x03\xc7\xb5\x75\x6b\x1e\xcf\x3c\xbb\xb3\x82\x07\xdc\xd3\xb2\xf5\x1d\x25\x07\x22\xa1\x5d\xaf\x3e\x29\x16\xda\x1f\x84\xe1\xe1\x3e\x6c\xb3\x13\x0e\xda\x4f\x87\xb9\xde\x60\xb3\xfb\xbe\x8c\x8b\x0e\x51\x89\x97\xf5\x9f\xd7\xc6\x1b\x29\x20\x0f\xa2\xe9\xed\xcd\xcb\x7a\x16\xd0\xb9\xcf\x2a\xeb\xbf\x46\x9b\x1d\x6e\x31\x82\xc7\x03\x9f\x48\xba\x68\x84\x11\x53\x17\x36\x6a\xdd\xf7\xab\x44\xf3\xa2\x3f\xcb\x0d\x75\x8a\xba\xca\x8e\x75\xb9\xec\x52\xc6\xc0\x56\x3d\x3e\x87\xce\x1e\xff\x4f\xe5\x73\x0f\xef\x51\x5e\x08\x73\xfa\x3e\x6e\x40\xcd\xaf\x8f\xe0\xe7\xed\x85\x53\x16\xf3\x68\x46\x0a\xb7\x0c\xbc\x5a\x9e\xb3\xfd\x01\x92\xda\xb2\x9d\xea\x46\xde\x41\x39\x8f\x87\xcd\x97\x54\x7b\x96\xd2\x7e\x01\xae\xdf\x7f\x35\x24\x1b\xf1\x8f\x25\x37\x17\xc0\x87\xd5\x35\x12\x84\x1d\xd2\xe9\x42\x36\xb7\x55\xfb\x31\x50\xaf\xf5\xa6\x1a\xa5\x0d\x17\xfe\x60\xb6\x83\xb6\xde\x5c\x9b\x5f\x0f\x3f\x76\xcf\x2a\xde\xd8\x34\x93\x1a\x88\xb2\xf4\xaa\x62\x6b\xb4\x9c\xc4\xad\xf5\x1e\x30\x92\x3f\x97\xa2\x14\x66\x01\x2d\xcb\x78\xdd\x0c\x96\x8c\x78\x70\xf9\x2e\x6d\xf4\x03\xdb\x96\xd1\x86\xd9\xc2\x59\x2c\x12\xbe\xab\x9a\x51\xe6\xad\x51\x68\x20\x31\x1e\xc5\x17\x18\x50\xcf\x47\x65\x5e\xe8\x2d\xe0\xd4\x7d\xb9\x59\xa9\x60\x97\x33\x6e\x77\x57\xdb\x85\x56\xa1\xd4\x7c\x64\x84\xfc\xfa\xf2\xf4\xe4\xec\xdd\x59\x2d\x3c\x3d\xbb\xfe\x21\xfc\xf7\x4f\x1f\xae\x7e\x78\x77\xfe\xe1\xa7\xf0\x6f\xe7\xb3\xdb\x8b\x93\xef\x17\x97\xe7\xb3\x8b\x4a\x10\x7b\x76\x33\xbb\x3e\xbd\xd9\x13\xa7\x6e\xd6\xda\x3d\x11\x3c\x60\xfc\xb4\xc8\x79\x2b\x67\x63\xdd\x55\x54\xeb\x1b\x36\xb3\xfc\xa7\x15\x86\x5e\x8b\x35\x00\x70\x52\x82\x18\x4b\x84\x24\xbc\xe5\x05\x3f\xe1\x05\x4f\xf4\x7a\xca\x66\x8c\xf2\x0a\x30\x5f\x24\x37\x26\x21\x91\x43\x9a\xd9\xc1\x22\x8c\x5d\x18\x79\x57\x90\xd7\xeb\xd6\x2b\xa2\x65\x4d\x44\xa8\xec\x64\x93\x3c\xe7\xea\xf4\x5e\xa8\xa2\x04\x43\x9b\x27\x09\xa3\x6a\xed\x17\x02\x56\x10\xdb\xca\x5c\x6e\x65\xc2\x33\x2f\xad\xfc\x81\xca\x82\xc7\xae\x6d\xab\x63\xa5\x6b\x52\x4e\x58\x7f\xc0\xed\x19\x83\x76\x9f\x9c\x9f\x81\xa1\x1b\x15\x56\x37\xd0\x56\x3e\x57\x48\xfb\x49\x35\x6e\x39\xe4\x30\x15\x9a\x1c\xf4\x58\x3d\x7d\xb9\x7b\x21\x1e\x64\x58\xd9\x50\xd6\x73\x39\x26\x5c\x23\xed\x7f\x9c\xaa\x22\xdb\x0d\xb6\x5e\x6f\x80\xd1\x21\x87\x77\x1d\x41\x22\xab\x72\xcb\xe8\x3f\x65\xb6\xf4\x0b\x30\x69\x2d\x5e\x97\xc2\x7b\x2e\x8a\x87\xf0\xa8\x8e\x27\x51\x62\x6e\xde\x5f\xeb\x38\x84\x2c\x60\x30\x0a\x4b\x5d\xaa\x38\x27\xf0\xe6\x56\xaa\xe3\x2d\xff\xe5\x95\xed\x29\x92\xd8\x38\xd1\x33\x60\x4c\x14\x89\x79\x0f\xee\xcc\x21\xd7\x3f\x5c\x73\xd5\x33\x5e\xfb\xdf\x04\xf6\x64\x05\x97\x81\xf7\xef\x20\x0c\xf5\x5e\xec\xda\xe6\xaf\x21\x5c\xc9\x42\xf5\x05\x28\x24\xcd\x84\xf9\xa2\xc3\xb8\x26\x08\x5d\x76\xff\x86\x5c\x96\x8a\xb8\x76\xfb\xd9\x1d\xc2\x46\x0e\xda\x36\xad\x80\x95\xe1\x86\xcf\x60\xe5\x51\xaa\xc9\xcc\x19\xc2\x57\x6c\xe4\x84\x72\x77\x28\x2e\x6f\x26\xeb\xbf\xf5\x92\xad\x20\x91\x8d\xfc\x04\x99\x80\x48\x19\x4c\x85\x95\xca\x01\x5e\xbd\x06\x26\xc6\x2e\x81\x44\xe4\x10\x3f\x52\xe6\x51\x2d\x7e\x2e\x09\x02\xf0\xfa\xcb\x71\xf7\x6c\x81\x7a\x0b\x48\xb0\x5d\x57\x22\x70\x77\x39\xb4\xab\x54\xb2\x8d\x6c\xf3\xaa\x54\xe6\x2a\x7e\x0a\xf4\xd4\xf0\xf0\x78\xad\x52\xfa\xe7\xde\x5c\x33\x1b\xd9\xc9\xf0\xfb\xcf\xc6\x9d\xfc\x63\x8d\x32\x99\xaa\x83\xcc\x06\x2a\x3d\xbc\xd0\x96\x3c\xba\x7b\xe0\x59\x8c\xee\x7f\x80\x33\x4d\xd9\xf7\xfa\x41\xdc\x8b\x6c\xc2\x22\x91\x15\x9c\xf8\x0a\x73\xc0\x73\xc0\x86\xa2\x72\xe6\x0a\x12\x7d\x90\xfc\x51\xe5\x65\x26\x58\x21\xd7\x9b\x42\x64\x21\x1a\x47\x67\xe6\x38\x2a\x90\xaa\x36\x15\x11\x11\xb2\x75\x0c\xc0\x2a\xe1\xf7\x4d\x02\xc6\xc7\x30\xc9\xb0\x33\x97\xad\x6c\xc3\xdd\x56\x7e\xac\x0f\x3f\x45\x03\x46\x87\x26\x52\x68\x4d\xd8\x5a\x27\x5c\xad\xa7\xd3\x29\x48\x6d\xbc\x1a\xb5\xd0\xa9\xc0\x30\x80\xee\x50\xfa\x89\xd6\xb9\x48\x76\x8e\x44\xcc\xe5\x51\x01\x70\xf7\x97\x42\xa8\x5c\xa2\x63\xab\x65\xf9\x5f\xd7\x83\x4b\x9f\x36\x16\xd7\xfe\x3c\x1f\x9d\xa5\xdb\x51\x0e\xa8\x99\x8e\x28\x09\xbf\xdf\xfe\xf2\x7a\x54\xd6\x79\x7b\x59\x4a\xab\xb1\xa9\xd4\x3f\x6a\xd9\x01\x05\x79\x14\xd9\x68\x6b\x49\x44\x84\xf4\xa8\xf4\xd3\xf6\x31\x6b\x64\x04\x1f\x90\x0c\xdc\x93\xd7\x3b\x32\xa5\x77\x88\x23\xe0\xba\x3e\xdd\xa3\xb7\xc5\x7e\x81\xb5\xd6\x0e\x8d\x4c\x99\xf6\xdc\x06\x63\x4c\x27\xcc\xba\x4c\x76\xf0\xe2\x72\x09\xd4\x10\x1e\x88\x83\xa8\x52\x25\x68\x06\xa9\x7c\x3e\xea\xe6\x08\xea\x82\x20\x5b\x5e\xe8\x8c\xaf\x05\xdb\x8a\x58\x96\xdb\xd6\xc3\xc6\x35\xf7\x10\xf8\xa8\x4e\xca\x6d\x37\x55\xe8\xa1\x06\xb4\x6f\x24\xfe\xd7\x09\x54\x37\x9c\x43\xc7\x65\x46\x58\x9d\x4b\x6a\x2f\x86\x90\x68\xac\xcd\x4d\x99\xc9\x1c\x58\x76\x1f\x93\x39\xeb\x8a\xc1\xa2\x21\x00\xbf\x4b\xd1\xc9\x5e\x99\xdd\x23\x1b\x19\xa5\x9f\xe4\x38\xab\x10\xb5\xef\xbe\x14\xea\xa0\xd4\xf1\x6a\x77\x99\x2e\x1b\xdc\x53\x83\x80\x12\x60\x36\x06\xda\x17\x84\x9a\x83\x02\x09\xda\x53\x68\xb6\xb2\xb9\x98\x77\x22\xa0\x3e\x8c\x41\x15\xe3\x01\x29\x9f\x7e\xf8\x3a\xb7\x20\x20\xc2\x69\x79\x8b\xa5\xf0\x95\x60\x04\xe8\xfe\xb5\x85\xe7\x61\x0f\xb1\x08\x20\x28\x8c\xb9\x2a\x5a\x0b\xf0\xe8\x55\x28\x0b\x7f\xf2\x23\x2f\x93\xf6\xaf\x53\xf9\xf0\x55\x54\x4d\x9d\xfd\x74\xcd\x70\xa8\x49\x3f\x21\xeb\x6b\x68\x50\xc8\x7e\x80\x20\x0c\xd7\xe2\x11\x96\x60\x65\x1e\x70\xd0\xad\x80\x86\x19\x76\x51\x44\x1b\x6f\x79\x00\x41\xa3\x23\x96\x24\x49\x6c\xea\xe7\xd6\x2b\x42\x20\xf6\x3a\x04\xb1\xca\xb5\xd2\xa1\x98\x91\x56\x02\x42\x71\xe6\x00\xd2\x61\xb1\x4c\x16\xfb\x91\x82\x23\x59\x09\xf7\x2d\xb5\x42\x23\x02\x8c\xfa\x59\x89\x53\xc3\x93\x42\x22\x5d\x95\x85\x59\xe3\x9b\x88\x14\x96\xeb\x4a\x01\x55\x02\x90\xb9\xaa\x56\xd5\x18\x24\x0b\xe5\x93\x99\x40\x82\xef\xdc\x58\x6f\x85\xbc\x37\x1b\xb5\xb9\xac\xdd\x02\x85\x13\xa0\xb9\xf6\x28\x6c\xcb\x02\x96\xf0\x3b\xb1\xcb\x43\x39\x67\x5a\x51\xac\x6b\x41\x4a\xd3\x1f\x9a\xaf\xfd\x53\x01\x03\xb7\xc8\xbc\x28\xe3\xb0\xbb\x0c\x2b\x7d\x6f\x7e\xdc\x83\x11\x6e\x14\x6e\xd6\xa0\x4f\x76\xf5\x3e\x45\x3a\x26\xfc\x38\xd3\x1c\x7a\x18\x20\x80\x3c\x43\x18\x67\x98\xb9\x04\x0f\x5f\xf3\xbe\x9d\x2b\x12\x12\x08\x2e\x39\x73\xe0\x34\xa7\x8d\x32\xf0\x91\xbe\x7c\x57\x61\x0f\x02\x6a\x55\x4b\x33\x5b\xad\xd2\x46\x97\x41\x19\x0f\x96\x07\x54\x8d\x39\xca\xd6\x87\xd7\x5a\xe1\x23\xb1\xa5\x34\xb9\x9d\x78\xd2\x20\x11\x10\xbf\x49\xec\xa2\xa8\x0b\x8e\xaf\x9f\x48\x98\xe1\x9b\xa9\x56\x28\xa7\x05\x72\x5e\x9f\x9e\x5c\x9d\xde\x7c\x32\xbc\xa9\x05\x7b\x8e\x06\x9c\xda\x76\xbe\x3d\x7d\x37\xbb\x3d\xbf\x59\xbc\x3d\xbb\x7a\x0e\xc4\x29\x7d\xf4\x08\xc8\xe9\x35\xe9\x93\x9c\x68\x55\x88\x5f\x0e\xba\x93\xb3\x52\x2d\xf8\x88\xd4\x27\xa7\x50\xd4\x67\xee\x60\xa1\x4d\x7d\x15\x27\x7e\x42\xdc\xb6\x84\x3a\xb1\x72\x2a\x2b\xef\x34\x5c\xc9\x24\x81\x4c\x70\xe7\x5e\xa7\x2c\x43\x33\xa8\x70\xfe\x58\x3a\x5f\x3a\x53\xe7\x6a\x59\x91\xbf\x01\x97\xdf\xc6\x3c\x82\x31\x07\x3c\x35\x03\x90\x49\xc8\xb0\xed\x93\x60\x59\x4b\x25\x7c\x33\x60\xd6\x4c\xfb\x3a\x69\xea\x69\x12\x9f\x13\x59\x47\x86\xd7\x50\x5b\xd3\xae\xb8\xca\xfa\xb4\xe6\xa7\xfd\xd0\xf5\x10\x37\xb1\x54\x68\x98\x56\x76\xf3\x75\xfb\xd2\x3d\xf6\x5b\x00\xc6\xdd\xcc\x24\x87\x18\x44\x5e\xf0\xac\xf0\x13\x49\x13\x81\xd2\x6c\x3e\x38\x71\x27\x11\x81\xa6\x57\xb5\x71\x36\x47\xa1\x19\x6b\x09\x91\x0a\x4e\xe4\x36\x51\x52\xe6\x85\xc8\xc8\x6d\x32\xfb\xe9\x7a\xae\xbe\x35\xd7\xd7\x2b\xba\x85\x48\xbe\x0b\xab\x40\xa4\x8e\xae\xd4\x6f\x2d\x94\xf0\x04\x7b\x89\x3e\xea\xad\xe0\x2a\x67\xb0\x35\x92\x44\x64\x7e\x65\x60\x7b\x84\x88\x49\xc6\x1a\xa8\x9e\xfd\xef\x5f\x31\x02\xb7\x9a\xa1\x30\xed\xa5\x4f\x33\xb1\xd5\x45\x73\x3d\x75\x11\x0d\x00\xe2\xfc\x39\x57\x4e\x4b\xe2\xd3\xd0\x55\x44\x60\xfd\xd6\x45\x54\x4d\x43\x1a\xb4\x96\x6e\xb0\xb8\xdf\x96\xd2\x13\x2e\xa5\x01\xf7\x7a\x78\x4b\xb0\x8d\x36\x07\xa8\xd3\xb6\xf2\x61\x66\x47\x74\x92\x00\xca\xcd\x0c\x63\xeb\xad\x53\xd3\x77\x3d\x04\xfb\x01\x45\x1d\x86\xd0\x9e\xb5\x30\x2a\x79\x21\x41\x1b\xdb\xe9\x95\x8e\x7d\x1e\xe6\xc2\x99\xc5\xaa\x2a\x5d\x58\x0e\x12\x07\x0f\x25\xac\xab\xf9\x82\x23\xbf\xe9\x6d\x23\x11\xca\x58\x2b\x65\x71\xa0\xfc\xe2\x4d\x88\xa9\xad\x64\x65\x63\x2b\x42\x3e\x07\xcb\xe1\xe0\x38\x60\xc6\x2c\xbe\xc7\x0b\xfc\x56\xd7\x9c\xe3\x13\x7d\x14\xd8\xe1\xe2\xc3\xc5\x69\x08\x55\x38\xbb\xb8\x39\xfd\xee\xf4\xaa\x92\xcf\x7f\xfe\x61\x56\xc9\xc9\xbf\xbe\xb9\xaa\xa5\xe2\x7f\xfb\xe1\xc3\xf9\x69\x03\xf3\x70\x7a\x73\xf6\xbe\x52\xf8\xdb\xdb\xab\xd9\xcd\xd9\x87\xca\xf7\xbe\x3d\xbb\x98\x5d\xfd\x57\xf8\x97\xd3\xab\xab\x0f\x57\xb5\xfa\x6e\x4f\xfa\xd1\x13\x95\x6e\xb4\xbb\x7f\x7c\x70\x36\xa0\x56\x6d\xdd\xc6\x55\x01\xe4\x03\x76\xf1\x40\xe4\xd9\xbe\xe5\x68\xd3\xf5\xe3\x50\x8e\x03\x37\x86\x69\xea\xa8\x55\xf7\xf4\x8a\xcd\x95\xa1\x4b\xf9\x61\xc7\x9e\xb9\xd5\x16\x4f\x81\x04\xec\x35\x00\x5d\x2d\x35\xc7\x2d\x09\xa4\xe3\xd0\xa6\x10\xc1\x5a\xf3\x4e\xbd\x32\x15\x3f\x7b\x4b\x6d\x1d\xfb\xda\xe9\xa9\xbc\xf6\x30\x22\x3d\x15\x1b\x4a\x5f\xa3\x83\xca\x2c\xd9\x80\x8c\xad\xa1\x60\x3f\x0c\x61\xf7\xa6\x1b\x66\xe5\x04\xcb\xb1\x4b\x5a\xb7\x3d\x6d\xa9\x9f\x7d\x6f\x6c\xfb\xa9\x92\x66\xdb\x6b\x54\x2d\x23\xda\x0d\x94\x59\x63\xda\x7d\xc3\xf3\xbb\xb1\xed\xa6\x4a\x9a\xed\x06\xb3\xef\x51\xed\x06\x87\x77\xd1\x4e\xa3\x33\xe2\x10\x0b\x8b\xa9\x36\xcf\xe5\xf8\xbb\xaf\x04\x0a\xd6\xc3\xda\x68\x36\xc0\xf3\x3e\x2f\x53\x3e\x3c\x90\x01\xad\x71\xdb\x95\xd7\x58\xe5\xaf\xe1\x53\xe8\xe1\x32\x13\xfc\x2e\xd6\x0f\x34\x1f\x75\x64\x28\x1b\x74\x9a\x57\x07\xc8\x9c\xe1\xf6\x8a\x28\x32\x8a\x40\x21\x4a\xcd\x17\x0f\x30\x39\x49\xbc\xe8\x68\x83\x05\xd2\xcb\x75\x22\x22\xa0\x7e\x52\x7e\x76\xe6\x0a\xad\xf9\x36\xf9\x66\x33\xab\xa6\x45\x44\x1d\x02\x5d\x75\x36\x34\x06\xd7\xf3\x60\x62\x29\x0f\xa8\xcc\x00\x4c\xb7\xcc\xe0\xcd\x04\x03\x22\x15\x38\x93\x33\xf3\xe0\xc9\x44\x24\x73\x11\x28\xc6\xb5\xde\xd8\x3f\x1f\x26\x85\x52\xf0\xa2\xd5\xed\x3a\xd8\x1f\xce\xa3\xa2\xe4\x09\x83\x74\x25\x62\x60\x44\x5f\x25\xfe\x25\xe2\x0a\x53\x63\x0a\xb1\x4d\x21\xab\x3f\xcc\xe9\x98\xab\x9f\x00\x28\x81\x53\xf0\x22\x67\xdf\x01\xe4\xc1\x7e\x99\x2e\xe1\x2d\x2f\xe0\x2e\xfe\x23\xd6\xe1\x3e\x9b\xce\x55\x45\x81\x29\xf8\x55\x45\x8c\x69\x3a\x57\x56\xad\x23\xd6\x51\x3e\x85\x17\xdf\x54\x67\xeb\x63\x52\x33\x37\x8b\x5d\xdf\x2d\xb5\xbe\x3b\x16\xea\x18\x7c\x52\xc5\x31\x2f\x0b\x7d\x0c\x70\x29\x9c\xff\xfc\xd8\x8a\x1e\x5b\xd5\xe8\xfc\x78\x23\xef\x05\xfc\xbf\xe9\xa6\xd8\x26\xff\x27\x4f\x37\xbf\x1c\xad\x93\xec\xc8\xfc\xf6\x28\xfc\xed\x91\xfd\xed\x91\xfd\xed\x91\xf9\x19\xfe\xbf\x74\x87\xe1\x1d\xf1\x0b\x37\x77\xd9\x64\xae\xa4\xca\x45\x56\x80\xf5\xf3\x90\xc9\xc2\x4b\x5d\xed\xd8\x8b\xbf\xfd\x8d\x4d\x33\xfe\x80\x19\xb1\x6f\x79\xc1\x2f\xd1\xbf\xf8\x8f\x7f\xbc\x80\x80\x2a\x66\x31\xa5\x3c\xfb\xb9\x14\xc5\x5c\xe5\xc2\x6c\x42\xf6\x7f\xe7\x0a\x22\xb0\xdb\xdd\xa2\x40\xbf\x2b\xfa\x20\xe3\x9c\x7d\x83\x65\x9e\x21\x1b\x69\x9c\x9b\x92\x3a\xd2\x09\x24\x4f\x5a\x74\xf2\x3b\x5c\xf4\x3f\x27\x6f\xe9\xfb\x23\xb6\xf5\xcf\x49\x75\x57\x5b\xb1\xa5\xfc\xe7\x04\x2e\xd0\x44\x73\x0b\xd6\x62\x6e\xf1\xc2\x3b\x99\x1a\xd7\xb6\x47\x1a\xd0\x80\x67\x0d\xd3\xb7\xef\x95\x6b\x64\x44\xb7\x9e\xfb\xc6\x31\x02\xb1\x02\x1f\x87\x80\xe8\xb9\x34\x3b\xe4\x1a\x3d\xa1\x60\xb9\x61\xcf\xc1\x26\xa5\xd0\xb9\x2b\x0f\x1d\x17\xf9\xef\xdf\x1c\x1f\x4f\xd8\x3a\x87\xff\x59\xfe\x0c\xff\x03\xe8\xa1\xa7\x22\xf5\x6d\x0c\xa6\x03\xc2\x35\x67\x79\xff\x4c\x3c\x05\x8a\xee\x53\xf0\xc8\xd7\x96\xe9\xb7\xa5\x8a\x13\xe1\x53\x1b\x2b\x21\x91\x44\x9b\x99\xb4\x13\xd5\x54\x1e\x82\x39\x5e\x8a\x88\x9b\x83\xaf\x51\x37\x82\x4b\xf5\xaa\x10\x0a\xbd\x61\x99\x57\x7b\xe4\xe8\xb9\x02\xb3\x18\xa0\x90\xbc\x20\xc8\xb9\x80\x3f\x42\x25\x40\xcc\x3e\xa9\x7f\xc4\x76\xba\x24\x8e\x71\x60\xce\x8d\x45\x94\x80\x90\x83\x65\x0f\x62\x99\x28\xca\x4c\x31\xce\x52\xae\x62\x9e\xc3\x0a\x5c\x65\x10\xed\xcc\x18\x6f\x36\x74\x82\x70\x5c\x5d\x16\xc0\x89\x85\xc8\x82\x70\x24\x90\x04\x3e\x68\xf3\x24\x68\x04\xde\x09\xc0\x45\xdd\xf8\xe1\x74\xae\xac\x1e\x21\x61\xe1\xd0\x53\x16\xe9\x74\x47\x8c\x47\xf5\x41\x97\xd6\x73\x46\xc3\x3d\xf1\x78\x93\xfa\x77\x27\x4c\x56\x43\x6b\xc0\x37\x5f\x04\x12\xef\x56\x24\xff\xa5\x50\x91\x8e\x45\x96\xbf\x32\xdb\x50\xba\x77\x07\xda\x0f\x32\xf7\x93\x01\xa7\x94\xb9\xdc\xc8\x5b\x68\x8a\x77\x02\x53\x66\x74\x2a\x0c\xe5\x6d\x76\xce\xfe\xad\xf2\x6b\x47\xc1\xb4\xb5\x97\xfe\xf3\x93\x22\x62\x42\x5c\xa7\x7d\x73\x3e\xde\x05\x81\x5b\x36\x3c\x71\xb1\x50\xb4\x71\xc8\x38\xb1\x7a\xda\xb2\x00\x85\xcc\x4c\xe4\xc5\x5c\xd1\x0d\x3c\x61\x2b\xc1\x8d\x9d\x37\x61\x51\x7e\x8f\x87\x31\x5e\xf7\xc5\x83\xf6\x18\x1c\x2b\x6f\x03\x60\xd8\x4a\xe1\xde\x49\x8c\x5f\xe3\x94\x81\x8d\x00\x83\xae\x17\xba\x33\x55\x60\xb0\x5a\x0f\xc4\x47\x8c\x83\x55\x4b\xa9\x2b\xac\x85\x62\x3d\x30\x12\x3b\x0c\x14\xb3\x7a\x3b\xf0\x03\x73\xf0\x60\xef\x10\x06\x12\x1c\x8e\x60\x71\x13\x96\x16\xf7\x99\x8f\xe1\x86\x94\xf5\xe0\x9b\xe9\xda\x54\x3d\x03\x01\x0d\x78\x9c\xdf\xc2\xfc\x74\xaf\xc3\x2a\x17\x99\x95\x72\xc1\xbe\x22\xc1\xe4\x46\x66\xf1\x51\xca\xb3\x62\x67\x97\x6f\x22\x97\xa0\x00\x91\xc8\x3b\xc1\x66\x59\xa6\x1f\x9e\x7a\x14\x3a\x8f\x96\xae\x17\xf6\x21\x48\xf6\xb1\xaf\xfc\x56\x7a\xd9\xba\xbb\xe3\x71\x54\xb6\x5d\x8e\x8f\xd6\x7a\x32\x51\x64\xbb\x85\x59\x88\xdb\xb4\xf3\xa4\x18\x94\x34\x31\xdc\xc8\x1d\xc7\x92\x5b\x73\x61\x74\xb2\xe4\x56\x66\xf5\xd7\xc3\x92\xdb\x42\x80\xdb\x64\xc9\x3d\xbb\x38\xbb\x39\x9b\x9d\x9f\xfd\x7f\xb5\x12\x7f\x9a\x9d\xdd\x9c\x5d\x7c\xb7\x78\xf7\xe1\x6a\x71\x75\x7a\xfd\xe1\xf6\xea\xe4\xb4\x9f\xf6\xaa\xd9\x7a\x6f\x82\x1f\xb1\xb0\x9e\x37\xec\x26\x00\x6a\x60\xb2\x01\xd9\xdf\xa4\x8f\x0b\xab\xca\x6c\x66\xa9\xd6\x13\xd8\xa8\x6f\xd8\x69\x96\x9d\x6d\xf9\x5a\x5c\x96\x49\x02\x70\x2a\xcc\xec\x39\xc9\x04\x3c\x3c\x27\xec\x52\xc7\x67\xc1\xef\x20\x1d\xb1\xb5\x1b\x50\x3f\x8f\xe3\x4c\xe4\x39\x56\x3f\xa1\xfa\x03\xf0\x90\x4b\x75\x24\xf0\x1c\xbf\xe7\x32\x31\xef\xb7\x37\xec\x5b\x1e\xdd\xe9\xd5\x0a\xd3\x67\x26\x2e\x71\x8a\xfd\x5c\xea\x82\x33\xf1\x4b\x04\x54\x6f\xed\xeb\xe4\x5c\xaf\x3f\x03\x54\x79\x40\x78\xaa\xe3\x91\x02\x52\x77\x8b\xf6\xeb\xbc\xfd\x20\xa0\x5e\xbe\xc7\x9f\xbe\xc3\x5f\xb6\x3b\x28\x8b\xe4\x09\xd2\xe3\xcf\xf5\xba\x5d\x78\x08\xac\x6b\x52\x4b\xa2\x40\x42\x44\xec\x22\x7a\xcd\x72\xa9\xee\xe6\xea\xa7\x8d\x50\x4c\x97\x19\xfe\x09\x9e\xf9\xc6\xcc\x4c\xca\x7c\x23\x40\xa6\x7a\xc2\x1e\x04\xdb\xf2\x1d\x9a\xcd\xf0\x26\x70\x6a\x29\xb0\x64\xe0\x16\x31\xbf\x4e\xa4\x32\xa7\x45\x2a\x6d\x5e\x42\x7d\xea\x9f\xe2\xc5\x65\x89\x0e\xf9\xe1\x3c\xc4\x7d\xf7\x69\x05\x9f\x07\xae\x32\x8f\x9b\xb4\x00\x21\x3a\xb9\x41\x54\x56\xeb\xbb\x32\xf5\x94\xa8\x2f\x6c\x70\x12\x86\xfb\x5e\xcb\x98\xc5\x65\x9a\xc8\xc8\x9d\xbb\x0f\x3a\xeb\xe4\x7d\xc6\x04\x9a\xe1\xb7\x4e\x3d\x2d\xac\xaf\x63\x2d\xd9\x39\x01\x92\xae\x87\x01\xfa\x99\x39\xb0\x99\x54\x51\x52\x82\xcc\x5c\x99\x8b\xec\xc8\x49\x47\xbb\x5c\xbf\x5f\x3f\x49\xb6\x27\xe1\x3c\x3c\xad\x2d\x4c\x3a\x4f\xf4\x5a\x46\x3c\x09\xc1\xcd\x1e\x15\xe1\x58\x78\xed\xb6\x27\x31\x61\xc8\x83\xb0\x0d\xea\x24\xd2\x4a\x33\x01\x44\xd0\x0b\x38\xca\x17\x74\xdc\x1d\xd2\xee\x15\x33\x0f\x74\x6c\x57\xc8\x91\x6b\xc3\x0b\xf6\x86\xf3\x75\x5b\x25\x36\x30\x31\x51\xc2\x9f\xe9\x07\x25\x32\xb0\x60\x01\xf6\x61\x7a\xaa\x34\xd8\x26\x4e\x9d\xcd\xe1\x93\xad\x3a\xe1\xca\x01\xb1\x31\x73\x76\x2d\xef\x85\xfa\xf4\xa4\xe6\x41\x05\x11\x8f\x36\x62\x61\xed\xf2\xa7\x3e\xb2\xdc\x05\x30\xf2\xb0\xb2\x32\x29\xe1\x51\xea\xc2\x9b\xf0\x74\xc2\x16\x37\xcf\x2e\x0c\x24\xf6\x64\x64\x99\x46\x2c\x62\x11\xdd\x7d\xf2\xa3\xd9\x83\xac\x6c\x43\x18\x67\x6f\x45\x74\xc7\x6e\xaf\xce\x30\x1b\x58\x16\xcc\x1c\x05\xf9\xc6\xcb\x3e\x75\xbe\xdd\x0a\xbe\x7e\x06\x0a\xab\xa1\xba\x55\x5e\xaa\xc0\xa9\xf5\x99\x06\x11\x20\x0a\xf2\x25\xcd\x21\x49\xb9\x34\x00\x04\xe3\x85\x55\x33\x02\x47\x3c\xcb\xb7\x20\x5e\x54\x16\x81\xe2\x5f\xc2\x97\x22\xe9\x20\xee\x4c\x75\xbc\xb0\x71\x92\x43\xc1\x3c\x8d\xb2\xac\x1f\x83\xa2\x8e\x36\x8f\x81\x1b\x8b\xf5\x86\xbe\xc8\xee\xbe\xce\x03\x7a\x0d\x1d\xf2\x87\xc3\xbb\x9e\xe7\x90\xde\xbd\x92\x6b\x1b\x6d\x93\x2b\x92\x58\xc2\x84\x7e\x63\x07\xc3\x79\x69\x4a\xba\xd4\x31\xc1\xf4\x1c\x17\x9e\xb1\x82\x04\x79\x4f\x3c\xae\x22\x6c\x82\xc5\x01\x42\xbd\x66\x47\x08\x1e\x33\xbd\x22\x6f\x62\x9a\x26\x12\x98\xa1\x63\x24\xa1\x07\xf6\x8c\xbc\x8a\x8e\x0f\x4b\xb3\x8d\x0d\x48\x3e\x2e\x2d\x10\xaf\x4b\x8c\x17\x0e\x0c\xcc\x60\x58\x00\x1b\xdc\xe2\x9e\x77\x93\xa9\x3d\xbb\x62\x5a\x47\x7b\x5c\x34\xb9\x4a\x09\x5b\x21\xed\x23\x5f\x01\x5e\xeb\x36\x21\x3f\xe2\x49\x54\x52\x9c\x0c\xe4\xf2\xad\x0a\x7e\x3f\x82\xd0\x47\xfd\xcc\x44\x57\xbd\xfe\x75\x23\xf3\x50\x75\x45\x97\xa0\xf5\x58\x9f\x42\xbf\x7b\x71\x9d\xe8\x25\xac\x9c\x6e\x94\x60\xcf\x8d\x65\x8e\xeb\x4c\xc6\x63\xec\x1d\x3b\x26\x1f\xdc\x4f\xfb\x1a\xf8\xc1\xba\x7e\x5c\x4d\x76\xdd\x33\x12\x32\xa8\x31\x37\x8e\xa3\x40\x58\x91\xaa\x6a\xf5\x79\x52\x90\x8c\x07\x2c\x2b\x77\x3f\x75\xf8\x19\xaa\x7d\x39\x68\xa2\x9b\x4c\x31\x7b\xc6\xd2\x93\xcb\xf4\x4f\xf2\x01\x74\x1f\x78\x94\x39\xce\x8f\x6e\xcf\xa2\x8a\x45\xbc\x78\x44\x1f\x4e\xe9\xb7\xc3\xfa\xe2\x46\x1a\x9b\x07\x3e\x40\x75\x64\x4c\x85\x98\x67\xb1\xef\xc7\x04\xf6\x7b\xc4\x53\x70\xc3\x43\x58\xe3\xfe\xf5\xd4\xd6\x71\xe5\xb3\x8b\xcc\x79\x89\x39\xff\x88\xdf\xd6\x2d\x1a\x38\xfb\xd6\x91\x5b\xa4\x08\xef\x36\x2b\xc7\x2f\xd7\x4a\xde\xcd\xa0\xb5\x5b\x5f\x61\xf6\x00\x3f\x64\x71\x3d\xc7\xd9\x51\x16\xda\x47\x7b\xa0\x3f\x67\x40\x3b\x1c\x66\xf4\xc1\x01\x79\x16\x77\x20\x45\xac\xf9\x6d\x0f\xa1\x11\xf8\xe3\x51\x08\xe8\x34\x13\x36\x6e\xb8\x13\x85\xe3\x75\x48\xac\xae\x20\x84\xc5\x5c\xaf\xab\xc4\x36\x96\xbb\xc2\x91\x91\x41\x10\x8b\x4c\xfd\x48\x6f\x53\xad\x00\x96\x84\x59\x6a\x73\x45\x85\x5b\x75\x78\x17\x59\xab\xa4\x3a\x4e\xc8\xa1\x89\x89\x33\x22\xd7\xc9\x3d\x85\x50\x03\x11\x13\xd0\x95\x34\x0d\x3c\x31\x6f\x43\x9d\x21\xc1\x96\xbd\xd9\x21\x13\xa0\x26\x91\x9e\x89\xb5\xcc\x0b\x11\x66\x87\x86\xbf\x7f\x32\x35\xdb\x8a\xf3\xa4\x6f\xe8\x3b\xd5\x6c\xf7\xbd\x82\xcc\xf9\x34\xa2\x3d\xbb\x54\xc4\x67\xee\x77\xfd\x8b\xa1\x96\xc0\xef\x8f\xc3\xca\x7d\x87\x6b\x00\x5f\x7f\x39\x52\x7d\xe5\x4e\x7e\xc4\x4d\x12\x91\x30\x71\x0f\x68\x34\x53\xb4\x2e\x79\xc6\x55\x21\x44\x3e\x57\x14\x78\x46\xca\xba\x90\x95\xa5\x06\x84\x74\x6f\x9b\x48\xe7\x05\x32\x40\xc1\x4f\x56\x5c\x26\x65\xd6\xe9\x6e\xc0\x55\xf9\x28\xda\x89\xbe\x51\x3a\x81\x62\x59\xdb\xa4\xb9\x04\xe6\x60\x17\x39\xd6\x94\x7a\xd8\xb8\x9a\xdf\xdb\xd1\x05\x7b\xb9\x0c\x9f\x6f\xe7\x6b\xee\xc8\x69\xfe\x3a\x5f\xa4\x7a\xc4\x89\xf7\xc3\xd7\xf9\xa5\xee\xc8\x06\xcf\x7f\x6e\xf8\x44\x7b\xe0\x13\x3f\x77\x09\xb2\xf0\xfc\x0e\x22\x8f\xfb\x5c\x31\x83\xd8\x38\xf7\xc6\x27\x3b\xcf\x2e\x58\xb5\x1b\xae\xe2\xc4\x98\xbc\xbc\xa8\xf3\x5e\x3b\x9c\xb7\x79\x12\x15\xf6\x70\xec\x4e\xea\x83\x1c\x99\x45\xd4\x48\xb0\xdc\x37\x4e\xb5\xcc\xcc\x5e\x2c\x65\xad\x96\x6a\xbe\x64\x5b\x9e\x8e\xb7\x61\x48\x06\xd9\x6d\xd8\xcf\x6e\xbf\x9c\x86\x6d\xff\x44\xe6\x4b\x75\xaf\xad\xe4\xfa\x57\xe0\x48\x78\xdf\xbc\x12\x22\x3a\x73\xe8\xa2\x76\xd9\x0d\x07\x9e\x3a\x90\x48\x66\x4e\xed\x90\x71\x7c\xae\x48\x0e\x1e\xd1\x05\x10\x56\x46\xbe\xb5\x9c\xbd\x76\xd9\xc5\xaf\xff\xcd\xb2\x6d\xed\xd8\x0a\x16\x15\x50\xda\xe9\x28\x2a\x33\x08\xfd\x93\x7b\x92\x09\xbc\x84\xf3\x51\x44\x32\x60\x7a\x38\xc0\x16\xda\x89\x6d\x66\x92\xf3\x47\x57\x3a\x75\x03\x6e\x48\x14\xb6\x77\x97\x3e\xe9\x95\x65\x79\xc1\xf2\x42\xa4\xad\xc7\x6f\xc5\xba\xdc\xa5\x62\xa6\x94\x2e\xea\xf9\x29\xa3\xed\x4b\xee\x4a\x19\xb8\x75\x46\x5c\x46\xb3\xc0\x65\xf4\x87\xeb\x0f\x17\x2c\xe5\x3b\xc0\x3e\x16\x9a\xe1\x57\x81\x70\xb4\x7e\x50\xed\x9b\x81\x6a\xe7\xab\xa7\x0a\x8e\xa9\x05\x51\xb7\xc7\x27\xa8\xc6\xa6\xb1\x08\x6b\x86\x96\xa4\x39\xb3\x32\x9d\x1c\xa5\x09\x57\x01\xbc\x3d\x9f\xb2\x5a\xf5\x21\x9e\xc1\x45\x36\x09\x31\x06\x0d\x00\x7f\x05\xad\x85\xac\x6c\x05\x40\x03\xef\x8e\x5d\x50\x87\x41\x18\x3a\xcf\x88\x5e\x60\xe7\x7b\x54\x81\x41\x4d\x04\x64\xcf\xb0\xb0\x0c\x87\xec\xe1\x39\x80\x6e\x3b\x19\xc0\x79\x94\xf0\x3c\xef\x45\xe9\x3c\x0b\x95\x7c\x90\xb5\xb8\xff\xf8\xaa\xb6\x13\x61\x84\xc0\x6d\x82\xef\x52\xf7\x31\xb0\x25\xd8\xa3\xcb\x8b\xbe\x05\xf6\x7e\xa0\x06\x41\xd0\x07\xe2\x8b\x82\xdf\x23\x13\xe4\x9d\xd8\x59\x0f\x17\x1d\x55\x7c\x2b\x26\xce\xd9\xea\xbc\x89\x01\xe8\xaf\x59\xf0\x5c\x01\x2a\xf6\x5d\xd8\x3c\xf6\x4e\xeb\x09\xe2\x33\xa9\x72\x8e\xc5\xf2\x10\xe1\x34\x57\xef\xb4\x9e\x72\xf7\x88\xa5\xf6\xd3\x71\x53\xaf\x90\x50\x51\x80\x39\xac\x4d\xe7\xf0\xbd\xf9\xbd\x54\x28\x4f\x28\xb7\xe6\x01\x45\xe3\x04\x2b\x0a\x1a\x64\xd5\xf0\xf5\x43\xce\x62\xa4\x94\x29\x65\xbe\x81\xb0\x0b\xc6\x39\xa1\x7e\xba\x52\x10\x90\x95\x71\x95\x9b\x3d\x0c\xa1\x1a\x71\x2f\xc8\x5f\x5b\xc1\x18\x9c\xbd\x3d\x77\xb0\x25\xdc\x97\x24\xdd\xd1\xb1\xdb\x82\x47\xc7\x21\x8f\x73\x80\x9b\x8f\x20\xb4\x23\x07\xe7\x7b\x9e\xf6\x25\xc3\x1e\x5c\xe2\xbe\x59\x72\x84\x5a\xf5\x17\x15\x28\x99\x83\x86\x61\x25\x23\x36\x1c\xbd\x5b\x75\xe0\x8d\xd3\xca\x69\xbf\x5f\x72\x67\xb0\x83\x61\xe4\x51\xb1\xff\xba\x09\xb8\x2d\x1d\x64\xd0\xbd\x05\xcd\xc1\x0e\x0a\x71\x40\xca\x87\x5b\x7a\xca\xae\x85\x60\x1f\x61\xa4\x4c\x65\x1f\x49\x81\x14\x50\xd0\x05\x97\xad\x02\x71\xf0\xed\x33\xb5\xd2\x87\x9d\xff\xd9\xba\x81\xb2\x3d\x68\x54\xda\xdb\x79\x28\x8e\x17\x3c\xfd\xea\x79\x69\x45\x06\x5d\x0c\xb5\xb9\xbe\xf4\xfe\x26\x4a\x36\xb6\x2d\x35\x26\x19\x4c\xf1\x63\x88\xeb\x6a\x8b\xc4\xf4\x72\x82\x64\xec\x77\x4a\x3f\x28\x3c\x8f\xa9\x26\xf6\xd2\xec\x3f\xb0\x59\x30\x2e\x84\x96\x60\x89\xa7\xe1\x2b\x60\x87\x9f\xb9\x7f\xb3\x6b\x0c\x81\x63\x9b\x41\x3a\x2c\x07\x7b\x97\x44\xbf\xe0\x02\x7f\x39\x9b\xb0\x6f\x27\xec\x64\xc2\xa6\xd3\xe9\xab\x09\x13\x3c\xda\xd8\x16\xe1\x4f\xf0\xe8\x2f\xf8\xda\x94\x4d\xb2\x3f\xab\xa0\x02\x90\x07\x34\xf6\x89\x25\x41\xe4\xfe\x5b\x81\x57\xcd\x76\x01\x53\xb3\x29\x8f\x8c\xe0\x42\xd1\x46\x4b\xdf\x28\x40\x9e\x8b\x48\x67\x16\xbb\x9e\x17\x3a\xb3\x38\xdc\x7b\x9e\x71\xa9\x80\xb1\x82\x37\xb3\x10\xa8\xe6\x80\xb3\x5e\xfc\xc2\xb7\xd0\x7f\xa9\x1c\x6d\xaf\x19\xa6\x1b\xd7\xfe\x62\x97\x52\x9c\xed\x21\x93\x45\x61\x0c\xb2\x7c\xae\xae\xd9\x9b\x6f\xd8\x2c\x4d\x13\xc1\x66\xec\xef\xec\x5b\xae\xb8\xe2\xec\x5b\xf6\x77\x76\xc2\x55\xc1\x13\x5d\xa6\x82\x9d\xb0\xbf\x9b\x61\x33\xe5\x5d\x68\x63\x01\xed\x26\x8c\x33\x55\x26\x68\xe8\xbd\xb4\x18\xd7\x57\xae\x5f\xdc\xcf\xce\x52\x14\x0f\x42\x28\x96\xeb\x2d\x5d\x85\x7f\x72\xb7\x7f\x2e\xd5\x3a\x11\x05\xad\x87\x2a\x1a\x19\x2b\x38\x82\x9e\xbe\x99\x2b\xe7\xa7\xfe\x93\x69\xf1\x9f\xd8\xdf\xd9\x45\x99\x24\xa6\x49\xe6\xa0\x31\x0b\xe9\x0d\xb3\xd9\x61\x42\x4d\x1f\xe4\x9d\x4c\x45\x2c\x39\xe4\x87\x99\x7f\x1d\xdf\xc0\x6c\x2f\x4a\x4f\x05\x1a\xee\x69\x27\xc7\x76\xc8\xd1\xf3\x2c\x5c\x13\x4e\x2c\x30\xb4\x56\x3a\x41\x28\xe1\x4f\xc7\x1b\xc1\x9e\x00\x99\xf6\x03\xbd\x51\x50\x4a\x2f\x0c\x50\xb6\xd7\xef\x54\xbf\x52\xf3\x5f\xad\xf4\x1f\x83\xd4\xbf\xfa\xc6\xc3\xb7\x11\x8c\x53\x9c\x1c\x9f\x9c\x09\x0f\x19\xc8\x25\xc4\x7d\xb7\x03\xc9\x0f\x5b\x36\x3e\x3b\x31\xbc\x6d\x9e\xd2\x68\x8d\x16\x7c\x3d\x61\xa9\xd3\x91\xb2\x9b\xca\x05\xb6\x71\x1f\xa3\x66\x02\x19\x9b\x2f\x2d\x80\xc8\xac\x65\xca\x3f\x3c\x8e\xf5\x96\x4b\xf5\x0a\xea\xb0\xd4\x79\x7b\x06\xaa\xe5\xb9\xb2\x7f\x84\x6e\x78\x2f\x9a\xb1\x9b\xda\xbf\x6a\xec\xd4\x24\xdc\xda\xb6\xc3\x81\x1a\x66\x5e\xe1\xf4\x13\x3e\x87\x7e\x6c\x2c\xd1\xc1\xda\x07\xa4\x37\x56\x61\x4f\x01\x5b\xde\x33\xc8\x0d\x8a\xad\x3b\xe5\xb2\x1f\xab\x12\xaf\x95\x21\xd6\x72\x90\x16\x6e\xad\xb1\xb7\xf4\x12\xc3\xbc\x67\x73\x4c\xca\xe4\xd8\x1c\x95\xc7\x17\x5a\x09\xc6\xf3\x5c\xae\x91\xf5\x0e\x1c\x6a\x28\x22\x6b\x8d\xb2\x9b\xea\x93\x21\x38\x82\xc0\x3e\x33\x4d\x42\xc4\x74\x61\x4e\x61\x33\x05\xc9\x6e\xae\xcc\x2f\xc8\x22\x80\xec\x29\xe9\xc8\xd1\xb1\x36\xe2\x1e\xb7\x75\xd1\x85\x18\x14\xde\xb2\xc0\xfa\xa8\x19\x0e\x58\x70\xb4\x13\x0f\x88\xb8\x5d\x04\xc4\xa0\x54\x9a\x65\x8d\x42\x38\xcd\x52\x24\x5a\xad\xcd\xaa\xe8\x3a\x84\xe1\x14\x78\xa2\x26\x60\x61\x9d\x2d\x30\xc6\x0a\x7d\x85\xa6\xc4\xd8\x29\x32\xf6\x2e\xb5\xbc\x5c\x1a\x3b\xce\x45\x7b\x9c\x35\x42\x9d\xeb\xe2\xa9\x38\x0c\xb6\x74\x6b\xce\x60\x9d\x59\xe0\x9c\x8b\x24\xa2\xe1\xe2\x39\x9c\xb0\x47\xc3\x36\x55\x6f\xbe\x45\xbb\xf7\x91\x22\x95\x0d\xc6\x8e\x01\xeb\xf1\x73\xa6\x5e\x0c\x49\xc8\x78\x37\x3b\x3b\xaf\x7d\xaf\x99\x90\xd1\x92\xb5\x71\x73\xf6\xfe\xf4\xed\xe2\xc3\xed\x4d\xe3\x7b\xa6\x34\xfa\xd3\x9e\x9c\x8c\xce\xd1\x7b\x0a\x54\xfa\xcf\xa8\x22\xb6\xd0\x2b\x9b\xa0\x3f\xfc\x82\x6c\xe8\xb8\x0d\x03\x3f\x16\xc1\xfb\x36\xd4\x3b\x6b\x2e\x9c\x4e\x9a\x11\xb5\xa0\x68\xe7\xb0\xc6\xd6\x07\xec\x83\x7a\x87\x3f\xbf\xd4\x89\x8c\xfa\xb1\xd4\xf6\xba\x32\x76\x4d\x13\x9c\xba\x14\x90\x5c\x40\x2e\x57\x6a\x14\xbe\x90\x0a\x11\x15\x3e\x9a\xdf\xec\xdc\xff\x6a\xfc\xe6\x7e\x1f\x08\x7a\x42\xdd\xb0\x81\x3c\xb8\xc3\x07\xc0\xdd\x0a\xbc\xcd\x20\x57\x82\x76\x26\xf8\x56\x01\x37\x13\x71\x8a\xfa\x54\x46\x1e\x0e\xe8\x87\x8d\x4e\xc8\x23\x8a\x1c\xd8\x73\x95\x8a\x2c\xd2\x80\x7b\x44\x7a\x15\xcd\xa2\x8d\x4c\x62\xaf\x09\xf6\x12\x12\x45\x00\xce\xfd\x8a\xe4\x6d\x85\xc3\xaf\xd8\xe2\x7b\x6e\x5d\xbb\xec\xde\xe2\xee\x3e\x08\xfb\xf5\x94\xc8\xef\xbe\x65\xff\x13\x21\x94\x71\x28\x88\xb5\xae\x86\x44\x00\xc3\x3b\x6c\xcf\xa8\xa0\x8a\xb9\x6e\x49\xee\x29\xf2\x0f\xd7\xa2\x36\xaf\xb4\xcc\xea\x43\x09\x5c\xe6\xe8\xc9\x46\x18\x5e\x2e\xa0\x39\x5b\xc1\xd1\x16\xf3\xcc\xc2\x34\xa9\x73\xe5\xb1\x17\x2f\xf2\xd0\x2e\x6b\x9d\x67\xf4\x7f\x5b\x6c\xf9\x84\xbd\xa8\x74\xf4\x05\x70\x5d\x2b\x0d\xf5\x51\x7c\xbc\x32\x34\xb0\x5c\x27\x4c\x16\x73\x65\x5e\x4d\x66\x65\x66\x22\x11\xf7\xa6\x75\x61\x7c\x86\x10\x83\xd6\x77\x61\xbb\x0d\xe9\x49\xdc\xb2\x5a\xd0\xb2\xa1\x4d\x98\x85\x9c\xc9\x18\x18\x8e\x45\x6e\xec\x46\x50\x7b\x12\xbf\x98\x0d\x20\x21\xfc\x88\xd0\xb2\x58\x28\xdb\x3e\x40\x9c\xa1\xd2\xfe\x5c\x9d\xad\x80\x5a\x00\x08\x0d\xe2\x18\xbd\x00\x56\xff\xc7\x11\x58\x4a\x8a\xc7\x68\xf2\x89\xd8\x89\x20\x75\x66\xdc\x49\xe2\x5e\x64\xbb\x02\x9c\xea\x30\xae\x4a\xf0\x62\xc3\x64\x31\x01\xe6\x51\x7b\x52\xce\x15\x8f\x63\xca\xc8\xc6\xe2\x82\x07\x65\xe7\x3c\xd3\xe7\x4b\x7d\xdf\x67\xd8\x1e\x8a\x9d\xc5\x5d\x9d\x26\x5c\x2d\xf0\x06\xf9\x0c\xe8\xd9\x40\x38\xbb\x0b\x46\x51\x2e\x17\x8e\x2d\xed\x49\xda\xe9\xce\xfb\x2b\x0b\x1e\xa6\xc7\x45\xb9\xb4\x15\x4d\x2a\xe0\xe8\xa5\x27\xd6\x70\x7e\x32\x42\x2e\x65\xcc\xa2\x3b\x86\x9f\x02\x1e\x58\xcb\x6b\x28\x27\xbb\x5a\xf7\x21\x6b\xed\x0a\xf8\xb5\x62\x1f\x87\xcc\x7c\xed\x0e\xa9\x4f\xfb\x78\xd8\x5d\xc3\x42\x7c\x14\xf4\x6e\x4f\xb3\x9e\x17\x7e\xd7\xe9\x47\x69\xc2\xf0\x6c\x6f\x83\x08\x3b\x81\xf7\xd1\x0f\xea\x5c\x58\xed\xc2\xe8\xe1\x3b\x4c\xb7\x20\xd4\x9f\x32\x46\x00\xe7\xd4\x50\x4f\x89\xa7\xf4\x80\x76\x4d\xd9\x99\x62\xd6\xdc\x9b\xb0\x17\xb8\xb0\xf2\x17\xe4\x02\x26\x75\x7d\x82\xab\xc4\xb4\x7b\x88\x04\xa1\x0e\xf3\xc2\x54\x34\xbf\xdd\x30\x12\xd7\xcb\x98\xfb\xac\xe3\xf2\xad\x84\x54\xb8\xc7\xb0\x9d\x60\x14\x77\x89\x05\xd8\x4c\x8e\xc0\x19\x49\xdd\x85\x68\x82\xef\xb0\x8d\x37\xb2\x6f\xed\x0f\xcd\x10\xa5\x25\xdd\xa7\xf6\x73\xa6\xb3\xb9\xb2\xa5\x91\x4b\x38\x47\x89\xbe\x7a\x51\x41\x66\x0e\xd9\xfc\xc1\x4a\x85\x60\xbc\x55\x65\x04\xb1\x4f\x4f\xeb\x5d\x3f\x05\x00\x87\xb4\x74\x18\x50\xd0\x81\xf0\xb5\x19\xc3\xc3\x2c\xf0\x2d\x5e\xf3\x75\xea\xdf\x24\x31\x83\x22\x0b\xcb\x34\x1c\x64\xcd\xe5\x25\xf0\x65\xaf\x4a\x73\x18\x05\xa4\xe2\x73\x65\x06\x8f\xad\x24\x64\x4f\xd0\xb8\xcc\xd5\x7b\x9d\x5b\x92\x96\xdc\x8f\x87\x0d\xed\xd3\xb0\xbd\x70\xe2\x94\xf4\x87\xb7\x70\x69\x53\xcc\x05\xe9\xd6\xdc\xd5\x02\xe9\x92\xc4\xb4\xb4\xd3\x65\xe6\x3b\x15\x71\x35\x57\xff\x6d\x86\x07\x9e\x53\x5c\xd9\x69\xd5\x2b\xdc\xc2\x30\x83\x10\xac\xfa\x88\x85\xbe\xfc\xb7\x57\x1f\x5f\x61\x7a\x53\x99\x83\x1e\xf0\xa4\x7a\x81\x38\x7d\x89\x32\x49\x00\x09\x60\x7b\xe0\x38\x8e\x7c\x15\xbd\x48\x38\x7a\xd4\x2d\x54\xd5\xc4\x18\xb2\xd1\x87\x39\xd6\x67\x2c\xe2\x45\xb4\x39\xb2\xb6\x1c\x1d\x63\xf6\xf6\xa3\xe9\xc3\x3c\x24\x63\x69\xb5\x4b\x2c\x98\x07\x67\xb6\x75\xa4\xaf\x95\xf5\x62\xba\x00\x0e\xf8\x9b\xba\xde\x98\xe3\xa4\xc6\xc5\x89\x48\x9c\xaa\x9d\xe7\xbe\x6e\xd5\x3e\xfd\x8b\x93\xa2\x14\x8a\x6f\x45\xcc\x5e\x40\x22\xee\x0b\x3b\xf9\x73\x95\x2e\xa7\xc9\x6e\x55\x10\x73\xa0\x19\x94\x29\xe8\xe2\xed\xb9\xe5\x16\x71\xf3\x99\xb4\x67\xb0\x3b\x1f\x5a\xed\xb6\x8e\x1b\x1b\x57\xd3\x70\x83\x05\x7d\x5c\x6e\x74\xae\xab\xa8\xbc\xaa\x40\x07\xcf\xef\x26\x6c\x99\x71\x05\x92\x46\x71\x68\x54\xf9\xdd\x09\x8f\x67\xa4\xe5\xb3\x99\x79\x8a\x27\x3b\xc8\xc0\x99\xcc\x15\x72\x18\x02\xd9\xfd\x2e\x4a\x64\xc4\xd6\x19\x4f\x37\x35\x3b\x48\xdc\x0b\x55\x80\x32\xf6\x95\xe0\xf9\x61\x68\x89\xac\x5e\x02\x1b\x1c\xcf\x9a\x29\x78\x7d\x70\x55\x63\x9d\x86\xe6\x75\x5c\x2d\x80\x90\x14\xf1\x62\x1c\xe3\xd4\x5e\x5e\xe4\x0a\xdb\x26\x51\xbf\x41\x04\xd8\x74\x8e\xd9\x5a\xf7\xc1\x0f\x70\x5c\x89\x0c\xc9\x62\x6a\x0f\x85\x4c\x38\x72\xa5\x83\x28\x72\xcf\xaa\x56\x24\xf7\xac\x51\xde\x73\x4d\x81\x37\xf4\x54\xd8\x44\x04\x77\x70\x4c\x48\xb9\x14\xe8\x33\xd9\x1f\xcb\xa5\x4e\x2c\xff\xe8\xd9\x5b\xa6\x33\x90\xfe\x29\x34\xfd\x49\xc6\x5d\xd6\x81\x54\xb1\xf8\xe5\x20\x12\xa0\xfe\x8b\xde\x9a\xcd\xa6\x9a\x40\x61\xa6\xde\x59\x38\x9d\x32\x61\x2e\xe1\xc2\xbe\x8c\x1b\xdf\xca\xeb\x60\xe1\x59\x52\x6c\x00\xc1\x8b\x49\x32\x7e\x50\xb7\x7c\xc7\xa2\x0d\x57\xeb\xc0\x35\x01\x80\x4a\x91\xea\x0c\x25\x72\xef\x81\x6d\x53\x67\x96\x64\x81\xa8\x03\x28\x53\xc7\x05\x12\x10\x20\xaf\x2d\x3f\x00\x5f\xaf\x33\xb1\x86\x44\xd2\xb9\xaa\x90\x9f\x00\xd3\xa8\x55\xe7\xc1\x7a\xfa\xb8\x23\x9e\x86\x80\xa9\xeb\x35\x58\x64\x3b\x97\x79\x4f\xfa\xd2\x7e\x3f\xd7\x87\x75\xc2\xa4\x98\x4e\xd8\x57\x3e\x29\x40\x44\x5a\xb9\xd4\xfd\x8e\xbc\xed\x9a\xcb\x9f\xed\x79\x3a\x34\x99\x9a\xda\xdb\x0e\x9f\x35\x54\xaa\x5b\x17\x4d\x2f\xf7\x41\xc1\x8b\x72\xc4\x1d\x74\xc2\x0b\x9e\xe8\xf5\x89\xf9\xf1\x35\xfe\xb6\x6f\x5d\x9f\x20\x62\xdf\xb2\xe4\x99\xef\x9b\x9b\xd3\xd4\xed\x59\xf4\xdb\xc6\x7a\xaf\x03\x39\xd1\xdd\x0e\xe4\xa7\x30\xd5\x2d\x15\xd2\x7e\x1f\x72\xd2\x41\xef\xd3\xd3\xa7\xb1\x2e\x62\x8b\xab\xa7\xd4\xa0\xbc\xfe\x8c\x6d\x39\x01\xd2\x4c\xc7\x65\x24\x62\xb3\x73\xe1\x3d\x84\x88\x24\xc7\x32\x54\x39\x24\xdb\x2e\xda\x0a\x55\x1a\xdc\xba\x9f\xca\xe7\x30\x88\x9d\xde\x0d\xff\x6d\x87\xbf\xc1\x5a\x7c\x6d\x83\x1e\xee\x4f\x1c\xa7\x6c\xe4\x3d\xe5\xaa\xaf\x72\xca\xeb\x4c\xae\xa5\xe2\x85\xce\xd8\x4b\xc7\x25\xf0\xca\x09\xd1\x75\x5b\x08\x23\x8f\x89\xca\x10\xe1\x31\xf1\x49\x0d\x8f\xb6\x45\x6a\xbe\x95\x17\x7c\x9b\x86\x2c\xcd\x4e\xe6\x9f\x46\x26\xc1\x41\x70\xb6\x09\xf8\x4e\x65\xee\xf3\x66\xe7\x8a\x22\x0e\x38\x6f\x3a\x0b\x65\x06\x3a\xef\xe6\xb4\x2c\x16\x8f\x64\x1e\xc3\x1f\x8f\x73\x3c\x11\x0c\xe1\x3d\x4f\xfb\xb9\x9c\x38\xb9\x1c\x30\x71\x90\xdc\x11\xde\x52\xa9\xae\xcf\x7e\x21\x9f\x91\xdc\xd2\xf5\xd0\xf9\xd5\xb9\x0d\x14\xf9\xf7\x60\xe5\x81\x05\x13\x81\xa4\xb6\x98\x88\x85\x4f\x7b\x77\xac\x99\x5b\xdc\x12\x40\x9d\x24\xba\x8c\x19\x1d\x6a\x14\x86\xcf\xa6\x78\x3b\x02\xcb\xf4\x74\xda\x95\x58\x36\x52\x60\xdc\x9d\x3f\xf0\xbb\xf6\x1d\x08\x9f\x75\x9c\xc0\xbd\x5b\x9f\x46\xf6\xd9\xa6\x9e\x46\x1a\xe6\xde\x1d\xc7\xa3\xe6\xde\x79\xc1\x81\xf2\x72\x9c\x83\x14\xde\xa3\x32\x4e\x60\xbf\x85\x01\x84\x16\x52\xee\x4a\x60\x36\xbf\x3b\xb8\x3a\xcb\x03\xd1\x5f\x55\xca\x33\xa1\x8a\x05\xd4\x38\xae\x32\xa8\xe4\x12\x7e\x5e\x31\x98\x06\x39\x82\xff\x7c\xa3\xd1\xbf\x6f\xf9\xad\xfe\xc2\xae\xc9\xa7\x65\xce\x2b\x09\x20\xde\xfc\x8e\xbd\x94\x80\x39\x0a\x62\xa1\x6e\xe2\x3a\xa6\x8b\x3a\xf4\x88\xd1\x0b\x3a\x54\x39\xda\x07\x75\xc8\xb7\x1e\x42\xd5\x50\x0a\xb9\xf7\x28\x2b\xdf\x1c\xb5\xf6\x6f\x81\xe6\xc5\x45\xe5\xdf\xc0\x4f\x6c\xe6\x2f\x61\x7f\x15\x99\xf6\x19\x58\xe8\xac\x0a\x0b\xee\xb5\xd7\x1f\x2f\xd7\x8d\xf6\x38\x0a\x45\x87\x4a\xa9\xf0\x17\xa2\x10\x43\x8f\xc2\x72\x67\x9f\x23\x1d\x21\xa4\x54\x44\x8b\x0e\x59\x9c\x41\x4d\x09\x1e\x9e\xa1\xcc\x8d\xac\x5d\x66\x76\x83\x1e\x83\xbf\x82\x52\x9b\xb6\x3c\x25\x7c\x1f\x41\xb9\xeb\xc1\x9b\x29\x74\xe2\xcf\x7f\xfa\xcb\x54\x76\x24\x59\x43\xd3\xc7\xc2\xa5\x5c\xe3\xdf\x65\x52\xa8\x18\x82\xb1\x3c\x6e\x2a\xb6\xa9\x8a\x77\xbe\x72\x3c\x9b\x65\xf8\x24\x19\xd9\xed\x57\x6d\xbe\xc0\x45\xf4\x09\x22\xfa\xfe\x90\x75\xdb\xb7\x12\xef\xeb\x32\x25\xf2\x45\xbc\x53\x7c\x2b\xa3\x4f\xda\xc6\x9d\x14\x49\x0c\x4d\xa4\xda\xf7\x45\xa5\x62\x11\xdd\x8d\xb5\x09\x1e\xad\x37\x21\xa2\x3b\xf6\xfd\xcd\xfb\x73\x94\x17\x96\xf9\x5c\x5d\xf0\x42\xde\x8b\xdb\x2c\x71\xe1\x00\x82\x49\x67\x89\xdd\x23\x55\xfe\xf3\x80\x6b\xcb\x92\xa5\x5b\xc3\x21\x94\xa7\xd8\xee\x8e\x96\x65\x74\x27\x8a\xe3\x8c\xab\x58\x6f\xb1\x1b\xc7\x79\xb9\x5a\xc9\x5f\xa6\x05\xcf\x3a\xb4\x2a\xd0\x8f\xf0\x19\xed\x5c\xaf\x40\x56\x78\x9b\x17\x4d\xdd\x07\x48\xb4\x26\x5d\xfb\x8a\x71\x8b\x79\x81\x7c\x2b\x80\x6c\x94\x55\x75\x5e\xa0\x14\xcc\x5d\x06\x39\xd4\x3c\xa7\x0c\x06\x4d\x62\xeb\x1f\x03\xe3\xfe\x63\xd0\x2a\x1f\xc2\x0e\x1b\xe5\x25\x46\xb7\xfc\x0e\xdf\x87\xeb\x4c\xe4\xf9\x84\xe5\x1a\x5a\x3c\x57\x36\x17\xc0\xe6\xab\x01\xee\x05\xe8\x8a\x93\x1d\x8b\x74\xea\x40\xeb\xd8\xaf\x8d\x7e\x00\x3f\x7d\x98\xa9\x0b\x22\xda\xa5\x2a\x64\xc2\xf8\xaa\x20\x27\x3e\x68\x33\x58\x2d\xb6\x7c\x3a\x57\x10\x8a\x8d\xa0\xfb\x00\x91\x70\xe1\x17\xd7\x89\x9c\xad\x78\x24\x13\x59\x10\x63\x1c\x24\x79\x71\xd3\x5f\x73\x1f\x98\xb1\xcc\xf8\x8e\x27\xfe\x61\xc5\x93\xd2\x27\x27\x1f\xe5\xa2\x87\x91\x54\xe6\x0b\x74\x10\x3c\xdf\x06\xf7\x28\x40\x19\x06\x1f\x90\xbd\x7d\x66\x2a\xbf\xa8\xdd\xa2\xbf\x0b\xff\xb7\xf2\x0e\xef\xb3\x0a\x0e\x78\x90\x1f\x72\x39\x36\x9f\xdc\x4e\xc0\xdc\xdb\x19\x32\xb6\xf8\xe0\x8a\x29\xee\xd3\x7f\xdd\xf5\x08\x31\x93\x8e\x47\xff\xd4\xca\xce\x35\x6b\x18\x31\x7a\xed\x46\xe2\x27\x72\x67\x74\x51\xea\x0f\x69\xbe\xf5\xc6\x5f\x6a\x9d\x1c\xea\x91\x27\x52\x0c\xa9\xd5\x02\x94\x98\x0f\x79\x4e\xe2\x02\x70\x8e\xad\xb3\xb7\x2e\xe6\xee\x38\xea\xab\xfa\x6d\x04\x07\xa3\x26\xc0\x41\x06\x8d\xe8\x41\x8a\xe7\x69\x0b\xe8\x62\x24\xe2\x1d\xca\x40\xb4\x96\x35\xed\x9b\x21\x82\x80\x1f\x85\xfb\x36\x02\x8f\x6f\xad\x85\xa3\x9c\x75\xa8\x9b\x5c\xab\xca\x39\xee\x42\xbe\x6f\x37\x8e\x41\xdd\x76\x3c\xb7\x5c\x91\xe7\x8f\xac\xf8\xb9\x0a\x2c\x76\xe4\xa4\xb3\x29\x05\x6e\xd4\xda\xfc\x79\x95\x65\x78\xb0\x3f\xef\x10\x51\x87\xde\x93\xf3\x6d\x28\xcf\x08\x58\x90\x48\x6f\x97\x52\x59\x56\x08\x72\x72\xc3\x53\x63\x66\x39\x73\x5d\x40\xc2\x3e\x19\x50\xb4\xa7\x36\xf6\xce\xcc\x09\xe9\x87\xc3\x23\x6b\xdf\x73\x3c\x7c\xdf\x3d\xad\xfe\x44\x47\xa4\xb1\xde\x03\x73\x81\x24\x0f\x7c\x97\x83\x84\xb9\x30\xa7\xe2\x0a\x1d\xbb\xd5\xf6\x4f\x02\xf3\xc3\xf2\x31\xcf\x15\x8c\x10\xf2\x75\xd9\x83\xd4\x9c\xac\xb0\x00\x13\x2b\xd6\xee\xb9\xd6\x5e\xe4\xed\x83\xf3\x79\x62\x35\x59\x6f\xac\x06\x83\xd0\xff\x33\xc2\x33\x3d\x4e\xe0\x03\x7d\xd1\xc1\x35\x89\x16\x23\xc1\x84\x20\x71\xcb\x85\xa8\x27\x6c\xcb\xa5\xa2\x6d\x80\x82\x98\xb1\x58\x96\xeb\x75\xa7\x8b\xf4\xd7\x1f\x6b\xa9\xee\x93\x7f\x7a\x5f\x78\x2f\x5b\xe0\x53\x78\x8b\xcf\x6c\x4d\xe8\xbe\x36\xef\xbe\x4f\xe3\x20\xfe\x8c\xde\xf8\xd6\x90\x58\x63\x11\x3d\x8d\x37\xfe\x6c\x88\x37\xde\x62\xbb\x20\xc5\x8e\x9e\xd3\x16\x7f\xf3\x9b\x9b\xfe\xd3\xb8\xe9\x07\x2d\x0a\xa4\xd5\x59\xc8\xaa\x81\xde\xd3\xc2\x47\x32\x4f\x3a\x32\x66\x68\x15\xb2\xbb\x99\xd3\x3d\xce\xd9\x92\x47\xcf\x40\x45\x09\xb7\xe3\xe1\xfe\xc0\x3d\xe0\x97\x6b\xbd\x15\x0c\xaa\xca\x51\x4a\x89\x51\x16\xe3\x04\xd0\xaa\xa6\x83\x1e\x31\x42\x78\x14\xb8\x4e\x11\xb9\x12\x7b\xa3\xfa\xa5\x12\x0f\xcc\xdc\x56\x93\x10\xbe\x17\x4c\x0f\x68\xec\xbd\x32\xd6\x61\x05\xeb\xef\x28\x33\x32\xb1\xe6\x59\x0c\x19\x26\xb4\x25\x13\x1e\xdd\x99\xff\x86\xf6\x51\x8d\x04\x31\xb4\xd9\xfa\x08\x7b\xf5\xa5\x49\x15\x21\x19\xa1\x65\x55\x77\xed\xc3\x9f\xe7\x8c\x47\x99\xce\xd1\x69\xe4\xa4\xa9\x21\xc3\x19\x0c\xd8\x7b\x19\x97\x3c\xc1\x1a\x3b\x3d\xed\x63\xe1\x6b\x75\xc0\x51\xa0\x22\xd7\x44\xb3\xd1\x74\x20\x47\x14\x0c\xe3\x74\xae\xde\xba\x80\xc9\x1b\x76\x9b\x0b\x42\x99\xe5\x96\x87\xbf\xb7\xa5\xcf\x66\x3e\x34\x30\x81\x9d\x36\x44\xcf\x00\x58\x90\x75\x30\x10\x79\xf7\x48\xec\x21\x34\x3d\x64\x52\x46\x13\x33\x9f\x05\x52\xf6\x7e\x58\xf0\x9d\x90\x09\x1e\xef\x42\x36\x44\xa9\x18\x44\xe9\x18\x8f\xb7\x52\x99\x4d\x60\xe5\x52\xdd\x4d\x63\x95\x13\x10\x72\x0c\xaa\x62\x49\x52\x3b\x04\x73\xa6\x84\x31\x2e\x79\x26\x93\x1d\xbc\x27\xd2\x4c\x1c\x05\xf5\x04\xf3\x43\x19\x4f\xa0\x01\x41\x34\x2e\x65\x2e\x56\x65\x82\xaf\x0e\x78\x97\xbb\x0e\xd0\x89\x74\x7b\x36\x31\x06\x47\x41\x5a\x3e\x41\xc5\xa8\x90\xf9\x14\xd9\x23\x8d\x68\xe5\xb8\x88\x9b\x67\xeb\xcc\x00\xe4\xbe\xd1\x0f\x36\xd5\xed\x81\x7b\x2c\x73\xd7\xed\xfa\x64\x51\x96\x7e\x3b\xd4\xbe\x00\xed\x39\x15\x50\xee\xb9\xd0\x1a\x7d\x26\x62\x77\x36\x49\x05\xdd\x21\x91\x69\xef\xb9\x2e\x73\xcc\x98\x33\x73\x09\xf7\x97\x75\x74\x54\x1d\xd7\xcc\xf5\x4e\xe6\x5a\xb1\x79\xf9\xe5\x97\xbf\x17\xec\x4b\x48\x21\xa4\xf7\x08\xc6\xc7\x80\xaf\x13\x4b\x87\x23\xdb\x55\x20\x90\xcc\xb3\x31\x23\xac\x0d\xa2\x6a\xf3\xf5\x01\xe4\xc9\xa3\x0d\xcb\xcb\x25\x22\x18\x39\x85\x58\xb8\x72\xbc\xdf\xe7\x1a\xc0\x88\x78\xb3\xdb\xd6\xff\x2f\x09\x28\xa0\xec\xca\x5c\xa5\x1a\xa9\xe9\x01\xfa\xb9\x14\x6c\xcb\xb3\x3b\x50\xd1\x45\xf7\x3c\x50\xf1\xbf\x94\x62\x5a\x0d\x2f\xbc\xaa\xb4\x87\x02\x3a\x48\x39\xcd\xb2\x52\x29\x2b\x0b\xc6\x8c\x61\xea\x7d\xfd\x93\xb9\x5a\x96\xe1\xdb\xb3\x12\x2c\xf0\x4b\x0b\x02\x06\x70\xd8\x6a\xe0\x0a\xa1\x46\xf1\xdc\xb7\x6b\xca\x06\x44\x0d\xe6\xea\x89\xc3\x06\xfb\x1c\x7e\x97\x64\x83\x59\x67\x5e\x90\xaf\x00\xdd\x0d\x95\xab\x61\x3a\x70\xd9\x83\x91\x73\x09\xf2\xd5\x13\xf6\xbd\xbc\x17\x13\x76\x9d\xf2\xec\x6e\xc2\xde\x62\xf8\xef\x0f\x7a\xd9\xe6\xc3\x6b\x10\x4a\x1c\xec\xc7\x7b\x9c\x1b\xab\x8f\x68\xa5\xdd\xfa\xff\xa9\x41\x0c\xc0\xba\x62\xdf\xff\x33\x11\x79\x1d\x5c\x1f\xff\xec\x9e\x88\x3d\x61\xea\xdf\xc0\x6b\xff\x94\xaf\xe2\x7e\x9a\x8f\xdf\x85\xff\x6b\xcf\x2f\x6b\x71\x81\xed\x49\xa7\x5c\x2b\x2a\xed\xd7\x95\xd8\x2c\xe3\xfa\xa5\xdc\xcc\x6f\x1e\xb6\x15\x28\x7d\x3c\x76\xa9\xed\x23\x40\xf7\xf4\x53\x3b\x5e\x27\x89\xce\xcb\xac\x7f\xf3\x5f\x55\x5b\x6d\x6b\x6f\xa1\x5a\x85\xc5\xb6\x5d\x0a\x60\x2d\x18\x0a\x3f\xc1\xaf\x2d\xfe\x5b\x2f\x17\x80\xb5\x3a\x6c\x87\xb7\x15\xe7\x08\x9c\x75\x54\x69\xaa\xbf\x21\xaf\x53\x01\x8c\x53\xde\x14\xf5\x01\x81\xda\x0a\x73\xae\x91\xb9\xb2\x9c\xf7\x98\x31\x9b\x65\x02\xc8\xb9\x33\x01\x52\x8b\x8c\x38\x06\x93\x5d\x60\x11\x05\x2f\x1f\x0f\x8a\x09\xb3\xdc\x20\x59\x95\xde\x5b\x4b\x21\x94\x1b\xed\x31\xa6\x04\x10\x51\xd7\x46\x9f\xd0\x6e\x0f\xc2\x4a\x1f\x74\xc8\xc2\x36\x7e\x17\xbc\x05\xc1\xe4\x5e\x8b\x22\x38\xcd\x6b\xa6\x45\x65\x6b\x56\x22\x54\xbf\x2a\xc4\x7f\x6b\x0c\xba\x46\xce\x55\x71\xa0\x0c\x8a\xe9\x3d\x85\xbf\xfc\x92\x17\x1b\x7c\xd0\x6e\x75\x21\xf0\xcc\x44\x96\x20\x5c\x2f\xe8\x75\x5e\x26\x7a\x09\x1a\x87\x45\x0f\x87\x63\x44\x5b\x7b\xd0\xd0\x35\x27\x6c\xc8\xc9\x60\x4e\x13\xc8\xb4\xcd\x44\x0e\x84\x2b\xcd\x28\xd5\x50\x7c\xf2\xb8\x47\x77\xb3\xb9\xe6\xd0\x7f\xdb\x78\x6c\x37\x45\x31\xcc\xb6\x06\xb0\xea\xe9\x23\x32\x68\x1a\x12\x23\x44\x16\x4d\x61\x60\xe4\x8b\xad\xf5\xd7\x4a\xe9\xcf\xd5\x0c\x3f\x09\x2e\x01\xee\x55\xae\x1c\x1e\x94\x54\x93\xdd\xfe\xc3\xf4\x55\x36\x0b\x11\x88\xe4\x21\x98\x78\x5f\x26\x3c\x06\x26\x90\xd5\xa8\x0a\x99\x09\xa6\x00\x85\x30\x57\x79\xb9\x3c\xf2\xc4\x24\xe6\x15\x77\x0f\x64\x3a\xb9\x48\x39\x3c\x65\x80\xaf\xe8\xa8\xe5\x1a\x46\xcf\xa4\x57\xab\xb1\x04\x7e\x3c\xa1\xc3\x1f\x72\x25\x31\x33\xde\xf5\xdd\x95\x63\x1e\x6b\xf0\x8a\xb6\x70\x25\xbc\xec\xfa\xce\x0b\xd0\xd3\x82\x0c\xcc\x2b\x44\x51\x7c\xee\x0b\x3c\x8c\x86\x0e\xbd\xba\x21\x9e\x36\x57\xff\x62\xef\x86\x6e\x50\xf1\x88\x95\x6e\x46\xc6\x5c\x51\x9d\x60\xe7\x4a\xdb\xec\x13\x32\x30\x02\xbb\x1b\xd5\x58\xf2\x6d\xa5\x72\x8b\x6b\x09\x45\x55\x34\xa5\xcb\xc2\xa7\xf7\x32\x0f\xe8\xd6\xa1\xb6\x6b\x21\xd8\x9b\x4c\xac\xde\x7c\xcc\xc4\x6a\x61\x67\x7a\x0a\x1d\x9a\x9a\x1e\x35\x49\xd7\x07\x2e\x8e\x3c\xd5\xaa\x9d\xfc\x70\x0f\x39\x69\xad\x4b\x58\x4e\xd0\x27\xb9\x62\x5e\x5f\xd6\xf4\x07\x18\x20\x44\x5c\x67\x83\x6f\xb4\xec\x93\x5f\x73\x5d\x48\xb0\x01\x50\xab\x0e\x19\xd2\x7f\xfe\xeb\xad\x32\x66\x43\xae\xb7\x9b\x2a\x64\xc6\x1e\xf6\x5c\xb9\x0b\xaf\x1b\x17\xfa\x69\xd1\xe9\x30\x81\x79\xca\x1f\x14\xf1\xd8\x8c\x72\x3d\x0d\xbb\xd6\x6a\x00\xa2\xe0\x5a\x6b\x60\xe0\xfc\x2e\x53\xd6\xd3\x27\x9d\x92\xe5\x24\xd0\xff\xe7\x49\x12\x6a\x5a\xf8\x48\xdb\x5c\xf9\xbc\x54\x63\xb5\x26\x89\x75\xe1\x55\xec\x0d\x27\x39\x9c\x17\xbc\x10\x13\x4b\xba\x42\x74\x85\x14\x0f\x3b\x5a\x72\x10\x97\x76\x2a\x66\xfb\x76\xf3\x53\x3d\x22\x7f\x65\x79\xd1\x7b\x22\xcf\x58\xed\xe2\x4e\x34\xe0\xcc\x7b\xdb\xda\x1e\xe9\x08\x28\x25\x60\x33\xdb\x53\x36\xe2\x59\x66\x51\xfe\x54\x2b\xb3\x84\xe3\xe1\xab\xa4\xa3\x9d\x1b\x11\xdd\xa5\x5a\xaa\xd1\x67\x51\x85\xe2\x02\x16\x7b\xc1\x7c\x69\xee\x75\x38\xe8\x72\xac\xd8\x93\xd8\x91\x1c\xe0\x15\x16\x1a\xea\xc9\xd8\x38\x73\x5a\xd5\xdd\xcb\xee\xa9\xfd\x17\xc2\xdf\x0d\xcf\xe0\x8b\x6d\x89\x0f\xd5\x6e\x15\xde\xe2\xd8\xa9\x30\x81\xf2\x46\xf6\xd7\xc0\xc1\xe6\xac\x42\x61\xd8\x3a\xa4\xe0\x82\xfc\xcd\x33\xf4\x9b\x67\xe8\x7f\xb8\x67\xe8\x53\xba\x85\x00\x1b\xf3\x9c\x3e\xa1\x9e\x00\xf9\x01\xdb\xd1\xd5\x3a\x3a\xc7\xb1\xd5\x3a\x9e\x04\xb2\xdb\x41\xa6\x63\x13\xe8\x6f\x89\x30\xcc\xf8\x2c\x79\x74\x27\x54\x67\x8c\xde\xd2\x17\x75\x2a\xa0\x3e\x2d\x82\xa5\x8d\x7d\x29\xf8\x75\x3f\x94\xc5\x43\x9d\x88\x34\xb8\x8d\x10\xc4\xec\x13\xb0\x3d\x4d\xc7\x8f\x00\x34\xa6\x33\x47\x6c\x9d\x53\x16\x1e\x06\x23\x91\x26\x09\xc1\x52\x35\x2a\xe8\xa1\x98\x38\x5b\xf1\x22\xd5\x3a\x69\x85\xc6\x3d\xe9\x00\x36\x12\x65\x86\x0e\xde\x19\x1a\xa3\x79\x08\x18\xb3\xa3\xe8\x93\x2e\x7c\x8a\x06\xe6\x63\x80\x16\x06\xac\xa6\xb8\x84\x5c\x4a\x3f\x1c\x81\xc0\x21\x77\x0e\x17\xc2\x88\x2d\x45\xc4\x41\x7a\xd5\x82\xf7\x22\xee\xb2\x4f\x42\x52\xa4\x46\x3a\x48\xde\xac\xa7\x23\x6a\x09\xe5\x2e\x64\x9b\xf0\xc5\xd8\xcd\x55\xb3\x10\x2c\xb4\x1c\x5b\x6e\x91\x24\x96\x76\x71\x9f\xa4\xb0\xe5\x98\x5e\x80\xfe\xe1\xb0\x1b\xae\xf5\xdc\x39\xa3\x82\x4e\xa0\x9c\xe1\x07\xe9\xf7\x90\x8e\xb3\x1d\x88\xdc\x99\xab\x99\x53\x9a\xf5\xd8\x2f\x87\xdc\xc3\x70\x29\x62\x16\x1b\x53\x83\x5c\x8e\xfe\xe5\x32\x61\x79\x19\x6d\x80\xad\xb2\x7a\x4e\x85\xe7\x56\x73\xc7\x4e\xe6\xca\x3c\x88\xc0\xd5\xb2\xe5\x90\x17\xff\x60\x8c\xd5\x5c\xfe\x55\x38\x78\x16\x91\x77\x85\x88\x2c\x7c\x38\x69\xd5\x8a\x5e\xb3\xc4\xa1\x08\xb0\xf0\x98\x92\x32\x8d\x79\x21\xa6\x73\x8f\xb6\x91\xe8\xe9\xb4\x28\x0f\x32\x99\xf3\xb0\x63\x21\x8e\xb1\x76\xd2\x26\x72\x25\xa2\x5d\xd4\xd0\x01\xea\xa7\x89\xf8\xed\xd9\xf6\xeb\x7a\xb6\x21\xcb\x2e\xe6\x0c\x8e\x19\x5a\x6a\xea\x95\xff\xf9\x61\x83\x2b\x58\xd0\x92\x7c\xc4\x38\x7f\xc2\x67\x67\x8b\x0d\x3c\xce\x9e\x1f\xfc\x0e\xea\xbf\xce\xfc\xc3\xd6\x5f\xd6\x01\x05\x42\xc3\x2c\x0c\x83\x8b\x45\xb8\x74\x8c\x41\x3b\x38\xac\xdf\xcd\x32\xf3\xab\x02\x27\x0d\x79\xb8\x1a\x8b\xdb\xc1\x95\x2e\xac\xa5\xad\x04\xde\x77\x3d\x16\x77\xc0\xea\xce\x8b\x17\xb9\x1b\xf5\xea\x09\x68\xb1\xff\x33\xb5\x3b\x28\x01\x73\x97\x8a\x45\x99\x25\x07\xc1\x8d\x6f\xaf\xce\x8f\x9d\xb5\x01\x96\x73\xa7\xee\x51\x51\x13\x67\xb6\xaa\xc0\x22\x26\x38\x68\xa4\x13\xb6\x2c\x57\x2b\xd0\x2f\x21\x60\xa8\x3d\x8c\x40\x1b\xbe\xcc\x0b\x7b\x9f\x20\xd3\x0c\xcf\x8b\xb9\xd2\x4a\xb0\xf9\x17\xc7\xf3\x2f\xcc\x55\x96\xf1\xa8\x10\x19\x92\x0c\x24\x3c\x2f\x58\x2e\xd6\x60\x6a\x51\xa5\xb7\x57\xe7\x90\x95\x58\x6c\xb0\x38\xf7\x64\xc5\x7c\x4f\xe4\x7c\x06\xad\x1f\x20\xa8\x56\x81\xe6\x15\xb4\xfd\x25\xcf\x99\x54\x73\xf5\xd1\x14\x71\xbc\xd6\x7a\x9d\x88\xa9\x9d\x90\xe9\x5b\x72\x3d\x7e\x7c\x85\x2d\x80\x9f\x87\xb0\x7e\x73\x21\x72\xa5\x95\x8c\x78\x02\x09\x39\x73\x05\x56\xf3\xc4\x74\x06\x5c\xa3\xf3\x2f\xa6\xf3\x2f\x18\x84\x4f\x0b\xc6\xa3\x48\xa4\x85\x88\x51\x5c\xf4\x4c\xb1\x14\xf0\x8b\x91\x98\xb0\x42\xf0\x6d\x6e\x29\x9d\x59\x6a\xde\x98\xf0\x34\x64\x52\x11\xd2\x69\x29\x15\xcf\x76\x08\x66\x42\xb9\x70\x4a\xfe\xd8\xcd\x95\xf8\x05\xe8\x3f\x25\x30\x80\x96\xb9\xa3\xa5\x21\x61\x02\xd3\xe5\x99\xda\x4d\xd9\xf7\xc8\xd0\x80\x14\xa8\xb7\x57\xe7\x96\xde\x88\x72\x40\xe7\x2a\x8f\x36\x62\x2b\xd8\xc7\x4d\x51\xa4\x1f\x27\xf8\xbf\xf9\x47\x88\x38\x2a\xcd\xf0\xd3\x09\x33\x53\x64\x0c\x55\x8b\x97\x4f\x76\xa0\xe2\x5a\xa6\x24\xf9\x3e\x57\xc0\xc5\x9e\x85\xe8\x5e\x33\xda\x50\x63\xf0\x04\xaf\xe0\xc2\xcd\x29\x0e\xf2\x8a\x6f\xcc\xe0\xfc\x5f\x76\xb6\xf2\x55\x9a\x01\xb4\xea\x5e\xae\x55\x60\x90\xe4\x90\xb2\x35\x35\x3f\x98\x29\xf6\xfd\xcd\xcd\x25\xfb\xee\xf4\xc6\x1a\x3b\xb7\x57\xe7\xb8\x2e\x80\x4e\x85\x71\xf6\xe7\xfa\x14\xdf\xec\x52\xf1\x97\x3f\xff\x65\xae\x98\x55\x09\x57\x76\xa4\x71\x47\x4f\x90\x12\x16\xf0\x4e\x10\x98\x05\x2a\x67\xa8\x0f\x25\x77\xa8\xf9\x19\x5a\xe7\x0f\xe4\x2d\x80\x3b\x2a\xd1\xfa\xae\x4c\x9d\x9b\x3b\xb4\xc3\x4c\x85\xb7\x57\xe7\x50\x3a\xd0\x29\x15\x1b\x50\x30\x13\xce\xfb\x02\x13\xcf\x6d\x63\xcc\x7f\xdf\x6b\x19\x33\xae\x76\xe6\xb7\x58\x34\x2c\xcb\x4c\xac\x74\x26\x26\xf6\x9b\xa6\x00\x5e\xc8\xa5\x4c\x64\xb1\x83\x53\xca\x2a\xcb\xa7\x96\x23\xdf\x14\x60\x5e\x33\x04\xf0\x36\x0b\x0c\x85\x64\x5f\xde\xe6\x21\x02\x1c\x26\xcd\xa9\x13\xe2\x43\xc7\xfc\x76\x99\x09\x7e\x67\x56\x37\x95\x30\x7d\x45\xaa\xad\xe2\x0d\xde\x31\xab\x52\x45\xb8\x34\x4c\x1b\x68\xf5\xd3\xcb\x29\xd9\x05\xf2\xfd\x36\x5c\xbe\x5a\xc9\x48\xf2\x84\x4e\x8e\x65\xb9\x02\xd9\x18\x9e\x93\x64\x11\x82\x0f\x4d\x21\xf0\xca\xb0\x92\xf9\xb8\xa0\x96\x62\x2d\x11\x70\xfc\x20\x8b\x0d\xe6\x15\x4c\x71\x9e\x79\x2a\xf3\x69\xa4\xb7\xb0\xdf\xae\x61\x29\xe5\xf4\xe8\x05\x1c\x78\x6d\x9d\xb3\x97\x16\x6a\xb7\x4d\x8b\x1d\xad\xbd\x57\x6c\x2b\xd7\x9b\x02\x84\x5c\xa0\x76\x80\x44\xc8\x6d\x9a\xc0\xa3\x8f\x22\x8c\x16\xef\x9b\x8b\x2d\x57\x85\x8c\xba\x62\x4a\xad\xa2\xdc\xc3\x30\x9e\xcb\x5d\xd1\xef\xc7\x7b\x4f\x3c\xfb\x1c\x29\xf4\x83\x13\x99\xd5\x0f\x64\x3a\x03\x41\x5e\x26\x20\xf0\xaf\x8b\xbe\xee\x7b\x42\x7d\x9c\xa9\xdd\x47\x4f\x42\xca\x55\xa0\x7d\xd5\x53\xbb\xdd\xff\x3c\xd1\x34\x6b\x8c\xcf\x15\xa0\x3a\xcd\x81\x41\x72\xb0\xbd\x77\x8c\xbb\x52\xcc\xcc\x5e\xda\x45\x93\xc8\x25\xd4\x4d\x67\x45\xce\xf2\x32\x85\x7c\x82\x42\xb3\x94\x47\x77\xc7\xa5\x32\xff\x63\x0e\x43\xdc\xee\x79\x48\x4e\x34\x57\x7a\xc5\xca\x02\x37\x8e\x5d\xc2\xe0\x14\x09\x5c\x01\xfe\x81\xb6\x15\xc5\x46\xc7\x2e\x2f\xcc\x94\x09\xe3\x67\x5a\x74\x4a\xf4\xd2\xaf\xdf\xb0\x4b\x53\xa1\x59\xc4\x54\x37\x77\xdd\x97\x8a\x9d\xfc\xcb\xbf\xc0\xf7\xcd\xe0\xbe\xd3\x9a\xad\xb4\x66\xdf\xb0\xe9\x74\xfa\x9f\xf8\x37\x53\x28\x57\x3b\xfa\x17\x57\xbb\xa9\x29\xee\x5d\xa6\xb7\x2f\x57\x5a\xbf\xa2\xbf\x83\x6c\xb2\xf9\x0f\xb9\x62\x2f\xcd\x97\x6e\xa1\xaa\x1b\xfd\x72\x5e\x7e\xf9\xe5\x57\xff\x6e\xbe\xfa\x8a\xfd\x0d\xbf\x13\x7c\xfd\x1f\x61\x53\xbf\xda\xd3\xd4\x3f\xf0\x7b\x3e\xa4\xad\xec\x1b\xb8\x6b\x4c\x01\xbd\x6d\x94\xf9\xcb\x77\x5a\x4f\xe1\xf5\x1f\xb6\x0e\x8b\x35\xdf\xc0\x56\x04\xdf\xfa\xcf\xa0\xd9\xcc\xb6\xfb\xf7\x7b\xda\x8d\xa8\x7a\xd7\x72\x2c\xfe\x9d\xd6\x2f\xa7\x53\x73\x6e\xd1\xb8\x62\xab\x5f\xbe\xaa\x0e\x34\x74\xa0\xd9\x7e\xf3\xf1\x19\x36\xff\xed\xe9\xf5\xc9\xd5\xd9\xe5\xcd\x87\xab\x57\x6f\x6c\x0f\xfc\x0c\x04\xbf\x67\x56\xdc\xda\x35\xfc\x5f\xf7\x34\xfc\x3b\x6d\xdb\x0c\x8d\x7e\xf3\x0d\xc3\xd9\x4c\x97\xd3\x77\x5a\xff\x6d\x3a\x9d\xfe\x83\x3e\xe6\x6a\x37\x31\x17\x93\xf9\x4e\x8a\x47\xf9\x7b\x9e\xe5\x1b\x9e\x98\x3e\x05\x6d\x70\x9d\x68\x2d\xd1\x16\x27\x57\xb5\xc2\x6e\xd5\xd6\x17\x07\x95\xc1\xc4\xc2\xb7\xfe\x9f\x6f\x98\x92\x89\x9f\xbe\xa0\x0e\x98\xa7\x1b\xa0\x96\x88\xee\xdc\x76\x71\x2a\x9d\xcb\x1d\x4b\xeb\x1b\x17\xf3\xce\x76\x56\xa1\xc0\x1c\xf7\x73\xf5\xa2\xe5\x44\x3f\x36\xa6\xdd\x14\x3e\x30\x17\xd4\x0b\xab\xdf\x6e\xaf\x05\xa7\xac\x85\x23\x0b\x81\x68\xdc\xad\x8a\x72\xd4\xda\xec\x43\x77\xe1\x05\x64\x55\x60\x76\xbe\x38\x7e\x41\x89\x42\xbe\x8a\x2a\x91\xfc\xfc\x8b\x95\xd6\xd3\x25\xcf\xa0\x75\xbf\x1c\xef\xa6\x7f\x9d\x7f\x81\xfd\x41\xe3\x03\x0d\x23\x28\x7c\xfe\x05\x7c\x0a\xcb\x61\xae\xfe\x70\xfd\xe1\x62\xae\xbe\xf9\xe6\x9b\x6f\x70\xb4\xcc\xbf\x5b\x62\x2f\xe6\xba\x82\xe3\x16\xed\x94\x32\xb7\x92\x92\x62\x5d\x26\x3c\x9b\xab\xf6\x70\x4d\x2c\xfc\xa1\x39\xf1\xc1\x1b\x5a\x67\x13\xab\x6e\x01\x22\x65\xf6\x8c\x43\xdf\xe4\xc7\xff\xd7\x34\xf9\x23\x99\x88\xee\x90\x0f\x87\x60\x6a\x17\xf3\x1b\xbb\x54\xcd\x60\x9b\xf5\xeb\xed\xac\x95\x4c\x04\x6d\x5c\xbb\xb8\x2f\x45\x96\x6b\xe5\xd7\x0c\x3d\x08\x80\xdb\x0c\x02\x00\xec\x1b\xf6\xfa\x3f\x6b\x9f\x9a\x79\xb0\x1f\x7e\x55\x39\x09\x18\xf3\x45\xcd\xbf\x80\x56\xcf\xbf\x78\xc3\xe6\x5f\xb4\xad\x9b\x6a\xc3\xa6\xd8\x94\xf9\x17\x13\x5f\x00\x34\xe3\x82\x6f\xb1\x90\xf2\xcb\x2f\x7f\x1f\x61\x13\x30\x75\x2d\xf8\xa6\x69\x52\xf7\x17\x83\x26\x9e\xd5\x42\x67\x76\x20\x6c\x0a\xe4\x83\x48\x92\xa3\x3b\xa5\x1f\x50\xe9\x1b\xe2\x44\x94\xa5\xcc\x70\x79\x54\x27\x97\xb4\xc9\x6a\x33\x6e\x93\x36\x5d\x35\x4e\xde\x0e\x26\x74\xae\x3e\xc2\xd2\xb1\x33\x4a\x74\x44\x40\x07\xea\x6a\x82\x47\x0d\xad\x04\x9b\x63\x41\x0b\x61\xae\xa0\x18\x37\xe7\xec\x25\x00\xbf\xa8\x2b\x0d\xcb\xda\x3e\x9e\xfe\xf2\xe7\xbf\xbc\x7a\x73\xc8\x3c\x55\x8b\xab\x4c\x15\xf4\x07\xcb\x78\x3d\xfd\xea\xf5\x57\xf9\xfc\x0b\x1a\xf5\xf6\x27\xf6\xb9\xcc\x8b\x1f\x6b\x16\xd8\x23\xe4\xc6\x8d\xe1\xf0\x5c\xc1\x0b\xdb\x54\x6c\xe6\xd0\xa0\xc5\x55\x35\xac\xa0\x57\xd6\xad\x03\x8f\x33\x2b\xc4\x6e\xda\x3d\xca\xbc\x73\xe3\x85\x8f\x2d\xf6\x90\xf1\x34\x15\x99\xf5\x95\x37\xc2\x19\xa0\x6a\x0e\xb5\xd8\xa3\xbf\xed\x30\x33\xcb\xa6\x56\x34\x7c\x0d\x86\x6e\xda\x3e\x73\x17\x65\x92\x74\xce\xdc\x7e\xb1\xe4\x8b\xdb\xf3\xf3\xc5\x8f\xb3\xf3\xdb\x53\xdb\xfd\x56\xf1\xe1\xe0\x6b\x9d\x63\xe2\x5a\x42\x63\x82\xb8\xaa\x02\xb0\x54\xe5\x56\x64\x96\x29\xcc\xf7\x1a\x71\x24\x65\x92\x54\x85\xa9\xe7\xea\x23\x95\x03\xc7\x40\xa9\xa4\x35\x53\x7a\x07\xae\x5a\x3f\x7c\xed\xa3\x29\xfc\x23\xfe\xf6\x88\xf9\x4e\xbc\x61\x17\xae\xd6\x8e\x71\x25\xc2\x89\x03\xb6\x03\xe6\xdb\x76\x6d\x87\xa7\x96\xde\x7f\xdc\xf6\xb8\x55\x20\xfa\x65\x4e\x5e\x54\xcc\x7f\x92\xdd\x81\x63\xf7\xb1\x0a\x05\x77\xee\xd2\x18\xa3\x86\x50\xee\x04\x05\xd3\xf3\x82\x38\x8b\x71\xcc\xe6\x0a\x0f\x62\xd3\xa6\x42\x77\xb7\x89\x9d\x51\x04\x29\xe1\x6a\x5d\xf2\xb5\xc8\x27\xcc\x56\x3e\x57\xf6\x75\x6a\xdf\x3a\x0e\x98\x03\x8c\xac\xb5\x25\x54\x4b\x01\x96\x6a\xae\xa8\x4f\x70\xc3\x52\xf1\x98\x8e\xfa\x87\x6b\xd7\x1d\xca\xfb\xc6\x82\x48\xf3\x5d\xcd\x15\x4e\x2e\xfa\xc6\x2c\xd8\x10\xcc\x8e\xe6\xdd\xc4\x01\x1e\x8c\xef\xba\x98\x15\x7a\x0d\xb0\xc7\xb9\x72\x2c\x58\x08\xce\xb0\xef\x35\xaf\x0d\x8a\x4d\xda\x7f\x9e\xd8\xc9\xb0\x7b\x82\xda\xd6\xbe\xea\x0f\xbe\x03\xcc\x86\x5b\xb4\xbe\xe5\xfb\x97\xad\x3f\xc6\x06\x02\x72\x78\x70\x70\x74\x51\x23\x02\xf5\x59\x7b\x6b\x6c\xbf\xf0\x3b\x9d\xd9\xa3\xba\x5c\x26\x23\x9a\x84\xdf\xef\x6d\x14\x1e\xc9\xfd\x8d\x1a\xe0\x91\xbe\xaa\x6d\x2d\xb3\x4c\xfb\xaa\x5d\x6a\xdd\x31\x2f\x4f\x88\xd9\xad\x34\x8a\x7e\xb0\x6f\x30\xca\xa8\x78\xcc\x7a\x19\xc0\x07\x54\x1f\x22\x7b\xfa\xf4\x35\x28\x91\xf9\xa3\x9a\xe3\xed\xa7\xc1\x2d\x72\x16\x02\x5d\x76\xa3\x4e\x58\xba\xe7\x2a\x07\x6c\xc7\x31\x69\x9f\x29\x98\xde\x22\x24\x1e\x2f\x66\xf3\x4c\x60\x13\x99\xf5\x3f\x71\x8b\x68\xe2\x67\x6e\x02\x8d\x8c\xca\x2c\x37\xc7\x25\x9d\x77\x74\x6a\xeb\x8c\xf1\xb9\xb2\x6c\x30\xf6\x38\x9e\x59\x7f\x70\xe6\xfe\x8a\x1c\x4b\x29\x4a\xd6\x41\x50\xa8\x00\x2f\x39\x9d\x86\x73\x75\xcf\x33\xc9\x15\x60\x9a\x97\x39\xe8\x0d\xc3\x93\x6e\xc7\xe8\x03\x47\xc0\x91\x87\x4e\xe6\x3d\x67\x5e\xcd\x0c\xa8\xdc\xf3\xbf\x33\xff\xf7\x8f\xdf\xfd\xff\x01\x00\x00\xff\xff\x8b\xc2\xd9\xfd\x45\xd9\x04\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\xfd\x73\xe3\xb8\x95\x2f\x8c\xff\xbe\x7f\x05\xaa\xf7\x5b\xd5\x33\x89\xed\x9e\x64\x72\xf7\x9b\xf2\xd6\xad\xe7\xd1\xd8\xea\x1e\xdd\x71\xdb\x8e\x2d\x4f\x6f\xea\x6a\x4b\x03\x91\x90\x84\x98\x02\x34\x00\x68\xb7\xb2\x95\xff\xfd\x29\x1c\x00\x24\x48\x91\x14\xf5\x66\x4b\x6e\x24\x55\x89\x5b\x24\xf1\x72\x00\x1c\x9c\xd7\xcf\xf9\x9f\x7f\x43\xe8\x9d\x7c\xc6\x93\x09\x11\xef\xce\xd1\xbb\x3f\x9f\xfd\xf0\xee\x44\xff\x46\xd9\x98\xbf\x3b\x47\xfa\x39\x42\xef\x14\x55\x09\xd1\xcf\xc7\xc9\x42\x11\x1a\x27\x1f\x24\x11\x4f\x34\x22\x1f\x70\x3c\xa3\xec\x6c\x2e\xb8\xe2\xf0\x21\x42\xef\x9e\x88\x90\x94\x33\xfd\xba\xfd\x13\x31\xae\x90\x24\xea\xdd\xbf\x21\xf4\x2f\x68\x5e\x46\x53\x32\x23\xf2\xdd\x39\xfa\xbf\xe6\xa3\xa9\x52\x73\xd7\x80\xfe\x5b\xea\x77\xff\x1b\xde\x8d\x38\x93\x69\xe1\x65\x3c\x9f\x27\x34\xc2\x8a\x72\xf6\xe1\x1f\x92\xb3\xfc\xdd\xb9\xe0\x71\x1a\xb5\x7c\x17\xab\xa9\xcc\xe7\xf8\x01\xcf\xe9\x87\xa7\x3f\x7d\xc0\x91\xa2\x4f\x64\x98\xe0\x94\x45\xd3\xe1\x3c\xc1\x4c\x7e\xe0\x62\xf2\xe1\x7f\x68\x7c\xc6\xc5\xe4\x5f\xf0\xc7\x5c\xf0\x7f\x90\x48\x99\x7f\xc4\x7c\x86\x29\x33\x7f\x33\x3c\x23\xff\xca\x1a\x45\xe8\xdd\x84\x28\xef\x9f\x7a\xea\xe9\x6c\x86\xc5\x42\x93\xe7\x23\x51\xd1\x14\xa9\x29\x41\xa6\x53\xe4\xe8\xc5\xc7\x08\xa3\x73\x41\xc6\xe7\xbf\x09\x32\x1e\x3a\xaa\x9f\x19\x6a\x5f\xc1\xd0\x6e\x13\xcc\x7e\x3b\xb3\x34\x83\x96\xf9\x9c\x08\x98\x68\x2f\xd6\xad\x7f\x22\xaa\x03\xcd\xe6\xef\xff\xd9\x7f\x5d\x10\x39\xe7\x4c\x12\x59\x18\x1f\x42\xef\xfe\xfc\xc3\x0f\xa5\x9f\x10\x7a\x17\x13\x19\x09\x3a\x57\x76\x65\x3b\x48\xa6\x51\x44\xa4\x1c\xa7\x09\x72\x2d\xf9\xa3\x31\x73\xd5\xcb\x8c\x97\x1a\x43\xe8\xdd\xff\x4f\x90\xb1\x6e\xe7\xdf\x3f\xc4\x64\x4c\x19\xd5\xed\x4a\xb3\x9b\xf2\xe1\xbe\x2b\x7c\xf5\xaf\x7f\xab\xfa\xfb\x5f\xde\x8c\xe6\x58\xe0\x19\x51\x44\xe4\xeb\x6f\xfe\x53\x9a\x8b\x5e\x24\xdd\xb9\x59\xd1\xf2\xa0\x4b\x33\xbd\x81\xbf\x70\x72\x82\xb8\x98\xa0\x47\xb2\x40\xb0\xa5\x48\x8c\x14\x87\xb5\x13\x44\xf2\x54\x44\xcb\xb3\xa7\xf0\xbd\xde\x66\xe5\x27\x82\xfc\x9e\x52\x41\xf4\x32\x29\x91\x92\xd2\x53\xb5\x98\xc3\xf0\xa4\x12\x94\x4d\x7c\x22\xfc\xeb\xa4\xd5\xa4\xec\xee\x5c\x31\xb1\x6b\x3c\x23\x7a\xa7\xe9\x39\xd8\x2f\x0a\xf3\x41\x23\x92\x70\x36\x91\x48\xf1\xc3\x99\x9a\x39\x6b\x6b\xcc\xcc\x7c\x50\x3b\xb1\x01\xeb\xb8\x57\x22\xcc\xd0\x88\x20\xcd\x6e\x68\x4c\x04\x89\x11\x96\x08\x23\x99\x8e\x24\x51\xe8\x99\xaa\x29\x65\xfa\xdf\x73\x12\xd1\x31\x8d\x1c\xcd\x0e\x87\x36\xf0\x67\x33\x65\x1e\x24\x11\x7a\xe0\x4f\x34\x26\x31\x7a\xc2\x49\x4a\xd0\x98\x8b\xe2\x3e\x1e\xb0\xfe\x54\xd3\x61\x36\xa2\x0c\xf8\x89\xa6\xa5\xdb\x21\x7f\x74\xe4\xfa\x23\xd2\xfd\xa1\x94\xd1\xdf\x53\x92\x2c\x10\x8d\x09\x53\x74\x4c\x89\x2c\xb7\xf6\x47\x6e\x8f\x10\x3a\x45\x9a\xce\x44\x28\xa0\x37\x67\x8a\x7c\x55\x12\x9d\xa2\x84\x3e\x12\xf4\xfe\x8a\x4a\x85\x3a\xb7\xbd\xf7\x27\xe8\xbd\x61\x02\x08\xd8\xef\xfb\x17\xa0\x70\xf6\xf7\x7f\x7b\xfc\x44\xe1\x49\x99\x93\xbc\xeb\x68\x16\x75\x6f\x6e\xbf\xbc\x85\xff\xfe\x37\xbf\x1d\xbb\x5e\x8d\x57\xca\x11\xdf\x22\xe1\x12\x09\xfc\x36\xf0\xdb\xc0\x6f\xf7\x4f\xe1\xfd\x4b\x67\xbf\xa7\x44\x2c\x1a\x66\x35\xc6\x89\x3c\xe8\x6b\x24\xbf\x43\xec\x05\xd2\xf6\xda\x80\xd5\x2f\xde\x18\x52\x6f\xbc\x6d\x2f\x0c\xdd\x6e\xf9\xc6\x90\xc7\x75\x65\xe8\x29\xec\xfb\xda\xd8\xe6\xce\xc0\x0a\x0e\x33\xa6\xcc\x9c\xfd\x8c\x15\x08\xa9\x8f\xbf\xdb\xbe\x07\xc2\x29\xb7\xb9\x42\xbc\x99\x79\xb7\x88\xbb\x1c\x3c\xaa\x1c\xe0\xbc\x13\x3a\xa3\xab\xd6\xb7\xc7\x62\x1a\x61\x65\x79\x38\x4b\x67\x23\x22\x34\x19\x1c\xd7\x82\xd9\x8e\x34\x17\x53\xa9\x60\x24\x6e\x31\xcd\x6d\x38\x1a\x65\x8a\x4c\x88\x28\x7f\x3d\xe6\x62\x86\x95\x7d\xe1\x3f\xfe\xb2\x2e\x21\x14\x7f\x24\xab\xd6\xbf\x67\x56\x33\xc2\x12\xb6\xc1\x2c\x4d\x14\x9d\x27\x04\xcd\xf1\x84\x48\x4b\x91\x34\x51\xf2\x04\x5e\x93\x44\x3c\x11\x71\x9a\x5d\xac\xd0\x83\x13\x28\x52\x69\xb8\xff\x38\x93\x8b\x19\xf9\xaa\xa0\xa5\x01\x03\x91\x02\x48\xe4\x5f\x94\x2f\x73\x39\xb4\x20\x95\xe4\x42\x0d\x47\x8b\xb3\x47\xb2\xd4\x6f\xed\xce\xc1\x0c\x61\xa5\x04\x1d\xa5\x8a\xe8\x79\xeb\x36\xdc\xd5\x07\xec\xd1\xc8\x1d\x6d\x58\xc3\xeb\x4d\x38\xa6\x82\x44\x30\xb7\x75\x0e\x4c\xf6\x95\x9e\xb7\xbe\xf8\x17\x66\xf6\x5a\x0e\xd0\x62\x56\x05\x05\xb2\x25\x1f\xb0\x01\x43\xa7\xe8\xb2\x7b\x7f\xd1\xbd\xbe\xec\x5d\x7f\x3a\x47\x3f\x2d\x50\x4c\xc6\x38\x4d\xd4\x09\x1a\x53\x92\xc4\x12\x61\x41\xa0\x49\x12\x6b\x51\x4a\x0f\x86\xb0\x98\xb2\x09\xe2\x22\x26\x62\x7f\x64\x2c\x3d\x25\x2c\x9d\x95\xee\x15\xf8\x3d\x1f\x7d\xe9\x0b\x2d\x62\x64\x8f\x0a\x4f\xfe\x7b\x89\xc0\x30\x63\xdd\xb7\xd7\xda\x9a\xcb\x18\x04\x35\x5f\x50\x8b\xa6\x34\x89\x05\x61\x1f\x14\x96\x8f\x43\xf2\x95\x44\xa9\x91\x33\xc0\x8e\x5c\xfc\x71\xa8\x15\x09\x1e\x93\xe2\x2f\x85\x7f\x18\xab\xf3\xda\x9f\xe5\x92\xe1\xda\x9f\x66\xb6\x88\xb5\xbf\x04\xcb\x45\xbb\xef\xe0\x17\x1a\x57\xbe\x0d\xbf\xac\x98\x83\x7b\xa7\x61\xb0\xee\x95\xda\x51\xb9\x17\xac\x00\x5c\xf9\x8e\x20\x4a\x2c\x86\x58\x29\x32\x9b\xab\x35\xad\x32\x18\x25\x5a\xcc\x6e\x12\xab\xaf\x79\x4c\xba\xae\xbf\xdf\x90\x91\xee\x49\x8c\x46\x0b\x7b\x2c\xc6\x44\x10\x16\x91\xfa\x16\xfa\x58\x3e\xe6\x2d\xac\x92\xcd\x0b\xfd\xc9\x8f\x5c\xe8\xcf\x8f\xc2\x31\x50\x18\xf9\x4b\xc8\xe8\x9b\x9c\xd4\x37\xe6\x4d\xd8\x94\xeb\xbc\x39\x5b\xd8\x86\x3c\x34\x58\xce\xb6\xa7\x64\x5b\x3b\x1b\x17\x48\x2e\xa4\x22\xb3\x95\x16\xb7\xe3\x21\x84\xbd\x24\x0f\x75\xc0\xa5\x7b\xfa\x1b\x38\xf5\x45\xa9\x23\x1c\xef\x35\x48\xb6\x2b\x7b\xf9\xa1\xcf\xd3\x05\xc0\x34\x4f\xf5\xde\x2d\x9f\xe7\xae\x3b\x8a\x69\x16\xe4\xe1\x5d\x0f\x72\x4f\x16\xa8\xda\xb5\x72\xd4\x1e\xc2\x00\x56\xd8\x1e\x8a\x1e\x97\xec\xfc\xe9\x4f\x7d\xa3\x9d\xb1\xd0\xaa\x29\x95\x9e\xfd\x12\x45\x5c\x18\x71\x38\xb6\xe7\xdd\x98\x1f\x3a\xfd\xce\x7d\xb7\x7f\x8e\x3a\x28\xc6\x0a\xeb\x03\x2e\xc8\x5c\x10\x49\x98\x02\xd3\x8e\xfe\x5e\x2d\xd0\x8c\xc7\x24\x31\x46\x88\x8f\x5a\xfa\x47\x97\x58\xe1\x0b\xac\x70\xc2\x27\x67\xa8\x03\xff\xd4\x1f\x53\x89\x70\x22\x39\xc2\x6e\x5b\x91\xd8\x35\x81\x59\xec\x58\x0b\x46\x11\x9f\xcd\x69\x92\x79\x9b\x32\x7b\x1b\x65\x31\x7d\xa2\x71\x8a\x13\xc4\x47\x9a\xab\xc8\xb3\x01\xeb\x3e\x11\xa6\x52\x9c\x24\x0b\x84\x93\x04\xd9\x6e\xdd\x0b\x48\x4e\x79\x9a\xc4\xba\x5d\x37\x4a\x49\x67\x34\xc1\x42\xcb\xb4\x66\xb4\x37\xb6\x2d\xd4\x9f\x92\x6c\xac\x30\x2e\x4d\xcd\x19\x7e\x24\x12\x51\x85\xe6\x5c\x4a\x3a\x4a\xf2\x33\xff\xd0\x43\x30\xee\x8b\xab\x1e\x98\x78\x22\x85\xb8\xe1\xa1\xae\x73\x6b\xd2\x73\x3d\xce\x30\x63\x04\x3a\xe6\x6a\x4a\x84\xed\xde\xbe\xfc\xda\xd6\x9a\x87\xeb\xfb\xdb\xee\x45\xef\x63\xaf\x7b\xb9\x6c\xae\xe9\x77\xee\x7f\x59\xfe\xf5\xcb\xcd\xdd\x2f\x1f\xaf\x6e\xbe\x2c\x3f\xb9\xea\x3c\x5c\x5f\xfc\x3c\xbc\xbd\xea\x5c\x2f\x3f\xb4\xdb\xaa\xb5\xe5\xc7\x1f\xd9\xce\xce\xd6\xd1\x19\x85\x82\x51\x7f\x8d\x65\xdf\xb5\x51\xff\xe4\xed\x5a\xf5\xc7\x34\x01\xa3\x43\x6b\x8b\x7e\x66\x35\xb2\x5f\xa2\x39\x96\xd2\xc8\x81\x66\x04\x67\x03\xf6\x99\x0b\xcd\xae\xc7\x5c\x73\x44\x2d\x2b\x2a\x91\x46\x8a\xb2\x49\xf6\xd1\x39\x1a\xa4\x3f\xfc\xf0\x63\x74\x45\xd9\x23\xfc\x45\x0e\x91\x38\xc1\xe5\x11\x5c\x1e\x07\xe7\xf2\xf8\xb7\x8a\x4f\xf7\xef\x1e\x08\x36\xfe\x60\xe3\xdf\x9f\x8d\x3f\x98\xf8\xbd\x31\x04\xfb\xf6\xb6\x84\x08\x06\xb0\x60\xdf\xde\x9e\x10\xc1\xbe\x7d\xa0\x33\x0e\xc7\x3b\xd8\xb7\x83\x7d\x3b\xd8\xb7\x83\x7d\x3b\xd8\xb7\x83\x7d\xfb\x9b\xb1\x6f\x1f\x60\xc8\x53\x30\xf2\x07\x23\x7f\x30\xf2\x07\x23\x7f\x30\xf2\x07\x23\xff\xf1\x18\xf9\xb5\xb4\xfb\xa1\x1c\xfa\xbf\x27\x08\x19\x2d\x5c\xb2\x79\xaa\x40\x94\xe4\xa9\xd2\x7f\xea\xfe\x61\xaf\x34\x40\x00\xb4\x33\x28\x7f\x22\x2a\x7b\x51\x8b\xb6\x47\x11\x2b\xfe\x85\x8b\xc7\x71\xc2\x9f\xb3\x91\x7f\x22\x4a\x0f\xfe\xce\xf6\x12\xa0\x65\x02\xb4\x0c\x0a\x50\x07\xbb\x86\x3a\x38\x28\x13\xf5\xae\xf8\xbb\xfb\xfa\x9d\x56\xfe\x15\xa9\xe5\xc5\x7d\x22\x66\x94\x39\xd9\x85\x32\x2d\xe4\x4e\x04\x91\x72\x5b\x0e\x9c\x35\x9c\xbd\x7e\x14\x3c\x38\x1b\x6d\x36\xfe\xc0\x7d\x03\xf7\xad\x99\x5a\xe0\xbe\x6f\x8c\xfb\xb6\x98\xda\x88\xc7\x4b\xea\x84\x19\x49\xd5\x93\xe6\x91\xec\x8c\x43\xfd\x9e\x92\x76\x61\x07\x2f\xa1\x35\x1c\xb5\xa2\x70\x0c\x77\xd4\x01\xe8\x09\x81\xa9\x07\xa6\x5e\x4d\x99\xa3\x64\xea\xc7\xe8\x13\xd8\x3f\x4f\x2f\x7a\x51\x72\x73\x50\x05\xd0\x43\x7d\x8c\x67\x6d\x08\x67\x4d\x84\xa6\x17\x80\xf9\x22\xd7\x44\x31\xcc\x71\xc5\x55\x51\x78\xf9\x68\xec\x4a\x85\x51\xbf\xfc\x5d\xf1\xc6\xd1\x06\xbe\x95\x60\xcb\x10\x4b\xb9\x21\xa1\xde\xf0\xa5\xf9\x72\x91\x90\x2f\x7f\xdb\x7d\xb3\x77\x5a\xb8\xd2\xec\x7f\x02\xc3\x0f\x0c\x3f\x30\xfc\x57\x62\xf8\x1b\xd0\x3d\xa8\x70\x4b\x97\x5a\x25\x98\x5f\x5b\xf4\xbe\x75\x52\xf9\xd6\xc8\xdd\x6b\x9d\xac\xb7\x22\x3b\xaf\x32\x1d\xaf\x2a\xff\x6e\x39\xe1\xae\x32\xc3\x6e\xbb\x94\xba\x4d\xef\xea\xf6\x49\x72\x9f\x88\x2a\xbc\x7c\x34\xfa\x67\x61\xd4\x2f\x7f\x59\xbf\x7a\x30\xe8\x6b\xf1\xe9\x6f\x2f\x21\x30\x64\x00\xee\x91\x74\x6f\x5d\xac\x39\xdc\x1c\xbf\x6f\x20\xa9\x2f\x64\xf1\xad\x45\xa3\xb7\x95\xb6\xf7\x56\xf3\xf4\x8e\x33\x31\x2f\x64\xe2\x85\x4c\xbc\x9d\xaa\xbc\xa5\xa7\xdf\x54\x26\xde\x31\xa7\xde\xbd\xbc\x79\x22\x98\x1c\x0e\xdf\xe4\x10\x2c\x0e\xf6\x3f\x41\xfb\x5e\x7b\xe6\x41\xb4\x0f\xda\x77\x9b\x99\x07\xed\x3b\x68\xdf\x07\x78\x44\x83\xf6\x1d\xb4\xef\xa0\x7d\x07\xed\x3b\x68\xdf\x28\x68\xdf\x5e\x43\xaf\x05\xd8\x70\x08\xce\xcd\xa3\xb2\x39\xe4\x53\x1f\xba\x03\xbe\x0c\x72\x50\x60\xbb\x6d\x70\x0f\xe0\x2f\xa7\xd4\xaf\x8b\xc3\x5b\xab\xa5\x5f\xe6\x83\xed\x02\x93\xfc\xcd\xb2\x8a\x15\x0a\xfb\xd2\x77\x47\x11\x23\xb0\x34\xea\x90\x6e\xbb\xa9\xc8\xf3\x4a\x42\xc3\x9e\x28\x70\x24\xd7\xd7\xfa\x0b\xf5\x86\x75\xc9\xa0\x43\x6e\x9f\x42\x77\x34\xba\xe3\xf1\xe8\x8c\x2f\x2f\x5b\xbc\x45\x71\x22\x48\x13\xde\x18\xc2\xc5\x1b\x2e\xde\x70\xf1\x86\x8b\x37\x5c\xbc\x21\x03\xdf\xbe\xbf\x57\x79\xa2\x24\x4c\xb4\x02\x68\xdc\x79\x65\xa0\x0a\x51\xc2\xbb\x81\x57\xd5\xf9\x29\x7f\x4d\x89\xfc\xcb\x51\xca\x14\x2f\x51\xea\x27\x08\x15\x47\x22\x54\xbc\x49\x5b\x52\x90\x94\x82\xa4\x54\x4d\x99\x56\x92\xd2\x80\xf5\xa7\x9a\x0e\xb3\x11\x65\x99\x37\xcf\xed\x90\x3f\x3a\x72\xfd\x11\xe9\xfe\x50\xca\xe8\xef\x29\x49\x16\x39\x4f\x92\xe5\xd6\x32\xbc\x68\x74\x8a\x34\x9d\x89\x50\x40\x6f\xce\x14\xf9\xaa\x24\x3a\x45\x09\x7d\x24\xe8\xbd\x66\xcc\xa8\x73\xdb\x7b\x7f\x82\xde\x5f\x41\xd9\x3a\x34\x4f\x30\x93\xef\x0f\xc6\x71\x13\xc0\xfa\xf7\x05\xd6\x1f\xb0\xfa\x03\x56\x7f\x5b\x02\x05\xac\xfe\x80\xd5\x7f\xbc\x58\xfd\x3b\xd3\x0f\x37\xc4\xe5\x7c\x15\x4d\xf1\x38\x7d\xd9\x41\x53\x44\x41\x53\x0c\x9a\x62\xd0\x14\x83\xa6\x78\x24\x9a\xe2\x61\x50\x38\xa8\x89\x41\x4d\x0c\x6a\xe2\x0e\x89\x13\xd4\xc4\xa0\x26\x06\x35\x71\x49\x4d\x3c\x5e\xcf\xe1\x8f\x41\x1f\x0c\xfa\xa0\xff\xfb\xf1\xe9\x83\x41\x75\x0a\xaa\x53\x35\x65\x8e\x53\x75\x3a\x18\xd9\xe7\x18\x43\x8a\x82\x52\xd8\x9e\x10\x41\x29\x6c\x4d\xaa\xa0\x14\x36\x10\x27\x28\x85\x41\x29\x0c\x4a\x61\x6b\xa5\xf0\x98\xdc\x85\x41\x3b\x0c\xda\xa1\xff\x7b\xd0\x0e\x83\x76\x18\xb4\xc3\xe0\x58\x0b\xaa\x61\x50\x0d\x83\x6a\x18\x54\xc3\x55\xc4\x09\xaa\x61\x50\x0d\xbf\x2d\xd5\x90\x3c\x11\xa6\x24\x14\x43\xf4\x15\xa5\x77\x73\x2e\xeb\x15\x3c\x9f\x3b\x54\x28\x77\xd0\x66\xb1\x28\x21\xa0\xb6\xfd\x86\xa6\x58\x22\x1e\x45\xa9\x28\x9d\x81\xb2\x7a\x77\x21\x08\x56\x04\x5a\xd0\x1f\x1e\x83\x5a\xb7\x3c\xdd\x97\x02\x20\x1e\xf1\x78\x69\xb7\x9b\x83\x50\xf5\xa4\x59\xcc\xda\xd9\xd4\x7f\x4f\x49\x3b\xad\x76\x8f\x9b\x5a\x61\xf9\xb8\xe3\x4d\x5d\x00\x9a\xde\x68\x53\x43\x0b\xc7\xb2\xa9\x97\xa7\xfb\xcd\x6c\xea\xaa\xa9\x1f\xc2\xa6\x7e\xe6\xe2\x71\x9c\xf0\xe7\x1d\x6f\xec\x2f\xb6\xd9\xed\x36\x77\xd6\xca\xb1\x6c\xf0\xea\x69\x7f\x33\x9b\xbc\x6e\xfa\xaf\xbb\xd1\xb3\xfa\x10\xad\xb7\x78\x5f\xd0\xc9\x44\xab\x19\xa0\xe1\xe9\xad\x68\x4d\x1f\x0d\x00\x49\x79\x45\x84\x95\xdb\x3a\x7b\xf5\x18\xb6\x74\x36\x58\x33\xf6\x6f\x66\x2f\x2f\xcd\xfb\x40\x36\xf1\x2b\x81\x76\xb4\x2b\xf8\x71\x45\xa5\xca\xde\x3c\x8e\x6c\xab\x6c\xb8\x2f\xe1\x37\x09\xf9\x3b\xc1\xcd\x10\xdc\x0c\x87\xef\x66\x38\x18\x83\x5a\x30\xc9\xef\xc9\x24\x4f\x65\xb0\xc9\x07\x9b\x7c\x5b\x02\x05\x9b\x7c\xb0\xc9\x1f\xaf\x4d\x7e\x4d\xdd\x61\xc3\x08\xad\x3a\x83\xd0\x3a\xfa\xc3\x27\x92\xab\x0f\xc7\xa5\x3d\x04\xcd\x21\x68\x0e\x41\x73\xd8\xb9\xe6\x70\x50\xe5\x08\x77\xc5\xa5\xdd\xd7\xef\xe6\x69\x3d\x4f\x7d\x98\xc7\x58\x11\x94\x31\x6f\xbb\x13\xf4\xc5\xa8\x78\x76\x08\xec\x7e\xd8\x92\xed\x9a\xbe\x8e\x94\xf3\x9a\xc1\xbf\x60\x79\xd6\xc0\x87\x03\x1f\x0e\x7c\xf8\xb0\xf1\xcd\x0f\xc7\x7d\xe0\xd8\xd3\xa1\xb8\x0f\x04\x89\xf8\x13\x11\xad\x7d\x61\x77\x04\x1c\x60\x20\xdd\xcf\x05\x79\xa2\x3c\x95\xc9\xe2\x54\xa4\x0c\x39\xdf\xb1\x77\x49\x41\x0c\xff\x33\x4d\x12\xc4\x99\x56\x15\x15\x16\xca\x3d\x66\x13\x34\x16\x7c\x06\xdb\x25\xc1\x52\xa1\x47\xc6\x9f\x19\x1a\x63\x9a\xa4\x82\xa0\x39\xa7\x4c\x9d\x0d\x58\x8f\xa1\x3b\x33\x46\xa8\xb9\x78\x82\x52\x49\x84\xd4\x47\x8d\x71\x85\xa2\x29\x66\x13\x82\x30\x5b\xd8\xe2\xe5\x39\x03\xd7\x9b\x34\x35\xb7\xa6\xee\xa2\x04\x58\x9f\x8d\x11\xac\x8d\x54\x22\x2a\x11\xf9\xaa\x04\x99\x91\x64\xa1\xfb\xd0\x57\x94\xe2\xc8\xd2\xc7\x0c\xd5\xee\x79\x22\x04\x17\x12\xaa\x35\x8e\x16\xff\xc4\x4c\x51\x46\x10\xe8\x74\xd2\x58\x12\x4f\xd1\x15\x97\x60\x62\xfa\xe5\xaf\x12\x45\x49\x2a\x15\x11\x27\x68\x94\x4e\xa4\x56\x6a\xe7\x09\x56\x63\x2e\x66\x7a\x84\x94\x49\x85\x47\x34\xa1\x6a\x71\x82\x66\x38\x9a\x9a\xb6\x80\x06\xf2\x64\xc0\x62\xfe\xcc\xa4\x12\x04\x67\xbd\xbb\x87\xe8\x3b\xff\x99\xd9\x00\xf2\xfb\x13\x38\x9b\x74\xa6\x35\x73\x6f\xf8\xf9\x8a\x9b\x35\xd1\x8d\x90\x18\x8d\x48\x84\x53\x69\xf3\x2e\x94\x58\x20\xf2\x75\x8a\x53\x09\x6b\xa7\xa7\x67\xeb\x5d\x46\x7c\x36\x4f\x88\x22\x88\x8e\x91\x12\xfa\xe2\xc2\x13\x4c\x35\xe9\xee\x09\x69\x21\x6d\xd8\x05\xb4\xbb\xfe\x37\xe0\x12\x33\x2e\x08\x8a\x89\xc2\x34\x69\xcc\xc5\xb1\xdf\x06\x27\xe9\x31\x71\xb9\xe2\x82\x1f\x04\x9b\x4b\xc0\xa0\xbf\x03\x9f\x3f\xb3\x9e\x86\x08\x27\x5b\xba\xff\xef\xec\xa0\xc2\xde\x3e\xae\xbd\x6d\x56\xed\x70\x36\xf7\x41\x7b\xfd\x8f\x6a\x4f\xbf\x90\xd3\x3f\x68\x57\x41\xbb\xaa\xa6\x4c\xf0\x8f\x87\x4c\xbc\xe5\x69\x05\xb7\x7f\x70\xfb\x07\xb7\xff\x2e\x89\x13\xdc\xfe\xc1\xed\xff\xcd\xba\xfd\x0f\xdc\xd3\x7f\x54\x1a\x43\xd0\x16\x82\xb6\x10\x7c\x31\x6b\x4e\xed\xe8\x64\xf4\x5d\x71\xe6\xcc\xd5\x1f\x93\x84\x28\x52\x6f\x7d\x24\x62\xa6\x75\x3b\x23\x75\x50\xa6\xc5\xd3\x89\x20\x52\x6e\xcb\x67\xb3\x86\x8f\x93\xdb\x66\xc3\x7f\x41\xff\x7e\x60\xbf\x81\xfd\x56\x53\xe6\x28\xd9\xef\xe1\x18\xd2\xbd\xc3\xfc\x52\x96\xf4\x8c\xff\x1e\x68\xa8\xd5\x51\x31\xe3\x17\x8f\xb4\x0a\x9c\x38\x70\xe2\x6a\xca\x04\x4e\x7c\xfc\x41\x49\xc6\xab\x3a\x9c\x27\x98\x0d\x69\x6c\x93\x13\x4c\x66\x42\x6e\xac\xd8\x97\x67\x53\x1f\xad\xd8\x00\xa6\x66\x00\xa5\xe2\x37\xfd\x49\x92\x3b\x3a\x10\x1f\xe9\x61\xac\x84\x8e\x35\xbe\x91\xdb\x04\xb3\x5e\x7c\x1c\x59\xcf\x95\xd3\x7f\x09\x67\xe8\xdb\x0b\x9e\xdd\xe6\x92\xc2\x0a\x9c\x6e\x98\x32\x63\x76\xcd\x81\x6f\x0b\x46\xe5\xc3\x98\xe8\x36\x57\x96\x37\x31\xef\xd6\x72\x97\x91\x47\x94\xc3\x9b\x76\xf0\xc5\x05\x54\xcc\xe0\x6d\x6a\x39\xe1\xe0\x6d\x3a\x5c\x6f\x53\x8b\x65\xdc\x8b\x0b\xf9\x85\x8f\xe7\x8b\xca\xac\x47\x2d\xa9\x06\x41\x15\x05\xb1\x2e\x88\x75\xf5\xb3\x0e\x62\x5d\x10\xeb\x82\x58\x17\xc4\xba\x20\xd6\xbd\xbe\x58\xd7\x62\x9a\xdf\x6c\x94\xc1\x2a\x51\xb5\x3d\xf2\xa9\xc9\xf1\x81\x54\xc0\x74\x9e\x70\x1c\x37\x45\x7a\xe5\xc2\xa4\x5f\x68\xab\x41\x02\x35\xad\xe7\x9f\x1d\x83\x00\x9a\x8f\xf6\x1b\xcb\x7f\x5a\x9e\xf8\xa1\x78\x0b\x5e\x0b\x03\xb5\x7a\xbf\xaf\xa1\x73\xc9\xbf\x1c\xd7\x8e\x0f\x90\xa8\x01\x50\xa3\x62\x6a\xc1\x77\x1d\x52\xbe\x42\x6e\xd4\x9b\x53\xdc\x43\x6e\x54\xc8\x8d\x0a\x66\x8d\xe6\x69\x07\xb3\xc6\x9b\xc8\x8d\x5a\x5f\x99\xd8\x63\xd9\xea\xed\xd5\x8a\xa3\x08\x39\x0a\x6a\x45\x50\x2b\x82\x5a\x11\xd4\x8a\x43\x2c\xe8\x1c\x74\x8a\xa0\x53\x04\x9d\x22\xe8\x14\x41\xa7\xd8\x39\x19\x83\x4e\xd1\x42\xa7\x80\xbf\x2c\x60\xe9\xda\x0a\xc6\x9a\x8a\xc5\x0a\x54\x86\xfc\xa3\x23\xd3\x2a\x82\x46\x11\x34\x8a\xa0\x51\xbc\xb8\x46\x71\x30\x13\xb2\xec\x73\xc5\x9c\xee\xdd\x82\x94\xe0\xa1\x0f\x6f\x3e\x6e\x44\x43\x68\x69\x85\x30\x51\x54\xd0\xb2\x5d\xa7\x3f\xf5\x75\x14\x13\x9b\x0a\x62\x79\x1e\xba\x89\x22\x2e\x0c\x53\x8e\xed\x2e\x37\xf2\x44\xa7\xdf\xb9\xef\xf6\xcf\x51\x07\xc5\x58\x61\xbd\xad\x05\x99\x0b\x22\x09\x53\x20\xab\x11\x88\xca\x05\x90\xee\xc4\x48\x15\x1f\xf5\xfd\x83\x2e\xb1\xc2\x17\x58\xe1\x84\x4f\xce\x50\x07\xfe\xa9\x3f\xa6\x12\xe1\x44\x72\x84\x1d\xe9\x49\xec\x9a\xc0\x2c\x76\x07\x0a\x03\xf6\x34\x4d\x32\xe5\x34\x53\x2f\x28\x8b\xe9\x13\x8d\x53\x9c\x64\xc1\xce\x03\x53\x60\x38\xc5\x49\xb2\x40\x38\x49\x90\xed\xd6\xbd\xe0\xe0\xac\x47\x24\x1b\xa5\xa4\x33\x9a\x60\xa1\xd9\xb1\x19\xed\x8d\x6d\x0b\x69\xc5\xd8\x8d\x15\xc6\xa5\xa9\x39\xc3\x8f\x44\x22\xaa\xd0\x9c\x4b\x49\x47\x49\x7e\x00\x1e\x7a\x08\xc6\x7d\x71\xd5\x03\x99\x2d\x52\x88\x1b\xce\xe1\x3a\xb7\x0a\x8c\xeb\x71\x86\x19\x23\xd0\x31\x57\x53\x22\x6c\xf7\xf6\xe5\xd7\x16\xbf\x1e\xae\xef\x6f\xbb\x17\xbd\x8f\xbd\xee\xe5\xb2\xfc\xd5\xef\xdc\xff\xb2\xfc\xeb\x97\x9b\xbb\x5f\x3e\x5e\xdd\x7c\x59\x7e\x72\xd5\x79\xb8\xbe\xf8\x79\x78\x7b\xd5\xb9\x5e\x7e\x68\xb7\x55\x6b\x51\xce\x1f\xd9\x3e\x64\x39\xf7\x75\x0b\x84\x00\x7b\xb8\x14\x56\xa9\x34\xd5\xa0\x05\x99\x50\xa9\x80\xfd\xb7\x91\xc2\x56\x03\x03\x1c\xad\xf4\x15\xaa\xb0\x04\x59\x2c\xc8\x62\x41\x16\x3b\x36\x59\xec\xe5\x4c\x02\x47\x14\xa6\xf8\xe3\x71\xdd\x3d\x01\xc4\x3d\x30\xe7\xc3\x67\xce\x07\xe7\x7a\x3b\x18\xd3\xf9\x31\x02\x44\x06\xa7\x62\x7b\x42\x04\xa7\x62\x7b\x5a\x05\xa7\x62\x03\x71\x82\x53\x31\x38\x15\xbf\x61\xa7\xe2\x51\xc6\x26\x06\x55\xc2\xbd\x17\x54\x89\xa0\x4a\xbc\x51\x55\xe2\x60\x28\x1c\xf4\x88\xa0\x47\x04\x3d\x22\xe8\x11\xcd\xc4\x09\x7a\x44\xd0\x23\x82\x1e\x71\x6c\xf1\x88\xc7\xa5\x49\x04\x2d\x22\x68\x11\x87\xad\x45\x1c\xcc\x84\x8e\xc7\x5b\xdc\x6e\x3e\x21\x72\x2f\x44\xee\x85\xc8\xbd\xda\xc8\xbd\x37\xaa\xc9\xef\x4a\x7e\x73\x5f\x1f\x5a\x40\xe2\x71\x89\x5f\xa1\x56\x51\xf6\x34\x08\x63\x41\x18\xfb\x46\x85\xb1\x03\x02\x51\x3c\x88\x92\x4b\x33\xac\xa2\x29\x1e\x25\x64\x98\xd9\xb2\x64\x5b\xf5\xfe\x8a\x4a\x25\x51\x94\x4a\xc5\x67\xf5\x97\xcb\x67\xd7\x43\x27\xeb\xe0\x82\xb3\x31\x9d\xa4\xe6\x6e\xf9\x0d\xb6\xbe\x77\xa2\x73\x01\x77\x31\x27\xab\xfc\x8a\x15\xad\x1f\xc5\xb5\x54\x3d\xf4\x97\xba\x9d\xd6\xd1\x47\x72\xdb\xa5\x55\x26\xb4\x08\x39\xbc\xeb\xde\xdf\x3c\xdc\x5d\x74\xcf\x51\x07\x44\x2c\x70\x27\x98\xad\x40\xff\xa9\x27\x85\x14\x96\x8f\xf9\x5a\x0a\xb3\xcd\x25\xc8\xd9\xe0\xbf\xd0\x22\x3f\x3a\x45\x17\x57\x0f\xf7\xfd\xee\x5d\x4d\x83\x76\xa3\x40\xe1\x45\x32\x9b\x27\x58\x91\x18\x3d\xa6\x23\x22\x18\xd1\xd2\x4e\x94\xa4\x5a\xb8\xc9\xbd\x1a\xa6\xd1\xee\x7f\x75\x2f\x1e\xfa\xbd\x9b\xeb\xe1\xdf\x1e\xba\x0f\xdd\x73\xe4\x76\x9c\x6e\x56\x8f\x4b\x8f\x22\x5e\x30\x3c\xd3\x8a\x95\xfe\x21\x2f\xf5\xf8\x7b\x4a\x52\x82\xb0\x94\x74\xc2\x66\x84\xa9\x72\x8b\x6e\xc0\x57\x9d\x9f\xba\x57\xc5\x96\xa7\x04\xfd\xf2\xd7\x7c\x50\x09\x1e\x91\xc4\xba\x59\xc0\x73\xa0\x37\x7a\xde\x91\xf5\xbf\xa4\x86\xaa\x7f\x7b\xe8\x5c\xf5\xfa\x7f\x1f\xde\x7c\x1c\xde\x77\xef\x7e\xed\x5d\x74\x87\x56\x58\xbe\xe8\xe8\x7e\x0b\x3d\x59\x99\x1a\xfd\x9e\xe2\x44\x2b\x5d\x7c\x0c\x7e\x0b\x1a\x11\xf4\x3c\x25\x0c\xa5\x0c\x76\x9c\xd1\xe4\xb4\x7a\x97\x75\xaa\x4f\x99\x99\xd1\xed\xd5\xc3\xa7\xde\xf5\xf0\xe6\xd7\xee\xdd\x5d\xef\xb2\x7b\x8e\xee\x49\x02\xba\x8e\x23\x3a\xac\xe2\x3c\x49\x27\x94\x21\x3a\x9b\x27\x44\x53\xc3\xe8\x72\x23\x32\xc5\x4f\x94\x0b\x7b\x74\x27\xf4\x89\x30\x43\x47\x38\xb3\xd0\xbe\xd3\x29\x86\x1e\xe9\x6e\xae\x3f\xf6\x3e\x9d\xa3\x4e\x1c\x67\x73\x90\xd0\x46\x61\xe7\x3c\x73\xf1\x38\x4e\xf8\xf3\x69\x71\xd8\x9a\x39\x40\xf7\x66\x13\xf1\x27\x22\x04\x8d\x49\x69\x1f\x75\xee\xef\x7b\x9f\xae\x3f\x77\xaf\xfb\x40\x31\x25\x78\x22\xd1\x94\x3f\x83\x85\x1e\x66\x08\x86\xfb\x27\x4c\x13\xe8\xcc\x2d\x16\x67\xe8\x79\x4a\xc1\xab\x43\xa5\x4f\x30\xa3\x76\x8a\x94\xbd\xba\xd1\xb9\x70\xf0\x96\xb5\xb1\xf2\x49\x5a\x7e\xa3\x74\x2c\x9a\x5e\x28\xec\xf2\xe5\x17\x57\xed\xd6\xe5\x2f\x4a\xdb\xad\x5e\x07\x5d\xda\x2f\xf5\x33\xcd\xd7\xba\xb5\x0a\x5a\xa4\xe1\xcb\x5d\xb3\x44\x09\x1a\xc9\x0f\xd9\xbe\xda\x2f\xc8\x18\x91\x7a\xc3\x2a\x3a\x23\xc8\xf6\x6c\x4f\xea\x96\xb5\x6a\x3f\x11\x95\xbd\xf8\xd9\x34\x7c\x14\x59\x69\x5f\x2c\x47\xc9\x06\xff\x89\x28\x3b\xfe\x90\xa0\x16\x12\xd4\x6a\xa6\x16\xb4\xdc\xed\xb5\xdc\x63\xab\xc8\x1b\x93\xf9\x72\x87\xa5\x89\xc1\x3b\xc6\x5f\xb9\x14\x5e\x63\x2c\xc1\xd6\x16\x9e\x90\x27\x92\x80\x20\xab\x04\xd6\x7a\xb1\x15\xcf\x46\x82\xe0\x47\x2d\xd3\xc6\xfc\xd9\x17\xce\x62\xa2\x30\x4d\xe4\x2b\x85\xdf\xfc\xf8\xe7\x57\xbd\x0f\x8f\xf7\x0a\x0c\x37\x60\x30\x89\x86\xcb\xe2\x1b\xbc\x2c\x8e\xd1\x29\x15\xee\xc0\x43\xb9\x03\x35\xb9\xe3\xa1\x73\x4f\x7f\xf8\x9f\x82\x51\xee\x5f\xfb\xd2\x0f\xef\x20\xde\x57\x36\x5d\x84\x5e\x85\xcd\xdf\xac\x53\x7b\xc5\x8d\xe8\x7d\x71\x14\xfa\xa0\x37\xde\x43\x32\xb5\xde\xf9\x96\x6f\x77\x4f\xcc\x88\xc2\x31\x56\x58\x1f\xa1\x09\x51\x67\xe8\x86\xc1\xb3\x3e\x96\x8f\x27\xc8\xdd\xeb\x9a\x77\xe6\xae\x85\x17\x28\xae\xd9\xd2\x66\xf5\xda\xc1\x08\x87\xc8\xd1\x83\x96\xbe\xcb\xa9\x05\xc1\x2b\xa4\x17\x1d\x32\x0e\x8c\xfb\xba\x55\xf4\xce\xee\x6e\x65\xd3\xe2\x11\x5f\xcc\x2f\x1b\xaf\xb3\xd3\x6b\x3a\x85\xa1\x87\x3b\xd8\xfc\x27\xdc\xc1\xe1\x0e\x0e\x77\x70\x13\x65\xc2\x1d\x7c\xc4\x01\x5d\x15\x57\xd6\xab\x46\x74\xb5\x31\x2b\x18\x9b\x42\x6e\x50\x58\x13\x78\x2e\xb7\x21\xac\x84\x8b\xa8\x90\x5a\x56\x62\x45\xe4\xdf\x50\x72\x1c\xfe\x65\x6f\x96\x2f\x81\x17\xb1\x53\x61\xc5\x64\x2c\x07\xab\xc2\x1e\x25\x9a\xb7\x27\xce\x6c\x23\xcb\x60\x05\x97\x0c\xa6\xcc\xdc\x49\x79\xf6\x92\x7c\x81\x1d\xb6\xe6\x44\xb7\x91\x6c\xbc\x89\x79\xc2\x8d\x93\x59\x3c\xa2\x1c\xc8\xa2\xee\x05\x56\xe2\x75\xec\xf8\xaf\x0f\x25\x41\xde\x2e\x92\x44\x00\x4b\x58\xeb\x90\x04\xb0\x84\x97\x00\x4b\x68\xb1\x8c\x7b\x41\x40\x79\xe1\xe3\xf9\x9a\xaa\xc3\xf1\x38\x21\x8f\x4c\x67\x38\x2a\x7d\x21\xf8\x20\xf7\x6f\xff\x0c\xa6\xc2\x60\x2a\xac\xa6\x4c\x30\x15\x7e\x5b\xe1\x5a\xbb\xba\xef\xdd\xd7\xaf\xed\x85\x3c\xb2\x9b\x39\x38\x21\xc3\x25\x1c\x2e\xe1\x70\x09\x87\x4b\x78\x57\x14\x0e\xfe\xba\x35\x95\xee\xa3\xf0\xd2\x1d\xd9\xb5\x1e\x9c\x74\xe1\xc6\x77\x1f\x07\x97\xd6\xaa\x79\x06\x97\x56\x70\x69\x05\x97\x56\x70\x69\x05\x97\x56\xf6\x7b\x70\x69\xbd\xe8\x6e\xfd\x66\xcd\x76\xd5\x1a\x03\x8f\xc9\xb0\x02\x49\x26\xfb\x69\xe8\xa7\x0d\x16\x7e\x2d\xb8\xef\x0a\x4f\x7c\x5f\x5e\xe1\x41\x0e\xff\x0e\xfd\xd2\x78\xed\x3c\xfc\x26\x73\x22\x8f\x49\xeb\xbc\xfb\xc2\xcb\x87\x1e\x17\xe8\x26\x6a\x54\x0f\x7f\xe4\x2f\x90\x67\x5f\xde\x09\x6f\x2c\xfa\xac\x66\x57\xbf\x45\x4b\x5d\xc5\x19\x0d\x66\xbb\x95\x84\x7a\xc3\x80\x03\x96\x09\xbf\xc0\x78\x5e\xfe\x0e\x73\xc0\x7f\xc3\x8a\x9b\xac\xfa\x59\x7e\x9f\x55\x3f\xcf\x6e\xb5\xea\xc7\xfb\x29\x91\xd8\xfe\x52\x03\x3b\x9a\xff\xf6\x91\x84\xbb\xfb\x43\x7e\x09\x5b\x5a\xed\xc6\x78\x63\x17\x5b\xe3\x26\x7f\x73\xd7\x5b\xd3\x91\x0d\x97\x5c\x4b\x72\xbd\xd5\xab\x2e\xd4\x38\x6c\xb2\xe2\x85\x22\x82\x07\x68\xa5\x08\x46\xc4\x60\x44\x3c\x46\x23\xa2\x09\x3e\x18\xce\xb1\x20\x4c\x55\xe8\x16\xe5\xeb\x04\x5e\xf7\x8b\x4e\x39\xa9\x03\x1a\x40\x5a\xb4\x47\xf6\x42\xce\xae\xaa\x37\x16\x28\x5f\xd2\x5e\xde\xb0\x9d\xed\xc0\xf5\x91\xc3\x31\xb3\xbd\x55\x29\x3d\x18\xa1\x82\x11\xaa\x3c\xcf\x97\x33\x42\x6d\x40\xf7\xe0\x2c\x6a\xbc\xaa\xbe\x11\x43\xda\x81\xdf\x5b\x87\x64\x47\x7b\xab\x37\x57\xb0\x2f\xed\x80\x5c\x6f\xf5\x16\x7b\x2d\x93\xf2\xcb\x6b\xe9\xc1\x92\x16\x2c\x69\xc1\x92\x16\x2c\x69\xc1\x92\xe6\xff\x1e\x2c\x69\x4d\x74\x7f\x31\xf5\xc4\x8a\x40\x5e\xf5\xd1\x0f\xff\x93\xff\x9d\xa9\x25\xbe\x6a\xd1\x94\xc1\x7a\x21\x08\x9c\x0a\x2e\x6c\xfe\xe3\x2e\xea\x93\x62\x55\x10\x7a\xa1\xa2\x41\x83\x2e\x62\xb2\x8a\x6e\xcd\xdb\xc7\x55\x96\x74\x69\xd0\x2f\x9b\xff\xba\xbc\xf0\xed\x0e\x90\x5b\x19\x6a\x4a\x6c\x7a\x75\x1c\xb5\xdc\xcd\xc7\xf9\xc5\x20\xd1\x33\x4d\x12\x2d\xc9\x58\xa9\xed\x40\xa4\xd1\x57\xcf\x8a\xab\x5d\xf9\x57\xcd\x8d\xab\xe2\x0e\x55\x2c\xa1\x8d\x75\x7c\x57\x75\x8a\xdd\x66\x83\x12\xb2\xa0\xf7\xad\x30\xa7\xbf\x0d\x4e\xf0\x89\xa8\x97\x62\x03\x9b\x9e\xfd\xc6\x73\x2f\xc8\x98\x08\xc2\x22\x72\x80\x19\x59\xeb\xa4\x0a\x7e\x31\x93\xb4\x79\x82\x59\xf9\x6e\x7f\xaa\x8a\x5b\x3d\xad\x20\xea\x86\xea\xcd\xa1\x7a\x73\xa8\xde\x5c\x3e\xea\xa1\x7a\xf3\xdb\xa8\xde\xdc\x82\xcb\xee\xc0\xb6\xd7\x6c\xb0\x3d\x50\xbd\xcb\x7d\xfd\x2e\x26\x09\x51\xa4\x56\x50\xba\x84\xc7\xaf\x25\x28\x99\xde\xdf\x86\xac\x64\xe6\x12\xc4\xa5\x6f\x46\x59\x72\x0b\x7e\x10\xca\x92\x39\x6b\xbe\xce\x04\xc9\x15\x9e\x72\x6d\x32\x2a\xde\xa6\x99\xe5\x28\x12\x28\x0e\xc7\xce\xb2\xf7\x4b\xf1\xa5\x99\x43\xb0\x21\x2d\x8f\x24\xd8\x90\xb6\x63\x8b\x85\x1f\x2b\x50\x98\x5e\x9c\x55\x6e\x22\x60\x15\xf8\xe5\x25\xbc\x7e\x9c\x5c\xb3\x3c\xf6\x63\xe6\x9d\x5e\x6b\x87\xc1\x44\xbe\x5d\xf6\xb9\x74\xc4\xdb\x4d\xdc\x86\xfe\x1c\xef\xbc\x0f\xe5\xda\xa8\x3b\xd6\x87\x7c\x79\x14\xeb\x68\x1d\xaf\x47\xe2\x98\xd8\xff\xab\xb8\x24\xde\x9c\x98\xfc\xcd\x19\x0d\x82\x8f\x25\xf8\x58\x82\x8f\x25\xf8\x58\x82\x8f\x05\x6d\xea\x63\xd9\x95\xa4\x75\xd4\x0e\x89\xe3\x14\x95\x5e\xd6\x23\x11\xa4\xa5\x63\x97\x96\x0e\x45\x29\x3c\x2e\x17\xcb\x96\x65\x95\x0f\x45\x2f\x7c\x4b\xc6\xc1\xe3\xd2\x11\x0f\xce\x1c\xf8\xcd\x31\xbe\xcd\x4c\x7f\x47\x3b\xdd\xa0\x15\x07\xad\x38\x68\xc5\x41\x2b\x0e\x5a\x31\x0a\x5a\xf1\xda\x5a\xf1\x5b\x12\x14\x8f\x4e\x43\x0e\xb2\xe2\x6b\x4f\xf8\x1b\x93\x15\x0f\xc5\x26\x50\x77\x72\x0f\xd4\x32\xf0\x6d\x06\x14\x1d\xf1\x4d\x10\x72\x5e\x91\xb7\x74\x21\xe0\xe6\x5b\xe1\xa3\x07\x1e\x70\xf3\xf6\xec\xaa\x47\xcc\x23\x43\x36\x70\x10\x2b\x77\x34\xdd\x60\x82\x0c\x26\xc8\x60\x82\x0c\x26\xc8\x60\x82\x44\x87\x9d\xfc\xbc\xd2\xe0\x14\xf2\x9f\xf7\x65\x58\x3d\x62\x49\x31\xe4\x42\x07\x61\x71\x77\xd3\x3d\x54\xdd\xf9\x90\x6c\x90\x72\xfd\xba\x11\x2b\x91\xb8\xed\xb4\x7f\x6b\x60\x60\x57\x54\x3a\x45\xf7\x98\xf8\x95\xdc\x37\x4b\xda\x06\x7e\xd7\xad\xe8\x9b\x45\xdf\xdd\xa2\x1a\x3d\xf0\xae\x37\x5a\x8e\x3e\x80\x03\x37\x10\x27\x80\x03\xaf\xc5\x4d\x02\x38\xf0\x4b\x80\x03\xef\x5c\x59\x99\x73\x59\x7f\x73\xdf\x91\x09\x95\x70\x64\x1b\x6a\x3e\xb9\x3b\x1b\x0a\x0f\xc0\x56\xf8\xa8\x5f\x40\x31\x99\x27\x7c\x01\xf6\xa1\x86\xeb\xdc\x75\x71\xbb\x24\x51\x1f\xfa\x8d\xee\x46\xfe\x52\x3a\xc7\xa1\xc8\xa4\xf9\xbc\x0f\x42\x0a\x35\x21\xf1\x39\xb6\xb5\x85\xd7\xf0\x7e\x28\x95\x38\x6b\x72\x7a\x3f\x58\x4f\x37\x18\x04\xa9\x84\x5b\x6b\xe5\xc6\x1f\xb0\xea\x07\xce\x30\x36\x22\xee\x9a\x1c\xa5\xca\x2b\xf5\x21\xb5\xdc\x35\x27\x42\x2d\xbc\x37\xc9\x6c\xae\x16\xff\x39\x60\x54\x65\x6e\x45\x3a\x61\x5c\x18\xa6\xa7\x3f\x9e\x62\x16\x27\x44\xe8\x3b\xd7\xb5\x13\x61\xc6\xb8\x02\x69\x04\x26\x10\xa3\x27\x8a\x8d\xec\xd2\xb9\xed\xb5\x76\xae\xff\xe5\x88\x4e\xdf\xcb\x7a\xcf\x8b\xdb\x6b\x5b\x0b\xd7\x81\x95\x28\x29\x1c\x95\x15\x73\xfb\x94\xf0\x11\x4e\x92\x05\x4a\x8b\xb6\x0d\xdd\xd6\x81\x4c\xe7\x50\xf8\xe4\xc1\x32\xc6\xc0\x0d\xb3\xc9\x36\x71\xc3\x1f\x03\x37\xfc\x36\xb9\xe1\x8a\x09\x5d\x92\xb9\x20\x5a\xef\x89\x4f\xb4\xf2\xef\x97\xd5\xa0\x4c\x2a\x82\xe3\xb3\x01\x0b\x7c\xd2\x3e\x39\x02\x3e\x19\x64\xc5\x0d\xb8\xe3\x31\xc5\xe0\xbf\x1a\x77\x0c\xe2\xd4\xdb\x62\x13\x81\x37\x64\x93\x6d\xe2\x0d\x81\x35\x04\xd9\xe2\xdb\x66\x1a\x0a\xcb\x47\xbf\x1a\xb2\x55\xc5\xce\x8a\x55\x92\x87\x15\x25\xa5\xff\xd5\xe6\xbd\x42\xd9\xff\x15\xef\x66\x15\x95\x57\xbf\x0a\xd5\x95\x6b\x5e\xb4\xa5\xb8\xcd\x63\x98\x5e\x79\x1c\xee\x47\xbf\x43\xf7\x5b\xde\xb2\xfb\xe5\x89\x08\x49\xb9\x7d\x4d\x10\x25\x16\x43\xac\x94\xe6\x5a\x6b\xc7\x5b\x37\xd8\xa6\xfb\x58\x3e\xb6\xab\xec\xfc\x89\xa8\xc2\xcb\x87\x2e\xdf\xb8\x89\xc2\x3c\x0b\x23\xdf\x3f\x13\x6b\xb1\x8d\xdf\x9c\x52\xd8\xf2\x48\xae\x98\xf7\xf1\x15\xb7\x6e\xcb\x60\xd6\x98\xf8\xb7\x52\xe8\xba\x1d\xc3\x5d\x15\x53\x75\x8c\x45\xaf\x9b\x6e\x90\x83\x19\x61\xe9\x12\x7b\x8b\x27\xb7\x78\x25\x87\x23\xda\x44\xa3\xb6\x67\xf1\x68\x4e\x60\x49\xd2\x5a\x31\xb7\x7b\xb7\x40\xf6\x75\xb7\x13\x0e\x6f\x5e\x05\x61\x71\xd7\xa3\xda\x4f\x4c\x9a\xb7\x1a\xeb\xa4\x21\xf5\x9c\xf6\x67\x22\x6c\xb2\x33\xe4\x12\x93\xb2\xa3\xa9\xa6\x50\xd4\x86\x4a\x5f\x61\x8c\xb8\x30\xd2\x66\x6c\xcf\xac\x89\xb1\xe9\xf4\x3b\xf7\xdd\xfe\x39\xea\xa0\x18\x2b\xac\x0f\xa9\xd0\x4a\xa7\x24\x4c\x19\x7b\x05\x53\x54\x2d\xd0\x8c\xc7\x24\x31\xc6\x02\x13\xce\x71\x89\x15\xbe\xc0\x0a\x27\x7c\x72\x86\x3a\xf0\x4f\xfd\x31\x95\x08\x27\x92\x23\xec\x36\x0e\x89\x5d\x13\x98\xc5\x8e\x3d\x60\x14\xf1\xd9\x9c\x26\x26\x37\xc6\x0f\xb9\xa3\x2c\xa6\x4f\x34\x4e\x71\x82\xf8\x08\x0c\x2d\x67\x03\xd6\x7d\x22\x4c\xa5\xa0\xe3\xe2\x24\x41\xb6\x5b\xf7\x82\x67\xe5\x70\xa3\x94\x74\x46\x13\x2c\xb4\xf4\x68\x46\x7b\x63\xdb\x42\xfd\x29\xc9\xc6\x0a\xe3\xd2\xd4\x9c\xe1\x47\x22\x11\x55\x68\xce\xa5\xa4\xa3\x24\x3f\xc6\x0f\x3d\x04\xe3\xbe\xb8\xea\x41\x1c\x53\xa4\x10\x37\x7c\xd0\x75\x6e\x83\xfa\x5c\x8f\x33\xcc\x18\x81\x8e\xb9\x9a\x12\x61\xbb\xb7\x2f\xbf\x76\x48\xd2\xc3\xb5\x4d\x39\xe9\x5e\x2e\xc7\x24\xf5\x3b\xf7\xbf\xd4\xe7\x98\x2c\x3f\xb9\xea\x3c\x5c\x5f\xfc\x3c\xbc\xbd\xea\x54\xe4\xae\xd8\x6d\xd5\x3a\xbc\xc9\x1f\xd9\xe6\x87\x69\xff\x8a\xc6\x81\xe6\x9a\xb4\x37\x3a\xb4\xb2\x38\xb4\x36\x37\xb4\xb5\x35\xb4\x33\x34\xd4\x5b\x19\xf6\x10\x5a\xde\xde\x14\x70\x45\x65\xd1\x16\x70\x1c\x80\x43\x85\x21\xeb\x39\xec\xdb\x10\xf0\xcd\x59\x01\xbe\x51\x13\x40\xd0\xff\xf7\x42\xb7\xb7\xaa\xfc\x1f\xb8\xe6\xbf\x4d\x9e\x4c\x96\x43\x1f\x12\x65\x96\x13\x65\x48\xc8\x93\x09\x79\x32\x6d\x09\x14\xf2\x64\x42\x9e\xcc\x31\xe4\xc9\xb4\x52\xb4\x82\xc7\xf6\x10\x3c\xb6\x07\xae\xa3\x1d\xb2\xc3\xf6\xad\x6a\x2e\xc1\x79\x19\x9c\x97\xc1\x79\x79\xa4\x27\x37\x38\x2f\xdb\xd3\x28\x38\x2f\x83\xf3\x32\x38\x2f\x83\xf3\x32\x38\x2f\x83\xf3\xf2\x35\x4d\x23\x87\x10\x1b\x7a\xcc\x2e\xdb\xe0\x89\x5d\xe1\x89\x3d\x70\x25\xff\x20\x1d\xb1\x6f\x55\x47\x08\xaa\x7d\xf0\x4b\x6e\x35\xed\x83\x52\xea\xdf\xda\xbd\x19\x5c\xb1\xed\x09\x11\x5c\xb1\xad\x49\x15\x5c\xb1\x0d\xc4\x09\xae\xd8\xe0\x8a\xfd\x06\x5d\xb1\x34\xde\xba\x6c\x4f\x1b\xbd\x45\xcb\x8a\x71\x17\xcc\x43\x99\x71\x4b\xfc\x06\xd2\x23\x96\x8f\x99\x05\xa8\x85\x3e\xd3\x8b\x8f\x42\x91\xa9\x9c\xf0\x4b\x28\x34\xdb\x68\x2c\x58\x69\x0e\xae\x00\xcf\x40\x3f\xc9\x8d\x8a\x07\x88\x33\xbe\x8d\x8e\xe2\x4d\xcc\x53\x53\x9c\xf6\xe1\x11\xe5\xf0\xa6\x1d\x04\xbf\x20\xf8\x05\xd9\xa6\xe5\x84\x83\x6c\x73\xb8\xb2\xcd\x6b\x29\x2c\x87\x77\x3c\x8f\xce\x3e\xb1\x77\xb1\xb4\x50\x1f\xa3\x11\x66\xdb\x94\xda\x05\xd7\x5d\x3a\x4f\x38\x8e\x57\x05\xc8\xfd\x86\x72\x59\xad\x41\xdc\x34\xed\xea\x0f\x0e\x5c\xda\x5c\x8a\x8d\x33\x23\xff\x16\x90\xb5\x6b\xa7\xfe\xaa\xe0\xda\xb0\x7f\x33\xd4\xa2\x0c\x96\xa8\x10\x3d\xba\x2f\x35\xab\xbc\xc1\x5b\x69\x54\xf2\x28\xb0\xab\xf5\x48\x5f\x42\x7f\x7a\x93\xd9\x77\x6f\xd8\x93\x15\xbc\x55\xcd\x21\x05\x3b\x8a\x6e\x1b\xb0\xbe\x56\xa4\xf8\x6c\x44\x59\x16\xcc\xe3\x76\xc8\x1f\x1d\xb9\xfe\x08\x40\x7a\x16\x5c\x2f\x59\xe4\x7a\xb6\x2c\xb7\x96\x49\x61\xe8\x54\x8b\xc0\x11\x11\x0a\xe8\xcd\x99\x22\x5f\x95\x44\xa7\x28\xa1\x8f\x04\xbd\xd7\x47\x1e\x75\x6e\x7b\xef\x4f\xd0\xfb\x2b\x9c\xb2\x68\x8a\xe6\x09\x66\xf2\xfd\xc1\x48\x6f\x41\x21\x0f\xd5\xa3\x82\x2b\x66\x1f\xda\x7b\x30\x57\xac\x9c\x76\x30\x57\xbc\x19\x57\x4c\x4b\x9d\xc1\x64\xac\xe1\x19\x39\x14\xed\xe1\x68\x00\x3e\x82\xf6\x10\xb4\x87\x8a\xa9\x05\xed\xe1\x1b\xd4\x1e\x0e\x83\xc2\x41\x75\x08\xaa\x43\x50\x1d\x82\xea\x10\x54\x87\x9d\x93\x31\xa8\x0e\x4d\xaa\x03\xfc\xe5\x40\x29\xd6\xd5\x23\x5a\xeb\x0f\x2d\x10\x28\x8e\x46\x79\x08\x8a\x43\x50\x1c\x82\xe2\xf0\xe2\x8a\xc3\xc1\x4c\xe8\xed\x25\xd3\x87\x74\xf4\x90\x8e\x1e\xd2\xd1\x6b\xd2\xd1\x5f\x4a\x64\x33\xf2\xda\x91\xc5\xdf\x1f\x85\xd0\xf6\x6a\x01\xf8\x6f\x4f\x8c\x0b\x29\x05\x21\xa5\x20\x98\x21\x43\x4a\x41\x30\xb4\x05\x43\xdb\x41\x1b\xda\x5e\xcb\x7a\xfe\xc2\xc7\xf3\x05\x84\xd3\x03\x8f\x58\xfe\xf1\x18\x24\xd0\x17\x8c\x39\x08\x56\xb6\x60\x65\xab\xa6\xcc\x71\xba\xe7\x0f\xe6\xd6\x0f\xe8\x31\x41\xe2\x0f\x81\x07\x21\xf0\x60\x25\x71\x82\x3e\x14\xf4\xa1\x83\xd3\x87\x5e\x51\x51\x38\xb8\x30\xe5\xa0\x31\x04\x8d\x21\x68\x0c\x6f\x56\x63\x38\x18\x0a\x07\x75\x21\xa8\x0b\x41\x5d\x08\xea\x42\x33\x71\x82\xba\x10\xd4\x85\xa0\x2e\x1c\x74\x68\xf2\xb1\x28\x0c\x41\x59\x08\xca\xc2\x61\x2b\x0b\x07\x33\xa1\x10\xc4\x1b\x82\x78\x43\x10\xef\x37\x13\xc4\xfb\x46\x15\xf6\xbd\x8a\x69\x8e\x45\x36\x09\x5e\xcb\xf2\xd2\xaf\x4b\x8c\xf5\x60\x45\xa6\x7c\xb4\x9b\x42\x24\xee\x8a\xd4\xcf\x5c\x3c\x8e\x13\xfe\x3c\xcc\xb4\x3a\x1b\x14\x9e\xff\xdb\xe6\xf3\x79\x3f\xe4\xc2\xb3\xf7\x63\x26\x44\x7b\xbf\xb9\xd6\x0b\x32\xf4\x3c\x5d\x85\xa4\x29\x11\x17\x28\x9d\xc7\xf0\x67\x94\x4a\xc5\x67\xf5\x52\xf5\x67\xac\xa2\x29\x1e\x25\xa4\x93\xf5\x7b\xc1\xd9\x98\x4e\x52\xb3\x3f\x7e\x03\x56\x88\x9d\x64\x73\xe2\x24\x23\xcd\x14\xdd\xf8\x9a\x24\xf1\x07\x18\xc7\x17\xfb\x66\xde\xc9\x51\x04\xa0\x2f\x0f\xdb\x4c\xe7\xa5\x90\x39\x8b\xbb\x68\x5b\x16\xe7\xb5\x76\x18\xe2\xcf\xf2\x99\x58\x25\xaa\x82\x15\x3a\xd3\x4c\x68\x0c\x9b\xf3\x79\x4a\xc1\xb2\x06\x96\x38\xb0\x3e\xe5\x0d\xa3\x67\x9a\x24\x20\x71\x18\x5a\x1c\xde\xcc\x5b\x69\x2f\x76\xe2\xf6\xec\xbd\x89\x79\x3b\xe6\xb1\x62\xe6\xee\x08\x1a\x37\xc4\x91\x4e\xfb\x35\x11\x76\x57\x30\xb2\x57\xc5\xd9\xad\xbd\x3e\x6b\x72\xaa\x3e\xfc\x4f\xe5\x95\xd8\xa6\x30\xe3\x6b\xdf\x83\x9f\x88\x7a\x33\x97\xe0\x27\xa2\x5e\xea\x06\x7c\x8b\xd7\xde\xa6\x77\x5d\x23\xe3\x13\x64\x4c\x04\x61\x11\x39\xd6\x9c\xac\xa5\x2b\xee\x68\xa7\xbb\xd1\xcd\x76\xb4\xb3\x5d\xc7\x80\xf5\xc5\x4c\xd2\x9a\xab\x66\x8e\xe5\xfa\x53\x55\xdc\xba\x97\x0b\x2e\x30\x6b\xac\xea\x77\xee\x7f\x19\xde\x75\xef\x6f\x1e\xee\x2e\xba\xe7\xa8\x03\x07\x1d\xbe\x31\xec\x9d\xfe\x13\x9a\x83\x7c\xd8\xcc\x18\x26\xcc\x1d\x27\x81\x55\x83\x1b\x5c\x53\x11\x9d\xa2\x8b\xab\x87\xfb\x7e\xf7\xae\xa6\x41\xcb\xfc\x29\x9b\x20\x45\x66\xf3\x04\x2b\x12\xa3\xc7\x74\x44\x04\x23\xa0\x58\x25\xa9\x54\x44\xe4\xce\x71\xd3\x68\xf7\xbf\xba\x17\x0f\xfd\xde\xcd\xf5\xf0\x6f\x0f\xdd\x87\xee\x39\x72\xb7\x88\x6e\x56\x8f\x4b\x8f\x22\x5e\x30\x3c\xa3\x91\xf9\x21\xab\x73\x89\x7e\x4f\x49\x4a\x10\x96\x92\x4e\xd8\x8c\x30\x55\x6e\xd1\x0d\xf8\xaa\xf3\x53\xf7\xaa\xd8\xf2\x94\xa0\x5f\xfe\x9a\x0f\x2a\xc1\x23\x92\x58\x6f\x3d\x38\xa0\xf5\xe5\x95\x77\x64\xdd\xf8\xa9\xa1\xea\xdf\x1e\x3a\x57\xbd\xfe\xdf\x87\x37\x1f\x87\xf7\xdd\xbb\x5f\x7b\x17\xdd\xa1\x35\xc6\x5c\x74\x74\xbf\x85\x9e\xac\xcd\x06\xfd\x9e\xe2\x84\xaa\x85\x5e\x47\x69\x2e\x7d\xf4\x3c\x25\x0c\xa5\x0c\x2e\x10\x63\x29\xc4\xcc\xeb\x54\xce\x49\x64\x66\x74\x7b\xf5\xf0\xa9\x77\x3d\xbc\xf9\xb5\x7b\x77\xd7\xbb\xec\x9e\xa3\x7b\x92\x80\x2d\xcd\x11\x1d\x56\x71\x9e\xa4\x13\xcd\x09\x66\xf3\x84\x68\x6a\x18\x5b\xe1\x88\x4c\xf1\x13\xe5\xc2\x5e\xc7\x13\xfa\x44\x98\xa1\xa3\xde\x56\xa6\x7d\x67\xb3\x1a\x7a\xa4\xbb\xb9\xfe\xd8\xfb\x74\x8e\x3a\x71\x9c\xcd\x41\x42\x1b\x85\x9d\xe3\x8e\xee\x69\x71\xd8\x74\x4c\x23\xe8\xde\x6c\x22\xfe\x44\x84\xa0\x31\x29\xed\xa3\xce\xfd\x7d\xef\xd3\xf5\xe7\xee\x75\x1f\x28\xa6\x04\x4f\x24\x9a\xf2\x67\x70\xf4\xc2\x0c\xc1\xff\xfb\x84\x69\x02\x9d\xb9\xc5\xe2\xcc\x3f\xfd\x5e\xcf\xc6\xac\x29\x52\xf6\xea\xbe\xcb\xc2\xc1\x5b\xb6\xf6\x95\x4f\xd2\xf2\x1b\xa5\x63\xd1\xf4\x42\x61\x97\x2f\xbf\xb8\x6a\xb7\x2e\x7f\x51\xda\x6e\xf5\x36\xce\xa5\xfd\x52\x3f\xd3\x7c\xad\x5b\x9b\x38\x8b\x34\xdc\x87\x8c\xed\xbe\x7e\x17\x93\x84\x28\x52\x2b\x13\x5f\xc2\xe3\xd7\x97\x89\xcd\x38\xde\x8c\x58\x6c\xa6\x13\x24\xe3\x20\x19\xb7\x9e\x70\x90\x8c\xab\x26\xfc\x46\x24\xe3\x03\xb4\xfa\x38\x16\x75\x70\x56\x9f\xe0\x1f\x29\xad\xd4\x71\x5e\x81\xaf\xe6\x1e\x09\xfe\x83\xf5\xae\x90\xe3\x9f\x77\xf0\x1f\x04\xff\x41\xe5\x4d\xf2\xe6\xbd\x06\xc7\x79\x35\xbc\xa0\xd3\x20\xa8\x11\x0d\xf3\x0d\x6a\xc4\x91\xcd\x36\x18\xd8\x83\x81\x3d\x18\xd8\x83\x81\x3d\x18\xd8\xd1\xa6\x06\xf6\x16\x5c\xf6\x25\xcc\xa9\x07\x1a\x44\xfc\x56\xdc\x06\xc7\x29\x17\xbf\xac\xd7\x20\x88\xc6\x0d\xf3\x0d\xa2\xf1\x91\xcd\xf6\x00\xed\x22\x87\x65\x61\xa7\x71\x95\x41\xe4\x05\xa1\xe9\xdd\x48\xda\xc2\xd3\x3b\x82\xf6\xe2\xa3\x60\xe7\xaf\x86\x50\x1f\xf0\xdc\x03\x9e\x7b\x80\x6b\x09\x78\xee\x28\x00\x92\x04\x40\x92\x43\x06\x24\x69\xb1\x8c\x6f\x01\xcf\xfd\x65\x2c\x0c\x6f\x28\x49\xd9\x09\x86\xb2\x10\xbb\xc1\xe5\xaa\xe0\x0d\xb0\x12\xa4\xf3\x84\xe3\xb8\x09\x2c\xc6\xc9\x91\x3e\x60\x4c\x83\xe8\x69\xda\xfe\xb2\xac\x3c\x1d\xac\xe4\xe9\xc6\x6a\x46\xfe\x52\xe6\x83\x83\x51\xb8\xdc\xb4\x0f\x42\xcd\x6a\x59\xbb\x75\xe7\x6a\x57\xd5\x26\x6f\xad\x61\xc9\xbf\x1c\xd3\x36\x7f\x21\x48\xd5\xb7\x57\xf8\x2b\x40\x3f\x05\xe8\xa7\x5a\xca\x1c\x27\x4e\xec\xc1\x48\x74\x41\x49\x0f\x98\xaa\x01\x53\x75\x1f\x1a\x7d\x30\x61\xac\x9c\x76\x30\x61\xbc\x09\x4c\xd5\x35\x75\x88\x3d\xd6\x64\xd8\x4e\x9b\x38\xaa\x9c\xbd\xa0\x4d\x04\x6d\xa2\x62\x6a\x41\x9b\xf8\x06\xb5\x89\xc3\xa0\x70\x50\x25\x82\x2a\x11\x54\x89\xa0\x4a\x04\x55\x62\xe7\x64\x0c\xaa\xc4\xeb\xd4\x6b\xa8\xd2\x27\x5a\xe6\xba\x1d\x95\x32\x11\x14\x89\xa0\x48\x04\x45\x22\x54\xa4\x68\x9e\x53\xa8\x48\x11\x2a\x52\x84\x8a\x14\x6f\xa0\x22\xc5\x4b\x8a\x70\x35\x30\xc8\xc7\x11\xbf\x7f\x14\x42\xdc\xab\x05\xf0\xbf\x3d\x91\x2e\xa4\x24\x84\x94\x84\x60\xa2\x0c\x29\x09\xc1\x08\x17\x8c\x70\x07\x6d\x84\x7b\x2d\xcb\xfa\x0b\x1f\xcf\x17\x12\x54\x8f\x24\xda\xf9\xc7\x63\x90\x46\x5f\x38\x3e\x21\x58\xe0\x82\x05\xae\x9a\x32\xc7\xe9\xca\x3f\x18\x29\xe0\x18\x4b\x52\x06\x0d\xa0\x3d\x21\x42\x90\x42\x7b\x5a\x85\x20\x85\x06\xe2\x04\xfd\x28\xe8\x47\x07\xa7\x1f\xbd\xb2\xe2\x70\xb0\x21\xce\x41\x83\x30\xef\x05\x0d\x22\x68\x10\x6f\x54\x83\x38\x18\x0a\x07\xf5\x21\xa8\x0f\x41\x7d\x08\xea\x43\x33\x71\x82\xfa\x10\xd4\x87\xa0\x3e\x1c\x4d\x58\xf3\x31\x29\x10\x41\x79\x08\xca\xc3\x61\x2b\x0f\x07\x33\xa1\x10\x00\x1c\x02\x80\x43\x00\xf0\x37\x13\x00\xfc\x46\x15\xf8\xdd\x8a\x6d\xff\x66\x09\xf5\xce\x13\x30\x32\x49\xe4\xdd\x4f\x09\x1f\xf5\x17\x73\xa2\xff\xff\x92\xce\x08\x93\x40\x09\xaa\x16\xbe\x98\x56\xb3\xa1\x96\xb7\xd2\xbb\xfb\xde\xf5\xa7\x2b\xbf\xee\xc8\xbb\xcf\x0f\x57\xfd\xde\x6d\xe7\x2e\x5b\xee\x6c\x56\xfe\x12\xdb\xef\x0a\x92\xa6\x3d\xc9\x77\x44\xab\xd4\xc0\x0c\xee\x15\x56\xa9\xdc\x6c\x64\x77\xdd\xfb\xee\xdd\xaf\x50\x37\x65\x78\xd9\xbb\xef\xfc\x74\x55\xd8\xe7\x85\xe7\x9d\x8b\xbf\x3d\xf4\xee\xea\x9f\x77\xff\xab\x77\xdf\xbf\xaf\x7b\x7a\xd7\xbd\xea\x76\xee\xeb\xbf\xfe\xd8\xe9\x5d\x3d\xdc\x75\x1b\xe9\xd1\x38\xda\x66\xdd\x4a\x02\x91\xa0\x76\x00\x8a\x2c\x33\x14\x39\x0d\x51\x26\x15\x3b\x2e\x5f\xd5\xd7\x39\x7a\xb0\xa6\x0a\x6a\x1b\x37\xf7\x86\xd7\x90\xd1\xb1\x62\x2a\xf1\x28\x21\xf1\x52\x4b\x8e\x86\x75\x2d\xe1\xc2\xa0\x9e\xb1\xf4\x24\x69\xcd\xca\x23\x73\x7c\x10\x54\x73\x52\x84\xc5\x15\x7d\x98\x75\xa8\xed\x81\x69\x96\x4c\x9f\x48\xa1\xa7\x28\x15\x82\x30\x95\x2c\x10\xf9\x4a\xa5\x92\x4b\x8d\xba\xe5\xab\x6b\xd6\x32\x84\xac\xc1\x29\x96\x68\x44\x08\x2b\x8e\x5f\x90\x84\x60\x59\x31\x66\xbb\xfa\xed\xc8\x92\xad\x95\x35\x32\x99\x3b\x76\x8c\x69\x92\x0a\x52\x3a\x2d\x7c\x36\xc7\x82\x4a\xce\xba\x5f\xf5\x15\xad\x0f\xf2\x0d\x7c\xce\xc5\x66\x27\xa6\xfb\x37\x7f\x07\x5f\x17\xff\xf9\xa9\x5f\xfc\x57\xe1\xcc\x5f\xf5\x8b\xff\x6a\xde\xeb\x5e\xc3\xe5\x9d\x7d\x8a\x3e\xf5\xcf\xd1\x27\x80\x18\x15\xa8\x3f\xc5\x66\xc7\x5e\xf5\xcf\xd1\x15\x91\x12\x7e\xc9\x3f\x56\x54\x25\x30\xb7\x9f\x28\xc3\x62\x81\xdc\xf4\x4d\x49\x30\x1c\x4d\x11\xc9\x48\x53\x26\x1e\xfb\x47\xca\xc0\x22\x91\x53\xef\x8a\x4f\x68\x84\x93\xed\x88\xd8\xb9\x2e\xf0\x81\x9b\xbb\x46\x52\xf8\x6f\x2f\xd3\xa2\x73\x7d\x09\xe5\xb6\xdc\x50\x2b\x66\x7e\x4d\xa4\xde\x24\x11\x67\xb1\xf5\xa9\x69\xa1\x66\xe1\xe9\x2a\xff\xe0\x50\xb2\x2c\x95\x94\x4d\x74\x8b\xe8\x03\xba\xb9\x1b\xb0\x1b\x11\x1b\xfb\x2e\xd1\x42\xbe\xd9\x73\x54\x22\xc6\x15\xa2\xb3\x39\x17\x0a\x33\xa5\xf5\x1b\x90\x6e\x2c\x45\x0c\x07\xb8\xe0\xb3\x59\xaa\xb0\x3e\x68\x4b\x44\x65\xc6\xca\x73\x4f\x54\x2f\x06\x47\x58\x05\x0d\x8d\xf8\x93\xcf\x65\x2e\x74\xfb\x5a\xf4\x2a\x9a\x06\x68\xbc\xa4\xa1\xbb\x26\xb0\x10\xb8\x78\x01\xbf\xa3\x8a\xcc\xca\xef\xb7\xbc\x76\xff\x55\x69\xf7\xb8\x30\x59\x11\x44\x74\x44\x34\xa5\x8a\x44\x4a\x1f\xc1\x8d\xf6\xc4\xc3\xf5\x2f\xd7\x37\x5f\x7c\xc1\xe8\x5d\xe7\xf3\xe5\x7f\x14\x60\x60\x3b\x77\x9f\x97\x7e\x18\xfe\xfa\x1f\x4b\xbf\xfc\xff\x1b\xf7\x53\xb9\xa7\x25\xf3\x85\x37\x97\x53\xd0\x14\xc0\xd4\xed\xa6\x8a\xe8\x0c\x4f\x08\x92\xe9\x5c\xef\x00\x79\x56\x5c\x5f\x2d\x29\x5f\x71\x1c\x53\x36\x31\x55\xa5\xae\xa8\x22\x02\x27\x9f\xf1\xfc\xa3\x33\xcb\x6f\x40\x9d\xff\x73\x5f\xa8\x6c\xf6\xee\xef\x9d\xcf\x7e\x6d\xb4\x77\xb7\x77\x37\xfd\x9b\xc6\x59\x17\x5a\x58\x3e\x46\xfa\xf1\x39\xfc\x2f\xfa\x80\x74\xeb\x99\x40\x3f\x23\x0a\x6b\x45\x07\x7d\x67\x0a\xf1\x64\x99\x30\x94\x25\x70\x6a\xe6\x82\xce\x28\x5c\x29\xc6\x30\xf9\xbd\xd1\x19\x32\xa5\x28\x3b\x37\xe6\x03\x30\x02\xb8\x4b\x99\xc5\x58\xc4\xe8\x1f\xb2\x5c\x68\x0f\xec\xe1\xe6\x07\x12\xa3\x53\x34\x55\x6a\x2e\xcf\x3f\x7c\x78\x7e\x7e\x3e\xd3\x6f\x6b\x01\xf6\x83\xfe\xe3\x94\xb0\xb3\xa9\x9a\x25\xa6\xb0\xa0\xa6\xc2\x39\xba\x15\x5c\x5f\x21\x60\x77\x20\x82\xe2\x84\xfe\x93\xc4\x68\x64\xf8\x1f\x1f\xa3\xdf\x22\x2e\xc8\x59\xbe\x30\xd6\x56\x66\xef\x11\x6b\x4f\xfb\xa0\x5f\xaa\x60\x26\xe5\xf5\x44\x31\x89\x68\x6c\xc5\x0c\xc2\x22\x0e\x06\x55\xe3\x82\xd1\xed\xb9\xea\x45\x5a\x51\x9b\xa7\x2a\x27\xa7\xa7\x83\xe1\x98\x78\x75\x01\xad\x7c\x9d\x6d\x38\xad\xcf\xf5\x8c\x36\x9e\x4a\x22\xe0\x6e\xc5\x70\xab\xba\x57\xe7\x7a\xc2\x11\x4f\xd0\x28\x1d\x8f\x89\xf0\xc3\x07\x4e\xb4\x92\x46\x25\x12\x24\xe2\xb3\x19\x48\x0c\xfa\xab\x54\x9a\x5d\x0d\x14\xb3\xa3\x3d\x1b\x30\x58\x7f\xad\xbd\xc1\x0e\x88\x39\xb0\x3a\x46\x48\x8c\x30\x5b\x98\x6e\x46\xe9\xd8\x6f\xdf\x14\xec\xc4\x31\xa2\x6a\xc0\x3a\x49\x82\x04\x99\x71\x45\xbc\xba\x4c\xe0\xea\x2c\x12\x1c\x58\xa4\x20\xf3\x04\x47\x24\x36\xfb\x21\xe1\x11\x4e\xd0\x98\x26\x44\x2e\xa4\x22\x33\xbf\x81\xef\xc0\x04\xa5\x69\x46\x25\x8a\xf9\x33\x4b\x38\xb6\xf3\x28\x7f\xf6\x7d\xf1\x34\x76\x5d\x31\xc5\xae\x10\x5c\xc0\xff\xfc\x42\x59\xbc\x33\x0e\xf5\x70\xdf\xbd\xf3\xff\x7d\xff\xf7\xfb\x7e\xf7\xf3\x7a\xdc\x27\xdb\x59\x30\x3c\x30\x4d\x9c\xa3\x7b\x43\x04\x2e\xb4\x44\x24\x6a\x26\xf5\xd9\x6e\xa5\xfc\x07\x1e\x6f\xc8\x7d\x3f\x77\xae\x1f\x3a\x05\x8e\x72\x7f\xf1\x73\xf7\xf2\xa1\xa4\x0f\xd8\xf9\x15\x64\x78\xa3\xd5\xfa\xbf\x5d\xfc\xdc\xbb\xba\x1c\x56\xe8\xc1\xef\xee\xba\x17\x37\xbf\x76\xef\x72\x95\xb5\x92\x44\xa5\xc1\x94\x99\x55\xdf\x30\xa5\x29\x8f\xd1\x68\x51\x5d\x3a\x53\x4b\xce\x09\x78\xce\xf3\xe2\xb1\xa6\xd5\x73\xe0\x4d\xae\x8a\x69\xfe\xc5\x8c\xc7\xe4\xc4\xbe\x03\x35\x47\x8d\xcd\xc8\x48\xcc\xd5\x0d\xeb\xde\x31\xf3\xec\x2f\xa6\x1c\x68\x46\xb8\x73\xd4\x41\x52\xbf\x98\xea\x43\x2d\xe8\x64\x02\xf6\xd0\xd2\x50\x4d\x6b\xf6\x53\x20\x2f\x7c\x67\xd6\x7f\x2e\x38\x9c\x73\xdd\xad\x35\xa4\x67\xc6\x16\xf3\x21\xd4\xa7\x2d\xb6\x28\x30\xd8\x51\x2a\x86\xe6\x16\x4b\x13\xa1\x96\x5e\xe6\x3c\x1a\x33\x98\x3e\x5c\xc0\xb6\xa4\x31\xe3\xce\x05\x79\xa2\x3c\xf5\x3e\xb5\x25\x50\x0b\x2b\x5e\xd9\x7c\x4e\x00\x20\x9b\xb1\xf5\x94\x9a\xc9\xb6\x47\x65\x0b\x9a\x85\x3d\x41\x0b\x63\xc1\x67\x15\x6d\x14\x8f\x49\xef\xe6\x5e\x09\xac\xc8\x64\x71\x69\x59\xc6\xe6\xc7\xe3\xf2\xe6\xcb\xf5\xd5\x4d\xe7\x72\xd8\xed\x7c\x2a\x9e\xf8\xec\xc9\x7d\xff\xae\xdb\xf9\x5c\x7c\x34\xbc\xbe\xe9\x0f\xdd\x1b\x8d\x5b\xbe\xa6\x83\xe5\x7b\xba\xf8\xe2\x39\xd2\x2c\x17\x58\xe3\x33\x4d\x12\x7d\x99\x78\xfc\x71\x44\xc6\x5c\x18\x3e\x3f\x73\x81\x26\x56\x84\x71\xb4\xb5\xba\x58\x69\x16\xe7\x60\xf0\xab\x6a\xd2\x18\xf3\x95\x20\x78\x06\xf7\x04\x66\xa8\xcb\xe2\xd3\x9b\xf1\xe9\xbd\xf9\x71\x86\xc5\x23\x11\xd9\xa7\xcf\x82\x2a\x45\x58\x41\xa5\xc3\x6e\xc8\x99\x92\x98\x77\x70\x86\xee\x34\xdf\xd7\xef\x67\x97\x9a\xde\xec\x31\x51\x98\x26\xd2\x0e\xb6\x40\xd7\x73\x74\x85\xc5\x24\x37\x2f\x7e\xc7\xc7\x63\xd3\xd8\xf7\x66\x18\xfa\x0e\x2b\xcc\xa2\x82\xf7\xea\xad\xe1\xee\x45\xe8\xcf\xbe\x9c\xc9\xc3\xcb\xbb\xea\x61\xbe\xdd\x9e\x7a\xb8\x05\x8a\x1b\x8d\xbd\xa0\x1b\xda\x27\x15\x7b\x0d\x26\x6e\x1e\x37\x5f\x32\xd5\x6d\x2f\x6f\xa7\xe2\x8b\x15\xdb\xc9\xd4\x32\xd1\x2b\x3f\xd6\xda\x66\xc5\x5e\x22\x5f\xa9\x35\x18\xf8\xe3\x2e\x6d\xa1\xbc\x19\xb0\x1a\xe3\xf9\x9c\x60\x21\xab\x56\xbb\x28\x06\xd6\xac\xbd\xe9\xc9\xef\xc3\x2e\xb2\xeb\xe7\x04\x71\x06\x06\x87\x4c\x88\x28\xed\xc8\x16\x7b\xc0\xb4\xb5\xb4\x03\x6e\xa1\x2e\xf5\x8d\xad\x01\xfd\x99\x4a\xad\x34\x9a\x1f\x7f\xb2\xc5\xa9\x37\xdb\x10\x1f\x3b\xbd\xab\x92\x70\x31\xbc\xec\x7e\xec\x3c\x5c\x35\x9b\x09\x0b\xdf\x95\x97\x18\x9d\x22\xfd\xbc\x18\x0e\x40\xc7\xe6\xce\x70\x25\xb6\x8d\x4a\x4b\x18\x18\xad\x6c\xf9\x5b\x63\x86\x8f\xc9\x3c\xe1\x8b\x19\x61\x60\xe2\x29\xdc\x84\x9a\x9e\x63\x4c\xed\xd5\xe2\x0d\x16\xac\x38\xd6\xec\x06\xd7\xd8\xa9\xab\xeb\x4d\xe2\xec\xe6\x2d\x96\xf5\x2e\xb1\xee\x5b\xe3\x14\xb4\xff\x77\xaf\xb0\xda\xf0\x8c\x75\x2e\xfa\xbd\x5f\xbb\x45\xfd\xf0\xe2\xe7\xde\xaf\x55\x52\xcd\xf0\x53\xf7\xba\x7b\xd7\xe9\xaf\x10\x4e\x4a\x4d\x56\x09\x27\x52\x0f\xb8\xec\x14\xa6\x32\x0b\x74\x8a\x4c\x71\x70\x44\x95\x44\x4f\x54\xd2\x11\x85\x52\xea\xd6\xc1\xfa\xd0\x03\xce\xfa\x84\x13\x1a\x53\xb5\x70\xe2\x8b\xe9\xb7\xb8\x8e\x9a\x93\xda\xf6\x8d\xd9\xc1\x77\xbb\x82\x95\xcf\x2c\x8e\x9b\xf4\x39\x02\xdd\xf6\x09\x94\x36\xef\x33\xa6\x05\x69\x36\x21\xc2\x0c\x07\x9c\x4a\xfe\x58\xbc\xe7\x7a\x54\xbe\xb0\x92\x53\x2d\x13\x5a\x27\x84\x11\x01\xe5\xf2\xb3\x4e\x8c\x20\x25\x08\x7b\xaf\x65\xae\x79\x42\x23\xaa\x92\x05\x8a\xc0\x86\x05\xe6\xcc\x19\x66\x78\x62\x85\x03\x50\x73\x4a\x5b\xe2\x6f\xa6\xde\xfc\xcd\xd8\x9a\xf6\xfb\x94\x6c\x78\xcc\x1e\xae\x2f\xbb\x1f\x7b\xd7\xc5\x2d\xf0\x73\xef\x53\x41\x84\xfd\xdc\xbd\xec\x3d\x14\x6e\x73\x2d\xc9\x36\xcb\xf5\xe5\x66\x2b\x8e\x62\xf6\xd2\x39\xba\x34\x9f\x9e\x6b\xe2\x56\x14\xd3\xcf\x94\xdf\x12\x1d\xee\x5c\xa4\xa1\xfb\xa3\xcb\x94\xa8\xf4\x4b\xb4\x35\x21\x59\xaf\x50\xc1\x86\x54\x1d\x81\xb1\xd4\xf7\x75\xd9\x57\x5e\x9e\xb2\x7b\x11\x42\x64\xcf\x72\xcb\x92\x1f\x9a\x01\x46\x83\x3a\x23\x56\x85\xb7\x2e\x67\xd8\xbf\x82\xe7\x7d\x96\x4a\x65\x3c\xa4\xb0\x39\xd1\xe3\x5f\xa5\x26\x28\x78\x50\xcf\xd0\x3d\x21\x03\xe6\xac\x07\x13\xaa\xa6\xe9\xe8\x2c\xe2\xb3\x0f\x8f\xe9\x88\x08\x46\x14\x91\x1f\xf0\x9c\xce\xb0\x96\xa4\x89\x58\x7c\x18\x25\x7c\xf4\x61\x86\xa5\x22\xe2\xc3\xfc\x71\x02\x81\x3d\xce\xd3\xf5\x21\x6b\x76\xc2\xff\xfd\xea\xc7\x1f\x4e\xaf\xfe\xfa\xc3\xbb\x65\x0b\x59\xdd\xfa\x77\x59\x84\xe7\x32\x4d\x6c\x20\xa0\xf0\x69\xe3\x8e\x7c\x4a\x56\xad\xf7\x75\x71\xb9\xb6\xd3\x5f\x2f\x6e\x1f\x0a\x16\xeb\xe2\x3f\x3f\x77\x3f\xdf\xdc\xfd\xbd\xc0\x29\xfb\x37\x77\x9d\x4f\x05\x86\xda\xbd\xfd\xb9\xfb\xb9\x7b\xd7\xb9\x1a\xba\x87\xdb\xd8\xde\x7e\x61\xfc\x99\x15\x49\x23\x1d\x07\x5c\xea\xe9\x1c\x7d\xe4\x02\xfd\x92\xad\xe4\xe9\x08\x4b\xb8\x62\xdc\x9d\x25\x4f\xd0\x9c\xc7\xc0\x78\x11\x99\x4f\xc9\x8c\x08\x9c\x58\x9b\x81\x54\x5c\xe0\x89\xb9\xe9\x65\x24\xb0\x8a\xa6\x48\xce\x71\x44\x4e\x50\x04\xbb\x61\x72\x02\x8b\x02\xaa\x16\x9f\x94\xed\x7c\x77\x29\x53\x74\x46\x9c\x0a\x6e\xff\xd9\x37\x8b\xb1\xc1\xe2\xdc\xf4\x7f\x2e\x0a\x7b\x1f\xaf\xfe\xde\xef\x0e\xef\x2f\x7f\x69\xa4\xa7\xf9\xac\x30\xb2\x7b\x88\xab\xba\xe0\x49\x3a\x63\xfe\xdf\x9b\x8f\xad\x77\xdd\xef\x7e\x2a\x8f\xee\xa6\xd3\x2f\xee\x8c\xbb\x62\xdc\xde\xbb\x9f\x6e\x6e\xae\xba\x05\x4f\xf7\xbb\xcb\x4e\xbf\xdb\xef\x7d\x2e\xec\x9f\xcb\x87\x3b\xf0\x01\x35\x4e\xd3\x8d\xa0\x62\xa2\x7a\x5a\xfe\x34\x77\xcd\x0a\x5b\x71\xa2\x8e\x0d\xff\x37\x67\xf9\xd4\xc3\xcb\x31\x51\x6e\x60\xd5\x39\xcd\x4c\xaa\x91\x19\x69\x25\x3b\x54\xc5\x65\x42\xf5\xec\xb8\x71\xa1\x9b\xb8\x72\x3f\x1b\x02\x8c\xeb\xcc\x28\xdb\x38\x49\xf8\xb3\x89\x50\x9e\x51\x7d\x2b\xdb\x62\xeb\xfa\x15\x99\x7b\x08\xcf\x2a\x38\x5e\x71\x59\x48\x24\x88\xfa\xcc\x53\xa6\x36\xdf\x72\x9d\xeb\x02\xdf\xe9\x5e\xff\x3a\xfc\xb5\x53\xdc\x81\xbd\xab\x66\x56\xe3\x37\x51\x71\x15\x77\xae\xff\x9e\x5d\xc2\x10\xc7\x7e\x92\x69\xa8\x46\x76\x8d\x12\xaa\xc5\xde\x08\x6b\xed\x35\x01\x89\x06\x11\x0a\x26\x87\x99\x9e\x1c\xc4\xcd\xce\x8d\x3f\xc9\xf0\x27\x33\xc8\x73\xf7\x47\xa9\x3d\x09\x74\x01\x6b\xaa\x4b\x13\x80\x76\xac\x56\xcd\x10\x61\x4f\x54\x70\x06\xc2\xf6\x13\x16\x54\x4b\xe3\xa6\x65\x3d\xd7\x73\xf8\xdf\xf5\xda\x04\xc3\x68\x89\x71\xdd\x73\xa1\x2e\xb3\xf8\xe4\xcd\xac\x21\x55\x71\xba\xcb\x11\xba\xd5\x86\x8e\xe5\x6f\x2b\x16\x67\xcb\x38\xe6\xe2\x84\x7f\x4f\x2e\x29\x4e\x34\x03\xd8\x9d\xbc\xd8\xb9\xbe\xef\x15\xe5\xc7\xa2\x9a\xe1\xf1\xe5\x8d\xe5\x45\x30\x54\x9a\x91\x3b\x65\xe2\xfe\x6f\x57\x46\xbb\xd0\x9b\xc4\x9e\x5b\x4f\xb1\x00\x01\xc8\x55\x21\x9d\x63\x21\x4b\x5f\x48\x04\x48\x66\x79\x1c\x99\xbe\xb3\x20\x4a\xeb\x89\xd3\x78\xc0\xc8\xd7\x39\x61\x12\x82\x03\xcc\x7d\x96\xfb\xda\xe5\x19\xea\x8d\x81\x25\xe8\xd7\x19\x4a\x99\x75\x80\xe9\x0b\xd7\x0c\xf2\x44\x8b\xb2\x76\x08\x99\x86\x08\x86\x17\x46\x5c\x0c\x58\x3e\xf8\x01\xfb\x92\x39\xd1\xe0\xd1\x98\x6b\x06\xa4\x57\xd1\xb6\x77\x8e\x30\x93\xf4\x04\x69\x85\xa5\xbc\xa6\x90\x11\xa1\x15\x4a\x1b\x99\xa6\x39\x8d\xfd\xf3\xe5\xaf\x81\xa5\xf0\x67\xff\x32\xa8\xbe\x0b\x4a\x57\x41\x8d\x68\x9c\x18\x8f\xc9\xb0\xfd\x9d\x10\x71\x41\xac\x9f\x65\xed\x6b\x60\x15\x63\xef\x63\xf9\xb8\xe4\x7b\xe8\x31\xa9\x30\x8b\xc8\x45\x82\xe5\x86\x41\x48\xce\xc6\x71\x52\x94\x38\xee\xee\x1e\x6e\xfb\xbd\x9f\x56\x70\xf9\xf2\xc7\xcb\x61\x40\x51\x92\x3a\xf7\xdc\x48\x70\x1c\x23\xcd\x3e\x27\xdc\xb8\x02\xad\xe0\x6f\x4e\x90\x59\x13\x2a\xbd\x38\x51\x2c\x1f\x0b\x46\x6a\x9b\x65\x61\xed\x1c\xbe\x2b\x81\x5a\x42\xa0\x48\x53\x02\x79\x26\x0f\xb7\xd4\xe0\x59\x34\x51\x74\xd6\xba\x35\x4f\xb0\x1a\x73\x31\x33\x5c\xbe\x30\x69\xd3\x78\x73\xa3\x94\x29\x22\x44\x3a\x57\xa0\xb2\xeb\xb1\x96\xa5\x54\xbd\x64\x57\x7c\xf2\x99\x48\x89\x27\x64\x1b\x07\x74\x95\xf2\x70\xff\xab\xff\x4f\x70\x30\xb7\x91\xfd\x0b\x23\x74\x01\xfd\x6e\x3f\xdd\xb0\x8f\x26\x90\xe7\x96\x27\x34\xda\x30\xe0\xee\x63\xa7\x77\x35\xec\x7d\xd6\x4a\x7c\xa7\xdf\xbd\x2a\x88\x12\xf0\xac\xf3\xb1\xdf\xbd\x1b\x76\xff\xab\x7b\xf1\xd0\xef\xfc\x74\xd5\x1d\x5e\xdf\x5c\x76\xef\x87\x17\x37\x9f\x6f\xaf\xba\x2b\x22\x73\x6a\x1b\x5f\xb6\xae\x96\x5f\x3d\x5f\xfa\x05\x56\x58\xf3\x32\xdf\x5e\x06\xc9\x70\x98\x26\xe0\x04\xe7\xc6\x19\x8e\x11\xe3\x31\x81\x9f\xa5\xb3\xce\xb8\x6c\x93\x33\xd4\x53\xef\x93\x04\xe1\x54\xf1\x19\x06\xaf\x4d\xb2\x18\x30\x3c\xd2\xac\x15\x27\x89\x17\xde\x25\x52\xc6\x34\x8b\xd5\x8d\x49\x13\x5f\x9c\x10\xcd\xce\xe7\x5e\x0e\xa3\xf5\x1b\x8c\x29\x83\x00\xe2\x19\x16\x8f\xc6\xcd\x94\x77\x99\x1f\x0a\x89\xb0\x1c\x30\x3d\x2e\x62\x0d\x43\x6d\x28\x7c\xde\xea\xad\x5a\xea\xcc\xf0\x23\xd1\x54\x99\xa5\xd1\x14\xcd\x05\x9f\x08\x22\xa5\xb5\x2d\x47\x98\x99\x00\x04\xfb\xba\xbe\x86\x06\x8c\x71\x4d\x0a\x67\xc2\x8e\xc9\x9c\xb0\x98\xb0\x88\x9a\x6c\x45\xf0\xdd\x67\xa6\xcd\x89\xc0\xf3\x29\x92\x1c\x9c\xde\x40\x76\xb0\x5f\x99\x8f\xdc\x4d\x66\x66\x6c\x1e\xfb\x16\x68\x91\x6a\x3e\x71\x03\x72\xa2\xa1\x32\x7c\xec\x2e\x43\xe7\x76\x31\x76\xc0\xd9\x3c\x21\xd0\xa5\x25\x39\x2c\x86\xa6\x75\x61\x3d\xf4\x32\x55\x2d\x82\xbe\xb0\xdd\x98\xb1\xb4\x23\x3a\xab\xb0\x6c\xdb\x23\x85\x7e\xc6\x2c\x4e\x74\x2b\xce\x87\x51\x3c\x8b\x90\x61\xd3\xd1\xbb\xc6\x9d\xc6\x6d\x6e\xd1\x08\xa7\x72\x9b\x6b\xb4\x94\x62\x6a\xac\x82\xa7\x79\x50\x08\x6c\x6f\x9b\x5f\x0a\xd4\x9d\x6b\x16\x89\x13\x6e\xa9\x64\x5e\x4f\x6d\xd0\x32\x8c\xa6\xe6\x9a\x9d\x0b\xca\x22\x3a\xc7\xc9\x46\xba\x5f\x29\xc7\xc0\x86\xee\x7f\x47\xc7\x7a\xfb\x7c\xbf\xe4\xb6\x55\x44\xcc\x20\x9d\xdc\x0e\x33\x5b\xc2\x35\x2c\x49\x36\x59\x83\xc8\x3c\x9a\x04\x0b\x9e\x1a\x7f\x1c\xd0\x85\xc4\x15\x47\xf5\xac\x6a\xb9\xf5\xc9\xc0\xc5\x00\xe8\x0d\x16\xdb\x44\xfe\xd4\xd1\xaf\xd4\x8a\xed\xdd\x04\xe3\xe1\xe4\xb6\xba\xcd\xaa\x15\xf0\x1e\xfe\xab\x69\xef\x7c\xc6\x73\xbd\x67\xa2\x54\x2a\xf0\x14\x67\x73\xb4\x4a\x52\x29\x94\xdd\xf3\x9d\x67\x41\xed\xed\x57\x23\x27\xa1\x0d\x80\x5a\xee\xa4\x10\x43\xe0\x21\x02\xd8\x3d\x3e\x4e\xb5\x2c\x8b\x30\x44\x21\xa0\xef\xc8\xd9\xe4\x0c\xdd\xfc\xda\xbd\xbb\xeb\x5d\x76\x4f\x50\xe7\xf6\xb6\x7b\x7d\x79\x82\x88\x8a\xbe\x77\x31\x8b\x36\x60\x69\xc0\x14\xb7\xd2\xca\x02\x4d\xf9\x33\xf0\x46\x22\x26\xa4\x30\x67\x17\xdd\x04\xa1\xca\x13\x2a\x95\x0d\x9f\xd5\x7c\x25\x1f\x96\x96\xf7\x2b\x77\x48\xaa\xa6\xdb\x6c\x0d\x2c\x65\x3a\xd3\xba\xec\x90\xe2\xd9\x50\xf0\x64\x1b\xa6\x70\x09\x53\x01\x75\x39\x03\x53\xa0\x78\x86\x74\xb3\x36\x14\x24\x73\x39\x66\x22\x9d\x16\x8c\x34\x5f\xd6\xf7\xa6\x77\x6f\x39\xef\x83\x8d\x47\xa3\x2e\x04\x02\xc0\x16\x6a\x58\x45\x6e\x36\x1e\x5a\x4b\xfd\x10\x47\x91\x56\xb9\x77\x3c\xa9\xbc\xa3\xcc\x25\x60\x3b\xda\xdb\x34\x57\xed\x73\x37\xcc\xb9\xe6\x60\x10\x0c\xac\xaf\x5c\xc9\x23\x9a\xb7\x5f\xd1\xef\x68\xb1\xd4\x2b\x6c\xd9\xb3\x01\x7b\x90\x99\x49\xc5\x5c\xc2\x92\xc0\x4a\x4a\xf4\x3c\x25\x70\x34\x16\x68\x8a\x9f\x48\xa1\x4b\x97\x43\xa2\x1b\x5e\xf0\x54\x54\x31\xba\x01\xbb\x24\x73\x41\xb4\xa4\x5f\x76\xa0\x64\x7b\xfa\xae\xb8\x13\xc3\xbe\x0e\xfb\xfa\xe8\xf7\xf5\x45\x92\x4a\x45\x44\x47\x4a\x3a\x01\x43\xe2\x56\x02\x9c\x69\x6c\x38\xe7\x3c\x19\xb6\xb0\x89\xb4\xa7\x78\xc1\x13\x56\x08\xf8\x90\x06\xe9\x80\xa7\x20\x1f\x15\xae\x4d\xae\xef\x3a\x2f\x73\xd8\x0e\xaf\x81\x0c\xce\x65\xd6\x71\x80\x12\x5b\x89\x38\xb8\xaa\x95\xa6\x96\xd0\xde\xc5\x9c\x0b\x23\xdf\x64\xee\xb2\x7c\x88\xa5\xc3\xe4\x44\x11\xca\x1c\xd9\xf2\x8f\x60\x3f\x6b\x02\x1b\xb9\xe3\xf7\x94\x2b\x2c\xbf\x3f\x1b\x30\x2d\x44\x3d\x92\x85\x31\xb7\x6a\x31\xe5\x0f\x5a\x16\x3f\x95\x84\x49\x08\xf7\xfe\x83\x71\xcf\xe9\x2d\xee\xcc\xd5\x46\x35\x25\xb3\x79\x82\x15\x04\x5d\x67\xbd\x40\x88\xae\x6d\xd4\x4a\x49\x79\x00\x34\xc8\xf9\x66\x2e\xf6\x99\x19\xfe\x84\x28\xc8\x1c\x57\x54\x81\xce\x14\xa7\x9a\x3c\xcb\x43\x5f\x69\xba\x32\xbb\x42\x70\xf0\x93\xc4\xe9\x76\x8c\x5f\x2e\xb7\xb1\x92\x33\x66\xda\xc2\xbd\x8d\x79\xff\xe0\xec\x46\x91\xe0\xac\x14\x0d\xa3\x95\x39\xb3\xd2\x23\xc3\x0e\x9c\xff\x9a\xb0\xb3\x67\xfa\x48\xe7\x24\xa6\x18\x22\xe0\xf5\xbf\x3e\xe8\x79\xfd\xfb\xc5\xdd\xcd\xf5\x30\xcf\xe4\xf9\xcf\x01\xeb\x24\x92\x67\x59\x0a\x88\x71\x96\x85\xdb\xcf\x05\x71\x22\xa1\x9d\x0b\x58\x5d\x73\x33\xe2\x80\xd5\x8d\x20\xe6\x91\x3c\xc3\xcf\xf2\x0c\xcf\xf0\x3f\x39\x03\x57\x7a\x07\xfe\xbc\x48\x78\x1a\x7f\xc1\x2a\x9a\x7e\x80\x73\xad\x3e\x90\x27\xc2\x94\x71\x53\x69\x72\xc5\x90\x93\x2c\x21\x5a\xff\xdf\xf5\x98\xf3\xa4\x22\xa9\x35\xd9\x88\xcc\x15\xfa\x7f\x05\x19\x71\xae\xaa\x2f\x29\x3e\x1e\x4b\xb2\xd6\x85\x94\x2b\x69\xf7\x37\xe8\xaf\xff\xf1\xc3\x9f\xf4\x16\xda\x84\xc6\xbd\xfb\x9b\xa1\xfe\xfe\xdf\x2f\xed\xf7\x72\x0d\x76\x67\x52\x69\xa5\x75\x35\x1b\x6a\x98\xc0\xf9\x94\xc1\xed\x27\xc0\x79\x01\xec\x0d\xb6\x43\xbe\x8e\x55\xdc\xed\xb2\xd0\xfa\x76\x2a\xdb\x46\xc4\x04\x15\xdb\x9b\x23\x3a\x45\x8c\xa3\x99\x89\x35\xc5\x0c\xfd\xe5\x97\x9f\xaa\x17\x30\x15\x74\xa3\x0e\xa9\x45\xa1\xf0\xba\x94\xf4\x9f\x44\x22\xbd\x6b\xf4\x2e\xe6\x33\xdd\xb5\x20\x72\xca\x93\x18\x3d\x13\x50\x93\x6c\x1c\x68\xa6\x95\x0b\x32\x60\x7e\x13\x10\x72\x88\x70\xa2\xf8\x84\xc0\x5d\xed\x14\x35\x45\x84\x16\x55\x4c\x96\x86\xe2\x82\x9c\x18\x60\xb6\xfb\x1f\x5d\x6c\x35\x4c\x13\x1e\xb9\xa4\x16\x6b\x92\x8b\x47\xd5\x33\x1f\x97\x4d\xaf\xa8\xde\x86\x5f\x5e\x64\x6b\xb6\xad\x26\x8d\x4d\x42\xb1\x36\xac\xf2\xca\x54\x0f\x86\x46\x9c\x0d\x13\xca\x1e\x37\x5a\x0c\x97\x18\x8e\x74\x0b\x96\x66\xba\xc5\xcc\xce\x6d\x2c\x20\x6b\x9c\x8f\x8f\x69\x92\x98\xd4\x16\x7f\x79\x40\xee\x32\x74\x03\x61\x60\x6e\x72\x40\x49\x6c\xfd\x5e\x56\x13\x16\x84\x41\xc0\xdb\x80\x8d\x16\xd6\x67\x2b\x4f\x90\x4c\xa3\xa9\xcb\xcc\x8b\x38\x93\x5a\x8c\xe6\x02\x45\x7c\x36\xd3\x5a\x2f\x2c\x99\xe2\x3c\x91\x36\xda\x9d\x9d\x2a\x1c\xa9\x01\xcb\xfb\x5b\x71\xf2\x4c\x51\xa6\xed\x52\xf7\xda\xbb\x74\xf2\xe2\x4f\x8d\x02\x37\x8d\x7d\x28\x0a\x30\x82\x19\x4f\x94\x07\x6a\xc1\x97\xcf\x92\x59\xb0\x1a\xcd\x40\x4e\xb9\x50\xc3\xb8\x92\xe7\xac\xdc\x34\x65\x46\xc8\xc8\x69\x02\x41\xc3\xfc\x49\x0b\xff\xe4\x39\x33\xbe\x36\x0d\x41\xef\xea\xa6\x11\xb4\x3b\x46\x8d\x23\x5b\x77\x0b\xd6\xd0\xca\x00\x93\x44\xc5\x98\xf0\x55\x63\xbc\x87\xaf\x2e\xf4\x47\x8d\xc4\x2b\x9f\x3b\x27\x04\xf1\x38\xc7\xd0\x33\xf7\xba\xcd\x08\x69\xa2\xa9\x85\x4e\xd8\x5f\xe6\x68\xd3\x54\x1e\x8a\x96\x5c\x3d\x16\x30\xd9\x4b\x02\xb2\x26\x16\x23\xaa\x04\x16\x05\x00\x94\x4c\x1f\x94\x04\x0b\x88\xcf\x1a\x30\x03\x87\x67\x34\x85\x18\xc5\x54\x42\x82\x08\xdc\xa5\x9e\x33\x0c\xb5\x53\x02\x4b\x47\x3b\xcf\x73\x34\xf1\xe7\x10\x58\x96\x6f\x0d\xc7\xec\x74\x47\x19\xec\x97\xd6\xcf\x78\x94\xe6\x82\x5c\x04\x12\xae\x85\x0a\x42\x94\x49\x3a\x99\x2a\x44\x99\xb5\x3b\xe2\x64\xc2\x05\x55\xd3\x99\x3c\x41\xa3\x54\x6a\x2d\xd4\x04\xab\x99\x78\x14\xa2\xa2\x56\x5c\x68\xdb\x24\xe2\xb8\xd4\xe0\xb2\x8a\xb2\xc1\xd6\x68\x77\x28\xbb\xa5\xbb\x62\xc5\xc6\xe9\x64\xf0\x89\xe5\x36\x28\x91\x19\xea\x26\x32\x71\x80\xdc\x01\x56\xfd\x9e\x12\xa9\xea\xce\x01\x80\x5d\xee\xcc\x4b\xf1\x12\x95\xb4\x90\x49\x06\x15\xc4\xc5\x6e\x83\xe4\x55\x04\xdc\x34\xa0\x54\x99\xd3\x69\x36\x57\x95\x81\x5b\xcb\xae\xa2\x3b\x0f\xca\xa8\x1d\xb1\x21\x19\x0b\x76\x33\x00\xd0\x0d\xd8\x3d\x21\xf5\xf8\x74\x4b\x6b\xff\x1b\x1c\x25\x98\x82\x4d\xf4\x68\xde\xf2\xdb\x38\xb1\x2f\xbb\xf7\x17\x77\xbd\x5b\x03\x39\x71\x73\xf7\xb9\xd3\x1f\x56\xf8\xb5\x2b\xde\xfa\xdc\xb9\xfb\xe5\x72\xf5\x6b\x3f\xf7\x8b\x59\xd9\x15\xaf\xdc\xdd\x37\x27\x73\xb4\x18\x62\x45\x52\x58\x65\x3f\xe7\x68\xbe\x50\x53\xce\xb2\x10\x85\xb8\xc0\x9b\x4e\x91\xc9\x08\x56\x10\x42\x24\xa4\xaa\x70\x1c\xf6\x21\x2e\x67\xb5\x84\x59\x5c\x2c\x83\x2e\xb7\x53\xd1\x68\x8d\x13\xf9\x29\xe1\x23\xf0\x5b\x5b\xd9\xc7\x02\xd3\x35\x44\xa0\x6f\x19\xef\x73\x49\xe5\x3c\xc1\x8b\xa5\x1e\x56\x5d\x39\xd7\x78\x46\x20\xe2\x38\x87\xc5\x73\xc9\x22\x7a\x65\x20\x81\x29\xbb\xd7\xe9\x18\x32\x99\x14\xc5\x8a\xa0\x11\x51\xcf\x90\x37\xe7\x7e\xcd\x6c\xa9\x2e\x60\x44\x9e\x0d\x18\x98\x73\x06\x9a\xc8\x71\x0a\xd1\x7e\x83\x77\x27\x68\xf0\x2e\x26\x4f\x24\xe1\x73\xbd\xf2\xfa\x87\x9a\x4b\xa6\x3b\xc3\x34\xb9\xe6\x2a\xb3\xcc\x6d\xb3\x9e\x82\x44\x74\x0e\x92\xf9\x90\xe8\x76\x5f\x4e\xf0\x28\xec\x64\xc7\xce\x60\x0c\x08\xc7\xb1\x56\xb2\x81\x95\xb9\xe1\xe5\x21\x40\xcc\x9b\x7a\xa1\xd8\xe5\x3a\x22\x45\x66\xfe\x36\x3d\xfa\x6d\x16\xcd\x9e\x95\x2b\xc0\x9e\xf6\xe8\x92\xdd\xf6\x22\xd7\x5a\xc9\x2f\x64\x01\x29\x18\xb7\x98\x8a\x0d\x5d\xb3\x55\x31\xaf\x7b\x71\xd2\x76\x2b\x3a\x3a\x20\x77\x6d\x35\x1d\xb6\x73\xdc\x66\xb1\x7a\x2f\xa5\xa5\xba\x58\xae\xac\xe3\x96\x6a\xeb\x43\x9d\x92\x5a\x1b\xc2\x80\xca\x8a\xd7\x9c\x44\x6b\x68\x5c\xd9\x00\xef\xf5\x77\x2b\x35\x95\x4c\x5c\x73\xf1\x77\xf9\x2a\xd8\xe4\xf8\x72\x3e\x3e\x59\x39\xe2\x28\xe1\xb2\x88\x95\xd3\x7a\xd0\x17\xf6\xd3\xa6\x71\x77\xfd\xed\xab\xe5\xc2\xb5\x02\x1a\x2a\x08\x5f\xc2\xb8\x34\xf7\x8c\xb2\x1e\x32\xfb\xf6\x09\xa2\x10\x6d\x09\x0a\x59\x92\x23\x07\xb0\x18\xe5\x6e\x90\x01\xcb\x63\x56\x24\x7a\x26\x09\x84\xb9\x45\x7c\x36\x07\x13\xbf\x1d\xae\x6d\x89\xc4\x26\x62\xf8\x04\xf1\x54\xe9\xc6\x4c\x4e\x8e\x33\xe2\xda\x84\x9f\xdc\xed\x61\x7c\x6f\x36\xf8\x3d\xc3\xcb\x36\x7b\xdd\xdc\xa5\x94\xa1\x4f\x44\x41\x2b\x50\x66\xc1\x9f\x20\xe8\x09\xe5\x10\xca\x6a\xda\x6f\x71\xa2\xec\x4c\xd6\x58\xf9\x1c\x38\xe5\xa7\x84\x8f\x9a\x8d\x04\xd0\x38\x7a\xb8\xeb\x39\x8b\x64\x1e\x3f\xe5\x81\x32\x17\x3c\x8a\xdd\xdb\xbb\xee\x45\xa7\xdf\xbd\x3c\x43\x0f\x92\x68\xf2\x64\xd3\x85\xfc\xea\x4c\x25\x31\x23\xb7\x48\x2c\x4c\x2a\x82\xeb\x0c\x21\x44\x88\x42\x16\xf4\x0a\xc6\x51\x84\x69\x69\xde\xd8\x00\x92\x42\xad\xa1\x0e\x80\x85\xca\xf3\xb4\x91\x79\xab\x4e\x20\xc4\x49\x0d\x8f\x27\x4a\xcd\x8c\x77\xb6\x1c\x99\xb7\x6a\xfb\x14\x23\xfa\xf6\x3d\x19\x38\x5a\x6a\x4a\xa8\x40\xad\xa6\x65\x36\xd5\xb0\xfd\x9c\xbc\x10\xf7\xcf\x78\xde\x9c\x7e\x8a\x9f\x0b\x9b\xd6\x88\xc2\x9e\xef\x7e\xdf\xe7\xc0\xb1\xb5\xa1\x61\x85\xdb\x4f\x30\x77\x68\x19\xde\x9a\xf1\x4d\x93\xf1\x21\x9d\x91\xcc\x9f\x58\x69\x10\x36\x8e\x55\x22\x38\x3b\xf0\x0b\x65\xa8\x70\x25\x9e\xa0\x31\xfd\x6a\x1b\xcd\xe3\xdb\xdd\xab\x5e\xc0\x43\x4d\x3c\xe5\x14\x2f\x9f\xa9\x35\xc4\x86\x5b\xf8\xbe\x51\x88\xe4\x52\x8b\x44\x91\x16\x97\x04\x89\xb8\xd0\x37\x05\x74\x9b\x7b\x21\x56\x89\x0c\x0a\x0b\x4d\x94\x65\xaf\x4c\xd3\xe9\xcf\x4b\xab\xc4\x58\x91\x53\x2d\x7a\xad\x48\x80\xb6\x39\x32\x90\x4d\x83\x95\x07\x07\x96\xdf\x3c\x23\x32\xc1\xcc\x85\x66\xd7\x0c\xd7\x5d\x79\x5b\xb0\x2a\xad\x02\x61\x48\x0f\x03\xf9\x0a\x52\x7f\x0a\xe3\x90\x73\xa0\x67\xe3\x38\x6c\xf4\xcb\x21\x90\xed\x19\x67\xc1\x38\x35\x83\x4d\xe7\xf1\x21\x0d\x36\xc1\x52\x21\x3b\xa6\x3a\x53\x84\xa7\x22\xee\xd7\x08\x5b\xd0\xed\xdb\x2a\x6f\x7a\x0b\x15\xb5\x58\x02\x9e\x11\xe9\x70\x53\x0c\x4a\x8c\xd6\x69\x9c\x20\x7c\x01\x2b\x94\x9d\xed\x3b\x23\x65\xb9\x5b\xc2\x67\x26\x10\xa4\xbf\xdc\xf4\x19\xea\xb0\x25\xbc\x2c\x17\x97\x55\xa0\x97\xb9\x93\x70\xf2\x8c\x17\x12\xcd\x85\x81\x96\x31\x91\xfb\x6e\xf2\xa0\x81\x15\x3f\xca\x42\x21\x94\x4b\x9d\x40\x60\x8b\x59\x1d\x34\xe7\xe4\xde\xe1\x1e\x5c\x79\xa5\xa8\xf2\x4c\x20\xcf\x9b\xcb\x6d\x15\x2d\x58\x9d\x22\xc3\x68\x8a\xd9\x84\x0c\x9d\x91\x75\x13\x6d\x49\xb7\x73\x01\xcd\x5c\xda\x56\xaa\x2f\xa7\x5b\xa3\x30\xd9\xb2\x36\xe6\xd5\xcc\x80\xa8\x0f\x81\x54\x78\x42\x90\x19\x51\x2b\xb3\x74\x21\x62\xcc\x82\x0d\x83\x9e\x60\x5b\xed\x16\xa3\xe8\xeb\x84\x77\x08\x7d\xba\xc2\x23\x92\xbc\x4e\xe4\x04\x74\x6d\x8d\xf3\xe0\xad\x33\xd9\x00\x04\x3d\x83\x3d\xbf\xc4\x32\xac\xf5\x5e\xa4\x55\xb9\x01\x4d\xf3\x84\x23\x67\x4f\xda\x36\x13\x75\x25\x50\x36\x99\x6a\x5d\x61\x14\xff\xda\xf3\x0a\x88\x54\x19\xd8\xfc\xeb\xaf\x6c\x53\xde\x6c\x20\x5e\x1d\x93\x9a\x71\x6c\x5d\xc8\x64\xe5\x54\x36\x06\x19\x68\x59\xb3\xb0\x37\x46\x8c\x33\x82\xa8\xcc\x5f\x56\xc5\x74\xa8\x0c\xa2\x47\x8b\xf8\xc6\xf8\x92\x15\x1f\xcb\x6a\x4a\xed\xdb\xd2\x92\x83\x27\x64\xb6\x01\x97\xdf\xcd\x88\x56\x54\xb1\x58\x00\xc4\xa7\xe1\xc3\x45\x99\x6e\xe5\x38\x77\x2e\x70\xf7\x1d\x82\xab\x17\xa9\xab\x38\x02\x31\xb2\x34\x38\x64\x70\x50\xed\x4b\xf6\x23\x0b\x53\x33\x60\x99\x65\x03\x36\x22\x95\x68\x86\xe7\xe0\xd3\x63\x5c\xe5\x5f\x19\xd8\x25\x95\x2d\xe1\x89\x13\xc4\xa5\x29\x0d\xb6\x9a\x02\x5c\x4c\xb6\x09\xd5\x68\x5f\xfe\xa1\xbd\x61\xc9\x5d\xfe\xf9\xaa\x16\xc1\x35\x1d\x30\xf0\x84\x3e\x11\xe6\x4e\xd4\x89\x3b\x91\x9a\x24\x6e\xca\xc9\xe2\x14\x43\x90\x33\x89\x7d\xbf\x4b\x33\x3f\x34\xe6\xa0\x43\xb0\x86\xb6\x27\x59\xbf\x32\x88\xc7\x40\xb4\x15\xb0\xf5\x5d\x58\xba\x7f\x46\x2c\x6a\xb0\xc9\x43\xc7\x12\xfd\x81\x71\xf5\x07\x0f\x57\xd9\x99\x4e\xe0\x53\x67\x00\x3b\x59\xaa\x83\x03\x2c\xc3\x6e\x5b\x84\x3d\x7c\xaf\x95\x94\xdf\x36\x32\x21\x0f\xbb\xdf\xab\x2c\xdc\x5d\xce\xc1\xab\x2b\x24\x16\xe2\x05\x50\xf9\x52\x2a\x9b\x5b\x4d\xad\xc2\xfc\xa4\x17\xcc\xac\x72\x55\x80\x40\xb6\x16\xad\x02\x03\x96\xf0\x08\xb6\xd9\x6d\xb3\xd6\x71\x5b\x2b\x20\x98\xab\xad\x22\x9b\x64\x99\xd6\x69\x05\xa2\x18\x38\x67\x8b\x70\xd4\x60\x0c\x9f\x0d\xd8\x47\x2e\xac\x00\x20\x6d\x95\x83\x11\x8e\x1e\x4f\x09\x8b\x11\x4e\xd5\xd4\x60\xfd\x5a\xaf\xc6\xc2\xee\x06\x2d\xe7\xc0\xb6\xc9\x80\x3c\xa8\x8c\xb0\x88\x5d\xbd\x8d\x27\xee\x46\x31\x60\x5e\x23\x50\x47\x01\xaa\x67\x41\x59\xe3\x3a\x45\x97\x48\xad\xdd\xd5\xd1\xa2\xaa\xb2\xed\x52\x5d\xdb\xe6\x73\x56\xa8\xd4\x0b\x15\x20\x20\xbc\x8a\x8f\x97\xa9\xd3\x73\xb6\x4e\xa7\x5d\xea\xfd\xbc\xec\x03\x39\xb1\xfa\x8c\x31\x88\xd9\x19\x68\x39\xeb\x07\xc7\x6b\x0b\x98\xc5\xe3\x54\x40\xb0\x70\x55\x9b\xdf\x45\x53\x9a\xe4\x9e\x93\xef\x4f\xb2\x61\xea\x26\x13\xf2\x44\x12\x83\x98\x1f\x09\xc8\x0b\x30\x36\xcb\x1f\xd0\xff\x36\xd5\x5e\xd1\x9f\x06\xec\x13\xb0\xe1\x24\x59\x00\x9e\x67\xd6\x32\x56\xa5\x66\x1e\x2b\x07\xa0\x6c\x22\x12\x2a\x0e\xc4\xac\xf5\x14\x3f\x91\x01\x73\xcd\xfc\x6f\xf4\x88\xfe\x88\xfe\x54\xa7\x5c\xba\xf0\xfe\x3d\x5b\x59\x3e\x7a\xc1\xf3\xde\x2d\x67\x19\xa5\xe5\x37\xce\x08\x53\x30\x81\x56\xe0\x7a\x64\xb0\xdc\x94\x3d\xf1\x68\x29\x87\xc4\x3f\xb5\x58\x10\xa6\x86\x8c\xc7\x64\x48\x2a\x1c\xaa\x0d\x4c\x42\x0b\x01\xd7\x3c\x26\x2b\xdd\xa1\x19\x33\xfd\x02\x86\x23\x99\x8e\xb2\xe5\x00\x78\x81\x2c\x97\x3c\xb3\x7d\x14\x77\x5a\xf5\xc8\x33\xec\xdb\x4d\xc6\xbd\xa9\x2b\x37\x17\x1b\x71\x0e\xbe\x5b\xed\x4e\x4c\xb0\x72\xd2\x64\xf9\x38\x96\xdd\x10\xfa\x65\x3d\x73\x7b\x59\x79\xa8\xbe\x50\x79\x45\xd0\x09\xd5\xda\x43\x7b\x77\x31\x70\xc2\x4d\x7c\x29\x06\xe2\xb4\x95\x33\x25\x27\x85\x83\x79\x39\xcd\xf6\x5f\xee\x02\x1d\xf1\xb4\xac\x3e\x58\x02\x50\xe9\x07\x1b\x58\x4d\x61\xa1\xf9\xf0\xc4\xe4\x1f\x92\x29\x35\x19\xff\x9d\x8b\x2b\xa4\x4f\x07\x9f\x19\x58\x2c\x20\x5a\xaa\xa6\x5c\xd0\x7f\x36\xed\x6d\x2c\x14\x1d\xe3\x48\x0d\x77\x52\x45\xa6\x7e\x33\x75\x6c\x3f\xbd\xfa\x4a\x75\x4b\x08\x07\xf8\x89\x78\x01\x88\x10\x5e\x68\x5b\x91\x99\x23\xb7\xcc\x6f\xb9\x40\x8c\x3f\xe7\xb0\x58\xee\x7b\x40\x82\xf6\x12\x37\xb0\x56\xb9\xe6\x10\x41\x2c\x29\xec\x4f\x00\xa9\x7a\xaf\x4c\x52\x26\x00\x9c\x1b\x78\x29\xbd\x3d\xa7\x98\xc5\x89\xbb\x42\x10\x37\x11\x3d\x8b\x67\xbc\x58\xcb\xa7\xee\xc7\x55\xe6\x59\x7a\x66\xf9\x8b\x4a\x10\xf0\x00\x23\xa9\xa9\x82\xaa\x59\xa5\x08\xa3\x51\x0a\xc0\xba\x9a\x26\xe3\x34\x31\xd5\x38\x22\x2e\xe2\xb3\x01\xb3\x01\xd5\x5e\x6f\x5a\x04\x74\x5a\x13\x56\x59\x83\xd4\xe2\x8f\xda\x7a\x1f\xc6\x2c\xd7\x28\xd7\xff\x2d\x25\xe9\x8e\xd2\x2a\x5f\x35\x10\xbd\x8f\x27\x32\x8f\x2c\x37\xb4\xd1\x57\x5e\x4e\xdf\xdf\xf5\x4c\xa5\x97\x88\xec\xcc\xc5\x19\xae\x97\xb1\xb3\x98\x22\xb6\x6b\x99\xe9\xee\x4c\x3d\x83\x1d\xd8\xe9\x5e\x22\x48\x67\x59\xf4\xac\xe0\xea\x76\xfb\x3d\x65\x69\xb9\xe8\x65\x8c\x5f\xae\x30\x44\x49\xa8\xdb\xa3\x1d\x6c\x83\xbb\x63\x59\x57\x69\x0c\x75\xcf\xad\x62\xd9\x6d\x51\x91\x21\xaf\x38\xe4\xd2\x3c\x0b\x0a\xb0\x7f\x8b\xfc\xe5\xac\x5e\xb3\xbb\x85\x7d\x1e\xa3\x85\x3f\xa3\x2d\x40\xb0\x8e\x23\xe1\xa2\xfa\xea\x5c\xc3\xae\x63\x1b\x2a\x76\xbd\x1c\x8c\x51\x77\x22\x0c\x4b\x3a\xd4\x23\xb1\x8c\xf9\xb3\xf2\x30\x64\xe5\x5d\x5e\xc7\x2a\x9c\x49\x8c\x2f\x77\x32\xb2\xed\x38\x8c\x70\x34\xad\x9d\xd4\x88\xf3\x84\x60\x56\xa7\x14\x54\x3e\x2e\x1f\x11\x83\x58\x0b\xac\x3b\x49\x00\xb6\xd9\x91\xc0\x96\xfa\xcc\xb5\x22\x16\x03\xdc\xbe\xe1\xe1\x26\xe0\xd3\x0d\x54\x11\xe6\x0c\x6a\x94\x4d\x12\x52\xa6\x95\xad\x8b\x70\x62\x3b\x49\xa2\x34\xf1\x6a\x7d\xce\x89\xd0\xa3\xd6\x24\x7e\x22\x4c\xab\x62\x76\x1c\xce\x43\xf5\xec\xb2\xdc\xb3\x0a\x5f\x27\x59\xd7\xce\x49\x0a\xa9\xa4\xf1\x80\xc1\xc1\xe5\xc5\xc3\xaa\xf7\xaa\xd4\xda\x9b\x6f\xee\xdb\xf8\x74\x7a\x42\xc4\xda\xc7\xf3\xbe\x68\xfb\x5f\xfb\x4c\x9a\xbe\x87\x10\x38\xb2\xb5\xbf\xd4\xf3\xa9\xe5\xf8\x1b\x66\x61\x1d\xc6\xda\x0b\x79\x06\x20\x14\xa7\x18\x4b\xec\x45\xe2\xd4\x61\x7c\xed\xf5\x2e\xc9\x6b\x9a\xb8\xdb\xa0\xe5\x50\x1a\xe3\x0f\x5a\x46\x13\x80\xd1\xb7\xe9\xdc\x5e\x59\xa9\xbe\xe8\x87\xcf\x92\xb6\xf2\xd8\x55\x5b\xb5\x57\x09\x0c\x90\x13\x00\x14\xf0\xc5\x18\x2e\xa8\x34\xc2\xbd\xab\x5d\x32\x9b\xab\x85\x2d\x75\x07\xf7\x62\x41\xde\x07\x18\xbf\x2a\x9f\x7f\xf9\x8e\x8c\x0b\x5e\xff\xaa\xce\xa0\x23\x6b\xad\xa9\x6c\xd2\x11\xda\x87\x85\x29\xc1\x70\xd4\x85\xf8\x98\xaa\xc1\x43\x9c\xd4\x9a\x08\x77\xc0\x34\x41\x39\xca\xa1\x37\x2c\xa2\xaf\x12\x29\xd1\xbc\x0b\x27\x49\x69\x5e\x18\x72\xdc\x55\x56\x39\x70\x94\x97\x37\x6e\x1f\x81\x90\xe0\x11\x59\x2b\xe6\xe0\xca\x7c\xd0\xb8\x8b\xe0\x15\x08\xd7\x9f\xcf\x93\x45\xbb\x34\x01\x5f\xfb\xad\x44\xbe\x5b\x35\x30\x1f\x2f\xaf\xf1\x6e\x2a\x62\xce\x6d\x36\x44\x49\xa2\x54\x50\xb5\x18\x5a\x5b\x6a\x7b\xa6\x75\x6f\xbf\xbc\xb0\x1f\xb6\x31\x54\x9c\x23\xd7\x9f\xb3\xdd\xc2\x3d\x25\xa8\x29\x8b\x64\xa7\xd0\x66\xb9\x71\xaa\xa6\x95\x88\x58\x4d\x84\x75\x90\x5c\xed\x86\xaa\xbb\xd8\x74\x78\xb6\xdc\xca\x90\x8f\x1d\xd8\x55\x7b\xc2\x96\xeb\xd0\xac\x61\x84\x76\x98\xda\x73\x41\xb9\xb0\xe5\x5e\xda\x44\x2a\xce\xf0\xd7\xe1\x1c\x0b\x9c\x24\x24\xa1\x72\xb6\xb9\xc9\xfc\xc7\x3f\x37\x8e\xf6\xc2\x94\x25\x32\x83\x9d\xe1\xaf\x74\x96\xce\x10\x4b\x67\x23\x2b\xe5\x62\xf9\xe8\x23\x9a\x3a\xfc\x05\x03\xcc\xe5\x06\x58\x40\x81\x10\x1e\x46\xed\x80\x79\x68\xe5\xd6\x54\x81\xa3\x29\x25\x4f\x80\xa5\x2a\x18\x91\xf2\x0c\x5d\x73\x45\xce\xd1\x67\x3c\xef\x83\xa0\x66\xea\x84\x4e\x8c\xd3\x01\x4b\xa4\xa5\xd6\x94\x51\x75\x32\x60\x16\xe2\xdc\x51\xe5\x43\xc4\x99\x81\xb9\x8d\x80\xb0\x59\x13\x60\x45\x77\x78\xaf\xca\x65\xab\x52\x59\x43\x6c\x81\x9f\x87\x5e\x48\xf2\xd0\xa4\x7c\xac\xb1\x8f\xef\xf0\xb3\x09\xc2\xbf\xc4\x0a\x9b\x12\xc0\x4d\x92\xbb\x8d\x72\xb3\x65\xa1\x0c\xba\xb3\x8b\x06\xe2\x16\x62\x24\x2b\x68\x67\x42\x8e\xbf\xa3\x67\xe4\x0c\xfd\x94\xf0\x91\x3c\xc9\x4d\x55\xe6\xa1\x24\x4a\x9e\x18\xbf\x1f\xfc\xdb\xe4\xf7\x7d\xef\xa8\x9f\xf3\x7d\xa8\xe5\x38\xa6\x5f\x0d\xb2\x89\xfc\xf1\xfc\xc3\x87\xd9\xe2\x74\x94\x46\x8f\x44\xe9\xbf\x40\xa6\xa8\xa4\x90\x83\x05\xc3\x55\x20\x63\xab\xa8\xb3\x0c\x50\xd6\x6a\x47\xda\x5c\x29\x49\x00\x0c\x5f\x5f\xe9\x59\xb5\x5c\x87\x67\xc5\x59\x75\x29\x50\x3b\x65\x91\xd6\x1d\xaf\x02\x8a\xf6\xcb\x68\x2b\xa6\x1a\xb0\x0f\xde\x3d\x4e\xf0\xa4\xa4\xb2\xac\xa1\xa4\xdc\xcc\xa8\xdd\x45\x7a\xee\x10\x44\xa3\x4f\x59\x31\x74\xf0\xbd\xf3\xf2\x82\xb7\xd6\x7a\xb1\xce\x06\xac\x23\xd1\x33\x31\x45\x7e\x21\xd1\x14\x9c\x3e\x29\x95\xd3\x2c\xcd\x14\xcc\xd0\xd0\xa8\xc1\x38\x36\x50\x18\x56\x71\x74\x9a\x95\x73\x8b\x59\x0d\x14\x27\x92\x9c\xe8\x86\xc1\xa4\xea\xa2\x43\xd1\xb3\xc0\xf3\x39\x11\x03\x66\xf1\x6a\x01\x95\x9d\x73\x1b\xf9\x53\x97\x22\x10\x34\xca\x97\xd5\x28\x3d\xda\x93\x62\x16\xea\xaa\xf3\x0d\x49\xab\x4d\x14\xae\xca\xc3\x74\xe4\xd3\xb2\x68\xdb\xf0\xfd\xd7\x37\x1b\xb7\x1c\xf3\x2a\xed\xbc\x53\xca\xbd\x80\x1a\xe2\x33\x50\x20\x65\x5e\x2a\xd5\xd9\xfa\x32\xf5\xbd\x20\xe6\x00\xdc\x39\x7c\x1c\x73\x22\x3d\x23\x3e\xca\x6c\x71\x09\x1d\x13\x2d\x7d\x0c\x98\xde\xc6\xbe\xc3\xc1\xa0\xa6\x3b\x10\x75\xdd\x69\x24\xb8\x94\x36\x9d\xc2\xb4\xd3\x9c\x14\xb7\x45\x81\x46\x03\xfd\xde\xbb\xb9\x1e\x2e\x97\x6a\xf4\x9e\xb9\xa2\x8d\xf6\x61\x25\x72\x42\x6d\x53\x2b\x4b\x34\xe6\xb4\x58\xa3\x48\xe3\x87\x8b\xab\x5e\x56\x99\xac\xd4\xf5\x72\x95\x46\x1f\x2e\xbf\xbe\x4e\xe3\xf2\x8c\xbd\x8a\x8d\xa5\x26\x1a\x6a\x36\xae\x5e\xac\x62\x10\xf7\x36\x58\x88\xa5\xa5\x5f\xc9\x1f\x8a\x7b\x66\x55\xae\xc1\x8e\x96\xa9\xe6\x5a\x89\x40\x60\xdc\x77\xe0\x02\x08\x5e\xfa\x2d\xa9\xf0\x6c\xee\xe7\xd1\x3a\x30\x58\x3b\x4d\x73\xd4\xea\x2e\xc1\x17\x05\xa9\x8f\xb0\x09\x12\x2a\x0f\x6e\x69\x29\xd6\xf3\x78\xf5\x2d\xf6\xfd\x2e\x62\xd3\x5f\x2e\x31\x3d\x59\xe4\xc1\x90\xd2\xca\x6e\xae\xae\x7a\x8d\xdd\x7f\x44\x32\x9c\xff\xda\x05\xdd\x36\xf3\x34\xc3\x03\x13\x04\x4b\xeb\xfe\x86\x04\xcd\x52\xf2\xd6\x1a\xe6\xe1\x6c\xcc\x26\xc5\xfb\x34\xab\xac\xe1\x5d\x35\xb6\x58\x5c\xe4\x0e\x22\x15\x82\x3c\x11\x01\x7b\xc7\x86\x52\xb1\xe2\x51\xc5\x89\x20\x38\x5e\x78\x14\xc9\xe2\x38\x4c\xcf\x60\x1e\x93\x74\xa6\x15\x78\x50\x4d\x18\x3f\xe5\x73\xa7\xb3\x14\xde\x82\xb2\x28\x74\xac\x6f\x2c\x2f\x0a\x44\x7f\xc1\x4e\xc9\x57\x2a\x95\x96\x2b\x2a\x42\x60\x5d\x23\x20\xf1\x40\xb1\xb4\x29\xb1\x37\xdc\xe0\x5d\xe7\xa7\x9b\xbb\x7e\xf7\x72\xf0\x2e\x4f\xb9\x70\x39\x85\x19\xcc\x97\xab\xda\xc0\xd9\x80\x65\x71\xca\x19\xaa\x35\xac\x25\xc2\x71\x9c\xc7\x47\x5b\x25\xd2\xc8\x6c\x8d\x1c\xd9\x3b\x15\x2b\x23\x94\x1b\x9a\x79\x80\xc4\xb2\x43\x3d\x59\x0d\xae\xb3\xc2\xc9\x31\xe9\x71\x0d\x79\x4c\x3b\xba\x6c\x7c\x40\x5e\x65\x74\x6d\xa2\x1c\x62\x24\x23\xcf\x4e\x57\x82\xdb\xf9\x03\x36\x97\xf0\x7a\xdc\xce\x2d\xc8\x06\x8b\xfa\x91\x7e\x25\xf1\x5d\x8d\x54\xb5\x93\x34\xa5\x56\x01\x96\x95\xab\x90\x32\xba\x8e\xc6\x9f\x4d\xe5\x41\x7f\xd7\x9e\x2d\xdd\xe4\x38\x7b\x39\x66\x2e\x00\xe6\x2a\x84\x51\x44\x84\xc2\x94\xa1\x31\x1c\x6c\x16\x2d\x10\xa0\xb0\x10\xf0\x61\xff\x19\xcd\x28\x03\x38\x88\x26\xd2\x3e\x14\xe7\xb1\x86\xd0\xfa\xb9\x77\xfd\xd0\x2f\x88\xaa\x3f\xdf\x3c\x14\x2b\xf5\x77\xfe\xde\x28\xab\x96\x5a\x68\x0a\x16\xf2\xa6\x98\xa7\x96\x5a\xe8\xe0\x8c\x32\x95\x13\x4d\x16\x8a\x3c\xdc\x5d\x6d\x25\xdf\x55\x3b\xcb\x6a\x81\xdf\x7d\xe9\xaa\x1a\xe6\xa2\xcd\xa7\x31\x89\x56\x41\xd3\xb6\xdf\x47\x26\x0a\x4a\xd3\xc1\x5a\x13\x2d\x6c\x1d\x96\x68\x8e\x85\xf5\x43\xc5\x26\x00\xaa\x58\xee\xcd\x68\x5e\x4d\xb0\x20\x9f\x88\xfa\x55\x5f\x7d\x9c\xed\x22\xb9\xc4\x8a\xb2\xe0\x1f\x25\xc3\x27\xd3\xf0\x1a\x27\xcd\x0e\xa5\x21\x7f\xc9\x09\xcb\xd0\x03\xb2\x3d\xf8\x60\x1a\x67\xa6\xec\x7f\x47\x37\x07\x14\x71\x61\x9a\x5a\x25\xe5\x4c\xef\x48\x83\x91\xeb\x80\x75\xbd\xe6\xf8\xd8\x7c\xdc\x12\x66\xd0\x4b\x16\xd0\x6d\xe5\xa4\x44\x9d\xdb\x5e\x05\xad\xaf\xca\x2e\xa4\xb7\x55\xa3\x28\xc9\xbc\x59\xbb\x46\xbe\xf2\x72\x4e\x0f\x02\xea\xca\xce\x74\x3b\x6c\x2b\xe3\xf4\xbf\x2d\x46\x12\x1c\x02\x04\x73\x95\xca\x50\xc8\x25\x5f\x81\xb6\xbc\x5e\x7a\x65\x4e\x86\x35\x91\xac\xfc\x01\xd9\xec\x1a\x1f\xbd\x69\x39\x74\xfb\xc4\x47\x73\xe2\xa6\x0a\xb2\x8d\x2d\xd8\x19\xc2\x55\x3e\x9b\x36\x10\x57\xbf\x9a\x1d\x9d\x21\xa0\x00\xa6\x8b\xab\xb2\xe9\x42\xae\x2d\x20\x81\x3f\x5d\x7f\xb7\xad\x87\x8a\x95\x8f\xcf\x99\xbf\x2d\xc0\x38\x9e\x63\x6b\x77\x00\x25\xca\x95\xbf\xa8\xaa\x96\x78\x36\x60\x5e\xc0\x8a\x34\x6a\x8f\x3e\x23\xae\xe2\x0c\x94\x31\x66\x80\x56\x0e\xb9\x4f\x99\xf0\x53\x58\x81\x32\xee\x81\x9a\x16\x6b\xc6\x2c\xf5\x63\x4f\xa7\x9c\x62\x97\x5d\xea\x2c\x28\x36\x0e\xd0\xb7\x2f\x41\x7b\x5e\x95\x08\xdb\x31\x98\xa3\xc1\x68\x81\xbd\x1a\x84\x1e\x22\x41\xcc\x89\x64\xef\x55\x96\xbf\x4b\x93\x85\x0b\xa9\x2e\xb9\x07\xb4\x54\x87\xa9\x6d\xb9\xf9\x80\xef\x00\x72\x6b\x5d\xc5\xc1\x3b\x56\x2b\xcd\x54\xce\xc7\x0b\x3b\xc1\x8f\x45\x82\x4e\xeb\xac\xea\x5f\xe7\x24\xda\x04\x17\xe8\x16\x0b\x3c\x23\x8a\x88\xa6\x70\xa4\x62\x85\x70\x10\x71\xdc\x0a\xda\x7e\xcd\x2a\x9a\xf2\x29\xe5\x3a\x3b\x99\x76\x7b\xb5\x0a\xe7\x27\x9b\xc5\x5a\x90\x66\x7a\x1a\xbf\x5a\xcb\xff\x9a\xb3\xb0\xfd\xe4\xd3\xb0\xd1\x56\x1e\xac\xd3\xb6\x73\x7a\x19\x7c\x9b\xfe\x12\x52\x4c\x21\x5c\xe8\x40\x80\x6d\x56\x8f\xb2\x0e\xd1\x66\x15\x2f\xdd\x09\xef\x76\x19\x0e\x2e\x33\xb9\x74\xa8\x0a\xb9\x13\xb0\x4b\x40\xa5\x32\xe0\x2e\xd5\xa8\x34\x20\xb4\x54\x45\x48\x7a\x6e\x3f\x8b\x59\x98\x1b\x74\xad\x64\x55\xae\x18\x56\x22\xd7\x0a\x1e\xb7\x2b\xc4\x8e\x20\xd1\xec\x5a\xa2\x59\xb5\x95\x0b\xd1\xb5\x7a\x77\x12\x51\x02\x0f\xb2\x95\xbc\x2d\xea\x43\x71\x82\x90\xd2\x65\xaf\x48\x5b\x0e\x18\xae\x7e\xca\xb2\x7f\x15\x39\xb8\xdb\xd4\xfe\x56\xad\xca\x55\x3d\xf3\x5c\x50\xe0\x81\x4a\x7c\x69\xc0\xc6\xd5\xc0\x68\x4d\x18\xa4\xb1\xf2\xf7\xae\x8d\x03\x0b\x72\xc6\x17\x3c\x45\xcf\x54\x4e\x91\xe2\x03\x06\x71\x82\x99\x37\x40\x71\x64\x5e\x3c\x81\xb7\x00\xdb\x42\xa6\xa3\x19\x55\x08\x7b\x33\x2c\x98\x24\x4f\xec\x79\xd6\x1f\xc0\x8c\x2b\xe1\x0b\xaa\x70\x97\x56\x1c\x9a\x0d\xec\x6b\x79\x23\xdb\x22\x14\x78\x31\xcd\xfb\xc5\x28\xf0\x34\x1e\x5f\xc3\xac\x3c\x73\x01\xa4\x00\x55\x5b\x1b\x2c\x12\x2c\xc0\xf5\x52\xa9\x4a\x77\x8b\x35\xf4\xac\x00\x28\xc8\x17\xa2\x15\x42\x41\xfe\xfa\x2e\x20\x0a\xea\x6a\xcf\x35\xa5\xac\xba\x4f\x6a\xec\xdf\x2e\x15\x5a\x71\x17\x38\xef\x4b\x4a\xb7\xb5\x92\xd2\xa1\x41\xd5\xe5\x09\x01\x9b\x87\x97\xd7\x45\x2f\xc3\x19\x8f\x38\x8b\xe9\x1a\xf1\xc2\x50\x5f\x6c\x94\x8e\x3b\x6c\xb1\x1a\xf9\x68\xe6\x07\xea\x5b\x7b\x89\x27\x89\x54\x63\x6e\xae\x54\x59\xf3\xf6\xfd\x9d\xee\xa5\x84\x16\xc1\x88\x48\xf9\x76\x62\x5c\x41\xde\x4f\xa4\x92\x45\x45\x2e\xea\x80\x55\x4b\x49\xcd\x7c\x7b\xdb\x34\x92\x9d\xc2\xee\x79\x3c\xc2\xcd\xc2\x5a\xdd\xbe\x64\x81\x78\x46\xa1\x27\x16\x64\xa3\x24\x06\xe7\x6e\xc8\xba\x00\x2a\x2d\x1c\x6d\x92\x6b\x5e\xc1\x39\xaa\x87\xbe\x94\xe4\xb1\xf2\xec\x5a\xc1\x60\x87\xea\xe7\xd2\x0d\xd2\x3a\x27\x26\x93\xe3\xed\x8d\x61\x83\xba\xe3\xcc\xd6\x50\x72\x27\x6f\x52\xde\x18\xe0\x6c\x77\x06\xc2\x5b\x46\xa6\xd0\x8d\x9f\x80\x0b\xda\x8e\x1d\x9b\x70\x9c\x0c\x1a\xbe\xb4\x26\x85\x19\x9b\x90\xca\xbd\xcc\x7a\xdd\x9a\xd4\x9e\x4f\x54\xd8\x98\x64\xea\x5b\x37\xa0\x18\xb5\x0d\xe5\x2c\xdd\x16\x99\x00\x9a\xb2\x98\x08\x46\xb0\x9a\xbe\x5c\x26\xc8\xc5\xb6\x26\x74\x6f\x7c\xfb\xcd\x0a\xb1\x23\xc5\xc5\xe4\x90\x6d\x86\x5b\x2c\xce\xbf\x72\x9c\xfa\xf5\x36\xd6\x2c\x1b\x20\x91\x95\xa7\x5e\x52\x6f\x2b\x4c\x9b\x1e\xfe\xd0\x3a\xbb\x74\xab\x64\x91\x6a\x95\x73\x3f\x69\x33\x15\xb6\xa9\xa5\x84\x19\x7d\xda\xfd\xa2\xde\x2b\x48\xf2\x26\xf2\x53\xf6\x9f\x32\xd1\x54\x3e\x3c\xf5\xb2\x28\xa0\x86\xbb\xc2\x94\x59\xee\xd5\x94\x38\xa1\xe5\xde\x19\xae\xca\x95\x38\xf8\x2c\x9c\x37\x9f\x84\x13\x52\x32\x42\x4a\x46\xc5\x1a\x85\x94\x0c\x84\x0e\x2d\x25\x63\x95\x0a\xda\x64\xa4\xcd\xfc\x86\x50\xe6\xb5\x50\x5b\xc9\xac\xef\x0a\x3d\x72\xf3\xb4\x03\x67\xe7\xf4\x63\xb6\xec\x2f\xf6\x87\xca\xb0\xad\xa5\xcf\xca\xb3\xf5\x6d\xae\x6c\x51\x76\x5d\x60\x11\x27\x16\x82\xd0\x06\x55\x17\x6d\x64\x4d\xe6\xdc\x01\xfb\x99\x3f\x93\x27\x22\x4e\x10\x56\x68\xc6\x01\xd7\x2a\x8f\xe1\x81\x83\x50\xc0\xd2\x37\xb1\x1a\x18\x5d\xe3\x19\x89\x4d\xa9\x4d\x2f\xf4\xd2\x1a\x95\xad\x3b\xb8\x0a\x69\x17\x40\x63\xcd\x32\xb8\xd8\x8e\x01\x33\xe1\x90\x26\x04\x0f\x64\x05\xea\x26\x06\x1b\xe6\x0f\x99\xb3\xfa\x0f\x67\xa8\xaf\xef\x27\x2a\x8b\xe3\xf5\x80\xf7\xea\xc6\x36\x60\x13\xc1\xd3\x79\x66\xe7\xe3\x23\x53\x73\xd9\x44\x68\x2d\x3b\xab\x61\x30\xce\x53\x1d\xe1\x58\xeb\xe2\xcd\x1b\xe7\x55\x22\x65\x37\x82\x59\xf2\x37\x90\x3e\x86\x59\xf8\x9f\x0d\xc7\x37\x3e\x66\x0f\x5c\xa6\xa9\x02\xc0\x9e\x1c\xe0\x97\x44\x82\x55\x28\xf3\x0c\x14\x72\xdd\x8b\x78\x0a\x95\xe3\x6c\xb2\xdb\x66\xbe\x15\xe7\x7f\xa8\x86\x6a\xc8\x3b\xb7\x71\x69\x26\x91\xd6\xde\x13\x7b\xb3\xe8\xb6\x8e\xf0\xad\xe3\x17\xb7\xa9\x98\x73\x90\xc4\x92\x85\x83\x96\xb0\x20\x7f\x73\x3e\x4f\x4d\xec\x1d\xf5\x43\xb1\x2a\x77\x36\x95\xea\x33\x56\xd1\x54\x73\xee\x1c\x95\x6d\x47\x31\x89\x39\x57\xde\xaf\x95\xb7\x62\x06\x17\x7e\xef\x35\x6e\x8f\xa6\xdd\xe3\xc5\x18\x66\x81\x9c\x99\x24\x31\xd3\xfd\x19\xd7\xa0\xad\xa4\xee\xd9\x45\xdd\x27\xf6\x89\x9e\xe8\xaa\x5d\xb4\x6a\xfc\xed\xf6\x56\xb1\xd4\xdb\xce\xa3\x1d\xb7\x80\xb9\xb9\xb4\xa0\x62\xf9\x8b\xb6\x34\x70\x4d\x88\x82\xa0\x9b\x65\x2a\xd9\xf2\x0c\x4f\x5a\x1c\xc9\x2c\xae\x33\x3c\xd7\x4a\x84\xe2\xfa\x96\x14\x13\x23\xc7\x9a\x58\x5e\x84\x51\x2a\xa8\x3b\xfb\xa5\xbc\xf5\xfa\xdd\x01\x16\xca\x0f\x7e\x29\xaf\x08\x7b\x55\x0e\x4d\x50\x02\x8e\x54\x8a\xb3\xe0\x49\xd8\x13\xae\xfa\xbe\xc9\xd1\x77\xce\x7f\xe1\xc4\xbb\x8a\x35\x5d\xb9\xb1\xb7\x58\x65\x5c\x85\xc1\xd8\xea\xa4\x51\x36\xf1\x00\x1c\xab\xad\xc4\x6d\x8a\x6e\x54\x7e\xd9\xae\x70\x48\xe5\xa7\x4e\xf6\xd9\xe4\xdb\x06\x80\xa9\x56\x21\xeb\x87\x58\x31\xc1\xcb\x04\xb0\xa1\xc2\x56\x76\xf3\x81\x3d\x6d\x47\x00\x7b\x4c\x21\x94\x01\x3b\x59\xee\x3b\xbf\x6c\x82\x1e\xda\xf7\xff\x99\x3f\x04\xfd\xdd\x16\x67\xa9\x78\x71\xc0\xb8\xb0\xaf\x9e\x64\xef\xe9\xd7\x72\x7c\x62\x2d\x25\x2e\x7f\x99\xa3\x8f\x8a\x22\x4e\x21\xa0\xb5\x58\x9c\x39\x03\x4f\x9d\x95\xb5\xd0\x83\x7f\x4c\x47\x44\x30\xa2\xe7\xe4\x70\x1d\x32\x1e\x3c\xc3\x0c\x4f\x00\x0c\xfb\x04\x82\x0e\x41\xca\xce\x35\x28\x73\x12\x4d\x7d\x50\x60\xb2\x9a\xc7\xdb\x54\xe6\xbc\x4e\x36\xf4\x69\x24\x70\x8b\xc5\x9b\x47\xae\x54\x1f\xda\x3b\xdb\xff\x66\x8a\x46\xbf\x73\xff\xcb\xf0\xae\x7b\x7f\xf3\x70\x77\x51\xd0\x36\x2e\xae\x1e\xee\xfb\xdd\xbb\xca\x67\x79\x1a\xf0\xdf\x1e\xba\x0f\x35\x8f\x5c\x03\x57\x9d\x9f\xba\x85\xa2\xf3\x7f\x7b\xe8\x5c\xf5\xfa\x7f\x1f\xde\x7c\x1c\xde\x77\xef\x7e\xed\x5d\x74\x87\xf7\xb7\xdd\x8b\xde\xc7\xde\x45\x47\x7f\xe9\xbf\x7b\x7b\xf5\xf0\xa9\x77\x3d\x74\x11\xdd\xfe\xa3\x2f\x37\x77\xbf\x7c\xbc\xba\xf9\x32\xf4\xba\xbc\xb9\xfe\xd8\xfb\x54\x35\x8b\xce\xfd\x7d\xef\xd3\xf5\xe7\xee\x75\x73\x71\xfb\x6a\x6a\xd4\xd6\xcd\xf6\xee\x5f\xcf\xd6\xe5\x49\x77\xa3\x85\x3d\x13\xf4\x9f\xe0\x72\xb9\x35\x5b\xf4\xf4\xc4\xfd\x65\x4a\xd1\x9f\x6a\xce\xed\xdc\x79\x39\xd3\x1b\xb0\xcc\x27\x9c\xc9\x02\x0a\x4f\xa4\xcb\xea\x2e\x8c\xf6\x1c\x75\xe0\x90\x81\x9e\x53\xe8\x14\x92\x46\xb2\x91\xba\x28\x02\xd8\x87\x09\x9d\x51\x08\x28\x40\xa7\xa8\xbc\xe0\xc5\x06\xed\x9c\x60\x08\xd6\xdd\x18\x37\x9d\x06\x59\x4e\x18\x87\x9d\x72\x8e\xdc\xc5\x42\x8c\x15\xc4\xc0\xfa\x2e\x18\x9e\xd1\xa8\x9c\xdd\x02\xc8\xb6\x28\x47\x71\x29\xb7\x58\xd8\x60\xc5\x96\xa7\x04\xfd\xf2\xd7\x7c\x50\xe0\x78\xb1\x06\x83\x74\xa9\x02\xa5\x7d\x20\x52\x43\xd5\x55\xdb\xb3\xd0\x93\x3b\xe6\xd6\x22\x0e\xe7\xd6\x56\xba\x07\x2f\x59\xca\x3c\x24\xb7\x82\xcb\x4c\x1f\x6f\x33\xa3\xd2\x1e\x3f\x47\xf7\x80\x22\x23\x73\x8b\x83\x5e\xc5\x79\x92\x4e\x28\x43\x74\x36\x4f\x80\xc7\x18\x33\xc4\x88\x4c\xf1\x13\xe5\xae\xe0\x8a\xa9\x4b\x03\x74\xb4\x12\x21\x3a\x45\xb5\x07\xe5\x1c\x75\xe2\x58\x16\x19\x5c\x61\xe7\x38\x2e\x7a\x5a\x1c\xb6\x0f\xbe\xa6\x19\xab\x65\x9b\xa5\x7d\x94\x1f\x39\xa0\xd8\xee\x71\x72\x96\xd9\x61\x51\x64\xd8\x42\x6a\xd1\x14\x1c\xba\xad\x3c\xdc\x48\x86\xe9\x63\xf9\xe8\x58\xf3\x2a\x39\xc6\x21\x16\x6d\xd7\xa3\x85\x2e\x6a\xdb\x69\x46\xd9\x21\x1c\xb4\xcd\xfa\xac\x05\xdc\x5e\xd1\xa5\x9b\x71\x52\x2a\x75\xd7\xba\xbf\x42\xa9\xbc\xca\xce\x76\xea\xa4\xaa\x16\x22\xe1\x48\x0e\xb3\xfd\xbf\xc6\x3c\x6e\xe1\xd3\x9b\xec\xcb\x46\x49\x73\xe8\xd1\x6d\x5d\xd7\xd5\x52\xfe\xb3\x75\x5f\x35\xee\xc3\x1d\x21\x67\xb5\x97\x22\xa1\x54\x08\x8d\xc0\x4b\x89\x29\xb3\x05\xa4\x48\xe6\x46\x73\x05\xdb\xf5\x39\xce\x4a\x2a\xe2\x11\x7f\x2a\xe8\xc4\x33\x22\x25\xae\xc1\x82\xf1\x2c\x79\xdb\x30\x86\xec\x84\xda\x0f\x5b\xee\x27\x77\x26\xfb\xfa\xab\x26\x19\xfd\xce\x57\xe8\xdd\x44\xb5\x0c\x1b\xbb\x20\x66\x74\x63\x52\x19\x35\x7f\x39\xc9\x63\x80\xb8\xf0\x42\xa3\xea\xbc\x56\x2d\xad\x81\x65\x82\x55\xd6\x05\xf3\x3d\x8f\xeb\x87\x0e\x79\xad\x6f\x0c\x36\x6e\xdd\x41\xb8\x48\x9f\x35\x76\x5d\xc1\x4d\xeb\x57\x6c\x8f\xf8\x6c\x66\xe4\x82\x82\x09\xf8\x04\x61\x93\x41\x9a\x4b\x53\x32\x8d\xa6\xc6\x39\xa6\xaf\x8c\x93\x01\x7b\xf6\x16\xa4\x10\x63\xdd\xf1\x5b\x02\xa0\xd6\xaf\xfa\xb8\xd1\xa7\x42\xe4\x3a\x88\x8c\x14\xc2\xa8\xbd\x8d\x60\xfc\x98\x79\xc1\xb3\x15\x1b\xdc\x5b\xaf\x2d\xb6\xfa\x06\xb5\x35\x4b\xf4\xad\xab\xb0\x99\xcd\xcd\x2b\x6c\xb9\x85\x82\xdf\x76\x08\x5e\x6d\xcd\xaa\x11\xec\xa0\xb4\xe6\x8b\x22\xa7\x67\x99\xb0\x26\x71\x7a\x36\xb2\xf0\x1f\x7a\xba\x8e\xda\x7f\x74\x33\xfa\xa3\x51\x84\xd3\x1a\xbc\x18\xaf\xb5\x0c\x3c\x1d\x9d\x6a\x99\xd5\xe1\x18\xd8\xf8\x11\x89\x4e\x0d\x20\xe3\x7b\x08\x62\xed\xdc\xf6\xde\x9f\xa0\xf7\x7e\x22\xdf\xfb\xa3\x31\x5d\xe4\xc7\xdf\x52\xcd\x16\xf7\x04\x5d\xae\x90\x4b\x52\x3c\xf4\xb0\x53\x4a\x7c\xc0\xee\x18\xcb\x06\x50\x1d\x17\xd0\x5f\x16\xbe\x01\x8f\x3e\x94\x8b\x34\x4e\xef\x2c\x92\xdd\xfa\xcd\x8c\x84\x4d\x65\xc5\xca\xc5\x03\x36\x5a\x94\x3d\x63\x27\x99\x6b\xac\x35\x8f\xd8\xba\x04\xa2\x6e\x6f\x39\xef\x7c\xc7\x11\xd6\xcd\xb7\xd1\x8a\x4c\xf6\x4e\x56\xa7\x27\xe7\xa1\x75\xa1\x1d\x21\x35\xa1\x6a\x56\x05\x33\x9f\x23\x66\xe5\xa2\xac\x92\xbe\x8e\x6d\xbb\xb5\x88\xe7\xef\x54\x51\xc4\xa6\x72\xd4\x88\xf6\x61\x97\xed\x77\x97\xed\x22\x95\xa5\x38\xb8\xf5\xaf\xef\x0b\x23\x45\x7a\xcd\x38\x73\xaf\x56\x65\x32\x06\x5f\xa8\x93\xb9\xba\xbc\xf5\x9a\x8e\x72\x8f\x26\xab\x3d\xe5\xf7\x26\xda\xc2\xf8\xaa\x97\xc7\x5a\x1e\x6a\x47\xd9\xea\x52\x9c\x9a\xb4\x55\x45\x67\xe4\xc4\x94\x33\xcb\x23\x44\xec\x79\x85\xed\x66\x02\xbb\xa6\x84\x0a\xd7\x89\x05\x8f\x5c\x0b\xe7\x60\x4d\x5d\xa0\x6e\x8f\x6c\x11\x9e\x73\xdd\xf9\xdc\xbd\x1c\x76\xaf\xfb\xbd\xfe\xdf\x2b\x80\x41\x8b\x8f\x1d\x36\xa8\xf7\xc2\xfd\xdf\xef\xfb\xdd\xcf\xc3\x4f\xdd\xeb\xee\x5d\xa7\xbf\x02\x37\xb4\xa9\xb3\x3a\x4c\xca\x54\x56\x29\x8f\xeb\xe0\x52\x3a\x23\x73\x45\xef\xcb\xe8\xa1\x5e\x27\x94\xd4\x20\x88\x1a\x4c\x07\x16\x13\x81\x62\xf2\x44\x12\x3e\xcf\x8d\xba\x95\x04\xf3\xa0\x45\x2b\xda\x6f\x82\x17\x85\x36\xcb\x34\x3e\x47\xa6\x36\xa2\x57\x1e\x3a\x6b\x10\x44\x3e\x2c\x08\x7b\xaf\x10\xf9\x3a\x4f\x68\x44\x95\x97\xf3\xc9\x85\x75\xee\x18\x9f\x2b\x84\xf4\xae\xd8\x5c\x3b\x0b\xe1\xd9\xb9\xc5\xc1\x0f\x3f\x58\xb6\x35\x64\x27\x2a\x83\xba\x5b\x59\x19\x6a\x07\x66\x85\x1a\x4f\xfb\x12\x12\xdf\x06\xa3\xdb\x87\x71\x62\x39\xb1\xc9\xe6\x6d\xd6\xa0\xf4\x55\x0f\x72\xf5\x6d\xd8\x14\x5c\x54\x38\xd7\xcd\xd1\x45\xed\x76\xea\x2b\xc7\x08\x15\x0a\xd1\xee\x00\x52\xc5\x06\xfc\xaf\x19\xe5\xb1\x54\x08\x88\x99\x40\x5d\x8c\x04\x99\x71\xa5\x15\x30\x13\x46\x71\xa2\x85\x2a\x8a\x13\xfa\x4f\x00\x1f\x13\xe4\xcc\x0b\x3b\x71\x90\x6d\xb9\xf3\xc2\x02\x83\x9c\x0d\xd8\x65\xf7\xf6\xae\x7b\xa1\x19\xd2\x19\x7a\x90\x80\x2b\x56\x98\xfa\xa5\xdd\xde\x46\x1c\xf3\xc3\x3f\x28\x93\x8a\xe0\xba\x08\x3a\x22\x04\x17\xed\xf9\x43\xd6\x5f\x17\xbe\xab\xde\xde\xf0\xac\x60\x19\x73\xe6\x87\xeb\xda\x2a\xe2\x5e\xa2\xc5\xce\x13\xd9\xee\xf0\x73\x81\x22\x3e\xae\x0a\x48\x22\x45\xaa\xef\x91\xda\x80\xcc\xda\x7e\x7e\x85\x3e\x6f\xe1\xdb\xa6\x79\xf6\x21\x2e\x51\xaa\x1c\xe6\xd5\x20\xc1\x66\xe5\x8c\x4a\xf3\xac\x15\x15\xc5\x6b\x60\xb0\x94\xb6\xfe\x88\x4c\x30\x43\x22\x65\xac\x84\xfb\xeb\xdb\xf9\x96\x23\x8d\xd6\x3d\xaa\x9a\x66\x78\xc6\x53\x66\xea\xf1\xea\x51\x55\x0c\x46\xce\x09\x53\x2b\x06\xf3\x5a\x08\x3b\xa5\xa1\x1e\x2e\xc8\x4e\xc5\x40\xeb\x70\x76\xaa\xbc\x59\x50\xaa\x7c\xbd\x6b\xd9\x45\x32\x16\x5c\x5a\xfa\x50\x65\xf7\x73\xb5\x96\x8d\xe5\xe3\xd6\xdd\xf5\xb1\x7c\x5c\xdd\x55\x4c\xa2\xc7\x75\x2f\x9b\x72\x3a\x6b\x62\x2b\xbd\x2f\x19\xfb\x16\xfa\xa9\xad\xb9\x03\x05\xfe\xa3\x47\xf4\x73\xff\xf3\x15\x1a\x53\x2d\xf7\xea\x6b\xe5\x1a\x6b\x19\xfb\x41\x24\xce\x2a\x6d\x2d\xbb\xa9\x48\xb2\xbb\x17\x16\xde\x89\x52\x9e\x94\xa0\x6f\x34\x3c\x21\xce\xd4\x2c\x2c\x8c\x62\xa9\xe6\x8e\xc0\x2c\xe6\x33\x33\x8f\x0f\x32\x1d\x8f\xe9\xd7\x33\x85\xc5\xf7\x35\xf4\x30\x31\x1d\xc3\x7f\xf0\xd1\x50\x8f\x68\xcb\x8b\xb8\xaa\x39\x64\x0b\x90\x67\x64\xb3\x33\xbb\x34\xef\xfe\x1f\x3e\x02\x88\x00\x40\x39\x70\xbe\x41\x1b\x27\x61\x5f\x71\x3b\x29\xaf\xc8\x5d\x40\xaf\x89\xb8\x10\xc4\x22\x0b\x98\xa2\xb1\x73\x2c\x14\x05\x6b\xad\x43\xbf\x29\x94\x3d\xc8\x97\xc8\x2f\x91\x3f\xc5\x39\xc4\xf8\x88\x10\x70\x2f\xcd\x69\xb2\x9e\xd2\x7b\x51\xf0\x8c\x96\x4e\xa0\x0d\xd7\xb5\x80\xa8\x60\x90\x59\x29\x62\x75\x9f\x08\x53\x3b\xd1\x4f\xa0\x89\x0a\xac\x83\x76\x3e\x0e\x53\xbb\xb5\x77\x99\x5f\x6e\x2e\x0e\xda\x8f\xa9\x52\x02\xc3\x3d\x6f\xb3\xcb\xac\x43\xbf\x2e\xcc\xe0\xa9\xb5\xe7\x1a\x5e\x5d\xa6\xcb\x8a\x7c\x02\x4b\xed\xbc\x34\x7e\x1e\x0b\xec\x6a\x36\x6c\x88\xd0\x24\x89\xb1\x62\x78\xc8\x20\x56\x39\x2d\xaf\xb9\xe9\x53\xef\xad\x52\x97\x2b\x97\x7c\x03\x38\xa2\x42\x33\x9f\x08\xe4\xc1\xee\x22\x7a\x7f\x1d\xc0\x03\x18\xc8\x83\x48\x20\xee\xbc\xd1\x8a\x65\xea\xc7\x6b\xce\x97\x49\x76\xb8\x85\x8c\x6e\x06\xa3\x85\x46\x32\x17\x24\xd2\x57\xd9\x39\xba\x4d\x88\x96\xbc\x52\x2d\x7d\xa5\x49\xe2\xa0\xdb\x9a\xa5\xc3\xb5\xe0\x06\xf7\x3e\x2f\x4f\xf7\x68\x98\x98\x83\x2e\x6c\x9e\x99\x47\x83\xdd\xc3\x54\x78\xf4\x05\x13\x32\x18\x12\x8b\x5a\x24\x70\xf8\x85\x89\xda\x05\x53\x12\x2e\x5c\x64\xf4\x9f\x9a\xfd\x0a\x22\xa7\xbc\x36\x33\xd4\x9f\xed\x7e\xe6\xe0\x48\xb9\xc7\x49\xb8\xfb\xb0\x2e\x18\xbd\x85\x5c\x53\xba\x03\x0b\x22\x4e\x1b\x5f\x6c\x1e\x7b\x62\x81\x74\xed\xdd\x6a\x87\x06\xb7\x64\x6e\x6a\xf3\x41\xed\x72\xd7\x45\xae\xcc\x2c\x8c\xef\x35\xfb\x3c\x37\x20\xe7\x79\x14\x54\xc9\xbc\x9c\x20\xd2\x77\x6d\xdd\x12\xeb\x79\x0e\x53\xb1\x16\x8e\x47\x0e\x47\xbf\x0e\xe7\xb6\x19\x3c\xf9\xb0\x34\x11\xaa\xd9\xa5\xad\x12\x02\x62\xb4\x0d\x74\x92\x05\x88\x3f\xbb\x6d\x0c\x19\x2b\x55\xbc\x7a\xa6\xbc\xad\x5b\x0d\xa4\xe4\x5c\x94\xd9\x97\x77\xad\xb0\x03\x0b\x13\x08\xa0\x71\xeb\x83\xc6\xd9\x92\x31\xd9\xde\x03\x88\x47\x25\x00\x2d\x21\x77\xa0\x95\x05\x07\x6b\xf4\x5e\x95\x2e\x56\x58\x9d\x56\xb9\x61\x85\x2f\x34\x2f\xb9\xdc\xd2\x03\xa7\x27\xb3\x18\x42\xb6\xed\x36\x31\x40\x85\xf9\x1b\xef\x01\xb4\x49\x62\x64\x20\x1f\x0c\xa4\xb5\xa5\x5d\xe6\x39\x99\x63\x41\x98\x1a\xb0\x3b\x3d\x0a\xf3\x45\x1e\x89\xe1\xa2\x80\x5c\x99\x01\x28\x46\x3c\x46\xd8\x7e\x05\x44\xaf\x0b\xc3\x93\x43\xf3\x12\xa8\xa6\x7b\x44\x26\xf8\xc9\xbc\x63\x80\x22\x2c\x50\x92\x9e\x2a\x1d\xe7\x6a\xbc\x16\x20\xa3\x29\x05\x9c\x86\x98\x48\x7b\x21\x51\x65\x81\x38\x32\xf1\x3b\x25\x0e\x58\x1b\x3e\xcb\xf8\x57\x15\xc3\x76\x86\x02\xe6\x0c\x74\x72\xc0\xbc\x3e\x1a\x70\x58\x8d\xb2\xbe\xa1\x2a\x01\xeb\x4c\xe3\xcc\xf1\x05\xff\x34\x2b\xc4\x05\x9d\x50\xe6\x55\xc3\xb2\xd3\x9b\xe1\x39\x98\x77\xcd\x19\xe4\xe3\xec\x4e\xeb\xdb\x1c\x87\x33\x18\xf1\xff\xfd\xaf\xff\x3e\xa3\x75\xde\x0f\x39\xb4\x14\x38\x84\x95\x5c\x6f\x59\xfc\x95\xf7\xa0\x57\x6a\x20\x3d\x3c\x9d\x56\x16\xf2\x36\xf2\x5f\xed\xe5\xa6\x37\x0d\x57\x53\xe3\xee\x2d\x6e\x77\xf0\x8d\x88\xb4\xe1\x6c\x98\x2b\xe6\x75\x69\x49\x25\xe4\x26\xe8\x91\x98\x93\x9c\x19\x08\xfc\x4a\xf3\x4b\x66\x9a\x01\xcb\x3f\x91\x06\x44\xc6\xe0\xf6\x9a\x1f\x72\xea\xb4\x24\x4c\x13\xef\xcf\x23\x25\x72\x77\xb8\x17\x0b\xed\xea\xa2\x98\x18\x56\xdd\x7e\xe9\xa6\x2d\x71\x6e\x0f\xc0\x72\x9b\x98\xd1\x29\x96\xfb\x0b\xcd\xa9\xac\xe7\x65\xac\xe9\xbe\xf0\xb0\x2a\x48\xc7\x0c\xd2\xa4\xc8\xea\x05\x49\x25\x11\x86\xd3\x65\x18\x62\x76\x27\xf8\xf0\x9c\x10\x21\xba\xc2\xd7\x48\x66\x98\xae\x95\xcd\xa0\xdf\xaf\x06\x0f\x2d\x38\x1b\xf0\x84\x88\x61\x9c\xaa\xa5\x63\xd1\x94\x61\xa0\x3f\xba\x4c\xd5\x62\x75\xfb\x32\xc1\xcb\xf5\x8c\x9a\x00\x5b\xf5\xfb\x35\xcd\xae\x96\x98\xbd\x10\x9f\xa2\xd4\x5c\x03\x87\x4a\x4a\x70\xa8\x36\xe2\xb5\x60\x22\x81\x1b\x98\x29\xc0\x21\xcc\x35\x29\x7b\x45\x1b\xd0\x76\x18\x39\x1a\xa5\xb9\x49\x29\x2b\x83\x11\x9f\x0d\xd8\x47\x53\x47\x06\xb4\x3c\x33\x80\x08\xd2\x8d\xc8\xd7\x39\x97\xa4\x90\xff\x56\x51\xda\xc2\x26\xbe\xda\x61\x54\x0b\xeb\xf9\x47\xdb\xcb\xea\xaf\x0e\x6c\xbb\xbc\xe0\xcb\x53\xae\xde\x81\x5b\x89\x83\x11\x9d\x53\xbd\x77\x86\x95\x27\x6d\x7f\xe5\x95\xf3\x98\x2e\x00\x0f\x53\xc9\xe2\x04\x65\xd3\x2b\x6d\x88\x84\x3c\x11\x30\xa7\xc3\x18\xfd\x02\x26\x45\xbb\x5e\x0d\x3b\x59\x75\x80\xf2\xe4\x53\x60\x0b\x28\x2e\x8f\xa0\x98\xa2\x57\xb5\x17\x8b\xc9\x47\x5b\xe7\xc9\x55\x05\xa6\xac\x21\x9e\x77\xfc\x42\x2e\x0b\xa2\x10\xf9\xaa\x88\x2d\xf5\xda\x77\x99\x8c\xcb\xc9\x0f\xa8\x3a\x19\xab\x5e\x76\xdc\x7b\xd1\xed\x8e\x4b\x7c\x77\xa9\x9a\xb1\xbb\xf2\x6d\xea\xe2\x14\xb3\xd8\xe6\xe3\x5a\x25\x43\x0b\x5b\x30\x3b\x63\x74\xcb\x32\x15\x6c\x56\xa9\x87\x80\x6f\xda\x34\x50\xfd\x70\x91\x39\x85\x51\xab\x2c\x10\x5e\xc1\x85\x96\xdc\x53\xa6\x68\xa2\x37\x87\x1d\x83\x44\x63\x88\x8c\xb3\xe8\x8e\x10\xd9\x5e\x07\x20\x48\xa5\xa4\x6c\x32\xb4\x94\x74\xa9\xa5\xed\x2e\x86\xe2\x9e\xfa\x6c\x9a\x32\x3f\xfe\xe4\x1a\x6a\x36\xaa\x9b\x6d\x0d\xe0\x6e\x2e\xa9\x15\x34\x0e\xc6\xdd\x64\x2c\x2a\x9f\xcb\x85\x1d\xd2\xd8\x90\x82\x9a\x8a\xe2\x30\xd1\x75\xec\xee\x20\xd3\x2d\x83\x5f\xe4\x57\x88\xb4\x89\xaa\x26\xfd\x0c\x22\xf5\x55\x4d\x26\xae\xac\xcd\xc0\xed\xb1\x4c\x44\xb3\xf5\xcc\x32\x9c\x81\x52\x32\x2f\x76\xdd\xd9\x74\x04\x9c\x24\x23\x1c\x3d\x66\x5a\x58\x66\x8b\xe0\xc2\xd5\x83\xd0\x72\x25\x14\xbc\x33\x9b\x4b\x0f\x34\x02\xe9\xc6\xf7\x16\x1a\xf8\x23\x3b\xec\xbc\x73\x43\x35\x8b\x2b\x67\xf0\xae\xcc\xe8\x4d\x6e\x43\x4c\xe6\x09\x5f\xcc\x6a\xee\xb3\x72\x02\xe3\x36\x91\x3a\x75\xf9\x93\x3b\xbd\xca\x4a\x4c\x6f\xed\xcb\x6c\x29\x1b\x6a\x07\x60\x5c\x6b\x70\xc9\xdc\x74\x7f\x02\x36\xfb\x9c\x1f\x66\x16\xfb\x01\xfb\x94\xf0\x11\xd8\x5d\xad\x8d\xc2\xa5\x01\x79\xf9\x20\xe5\x43\xbf\x6e\x72\x52\x79\x58\x54\xce\x13\xad\xf1\xd4\xf7\x60\x12\x53\xf6\xbb\xb8\x06\x46\x61\xb5\x09\xb1\x7d\x48\x77\xe5\xe7\xfb\xc0\x86\xbe\x72\xe2\x82\x79\xd7\x30\xb9\x92\x29\xce\xe4\x23\x9e\x19\x4f\xb6\xe2\x03\xa6\xf0\xc4\x2d\xae\x95\x40\xf9\x33\x23\x42\x4e\xe9\xbc\x50\x2d\x73\xeb\x18\x72\xbb\xed\xed\xff\x99\x88\xe9\x6a\xc5\xbd\x2a\xe7\x70\x15\x79\x6c\xb3\x2d\x91\xe7\x56\x26\x81\x55\xa4\xe1\xad\xbc\x02\xf8\xfc\xd4\xc0\xbc\xe8\x1d\x2c\xe7\x38\xca\x8d\xbb\x51\x82\xa5\xa4\xe3\x85\x87\xce\x92\x05\x0c\x43\x0e\x5c\xd1\x1a\xe2\x95\xd0\xab\xe2\x97\x66\x6c\xbb\x81\x27\xd8\x3e\x35\xf3\xa1\xc8\x20\x68\xec\xa3\xf7\xe9\x6b\x71\x19\xc3\xc7\x09\x1c\x96\xe8\xb5\x28\xc4\x06\x87\x61\x33\x38\x81\xb6\xc0\x4f\x7b\xce\x26\x6c\xb3\x91\x72\xd8\xb1\x4c\x20\xb7\x34\xb3\xca\x60\x06\xd9\xe2\xe3\x20\xa9\x42\x32\x2c\xec\x3c\xad\x7c\x3a\xdb\xba\x3e\xbb\x19\xdc\x0b\xa0\x62\xe4\x1f\x9f\x20\xb9\x15\xba\x5b\x9b\x4d\x79\x49\x12\xb2\x93\xa8\xf5\x0d\x76\x68\x39\x24\xc4\xdb\x9b\x8d\xfb\x32\xaf\x6f\xb1\xda\x40\xb3\x41\x30\x7d\x0d\xd8\x52\xf5\xd0\xbf\x98\x81\xda\x78\xfa\xaa\x55\x04\xe3\x2a\x50\x79\xf5\x68\x0f\x69\x97\x7b\x31\x2a\x66\xf8\x76\xbf\xe7\x73\x2c\x6c\xea\x7c\xc6\x99\xc0\x79\x88\xfb\xfc\x95\x63\xde\x97\xc6\xf5\x89\xb4\x89\xcf\x59\x79\xfa\x36\xe2\xbd\xcb\x37\x54\xbb\x7d\x61\x3d\xe0\x8a\xa3\x09\x01\x48\x1f\xca\x62\xfa\x44\xe3\x14\x27\x47\xb5\x27\x76\x96\xb1\xb3\x23\xea\x57\x73\x98\x56\x26\xa3\x3c\xb0\x94\x28\xe9\xee\xa3\x25\xf0\x50\xbb\x38\x07\xb8\x04\x87\x71\x2c\x8d\x52\xf1\xe6\x25\xb6\xad\x31\x36\xec\xc8\x2c\xd2\x44\x10\x25\x0b\x97\x6c\x3e\xf6\xdd\x4b\x93\x86\xc6\xb1\xfd\x22\xc3\x95\x28\xe0\xb9\xe1\x02\x2c\xa6\x59\xa3\xd7\xe7\xba\xe5\xa3\xf5\xd6\xe5\xce\xf5\xcf\x58\x79\x54\xf9\xe9\x0a\xc2\xf0\x21\x9c\xd3\xf6\xf2\xb0\x43\xb2\x3d\x40\xe1\xa7\xee\x18\x1e\xe6\xfd\x7b\x00\xc2\xf1\x92\x48\xb0\x3b\x11\xf9\x88\xb6\xc9\x41\x48\xca\x4b\x4b\xf1\x52\xf2\xf2\xa9\x03\x09\xcb\x21\xb7\x0e\x77\x89\x0e\xe3\x24\xef\x06\x90\x6e\x2b\xff\xc9\x06\xae\x91\x57\x84\x2c\xab\xa5\xe4\x9d\xf5\x08\xef\x4f\x54\x5a\x7d\xf2\x76\x72\xd2\x00\x79\x18\x03\x44\x42\x6a\x2b\x30\xc1\x7a\x78\x61\xb5\x4b\x6e\xc8\x15\x01\xcb\x76\x78\xad\x42\x95\x97\xc8\xb9\x8f\x83\x62\xf3\x61\x5b\x1f\x93\x7d\x1e\xda\x75\xc7\xb2\x0b\x6d\x77\xcf\x0e\x5d\xbb\x1b\xbd\x0f\x42\xde\x40\x3b\x79\xa4\x02\x65\xcb\x2d\xd9\x2e\x0f\x59\x55\xd9\xcc\xed\x11\x3d\x5c\xba\xef\x70\x2e\xc8\x98\x7e\xdd\x48\xa9\xba\x85\x4f\xad\xa1\x42\x93\xb9\x54\x88\x13\x9c\xb0\x50\xb8\xd3\x8b\x6d\xb6\x94\xb6\xc5\xfa\x06\x2c\x4f\x92\xb6\x19\xd2\x9a\xc9\x73\x51\xf8\x69\x53\x34\xda\xdd\x17\x0d\x35\xeb\x3a\x55\x6a\x2e\xcf\x3f\x7c\x98\x50\x35\x4d\x47\x67\x11\x9f\x99\x94\x1c\x2e\x26\xe6\x8f\x0f\x54\xca\x94\xc8\x0f\x7f\xfe\xd3\x9f\xf2\x25\x1e\xe1\xe8\x71\x62\x10\xb6\x96\xbd\xcb\xc5\x25\x27\x58\x6e\x17\xe4\xe7\xb2\x59\xf7\x8c\x6a\xe0\x75\xe3\xf2\xc8\xf5\x37\x52\xe1\xd9\xdc\x8f\x0a\x37\x65\x37\xa5\xc2\x79\xb1\x1f\x48\x51\xd6\xd3\x44\x53\x3c\x9f\x13\x56\x6f\xc0\x32\x39\xe7\x5b\xb0\x1e\x97\xb5\x6e\x47\x48\xbe\xce\x13\xcc\x8a\x48\x2c\x50\xb9\x4e\x90\x88\x30\x65\x51\x42\x94\xc0\x4c\x9a\x78\x23\x2e\x1c\x1a\x98\xe1\xff\xeb\x65\x25\xc3\x1c\xa9\xcc\x4b\x52\xba\xe1\xd8\xf2\xd0\xae\x68\x30\xf6\x48\x57\x2e\xc9\x9d\xd3\x8e\x38\xaa\x35\xe5\x2b\xdf\xdb\xf2\x7b\xdb\xec\xa0\x48\x70\x36\x24\x5f\x35\x93\x93\x9b\x62\xf7\x3d\x48\x22\x51\xe7\xcb\x3d\x92\x0b\xa6\xf0\xd7\x73\xf4\x99\x32\x50\x05\x7e\xe6\xa9\x90\xe8\x12\x2f\x4e\xf9\xf8\x74\xc6\x99\x9a\xa2\xcf\xf0\xbf\xf6\xa7\x67\x42\x1e\xd1\xdf\x09\x16\x96\x3f\xd8\x92\x9e\xae\xaa\x20\x6c\x21\x91\x32\x89\xc8\x93\x3e\xa1\x7f\xfa\x5f\x68\x66\x5a\x3e\x47\x3f\x7c\xf8\xd3\xff\x42\x7f\x80\xff\xfe\x3f\xe8\x0f\x35\x36\x9b\xf5\xd0\xff\xa0\xf2\xfb\x5d\x6d\xd0\x06\x50\x4a\x2e\x93\x7c\x55\xb3\x17\x82\xe7\x2b\x55\xd9\xf2\x23\x8d\x1e\xf9\x78\x3c\xd4\x1b\xc3\xe4\xf4\x0e\xf1\x56\xe2\xb4\x0f\xe4\x4c\x6d\xed\x7e\x53\x09\x34\xaf\xc1\x65\x3b\x35\xe0\x2f\x8e\x5d\xcb\x34\x17\xbb\x21\x9e\xb0\x50\x0d\x9e\x4a\xf8\x8a\xc4\x9a\xab\xae\x73\x3a\x9c\x9d\xd6\xe1\x40\x38\x5b\x9c\x0f\x96\xe4\x04\xe2\x42\x0c\xb0\x1f\xd0\x6e\x62\xfe\x2c\x21\x2b\x8f\xc3\x52\xa4\xfd\x9b\x09\x9f\x86\xa9\xbd\x56\xe8\xb4\x5c\xea\x7c\x75\xd4\xf4\x3d\x17\x5b\xe9\x5b\x8f\xa4\x36\xab\x69\x45\xbd\x39\x57\x03\x1d\xfb\xe6\x21\xc5\x91\xe4\x22\x03\x54\x37\x16\x26\x5b\x95\x76\xb5\x3d\x9a\x0a\x13\x67\xda\xee\xd0\xeb\xa9\x5f\x66\x9f\xac\x1a\x26\x04\x9d\xba\xb7\xf3\x7a\x9b\x30\x5a\x2d\x22\x69\x96\x58\x31\xe2\x0a\xdc\xd3\x55\x0b\x7a\x9f\x41\xdd\x40\xe3\x10\x01\x0d\xa9\x5c\xcc\x49\xb6\x16\x4b\xa4\x7a\x3d\xb5\xf6\x7d\xc1\xb7\x8b\x80\x4f\x28\x5b\x4a\x9d\xa9\x0d\x25\xac\x97\xc9\xaf\x6c\xd1\x3e\x07\x0d\xce\xe3\x5c\x59\x30\x0e\x1e\x5b\x0e\xc7\xc3\x24\x2e\xce\x06\xb0\x2d\x77\x01\x7b\xbb\x54\xa4\x65\x0b\xae\x6d\x5c\x00\x39\xc3\x73\x35\x7e\x4a\xa5\x7d\x04\xd6\xbc\xb0\x21\x42\x15\x02\xf3\xb6\x1e\x87\x57\xae\x2a\x8f\xf6\x2b\x14\x8e\x86\x91\x40\x0a\xec\x86\xb0\xc5\xa6\x72\xdc\x09\x12\x18\xe2\xb3\xd5\x54\xb7\x27\x89\x38\x1d\xe3\x88\xb2\xc9\x89\x87\x58\x0b\xe8\x31\xfe\x75\x50\xb5\x49\xfb\x58\x3e\xee\xd6\x66\xb6\x75\x01\x60\x1a\xe7\x45\x28\x2d\xc6\x94\x31\xa9\xd1\x25\xb8\x4e\x85\xe5\x63\x1d\xc8\xda\x12\xc2\x63\xc3\xe8\x32\x52\x38\x5c\xc8\xa6\xf1\x39\x34\x0a\xe2\xeb\x53\x50\x3c\xc6\x95\xa4\xb7\x78\xaf\x2e\xf9\x17\x67\x80\x4c\x65\xa0\xe3\x86\xf1\xcb\x29\x17\x6a\xb8\x21\x44\x74\xd9\x54\xc8\xc8\x69\x02\xd8\x4e\xfc\x89\x88\x27\x4a\x9e\x8b\x48\xcb\xeb\xec\x45\x63\x34\xf3\x22\x53\x01\x8a\x77\x36\xe7\x90\x4d\x37\x46\x33\xcc\x16\x86\x51\x6a\xe6\x82\xe5\xa3\xcc\x0a\x61\x23\x39\xc3\x49\x72\x82\x04\x49\xa5\x29\x10\x2f\x49\x32\x3e\x75\x35\x79\x62\x94\xf0\x09\x8d\x70\x82\x46\x09\x8f\x1e\xa5\x49\x76\x65\x13\xc3\xa4\xe6\x82\x47\x44\x4a\x4f\xb2\xca\x81\x2d\x6c\xba\x31\x54\xc1\x56\x44\xcc\x28\xa3\x52\xd1\xc8\x89\x4c\x39\x3e\x4d\x1f\x32\x63\x22\x0c\xc6\x75\x48\xde\x86\xe1\x6a\x49\x8f\x18\x9c\xde\x94\xd9\xea\x6d\x70\x5d\x5b\xf8\x4d\x97\x2f\x52\x77\x80\x76\x80\x26\xea\x76\xc8\x50\x15\x0f\xe4\x8a\x23\x75\x61\x3f\x83\x63\xdc\xb4\x05\xee\x8a\x27\x2a\xdb\x90\xd9\x49\x2b\x20\x9c\x41\x7a\x49\x96\x0d\x53\x90\x5c\xb2\x24\x91\x03\x03\x37\x84\x21\xd7\x40\x1a\xae\xda\xd3\x9a\x8a\x20\xf2\x40\xc1\xc0\x72\xfc\x03\x65\x51\x92\xc6\x59\xa5\x5b\x2d\x02\x3c\xe9\x4d\xe2\xc8\xa3\x69\xaf\x05\x85\x13\x84\x25\x7a\x26\x49\xa2\xff\xdf\x24\xc3\x9c\x66\x15\x5c\x34\x4b\x36\x55\x76\xa0\x13\xc7\xa5\xeb\x76\xd4\xc1\x01\xd5\xde\x62\x35\x35\xf0\x1f\x33\xae\x4c\x91\x61\x03\x54\xeb\xec\x5b\x06\xd9\x74\x94\xf0\x11\x9c\x74\xc0\xb0\x75\x29\xef\x5e\x86\x6d\x1a\x45\x84\xc4\x24\x36\x25\x53\x33\x7c\x55\x7b\x44\xbf\xaf\x46\x54\x2d\x50\xe4\x00\xf0\x6b\xcb\x86\xb5\x5a\x14\xdb\x62\xc1\xc9\x33\x74\x5b\xc2\x68\xf2\x28\x33\xc6\x65\xc4\xbe\x93\xa5\x25\x7c\x1d\xcc\xdb\xd2\x24\xf6\xb7\x42\x6b\x62\xde\x16\xfa\xdc\x01\xe6\x6d\x69\x9e\x35\x19\x3a\x7c\xb2\x57\xf8\x01\x3d\xa9\x2b\xde\x3e\x27\xd4\x60\x05\x9a\xbb\xb3\xb0\x05\xdd\x81\x5c\x54\x6d\xc4\xc3\xc2\xf3\x2d\x95\x65\x7d\x5d\x3c\xdf\xd2\x60\x0e\x19\xcf\xb7\x34\xd4\xc3\xc5\xf3\xad\x18\x68\x0b\x3c\x5f\x13\x26\x31\xd4\x9b\xba\x1d\x53\x80\xf4\xb5\x51\x3a\xbe\x07\xd4\x87\xc6\x31\x5e\x98\x10\x0c\x73\x8d\xb9\x3b\xda\xfa\xcd\x61\xb4\x36\x1d\xba\x2e\xb0\xad\xe4\x84\x58\x77\xef\x65\xde\x37\x83\x03\xb3\xae\xd9\xfd\xc4\xb7\x76\x83\x1d\x32\xc2\x73\x0b\x2f\x51\x57\x75\xea\x70\x12\xe9\x37\x83\x4a\x06\x38\xd2\x02\xcb\x6f\x05\x26\xf8\xb9\x54\xc0\x65\xca\x9f\x6d\x11\x35\xd8\x86\x66\x53\xd6\x6e\x41\xe8\x74\x68\x95\xb6\x3a\xca\x51\xa6\xc8\xa4\xac\xd3\xe6\x87\x86\x32\xf5\xe3\x9f\x57\x72\x22\x83\xb6\xea\xd4\x43\xaf\x8c\x4a\xe6\xec\xb0\xcf\x48\x8c\xa2\xa9\xd6\x8a\xa4\x56\x5f\xf4\x74\xcc\xcd\x2a\xd1\x0c\x53\xa7\x48\xa5\xd2\xb8\x96\xa8\x1c\xb0\x02\x3c\xf1\x19\xfa\x08\x95\xa9\xf1\x6c\xae\xf5\xaf\x6c\x7e\x54\xef\xa4\x41\xfa\xc3\x0f\x3f\x12\xf4\x03\x9a\x11\xcc\x0a\x3a\x2c\xa8\x4d\xfa\xea\x83\xd4\x60\x35\x25\x03\x56\xb9\x14\xa8\xfb\xd5\x94\x9b\x73\x91\x9b\x3d\x36\xe6\x4e\x27\x86\x8a\xab\x38\x9a\x22\x99\x8e\x4c\xc9\x70\xcf\x86\xe1\x04\xe9\x2b\x3e\x01\x47\x35\xdc\xc8\x6e\xd0\x4d\xa7\x70\xbf\x31\x00\xd6\xdd\xd8\xf6\x36\xee\xc0\x3d\x72\x2a\x49\x01\xe6\xad\xc2\x69\x66\x38\x9f\x7f\xf0\xa5\x81\x80\x3a\x31\x3e\x04\xad\x9f\x61\x6b\xd9\xd7\xb2\x34\x04\x66\x83\x97\x2c\x4d\xb0\xb0\x47\x7f\xc0\xb4\xa2\x21\xc8\x13\xe5\xa9\x4c\x16\x28\xe6\x8c\x9c\xc0\x4e\x48\xa3\xa9\x71\xac\x6a\x9d\x05\xdb\xda\x35\x4f\x54\xa6\x5a\xa1\x85\xb6\x5c\xa9\x1c\xa9\xb0\x81\xa7\x9b\x52\xe8\x47\xab\xdf\x04\xbe\x52\x5e\xa6\x29\x6a\xa7\x45\xf9\x08\xd2\x25\x9e\xdf\x12\x41\xba\xb0\xab\x02\x82\x74\x86\x20\xbd\x4c\x97\x43\x44\x90\x2e\xad\x79\x3b\x04\xe9\xaa\x25\xdf\x00\x41\xba\xd0\xcc\x9b\x41\x90\x2e\x51\xf4\xcd\x20\x48\x97\xe6\x15\x10\xa4\x97\xa7\x70\xec\x08\xd2\x5b\x62\x24\x57\xf3\x62\x03\xb5\xa6\x28\x5b\xac\xbd\xc9\xde\x4b\xd4\xbb\xd1\x1b\x2c\x7a\x2c\x06\xb5\x65\xd7\xd5\xf6\xb8\xcc\xd5\x4c\x68\x3d\x5c\xe6\x4a\x55\xbd\x9e\xd5\x6d\x8b\xf5\x06\x8a\xc1\x0b\xe3\x32\x17\x26\x10\xe2\x2b\xd7\x8f\xaf\xac\xdc\x7c\xb6\x6f\x3d\x3c\x17\x74\x59\xbe\x90\x5b\x22\x33\x17\xd6\xa7\x55\x24\x26\x88\xee\x3b\xd8\x89\xfb\x95\xe6\xfb\x85\x43\xbe\x52\x96\xf7\xa9\x28\x2d\x46\xbc\x96\xf0\x1c\x70\xa4\x51\xc2\x7d\xff\x7f\xd8\xb9\x1b\x44\x06\x97\xc8\x9b\xf9\x55\xcc\x5e\x6c\xb1\x55\x5b\xef\x50\xa7\x95\xee\x26\xe5\xda\xa5\xc1\xae\xe9\x62\x76\x83\xb8\x9f\x93\xa8\xc6\xc6\x4c\x67\x74\x57\xcd\xae\xba\xc8\x32\x58\x3c\x50\xc8\x97\x32\x7c\xf5\xf5\x64\x86\x63\x64\xfc\x52\x62\x35\xe0\xcd\x98\x2f\x27\x54\x2a\x51\x1b\xdb\xb4\x34\xc2\x6d\x5c\xa5\xf3\xb4\x75\x40\x8c\x47\xd5\xc9\x66\x9f\xcd\xc8\x8c\x8b\x55\x81\x55\x95\x5f\xda\xaa\x57\x9b\x7c\x4a\xe6\x53\x32\xd3\x92\xcc\x70\xdd\x46\xda\xae\x77\x96\xfe\x6d\xb3\x00\x4d\xa0\x63\x61\x13\x78\x8e\x50\xfd\x6e\x6c\xc0\x69\x5b\x2f\xf7\xb6\xcb\x6c\xe1\x73\xd7\x74\x08\x39\x5c\xf5\x66\x83\x9b\x7d\xa9\xe0\xee\x86\xfd\x5d\x19\xd3\x91\x85\xd4\xac\x8e\xda\x68\x88\xd7\x68\x42\x97\xcb\xbf\xb2\x35\xe1\xd7\x70\xe5\x17\xbd\xf3\x9a\x13\xfa\x05\xc1\xd7\x0f\xf0\xa8\x01\x50\x5e\x26\x0f\x44\xe6\x48\x22\x4e\x7d\xcd\xa0\x30\x98\x65\x7a\x15\x76\x89\xd3\x28\xb7\xd8\x24\xa9\xa8\x8d\x32\x6d\x63\xd0\x8e\x54\x8a\x13\xd0\x24\xfc\x42\xb6\xe5\x45\x1d\x2d\x2a\x12\x48\xdb\x79\x4c\x28\x53\xff\xf1\x97\xb5\x56\x53\xab\x56\x96\x6e\x50\x7c\x0f\x47\x11\x91\xc6\xc6\x6e\xa3\x90\xf1\x88\x3f\x41\xdd\xbd\x6d\x56\x55\x1f\x65\x3d\x6f\xcd\xe0\x33\x54\xf2\x38\xdf\xea\x46\x5c\x98\x0a\x9e\x4e\xa6\xce\x86\xa4\xcf\x8c\x9e\x5a\xd5\x5a\xfe\xba\x64\x23\x5f\x7b\x2d\x7f\x4a\x69\xb2\x99\x85\xee\xbe\x50\x91\xf0\x53\xaf\x8f\xe4\x34\x3b\xad\x23\x68\xb6\x72\x61\x97\x07\xdd\xbe\x4f\xfb\x6d\xe6\xaf\x81\x6e\x4e\x1c\x12\xef\x98\x27\x09\x78\x1a\x24\x99\x3d\x11\x51\xdd\x3d\x4c\xb8\x4f\xd7\xc3\xc7\xcc\x06\x00\x5f\xe7\x89\x11\xad\xe4\xaf\x5b\x23\x1a\x4a\xe4\x46\x5f\x0e\x5a\x30\xa1\x6a\x9c\x11\x56\x65\x63\xfb\xb2\x5c\x0c\xea\xc8\x02\x06\x5d\xf4\xd8\xce\x82\x06\x1d\x49\x5e\x38\x70\x70\xc5\x3c\x0e\x35\x78\xb0\xc4\xec\xb2\x58\xbe\xfc\x9a\x71\x81\x43\x46\xf1\xe9\x68\x12\x0f\x58\xa7\x90\x4f\xe1\x8a\xe6\x8f\x16\x79\x40\xb6\xd1\x21\x7c\x66\x06\x25\x77\xac\x61\x05\xdc\x68\xfa\x2f\xd0\x74\x0c\x8e\xb5\x09\x29\x74\x61\x83\x10\x4d\x4e\xe2\x53\x1c\x2d\xa2\x84\x46\x9e\xce\x3c\x11\x78\x3e\xad\xe2\x78\x6e\xe5\x03\x7e\xd3\x6b\xe1\x37\xd5\xd5\xa6\x5b\x27\x6e\xdb\xed\x2b\x86\x67\x24\xe0\x4a\x1d\x22\xae\xd4\x49\x86\x5c\xc2\xf2\x2a\x7f\xaf\x08\x88\xb1\x7c\xee\x03\xb8\xd4\x2b\x80\x4b\x6d\x72\xf8\x73\xe4\xa8\xc2\xb1\x0f\x80\x57\x6d\x88\xf7\xfa\x80\x57\x99\x10\x70\x50\x18\x46\xf5\xfc\xe0\x95\xb1\x71\x96\x07\xf6\x9a\x00\x57\x15\xe2\xd2\x3a\x72\x63\x13\xc2\x55\xd3\xbe\x68\x45\x97\xd7\xc5\x9b\x5a\x8f\x32\x6b\x41\x49\x55\xde\x9d\x07\x02\x2c\x55\xbf\x0c\x07\x72\x6e\x76\x99\xd5\xb3\x5e\x19\x65\x3f\xb3\x67\x1d\x05\x73\xbd\x24\x9f\x6c\x3f\x1c\x57\xa2\x4f\x5e\x6f\x72\xb3\x64\x9f\x8e\xf3\xc1\x13\x81\xa6\x3c\x89\x1d\x08\x47\x46\xad\xac\x83\x2c\x13\x22\x23\x90\x5b\x8c\xfb\x39\x89\x8c\xb6\x99\xd7\x46\x6c\x4a\xe9\xc9\x16\x11\x86\xbb\x03\x46\xb3\x0b\x2b\x4a\xc6\x49\x36\xb1\x9f\xac\x94\x2e\x64\xd1\xfc\xdf\x30\xc6\x02\x85\xc0\x6b\x50\x3d\xcc\x95\x76\xef\x15\x83\x6b\x12\x3d\x3c\xe3\xa8\xa8\xaa\x7a\x6c\xf6\x19\x3c\x7d\xa2\xce\x10\x83\xfd\x1e\x1b\xbd\x94\x6e\x76\xad\x3c\x95\xe5\xcd\xb2\x41\x30\xdc\x52\x11\xcb\xed\xc1\x91\x66\xf8\xeb\x70\x8e\x05\x4e\x12\x92\x50\x39\xdb\x5b\x30\xf4\x45\xd1\x5d\xad\xcf\xaa\xe0\xc6\x44\xc6\xd2\xd9\xc8\x6c\x45\x37\x10\x5b\xf7\x54\x71\x24\x52\xe6\x43\xbb\x65\x0b\x93\xd5\x55\x4d\xe1\x5e\x00\xab\x5a\x34\x85\x02\xd6\x63\x4c\x05\x23\xb2\xb6\x5c\x30\x89\x52\x41\xd5\x62\x68\xab\x2f\xb7\x3f\x70\xf7\xf6\xcb\x0b\xfb\x61\xb3\x87\xdf\xa1\x1a\xb8\xfe\xb2\x6a\xcf\x73\x22\xa0\x62\x9a\xab\xfd\xe5\x55\x98\xb6\xa8\x15\x24\x2b\xbb\x06\xe1\xdf\x4b\xd7\x76\x5d\xe0\x34\x7e\x1e\x7a\x19\x65\xc3\xa8\xbc\x39\x56\x1d\xd6\x2a\xdc\xad\xa6\x49\xee\x19\x79\xaa\xc6\x8b\xbe\x87\x5a\x4a\x36\x6d\xc4\x34\xad\x07\xec\xb9\xc2\xc1\x5e\x9b\x2f\x8c\x97\xf2\x5f\x81\xc3\xe8\x8d\xd3\x62\x1d\x55\x05\x5f\x35\x0c\xb6\xe3\x7d\xd5\x62\xc4\x5e\x27\x3b\x1a\xb6\x3e\xe8\x42\xa4\x73\x45\x47\xcb\xd0\x3e\x8e\x1b\xec\xa0\x9a\x72\x27\x81\x34\x73\xe7\x66\x29\x74\x6b\x4a\x2c\x17\x38\xb1\x9d\x9d\x96\xff\x2d\x8e\x9a\x43\x48\x32\x08\x53\x7e\x1e\xe3\xcd\x8c\x2a\xe5\x12\x25\x8c\x01\x5e\xef\xce\xa2\x6d\xfa\xbd\x0b\x77\xc1\x50\xf4\xda\x98\xa8\xce\x06\xac\x23\xd1\x33\x41\x8c\x58\x08\x8d\x8a\x72\xd6\x99\x55\x1f\xca\xe0\x8d\x88\xee\x29\x8b\xcd\xd1\xc2\x03\x55\x32\xab\xc4\x68\xfa\x18\xe3\x44\x92\x13\xdd\x30\x14\x70\x56\x1c\x82\x5f\x31\x7a\x16\x78\x3e\x27\x62\xc0\x6c\x16\x0b\x38\x9c\x38\x4f\x4c\xfb\x75\x21\xbe\x96\x06\x64\x18\xe1\x68\xfa\x42\x6b\x84\x21\x19\x29\x9a\x92\xd8\xe5\x4b\x17\x97\xc7\xcd\xdb\x18\xec\xd7\x58\xac\xde\xd8\x55\x12\x3c\xb1\x9d\x24\x91\xe6\x28\x59\xc5\xfd\x39\x11\x7a\xd4\x7a\x0f\x3f\x11\x86\xe8\xd8\x8d\xc3\xc6\x2e\xa1\x67\xf0\xcc\xe9\xad\xff\x84\x69\x62\x00\x08\x5c\xd7\x4e\x08\x34\xee\x87\x01\x33\xee\x7e\x16\x15\x32\x74\x29\xa3\x72\xaa\x39\x75\x0a\x3e\x59\x50\x33\xea\x12\x87\xd8\xd3\x3a\xa7\xb9\xab\x5f\x6f\xe6\xa0\x4f\x54\x70\x36\x83\x24\x21\x8b\x4b\xe5\xc8\x27\x89\xca\x8e\x47\x65\x8a\xe7\x4a\x89\x38\x8e\x65\xd1\xf8\x6a\xd4\x4a\xfa\xcf\x82\xd9\xe5\xb4\x90\x15\x19\x79\xb0\x4a\x10\xc4\xea\x8a\x2c\x36\xc9\xbf\x21\xb5\x63\x39\xb5\xa3\x9a\x36\x87\x98\xde\x91\x1d\xe2\x75\x53\x3c\xea\x96\x7f\x17\x92\xed\x0e\x53\x3d\x5e\x39\x27\x62\x3f\xe9\x10\xaf\x9b\xbf\xb2\x8f\xd4\x95\x90\xe0\xf1\x8a\x09\x1e\xad\x2d\xb5\xc5\xd8\xf4\xfa\x63\xbb\x56\x72\xc4\x0a\x30\xab\xaa\x5e\x3e\x13\x25\x68\x24\x77\xc1\x1f\xe4\x1c\xb7\x8c\xea\x03\x2d\x70\xbe\x42\x6a\xd2\x2f\x64\x4e\x50\x88\x93\xcb\x6a\x85\x8e\x04\xc1\x8f\x31\x7f\x5e\xb2\xd5\x49\x1f\x4d\xe4\x33\xd7\x62\x8f\x20\x11\x95\xa4\x10\xc9\x43\x25\x62\x44\x5a\x63\x27\x1e\xb0\x29\x25\x02\x8b\x68\x0a\xd9\x9d\xf9\xc2\x98\x2c\x61\x03\xe8\x64\x62\x39\x7c\x6f\xd7\x1a\x8b\xde\x82\xee\x65\x0b\x53\x86\xcf\x67\xd7\x5c\x8f\x64\x66\x3e\xc9\x84\x19\x2b\x65\xf8\x26\xb9\x56\xcb\xbf\x6d\x22\x42\x46\xec\xbd\x26\x23\x64\xc1\x54\xde\x17\x2d\x13\x12\xf2\xdd\x10\x92\x12\xf6\x94\x94\x50\x41\xe2\xf5\x12\x13\x36\x32\xf9\xbd\x7c\xcc\xb4\xeb\xf9\x25\xe2\xa6\x57\x05\xad\xa5\xa3\xe1\xde\x8f\x5e\xe5\x9c\xdb\x9e\xc0\x2f\xd9\xa6\x30\x12\xb1\xd0\xfb\x6c\x44\xe2\x18\x38\xad\xe2\xb6\x68\x7e\xbe\x77\x9c\x79\x40\xdf\xbd\x58\xea\xcd\x8e\x13\xce\x26\x92\xc6\x06\x6c\x66\x8e\xa1\xea\xb3\x6f\xbc\x00\x70\x05\x58\xdf\x24\x21\xc2\x79\x25\x04\xfa\x4e\x52\x66\xd1\x24\xb3\xdf\x62\x4e\x24\x7b\xaf\x8c\xb1\x00\xb3\x05\x7a\x64\xfc\x39\x21\xf1\x04\x56\xa8\x3c\x98\x53\x44\xc9\x09\xa2\x2a\xfb\x4c\x00\x1a\x03\x4f\xd5\x40\x8f\x1d\x62\xed\x8c\x06\x40\xec\xb7\xc2\x56\xaf\xf0\x38\xb0\xfc\xfe\x0c\xa1\x1e\x43\x63\x1c\xa9\x13\x24\xd3\x51\xde\x7e\xcc\x4d\xbd\x7f\xad\x7d\x7b\x13\xcf\x1b\x09\x31\xf3\x15\x9d\x57\x9f\x0d\xc7\x1d\xf4\x76\xed\x24\x14\x6f\x15\x5b\xf8\x84\xb7\x81\x58\xfd\x9c\x4a\x1b\x84\x81\x38\xcb\x8e\xbe\x85\x97\xca\x30\xb2\x01\xef\xd4\xe0\x4d\x33\x1e\xd7\xda\x3a\x4b\x53\x59\x77\x2c\x79\x20\xa8\x15\x94\xac\xa3\x0a\xda\x35\xe4\xd6\x52\x93\x54\x82\xe0\x99\x75\x0e\xe8\xab\x06\xc4\x1a\x13\x06\xaa\x47\x4f\x85\x91\x30\xd7\x59\xe2\x2b\xca\x1e\xf5\xea\xe6\xa8\xe0\x1c\xf0\x92\x75\xcf\x55\x8b\x36\xd7\x37\x1e\xb9\xe0\xcc\x38\x08\xb7\x92\x3b\xe9\x84\xe1\x64\x4d\x1b\xc7\x12\xe5\x96\x7d\x7a\x4e\xce\xb2\xe2\x82\x96\x22\x8c\xb1\x0f\x99\x1e\xd7\xb2\x21\x95\xe6\xeb\xcb\x7b\x18\xc5\x64\x4e\x58\x4c\x58\xb4\x80\x2d\xc2\x00\x39\x48\x30\x9c\x20\x0c\xdf\xe1\xe4\x0c\x5d\x9a\xfc\xa2\x4c\xc2\xb3\xd7\x3a\x5c\xe8\x33\xcc\xe8\x58\xeb\x09\x60\x84\xb5\xa3\x1c\x30\x33\x4c\xe7\x03\x21\xb9\x75\x35\xa3\x58\xd5\xca\xe8\x1b\xe4\x7a\x4b\x54\x66\x56\xfc\x1e\x35\x5f\x38\xd0\x5b\xd3\xea\xe8\xe6\x5c\x0d\x06\x99\x8e\x4e\xe1\xdf\x85\x84\x3b\x07\x54\x94\xa3\xe8\x90\x84\x80\x39\xd0\x7a\xbc\xe0\x62\xac\x03\xd6\xdb\x85\xdf\x6e\x45\x1e\x8b\xd7\x47\x41\xa9\x99\x51\x46\x67\xe9\xcc\x73\xde\x99\x8a\x0d\x91\xb5\x5f\x9a\x4c\x94\xb9\xd6\x03\x22\x07\xde\x8e\xf4\xe5\xca\x16\x68\x42\x9f\x08\x1b\xb0\x39\xa7\x4c\x9d\xa1\x6b\xae\x88\x57\x22\xc3\x40\x67\xf1\xb9\xa2\x33\x83\xf6\x2a\x88\x3e\x07\x06\x14\x1c\x80\x36\xa7\x58\x9d\xa0\x38\x85\xa3\xca\x88\xd2\xac\x03\x71\x31\x81\xc8\x70\x31\x60\xe6\x8e\x1b\x63\x9a\xa4\x82\x58\x69\x15\x9b\x8c\xa0\x7c\xb0\xf9\x98\x2c\x06\x9c\x37\xfc\x19\x9d\x4c\x95\x5e\x1c\x2d\xdd\x59\x4f\xe3\x54\xf3\x21\x3e\x60\x23\x82\x30\x9a\x73\x49\x15\x7d\xca\x3c\x97\x74\x8c\xb0\x94\x60\x3b\x39\x43\x97\x05\xcb\x3f\x95\xa0\x74\xd7\x45\x14\x53\x36\xb4\x56\xe7\xfa\x4c\xa4\xad\x97\xb0\xd0\x8b\xa5\x2f\x1e\x49\x9e\xa4\xca\x77\xbe\x56\xaf\x6a\x6e\x14\x77\x25\x0b\xc0\x34\xcc\xc7\x03\xe6\x76\xb4\x3c\x43\x1d\x89\x24\xd7\xeb\x23\xcd\x22\x46\x82\x2a\x22\xa8\xc1\xaf\x22\xca\x2c\x42\x76\x42\xb3\xdd\x3f\xc3\xe2\x51\x0b\x4f\xbe\xed\xdd\xa0\xa9\x16\xec\x1c\x23\x23\x1b\x01\xa0\x97\xbf\x1c\x60\xf4\x47\x8c\xb3\x53\x46\x26\x78\xd5\x8a\x0c\x58\x61\x49\xd0\x77\x74\x9c\xab\xa2\x75\xde\x46\x8f\x76\x43\x88\x79\xaa\x5b\x25\xd3\x71\xdd\x22\x8d\x13\x8e\x57\x38\x8c\xc7\xf9\x71\x47\xff\xe0\x23\x33\x46\xad\xf1\x73\x05\xf2\x9f\x56\xac\xc6\x5c\x90\x29\x66\xf1\x89\x5b\xac\xe2\xd8\xe0\x4e\xb4\x46\x36\xa7\x86\x81\x0c\xe8\xe0\x93\x89\x41\xa1\xc2\xcc\x5b\x0b\xab\xb2\xd9\xa5\xc8\xd7\x61\xad\x5b\x22\x6b\x0d\xaa\xbe\x18\xd3\x83\x61\x76\x8b\xb9\x3d\xdc\x92\xce\xe6\x49\x9e\xcd\xe5\x59\x45\xc7\x5a\xb8\x72\xdc\x91\x3f\x81\xd1\xca\xe9\x6b\x70\x9f\xdb\x95\xd3\xfb\xac\x62\xe4\x19\x0b\x85\xfb\xc2\x59\xbb\x4c\x29\x55\x8f\x79\x7d\x27\x89\xfe\xa7\x22\xb9\xc2\x67\xc4\xf4\x01\x73\xc2\xc7\xf7\xc0\x5f\x6c\xb3\x9e\xd9\x4c\x0b\xcf\x06\xe0\xd6\xd2\x0f\x45\xc6\xbd\x5d\x38\x27\xf6\x30\xb8\x57\x2b\xaf\x28\x45\xb5\x80\xfd\x13\x05\x6c\xae\xcb\x2d\x01\xf7\x29\x8b\x49\x6d\x19\xab\x56\x5c\xa3\xee\x56\x51\x70\xc9\x0d\x37\xad\x3c\xd1\x9f\x12\x49\x90\x7a\xce\x20\xe2\xb4\x46\x05\xc6\x4a\x41\x12\xf2\x84\xf3\xdb\x2d\xeb\xcb\xb2\xcb\x08\xcb\x9a\xc2\x30\x80\xb3\xa6\xc7\xbf\x79\xca\x74\x36\xbe\x1b\x3d\x94\x27\x9c\xd8\x94\x15\xeb\x25\x97\xf5\x0b\xd6\xbb\xdc\x2a\x7a\xd4\xb6\x52\x45\xcf\x7a\xe1\xc2\xf5\xfd\x0b\x59\x54\x53\x64\x05\x7c\x61\x53\x1e\x7a\x46\xf6\x35\xac\xd4\xb7\xf9\x37\xcb\x34\xae\xa5\xdc\x2f\x85\x29\xbf\x42\xfa\xd4\xed\x52\x15\x73\xf8\x53\xa6\xe3\x31\xfd\x0a\xfa\xac\xbb\x49\x9c\xce\x11\x09\x2e\x35\x17\x03\x29\x05\xb9\xc5\x33\x2e\xe4\x6d\x52\xa9\x2a\xbf\xd4\xfa\xd5\xda\x3b\xba\x96\xda\x7f\x4b\x89\xd8\x8a\xde\xd9\x56\x5d\x27\x10\xd1\x3b\x25\xd5\xda\xa1\x6b\x54\xe1\x96\xd1\x48\x7e\xab\x7d\x5c\x43\xba\xd5\xc0\xe7\x95\x9f\x8d\x0c\xf3\x5d\x7f\x20\x3e\xd7\x6e\xb4\xa6\xe5\x91\x69\x59\x54\xb2\x2b\x47\xa4\xf9\xdb\x89\x85\x56\xc7\x36\x64\x2a\x4b\x72\xc6\x2e\x5a\xc4\xb8\x44\x4c\xb5\x2a\x65\x6b\x2c\x78\x3a\xba\x6d\x8c\xb2\xc9\x80\x39\xda\xca\x13\x64\x02\xc4\x4b\x0c\xb5\x80\x6a\x8f\xbd\x4f\xb3\x8d\xdd\xce\x98\x6a\x3c\xea\x8c\x48\xa9\x2f\x46\xa9\x04\xa6\xcc\x7a\x6f\x1c\x7d\xe4\x80\xa1\xd3\x72\x84\xfa\x09\x58\x10\x4e\x5c\x9e\xeb\x49\x3e\x40\x39\x60\x26\xd7\x04\xfd\x19\x7d\xa7\xf0\xc4\xdc\x12\x80\x5b\x89\x13\x40\xbc\x04\xfd\xc0\xea\xe3\x5e\x5a\x40\x76\x22\x69\xfc\xfd\x79\x53\x9f\xc6\x7a\xf0\x1d\x34\x03\x87\x5c\xd3\x30\x27\x10\x1d\xe7\xff\x20\xf1\xf7\x4d\x2d\xe5\x1f\x3d\x92\xc5\x49\x99\xc8\xf5\xf7\x46\x1f\x6f\x15\x9b\xb9\xaf\x8b\x03\x06\xdd\xde\x3d\x89\x47\x24\xf9\x35\x9f\x28\x6a\x64\x45\x3f\x51\x86\xb7\xe3\x41\x95\xc3\x6b\x17\x7b\x3e\x5a\xd4\x55\xac\xab\x60\x3d\x1b\x63\xad\x74\x8c\x2c\x4b\x90\xee\xce\x4a\xec\xae\x9e\x21\x86\x78\xc7\x29\x49\xe6\x28\xa6\x63\x70\xba\x29\xd8\x2f\x19\x6c\xac\xa9\xf4\xa3\x15\x9a\x59\xca\x0c\x04\xb0\x89\xf7\x78\xb6\x27\xdd\xb2\x8c\xbc\xf1\xb3\x01\xeb\xa9\xf7\x12\x49\x25\x38\x9b\x68\x35\x3a\x7e\xa2\x32\x2f\x61\xa7\x0f\x64\x3a\x23\xc2\x76\x41\xa5\x91\xba\x6d\xf9\x27\xec\x2e\x36\x3d\x36\x7d\xf5\x81\xe0\xe3\xca\x2c\xea\x1f\x8d\x5e\xa1\x47\x29\x5d\xbc\x54\x45\xc0\xbb\x5d\xdc\x12\xef\x7c\x61\xa3\xe5\xaf\xbe\x5d\x12\xcd\x72\x13\xa6\xe3\x97\x1f\xca\x06\x4c\x4b\xf5\x06\xe3\xe5\xda\x17\x42\xdb\x8b\xc0\xd5\x4b\x48\x4d\x82\x93\xee\xc7\xb9\xb4\xcc\xe0\xd6\x52\xb1\x4a\x13\xb4\xa3\x36\xda\x93\x6f\xbc\x24\x14\xec\x1f\x52\x61\x45\x23\x7b\x0b\x70\x61\xed\xb7\x56\xaf\xae\x5f\xda\x6d\x75\x12\x19\xe1\x64\x79\x85\x1b\xbc\xe9\xe6\xfd\x66\x13\xa7\x3d\x6e\xa6\xed\x46\x48\x97\x88\x27\xc9\x3a\x05\xea\x4a\x33\xbf\xc8\x3f\x6f\x1e\x51\xde\x8f\x5e\x00\xb7\x16\x70\x6a\x8c\x81\x02\x27\xd6\x51\x24\x95\x5d\x25\xff\x25\x73\xa9\x2d\xac\xfa\x38\x60\x7c\x0c\x25\x0c\x93\xba\x98\xf5\xb9\xe0\x33\xba\x4e\x0d\x0d\x13\xc6\x7d\xe7\xbc\xfe\x2b\x7c\x28\x2e\x36\x00\x0c\x6f\x66\x7b\xd9\x1e\x01\x8d\x01\x5b\x93\x5a\xc3\x19\x9a\xe1\xf9\x46\x04\x5f\x15\xf3\xd2\x41\x33\x13\x70\x64\xa9\x07\x68\xda\x04\xd2\x52\x81\xc8\xcf\x78\x91\x03\xdf\xd4\x55\x47\x60\x6b\x6d\x87\x07\xfd\x7a\x8f\x8d\xf9\x1a\x87\x33\x07\xaa\xb1\xa7\x0f\xbb\x3d\xeb\x9d\xbf\x2c\x06\xc3\xac\xbe\xa1\x69\x9b\xf3\x78\x51\xb5\xa9\xd7\x3e\x99\x8e\x82\xfb\xf4\xc0\xfa\x4c\xc4\xfb\xe6\x5f\xeb\xdc\xad\xc5\xa3\xe5\xb5\x88\x60\x38\xcd\xa4\xfa\x5c\xd8\x87\x3b\xa7\x51\xa9\x1d\x78\x96\xa7\x8a\xdd\x56\xb7\xfa\x02\x34\xb3\x87\xa4\x15\xb1\xb6\x44\xe6\x5a\xaf\xca\x83\xeb\x31\xab\xe9\xb0\xb5\x26\xb7\x8a\x18\xff\x1f\x7b\xef\xda\xdc\xb8\x91\xa4\x0b\x7f\xdf\x5f\x51\xeb\x7d\x23\xba\xfb\x2c\x45\xb9\xed\x33\x13\x5e\x6d\x38\xe2\xa5\xd5\x6a\x9b\x63\xb5\xa4\xd1\xc5\x9e\x3d\xc3\x09\x76\x11\x28\x92\x18\x81\x55\x30\x0a\x90\x9a\xb3\x3b\xff\xfd\x44\x65\x66\x5d\x70\x23\x01\x51\x6a\x7b\xf7\xcc\x87\x19\xb7\x08\xa0\xee\x95\x95\x95\xf9\xe4\x93\x20\xcd\x34\xdd\x1a\x7c\xdc\x09\x11\x00\x2c\x93\x54\xe8\x31\x9b\xb6\xb8\x6f\x6d\xf8\xbd\x83\x8b\x63\x20\xa0\xd5\x9e\xca\x3c\x09\xd2\xbe\x5b\x1d\x89\x25\x90\x7e\x2e\x84\xb0\x04\xee\x0a\x70\x9c\xae\xd5\x23\xc6\xde\xe5\x89\x91\x59\xa8\xac\x16\xe0\xcc\x32\xb2\x20\x21\x5f\x10\xba\xd2\xdc\x07\x0a\x23\x22\xcc\x35\xc7\xb9\xc1\x42\x0b\x44\x7d\x4a\x9f\x23\x81\x67\x7f\x76\x03\x5b\xeb\xad\xf9\xa2\xcf\xa5\xc0\xbe\x7b\x40\xeb\x9c\x96\x3f\xdc\x1e\xf9\x1e\x3e\xb5\x86\x5d\xce\x96\xb9\x80\x5b\xf6\xc6\x31\xa6\x61\xca\x04\xa5\xe0\xbc\xbb\x79\xf7\xe3\xf1\xdd\x94\x89\x22\x62\x69\x72\x2f\x66\x32\xd2\x0f\x70\xe9\xfb\xa5\x14\x85\xf9\xb9\xc3\x08\x94\x6c\x84\xd4\x20\x09\x92\xa2\xe7\x7d\xcd\x0e\x8c\xf9\xef\xbb\xea\xf7\x7d\x6e\xe5\x8e\xe5\xd3\xac\x5d\x9b\xcd\x10\x96\x29\x24\x6c\xc3\xa1\x6d\xb1\x6b\x7e\x87\x9e\xd6\xb3\xb6\x5c\xe7\x4f\x08\x86\x96\x7f\x2d\xe5\x40\xa5\xeb\xd4\x7f\x14\xb4\xa2\x43\xa7\xdb\x64\x1c\x32\x99\x0c\x8b\xb2\xc6\x6f\x5a\x4b\xdf\x27\x44\x3c\xe9\x8d\xf5\x9c\xfb\xb4\xf0\xac\xc8\x85\x00\x11\xe2\xd6\x13\x9d\xf5\xc4\xb3\xe6\x3a\x16\x7c\x34\x9e\xc9\x0f\x16\x4f\xe7\x7f\xd5\xde\xd7\xb0\x59\x04\x09\x5e\xaa\xa5\x40\xb1\x71\xa2\xdd\x0f\x90\xae\x4f\x97\x69\x81\xf9\x8a\x97\x89\xe4\xa9\x6b\x28\x3e\x69\x93\x12\x39\x97\xd1\xfa\x50\x07\x79\xb2\x9c\x8b\x74\x88\x26\x3a\x5d\x9e\xa5\xda\xac\xef\xe8\xbe\x63\x77\x3e\x25\x23\xb7\xef\x0c\x7a\x9c\x28\xab\x27\xf3\x0e\x76\x9e\x62\xbe\x60\xc1\x00\x81\x55\x8f\x8d\x47\xfa\x2f\x33\x8b\xa4\xa9\x23\x00\x0b\x83\x52\x5d\xc0\x19\xd4\xc2\x78\x31\x93\x79\x29\x21\x95\x98\xc3\x63\x72\xe6\xb3\xc1\x44\x16\x1d\x41\x58\x95\x95\x11\x13\x98\x6c\x05\x5f\x36\xf7\x33\x55\x6a\xf0\x47\x6d\x44\x61\x0e\xa8\xd7\x90\xe5\x1f\x01\xd1\x23\x96\xe5\xc9\x06\x5c\xca\xfa\x4d\xcb\xd4\x9d\xf2\x82\xa7\x6a\xf5\xdc\x56\xa5\x27\x06\xd7\xd8\x66\xb0\xe9\x3b\x33\xf8\x2b\x21\x45\x0e\x1d\x05\x5b\x76\xeb\x16\xee\x61\xe5\xee\x90\xdc\xe0\x49\x24\xe7\xaf\x76\x16\x0b\x5e\x16\x6a\x63\xee\xb7\x3c\x4d\xb7\x23\xf4\x3a\x0b\xb6\xe6\x7a\x6d\x27\x1a\x1d\x86\x7d\xce\x26\x1a\xdc\x53\x1e\xad\xc5\x4d\xc1\x8b\xb2\x15\x93\x55\x6b\xe5\x17\x42\x96\x9b\x2f\x4e\xd8\x9f\x7d\x1f\x4f\x27\xa7\x3f\x9c\xcd\xdf\x4d\x6f\x26\xdf\x9d\x9f\xbd\x0b\xfa\x43\x4f\x3e\x4c\x6f\x6e\x9a\xbf\xfe\x30\xbd\x6d\xfe\x78\x75\x79\x75\x77\x3e\xb9\x6d\x2b\xe5\xfc\xf2\xf2\xc7\xbb\xab\xf9\xfb\xc9\xf4\xfc\xee\xfa\xac\xe5\xd3\xbb\xdb\xee\x87\x37\x3f\x4e\xaf\xae\xce\x9c\x95\xfe\x2f\xc1\xee\x02\x0f\xb9\xe9\x68\x47\x37\xea\x1b\xf0\x88\x55\x5f\x3c\x61\x77\xf5\xc4\x56\x14\x69\x85\x2c\x61\x8f\x5c\x1b\x19\x06\x81\x7e\x60\x69\xf5\x83\xd2\xf5\x29\x82\x91\xa3\xb5\x60\xa9\x52\xf7\x65\x46\xa2\x0d\x8d\xea\x52\xa1\xe1\x47\xe8\xa0\xb4\x1f\xa6\xb7\x27\xcd\x04\x5b\xae\xb0\x80\x0f\xd5\xd9\x90\x1f\x39\x72\x03\x80\x38\x05\x5b\x8a\x4d\xbc\xe4\x3d\xd4\x41\x0d\x6e\x66\x76\xd5\x83\xa5\x71\x59\xd4\xaa\x89\x63\xcf\xa2\x04\x1d\x0b\x0a\xae\xce\xeb\xae\xd1\x74\xc3\x81\x99\x45\xd9\x42\x44\xbc\x44\xc8\xb6\x39\xa7\xf2\x5c\xe5\x61\x83\xfd\x7a\x78\xbe\x42\x69\x1d\xb5\x16\x58\x9b\x33\xd3\x71\x7d\x9f\x64\x99\x88\xbf\x68\xea\x2f\xd5\xdc\xff\x1a\x76\x9f\xa9\x33\xd8\x93\xe6\x5e\x0f\x77\x7e\x9b\x16\x6f\xbd\x75\x38\x21\x80\xa5\x7a\xa0\x2e\xa4\xe9\x30\x67\x82\x4b\x5b\x96\x00\xfc\x87\x17\xec\x51\x00\x61\x4c\x49\x79\x41\xf1\xee\x6d\xf6\x36\x54\x87\x7e\x7b\x9b\xe5\xb7\x42\x24\xd3\x29\x8c\x9f\x43\xe1\x36\xdf\x6b\x31\xcc\xd9\xb6\x97\xf5\xe3\x1d\x16\x0a\xd2\xd9\x22\xfa\xa1\xc5\xcf\xe9\x9c\x6b\x39\x91\xf6\x1c\x16\x46\x6c\xf7\x69\x8f\x65\x5a\xab\xa4\x2f\xe9\xdf\xb0\x4a\x8a\x8b\xbd\x63\x75\xab\x62\xbe\x35\x8b\x03\xc0\x09\xba\xcc\x32\x95\x17\xac\xa3\x0c\x04\x29\x62\xfb\xe0\xcc\xa1\x7e\x38\x19\x07\x85\x18\x0d\x43\xb7\x64\x4a\xeb\x47\xfe\x44\xe3\x1a\xf8\xb8\x82\xf0\x1f\xb8\x08\xba\xac\x96\x9b\xca\x95\xba\xb2\x42\xdb\x94\xdf\x43\xe2\x27\x33\x73\xc0\xf7\x4d\xb2\xdc\x56\xfb\xa5\x2d\xa1\x75\xca\x53\xb1\x2c\xe6\x03\x9d\x52\x50\xa2\xec\xe2\xeb\x4b\x56\xeb\x67\x28\xb1\xff\x2d\xe1\x2b\x82\x2d\x9b\xab\x41\x60\x21\xc8\x95\x2a\x50\x3f\xf5\x77\x18\x66\x47\x13\xcc\x0b\x54\x29\x45\xba\x3b\x25\xd0\xe8\xfc\x88\xf9\x72\x41\xe1\xe3\x99\x3c\x03\x78\xa8\xbf\x88\xd8\x00\x78\xb8\x05\xec\xd5\xff\x2b\x29\xe5\x3f\x6b\x2c\x4a\x37\x7f\xbf\x5f\xf7\x08\x2d\x14\xe9\xd6\xb1\x38\xc5\xac\xf2\x5d\x9f\xdd\x83\x56\x6f\xab\x02\x62\x87\x71\xeb\xe8\x42\x64\x64\x99\xc7\x7e\x7a\x1c\x33\x78\x85\x4d\x55\x63\xf6\xb3\xb5\xfc\x40\x58\x8f\x0b\x73\xb1\xc8\xd4\x94\x6f\x2d\xe5\x77\xdb\xc0\x3e\x07\x8b\xf6\x73\x07\xfa\xec\x1e\x60\x47\x97\xd9\x32\xca\x95\x0b\xb8\x94\x68\x91\x1d\x00\x17\x3a\x75\x1f\xdd\x88\xdd\xc8\xc7\xf7\x90\x64\x9d\x70\xe3\xa0\x74\xc8\x74\xfb\xcf\x38\x59\xc8\xb3\x61\xc1\x14\x94\xf4\x9a\x3c\xa8\x66\xff\x80\x07\x10\x69\x38\xd8\x32\x49\x53\xd0\x03\xc6\x6c\x22\xb7\x96\xa6\xc2\x1c\x85\x16\x44\x9a\xac\xa4\xda\x17\x41\xdf\xb1\x98\xa2\x60\x31\xdd\x74\x2f\x26\xc4\x69\x78\x96\xa2\xe7\x59\x51\xcf\xc0\x58\x67\x64\x0b\x6f\xe6\x3b\xe9\xcf\x53\x37\xe0\xf2\x1e\x9e\xe6\x9f\x2b\xf6\xab\xd1\xdc\xe0\xc3\xbf\xb7\x37\xfd\xfb\x92\xe7\x5c\x16\x10\xd1\x44\xaa\x7b\x2e\x82\xc0\x6a\xf1\x09\x30\xa8\x12\x0d\xc1\xf0\x53\x38\xb9\xd6\xe5\x8f\x30\xb1\x24\x1e\xb1\x64\x2c\xc6\x90\x7b\x37\x37\xba\xc4\xc2\xbf\xb9\x36\x9a\xc3\x4c\x36\x22\x35\xc6\x6c\x92\x6a\x45\x5f\x08\x19\xa5\x4a\x03\x04\x77\x11\xd2\xa2\xc3\xca\x27\xb7\xd2\x62\x0b\x17\x14\x98\x4a\x5f\xbc\xa2\x07\xc1\x87\x90\x42\x16\x7c\xe2\x29\xec\x74\xff\xfb\xbf\x2a\x22\x78\xed\xc2\x49\xbc\x60\xb2\xae\xc6\x31\xf4\x62\x93\x84\x89\xa0\x77\x4d\x10\xbc\x01\x13\xe3\x23\x68\x02\x7e\x39\xf6\x9a\x17\x2c\x15\x5c\x17\xec\xed\x9b\x41\xd8\x10\xdb\x41\x2f\x5d\x69\xfb\xfa\x30\x78\x1b\x48\x19\x2a\x77\xae\x62\xc8\x0c\xcc\xf3\x82\x71\x26\xc5\x63\x18\x37\xa3\x20\xd4\xc9\xa6\xfb\x15\x01\x73\x07\x62\xe6\x91\x77\x08\x62\x51\xf1\xca\xd4\x21\x47\x6c\x32\x0b\x72\x9f\x52\xb3\x5a\x56\xd6\xc8\xa1\xcf\x00\x6e\x6e\x5e\xf2\x21\x8d\x6b\x5e\xcc\x24\x49\x56\x0b\x1b\x09\x82\xd8\x27\x69\x5a\x0d\x23\xe4\x10\x29\x2b\x4d\x87\x4d\xeb\xe3\xb1\x1b\xa0\x0b\xb8\x7e\xb9\x58\xae\x8a\x9d\xce\x6f\x16\x8c\x39\x70\x6c\x8e\x61\xd9\xad\xda\x4e\x9b\x7d\xf9\x33\x2a\xc1\x2d\xd5\x9f\xab\x55\x12\xf1\xb4\x87\x32\x2c\xda\x9a\xbc\x67\x63\x35\x6d\xfa\x3b\x74\xe3\xe7\xae\xa0\xbf\xaa\xdc\x6e\x1f\x87\x63\xf6\x51\xb5\x98\xdb\x3b\x26\x37\xd0\x2d\x0e\xb9\x80\xbb\xa0\xc2\xcf\xe5\xf1\xad\x34\x7d\x1a\x03\xa5\xc1\x7e\x29\xe8\x29\x02\xac\xe8\xc0\xc8\xb2\x38\x88\x58\x0e\x02\x24\x09\xec\x89\x82\x8f\xde\xec\xf0\xbc\x66\xff\xbd\xbb\x3f\xf2\xfd\xb7\x5d\x71\x20\xb8\x66\xc7\xbb\x95\xbd\x49\xfc\x57\x1e\x41\x1c\x23\xd4\x64\x23\x28\x9b\x74\x93\x36\x49\x09\x07\x63\x7e\xab\x7a\x98\xe5\x2a\x12\x5a\x8f\xd9\x19\x1c\x34\xf4\x27\xe3\x4b\xeb\x90\x08\x5e\x9e\x49\x73\x33\xb1\xec\x74\x41\xf9\xd5\x25\xde\xb6\x03\x90\xea\xf6\x20\x5f\xce\x66\x7f\x06\xba\xae\xdb\x84\x65\xda\x85\x32\x20\x69\x15\x3b\x5b\x9d\xb0\x58\x45\xf7\x22\x3f\xce\x45\x9c\xe8\x13\xf0\xad\x17\x9d\x4e\xbd\x8d\xb9\x6d\x1f\xac\x69\x74\x01\x05\xf6\x84\xfc\x9f\x62\xfd\x04\xfd\xb7\x21\x44\x23\x96\x2c\xe1\x3a\x61\x23\x4e\x31\xd0\xca\x92\xf9\x09\x59\xe4\x5b\x44\x25\x5b\x53\x56\x6d\x20\xec\x4d\xc3\x28\x6d\x5d\xb1\xd2\xf9\x73\x60\x70\x9e\xd8\x6d\x8c\xcc\x21\xc0\x01\x76\xaa\x50\x14\xaf\x85\xe2\x22\xe3\xc5\x5a\x03\x31\x47\x75\x0c\xe8\xd2\x05\x9f\x9a\x11\xe2\x19\xe0\x15\xd0\x4a\xe1\x3f\x72\xf4\x11\xba\x48\xd2\x74\x26\x31\xc0\x02\x38\x34\x5e\xb5\xf2\xff\x98\x4f\x47\x8c\xc7\x31\xfb\xff\x5e\xbf\x3f\xff\x8f\xdb\xb3\xf9\xf4\x02\x8c\xd6\xd3\xf3\xb3\x37\x23\xf7\xe3\xe5\xdd\xad\xfb\x15\x2d\x2c\x0f\x22\x67\x1b\x7e\x0f\x57\x3c\xa9\x05\x85\x86\x8a\x99\x0c\x5b\x6a\x99\x91\xcc\x13\x2d\x2c\xd2\x95\xd4\x14\x47\x10\x4d\x73\xd8\x45\xab\x4a\x84\x99\x03\x2e\xbf\xd7\xee\x93\xdd\x6b\xd0\x2e\x1e\x57\x85\x55\x03\x21\x02\x98\xeb\x80\x2a\x87\xee\xbe\x7e\xc1\x09\xb9\x4a\x64\x17\x1e\x4f\xc8\x87\x97\x54\xe2\x7f\x14\x5b\x00\x84\x5f\xf1\x24\xef\xbd\xf6\xda\xb9\x0e\xed\x8e\x31\xf7\x74\xae\xeb\x9b\x4a\xa3\x2e\x8c\xb1\xc4\x9d\x98\xcf\x36\x9a\xdb\x5f\xbd\xbb\x44\x9e\x29\x3e\x15\xb9\xe5\xe0\x72\x31\xab\x96\xa8\xd2\x1d\x34\x7e\x0d\xce\xe4\xed\xe5\xbb\xcb\x13\x26\x52\xbe\x50\x10\xae\x48\x90\x20\x5b\x04\x0d\x58\xa4\x36\x41\x41\x15\xfe\xb5\x11\xcb\x3c\xff\x5a\x68\x44\x1b\x63\x19\x7b\x78\xd8\x32\x95\x37\xd9\xcb\x9e\xf7\x0a\x48\x9d\xbd\x52\x79\x9f\xe3\xdf\xbc\x86\xf1\x1b\x99\xb9\xc8\xd5\x24\x2f\x9d\xcd\x4b\xc1\x81\x9b\x83\xdc\x42\x64\xcb\x27\x00\x6b\x9a\x56\xb2\x65\x9b\x8d\xa3\xc7\xe4\x82\xf7\x6f\x2a\xc9\x7e\xfc\x46\xb3\x45\x59\xcc\x64\xb5\x0c\x25\xd9\xe4\xe7\x1b\xf6\x1d\x2f\xa2\xf5\x9b\x99\x84\xf8\xc1\x1f\xbf\xe9\x20\x8a\x1c\xcc\xbd\x6c\xc6\xe4\x1d\x2f\xf8\xb9\xe2\x71\x22\x57\x6d\xc4\xcb\x3e\x3b\xe0\xd9\xed\xe4\x84\xd9\x24\x2d\x3e\xda\xb5\xb0\x84\x27\x41\x41\x20\x90\xa1\x23\x56\x8a\x80\x28\x97\x55\x72\x5a\xbc\x99\xc1\x81\x35\x93\xb7\xc8\x38\x6d\xa4\x6a\x52\xb0\x4c\x51\x86\x4a\x73\x2b\x43\x2e\x6e\x6e\xa3\xc0\x45\xba\x65\x66\x74\x60\x19\xbb\xc9\x20\x7d\x0c\xf4\x99\xa6\xb0\x9f\x49\xb8\xa0\xbb\xf8\xdb\x54\x45\x3c\x05\x4c\xde\x51\x60\xd3\x33\xd7\x76\x55\x02\xfb\x0d\x80\x61\xe4\xb6\x0a\x9d\x75\x84\x4c\x4e\x29\x0b\x27\x0a\x0c\x00\x30\x8f\xe4\x8d\xdd\x28\x23\x71\x90\x69\x16\x8c\x6f\x29\x8e\x8e\xf9\xd0\x31\xcf\xe2\xb0\x98\xa7\x2e\x34\x5d\x95\xd2\x32\xad\x45\x60\xbe\x97\x5b\x80\x6f\x43\x4a\x39\x05\xd0\x0f\x2f\x9d\x69\x51\x36\x66\xd1\x9d\x89\xc1\x67\x33\x89\x48\xc1\xca\xbc\x84\xdc\x84\x41\xed\x4a\x02\x90\xb1\x19\x0f\x5f\x66\x04\x6c\x24\x5d\x3f\xcb\xc5\x91\x8b\xf2\x8e\x2b\x63\x6a\x4e\xd8\x31\xbb\x0e\xaf\xd7\xb1\x8a\xca\x8d\xcd\x1b\x01\x11\xe2\x84\x80\xa3\x43\xd4\xad\x10\x3c\xd8\xf7\xad\x78\xe0\xa0\x2b\x04\x90\xe3\xf4\xbe\x1f\xe3\x82\x99\x84\x9f\x36\x35\xf5\x6e\xc5\x17\x64\xc7\x61\xa8\x35\x2c\x68\x9e\x55\x4b\xaa\x94\x76\x30\xf7\xc2\x85\xe7\xb6\x57\x39\x28\x5b\xe2\x53\xa6\xc0\xc8\x8d\x01\xd0\x2a\x7e\xa5\xd9\xf4\xca\x68\x40\xe6\xc6\xeb\xf6\x60\xa9\x0b\x04\x97\x61\x9c\x32\x7c\x8d\xe1\x02\x23\xf6\x25\x9b\x95\x5f\x7e\xf9\x75\xc4\x3e\xd9\x7f\xfc\xfe\x77\xbf\xfb\xfa\xf7\x43\xc2\x49\xec\x85\x1c\xca\xf5\x63\xe4\x92\x85\x56\x55\xa2\x70\x06\x9a\x92\xea\x80\x59\xa0\x0d\xd8\x35\xfc\x4f\xe1\xb0\x0e\xb0\x43\x7c\x45\x3b\x5c\x87\x3b\x93\x55\xb6\xa6\x47\x12\x68\x51\x8c\xaa\x12\xc2\x29\xbb\xa4\xd1\xff\xf3\x0e\x2a\xd6\xb9\xd9\x2a\x4f\xc3\x38\x25\xa9\x53\xaf\x4d\x21\xec\x35\xd9\xff\x0a\x70\x20\xbe\xb1\x07\x9c\x4a\x63\x91\x63\x9b\x9c\xc9\xce\x19\x12\x41\x38\x88\x4f\x59\xaa\x62\x4b\xfe\xee\xf9\x0e\x12\x50\x10\xce\x3e\x71\x23\xb9\x47\x44\x12\x4a\xf1\xa5\xe0\x79\x59\xf2\x48\x50\x2c\xf4\xeb\x4f\x27\xe6\xb7\x11\xdb\x9e\x00\x88\x74\xc4\xfe\x76\x42\x5c\x80\x3c\x2f\xe6\xe6\xa7\x37\x56\xd7\xa6\x22\xa0\xd1\x89\x66\xaf\x8e\x1f\x78\x7e\x0c\xe2\xf9\x18\x5b\xf4\x8a\x24\xab\xcb\x7a\x1c\xea\xe6\xa9\x52\xf7\x04\xb0\x6d\x7c\x78\x6c\x69\x65\x61\x79\x3b\xbf\x09\x4e\xbd\xa3\x1d\x2a\xd8\x11\xbc\x20\xd8\x38\x5b\xb0\xf1\x5f\xb5\x92\x6c\xbc\xe5\x9b\x94\x7e\xb5\x4f\x09\xff\xcb\x35\xc5\xc4\xc5\x0e\xe4\x93\x6e\xd1\x52\xfa\x5d\xaa\x16\xd0\xab\x0f\xb6\xa7\x88\xa0\x85\x86\xfa\xd3\xc7\x1f\x58\xd4\x11\x4b\xb6\x01\xec\x88\x1b\x55\xe0\x2b\x14\xde\xda\xec\xd5\x27\xd7\xa4\x3f\xa1\x5f\x18\x06\xc5\x06\xf1\xa1\x71\xd8\xa1\xd7\x4c\xa1\x9f\xd8\x6b\x12\x41\x6f\xcc\x19\x43\x70\x65\x1c\x86\xb6\x0a\xb6\xae\x82\xff\x08\x2a\x48\x24\xc3\xb0\xcc\x1d\x5f\xfe\xed\x78\x3c\x1e\xbb\xaf\x81\x93\xe7\xff\xb0\xa4\xd0\x22\x5d\x62\x49\xf6\x04\xdb\xce\xe4\x07\x9b\x56\xca\x1a\xaf\x3d\x61\x75\x96\xab\x42\x45\x2a\x65\x47\xde\xa0\x1b\xab\x48\xb3\x7f\x31\x6a\x6d\x30\x94\xf0\xa3\xb9\xc7\x75\x90\xdc\x63\x1e\x8b\xcf\xb4\xa9\xc8\x20\x5e\xdf\x56\x21\x47\xad\xbb\xd8\x72\x1d\x06\x23\xc3\x5a\x30\x2b\xe7\x98\x78\x6c\xf3\xdc\xbc\x2c\x3e\x15\xf0\xa8\x83\x26\xb8\x15\xca\xde\x7e\x52\x36\xc4\xad\x67\x0b\xc6\x65\xdd\x31\x00\xc4\xe6\x49\x92\x01\xfb\x39\x0a\xdd\x27\xe6\x70\x91\x61\xa2\x23\x5d\x6e\x36\x3c\xdf\x1e\xfb\xdd\xd6\x5c\x9c\x9e\x47\x16\x64\x4c\x6a\x07\x00\x5c\xb8\x29\x6d\x2d\x42\x31\x90\x7a\x69\x4f\x34\xb7\x77\x23\xc8\x54\x1d\xb0\x32\x09\x19\xa9\x98\xd6\xb5\x8f\x3e\xad\x6a\x2c\xee\x9d\xa6\xae\x62\x11\x31\xda\x1b\xe3\x64\x81\x04\x65\xf4\x86\xfd\xb8\x43\x7c\xab\xb9\x2e\x8c\xa0\x5c\x0d\x70\x8f\x4e\x2f\x6f\xec\x37\xfd\x0f\x5d\x18\x87\xaa\xca\xce\xd3\x90\xfd\x57\xae\x58\xce\x1f\xfd\xf1\x0b\xd8\x0e\xb4\xce\x94\x2e\x36\x17\xff\x3e\x55\x57\x49\x6a\x4e\x2d\x58\xe3\xe3\x99\xac\xfc\x3c\x62\x22\x4d\x36\x89\x74\xd8\x3a\x14\xee\x6a\x89\xda\xf3\x7d\x52\x98\x29\xd3\xf1\xbd\x91\x60\x96\xb5\x32\xb8\x52\x4d\xe4\xd6\x2e\x1d\xe7\x98\x22\x0b\x44\xa9\x4d\xbb\xfc\x1d\x1d\xa2\xf6\x93\x58\x1c\x91\x42\x9a\x04\x0b\x0f\xf6\xef\x4c\x9a\xd2\xec\x5e\xf2\x70\xe1\xa0\xbc\xa0\xb8\x23\x9b\xee\x27\x90\x00\x50\x47\x05\xf3\xeb\xf4\xdf\x16\x05\xe5\x4c\x96\x9b\x43\x83\x4d\x08\x3e\xfc\x6b\x99\xe9\xae\x72\x61\x4f\x2a\x0a\x5c\x12\xb2\xdc\xd8\x0d\x35\x60\xc5\x9d\x91\xfa\x13\x8b\x28\xe5\xc8\xc3\x67\x0a\x02\xe4\xe3\x08\x1d\xa4\x59\x50\x17\x1e\x2f\x58\x0d\x66\x10\x4c\x85\x7c\x8d\x7f\xbf\x61\x74\x36\x7c\x39\xa2\xf3\x3c\xd7\x8e\xe5\x0c\xe7\x1c\x32\x70\x8b\x18\x6d\xe8\x90\x73\x61\xc5\xf3\x18\xad\xe5\xe1\xad\x02\x23\x78\x8d\xfe\xb5\x55\x25\x7b\x4c\xf4\x7a\x26\x6f\x95\x35\x38\x32\xa9\x5c\xd6\x8a\x11\x5c\x46\x1b\xf5\x71\x0d\x42\x00\x5a\xdd\xb6\x02\x8c\x10\x3e\x28\xd6\x08\x50\xb0\x73\xa9\x62\x71\x18\x3d\xe3\xad\xf7\x55\x58\xff\x75\x2e\x30\x1e\x0c\x4e\x8a\xae\x70\x5a\xa1\xf5\x40\xdb\x7c\x7d\xe2\xe1\x1c\xa2\x72\x4c\xad\xea\x71\x50\xee\x90\x90\xf9\xd4\x9d\x6a\x50\x8a\xbd\x71\x06\xd1\xc0\x95\xb1\x77\xb9\x20\x0e\x9d\x84\xa8\x85\x8b\xb1\xd7\xd9\x8f\x7d\x8f\x60\xd8\x1d\xc0\x98\xb3\x55\xae\xca\xcc\x85\xcc\xdb\x70\x3f\x9c\x06\xd2\x69\xa6\x72\xa9\x4e\xe8\x4e\x75\x9e\xc8\x7b\x5c\xf1\x2f\x35\x47\x98\xee\x43\xc4\x15\x92\x5a\x9b\x83\x1f\xfa\x70\xc4\x12\x19\xa5\x25\x1c\x7c\xba\xe0\xd1\x3d\xa6\x2c\xe9\x32\xfa\x9a\x6f\xe6\xfb\x83\x29\x3b\x34\xa6\x32\x4d\xa9\x5a\x7f\x80\x02\x19\x1c\x98\x80\x1e\x12\xce\x38\xbb\xbb\x9e\xb6\xd7\x7d\x9f\x34\x9d\x39\xed\xa7\x67\x75\x81\xc0\xff\xfd\x98\x0c\xc2\x5d\xd6\x48\x7f\x45\x65\xa9\x3b\xe3\x52\x17\xa5\x3c\x2e\xd2\xc2\x5c\x20\xe2\xeb\x16\xd3\xfe\xe0\x75\xba\xca\xca\xb9\x19\xa8\x74\x08\x40\xc0\xb4\xe2\xfb\xab\xbb\x49\xf0\xdd\xae\xa5\xf2\xfd\xd5\x1d\x0b\xea\x40\x3a\xe7\x54\x44\x85\x43\x1a\x8f\xd9\xa9\xcf\xb2\x50\xd7\xcc\x63\xf1\x90\x44\x18\xe2\x3a\x32\x5a\xd1\x4c\x02\x79\xb9\xb9\xeb\x1c\x59\xde\x4b\xf6\xfd\xd5\x1d\xb1\x65\x7a\x7e\x1b\x4c\x18\x01\x14\x16\xc3\x8e\x9d\x1a\x6d\xb8\x54\xf2\x08\xa9\x7d\xf2\xd8\x7b\x3b\x46\x70\xb9\x8e\x78\x56\x94\xa4\x60\x3c\xbc\x1d\xdb\x39\xb9\xf6\x9e\x10\xd3\x2c\x35\x93\x46\x57\xc2\x28\x03\xc8\x6d\x66\x3a\xdd\x9c\xda\xda\xa0\x1e\x02\x0e\x80\x41\x3b\x48\xf8\x27\x2e\xc2\x8f\xcb\x2d\xe3\xf9\x22\x29\x72\x73\x0d\xc3\x8f\x47\xc8\x44\xb6\xb6\xf9\xab\x70\xde\xbc\x66\x44\xe9\xe8\x60\x82\x13\x59\xe8\x99\x0c\x22\x58\x5c\x54\x30\x06\x2f\x24\x92\x01\xd9\x2f\x60\x6f\x2c\x05\x69\x94\xaa\x32\xb6\xc7\x6a\xee\xd2\xdb\x6d\x33\x54\xa2\x66\x12\x98\x49\xcc\xd9\xaa\x8c\x1a\xea\xcf\xfe\x13\xf6\x51\x3e\x24\x71\xc2\x8f\x0a\xa1\x53\x7e\x54\xfc\xef\x8f\xa3\xda\x4f\xfc\xed\x97\x5f\x7e\xc4\x4c\x7d\x5d\xb4\x0b\x01\xbb\xd2\x81\x06\x9e\x76\x3f\x85\xe3\x29\x34\xab\xf4\x80\x79\x3a\x4f\xee\x05\xfb\x88\xd3\xfd\x91\xe8\x89\x9f\x36\x6d\x33\xd9\x36\x6f\xec\x29\xd3\x06\x64\xf1\xed\xf3\xc6\x76\x4c\xdb\xdb\xd5\xf8\x77\xab\x85\x99\xad\xaf\x56\xe3\xb7\x5f\xc2\x3f\x6b\x73\xb4\x6f\xf3\xba\xe8\x99\xb6\x66\xb7\x08\xa2\x96\x6d\xe9\x64\xd1\x4c\xee\x17\x46\x6c\x98\x2c\x82\x55\xdb\xb6\xf1\x79\x21\x0e\x8d\x6e\x45\xd6\xea\x01\xe8\xeb\x06\x1d\xf8\x4e\x8f\xe0\x81\x5c\xda\x9e\x07\x1b\xe0\x9e\xdd\xa4\xde\x21\x00\x17\x1e\x0e\xe0\xe3\x81\xf7\xfb\xf5\xa7\xf6\xee\x9e\xee\xec\x6e\x66\x2a\xc4\x00\x06\x99\x1b\xf3\x7a\xcf\x46\x56\x5e\xdd\xd5\xc6\x47\x8e\xf9\x02\x9b\x69\x6a\x62\xba\xad\x0f\xd9\x45\x76\x39\xa2\xc9\x44\xbb\xb8\x3f\xd7\x12\x0b\xad\x74\xf7\x6b\x5b\xef\x8a\xf6\x52\x98\x8e\xd0\x79\xdd\x5a\x16\x7e\x60\x8a\x38\x10\x0a\x67\xae\xd4\xf3\x4d\x6f\x0a\x74\x5f\xf1\x3b\xfa\xf8\x43\x83\x10\xdd\xa9\x97\x1f\x20\x32\xdb\x91\x61\x6d\xb8\x34\xda\x9a\xad\xb5\xc3\xb1\x84\xb7\xfc\x27\x35\xe9\x2e\x7b\x52\x83\xb0\xc6\x9e\x99\xfa\xa9\x2a\x5b\xca\x23\xfa\x56\x79\x8a\xbe\x83\x62\x0d\x66\x65\x9f\xe1\xd6\x8a\x39\x6f\x5e\xc6\x6c\xb8\x29\xcf\x57\x68\xf4\xd2\xa2\xd0\x6f\x5a\x66\xd8\xc7\xb1\x1d\x30\xc3\x56\xed\x9a\x0f\xe3\xf9\xb0\xfa\x18\x98\x54\x76\xed\x34\xd7\xca\x6a\x3a\x0c\x77\xd3\xb2\xf5\x87\x5c\xef\x3e\xb8\x2e\x52\x39\xe6\x8e\x02\x3e\xd6\x6e\x1e\xac\x03\xe9\x60\x2f\xf8\xc6\xb1\xbc\x50\x69\x36\x66\x17\x1b\xb7\x10\x90\xc9\xa5\xbb\x0d\xbd\xb8\x5e\xfb\x36\x81\x18\x69\xbb\x5a\x30\x93\x13\xfb\x8a\x67\xa5\xd6\x09\x5a\x59\x30\x1c\xb1\x5c\x60\x84\x0b\xd8\xcc\xb8\x1f\x75\xea\x5c\x47\x27\x86\x06\xe4\xd7\xba\x70\xa7\x45\xee\x4f\x23\xcf\x5a\x1a\xf6\xa3\xa3\xe6\x7e\xac\xc5\x3b\x25\xba\xed\x22\x15\x65\xc7\x72\x4f\xc5\x2a\xdf\xc7\x00\xb9\xab\x52\x8b\xb8\x30\xbb\x78\x05\xfc\x63\x41\xa2\xe5\xae\xda\xfb\x5f\x93\xa8\x1b\x44\x97\x8d\x18\x0a\x88\x4a\x48\xb7\x7e\x93\x78\x6a\xf5\x5a\x65\x4d\x59\x51\x1c\x74\x16\x24\x7c\x33\xcf\x55\x77\xfa\xe7\x1e\xe3\x65\x8b\xa8\x78\x0c\xd6\x98\x0e\x72\xcb\x7e\x29\x79\x8a\x47\xab\xa4\xcd\x60\x9b\x0d\xc6\x97\xaf\x7e\xcf\x26\x70\xf6\xb1\x0f\x20\x95\x01\x32\x06\xa5\x15\x8a\x25\x9b\x4c\xe4\x5a\x49\xde\x99\x07\xfd\xfe\x1b\x3d\xa7\x5c\xae\xe6\x62\xae\xca\x66\xde\xd6\x01\x3d\x69\x29\x2d\xec\x14\x67\xf7\xe5\x42\xe4\x52\x60\xae\x77\x78\x8f\xd9\xf7\x7a\x35\x57\xf1\xb2\x58\x7f\x35\x8f\xd2\xa4\x77\x82\x59\x88\x57\x9d\x98\xcf\x4e\xf1\xab\x5d\x1d\xa8\x94\x5f\x69\xba\x64\xf8\x8c\xe1\xb3\x31\xfb\x8e\x47\xf7\x42\xc6\x2c\x4b\xcb\x55\x42\xf4\x34\x78\xd9\x48\xaa\x66\x85\x6a\xc7\x50\xb3\xc1\xf2\xcd\x21\x38\x93\x1b\x7e\x8f\x49\x5f\x48\x85\x35\xf7\x96\x2e\x72\x43\x67\xa8\x99\x27\xcd\xb5\xbb\x77\xb6\xdc\x69\xdc\x2c\xa6\xbe\xf6\x74\x89\xd1\x7a\x8f\x6b\x45\x18\xa7\x8a\x9d\x68\xc0\xc6\x75\xab\xb5\xc1\x22\x66\x99\x5e\x5c\xd6\x7f\x6a\x0c\xee\x5e\x70\x20\x42\xe2\xa2\x52\x32\x0e\x44\x64\xaf\x34\x2b\x33\x2b\x44\xc0\xb3\x95\x02\xce\x08\xa7\xc0\x3c\xc8\x92\xe8\x1e\x91\xad\x10\xbb\xc1\x5c\xf7\x1a\xc9\xa1\x99\xf0\x10\xcb\x36\xd1\xb0\x44\x1a\x9e\xc3\x50\x33\x8d\xbc\x47\x7b\xd6\x69\xcf\xb8\x94\x62\x2d\xe4\xfc\x09\xe9\x77\xfa\x4f\x5a\x25\x06\x85\x94\x70\xe7\x21\x74\x43\x58\xca\x84\x48\xb7\xfd\x0d\xdf\x65\x98\x48\x96\x35\x25\x3e\xd1\x4c\xf3\x22\xd1\x46\x96\xb5\x8e\xb8\x27\x3f\x3a\x64\xd4\xf9\x30\xc6\xa5\x16\xb6\xa5\xda\x58\xb8\x38\xb7\x31\x7b\x0f\x7e\x95\xe0\x5e\xa2\x1c\x77\x51\x97\xc0\x2a\xd6\xa2\x93\xc4\xf7\x39\x00\xa2\xb6\x07\xc1\xfb\x3b\xdd\x65\x2e\xa6\x71\xcc\x26\xde\x9f\x8d\xec\x4d\xe8\xa9\xde\xd3\x23\x91\x6a\xf1\x94\xc5\xd7\xcb\xf5\x03\x98\x2f\x58\x40\x0c\xf4\x38\x6d\x7e\xf7\x6c\xee\xae\x99\x8f\x40\x1b\xc0\xef\x85\xdc\x65\xdf\xef\xdf\x42\x74\xc0\xec\x34\x48\x38\xcf\x8e\x42\xe7\xce\x53\x1a\xd8\x7f\xdb\x79\xc2\xac\x64\x79\x6c\x86\xdc\x5c\x82\xa2\x7b\x0a\x56\x44\xff\x1e\x51\x6e\x3d\xae\x95\x0e\xf7\x99\x9d\x3f\xbc\x47\xe7\xa5\xcb\xaa\x05\xc1\x9e\x6e\x80\x11\xe5\x29\x55\xc8\xc8\x05\xad\x76\x9b\x14\x8d\x4a\x6e\xbe\x99\x15\xa1\x30\x0c\x80\x8b\xb0\x45\xb5\xec\x66\x99\x95\xcf\x95\xbb\x65\x3f\x0d\x76\x73\x84\x1b\x0d\xfa\xf1\x1b\x7d\x09\xf5\x3d\x07\x19\x0d\x5a\x19\x9f\x3f\x10\xec\x89\x2e\x70\x07\x71\xb6\xd6\x4f\x05\x41\x22\x74\x50\x66\x2a\x66\x7e\xbd\x77\x45\xda\x48\xa9\x10\xe2\xfa\x1b\xec\x56\xd0\xb8\xde\x7d\xdb\xb7\xd5\x3e\x04\x38\x39\xb6\x28\x93\x34\x46\x36\xc1\x40\x43\x55\x56\x05\x82\x34\x46\xa0\x8f\x24\xda\x1d\x70\x2d\x8b\xfe\xc7\x6f\xf4\x95\x8a\x0f\x59\x58\xc3\x19\x63\x9b\xeb\xba\x47\x18\x8d\x0e\xb1\x4c\x9b\xfd\x23\x91\xa9\xee\x00\x88\x78\xae\xab\x19\x7b\x77\x34\x18\x10\x6f\x8b\x72\x79\x03\xe9\x41\xbb\x48\x99\x82\xcc\x79\x36\xca\xda\xcc\xb3\xa9\xc6\xc5\xfc\x75\x4d\x0a\x01\xa8\xbc\x3e\xc2\xd9\x1f\x6e\x2e\x2f\x8e\x36\x3c\xd7\x6b\x0e\xa4\x17\xb6\xac\x91\xcd\xb8\x8e\xd6\x02\x0b\xec\x48\xe4\x4c\x1e\xb1\x95\x1a\x21\x8c\xe8\x84\xad\x8b\x22\xd3\x27\xc7\xc7\xab\xa4\x58\x97\x8b\x71\xa4\x36\xc7\x7e\x68\x8e\x79\x96\x1c\x2f\x52\xb5\x38\xce\x05\x04\x92\x1c\xbd\x1d\x7f\xf5\x16\x66\xe6\xf8\xe1\xed\x31\x80\x47\xc6\x2b\xf5\x2f\xe7\x5f\xfd\xdb\xd7\xbf\x37\x05\x67\xdb\x62\xad\xe4\x09\x61\x94\x76\x96\x7d\x84\xd7\x84\x63\xfc\xa4\x56\xcb\xbf\x8d\xbf\x0c\x9b\x41\xaf\x6e\x54\x2c\x52\x7d\xfc\xf0\x76\x6e\x27\x66\x9c\x75\x64\xb6\xf8\x47\xe8\xc5\x67\x08\xbd\xb8\x4f\x8a\x7f\x84\x5e\xfc\xaa\xa1\x17\xfd\x55\x2e\x27\x63\x80\xcb\xda\xcb\x47\xf3\xbb\x93\x91\xd6\x13\xb1\x4f\x0e\xb5\x1c\x0e\x61\x60\xdc\x01\x47\xc4\xc0\x44\x73\xb5\xee\xba\xbb\x4c\x87\xc5\x71\x68\x3e\x99\xce\xdb\xc5\x20\x1e\x10\x00\x3a\x26\x11\xd8\x0a\xd1\x42\x9a\xf1\xa4\x2d\xa0\x22\xc8\xaf\x73\xc0\x10\x62\xbe\x8f\x76\xd2\xb3\x3e\x69\xb1\x28\x33\x94\x88\xe7\xcf\x92\x20\xab\xb5\x0e\xc4\x84\x0e\x2e\xbf\xa1\x77\xf7\x50\x8d\x09\x25\x7d\xd0\x88\xbe\x60\x2a\x93\xe7\xce\x61\x42\xdd\x7d\x62\xfe\x92\x14\xbf\xb6\x98\x6e\xf5\x68\xf3\x96\x3c\x47\xb6\x0f\x8f\x57\xef\x97\xe9\x03\x17\x29\xb4\xc5\xb6\xab\xa3\x19\x6b\xae\x9f\x16\x1c\x30\x41\xaa\x60\xe7\x0b\x46\x64\x75\xa2\x6d\x85\xf6\x34\xb6\xec\x4b\xe6\x70\xb7\x24\x8f\x59\x99\x67\x4a\x0b\x3d\x66\xef\x55\x8e\xb4\x5e\xc4\xb9\xe3\x03\x1e\xae\xdf\x9f\xb2\xb7\xdf\xfc\xdb\xd7\x33\xf9\xba\x45\x19\x82\x43\x54\xe5\x2b\x8a\xbf\x00\x15\x68\xc3\x75\x21\xf2\xe3\x7c\x19\x1d\xe3\xd1\x71\x6c\xbe\x3f\xa2\x4a\x8f\xd4\xf2\xc8\xa5\x32\x38\x22\x56\xf7\xf1\x26\x7e\xd3\x85\x4c\x6c\x57\xb8\x7f\xb5\x4b\xcf\xa4\x43\x31\x6f\x9b\xdf\xfd\x82\xb5\xb2\x85\x50\x11\x21\x2d\x44\x83\xc6\x82\x54\x8c\x6a\xe9\x92\xef\x60\x9c\x2f\xe6\xe9\x52\xcb\x96\x7f\x7c\x97\xaa\x85\x7e\xe3\x08\x60\xb9\xb6\x75\x78\x46\xc6\x36\xb9\xdd\xd8\x73\x87\xdc\xbe\x69\x28\x5e\xd2\xac\x66\x65\x62\x38\x6d\x43\x06\xbe\x5d\x68\x78\x5d\x10\xf9\xa8\x78\xae\x4a\x69\xb3\x5b\x28\x29\xd4\x12\x60\x4e\x70\x4d\xb2\x28\x4d\xf0\x2c\x00\xf6\xcf\x71\x4f\xe5\x22\x43\xed\x03\x7c\x60\xdd\xc3\x7d\x60\x86\x97\x7d\xe3\xfc\x12\x19\x5e\x0e\x1d\x77\x12\x8c\xbf\xd2\x80\x1f\x1a\x4a\x81\x5b\x69\x08\x02\xc9\xbc\xbf\x17\x6d\xe0\xe4\x80\xcf\x30\xed\x93\x29\x64\x3c\x07\x0d\x5e\x1c\x15\xea\x08\x48\xfb\x80\x0a\x0e\x73\x2e\x75\x41\x90\x00\xa5\x31\xe4\xb8\x37\xef\xf7\x68\x27\xde\xda\x3e\x05\x0d\x25\x85\x55\x23\x85\x39\x41\xd2\x13\x29\x45\x4e\x1e\xe0\xbd\x9a\xc1\x40\x0c\x47\x38\x95\xbb\x11\xe9\xde\x4c\x11\xe6\xc3\x71\xf1\x88\x3c\x10\x02\x63\x06\x57\x93\xb5\xda\x28\xa3\xeb\xaa\x52\x07\x0f\xf1\x6a\x0b\xca\x44\xa7\x62\xbe\xe1\x19\xea\xab\xbf\x5e\x6f\xcc\xd6\x32\x8f\xd0\x04\x1d\xbe\x34\x28\xc5\xd8\xa2\x9a\x54\x69\x4f\xfb\x5d\x36\x9c\xdd\xeb\x06\x10\x42\x1b\x70\xf9\xad\xf9\x83\xb0\x39\x2e\x92\xbf\x99\x4b\xaf\x59\x52\xee\x1a\xe9\x34\x10\x04\xb4\x21\x17\x75\x08\xdf\xb4\xa7\x6e\x27\x5b\x4c\xb9\x19\x38\x07\x2e\xc8\xaa\xcf\x04\x70\x89\x61\x47\x36\xde\xe8\xa8\x35\xe0\xa8\x6b\x5f\x82\x5d\xad\x34\x37\x13\xcb\x97\x3e\xac\xa9\x37\xae\x00\xa2\x46\x6f\xb6\xdb\xd3\x4d\x42\x74\x1a\x8e\x31\x0a\x04\xab\x5b\x74\x81\x9c\x87\x6f\x46\x48\x30\x37\x64\xec\xa0\x12\x5c\x9c\x8d\x11\x0c\xf6\x42\xd7\x00\x0e\xb3\xbf\xee\x32\x67\xb6\xe1\xdb\x91\xa1\xd7\x47\x2f\x9b\x56\x36\x2c\x0b\xee\xc3\x07\x9f\xc4\x18\xe0\xbf\x8b\x12\x9e\x5f\x5c\xde\x86\xc8\xa6\x04\x7b\x7b\x14\xad\x45\x74\x0f\xd6\x34\x3c\xf2\x70\x33\x50\x30\x3e\xc0\xad\x7d\xea\xd3\x42\x59\xa0\xcc\xd6\x65\x83\x71\x19\x91\x54\xce\xe2\x44\x67\x29\xdf\x02\x24\x41\x62\x9c\xa2\x87\x33\xb8\x00\x5f\x23\x0a\xf6\x39\x13\xfa\xcf\xb4\x99\x95\x89\xff\x6e\xe8\x58\x7a\xe0\xb9\x1f\xcc\xa6\x3c\x60\x5a\x6c\xb8\x2c\x92\x68\x26\x37\x82\xcb\x10\xc1\x4a\x90\x0c\x33\xc8\xb1\x12\x94\x2f\x61\xb9\x14\x51\xe1\x09\x97\xe1\x12\xe2\x46\x6a\xdf\x1e\x1c\xd6\x77\xb7\xf3\x76\x76\xfd\x07\x9b\x9e\x39\xd9\x00\x3e\x9a\xd6\x10\x1d\x8d\x4f\x74\x35\x42\xaa\x5c\x3a\x72\xed\xa5\x16\xfe\xb2\x6b\x8a\x2d\x44\xf1\x28\x80\x4f\x88\x08\x10\xda\x74\xfc\x83\xd3\x25\x1d\x12\x3c\x38\x71\xfc\x83\x44\x2f\xdf\x20\x10\xa6\x0d\x16\x02\x2f\x1d\xf1\xa1\xac\x31\x18\xbe\x22\x4a\x06\x30\x05\xbe\x22\xa3\xe6\x2b\x38\xa6\xcd\x2d\x38\x7f\x10\xf1\x4c\x56\x69\x25\x49\x67\xf4\x1b\x8e\xf9\x44\xa0\xcf\x23\x6d\xec\x18\xf7\x72\xf4\x9c\x01\x95\x96\x27\xd1\x76\xa4\x03\x3b\x12\x93\x62\xa7\x5f\xf2\x56\x65\x73\x22\xf7\xbd\x0c\xfb\x5c\xa1\x94\xe8\x8f\xf2\x02\x57\xd0\x3f\x6e\x51\x3a\xd2\x3c\x64\xd4\x75\x60\x71\x32\x5a\x37\xcc\xe0\x6d\x65\xcc\xa4\x65\x93\x59\x96\x29\xb2\xa4\x77\xc5\xec\x10\x87\xa6\x8d\x7c\xfd\xf5\x22\xa0\x9d\xd1\x95\x05\xb9\x55\x1d\x48\x27\x00\xee\xa3\xac\xb3\xab\x5e\x48\x5d\x82\x4a\x61\xd3\x2a\x82\x57\x62\x25\x0a\x38\xcd\xe3\x32\x45\xc0\x26\xb8\x53\x80\x8f\x93\xa7\x29\x4b\x0a\x3d\x93\x8e\x3e\x14\x03\x73\x40\xc2\x5a\x7f\x4b\x4c\x57\x2e\xa8\x02\x8a\x85\xc7\x5c\x82\x1e\x96\x44\x49\xd1\x08\x77\xd8\x86\xa9\xc8\xb2\x4c\x70\x8c\xe5\xc7\x69\x9b\xc9\xf0\xce\x55\x9f\x04\x0a\x7c\x87\xec\xf5\xcf\x11\x83\xbe\xc3\x70\x6b\xaa\x78\x12\xca\x06\x7b\x67\x2e\x5c\x36\xcb\x38\xb6\x96\xf8\x83\x08\x95\x6c\x6e\x35\x85\xb6\x0e\x14\x7f\x6f\x85\x98\x9e\xa8\x4c\x79\x8e\xc1\x4c\xcb\x32\x65\xc9\x32\x48\x98\x0e\x73\x80\xe4\x91\x66\xba\x22\x05\x67\xb5\x75\xa1\x68\xbe\x11\x01\x6f\x0d\x99\x77\xd2\x00\xf1\x83\x19\x31\x10\x4a\x62\xca\x7a\x33\x66\xef\x3c\x3d\x2e\xce\x30\xec\x89\x80\x74\x3a\xd1\x28\xfe\x5c\x7b\x03\xca\x05\xe8\x9d\x69\xa2\x92\x66\x47\xba\x5d\xd7\x31\x83\x90\xbc\x66\x18\x9c\xc8\xa6\x2e\xda\x8d\xb0\x6f\xa5\x5c\x31\x9f\xd6\x40\x46\x6e\x43\x74\x34\xd0\x9e\x0a\x03\x1b\x19\x12\x76\x3f\xa1\xa1\x8e\x10\xbd\xa5\xb1\x9b\x1d\xf9\xd9\x61\x1e\x07\x36\x35\xc8\x76\x38\xbc\xa1\xc1\xca\x09\xc1\x63\x7d\x46\x76\xc5\x8b\xa1\x48\x32\x17\xb8\x36\xbc\xa1\xad\xa8\xbd\x3e\xcd\x04\xe9\x31\xb0\x9d\x13\xf3\xcd\x13\x1b\xaa\xcb\xc5\x11\x0a\x68\x97\x0f\x09\x44\x85\xe0\xd1\xba\xca\x21\x61\x99\x9e\x5d\x0f\x20\x86\x10\xf6\xe3\x70\xfa\x8b\x89\x5f\x73\x90\xf0\x91\x99\xe6\x8f\xd9\xa5\x14\x88\xf3\x54\xcb\xe0\x50\xa1\x06\x50\x66\x48\x48\xb6\xe3\xa4\xdc\xc2\x34\x4c\xde\x5b\x6a\x2d\xb3\xe5\x46\x8c\xfb\xd2\x41\xea\xe1\xb2\x41\x29\xd2\xa1\x4b\xb6\xa5\xa6\x3a\x40\xbd\xec\x47\x50\xd1\x7e\xe7\x0f\xe0\xd2\xc3\x25\x40\x5b\x3f\xfa\x4f\xcb\xce\xb8\x07\x77\x8b\xb3\xc1\x0e\xd5\x75\xc3\x10\xfc\xbc\x6f\x7c\xaf\xd6\x55\xcc\xec\x80\x44\x8e\x77\x17\xef\xce\xde\x4f\x2f\xaa\xd9\x17\xff\x78\x77\x76\x57\xfd\xe5\xfa\xee\xe2\x62\x7a\xf1\x7d\xf8\xd3\xcd\xdd\xe9\xe9\xd9\xd9\xbb\xea\x7b\xef\x27\xd3\xf3\xda\x7b\xe6\xa7\xea\x4b\x93\xef\x2e\xaf\x6b\xf9\x1e\x6d\xb2\xc6\xe0\xa7\xdb\xe9\x87\xb3\x77\xf3\xcb\xbb\x4a\xca\xc8\x77\xff\x71\x31\xf9\x30\x3d\x9d\xb7\xb4\xe7\xfa\xec\xf4\xf2\xa7\xb3\xeb\x3d\x19\x1f\x7d\x7f\x5b\x87\xf4\x39\xb0\x85\x4f\xce\xff\x39\x61\xcb\x3c\x11\x32\x4e\xb7\x18\x29\x62\x6f\xb6\x35\xe8\x77\x78\xf6\x26\x1b\xa1\xca\x43\x02\x3e\x6e\xd7\x82\xa9\x07\x91\x03\x0b\x18\x96\x46\x94\x21\x9e\x71\xa0\x5e\x6b\x2e\x8a\xbc\xe9\x15\xd8\x19\x55\x57\xe4\x5b\x17\xb7\xb9\xab\x39\x9e\x41\x92\x2a\x61\x99\xc8\x77\xb5\x05\x34\xa3\xbc\xcc\x8a\x64\xd1\x1d\xc2\x33\x38\xf0\xbe\xef\xdd\x1b\xf9\x8e\xdb\xc9\xe1\x2e\xda\x05\x63\x25\x92\xe5\x10\x98\x3c\x94\xf0\xd4\xb4\xb6\xee\x6b\x0b\x2d\xce\xca\x45\x9a\x44\x2c\x89\xeb\xf6\x14\xe2\xc3\x00\x93\x71\x9d\x16\x3d\x13\x39\xa8\xaa\xe6\x06\x90\xe5\xe2\x88\x97\xc5\x1a\x29\x3c\x29\x70\x86\x92\xd8\xcc\xa4\x16\x51\x2e\xd0\x17\x20\x34\x18\x69\x31\x9f\x69\x50\x13\x34\x86\x18\x6c\x62\x20\xcb\x1b\x07\x29\x6a\x3a\x7c\x04\xf8\x25\x96\x3e\xc0\x48\x8a\xef\xef\x1c\x1a\x6a\x71\x82\x19\x53\x03\x58\x18\x9c\xf0\xf8\xd0\x66\x45\x35\xfd\x36\x92\xda\x65\x05\xc5\x49\xb6\x91\x46\xed\xdd\xd8\xb7\xc6\xc2\x85\x52\x0d\xbd\xa1\xd2\xe9\xd1\x69\x2e\xe0\x10\x21\x48\x83\xb5\x5f\x00\xae\x89\x22\x93\x20\x20\xc9\x5c\xd5\x16\x62\xcd\xd3\x25\x6a\x1c\x66\x6a\xda\x59\x45\xb0\xfc\x5b\x75\x2f\xe4\x35\x4e\xd8\xaf\x22\x0e\x25\xde\x7c\x3c\xa7\x91\xb3\x08\x79\x13\xa6\x69\xa3\x5d\x55\x36\x2e\x14\x94\xa9\x02\xef\x09\xc1\x63\x0c\x40\xf2\x19\x0b\x6c\x48\xe9\x72\x99\x7c\x32\x05\xce\xa4\x68\xe5\x6c\x07\x30\x99\x65\x97\x74\x72\x19\x80\x73\x48\xd1\x77\x2f\x24\xe4\x53\x05\x72\xc0\xfd\x6b\x76\x98\xfd\xbc\x39\x17\x3b\x0c\xfa\x60\xf3\x4b\x2a\x69\x66\x43\x2f\x8f\x1d\xa7\x02\x23\xc2\x1c\x07\x07\xac\x9b\xd3\xf3\xe9\xd9\xc5\xed\xfc\xf4\xfa\xec\xdd\xd9\xc5\xed\x74\x72\x7e\xd3\x77\xfb\x3d\x47\x14\x5f\x6d\xf7\xd5\x83\xd9\x9c\x84\x38\xa6\x9d\xe7\x43\xd9\x5d\xa7\xfc\xb6\x83\x29\xd9\xdf\xfa\x24\xce\xe6\x71\xa2\x23\x73\xfc\x6d\xe7\x42\xc6\x90\xec\xe2\x49\x4b\xb5\xbd\xa8\x7a\x2f\xdc\x1b\xcc\xbd\x61\x25\x08\x9e\x76\x0f\x76\x45\xbb\xe7\x00\xc9\x04\x33\x64\x2e\xcc\xe6\x8f\x2b\x1c\x23\xe3\xfd\x19\xce\x4c\x71\x87\xf5\xad\x5a\x44\xbd\x4f\xd8\xde\x44\xeb\x12\xa8\x4c\xec\x6b\x80\x47\xed\x18\x15\x62\x20\x0e\x33\x6e\x24\x41\xb6\x78\x96\xe8\x99\xdc\x70\x19\xf3\x42\xe5\xdb\x8e\x2e\xf6\x13\x9e\xe1\xb6\xa9\x8a\xd0\xf0\xc8\x96\x42\xc4\x76\x16\xf0\x55\x2e\xeb\x4b\x09\xf3\x72\xdc\x5e\xfe\x78\x76\x71\x33\x3f\xbb\xf8\x69\x7e\x75\x7d\xf6\x7e\xfa\x27\x07\x93\xcd\xb8\x6e\xcb\x0e\x9d\xe5\xc2\x48\x17\x4b\x73\xd6\x2a\x5f\x30\x65\xb3\x2d\x87\xd2\x74\x26\xcb\x99\xb4\x92\x25\xf7\xc5\xaf\x73\x55\xae\xd6\xed\x05\xd5\x5b\x79\x35\xb9\xfd\xe1\x49\xcd\x04\x12\x4a\xcc\xeb\x8a\xbb\xad\x09\x17\x4e\x96\x24\xf7\x10\x63\x5c\x6b\x1e\x50\xa9\xc2\xab\x6d\x5e\x86\x0e\x89\xf6\xa4\xdb\x4b\x53\x68\xed\x54\xfe\x5b\x5e\xef\x5a\x40\xb7\x81\xdc\xac\x1c\x23\x00\x5f\xc7\xf4\xe0\x8d\xd2\x4e\x5a\x7e\xab\x9c\x60\x5f\x1d\xa5\x62\xb5\x12\x31\x2e\xaf\x7a\xc1\x64\x83\x23\x11\x18\xf9\x73\xbd\x6d\x14\x29\x81\xef\x01\x07\xb3\xc3\x7b\xf5\x17\xe0\x57\xee\x93\x76\x59\x71\x4a\x44\x52\xe0\xdf\x2c\xb8\xec\x70\x24\xef\x8f\x07\x6b\x2f\xfe\x32\x67\x2e\x54\x8f\x0c\x26\xd6\x65\xe0\xf7\x41\x17\xe0\xe5\x70\x7c\xab\x6b\xc7\xb5\xc8\x52\x1e\x09\x17\xe0\x82\x0c\xc0\x70\xaf\x7f\x8a\x03\x8f\xd2\x24\x4b\xb2\xb7\x04\xe9\x93\x7d\x66\xb8\xb6\x25\x00\x96\xdb\x6b\x2b\x8f\x5f\xde\xb4\xb2\xf3\xe2\x46\xbc\x9f\x60\x68\xc6\x3c\x95\x14\x17\x81\xb6\x28\x48\xfe\xda\x89\x59\x1f\xb4\x1c\x6a\x35\xff\x44\x13\x8f\x77\xe6\xaa\xa1\x9b\x5b\x66\x5d\xb7\x3c\x9c\xea\xb8\xcb\x5e\x58\x14\xf9\x4e\x32\xee\xe7\x70\x47\x5c\xe5\x6a\x93\x68\x31\x29\x8a\x3c\x59\x94\x61\x36\xe2\x81\x80\xb9\xca\xe5\xc4\x77\x38\xcb\x55\x5c\x46\x96\x3e\x0b\x7a\xeb\x61\x3f\x64\xe5\xb3\x5a\x47\xcc\x8e\xcc\xea\xa3\x9b\x9b\x88\x8f\x20\xda\x03\xf9\xdd\xda\x7c\x6c\x56\x30\x76\xd8\xfe\xae\xec\x51\xfe\xcc\x31\xa3\xdd\x83\x69\xd7\x40\xbf\x30\x70\x66\x5f\x07\x0d\xb8\x03\x35\x45\xcb\x65\xc1\xd1\x81\x5e\xd5\x51\xba\xd8\x72\xdc\x51\x33\x0c\xdc\xd5\x0f\x1b\x53\x0d\xa7\x42\xbd\x61\xcd\x35\xaa\xf3\x45\xb4\xae\x36\x1c\x7a\x53\x65\x0d\xae\x37\xd7\xa9\xc7\x87\x99\x4d\x7a\xb9\xd1\x46\x68\x68\x48\xc8\xb0\x5d\xc9\x00\xeb\xd2\x59\x77\xda\xef\x31\xe4\x62\xfe\x4b\x29\x86\x64\x75\xb6\xa1\x1a\x7f\x84\xcf\xf6\x02\x52\x12\xc4\x6e\x39\xdb\x6b\x91\x6c\x8c\x06\xc4\xf3\x68\xcd\x16\x5c\x13\x1d\x61\xc8\x96\x80\xe9\xe7\x59\x62\xbe\xe2\x51\x41\xe9\x78\x6d\xb5\x36\x25\xef\xad\x85\x42\x1a\xb5\xd6\x5b\x3d\xda\x96\xdb\xbe\x01\x18\x62\xbd\xb6\xcd\x98\xbe\x1b\xe4\x43\x08\xf5\x70\x77\x4f\xc6\x23\x16\x4e\xa7\x94\x97\x32\x5a\xb3\x2c\xe5\x48\x28\xb1\xe6\x1a\x05\x85\x45\xe8\xf0\x45\x92\x26\x05\xf0\x84\xa1\xe3\xb8\xb6\x6e\xcd\xe5\x99\xe7\xf7\x36\xdd\x02\xf7\xa4\x70\xbb\x44\xc9\x81\x48\x68\xd7\xab\xcf\x8a\x85\xf6\x82\x30\x14\xee\xfd\x36\x3b\xe1\xa0\xfd\x74\x98\xe3\x0d\x36\xbb\xef\xcb\x30\xef\x10\x95\x78\x55\xff\xbc\x36\xde\x48\x40\x79\x10\x49\xf0\xce\xb8\xac\x17\x01\x9d\xfb\xa8\xb2\xdd\xc7\x68\xb3\xc3\x2d\x4a\xf0\x70\xe0\x13\x25\x4e\x1a\xa0\xc4\xd4\xd3\x2a\xb5\xee\xfb\x65\xaa\x78\xb1\x3b\xca\x0d\xb3\x24\x75\x95\x1d\xab\x72\xd1\x95\x97\x03\x5b\xf5\xf4\x18\x3a\x2b\xfe\x9f\xcb\xe6\x1e\x9e\xa3\xbc\x10\x46\xfa\x3e\x6d\x40\xcd\xd7\x47\xf0\x79\x7b\xe1\x14\xc5\x3c\x98\x91\xc2\x2d\x03\x9f\xab\xcf\xe9\xfe\x00\x49\x6d\xd9\x4e\x75\x25\xef\xa0\x98\xc7\xc3\xe6\x2b\x91\x7b\x96\xd2\xfe\xf4\x5f\x5f\x7f\xd5\x27\x1a\xf1\x8f\x25\x37\x07\xc0\xe5\xf2\x06\x09\xc2\x0e\xe9\x74\x91\x34\xb7\x55\xbb\x18\xa8\xd7\x7a\x5b\xf5\xd2\x86\x0b\xbf\x37\xdb\x41\x5b\x6f\x6e\xcc\xd7\xfd\xc5\xee\xb4\x62\x8d\xcd\xf2\x44\x01\x51\x96\x5a\x56\x74\x8d\x16\x49\xdc\x5a\xef\x01\x23\xf9\x4b\x29\x4a\x61\x16\xd0\xa2\x8c\x57\x4d\x67\xc9\x80\x0b\x97\xef\xd2\x5a\x3d\xb2\x4d\x19\xad\x99\x2d\x9c\xc5\x22\xe5\xdb\xaa\x1a\x65\xee\x1a\x85\x02\x0a\xe5\x41\x7c\x81\x01\xf1\x7d\x54\xea\x42\x6d\x00\xa7\xee\xcb\xcd\x4b\x09\xbb\x9c\x71\xbb\xbb\xda\x0e\xb4\x0a\xa1\xe7\x13\x3d\xe4\x37\x57\x67\xa7\xd3\xf7\xd3\x9a\x7b\x7a\x72\xf3\x63\xf8\xf7\xcf\x97\xd7\x3f\xbe\x3f\xbf\xfc\x39\xfc\xed\x7c\x72\x77\x71\xfa\xc3\xfc\xea\x7c\x72\x51\x71\x62\x4f\x6e\x27\x37\x67\xb7\x7b\xfc\xd4\xcd\x5a\xbb\x27\x82\x07\x7c\xa3\x16\x39\x6f\x93\xe9\x58\x73\x15\xd5\x7a\xc2\x26\x96\x7d\xb5\xc2\x0f\x6c\xb1\x06\x00\x4e\x4a\x11\x63\x89\x90\x84\x77\xbc\xe0\xa7\xbc\xe0\xa9\x5a\x8d\xd9\x84\x51\x5c\x01\xc6\x8b\x68\xa3\x12\x12\x35\xa5\x99\x1d\x2c\xc2\xe8\x85\x91\x37\x05\xf9\x6c\xe1\x6a\x49\xa4\xb0\xa9\x08\xf3\x4a\xd9\x20\xcf\x99\x3c\x7b\x10\xb2\x28\x41\xd1\xe6\x69\xca\xa8\x5a\xfb\x42\xc0\x0a\x62\x5b\xa9\x93\x4d\x92\xf2\xdc\x27\x76\xbe\xa4\xb2\xe0\xb2\x6b\xdb\xea\x58\xe9\x9a\x94\x13\xd6\x1e\x70\x37\x65\xd0\xee\xd3\xf3\x29\x28\xba\x51\x61\xb3\x16\xda\xca\x67\x12\x49\x47\xa9\xc6\x0d\x87\x18\xa6\x42\x91\x81\x1e\xab\xa7\x97\xbb\x17\xe2\x41\x8a\x95\x75\x65\xbd\x94\x61\xc2\x35\xd2\xfe\xe3\x4c\x16\xf9\xb6\xb7\xf6\x7a\x0b\x8c\x0e\x1a\xee\x75\x04\x89\xac\x26\x7b\x46\xfb\x29\xb3\xa5\x5f\x80\x4a\x6b\xf1\xba\xe4\xde\x73\x5e\x3c\x84\x47\x75\x5c\x89\x52\x73\xf2\xfe\x56\xc7\x21\x64\x01\x83\x51\x58\xa8\x52\xc6\x9a\xc0\x9b\x9b\x44\x1e\x6f\xf8\xa7\x37\xb6\xa7\x48\x62\xe3\x52\xae\x01\x63\xa2\x48\xcd\x7d\x70\x6b\x84\xdc\xee\xe1\x9a\xc9\x1d\xe3\xb5\xff\x4e\x60\x25\x2b\x98\x0c\xbc\x7d\x07\x61\xa8\x0f\x62\xdb\x36\x7f\x8d\xb4\x99\x2c\xcc\xfd\x00\x85\x64\xb9\x30\x2f\x3a\x8c\x6b\x8a\xd0\x65\xf7\x37\xc4\xb2\x54\x52\x7b\xb7\xcb\xee\x10\x36\x72\xd0\xb6\x69\x05\xac\xf4\x57\x7c\x7a\xe7\x3d\xa5\x9a\xcc\x9c\x21\x7c\xc5\x7a\x4e\x28\x76\x87\xfc\xf2\x66\xb2\xfe\xaa\x16\x6c\x09\x81\x6c\x64\x27\xc8\x05\x78\xca\x60\x2a\x6c\xa2\x1e\xe0\xd5\x6b\x60\x62\xec\x12\x48\x85\x06\xff\x91\x34\x97\x6a\xf1\x4b\x49\x10\x80\xb7\x5f\x0e\x3b\x67\x0b\xcc\xf6\x80\xf4\xde\xf5\x3c\x08\xee\x2c\x87\x76\x95\x32\x69\x23\xdb\xbc\x2e\xa5\x39\x8a\x9f\x03\x3d\xd5\xdf\x3d\x5e\xab\x94\xfe\xdc\x1b\x6b\x66\x3d\x3b\x39\xbe\xff\x62\xcc\xcd\x3f\xd5\x08\x9b\xa9\x3a\x88\x6c\xa0\xd2\xc3\x03\x6d\xc1\xa3\xfb\x47\x9e\xc7\x68\xfe\x07\x38\xd3\x98\xfd\xa0\x1e\xc5\x83\xc8\x47\x2c\x12\x79\xc1\x89\xaf\x50\x03\x9e\x03\x36\x14\x95\x33\x93\x10\xe8\x83\xe4\x8f\x52\x97\xb9\x60\x45\xb2\x5a\x17\x22\x0f\xd1\x38\x2a\x37\xe2\xa8\x40\xaa\xda\x4c\x44\x44\xc8\xd6\x31\x00\xcb\x94\x3f\x34\x09\x18\x9f\xc2\x24\xc3\xa6\x2e\x5a\xd9\xba\xbb\x6d\xf2\xb3\x5d\xf8\x29\x1a\x30\x12\x9a\x48\xa1\x35\x62\x2b\x95\x72\xb9\x1a\x8f\xc7\x90\xe8\xe3\xcd\xa0\x85\x4e\x05\x86\x0e\x74\x87\xd2\x4f\x95\xd2\x22\xdd\x3a\x12\x31\x17\x47\x05\xc0\xdd\x4f\x85\x90\x3a\x41\xc3\x56\xcb\xf2\xbf\xa9\x3b\x97\x3e\xaf\x2f\xae\xfd\x7a\x3e\x38\x4a\xb7\xa3\x1c\xc8\xa5\x3a\xa0\x24\x7c\xbf\xfd\xe6\xf5\xa4\xa8\xf3\xf6\xb2\xa4\x92\x43\x43\xa9\x7f\x52\x49\x07\x14\xe4\x49\x64\xa3\xad\x25\x11\x11\xd2\x93\xc2\x4f\xdb\xc7\xac\x11\x11\x7c\x40\x30\xf0\x8e\xb8\xde\x81\x21\xbd\x7d\x0c\x01\x37\xf5\xe9\x1e\xbc\x2d\xf6\xa7\x77\x6b\xed\xd0\xc0\x90\x69\xcf\x6d\x30\x44\x75\xc2\xa8\xcb\x74\x0b\x37\x2e\x17\x40\x0d\xee\x81\x38\xf0\x2a\x55\x9c\x66\x10\xca\xe7\xbd\x6e\x8e\xa0\x2e\x70\xb2\xe9\x42\xe5\x7c\x25\xd8\x46\xc4\x49\xb9\x69\x15\x36\xae\xb9\x87\xc0\x47\x55\x5a\x6e\xba\xa9\x42\x0f\x55\xa0\x7d\x23\xf1\x5f\xa7\x50\x5d\x7f\x0e\x1d\x17\x19\x61\xb3\x6c\x52\x7b\xd1\x85\x44\x63\x6d\x4e\xca\x3c\xd1\xc0\xb2\xfb\x94\xc8\x59\x57\x0c\x16\x0d\x0e\xf8\x6d\x86\x46\xf6\xca\xec\x1e\x59\xcf\x28\x7d\xa2\x71\x56\xc1\x6b\xdf\x7d\x28\xd4\x41\xa9\xc3\x73\xed\xe5\xaa\x6c\x70\x4f\xf5\x02\x4a\x80\xda\x18\x64\xde\x20\xd4\x1c\x14\x48\xd0\x9e\x42\xb1\xa5\x8d\xc5\xbc\x17\x01\xf5\x61\x0c\x39\x39\x1e\x91\xf2\xe9\xc7\x6f\xb4\x05\x01\x11\x4e\xcb\x6b\x2c\x85\xaf\x04\x3d\x40\x0f\x6f\x2d\x3c\x0f\x7b\x88\x45\x00\x41\x61\xcc\x65\xd1\x5a\x80\x47\xaf\x42\x59\xf8\xc9\x4f\xbc\x4c\xdb\x5f\xa7\xf2\xe1\x55\xcc\xd9\x3a\xf9\xf9\x86\xe1\x50\x53\xfe\x84\x7c\x57\x43\x83\x42\xf6\x03\x04\x61\xb8\xe6\x4f\xd0\x04\x2b\xf3\x80\x83\x6e\xd3\x77\x98\x61\x17\x45\xb4\xf6\x9a\x07\x10\x34\x3a\x62\x49\x4a\xc8\x4d\xfd\xdc\xf8\x8c\x10\x88\xbd\x0e\x41\xac\xc9\x4a\xaa\x30\x95\x92\x92\x02\x5c\x71\x46\x00\xa9\xb0\x58\x96\x14\xfb\x91\x82\x03\x59\x09\xf7\x2d\xb5\x42\x21\x02\x8c\xfa\x59\xf1\x53\xc3\x95\x22\x41\xba\x2a\x0b\xb3\xc6\x3b\x11\xe5\x77\xae\x67\x0a\xa8\x12\x80\xcc\x64\xb5\xaa\xc6\x20\x59\x28\x5f\x92\x0b\x24\xf8\xd6\x46\x7b\x2b\x92\x07\xb3\x51\x9b\xcb\xda\x2d\x50\x90\x00\xcd\xb5\x47\x6e\x5b\x16\xb0\x84\xdf\x8b\xad\x0e\x93\x49\xd3\x8a\x62\x5d\x0b\x32\x31\xfd\xa1\xf9\xda\x3f\x15\x30\x70\xf3\xdc\xa7\x84\xec\x77\x96\x61\xa5\x1f\xcc\xc7\x3b\x30\xc2\x8d\xc2\xcd\x1a\xf4\xc1\xae\xde\xa6\x48\x62\xc2\x8f\x33\xcd\xa1\x87\x01\x02\xc8\x33\x84\x71\x86\x91\x4b\x70\xf1\x35\xf7\xdb\x99\xa4\x44\x02\xc1\x21\x67\x04\x4e\x73\xda\x28\x02\x1f\xe9\xcb\xb7\x15\xf6\x20\xa0\x56\xb5\x34\xb3\xd5\x2a\xad\x77\x19\xf2\xf2\xc1\xf2\x80\xaa\x31\x46\xd9\xda\xf0\x5a\x2b\x7c\x22\xb6\x94\x26\xb7\x13\x4f\x1a\x04\x02\xe2\x9b\xc4\x2e\x8a\x59\xc9\xf1\xf6\x13\x09\x33\x7c\x13\xd9\x0a\xe5\xb4\x40\xce\x9b\xb3\xd3\xeb\xb3\xdb\xcf\x86\x37\xb5\x60\xcf\xc1\x80\x53\xdb\xce\x77\x67\xef\x27\x77\xe7\xb7\xf3\x77\xd3\xeb\x97\x40\x9c\xd2\xa3\x27\x40\x4e\x6f\x28\x3f\xc9\xa9\x92\x85\xf8\x74\xd0\x99\x9c\x97\x72\xce\x07\x84\x3e\xb9\x0c\x45\xbb\xd4\x1d\x2c\xb4\x99\x5f\xc5\x25\x3f\x21\x6e\x5b\x42\x9d\xd8\x74\x2a\x4b\x6f\x34\x5c\x26\x69\x0a\x91\xe0\xce\xbc\x4e\x51\x86\x66\x50\x41\xfe\x58\x3a\x5f\x92\xa9\x33\xb9\xa8\xa4\xbf\x01\x93\xdf\xda\x5c\x82\x31\x06\x3c\x33\x03\x90\x27\x10\x61\xbb\x2b\x05\xcb\x2a\x91\xc2\x37\x03\x66\xcd\xb4\xaf\x93\xa6\x9e\x26\xf1\x25\x91\x75\xa4\x78\xf5\xd5\x35\xed\x8a\xab\xac\x4f\xab\x7e\xda\x87\xae\x87\xb8\x89\x13\x89\x8a\x69\x65\x37\xdf\xb4\x2f\xdd\x63\xbf\x05\x60\xdc\xcd\x4c\x72\xf0\x41\xe8\x82\xe7\x85\x9f\x48\x9a\x08\x4c\x0c\xe7\x9d\x13\xf7\x09\x22\xd0\xd4\xb2\x36\xce\x46\x14\x9a\xb1\x4e\xc0\x53\xc1\x89\xdc\x26\x4a\x4b\x5d\x88\x9c\xcc\x26\x93\x9f\x6f\x66\xf2\x3b\x73\x7c\xbd\xa1\x53\x88\xd2\x77\x61\x15\x88\xd4\x51\x95\xfa\xad\x86\x12\x4a\xb0\xd7\x68\xa3\xde\x08\x2e\x35\x83\xad\x91\xa6\x22\xf7\x2b\x03\xdb\x23\x44\x4c\x49\xb4\x81\xea\xd9\x7f\xff\x86\x11\xb8\xd5\x0c\x85\x69\xaf\x4b\x23\xb6\x51\x45\x73\x3d\x75\x11\x0d\x00\xe2\xfc\x25\x57\x4e\x4b\xe0\x53\xdf\x55\x44\x60\xfd\xd6\x45\x54\x0d\x43\xea\xb5\x96\x6e\xb1\xb8\x7f\x2c\xa5\x67\x5c\x4a\x3d\xce\xf5\xf0\x94\x60\x6b\x65\x04\xa8\xcb\x6d\xe5\xdd\xcc\x8e\xe8\x24\x05\x94\x9b\x19\xc6\xd6\x53\xa7\x96\x5d\xf6\x10\xec\x07\x14\x75\x18\x42\x7b\xd2\xc2\xa8\xe4\xd3\x18\x5a\xdf\xce\xce\xc4\xb5\x2f\xc3\x5c\x38\xb1\x58\x55\xa9\x0a\xcb\x41\xe2\xe0\xa1\x84\x75\x35\x2f\x38\xf2\x9b\x9d\x6d\x24\x42\x19\xab\xa5\xcc\x0f\x4c\xfe\x78\x1b\x62\x6a\x2b\x51\xd9\xd8\x8a\x90\xcf\xc1\x72\x38\x38\x0e\x98\x21\x8b\xef\xe9\xe9\x85\xab\x6b\xce\xf1\x89\x3e\x09\xec\x70\x71\x79\x71\x16\x42\x15\xa6\x17\xb7\x67\xdf\x9f\x5d\x57\xe2\xf9\xcf\x2f\x27\x95\x98\xfc\x9b\xdb\xeb\x5a\x28\xfe\x77\x97\x97\xe7\x67\x0d\xcc\xc3\xd9\xed\xf4\x43\xa5\xf0\x77\x77\xd7\x93\xdb\xe9\x65\xe5\xbd\xef\xa6\x17\x93\xeb\xff\x08\x7f\x39\xbb\xbe\xbe\xbc\xae\xd5\x77\x77\xba\x1b\x3d\x51\xe9\x46\xbb\xf9\xc7\x3b\x67\x03\x6a\xd5\xd6\x6d\x5c\x4d\xbf\x7c\xc0\x2e\xee\x89\x3c\xdb\xb7\x1c\x6d\xb8\x7e\x1c\xa6\xe3\xc0\x8d\x61\x9a\x3a\x68\xd5\x3d\x7f\xbe\xe8\xca\xd0\x65\xfc\x30\xb1\x67\x4e\xb5\xf9\x73\x20\x01\x77\x2a\x80\xae\x96\x9a\xe1\x96\xd2\xb3\xe3\xd0\x66\xe0\xc1\x5a\xf1\xce\x7c\x65\x32\x7e\xf1\x96\xda\x3a\xf6\xb5\xd3\x53\x79\xed\x61\x44\x7a\x2e\x36\x94\x5d\x8d\x0e\x2a\xb3\x64\x03\x49\x6c\x15\x05\xfb\x30\x84\xdd\x9b\x6e\x98\x95\x13\x2c\xc7\xae\xc4\xbe\xed\x61\x4b\xbb\xd9\xf7\x86\xb6\x9f\x2a\x69\xb6\xbd\x46\xd5\x32\xa0\xdd\x40\x99\x35\xa4\xdd\xb7\x5c\xdf\x0f\x6d\x37\x55\xd2\x6c\x37\xa8\x7d\x4f\x6a\x37\x18\xbc\x8b\x76\x1a\x9d\x01\x42\x2c\x2c\xa6\xda\x3c\x17\xe3\xef\x5e\x09\xf2\x67\xf7\x6b\xa3\xd9\x00\x2f\x7b\xbd\xcc\x78\x7f\x47\x06\xb4\xc6\x6d\x57\x5e\x63\x95\xbf\x81\xa7\xd0\xc3\x45\x2e\xf8\x7d\xac\x1e\x69\x3e\xea\xc8\x50\xd6\x4b\x9a\x57\x07\xc8\xc8\x70\x7b\x44\x14\x39\x79\xa0\x10\xa5\xe6\x8b\x07\x98\x5c\x42\xbc\xe8\xa8\x83\x05\xa9\x97\xeb\x44\x44\x40\xfd\x24\xfd\xec\xcc\x24\x6a\xf3\x6d\xe9\x9b\xcd\xac\x9a\x16\x11\x75\x08\x74\xd5\xe9\xd0\xe8\x5c\xd7\xc1\xc4\x52\x1c\x50\x99\x03\x98\x6e\x91\xc3\x9d\x09\x06\x24\x91\x60\x4c\xce\xcd\x85\x27\x17\x51\xa2\x45\x90\x31\xae\xf5\xc4\xfe\xe5\xb0\x54\x28\x05\x2f\x5a\xcd\xae\xbd\xed\xe1\x3c\x2a\x4a\x9e\x32\x08\x57\x22\x06\x46\xb4\x55\xe2\x2f\x11\x97\x18\x1a\x53\x88\x4d\x06\x51\xfd\x61\x4c\xc7\x4c\xfe\x0c\x40\x09\x9c\x82\x57\x9a\x7d\x0f\x90\x07\xfb\x32\x1d\xc2\x1b\x5e\xc0\x59\xfc\x47\xac\xc3\x3d\x1b\xcf\x64\x25\x03\x53\xf0\x55\x25\x19\xd3\x78\x26\x6d\xb6\x8e\x58\x45\x7a\x0c\x37\xbe\xb1\xca\x57\xc7\x94\x4b\xdd\x2c\x76\x75\xbf\x50\xea\xfe\x58\xc8\x63\xb0\x49\x15\xc7\xbc\x2c\xd4\x31\xc0\xa5\x70\xfe\xf5\xb1\x4d\x7a\x6c\xb3\x46\xeb\xe3\x75\xf2\x20\xe0\xff\xc6\xeb\x62\x93\xfe\x8b\xce\xd6\x9f\x8e\x56\x69\x7e\x64\xbe\x3d\x0a\xbf\x3d\xb2\xdf\x1e\xd9\x6f\x8f\xcc\x67\xf8\x7f\xd9\x16\xdd\x3b\xe2\x13\x37\x67\xd9\x68\x26\x13\xa9\x45\x5e\x80\xf6\xf3\x98\x27\x85\x4f\x75\xb5\x65\xaf\xfe\xf3\x3f\xd9\x38\xe7\x8f\x18\x11\xfb\x8e\x17\xfc\x0a\xed\x8b\x7f\xff\xfb\x2b\x70\xa8\x62\x14\x53\xc6\xf3\x5f\x4a\x51\xcc\xa4\x16\x66\x13\xb2\xff\x35\x93\xe0\x81\xdd\x6c\xe7\x05\xda\x5d\xd1\x06\x19\x6b\xf6\x2d\x96\x39\x45\x36\xd2\x58\x9b\x92\x3a\xc2\x09\x12\x9e\xb6\x64\xe9\xef\x30\xd1\xff\x92\xbe\xa3\xf7\x07\x6c\xeb\x5f\xd2\xea\xae\xb6\xc9\x96\xf4\x2f\x29\x1c\xa0\xa9\xe2\x16\xac\xc5\xdc\xe2\x85\x7b\x32\x35\xae\x6d\x8f\x34\xa0\x01\x2f\xea\xa6\x6f\xdf\x2b\x37\xc8\x88\x6e\x2d\xf7\x0d\x31\x02\xbe\x02\xef\x87\x00\xef\x79\x62\x76\xc8\x0d\x5a\x42\x41\x73\xc3\x9e\x83\x4e\x4a\xae\x73\x57\x1e\x1a\x2e\xf4\xd7\x27\xc7\xc7\x23\xb6\xd2\xf0\x9f\xc5\x2f\xf0\x1f\x40\x0f\x3d\x17\xa9\x6f\x63\x30\x1d\x10\xae\x39\xcb\xfb\x67\xe2\x39\x50\x74\x9f\x83\x47\xbe\xb6\x4c\xbf\x2b\x65\x9c\x0a\x1f\xda\x58\x71\x89\xa4\xca\xcc\xa4\x9d\xa8\x66\xe6\x21\x98\xe3\x85\x88\xb8\x11\x7c\x8d\xba\x11\x5c\xaa\x96\x85\x90\x68\x0d\xcb\x7d\xb6\x47\x8e\x96\x2b\x50\x8b\x01\x0a\xc9\x0b\x82\x9c\x0b\xf8\x11\x2a\x01\x62\xf6\x51\xfd\x11\xdb\xaa\x92\x38\xc6\x81\x39\x37\x16\x51\x0a\x89\x1c\x2c\x7b\x10\xcb\x45\x51\xe6\x92\x71\x96\x71\x19\x73\x0d\x2b\x70\x99\x83\xb7\x33\x67\xbc\xd9\xd0\x11\xc2\x71\x55\x59\x00\x27\x16\x22\x0b\xc2\x91\x40\x12\xf8\xa0\xcd\xa3\xa0\x11\x78\x26\x00\x17\x75\xe3\xc3\xf1\x4c\xda\x7c\x84\x84\x85\x43\x4b\x59\xa4\xb2\x2d\x31\x1e\xd5\x07\x3d\xb1\x96\x33\x1a\xee\x91\xc7\x9b\xd4\xdf\x1d\xb1\xa4\xea\x5a\x03\xbe\xf9\x22\x48\xf1\x6e\x93\xe4\xbf\x16\x32\x52\xb1\xc8\xf5\x1b\xb3\x0d\x13\x77\xef\x40\xfd\x21\xd1\x7e\x32\x40\x4a\x99\xc3\x8d\xac\x85\xa6\x78\x97\x60\xca\x8c\x4e\x85\xa1\xbc\x4d\xcf\xd9\xbf\x55\x7e\xeb\x28\x98\xb6\xf6\xd2\x3f\x3f\x2b\x22\x26\xc4\x75\xda\x3b\xe7\xd3\x4d\x10\xb8\x65\x43\x89\x8b\x85\xa2\x8e\x43\xca\x89\xcd\xa7\x9d\x14\x90\x21\x33\x17\xba\x98\x49\x3a\x81\x47\x6c\x29\xb8\xd1\xf3\x46\x2c\xd2\x0f\x28\x8c\xf1\xb8\x2f\x1e\x95\xc7\xe0\xd8\xf4\x36\x00\x86\xad\x14\xee\x8d\xc4\xf8\x1a\xa7\x08\x6c\x04\x18\x74\xdd\xd0\x9d\xaa\x02\x83\xd5\x2a\x10\x9f\x30\x0e\x36\x5b\x4a\x3d\xc3\x5a\x98\xac\x07\x46\x62\x8b\x8e\x62\x56\x6f\x07\x3e\x30\x82\x07\x7b\x87\x30\x90\x40\x38\x82\xc6\x4d\x58\x5a\xdc\x67\xde\x87\x1b\x52\xd6\x83\x6d\xa6\x6b\x53\xed\x18\x08\x68\xc0\xd3\xec\x16\xe6\xd3\xbd\x06\x2b\x2d\x72\x9b\xca\x05\xfb\x8a\x04\x93\xeb\x24\x8f\x8f\x32\x9e\x17\x5b\xbb\x7c\xd3\x64\x01\x19\x20\xd2\xe4\x5e\xb0\x49\x9e\xab\xc7\xe7\x1e\x85\x4e\xd1\xd2\x75\xc3\x3e\x04\xc9\x3e\xf4\x96\xdf\x4a\x2f\x5b\x37\x77\x3c\x8d\xca\xb6\xcb\xf0\xd1\x5a\x4f\x2e\x8a\x7c\x3b\x37\x0b\x71\x93\x75\x4a\x8a\x5e\x41\x13\xfd\x95\xdc\x61\x2c\xb9\x35\x13\x46\x27\x4b\x6e\x65\x56\x7f\x3b\x2c\xb9\x2d\x04\xb8\x4d\x96\xdc\xe9\xc5\xf4\x76\x3a\x39\x9f\xfe\x9f\x5a\x89\x3f\x4f\xa6\xb7\xd3\x8b\xef\xe7\xef\x2f\xaf\xe7\xd7\x67\x37\x97\x77\xd7\xa7\x67\xbb\x69\xaf\x9a\xad\xf7\x2a\xf8\x11\x0b\xeb\x39\x61\xb7\x01\x50\x03\x83\x0d\x48\xff\xa6\xfc\xb8\xb0\xaa\xcc\x66\x4e\xe4\x6a\x04\x1b\xf5\x84\x9d\xe5\xf9\x74\xc3\x57\xe2\xaa\x4c\x53\x80\x53\x61\x64\xcf\x69\x2e\xe0\xe2\x39\x62\x57\x2a\x9e\x06\xdf\x41\x38\x62\x6b\x37\xa0\x7e\x1e\xc7\xb9\xd0\x1a\xab\x1f\x51\xfd\x01\x78\xc8\x85\x3a\x12\x78\x8e\x3f\xf0\x24\x35\xf7\xb7\x13\xf6\x1d\x8f\xee\xd5\x72\x89\xe1\x33\x23\x17\x38\xc5\x7e\x29\x55\xc1\x99\xf8\x14\x01\xd5\x5b\xfb\x3a\x39\x57\xab\x5f\x01\xaa\xdc\xc3\x3d\xd5\x71\x49\x81\x54\x77\xf3\xf6\xe3\xbc\x5d\x10\x50\x2f\x3f\xe0\xa7\xef\xf1\xcb\x76\x03\x65\x91\x3e\x43\x78\xfc\xb9\x5a\xb5\x27\x1e\x02\xed\x9a\xb2\x25\x91\x23\x21\x22\x76\x11\xb5\x62\x3a\x91\xf7\x33\xf9\xf3\x5a\x48\xa6\xca\x1c\x7f\x82\x6b\xbe\x51\x33\xd3\x52\xaf\x05\xa4\xa9\x1e\xb1\x47\xc1\x36\x7c\x8b\x6a\x33\xdc\x09\x5c\xb6\x14\x58\x32\x70\x8a\x98\xaf\xd3\x44\x1a\x69\x91\x25\x36\x2e\xa1\x3e\xf5\xcf\x71\xe3\xb2\x44\x87\xfc\x70\x1e\xe2\x5d\xe7\x69\x05\x9f\x07\xa6\x32\x8f\x9b\xb4\x00\x21\x92\xdc\x90\x54\x56\xa9\xfb\x32\xf3\x94\xa8\xaf\xac\x73\x12\x86\xfb\x41\x25\x31\x8b\xcb\x2c\x4d\x22\x27\x77\x1f\x55\xde\xc9\xfb\x8c\x01\x34\xfd\x4f\x9d\x7a\x58\xd8\xae\x8e\xb5\x44\xe7\x04\x48\xba\x1d\x0c\xd0\x2f\xcc\x81\xcd\x12\x19\xa5\x25\xa4\x99\x2b\xb5\xc8\x8f\x5c\xea\x68\x17\xeb\xf7\xdb\x27\xc9\xf6\x24\x9c\x87\x87\xb5\x85\x41\xe7\xa9\x5a\x25\x11\x4f\x43\x70\xb3\x47\x45\x38\x16\x5e\xbb\xed\x29\x99\x30\xc4\x41\xd8\x06\x75\x12\x69\x65\xb9\x00\x22\xe8\x39\x88\xf2\x39\x89\xbb\x43\xda\xbd\x64\xe6\x82\x8e\xed\x0a\x39\x72\xad\x7b\xc1\x9e\x70\xbe\x6e\x9b\x89\x0d\x54\x4c\x4c\xe1\xcf\xd4\xa3\x14\x39\x68\xb0\x00\xfb\x30\x3d\x95\x0a\x74\x13\x97\x9d\xcd\xe1\x93\x6d\x76\xc2\xa5\x03\x62\x63\xe4\xec\x2a\x79\x10\xf2\xf3\x93\x9a\x07\x15\x44\x3c\x5a\x8b\xb9\xd5\xcb\x9f\x5b\x64\xb9\x03\x60\xa0\xb0\xb2\x69\x52\x42\x51\xea\xdc\x9b\x70\x75\xc2\x16\x37\x65\x17\x3a\x12\x77\x44\x64\x99\x46\xcc\x63\x11\xdd\x7f\x76\xd1\xec\x41\x56\xb6\x21\x8c\xb3\x77\x22\xba\x67\x77\xd7\x53\x8c\x06\x4e\x0a\x66\x44\x81\x5e\xfb\xb4\x4f\x9d\x77\xb7\x82\xaf\x5e\x80\xc2\xaa\x6f\xde\x2a\x9f\xaa\xc0\x65\xeb\x33\x0d\x22\x40\x14\xc4\x4b\x1a\x21\x49\xb1\x34\x00\x04\xe3\x85\xcd\x66\x04\x86\x78\xa6\x37\x90\xbc\xa8\x2c\x82\x8c\x7f\x29\x5f\x88\xb4\x83\xb8\x33\x53\xf1\xdc\xfa\x49\x0e\x05\xf3\x34\xca\xb2\x76\x0c\xf2\x3a\xda\x38\x06\x6e\x34\xd6\x5b\x7a\x91\xdd\x7f\xa3\x03\x7a\x0d\x15\xf2\x87\xc3\xbd\x9e\x6b\x08\xef\x5e\x26\x2b\xeb\x6d\x4b\x96\x94\x62\x09\x03\xfa\x8d\x1e\x0c\xf2\xd2\x94\x74\xa5\x62\x82\xe9\x39\x2e\x3c\xa3\x05\x09\xb2\x9e\x78\x5c\x45\xd8\x04\x8b\x03\x84\x7a\xcd\x8e\x10\x3c\x66\x6a\x49\xd6\xc4\x2c\x4b\x13\x60\x86\x8e\x91\x84\x1e\xd8\x33\x74\x15\x1d\x1f\x96\x66\x1b\x1b\x90\x7c\x5c\x59\x20\x5e\x57\x32\x5e\x10\x18\x18\xc1\x30\x07\x36\xb8\xf9\x03\xef\x26\x53\x7b\xf1\x8c\x69\x1d\xed\x71\xde\xe4\x2a\x25\x6c\x85\xb4\x8f\x6c\x05\x78\xac\xdb\x80\xfc\x88\xa7\x51\x49\x7e\x32\x48\x97\x6f\xb3\xe0\xef\x46\x10\x7a\xaf\x9f\x99\xe8\xaa\xd5\xbf\xae\x64\x1e\x9a\x5d\xd1\x05\x68\x3d\xd5\xa6\xb0\xdb\xbc\xb8\x4a\xd5\x02\x56\x4e\x37\x4a\x70\xc7\x89\x65\xc4\x75\x9e\xc4\x43\xf4\x1d\x3b\x26\x97\xee\xd3\x5d\x0d\xbc\xb4\xa6\x1f\x57\x93\x5d\xf7\x8c\x12\x19\xd4\x98\x1b\x87\x51\x20\x2c\x29\xab\x6a\xf5\x7a\x52\x50\x1a\x0f\x58\x56\xee\x7c\xea\xb0\x33\x54\xfb\x72\xd0\x44\x37\x99\x62\xf6\x8c\xa5\x27\x97\xd9\x3d\xc9\x07\xd0\x7d\xa0\x28\x73\x9c\x1f\xdd\x96\x45\x19\x8b\x78\xfe\x84\x3e\x9c\xd1\xb7\xfd\xfa\xe2\x46\x1a\x9b\x07\x36\x40\x79\x64\x54\x85\x98\xe7\xb1\xef\xc7\x08\xf6\x7b\xc4\x33\x30\xc3\x83\x5b\xe3\xe1\xed\xd8\xd6\x71\xed\xa3\x8b\x8c\xbc\xc4\x98\x7f\xc4\x6f\xab\x96\x1c\x38\xfb\xd6\x91\x5b\xa4\x08\xef\x36\x2b\xc7\x2f\xd7\x4a\xdc\x4d\xaf\xb5\x5b\x5f\x61\x56\x80\x1f\xb2\xb8\x5e\x42\x76\x94\x85\xf2\xde\x1e\xe8\xcf\x14\x68\x87\xc3\x88\x3e\x10\x90\xd3\xb8\x03\x29\x62\xd5\x6f\x2b\x84\x06\xe0\x8f\x07\x21\xa0\xb3\x5c\x58\xbf\xe1\x56\x14\x8e\xd7\x21\xb5\x79\x05\xc1\x2d\xe6\x7a\x5d\x25\xb6\xb1\xdc\x15\x8e\x8c\x0c\x9c\x58\xa4\xea\x47\x6a\x93\x29\x09\xb0\x24\x8c\x52\x9b\x49\x2a\xdc\x66\x87\x77\x9e\xb5\x4a\xa8\xe3\x88\x0c\x9a\x18\x38\x23\xb4\x4a\x1f\xc8\x85\x1a\x24\x31\x81\xbc\x92\xa6\x81\xa7\xe6\x6e\xa8\x72\x24\xd8\xb2\x27\x3b\x44\x02\xd4\x52\xa4\xe7\x62\x95\xe8\x42\x84\xd1\xa1\xe1\xf7\xcf\x96\xcd\xb6\x62\x3c\xd9\x35\xf4\x9d\xd9\x6c\xf7\xdd\x82\x8c\x7c\x1a\xd0\x9e\x6d\x26\xe2\xa9\xfb\x6e\xf7\x62\xa8\x05\xf0\x7b\x71\x58\x39\xef\x70\x0d\xe0\xed\x4f\x23\xd5\x97\x76\xe9\x47\xdc\x24\x11\x09\x13\xf7\x80\x46\x33\x45\xab\x92\xe7\x5c\x16\x42\xe8\x99\x24\xc7\x33\x52\xd6\x85\xac\x2c\x35\x20\xa4\xbb\xdb\x44\x4a\x17\xc8\x00\x05\x9f\x2c\x79\x92\x96\x79\xa7\xb9\x01\x57\xe5\x93\x68\x27\x76\x8d\xd2\x29\x14\xcb\xda\x26\xcd\x05\x30\x07\xbb\xc8\xb1\xa6\xd4\xdd\xc6\xd5\xf8\xde\x8e\x2e\xd8\xc3\xa5\xff\x7c\x3b\x5b\x73\x47\x4c\xf3\x37\x7a\x9e\xa9\x01\x12\xef\xc7\x6f\xf4\x95\xea\x88\x06\xd7\xbf\x34\x6c\xa2\x3b\xe0\x13\xbf\x74\x25\x64\xe1\xfa\x1e\x3c\x8f\xfb\x4c\x31\xbd\xd8\x38\xf7\xfa\x27\x3b\x65\x17\xac\xda\x35\x97\x71\x6a\x54\x5e\x5e\xd4\x79\xaf\x1d\xce\xdb\x5c\x89\x0a\x2b\x1c\xbb\x83\xfa\x20\x46\x66\x1e\x35\x02\x2c\xf7\x8d\x53\x2d\x32\x73\x27\x96\xb2\x56\x4b\x35\x5e\xb2\x2d\x4e\xc7\xeb\x30\x94\x06\xd9\x6d\xd8\x5f\x5d\x7f\x39\x0b\xdb\xfe\x99\xd4\x97\xea\x5e\x5b\x26\xab\xdf\x80\x21\xe1\x43\xf3\x48\x88\x48\xe6\xd0\x41\xed\xa2\x1b\x0e\x94\x3a\x10\x48\x66\xa4\x76\xc8\x38\x3e\x93\x94\x0e\x1e\xd1\x05\xe0\x56\x46\xbe\x35\xcd\xde\xba\xe8\xe2\xb7\xbf\xb3\x6c\x5b\x5b\xb6\x84\x45\x05\x94\x76\x2a\x8a\xca\x1c\x5c\xff\x64\x9e\x64\x02\x0f\x61\x3d\x88\x48\x06\x54\x0f\x07\xd8\x42\x3d\xb1\x4d\x4d\x72\xf6\xe8\x4a\xa7\x6e\xc1\x0c\x89\x89\xed\xdd\xa1\x4f\xf9\xca\x72\x5d\x30\x5d\x88\xac\x55\xfc\x56\xb4\xcb\x6d\x26\x26\x52\xaa\xa2\x1e\x9f\x32\x58\xbf\xe4\xae\x94\x9e\x5b\x67\xc0\x61\x34\x09\x4c\x46\x7f\xb8\xb9\xbc\x60\x19\xdf\x02\xf6\xb1\x50\x0c\x5f\x05\xc2\xd1\xba\xa0\xda\x37\x03\xd5\xce\x57\xa5\x0a\x8e\xa9\x05\x51\xb7\xfb\x27\xa8\xc6\xa6\xb2\x08\x6b\x86\x96\xa4\x91\x59\xb9\x4a\x8f\xb2\x94\xcb\x00\xde\xae\xc7\xac\x56\x7d\x88\x67\x70\x9e\x4d\x42\x8c\x41\x03\xc0\x5e\x41\x6b\x21\x2f\x5b\x01\xd0\xc0\xbb\x63\x17\xd4\x61\x10\x86\x4e\x19\xb1\x13\xd8\xf9\x01\xb3\xc0\x60\x4e\x04\x64\xcf\xb0\xb0\x0c\x87\xec\xe1\x1a\x40\xb7\x9d\x0c\xe0\x3c\x4a\xb9\xd6\x3b\x51\x3a\x2f\x42\x25\x1f\x44\x2d\xee\x17\x5f\xd5\x76\x22\x8c\x10\xb8\x4d\xf0\x5e\xea\x1e\x03\x5b\x82\x15\x5d\x3e\xe9\x5b\xa0\xef\x07\xd9\x20\x08\xfa\x40\x7c\x51\xf0\x3d\x32\x41\xde\x8b\xad\xb5\x70\x91\xa8\xe2\x1b\x31\x72\xc6\x56\x67\x4d\x0c\x40\x7f\xcd\x82\x67\x12\x50\xb1\xef\xc3\xe6\xb1\xf7\x4a\x8d\x10\x9f\x49\x95\x73\x2c\x96\x87\x08\xa7\x99\x7c\xaf\xd4\x98\xbb\x4b\x2c\xb5\x9f\xc4\x4d\xbd\x42\x42\x45\x01\xe6\xb0\x36\x9d\xfd\xf7\xe6\x0f\x89\xc4\xf4\x84\xc9\xc6\x5c\xa0\x68\x9c\x60\x45\x41\x83\x6c\x36\x7c\xf5\xa8\x59\x8c\x94\x32\x65\xa2\xd7\xe0\x76\x41\x3f\x27\xd4\x4f\x47\x0a\x02\xb2\x72\x2e\xb5\xd9\xc3\xe0\xaa\x11\x0f\x82\xec\xb5\x15\x8c\xc1\xf4\xdd\xb9\x83\x2d\xe1\xbe\xa4\xd4\x1d\x1d\xbb\x2d\xb8\x74\x1c\x72\x39\x07\xb8\xf9\x00\x42\x3b\x32\x70\x7e\xe0\xd9\xae\x60\xd8\x83\x4b\xdc\x37\x4b\x8e\x50\xab\x7e\xa3\x82\x4c\xe6\x90\xc3\xb0\x12\x11\x1b\x8e\xde\x9d\x3c\xf0\xc4\x69\xe5\xb4\xdf\x9f\x72\xa7\xb7\x81\x61\xa0\xa8\xd8\x7f\xdc\x04\xdc\x96\x0e\x32\xe8\xee\x82\x46\xb0\x43\x86\x38\x20\xe5\xc3\x2d\x3d\x66\x37\x42\xb0\x8f\x30\x52\xa6\xb2\x8f\x94\x81\x14\x50\xd0\x05\x4f\x5a\x13\xc4\xc1\xdb\x53\xb9\x54\x87\xc9\xff\x7c\xd5\x40\xd9\x1e\x34\x2a\xed\xed\x3c\x14\xc7\x0b\x96\x7e\xf9\xb2\xb4\x22\xbd\x0e\x86\xda\x5c\x5f\x79\x7b\x13\x05\x1b\xdb\x96\x1a\x95\x0c\xa6\xf8\x29\xc4\x75\xb5\x45\x62\x7a\x39\x42\x32\xf6\x7b\xa9\x1e\x25\xca\x63\xaa\x89\xbd\x36\xfb\x0f\x74\x16\xf4\x0b\xa1\x26\x58\xa2\x34\x7c\x03\xec\xf0\x13\xf7\x37\xbb\x41\x17\x38\xb6\x19\x52\x87\x69\xd0\x77\x29\xe9\x17\x1c\xe0\xaf\x27\x23\xf6\xdd\x88\x9d\x8e\xd8\x78\x3c\x7e\x33\x62\x82\x47\x6b\xdb\x22\xfc\x04\x45\x7f\xc1\x57\xa6\x6c\x4a\xfb\xb3\x0c\x2a\x80\xf4\x80\x46\x3f\xb1\x24\x88\xdc\xbf\x15\x58\xd5\x6c\x17\x30\x34\x9b\xe2\xc8\x08\x2e\x14\xad\x55\xe2\x1b\x05\xc8\x73\x11\xa9\xdc\x62\xd7\x75\xa1\x72\x8b\xc3\x7d\xe0\x39\x4f\x24\x30\x56\xf0\x66\x14\x02\xd5\x1c\x70\xd6\x8b\x4f\x7c\x03\xfd\x4f\xa4\xa3\xed\x35\xc3\x74\xeb\xda\x5f\x6c\x33\xf2\xb3\x3d\xe6\x49\x51\x18\x85\x4c\xcf\xe4\x0d\x3b\xf9\x96\x4d\xb2\x2c\x15\x6c\xc2\xfe\x8b\x7d\xc7\x25\x97\x9c\x7d\xc7\xfe\x8b\x9d\x72\x59\xf0\x54\x95\x99\x60\xa7\xec\xbf\xcc\xb0\x99\xf2\x2e\x94\xd1\x80\xb6\x23\xc6\x99\x2c\x53\x54\xf4\x5e\x5b\x8c\xeb\x1b\xd7\x2f\xee\x67\x67\x21\x8a\x47\x21\x24\xd3\x6a\x43\x47\xe1\x9f\xdc\xe9\xaf\x13\xb9\x4a\x45\x41\xeb\xa1\x8a\x46\xc6\x0a\x8e\xa0\xa7\x27\x33\xe9\xec\xd4\x7f\x32\x2d\xfe\x13\xfb\x2f\x76\x51\xa6\xa9\x69\x92\x11\x34\x66\x21\x9d\x30\x1b\x1d\x26\xe4\xf8\x31\xb9\x4f\x32\x11\x27\x1c\xe2\xc3\xcc\x5f\xc7\xb7\x30\xdb\xf3\xd2\x53\x81\x86\x7b\xda\xa5\x63\x3b\x44\xf4\xbc\x08\xd7\x84\x4b\x16\x18\x6a\x2b\x9d\x20\x94\xf0\xd3\xe1\x4a\xb0\x27\x40\xa6\xfd\x40\x77\x14\x4c\xa5\x17\x3a\x28\xdb\xeb\x77\x59\xbf\x32\xf3\xaf\x56\xfa\x8f\x5e\xd9\xbf\x76\x8d\x87\x6f\x23\x28\xa7\x38\x39\x3e\x38\x13\x2e\x32\x10\x4b\x88\xfb\x6e\x0b\x29\x3f\x6c\xd9\x78\xed\x44\xf7\xb6\xb9\x4a\xa3\x36\x5a\xf0\xd5\x88\x65\x2e\x8f\x94\xdd\x54\xce\xb1\x8d\xfb\x18\x73\x26\x90\xb2\xf9\xda\x02\x88\xcc\x5a\xa6\xf8\xc3\xe3\x58\x6d\x78\x22\xdf\x40\x1d\x96\x3a\x6f\xcf\x40\xb5\x5c\x57\xf6\x8f\xd0\x2d\xdf\x89\x66\xec\xa6\xf6\xaf\x2a\x3b\xb5\x14\x6e\x6d\xdb\xe1\xc0\x1c\x66\x3e\xc3\xe9\x67\xbc\x0e\xfd\xd4\x58\xa2\xbd\x73\x1f\x50\xbe\xb1\x0a\x7b\x0a\xe8\xf2\x9e\x41\xae\x97\x6f\xdd\x65\x2e\xfb\xa9\x9a\xe2\xb5\x32\xc4\x2a\xe9\x95\x0b\xb7\xd6\xd8\x3b\xba\x89\x61\xdc\xb3\x11\x93\x49\x7a\x6c\x44\xe5\xf1\x85\x92\x82\x71\xad\x93\x15\xb2\xde\x81\x41\x0d\x93\xc8\x5a\xa5\xec\xb6\x7a\x65\x08\x44\x10\xe8\x67\xa6\x49\x88\x98\x2e\x8c\x14\x36\x53\x90\x6e\x67\xd2\x7c\x41\x1a\x01\x44\x4f\x25\x8e\x1c\x1d\x6b\x23\xee\x71\x5b\x17\x1d\x88\x41\xe1\x2d\x0b\x6c\x17\x35\xc3\x01\x0b\x8e\x76\xe2\x01\x1e\xb7\x8b\x80\x18\x94\x4a\xb3\xac\x51\x08\xa7\x59\x88\x54\xc9\x95\x59\x15\x5d\x42\x18\xa4\xc0\x33\x35\x01\x0b\xeb\x6c\x81\x51\x56\xe8\x15\x9a\x12\xa3\xa7\x24\xb1\x37\xa9\xe9\x72\x61\xf4\x38\xe7\xed\x71\xda\x08\x75\xae\x8b\xa7\xe2\x30\xd8\xd2\x9d\x91\xc1\x2a\xb7\xc0\x39\xe7\x49\x44\xc5\xc5\x73\x38\x61\x8f\xba\x10\x1a\xf9\x20\x53\x4e\x87\x67\x7b\xc4\x54\x8e\xf4\x9d\xd6\x83\xed\xf8\xb7\x9a\xb5\x77\x6f\xe9\x9d\xd1\x1e\xed\xb6\x4f\xf2\x93\x36\xf8\x42\x7a\xec\x86\x5f\x33\xf0\xa3\x4f\x38\xc8\xfb\xc9\xf4\xbc\xf6\x5e\x33\x1c\xa4\x25\x66\xe4\x76\xfa\xe1\xec\xdd\xfc\xf2\xee\xb6\xf1\x9e\x29\x8d\x7e\xda\x13\x11\xd2\x39\x7a\xcf\x81\x89\xff\x05\x73\x98\xcd\xd5\xd2\xd2\x03\xf4\x3f\x9e\x1b\x59\xe4\xfa\x41\x2f\x8b\xe0\x76\x1d\x66\x5b\x6b\x2e\x9c\x4e\x92\x13\x39\x27\x5f\x6b\xbf\xc6\xd6\x07\xec\x52\xbe\xc7\xcf\xaf\x54\x9a\x44\xbb\x91\xdc\xf6\xb0\x34\x5a\x55\x13\x1a\xbb\x10\x10\xda\x40\x06\x5f\x6a\x14\xde\xcf\x0a\x11\x15\x1e\x4b\xd0\xec\xdc\xff\xd3\xe8\xd1\xfd\x16\x18\xb4\xc3\xba\x61\x83\xe4\xe4\x0e\x9d\x00\x27\x3b\xb0\x46\x43\xb2\x14\xd4\x72\xc1\xb2\x0b\x32\x2f\xe2\xe4\x73\xaa\x8c\x3c\x1c\x0f\x8f\x6b\x95\x92\x3d\x16\x19\xb8\x67\x32\x13\x79\xa4\x00\x75\x89\xe4\x2e\x8a\x45\xeb\x24\x8d\x7d\x46\xb2\xd7\x10\xa6\x02\x60\xf2\x37\x94\x5c\x57\x38\xf4\x8c\x2d\x7e\xc7\x99\x6f\x97\xdd\x3b\xdc\xdd\x07\x21\xcf\x9e\x13\x77\xbe\x6b\xd9\xff\x4c\xf8\x68\x1c\x0a\xe2\xcc\xab\xe1\x20\x40\xed\x0f\xdb\x33\xc8\xa5\x63\x0e\x7b\x4a\x36\x15\xf9\x6b\x73\x51\x9b\x57\x5a\x66\xf5\xa1\x04\x26\x75\xb4\xa3\x23\x08\x50\x0b\x68\xce\x46\x70\xd4\x04\x3d\xaf\x31\x4d\xea\x4c\x7a\xe4\xc7\x2b\x1d\x6a\x85\xad\xf3\x8c\xd6\x77\x8b\x6c\x1f\xb1\x57\x95\x8e\xbe\x02\xa6\x6d\xa9\xa0\x3e\xf2\xce\x57\x86\x06\x96\xeb\x88\x25\xc5\x4c\x9a\x3b\x9b\x59\x99\xb9\x48\xc5\x83\x69\x5d\xe8\x1d\x22\xbc\xa2\xb5\x9c\xd8\x6e\x43\x70\x14\xb7\x9c\x1a\xb4\x6c\x68\x13\xe6\x21\x63\x33\xba\xa5\x63\xa1\x8d\xd6\x0a\xb9\xa6\xc4\x27\xb3\x01\x12\x70\x7e\x22\xb0\x2d\x16\xd2\xb6\x0f\xf0\x6e\x98\xe7\x7f\x26\xa7\x4b\x20\x36\x00\x3a\x85\x38\x46\x1b\x84\xcd\x3e\xe4\xe8\x33\x13\xf2\x06\x29\xb2\xc8\xd8\x89\xa0\xdc\xd0\xb8\x93\xc4\x83\xc8\xb7\x05\x98\xf4\x61\x5c\xa5\xe0\xc5\x9a\x25\xc5\x08\x78\x4f\xad\xa4\x9c\x49\x1e\xc7\x14\x0f\x8e\xc5\x05\xd7\xd9\xce\x79\xa6\xe7\x0b\xf5\xb0\x4b\xad\x3e\x14\xb9\x8b\xbb\x3a\x4b\xb9\x9c\xe3\x09\xf2\x2b\x60\x77\x83\xb4\xdd\x5d\x20\x8e\x72\x31\x77\x5c\x6d\xcf\xd2\x4e\x27\xef\xaf\x2d\x74\x99\xae\x36\xe5\xc2\x56\x34\xaa\x40\xb3\x17\x9e\xd6\xc3\x59\xe9\x08\x37\x95\x33\x8b\x2d\xe9\x2f\x05\x3c\xac\x97\xd7\x30\x56\x76\xb5\xee\xc3\xf5\xda\x15\xf0\x5b\x45\x5e\xf6\x99\xf9\xda\x19\x52\x9f\xf6\xe1\xa0\xbf\x86\x86\xf8\x24\xe0\xdf\x9e\x66\xbd\x2c\xf8\xaf\xd3\x8a\xd3\x04\x01\xda\xde\x06\xfe\x7d\x0a\x1d\x40\x2b\xac\x33\xa0\xb5\xa7\x65\x0f\x6f\x81\xaa\x05\x1f\xff\x9c\x1e\x0a\x90\x53\x7d\xed\x34\x9e\x50\x04\xda\x35\x66\x53\xc9\xac\xba\x37\x62\xaf\x70\x61\xe9\x57\x64\x80\xa6\xdc\xfe\x04\x96\x89\x69\xf7\x10\x05\x43\x1d\x64\x86\x81\x70\x7e\xbb\xa1\x1f\x70\x27\x5f\xef\x8b\x8e\xcb\x77\x09\x04\xe2\x3d\x85\x6b\x05\x7d\xc8\x0b\x2c\xc0\xc6\x91\x04\xa6\x50\xea\x2e\xf8\x32\x7c\x87\xad\xb7\x93\x7d\x67\x3f\x34\x43\x94\x95\x74\x9e\xda\xe7\x4c\xe5\x33\x69\x4b\x23\x83\xb4\xc6\x04\x81\xf5\xa2\x82\xb8\x20\xd2\xf9\x83\x95\x0a\x50\x00\x9b\x13\x12\x52\x8d\x7a\x52\xf1\xba\x14\x00\x14\xd4\xc2\x21\x50\x21\x0b\x85\xaf\xcd\x28\x1e\x66\x81\x6f\xf0\x98\xaf\x13\x0f\xa7\xa9\x19\x94\xa4\xb0\x3c\xc7\x41\xcc\x9e\x2e\x81\xad\x7b\x59\x1a\x61\x14\x50\x9a\xcf\xa4\x19\x3c\xb6\x4c\x20\x76\x83\xc6\x65\x26\x3f\x28\x6d\x29\x62\xb4\x1f\x0f\x0b\x2c\xa0\x61\x7b\xe5\x52\x63\xd2\x0f\xef\xe0\xd0\x26\x8f\x0f\x92\xbd\xb9\xa3\x05\x82\x35\x89\xe7\x69\xab\xca\xdc\x77\x2a\xe2\x72\x26\xff\x6a\x86\x07\xae\x53\x5c\xda\x69\x55\x4b\xdc\xc2\x30\x83\xe0\x2a\xfb\x88\x85\xbe\xfe\xdd\x9b\x8f\x6f\x30\xb8\xaa\xd4\x90\x8d\x78\x54\x3d\x40\x5c\x76\x8b\x32\x4d\x01\x87\x60\x7b\xe0\x18\x96\x7c\x15\x3b\x71\x78\x74\xa9\x9b\xcb\xaa\x8a\xd1\x67\xa3\xf7\x33\xeb\x4f\x58\xc4\x8b\x68\x7d\x64\x75\x39\x12\x63\xf6\xf4\xa3\xe9\xc3\x28\x28\xa3\x69\xb1\xd6\x04\x0f\xe6\xc2\x99\x6f\x1c\xe5\x6c\x65\xbd\x98\x2e\x80\xf9\xff\xb6\x9e\xed\xcc\x31\x62\xe3\xe2\x44\x1c\x50\x55\xcf\x73\xaf\xdb\x5c\xa3\xfe\xc6\x49\x3e\x12\xc9\x37\x22\x66\xaf\x20\x0c\xf8\x95\x9d\xfc\x99\xcc\x16\xe3\x74\xbb\x2c\x88\xb7\xd0\x0c\xca\x18\xb2\xf2\xed\x39\xe5\xe6\x71\xf3\x9a\xb4\x67\xb0\x3b\x2f\x5a\xed\xba\x8e\x1b\x1b\x57\x53\x7f\x85\x05\x6d\x5c\x6e\x74\x6e\xaa\x98\xc0\x6a\x7a\x10\xae\xef\x47\x6c\x91\x73\x09\x09\x95\xe2\x50\xa9\xf2\xbb\x13\x2e\xcf\x48\x0a\x68\xe3\x02\x25\x4f\xb7\x10\xff\x33\x9a\x49\x64\x50\x04\xaa\xfd\x6d\x94\x26\x11\x5b\xe5\x3c\x5b\xd7\xf4\x20\xf1\x20\x64\x01\x79\xb9\xaf\x05\xd7\x87\x61\x35\xf2\x7a\x09\xac\xb7\x37\x6d\x22\xe1\xf6\xc1\x65\x8d\xf3\x1a\x9a\xd7\x71\xb4\x00\x3e\x53\xc4\xf3\x61\x7c\x57\x7b\x59\x99\x2b\x5c\x9f\x44\x3c\x07\xfe\x67\xd3\x39\x66\x6b\xdd\x07\x7e\xc0\x71\x25\x2a\x26\x8b\xe8\x3d\x14\xb0\xe1\xa8\x9d\x0e\x22\xe8\x9d\x56\xb5\x48\xee\x39\xab\xbc\xdd\x9c\xdc\x7e\x68\xa9\xb0\x61\x10\x4e\x70\x8c\x28\x6f\x2a\x90\x77\xb2\x3f\x96\x0b\x95\x5a\xf6\xd3\xe9\x3b\xa6\x72\x48\x3c\x54\x28\xfa\x29\x89\xbb\xb4\x83\x44\xc6\xe2\xd3\x41\x14\x44\xbb\x0f\x7a\xab\x36\x9b\x6a\x82\xfc\x36\xf5\xce\x82\x74\xca\x85\x39\x84\x0b\x7b\x33\x6e\xbc\xa5\xeb\x50\xe5\x49\x5a\xac\x01\x3f\x8c\x21\x3a\x7e\x50\x37\x7c\xcb\xa2\x35\x97\xab\xc0\x34\x01\x70\x4e\x91\xa9\x1c\x13\xf4\x3e\x00\xd7\xa7\xca\x2d\xc5\x03\x11\x17\x50\x9c\x90\x73\x63\x20\x3c\x5f\x59\x76\x02\xbe\x5a\xe5\x62\x05\x61\xac\x33\x59\xa1\x5e\x01\x9e\x53\x9b\x1b\x08\xeb\xd9\xc5\x5c\xf1\x3c\xf4\x4f\x5d\xb7\xc1\x22\xdf\xba\xb8\x7f\xca\x6e\xed\xf7\x73\x7d\x58\x47\x2c\x11\xe3\x11\xfb\xca\x87\x24\x88\x48\x49\x47\x1c\xd0\x11\x35\x5e\x33\xf9\xb3\x3d\x57\x87\x26\x4f\x54\x7b\xdb\xe1\x59\x23\x47\x76\xeb\xa2\xd9\xc9\xbc\x50\xf0\xa2\x1c\x70\x06\x9d\xf2\x82\xa7\x6a\x75\x6a\x3e\xbe\xc1\x6f\x77\xad\xeb\x53\x8c\x17\xb0\x1c\x7d\xe6\x7d\x73\x72\x9a\xba\x3d\x87\x7f\xdb\x58\xef\x35\x20\xa7\xaa\xdb\x80\xfc\x1c\xaa\xba\x25\x62\xda\x6f\x43\x4e\x3b\xc8\x85\x76\xf4\x69\xa8\x89\xd8\xa2\xfa\x29\x30\x49\xd7\xaf\xb1\x2d\x12\x20\xcb\x55\x5c\x46\x22\x36\x3b\x17\xee\x43\x88\x87\x72\x1c\x47\x15\x21\xd9\x76\xd0\x56\x88\xda\xe0\xd4\xfd\x5c\x36\x87\x5e\xdc\xf8\x6e\xf8\xef\x3a\xec\x0d\x56\xe3\x6b\x1b\xf4\x70\x7f\xe2\x38\xe5\x03\xcf\x29\x57\x7d\x95\xd1\x5e\xe5\xc9\x2a\x91\xbc\x50\x39\x7b\xed\x98\x0c\xde\xb8\x34\x78\xdd\x1a\xc2\x40\x31\x51\x19\x22\x14\x13\x9f\x55\xf1\x68\x5b\xa4\xe6\x2d\x5d\xf0\x4d\x16\x72\x44\x83\x15\x38\x18\x99\x14\x07\xc1\xe9\x26\x60\x3b\x4d\xb4\x8f\xda\x9d\x49\xf2\x38\xe0\xbc\xa9\x3c\x4c\x72\xd0\x79\x36\x67\x65\x31\x7f\x22\xef\x19\x7e\x3c\xcc\xf0\x44\x20\x88\x0f\x3c\xdb\xcd\x24\xc5\xc9\xe4\x80\x61\x8b\x64\x8e\xf0\x9a\x4a\x75\x7d\xee\x4e\x23\x34\x90\xd9\xba\xee\xb8\xbf\x3e\xb7\x8e\x22\x7f\x1f\xac\x5c\xb0\x60\x22\x90\x52\x17\xc3\xc0\xf0\x6a\xef\xc4\x9a\x39\xc5\x2d\xfd\xd4\x69\xaa\xca\x98\x91\x50\x23\x10\x40\x3e\xc6\xd3\x11\x38\xae\xc7\xe3\xae\xb0\xb6\x81\xe9\xcd\x9d\xfc\x81\xef\xda\x77\x20\x3c\xeb\x90\xc0\x3b\xb7\x3e\x8d\xec\x8b\x4d\x3d\x8d\x34\xcc\xbd\x13\xc7\x83\xe6\xde\x59\xc1\x81\x70\x73\x98\x81\x14\xee\xa3\x49\x9c\xc2\x7e\x0b\x1d\x08\x2d\x94\xe0\x15\xc7\xac\xbe\x3f\xb8\x3a\xcb\x42\xb1\xbb\xaa\x8c\xe7\x42\x16\x73\xa8\x71\x58\x65\x50\xc9\x15\x7c\x5e\x51\x98\x7a\x19\x82\xff\x7c\xab\xd0\xbe\x6f\xd9\xb5\xfe\xc2\x6e\xc8\xa6\x65\xe4\x55\x02\x10\x62\x7d\xcf\x5e\x27\x80\x78\x0a\x7c\xa1\x6e\xe2\x3a\xa6\x8b\x3a\xf4\x84\xd1\x0b\x3a\x54\x11\xed\xbd\x3a\xe4\x5b\x0f\xae\x6a\x28\x85\xcc\x7b\xc4\x09\x60\x44\xad\xfd\x2d\xc8\xb8\x71\x51\xf9\x1b\xd8\x91\xcd\xfc\xa5\xec\x6f\x22\x57\x3e\xfe\x0b\x8d\x55\x61\xc1\x3b\xf5\xf5\xa7\x27\x0b\x47\x7d\x1c\xd3\x54\x87\x79\x5a\xe1\x17\x22\x30\x43\x8b\xc2\x62\x6b\xaf\x23\x1d\x2e\xa4\x4c\x44\xf3\x8e\xa4\x3c\xbd\x9a\x12\x5c\x3c\xc3\x24\x3b\x49\xed\x30\xb3\x1b\xf4\x18\xec\x15\x14\x58\xb5\xe1\x19\xa1\x0b\x09\x48\x5e\x77\xde\x8c\xa1\x13\x7f\xfe\xd3\x5f\xc6\x49\x47\x88\x37\x34\x7d\x28\x58\xcb\x35\xfe\x7d\x9e\x08\x19\x83\x33\x96\xc7\xcd\x7c\x71\xb2\x62\x9d\xaf\x88\x67\xb3\x0c\x9f\x25\x1e\xbc\xfd\xa8\xd5\x73\x5c\x44\x9f\xc1\xa3\xef\x85\xac\xdb\xbe\x15\x7f\x5f\x97\x2a\xa1\xe7\xf1\x56\xf2\x4d\x12\x7d\xd6\x36\x6e\x13\x91\xc6\xd0\x44\xaa\x7d\x9f\x57\x2a\x16\xd1\xfd\x50\x9d\xe0\xc9\xd9\x2e\x44\x74\xcf\x7e\xb8\xfd\x70\x8e\xc9\x8d\x13\x3d\x93\x17\xbc\x48\x1e\xc4\x5d\x9e\x3a\x77\x00\x81\xb4\xf3\xd4\xee\x91\x2a\xfb\x7a\xc0\xf4\x65\xa9\xda\xad\xe2\x10\x26\xc7\xd8\x6c\x8f\x16\x65\x74\x2f\x8a\xe3\x9c\xcb\x58\x6d\xb0\x1b\xc7\xba\x5c\x2e\x93\x4f\xe3\x82\xe7\x1d\x99\x32\xd0\x8e\xf0\x2b\xea\xb9\x3e\xff\x59\xe1\x75\x5e\x54\x75\x1f\x21\xcc\x9b\xb2\xea\x57\x94\x5b\x8c\x4a\xe4\x1b\x01\x54\xa7\xac\x9a\x65\x06\x4a\xc1\xc8\x69\x48\xc6\xaa\x35\xc5\x4f\x28\x4a\xf5\xfe\x31\x50\xee\x3f\x06\xad\xf2\x2e\xec\xb0\x51\x3e\xc1\xe9\x86\xdf\xe3\xfd\x70\x95\x0b\xad\x47\x4c\x2b\x68\xf1\x4c\xda\x48\x04\x1b\x2d\x07\xb8\x17\x20\x4b\x4e\xb7\x2c\x52\x99\x83\xcc\x63\xbf\xd6\xea\x11\xec\xf4\x61\x9c\x30\xa4\xf0\x2e\x65\x91\xa4\x8c\x2f\x0b\x32\xe2\x43\x66\x08\x9b\x09\x4e\x8f\x67\x12\x5c\xb1\x11\x74\x1f\x20\x12\xce\xfd\xe2\x3a\xa1\xd9\x92\x47\x49\x9a\x14\xc4\x57\x07\x21\x66\xdc\xf4\xd7\x9c\x07\x66\x2c\x73\xbe\xe5\xa9\xbf\x58\xf1\xb4\xf4\xa1\xd1\x47\x5a\xec\xe0\x43\x4d\xf4\x1c\x0d\x04\x2f\xb7\xc1\x3d\x0a\x30\x09\x9d\x0f\xc8\x1d\x3f\x31\x95\x5f\xd4\x4e\xd1\x7f\x0a\xff\x5b\xb9\x87\xef\xd2\x0a\x0e\xb8\x90\x1f\x72\x38\x36\xaf\xdc\x2e\x7d\xba\xd7\x33\x92\xd8\xa2\x93\x2b\xaa\xb8\x0f\x3e\x76\xc7\x23\xf8\x4c\x3a\x2e\xfd\x63\x9b\xf4\xae\x59\xc3\x80\xd1\x6b\x57\x12\x3f\x93\x39\xa3\x8b\xd0\xbf\x4f\xf3\xad\x35\xfe\x4a\xa9\xf4\x50\x8b\x3c\x51\x72\x24\x4a\xce\x21\x0f\xf4\x21\xd7\x49\x5c\x00\xce\xb0\x35\x7d\xe7\x7c\xee\x8e\x21\xbf\x9a\x3d\x8e\xe0\x60\xd4\x04\x10\x64\xd0\x88\x1d\x38\x75\x9d\xb5\x80\x2e\x06\xe2\xed\xa1\x0c\x44\x6b\x59\xd5\xbe\xe9\x22\x08\xd8\x59\xb8\x6f\x23\xb0\x08\xd7\x5a\x38\xc8\x58\x87\x59\x9b\x6b\x55\x39\xc3\x5d\xc8\x36\xee\xc6\x31\xa8\xdb\x8e\xe7\x86\x4b\xb2\xfc\x91\x16\x3f\x93\x81\xc6\x8e\x8c\x78\x36\xa0\xc1\x8d\x5a\x9b\x3d\xaf\xb2\x0c\x0f\xb6\xe7\x1d\x92\x52\x62\xa7\xe4\x7c\x17\x26\x87\x04\x2c\x48\xa4\x36\x8b\x44\x5a\x4e\x0a\x32\x72\xc3\x55\x63\x62\x19\x7b\x9d\x43\xc2\x5e\x19\x30\x65\x50\x6d\xec\x9d\x9a\x13\x92\x1f\x87\x22\x6b\xdf\x75\x3c\xbc\xdf\x3d\x6f\xf6\x8b\x0e\x4f\x63\xbd\x07\xe6\x00\x49\x1f\xf9\x56\x43\x02\x75\x61\xa4\xe2\x12\x0d\xbb\xd5\xf6\x8f\x02\xf5\xc3\xb2\x41\xcf\x24\x8c\x10\xb2\x85\x59\x41\x6a\x24\x2b\x2c\xc0\xd4\xa6\x8a\xf7\x4c\x6f\xaf\x74\xfb\xe0\xfc\x3a\xbe\x9a\x7c\xa7\xaf\x06\x9d\xd0\xff\x3d\xdc\x33\x3b\x8c\xc0\x07\xda\xa2\x83\x63\x12\x35\x46\x82\x09\x41\xd8\x98\x73\x51\x8f\xd8\x86\x27\x92\xb6\x01\xa6\xe3\x8c\xc5\xa2\x5c\xad\x3a\x4d\xa4\xbf\x7d\x5f\x4b\x75\x9f\xfc\x8f\xb7\x85\xef\xe4\x2a\x7c\x0e\x6b\xf1\xd4\xd6\x84\xe6\x6b\x73\xef\xfb\x3c\x06\xe2\x5f\xd1\x1a\xdf\xea\x12\x6b\x2c\xa2\xe7\xb1\xc6\x4f\xfb\x58\xe3\x2d\xb6\x0b\x02\xfc\xe8\x3a\x6d\xf1\x37\xff\x30\xd3\x7f\x1e\x33\x7d\xaf\x45\x81\xa4\x3e\xf3\xa4\xaa\xa0\xef\x68\xe1\x13\x79\x2f\x1d\x15\x34\xb4\x0a\xb9\xe5\x8c\x74\x8f\x35\x5b\xf0\xe8\x05\x88\x30\xe1\x74\x3c\xdc\x1e\xb8\x07\xfc\x72\xa3\x36\x82\x41\x55\x1a\x13\x39\x31\x8a\x62\x1c\x01\x5a\xd5\x74\xd0\x23\x46\x08\x8f\x02\xc7\x29\x22\x57\x62\xaf\x54\xbf\x96\xe2\x91\x99\xd3\x6a\x14\xc2\xf7\x82\xe9\x81\x0c\x7f\x6f\x8c\x76\x58\xc1\xfa\x3b\xc2\x8e\x5c\xac\x78\x1e\x43\x84\x09\x6d\xc9\x94\x47\xf7\xe6\xdf\xd0\x3e\xaa\x91\x20\x86\x96\x2b\x00\x61\xaf\xbe\xb4\x44\x46\x48\x85\x68\x39\xdd\x5d\xfb\xf0\x73\xcd\x78\x94\x2b\x8d\x46\x23\x97\x18\x1b\xe2\xab\x41\x81\x7d\x48\xe2\x92\xa7\x58\x63\xa7\xa5\x7d\x28\x7c\xad\x0e\x38\x0a\x72\xd8\x35\xd1\x6c\x34\x1d\xc8\x50\x05\xc3\x38\x9e\xc9\x77\xce\x61\x72\xc2\xee\xb4\x20\x94\x99\xb6\x59\x00\x76\xb6\xf4\xc5\xd4\x87\x06\x26\xb0\x53\x87\xd8\x31\x00\x16\x64\x1d\x0c\x84\xee\x1e\x89\x3d\x74\xaa\x87\x4c\xca\x60\x5a\xe8\x69\x90\x48\xdf\x0f\x0b\xde\x13\x72\xc1\xe3\x6d\xc8\xc5\x98\x48\x06\x5e\x3a\xc6\xe3\x4d\x22\xcd\x26\xb0\xc9\x5a\xdd\x49\x63\xf3\x36\x20\xe4\x18\x72\x9a\xa5\x69\x4d\x08\x6a\x26\x85\x51\x2e\x79\x9e\xa4\x5b\xb8\x4f\x64\xb9\x38\x0a\xea\x09\xe6\x87\x22\x9e\x20\x03\x05\x91\xc8\x94\x5a\x2c\xcb\x14\x6f\x1d\x70\x2f\x77\x1d\x20\x89\x74\x37\x1d\x19\x85\xa3\xa0\x4c\x42\x41\xc5\x98\x9f\xf3\x39\xa2\x47\x1a\xde\xca\x61\x1e\x37\xcf\x15\x9a\x03\xc8\x7d\xad\x1e\x6d\xa8\xdb\x23\xf7\x58\xe6\xae\xd3\xf5\xd9\xbc\x2c\xbb\xf5\x50\x7b\x03\xb4\x72\x2a\x20\xfc\x73\xae\x35\x7a\x26\x62\x27\x9b\x12\x09\xdd\xa1\x14\xd7\xde\x72\x5d\x6a\x8c\x98\x33\x73\x09\xe7\x97\x35\x74\x54\x0d\xd7\xcc\xf5\x2e\xd1\x4a\xb2\x59\xf9\xe5\x97\x5f\x0b\xf6\x25\x84\x10\xd2\x7d\x04\xfd\x63\xc0\x16\x8a\xa5\x83\xc8\x76\x15\x08\xa4\x12\x6d\xcc\x08\x6b\x83\xa8\xda\x78\x7d\x00\x79\xf2\x68\xcd\x74\xb9\x40\x04\x23\x27\x17\x0b\x97\x8e\x75\xfc\x5c\x01\x18\x11\x4f\x76\xdb\xfa\xff\x47\x1c\x0a\x98\xf4\x65\x26\x33\x85\xc4\xf8\x00\xfd\x5c\x08\xb6\xe1\xf9\x3d\xe4\xf0\x45\xf3\x3c\x24\x02\x78\x9d\x88\x71\xd5\xbd\xf0\xa6\xd2\x1e\x72\xe8\x20\xe1\x35\xcb\x4b\x29\x6d\x52\x32\x66\x14\x53\x6f\xeb\x1f\xcd\xe4\xa2\x0c\xef\x9e\x15\x67\x81\x5f\x5a\xe0\x30\x00\x61\xab\x80\xa9\x84\x1a\xc5\xb5\x6f\xd7\x98\xf5\xf0\x1a\xcc\xe4\x33\xbb\x0d\xf6\x19\xfc\xae\x48\x07\xb3\xc6\xbc\x20\x5e\x01\xba\x1b\xe6\xcd\x86\xe9\xc0\x65\x0f\x4a\xce\x15\x24\xcf\x1e\xb1\x1f\x92\x07\x31\x62\x37\x19\xcf\xef\x47\xec\x1d\xba\xff\xfe\xa0\x16\x6d\x36\xbc\x06\xa1\xc4\xc1\x76\xbc\xa7\x99\xb1\x76\xd1\xbc\xb4\x6b\xff\x3f\x37\x88\x01\x58\x97\xef\xfb\xbf\x27\x22\xaf\x83\xeb\xe3\x7f\xba\x25\x62\x8f\x9b\xfa\x1f\xe0\xb5\xff\x91\xb7\xe2\xdd\x34\x1f\xff\x14\xfe\xd7\xca\x2f\xab\x71\x81\xee\x49\x52\xae\x15\x95\xf6\xdb\x0a\x6c\x4e\xe2\xfa\xa1\xdc\x8c\x6f\xee\xb7\x15\x28\x7c\x3c\x76\xa1\xed\x03\x40\xf7\xf4\xa9\x1d\xaf\xd3\x54\xe9\x32\xdf\xbd\xf9\xaf\xab\xad\xb6\xb5\xb7\x10\xbd\xc2\x62\xdb\x2c\x04\xb0\x16\xf4\x85\x9f\xe0\x6b\xf3\xbf\xaa\xc5\x1c\xb0\x56\x87\xed\xf0\xb6\xe2\x1c\x7d\xb4\x8a\x2a\x4d\xf5\x27\xe4\x4d\x26\x80\xef\xca\xab\xa2\xde\x21\x50\x5b\x61\xce\x34\x32\x93\x96\x71\x1f\x23\x66\xf3\x5c\x00\x35\x78\x2e\x20\xd1\x23\x23\x86\xc3\x74\x1b\x68\x44\xc1\xcd\xc7\x83\x62\xc2\x28\x37\x08\x56\xa5\xfb\xd6\x42\x08\xe9\x46\x7b\x88\x2a\x01\x34\xd8\xb5\xd1\x27\xb4\xdb\xa3\xb0\x89\x17\x3a\x92\xd2\x36\xbe\x0b\xee\x82\xa0\x72\xaf\x44\x11\x48\xf3\x9a\x6a\x51\xd9\x9a\x15\x0f\xd5\x6f\x0a\xf1\xdf\xea\x83\xae\x91\x73\x55\x0c\x28\xbd\x7c\x7a\xcf\x61\x2f\xbf\xe2\xc5\x1a\x2f\xb4\x1b\x55\x08\x94\x99\xc8\x12\x84\xeb\x05\xad\xce\x8b\x54\x2d\x20\xc3\x62\xb1\x83\x41\x32\xa2\xad\xdd\x6b\xe8\x9a\x13\xd6\x47\x32\x18\x69\x02\x91\xb6\xb9\xd0\x40\xb8\xd2\xf4\x52\xf5\xc5\x27\x0f\xbb\x74\x37\x9b\x6b\x84\xfe\xbb\xc6\x65\xbb\x99\x92\xc3\x6c\x6b\x00\xab\x9e\x3d\x21\x82\xa6\x91\xe0\x84\xa8\xaa\xc9\x0d\x8c\x6c\xb5\xb5\xfe\xda\x44\xfe\x33\x39\xc1\x27\xc1\x21\xc0\x7d\x8e\x2d\x87\x07\xa5\x9c\xcd\x6e\xff\x61\xf8\x2a\x9b\x84\x08\x44\xb2\x10\x8c\xbc\x2d\x13\x2e\x03\x23\x88\x6a\x94\x45\x92\x0b\x26\x01\x85\x30\x93\xba\x5c\x1c\x79\x62\x12\x73\x8b\x7b\x00\x32\x1d\x2d\x32\x0e\x57\x19\xe0\x2b\x3a\x6a\x39\x86\xd1\x32\xe9\x73\xe5\x58\xfa\x40\x9e\x92\xf0\x87\x58\x49\x8c\x8c\x77\x7d\x77\xe5\x98\xcb\x1a\xdc\xa2\x2d\x5c\x09\x0f\xbb\x5d\xf2\x02\xb2\x79\x41\x04\xe6\x35\xa2\x28\x7e\xed\x03\x3c\xf4\x86\xf6\x3d\xba\xc1\x9f\x36\x93\xff\x6a\xcf\x86\x6e\x50\xf1\x80\x95\x6e\x46\xc6\x1c\x51\x9d\x60\xe7\x4a\xdb\xec\x15\x32\x50\x02\xbb\x1b\xd5\x58\xf2\x6d\xa5\x72\x8b\x6b\x09\x53\xba\x28\x0a\x97\x85\xa7\x0f\x89\x0e\xc8\xde\xa1\xb6\x1b\x21\xd8\x49\x2e\x96\x27\x1f\x73\xb1\x9c\xdb\x99\x1e\x43\x87\xc6\xa6\x47\x4d\xca\xf7\x9e\x8b\x43\x67\x4a\xb6\x93\x1f\xee\xa1\x46\xad\x75\x09\xcb\x09\xfa\x94\x2c\x99\xcf\x6e\x6b\xfa\x03\x0c\x10\x22\xae\x73\xd1\x37\x5a\xf6\xd9\x8f\xb9\x2e\x24\x58\x0f\xa8\x55\x47\x12\xd4\xff\xf9\xc7\x5b\x65\xcc\xfa\x1c\x6f\xb7\x55\xc8\x8c\x15\xf6\x5c\xba\x03\xaf\x1b\x17\xfa\x79\xd1\xe9\x30\x81\x3a\xe3\x8f\x92\x78\x6c\x06\x99\x9e\xfa\x1d\x6b\x35\x00\x51\x70\xac\x35\x30\x70\x7e\x97\x49\x6b\xe9\x4b\x5c\x1e\xcd\x11\xf3\x37\x68\x9e\xa6\x61\x46\x0d\xef\x69\x9b\x49\x1f\x97\x6a\xb4\xd6\x34\xb5\x26\xbc\x8a\xbe\xe1\x12\x1e\xeb\x82\x17\x62\x64\x49\x57\x88\xae\x90\xfc\x61\x47\x0b\x0e\xa9\xad\x5d\x0e\xb5\x7d\xbb\xf9\xb9\x2e\x91\xbf\xb1\xb8\xe8\x3d\x9e\x67\xac\x76\x7e\x2f\x1a\x70\xe6\xbd\x6d\x6d\xf7\x74\x04\x94\x12\xb0\x99\xad\x94\x8d\x78\x9e\x5b\x94\x3f\xd5\xca\x2c\xdd\x79\x78\x2b\xe9\x68\xe7\x5a\x44\xf7\x99\x4a\xe4\x60\x59\x54\xa1\xb8\x80\xc5\x5e\x30\x5f\x9a\xbb\x1d\xf6\x3a\x1c\x2b\xfa\x24\x76\x44\x03\xbc\xc2\x42\x43\x3d\x19\x1b\x67\x2e\x53\x76\xf7\xb2\x7b\x6e\xfb\x85\xf0\x67\xc3\x0b\xd8\x62\x5b\xfc\x43\xb5\x53\x85\xb7\x18\x76\x2a\x4c\xa0\xbc\x11\xfd\xd5\x73\xb0\x39\xab\x50\x18\xb6\x0e\x29\x98\x20\xff\x61\x19\xfa\x87\x65\xe8\xbf\xb9\x65\xe8\x73\x9a\x85\x00\x1b\xf3\x92\x36\xa1\x1d\x0e\xf2\x03\xb6\xa3\xab\x75\x70\x8c\x63\xab\x76\x3c\x0a\x92\x7e\x07\x91\x8e\x4d\xa0\xbf\x25\xc2\x30\xe3\xb3\xe0\xd1\xbd\x90\x9d\x3e\x7a\x4b\x5f\xd4\x99\x7f\xf5\x79\x11\x2c\x6d\xec\x4b\xc1\xd7\xbb\xa1\x2c\x1e\xea\x44\xa4\xc1\x6d\x84\x20\x66\x9f\x80\xee\x69\x3a\x7e\x04\xa0\x31\x95\x3b\x62\x6b\x4d\x51\x78\xe8\x8c\x44\x9a\x24\x04\x4b\xd5\xa8\xa0\xfb\x62\xe2\x6c\xc5\xf3\x4c\xa9\xb4\x15\x1a\xf7\xac\x03\xd8\x08\x94\xe9\x3b\x78\x53\x54\x46\x75\x08\x18\xb3\xa3\xe8\x83\x2e\x7c\x88\x06\xc6\x63\x40\x26\x0e\x58\x4d\x71\x09\xb1\x94\x7e\x38\x82\xf4\x8a\xdc\x19\x5c\x08\x23\xb6\x10\x11\x87\xc4\xaf\x16\xbc\x17\x71\x17\x7d\x12\x92\x22\x35\xc2\x41\x74\xb3\x9e\x0e\xaf\x25\x94\x3b\x4f\xda\xd2\x6e\x0c\xdd\x5c\x35\x0d\xc1\x42\xcb\xb1\xe5\x16\x49\x62\x69\x17\xf7\x25\x34\xb6\x1c\xd3\x73\xc8\xbe\xd8\xef\x84\x6b\x95\x3b\x53\x2a\xe8\x14\xca\xe9\x2f\x48\x7f\x80\x70\x9c\x4d\x4f\xe4\xce\x4c\x4e\x5c\x9e\x5b\x8f\xfd\x72\xc8\x3d\x74\x97\x22\x66\xb1\x31\x35\xc8\xe5\xe8\x6f\x2e\x23\xa6\xcb\x68\x0d\x6c\x95\x55\x39\x15\xca\xad\xe6\x8e\x1d\xcd\xa4\xb9\x10\x81\xa9\x65\xc3\x21\x2e\xfe\xd1\x28\xab\x3a\xf9\x9b\x70\xf0\x2c\x22\xef\x0a\x11\x59\x78\x71\x52\xb2\x15\xbd\x66\x89\x43\x11\x60\xe1\x31\x25\x65\x16\xf3\x42\x8c\x67\x1e\x6d\x93\xa0\xa5\xd3\xa2\x3c\x48\x65\xd6\x61\xc7\x42\x1c\x63\x4d\xd2\xa6\xc9\x52\x44\xdb\xa8\x91\x85\x68\x37\x4d\xc4\x3f\xae\x6d\xbf\xad\x6b\x1b\xb2\xec\x62\xcc\xe0\x90\xa1\xa5\xa6\x5e\xfb\xcf\x0f\x1b\x5c\xc1\x82\x96\xe8\x01\xe3\xfc\x19\xaf\x9d\x2d\x3a\xf0\x30\x7d\xbe\xf7\x3d\x68\xf7\x71\xe6\x2f\xb6\xfe\xb0\x0e\x28\x10\x1a\x6a\x61\xe8\x5c\x2c\xc2\xa5\x63\x14\xda\xde\x6e\xfd\x6e\x96\x99\xdf\x14\x38\xa9\xcf\xc5\xd5\x68\xdc\x0e\xae\x74\x61\x35\x6d\x29\xf0\xbc\xdb\xa1\x71\x07\xac\xee\xbc\x78\xa5\xdd\xa8\x57\x25\xa0\xc5\xfe\x4f\xe4\xf6\xa0\x00\xcc\x6d\x26\xe6\x65\x9e\x1e\x04\x37\xbe\xbb\x3e\x3f\x76\xda\x06\x68\xce\x9d\x79\x8f\x8a\x5a\x6a\x68\x9b\x93\x58\xc4\x04\x07\x8d\x54\xca\x16\xe5\x72\x09\xf9\x4b\x08\x18\x6a\x85\x11\x64\xa6\x2f\x75\x61\xcf\x13\x64\x9a\xe1\xba\x98\x49\x25\x05\x9b\x7d\x71\x3c\xfb\xc2\x1c\x65\x39\x8f\x0a\x91\x23\xc9\x40\xca\x75\xc1\xb4\x58\x81\xaa\x45\x95\xde\x5d\x9f\x43\x54\x62\xb1\xc6\xe2\xdc\x95\x15\xe3\x3d\x91\xf3\x19\x72\xfd\x00\x41\xb5\x0c\x32\x6e\x41\xdb\x5f\x73\xcd\x12\x39\x93\x1f\x4d\x11\xc7\x2b\xa5\x56\xa9\x18\xdb\x09\x19\xbf\x23\xd3\xe3\xc7\x37\xd8\x02\xf8\x3c\x84\xf5\x9b\x03\x91\x4b\x25\x93\x88\xa7\x10\x90\x33\x93\xa0\x35\x8f\x4c\x67\xc0\x34\x3a\xfb\x62\x3c\xfb\x82\x81\xfb\xb4\x60\x3c\x8a\x44\x56\x88\x18\x53\x9b\x4e\x25\xcb\x00\xbf\x18\x89\x11\x2b\x04\xdf\x68\x4b\xe9\xcc\x32\x73\xc7\x84\xab\x21\x4b\x24\x21\x9d\x16\x89\xe4\xf9\x16\xc1\x4c\x98\xac\x9c\x82\x3f\xb6\x33\x29\x3e\x01\xfd\x67\x02\x0c\xa0\xa5\x76\xb4\x34\x94\x98\xc0\x74\x79\x22\xb7\x63\xf6\x03\x32\x34\x20\x05\xea\xdd\xf5\xb9\xa5\x37\xa2\x18\xd0\x99\xd4\xd1\x5a\x6c\x04\xfb\xb8\x2e\x8a\xec\xe3\x08\xff\xab\x3f\x82\xc7\x51\x2a\x86\x4f\x47\xcc\x4c\x91\x51\x54\x2d\x5e\x3e\xdd\x42\x0e\xd9\x32\xa3\x84\xf3\x33\x09\x5c\xec\x79\x88\xee\x35\xa3\x0d\x35\x06\x57\xf0\x0a\x2e\xdc\x48\x71\x48\xee\x78\x62\x06\xe7\x7f\xb1\xe9\xd2\x57\x69\x06\xd0\xe6\x16\x73\xad\x02\x85\x44\x43\xc8\xd6\xd8\x7c\x30\x91\xec\x87\xdb\xdb\x2b\xf6\xfd\xd9\xad\x55\x76\xee\xae\xcf\x71\x5d\x00\x9d\x0a\xe3\xec\xcf\xf5\x29\xbe\xdd\x66\xe2\x2f\x7f\xfe\xcb\x4c\x32\x9b\xa3\x5c\xda\x91\xc6\x1d\x3d\x42\x4a\x58\xc0\x3b\x81\x63\x16\xa8\x9c\xa1\x3e\x4c\xb9\x43\xcd\xcf\x51\x3b\x7f\x24\x6b\x01\x9c\x51\xa9\x52\xf7\x65\xe6\xcc\xdc\xa1\x1e\x66\x2a\xbc\xbb\x3e\x87\xd2\x81\x4e\xa9\x58\x43\xfe\x34\xe1\xac\x2f\x30\xf1\xdc\x36\xc6\xfc\xfb\x41\x25\x31\xe3\x72\x6b\xbe\xc5\xa2\x61\x59\xe6\x62\xa9\x72\x31\xb2\x6f\x9a\x02\x78\x91\x2c\x92\x34\x29\xb6\x20\xa5\x6c\x5e\xfb\xcc\x72\xe4\x9b\x02\xcc\x6d\x86\x00\xde\x66\x81\x61\x1a\xdb\xd7\x77\x3a\x44\x80\xc3\xa4\xb9\xdc\x88\x78\xd1\x31\xdf\x2e\x72\xc1\xef\xcd\xea\xa6\x12\xc6\x6f\x28\x67\xac\x38\xc1\x33\x66\x59\xca\x08\x97\x86\x69\x03\xad\x7e\xba\x39\xa5\x5b\xc6\x1f\x78\x82\x39\x65\xad\xbb\x7c\xb9\x4c\xa2\x84\xa7\x24\x39\x16\xe5\x12\xd2\xc6\x70\x4d\x29\x8b\x10\x7c\x68\x0a\x81\x5b\x86\x4d\xd8\x8f\x0b\x6a\x21\x56\x09\x02\x8e\x1f\x93\x62\x8d\x71\x05\x63\x9c\x67\x9e\x25\x7a\x1c\xa9\x0d\xec\xb7\x1b\x58\x4a\x9a\x2e\xbd\x80\x03\xaf\xad\x73\xf6\xda\x42\xed\x36\x59\xb1\xa5\xb5\xf7\x86\x6d\x92\xd5\xba\x80\x44\x2e\x50\x3b\x40\x22\x92\x4d\x96\xc2\xa5\x8f\x3c\x8c\x16\xef\xab\xc5\x86\xcb\x22\x89\xba\x7c\x4a\xad\x29\xc1\xfb\x61\x3c\x17\xdb\x62\xb7\x1d\xef\x03\xf1\xec\x73\xa4\xd0\x0f\x24\x32\xab\x0b\x64\x92\x81\x90\x5e\x26\x20\xf0\xaf\xa7\x9c\xdd\x77\x85\xfa\x38\x91\xdb\x8f\x9e\x84\x94\xcb\x20\xf7\xd5\x8e\xda\xed\xfe\xe7\xa9\xa2\x59\x63\x7c\x26\x01\xd5\x69\x04\x06\x25\xa3\xdd\x79\xc6\xb8\x23\xc5\xcc\xec\x95\x5d\x34\x69\xb2\x80\xba\x49\x56\x68\xa6\xcb\x0c\xe2\x09\x0a\xc5\x32\x1e\xdd\x1f\x97\xd2\xfc\xc7\x08\x43\xdc\xee\x3a\x24\x27\x9a\x49\xb5\x64\x65\x81\x1b\xc7\x2e\x61\x30\x8a\x04\xa6\x00\x7f\x41\xdb\x88\x62\xad\x62\x17\x17\x66\xca\x84\xf1\x33\x2d\x3a\x23\x7a\xe9\xb7\x27\xec\xca\x54\x68\x16\x31\xd5\xcd\x5d\xf7\x13\xc9\x4e\xff\xf5\x5f\xe1\x7d\x33\xb8\xef\x95\x62\x4b\xa5\xd8\xb7\x6c\x3c\x1e\xff\x3b\xfe\x66\x0a\xe5\x72\x4b\x7f\x71\xb9\x1d\x9b\xe2\xde\xe7\x6a\xf3\x7a\xa9\xd4\x1b\xfa\x1d\x92\x36\x9b\x7f\x24\x4b\xf6\xda\xbc\x74\x07\x55\xdd\xaa\xd7\xb3\xf2\xcb\x2f\xbf\xfa\xbd\x79\xf5\x0d\xfb\x4f\x7c\x27\x78\xfd\xef\x61\x53\xbf\xda\xd3\xd4\x3f\xf0\x07\xde\xa7\xad\xec\x5b\x38\x6b\x4c\x01\x3b\xdb\x98\xe8\xd7\xef\x95\x1a\xc3\xed\x3f\x6c\x1d\x16\x6b\xde\xc0\x56\x04\x6f\xfd\x7b\xd0\x6c\x66\xdb\xfd\xf5\x9e\x76\x23\xaa\xde\xb5\x1c\x8b\x7f\xaf\xd4\xeb\xf1\xd8\xc8\x2d\x1a\x57\x6c\xf5\xeb\x37\xd5\x81\x86\x0e\x34\xdb\x6f\x1e\x4f\xb1\xf9\xef\xce\x6e\x4e\xaf\xa7\x57\xb7\x97\xd7\x6f\x4e\x6c\x0f\xfc\x0c\x04\xdf\x33\x9b\x5a\xdb\x35\xfc\x7f\xef\x69\xf8\xf7\xca\xb6\x19\x1a\x7d\xf2\x2d\xc3\xd9\xcc\x16\xe3\xf7\x4a\xfd\xe7\x78\x3c\xfe\x3b\x3d\xe6\x72\x3b\x32\x07\x93\x79\x27\x43\x51\xfe\x81\xe7\x7a\xcd\x53\xd3\xa7\xa0\x0d\xae\x13\xad\x25\xda\xe2\x92\x65\xad\xb0\x3b\xb9\xf1\xc5\x41\x65\x30\xb1\xf0\xd6\x3f\x7f\xcb\x64\x92\xfa\xe9\x0b\xea\x80\x79\xba\x05\x6a\x89\xe8\xde\x6d\x17\x97\x23\x74\xb1\x65\x59\x7d\xe3\x62\xdc\xd9\xd6\x66\x28\x30\xe2\x7e\x26\x5f\xb5\x48\xf4\x63\xa3\xda\x8d\xe1\x81\x39\xa0\x5e\xd9\xec\xf1\xf6\x58\x70\x99\xb5\x70\x64\xc1\x11\x8d\xbb\x55\x52\x8c\x5a\x9b\x7e\xe8\x0e\xbc\x80\xac\x0a\xd4\xce\x57\xc7\xaf\x28\x50\xc8\x57\x51\x25\x92\x9f\x7d\xb1\x54\x6a\xbc\xe0\x39\xb4\xee\xd3\xf1\x76\xfc\xb7\xd9\x17\xd8\x1f\x54\x3e\x50\x31\x82\xc2\x67\x5f\xc0\x53\x58\x0e\x33\xf9\x87\x9b\xcb\x8b\x99\xfc\xf6\xdb\x6f\xbf\xc5\xd1\x32\x7f\xb7\xf8\x5e\xcc\x71\x05\xe2\x16\xf5\x94\x52\xdb\x94\x92\x62\x55\xa6\x3c\x9f\xc9\x76\x77\x4d\x2c\xbc\xd0\x1c\x79\xe7\x0d\xad\xb3\x91\xcd\x6e\x01\x49\xca\xac\x8c\x43\xdb\xe4\xc7\xff\xdf\x34\xf9\x23\xa9\x88\x4e\xc8\x87\x43\x30\xb6\x8b\xf9\xc4\x2e\x55\x33\xd8\x66\xfd\x7a\x3d\x6b\x99\xa4\x82\x36\xae\x5d\xdc\x57\x22\xd7\x4a\xfa\x35\x43\x17\x02\xe0\x36\x03\x07\x00\xfb\x96\xbd\xfd\xf7\xda\x53\x33\x0f\xf6\xe1\x57\x15\x49\xc0\x98\x2f\x6a\xf6\x05\xb4\x7a\xf6\xc5\x09\x9b\x7d\xd1\xb6\x6e\xaa\x0d\x1b\x63\x53\x66\x5f\x8c\x7c\x01\xd0\x8c\x0b\xbe\xc1\x42\xca\x2f\xbf\xfc\x3a\xc2\x26\x60\xe8\x5a\xf0\xa6\x69\x52\xf7\x8b\x41\x13\xa7\x35\xd7\x99\x1d\x08\x1b\x02\xf9\x28\xd2\xf4\xe8\x5e\xaa\x47\xcc\x33\x0e\x7e\x22\x8a\x52\x66\xb8\x3c\xaa\x93\x4b\xb9\xc9\x6a\x33\x6e\x83\x36\x5d\x35\x2e\xbd\x1d\x4c\xe8\x4c\x7e\x84\xa5\x63\x67\x94\xe8\x88\x80\x0e\xd4\xd5\x04\x97\x1a\x5a\x09\x36\xc6\x82\x16\xc2\x4c\x42\x31\x6e\xce\xd9\x6b\x00\x7e\x51\x57\x1a\x9a\xb5\xbd\x3c\xfd\xe5\xcf\x7f\x79\x73\x72\xc8\x3c\x55\x8b\xab\x4c\x15\xf4\x07\xcb\x78\x3b\xfe\xea\xed\x57\x7a\xf6\x05\x8d\x7a\xfb\x15\xfb\x3c\xd1\xc5\x4f\x35\x0d\xec\x09\xc9\xce\x8d\xe2\xf0\x52\xce\x0b\xdb\x54\x6c\x66\x5f\xa7\xc5\x75\xd5\xad\xa0\x96\xd6\xac\x03\x97\x33\x9b\x06\xde\xb4\x7b\x90\x7a\xe7\xc6\x0b\x2f\x5b\xec\x31\xe7\x59\x26\x72\x6b\x2b\x6f\xb8\x33\x20\xa7\x3a\xd4\x62\x45\x7f\x9b\x30\x33\xcb\xa6\x56\x34\xbc\x06\x43\x37\x6e\x9f\xb9\x8b\x32\x4d\x3b\x67\x6e\x7f\xb2\xe4\x8b\xbb\xf3\xf3\xf9\x4f\x93\xf3\xbb\x33\xdb\xfd\xd6\xe4\xc3\xc1\x6b\x9d\x63\xe2\x5a\x42\x63\x82\xb8\xaa\x02\xb0\x54\xe5\x46\xe4\x96\x29\xcc\xf7\x1a\x71\x24\x65\x9a\x56\xd3\x62\xcf\xe4\x47\x2a\x07\xc4\x40\x29\x13\xab\xa6\xec\x1c\xb8\x6a\xfd\xf0\xda\x47\x53\xf8\x47\xfc\xf6\x88\xf9\x4e\x9c\xb0\x0b\x57\x6b\xc7\xb8\x12\xe1\xc4\x01\xdb\x01\xe3\x6d\xbb\xb6\xc3\x73\x27\xfe\x7f\xda\xf6\xb8\x93\x90\xf4\xcb\x48\x5e\xcc\xd7\xff\x2c\xbb\x03\xc7\xee\x63\x15\x0a\xee\xcc\xa5\x31\x7a\x0d\xa1\xdc\x11\xa6\x6b\xd7\x05\x71\x16\xe3\x98\xcd\x24\x0a\x62\xd3\xa6\x42\x75\xb7\x89\x4d\xc9\x83\x94\x72\xb9\x2a\xf9\x4a\xe8\x11\xb3\x95\xcf\xa4\xbd\x9d\xda\xbb\x8e\x03\xe6\x00\x23\x6b\x6d\x09\xd5\x42\x80\x13\x39\x93\xd4\x27\x38\x61\xa9\x78\x0c\x47\xfd\xc3\x8d\xeb\x0e\xc5\x7d\x63\x41\x94\x71\x5e\xce\x24\x4e\x2e\xda\xc6\x2c\xd8\x10\xd4\x8e\xe6\xd9\xc4\x01\x1e\x8c\xf7\xba\x98\x15\x6a\x05\xb0\xc7\x99\x74\x2c\x58\x08\xce\xb0\xf7\x35\x9f\x1b\x14\x9b\xb4\x5f\x9e\xd8\xc9\xb0\x7b\x82\xda\xd6\xbe\xea\x0f\x3e\x03\xcc\x86\x9b\xb7\xde\xe5\x77\x2f\x5b\x2f\xc6\x7a\x02\x72\x78\x20\x38\xba\xa8\x11\x81\xfa\xac\xbd\x35\xb6\x5f\xf8\x4e\x67\xf4\xa8\x2a\x17\xe9\x80\x26\xe1\xfb\x3b\x1b\x85\x22\x79\x77\xa3\x7a\x58\xa4\xaf\x6b\x5b\xcb\x2c\xd3\x5d\xd5\x2e\x94\xea\x98\x97\x67\xc4\xec\x56\x1a\x45\x1f\xec\x1b\x8c\x32\x2a\x9e\xb2\x5e\x7a\xf0\x01\xd5\x87\xc8\x4a\x9f\x5d\x0d\x4a\x13\xfd\xa4\xe6\x78\xfd\xa9\x77\x8b\x9c\x86\x40\x87\xdd\x20\x09\x4b\xe7\x5c\x45\xc0\x76\x88\x49\x7b\x4d\xc1\xf0\x16\x91\xa0\x78\x31\x9b\x67\x04\x9b\xc8\xac\xff\x91\x5b\x44\x23\x3f\x73\x23\x68\x64\x54\xe6\xda\x88\x4b\x92\x77\x24\xb5\x55\xce\xf8\x4c\x5a\x36\x18\x2b\x8e\x27\xd6\x1e\x9c\xbb\x5f\x91\x63\x29\xc3\x94\x75\xe0\x14\x2a\xc0\x4a\x4e\xd2\x70\x26\x1f\x78\x9e\x70\x09\x98\xe6\x85\x86\x7c\xc3\x70\xa5\xdb\x32\x7a\xe0\x08\x38\x74\x68\x64\xde\x23\xf3\x6a\x6a\x40\xe5\x9c\xff\x27\xf3\xbf\xbf\xff\xd3\xff\x0d\x00\x00\xff\xff\xd9\xdb\xa7\xa4\x75\xb2\x06\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: 317765, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 438901, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json index 72ffbd861b..c5dafce8b2 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json @@ -76,6 +76,13 @@ "required": true, "type": "string" }, + { + "name": "workflow_execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" + }, { "name": "limit", "description": "Indicates the number of resources to be returned.\n+required.", @@ -655,6 +662,10 @@ "name": { "type": "string", "description": "User or system provided value for the resource." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "title": "Encapsulation of fields that uniquely identifies a Flyte workflow execution" diff --git a/flyteidl/gen/pb-java/datacatalog/Datacatalog.java b/flyteidl/gen/pb-java/datacatalog/Datacatalog.java index 9ad108fc95..12c4942382 100644 --- a/flyteidl/gen/pb-java/datacatalog/Datacatalog.java +++ b/flyteidl/gen/pb-java/datacatalog/Datacatalog.java @@ -19954,6 +19954,42 @@ public interface DatasetIDOrBuilder extends */ com.google.protobuf.ByteString getUUIDBytes(); + + /** + *
+     * Optional, partition key applied to the dataset.
+     * 
+ * + * string partition = 6; + */ + java.lang.String getPartition(); + /** + *
+     * Optional, partition key applied to the dataset.
+     * 
+ * + * string partition = 6; + */ + com.google.protobuf.ByteString + getPartitionBytes(); + + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 7; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 7; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -19977,6 +20013,8 @@ private DatasetID() {
       domain_ = "";
       version_ = "";
       uUID_ = "";
+      partition_ = "";
+      org_ = "";
     }
 
     @java.lang.Override
@@ -20033,6 +20071,18 @@ private DatasetID(
               uUID_ = s;
               break;
             }
+            case 50: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              partition_ = s;
+              break;
+            }
+            case 58: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -20275,6 +20325,90 @@ public java.lang.String getUUID() {
       }
     }
 
+    public static final int PARTITION_FIELD_NUMBER = 6;
+    private volatile java.lang.Object partition_;
+    /**
+     * 
+     * Optional, partition key applied to the dataset.
+     * 
+ * + * string partition = 6; + */ + public java.lang.String getPartition() { + java.lang.Object ref = partition_; + 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(); + partition_ = s; + return s; + } + } + /** + *
+     * Optional, partition key applied to the dataset.
+     * 
+ * + * string partition = 6; + */ + public com.google.protobuf.ByteString + getPartitionBytes() { + java.lang.Object ref = partition_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + partition_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ORG_FIELD_NUMBER = 7; + private volatile java.lang.Object org_; + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 7; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 7; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -20304,6 +20438,12 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getUUIDBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, uUID_); } + if (!getPartitionBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, partition_); + } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, org_); + } unknownFields.writeTo(output); } @@ -20328,6 +20468,12 @@ public int getSerializedSize() { if (!getUUIDBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, uUID_); } + if (!getPartitionBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, partition_); + } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -20353,6 +20499,10 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getVersion())) return false; if (!getUUID() .equals(other.getUUID())) return false; + if (!getPartition() + .equals(other.getPartition())) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -20374,6 +20524,10 @@ public int hashCode() { hash = (53 * hash) + getVersion().hashCode(); hash = (37 * hash) + UUID_FIELD_NUMBER; hash = (53 * hash) + getUUID().hashCode(); + hash = (37 * hash) + PARTITION_FIELD_NUMBER; + hash = (53 * hash) + getPartition().hashCode(); + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -20521,6 +20675,10 @@ public Builder clear() { uUID_ = ""; + partition_ = ""; + + org_ = ""; + return this; } @@ -20552,6 +20710,8 @@ public datacatalog.Datacatalog.DatasetID buildPartial() { result.domain_ = domain_; result.version_ = version_; result.uUID_ = uUID_; + result.partition_ = partition_; + result.org_ = org_; onBuilt(); return result; } @@ -20620,6 +20780,14 @@ public Builder mergeFrom(datacatalog.Datacatalog.DatasetID other) { uUID_ = other.uUID_; onChanged(); } + if (!other.getPartition().isEmpty()) { + partition_ = other.partition_; + onChanged(); + } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -21093,6 +21261,184 @@ public Builder setUUIDBytes( onChanged(); return this; } + + private java.lang.Object partition_ = ""; + /** + *
+       * Optional, partition key applied to the dataset.
+       * 
+ * + * string partition = 6; + */ + public java.lang.String getPartition() { + java.lang.Object ref = partition_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + partition_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, partition key applied to the dataset.
+       * 
+ * + * string partition = 6; + */ + public com.google.protobuf.ByteString + getPartitionBytes() { + java.lang.Object ref = partition_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + partition_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, partition key applied to the dataset.
+       * 
+ * + * string partition = 6; + */ + public Builder setPartition( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + partition_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, partition key applied to the dataset.
+       * 
+ * + * string partition = 6; + */ + public Builder clearPartition() { + + partition_ = getDefaultInstance().getPartition(); + onChanged(); + return this; + } + /** + *
+       * Optional, partition key applied to the dataset.
+       * 
+ * + * string partition = 6; + */ + public Builder setPartitionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + partition_ = value; + onChanged(); + return this; + } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 7; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 7; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 7; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 7; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 7; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -31392,6 +31738,24 @@ public interface DatasetPropertyFilterOrBuilder extends com.google.protobuf.ByteString getVersionBytes(); + /** + *
+     * Optional, partition key applied to the dataset.
+     * 
+ * + * string partition = 5; + */ + java.lang.String getPartition(); + /** + *
+     * Optional, partition key applied to the dataset.
+     * 
+ * + * string partition = 5; + */ + com.google.protobuf.ByteString + getPartitionBytes(); + public datacatalog.Datacatalog.DatasetPropertyFilter.PropertyCase getPropertyCase(); } /** @@ -31461,6 +31825,12 @@ private DatasetPropertyFilter( property_ = s; break; } + case 42: { + java.lang.String s = input.readStringRequireUtf8(); + propertyCase_ = 5; + property_ = s; + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -31501,6 +31871,7 @@ public enum PropertyCase NAME(2), DOMAIN(3), VERSION(4), + PARTITION(5), PROPERTY_NOT_SET(0); private final int value; private PropertyCase(int value) { @@ -31520,6 +31891,7 @@ public static PropertyCase forNumber(int value) { case 2: return NAME; case 3: return DOMAIN; case 4: return VERSION; + case 5: return PARTITION; case 0: return PROPERTY_NOT_SET; default: return null; } @@ -31707,6 +32079,57 @@ public java.lang.String getVersion() { } } + public static final int PARTITION_FIELD_NUMBER = 5; + /** + *
+     * Optional, partition key applied to the dataset.
+     * 
+ * + * string partition = 5; + */ + public java.lang.String getPartition() { + java.lang.Object ref = ""; + if (propertyCase_ == 5) { + ref = property_; + } + 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(); + if (propertyCase_ == 5) { + property_ = s; + } + return s; + } + } + /** + *
+     * Optional, partition key applied to the dataset.
+     * 
+ * + * string partition = 5; + */ + public com.google.protobuf.ByteString + getPartitionBytes() { + java.lang.Object ref = ""; + if (propertyCase_ == 5) { + ref = property_; + } + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (propertyCase_ == 5) { + property_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -31733,6 +32156,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (propertyCase_ == 4) { com.google.protobuf.GeneratedMessageV3.writeString(output, 4, property_); } + if (propertyCase_ == 5) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, property_); + } unknownFields.writeTo(output); } @@ -31754,6 +32180,9 @@ public int getSerializedSize() { if (propertyCase_ == 4) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, property_); } + if (propertyCase_ == 5) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, property_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -31787,6 +32216,10 @@ public boolean equals(final java.lang.Object obj) { if (!getVersion() .equals(other.getVersion())) return false; break; + case 5: + if (!getPartition() + .equals(other.getPartition())) return false; + break; case 0: default: } @@ -31818,6 +32251,10 @@ public int hashCode() { hash = (37 * hash) + VERSION_FIELD_NUMBER; hash = (53 * hash) + getVersion().hashCode(); break; + case 5: + hash = (37 * hash) + PARTITION_FIELD_NUMBER; + hash = (53 * hash) + getPartition().hashCode(); + break; case 0: default: } @@ -31998,6 +32435,9 @@ public datacatalog.Datacatalog.DatasetPropertyFilter buildPartial() { if (propertyCase_ == 4) { result.property_ = property_; } + if (propertyCase_ == 5) { + result.property_ = property_; + } result.propertyCase_ = propertyCase_; onBuilt(); return result; @@ -32072,6 +32512,12 @@ public Builder mergeFrom(datacatalog.Datacatalog.DatasetPropertyFilter other) { onChanged(); break; } + case PARTITION: { + propertyCase_ = 5; + property_ = other.property_; + onChanged(); + break; + } case PROPERTY_NOT_SET: { break; } @@ -32439,6 +32885,106 @@ public Builder setVersionBytes( onChanged(); return this; } + + /** + *
+       * Optional, partition key applied to the dataset.
+       * 
+ * + * string partition = 5; + */ + public java.lang.String getPartition() { + java.lang.Object ref = ""; + if (propertyCase_ == 5) { + ref = property_; + } + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (propertyCase_ == 5) { + property_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, partition key applied to the dataset.
+       * 
+ * + * string partition = 5; + */ + public com.google.protobuf.ByteString + getPartitionBytes() { + java.lang.Object ref = ""; + if (propertyCase_ == 5) { + ref = property_; + } + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (propertyCase_ == 5) { + property_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, partition key applied to the dataset.
+       * 
+ * + * string partition = 5; + */ + public Builder setPartition( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + propertyCase_ = 5; + property_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, partition key applied to the dataset.
+       * 
+ * + * string partition = 5; + */ + public Builder clearPartition() { + if (propertyCase_ == 5) { + propertyCase_ = 0; + property_ = null; + onChanged(); + } + return this; + } + /** + *
+       * Optional, partition key applied to the dataset.
+       * 
+ * + * string partition = 5; + */ + public Builder setPartitionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + propertyCase_ = 5; + property_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -33869,73 +34415,75 @@ public datacatalog.Datacatalog.PaginationOptions getDefaultInstanceForType() { "datacatalog.DatasetID\022\'\n\010metadata\030\002 \001(\0132" + "\025.datacatalog.Metadata\022\025\n\rpartitionKeys\030" + "\003 \003(\t\"\'\n\tPartition\022\013\n\003key\030\001 \001(\t\022\r\n\005value" + - "\030\002 \001(\t\"Y\n\tDatasetID\022\017\n\007project\030\001 \001(\t\022\014\n\004" + + "\030\002 \001(\t\"y\n\tDatasetID\022\017\n\007project\030\001 \001(\t\022\014\n\004" + "name\030\002 \001(\t\022\016\n\006domain\030\003 \001(\t\022\017\n\007version\030\004 " + - "\001(\t\022\014\n\004UUID\030\005 \001(\t\"\215\002\n\010Artifact\022\n\n\002id\030\001 \001" + - "(\t\022\'\n\007dataset\030\002 \001(\0132\026.datacatalog.Datase" + - "tID\022\'\n\004data\030\003 \003(\0132\031.datacatalog.Artifact" + - "Data\022\'\n\010metadata\030\004 \001(\0132\025.datacatalog.Met" + - "adata\022*\n\npartitions\030\005 \003(\0132\026.datacatalog." + - "Partition\022\036\n\004tags\030\006 \003(\0132\020.datacatalog.Ta" + - "g\022.\n\ncreated_at\030\007 \001(\0132\032.google.protobuf." + - "Timestamp\"C\n\014ArtifactData\022\014\n\004name\030\001 \001(\t\022" + - "%\n\005value\030\002 \001(\0132\026.flyteidl.core.Literal\"Q" + - "\n\003Tag\022\014\n\004name\030\001 \001(\t\022\023\n\013artifact_id\030\002 \001(\t" + - "\022\'\n\007dataset\030\003 \001(\0132\026.datacatalog.DatasetI" + - "D\"m\n\010Metadata\0222\n\007key_map\030\001 \003(\0132!.datacat" + - "alog.Metadata.KeyMapEntry\032-\n\013KeyMapEntry" + - "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"F\n\020Filt" + - "erExpression\0222\n\007filters\030\001 \003(\0132!.datacata" + - "log.SinglePropertyFilter\"\211\003\n\024SinglePrope" + - "rtyFilter\0224\n\ntag_filter\030\001 \001(\0132\036.datacata" + - "log.TagPropertyFilterH\000\022@\n\020partition_fil" + - "ter\030\002 \001(\0132$.datacatalog.PartitionPropert" + - "yFilterH\000\022>\n\017artifact_filter\030\003 \001(\0132#.dat" + - "acatalog.ArtifactPropertyFilterH\000\022<\n\016dat" + - "aset_filter\030\004 \001(\0132\".datacatalog.DatasetP" + - "ropertyFilterH\000\022F\n\010operator\030\n \001(\01624.data" + - "catalog.SinglePropertyFilter.ComparisonO" + - "perator\" \n\022ComparisonOperator\022\n\n\006EQUALS\020" + - "\000B\021\n\017property_filter\";\n\026ArtifactProperty" + - "Filter\022\025\n\013artifact_id\030\001 \001(\tH\000B\n\n\010propert" + - "y\"3\n\021TagPropertyFilter\022\022\n\010tag_name\030\001 \001(\t" + - "H\000B\n\n\010property\"S\n\027PartitionPropertyFilte" + - "r\022,\n\007key_val\030\001 \001(\0132\031.datacatalog.KeyValu" + - "ePairH\000B\n\n\010property\"*\n\014KeyValuePair\022\013\n\003k" + - "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"k\n\025DatasetProper" + - "tyFilter\022\021\n\007project\030\001 \001(\tH\000\022\016\n\004name\030\002 \001(" + - "\tH\000\022\020\n\006domain\030\003 \001(\tH\000\022\021\n\007version\030\004 \001(\tH\000" + - "B\n\n\010property\"\361\001\n\021PaginationOptions\022\r\n\005li" + - "mit\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\0227\n\007sortKey\030\003 \001(" + - "\0162&.datacatalog.PaginationOptions.SortKe" + - "y\022;\n\tsortOrder\030\004 \001(\0162(.datacatalog.Pagin" + - "ationOptions.SortOrder\"*\n\tSortOrder\022\016\n\nD" + - "ESCENDING\020\000\022\r\n\tASCENDING\020\001\"\034\n\007SortKey\022\021\n" + - "\rCREATION_TIME\020\0002\206\007\n\013DataCatalog\022V\n\rCrea" + - "teDataset\022!.datacatalog.CreateDatasetReq" + - "uest\032\".datacatalog.CreateDatasetResponse" + - "\022M\n\nGetDataset\022\036.datacatalog.GetDatasetR" + - "equest\032\037.datacatalog.GetDatasetResponse\022" + - "Y\n\016CreateArtifact\022\".datacatalog.CreateAr" + - "tifactRequest\032#.datacatalog.CreateArtifa" + - "ctResponse\022P\n\013GetArtifact\022\037.datacatalog." + - "GetArtifactRequest\032 .datacatalog.GetArti" + - "factResponse\022A\n\006AddTag\022\032.datacatalog.Add" + - "TagRequest\032\033.datacatalog.AddTagResponse\022" + - "V\n\rListArtifacts\022!.datacatalog.ListArtif" + - "actsRequest\032\".datacatalog.ListArtifactsR" + - "esponse\022S\n\014ListDatasets\022 .datacatalog.Li" + - "stDatasetsRequest\032!.datacatalog.ListData" + - "setsResponse\022Y\n\016UpdateArtifact\022\".datacat" + - "alog.UpdateArtifactRequest\032#.datacatalog" + - ".UpdateArtifactResponse\022q\n\026GetOrExtendRe" + - "servation\022*.datacatalog.GetOrExtendReser" + - "vationRequest\032+.datacatalog.GetOrExtendR" + - "eservationResponse\022e\n\022ReleaseReservation" + - "\022&.datacatalog.ReleaseReservationRequest" + - "\032\'.datacatalog.ReleaseReservationRespons" + - "eBCZAgithub.com/flyteorg/flyte/flyteidl/" + - "gen/pb-go/flyteidl/datacatalogb\006proto3" + "\001(\t\022\014\n\004UUID\030\005 \001(\t\022\021\n\tpartition\030\006 \001(\t\022\013\n\003" + + "org\030\007 \001(\t\"\215\002\n\010Artifact\022\n\n\002id\030\001 \001(\t\022\'\n\007da" + + "taset\030\002 \001(\0132\026.datacatalog.DatasetID\022\'\n\004d" + + "ata\030\003 \003(\0132\031.datacatalog.ArtifactData\022\'\n\010" + + "metadata\030\004 \001(\0132\025.datacatalog.Metadata\022*\n" + + "\npartitions\030\005 \003(\0132\026.datacatalog.Partitio" + + "n\022\036\n\004tags\030\006 \003(\0132\020.datacatalog.Tag\022.\n\ncre" + + "ated_at\030\007 \001(\0132\032.google.protobuf.Timestam" + + "p\"C\n\014ArtifactData\022\014\n\004name\030\001 \001(\t\022%\n\005value" + + "\030\002 \001(\0132\026.flyteidl.core.Literal\"Q\n\003Tag\022\014\n" + + "\004name\030\001 \001(\t\022\023\n\013artifact_id\030\002 \001(\t\022\'\n\007data" + + "set\030\003 \001(\0132\026.datacatalog.DatasetID\"m\n\010Met" + + "adata\0222\n\007key_map\030\001 \003(\0132!.datacatalog.Met" + + "adata.KeyMapEntry\032-\n\013KeyMapEntry\022\013\n\003key\030" + + "\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"F\n\020FilterExpres" + + "sion\0222\n\007filters\030\001 \003(\0132!.datacatalog.Sing" + + "lePropertyFilter\"\211\003\n\024SinglePropertyFilte" + + "r\0224\n\ntag_filter\030\001 \001(\0132\036.datacatalog.TagP" + + "ropertyFilterH\000\022@\n\020partition_filter\030\002 \001(" + + "\0132$.datacatalog.PartitionPropertyFilterH" + + "\000\022>\n\017artifact_filter\030\003 \001(\0132#.datacatalog" + + ".ArtifactPropertyFilterH\000\022<\n\016dataset_fil" + + "ter\030\004 \001(\0132\".datacatalog.DatasetPropertyF" + + "ilterH\000\022F\n\010operator\030\n \001(\01624.datacatalog." + + "SinglePropertyFilter.ComparisonOperator\"" + + " \n\022ComparisonOperator\022\n\n\006EQUALS\020\000B\021\n\017pro" + + "perty_filter\";\n\026ArtifactPropertyFilter\022\025" + + "\n\013artifact_id\030\001 \001(\tH\000B\n\n\010property\"3\n\021Tag" + + "PropertyFilter\022\022\n\010tag_name\030\001 \001(\tH\000B\n\n\010pr" + + "operty\"S\n\027PartitionPropertyFilter\022,\n\007key" + + "_val\030\001 \001(\0132\031.datacatalog.KeyValuePairH\000B" + + "\n\n\010property\"*\n\014KeyValuePair\022\013\n\003key\030\001 \001(\t" + + "\022\r\n\005value\030\002 \001(\t\"\200\001\n\025DatasetPropertyFilte" + + "r\022\021\n\007project\030\001 \001(\tH\000\022\016\n\004name\030\002 \001(\tH\000\022\020\n\006" + + "domain\030\003 \001(\tH\000\022\021\n\007version\030\004 \001(\tH\000\022\023\n\tpar" + + "tition\030\005 \001(\tH\000B\n\n\010property\"\361\001\n\021Paginatio" + + "nOptions\022\r\n\005limit\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\0227" + + "\n\007sortKey\030\003 \001(\0162&.datacatalog.Pagination" + + "Options.SortKey\022;\n\tsortOrder\030\004 \001(\0162(.dat" + + "acatalog.PaginationOptions.SortOrder\"*\n\t" + + "SortOrder\022\016\n\nDESCENDING\020\000\022\r\n\tASCENDING\020\001" + + "\"\034\n\007SortKey\022\021\n\rCREATION_TIME\020\0002\206\007\n\013DataC" + + "atalog\022V\n\rCreateDataset\022!.datacatalog.Cr" + + "eateDatasetRequest\032\".datacatalog.CreateD" + + "atasetResponse\022M\n\nGetDataset\022\036.datacatal" + + "og.GetDatasetRequest\032\037.datacatalog.GetDa" + + "tasetResponse\022Y\n\016CreateArtifact\022\".dataca" + + "talog.CreateArtifactRequest\032#.datacatalo" + + "g.CreateArtifactResponse\022P\n\013GetArtifact\022" + + "\037.datacatalog.GetArtifactRequest\032 .datac" + + "atalog.GetArtifactResponse\022A\n\006AddTag\022\032.d" + + "atacatalog.AddTagRequest\032\033.datacatalog.A" + + "ddTagResponse\022V\n\rListArtifacts\022!.datacat" + + "alog.ListArtifactsRequest\032\".datacatalog." + + "ListArtifactsResponse\022S\n\014ListDatasets\022 ." + + "datacatalog.ListDatasetsRequest\032!.dataca" + + "talog.ListDatasetsResponse\022Y\n\016UpdateArti" + + "fact\022\".datacatalog.UpdateArtifactRequest" + + "\032#.datacatalog.UpdateArtifactResponse\022q\n" + + "\026GetOrExtendReservation\022*.datacatalog.Ge" + + "tOrExtendReservationRequest\032+.datacatalo" + + "g.GetOrExtendReservationResponse\022e\n\022Rele" + + "aseReservation\022&.datacatalog.ReleaseRese" + + "rvationRequest\032\'.datacatalog.ReleaseRese" + + "rvationResponseBCZAgithub.com/flyteorg/f" + + "lyte/flyteidl/gen/pb-go/flyteidl/datacat" + + "alogb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -34101,7 +34649,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_datacatalog_DatasetID_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_datacatalog_DatasetID_descriptor, - new java.lang.String[] { "Project", "Name", "Domain", "Version", "UUID", }); + new java.lang.String[] { "Project", "Name", "Domain", "Version", "UUID", "Partition", "Org", }); internal_static_datacatalog_Artifact_descriptor = getDescriptor().getMessageTypes().get(25); internal_static_datacatalog_Artifact_fieldAccessorTable = new @@ -34173,7 +34721,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_datacatalog_DatasetPropertyFilter_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_datacatalog_DatasetPropertyFilter_descriptor, - new java.lang.String[] { "Project", "Name", "Domain", "Version", "Property", }); + new java.lang.String[] { "Project", "Name", "Domain", "Version", "Partition", "Property", }); internal_static_datacatalog_PaginationOptions_descriptor = getDescriptor().getMessageTypes().get(36); internal_static_datacatalog_PaginationOptions_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-java/flyteidl/admin/Common.java b/flyteidl/gen/pb-java/flyteidl/admin/Common.java index 4120abc852..bc18ef3c1e 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/Common.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/Common.java @@ -212,6 +212,24 @@ public interface NamedEntityIdentifierOrBuilder extends */ com.google.protobuf.ByteString getNameBytes(); + + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 4; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 4; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -236,6 +254,7 @@ private NamedEntityIdentifier() {
       project_ = "";
       domain_ = "";
       name_ = "";
+      org_ = "";
     }
 
     @java.lang.Override
@@ -280,6 +299,12 @@ private NamedEntityIdentifier(
               name_ = s;
               break;
             }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -444,6 +469,48 @@ public java.lang.String getName() {
       }
     }
 
+    public static final int ORG_FIELD_NUMBER = 4;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 4; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 4; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -467,6 +534,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getNameBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, org_); + } unknownFields.writeTo(output); } @@ -485,6 +555,9 @@ public int getSerializedSize() { if (!getNameBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -506,6 +579,8 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getDomain())) return false; if (!getName() .equals(other.getName())) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -523,6 +598,8 @@ public int hashCode() { hash = (53 * hash) + getDomain().hashCode(); hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -669,6 +746,8 @@ public Builder clear() { name_ = ""; + org_ = ""; + return this; } @@ -698,6 +777,7 @@ public flyteidl.admin.Common.NamedEntityIdentifier buildPartial() { result.project_ = project_; result.domain_ = domain_; result.name_ = name_; + result.org_ = org_; onBuilt(); return result; } @@ -758,6 +838,10 @@ public Builder mergeFrom(flyteidl.admin.Common.NamedEntityIdentifier other) { name_ = other.name_; onChanged(); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -1068,6 +1152,95 @@ public Builder setNameBytes( onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 4; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 4; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 4; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 4; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 4; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -3834,6 +4007,24 @@ public interface NamedEntityIdentifierListRequestOrBuilder extends */ com.google.protobuf.ByteString getFiltersBytes(); + + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 7; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 7; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -3856,6 +4047,7 @@ private NamedEntityIdentifierListRequest() {
       domain_ = "";
       token_ = "";
       filters_ = "";
+      org_ = "";
     }
 
     @java.lang.Override
@@ -3924,6 +4116,12 @@ private NamedEntityIdentifierListRequest(
               filters_ = s;
               break;
             }
+            case 58: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -4184,6 +4382,48 @@ public java.lang.String getFilters() {
       }
     }
 
+    public static final int ORG_FIELD_NUMBER = 7;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 7; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 7; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -4216,6 +4456,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getFiltersBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 6, filters_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, org_); + } unknownFields.writeTo(output); } @@ -4245,6 +4488,9 @@ public int getSerializedSize() { if (!getFiltersBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, filters_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -4275,6 +4521,8 @@ public boolean equals(final java.lang.Object obj) { } if (!getFilters() .equals(other.getFilters())) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -4300,6 +4548,8 @@ public int hashCode() { } hash = (37 * hash) + FILTERS_FIELD_NUMBER; hash = (53 * hash) + getFilters().hashCode(); + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -4453,6 +4703,8 @@ public Builder clear() { } filters_ = ""; + org_ = ""; + return this; } @@ -4489,6 +4741,7 @@ public flyteidl.admin.Common.NamedEntityIdentifierListRequest buildPartial() { result.sortBy_ = sortByBuilder_.build(); } result.filters_ = filters_; + result.org_ = org_; onBuilt(); return result; } @@ -4559,6 +4812,10 @@ public Builder mergeFrom(flyteidl.admin.Common.NamedEntityIdentifierListRequest filters_ = other.filters_; onChanged(); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -5171,6 +5428,95 @@ public Builder setFiltersBytes( onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 7; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 7; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 7; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 7; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 7; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -5363,6 +5709,24 @@ public interface NamedEntityListRequestOrBuilder extends */ com.google.protobuf.ByteString getFiltersBytes(); + + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 8; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 8; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -5386,6 +5750,7 @@ private NamedEntityListRequest() {
       domain_ = "";
       token_ = "";
       filters_ = "";
+      org_ = "";
     }
 
     @java.lang.Override
@@ -5460,6 +5825,12 @@ private NamedEntityListRequest(
               filters_ = s;
               break;
             }
+            case 66: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -5744,6 +6115,48 @@ public java.lang.String getFilters() {
       }
     }
 
+    public static final int ORG_FIELD_NUMBER = 8;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 8; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 8; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -5779,6 +6192,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getFiltersBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 7, filters_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, org_); + } unknownFields.writeTo(output); } @@ -5812,6 +6228,9 @@ public int getSerializedSize() { if (!getFiltersBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, filters_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -5843,6 +6262,8 @@ public boolean equals(final java.lang.Object obj) { } if (!getFilters() .equals(other.getFilters())) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -5870,6 +6291,8 @@ public int hashCode() { } hash = (37 * hash) + FILTERS_FIELD_NUMBER; hash = (53 * hash) + getFilters().hashCode(); + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -6025,6 +6448,8 @@ public Builder clear() { } filters_ = ""; + org_ = ""; + return this; } @@ -6062,6 +6487,7 @@ public flyteidl.admin.Common.NamedEntityListRequest buildPartial() { result.sortBy_ = sortByBuilder_.build(); } result.filters_ = filters_; + result.org_ = org_; onBuilt(); return result; } @@ -6135,6 +6561,10 @@ public Builder mergeFrom(flyteidl.admin.Common.NamedEntityListRequest other) { filters_ = other.filters_; onChanged(); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -6809,6 +7239,95 @@ public Builder setFiltersBytes( onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 8; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 8; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 8; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 8; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 8; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -22622,73 +23141,73 @@ public flyteidl.admin.Common.FlyteURLs getDefaultInstanceForType() { "admin\032\035flyteidl/core/execution.proto\032\036fl" + "yteidl/core/identifier.proto\032\034flyteidl/c" + "ore/literals.proto\032\037google/protobuf/time" + - "stamp.proto\"F\n\025NamedEntityIdentifier\022\017\n\007" + + "stamp.proto\"S\n\025NamedEntityIdentifier\022\017\n\007" + "project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\014\n\004name\030\003 " + - "\001(\t\"[\n\023NamedEntityMetadata\022\023\n\013descriptio" + - "n\030\001 \001(\t\022/\n\005state\030\002 \001(\0162 .flyteidl.admin." + - "NamedEntityState\"\253\001\n\013NamedEntity\0222\n\rreso" + - "urce_type\030\001 \001(\0162\033.flyteidl.core.Resource" + - "Type\0221\n\002id\030\002 \001(\0132%.flyteidl.admin.NamedE" + - "ntityIdentifier\0225\n\010metadata\030\003 \001(\0132#.flyt" + - "eidl.admin.NamedEntityMetadata\"r\n\004Sort\022\013" + - "\n\003key\030\001 \001(\t\0221\n\tdirection\030\002 \001(\0162\036.flyteid" + - "l.admin.Sort.Direction\"*\n\tDirection\022\016\n\nD" + - "ESCENDING\020\000\022\r\n\tASCENDING\020\001\"\231\001\n NamedEnti" + - "tyIdentifierListRequest\022\017\n\007project\030\001 \001(\t" + - "\022\016\n\006domain\030\002 \001(\t\022\r\n\005limit\030\003 \001(\r\022\r\n\005token" + + "\001(\t\022\013\n\003org\030\004 \001(\t\"[\n\023NamedEntityMetadata\022" + + "\023\n\013description\030\001 \001(\t\022/\n\005state\030\002 \001(\0162 .fl" + + "yteidl.admin.NamedEntityState\"\253\001\n\013NamedE" + + "ntity\0222\n\rresource_type\030\001 \001(\0162\033.flyteidl." + + "core.ResourceType\0221\n\002id\030\002 \001(\0132%.flyteidl" + + ".admin.NamedEntityIdentifier\0225\n\010metadata" + + "\030\003 \001(\0132#.flyteidl.admin.NamedEntityMetad" + + "ata\"r\n\004Sort\022\013\n\003key\030\001 \001(\t\0221\n\tdirection\030\002 " + + "\001(\0162\036.flyteidl.admin.Sort.Direction\"*\n\tD" + + "irection\022\016\n\nDESCENDING\020\000\022\r\n\tASCENDING\020\001\"" + + "\246\001\n NamedEntityIdentifierListRequest\022\017\n\007" + + "project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\r\n\005limit\030\003" + + " \001(\r\022\r\n\005token\030\004 \001(\t\022%\n\007sort_by\030\005 \001(\0132\024.f" + + "lyteidl.admin.Sort\022\017\n\007filters\030\006 \001(\t\022\013\n\003o" + + "rg\030\007 \001(\t\"\320\001\n\026NamedEntityListRequest\0222\n\rr" + + "esource_type\030\001 \001(\0162\033.flyteidl.core.Resou" + + "rceType\022\017\n\007project\030\002 \001(\t\022\016\n\006domain\030\003 \001(\t" + + "\022\r\n\005limit\030\004 \001(\r\022\r\n\005token\030\005 \001(\t\022%\n\007sort_b" + + "y\030\006 \001(\0132\024.flyteidl.admin.Sort\022\017\n\007filters" + + "\030\007 \001(\t\022\013\n\003org\030\010 \001(\t\"c\n\031NamedEntityIdenti" + + "fierList\0227\n\010entities\030\001 \003(\0132%.flyteidl.ad" + + "min.NamedEntityIdentifier\022\r\n\005token\030\002 \001(\t" + + "\"O\n\017NamedEntityList\022-\n\010entities\030\001 \003(\0132\033." + + "flyteidl.admin.NamedEntity\022\r\n\005token\030\002 \001(" + + "\t\"~\n\025NamedEntityGetRequest\0222\n\rresource_t" + + "ype\030\001 \001(\0162\033.flyteidl.core.ResourceType\0221" + + "\n\002id\030\002 \001(\0132%.flyteidl.admin.NamedEntityI" + + "dentifier\"\270\001\n\030NamedEntityUpdateRequest\0222" + + "\n\rresource_type\030\001 \001(\0162\033.flyteidl.core.Re" + + "sourceType\0221\n\002id\030\002 \001(\0132%.flyteidl.admin." + + "NamedEntityIdentifier\0225\n\010metadata\030\003 \001(\0132" + + "#.flyteidl.admin.NamedEntityMetadata\"\033\n\031" + + "NamedEntityUpdateResponse\"9\n\020ObjectGetRe" + + "quest\022%\n\002id\030\001 \001(\0132\031.flyteidl.core.Identi" + + "fier\"\236\001\n\023ResourceListRequest\0221\n\002id\030\001 \001(\013" + + "2%.flyteidl.admin.NamedEntityIdentifier\022" + + "\r\n\005limit\030\002 \001(\r\022\r\n\005token\030\003 \001(\t\022\017\n\007filters" + "\030\004 \001(\t\022%\n\007sort_by\030\005 \001(\0132\024.flyteidl.admin" + - ".Sort\022\017\n\007filters\030\006 \001(\t\"\303\001\n\026NamedEntityLi" + - "stRequest\0222\n\rresource_type\030\001 \001(\0162\033.flyte" + - "idl.core.ResourceType\022\017\n\007project\030\002 \001(\t\022\016" + - "\n\006domain\030\003 \001(\t\022\r\n\005limit\030\004 \001(\r\022\r\n\005token\030\005" + - " \001(\t\022%\n\007sort_by\030\006 \001(\0132\024.flyteidl.admin.S" + - "ort\022\017\n\007filters\030\007 \001(\t\"c\n\031NamedEntityIdent" + - "ifierList\0227\n\010entities\030\001 \003(\0132%.flyteidl.a" + - "dmin.NamedEntityIdentifier\022\r\n\005token\030\002 \001(" + - "\t\"O\n\017NamedEntityList\022-\n\010entities\030\001 \003(\0132\033" + - ".flyteidl.admin.NamedEntity\022\r\n\005token\030\002 \001" + - "(\t\"~\n\025NamedEntityGetRequest\0222\n\rresource_" + - "type\030\001 \001(\0162\033.flyteidl.core.ResourceType\022" + - "1\n\002id\030\002 \001(\0132%.flyteidl.admin.NamedEntity" + - "Identifier\"\270\001\n\030NamedEntityUpdateRequest\022" + - "2\n\rresource_type\030\001 \001(\0162\033.flyteidl.core.R" + - "esourceType\0221\n\002id\030\002 \001(\0132%.flyteidl.admin" + - ".NamedEntityIdentifier\0225\n\010metadata\030\003 \001(\013" + - "2#.flyteidl.admin.NamedEntityMetadata\"\033\n" + - "\031NamedEntityUpdateResponse\"9\n\020ObjectGetR" + - "equest\022%\n\002id\030\001 \001(\0132\031.flyteidl.core.Ident" + - "ifier\"\236\001\n\023ResourceListRequest\0221\n\002id\030\001 \001(" + - "\0132%.flyteidl.admin.NamedEntityIdentifier" + - "\022\r\n\005limit\030\002 \001(\r\022\r\n\005token\030\003 \001(\t\022\017\n\007filter" + - "s\030\004 \001(\t\022%\n\007sort_by\030\005 \001(\0132\024.flyteidl.admi" + - "n.Sort\"-\n\021EmailNotification\022\030\n\020recipient" + - "s_email\030\001 \003(\t\"1\n\025PagerDutyNotification\022\030" + - "\n\020recipients_email\030\001 \003(\t\"-\n\021SlackNotific" + - "ation\022\030\n\020recipients_email\030\001 \003(\t\"\363\001\n\014Noti" + - "fication\0226\n\006phases\030\001 \003(\0162&.flyteidl.core" + - ".WorkflowExecution.Phase\0222\n\005email\030\002 \001(\0132" + - "!.flyteidl.admin.EmailNotificationH\000\022;\n\n" + - "pager_duty\030\003 \001(\0132%.flyteidl.admin.PagerD" + - "utyNotificationH\000\0222\n\005slack\030\004 \001(\0132!.flyte" + - "idl.admin.SlackNotificationH\000B\006\n\004type\")\n" + - "\007UrlBlob\022\013\n\003url\030\001 \001(\t\022\r\n\005bytes\030\002 \001(\003:\002\030\001" + - "\"k\n\006Labels\0222\n\006values\030\001 \003(\0132\".flyteidl.ad" + - "min.Labels.ValuesEntry\032-\n\013ValuesEntry\022\013\n" + - "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"u\n\013Annotat" + - "ions\0227\n\006values\030\001 \003(\0132\'.flyteidl.admin.An" + - "notations.ValuesEntry\032-\n\013ValuesEntry\022\013\n\003" + - "key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"3\n\004Envs\022+\n\006" + - "values\030\001 \003(\0132\033.flyteidl.core.KeyValuePai" + - "r\"N\n\010AuthRole\022\032\n\022assumable_iam_role\030\001 \001(" + - "\t\022\"\n\032kubernetes_service_account\030\002 \001(\t:\002\030" + - "\001\"5\n\023RawOutputDataConfig\022\036\n\026output_locat" + - "ion_prefix\030\001 \001(\t\":\n\tFlyteURLs\022\016\n\006inputs\030" + - "\001 \001(\t\022\017\n\007outputs\030\002 \001(\t\022\014\n\004deck\030\003 \001(\t*\\\n\020" + - "NamedEntityState\022\027\n\023NAMED_ENTITY_ACTIVE\020" + - "\000\022\031\n\025NAMED_ENTITY_ARCHIVED\020\001\022\024\n\020SYSTEM_G" + - "ENERATED\020\002B=Z;github.com/flyteorg/flyte/" + - "flyteidl/gen/pb-go/flyteidl/adminb\006proto" + - "3" + ".Sort\"-\n\021EmailNotification\022\030\n\020recipients" + + "_email\030\001 \003(\t\"1\n\025PagerDutyNotification\022\030\n" + + "\020recipients_email\030\001 \003(\t\"-\n\021SlackNotifica" + + "tion\022\030\n\020recipients_email\030\001 \003(\t\"\363\001\n\014Notif" + + "ication\0226\n\006phases\030\001 \003(\0162&.flyteidl.core." + + "WorkflowExecution.Phase\0222\n\005email\030\002 \001(\0132!" + + ".flyteidl.admin.EmailNotificationH\000\022;\n\np" + + "ager_duty\030\003 \001(\0132%.flyteidl.admin.PagerDu" + + "tyNotificationH\000\0222\n\005slack\030\004 \001(\0132!.flytei" + + "dl.admin.SlackNotificationH\000B\006\n\004type\")\n\007" + + "UrlBlob\022\013\n\003url\030\001 \001(\t\022\r\n\005bytes\030\002 \001(\003:\002\030\001\"" + + "k\n\006Labels\0222\n\006values\030\001 \003(\0132\".flyteidl.adm" + + "in.Labels.ValuesEntry\032-\n\013ValuesEntry\022\013\n\003" + + "key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"u\n\013Annotati" + + "ons\0227\n\006values\030\001 \003(\0132\'.flyteidl.admin.Ann" + + "otations.ValuesEntry\032-\n\013ValuesEntry\022\013\n\003k" + + "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"3\n\004Envs\022+\n\006v" + + "alues\030\001 \003(\0132\033.flyteidl.core.KeyValuePair" + + "\"N\n\010AuthRole\022\032\n\022assumable_iam_role\030\001 \001(\t" + + "\022\"\n\032kubernetes_service_account\030\002 \001(\t:\002\030\001" + + "\"5\n\023RawOutputDataConfig\022\036\n\026output_locati" + + "on_prefix\030\001 \001(\t\":\n\tFlyteURLs\022\016\n\006inputs\030\001" + + " \001(\t\022\017\n\007outputs\030\002 \001(\t\022\014\n\004deck\030\003 \001(\t*\\\n\020N" + + "amedEntityState\022\027\n\023NAMED_ENTITY_ACTIVE\020\000" + + "\022\031\n\025NAMED_ENTITY_ARCHIVED\020\001\022\024\n\020SYSTEM_GE" + + "NERATED\020\002B=Z;github.com/flyteorg/flyte/f" + + "lyteidl/gen/pb-go/flyteidl/adminb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -22711,7 +23230,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_NamedEntityIdentifier_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_NamedEntityIdentifier_descriptor, - new java.lang.String[] { "Project", "Domain", "Name", }); + new java.lang.String[] { "Project", "Domain", "Name", "Org", }); internal_static_flyteidl_admin_NamedEntityMetadata_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_flyteidl_admin_NamedEntityMetadata_fieldAccessorTable = new @@ -22735,13 +23254,13 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_NamedEntityIdentifierListRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_NamedEntityIdentifierListRequest_descriptor, - new java.lang.String[] { "Project", "Domain", "Limit", "Token", "SortBy", "Filters", }); + new java.lang.String[] { "Project", "Domain", "Limit", "Token", "SortBy", "Filters", "Org", }); internal_static_flyteidl_admin_NamedEntityListRequest_descriptor = getDescriptor().getMessageTypes().get(5); internal_static_flyteidl_admin_NamedEntityListRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_NamedEntityListRequest_descriptor, - new java.lang.String[] { "ResourceType", "Project", "Domain", "Limit", "Token", "SortBy", "Filters", }); + new java.lang.String[] { "ResourceType", "Project", "Domain", "Limit", "Token", "SortBy", "Filters", "Org", }); internal_static_flyteidl_admin_NamedEntityIdentifierList_descriptor = getDescriptor().getMessageTypes().get(6); internal_static_flyteidl_admin_NamedEntityIdentifierList_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java index 102ff472f0..57ad2a4f24 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java @@ -258,6 +258,24 @@ public interface ExecutionCreateRequestOrBuilder extends * .flyteidl.core.LiteralMap inputs = 5; */ flyteidl.core.Literals.LiteralMapOrBuilder getInputsOrBuilder(); + + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -279,6 +297,7 @@ private ExecutionCreateRequest() {
       project_ = "";
       domain_ = "";
       name_ = "";
+      org_ = "";
     }
 
     @java.lang.Override
@@ -349,6 +368,12 @@ private ExecutionCreateRequest(
 
               break;
             }
+            case 50: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -592,6 +617,48 @@ public flyteidl.core.Literals.LiteralMapOrBuilder getInputsOrBuilder() {
       return getInputs();
     }
 
+    public static final int ORG_FIELD_NUMBER = 6;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -621,6 +688,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (inputs_ != null) { output.writeMessage(5, getInputs()); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, org_); + } unknownFields.writeTo(output); } @@ -647,6 +717,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, getInputs()); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -678,6 +751,8 @@ public boolean equals(final java.lang.Object obj) { if (!getInputs() .equals(other.getInputs())) return false; } + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -703,6 +778,8 @@ public int hashCode() { hash = (37 * hash) + INPUTS_FIELD_NUMBER; hash = (53 * hash) + getInputs().hashCode(); } + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -858,6 +935,8 @@ public Builder clear() { inputs_ = null; inputsBuilder_ = null; } + org_ = ""; + return this; } @@ -897,6 +976,7 @@ public flyteidl.admin.ExecutionOuterClass.ExecutionCreateRequest buildPartial() } else { result.inputs_ = inputsBuilder_.build(); } + result.org_ = org_; onBuilt(); return result; } @@ -963,6 +1043,10 @@ public Builder mergeFrom(flyteidl.admin.ExecutionOuterClass.ExecutionCreateReque if (other.hasInputs()) { mergeInputs(other.getInputs()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -1616,6 +1700,95 @@ public flyteidl.core.Literals.LiteralMapOrBuilder getInputsOrBuilder() { } return inputsBuilder_; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -28956,114 +29129,114 @@ public flyteidl.admin.ExecutionOuterClass.WorkflowExecutionGetMetricsResponse ge "idl/core/security.proto\032\036google/protobuf" + "/duration.proto\032\037google/protobuf/timesta" + "mp.proto\032\036google/protobuf/wrappers.proto" + - "\"\237\001\n\026ExecutionCreateRequest\022\017\n\007project\030\001" + + "\"\254\001\n\026ExecutionCreateRequest\022\017\n\007project\030\001" + " \001(\t\022\016\n\006domain\030\002 \001(\t\022\014\n\004name\030\003 \001(\t\022+\n\004sp" + "ec\030\004 \001(\0132\035.flyteidl.admin.ExecutionSpec\022" + ")\n\006inputs\030\005 \001(\0132\031.flyteidl.core.LiteralM" + - "ap\"\177\n\030ExecutionRelaunchRequest\0226\n\002id\030\001 \001" + - "(\0132*.flyteidl.core.WorkflowExecutionIden" + - "tifier\022\014\n\004name\030\003 \001(\t\022\027\n\017overwrite_cache\030" + - "\004 \001(\010J\004\010\002\020\003\"\224\001\n\027ExecutionRecoverRequest\022" + + "ap\022\013\n\003org\030\006 \001(\t\"\177\n\030ExecutionRelaunchRequ" + + "est\0226\n\002id\030\001 \001(\0132*.flyteidl.core.Workflow" + + "ExecutionIdentifier\022\014\n\004name\030\003 \001(\t\022\027\n\017ove" + + "rwrite_cache\030\004 \001(\010J\004\010\002\020\003\"\224\001\n\027ExecutionRe" + + "coverRequest\0226\n\002id\030\001 \001(\0132*.flyteidl.core" + + ".WorkflowExecutionIdentifier\022\014\n\004name\030\002 \001" + + "(\t\0223\n\010metadata\030\003 \001(\0132!.flyteidl.admin.Ex" + + "ecutionMetadata\"Q\n\027ExecutionCreateRespon" + + "se\0226\n\002id\030\001 \001(\0132*.flyteidl.core.WorkflowE" + + "xecutionIdentifier\"U\n\033WorkflowExecutionG" + + "etRequest\0226\n\002id\030\001 \001(\0132*.flyteidl.core.Wo" + + "rkflowExecutionIdentifier\"\243\001\n\tExecution\022" + + "6\n\002id\030\001 \001(\0132*.flyteidl.core.WorkflowExec" + + "utionIdentifier\022+\n\004spec\030\002 \001(\0132\035.flyteidl" + + ".admin.ExecutionSpec\0221\n\007closure\030\003 \001(\0132 ." + + "flyteidl.admin.ExecutionClosure\"M\n\rExecu" + + "tionList\022-\n\nexecutions\030\001 \003(\0132\031.flyteidl." + + "admin.Execution\022\r\n\005token\030\002 \001(\t\"X\n\016Litera" + + "lMapBlob\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\tprin" + + "cipal\030\002 \001(\t\"\360\005\n\020ExecutionClosure\0225\n\007outp" + + "uts\030\001 \001(\0132\036.flyteidl.admin.LiteralMapBlo" + + "bB\002\030\001H\000\022.\n\005error\030\002 \001(\0132\035.flyteidl.core.E" + + "xecutionErrorH\000\022\031\n\013abort_cause\030\n \001(\tB\002\030\001" + + "H\000\0227\n\016abort_metadata\030\014 \001(\0132\035.flyteidl.ad" + + "min.AbortMetadataH\000\0224\n\013output_data\030\r \001(\013" + + "2\031.flyteidl.core.LiteralMapB\002\030\001H\000\0226\n\017com" + + "puted_inputs\030\003 \001(\0132\031.flyteidl.core.Liter" + + "alMapB\002\030\001\0225\n\005phase\030\004 \001(\0162&.flyteidl.core" + + ".WorkflowExecution.Phase\022.\n\nstarted_at\030\005" + + " \001(\0132\032.google.protobuf.Timestamp\022+\n\010dura" + + "tion\030\006 \001(\0132\031.google.protobuf.Duration\022.\n" + + "\ncreated_at\030\007 \001(\0132\032.google.protobuf.Time" + + "stamp\022.\n\nupdated_at\030\010 \001(\0132\032.google.proto" + + "buf.Timestamp\0223\n\rnotifications\030\t \003(\0132\034.f" + + "lyteidl.admin.Notification\022.\n\013workflow_i" + + "d\030\013 \001(\0132\031.flyteidl.core.Identifier\022I\n\024st" + + "ate_change_details\030\016 \001(\0132+.flyteidl.admi" + + "n.ExecutionStateChangeDetailsB\017\n\routput_" + + "result\">\n\016SystemMetadata\022\031\n\021execution_cl" + + "uster\030\001 \001(\t\022\021\n\tnamespace\030\002 \001(\t\"\213\004\n\021Execu" + + "tionMetadata\022=\n\004mode\030\001 \001(\0162/.flyteidl.ad" + + "min.ExecutionMetadata.ExecutionMode\022\021\n\tp" + + "rincipal\030\002 \001(\t\022\017\n\007nesting\030\003 \001(\r\0220\n\014sched" + + "uled_at\030\004 \001(\0132\032.google.protobuf.Timestam" + + "p\022E\n\025parent_node_execution\030\005 \001(\0132&.flyte" + + "idl.core.NodeExecutionIdentifier\022G\n\023refe" + + "rence_execution\030\020 \001(\0132*.flyteidl.core.Wo" + + "rkflowExecutionIdentifier\0227\n\017system_meta" + + "data\030\021 \001(\0132\036.flyteidl.admin.SystemMetada" + + "ta\022/\n\014artifact_ids\030\022 \003(\0132\031.flyteidl.core" + + ".ArtifactID\"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\020" + + "NotificationList\0223\n\rnotifications\030\001 \003(\0132" + + "\034.flyteidl.admin.Notification\"\262\006\n\rExecut" + + "ionSpec\022.\n\013launch_plan\030\001 \001(\0132\031.flyteidl." + + "core.Identifier\022-\n\006inputs\030\002 \001(\0132\031.flytei" + + "dl.core.LiteralMapB\002\030\001\0223\n\010metadata\030\003 \001(\013" + + "2!.flyteidl.admin.ExecutionMetadata\0229\n\rn" + + "otifications\030\005 \001(\0132 .flyteidl.admin.Noti" + + "ficationListH\000\022\025\n\013disable_all\030\006 \001(\010H\000\022&\n" + + "\006labels\030\007 \001(\0132\026.flyteidl.admin.Labels\0220\n" + + "\013annotations\030\010 \001(\0132\033.flyteidl.admin.Anno" + + "tations\0228\n\020security_context\030\n \001(\0132\036.flyt" + + "eidl.core.SecurityContext\022/\n\tauth_role\030\020" + + " \001(\0132\030.flyteidl.admin.AuthRoleB\002\030\001\022;\n\022qu" + + "ality_of_service\030\021 \001(\0132\037.flyteidl.core.Q" + + "ualityOfService\022\027\n\017max_parallelism\030\022 \001(\005" + + "\022C\n\026raw_output_data_config\030\023 \001(\0132#.flyte" + + "idl.admin.RawOutputDataConfig\022=\n\022cluster" + + "_assignment\030\024 \001(\0132!.flyteidl.admin.Clust" + + "erAssignment\0221\n\rinterruptible\030\025 \001(\0132\032.go" + + "ogle.protobuf.BoolValue\022\027\n\017overwrite_cac" + + "he\030\026 \001(\010\022\"\n\004envs\030\027 \001(\0132\024.flyteidl.admin." + + "Envs\022\014\n\004tags\030\030 \003(\tB\030\n\026notification_overr" + + "idesJ\004\010\004\020\005\"b\n\031ExecutionTerminateRequest\022" + "6\n\002id\030\001 \001(\0132*.flyteidl.core.WorkflowExec" + - "utionIdentifier\022\014\n\004name\030\002 \001(\t\0223\n\010metadat" + - "a\030\003 \001(\0132!.flyteidl.admin.ExecutionMetada" + - "ta\"Q\n\027ExecutionCreateResponse\0226\n\002id\030\001 \001(" + - "\0132*.flyteidl.core.WorkflowExecutionIdent" + - "ifier\"U\n\033WorkflowExecutionGetRequest\0226\n\002" + - "id\030\001 \001(\0132*.flyteidl.core.WorkflowExecuti" + - "onIdentifier\"\243\001\n\tExecution\0226\n\002id\030\001 \001(\0132*" + - ".flyteidl.core.WorkflowExecutionIdentifi" + - "er\022+\n\004spec\030\002 \001(\0132\035.flyteidl.admin.Execut" + - "ionSpec\0221\n\007closure\030\003 \001(\0132 .flyteidl.admi" + - "n.ExecutionClosure\"M\n\rExecutionList\022-\n\ne" + - "xecutions\030\001 \003(\0132\031.flyteidl.admin.Executi" + - "on\022\r\n\005token\030\002 \001(\t\"X\n\016LiteralMapBlob\022/\n\006v" + - "alues\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\rAbortMeta" + - "data\022\r\n\005cause\030\001 \001(\t\022\021\n\tprincipal\030\002 \001(\t\"\360" + - "\005\n\020ExecutionClosure\0225\n\007outputs\030\001 \001(\0132\036.f" + - "lyteidl.admin.LiteralMapBlobB\002\030\001H\000\022.\n\005er" + - "ror\030\002 \001(\0132\035.flyteidl.core.ExecutionError" + - "H\000\022\031\n\013abort_cause\030\n \001(\tB\002\030\001H\000\0227\n\016abort_m" + - "etadata\030\014 \001(\0132\035.flyteidl.admin.AbortMeta" + - "dataH\000\0224\n\013output_data\030\r \001(\0132\031.flyteidl.c" + - "ore.LiteralMapB\002\030\001H\000\0226\n\017computed_inputs\030" + - "\003 \001(\0132\031.flyteidl.core.LiteralMapB\002\030\001\0225\n\005" + - "phase\030\004 \001(\0162&.flyteidl.core.WorkflowExec" + - "ution.Phase\022.\n\nstarted_at\030\005 \001(\0132\032.google" + - ".protobuf.Timestamp\022+\n\010duration\030\006 \001(\0132\031." + - "google.protobuf.Duration\022.\n\ncreated_at\030\007" + - " \001(\0132\032.google.protobuf.Timestamp\022.\n\nupda" + - "ted_at\030\010 \001(\0132\032.google.protobuf.Timestamp" + - "\0223\n\rnotifications\030\t \003(\0132\034.flyteidl.admin" + - ".Notification\022.\n\013workflow_id\030\013 \001(\0132\031.fly" + - "teidl.core.Identifier\022I\n\024state_change_de" + - "tails\030\016 \001(\0132+.flyteidl.admin.ExecutionSt" + - "ateChangeDetailsB\017\n\routput_result\">\n\016Sys" + - "temMetadata\022\031\n\021execution_cluster\030\001 \001(\t\022\021" + - "\n\tnamespace\030\002 \001(\t\"\213\004\n\021ExecutionMetadata\022" + - "=\n\004mode\030\001 \001(\0162/.flyteidl.admin.Execution" + - "Metadata.ExecutionMode\022\021\n\tprincipal\030\002 \001(" + - "\t\022\017\n\007nesting\030\003 \001(\r\0220\n\014scheduled_at\030\004 \001(\013" + - "2\032.google.protobuf.Timestamp\022E\n\025parent_n" + - "ode_execution\030\005 \001(\0132&.flyteidl.core.Node" + - "ExecutionIdentifier\022G\n\023reference_executi" + - "on\030\020 \001(\0132*.flyteidl.core.WorkflowExecuti" + - "onIdentifier\0227\n\017system_metadata\030\021 \001(\0132\036." + - "flyteidl.admin.SystemMetadata\022/\n\014artifac" + - "t_ids\030\022 \003(\0132\031.flyteidl.core.ArtifactID\"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_WO" + - "RKFLOW\020\004\022\r\n\tRECOVERED\020\005\"G\n\020NotificationL" + - "ist\0223\n\rnotifications\030\001 \003(\0132\034.flyteidl.ad" + - "min.Notification\"\262\006\n\rExecutionSpec\022.\n\013la" + - "unch_plan\030\001 \001(\0132\031.flyteidl.core.Identifi" + - "er\022-\n\006inputs\030\002 \001(\0132\031.flyteidl.core.Liter" + - "alMapB\002\030\001\0223\n\010metadata\030\003 \001(\0132!.flyteidl.a" + - "dmin.ExecutionMetadata\0229\n\rnotifications\030" + - "\005 \001(\0132 .flyteidl.admin.NotificationListH" + - "\000\022\025\n\013disable_all\030\006 \001(\010H\000\022&\n\006labels\030\007 \001(\013" + - "2\026.flyteidl.admin.Labels\0220\n\013annotations\030" + - "\010 \001(\0132\033.flyteidl.admin.Annotations\0228\n\020se" + - "curity_context\030\n \001(\0132\036.flyteidl.core.Sec" + - "urityContext\022/\n\tauth_role\030\020 \001(\0132\030.flytei" + - "dl.admin.AuthRoleB\002\030\001\022;\n\022quality_of_serv" + - "ice\030\021 \001(\0132\037.flyteidl.core.QualityOfServi" + - "ce\022\027\n\017max_parallelism\030\022 \001(\005\022C\n\026raw_outpu" + - "t_data_config\030\023 \001(\0132#.flyteidl.admin.Raw" + - "OutputDataConfig\022=\n\022cluster_assignment\030\024" + - " \001(\0132!.flyteidl.admin.ClusterAssignment\022" + - "1\n\rinterruptible\030\025 \001(\0132\032.google.protobuf" + - ".BoolValue\022\027\n\017overwrite_cache\030\026 \001(\010\022\"\n\004e" + - "nvs\030\027 \001(\0132\024.flyteidl.admin.Envs\022\014\n\004tags\030" + - "\030 \003(\tB\030\n\026notification_overridesJ\004\010\004\020\005\"b\n" + - "\031ExecutionTerminateRequest\0226\n\002id\030\001 \001(\0132*" + - ".flyteidl.core.WorkflowExecutionIdentifi" + - "er\022\r\n\005cause\030\002 \001(\t\"\034\n\032ExecutionTerminateR" + - "esponse\"Y\n\037WorkflowExecutionGetDataReque" + + "utionIdentifier\022\r\n\005cause\030\002 \001(\t\"\034\n\032Execut" + + "ionTerminateResponse\"Y\n\037WorkflowExecutio" + + "nGetDataRequest\0226\n\002id\030\001 \001(\0132*.flyteidl.c" + + "ore.WorkflowExecutionIdentifier\"\336\001\n Work" + + "flowExecutionGetDataResponse\022,\n\007outputs\030" + + "\001 \001(\0132\027.flyteidl.admin.UrlBlobB\002\030\001\022+\n\006in" + + "puts\030\002 \001(\0132\027.flyteidl.admin.UrlBlobB\002\030\001\022" + + ".\n\013full_inputs\030\003 \001(\0132\031.flyteidl.core.Lit" + + "eralMap\022/\n\014full_outputs\030\004 \001(\0132\031.flyteidl" + + ".core.LiteralMap\"\177\n\026ExecutionUpdateReque" + "st\0226\n\002id\030\001 \001(\0132*.flyteidl.core.WorkflowE" + - "xecutionIdentifier\"\336\001\n WorkflowExecution" + - "GetDataResponse\022,\n\007outputs\030\001 \001(\0132\027.flyte" + - "idl.admin.UrlBlobB\002\030\001\022+\n\006inputs\030\002 \001(\0132\027." + - "flyteidl.admin.UrlBlobB\002\030\001\022.\n\013full_input" + - "s\030\003 \001(\0132\031.flyteidl.core.LiteralMap\022/\n\014fu" + - "ll_outputs\030\004 \001(\0132\031.flyteidl.core.Literal" + - "Map\"\177\n\026ExecutionUpdateRequest\0226\n\002id\030\001 \001(" + - "\0132*.flyteidl.core.WorkflowExecutionIdent" + - "ifier\022-\n\005state\030\002 \001(\0162\036.flyteidl.admin.Ex" + - "ecutionState\"\220\001\n\033ExecutionStateChangeDet" + - "ails\022-\n\005state\030\001 \001(\0162\036.flyteidl.admin.Exe" + - "cutionState\022/\n\013occurred_at\030\002 \001(\0132\032.googl" + - "e.protobuf.Timestamp\022\021\n\tprincipal\030\003 \001(\t\"" + - "\031\n\027ExecutionUpdateResponse\"k\n\"WorkflowEx" + - "ecutionGetMetricsRequest\0226\n\002id\030\001 \001(\0132*.f" + - "lyteidl.core.WorkflowExecutionIdentifier" + - "\022\r\n\005depth\030\002 \001(\005\"H\n#WorkflowExecutionGetM" + - "etricsResponse\022!\n\004span\030\001 \001(\0132\023.flyteidl." + - "core.Span*>\n\016ExecutionState\022\024\n\020EXECUTION" + - "_ACTIVE\020\000\022\026\n\022EXECUTION_ARCHIVED\020\001B=Z;git" + - "hub.com/flyteorg/flyte/flyteidl/gen/pb-g" + - "o/flyteidl/adminb\006proto3" + "xecutionIdentifier\022-\n\005state\030\002 \001(\0162\036.flyt" + + "eidl.admin.ExecutionState\"\220\001\n\033ExecutionS" + + "tateChangeDetails\022-\n\005state\030\001 \001(\0162\036.flyte" + + "idl.admin.ExecutionState\022/\n\013occurred_at\030" + + "\002 \001(\0132\032.google.protobuf.Timestamp\022\021\n\tpri" + + "ncipal\030\003 \001(\t\"\031\n\027ExecutionUpdateResponse\"" + + "k\n\"WorkflowExecutionGetMetricsRequest\0226\n" + + "\002id\030\001 \001(\0132*.flyteidl.core.WorkflowExecut" + + "ionIdentifier\022\r\n\005depth\030\002 \001(\005\"H\n#Workflow" + + "ExecutionGetMetricsResponse\022!\n\004span\030\001 \001(" + + "\0132\023.flyteidl.core.Span*>\n\016ExecutionState" + + "\022\024\n\020EXECUTION_ACTIVE\020\000\022\026\n\022EXECUTION_ARCH" + + "IVED\020\001B=Z;github.com/flyteorg/flyte/flyt" + + "eidl/gen/pb-go/flyteidl/adminb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -29093,7 +29266,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ExecutionCreateRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ExecutionCreateRequest_descriptor, - new java.lang.String[] { "Project", "Domain", "Name", "Spec", "Inputs", }); + new java.lang.String[] { "Project", "Domain", "Name", "Spec", "Inputs", "Org", }); internal_static_flyteidl_admin_ExecutionRelaunchRequest_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_flyteidl_admin_ExecutionRelaunchRequest_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-java/flyteidl/admin/LaunchPlanOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/LaunchPlanOuterClass.java index ae781f6903..77678695e6 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/LaunchPlanOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/LaunchPlanOuterClass.java @@ -13512,10 +13512,28 @@ public interface ActiveLaunchPlanListRequestOrBuilder extends * .flyteidl.admin.Sort sort_by = 5; */ flyteidl.admin.Common.SortOrBuilder getSortByOrBuilder(); + + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
-   * Represents a request structure to list active launch plans within a project/domain.
+   * Represents a request structure to list active launch plans within a project/domain and optional org.
    * See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
    * 
* @@ -13534,6 +13552,7 @@ private ActiveLaunchPlanListRequest() { project_ = ""; domain_ = ""; token_ = ""; + org_ = ""; } @java.lang.Override @@ -13596,6 +13615,12 @@ private ActiveLaunchPlanListRequest( break; } + case 50: { + java.lang.String s = input.readStringRequireUtf8(); + + org_ = s; + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -13812,6 +13837,48 @@ public flyteidl.admin.Common.SortOrBuilder getSortByOrBuilder() { return getSortBy(); } + public static final int ORG_FIELD_NUMBER = 6; + private volatile java.lang.Object org_; + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -13841,6 +13908,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (sortBy_ != null) { output.writeMessage(5, getSortBy()); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, org_); + } unknownFields.writeTo(output); } @@ -13867,6 +13937,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, getSortBy()); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -13895,6 +13968,8 @@ public boolean equals(final java.lang.Object obj) { if (!getSortBy() .equals(other.getSortBy())) return false; } + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -13918,6 +13993,8 @@ public int hashCode() { hash = (37 * hash) + SORT_BY_FIELD_NUMBER; hash = (53 * hash) + getSortBy().hashCode(); } + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -14015,7 +14092,7 @@ protected Builder newBuilderForType( } /** *
-     * Represents a request structure to list active launch plans within a project/domain.
+     * Represents a request structure to list active launch plans within a project/domain and optional org.
      * See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
      * 
* @@ -14070,6 +14147,8 @@ public Builder clear() { sortBy_ = null; sortByBuilder_ = null; } + org_ = ""; + return this; } @@ -14105,6 +14184,7 @@ public flyteidl.admin.LaunchPlanOuterClass.ActiveLaunchPlanListRequest buildPart } else { result.sortBy_ = sortByBuilder_.build(); } + result.org_ = org_; onBuilt(); return result; } @@ -14171,6 +14251,10 @@ public Builder mergeFrom(flyteidl.admin.LaunchPlanOuterClass.ActiveLaunchPlanLis if (other.hasSortBy()) { mergeSortBy(other.getSortBy()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -14689,6 +14773,95 @@ public flyteidl.admin.Common.SortOrBuilder getSortByOrBuilder() { } return sortByBuilder_; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -14866,13 +15039,14 @@ public flyteidl.admin.LaunchPlanOuterClass.ActiveLaunchPlanListRequest getDefaul "\001(\0162\037.flyteidl.admin.LaunchPlanState\"\032\n\030" + "LaunchPlanUpdateResponse\"L\n\027ActiveLaunch" + "PlanRequest\0221\n\002id\030\001 \001(\0132%.flyteidl.admin" + - ".NamedEntityIdentifier\"\203\001\n\033ActiveLaunchP" + + ".NamedEntityIdentifier\"\220\001\n\033ActiveLaunchP" + "lanListRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domai" + "n\030\002 \001(\t\022\r\n\005limit\030\003 \001(\r\022\r\n\005token\030\004 \001(\t\022%\n" + - "\007sort_by\030\005 \001(\0132\024.flyteidl.admin.Sort*+\n\017" + - "LaunchPlanState\022\014\n\010INACTIVE\020\000\022\n\n\006ACTIVE\020" + - "\001B=Z;github.com/flyteorg/flyte/flyteidl/" + - "gen/pb-go/flyteidl/adminb\006proto3" + "\007sort_by\030\005 \001(\0132\024.flyteidl.admin.Sort\022\013\n\003" + + "org\030\006 \001(\t*+\n\017LaunchPlanState\022\014\n\010INACTIVE" + + "\020\000\022\n\n\006ACTIVE\020\001B=Z;github.com/flyteorg/fl" + + "yte/flyteidl/gen/pb-go/flyteidl/adminb\006p" + + "roto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -14967,7 +15141,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ActiveLaunchPlanListRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ActiveLaunchPlanListRequest_descriptor, - new java.lang.String[] { "Project", "Domain", "Limit", "Token", "SortBy", }); + new java.lang.String[] { "Project", "Domain", "Limit", "Token", "SortBy", "Org", }); flyteidl.core.Execution.getDescriptor(); flyteidl.core.Literals.getDescriptor(); flyteidl.core.IdentifierOuterClass.getDescriptor(); diff --git a/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java index 0f4b473a21..c359966b35 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java @@ -10549,11 +10549,29 @@ public interface MatchableAttributesConfigurationOrBuilder extends */ com.google.protobuf.ByteString getLaunchPlanBytes(); + + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
-   * Represents a custom set of attributes applied for either a domain; a domain and project; or
-   * domain, project and workflow name.
+   * Represents a custom set of attributes applied for either a domain (and optional org); a domain and project (and optional org);
+   * or domain, project and workflow name (and optional org).
    * These are used to override system level defaults for kubernetes cluster resource management,
    * default execution values, and more all across different levels of specificity.
    * 
@@ -10574,6 +10592,7 @@ private MatchableAttributesConfiguration() { project_ = ""; workflow_ = ""; launchPlan_ = ""; + org_ = ""; } @java.lang.Override @@ -10637,6 +10656,12 @@ private MatchableAttributesConfiguration( launchPlan_ = s; break; } + case 50: { + java.lang.String s = input.readStringRequireUtf8(); + + org_ = s; + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -10826,6 +10851,48 @@ public java.lang.String getLaunchPlan() { } } + public static final int ORG_FIELD_NUMBER = 6; + private volatile java.lang.Object org_; + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -10855,6 +10922,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getLaunchPlanBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, launchPlan_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, org_); + } unknownFields.writeTo(output); } @@ -10880,6 +10950,9 @@ public int getSerializedSize() { if (!getLaunchPlanBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, launchPlan_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -10908,6 +10981,8 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getWorkflow())) return false; if (!getLaunchPlan() .equals(other.getLaunchPlan())) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -10931,6 +11006,8 @@ public int hashCode() { hash = (53 * hash) + getWorkflow().hashCode(); hash = (37 * hash) + LAUNCH_PLAN_FIELD_NUMBER; hash = (53 * hash) + getLaunchPlan().hashCode(); + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -11028,8 +11105,8 @@ protected Builder newBuilderForType( } /** *
-     * Represents a custom set of attributes applied for either a domain; a domain and project; or
-     * domain, project and workflow name.
+     * Represents a custom set of attributes applied for either a domain (and optional org); a domain and project (and optional org);
+     * or domain, project and workflow name (and optional org).
      * These are used to override system level defaults for kubernetes cluster resource management,
      * default execution values, and more all across different levels of specificity.
      * 
@@ -11085,6 +11162,8 @@ public Builder clear() { launchPlan_ = ""; + org_ = ""; + return this; } @@ -11120,6 +11199,7 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchableAttributesConfigurati result.project_ = project_; result.workflow_ = workflow_; result.launchPlan_ = launchPlan_; + result.org_ = org_; onBuilt(); return result; } @@ -11187,6 +11267,10 @@ public Builder mergeFrom(flyteidl.admin.MatchableResourceOuterClass.MatchableAtt launchPlan_ = other.launchPlan_; onChanged(); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -11608,6 +11692,95 @@ public Builder setLaunchPlanBytes( onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -13126,24 +13299,24 @@ public flyteidl.admin.MatchableResourceOuterClass.ListMatchableAttributesRespons "sH\000\022L\n\031workflow_execution_config\030\007 \001(\0132\'" + ".flyteidl.admin.WorkflowExecutionConfigH" + "\000\022?\n\022cluster_assignment\030\010 \001(\0132!.flyteidl" + - ".admin.ClusterAssignmentH\000B\010\n\006target\"\242\001\n" + + ".admin.ClusterAssignmentH\000B\010\n\006target\"\257\001\n" + " MatchableAttributesConfiguration\0226\n\natt" + "ributes\030\001 \001(\0132\".flyteidl.admin.MatchingA" + "ttributes\022\016\n\006domain\030\002 \001(\t\022\017\n\007project\030\003 \001" + "(\t\022\020\n\010workflow\030\004 \001(\t\022\023\n\013launch_plan\030\005 \001(" + - "\t\"Z\n\036ListMatchableAttributesRequest\0228\n\rr" + - "esource_type\030\001 \001(\0162!.flyteidl.admin.Matc" + - "hableResource\"k\n\037ListMatchableAttributes" + - "Response\022H\n\016configurations\030\001 \003(\01320.flyte" + - "idl.admin.MatchableAttributesConfigurati" + - "on*\340\001\n\021MatchableResource\022\021\n\rTASK_RESOURC" + - "E\020\000\022\024\n\020CLUSTER_RESOURCE\020\001\022\023\n\017EXECUTION_Q" + - "UEUE\020\002\022\033\n\027EXECUTION_CLUSTER_LABEL\020\003\022$\n Q" + - "UALITY_OF_SERVICE_SPECIFICATION\020\004\022\023\n\017PLU" + - "GIN_OVERRIDE\020\005\022\035\n\031WORKFLOW_EXECUTION_CON" + - "FIG\020\006\022\026\n\022CLUSTER_ASSIGNMENT\020\007B=Z;github." + - "com/flyteorg/flyte/flyteidl/gen/pb-go/fl" + - "yteidl/adminb\006proto3" + "\t\022\013\n\003org\030\006 \001(\t\"Z\n\036ListMatchableAttribute" + + "sRequest\0228\n\rresource_type\030\001 \001(\0162!.flytei" + + "dl.admin.MatchableResource\"k\n\037ListMatcha" + + "bleAttributesResponse\022H\n\016configurations\030" + + "\001 \003(\01320.flyteidl.admin.MatchableAttribut" + + "esConfiguration*\340\001\n\021MatchableResource\022\021\n" + + "\rTASK_RESOURCE\020\000\022\024\n\020CLUSTER_RESOURCE\020\001\022\023" + + "\n\017EXECUTION_QUEUE\020\002\022\033\n\027EXECUTION_CLUSTER" + + "_LABEL\020\003\022$\n QUALITY_OF_SERVICE_SPECIFICA" + + "TION\020\004\022\023\n\017PLUGIN_OVERRIDE\020\005\022\035\n\031WORKFLOW_" + + "EXECUTION_CONFIG\020\006\022\026\n\022CLUSTER_ASSIGNMENT" + + "\020\007B=Z;github.com/flyteorg/flyte/flyteidl" + + "/gen/pb-go/flyteidl/adminb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -13227,7 +13400,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_MatchableAttributesConfiguration_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_MatchableAttributesConfiguration_descriptor, - new java.lang.String[] { "Attributes", "Domain", "Project", "Workflow", "LaunchPlan", }); + new java.lang.String[] { "Attributes", "Domain", "Project", "Workflow", "LaunchPlan", "Org", }); internal_static_flyteidl_admin_ListMatchableAttributesRequest_descriptor = getDescriptor().getMessageTypes().get(10); internal_static_flyteidl_admin_ListMatchableAttributesRequest_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-java/flyteidl/admin/ProjectAttributesOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ProjectAttributesOuterClass.java index 4af2acdb48..c124b52d9d 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ProjectAttributesOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ProjectAttributesOuterClass.java @@ -48,6 +48,24 @@ public interface ProjectAttributesOrBuilder extends * .flyteidl.admin.MatchingAttributes matching_attributes = 2; */ flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder getMatchingAttributesOrBuilder(); + + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -68,6 +86,7 @@ private ProjectAttributes(com.google.protobuf.GeneratedMessageV3.Builder buil
     }
     private ProjectAttributes() {
       project_ = "";
+      org_ = "";
     }
 
     @java.lang.Override
@@ -113,6 +132,12 @@ private ProjectAttributes(
 
               break;
             }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -208,6 +233,48 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder ge
       return getMatchingAttributes();
     }
 
+    public static final int ORG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -228,6 +295,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (matchingAttributes_ != null) { output.writeMessage(2, getMatchingAttributes()); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, org_); + } unknownFields.writeTo(output); } @@ -244,6 +314,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getMatchingAttributes()); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -266,6 +339,8 @@ public boolean equals(final java.lang.Object obj) { if (!getMatchingAttributes() .equals(other.getMatchingAttributes())) return false; } + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -283,6 +358,8 @@ public int hashCode() { hash = (37 * hash) + MATCHING_ATTRIBUTES_FIELD_NUMBER; hash = (53 * hash) + getMatchingAttributes().hashCode(); } + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -429,6 +506,8 @@ public Builder clear() { matchingAttributes_ = null; matchingAttributesBuilder_ = null; } + org_ = ""; + return this; } @@ -461,6 +540,7 @@ public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes buildPartial } else { result.matchingAttributes_ = matchingAttributesBuilder_.build(); } + result.org_ = org_; onBuilt(); return result; } @@ -516,6 +596,10 @@ public Builder mergeFrom(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttri if (other.hasMatchingAttributes()) { mergeMatchingAttributes(other.getMatchingAttributes()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -750,6 +834,95 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder ge } return matchingAttributesBuilder_; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -1940,6 +2113,24 @@ public interface ProjectAttributesGetRequestOrBuilder extends * .flyteidl.admin.MatchableResource resource_type = 2; */ flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType(); + + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -1961,6 +2152,7 @@ private ProjectAttributesGetRequest(com.google.protobuf.GeneratedMessageV3.Build
     private ProjectAttributesGetRequest() {
       project_ = "";
       resourceType_ = 0;
+      org_ = "";
     }
 
     @java.lang.Override
@@ -1999,6 +2191,12 @@ private ProjectAttributesGetRequest(
               resourceType_ = rawValue;
               break;
             }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -2102,6 +2300,48 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceT
       return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result;
     }
 
+    public static final int ORG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -2122,6 +2362,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { output.writeEnum(2, resourceType_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, org_); + } unknownFields.writeTo(output); } @@ -2138,6 +2381,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(2, resourceType_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -2156,6 +2402,8 @@ public boolean equals(final java.lang.Object obj) { if (!getProject() .equals(other.getProject())) return false; if (resourceType_ != other.resourceType_) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -2171,6 +2419,8 @@ public int hashCode() { hash = (53 * hash) + getProject().hashCode(); hash = (37 * hash) + RESOURCE_TYPE_FIELD_NUMBER; hash = (53 * hash) + resourceType_; + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -2313,6 +2563,8 @@ public Builder clear() { resourceType_ = 0; + org_ = ""; + return this; } @@ -2341,6 +2593,7 @@ public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest bu flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest result = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest(this); result.project_ = project_; result.resourceType_ = resourceType_; + result.org_ = org_; onBuilt(); return result; } @@ -2396,6 +2649,10 @@ public Builder mergeFrom(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttri if (other.resourceType_ != 0) { setResourceTypeValue(other.getResourceTypeValue()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -2588,6 +2845,95 @@ public Builder clearResourceType() { onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -3299,6 +3645,24 @@ public interface ProjectAttributesDeleteRequestOrBuilder extends * .flyteidl.admin.MatchableResource resource_type = 2; */ flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType(); + + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -3320,6 +3684,7 @@ private ProjectAttributesDeleteRequest(com.google.protobuf.GeneratedMessageV3.Bu
     private ProjectAttributesDeleteRequest() {
       project_ = "";
       resourceType_ = 0;
+      org_ = "";
     }
 
     @java.lang.Override
@@ -3358,6 +3723,12 @@ private ProjectAttributesDeleteRequest(
               resourceType_ = rawValue;
               break;
             }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -3461,6 +3832,48 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceT
       return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result;
     }
 
+    public static final int ORG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * string org = 3; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -3481,6 +3894,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { output.writeEnum(2, resourceType_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, org_); + } unknownFields.writeTo(output); } @@ -3497,6 +3913,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(2, resourceType_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -3515,6 +3934,8 @@ public boolean equals(final java.lang.Object obj) { if (!getProject() .equals(other.getProject())) return false; if (resourceType_ != other.resourceType_) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -3530,6 +3951,8 @@ public int hashCode() { hash = (53 * hash) + getProject().hashCode(); hash = (37 * hash) + RESOURCE_TYPE_FIELD_NUMBER; hash = (53 * hash) + resourceType_; + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -3672,6 +4095,8 @@ public Builder clear() { resourceType_ = 0; + org_ = ""; + return this; } @@ -3700,6 +4125,7 @@ public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest result = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest(this); result.project_ = project_; result.resourceType_ = resourceType_; + result.org_ = org_; onBuilt(); return result; } @@ -3755,6 +4181,10 @@ public Builder mergeFrom(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttri if (other.resourceType_ != 0) { setResourceTypeValue(other.getResourceTypeValue()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -3947,6 +4377,95 @@ public Builder clearResourceType() { onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * string org = 3; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -4465,23 +4984,24 @@ public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRespons java.lang.String[] descriptorData = { "\n\'flyteidl/admin/project_attributes.prot" + "o\022\016flyteidl.admin\032\'flyteidl/admin/matcha" + - "ble_resource.proto\"e\n\021ProjectAttributes\022" + + "ble_resource.proto\"r\n\021ProjectAttributes\022" + "\017\n\007project\030\001 \001(\t\022?\n\023matching_attributes\030" + "\002 \001(\0132\".flyteidl.admin.MatchingAttribute" + - "s\"W\n\036ProjectAttributesUpdateRequest\0225\n\na" + - "ttributes\030\001 \001(\0132!.flyteidl.admin.Project" + - "Attributes\"!\n\037ProjectAttributesUpdateRes" + - "ponse\"h\n\033ProjectAttributesGetRequest\022\017\n\007" + - "project\030\001 \001(\t\0228\n\rresource_type\030\002 \001(\0162!.f" + - "lyteidl.admin.MatchableResource\"U\n\034Proje" + - "ctAttributesGetResponse\0225\n\nattributes\030\001 " + - "\001(\0132!.flyteidl.admin.ProjectAttributes\"k" + - "\n\036ProjectAttributesDeleteRequest\022\017\n\007proj" + - "ect\030\001 \001(\t\0228\n\rresource_type\030\002 \001(\0162!.flyte" + - "idl.admin.MatchableResource\"!\n\037ProjectAt" + - "tributesDeleteResponseB=Z;github.com/fly" + - "teorg/flyte/flyteidl/gen/pb-go/flyteidl/" + - "adminb\006proto3" + "s\022\013\n\003org\030\003 \001(\t\"W\n\036ProjectAttributesUpdat" + + "eRequest\0225\n\nattributes\030\001 \001(\0132!.flyteidl." + + "admin.ProjectAttributes\"!\n\037ProjectAttrib" + + "utesUpdateResponse\"u\n\033ProjectAttributesG" + + "etRequest\022\017\n\007project\030\001 \001(\t\0228\n\rresource_t" + + "ype\030\002 \001(\0162!.flyteidl.admin.MatchableReso" + + "urce\022\013\n\003org\030\003 \001(\t\"U\n\034ProjectAttributesGe" + + "tResponse\0225\n\nattributes\030\001 \001(\0132!.flyteidl" + + ".admin.ProjectAttributes\"x\n\036ProjectAttri" + + "butesDeleteRequest\022\017\n\007project\030\001 \001(\t\0228\n\rr" + + "esource_type\030\002 \001(\0162!.flyteidl.admin.Matc" + + "hableResource\022\013\n\003org\030\003 \001(\t\"!\n\037ProjectAtt" + + "ributesDeleteResponseB=Z;github.com/flyt" + + "eorg/flyte/flyteidl/gen/pb-go/flyteidl/a" + + "dminb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -4501,7 +5021,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ProjectAttributes_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectAttributes_descriptor, - new java.lang.String[] { "Project", "MatchingAttributes", }); + new java.lang.String[] { "Project", "MatchingAttributes", "Org", }); internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_fieldAccessorTable = new @@ -4519,7 +5039,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ProjectAttributesGetRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectAttributesGetRequest_descriptor, - new java.lang.String[] { "Project", "ResourceType", }); + new java.lang.String[] { "Project", "ResourceType", "Org", }); internal_static_flyteidl_admin_ProjectAttributesGetResponse_descriptor = getDescriptor().getMessageTypes().get(4); internal_static_flyteidl_admin_ProjectAttributesGetResponse_fieldAccessorTable = new @@ -4531,7 +5051,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_descriptor, - new java.lang.String[] { "Project", "ResourceType", }); + new java.lang.String[] { "Project", "ResourceType", "Org", }); internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_descriptor = getDescriptor().getMessageTypes().get(6); internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-java/flyteidl/admin/ProjectDomainAttributesOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ProjectDomainAttributesOuterClass.java index d3512369cd..22d73ff719 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ProjectDomainAttributesOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ProjectDomainAttributesOuterClass.java @@ -66,6 +66,24 @@ public interface ProjectDomainAttributesOrBuilder extends * .flyteidl.admin.MatchingAttributes matching_attributes = 3; */ flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder getMatchingAttributesOrBuilder(); + + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -87,6 +105,7 @@ private ProjectDomainAttributes(com.google.protobuf.GeneratedMessageV3.Builder
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -298,6 +365,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (matchingAttributes_ != null) { output.writeMessage(3, getMatchingAttributes()); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, org_); + } unknownFields.writeTo(output); } @@ -317,6 +387,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getMatchingAttributes()); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -341,6 +414,8 @@ public boolean equals(final java.lang.Object obj) { if (!getMatchingAttributes() .equals(other.getMatchingAttributes())) return false; } + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -360,6 +435,8 @@ public int hashCode() { hash = (37 * hash) + MATCHING_ATTRIBUTES_FIELD_NUMBER; hash = (53 * hash) + getMatchingAttributes().hashCode(); } + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -508,6 +585,8 @@ public Builder clear() { matchingAttributes_ = null; matchingAttributesBuilder_ = null; } + org_ = ""; + return this; } @@ -541,6 +620,7 @@ public flyteidl.admin.ProjectDomainAttributesOuterClass.ProjectDomainAttributes } else { result.matchingAttributes_ = matchingAttributesBuilder_.build(); } + result.org_ = org_; onBuilt(); return result; } @@ -600,6 +680,10 @@ public Builder mergeFrom(flyteidl.admin.ProjectDomainAttributesOuterClass.Projec if (other.hasMatchingAttributes()) { mergeMatchingAttributes(other.getMatchingAttributes()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -923,6 +1007,95 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder ge } return matchingAttributesBuilder_; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -2133,6 +2306,24 @@ public interface ProjectDomainAttributesGetRequestOrBuilder extends * .flyteidl.admin.MatchableResource resource_type = 3; */ flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType(); + + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -2155,6 +2346,7 @@ private ProjectDomainAttributesGetRequest() {
       project_ = "";
       domain_ = "";
       resourceType_ = 0;
+      org_ = "";
     }
 
     @java.lang.Override
@@ -2199,6 +2391,12 @@ private ProjectDomainAttributesGetRequest(
               resourceType_ = rawValue;
               break;
             }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -2346,6 +2544,48 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceT
       return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result;
     }
 
+    public static final int ORG_FIELD_NUMBER = 4;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -2369,6 +2609,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { output.writeEnum(3, resourceType_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, org_); + } unknownFields.writeTo(output); } @@ -2388,6 +2631,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(3, resourceType_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -2408,6 +2654,8 @@ public boolean equals(final java.lang.Object obj) { if (!getDomain() .equals(other.getDomain())) return false; if (resourceType_ != other.resourceType_) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -2425,6 +2673,8 @@ public int hashCode() { hash = (53 * hash) + getDomain().hashCode(); hash = (37 * hash) + RESOURCE_TYPE_FIELD_NUMBER; hash = (53 * hash) + resourceType_; + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -2569,6 +2819,8 @@ public Builder clear() { resourceType_ = 0; + org_ = ""; + return this; } @@ -2598,6 +2850,7 @@ public flyteidl.admin.ProjectDomainAttributesOuterClass.ProjectDomainAttributesG result.project_ = project_; result.domain_ = domain_; result.resourceType_ = resourceType_; + result.org_ = org_; onBuilt(); return result; } @@ -2657,6 +2910,10 @@ public Builder mergeFrom(flyteidl.admin.ProjectDomainAttributesOuterClass.Projec if (other.resourceType_ != 0) { setResourceTypeValue(other.getResourceTypeValue()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -2943,6 +3200,95 @@ public Builder clearResourceType() { onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -3674,6 +4020,24 @@ public interface ProjectDomainAttributesDeleteRequestOrBuilder extends * .flyteidl.admin.MatchableResource resource_type = 3; */ flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType(); + + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -3696,6 +4060,7 @@ private ProjectDomainAttributesDeleteRequest() {
       project_ = "";
       domain_ = "";
       resourceType_ = 0;
+      org_ = "";
     }
 
     @java.lang.Override
@@ -3740,6 +4105,12 @@ private ProjectDomainAttributesDeleteRequest(
               resourceType_ = rawValue;
               break;
             }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -3887,6 +4258,48 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceT
       return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result;
     }
 
+    public static final int ORG_FIELD_NUMBER = 4;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 4; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -3910,6 +4323,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { output.writeEnum(3, resourceType_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, org_); + } unknownFields.writeTo(output); } @@ -3929,6 +4345,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(3, resourceType_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -3949,6 +4368,8 @@ public boolean equals(final java.lang.Object obj) { if (!getDomain() .equals(other.getDomain())) return false; if (resourceType_ != other.resourceType_) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -3966,6 +4387,8 @@ public int hashCode() { hash = (53 * hash) + getDomain().hashCode(); hash = (37 * hash) + RESOURCE_TYPE_FIELD_NUMBER; hash = (53 * hash) + resourceType_; + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -4110,6 +4533,8 @@ public Builder clear() { resourceType_ = 0; + org_ = ""; + return this; } @@ -4139,6 +4564,7 @@ public flyteidl.admin.ProjectDomainAttributesOuterClass.ProjectDomainAttributesD result.project_ = project_; result.domain_ = domain_; result.resourceType_ = resourceType_; + result.org_ = org_; onBuilt(); return result; } @@ -4198,6 +4624,10 @@ public Builder mergeFrom(flyteidl.admin.ProjectDomainAttributesOuterClass.Projec if (other.resourceType_ != 0) { setResourceTypeValue(other.getResourceTypeValue()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -4484,6 +4914,95 @@ public Builder clearResourceType() { onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 4; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -5002,26 +5521,27 @@ public flyteidl.admin.ProjectDomainAttributesOuterClass.ProjectDomainAttributesD java.lang.String[] descriptorData = { "\n.flyteidl/admin/project_domain_attribut" + "es.proto\022\016flyteidl.admin\032\'flyteidl/admin" + - "/matchable_resource.proto\"{\n\027ProjectDoma" + - "inAttributes\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030" + - "\002 \001(\t\022?\n\023matching_attributes\030\003 \001(\0132\".fly" + - "teidl.admin.MatchingAttributes\"c\n$Projec" + - "tDomainAttributesUpdateRequest\022;\n\nattrib" + - "utes\030\001 \001(\0132\'.flyteidl.admin.ProjectDomai" + - "nAttributes\"\'\n%ProjectDomainAttributesUp" + - "dateResponse\"~\n!ProjectDomainAttributesG" + - "etRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001" + - "(\t\0228\n\rresource_type\030\003 \001(\0162!.flyteidl.adm" + - "in.MatchableResource\"a\n\"ProjectDomainAtt" + - "ributesGetResponse\022;\n\nattributes\030\001 \001(\0132\'" + - ".flyteidl.admin.ProjectDomainAttributes\"" + - "\201\001\n$ProjectDomainAttributesDeleteRequest" + - "\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\0228\n\rres" + - "ource_type\030\003 \001(\0162!.flyteidl.admin.Matcha" + - "bleResource\"\'\n%ProjectDomainAttributesDe" + - "leteResponseB=Z;github.com/flyteorg/flyt" + - "e/flyteidl/gen/pb-go/flyteidl/adminb\006pro" + - "to3" + "/matchable_resource.proto\"\210\001\n\027ProjectDom" + + "ainAttributes\022\017\n\007project\030\001 \001(\t\022\016\n\006domain" + + "\030\002 \001(\t\022?\n\023matching_attributes\030\003 \001(\0132\".fl" + + "yteidl.admin.MatchingAttributes\022\013\n\003org\030\004" + + " \001(\t\"c\n$ProjectDomainAttributesUpdateReq" + + "uest\022;\n\nattributes\030\001 \001(\0132\'.flyteidl.admi" + + "n.ProjectDomainAttributes\"\'\n%ProjectDoma" + + "inAttributesUpdateResponse\"\213\001\n!ProjectDo" + + "mainAttributesGetRequest\022\017\n\007project\030\001 \001(" + + "\t\022\016\n\006domain\030\002 \001(\t\0228\n\rresource_type\030\003 \001(\016" + + "2!.flyteidl.admin.MatchableResource\022\013\n\003o" + + "rg\030\004 \001(\t\"a\n\"ProjectDomainAttributesGetRe" + + "sponse\022;\n\nattributes\030\001 \001(\0132\'.flyteidl.ad" + + "min.ProjectDomainAttributes\"\216\001\n$ProjectD" + + "omainAttributesDeleteRequest\022\017\n\007project\030" + + "\001 \001(\t\022\016\n\006domain\030\002 \001(\t\0228\n\rresource_type\030\003" + + " \001(\0162!.flyteidl.admin.MatchableResource\022" + + "\013\n\003org\030\004 \001(\t\"\'\n%ProjectDomainAttributesD" + + "eleteResponseB=Z;github.com/flyteorg/fly" + + "te/flyteidl/gen/pb-go/flyteidl/adminb\006pr" + + "oto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -5041,7 +5561,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ProjectDomainAttributes_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectDomainAttributes_descriptor, - new java.lang.String[] { "Project", "Domain", "MatchingAttributes", }); + new java.lang.String[] { "Project", "Domain", "MatchingAttributes", "Org", }); internal_static_flyteidl_admin_ProjectDomainAttributesUpdateRequest_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_flyteidl_admin_ProjectDomainAttributesUpdateRequest_fieldAccessorTable = new @@ -5059,7 +5579,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ProjectDomainAttributesGetRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectDomainAttributesGetRequest_descriptor, - new java.lang.String[] { "Project", "Domain", "ResourceType", }); + new java.lang.String[] { "Project", "Domain", "ResourceType", "Org", }); internal_static_flyteidl_admin_ProjectDomainAttributesGetResponse_descriptor = getDescriptor().getMessageTypes().get(4); internal_static_flyteidl_admin_ProjectDomainAttributesGetResponse_fieldAccessorTable = new @@ -5071,7 +5591,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ProjectDomainAttributesDeleteRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectDomainAttributesDeleteRequest_descriptor, - new java.lang.String[] { "Project", "Domain", "ResourceType", }); + new java.lang.String[] { "Project", "Domain", "ResourceType", "Org", }); internal_static_flyteidl_admin_ProjectDomainAttributesDeleteResponse_descriptor = getDescriptor().getMessageTypes().get(6); internal_static_flyteidl_admin_ProjectDomainAttributesDeleteResponse_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java index 518b844a41..b5602ebc92 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java @@ -782,26 +782,786 @@ public flyteidl.admin.ProjectOuterClass.Domain getDefaultInstanceForType() { } + public interface ProjectIdentifierOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ProjectIdentifier) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Globally unique project name.
+     * 
+ * + * string id = 1; + */ + java.lang.String getId(); + /** + *
+     * Globally unique project name.
+     * 
+ * + * string id = 1; + */ + com.google.protobuf.ByteString + getIdBytes(); + + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 2; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 2; + */ + com.google.protobuf.ByteString + getOrgBytes(); + } + /** + * Protobuf type {@code flyteidl.admin.ProjectIdentifier} + */ + public static final class ProjectIdentifier extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ProjectIdentifier) + ProjectIdentifierOrBuilder { + private static final long serialVersionUID = 0L; + // Use ProjectIdentifier.newBuilder() to construct. + private ProjectIdentifier(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ProjectIdentifier() { + id_ = ""; + org_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ProjectIdentifier( + 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: { + java.lang.String s = input.readStringRequireUtf8(); + + id_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + org_ = 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.ProjectOuterClass.internal_static_flyteidl_admin_ProjectIdentifier_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectOuterClass.internal_static_flyteidl_admin_ProjectIdentifier_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectOuterClass.ProjectIdentifier.class, flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder.class); + } + + public static final int ID_FIELD_NUMBER = 1; + private volatile java.lang.Object id_; + /** + *
+     * Globally unique project name.
+     * 
+ * + * string id = 1; + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + 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(); + id_ = s; + return s; + } + } + /** + *
+     * Globally unique project name.
+     * 
+ * + * string id = 1; + */ + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ORG_FIELD_NUMBER = 2; + private volatile java.lang.Object org_; + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 2; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 2; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = 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 (!getIdBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, org_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getIdBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, org_); + } + 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.ProjectOuterClass.ProjectIdentifier)) { + return super.equals(obj); + } + flyteidl.admin.ProjectOuterClass.ProjectIdentifier other = (flyteidl.admin.ProjectOuterClass.ProjectIdentifier) obj; + + if (!getId() + .equals(other.getId())) return false; + if (!getOrg() + .equals(other.getOrg())) 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) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier 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.ProjectOuterClass.ProjectIdentifier parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier 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.ProjectOuterClass.ProjectIdentifier parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier 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.ProjectOuterClass.ProjectIdentifier parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier 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.ProjectOuterClass.ProjectIdentifier 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.ProjectIdentifier} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ProjectIdentifier) + flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectOuterClass.internal_static_flyteidl_admin_ProjectIdentifier_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectOuterClass.internal_static_flyteidl_admin_ProjectIdentifier_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectOuterClass.ProjectIdentifier.class, flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder.class); + } + + // Construct using flyteidl.admin.ProjectOuterClass.ProjectIdentifier.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(); + id_ = ""; + + org_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ProjectOuterClass.internal_static_flyteidl_admin_ProjectIdentifier_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ProjectOuterClass.ProjectIdentifier getDefaultInstanceForType() { + return flyteidl.admin.ProjectOuterClass.ProjectIdentifier.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ProjectOuterClass.ProjectIdentifier build() { + flyteidl.admin.ProjectOuterClass.ProjectIdentifier result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ProjectOuterClass.ProjectIdentifier buildPartial() { + flyteidl.admin.ProjectOuterClass.ProjectIdentifier result = new flyteidl.admin.ProjectOuterClass.ProjectIdentifier(this); + result.id_ = id_; + result.org_ = org_; + 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.ProjectOuterClass.ProjectIdentifier) { + return mergeFrom((flyteidl.admin.ProjectOuterClass.ProjectIdentifier)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ProjectOuterClass.ProjectIdentifier other) { + if (other == flyteidl.admin.ProjectOuterClass.ProjectIdentifier.getDefaultInstance()) return this; + if (!other.getId().isEmpty()) { + id_ = other.id_; + onChanged(); + } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + 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.ProjectOuterClass.ProjectIdentifier parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ProjectOuterClass.ProjectIdentifier) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object id_ = ""; + /** + *
+       * Globally unique project name.
+       * 
+ * + * string id = 1; + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Globally unique project name.
+       * 
+ * + * string id = 1; + */ + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Globally unique project name.
+       * 
+ * + * string id = 1; + */ + public Builder setId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + id_ = value; + onChanged(); + return this; + } + /** + *
+       * Globally unique project name.
+       * 
+ * + * string id = 1; + */ + public Builder clearId() { + + id_ = getDefaultInstance().getId(); + onChanged(); + return this; + } + /** + *
+       * Globally unique project name.
+       * 
+ * + * string id = 1; + */ + public Builder setIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + id_ = value; + onChanged(); + return this; + } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 2; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 2; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 2; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 2; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 2; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = 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.ProjectIdentifier) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectIdentifier) + private static final flyteidl.admin.ProjectOuterClass.ProjectIdentifier DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ProjectOuterClass.ProjectIdentifier(); + } + + public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProjectIdentifier parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ProjectIdentifier(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.ProjectOuterClass.ProjectIdentifier getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + public interface ProjectOrBuilder extends // @@protoc_insertion_point(interface_extends:flyteidl.admin.Project) com.google.protobuf.MessageOrBuilder { /** *
+     * Deprecated, use identifier instead.
      * Globally unique project name.
      * 
* - * string id = 1; + * string id = 1 [deprecated = true]; */ - java.lang.String getId(); + @java.lang.Deprecated java.lang.String getId(); /** *
+     * Deprecated, use identifier instead.
      * Globally unique project name.
      * 
* - * string id = 1; + * string id = 1 [deprecated = true]; */ - com.google.protobuf.ByteString + @java.lang.Deprecated com.google.protobuf.ByteString getIdBytes(); /** @@ -892,6 +1652,31 @@ flyteidl.admin.ProjectOuterClass.DomainOrBuilder getDomainsOrBuilder( * .flyteidl.admin.Project.ProjectState state = 6; */ flyteidl.admin.ProjectOuterClass.Project.ProjectState getState(); + + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + boolean hasIdentifier(); + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + flyteidl.admin.ProjectOuterClass.ProjectIdentifier getIdentifier(); + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder getIdentifierOrBuilder(); } /** *
@@ -987,6 +1772,19 @@ private Project(
               state_ = rawValue;
               break;
             }
+            case 58: {
+              flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder subBuilder = null;
+              if (identifier_ != null) {
+                subBuilder = identifier_.toBuilder();
+              }
+              identifier_ = input.readMessage(flyteidl.admin.ProjectOuterClass.ProjectIdentifier.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(identifier_);
+                identifier_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -1162,12 +1960,13 @@ private ProjectState(int value) {
     private volatile java.lang.Object id_;
     /**
      * 
+     * Deprecated, use identifier instead.
      * Globally unique project name.
      * 
* - * string id = 1; + * string id = 1 [deprecated = true]; */ - public java.lang.String getId() { + @java.lang.Deprecated public java.lang.String getId() { java.lang.Object ref = id_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; @@ -1181,12 +1980,13 @@ public java.lang.String getId() { } /** *
+     * Deprecated, use identifier instead.
      * Globally unique project name.
      * 
* - * string id = 1; + * string id = 1 [deprecated = true]; */ - public com.google.protobuf.ByteString + @java.lang.Deprecated public com.google.protobuf.ByteString getIdBytes() { java.lang.Object ref = id_; if (ref instanceof java.lang.String) { @@ -1364,6 +2164,39 @@ public flyteidl.admin.ProjectOuterClass.Project.ProjectState getState() { return result == null ? flyteidl.admin.ProjectOuterClass.Project.ProjectState.UNRECOGNIZED : result; } + public static final int IDENTIFIER_FIELD_NUMBER = 7; + private flyteidl.admin.ProjectOuterClass.ProjectIdentifier identifier_; + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public boolean hasIdentifier() { + return identifier_ != null; + } + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public flyteidl.admin.ProjectOuterClass.ProjectIdentifier getIdentifier() { + return identifier_ == null ? flyteidl.admin.ProjectOuterClass.ProjectIdentifier.getDefaultInstance() : identifier_; + } + /** + *
+     * Optional, org key applied to the project.
+     * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder getIdentifierOrBuilder() { + return getIdentifier(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -1396,6 +2229,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (state_ != flyteidl.admin.ProjectOuterClass.Project.ProjectState.ACTIVE.getNumber()) { output.writeEnum(6, state_); } + if (identifier_ != null) { + output.writeMessage(7, getIdentifier()); + } unknownFields.writeTo(output); } @@ -1426,6 +2262,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(6, state_); } + if (identifier_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, getIdentifier()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -1455,6 +2295,11 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getLabels())) return false; } if (state_ != other.state_) return false; + if (hasIdentifier() != other.hasIdentifier()) return false; + if (hasIdentifier()) { + if (!getIdentifier() + .equals(other.getIdentifier())) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -1482,6 +2327,10 @@ public int hashCode() { } hash = (37 * hash) + STATE_FIELD_NUMBER; hash = (53 * hash) + state_; + if (hasIdentifier()) { + hash = (37 * hash) + IDENTIFIER_FIELD_NUMBER; + hash = (53 * hash) + getIdentifier().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -1640,6 +2489,12 @@ public Builder clear() { } state_ = 0; + if (identifierBuilder_ == null) { + identifier_ = null; + } else { + identifier_ = null; + identifierBuilder_ = null; + } return this; } @@ -1686,6 +2541,11 @@ public flyteidl.admin.ProjectOuterClass.Project buildPartial() { result.labels_ = labelsBuilder_.build(); } result.state_ = state_; + if (identifierBuilder_ == null) { + result.identifier_ = identifier_; + } else { + result.identifier_ = identifierBuilder_.build(); + } result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -1779,6 +2639,9 @@ public Builder mergeFrom(flyteidl.admin.ProjectOuterClass.Project other) { if (other.state_ != 0) { setStateValue(other.getStateValue()); } + if (other.hasIdentifier()) { + mergeIdentifier(other.getIdentifier()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -1812,12 +2675,13 @@ public Builder mergeFrom( private java.lang.Object id_ = ""; /** *
+       * Deprecated, use identifier instead.
        * Globally unique project name.
        * 
* - * string id = 1; + * string id = 1 [deprecated = true]; */ - public java.lang.String getId() { + @java.lang.Deprecated public java.lang.String getId() { java.lang.Object ref = id_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = @@ -1831,12 +2695,13 @@ public java.lang.String getId() { } /** *
+       * Deprecated, use identifier instead.
        * Globally unique project name.
        * 
* - * string id = 1; + * string id = 1 [deprecated = true]; */ - public com.google.protobuf.ByteString + @java.lang.Deprecated public com.google.protobuf.ByteString getIdBytes() { java.lang.Object ref = id_; if (ref instanceof String) { @@ -1851,12 +2716,13 @@ public java.lang.String getId() { } /** *
+       * Deprecated, use identifier instead.
        * Globally unique project name.
        * 
* - * string id = 1; + * string id = 1 [deprecated = true]; */ - public Builder setId( + @java.lang.Deprecated public Builder setId( java.lang.String value) { if (value == null) { throw new NullPointerException(); @@ -1868,12 +2734,13 @@ public Builder setId( } /** *
+       * Deprecated, use identifier instead.
        * Globally unique project name.
        * 
* - * string id = 1; + * string id = 1 [deprecated = true]; */ - public Builder clearId() { + @java.lang.Deprecated public Builder clearId() { id_ = getDefaultInstance().getId(); onChanged(); @@ -1881,12 +2748,13 @@ public Builder clearId() { } /** *
+       * Deprecated, use identifier instead.
        * Globally unique project name.
        * 
* - * string id = 1; + * string id = 1 [deprecated = true]; */ - public Builder setIdBytes( + @java.lang.Deprecated public Builder setIdBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); @@ -2502,6 +3370,159 @@ public Builder clearState() { onChanged(); return this; } + + private flyteidl.admin.ProjectOuterClass.ProjectIdentifier identifier_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ProjectOuterClass.ProjectIdentifier, flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder, flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder> identifierBuilder_; + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public boolean hasIdentifier() { + return identifierBuilder_ != null || identifier_ != null; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public flyteidl.admin.ProjectOuterClass.ProjectIdentifier getIdentifier() { + if (identifierBuilder_ == null) { + return identifier_ == null ? flyteidl.admin.ProjectOuterClass.ProjectIdentifier.getDefaultInstance() : identifier_; + } else { + return identifierBuilder_.getMessage(); + } + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public Builder setIdentifier(flyteidl.admin.ProjectOuterClass.ProjectIdentifier value) { + if (identifierBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + identifier_ = value; + onChanged(); + } else { + identifierBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public Builder setIdentifier( + flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder builderForValue) { + if (identifierBuilder_ == null) { + identifier_ = builderForValue.build(); + onChanged(); + } else { + identifierBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public Builder mergeIdentifier(flyteidl.admin.ProjectOuterClass.ProjectIdentifier value) { + if (identifierBuilder_ == null) { + if (identifier_ != null) { + identifier_ = + flyteidl.admin.ProjectOuterClass.ProjectIdentifier.newBuilder(identifier_).mergeFrom(value).buildPartial(); + } else { + identifier_ = value; + } + onChanged(); + } else { + identifierBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public Builder clearIdentifier() { + if (identifierBuilder_ == null) { + identifier_ = null; + onChanged(); + } else { + identifier_ = null; + identifierBuilder_ = null; + } + + return this; + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder getIdentifierBuilder() { + + onChanged(); + return getIdentifierFieldBuilder().getBuilder(); + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + public flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder getIdentifierOrBuilder() { + if (identifierBuilder_ != null) { + return identifierBuilder_.getMessageOrBuilder(); + } else { + return identifier_ == null ? + flyteidl.admin.ProjectOuterClass.ProjectIdentifier.getDefaultInstance() : identifier_; + } + } + /** + *
+       * Optional, org key applied to the project.
+       * 
+ * + * .flyteidl.admin.ProjectIdentifier identifier = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ProjectOuterClass.ProjectIdentifier, flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder, flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder> + getIdentifierFieldBuilder() { + if (identifierBuilder_ == null) { + identifierBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ProjectOuterClass.ProjectIdentifier, flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder, flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder>( + getIdentifier(), + getParentForChildren(), + isClean()); + identifier_ = null; + } + return identifierBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -6210,6 +7231,11 @@ public flyteidl.admin.ProjectOuterClass.ProjectUpdateResponse getDefaultInstance private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_flyteidl_admin_Domain_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ProjectIdentifier_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ProjectIdentifier_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_flyteidl_admin_Project_descriptor; private static final @@ -6251,23 +7277,26 @@ public flyteidl.admin.ProjectOuterClass.ProjectUpdateResponse getDefaultInstance java.lang.String[] descriptorData = { "\n\034flyteidl/admin/project.proto\022\016flyteidl" + ".admin\032\033flyteidl/admin/common.proto\"\"\n\006D" + - "omain\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\"\376\001\n\007Proj" + - "ect\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\'\n\007domains" + - "\030\003 \003(\0132\026.flyteidl.admin.Domain\022\023\n\013descri" + - "ption\030\004 \001(\t\022&\n\006labels\030\005 \001(\0132\026.flyteidl.a" + - "dmin.Labels\0223\n\005state\030\006 \001(\0162$.flyteidl.ad" + - "min.Project.ProjectState\">\n\014ProjectState" + - "\022\n\n\006ACTIVE\020\000\022\014\n\010ARCHIVED\020\001\022\024\n\020SYSTEM_GEN" + - "ERATED\020\002\"D\n\010Projects\022)\n\010projects\030\001 \003(\0132\027" + - ".flyteidl.admin.Project\022\r\n\005token\030\002 \001(\t\"j" + - "\n\022ProjectListRequest\022\r\n\005limit\030\001 \001(\r\022\r\n\005t" + - "oken\030\002 \001(\t\022\017\n\007filters\030\003 \001(\t\022%\n\007sort_by\030\004" + - " \001(\0132\024.flyteidl.admin.Sort\"B\n\026ProjectReg" + - "isterRequest\022(\n\007project\030\001 \001(\0132\027.flyteidl" + - ".admin.Project\"\031\n\027ProjectRegisterRespons" + - "e\"\027\n\025ProjectUpdateResponseB=Z;github.com" + - "/flyteorg/flyte/flyteidl/gen/pb-go/flyte" + - "idl/adminb\006proto3" + "omain\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\",\n\021Proje" + + "ctIdentifier\022\n\n\002id\030\001 \001(\t\022\013\n\003org\030\002 \001(\t\"\271\002" + + "\n\007Project\022\016\n\002id\030\001 \001(\tB\002\030\001\022\014\n\004name\030\002 \001(\t\022" + + "\'\n\007domains\030\003 \003(\0132\026.flyteidl.admin.Domain" + + "\022\023\n\013description\030\004 \001(\t\022&\n\006labels\030\005 \001(\0132\026." + + "flyteidl.admin.Labels\0223\n\005state\030\006 \001(\0162$.f" + + "lyteidl.admin.Project.ProjectState\0225\n\nid" + + "entifier\030\007 \001(\0132!.flyteidl.admin.ProjectI" + + "dentifier\">\n\014ProjectState\022\n\n\006ACTIVE\020\000\022\014\n" + + "\010ARCHIVED\020\001\022\024\n\020SYSTEM_GENERATED\020\002\"D\n\010Pro" + + "jects\022)\n\010projects\030\001 \003(\0132\027.flyteidl.admin" + + ".Project\022\r\n\005token\030\002 \001(\t\"j\n\022ProjectListRe" + + "quest\022\r\n\005limit\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\022\017\n\007f" + + "ilters\030\003 \001(\t\022%\n\007sort_by\030\004 \001(\0132\024.flyteidl" + + ".admin.Sort\"B\n\026ProjectRegisterRequest\022(\n" + + "\007project\030\001 \001(\0132\027.flyteidl.admin.Project\"" + + "\031\n\027ProjectRegisterResponse\"\027\n\025ProjectUpd" + + "ateResponseB=Z;github.com/flyteorg/flyte" + + "/flyteidl/gen/pb-go/flyteidl/adminb\006prot" + + "o3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -6288,38 +7317,44 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_Domain_descriptor, new java.lang.String[] { "Id", "Name", }); - internal_static_flyteidl_admin_Project_descriptor = + internal_static_flyteidl_admin_ProjectIdentifier_descriptor = getDescriptor().getMessageTypes().get(1); + internal_static_flyteidl_admin_ProjectIdentifier_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ProjectIdentifier_descriptor, + new java.lang.String[] { "Id", "Org", }); + internal_static_flyteidl_admin_Project_descriptor = + getDescriptor().getMessageTypes().get(2); internal_static_flyteidl_admin_Project_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_Project_descriptor, - new java.lang.String[] { "Id", "Name", "Domains", "Description", "Labels", "State", }); + new java.lang.String[] { "Id", "Name", "Domains", "Description", "Labels", "State", "Identifier", }); internal_static_flyteidl_admin_Projects_descriptor = - getDescriptor().getMessageTypes().get(2); + getDescriptor().getMessageTypes().get(3); internal_static_flyteidl_admin_Projects_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_Projects_descriptor, new java.lang.String[] { "Projects", "Token", }); internal_static_flyteidl_admin_ProjectListRequest_descriptor = - getDescriptor().getMessageTypes().get(3); + getDescriptor().getMessageTypes().get(4); internal_static_flyteidl_admin_ProjectListRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectListRequest_descriptor, new java.lang.String[] { "Limit", "Token", "Filters", "SortBy", }); internal_static_flyteidl_admin_ProjectRegisterRequest_descriptor = - getDescriptor().getMessageTypes().get(4); + getDescriptor().getMessageTypes().get(5); internal_static_flyteidl_admin_ProjectRegisterRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectRegisterRequest_descriptor, new java.lang.String[] { "Project", }); internal_static_flyteidl_admin_ProjectRegisterResponse_descriptor = - getDescriptor().getMessageTypes().get(5); + getDescriptor().getMessageTypes().get(6); internal_static_flyteidl_admin_ProjectRegisterResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectRegisterResponse_descriptor, new java.lang.String[] { }); internal_static_flyteidl_admin_ProjectUpdateResponse_descriptor = - getDescriptor().getMessageTypes().get(6); + getDescriptor().getMessageTypes().get(7); internal_static_flyteidl_admin_ProjectUpdateResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectUpdateResponse_descriptor, diff --git a/flyteidl/gen/pb-java/flyteidl/admin/WorkflowAttributesOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/WorkflowAttributesOuterClass.java index 21be6d20a5..9c5bba8ad3 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/WorkflowAttributesOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/WorkflowAttributesOuterClass.java @@ -84,6 +84,24 @@ public interface WorkflowAttributesOrBuilder extends * .flyteidl.admin.MatchingAttributes matching_attributes = 4; */ flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder getMatchingAttributesOrBuilder(); + + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -106,6 +124,7 @@ private WorkflowAttributes() {
       project_ = "";
       domain_ = "";
       workflow_ = "";
+      org_ = "";
     }
 
     @java.lang.Override
@@ -163,6 +182,12 @@ private WorkflowAttributes(
 
               break;
             }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -342,6 +367,48 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder ge
       return getMatchingAttributes();
     }
 
+    public static final int ORG_FIELD_NUMBER = 5;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -368,6 +435,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (matchingAttributes_ != null) { output.writeMessage(4, getMatchingAttributes()); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, org_); + } unknownFields.writeTo(output); } @@ -390,6 +460,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getMatchingAttributes()); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -416,6 +489,8 @@ public boolean equals(final java.lang.Object obj) { if (!getMatchingAttributes() .equals(other.getMatchingAttributes())) return false; } + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -437,6 +512,8 @@ public int hashCode() { hash = (37 * hash) + MATCHING_ATTRIBUTES_FIELD_NUMBER; hash = (53 * hash) + getMatchingAttributes().hashCode(); } + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -587,6 +664,8 @@ public Builder clear() { matchingAttributes_ = null; matchingAttributesBuilder_ = null; } + org_ = ""; + return this; } @@ -621,6 +700,7 @@ public flyteidl.admin.WorkflowAttributesOuterClass.WorkflowAttributes buildParti } else { result.matchingAttributes_ = matchingAttributesBuilder_.build(); } + result.org_ = org_; onBuilt(); return result; } @@ -684,6 +764,10 @@ public Builder mergeFrom(flyteidl.admin.WorkflowAttributesOuterClass.WorkflowAtt if (other.hasMatchingAttributes()) { mergeMatchingAttributes(other.getMatchingAttributes()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -1096,6 +1180,95 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder ge } return matchingAttributesBuilder_; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -2266,6 +2439,24 @@ public interface WorkflowAttributesGetRequestOrBuilder extends * .flyteidl.admin.MatchableResource resource_type = 4; */ flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType(); + + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -2289,6 +2480,7 @@ private WorkflowAttributesGetRequest() {
       domain_ = "";
       workflow_ = "";
       resourceType_ = 0;
+      org_ = "";
     }
 
     @java.lang.Override
@@ -2339,6 +2531,12 @@ private WorkflowAttributesGetRequest(
               resourceType_ = rawValue;
               break;
             }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -2530,6 +2728,48 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceT
       return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result;
     }
 
+    public static final int ORG_FIELD_NUMBER = 5;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -2556,6 +2796,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { output.writeEnum(4, resourceType_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, org_); + } unknownFields.writeTo(output); } @@ -2578,6 +2821,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(4, resourceType_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -2600,6 +2846,8 @@ public boolean equals(final java.lang.Object obj) { if (!getWorkflow() .equals(other.getWorkflow())) return false; if (resourceType_ != other.resourceType_) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -2619,6 +2867,8 @@ public int hashCode() { hash = (53 * hash) + getWorkflow().hashCode(); hash = (37 * hash) + RESOURCE_TYPE_FIELD_NUMBER; hash = (53 * hash) + resourceType_; + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -2765,6 +3015,8 @@ public Builder clear() { resourceType_ = 0; + org_ = ""; + return this; } @@ -2795,6 +3047,7 @@ public flyteidl.admin.WorkflowAttributesOuterClass.WorkflowAttributesGetRequest result.domain_ = domain_; result.workflow_ = workflow_; result.resourceType_ = resourceType_; + result.org_ = org_; onBuilt(); return result; } @@ -2858,6 +3111,10 @@ public Builder mergeFrom(flyteidl.admin.WorkflowAttributesOuterClass.WorkflowAtt if (other.resourceType_ != 0) { setResourceTypeValue(other.getResourceTypeValue()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -3238,6 +3495,95 @@ public Builder clearResourceType() { onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -3987,6 +4333,24 @@ public interface WorkflowAttributesDeleteRequestOrBuilder extends * .flyteidl.admin.MatchableResource resource_type = 4; */ flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType(); + + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -4010,6 +4374,7 @@ private WorkflowAttributesDeleteRequest() {
       domain_ = "";
       workflow_ = "";
       resourceType_ = 0;
+      org_ = "";
     }
 
     @java.lang.Override
@@ -4060,6 +4425,12 @@ private WorkflowAttributesDeleteRequest(
               resourceType_ = rawValue;
               break;
             }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -4251,6 +4622,48 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceT
       return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result;
     }
 
+    public static final int ORG_FIELD_NUMBER = 5;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the attributes.
+     * 
+ * + * string org = 5; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -4277,6 +4690,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { output.writeEnum(4, resourceType_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, org_); + } unknownFields.writeTo(output); } @@ -4299,6 +4715,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(4, resourceType_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -4321,6 +4740,8 @@ public boolean equals(final java.lang.Object obj) { if (!getWorkflow() .equals(other.getWorkflow())) return false; if (resourceType_ != other.resourceType_) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -4340,6 +4761,8 @@ public int hashCode() { hash = (53 * hash) + getWorkflow().hashCode(); hash = (37 * hash) + RESOURCE_TYPE_FIELD_NUMBER; hash = (53 * hash) + resourceType_; + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -4486,6 +4909,8 @@ public Builder clear() { resourceType_ = 0; + org_ = ""; + return this; } @@ -4516,6 +4941,7 @@ public flyteidl.admin.WorkflowAttributesOuterClass.WorkflowAttributesDeleteReque result.domain_ = domain_; result.workflow_ = workflow_; result.resourceType_ = resourceType_; + result.org_ = org_; onBuilt(); return result; } @@ -4579,6 +5005,10 @@ public Builder mergeFrom(flyteidl.admin.WorkflowAttributesOuterClass.WorkflowAtt if (other.resourceType_ != 0) { setResourceTypeValue(other.getResourceTypeValue()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -4959,6 +5389,95 @@ public Builder clearResourceType() { onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the attributes.
+       * 
+ * + * string org = 5; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -5477,26 +5996,27 @@ public flyteidl.admin.WorkflowAttributesOuterClass.WorkflowAttributesDeleteRespo java.lang.String[] descriptorData = { "\n(flyteidl/admin/workflow_attributes.pro" + "to\022\016flyteidl.admin\032\'flyteidl/admin/match" + - "able_resource.proto\"\210\001\n\022WorkflowAttribut" + + "able_resource.proto\"\225\001\n\022WorkflowAttribut" + "es\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\020\n\010w" + "orkflow\030\003 \001(\t\022?\n\023matching_attributes\030\004 \001" + - "(\0132\".flyteidl.admin.MatchingAttributes\"Y" + - "\n\037WorkflowAttributesUpdateRequest\0226\n\natt" + - "ributes\030\001 \001(\0132\".flyteidl.admin.WorkflowA" + - "ttributes\"\"\n WorkflowAttributesUpdateRes" + - "ponse\"\213\001\n\034WorkflowAttributesGetRequest\022\017" + - "\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\020\n\010workf" + - "low\030\003 \001(\t\0228\n\rresource_type\030\004 \001(\0162!.flyte" + - "idl.admin.MatchableResource\"W\n\035WorkflowA" + - "ttributesGetResponse\0226\n\nattributes\030\001 \001(\013" + - "2\".flyteidl.admin.WorkflowAttributes\"\216\001\n" + - "\037WorkflowAttributesDeleteRequest\022\017\n\007proj" + - "ect\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\020\n\010workflow\030\003 " + - "\001(\t\0228\n\rresource_type\030\004 \001(\0162!.flyteidl.ad" + - "min.MatchableResource\"\"\n WorkflowAttribu" + - "tesDeleteResponseB=Z;github.com/flyteorg" + - "/flyte/flyteidl/gen/pb-go/flyteidl/admin" + - "b\006proto3" + "(\0132\".flyteidl.admin.MatchingAttributes\022\013" + + "\n\003org\030\005 \001(\t\"Y\n\037WorkflowAttributesUpdateR" + + "equest\0226\n\nattributes\030\001 \001(\0132\".flyteidl.ad" + + "min.WorkflowAttributes\"\"\n WorkflowAttrib" + + "utesUpdateResponse\"\230\001\n\034WorkflowAttribute" + + "sGetRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002" + + " \001(\t\022\020\n\010workflow\030\003 \001(\t\0228\n\rresource_type\030" + + "\004 \001(\0162!.flyteidl.admin.MatchableResource" + + "\022\013\n\003org\030\005 \001(\t\"W\n\035WorkflowAttributesGetRe" + + "sponse\0226\n\nattributes\030\001 \001(\0132\".flyteidl.ad" + + "min.WorkflowAttributes\"\233\001\n\037WorkflowAttri" + + "butesDeleteRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006d" + + "omain\030\002 \001(\t\022\020\n\010workflow\030\003 \001(\t\0228\n\rresourc" + + "e_type\030\004 \001(\0162!.flyteidl.admin.MatchableR" + + "esource\022\013\n\003org\030\005 \001(\t\"\"\n WorkflowAttribut" + + "esDeleteResponseB=Z;github.com/flyteorg/" + + "flyte/flyteidl/gen/pb-go/flyteidl/adminb" + + "\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -5516,7 +6036,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_WorkflowAttributes_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_WorkflowAttributes_descriptor, - new java.lang.String[] { "Project", "Domain", "Workflow", "MatchingAttributes", }); + new java.lang.String[] { "Project", "Domain", "Workflow", "MatchingAttributes", "Org", }); internal_static_flyteidl_admin_WorkflowAttributesUpdateRequest_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_flyteidl_admin_WorkflowAttributesUpdateRequest_fieldAccessorTable = new @@ -5534,7 +6054,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_WorkflowAttributesGetRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_WorkflowAttributesGetRequest_descriptor, - new java.lang.String[] { "Project", "Domain", "Workflow", "ResourceType", }); + new java.lang.String[] { "Project", "Domain", "Workflow", "ResourceType", "Org", }); internal_static_flyteidl_admin_WorkflowAttributesGetResponse_descriptor = getDescriptor().getMessageTypes().get(4); internal_static_flyteidl_admin_WorkflowAttributesGetResponse_fieldAccessorTable = new @@ -5546,7 +6066,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_WorkflowAttributesDeleteRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_WorkflowAttributesDeleteRequest_descriptor, - new java.lang.String[] { "Project", "Domain", "Workflow", "ResourceType", }); + new java.lang.String[] { "Project", "Domain", "Workflow", "ResourceType", "Org", }); internal_static_flyteidl_admin_WorkflowAttributesDeleteResponse_descriptor = getDescriptor().getMessageTypes().get(6); internal_static_flyteidl_admin_WorkflowAttributesDeleteResponse_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-java/flyteidl/core/IdentifierOuterClass.java b/flyteidl/gen/pb-java/flyteidl/core/IdentifierOuterClass.java index 2891c9576c..74e46e5f28 100644 --- a/flyteidl/gen/pb-java/flyteidl/core/IdentifierOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/core/IdentifierOuterClass.java @@ -249,6 +249,24 @@ public interface IdentifierOrBuilder extends */ com.google.protobuf.ByteString getVersionBytes(); + + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -272,6 +290,7 @@ private Identifier() {
       domain_ = "";
       name_ = "";
       version_ = "";
+      org_ = "";
     }
 
     @java.lang.Override
@@ -328,6 +347,12 @@ private Identifier(
               version_ = s;
               break;
             }
+            case 50: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -555,6 +580,48 @@ public java.lang.String getVersion() {
       }
     }
 
+    public static final int ORG_FIELD_NUMBER = 6;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 6; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -584,6 +651,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getVersionBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, version_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, org_); + } unknownFields.writeTo(output); } @@ -609,6 +679,9 @@ public int getSerializedSize() { if (!getVersionBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, version_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -633,6 +706,8 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getName())) return false; if (!getVersion() .equals(other.getVersion())) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -654,6 +729,8 @@ public int hashCode() { hash = (53 * hash) + getName().hashCode(); hash = (37 * hash) + VERSION_FIELD_NUMBER; hash = (53 * hash) + getVersion().hashCode(); + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -801,6 +878,8 @@ public Builder clear() { version_ = ""; + org_ = ""; + return this; } @@ -832,6 +911,7 @@ public flyteidl.core.IdentifierOuterClass.Identifier buildPartial() { result.domain_ = domain_; result.name_ = name_; result.version_ = version_; + result.org_ = org_; onBuilt(); return result; } @@ -899,6 +979,10 @@ public Builder mergeFrom(flyteidl.core.IdentifierOuterClass.Identifier other) { version_ = other.version_; onChanged(); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -1353,6 +1437,95 @@ public Builder setVersionBytes( onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 6; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -1465,6 +1638,24 @@ public interface WorkflowExecutionIdentifierOrBuilder extends */ com.google.protobuf.ByteString getNameBytes(); + + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 5; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 5; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -1486,6 +1677,7 @@ private WorkflowExecutionIdentifier() {
       project_ = "";
       domain_ = "";
       name_ = "";
+      org_ = "";
     }
 
     @java.lang.Override
@@ -1530,6 +1722,12 @@ private WorkflowExecutionIdentifier(
               name_ = s;
               break;
             }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -1690,6 +1888,48 @@ public java.lang.String getName() {
       }
     }
 
+    public static final int ORG_FIELD_NUMBER = 5;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 5; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org key applied to the resource.
+     * 
+ * + * string org = 5; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -1713,6 +1953,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getNameBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 4, name_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, org_); + } unknownFields.writeTo(output); } @@ -1731,6 +1974,9 @@ public int getSerializedSize() { if (!getNameBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, name_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -1752,6 +1998,8 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getDomain())) return false; if (!getName() .equals(other.getName())) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -1769,6 +2017,8 @@ public int hashCode() { hash = (53 * hash) + getDomain().hashCode(); hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -1912,6 +2162,8 @@ public Builder clear() { name_ = ""; + org_ = ""; + return this; } @@ -1941,6 +2193,7 @@ public flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier buildParti result.project_ = project_; result.domain_ = domain_; result.name_ = name_; + result.org_ = org_; onBuilt(); return result; } @@ -2001,6 +2254,10 @@ public Builder mergeFrom(flyteidl.core.IdentifierOuterClass.WorkflowExecutionIde name_ = other.name_; onChanged(); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -2301,6 +2558,95 @@ public Builder setNameBytes( onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 5; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 5; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 5; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 5; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org key applied to the resource.
+       * 
+ * + * string org = 5; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -4857,25 +5203,26 @@ public flyteidl.core.IdentifierOuterClass.SignalIdentifier getDefaultInstanceFor static { java.lang.String[] descriptorData = { "\n\036flyteidl/core/identifier.proto\022\rflytei" + - "dl.core\"\200\001\n\nIdentifier\0222\n\rresource_type\030" + + "dl.core\"\215\001\n\nIdentifier\0222\n\rresource_type\030" + "\001 \001(\0162\033.flyteidl.core.ResourceType\022\017\n\007pr" + "oject\030\002 \001(\t\022\016\n\006domain\030\003 \001(\t\022\014\n\004name\030\004 \001(" + - "\t\022\017\n\007version\030\005 \001(\t\"L\n\033WorkflowExecutionI" + - "dentifier\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001" + - "(\t\022\014\n\004name\030\004 \001(\t\"l\n\027NodeExecutionIdentif" + - "ier\022\017\n\007node_id\030\001 \001(\t\022@\n\014execution_id\030\002 \001" + - "(\0132*.flyteidl.core.WorkflowExecutionIden" + - "tifier\"\237\001\n\027TaskExecutionIdentifier\022*\n\007ta" + - "sk_id\030\001 \001(\0132\031.flyteidl.core.Identifier\022A" + - "\n\021node_execution_id\030\002 \001(\0132&.flyteidl.cor" + - "e.NodeExecutionIdentifier\022\025\n\rretry_attem" + - "pt\030\003 \001(\r\"g\n\020SignalIdentifier\022\021\n\tsignal_i" + - "d\030\001 \001(\t\022@\n\014execution_id\030\002 \001(\0132*.flyteidl" + - ".core.WorkflowExecutionIdentifier*U\n\014Res" + - "ourceType\022\017\n\013UNSPECIFIED\020\000\022\010\n\004TASK\020\001\022\014\n\010" + - "WORKFLOW\020\002\022\017\n\013LAUNCH_PLAN\020\003\022\013\n\007DATASET\020\004" + - "B * parallelism defines the minimum number of instances to bring up concurrently at any given - * point. Note that this is an optimistic restriction and that, due to network partitioning or + * point. Note that this is an optimistic restriction and that, due to network orging or * other failures, the actual number of currently running instances might be more. This has to * be a positive number if assigned. Default value is size. *
@@ -9195,7 +9195,7 @@ public flyteidl.core.Workflow.NodeOrBuilder getNodeOrBuilder() { /** *
      * parallelism defines the minimum number of instances to bring up concurrently at any given
-     * point. Note that this is an optimistic restriction and that, due to network partitioning or
+     * point. Note that this is an optimistic restriction and that, due to network orging or
      * other failures, the actual number of currently running instances might be more. This has to
      * be a positive number if assigned. Default value is size.
      * 
@@ -9817,7 +9817,7 @@ public flyteidl.core.Workflow.NodeOrBuilder getNodeOrBuilder() { /** *
        * parallelism defines the minimum number of instances to bring up concurrently at any given
-       * point. Note that this is an optimistic restriction and that, due to network partitioning or
+       * point. Note that this is an optimistic restriction and that, due to network orging or
        * other failures, the actual number of currently running instances might be more. This has to
        * be a positive number if assigned. Default value is size.
        * 
@@ -9830,7 +9830,7 @@ public int getParallelism() { /** *
        * parallelism defines the minimum number of instances to bring up concurrently at any given
-       * point. Note that this is an optimistic restriction and that, due to network partitioning or
+       * point. Note that this is an optimistic restriction and that, due to network orging or
        * other failures, the actual number of currently running instances might be more. This has to
        * be a positive number if assigned. Default value is size.
        * 
@@ -9846,7 +9846,7 @@ public Builder setParallelism(int value) { /** *
        * parallelism defines the minimum number of instances to bring up concurrently at any given
-       * point. Note that this is an optimistic restriction and that, due to network partitioning or
+       * point. Note that this is an optimistic restriction and that, due to network orging or
        * other failures, the actual number of currently running instances might be more. This has to
        * be a positive number if assigned. Default value is size.
        * 
diff --git a/flyteidl/gen/pb-java/flyteidl/service/Admin.java b/flyteidl/gen/pb-java/flyteidl/service/Admin.java index 80e46d6475..2e774a4d5a 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Admin.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Admin.java @@ -38,258 +38,374 @@ public static void registerAllExtensions( "admin/task_execution.proto\032\034flyteidl/adm" + "in/version.proto\032\033flyteidl/admin/common." + "proto\032\'flyteidl/admin/description_entity" + - ".proto2\204N\n\014AdminService\022m\n\nCreateTask\022!." + + ".proto2\245r\n\014AdminService\022m\n\nCreateTask\022!." + "flyteidl.admin.TaskCreateRequest\032\".flyte" + "idl.admin.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/a" + - "pi/v1/tasks:\001*\022\210\001\n\007GetTask\022 .flyteidl.ad" + + "pi/v1/tasks:\001*\022\330\001\n\007GetTask\022 .flyteidl.ad" + "min.ObjectGetRequest\032\024.flyteidl.admin.Ta" + - "sk\"E\202\323\344\223\002?\022=/api/v1/tasks/{id.project}/{" + - "id.domain}/{id.name}/{id.version}\022\227\001\n\013Li" + + "sk\"\224\001\202\323\344\223\002\215\001\022=/api/v1/tasks/{id.project}" + + "/{id.domain}/{id.name}/{id.version}ZL\022J/" + + "api/v1/tasks/org/{id.org}/{id.project}/{" + + "id.domain}/{id.name}/{id.version}\022\305\001\n\013Li" + "stTaskIds\0220.flyteidl.admin.NamedEntityId" + "entifierListRequest\032).flyteidl.admin.Nam" + - "edEntityIdentifierList\"+\202\323\344\223\002%\022#/api/v1/" + - "task_ids/{project}/{domain}\022\256\001\n\tListTask" + - "s\022#.flyteidl.admin.ResourceListRequest\032\030" + - ".flyteidl.admin.TaskList\"b\202\323\344\223\002\\\0220/api/v" + - "1/tasks/{id.project}/{id.domain}/{id.nam" + - "e}Z(\022&/api/v1/tasks/{id.project}/{id.dom" + - "ain}\022}\n\016CreateWorkflow\022%.flyteidl.admin." + - "WorkflowCreateRequest\032&.flyteidl.admin.W" + - "orkflowCreateResponse\"\034\202\323\344\223\002\026\"\021/api/v1/w" + - "orkflows:\001*\022\224\001\n\013GetWorkflow\022 .flyteidl.a" + - "dmin.ObjectGetRequest\032\030.flyteidl.admin.W" + - "orkflow\"I\202\323\344\223\002C\022A/api/v1/workflows/{id.p" + - "roject}/{id.domain}/{id.name}/{id.versio" + - "n}\022\237\001\n\017ListWorkflowIds\0220.flyteidl.admin." + - "NamedEntityIdentifierListRequest\032).flyte" + - "idl.admin.NamedEntityIdentifierList\"/\202\323\344" + - "\223\002)\022\'/api/v1/workflow_ids/{project}/{dom" + - "ain}\022\276\001\n\rListWorkflows\022#.flyteidl.admin." + - "ResourceListRequest\032\034.flyteidl.admin.Wor" + - "kflowList\"j\202\323\344\223\002d\0224/api/v1/workflows/{id" + - ".project}/{id.domain}/{id.name}Z,\022*/api/" + - "v1/workflows/{id.project}/{id.domain}\022\206\001" + - "\n\020CreateLaunchPlan\022\'.flyteidl.admin.Laun" + - "chPlanCreateRequest\032(.flyteidl.admin.Lau" + - "nchPlanCreateResponse\"\037\202\323\344\223\002\031\"\024/api/v1/l" + - "aunch_plans:\001*\022\233\001\n\rGetLaunchPlan\022 .flyte" + - "idl.admin.ObjectGetRequest\032\032.flyteidl.ad" + - "min.LaunchPlan\"L\202\323\344\223\002F\022D/api/v1/launch_p" + - "lans/{id.project}/{id.domain}/{id.name}/" + - "{id.version}\022\242\001\n\023GetActiveLaunchPlan\022\'.f" + - "lyteidl.admin.ActiveLaunchPlanRequest\032\032." + - "flyteidl.admin.LaunchPlan\"F\202\323\344\223\002@\022>/api/" + - "v1/active_launch_plans/{id.project}/{id." + + "edEntityIdentifierList\"Y\202\323\344\223\002S\022#/api/v1/" + + "task_ids/{project}/{domain}Z,\022*/api/v1/t" + + "asks/org/{org}/{project}/{domain}\022\250\002\n\tLi" + + "stTasks\022#.flyteidl.admin.ResourceListReq" + + "uest\032\030.flyteidl.admin.TaskList\"\333\001\202\323\344\223\002\324\001" + + "\0220/api/v1/tasks/{id.project}/{id.domain}" + + "/{id.name}Z?\022=/api/v1/tasks/org/{id.org}" + + "/{id.project}/{id.domain}/{id.name}Z(\022&/" + + "api/v1/tasks/{id.project}/{id.domain}Z5\022" + + "3/api/v1/tasks/org/{id.org}/{id.project}" + + "/{id.domain}\022}\n\016CreateWorkflow\022%.flyteid" + + "l.admin.WorkflowCreateRequest\032&.flyteidl" + + ".admin.WorkflowCreateResponse\"\034\202\323\344\223\002\026\"\021/" + + "api/v1/workflows:\001*\022\350\001\n\013GetWorkflow\022 .fl" + + "yteidl.admin.ObjectGetRequest\032\030.flyteidl" + + ".admin.Workflow\"\234\001\202\323\344\223\002\225\001\022A/api/v1/workf" + + "lows/{id.project}/{id.domain}/{id.name}/" + + "{id.version}ZP\022N/api/v1/workflows/org/{i" + + "d.org}/{id.project}/{id.domain}/{id.name" + + "}/{id.version}\022\321\001\n\017ListWorkflowIds\0220.fly" + + "teidl.admin.NamedEntityIdentifierListReq" + + "uest\032).flyteidl.admin.NamedEntityIdentif" + + "ierList\"a\202\323\344\223\002[\022\'/api/v1/workflow_ids/{p" + + "roject}/{domain}Z0\022./api/v1/workflows/or" + + "g/{org}/{project}/{domain}\022\300\002\n\rListWorkf" + + "lows\022#.flyteidl.admin.ResourceListReques" + + "t\032\034.flyteidl.admin.WorkflowList\"\353\001\202\323\344\223\002\344" + + "\001\0224/api/v1/workflows/{id.project}/{id.do" + + "main}/{id.name}ZC\022A/api/v1/workflows/org" + + "/{id.org}/{id.project}/{id.domain}/{id.n" + + "ame}Z,\022*/api/v1/workflows/{id.project}/{" + + "id.domain}Z9\0227/api/v1/workflows/org/{id." + + "org}/{id.project}/{id.domain}\022\206\001\n\020Create" + + "LaunchPlan\022\'.flyteidl.admin.LaunchPlanCr" + + "eateRequest\032(.flyteidl.admin.LaunchPlanC" + + "reateResponse\"\037\202\323\344\223\002\031\"\024/api/v1/launch_pl" + + "ans:\001*\022\362\001\n\rGetLaunchPlan\022 .flyteidl.admi" + + "n.ObjectGetRequest\032\032.flyteidl.admin.Laun" + + "chPlan\"\242\001\202\323\344\223\002\233\001\022D/api/v1/launch_plans/{" + + "id.project}/{id.domain}/{id.name}/{id.ve" + + "rsion}ZS\022Q/api/v1/launch_plans/org/{id.o" + + "rg}/{id.project}/{id.domain}/{id.name}/{" + + "id.version}\022\363\001\n\023GetActiveLaunchPlan\022\'.fl" + + "yteidl.admin.ActiveLaunchPlanRequest\032\032.f" + + "lyteidl.admin.LaunchPlan\"\226\001\202\323\344\223\002\217\001\022>/api" + + "/v1/active_launch_plans/{id.project}/{id" + + ".domain}/{id.name}ZM\022K/api/v1/active_lau" + + "nch_plans/org/{id.org}/{id.project}/{id." + "domain}/{id.name}\022\234\001\n\025ListActiveLaunchPl" + "ans\022+.flyteidl.admin.ActiveLaunchPlanLis" + "tRequest\032\036.flyteidl.admin.LaunchPlanList" + "\"6\202\323\344\223\0020\022./api/v1/active_launch_plans/{p" + - "roject}/{domain}\022\244\001\n\021ListLaunchPlanIds\0220" + + "roject}/{domain}\022\334\001\n\021ListLaunchPlanIds\0220" + ".flyteidl.admin.NamedEntityIdentifierLis" + "tRequest\032).flyteidl.admin.NamedEntityIde" + - "ntifierList\"2\202\323\344\223\002,\022*/api/v1/launch_plan" + - "_ids/{project}/{domain}\022\310\001\n\017ListLaunchPl" + - "ans\022#.flyteidl.admin.ResourceListRequest" + - "\032\036.flyteidl.admin.LaunchPlanList\"p\202\323\344\223\002j" + - "\0227/api/v1/launch_plans/{id.project}/{id." + - "domain}/{id.name}Z/\022-/api/v1/launch_plan" + - "s/{id.project}/{id.domain}\022\266\001\n\020UpdateLau" + - "nchPlan\022\'.flyteidl.admin.LaunchPlanUpdat" + - "eRequest\032(.flyteidl.admin.LaunchPlanUpda" + - "teResponse\"O\202\323\344\223\002I\032D/api/v1/launch_plans" + - "/{id.project}/{id.domain}/{id.name}/{id." + - "version}:\001*\022\201\001\n\017CreateExecution\022&.flytei" + - "dl.admin.ExecutionCreateRequest\032\'.flytei" + - "dl.admin.ExecutionCreateResponse\"\035\202\323\344\223\002\027" + - "\"\022/api/v1/executions:\001*\022\216\001\n\021RelaunchExec" + - "ution\022(.flyteidl.admin.ExecutionRelaunch" + - "Request\032\'.flyteidl.admin.ExecutionCreate" + - "Response\"&\202\323\344\223\002 \"\033/api/v1/executions/rel" + - "aunch:\001*\022\213\001\n\020RecoverExecution\022\'.flyteidl" + - ".admin.ExecutionRecoverRequest\032\'.flyteid" + - "l.admin.ExecutionCreateResponse\"%\202\323\344\223\002\037\"" + - "\032/api/v1/executions/recover:\001*\022\225\001\n\014GetEx" + - "ecution\022+.flyteidl.admin.WorkflowExecuti" + - "onGetRequest\032\031.flyteidl.admin.Execution\"" + - "=\202\323\344\223\0027\0225/api/v1/executions/{id.project}" + - "/{id.domain}/{id.name}\022\244\001\n\017UpdateExecuti" + - "on\022&.flyteidl.admin.ExecutionUpdateReque" + - "st\032\'.flyteidl.admin.ExecutionUpdateRespo" + - "nse\"@\202\323\344\223\002:\0325/api/v1/executions/{id.proj" + - "ect}/{id.domain}/{id.name}:\001*\022\271\001\n\020GetExe" + - "cutionData\022/.flyteidl.admin.WorkflowExec" + - "utionGetDataRequest\0320.flyteidl.admin.Wor" + - "kflowExecutionGetDataResponse\"B\202\323\344\223\002<\022:/" + - "api/v1/data/executions/{id.project}/{id." + - "domain}/{id.name}\022\211\001\n\016ListExecutions\022#.f" + - "lyteidl.admin.ResourceListRequest\032\035.flyt" + - "eidl.admin.ExecutionList\"3\202\323\344\223\002-\022+/api/v" + - "1/executions/{id.project}/{id.domain}\022\255\001" + - "\n\022TerminateExecution\022).flyteidl.admin.Ex" + - "ecutionTerminateRequest\032*.flyteidl.admin" + - ".ExecutionTerminateResponse\"@\202\323\344\223\002:*5/ap" + - "i/v1/executions/{id.project}/{id.domain}" + - "/{id.name}:\001*\022\322\001\n\020GetNodeExecution\022\'.fly" + - "teidl.admin.NodeExecutionGetRequest\032\035.fl" + - "yteidl.admin.NodeExecution\"v\202\323\344\223\002p\022n/api" + - "/v1/node_executions/{id.execution_id.pro" + - "ject}/{id.execution_id.domain}/{id.execu" + - "tion_id.name}/{id.node_id}\022\336\001\n\022ListNodeE" + - "xecutions\022(.flyteidl.admin.NodeExecution" + - "ListRequest\032!.flyteidl.admin.NodeExecuti" + - "onList\"{\202\323\344\223\002u\022s/api/v1/node_executions/" + - "{workflow_execution_id.project}/{workflo" + - "w_execution_id.domain}/{workflow_executi" + - "on_id.name}\022\245\004\n\031ListNodeExecutionsForTas" + - "k\022/.flyteidl.admin.NodeExecutionForTaskL" + - "istRequest\032!.flyteidl.admin.NodeExecutio" + - "nList\"\263\003\202\323\344\223\002\254\003\022\251\003/api/v1/children/task_" + - "executions/{task_execution_id.node_execu" + - "tion_id.execution_id.project}/{task_exec" + - "ution_id.node_execution_id.execution_id." + - "domain}/{task_execution_id.node_executio" + - "n_id.execution_id.name}/{task_execution_" + - "id.node_execution_id.node_id}/{task_exec" + - "ution_id.task_id.project}/{task_executio" + - "n_id.task_id.domain}/{task_execution_id." + - "task_id.name}/{task_execution_id.task_id" + - ".version}/{task_execution_id.retry_attem" + - "pt}\022\356\001\n\024GetNodeExecutionData\022+.flyteidl." + - "admin.NodeExecutionGetDataRequest\032,.flyt" + - "eidl.admin.NodeExecutionGetDataResponse\"" + - "{\202\323\344\223\002u\022s/api/v1/data/node_executions/{i" + - "d.execution_id.project}/{id.execution_id" + - ".domain}/{id.execution_id.name}/{id.node" + - "_id}\022\177\n\017RegisterProject\022&.flyteidl.admin" + - ".ProjectRegisterRequest\032\'.flyteidl.admin" + - ".ProjectRegisterResponse\"\033\202\323\344\223\002\025\"\020/api/v" + - "1/projects:\001*\022q\n\rUpdateProject\022\027.flyteid" + - "l.admin.Project\032%.flyteidl.admin.Project" + - "UpdateResponse\" \202\323\344\223\002\032\032\025/api/v1/projects" + - "/{id}:\001*\022f\n\014ListProjects\022\".flyteidl.admi" + - "n.ProjectListRequest\032\030.flyteidl.admin.Pr" + - "ojects\"\030\202\323\344\223\002\022\022\020/api/v1/projects\022\231\001\n\023Cre" + - "ateWorkflowEvent\022-.flyteidl.admin.Workfl" + - "owExecutionEventRequest\032..flyteidl.admin" + - ".WorkflowExecutionEventResponse\"#\202\323\344\223\002\035\"" + - "\030/api/v1/events/workflows:\001*\022\211\001\n\017CreateN" + - "odeEvent\022).flyteidl.admin.NodeExecutionE" + - "ventRequest\032*.flyteidl.admin.NodeExecuti" + - "onEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/" + - "nodes:\001*\022\211\001\n\017CreateTaskEvent\022).flyteidl." + - "admin.TaskExecutionEventRequest\032*.flytei" + - "dl.admin.TaskExecutionEventResponse\"\037\202\323\344" + - "\223\002\031\"\024/api/v1/events/tasks:\001*\022\200\003\n\020GetTask" + - "Execution\022\'.flyteidl.admin.TaskExecution" + - "GetRequest\032\035.flyteidl.admin.TaskExecutio" + - "n\"\243\002\202\323\344\223\002\234\002\022\231\002/api/v1/task_executions/{i" + - "d.node_execution_id.execution_id.project" + - "}/{id.node_execution_id.execution_id.dom" + - "ain}/{id.node_execution_id.execution_id." + - "name}/{id.node_execution_id.node_id}/{id" + - ".task_id.project}/{id.task_id.domain}/{i" + - "d.task_id.name}/{id.task_id.version}/{id" + - ".retry_attempt}\022\230\002\n\022ListTaskExecutions\022(" + - ".flyteidl.admin.TaskExecutionListRequest" + - "\032!.flyteidl.admin.TaskExecutionList\"\264\001\202\323" + - "\344\223\002\255\001\022\252\001/api/v1/task_executions/{node_ex" + - "ecution_id.execution_id.project}/{node_e" + - "xecution_id.execution_id.domain}/{node_e" + - "xecution_id.execution_id.name}/{node_exe" + - "cution_id.node_id}\022\234\003\n\024GetTaskExecutionD" + - "ata\022+.flyteidl.admin.TaskExecutionGetDat" + - "aRequest\032,.flyteidl.admin.TaskExecutionG" + - "etDataResponse\"\250\002\202\323\344\223\002\241\002\022\236\002/api/v1/data/" + - "task_executions/{id.node_execution_id.ex" + - "ecution_id.project}/{id.node_execution_i" + - "d.execution_id.domain}/{id.node_executio" + - "n_id.execution_id.name}/{id.node_executi" + - "on_id.node_id}/{id.task_id.project}/{id." + - "task_id.domain}/{id.task_id.name}/{id.ta" + - "sk_id.version}/{id.retry_attempt}\022\343\001\n\035Up" + - "dateProjectDomainAttributes\0224.flyteidl.a" + - "dmin.ProjectDomainAttributesUpdateReques" + - "t\0325.flyteidl.admin.ProjectDomainAttribut" + - "esUpdateResponse\"U\202\323\344\223\002O\032J/api/v1/projec" + - "t_domain_attributes/{attributes.project}" + - "/{attributes.domain}:\001*\022\301\001\n\032GetProjectDo" + - "mainAttributes\0221.flyteidl.admin.ProjectD" + - "omainAttributesGetRequest\0322.flyteidl.adm" + - "in.ProjectDomainAttributesGetResponse\"<\202" + - "\323\344\223\0026\0224/api/v1/project_domain_attributes" + - "/{project}/{domain}\022\315\001\n\035DeleteProjectDom" + - "ainAttributes\0224.flyteidl.admin.ProjectDo" + - "mainAttributesDeleteRequest\0325.flyteidl.a" + - "dmin.ProjectDomainAttributesDeleteRespon" + - "se\"?\202\323\344\223\0029*4/api/v1/project_domain_attri" + - "butes/{project}/{domain}:\001*\022\266\001\n\027UpdatePr" + - "ojectAttributes\022..flyteidl.admin.Project" + - "AttributesUpdateRequest\032/.flyteidl.admin" + - ".ProjectAttributesUpdateResponse\":\202\323\344\223\0024" + - "\032//api/v1/project_attributes/{attributes" + - ".project}:\001*\022\237\001\n\024GetProjectAttributes\022+." + - "flyteidl.admin.ProjectAttributesGetReque" + - "st\032,.flyteidl.admin.ProjectAttributesGet" + - "Response\",\202\323\344\223\002&\022$/api/v1/project_attrib" + - "utes/{project}\022\253\001\n\027DeleteProjectAttribut" + - "es\022..flyteidl.admin.ProjectAttributesDel" + - "eteRequest\032/.flyteidl.admin.ProjectAttri" + - "butesDeleteResponse\"/\202\323\344\223\002)*$/api/v1/pro" + - "ject_attributes/{project}:\001*\022\344\001\n\030UpdateW" + - "orkflowAttributes\022/.flyteidl.admin.Workf" + - "lowAttributesUpdateRequest\0320.flyteidl.ad" + - "min.WorkflowAttributesUpdateResponse\"e\202\323" + - "\344\223\002_\032Z/api/v1/workflow_attributes/{attri" + - "butes.project}/{attributes.domain}/{attr" + - "ibutes.workflow}:\001*\022\267\001\n\025GetWorkflowAttri" + - "butes\022,.flyteidl.admin.WorkflowAttribute" + - "sGetRequest\032-.flyteidl.admin.WorkflowAtt" + - "ributesGetResponse\"A\202\323\344\223\002;\0229/api/v1/work" + - "flow_attributes/{project}/{domain}/{work" + - "flow}\022\303\001\n\030DeleteWorkflowAttributes\022/.fly" + - "teidl.admin.WorkflowAttributesDeleteRequ" + - "est\0320.flyteidl.admin.WorkflowAttributesD" + - "eleteResponse\"D\202\323\344\223\002>*9/api/v1/workflow_" + - "attributes/{project}/{domain}/{workflow}" + - ":\001*\022\240\001\n\027ListMatchableAttributes\022..flytei" + - "dl.admin.ListMatchableAttributesRequest\032" + - "/.flyteidl.admin.ListMatchableAttributes" + - "Response\"$\202\323\344\223\002\036\022\034/api/v1/matchable_attr" + - "ibutes\022\237\001\n\021ListNamedEntities\022&.flyteidl." + - "admin.NamedEntityListRequest\032\037.flyteidl." + - "admin.NamedEntityList\"A\202\323\344\223\002;\0229/api/v1/n" + - "amed_entities/{resource_type}/{project}/" + - "{domain}\022\247\001\n\016GetNamedEntity\022%.flyteidl.a" + - "dmin.NamedEntityGetRequest\032\033.flyteidl.ad" + - "min.NamedEntity\"Q\202\323\344\223\002K\022I/api/v1/named_e" + + "ntifierList\"j\202\323\344\223\002d\022*/api/v1/launch_plan" + + "_ids/{project}/{domain}Z6\0224/api/v1/launc" + + "h_plan_ids/org/{org}/{project}/{domain}\022" + + "\320\002\n\017ListLaunchPlans\022#.flyteidl.admin.Res" + + "ourceListRequest\032\036.flyteidl.admin.Launch" + + "PlanList\"\367\001\202\323\344\223\002\360\001\0227/api/v1/launch_plans" + + "/{id.project}/{id.domain}/{id.name}ZF\022D/" + + "api/v1/launch_plans/org/{id.org}/{id.pro" + + "ject}/{id.domain}/{id.name}Z/\022-/api/v1/l" + + "aunch_plans/{id.project}/{id.domain}Z<\022:" + + "/api/v1/launch_plans/org/{id.org}/{id.pr" + + "oject}/{id.domain}\022\215\002\n\020UpdateLaunchPlan\022" + + "\'.flyteidl.admin.LaunchPlanUpdateRequest" + + "\032(.flyteidl.admin.LaunchPlanUpdateRespon" + + "se\"\245\001\202\323\344\223\002\236\001\032D/api/v1/launch_plans/{id.p" + + "roject}/{id.domain}/{id.name}/{id.versio" + + "n}:\001*ZS\032Q/api/v1/launch_plans/org/{id.or" + + "g}/{id.project}/{id.domain}/{id.name}/{i" + + "d.version}\022\201\001\n\017CreateExecution\022&.flyteid" + + "l.admin.ExecutionCreateRequest\032\'.flyteid" + + "l.admin.ExecutionCreateResponse\"\035\202\323\344\223\002\027\"" + + "\022/api/v1/executions:\001*\022\216\001\n\021RelaunchExecu" + + "tion\022(.flyteidl.admin.ExecutionRelaunchR" + + "equest\032\'.flyteidl.admin.ExecutionCreateR" + + "esponse\"&\202\323\344\223\002 \"\033/api/v1/executions/rela" + + "unch:\001*\022\213\001\n\020RecoverExecution\022\'.flyteidl." + + "admin.ExecutionRecoverRequest\032\'.flyteidl" + + ".admin.ExecutionCreateResponse\"%\202\323\344\223\002\037\"\032" + + "/api/v1/executions/recover:\001*\022\334\001\n\014GetExe" + + "cution\022+.flyteidl.admin.WorkflowExecutio" + + "nGetRequest\032\031.flyteidl.admin.Execution\"\203" + + "\001\202\323\344\223\002}\0225/api/v1/executions/{id.project}" + + "/{id.domain}/{id.name}ZD\022B/api/v1/execut" + + "ions/org/{id.org}/{id.project}/{id.domai" + + "n}/{id.name}\022\357\001\n\017UpdateExecution\022&.flyte" + + "idl.admin.ExecutionUpdateRequest\032\'.flyte" + + "idl.admin.ExecutionUpdateResponse\"\212\001\202\323\344\223" + + "\002\203\001\0325/api/v1/executions/{id.project}/{id" + + ".domain}/{id.name}:\001*ZG\032B/api/v1/executi" + + "ons/org/{id.org}/{id.project}/{id.domain" + + "}/{id.name}:\001*\022\206\002\n\020GetExecutionData\022/.fl" + + "yteidl.admin.WorkflowExecutionGetDataReq" + + "uest\0320.flyteidl.admin.WorkflowExecutionG" + + "etDataResponse\"\216\001\202\323\344\223\002\207\001\022:/api/v1/data/e" + + "xecutions/{id.project}/{id.domain}/{id.n" + + "ame}ZI\022G/api/v1/data/executions/org/{id." + + "org}/{id.project}/{id.domain}/{id.name}\022" + + "\305\001\n\016ListExecutions\022#.flyteidl.admin.Reso" + + "urceListRequest\032\035.flyteidl.admin.Executi" + + "onList\"o\202\323\344\223\002i\022+/api/v1/executions/{id.p" + + "roject}/{id.domain}Z:\0228/api/v1/execution" + + "s/org/{id.org}/{id.project}/{id.domain}\022" + + "\375\001\n\022TerminateExecution\022).flyteidl.admin." + + "ExecutionTerminateRequest\032*.flyteidl.adm" + + "in.ExecutionTerminateResponse\"\217\001\202\323\344\223\002\210\001*" + + "5/api/v1/executions/{id.project}/{id.dom" + + "ain}/{id.name}:\001*ZL*G/api/v1/data/execut" + + "ions/org/{id.org}/{id.project}/{id.domai" + + "n}/{id.name}:\001*\022\342\002\n\020GetNodeExecution\022\'.f" + + "lyteidl.admin.NodeExecutionGetRequest\032\035." + + "flyteidl.admin.NodeExecution\"\205\002\202\323\344\223\002\376\001\022n" + + "/api/v1/node_executions/{id.execution_id" + + ".project}/{id.execution_id.domain}/{id.e" + + "xecution_id.name}/{id.node_id}Z\213\001\022\210\001/api" + + "/v1/node_executions/org/{id.execution_id" + + ".org}/{id.execution_id.project}/{id.exec" + + "ution_id.domain}/{id.execution_id.name}/" + + "{id.node_id}\022\371\002\n\022ListNodeExecutions\022(.fl" + + "yteidl.admin.NodeExecutionListRequest\032!." + + "flyteidl.admin.NodeExecutionList\"\225\002\202\323\344\223\002" + + "\216\002\022s/api/v1/node_executions/{workflow_ex" + + "ecution_id.project}/{workflow_execution_" + + "id.domain}/{workflow_execution_id.name}Z" + + "\226\001\022\223\001/api/v1/node_executions/org/{workfl" + + "ow_execution_id.org}/{workflow_execution" + + "_id.project}/{workflow_execution_id.doma" + + "in}/{workflow_execution_id.name}\022\217\010\n\031Lis" + + "tNodeExecutionsForTask\022/.flyteidl.admin." + + "NodeExecutionForTaskListRequest\032!.flytei" + + "dl.admin.NodeExecutionList\"\235\007\202\323\344\223\002\226\007\022\251\003/" + + "api/v1/children/task_executions/{task_ex" + + "ecution_id.node_execution_id.execution_i" + + "d.project}/{task_execution_id.node_execu" + + "tion_id.execution_id.domain}/{task_execu" + + "tion_id.node_execution_id.execution_id.n" + + "ame}/{task_execution_id.node_execution_i" + + "d.node_id}/{task_execution_id.task_id.pr" + + "oject}/{task_execution_id.task_id.domain" + + "}/{task_execution_id.task_id.name}/{task" + + "_execution_id.task_id.version}/{task_exe" + + "cution_id.retry_attempt}Z\347\003\022\344\003/api/v1/ch" + + "ildren/task_executions/org/{task_executi" + + "on_id.node_execution_id.execution_id.org" + + "}/{task_execution_id.node_execution_id.e" + + "xecution_id.project}/{task_execution_id." + + "node_execution_id.execution_id.domain}/{" + + "task_execution_id.node_execution_id.exec" + + "ution_id.name}/{task_execution_id.node_e" + + "xecution_id.node_id}/{task_execution_id." + + "task_id.project}/{task_execution_id.task" + + "_id.domain}/{task_execution_id.task_id.n" + + "ame}/{task_execution_id.task_id.version}" + + "/{task_execution_id.retry_attempt}\022\203\003\n\024G" + + "etNodeExecutionData\022+.flyteidl.admin.Nod" + + "eExecutionGetDataRequest\032,.flyteidl.admi" + + "n.NodeExecutionGetDataResponse\"\217\002\202\323\344\223\002\210\002" + + "\022s/api/v1/data/node_executions/{id.execu" + + "tion_id.project}/{id.execution_id.domain" + + "}/{id.execution_id.name}/{id.node_id}Z\220\001" + + "\022\215\001/api/v1/data/node_executions/org/{id." + + "execution_id.org}/{id.execution_id.proje" + + "ct}/{id.execution_id.domain}/{id.executi" + + "on_id.name}/{id.node_id}\022\177\n\017RegisterProj" + + "ect\022&.flyteidl.admin.ProjectRegisterRequ" + + "est\032\'.flyteidl.admin.ProjectRegisterResp" + + "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\207\002\n\rUp" + + "dateProject\022\027.flyteidl.admin.Project\032%.f" + + "lyteidl.admin.ProjectUpdateResponse\"\265\001\202\323" + + "\344\223\002\256\001\032\025/api/v1/projects/{id}:\001*Z%\032 /api/" + + "v1/projects/{identifier.id}:\001*Z/\032*/api/v" + + "1/projects/org/{identifier.org}/{id}:\001*Z" + + ":\0325/api/v1/projects/org/{identifier.org}" + + "/{identifier.id}:\001*\022f\n\014ListProjects\022\".fl" + + "yteidl.admin.ProjectListRequest\032\030.flytei" + + "dl.admin.Projects\"\030\202\323\344\223\002\022\022\020/api/v1/proje" + + "cts\022\231\001\n\023CreateWorkflowEvent\022-.flyteidl.a" + + "dmin.WorkflowExecutionEventRequest\032..fly" + + "teidl.admin.WorkflowExecutionEventRespon" + + "se\"#\202\323\344\223\002\035\"\030/api/v1/events/workflows:\001*\022" + + "\211\001\n\017CreateNodeEvent\022).flyteidl.admin.Nod" + + "eExecutionEventRequest\032*.flyteidl.admin." + + "NodeExecutionEventResponse\"\037\202\323\344\223\002\031\"\024/api" + + "/v1/events/nodes:\001*\022\211\001\n\017CreateTaskEvent\022" + + ").flyteidl.admin.TaskExecutionEventReque" + + "st\032*.flyteidl.admin.TaskExecutionEventRe" + + "sponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/tasks:\001*\022" + + "\313\005\n\020GetTaskExecution\022\'.flyteidl.admin.Ta" + + "skExecutionGetRequest\032\035.flyteidl.admin.T" + + "askExecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1/task_ex" + + "ecutions/{id.node_execution_id.execution" + + "_id.project}/{id.node_execution_id.execu" + + "tion_id.domain}/{id.node_execution_id.ex" + + "ecution_id.name}/{id.node_execution_id.n" + + "ode_id}/{id.task_id.project}/{id.task_id" + + ".domain}/{id.task_id.name}/{id.task_id.v" + + "ersion}/{id.retry_attempt}Z\310\002\022\305\002/api/v1/" + + "task_executions/org/{id.node_execution_i" + + "d.execution_id.org}/{id.node_execution_i" + + "d.execution_id.project}/{id.node_executi" + + "on_id.execution_id.domain}/{id.node_exec" + + "ution_id.execution_id.name}/{id.node_exe" + + "cution_id.node_id}/{id.task_id.project}/" + + "{id.task_id.domain}/{id.task_id.name}/{i" + + "d.task_id.version}/{id.retry_attempt}\022\361\003" + + "\n\022ListTaskExecutions\022(.flyteidl.admin.Ta" + + "skExecutionListRequest\032!.flyteidl.admin." + + "TaskExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/api/v1/ta" + + "sk_executions/{node_execution_id.executi" + + "on_id.project}/{node_execution_id.execut" + + "ion_id.domain}/{node_execution_id.execut" + + "ion_id.name}/{node_execution_id.node_id}" + + "Z\326\001\022\323\001/api/v1/task_executions/org/{node_" + + "execution_id.execution_id.org}/{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}\022\354\005\n\024GetTaskExecutionDa" + + "ta\022+.flyteidl.admin.TaskExecutionGetData" + + "Request\032,.flyteidl.admin.TaskExecutionGe" + + "tDataResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v1/data/t" + + "ask_executions/{id.node_execution_id.exe" + + "cution_id.project}/{id.node_execution_id" + + ".execution_id.domain}/{id.node_execution" + + "_id.execution_id.name}/{id.node_executio" + + "n_id.node_id}/{id.task_id.project}/{id.t" + + "ask_id.domain}/{id.task_id.name}/{id.tas" + + "k_id.version}/{id.retry_attempt}Z\315\002\022\312\002/a" + + "pi/v1/data/task_executions/org/{id.node_" + + "execution_id.execution_id.org}/{id.node_" + + "execution_id.execution_id.project}/{id.n" + + "ode_execution_id.execution_id.domain}/{i" + + "d.node_execution_id.execution_id.name}/{" + + "id.node_execution_id.node_id}/{id.task_i" + + "d.project}/{id.task_id.domain}/{id.task_" + + "id.name}/{id.task_id.version}/{id.retry_" + + "attempt}\022\313\002\n\035UpdateProjectDomainAttribut" + + "es\0224.flyteidl.admin.ProjectDomainAttribu" + + "tesUpdateRequest\0325.flyteidl.admin.Projec" + + "tDomainAttributesUpdateResponse\"\274\001\202\323\344\223\002\265" + + "\001\032J/api/v1/project_domain_attributes/{at" + + "tributes.project}/{attributes.domain}:\001*" + + "Zd\032_/api/v1/project_domain_attributes/or" + + "g/{attributes.org}/{attributes.project}/" + + "{attributes.domain}:\001*\022\203\002\n\032GetProjectDom" + + "ainAttributes\0221.flyteidl.admin.ProjectDo" + + "mainAttributesGetRequest\0322.flyteidl.admi" + + "n.ProjectDomainAttributesGetResponse\"~\202\323" + + "\344\223\002x\0224/api/v1/project_domain_attributes/" + + "{project}/{domain}Z@\022>/api/v1/project_do" + + "main_attributes/org/{org}/{project}/{dom" + + "ain}\022\223\002\n\035DeleteProjectDomainAttributes\0224" + + ".flyteidl.admin.ProjectDomainAttributesD" + + "eleteRequest\0325.flyteidl.admin.ProjectDom" + + "ainAttributesDeleteResponse\"\204\001\202\323\344\223\002~*4/a" + + "pi/v1/project_domain_attributes/{project" + + "}/{domain}:\001*ZC*>/api/v1/project_domain_" + + "attributes/org/{org}/{project}/{domain}:" + + "\001*\022\212\002\n\027UpdateProjectAttributes\022..flyteid" + + "l.admin.ProjectAttributesUpdateRequest\032/" + + ".flyteidl.admin.ProjectAttributesUpdateR" + + "esponse\"\215\001\202\323\344\223\002\206\001\032//api/v1/project_attri" + + "butes/{attributes.project}:\001*ZP\032K/api/v1" + + "/project_domain_attributes/org/{attribut" + + "es.org}/{attributes.project}:\001*\022\330\001\n\024GetP" + + "rojectAttributes\022+.flyteidl.admin.Projec" + + "tAttributesGetRequest\032,.flyteidl.admin.P" + + "rojectAttributesGetResponse\"e\202\323\344\223\002_\022$/ap" + + "i/v1/project_attributes/{project}Z7\0225/ap" + + "i/v1/project_domain_attributes/org/{org}" + + "/{project}\022\347\001\n\027DeleteProjectAttributes\022." + + ".flyteidl.admin.ProjectAttributesDeleteR" + + "equest\032/.flyteidl.admin.ProjectAttribute" + + "sDeleteResponse\"k\202\323\344\223\002e*$/api/v1/project" + + "_attributes/{project}:\001*Z:*5/api/v1/proj" + + "ect_domain_attributes/org/{org}/{project" + + "}:\001*\022\334\002\n\030UpdateWorkflowAttributes\022/.flyt" + + "eidl.admin.WorkflowAttributesUpdateReque" + + "st\0320.flyteidl.admin.WorkflowAttributesUp" + + "dateResponse\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/workflow" + + "_attributes/{attributes.project}/{attrib" + + "utes.domain}/{attributes.workflow}:\001*Zt\032" + + "o/api/v1/workflow_attributes/org/{attrib" + + "utes.org}/{attributes.project}/{attribut" + + "es.domain}/{attributes.workflow}:\001*\022\200\002\n\025" + + "GetWorkflowAttributes\022,.flyteidl.admin.W" + + "orkflowAttributesGetRequest\032-.flyteidl.a" + + "dmin.WorkflowAttributesGetResponse\"\211\001\202\323\344" + + "\223\002\202\001\0229/api/v1/workflow_attributes/{proje" + + "ct}/{domain}/{workflow}ZE\022C/api/v1/workf" + + "low_attributes/org/{org}/{project}/{doma" + + "in}/{workflow}\022\217\002\n\030DeleteWorkflowAttribu" + + "tes\022/.flyteidl.admin.WorkflowAttributesD" + + "eleteRequest\0320.flyteidl.admin.WorkflowAt" + + "tributesDeleteResponse\"\217\001\202\323\344\223\002\210\001*9/api/v" + + "1/workflow_attributes/{project}/{domain}" + + "/{workflow}:\001*ZH*C/api/v1/workflow_attri" + + "butes/org/{org}/{project}/{domain}/{work" + + "flow}:\001*\022\240\001\n\027ListMatchableAttributes\022..f" + + "lyteidl.admin.ListMatchableAttributesReq" + + "uest\032/.flyteidl.admin.ListMatchableAttri" + + "butesResponse\"$\202\323\344\223\002\036\022\034/api/v1/matchable" + + "_attributes\022\350\001\n\021ListNamedEntities\022&.flyt" + + "eidl.admin.NamedEntityListRequest\032\037.flyt" + + "eidl.admin.NamedEntityList\"\211\001\202\323\344\223\002\202\001\0229/a" + + "pi/v1/named_entities/{resource_type}/{pr" + + "oject}/{domain}ZE\022C/api/v1/named_entitie" + + "s/{resource_type}/org/{org}/{project}/{d" + + "omain}\022\203\002\n\016GetNamedEntity\022%.flyteidl.adm" + + "in.NamedEntityGetRequest\032\033.flyteidl.admi" + + "n.NamedEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1/named_e" + "ntities/{resource_type}/{id.project}/{id" + - ".domain}/{id.name}\022\276\001\n\021UpdateNamedEntity" + - "\022(.flyteidl.admin.NamedEntityUpdateReque" + - "st\032).flyteidl.admin.NamedEntityUpdateRes" + - "ponse\"T\202\323\344\223\002N\032I/api/v1/named_entities/{r" + - "esource_type}/{id.project}/{id.domain}/{" + - "id.name}:\001*\022l\n\nGetVersion\022!.flyteidl.adm" + - "in.GetVersionRequest\032\".flyteidl.admin.Ge" + - "tVersionResponse\"\027\202\323\344\223\002\021\022\017/api/v1/versio" + - "n\022\304\001\n\024GetDescriptionEntity\022 .flyteidl.ad" + - "min.ObjectGetRequest\032!.flyteidl.admin.De" + - "scriptionEntity\"g\202\323\344\223\002a\022_/api/v1/descrip" + - "tion_entities/{id.resource_type}/{id.pro" + - "ject}/{id.domain}/{id.name}/{id.version}" + - "\022\222\002\n\027ListDescriptionEntities\022,.flyteidl." + - "admin.DescriptionEntityListRequest\032%.fly" + - "teidl.admin.DescriptionEntityList\"\241\001\202\323\344\223" + - "\002\232\001\022O/api/v1/description_entities/{resou" + - "rce_type}/{id.project}/{id.domain}/{id.n" + - "ame}ZG\022E/api/v1/description_entities/{re" + - "source_type}/{id.project}/{id.domain}\022\305\001" + - "\n\023GetExecutionMetrics\0222.flyteidl.admin.W" + - "orkflowExecutionGetMetricsRequest\0323.flyt" + - "eidl.admin.WorkflowExecutionGetMetricsRe" + - "sponse\"E\202\323\344\223\002?\022=/api/v1/metrics/executio" + - "ns/{id.project}/{id.domain}/{id.name}B?Z" + - "=github.com/flyteorg/flyte/flyteidl/gen/" + - "pb-go/flyteidl/serviceb\006proto3" + ".domain}/{id.name}ZX\022V/api/v1/named_enti" + + "ties/{resource_type}/org/{id.org}/{id.pr" + + "oject}/{id.domain}/{id.name}\022\235\002\n\021UpdateN" + + "amedEntity\022(.flyteidl.admin.NamedEntityU" + + "pdateRequest\032).flyteidl.admin.NamedEntit" + + "yUpdateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/v1/named" + + "_entities/{resource_type}/{id.project}/{" + + "id.domain}/{id.name}:\001*Z[\032V/api/v1/named" + + "_entities/{resource_type}/org/{id.org}/{" + + "id.project}/{id.domain}/{id.name}:\001*\022l\n\n" + + "GetVersion\022!.flyteidl.admin.GetVersionRe" + + "quest\032\".flyteidl.admin.GetVersionRespons" + + "e\"\027\202\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024GetDescri" + + "ptionEntity\022 .flyteidl.admin.ObjectGetRe" + + "quest\032!.flyteidl.admin.DescriptionEntity" + + "\"\330\001\202\323\344\223\002\321\001\022_/api/v1/description_entities" + + "/{id.resource_type}/{id.project}/{id.dom" + + "ain}/{id.name}/{id.version}Zn\022l/api/v1/d" + + "escription_entities/org/{id.org}/{id.res" + + "ource_type}/{id.project}/{id.domain}/{id" + + ".name}/{id.version}\022\310\003\n\027ListDescriptionE" + + "ntities\022,.flyteidl.admin.DescriptionEnti" + + "tyListRequest\032%.flyteidl.admin.Descripti" + + "onEntityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/descript" + + "ion_entities/{resource_type}/{id.project" + + "}/{id.domain}/{id.name}Z^\022\\/api/v1/descr" + + "iption_entities/{resource_type}/org/{id." + + "org}/{id.project}/{id.domain}/{id.name}Z" + + "G\022E/api/v1/description_entities/{resourc" + + "e_type}/{id.project}/{id.domain}ZT\022R/api" + + "/v1/description_entities/{resource_type}" + + "/org/{id.org}/{id.project}/{id.domain}\022\225" + + "\002\n\023GetExecutionMetrics\0222.flyteidl.admin." + + "WorkflowExecutionGetMetricsRequest\0323.fly" + + "teidl.admin.WorkflowExecutionGetMetricsR" + + "esponse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metrics/execu" + + "tions/{id.project}/{id.domain}/{id.name}" + + "ZL\022J/api/v1/metrics/executions/org/{id.o" + + "rg}/{id.project}/{id.domain}/{id.name}B?" + + "Z=github.com/flyteorg/flyte/flyteidl/gen" + + "/pb-go/flyteidl/serviceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { diff --git a/flyteidl/gen/pb-java/flyteidl/service/ExternalPluginServiceOuterClass.java b/flyteidl/gen/pb-java/flyteidl/service/ExternalPluginServiceOuterClass.java index 2336dd1564..7fe6508f1a 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/ExternalPluginServiceOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/service/ExternalPluginServiceOuterClass.java @@ -4658,30 +4658,29 @@ public flyteidl.service.ExternalPluginServiceOuterClass.TaskDeleteResponse getDe "\n.flyteidl/service/external_plugin_servi" + "ce.proto\022\020flyteidl.service\032\034flyteidl/cor" + "e/literals.proto\032\031flyteidl/core/tasks.pr" + - "oto\032\035flyteidl/core/interface.proto\"\210\001\n\021T" + - "askCreateRequest\022)\n\006inputs\030\001 \001(\0132\031.flyte" + - "idl.core.LiteralMap\022-\n\010template\030\002 \001(\0132\033." + - "flyteidl.core.TaskTemplate\022\025\n\routput_pre" + - "fix\030\003 \001(\t:\002\030\001\"(\n\022TaskCreateResponse\022\016\n\006j" + - "ob_id\030\001 \001(\t:\002\030\001\"7\n\016TaskGetRequest\022\021\n\ttas" + - "k_type\030\001 \001(\t\022\016\n\006job_id\030\002 \001(\t:\002\030\001\"i\n\017Task" + - "GetResponse\022&\n\005state\030\001 \001(\0162\027.flyteidl.se" + - "rvice.State\022*\n\007outputs\030\002 \001(\0132\031.flyteidl." + - "core.LiteralMap:\002\030\001\":\n\021TaskDeleteRequest" + - "\022\021\n\ttask_type\030\001 \001(\t\022\016\n\006job_id\030\002 \001(\t:\002\030\001\"" + - "\030\n\022TaskDeleteResponse:\002\030\001*b\n\005State\022\025\n\021RE" + - "TRYABLE_FAILURE\020\000\022\025\n\021PERMANENT_FAILURE\020\001" + - "\022\013\n\007PENDING\020\002\022\013\n\007RUNNING\020\003\022\r\n\tSUCCEEDED\020" + - "\004\032\002\030\0012\250\002\n\025ExternalPluginService\022\\\n\nCreat" + - "eTask\022#.flyteidl.service.TaskCreateReque" + - "st\032$.flyteidl.service.TaskCreateResponse" + - "\"\003\210\002\001\022S\n\007GetTask\022 .flyteidl.service.Task" + - "GetRequest\032!.flyteidl.service.TaskGetRes" + - "ponse\"\003\210\002\001\022\\\n\nDeleteTask\022#.flyteidl.serv" + - "ice.TaskDeleteRequest\032$.flyteidl.service" + - ".TaskDeleteResponse\"\003\210\002\001B?Z=github.com/f" + - "lyteorg/flyte/flyteidl/gen/pb-go/flyteid" + - "l/serviceb\006proto3" + "oto\"\210\001\n\021TaskCreateRequest\022)\n\006inputs\030\001 \001(" + + "\0132\031.flyteidl.core.LiteralMap\022-\n\010template" + + "\030\002 \001(\0132\033.flyteidl.core.TaskTemplate\022\025\n\ro" + + "utput_prefix\030\003 \001(\t:\002\030\001\"(\n\022TaskCreateResp" + + "onse\022\016\n\006job_id\030\001 \001(\t:\002\030\001\"7\n\016TaskGetReque" + + "st\022\021\n\ttask_type\030\001 \001(\t\022\016\n\006job_id\030\002 \001(\t:\002\030" + + "\001\"i\n\017TaskGetResponse\022&\n\005state\030\001 \001(\0162\027.fl" + + "yteidl.service.State\022*\n\007outputs\030\002 \001(\0132\031." + + "flyteidl.core.LiteralMap:\002\030\001\":\n\021TaskDele" + + "teRequest\022\021\n\ttask_type\030\001 \001(\t\022\016\n\006job_id\030\002" + + " \001(\t:\002\030\001\"\030\n\022TaskDeleteResponse:\002\030\001*b\n\005St" + + "ate\022\025\n\021RETRYABLE_FAILURE\020\000\022\025\n\021PERMANENT_" + + "FAILURE\020\001\022\013\n\007PENDING\020\002\022\013\n\007RUNNING\020\003\022\r\n\tS" + + "UCCEEDED\020\004\032\002\030\0012\250\002\n\025ExternalPluginService" + + "\022\\\n\nCreateTask\022#.flyteidl.service.TaskCr" + + "eateRequest\032$.flyteidl.service.TaskCreat" + + "eResponse\"\003\210\002\001\022S\n\007GetTask\022 .flyteidl.ser" + + "vice.TaskGetRequest\032!.flyteidl.service.T" + + "askGetResponse\"\003\210\002\001\022\\\n\nDeleteTask\022#.flyt" + + "eidl.service.TaskDeleteRequest\032$.flyteid" + + "l.service.TaskDeleteResponse\"\003\210\002\001B?Z=git" + + "hub.com/flyteorg/flyte/flyteidl/gen/pb-g" + + "o/flyteidl/serviceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -4696,7 +4695,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( new com.google.protobuf.Descriptors.FileDescriptor[] { flyteidl.core.Literals.getDescriptor(), flyteidl.core.Tasks.getDescriptor(), - flyteidl.core.Interface.getDescriptor(), }, assigner); internal_static_flyteidl_service_TaskCreateRequest_descriptor = getDescriptor().getMessageTypes().get(0); @@ -4736,7 +4734,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( new java.lang.String[] { }); flyteidl.core.Literals.getDescriptor(); flyteidl.core.Tasks.getDescriptor(); - flyteidl.core.Interface.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index af564753d4..add3966bb7 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -586,6 +586,9 @@ export namespace flyteidl { /** Identifier version */ version?: (string|null); + + /** Identifier org */ + org?: (string|null); } /** Represents an Identifier. */ @@ -612,6 +615,9 @@ export namespace flyteidl { /** Identifier version. */ public version: string; + /** Identifier org. */ + public org: string; + /** * Creates a new Identifier instance using the specified properties. * @param [properties] Properties to set @@ -656,6 +662,9 @@ export namespace flyteidl { /** WorkflowExecutionIdentifier name */ name?: (string|null); + + /** WorkflowExecutionIdentifier org */ + org?: (string|null); } /** Represents a WorkflowExecutionIdentifier. */ @@ -676,6 +685,9 @@ export namespace flyteidl { /** WorkflowExecutionIdentifier name. */ public name: string; + /** WorkflowExecutionIdentifier org. */ + public org: string; + /** * Creates a new WorkflowExecutionIdentifier instance using the specified properties. * @param [properties] Properties to set @@ -9604,6 +9616,9 @@ export namespace flyteidl { /** NamedEntityIdentifier name */ name?: (string|null); + + /** NamedEntityIdentifier org */ + org?: (string|null); } /** Represents a NamedEntityIdentifier. */ @@ -9624,6 +9639,9 @@ export namespace flyteidl { /** NamedEntityIdentifier name. */ public name: string; + /** NamedEntityIdentifier org. */ + public org: string; + /** * Creates a new NamedEntityIdentifier instance using the specified properties. * @param [properties] Properties to set @@ -9873,6 +9891,9 @@ export namespace flyteidl { /** NamedEntityIdentifierListRequest filters */ filters?: (string|null); + + /** NamedEntityIdentifierListRequest org */ + org?: (string|null); } /** Represents a NamedEntityIdentifierListRequest. */ @@ -9902,6 +9923,9 @@ export namespace flyteidl { /** NamedEntityIdentifierListRequest filters. */ public filters: string; + /** NamedEntityIdentifierListRequest org. */ + public org: string; + /** * Creates a new NamedEntityIdentifierListRequest instance using the specified properties. * @param [properties] Properties to set @@ -9958,6 +9982,9 @@ export namespace flyteidl { /** NamedEntityListRequest filters */ filters?: (string|null); + + /** NamedEntityListRequest org */ + org?: (string|null); } /** Represents a NamedEntityListRequest. */ @@ -9990,6 +10017,9 @@ export namespace flyteidl { /** NamedEntityListRequest filters. */ public filters: string; + /** NamedEntityListRequest org. */ + public org: string; + /** * Creates a new NamedEntityListRequest instance using the specified properties. * @param [properties] Properties to set @@ -11895,6 +11925,9 @@ export namespace flyteidl { /** ExecutionCreateRequest inputs */ inputs?: (flyteidl.core.ILiteralMap|null); + + /** ExecutionCreateRequest org */ + org?: (string|null); } /** Represents an ExecutionCreateRequest. */ @@ -11921,6 +11954,9 @@ export namespace flyteidl { /** ExecutionCreateRequest inputs. */ public inputs?: (flyteidl.core.ILiteralMap|null); + /** ExecutionCreateRequest org. */ + public org: string; + /** * Creates a new ExecutionCreateRequest instance using the specified properties. * @param [properties] Properties to set @@ -14183,6 +14219,9 @@ export namespace flyteidl { /** ActiveLaunchPlanListRequest sortBy */ sortBy?: (flyteidl.admin.ISort|null); + + /** ActiveLaunchPlanListRequest org */ + org?: (string|null); } /** Represents an ActiveLaunchPlanListRequest. */ @@ -14209,6 +14248,9 @@ export namespace flyteidl { /** ActiveLaunchPlanListRequest sortBy. */ public sortBy?: (flyteidl.admin.ISort|null); + /** ActiveLaunchPlanListRequest org. */ + public org: string; + /** * Creates a new ActiveLaunchPlanListRequest instance using the specified properties. * @param [properties] Properties to set @@ -15073,6 +15115,9 @@ export namespace flyteidl { /** MatchableAttributesConfiguration launchPlan */ launchPlan?: (string|null); + + /** MatchableAttributesConfiguration org */ + org?: (string|null); } /** Represents a MatchableAttributesConfiguration. */ @@ -15099,6 +15144,9 @@ export namespace flyteidl { /** MatchableAttributesConfiguration launchPlan. */ public launchPlan: string; + /** MatchableAttributesConfiguration org. */ + public org: string; + /** * Creates a new MatchableAttributesConfiguration instance using the specified properties. * @param [properties] Properties to set @@ -16216,6 +16264,64 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } + /** Properties of a ProjectIdentifier. */ + interface IProjectIdentifier { + + /** ProjectIdentifier id */ + id?: (string|null); + + /** ProjectIdentifier org */ + org?: (string|null); + } + + /** Represents a ProjectIdentifier. */ + class ProjectIdentifier implements IProjectIdentifier { + + /** + * Constructs a new ProjectIdentifier. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.admin.IProjectIdentifier); + + /** ProjectIdentifier id. */ + public id: string; + + /** ProjectIdentifier org. */ + public org: string; + + /** + * Creates a new ProjectIdentifier instance using the specified properties. + * @param [properties] Properties to set + * @returns ProjectIdentifier instance + */ + public static create(properties?: flyteidl.admin.IProjectIdentifier): flyteidl.admin.ProjectIdentifier; + + /** + * Encodes the specified ProjectIdentifier message. Does not implicitly {@link flyteidl.admin.ProjectIdentifier.verify|verify} messages. + * @param message ProjectIdentifier message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.admin.IProjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ProjectIdentifier message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ProjectIdentifier + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ProjectIdentifier; + + /** + * Verifies a ProjectIdentifier message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Properties of a Project. */ interface IProject { @@ -16236,6 +16342,9 @@ export namespace flyteidl { /** Project state */ state?: (flyteidl.admin.Project.ProjectState|null); + + /** Project identifier */ + identifier?: (flyteidl.admin.IProjectIdentifier|null); } /** Represents a Project. */ @@ -16265,6 +16374,9 @@ export namespace flyteidl { /** Project state. */ public state: flyteidl.admin.Project.ProjectState; + /** Project identifier. */ + public identifier?: (flyteidl.admin.IProjectIdentifier|null); + /** * Creates a new Project instance using the specified properties. * @param [properties] Properties to set @@ -16588,6 +16700,9 @@ export namespace flyteidl { /** ProjectAttributes matchingAttributes */ matchingAttributes?: (flyteidl.admin.IMatchingAttributes|null); + + /** ProjectAttributes org */ + org?: (string|null); } /** Represents a ProjectAttributes. */ @@ -16605,6 +16720,9 @@ export namespace flyteidl { /** ProjectAttributes matchingAttributes. */ public matchingAttributes?: (flyteidl.admin.IMatchingAttributes|null); + /** ProjectAttributes org. */ + public org: string; + /** * Creates a new ProjectAttributes instance using the specified properties. * @param [properties] Properties to set @@ -16744,6 +16862,9 @@ export namespace flyteidl { /** ProjectAttributesGetRequest resourceType */ resourceType?: (flyteidl.admin.MatchableResource|null); + + /** ProjectAttributesGetRequest org */ + org?: (string|null); } /** Represents a ProjectAttributesGetRequest. */ @@ -16761,6 +16882,9 @@ export namespace flyteidl { /** ProjectAttributesGetRequest resourceType. */ public resourceType: flyteidl.admin.MatchableResource; + /** ProjectAttributesGetRequest org. */ + public org: string; + /** * Creates a new ProjectAttributesGetRequest instance using the specified properties. * @param [properties] Properties to set @@ -16854,6 +16978,9 @@ export namespace flyteidl { /** ProjectAttributesDeleteRequest resourceType */ resourceType?: (flyteidl.admin.MatchableResource|null); + + /** ProjectAttributesDeleteRequest org */ + org?: (string|null); } /** Represents a ProjectAttributesDeleteRequest. */ @@ -16871,6 +16998,9 @@ export namespace flyteidl { /** ProjectAttributesDeleteRequest resourceType. */ public resourceType: flyteidl.admin.MatchableResource; + /** ProjectAttributesDeleteRequest org. */ + public org: string; + /** * Creates a new ProjectAttributesDeleteRequest instance using the specified properties. * @param [properties] Properties to set @@ -16961,6 +17091,9 @@ export namespace flyteidl { /** ProjectDomainAttributes matchingAttributes */ matchingAttributes?: (flyteidl.admin.IMatchingAttributes|null); + + /** ProjectDomainAttributes org */ + org?: (string|null); } /** Represents a ProjectDomainAttributes. */ @@ -16981,6 +17114,9 @@ export namespace flyteidl { /** ProjectDomainAttributes matchingAttributes. */ public matchingAttributes?: (flyteidl.admin.IMatchingAttributes|null); + /** ProjectDomainAttributes org. */ + public org: string; + /** * Creates a new ProjectDomainAttributes instance using the specified properties. * @param [properties] Properties to set @@ -17123,6 +17259,9 @@ export namespace flyteidl { /** ProjectDomainAttributesGetRequest resourceType */ resourceType?: (flyteidl.admin.MatchableResource|null); + + /** ProjectDomainAttributesGetRequest org */ + org?: (string|null); } /** Represents a ProjectDomainAttributesGetRequest. */ @@ -17143,6 +17282,9 @@ export namespace flyteidl { /** ProjectDomainAttributesGetRequest resourceType. */ public resourceType: flyteidl.admin.MatchableResource; + /** ProjectDomainAttributesGetRequest org. */ + public org: string; + /** * Creates a new ProjectDomainAttributesGetRequest instance using the specified properties. * @param [properties] Properties to set @@ -17239,6 +17381,9 @@ export namespace flyteidl { /** ProjectDomainAttributesDeleteRequest resourceType */ resourceType?: (flyteidl.admin.MatchableResource|null); + + /** ProjectDomainAttributesDeleteRequest org */ + org?: (string|null); } /** Represents a ProjectDomainAttributesDeleteRequest. */ @@ -17259,6 +17404,9 @@ export namespace flyteidl { /** ProjectDomainAttributesDeleteRequest resourceType. */ public resourceType: flyteidl.admin.MatchableResource; + /** ProjectDomainAttributesDeleteRequest org. */ + public org: string; + /** * Creates a new ProjectDomainAttributesDeleteRequest instance using the specified properties. * @param [properties] Properties to set @@ -19310,6 +19458,9 @@ export namespace flyteidl { /** WorkflowAttributes matchingAttributes */ matchingAttributes?: (flyteidl.admin.IMatchingAttributes|null); + + /** WorkflowAttributes org */ + org?: (string|null); } /** Represents a WorkflowAttributes. */ @@ -19333,6 +19484,9 @@ export namespace flyteidl { /** WorkflowAttributes matchingAttributes. */ public matchingAttributes?: (flyteidl.admin.IMatchingAttributes|null); + /** WorkflowAttributes org. */ + public org: string; + /** * Creates a new WorkflowAttributes instance using the specified properties. * @param [properties] Properties to set @@ -19478,6 +19632,9 @@ export namespace flyteidl { /** WorkflowAttributesGetRequest resourceType */ resourceType?: (flyteidl.admin.MatchableResource|null); + + /** WorkflowAttributesGetRequest org */ + org?: (string|null); } /** Represents a WorkflowAttributesGetRequest. */ @@ -19501,6 +19658,9 @@ export namespace flyteidl { /** WorkflowAttributesGetRequest resourceType. */ public resourceType: flyteidl.admin.MatchableResource; + /** WorkflowAttributesGetRequest org. */ + public org: string; + /** * Creates a new WorkflowAttributesGetRequest instance using the specified properties. * @param [properties] Properties to set @@ -19600,6 +19760,9 @@ export namespace flyteidl { /** WorkflowAttributesDeleteRequest resourceType */ resourceType?: (flyteidl.admin.MatchableResource|null); + + /** WorkflowAttributesDeleteRequest org */ + org?: (string|null); } /** Represents a WorkflowAttributesDeleteRequest. */ @@ -19623,6 +19786,9 @@ export namespace flyteidl { /** WorkflowAttributesDeleteRequest resourceType. */ public resourceType: flyteidl.admin.MatchableResource; + /** WorkflowAttributesDeleteRequest org. */ + public org: string; + /** * Creates a new WorkflowAttributesDeleteRequest instance using the specified properties. * @param [properties] Properties to set diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index 8375c630e7..78392bf735 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -1399,6 +1399,7 @@ * @property {string|null} [domain] Identifier domain * @property {string|null} [name] Identifier name * @property {string|null} [version] Identifier version + * @property {string|null} [org] Identifier org */ /** @@ -1456,6 +1457,14 @@ */ Identifier.prototype.version = ""; + /** + * Identifier org. + * @member {string} org + * @memberof flyteidl.core.Identifier + * @instance + */ + Identifier.prototype.org = ""; + /** * Creates a new Identifier instance using the specified properties. * @function create @@ -1490,6 +1499,8 @@ writer.uint32(/* id 4, wireType 2 =*/34).string(message.name); if (message.version != null && message.hasOwnProperty("version")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.version); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.org); return writer; }; @@ -1526,6 +1537,9 @@ case 5: message.version = reader.string(); break; + case 6: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -1568,6 +1582,9 @@ if (message.version != null && message.hasOwnProperty("version")) if (!$util.isString(message.version)) return "version: string expected"; + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -1583,6 +1600,7 @@ * @property {string|null} [project] WorkflowExecutionIdentifier project * @property {string|null} [domain] WorkflowExecutionIdentifier domain * @property {string|null} [name] WorkflowExecutionIdentifier name + * @property {string|null} [org] WorkflowExecutionIdentifier org */ /** @@ -1624,6 +1642,14 @@ */ WorkflowExecutionIdentifier.prototype.name = ""; + /** + * WorkflowExecutionIdentifier org. + * @member {string} org + * @memberof flyteidl.core.WorkflowExecutionIdentifier + * @instance + */ + WorkflowExecutionIdentifier.prototype.org = ""; + /** * Creates a new WorkflowExecutionIdentifier instance using the specified properties. * @function create @@ -1654,6 +1680,8 @@ writer.uint32(/* id 2, wireType 2 =*/18).string(message.domain); if (message.name != null && message.hasOwnProperty("name")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.name); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.org); return writer; }; @@ -1684,6 +1712,9 @@ case 4: message.name = reader.string(); break; + case 5: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -1712,6 +1743,9 @@ if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -23445,6 +23479,7 @@ * @property {string|null} [project] NamedEntityIdentifier project * @property {string|null} [domain] NamedEntityIdentifier domain * @property {string|null} [name] NamedEntityIdentifier name + * @property {string|null} [org] NamedEntityIdentifier org */ /** @@ -23486,6 +23521,14 @@ */ NamedEntityIdentifier.prototype.name = ""; + /** + * NamedEntityIdentifier org. + * @member {string} org + * @memberof flyteidl.admin.NamedEntityIdentifier + * @instance + */ + NamedEntityIdentifier.prototype.org = ""; + /** * Creates a new NamedEntityIdentifier instance using the specified properties. * @function create @@ -23516,6 +23559,8 @@ writer.uint32(/* id 2, wireType 2 =*/18).string(message.domain); if (message.name != null && message.hasOwnProperty("name")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.org); return writer; }; @@ -23546,6 +23591,9 @@ case 3: message.name = reader.string(); break; + case 4: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -23574,6 +23622,9 @@ if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -24043,6 +24094,7 @@ * @property {string|null} [token] NamedEntityIdentifierListRequest token * @property {flyteidl.admin.ISort|null} [sortBy] NamedEntityIdentifierListRequest sortBy * @property {string|null} [filters] NamedEntityIdentifierListRequest filters + * @property {string|null} [org] NamedEntityIdentifierListRequest org */ /** @@ -24108,6 +24160,14 @@ */ NamedEntityIdentifierListRequest.prototype.filters = ""; + /** + * NamedEntityIdentifierListRequest org. + * @member {string} org + * @memberof flyteidl.admin.NamedEntityIdentifierListRequest + * @instance + */ + NamedEntityIdentifierListRequest.prototype.org = ""; + /** * Creates a new NamedEntityIdentifierListRequest instance using the specified properties. * @function create @@ -24144,6 +24204,8 @@ $root.flyteidl.admin.Sort.encode(message.sortBy, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); if (message.filters != null && message.hasOwnProperty("filters")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.filters); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.org); return writer; }; @@ -24183,6 +24245,9 @@ case 6: message.filters = reader.string(); break; + case 7: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -24222,6 +24287,9 @@ if (message.filters != null && message.hasOwnProperty("filters")) if (!$util.isString(message.filters)) return "filters: string expected"; + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -24241,6 +24309,7 @@ * @property {string|null} [token] NamedEntityListRequest token * @property {flyteidl.admin.ISort|null} [sortBy] NamedEntityListRequest sortBy * @property {string|null} [filters] NamedEntityListRequest filters + * @property {string|null} [org] NamedEntityListRequest org */ /** @@ -24314,6 +24383,14 @@ */ NamedEntityListRequest.prototype.filters = ""; + /** + * NamedEntityListRequest org. + * @member {string} org + * @memberof flyteidl.admin.NamedEntityListRequest + * @instance + */ + NamedEntityListRequest.prototype.org = ""; + /** * Creates a new NamedEntityListRequest instance using the specified properties. * @function create @@ -24352,6 +24429,8 @@ $root.flyteidl.admin.Sort.encode(message.sortBy, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); if (message.filters != null && message.hasOwnProperty("filters")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.filters); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.org); return writer; }; @@ -24394,6 +24473,9 @@ case 7: message.filters = reader.string(); break; + case 8: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -24444,6 +24526,9 @@ if (message.filters != null && message.hasOwnProperty("filters")) if (!$util.isString(message.filters)) return "filters: string expected"; + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -28758,6 +28843,7 @@ * @property {string|null} [name] ExecutionCreateRequest name * @property {flyteidl.admin.IExecutionSpec|null} [spec] ExecutionCreateRequest spec * @property {flyteidl.core.ILiteralMap|null} [inputs] ExecutionCreateRequest inputs + * @property {string|null} [org] ExecutionCreateRequest org */ /** @@ -28815,6 +28901,14 @@ */ ExecutionCreateRequest.prototype.inputs = null; + /** + * ExecutionCreateRequest org. + * @member {string} org + * @memberof flyteidl.admin.ExecutionCreateRequest + * @instance + */ + ExecutionCreateRequest.prototype.org = ""; + /** * Creates a new ExecutionCreateRequest instance using the specified properties. * @function create @@ -28849,6 +28943,8 @@ $root.flyteidl.admin.ExecutionSpec.encode(message.spec, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); if (message.inputs != null && message.hasOwnProperty("inputs")) $root.flyteidl.core.LiteralMap.encode(message.inputs, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.org); return writer; }; @@ -28885,6 +28981,9 @@ case 5: message.inputs = $root.flyteidl.core.LiteralMap.decode(reader, reader.uint32()); break; + case 6: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -28923,6 +29022,9 @@ if (error) return "inputs." + error; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -34266,6 +34368,7 @@ * @property {number|null} [limit] ActiveLaunchPlanListRequest limit * @property {string|null} [token] ActiveLaunchPlanListRequest token * @property {flyteidl.admin.ISort|null} [sortBy] ActiveLaunchPlanListRequest sortBy + * @property {string|null} [org] ActiveLaunchPlanListRequest org */ /** @@ -34323,6 +34426,14 @@ */ ActiveLaunchPlanListRequest.prototype.sortBy = null; + /** + * ActiveLaunchPlanListRequest org. + * @member {string} org + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest + * @instance + */ + ActiveLaunchPlanListRequest.prototype.org = ""; + /** * Creates a new ActiveLaunchPlanListRequest instance using the specified properties. * @function create @@ -34357,6 +34468,8 @@ writer.uint32(/* id 4, wireType 2 =*/34).string(message.token); if (message.sortBy != null && message.hasOwnProperty("sortBy")) $root.flyteidl.admin.Sort.encode(message.sortBy, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.org); return writer; }; @@ -34393,6 +34506,9 @@ case 5: message.sortBy = $root.flyteidl.admin.Sort.decode(reader, reader.uint32()); break; + case 6: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -34429,6 +34545,9 @@ if (error) return "sortBy." + error; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -36429,6 +36548,7 @@ * @property {string|null} [project] MatchableAttributesConfiguration project * @property {string|null} [workflow] MatchableAttributesConfiguration workflow * @property {string|null} [launchPlan] MatchableAttributesConfiguration launchPlan + * @property {string|null} [org] MatchableAttributesConfiguration org */ /** @@ -36486,6 +36606,14 @@ */ MatchableAttributesConfiguration.prototype.launchPlan = ""; + /** + * MatchableAttributesConfiguration org. + * @member {string} org + * @memberof flyteidl.admin.MatchableAttributesConfiguration + * @instance + */ + MatchableAttributesConfiguration.prototype.org = ""; + /** * Creates a new MatchableAttributesConfiguration instance using the specified properties. * @function create @@ -36520,6 +36648,8 @@ writer.uint32(/* id 4, wireType 2 =*/34).string(message.workflow); if (message.launchPlan != null && message.hasOwnProperty("launchPlan")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.launchPlan); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.org); return writer; }; @@ -36556,6 +36686,9 @@ case 5: message.launchPlan = reader.string(); break; + case 6: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -36592,6 +36725,9 @@ if (message.launchPlan != null && message.hasOwnProperty("launchPlan")) if (!$util.isString(message.launchPlan)) return "launchPlan: string expected"; + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -39218,6 +39354,133 @@ return Domain; })(); + admin.ProjectIdentifier = (function() { + + /** + * Properties of a ProjectIdentifier. + * @memberof flyteidl.admin + * @interface IProjectIdentifier + * @property {string|null} [id] ProjectIdentifier id + * @property {string|null} [org] ProjectIdentifier org + */ + + /** + * Constructs a new ProjectIdentifier. + * @memberof flyteidl.admin + * @classdesc Represents a ProjectIdentifier. + * @implements IProjectIdentifier + * @constructor + * @param {flyteidl.admin.IProjectIdentifier=} [properties] Properties to set + */ + function ProjectIdentifier(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ProjectIdentifier id. + * @member {string} id + * @memberof flyteidl.admin.ProjectIdentifier + * @instance + */ + ProjectIdentifier.prototype.id = ""; + + /** + * ProjectIdentifier org. + * @member {string} org + * @memberof flyteidl.admin.ProjectIdentifier + * @instance + */ + ProjectIdentifier.prototype.org = ""; + + /** + * Creates a new ProjectIdentifier instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ProjectIdentifier + * @static + * @param {flyteidl.admin.IProjectIdentifier=} [properties] Properties to set + * @returns {flyteidl.admin.ProjectIdentifier} ProjectIdentifier instance + */ + ProjectIdentifier.create = function create(properties) { + return new ProjectIdentifier(properties); + }; + + /** + * Encodes the specified ProjectIdentifier message. Does not implicitly {@link flyteidl.admin.ProjectIdentifier.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ProjectIdentifier + * @static + * @param {flyteidl.admin.IProjectIdentifier} message ProjectIdentifier message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ProjectIdentifier.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && message.hasOwnProperty("id")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.id); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.org); + return writer; + }; + + /** + * Decodes a ProjectIdentifier message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ProjectIdentifier + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ProjectIdentifier} ProjectIdentifier + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ProjectIdentifier.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ProjectIdentifier(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.string(); + break; + case 2: + message.org = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a ProjectIdentifier message. + * @function verify + * @memberof flyteidl.admin.ProjectIdentifier + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ProjectIdentifier.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isString(message.id)) + return "id: string expected"; + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; + return null; + }; + + return ProjectIdentifier; + })(); + admin.Project = (function() { /** @@ -39230,6 +39493,7 @@ * @property {string|null} [description] Project description * @property {flyteidl.admin.ILabels|null} [labels] Project labels * @property {flyteidl.admin.Project.ProjectState|null} [state] Project state + * @property {flyteidl.admin.IProjectIdentifier|null} [identifier] Project identifier */ /** @@ -39296,6 +39560,14 @@ */ Project.prototype.state = 0; + /** + * Project identifier. + * @member {flyteidl.admin.IProjectIdentifier|null|undefined} identifier + * @memberof flyteidl.admin.Project + * @instance + */ + Project.prototype.identifier = null; + /** * Creates a new Project instance using the specified properties. * @function create @@ -39333,6 +39605,8 @@ $root.flyteidl.admin.Labels.encode(message.labels, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); if (message.state != null && message.hasOwnProperty("state")) writer.uint32(/* id 6, wireType 0 =*/48).int32(message.state); + if (message.identifier != null && message.hasOwnProperty("identifier")) + $root.flyteidl.admin.ProjectIdentifier.encode(message.identifier, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; @@ -39374,6 +39648,9 @@ case 6: message.state = reader.int32(); break; + case 7: + message.identifier = $root.flyteidl.admin.ProjectIdentifier.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -39425,6 +39702,11 @@ case 2: break; } + if (message.identifier != null && message.hasOwnProperty("identifier")) { + var error = $root.flyteidl.admin.ProjectIdentifier.verify(message.identifier); + if (error) + return "identifier." + error; + } return null; }; @@ -40053,6 +40335,7 @@ * @interface IProjectAttributes * @property {string|null} [project] ProjectAttributes project * @property {flyteidl.admin.IMatchingAttributes|null} [matchingAttributes] ProjectAttributes matchingAttributes + * @property {string|null} [org] ProjectAttributes org */ /** @@ -40086,6 +40369,14 @@ */ ProjectAttributes.prototype.matchingAttributes = null; + /** + * ProjectAttributes org. + * @member {string} org + * @memberof flyteidl.admin.ProjectAttributes + * @instance + */ + ProjectAttributes.prototype.org = ""; + /** * Creates a new ProjectAttributes instance using the specified properties. * @function create @@ -40114,6 +40405,8 @@ writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); if (message.matchingAttributes != null && message.hasOwnProperty("matchingAttributes")) $root.flyteidl.admin.MatchingAttributes.encode(message.matchingAttributes, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.org); return writer; }; @@ -40141,6 +40434,9 @@ case 2: message.matchingAttributes = $root.flyteidl.admin.MatchingAttributes.decode(reader, reader.uint32()); break; + case 3: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -40168,6 +40464,9 @@ if (error) return "matchingAttributes." + error; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -40387,6 +40686,7 @@ * @interface IProjectAttributesGetRequest * @property {string|null} [project] ProjectAttributesGetRequest project * @property {flyteidl.admin.MatchableResource|null} [resourceType] ProjectAttributesGetRequest resourceType + * @property {string|null} [org] ProjectAttributesGetRequest org */ /** @@ -40420,6 +40720,14 @@ */ ProjectAttributesGetRequest.prototype.resourceType = 0; + /** + * ProjectAttributesGetRequest org. + * @member {string} org + * @memberof flyteidl.admin.ProjectAttributesGetRequest + * @instance + */ + ProjectAttributesGetRequest.prototype.org = ""; + /** * Creates a new ProjectAttributesGetRequest instance using the specified properties. * @function create @@ -40448,6 +40756,8 @@ writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); if (message.resourceType != null && message.hasOwnProperty("resourceType")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.resourceType); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.org); return writer; }; @@ -40475,6 +40785,9 @@ case 2: message.resourceType = reader.int32(); break; + case 3: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -40511,6 +40824,9 @@ case 7: break; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -40637,6 +40953,7 @@ * @interface IProjectAttributesDeleteRequest * @property {string|null} [project] ProjectAttributesDeleteRequest project * @property {flyteidl.admin.MatchableResource|null} [resourceType] ProjectAttributesDeleteRequest resourceType + * @property {string|null} [org] ProjectAttributesDeleteRequest org */ /** @@ -40670,6 +40987,14 @@ */ ProjectAttributesDeleteRequest.prototype.resourceType = 0; + /** + * ProjectAttributesDeleteRequest org. + * @member {string} org + * @memberof flyteidl.admin.ProjectAttributesDeleteRequest + * @instance + */ + ProjectAttributesDeleteRequest.prototype.org = ""; + /** * Creates a new ProjectAttributesDeleteRequest instance using the specified properties. * @function create @@ -40698,6 +41023,8 @@ writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); if (message.resourceType != null && message.hasOwnProperty("resourceType")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.resourceType); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.org); return writer; }; @@ -40725,6 +41052,9 @@ case 2: message.resourceType = reader.int32(); break; + case 3: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -40761,6 +41091,9 @@ case 7: break; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -40869,6 +41202,7 @@ * @property {string|null} [project] ProjectDomainAttributes project * @property {string|null} [domain] ProjectDomainAttributes domain * @property {flyteidl.admin.IMatchingAttributes|null} [matchingAttributes] ProjectDomainAttributes matchingAttributes + * @property {string|null} [org] ProjectDomainAttributes org */ /** @@ -40910,6 +41244,14 @@ */ ProjectDomainAttributes.prototype.matchingAttributes = null; + /** + * ProjectDomainAttributes org. + * @member {string} org + * @memberof flyteidl.admin.ProjectDomainAttributes + * @instance + */ + ProjectDomainAttributes.prototype.org = ""; + /** * Creates a new ProjectDomainAttributes instance using the specified properties. * @function create @@ -40940,6 +41282,8 @@ writer.uint32(/* id 2, wireType 2 =*/18).string(message.domain); if (message.matchingAttributes != null && message.hasOwnProperty("matchingAttributes")) $root.flyteidl.admin.MatchingAttributes.encode(message.matchingAttributes, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.org); return writer; }; @@ -40970,6 +41314,9 @@ case 3: message.matchingAttributes = $root.flyteidl.admin.MatchingAttributes.decode(reader, reader.uint32()); break; + case 4: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -41000,6 +41347,9 @@ if (error) return "matchingAttributes." + error; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -41220,6 +41570,7 @@ * @property {string|null} [project] ProjectDomainAttributesGetRequest project * @property {string|null} [domain] ProjectDomainAttributesGetRequest domain * @property {flyteidl.admin.MatchableResource|null} [resourceType] ProjectDomainAttributesGetRequest resourceType + * @property {string|null} [org] ProjectDomainAttributesGetRequest org */ /** @@ -41261,6 +41612,14 @@ */ ProjectDomainAttributesGetRequest.prototype.resourceType = 0; + /** + * ProjectDomainAttributesGetRequest org. + * @member {string} org + * @memberof flyteidl.admin.ProjectDomainAttributesGetRequest + * @instance + */ + ProjectDomainAttributesGetRequest.prototype.org = ""; + /** * Creates a new ProjectDomainAttributesGetRequest instance using the specified properties. * @function create @@ -41291,6 +41650,8 @@ writer.uint32(/* id 2, wireType 2 =*/18).string(message.domain); if (message.resourceType != null && message.hasOwnProperty("resourceType")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.resourceType); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.org); return writer; }; @@ -41321,6 +41682,9 @@ case 3: message.resourceType = reader.int32(); break; + case 4: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -41360,6 +41724,9 @@ case 7: break; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -41487,6 +41854,7 @@ * @property {string|null} [project] ProjectDomainAttributesDeleteRequest project * @property {string|null} [domain] ProjectDomainAttributesDeleteRequest domain * @property {flyteidl.admin.MatchableResource|null} [resourceType] ProjectDomainAttributesDeleteRequest resourceType + * @property {string|null} [org] ProjectDomainAttributesDeleteRequest org */ /** @@ -41528,6 +41896,14 @@ */ ProjectDomainAttributesDeleteRequest.prototype.resourceType = 0; + /** + * ProjectDomainAttributesDeleteRequest org. + * @member {string} org + * @memberof flyteidl.admin.ProjectDomainAttributesDeleteRequest + * @instance + */ + ProjectDomainAttributesDeleteRequest.prototype.org = ""; + /** * Creates a new ProjectDomainAttributesDeleteRequest instance using the specified properties. * @function create @@ -41558,6 +41934,8 @@ writer.uint32(/* id 2, wireType 2 =*/18).string(message.domain); if (message.resourceType != null && message.hasOwnProperty("resourceType")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.resourceType); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.org); return writer; }; @@ -41588,6 +41966,9 @@ case 3: message.resourceType = reader.int32(); break; + case 4: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -41627,6 +42008,9 @@ case 7: break; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -46303,6 +46687,7 @@ * @property {string|null} [domain] WorkflowAttributes domain * @property {string|null} [workflow] WorkflowAttributes workflow * @property {flyteidl.admin.IMatchingAttributes|null} [matchingAttributes] WorkflowAttributes matchingAttributes + * @property {string|null} [org] WorkflowAttributes org */ /** @@ -46352,6 +46737,14 @@ */ WorkflowAttributes.prototype.matchingAttributes = null; + /** + * WorkflowAttributes org. + * @member {string} org + * @memberof flyteidl.admin.WorkflowAttributes + * @instance + */ + WorkflowAttributes.prototype.org = ""; + /** * Creates a new WorkflowAttributes instance using the specified properties. * @function create @@ -46384,6 +46777,8 @@ writer.uint32(/* id 3, wireType 2 =*/26).string(message.workflow); if (message.matchingAttributes != null && message.hasOwnProperty("matchingAttributes")) $root.flyteidl.admin.MatchingAttributes.encode(message.matchingAttributes, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.org); return writer; }; @@ -46417,6 +46812,9 @@ case 4: message.matchingAttributes = $root.flyteidl.admin.MatchingAttributes.decode(reader, reader.uint32()); break; + case 5: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -46450,6 +46848,9 @@ if (error) return "matchingAttributes." + error; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -46671,6 +47072,7 @@ * @property {string|null} [domain] WorkflowAttributesGetRequest domain * @property {string|null} [workflow] WorkflowAttributesGetRequest workflow * @property {flyteidl.admin.MatchableResource|null} [resourceType] WorkflowAttributesGetRequest resourceType + * @property {string|null} [org] WorkflowAttributesGetRequest org */ /** @@ -46720,6 +47122,14 @@ */ WorkflowAttributesGetRequest.prototype.resourceType = 0; + /** + * WorkflowAttributesGetRequest org. + * @member {string} org + * @memberof flyteidl.admin.WorkflowAttributesGetRequest + * @instance + */ + WorkflowAttributesGetRequest.prototype.org = ""; + /** * Creates a new WorkflowAttributesGetRequest instance using the specified properties. * @function create @@ -46752,6 +47162,8 @@ writer.uint32(/* id 3, wireType 2 =*/26).string(message.workflow); if (message.resourceType != null && message.hasOwnProperty("resourceType")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.resourceType); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.org); return writer; }; @@ -46785,6 +47197,9 @@ case 4: message.resourceType = reader.int32(); break; + case 5: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -46827,6 +47242,9 @@ case 7: break; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -46955,6 +47373,7 @@ * @property {string|null} [domain] WorkflowAttributesDeleteRequest domain * @property {string|null} [workflow] WorkflowAttributesDeleteRequest workflow * @property {flyteidl.admin.MatchableResource|null} [resourceType] WorkflowAttributesDeleteRequest resourceType + * @property {string|null} [org] WorkflowAttributesDeleteRequest org */ /** @@ -47004,6 +47423,14 @@ */ WorkflowAttributesDeleteRequest.prototype.resourceType = 0; + /** + * WorkflowAttributesDeleteRequest org. + * @member {string} org + * @memberof flyteidl.admin.WorkflowAttributesDeleteRequest + * @instance + */ + WorkflowAttributesDeleteRequest.prototype.org = ""; + /** * Creates a new WorkflowAttributesDeleteRequest instance using the specified properties. * @function create @@ -47036,6 +47463,8 @@ writer.uint32(/* id 3, wireType 2 =*/26).string(message.workflow); if (message.resourceType != null && message.hasOwnProperty("resourceType")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.resourceType); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.org); return writer; }; @@ -47069,6 +47498,9 @@ case 4: message.resourceType = reader.int32(); break; + case 5: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -47111,6 +47543,9 @@ case 7: break; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; diff --git a/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.py index 7c99413e09..c12fa17b0f 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.py @@ -17,7 +17,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lyteidl/admin/common.proto\x12\x0e\x66lyteidl.admin\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"]\n\x15NamedEntityIdentifier\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\"o\n\x13NamedEntityMetadata\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x36\n\x05state\x18\x02 \x01(\x0e\x32 .flyteidl.admin.NamedEntityStateR\x05state\"\xc7\x01\n\x0bNamedEntity\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12?\n\x08metadata\x18\x03 \x01(\x0b\x32#.flyteidl.admin.NamedEntityMetadataR\x08metadata\"\x82\x01\n\x04Sort\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\tdirection\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.Sort.DirectionR\tdirection\"*\n\tDirection\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\xc9\x01\n NamedEntityIdentifierListRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x14\n\x05limit\x18\x03 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x04 \x01(\tR\x05token\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x18\n\x07\x66ilters\x18\x06 \x01(\tR\x07\x66ilters\"\x81\x02\n\x16NamedEntityListRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x18\n\x07project\x18\x02 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x14\n\x05limit\x18\x04 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x05 \x01(\tR\x05token\x12-\n\x07sort_by\x18\x06 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x18\n\x07\x66ilters\x18\x07 \x01(\tR\x07\x66ilters\"t\n\x19NamedEntityIdentifierList\x12\x41\n\x08\x65ntities\x18\x01 \x03(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x08\x65ntities\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"`\n\x0fNamedEntityList\x12\x37\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x1b.flyteidl.admin.NamedEntityR\x08\x65ntities\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x90\x01\n\x15NamedEntityGetRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\"\xd4\x01\n\x18NamedEntityUpdateRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12?\n\x08metadata\x18\x03 \x01(\x0b\x32#.flyteidl.admin.NamedEntityMetadataR\x08metadata\"\x1b\n\x19NamedEntityUpdateResponse\"=\n\x10ObjectGetRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\"\xc1\x01\n\x13ResourceListRequest\x12\x35\n\x02id\x18\x01 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x04 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\">\n\x11\x45mailNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\"B\n\x15PagerDutyNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\">\n\x11SlackNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\"\x94\x02\n\x0cNotification\x12>\n\x06phases\x18\x01 \x03(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x06phases\x12\x39\n\x05\x65mail\x18\x02 \x01(\x0b\x32!.flyteidl.admin.EmailNotificationH\x00R\x05\x65mail\x12\x46\n\npager_duty\x18\x03 \x01(\x0b\x32%.flyteidl.admin.PagerDutyNotificationH\x00R\tpagerDuty\x12\x39\n\x05slack\x18\x04 \x01(\x0b\x32!.flyteidl.admin.SlackNotificationH\x00R\x05slackB\x06\n\x04type\"5\n\x07UrlBlob\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url\x12\x14\n\x05\x62ytes\x18\x02 \x01(\x03R\x05\x62ytes:\x02\x18\x01\"\x7f\n\x06Labels\x12:\n\x06values\x18\x01 \x03(\x0b\x32\".flyteidl.admin.Labels.ValuesEntryR\x06values\x1a\x39\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x89\x01\n\x0b\x41nnotations\x12?\n\x06values\x18\x01 \x03(\x0b\x32\'.flyteidl.admin.Annotations.ValuesEntryR\x06values\x1a\x39\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\";\n\x04\x45nvs\x12\x33\n\x06values\x18\x01 \x03(\x0b\x32\x1b.flyteidl.core.KeyValuePairR\x06values\"z\n\x08\x41uthRole\x12,\n\x12\x61ssumable_iam_role\x18\x01 \x01(\tR\x10\x61ssumableIamRole\x12<\n\x1akubernetes_service_account\x18\x02 \x01(\tR\x18kubernetesServiceAccount:\x02\x18\x01\"K\n\x13RawOutputDataConfig\x12\x34\n\x16output_location_prefix\x18\x01 \x01(\tR\x14outputLocationPrefix\"Q\n\tFlyteURLs\x12\x16\n\x06inputs\x18\x01 \x01(\tR\x06inputs\x12\x18\n\x07outputs\x18\x02 \x01(\tR\x07outputs\x12\x12\n\x04\x64\x65\x63k\x18\x03 \x01(\tR\x04\x64\x65\x63k*\\\n\x10NamedEntityState\x12\x17\n\x13NAMED_ENTITY_ACTIVE\x10\x00\x12\x19\n\x15NAMED_ENTITY_ARCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\x42\xb7\x01\n\x12\x63om.flyteidl.adminB\x0b\x43ommonProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lyteidl/admin/common.proto\x12\x0e\x66lyteidl.admin\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"o\n\x15NamedEntityIdentifier\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x10\n\x03org\x18\x04 \x01(\tR\x03org\"o\n\x13NamedEntityMetadata\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x36\n\x05state\x18\x02 \x01(\x0e\x32 .flyteidl.admin.NamedEntityStateR\x05state\"\xc7\x01\n\x0bNamedEntity\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12?\n\x08metadata\x18\x03 \x01(\x0b\x32#.flyteidl.admin.NamedEntityMetadataR\x08metadata\"\x82\x01\n\x04Sort\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\tdirection\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.Sort.DirectionR\tdirection\"*\n\tDirection\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\xdb\x01\n NamedEntityIdentifierListRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x14\n\x05limit\x18\x03 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x04 \x01(\tR\x05token\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x18\n\x07\x66ilters\x18\x06 \x01(\tR\x07\x66ilters\x12\x10\n\x03org\x18\x07 \x01(\tR\x03org\"\x93\x02\n\x16NamedEntityListRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x18\n\x07project\x18\x02 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x14\n\x05limit\x18\x04 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x05 \x01(\tR\x05token\x12-\n\x07sort_by\x18\x06 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x18\n\x07\x66ilters\x18\x07 \x01(\tR\x07\x66ilters\x12\x10\n\x03org\x18\x08 \x01(\tR\x03org\"t\n\x19NamedEntityIdentifierList\x12\x41\n\x08\x65ntities\x18\x01 \x03(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x08\x65ntities\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"`\n\x0fNamedEntityList\x12\x37\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x1b.flyteidl.admin.NamedEntityR\x08\x65ntities\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x90\x01\n\x15NamedEntityGetRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\"\xd4\x01\n\x18NamedEntityUpdateRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12?\n\x08metadata\x18\x03 \x01(\x0b\x32#.flyteidl.admin.NamedEntityMetadataR\x08metadata\"\x1b\n\x19NamedEntityUpdateResponse\"=\n\x10ObjectGetRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\"\xc1\x01\n\x13ResourceListRequest\x12\x35\n\x02id\x18\x01 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x04 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\">\n\x11\x45mailNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\"B\n\x15PagerDutyNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\">\n\x11SlackNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\"\x94\x02\n\x0cNotification\x12>\n\x06phases\x18\x01 \x03(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x06phases\x12\x39\n\x05\x65mail\x18\x02 \x01(\x0b\x32!.flyteidl.admin.EmailNotificationH\x00R\x05\x65mail\x12\x46\n\npager_duty\x18\x03 \x01(\x0b\x32%.flyteidl.admin.PagerDutyNotificationH\x00R\tpagerDuty\x12\x39\n\x05slack\x18\x04 \x01(\x0b\x32!.flyteidl.admin.SlackNotificationH\x00R\x05slackB\x06\n\x04type\"5\n\x07UrlBlob\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url\x12\x14\n\x05\x62ytes\x18\x02 \x01(\x03R\x05\x62ytes:\x02\x18\x01\"\x7f\n\x06Labels\x12:\n\x06values\x18\x01 \x03(\x0b\x32\".flyteidl.admin.Labels.ValuesEntryR\x06values\x1a\x39\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x89\x01\n\x0b\x41nnotations\x12?\n\x06values\x18\x01 \x03(\x0b\x32\'.flyteidl.admin.Annotations.ValuesEntryR\x06values\x1a\x39\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\";\n\x04\x45nvs\x12\x33\n\x06values\x18\x01 \x03(\x0b\x32\x1b.flyteidl.core.KeyValuePairR\x06values\"z\n\x08\x41uthRole\x12,\n\x12\x61ssumable_iam_role\x18\x01 \x01(\tR\x10\x61ssumableIamRole\x12<\n\x1akubernetes_service_account\x18\x02 \x01(\tR\x18kubernetesServiceAccount:\x02\x18\x01\"K\n\x13RawOutputDataConfig\x12\x34\n\x16output_location_prefix\x18\x01 \x01(\tR\x14outputLocationPrefix\"Q\n\tFlyteURLs\x12\x16\n\x06inputs\x18\x01 \x01(\tR\x06inputs\x12\x18\n\x07outputs\x18\x02 \x01(\tR\x07outputs\x12\x12\n\x04\x64\x65\x63k\x18\x03 \x01(\tR\x04\x64\x65\x63k*\\\n\x10NamedEntityState\x12\x17\n\x13NAMED_ENTITY_ACTIVE\x10\x00\x12\x19\n\x15NAMED_ENTITY_ARCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\x42\xb7\x01\n\x12\x63om.flyteidl.adminB\x0b\x43ommonProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -34,60 +34,60 @@ _ANNOTATIONS_VALUESENTRY._serialized_options = b'8\001' _AUTHROLE._options = None _AUTHROLE._serialized_options = b'\030\001' - _globals['_NAMEDENTITYSTATE']._serialized_start=3190 - _globals['_NAMEDENTITYSTATE']._serialized_end=3282 + _globals['_NAMEDENTITYSTATE']._serialized_start=3244 + _globals['_NAMEDENTITYSTATE']._serialized_end=3336 _globals['_NAMEDENTITYIDENTIFIER']._serialized_start=173 - _globals['_NAMEDENTITYIDENTIFIER']._serialized_end=266 - _globals['_NAMEDENTITYMETADATA']._serialized_start=268 - _globals['_NAMEDENTITYMETADATA']._serialized_end=379 - _globals['_NAMEDENTITY']._serialized_start=382 - _globals['_NAMEDENTITY']._serialized_end=581 - _globals['_SORT']._serialized_start=584 - _globals['_SORT']._serialized_end=714 - _globals['_SORT_DIRECTION']._serialized_start=672 - _globals['_SORT_DIRECTION']._serialized_end=714 - _globals['_NAMEDENTITYIDENTIFIERLISTREQUEST']._serialized_start=717 - _globals['_NAMEDENTITYIDENTIFIERLISTREQUEST']._serialized_end=918 - _globals['_NAMEDENTITYLISTREQUEST']._serialized_start=921 - _globals['_NAMEDENTITYLISTREQUEST']._serialized_end=1178 - _globals['_NAMEDENTITYIDENTIFIERLIST']._serialized_start=1180 - _globals['_NAMEDENTITYIDENTIFIERLIST']._serialized_end=1296 - _globals['_NAMEDENTITYLIST']._serialized_start=1298 - _globals['_NAMEDENTITYLIST']._serialized_end=1394 - _globals['_NAMEDENTITYGETREQUEST']._serialized_start=1397 - _globals['_NAMEDENTITYGETREQUEST']._serialized_end=1541 - _globals['_NAMEDENTITYUPDATEREQUEST']._serialized_start=1544 - _globals['_NAMEDENTITYUPDATEREQUEST']._serialized_end=1756 - _globals['_NAMEDENTITYUPDATERESPONSE']._serialized_start=1758 - _globals['_NAMEDENTITYUPDATERESPONSE']._serialized_end=1785 - _globals['_OBJECTGETREQUEST']._serialized_start=1787 - _globals['_OBJECTGETREQUEST']._serialized_end=1848 - _globals['_RESOURCELISTREQUEST']._serialized_start=1851 - _globals['_RESOURCELISTREQUEST']._serialized_end=2044 - _globals['_EMAILNOTIFICATION']._serialized_start=2046 - _globals['_EMAILNOTIFICATION']._serialized_end=2108 - _globals['_PAGERDUTYNOTIFICATION']._serialized_start=2110 - _globals['_PAGERDUTYNOTIFICATION']._serialized_end=2176 - _globals['_SLACKNOTIFICATION']._serialized_start=2178 - _globals['_SLACKNOTIFICATION']._serialized_end=2240 - _globals['_NOTIFICATION']._serialized_start=2243 - _globals['_NOTIFICATION']._serialized_end=2519 - _globals['_URLBLOB']._serialized_start=2521 - _globals['_URLBLOB']._serialized_end=2574 - _globals['_LABELS']._serialized_start=2576 - _globals['_LABELS']._serialized_end=2703 - _globals['_LABELS_VALUESENTRY']._serialized_start=2646 - _globals['_LABELS_VALUESENTRY']._serialized_end=2703 - _globals['_ANNOTATIONS']._serialized_start=2706 - _globals['_ANNOTATIONS']._serialized_end=2843 - _globals['_ANNOTATIONS_VALUESENTRY']._serialized_start=2646 - _globals['_ANNOTATIONS_VALUESENTRY']._serialized_end=2703 - _globals['_ENVS']._serialized_start=2845 - _globals['_ENVS']._serialized_end=2904 - _globals['_AUTHROLE']._serialized_start=2906 - _globals['_AUTHROLE']._serialized_end=3028 - _globals['_RAWOUTPUTDATACONFIG']._serialized_start=3030 - _globals['_RAWOUTPUTDATACONFIG']._serialized_end=3105 - _globals['_FLYTEURLS']._serialized_start=3107 - _globals['_FLYTEURLS']._serialized_end=3188 + _globals['_NAMEDENTITYIDENTIFIER']._serialized_end=284 + _globals['_NAMEDENTITYMETADATA']._serialized_start=286 + _globals['_NAMEDENTITYMETADATA']._serialized_end=397 + _globals['_NAMEDENTITY']._serialized_start=400 + _globals['_NAMEDENTITY']._serialized_end=599 + _globals['_SORT']._serialized_start=602 + _globals['_SORT']._serialized_end=732 + _globals['_SORT_DIRECTION']._serialized_start=690 + _globals['_SORT_DIRECTION']._serialized_end=732 + _globals['_NAMEDENTITYIDENTIFIERLISTREQUEST']._serialized_start=735 + _globals['_NAMEDENTITYIDENTIFIERLISTREQUEST']._serialized_end=954 + _globals['_NAMEDENTITYLISTREQUEST']._serialized_start=957 + _globals['_NAMEDENTITYLISTREQUEST']._serialized_end=1232 + _globals['_NAMEDENTITYIDENTIFIERLIST']._serialized_start=1234 + _globals['_NAMEDENTITYIDENTIFIERLIST']._serialized_end=1350 + _globals['_NAMEDENTITYLIST']._serialized_start=1352 + _globals['_NAMEDENTITYLIST']._serialized_end=1448 + _globals['_NAMEDENTITYGETREQUEST']._serialized_start=1451 + _globals['_NAMEDENTITYGETREQUEST']._serialized_end=1595 + _globals['_NAMEDENTITYUPDATEREQUEST']._serialized_start=1598 + _globals['_NAMEDENTITYUPDATEREQUEST']._serialized_end=1810 + _globals['_NAMEDENTITYUPDATERESPONSE']._serialized_start=1812 + _globals['_NAMEDENTITYUPDATERESPONSE']._serialized_end=1839 + _globals['_OBJECTGETREQUEST']._serialized_start=1841 + _globals['_OBJECTGETREQUEST']._serialized_end=1902 + _globals['_RESOURCELISTREQUEST']._serialized_start=1905 + _globals['_RESOURCELISTREQUEST']._serialized_end=2098 + _globals['_EMAILNOTIFICATION']._serialized_start=2100 + _globals['_EMAILNOTIFICATION']._serialized_end=2162 + _globals['_PAGERDUTYNOTIFICATION']._serialized_start=2164 + _globals['_PAGERDUTYNOTIFICATION']._serialized_end=2230 + _globals['_SLACKNOTIFICATION']._serialized_start=2232 + _globals['_SLACKNOTIFICATION']._serialized_end=2294 + _globals['_NOTIFICATION']._serialized_start=2297 + _globals['_NOTIFICATION']._serialized_end=2573 + _globals['_URLBLOB']._serialized_start=2575 + _globals['_URLBLOB']._serialized_end=2628 + _globals['_LABELS']._serialized_start=2630 + _globals['_LABELS']._serialized_end=2757 + _globals['_LABELS_VALUESENTRY']._serialized_start=2700 + _globals['_LABELS_VALUESENTRY']._serialized_end=2757 + _globals['_ANNOTATIONS']._serialized_start=2760 + _globals['_ANNOTATIONS']._serialized_end=2897 + _globals['_ANNOTATIONS_VALUESENTRY']._serialized_start=2700 + _globals['_ANNOTATIONS_VALUESENTRY']._serialized_end=2757 + _globals['_ENVS']._serialized_start=2899 + _globals['_ENVS']._serialized_end=2958 + _globals['_AUTHROLE']._serialized_start=2960 + _globals['_AUTHROLE']._serialized_end=3082 + _globals['_RAWOUTPUTDATACONFIG']._serialized_start=3084 + _globals['_RAWOUTPUTDATACONFIG']._serialized_end=3159 + _globals['_FLYTEURLS']._serialized_start=3161 + _globals['_FLYTEURLS']._serialized_end=3242 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.pyi index 9c81d7cf45..420818fb95 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.pyi @@ -20,14 +20,16 @@ NAMED_ENTITY_ARCHIVED: NamedEntityState SYSTEM_GENERATED: NamedEntityState class NamedEntityIdentifier(_message.Message): - __slots__ = ["project", "domain", "name"] + __slots__ = ["project", "domain", "name", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str name: str - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class NamedEntityMetadata(_message.Message): __slots__ = ["description", "state"] @@ -62,23 +64,25 @@ class Sort(_message.Message): def __init__(self, key: _Optional[str] = ..., direction: _Optional[_Union[Sort.Direction, str]] = ...) -> None: ... class NamedEntityIdentifierListRequest(_message.Message): - __slots__ = ["project", "domain", "limit", "token", "sort_by", "filters"] + __slots__ = ["project", "domain", "limit", "token", "sort_by", "filters", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] LIMIT_FIELD_NUMBER: _ClassVar[int] TOKEN_FIELD_NUMBER: _ClassVar[int] SORT_BY_FIELD_NUMBER: _ClassVar[int] FILTERS_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str limit: int token: str sort_by: Sort filters: str - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., sort_by: _Optional[_Union[Sort, _Mapping]] = ..., filters: _Optional[str] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., sort_by: _Optional[_Union[Sort, _Mapping]] = ..., filters: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class NamedEntityListRequest(_message.Message): - __slots__ = ["resource_type", "project", "domain", "limit", "token", "sort_by", "filters"] + __slots__ = ["resource_type", "project", "domain", "limit", "token", "sort_by", "filters", "org"] RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] @@ -86,6 +90,7 @@ class NamedEntityListRequest(_message.Message): TOKEN_FIELD_NUMBER: _ClassVar[int] SORT_BY_FIELD_NUMBER: _ClassVar[int] FILTERS_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] resource_type: _identifier_pb2.ResourceType project: str domain: str @@ -93,7 +98,8 @@ class NamedEntityListRequest(_message.Message): token: str sort_by: Sort filters: str - def __init__(self, resource_type: _Optional[_Union[_identifier_pb2.ResourceType, str]] = ..., project: _Optional[str] = ..., domain: _Optional[str] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., sort_by: _Optional[_Union[Sort, _Mapping]] = ..., filters: _Optional[str] = ...) -> None: ... + org: str + def __init__(self, resource_type: _Optional[_Union[_identifier_pb2.ResourceType, str]] = ..., project: _Optional[str] = ..., domain: _Optional[str] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., sort_by: _Optional[_Union[Sort, _Mapping]] = ..., filters: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class NamedEntityIdentifierList(_message.Message): __slots__ = ["entities", "token"] diff --git a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py index f71cdab8a2..918db78e56 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py @@ -24,7 +24,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66lyteidl/admin/execution.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/cluster_assignment.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1f\x66lyteidl/core/artifact_id.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1b\x66lyteidl/core/metrics.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xc4\x01\n\x16\x45xecutionCreateRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x31\n\x04spec\x18\x04 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12\x31\n\x06inputs\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\"\x99\x01\n\x18\x45xecutionRelaunchRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\'\n\x0foverwrite_cache\x18\x04 \x01(\x08R\x0eoverwriteCacheJ\x04\x08\x02\x10\x03\"\xa8\x01\n\x17\x45xecutionRecoverRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\"U\n\x17\x45xecutionCreateResponse\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"Y\n\x1bWorkflowExecutionGetRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\xb6\x01\n\tExecution\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x31\n\x04spec\x18\x02 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12:\n\x07\x63losure\x18\x03 \x01(\x0b\x32 .flyteidl.admin.ExecutionClosureR\x07\x63losure\"`\n\rExecutionList\x12\x39\n\nexecutions\x18\x01 \x03(\x0b\x32\x19.flyteidl.admin.ExecutionR\nexecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"e\n\x0eLiteralMapBlob\x12\x37\n\x06values\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\x06values\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uriB\x06\n\x04\x64\x61ta\"C\n\rAbortMetadata\x12\x14\n\x05\x63\x61use\x18\x01 \x01(\tR\x05\x63\x61use\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\"\x98\x07\n\x10\x45xecutionClosure\x12>\n\x07outputs\x18\x01 \x01(\x0b\x32\x1e.flyteidl.admin.LiteralMapBlobB\x02\x18\x01H\x00R\x07outputs\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12%\n\x0b\x61\x62ort_cause\x18\n \x01(\tB\x02\x18\x01H\x00R\nabortCause\x12\x46\n\x0e\x61\x62ort_metadata\x18\x0c \x01(\x0b\x32\x1d.flyteidl.admin.AbortMetadataH\x00R\rabortMetadata\x12@\n\x0boutput_data\x18\r \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x46\n\x0f\x63omputed_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x0e\x63omputedInputs\x12<\n\x05phase\x18\x04 \x01(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x05phase\x12\x39\n\nstarted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x42\n\rnotifications\x18\t \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\x12:\n\x0bworkflow_id\x18\x0b \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nworkflowId\x12]\n\x14state_change_details\x18\x0e \x01(\x0b\x32+.flyteidl.admin.ExecutionStateChangeDetailsR\x12stateChangeDetailsB\x0f\n\routput_result\"[\n\x0eSystemMetadata\x12+\n\x11\x65xecution_cluster\x18\x01 \x01(\tR\x10\x65xecutionCluster\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\"\xf8\x04\n\x11\x45xecutionMetadata\x12\x43\n\x04mode\x18\x01 \x01(\x0e\x32/.flyteidl.admin.ExecutionMetadata.ExecutionModeR\x04mode\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\x12\x18\n\x07nesting\x18\x03 \x01(\rR\x07nesting\x12=\n\x0cscheduled_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12Z\n\x15parent_node_execution\x18\x05 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x13parentNodeExecution\x12[\n\x13reference_execution\x18\x10 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x12referenceExecution\x12G\n\x0fsystem_metadata\x18\x11 \x01(\x0b\x32\x1e.flyteidl.admin.SystemMetadataR\x0esystemMetadata\x12<\n\x0c\x61rtifact_ids\x18\x12 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\"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\"V\n\x10NotificationList\x12\x42\n\rnotifications\x18\x01 \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\"\x90\x08\n\rExecutionSpec\x12:\n\x0blaunch_plan\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nlaunchPlan\x12\x35\n\x06inputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x06inputs\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\x12H\n\rnotifications\x18\x05 \x01(\x0b\x32 .flyteidl.admin.NotificationListH\x00R\rnotifications\x12!\n\x0b\x64isable_all\x18\x06 \x01(\x08H\x00R\ndisableAll\x12.\n\x06labels\x18\x07 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x08 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12I\n\x10security_context\x18\n \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12\x39\n\tauth_role\x18\x10 \x01(\x0b\x32\x18.flyteidl.admin.AuthRoleB\x02\x18\x01R\x08\x61uthRole\x12M\n\x12quality_of_service\x18\x11 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceR\x10qualityOfService\x12\'\n\x0fmax_parallelism\x18\x12 \x01(\x05R\x0emaxParallelism\x12X\n\x16raw_output_data_config\x18\x13 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12P\n\x12\x63luster_assignment\x18\x14 \x01(\x0b\x32!.flyteidl.admin.ClusterAssignmentR\x11\x63lusterAssignment\x12@\n\rinterruptible\x18\x15 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x16 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x17 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\x12\x12\n\x04tags\x18\x18 \x03(\tR\x04tagsB\x18\n\x16notification_overridesJ\x04\x08\x04\x10\x05\"m\n\x19\x45xecutionTerminateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x63\x61use\x18\x02 \x01(\tR\x05\x63\x61use\"\x1c\n\x1a\x45xecutionTerminateResponse\"]\n\x1fWorkflowExecutionGetDataRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\x88\x02\n WorkflowExecutionGetDataResponse\x12\x35\n\x07outputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\x12\x33\n\x06inputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12:\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\nfullInputs\x12<\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ullOutputs\"\x8a\x01\n\x16\x45xecutionUpdateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x34\n\x05state\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\"\xae\x01\n\x1b\x45xecutionStateChangeDetails\x12\x34\n\x05state\x18\x01 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\x12;\n\x0boccurred_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x1c\n\tprincipal\x18\x03 \x01(\tR\tprincipal\"\x19\n\x17\x45xecutionUpdateResponse\"v\n\"WorkflowExecutionGetMetricsRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x05R\x05\x64\x65pth\"N\n#WorkflowExecutionGetMetricsResponse\x12\'\n\x04span\x18\x01 \x01(\x0b\x32\x13.flyteidl.core.SpanR\x04span*>\n\x0e\x45xecutionState\x12\x14\n\x10\x45XECUTION_ACTIVE\x10\x00\x12\x16\n\x12\x45XECUTION_ARCHIVED\x10\x01\x42\xba\x01\n\x12\x63om.flyteidl.adminB\x0e\x45xecutionProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66lyteidl/admin/execution.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/cluster_assignment.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1f\x66lyteidl/core/artifact_id.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1b\x66lyteidl/core/metrics.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd6\x01\n\x16\x45xecutionCreateRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x31\n\x04spec\x18\x04 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12\x31\n\x06inputs\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"\x99\x01\n\x18\x45xecutionRelaunchRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\'\n\x0foverwrite_cache\x18\x04 \x01(\x08R\x0eoverwriteCacheJ\x04\x08\x02\x10\x03\"\xa8\x01\n\x17\x45xecutionRecoverRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\"U\n\x17\x45xecutionCreateResponse\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"Y\n\x1bWorkflowExecutionGetRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\xb6\x01\n\tExecution\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x31\n\x04spec\x18\x02 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12:\n\x07\x63losure\x18\x03 \x01(\x0b\x32 .flyteidl.admin.ExecutionClosureR\x07\x63losure\"`\n\rExecutionList\x12\x39\n\nexecutions\x18\x01 \x03(\x0b\x32\x19.flyteidl.admin.ExecutionR\nexecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"e\n\x0eLiteralMapBlob\x12\x37\n\x06values\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\x06values\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uriB\x06\n\x04\x64\x61ta\"C\n\rAbortMetadata\x12\x14\n\x05\x63\x61use\x18\x01 \x01(\tR\x05\x63\x61use\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\"\x98\x07\n\x10\x45xecutionClosure\x12>\n\x07outputs\x18\x01 \x01(\x0b\x32\x1e.flyteidl.admin.LiteralMapBlobB\x02\x18\x01H\x00R\x07outputs\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12%\n\x0b\x61\x62ort_cause\x18\n \x01(\tB\x02\x18\x01H\x00R\nabortCause\x12\x46\n\x0e\x61\x62ort_metadata\x18\x0c \x01(\x0b\x32\x1d.flyteidl.admin.AbortMetadataH\x00R\rabortMetadata\x12@\n\x0boutput_data\x18\r \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x46\n\x0f\x63omputed_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x0e\x63omputedInputs\x12<\n\x05phase\x18\x04 \x01(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x05phase\x12\x39\n\nstarted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x42\n\rnotifications\x18\t \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\x12:\n\x0bworkflow_id\x18\x0b \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nworkflowId\x12]\n\x14state_change_details\x18\x0e \x01(\x0b\x32+.flyteidl.admin.ExecutionStateChangeDetailsR\x12stateChangeDetailsB\x0f\n\routput_result\"[\n\x0eSystemMetadata\x12+\n\x11\x65xecution_cluster\x18\x01 \x01(\tR\x10\x65xecutionCluster\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\"\xf8\x04\n\x11\x45xecutionMetadata\x12\x43\n\x04mode\x18\x01 \x01(\x0e\x32/.flyteidl.admin.ExecutionMetadata.ExecutionModeR\x04mode\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\x12\x18\n\x07nesting\x18\x03 \x01(\rR\x07nesting\x12=\n\x0cscheduled_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12Z\n\x15parent_node_execution\x18\x05 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x13parentNodeExecution\x12[\n\x13reference_execution\x18\x10 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x12referenceExecution\x12G\n\x0fsystem_metadata\x18\x11 \x01(\x0b\x32\x1e.flyteidl.admin.SystemMetadataR\x0esystemMetadata\x12<\n\x0c\x61rtifact_ids\x18\x12 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\"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\"V\n\x10NotificationList\x12\x42\n\rnotifications\x18\x01 \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\"\x90\x08\n\rExecutionSpec\x12:\n\x0blaunch_plan\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nlaunchPlan\x12\x35\n\x06inputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x06inputs\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\x12H\n\rnotifications\x18\x05 \x01(\x0b\x32 .flyteidl.admin.NotificationListH\x00R\rnotifications\x12!\n\x0b\x64isable_all\x18\x06 \x01(\x08H\x00R\ndisableAll\x12.\n\x06labels\x18\x07 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x08 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12I\n\x10security_context\x18\n \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12\x39\n\tauth_role\x18\x10 \x01(\x0b\x32\x18.flyteidl.admin.AuthRoleB\x02\x18\x01R\x08\x61uthRole\x12M\n\x12quality_of_service\x18\x11 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceR\x10qualityOfService\x12\'\n\x0fmax_parallelism\x18\x12 \x01(\x05R\x0emaxParallelism\x12X\n\x16raw_output_data_config\x18\x13 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12P\n\x12\x63luster_assignment\x18\x14 \x01(\x0b\x32!.flyteidl.admin.ClusterAssignmentR\x11\x63lusterAssignment\x12@\n\rinterruptible\x18\x15 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x16 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x17 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\x12\x12\n\x04tags\x18\x18 \x03(\tR\x04tagsB\x18\n\x16notification_overridesJ\x04\x08\x04\x10\x05\"m\n\x19\x45xecutionTerminateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x63\x61use\x18\x02 \x01(\tR\x05\x63\x61use\"\x1c\n\x1a\x45xecutionTerminateResponse\"]\n\x1fWorkflowExecutionGetDataRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\x88\x02\n WorkflowExecutionGetDataResponse\x12\x35\n\x07outputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\x12\x33\n\x06inputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12:\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\nfullInputs\x12<\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ullOutputs\"\x8a\x01\n\x16\x45xecutionUpdateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x34\n\x05state\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\"\xae\x01\n\x1b\x45xecutionStateChangeDetails\x12\x34\n\x05state\x18\x01 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\x12;\n\x0boccurred_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x1c\n\tprincipal\x18\x03 \x01(\tR\tprincipal\"\x19\n\x17\x45xecutionUpdateResponse\"v\n\"WorkflowExecutionGetMetricsRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x05R\x05\x64\x65pth\"N\n#WorkflowExecutionGetMetricsResponse\x12\'\n\x04span\x18\x01 \x01(\x0b\x32\x13.flyteidl.core.SpanR\x04span*>\n\x0e\x45xecutionState\x12\x14\n\x10\x45XECUTION_ACTIVE\x10\x00\x12\x16\n\x12\x45XECUTION_ARCHIVED\x10\x01\x42\xba\x01\n\x12\x63om.flyteidl.adminB\x0e\x45xecutionProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -51,54 +51,54 @@ _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['outputs']._serialized_options = b'\030\001' _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['inputs']._options = None _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['inputs']._serialized_options = b'\030\001' - _globals['_EXECUTIONSTATE']._serialized_start=5391 - _globals['_EXECUTIONSTATE']._serialized_end=5453 + _globals['_EXECUTIONSTATE']._serialized_start=5409 + _globals['_EXECUTIONSTATE']._serialized_end=5471 _globals['_EXECUTIONCREATEREQUEST']._serialized_start=403 - _globals['_EXECUTIONCREATEREQUEST']._serialized_end=599 - _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_start=602 - _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_end=755 - _globals['_EXECUTIONRECOVERREQUEST']._serialized_start=758 - _globals['_EXECUTIONRECOVERREQUEST']._serialized_end=926 - _globals['_EXECUTIONCREATERESPONSE']._serialized_start=928 - _globals['_EXECUTIONCREATERESPONSE']._serialized_end=1013 - _globals['_WORKFLOWEXECUTIONGETREQUEST']._serialized_start=1015 - _globals['_WORKFLOWEXECUTIONGETREQUEST']._serialized_end=1104 - _globals['_EXECUTION']._serialized_start=1107 - _globals['_EXECUTION']._serialized_end=1289 - _globals['_EXECUTIONLIST']._serialized_start=1291 - _globals['_EXECUTIONLIST']._serialized_end=1387 - _globals['_LITERALMAPBLOB']._serialized_start=1389 - _globals['_LITERALMAPBLOB']._serialized_end=1490 - _globals['_ABORTMETADATA']._serialized_start=1492 - _globals['_ABORTMETADATA']._serialized_end=1559 - _globals['_EXECUTIONCLOSURE']._serialized_start=1562 - _globals['_EXECUTIONCLOSURE']._serialized_end=2482 - _globals['_SYSTEMMETADATA']._serialized_start=2484 - _globals['_SYSTEMMETADATA']._serialized_end=2575 - _globals['_EXECUTIONMETADATA']._serialized_start=2578 - _globals['_EXECUTIONMETADATA']._serialized_end=3210 - _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_start=3107 - _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_end=3210 - _globals['_NOTIFICATIONLIST']._serialized_start=3212 - _globals['_NOTIFICATIONLIST']._serialized_end=3298 - _globals['_EXECUTIONSPEC']._serialized_start=3301 - _globals['_EXECUTIONSPEC']._serialized_end=4341 - _globals['_EXECUTIONTERMINATEREQUEST']._serialized_start=4343 - _globals['_EXECUTIONTERMINATEREQUEST']._serialized_end=4452 - _globals['_EXECUTIONTERMINATERESPONSE']._serialized_start=4454 - _globals['_EXECUTIONTERMINATERESPONSE']._serialized_end=4482 - _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_start=4484 - _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_end=4577 - _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_start=4580 - _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_end=4844 - _globals['_EXECUTIONUPDATEREQUEST']._serialized_start=4847 - _globals['_EXECUTIONUPDATEREQUEST']._serialized_end=4985 - _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_start=4988 - _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_end=5162 - _globals['_EXECUTIONUPDATERESPONSE']._serialized_start=5164 - _globals['_EXECUTIONUPDATERESPONSE']._serialized_end=5189 - _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_start=5191 - _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_end=5309 - _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_start=5311 - _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_end=5389 + _globals['_EXECUTIONCREATEREQUEST']._serialized_end=617 + _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_start=620 + _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_end=773 + _globals['_EXECUTIONRECOVERREQUEST']._serialized_start=776 + _globals['_EXECUTIONRECOVERREQUEST']._serialized_end=944 + _globals['_EXECUTIONCREATERESPONSE']._serialized_start=946 + _globals['_EXECUTIONCREATERESPONSE']._serialized_end=1031 + _globals['_WORKFLOWEXECUTIONGETREQUEST']._serialized_start=1033 + _globals['_WORKFLOWEXECUTIONGETREQUEST']._serialized_end=1122 + _globals['_EXECUTION']._serialized_start=1125 + _globals['_EXECUTION']._serialized_end=1307 + _globals['_EXECUTIONLIST']._serialized_start=1309 + _globals['_EXECUTIONLIST']._serialized_end=1405 + _globals['_LITERALMAPBLOB']._serialized_start=1407 + _globals['_LITERALMAPBLOB']._serialized_end=1508 + _globals['_ABORTMETADATA']._serialized_start=1510 + _globals['_ABORTMETADATA']._serialized_end=1577 + _globals['_EXECUTIONCLOSURE']._serialized_start=1580 + _globals['_EXECUTIONCLOSURE']._serialized_end=2500 + _globals['_SYSTEMMETADATA']._serialized_start=2502 + _globals['_SYSTEMMETADATA']._serialized_end=2593 + _globals['_EXECUTIONMETADATA']._serialized_start=2596 + _globals['_EXECUTIONMETADATA']._serialized_end=3228 + _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_start=3125 + _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_end=3228 + _globals['_NOTIFICATIONLIST']._serialized_start=3230 + _globals['_NOTIFICATIONLIST']._serialized_end=3316 + _globals['_EXECUTIONSPEC']._serialized_start=3319 + _globals['_EXECUTIONSPEC']._serialized_end=4359 + _globals['_EXECUTIONTERMINATEREQUEST']._serialized_start=4361 + _globals['_EXECUTIONTERMINATEREQUEST']._serialized_end=4470 + _globals['_EXECUTIONTERMINATERESPONSE']._serialized_start=4472 + _globals['_EXECUTIONTERMINATERESPONSE']._serialized_end=4500 + _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_start=4502 + _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_end=4595 + _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_start=4598 + _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_end=4862 + _globals['_EXECUTIONUPDATEREQUEST']._serialized_start=4865 + _globals['_EXECUTIONUPDATEREQUEST']._serialized_end=5003 + _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_start=5006 + _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_end=5180 + _globals['_EXECUTIONUPDATERESPONSE']._serialized_start=5182 + _globals['_EXECUTIONUPDATERESPONSE']._serialized_end=5207 + _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_start=5209 + _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_end=5327 + _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_start=5329 + _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_end=5407 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi index 1e5e21f19f..bee241d74d 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi @@ -25,18 +25,20 @@ EXECUTION_ACTIVE: ExecutionState EXECUTION_ARCHIVED: ExecutionState class ExecutionCreateRequest(_message.Message): - __slots__ = ["project", "domain", "name", "spec", "inputs"] + __slots__ = ["project", "domain", "name", "spec", "inputs", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] SPEC_FIELD_NUMBER: _ClassVar[int] INPUTS_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str name: str spec: ExecutionSpec inputs: _literals_pb2.LiteralMap - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ..., spec: _Optional[_Union[ExecutionSpec, _Mapping]] = ..., inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ..., spec: _Optional[_Union[ExecutionSpec, _Mapping]] = ..., inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., org: _Optional[str] = ...) -> None: ... class ExecutionRelaunchRequest(_message.Message): __slots__ = ["id", "name", "overwrite_cache"] diff --git a/flyteidl/gen/pb_python/flyteidl/admin/launch_plan_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/launch_plan_pb2.py index dea0972f4d..68d9cdbd65 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/launch_plan_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/launch_plan_pb2.py @@ -23,7 +23,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/admin/launch_plan.proto\x12\x0e\x66lyteidl.admin\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1d\x66lyteidl/admin/schedule.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"x\n\x17LaunchPlanCreateRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x32\n\x04spec\x18\x02 \x01(\x0b\x32\x1e.flyteidl.admin.LaunchPlanSpecR\x04spec\"\x1a\n\x18LaunchPlanCreateResponse\"\xa8\x01\n\nLaunchPlan\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x32\n\x04spec\x18\x02 \x01(\x0b\x32\x1e.flyteidl.admin.LaunchPlanSpecR\x04spec\x12;\n\x07\x63losure\x18\x03 \x01(\x0b\x32!.flyteidl.admin.LaunchPlanClosureR\x07\x63losure\"e\n\x0eLaunchPlanList\x12=\n\x0claunch_plans\x18\x01 \x03(\x0b\x32\x1a.flyteidl.admin.LaunchPlanR\x0blaunchPlans\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"v\n\x04\x41uth\x12,\n\x12\x61ssumable_iam_role\x18\x01 \x01(\tR\x10\x61ssumableIamRole\x12<\n\x1akubernetes_service_account\x18\x02 \x01(\tR\x18kubernetesServiceAccount:\x02\x18\x01\"\xbd\x07\n\x0eLaunchPlanSpec\x12:\n\x0bworkflow_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nworkflowId\x12K\n\x0f\x65ntity_metadata\x18\x02 \x01(\x0b\x32\".flyteidl.admin.LaunchPlanMetadataR\x0e\x65ntityMetadata\x12\x42\n\x0e\x64\x65\x66\x61ult_inputs\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.ParameterMapR\rdefaultInputs\x12<\n\x0c\x66ixed_inputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ixedInputs\x12\x16\n\x04role\x18\x05 \x01(\tB\x02\x18\x01R\x04role\x12.\n\x06labels\x18\x06 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x07 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12,\n\x04\x61uth\x18\x08 \x01(\x0b\x32\x14.flyteidl.admin.AuthB\x02\x18\x01R\x04\x61uth\x12\x39\n\tauth_role\x18\t \x01(\x0b\x32\x18.flyteidl.admin.AuthRoleB\x02\x18\x01R\x08\x61uthRole\x12I\n\x10security_context\x18\n \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12M\n\x12quality_of_service\x18\x10 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceR\x10qualityOfService\x12X\n\x16raw_output_data_config\x18\x11 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12\'\n\x0fmax_parallelism\x18\x12 \x01(\x05R\x0emaxParallelism\x12@\n\rinterruptible\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x14 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x15 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\"\xcd\x02\n\x11LaunchPlanClosure\x12\x35\n\x05state\x18\x01 \x01(\x0e\x32\x1f.flyteidl.admin.LaunchPlanStateR\x05state\x12\x44\n\x0f\x65xpected_inputs\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.ParameterMapR\x0e\x65xpectedInputs\x12\x45\n\x10\x65xpected_outputs\x18\x03 \x01(\x0b\x32\x1a.flyteidl.core.VariableMapR\x0f\x65xpectedOutputs\x12\x39\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\"\xd1\x01\n\x12LaunchPlanMetadata\x12\x34\n\x08schedule\x18\x01 \x01(\x0b\x32\x18.flyteidl.admin.ScheduleR\x08schedule\x12\x42\n\rnotifications\x18\x02 \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\x12\x41\n\x11launch_conditions\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyR\x10launchConditions\"{\n\x17LaunchPlanUpdateRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32\x1f.flyteidl.admin.LaunchPlanStateR\x05state\"\x1a\n\x18LaunchPlanUpdateResponse\"P\n\x17\x41\x63tiveLaunchPlanRequest\x12\x35\n\x02id\x18\x01 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\"\xaa\x01\n\x1b\x41\x63tiveLaunchPlanListRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x14\n\x05limit\x18\x03 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x04 \x01(\tR\x05token\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy*+\n\x0fLaunchPlanState\x12\x0c\n\x08INACTIVE\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x42\xbb\x01\n\x12\x63om.flyteidl.adminB\x0fLaunchPlanProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/admin/launch_plan.proto\x12\x0e\x66lyteidl.admin\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1d\x66lyteidl/admin/schedule.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"x\n\x17LaunchPlanCreateRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x32\n\x04spec\x18\x02 \x01(\x0b\x32\x1e.flyteidl.admin.LaunchPlanSpecR\x04spec\"\x1a\n\x18LaunchPlanCreateResponse\"\xa8\x01\n\nLaunchPlan\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x32\n\x04spec\x18\x02 \x01(\x0b\x32\x1e.flyteidl.admin.LaunchPlanSpecR\x04spec\x12;\n\x07\x63losure\x18\x03 \x01(\x0b\x32!.flyteidl.admin.LaunchPlanClosureR\x07\x63losure\"e\n\x0eLaunchPlanList\x12=\n\x0claunch_plans\x18\x01 \x03(\x0b\x32\x1a.flyteidl.admin.LaunchPlanR\x0blaunchPlans\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"v\n\x04\x41uth\x12,\n\x12\x61ssumable_iam_role\x18\x01 \x01(\tR\x10\x61ssumableIamRole\x12<\n\x1akubernetes_service_account\x18\x02 \x01(\tR\x18kubernetesServiceAccount:\x02\x18\x01\"\xbd\x07\n\x0eLaunchPlanSpec\x12:\n\x0bworkflow_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nworkflowId\x12K\n\x0f\x65ntity_metadata\x18\x02 \x01(\x0b\x32\".flyteidl.admin.LaunchPlanMetadataR\x0e\x65ntityMetadata\x12\x42\n\x0e\x64\x65\x66\x61ult_inputs\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.ParameterMapR\rdefaultInputs\x12<\n\x0c\x66ixed_inputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ixedInputs\x12\x16\n\x04role\x18\x05 \x01(\tB\x02\x18\x01R\x04role\x12.\n\x06labels\x18\x06 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x07 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12,\n\x04\x61uth\x18\x08 \x01(\x0b\x32\x14.flyteidl.admin.AuthB\x02\x18\x01R\x04\x61uth\x12\x39\n\tauth_role\x18\t \x01(\x0b\x32\x18.flyteidl.admin.AuthRoleB\x02\x18\x01R\x08\x61uthRole\x12I\n\x10security_context\x18\n \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12M\n\x12quality_of_service\x18\x10 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceR\x10qualityOfService\x12X\n\x16raw_output_data_config\x18\x11 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12\'\n\x0fmax_parallelism\x18\x12 \x01(\x05R\x0emaxParallelism\x12@\n\rinterruptible\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x14 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x15 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\"\xcd\x02\n\x11LaunchPlanClosure\x12\x35\n\x05state\x18\x01 \x01(\x0e\x32\x1f.flyteidl.admin.LaunchPlanStateR\x05state\x12\x44\n\x0f\x65xpected_inputs\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.ParameterMapR\x0e\x65xpectedInputs\x12\x45\n\x10\x65xpected_outputs\x18\x03 \x01(\x0b\x32\x1a.flyteidl.core.VariableMapR\x0f\x65xpectedOutputs\x12\x39\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\"\xd1\x01\n\x12LaunchPlanMetadata\x12\x34\n\x08schedule\x18\x01 \x01(\x0b\x32\x18.flyteidl.admin.ScheduleR\x08schedule\x12\x42\n\rnotifications\x18\x02 \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\x12\x41\n\x11launch_conditions\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyR\x10launchConditions\"{\n\x17LaunchPlanUpdateRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32\x1f.flyteidl.admin.LaunchPlanStateR\x05state\"\x1a\n\x18LaunchPlanUpdateResponse\"P\n\x17\x41\x63tiveLaunchPlanRequest\x12\x35\n\x02id\x18\x01 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\"\xbc\x01\n\x1b\x41\x63tiveLaunchPlanListRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x14\n\x05limit\x18\x03 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x04 \x01(\tR\x05token\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org*+\n\x0fLaunchPlanState\x12\x0c\n\x08INACTIVE\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x42\xbb\x01\n\x12\x63om.flyteidl.adminB\x0fLaunchPlanProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,8 +40,8 @@ _LAUNCHPLANSPEC.fields_by_name['auth']._serialized_options = b'\030\001' _LAUNCHPLANSPEC.fields_by_name['auth_role']._options = None _LAUNCHPLANSPEC.fields_by_name['auth_role']._serialized_options = b'\030\001' - _globals['_LAUNCHPLANSTATE']._serialized_start=2818 - _globals['_LAUNCHPLANSTATE']._serialized_end=2861 + _globals['_LAUNCHPLANSTATE']._serialized_start=2836 + _globals['_LAUNCHPLANSTATE']._serialized_end=2879 _globals['_LAUNCHPLANCREATEREQUEST']._serialized_start=358 _globals['_LAUNCHPLANCREATEREQUEST']._serialized_end=478 _globals['_LAUNCHPLANCREATERESPONSE']._serialized_start=480 @@ -65,5 +65,5 @@ _globals['_ACTIVELAUNCHPLANREQUEST']._serialized_start=2563 _globals['_ACTIVELAUNCHPLANREQUEST']._serialized_end=2643 _globals['_ACTIVELAUNCHPLANLISTREQUEST']._serialized_start=2646 - _globals['_ACTIVELAUNCHPLANLISTREQUEST']._serialized_end=2816 + _globals['_ACTIVELAUNCHPLANLISTREQUEST']._serialized_end=2834 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/launch_plan_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/launch_plan_pb2.pyi index cb6a41e2b0..a047c8d473 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/launch_plan_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/launch_plan_pb2.pyi @@ -140,15 +140,17 @@ class ActiveLaunchPlanRequest(_message.Message): def __init__(self, id: _Optional[_Union[_common_pb2.NamedEntityIdentifier, _Mapping]] = ...) -> None: ... class ActiveLaunchPlanListRequest(_message.Message): - __slots__ = ["project", "domain", "limit", "token", "sort_by"] + __slots__ = ["project", "domain", "limit", "token", "sort_by", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] LIMIT_FIELD_NUMBER: _ClassVar[int] TOKEN_FIELD_NUMBER: _ClassVar[int] SORT_BY_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str limit: int token: str sort_by: _common_pb2.Sort - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., sort_by: _Optional[_Union[_common_pb2.Sort, _Mapping]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., sort_by: _Optional[_Union[_common_pb2.Sort, _Mapping]] = ..., org: _Optional[str] = ...) -> None: ... diff --git a/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.py index 931defd6e8..f95811b646 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.py @@ -18,7 +18,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'flyteidl/admin/matchable_resource.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\'flyteidl/admin/cluster_assignment.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x95\x01\n\x10TaskResourceSpec\x12\x10\n\x03\x63pu\x18\x01 \x01(\tR\x03\x63pu\x12\x10\n\x03gpu\x18\x02 \x01(\tR\x03gpu\x12\x16\n\x06memory\x18\x03 \x01(\tR\x06memory\x12\x18\n\x07storage\x18\x04 \x01(\tR\x07storage\x12+\n\x11\x65phemeral_storage\x18\x05 \x01(\tR\x10\x65phemeralStorage\"\x90\x01\n\x16TaskResourceAttributes\x12<\n\x08\x64\x65\x66\x61ults\x18\x01 \x01(\x0b\x32 .flyteidl.admin.TaskResourceSpecR\x08\x64\x65\x66\x61ults\x12\x38\n\x06limits\x18\x02 \x01(\x0b\x32 .flyteidl.admin.TaskResourceSpecR\x06limits\"\xb5\x01\n\x19\x43lusterResourceAttributes\x12Y\n\nattributes\x18\x01 \x03(\x0b\x32\x39.flyteidl.admin.ClusterResourceAttributes.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\".\n\x18\x45xecutionQueueAttributes\x12\x12\n\x04tags\x18\x01 \x03(\tR\x04tags\"-\n\x15\x45xecutionClusterLabel\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\"\xec\x01\n\x0ePluginOverride\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12\x1b\n\tplugin_id\x18\x02 \x03(\tR\x08pluginId\x12l\n\x17missing_plugin_behavior\x18\x04 \x01(\x0e\x32\x34.flyteidl.admin.PluginOverride.MissingPluginBehaviorR\x15missingPluginBehavior\"2\n\x15MissingPluginBehavior\x12\x08\n\x04\x46\x41IL\x10\x00\x12\x0f\n\x0bUSE_DEFAULT\x10\x01\"O\n\x0fPluginOverrides\x12<\n\toverrides\x18\x01 \x03(\x0b\x32\x1e.flyteidl.admin.PluginOverrideR\toverrides\"\xeb\x03\n\x17WorkflowExecutionConfig\x12\'\n\x0fmax_parallelism\x18\x01 \x01(\x05R\x0emaxParallelism\x12I\n\x10security_context\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12X\n\x16raw_output_data_config\x18\x03 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12.\n\x06labels\x18\x04 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x05 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12@\n\rinterruptible\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x07 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x08 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\"\x94\x06\n\x12MatchingAttributes\x12\x62\n\x18task_resource_attributes\x18\x01 \x01(\x0b\x32&.flyteidl.admin.TaskResourceAttributesH\x00R\x16taskResourceAttributes\x12k\n\x1b\x63luster_resource_attributes\x18\x02 \x01(\x0b\x32).flyteidl.admin.ClusterResourceAttributesH\x00R\x19\x63lusterResourceAttributes\x12h\n\x1a\x65xecution_queue_attributes\x18\x03 \x01(\x0b\x32(.flyteidl.admin.ExecutionQueueAttributesH\x00R\x18\x65xecutionQueueAttributes\x12_\n\x17\x65xecution_cluster_label\x18\x04 \x01(\x0b\x32%.flyteidl.admin.ExecutionClusterLabelH\x00R\x15\x65xecutionClusterLabel\x12O\n\x12quality_of_service\x18\x05 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceH\x00R\x10qualityOfService\x12L\n\x10plugin_overrides\x18\x06 \x01(\x0b\x32\x1f.flyteidl.admin.PluginOverridesH\x00R\x0fpluginOverrides\x12\x65\n\x19workflow_execution_config\x18\x07 \x01(\x0b\x32\'.flyteidl.admin.WorkflowExecutionConfigH\x00R\x17workflowExecutionConfig\x12R\n\x12\x63luster_assignment\x18\x08 \x01(\x0b\x32!.flyteidl.admin.ClusterAssignmentH\x00R\x11\x63lusterAssignmentB\x08\n\x06target\"\xd5\x01\n MatchableAttributesConfiguration\x12\x42\n\nattributes\x18\x01 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributesR\nattributes\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x18\n\x07project\x18\x03 \x01(\tR\x07project\x12\x1a\n\x08workflow\x18\x04 \x01(\tR\x08workflow\x12\x1f\n\x0blaunch_plan\x18\x05 \x01(\tR\nlaunchPlan\"h\n\x1eListMatchableAttributesRequest\x12\x46\n\rresource_type\x18\x01 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\"{\n\x1fListMatchableAttributesResponse\x12X\n\x0e\x63onfigurations\x18\x01 \x03(\x0b\x32\x30.flyteidl.admin.MatchableAttributesConfigurationR\x0e\x63onfigurations*\xe0\x01\n\x11MatchableResource\x12\x11\n\rTASK_RESOURCE\x10\x00\x12\x14\n\x10\x43LUSTER_RESOURCE\x10\x01\x12\x13\n\x0f\x45XECUTION_QUEUE\x10\x02\x12\x1b\n\x17\x45XECUTION_CLUSTER_LABEL\x10\x03\x12$\n QUALITY_OF_SERVICE_SPECIFICATION\x10\x04\x12\x13\n\x0fPLUGIN_OVERRIDE\x10\x05\x12\x1d\n\x19WORKFLOW_EXECUTION_CONFIG\x10\x06\x12\x16\n\x12\x43LUSTER_ASSIGNMENT\x10\x07\x42\xc2\x01\n\x12\x63om.flyteidl.adminB\x16MatchableResourceProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'flyteidl/admin/matchable_resource.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\'flyteidl/admin/cluster_assignment.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x95\x01\n\x10TaskResourceSpec\x12\x10\n\x03\x63pu\x18\x01 \x01(\tR\x03\x63pu\x12\x10\n\x03gpu\x18\x02 \x01(\tR\x03gpu\x12\x16\n\x06memory\x18\x03 \x01(\tR\x06memory\x12\x18\n\x07storage\x18\x04 \x01(\tR\x07storage\x12+\n\x11\x65phemeral_storage\x18\x05 \x01(\tR\x10\x65phemeralStorage\"\x90\x01\n\x16TaskResourceAttributes\x12<\n\x08\x64\x65\x66\x61ults\x18\x01 \x01(\x0b\x32 .flyteidl.admin.TaskResourceSpecR\x08\x64\x65\x66\x61ults\x12\x38\n\x06limits\x18\x02 \x01(\x0b\x32 .flyteidl.admin.TaskResourceSpecR\x06limits\"\xb5\x01\n\x19\x43lusterResourceAttributes\x12Y\n\nattributes\x18\x01 \x03(\x0b\x32\x39.flyteidl.admin.ClusterResourceAttributes.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\".\n\x18\x45xecutionQueueAttributes\x12\x12\n\x04tags\x18\x01 \x03(\tR\x04tags\"-\n\x15\x45xecutionClusterLabel\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\"\xec\x01\n\x0ePluginOverride\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12\x1b\n\tplugin_id\x18\x02 \x03(\tR\x08pluginId\x12l\n\x17missing_plugin_behavior\x18\x04 \x01(\x0e\x32\x34.flyteidl.admin.PluginOverride.MissingPluginBehaviorR\x15missingPluginBehavior\"2\n\x15MissingPluginBehavior\x12\x08\n\x04\x46\x41IL\x10\x00\x12\x0f\n\x0bUSE_DEFAULT\x10\x01\"O\n\x0fPluginOverrides\x12<\n\toverrides\x18\x01 \x03(\x0b\x32\x1e.flyteidl.admin.PluginOverrideR\toverrides\"\xeb\x03\n\x17WorkflowExecutionConfig\x12\'\n\x0fmax_parallelism\x18\x01 \x01(\x05R\x0emaxParallelism\x12I\n\x10security_context\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12X\n\x16raw_output_data_config\x18\x03 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12.\n\x06labels\x18\x04 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x05 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12@\n\rinterruptible\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x07 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x08 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\"\x94\x06\n\x12MatchingAttributes\x12\x62\n\x18task_resource_attributes\x18\x01 \x01(\x0b\x32&.flyteidl.admin.TaskResourceAttributesH\x00R\x16taskResourceAttributes\x12k\n\x1b\x63luster_resource_attributes\x18\x02 \x01(\x0b\x32).flyteidl.admin.ClusterResourceAttributesH\x00R\x19\x63lusterResourceAttributes\x12h\n\x1a\x65xecution_queue_attributes\x18\x03 \x01(\x0b\x32(.flyteidl.admin.ExecutionQueueAttributesH\x00R\x18\x65xecutionQueueAttributes\x12_\n\x17\x65xecution_cluster_label\x18\x04 \x01(\x0b\x32%.flyteidl.admin.ExecutionClusterLabelH\x00R\x15\x65xecutionClusterLabel\x12O\n\x12quality_of_service\x18\x05 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceH\x00R\x10qualityOfService\x12L\n\x10plugin_overrides\x18\x06 \x01(\x0b\x32\x1f.flyteidl.admin.PluginOverridesH\x00R\x0fpluginOverrides\x12\x65\n\x19workflow_execution_config\x18\x07 \x01(\x0b\x32\'.flyteidl.admin.WorkflowExecutionConfigH\x00R\x17workflowExecutionConfig\x12R\n\x12\x63luster_assignment\x18\x08 \x01(\x0b\x32!.flyteidl.admin.ClusterAssignmentH\x00R\x11\x63lusterAssignmentB\x08\n\x06target\"\xe7\x01\n MatchableAttributesConfiguration\x12\x42\n\nattributes\x18\x01 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributesR\nattributes\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x18\n\x07project\x18\x03 \x01(\tR\x07project\x12\x1a\n\x08workflow\x18\x04 \x01(\tR\x08workflow\x12\x1f\n\x0blaunch_plan\x18\x05 \x01(\tR\nlaunchPlan\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"h\n\x1eListMatchableAttributesRequest\x12\x46\n\rresource_type\x18\x01 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\"{\n\x1fListMatchableAttributesResponse\x12X\n\x0e\x63onfigurations\x18\x01 \x03(\x0b\x32\x30.flyteidl.admin.MatchableAttributesConfigurationR\x0e\x63onfigurations*\xe0\x01\n\x11MatchableResource\x12\x11\n\rTASK_RESOURCE\x10\x00\x12\x14\n\x10\x43LUSTER_RESOURCE\x10\x01\x12\x13\n\x0f\x45XECUTION_QUEUE\x10\x02\x12\x1b\n\x17\x45XECUTION_CLUSTER_LABEL\x10\x03\x12$\n QUALITY_OF_SERVICE_SPECIFICATION\x10\x04\x12\x13\n\x0fPLUGIN_OVERRIDE\x10\x05\x12\x1d\n\x19WORKFLOW_EXECUTION_CONFIG\x10\x06\x12\x16\n\x12\x43LUSTER_ASSIGNMENT\x10\x07\x42\xc2\x01\n\x12\x63om.flyteidl.adminB\x16MatchableResourceProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,8 +29,8 @@ DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\026MatchableResourceProtoP\001Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' _CLUSTERRESOURCEATTRIBUTES_ATTRIBUTESENTRY._options = None _CLUSTERRESOURCEATTRIBUTES_ATTRIBUTESENTRY._serialized_options = b'8\001' - _globals['_MATCHABLERESOURCE']._serialized_start=2853 - _globals['_MATCHABLERESOURCE']._serialized_end=3077 + _globals['_MATCHABLERESOURCE']._serialized_start=2871 + _globals['_MATCHABLERESOURCE']._serialized_end=3095 _globals['_TASKRESOURCESPEC']._serialized_start=223 _globals['_TASKRESOURCESPEC']._serialized_end=372 _globals['_TASKRESOURCEATTRIBUTES']._serialized_start=375 @@ -54,9 +54,9 @@ _globals['_MATCHINGATTRIBUTES']._serialized_start=1615 _globals['_MATCHINGATTRIBUTES']._serialized_end=2403 _globals['_MATCHABLEATTRIBUTESCONFIGURATION']._serialized_start=2406 - _globals['_MATCHABLEATTRIBUTESCONFIGURATION']._serialized_end=2619 - _globals['_LISTMATCHABLEATTRIBUTESREQUEST']._serialized_start=2621 - _globals['_LISTMATCHABLEATTRIBUTESREQUEST']._serialized_end=2725 - _globals['_LISTMATCHABLEATTRIBUTESRESPONSE']._serialized_start=2727 - _globals['_LISTMATCHABLEATTRIBUTESRESPONSE']._serialized_end=2850 + _globals['_MATCHABLEATTRIBUTESCONFIGURATION']._serialized_end=2637 + _globals['_LISTMATCHABLEATTRIBUTESREQUEST']._serialized_start=2639 + _globals['_LISTMATCHABLEATTRIBUTESREQUEST']._serialized_end=2743 + _globals['_LISTMATCHABLEATTRIBUTESRESPONSE']._serialized_start=2745 + _globals['_LISTMATCHABLEATTRIBUTESRESPONSE']._serialized_end=2868 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.pyi index 56a7b03165..f7707cf984 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.pyi @@ -140,18 +140,20 @@ class MatchingAttributes(_message.Message): def __init__(self, task_resource_attributes: _Optional[_Union[TaskResourceAttributes, _Mapping]] = ..., cluster_resource_attributes: _Optional[_Union[ClusterResourceAttributes, _Mapping]] = ..., execution_queue_attributes: _Optional[_Union[ExecutionQueueAttributes, _Mapping]] = ..., execution_cluster_label: _Optional[_Union[ExecutionClusterLabel, _Mapping]] = ..., quality_of_service: _Optional[_Union[_execution_pb2.QualityOfService, _Mapping]] = ..., plugin_overrides: _Optional[_Union[PluginOverrides, _Mapping]] = ..., workflow_execution_config: _Optional[_Union[WorkflowExecutionConfig, _Mapping]] = ..., cluster_assignment: _Optional[_Union[_cluster_assignment_pb2.ClusterAssignment, _Mapping]] = ...) -> None: ... class MatchableAttributesConfiguration(_message.Message): - __slots__ = ["attributes", "domain", "project", "workflow", "launch_plan"] + __slots__ = ["attributes", "domain", "project", "workflow", "launch_plan", "org"] ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] PROJECT_FIELD_NUMBER: _ClassVar[int] WORKFLOW_FIELD_NUMBER: _ClassVar[int] LAUNCH_PLAN_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] attributes: MatchingAttributes domain: str project: str workflow: str launch_plan: str - def __init__(self, attributes: _Optional[_Union[MatchingAttributes, _Mapping]] = ..., domain: _Optional[str] = ..., project: _Optional[str] = ..., workflow: _Optional[str] = ..., launch_plan: _Optional[str] = ...) -> None: ... + org: str + def __init__(self, attributes: _Optional[_Union[MatchingAttributes, _Mapping]] = ..., domain: _Optional[str] = ..., project: _Optional[str] = ..., workflow: _Optional[str] = ..., launch_plan: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class ListMatchableAttributesRequest(_message.Message): __slots__ = ["resource_type"] diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.py index b6f7d05f5e..46808ec536 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.py @@ -14,7 +14,7 @@ from flyteidl.admin import matchable_resource_pb2 as flyteidl_dot_admin_dot_matchable__resource__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'flyteidl/admin/project_attributes.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/matchable_resource.proto\"\x82\x01\n\x11ProjectAttributes\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12S\n\x13matching_attributes\x18\x02 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributesR\x12matchingAttributes\"c\n\x1eProjectAttributesUpdateRequest\x12\x41\n\nattributes\x18\x01 \x01(\x0b\x32!.flyteidl.admin.ProjectAttributesR\nattributes\"!\n\x1fProjectAttributesUpdateResponse\"\x7f\n\x1bProjectAttributesGetRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x46\n\rresource_type\x18\x02 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\"a\n\x1cProjectAttributesGetResponse\x12\x41\n\nattributes\x18\x01 \x01(\x0b\x32!.flyteidl.admin.ProjectAttributesR\nattributes\"\x82\x01\n\x1eProjectAttributesDeleteRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x46\n\rresource_type\x18\x02 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\"!\n\x1fProjectAttributesDeleteResponseB\xc2\x01\n\x12\x63om.flyteidl.adminB\x16ProjectAttributesProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'flyteidl/admin/project_attributes.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/matchable_resource.proto\"\x94\x01\n\x11ProjectAttributes\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12S\n\x13matching_attributes\x18\x02 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributesR\x12matchingAttributes\x12\x10\n\x03org\x18\x03 \x01(\tR\x03org\"c\n\x1eProjectAttributesUpdateRequest\x12\x41\n\nattributes\x18\x01 \x01(\x0b\x32!.flyteidl.admin.ProjectAttributesR\nattributes\"!\n\x1fProjectAttributesUpdateResponse\"\x91\x01\n\x1bProjectAttributesGetRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x46\n\rresource_type\x18\x02 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\x12\x10\n\x03org\x18\x03 \x01(\tR\x03org\"a\n\x1cProjectAttributesGetResponse\x12\x41\n\nattributes\x18\x01 \x01(\x0b\x32!.flyteidl.admin.ProjectAttributesR\nattributes\"\x94\x01\n\x1eProjectAttributesDeleteRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x46\n\rresource_type\x18\x02 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\x12\x10\n\x03org\x18\x03 \x01(\tR\x03org\"!\n\x1fProjectAttributesDeleteResponseB\xc2\x01\n\x12\x63om.flyteidl.adminB\x16ProjectAttributesProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -24,17 +24,17 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\026ProjectAttributesProtoP\001Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' _globals['_PROJECTATTRIBUTES']._serialized_start=101 - _globals['_PROJECTATTRIBUTES']._serialized_end=231 - _globals['_PROJECTATTRIBUTESUPDATEREQUEST']._serialized_start=233 - _globals['_PROJECTATTRIBUTESUPDATEREQUEST']._serialized_end=332 - _globals['_PROJECTATTRIBUTESUPDATERESPONSE']._serialized_start=334 - _globals['_PROJECTATTRIBUTESUPDATERESPONSE']._serialized_end=367 - _globals['_PROJECTATTRIBUTESGETREQUEST']._serialized_start=369 - _globals['_PROJECTATTRIBUTESGETREQUEST']._serialized_end=496 - _globals['_PROJECTATTRIBUTESGETRESPONSE']._serialized_start=498 - _globals['_PROJECTATTRIBUTESGETRESPONSE']._serialized_end=595 - _globals['_PROJECTATTRIBUTESDELETEREQUEST']._serialized_start=598 - _globals['_PROJECTATTRIBUTESDELETEREQUEST']._serialized_end=728 - _globals['_PROJECTATTRIBUTESDELETERESPONSE']._serialized_start=730 - _globals['_PROJECTATTRIBUTESDELETERESPONSE']._serialized_end=763 + _globals['_PROJECTATTRIBUTES']._serialized_end=249 + _globals['_PROJECTATTRIBUTESUPDATEREQUEST']._serialized_start=251 + _globals['_PROJECTATTRIBUTESUPDATEREQUEST']._serialized_end=350 + _globals['_PROJECTATTRIBUTESUPDATERESPONSE']._serialized_start=352 + _globals['_PROJECTATTRIBUTESUPDATERESPONSE']._serialized_end=385 + _globals['_PROJECTATTRIBUTESGETREQUEST']._serialized_start=388 + _globals['_PROJECTATTRIBUTESGETREQUEST']._serialized_end=533 + _globals['_PROJECTATTRIBUTESGETRESPONSE']._serialized_start=535 + _globals['_PROJECTATTRIBUTESGETRESPONSE']._serialized_end=632 + _globals['_PROJECTATTRIBUTESDELETEREQUEST']._serialized_start=635 + _globals['_PROJECTATTRIBUTESDELETEREQUEST']._serialized_end=783 + _globals['_PROJECTATTRIBUTESDELETERESPONSE']._serialized_start=785 + _globals['_PROJECTATTRIBUTESDELETERESPONSE']._serialized_end=818 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.pyi index 8ad0997ac2..6581a30a15 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.pyi @@ -6,12 +6,14 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti DESCRIPTOR: _descriptor.FileDescriptor class ProjectAttributes(_message.Message): - __slots__ = ["project", "matching_attributes"] + __slots__ = ["project", "matching_attributes", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] MATCHING_ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str matching_attributes: _matchable_resource_pb2.MatchingAttributes - def __init__(self, project: _Optional[str] = ..., matching_attributes: _Optional[_Union[_matchable_resource_pb2.MatchingAttributes, _Mapping]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., matching_attributes: _Optional[_Union[_matchable_resource_pb2.MatchingAttributes, _Mapping]] = ..., org: _Optional[str] = ...) -> None: ... class ProjectAttributesUpdateRequest(_message.Message): __slots__ = ["attributes"] @@ -24,12 +26,14 @@ class ProjectAttributesUpdateResponse(_message.Message): def __init__(self) -> None: ... class ProjectAttributesGetRequest(_message.Message): - __slots__ = ["project", "resource_type"] + __slots__ = ["project", "resource_type", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str resource_type: _matchable_resource_pb2.MatchableResource - def __init__(self, project: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ..., org: _Optional[str] = ...) -> None: ... class ProjectAttributesGetResponse(_message.Message): __slots__ = ["attributes"] @@ -38,12 +42,14 @@ class ProjectAttributesGetResponse(_message.Message): def __init__(self, attributes: _Optional[_Union[ProjectAttributes, _Mapping]] = ...) -> None: ... class ProjectAttributesDeleteRequest(_message.Message): - __slots__ = ["project", "resource_type"] + __slots__ = ["project", "resource_type", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str resource_type: _matchable_resource_pb2.MatchableResource - def __init__(self, project: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ..., org: _Optional[str] = ...) -> None: ... class ProjectAttributesDeleteResponse(_message.Message): __slots__ = [] diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_domain_attributes_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/project_domain_attributes_pb2.py index ff5c077221..3d80159af4 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_domain_attributes_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_domain_attributes_pb2.py @@ -14,7 +14,7 @@ from flyteidl.admin import matchable_resource_pb2 as flyteidl_dot_admin_dot_matchable__resource__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.flyteidl/admin/project_domain_attributes.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/matchable_resource.proto\"\xa0\x01\n\x17ProjectDomainAttributes\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12S\n\x13matching_attributes\x18\x03 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributesR\x12matchingAttributes\"o\n$ProjectDomainAttributesUpdateRequest\x12G\n\nattributes\x18\x01 \x01(\x0b\x32\'.flyteidl.admin.ProjectDomainAttributesR\nattributes\"\'\n%ProjectDomainAttributesUpdateResponse\"\x9d\x01\n!ProjectDomainAttributesGetRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x46\n\rresource_type\x18\x03 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\"m\n\"ProjectDomainAttributesGetResponse\x12G\n\nattributes\x18\x01 \x01(\x0b\x32\'.flyteidl.admin.ProjectDomainAttributesR\nattributes\"\xa0\x01\n$ProjectDomainAttributesDeleteRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x46\n\rresource_type\x18\x03 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\"\'\n%ProjectDomainAttributesDeleteResponseB\xc8\x01\n\x12\x63om.flyteidl.adminB\x1cProjectDomainAttributesProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.flyteidl/admin/project_domain_attributes.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/matchable_resource.proto\"\xb2\x01\n\x17ProjectDomainAttributes\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12S\n\x13matching_attributes\x18\x03 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributesR\x12matchingAttributes\x12\x10\n\x03org\x18\x04 \x01(\tR\x03org\"o\n$ProjectDomainAttributesUpdateRequest\x12G\n\nattributes\x18\x01 \x01(\x0b\x32\'.flyteidl.admin.ProjectDomainAttributesR\nattributes\"\'\n%ProjectDomainAttributesUpdateResponse\"\xaf\x01\n!ProjectDomainAttributesGetRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x46\n\rresource_type\x18\x03 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\x12\x10\n\x03org\x18\x04 \x01(\tR\x03org\"m\n\"ProjectDomainAttributesGetResponse\x12G\n\nattributes\x18\x01 \x01(\x0b\x32\'.flyteidl.admin.ProjectDomainAttributesR\nattributes\"\xb2\x01\n$ProjectDomainAttributesDeleteRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x46\n\rresource_type\x18\x03 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\x12\x10\n\x03org\x18\x04 \x01(\tR\x03org\"\'\n%ProjectDomainAttributesDeleteResponseB\xc8\x01\n\x12\x63om.flyteidl.adminB\x1cProjectDomainAttributesProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -24,17 +24,17 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\034ProjectDomainAttributesProtoP\001Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' _globals['_PROJECTDOMAINATTRIBUTES']._serialized_start=108 - _globals['_PROJECTDOMAINATTRIBUTES']._serialized_end=268 - _globals['_PROJECTDOMAINATTRIBUTESUPDATEREQUEST']._serialized_start=270 - _globals['_PROJECTDOMAINATTRIBUTESUPDATEREQUEST']._serialized_end=381 - _globals['_PROJECTDOMAINATTRIBUTESUPDATERESPONSE']._serialized_start=383 - _globals['_PROJECTDOMAINATTRIBUTESUPDATERESPONSE']._serialized_end=422 - _globals['_PROJECTDOMAINATTRIBUTESGETREQUEST']._serialized_start=425 - _globals['_PROJECTDOMAINATTRIBUTESGETREQUEST']._serialized_end=582 - _globals['_PROJECTDOMAINATTRIBUTESGETRESPONSE']._serialized_start=584 - _globals['_PROJECTDOMAINATTRIBUTESGETRESPONSE']._serialized_end=693 - _globals['_PROJECTDOMAINATTRIBUTESDELETEREQUEST']._serialized_start=696 - _globals['_PROJECTDOMAINATTRIBUTESDELETEREQUEST']._serialized_end=856 - _globals['_PROJECTDOMAINATTRIBUTESDELETERESPONSE']._serialized_start=858 - _globals['_PROJECTDOMAINATTRIBUTESDELETERESPONSE']._serialized_end=897 + _globals['_PROJECTDOMAINATTRIBUTES']._serialized_end=286 + _globals['_PROJECTDOMAINATTRIBUTESUPDATEREQUEST']._serialized_start=288 + _globals['_PROJECTDOMAINATTRIBUTESUPDATEREQUEST']._serialized_end=399 + _globals['_PROJECTDOMAINATTRIBUTESUPDATERESPONSE']._serialized_start=401 + _globals['_PROJECTDOMAINATTRIBUTESUPDATERESPONSE']._serialized_end=440 + _globals['_PROJECTDOMAINATTRIBUTESGETREQUEST']._serialized_start=443 + _globals['_PROJECTDOMAINATTRIBUTESGETREQUEST']._serialized_end=618 + _globals['_PROJECTDOMAINATTRIBUTESGETRESPONSE']._serialized_start=620 + _globals['_PROJECTDOMAINATTRIBUTESGETRESPONSE']._serialized_end=729 + _globals['_PROJECTDOMAINATTRIBUTESDELETEREQUEST']._serialized_start=732 + _globals['_PROJECTDOMAINATTRIBUTESDELETEREQUEST']._serialized_end=910 + _globals['_PROJECTDOMAINATTRIBUTESDELETERESPONSE']._serialized_start=912 + _globals['_PROJECTDOMAINATTRIBUTESDELETERESPONSE']._serialized_end=951 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_domain_attributes_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/project_domain_attributes_pb2.pyi index af8624ca21..40a7a38bc7 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_domain_attributes_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_domain_attributes_pb2.pyi @@ -6,14 +6,16 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti DESCRIPTOR: _descriptor.FileDescriptor class ProjectDomainAttributes(_message.Message): - __slots__ = ["project", "domain", "matching_attributes"] + __slots__ = ["project", "domain", "matching_attributes", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] MATCHING_ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str matching_attributes: _matchable_resource_pb2.MatchingAttributes - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., matching_attributes: _Optional[_Union[_matchable_resource_pb2.MatchingAttributes, _Mapping]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., matching_attributes: _Optional[_Union[_matchable_resource_pb2.MatchingAttributes, _Mapping]] = ..., org: _Optional[str] = ...) -> None: ... class ProjectDomainAttributesUpdateRequest(_message.Message): __slots__ = ["attributes"] @@ -26,14 +28,16 @@ class ProjectDomainAttributesUpdateResponse(_message.Message): def __init__(self) -> None: ... class ProjectDomainAttributesGetRequest(_message.Message): - __slots__ = ["project", "domain", "resource_type"] + __slots__ = ["project", "domain", "resource_type", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str resource_type: _matchable_resource_pb2.MatchableResource - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ..., org: _Optional[str] = ...) -> None: ... class ProjectDomainAttributesGetResponse(_message.Message): __slots__ = ["attributes"] @@ -42,14 +46,16 @@ class ProjectDomainAttributesGetResponse(_message.Message): def __init__(self, attributes: _Optional[_Union[ProjectDomainAttributes, _Mapping]] = ...) -> None: ... class ProjectDomainAttributesDeleteRequest(_message.Message): - __slots__ = ["project", "domain", "resource_type"] + __slots__ = ["project", "domain", "resource_type", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str resource_type: _matchable_resource_pb2.MatchableResource - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ..., org: _Optional[str] = ...) -> None: ... class ProjectDomainAttributesDeleteResponse(_message.Message): __slots__ = [] diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py index ae321b092c..d34629f3e1 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py @@ -14,7 +14,7 @@ from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/project.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\",\n\x06\x44omain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xad\x02\n\x07Project\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x30\n\x07\x64omains\x18\x03 \x03(\x0b\x32\x16.flyteidl.admin.DomainR\x07\x64omains\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12.\n\x06labels\x18\x05 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12:\n\x05state\x18\x06 \x01(\x0e\x32$.flyteidl.admin.Project.ProjectStateR\x05state\">\n\x0cProjectState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\"U\n\x08Projects\x12\x33\n\x08projects\x18\x01 \x03(\x0b\x32\x17.flyteidl.admin.ProjectR\x08projects\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x89\x01\n\x12ProjectListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x03 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x04 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\"K\n\x16ProjectRegisterRequest\x12\x31\n\x07project\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.ProjectR\x07project\"\x19\n\x17ProjectRegisterResponse\"\x17\n\x15ProjectUpdateResponseB\xb8\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/project.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\",\n\x06\x44omain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"5\n\x11ProjectIdentifier\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03org\x18\x02 \x01(\tR\x03org\"\xf4\x02\n\x07Project\x12\x12\n\x02id\x18\x01 \x01(\tB\x02\x18\x01R\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x30\n\x07\x64omains\x18\x03 \x03(\x0b\x32\x16.flyteidl.admin.DomainR\x07\x64omains\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12.\n\x06labels\x18\x05 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12:\n\x05state\x18\x06 \x01(\x0e\x32$.flyteidl.admin.Project.ProjectStateR\x05state\x12\x41\n\nidentifier\x18\x07 \x01(\x0b\x32!.flyteidl.admin.ProjectIdentifierR\nidentifier\">\n\x0cProjectState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\"U\n\x08Projects\x12\x33\n\x08projects\x18\x01 \x03(\x0b\x32\x17.flyteidl.admin.ProjectR\x08projects\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x89\x01\n\x12ProjectListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x03 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x04 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\"K\n\x16ProjectRegisterRequest\x12\x31\n\x07project\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.ProjectR\x07project\"\x19\n\x17ProjectRegisterResponse\"\x17\n\x15ProjectUpdateResponseB\xb8\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -23,20 +23,24 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\014ProjectProtoP\001Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _PROJECT.fields_by_name['id']._options = None + _PROJECT.fields_by_name['id']._serialized_options = b'\030\001' _globals['_DOMAIN']._serialized_start=77 _globals['_DOMAIN']._serialized_end=121 - _globals['_PROJECT']._serialized_start=124 - _globals['_PROJECT']._serialized_end=425 - _globals['_PROJECT_PROJECTSTATE']._serialized_start=363 - _globals['_PROJECT_PROJECTSTATE']._serialized_end=425 - _globals['_PROJECTS']._serialized_start=427 - _globals['_PROJECTS']._serialized_end=512 - _globals['_PROJECTLISTREQUEST']._serialized_start=515 - _globals['_PROJECTLISTREQUEST']._serialized_end=652 - _globals['_PROJECTREGISTERREQUEST']._serialized_start=654 - _globals['_PROJECTREGISTERREQUEST']._serialized_end=729 - _globals['_PROJECTREGISTERRESPONSE']._serialized_start=731 - _globals['_PROJECTREGISTERRESPONSE']._serialized_end=756 - _globals['_PROJECTUPDATERESPONSE']._serialized_start=758 - _globals['_PROJECTUPDATERESPONSE']._serialized_end=781 + _globals['_PROJECTIDENTIFIER']._serialized_start=123 + _globals['_PROJECTIDENTIFIER']._serialized_end=176 + _globals['_PROJECT']._serialized_start=179 + _globals['_PROJECT']._serialized_end=551 + _globals['_PROJECT_PROJECTSTATE']._serialized_start=489 + _globals['_PROJECT_PROJECTSTATE']._serialized_end=551 + _globals['_PROJECTS']._serialized_start=553 + _globals['_PROJECTS']._serialized_end=638 + _globals['_PROJECTLISTREQUEST']._serialized_start=641 + _globals['_PROJECTLISTREQUEST']._serialized_end=778 + _globals['_PROJECTREGISTERREQUEST']._serialized_start=780 + _globals['_PROJECTREGISTERREQUEST']._serialized_end=855 + _globals['_PROJECTREGISTERRESPONSE']._serialized_start=857 + _globals['_PROJECTREGISTERRESPONSE']._serialized_end=882 + _globals['_PROJECTUPDATERESPONSE']._serialized_start=884 + _globals['_PROJECTUPDATERESPONSE']._serialized_end=907 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi index 33b5106c81..edc5517ec8 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi @@ -15,8 +15,16 @@ class Domain(_message.Message): name: str def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... +class ProjectIdentifier(_message.Message): + __slots__ = ["id", "org"] + ID_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] + id: str + org: str + def __init__(self, id: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... + class Project(_message.Message): - __slots__ = ["id", "name", "domains", "description", "labels", "state"] + __slots__ = ["id", "name", "domains", "description", "labels", "state", "identifier"] class ProjectState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = [] ACTIVE: _ClassVar[Project.ProjectState] @@ -31,13 +39,15 @@ class Project(_message.Message): DESCRIPTION_FIELD_NUMBER: _ClassVar[int] LABELS_FIELD_NUMBER: _ClassVar[int] STATE_FIELD_NUMBER: _ClassVar[int] + IDENTIFIER_FIELD_NUMBER: _ClassVar[int] id: str name: str domains: _containers.RepeatedCompositeFieldContainer[Domain] description: str labels: _common_pb2.Labels state: Project.ProjectState - def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., domains: _Optional[_Iterable[_Union[Domain, _Mapping]]] = ..., description: _Optional[str] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., state: _Optional[_Union[Project.ProjectState, str]] = ...) -> None: ... + identifier: ProjectIdentifier + def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., domains: _Optional[_Iterable[_Union[Domain, _Mapping]]] = ..., description: _Optional[str] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., state: _Optional[_Union[Project.ProjectState, str]] = ..., identifier: _Optional[_Union[ProjectIdentifier, _Mapping]] = ...) -> None: ... class Projects(_message.Message): __slots__ = ["projects", "token"] diff --git a/flyteidl/gen/pb_python/flyteidl/admin/workflow_attributes_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/workflow_attributes_pb2.py index a277fac588..1a8ee5c48e 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/workflow_attributes_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/workflow_attributes_pb2.py @@ -14,7 +14,7 @@ from flyteidl.admin import matchable_resource_pb2 as flyteidl_dot_admin_dot_matchable__resource__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(flyteidl/admin/workflow_attributes.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/matchable_resource.proto\"\xb7\x01\n\x12WorkflowAttributes\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08workflow\x18\x03 \x01(\tR\x08workflow\x12S\n\x13matching_attributes\x18\x04 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributesR\x12matchingAttributes\"e\n\x1fWorkflowAttributesUpdateRequest\x12\x42\n\nattributes\x18\x01 \x01(\x0b\x32\".flyteidl.admin.WorkflowAttributesR\nattributes\"\"\n WorkflowAttributesUpdateResponse\"\xb4\x01\n\x1cWorkflowAttributesGetRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08workflow\x18\x03 \x01(\tR\x08workflow\x12\x46\n\rresource_type\x18\x04 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\"c\n\x1dWorkflowAttributesGetResponse\x12\x42\n\nattributes\x18\x01 \x01(\x0b\x32\".flyteidl.admin.WorkflowAttributesR\nattributes\"\xb7\x01\n\x1fWorkflowAttributesDeleteRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08workflow\x18\x03 \x01(\tR\x08workflow\x12\x46\n\rresource_type\x18\x04 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\"\"\n WorkflowAttributesDeleteResponseB\xc3\x01\n\x12\x63om.flyteidl.adminB\x17WorkflowAttributesProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(flyteidl/admin/workflow_attributes.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/matchable_resource.proto\"\xc9\x01\n\x12WorkflowAttributes\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08workflow\x18\x03 \x01(\tR\x08workflow\x12S\n\x13matching_attributes\x18\x04 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributesR\x12matchingAttributes\x12\x10\n\x03org\x18\x05 \x01(\tR\x03org\"e\n\x1fWorkflowAttributesUpdateRequest\x12\x42\n\nattributes\x18\x01 \x01(\x0b\x32\".flyteidl.admin.WorkflowAttributesR\nattributes\"\"\n WorkflowAttributesUpdateResponse\"\xc6\x01\n\x1cWorkflowAttributesGetRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08workflow\x18\x03 \x01(\tR\x08workflow\x12\x46\n\rresource_type\x18\x04 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\x12\x10\n\x03org\x18\x05 \x01(\tR\x03org\"c\n\x1dWorkflowAttributesGetResponse\x12\x42\n\nattributes\x18\x01 \x01(\x0b\x32\".flyteidl.admin.WorkflowAttributesR\nattributes\"\xc9\x01\n\x1fWorkflowAttributesDeleteRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08workflow\x18\x03 \x01(\tR\x08workflow\x12\x46\n\rresource_type\x18\x04 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\x12\x10\n\x03org\x18\x05 \x01(\tR\x03org\"\"\n WorkflowAttributesDeleteResponseB\xc3\x01\n\x12\x63om.flyteidl.adminB\x17WorkflowAttributesProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -24,17 +24,17 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\027WorkflowAttributesProtoP\001Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' _globals['_WORKFLOWATTRIBUTES']._serialized_start=102 - _globals['_WORKFLOWATTRIBUTES']._serialized_end=285 - _globals['_WORKFLOWATTRIBUTESUPDATEREQUEST']._serialized_start=287 - _globals['_WORKFLOWATTRIBUTESUPDATEREQUEST']._serialized_end=388 - _globals['_WORKFLOWATTRIBUTESUPDATERESPONSE']._serialized_start=390 - _globals['_WORKFLOWATTRIBUTESUPDATERESPONSE']._serialized_end=424 - _globals['_WORKFLOWATTRIBUTESGETREQUEST']._serialized_start=427 - _globals['_WORKFLOWATTRIBUTESGETREQUEST']._serialized_end=607 - _globals['_WORKFLOWATTRIBUTESGETRESPONSE']._serialized_start=609 - _globals['_WORKFLOWATTRIBUTESGETRESPONSE']._serialized_end=708 - _globals['_WORKFLOWATTRIBUTESDELETEREQUEST']._serialized_start=711 - _globals['_WORKFLOWATTRIBUTESDELETEREQUEST']._serialized_end=894 - _globals['_WORKFLOWATTRIBUTESDELETERESPONSE']._serialized_start=896 - _globals['_WORKFLOWATTRIBUTESDELETERESPONSE']._serialized_end=930 + _globals['_WORKFLOWATTRIBUTES']._serialized_end=303 + _globals['_WORKFLOWATTRIBUTESUPDATEREQUEST']._serialized_start=305 + _globals['_WORKFLOWATTRIBUTESUPDATEREQUEST']._serialized_end=406 + _globals['_WORKFLOWATTRIBUTESUPDATERESPONSE']._serialized_start=408 + _globals['_WORKFLOWATTRIBUTESUPDATERESPONSE']._serialized_end=442 + _globals['_WORKFLOWATTRIBUTESGETREQUEST']._serialized_start=445 + _globals['_WORKFLOWATTRIBUTESGETREQUEST']._serialized_end=643 + _globals['_WORKFLOWATTRIBUTESGETRESPONSE']._serialized_start=645 + _globals['_WORKFLOWATTRIBUTESGETRESPONSE']._serialized_end=744 + _globals['_WORKFLOWATTRIBUTESDELETEREQUEST']._serialized_start=747 + _globals['_WORKFLOWATTRIBUTESDELETEREQUEST']._serialized_end=948 + _globals['_WORKFLOWATTRIBUTESDELETERESPONSE']._serialized_start=950 + _globals['_WORKFLOWATTRIBUTESDELETERESPONSE']._serialized_end=984 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/workflow_attributes_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/workflow_attributes_pb2.pyi index 67b040a36d..57c7d80c80 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/workflow_attributes_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/workflow_attributes_pb2.pyi @@ -6,16 +6,18 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti DESCRIPTOR: _descriptor.FileDescriptor class WorkflowAttributes(_message.Message): - __slots__ = ["project", "domain", "workflow", "matching_attributes"] + __slots__ = ["project", "domain", "workflow", "matching_attributes", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] WORKFLOW_FIELD_NUMBER: _ClassVar[int] MATCHING_ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str workflow: str matching_attributes: _matchable_resource_pb2.MatchingAttributes - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., workflow: _Optional[str] = ..., matching_attributes: _Optional[_Union[_matchable_resource_pb2.MatchingAttributes, _Mapping]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., workflow: _Optional[str] = ..., matching_attributes: _Optional[_Union[_matchable_resource_pb2.MatchingAttributes, _Mapping]] = ..., org: _Optional[str] = ...) -> None: ... class WorkflowAttributesUpdateRequest(_message.Message): __slots__ = ["attributes"] @@ -28,16 +30,18 @@ class WorkflowAttributesUpdateResponse(_message.Message): def __init__(self) -> None: ... class WorkflowAttributesGetRequest(_message.Message): - __slots__ = ["project", "domain", "workflow", "resource_type"] + __slots__ = ["project", "domain", "workflow", "resource_type", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] WORKFLOW_FIELD_NUMBER: _ClassVar[int] RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str workflow: str resource_type: _matchable_resource_pb2.MatchableResource - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., workflow: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., workflow: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ..., org: _Optional[str] = ...) -> None: ... class WorkflowAttributesGetResponse(_message.Message): __slots__ = ["attributes"] @@ -46,16 +50,18 @@ class WorkflowAttributesGetResponse(_message.Message): def __init__(self, attributes: _Optional[_Union[WorkflowAttributes, _Mapping]] = ...) -> None: ... class WorkflowAttributesDeleteRequest(_message.Message): - __slots__ = ["project", "domain", "workflow", "resource_type"] + __slots__ = ["project", "domain", "workflow", "resource_type", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] WORKFLOW_FIELD_NUMBER: _ClassVar[int] RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str workflow: str resource_type: _matchable_resource_pb2.MatchableResource - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., workflow: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., workflow: _Optional[str] = ..., resource_type: _Optional[_Union[_matchable_resource_pb2.MatchableResource, str]] = ..., org: _Optional[str] = ...) -> None: ... class WorkflowAttributesDeleteResponse(_message.Message): __slots__ = [] diff --git a/flyteidl/gen/pb_python/flyteidl/core/identifier_pb2.py b/flyteidl/gen/pb_python/flyteidl/core/identifier_pb2.py index bcb507c1cb..5068f3edb4 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/identifier_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/core/identifier_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66lyteidl/core/identifier.proto\x12\rflyteidl.core\"\xae\x01\n\nIdentifier\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x18\n\x07project\x18\x02 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x18\n\x07version\x18\x05 \x01(\tR\x07version\"c\n\x1bWorkflowExecutionIdentifier\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\"\x81\x01\n\x17NodeExecutionIdentifier\x12\x17\n\x07node_id\x18\x01 \x01(\tR\x06nodeId\x12M\n\x0c\x65xecution_id\x18\x02 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId\"\xc6\x01\n\x17TaskExecutionIdentifier\x12\x32\n\x07task_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x06taskId\x12R\n\x11node_execution_id\x18\x02 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x0fnodeExecutionId\x12#\n\rretry_attempt\x18\x03 \x01(\rR\x0cretryAttempt\"~\n\x10SignalIdentifier\x12\x1b\n\tsignal_id\x18\x01 \x01(\tR\x08signalId\x12M\n\x0c\x65xecution_id\x18\x02 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId*U\n\x0cResourceType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04TASK\x10\x01\x12\x0c\n\x08WORKFLOW\x10\x02\x12\x0f\n\x0bLAUNCH_PLAN\x10\x03\x12\x0b\n\x07\x44\x41TASET\x10\x04\x42\xb5\x01\n\x11\x63om.flyteidl.coreB\x0fIdentifierProtoP\x01Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\xa2\x02\x03\x46\x43X\xaa\x02\rFlyteidl.Core\xca\x02\rFlyteidl\\Core\xe2\x02\x19\x46lyteidl\\Core\\GPBMetadata\xea\x02\x0e\x46lyteidl::Coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66lyteidl/core/identifier.proto\x12\rflyteidl.core\"\xc0\x01\n\nIdentifier\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x18\n\x07project\x18\x02 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x18\n\x07version\x18\x05 \x01(\tR\x07version\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"u\n\x1bWorkflowExecutionIdentifier\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x10\n\x03org\x18\x05 \x01(\tR\x03org\"\x81\x01\n\x17NodeExecutionIdentifier\x12\x17\n\x07node_id\x18\x01 \x01(\tR\x06nodeId\x12M\n\x0c\x65xecution_id\x18\x02 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId\"\xc6\x01\n\x17TaskExecutionIdentifier\x12\x32\n\x07task_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x06taskId\x12R\n\x11node_execution_id\x18\x02 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x0fnodeExecutionId\x12#\n\rretry_attempt\x18\x03 \x01(\rR\x0cretryAttempt\"~\n\x10SignalIdentifier\x12\x1b\n\tsignal_id\x18\x01 \x01(\tR\x08signalId\x12M\n\x0c\x65xecution_id\x18\x02 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId*U\n\x0cResourceType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04TASK\x10\x01\x12\x0c\n\x08WORKFLOW\x10\x02\x12\x0f\n\x0bLAUNCH_PLAN\x10\x03\x12\x0b\n\x07\x44\x41TASET\x10\x04\x42\xb5\x01\n\x11\x63om.flyteidl.coreB\x0fIdentifierProtoP\x01Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\xa2\x02\x03\x46\x43X\xaa\x02\rFlyteidl.Core\xca\x02\rFlyteidl\\Core\xe2\x02\x19\x46lyteidl\\Core\\GPBMetadata\xea\x02\x0e\x46lyteidl::Coreb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -22,16 +22,16 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\017IdentifierProtoP\001Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\242\002\003FCX\252\002\rFlyteidl.Core\312\002\rFlyteidl\\Core\342\002\031Flyteidl\\Core\\GPBMetadata\352\002\016Flyteidl::Core' - _globals['_RESOURCETYPE']._serialized_start=788 - _globals['_RESOURCETYPE']._serialized_end=873 + _globals['_RESOURCETYPE']._serialized_start=824 + _globals['_RESOURCETYPE']._serialized_end=909 _globals['_IDENTIFIER']._serialized_start=50 - _globals['_IDENTIFIER']._serialized_end=224 - _globals['_WORKFLOWEXECUTIONIDENTIFIER']._serialized_start=226 - _globals['_WORKFLOWEXECUTIONIDENTIFIER']._serialized_end=325 - _globals['_NODEEXECUTIONIDENTIFIER']._serialized_start=328 - _globals['_NODEEXECUTIONIDENTIFIER']._serialized_end=457 - _globals['_TASKEXECUTIONIDENTIFIER']._serialized_start=460 - _globals['_TASKEXECUTIONIDENTIFIER']._serialized_end=658 - _globals['_SIGNALIDENTIFIER']._serialized_start=660 - _globals['_SIGNALIDENTIFIER']._serialized_end=786 + _globals['_IDENTIFIER']._serialized_end=242 + _globals['_WORKFLOWEXECUTIONIDENTIFIER']._serialized_start=244 + _globals['_WORKFLOWEXECUTIONIDENTIFIER']._serialized_end=361 + _globals['_NODEEXECUTIONIDENTIFIER']._serialized_start=364 + _globals['_NODEEXECUTIONIDENTIFIER']._serialized_end=493 + _globals['_TASKEXECUTIONIDENTIFIER']._serialized_start=496 + _globals['_TASKEXECUTIONIDENTIFIER']._serialized_end=694 + _globals['_SIGNALIDENTIFIER']._serialized_start=696 + _globals['_SIGNALIDENTIFIER']._serialized_end=822 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/core/identifier_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/core/identifier_pb2.pyi index 7adea46343..5d3857195e 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/identifier_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/core/identifier_pb2.pyi @@ -19,28 +19,32 @@ LAUNCH_PLAN: ResourceType DATASET: ResourceType class Identifier(_message.Message): - __slots__ = ["resource_type", "project", "domain", "name", "version"] + __slots__ = ["resource_type", "project", "domain", "name", "version", "org"] RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] VERSION_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] resource_type: ResourceType project: str domain: str name: str version: str - def __init__(self, resource_type: _Optional[_Union[ResourceType, str]] = ..., project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ... + org: str + def __init__(self, resource_type: _Optional[_Union[ResourceType, str]] = ..., project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ..., version: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class WorkflowExecutionIdentifier(_message.Message): - __slots__ = ["project", "domain", "name"] + __slots__ = ["project", "domain", "name", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str name: str - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class NodeExecutionIdentifier(_message.Message): __slots__ = ["node_id", "execution_id"] diff --git a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py index 1de3b8a96e..7a86aa9316 100644 --- a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py @@ -16,7 +16,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&flyteidl/datacatalog/datacatalog.proto\x12\x0b\x64\x61tacatalog\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"F\n\x14\x43reateDatasetRequest\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x17\n\x15\x43reateDatasetResponse\"E\n\x11GetDatasetRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"D\n\x12GetDatasetResponse\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x96\x01\n\x12GetArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagNameB\x0e\n\x0cquery_handle\"H\n\x13GetArtifactResponse\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"J\n\x15\x43reateArtifactRequest\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"\x18\n\x16\x43reateArtifactResponse\"3\n\rAddTagRequest\x12\"\n\x03tag\x18\x01 \x01(\x0b\x32\x10.datacatalog.TagR\x03tag\"\x10\n\x0e\x41\x64\x64TagResponse\"\xbf\x01\n\x14ListArtifactsRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12\x35\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x03 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"k\n\x15ListArtifactsResponse\x12\x33\n\tartifacts\x18\x01 \x03(\x0b\x32\x15.datacatalog.ArtifactR\tartifacts\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\x8c\x01\n\x13ListDatasetsRequest\x12\x35\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x02 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"g\n\x14ListDatasetsResponse\x12\x30\n\x08\x64\x61tasets\x18\x01 \x03(\x0b\x32\x14.datacatalog.DatasetR\x08\x64\x61tasets\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\xfb\x01\n\x15UpdateArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagName\x12-\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x05 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadataB\x0e\n\x0cquery_handle\"9\n\x16UpdateArtifactResponse\x12\x1f\n\x0b\x61rtifact_id\x18\x01 \x01(\tR\nartifactId\"a\n\rReservationID\x12\x35\n\ndataset_id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\tdatasetId\x12\x19\n\x08tag_name\x18\x02 \x01(\tR\x07tagName\"\xc7\x01\n\x1dGetOrExtendReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\"\xa3\x02\n\x0bReservation\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\x12\x39\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12\x31\n\x08metadata\x18\x06 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\"\\\n\x1eGetOrExtendReservationResponse\x12:\n\x0breservation\x18\x01 \x01(\x0b\x32\x18.datacatalog.ReservationR\x0breservation\"y\n\x19ReleaseReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\"\x1c\n\x1aReleaseReservationResponse\"\x8a\x01\n\x07\x44\x61taset\x12&\n\x02id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x02id\x12\x31\n\x08metadata\x18\x02 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12$\n\rpartitionKeys\x18\x03 \x03(\tR\rpartitionKeys\"3\n\tPartition\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\x7f\n\tDatasetID\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\x12\x12\n\x04UUID\x18\x05 \x01(\tR\x04UUID\"\xc7\x02\n\x08\x41rtifact\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x30\n\x07\x64\x61taset\x18\x02 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12-\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x04 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12\x36\n\npartitions\x18\x05 \x03(\x0b\x32\x16.datacatalog.PartitionR\npartitions\x12$\n\x04tags\x18\x06 \x03(\x0b\x32\x10.datacatalog.TagR\x04tags\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\"P\n\x0c\x41rtifactData\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value\"l\n\x03Tag\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0b\x61rtifact_id\x18\x02 \x01(\tR\nartifactId\x12\x30\n\x07\x64\x61taset\x18\x03 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"\x81\x01\n\x08Metadata\x12:\n\x07key_map\x18\x01 \x03(\x0b\x32!.datacatalog.Metadata.KeyMapEntryR\x06keyMap\x1a\x39\n\x0bKeyMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"O\n\x10\x46ilterExpression\x12;\n\x07\x66ilters\x18\x01 \x03(\x0b\x32!.datacatalog.SinglePropertyFilterR\x07\x66ilters\"\xce\x03\n\x14SinglePropertyFilter\x12?\n\ntag_filter\x18\x01 \x01(\x0b\x32\x1e.datacatalog.TagPropertyFilterH\x00R\ttagFilter\x12Q\n\x10partition_filter\x18\x02 \x01(\x0b\x32$.datacatalog.PartitionPropertyFilterH\x00R\x0fpartitionFilter\x12N\n\x0f\x61rtifact_filter\x18\x03 \x01(\x0b\x32#.datacatalog.ArtifactPropertyFilterH\x00R\x0e\x61rtifactFilter\x12K\n\x0e\x64\x61taset_filter\x18\x04 \x01(\x0b\x32\".datacatalog.DatasetPropertyFilterH\x00R\rdatasetFilter\x12P\n\x08operator\x18\n \x01(\x0e\x32\x34.datacatalog.SinglePropertyFilter.ComparisonOperatorR\x08operator\" \n\x12\x43omparisonOperator\x12\n\n\x06\x45QUALS\x10\x00\x42\x11\n\x0fproperty_filter\"G\n\x16\x41rtifactPropertyFilter\x12!\n\x0b\x61rtifact_id\x18\x01 \x01(\tH\x00R\nartifactIdB\n\n\x08property\"<\n\x11TagPropertyFilter\x12\x1b\n\x08tag_name\x18\x01 \x01(\tH\x00R\x07tagNameB\n\n\x08property\"[\n\x17PartitionPropertyFilter\x12\x34\n\x07key_val\x18\x01 \x01(\x0b\x32\x19.datacatalog.KeyValuePairH\x00R\x06keyValB\n\n\x08property\"6\n\x0cKeyValuePair\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\x8b\x01\n\x15\x44\x61tasetPropertyFilter\x12\x1a\n\x07project\x18\x01 \x01(\tH\x00R\x07project\x12\x14\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x12\x18\n\x06\x64omain\x18\x03 \x01(\tH\x00R\x06\x64omain\x12\x1a\n\x07version\x18\x04 \x01(\tH\x00R\x07versionB\n\n\x08property\"\x93\x02\n\x11PaginationOptions\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12@\n\x07sortKey\x18\x03 \x01(\x0e\x32&.datacatalog.PaginationOptions.SortKeyR\x07sortKey\x12\x46\n\tsortOrder\x18\x04 \x01(\x0e\x32(.datacatalog.PaginationOptions.SortOrderR\tsortOrder\"*\n\tSortOrder\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\x1c\n\x07SortKey\x12\x11\n\rCREATION_TIME\x10\x00\x32\x86\x07\n\x0b\x44\x61taCatalog\x12V\n\rCreateDataset\x12!.datacatalog.CreateDatasetRequest\x1a\".datacatalog.CreateDatasetResponse\x12M\n\nGetDataset\x12\x1e.datacatalog.GetDatasetRequest\x1a\x1f.datacatalog.GetDatasetResponse\x12Y\n\x0e\x43reateArtifact\x12\".datacatalog.CreateArtifactRequest\x1a#.datacatalog.CreateArtifactResponse\x12P\n\x0bGetArtifact\x12\x1f.datacatalog.GetArtifactRequest\x1a .datacatalog.GetArtifactResponse\x12\x41\n\x06\x41\x64\x64Tag\x12\x1a.datacatalog.AddTagRequest\x1a\x1b.datacatalog.AddTagResponse\x12V\n\rListArtifacts\x12!.datacatalog.ListArtifactsRequest\x1a\".datacatalog.ListArtifactsResponse\x12S\n\x0cListDatasets\x12 .datacatalog.ListDatasetsRequest\x1a!.datacatalog.ListDatasetsResponse\x12Y\n\x0eUpdateArtifact\x12\".datacatalog.UpdateArtifactRequest\x1a#.datacatalog.UpdateArtifactResponse\x12q\n\x16GetOrExtendReservation\x12*.datacatalog.GetOrExtendReservationRequest\x1a+.datacatalog.GetOrExtendReservationResponse\x12\x65\n\x12ReleaseReservation\x12&.datacatalog.ReleaseReservationRequest\x1a\'.datacatalog.ReleaseReservationResponseB\xb2\x01\n\x0f\x63om.datacatalogB\x10\x44\x61tacatalogProtoP\x01ZAgithub.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/datacatalog\xa2\x02\x03\x44XX\xaa\x02\x0b\x44\x61tacatalog\xca\x02\x0b\x44\x61tacatalog\xe2\x02\x17\x44\x61tacatalog\\GPBMetadata\xea\x02\x0b\x44\x61tacatalogb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&flyteidl/datacatalog/datacatalog.proto\x12\x0b\x64\x61tacatalog\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"F\n\x14\x43reateDatasetRequest\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x17\n\x15\x43reateDatasetResponse\"E\n\x11GetDatasetRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"D\n\x12GetDatasetResponse\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x96\x01\n\x12GetArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagNameB\x0e\n\x0cquery_handle\"H\n\x13GetArtifactResponse\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"J\n\x15\x43reateArtifactRequest\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"\x18\n\x16\x43reateArtifactResponse\"3\n\rAddTagRequest\x12\"\n\x03tag\x18\x01 \x01(\x0b\x32\x10.datacatalog.TagR\x03tag\"\x10\n\x0e\x41\x64\x64TagResponse\"\xbf\x01\n\x14ListArtifactsRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12\x35\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x03 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"k\n\x15ListArtifactsResponse\x12\x33\n\tartifacts\x18\x01 \x03(\x0b\x32\x15.datacatalog.ArtifactR\tartifacts\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\x8c\x01\n\x13ListDatasetsRequest\x12\x35\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x02 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"g\n\x14ListDatasetsResponse\x12\x30\n\x08\x64\x61tasets\x18\x01 \x03(\x0b\x32\x14.datacatalog.DatasetR\x08\x64\x61tasets\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\xfb\x01\n\x15UpdateArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagName\x12-\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x05 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadataB\x0e\n\x0cquery_handle\"9\n\x16UpdateArtifactResponse\x12\x1f\n\x0b\x61rtifact_id\x18\x01 \x01(\tR\nartifactId\"a\n\rReservationID\x12\x35\n\ndataset_id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\tdatasetId\x12\x19\n\x08tag_name\x18\x02 \x01(\tR\x07tagName\"\xc7\x01\n\x1dGetOrExtendReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\"\xa3\x02\n\x0bReservation\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\x12\x39\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12\x31\n\x08metadata\x18\x06 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\"\\\n\x1eGetOrExtendReservationResponse\x12:\n\x0breservation\x18\x01 \x01(\x0b\x32\x18.datacatalog.ReservationR\x0breservation\"y\n\x19ReleaseReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\"\x1c\n\x1aReleaseReservationResponse\"\x8a\x01\n\x07\x44\x61taset\x12&\n\x02id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x02id\x12\x31\n\x08metadata\x18\x02 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12$\n\rpartitionKeys\x18\x03 \x03(\tR\rpartitionKeys\"3\n\tPartition\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\xaf\x01\n\tDatasetID\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\x12\x12\n\x04UUID\x18\x05 \x01(\tR\x04UUID\x12\x1c\n\tpartition\x18\x06 \x01(\tR\tpartition\x12\x10\n\x03org\x18\x07 \x01(\tR\x03org\"\xc7\x02\n\x08\x41rtifact\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x30\n\x07\x64\x61taset\x18\x02 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12-\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x04 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12\x36\n\npartitions\x18\x05 \x03(\x0b\x32\x16.datacatalog.PartitionR\npartitions\x12$\n\x04tags\x18\x06 \x03(\x0b\x32\x10.datacatalog.TagR\x04tags\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\"P\n\x0c\x41rtifactData\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value\"l\n\x03Tag\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0b\x61rtifact_id\x18\x02 \x01(\tR\nartifactId\x12\x30\n\x07\x64\x61taset\x18\x03 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"\x81\x01\n\x08Metadata\x12:\n\x07key_map\x18\x01 \x03(\x0b\x32!.datacatalog.Metadata.KeyMapEntryR\x06keyMap\x1a\x39\n\x0bKeyMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"O\n\x10\x46ilterExpression\x12;\n\x07\x66ilters\x18\x01 \x03(\x0b\x32!.datacatalog.SinglePropertyFilterR\x07\x66ilters\"\xce\x03\n\x14SinglePropertyFilter\x12?\n\ntag_filter\x18\x01 \x01(\x0b\x32\x1e.datacatalog.TagPropertyFilterH\x00R\ttagFilter\x12Q\n\x10partition_filter\x18\x02 \x01(\x0b\x32$.datacatalog.PartitionPropertyFilterH\x00R\x0fpartitionFilter\x12N\n\x0f\x61rtifact_filter\x18\x03 \x01(\x0b\x32#.datacatalog.ArtifactPropertyFilterH\x00R\x0e\x61rtifactFilter\x12K\n\x0e\x64\x61taset_filter\x18\x04 \x01(\x0b\x32\".datacatalog.DatasetPropertyFilterH\x00R\rdatasetFilter\x12P\n\x08operator\x18\n \x01(\x0e\x32\x34.datacatalog.SinglePropertyFilter.ComparisonOperatorR\x08operator\" \n\x12\x43omparisonOperator\x12\n\n\x06\x45QUALS\x10\x00\x42\x11\n\x0fproperty_filter\"G\n\x16\x41rtifactPropertyFilter\x12!\n\x0b\x61rtifact_id\x18\x01 \x01(\tH\x00R\nartifactIdB\n\n\x08property\"<\n\x11TagPropertyFilter\x12\x1b\n\x08tag_name\x18\x01 \x01(\tH\x00R\x07tagNameB\n\n\x08property\"[\n\x17PartitionPropertyFilter\x12\x34\n\x07key_val\x18\x01 \x01(\x0b\x32\x19.datacatalog.KeyValuePairH\x00R\x06keyValB\n\n\x08property\"6\n\x0cKeyValuePair\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\xab\x01\n\x15\x44\x61tasetPropertyFilter\x12\x1a\n\x07project\x18\x01 \x01(\tH\x00R\x07project\x12\x14\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x12\x18\n\x06\x64omain\x18\x03 \x01(\tH\x00R\x06\x64omain\x12\x1a\n\x07version\x18\x04 \x01(\tH\x00R\x07version\x12\x1e\n\tpartition\x18\x05 \x01(\tH\x00R\tpartitionB\n\n\x08property\"\x93\x02\n\x11PaginationOptions\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12@\n\x07sortKey\x18\x03 \x01(\x0e\x32&.datacatalog.PaginationOptions.SortKeyR\x07sortKey\x12\x46\n\tsortOrder\x18\x04 \x01(\x0e\x32(.datacatalog.PaginationOptions.SortOrderR\tsortOrder\"*\n\tSortOrder\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\x1c\n\x07SortKey\x12\x11\n\rCREATION_TIME\x10\x00\x32\x86\x07\n\x0b\x44\x61taCatalog\x12V\n\rCreateDataset\x12!.datacatalog.CreateDatasetRequest\x1a\".datacatalog.CreateDatasetResponse\x12M\n\nGetDataset\x12\x1e.datacatalog.GetDatasetRequest\x1a\x1f.datacatalog.GetDatasetResponse\x12Y\n\x0e\x43reateArtifact\x12\".datacatalog.CreateArtifactRequest\x1a#.datacatalog.CreateArtifactResponse\x12P\n\x0bGetArtifact\x12\x1f.datacatalog.GetArtifactRequest\x1a .datacatalog.GetArtifactResponse\x12\x41\n\x06\x41\x64\x64Tag\x12\x1a.datacatalog.AddTagRequest\x1a\x1b.datacatalog.AddTagResponse\x12V\n\rListArtifacts\x12!.datacatalog.ListArtifactsRequest\x1a\".datacatalog.ListArtifactsResponse\x12S\n\x0cListDatasets\x12 .datacatalog.ListDatasetsRequest\x1a!.datacatalog.ListDatasetsResponse\x12Y\n\x0eUpdateArtifact\x12\".datacatalog.UpdateArtifactRequest\x1a#.datacatalog.UpdateArtifactResponse\x12q\n\x16GetOrExtendReservation\x12*.datacatalog.GetOrExtendReservationRequest\x1a+.datacatalog.GetOrExtendReservationResponse\x12\x65\n\x12ReleaseReservation\x12&.datacatalog.ReleaseReservationRequest\x1a\'.datacatalog.ReleaseReservationResponseB\xb2\x01\n\x0f\x63om.datacatalogB\x10\x44\x61tacatalogProtoP\x01ZAgithub.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/datacatalog\xa2\x02\x03\x44XX\xaa\x02\x0b\x44\x61tacatalog\xca\x02\x0b\x44\x61tacatalog\xe2\x02\x17\x44\x61tacatalog\\GPBMetadata\xea\x02\x0b\x44\x61tacatalogb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -75,40 +75,40 @@ _globals['_DATASET']._serialized_end=2633 _globals['_PARTITION']._serialized_start=2635 _globals['_PARTITION']._serialized_end=2686 - _globals['_DATASETID']._serialized_start=2688 - _globals['_DATASETID']._serialized_end=2815 - _globals['_ARTIFACT']._serialized_start=2818 - _globals['_ARTIFACT']._serialized_end=3145 - _globals['_ARTIFACTDATA']._serialized_start=3147 - _globals['_ARTIFACTDATA']._serialized_end=3227 - _globals['_TAG']._serialized_start=3229 - _globals['_TAG']._serialized_end=3337 - _globals['_METADATA']._serialized_start=3340 - _globals['_METADATA']._serialized_end=3469 - _globals['_METADATA_KEYMAPENTRY']._serialized_start=3412 - _globals['_METADATA_KEYMAPENTRY']._serialized_end=3469 - _globals['_FILTEREXPRESSION']._serialized_start=3471 - _globals['_FILTEREXPRESSION']._serialized_end=3550 - _globals['_SINGLEPROPERTYFILTER']._serialized_start=3553 - _globals['_SINGLEPROPERTYFILTER']._serialized_end=4015 - _globals['_SINGLEPROPERTYFILTER_COMPARISONOPERATOR']._serialized_start=3964 - _globals['_SINGLEPROPERTYFILTER_COMPARISONOPERATOR']._serialized_end=3996 - _globals['_ARTIFACTPROPERTYFILTER']._serialized_start=4017 - _globals['_ARTIFACTPROPERTYFILTER']._serialized_end=4088 - _globals['_TAGPROPERTYFILTER']._serialized_start=4090 - _globals['_TAGPROPERTYFILTER']._serialized_end=4150 - _globals['_PARTITIONPROPERTYFILTER']._serialized_start=4152 - _globals['_PARTITIONPROPERTYFILTER']._serialized_end=4243 - _globals['_KEYVALUEPAIR']._serialized_start=4245 - _globals['_KEYVALUEPAIR']._serialized_end=4299 - _globals['_DATASETPROPERTYFILTER']._serialized_start=4302 - _globals['_DATASETPROPERTYFILTER']._serialized_end=4441 - _globals['_PAGINATIONOPTIONS']._serialized_start=4444 - _globals['_PAGINATIONOPTIONS']._serialized_end=4719 - _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_start=4647 - _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_end=4689 - _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_start=4691 - _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_end=4719 - _globals['_DATACATALOG']._serialized_start=4722 - _globals['_DATACATALOG']._serialized_end=5624 + _globals['_DATASETID']._serialized_start=2689 + _globals['_DATASETID']._serialized_end=2864 + _globals['_ARTIFACT']._serialized_start=2867 + _globals['_ARTIFACT']._serialized_end=3194 + _globals['_ARTIFACTDATA']._serialized_start=3196 + _globals['_ARTIFACTDATA']._serialized_end=3276 + _globals['_TAG']._serialized_start=3278 + _globals['_TAG']._serialized_end=3386 + _globals['_METADATA']._serialized_start=3389 + _globals['_METADATA']._serialized_end=3518 + _globals['_METADATA_KEYMAPENTRY']._serialized_start=3461 + _globals['_METADATA_KEYMAPENTRY']._serialized_end=3518 + _globals['_FILTEREXPRESSION']._serialized_start=3520 + _globals['_FILTEREXPRESSION']._serialized_end=3599 + _globals['_SINGLEPROPERTYFILTER']._serialized_start=3602 + _globals['_SINGLEPROPERTYFILTER']._serialized_end=4064 + _globals['_SINGLEPROPERTYFILTER_COMPARISONOPERATOR']._serialized_start=4013 + _globals['_SINGLEPROPERTYFILTER_COMPARISONOPERATOR']._serialized_end=4045 + _globals['_ARTIFACTPROPERTYFILTER']._serialized_start=4066 + _globals['_ARTIFACTPROPERTYFILTER']._serialized_end=4137 + _globals['_TAGPROPERTYFILTER']._serialized_start=4139 + _globals['_TAGPROPERTYFILTER']._serialized_end=4199 + _globals['_PARTITIONPROPERTYFILTER']._serialized_start=4201 + _globals['_PARTITIONPROPERTYFILTER']._serialized_end=4292 + _globals['_KEYVALUEPAIR']._serialized_start=4294 + _globals['_KEYVALUEPAIR']._serialized_end=4348 + _globals['_DATASETPROPERTYFILTER']._serialized_start=4351 + _globals['_DATASETPROPERTYFILTER']._serialized_end=4522 + _globals['_PAGINATIONOPTIONS']._serialized_start=4525 + _globals['_PAGINATIONOPTIONS']._serialized_end=4800 + _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_start=4728 + _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_end=4770 + _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_start=4772 + _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_end=4800 + _globals['_DATACATALOG']._serialized_start=4803 + _globals['_DATACATALOG']._serialized_end=5705 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi index 94cd96797b..18d6684d61 100644 --- a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi @@ -190,18 +190,22 @@ class Partition(_message.Message): def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... class DatasetID(_message.Message): - __slots__ = ["project", "name", "domain", "version", "UUID"] + __slots__ = ["project", "name", "domain", "version", "UUID", "partition", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] VERSION_FIELD_NUMBER: _ClassVar[int] UUID_FIELD_NUMBER: _ClassVar[int] + PARTITION_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str name: str domain: str version: str UUID: str - def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ..., domain: _Optional[str] = ..., version: _Optional[str] = ..., UUID: _Optional[str] = ...) -> None: ... + partition: str + org: str + def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ..., domain: _Optional[str] = ..., version: _Optional[str] = ..., UUID: _Optional[str] = ..., partition: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class Artifact(_message.Message): __slots__ = ["id", "dataset", "data", "metadata", "partitions", "tags", "created_at"] @@ -303,16 +307,18 @@ class KeyValuePair(_message.Message): def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... class DatasetPropertyFilter(_message.Message): - __slots__ = ["project", "name", "domain", "version"] + __slots__ = ["project", "name", "domain", "version", "partition"] PROJECT_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] VERSION_FIELD_NUMBER: _ClassVar[int] + PARTITION_FIELD_NUMBER: _ClassVar[int] project: str name: str domain: str version: str - def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ..., domain: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ... + partition: str + def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ..., domain: _Optional[str] = ..., version: _Optional[str] = ..., partition: _Optional[str] = ...) -> None: ... class PaginationOptions(_message.Message): __slots__ = ["limit", "token", "sortKey", "sortOrder"] diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py index d48148be62..0599b4dfaf 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py @@ -29,7 +29,7 @@ from flyteidl.admin import description_entity_pb2 as flyteidl_dot_admin_dot_description__entity__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(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\'flyteidl/admin/project_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\'flyteidl/admin/description_entity.proto2\x84N\n\x0c\x41\x64minService\x12m\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\x88\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"E\x82\xd3\xe4\x93\x02?\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x97\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"+\x82\xd3\xe4\x93\x02%\x12#/api/v1/task_ids/{project}/{domain}\x12\xae\x01\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"b\x82\xd3\xe4\x93\x02\\Z(\x12&/api/v1/tasks/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12}\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\x94\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"I\x82\xd3\xe4\x93\x02\x43\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x9f\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"/\x82\xd3\xe4\x93\x02)\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xbe\x01\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"j\x82\xd3\xe4\x93\x02\x64Z,\x12*/api/v1/workflows/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\x86\x01\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\x9b\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"L\x82\xd3\xe4\x93\x02\x46\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xa2\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"F\x82\xd3\xe4\x93\x02@\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\x9c\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"6\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xa4\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"2\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xc8\x01\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"p\x82\xd3\xe4\x93\x02jZ/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\xb6\x01\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"O\x82\xd3\xe4\x93\x02I:\x01*\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x81\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\x8e\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x8b\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\x95\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xa4\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"@\x82\xd3\xe4\x93\x02::\x01*\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xb9\x01\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"B\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\x89\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"3\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xad\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"@\x82\xd3\xe4\x93\x02::\x01**5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xd2\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"v\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}\x12\xde\x01\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\xa5\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb3\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}\x12\xee\x01\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"{\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}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12q\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\" \x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/v1/projects/{id}\x12\x66\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\x99\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\x89\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\x89\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\x80\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xa3\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}\x12\x98\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xb4\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}\x12\x9c\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xa8\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}\x12\xe3\x01\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"U\x82\xd3\xe4\x93\x02O:\x01*\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\xc1\x01\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\xcd\x01\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"?\x82\xd3\xe4\x93\x02\x39:\x01**4/api/v1/project_domain_attributes/{project}/{domain}\x12\xb6\x01\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\":\x82\xd3\xe4\x93\x02\x34:\x01*\x1a//api/v1/project_attributes/{attributes.project}\x12\x9f\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\",\x82\xd3\xe4\x93\x02&\x12$/api/v1/project_attributes/{project}\x12\xab\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"/\x82\xd3\xe4\x93\x02):\x01**$/api/v1/project_attributes/{project}\x12\xe4\x01\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"e\x82\xd3\xe4\x93\x02_:\x01*\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\xb7\x01\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xc3\x01\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"D\x82\xd3\xe4\x93\x02>:\x01**9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xa0\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x12\x9f\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"A\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\xa7\x01\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"Q\x82\xd3\xe4\x93\x02K\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\xbe\x01\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"T\x82\xd3\xe4\x93\x02N:\x01*\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xc4\x01\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"g\x82\xd3\xe4\x93\x02\x61\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x92\x02\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xa1\x01\x82\xd3\xe4\x93\x02\x9a\x01ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\xc5\x01\n\x13GetExecutionMetrics\x12\x32.flyteidl.admin.WorkflowExecutionGetMetricsRequest\x1a\x33.flyteidl.admin.WorkflowExecutionGetMetricsResponse\"E\x82\xd3\xe4\x93\x02?\x12=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}B\xc2\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(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\'flyteidl/admin/project_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\'flyteidl/admin/description_entity.proto2\xa5r\n\x0c\x41\x64minService\x12m\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\xd8\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc5\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"Y\x82\xd3\xe4\x93\x02SZ,\x12*/api/v1/tasks/org/{org}/{project}/{domain}\x12#/api/v1/task_ids/{project}/{domain}\x12\xa8\x02\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\xdb\x01\x82\xd3\xe4\x93\x02\xd4\x01Z?\x12=/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}Z(\x12&/api/v1/tasks/{id.project}/{id.domain}Z5\x12\x33/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12}\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\xe8\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"\x9c\x01\x82\xd3\xe4\x93\x02\x95\x01ZP\x12N/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xd1\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"a\x82\xd3\xe4\x93\x02[Z0\x12./api/v1/workflows/org/{org}/{project}/{domain}\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xc0\x02\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01ZC\x12\x41/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}Z,\x12*/api/v1/workflows/{id.project}/{id.domain}Z9\x12\x37/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\x86\x01\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\xf2\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\xa2\x01\x82\xd3\xe4\x93\x02\x9b\x01ZS\x12Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01ZM\x12K/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\x9c\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"6\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xdc\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"j\x82\xd3\xe4\x93\x02\x64Z6\x12\x34/api/v1/launch_plan_ids/org/{org}/{project}/{domain}\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xd0\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xf7\x01\x82\xd3\xe4\x93\x02\xf0\x01ZF\x12\x44/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}Z<\x12:/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\x8d\x02\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xa5\x01\x82\xd3\xe4\x93\x02\x9e\x01:\x01*ZS\x1aQ/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x81\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\x8e\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x8b\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\xdc\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"\x83\x01\x82\xd3\xe4\x93\x02}ZD\x12\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xef\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"\x8a\x01\x82\xd3\xe4\x93\x02\x83\x01:\x01*ZG:\x01*\x1a\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\x86\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8e\x01\x82\xd3\xe4\x93\x02\x87\x01ZI\x12G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\xc5\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"o\x82\xd3\xe4\x93\x02iZ:\x12\x38/api/v1/executions/org/{id.org}/{id.project}/{id.domain}\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xfd\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZL:\x01**G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}*5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xe2\x02\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x85\x02\x82\xd3\xe4\x93\x02\xfe\x01Z\x8b\x01\x12\x88\x01/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xf9\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x95\x02\x82\xd3\xe4\x93\x02\x8e\x02Z\x96\x01\x12\x93\x01/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\x8f\x08\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x9d\x07\x82\xd3\xe4\x93\x02\x96\x07Z\xe7\x03\x12\xe4\x03/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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}\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}\x12\x83\x03\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\x8f\x02\x82\xd3\xe4\x93\x02\x88\x02Z\x90\x01\x12\x8d\x01/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12\x87\x02\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"\xb5\x01\x82\xd3\xe4\x93\x02\xae\x01:\x01*Z%:\x01*\x1a /api/v1/projects/{identifier.id}Z/:\x01*\x1a*/api/v1/projects/org/{identifier.org}/{id}Z::\x01*\x1a\x35/api/v1/projects/org/{identifier.org}/{identifier.id}\x1a\x15/api/v1/projects/{id}\x12\x66\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\x99\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\x89\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\x89\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\xcb\x05\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xee\x04\x82\xd3\xe4\x93\x02\xe7\x04Z\xc8\x02\x12\xc5\x02/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\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}\x12\xf1\x03\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\x8d\x03\x82\xd3\xe4\x93\x02\x86\x03Z\xd6\x01\x12\xd3\x01/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\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}\x12\xec\x05\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xf8\x04\x82\xd3\xe4\x93\x02\xf1\x04Z\xcd\x02\x12\xca\x02/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\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}\x12\xcb\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xbc\x01\x82\xd3\xe4\x93\x02\xb5\x01:\x01*Zd:\x01*\x1a_/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\x83\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"~\x82\xd3\xe4\x93\x02xZ@\x12>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\x93\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x84\x01\x82\xd3\xe4\x93\x02~:\x01*ZC:\x01**>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}*4/api/v1/project_domain_attributes/{project}/{domain}\x12\x8a\x02\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x8d\x01\x82\xd3\xe4\x93\x02\x86\x01:\x01*ZP:\x01*\x1aK/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}\x1a//api/v1/project_attributes/{attributes.project}\x12\xd8\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"e\x82\xd3\xe4\x93\x02_Z7\x12\x35/api/v1/project_domain_attributes/org/{org}/{project}\x12$/api/v1/project_attributes/{project}\x12\xe7\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"k\x82\xd3\xe4\x93\x02\x65:\x01*Z::\x01**5/api/v1/project_domain_attributes/org/{org}/{project}*$/api/v1/project_attributes/{project}\x12\xdc\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xdc\x01\x82\xd3\xe4\x93\x02\xd5\x01:\x01*Zt:\x01*\x1ao/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\x80\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\x8f\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZH:\x01**C/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xa0\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x12\xe8\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\x83\x02\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"\xac\x01\x82\xd3\xe4\x93\x02\xa5\x01ZX\x12V/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x9d\x02\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"\xb2\x01\x82\xd3\xe4\x93\x02\xab\x01:\x01*Z[:\x01*\x1aV/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xb6\x02\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"\xd8\x01\x82\xd3\xe4\x93\x02\xd1\x01Zn\x12l/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc8\x03\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xd7\x02\x82\xd3\xe4\x93\x02\xd0\x02Z^\x12\\/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}ZT\x12R/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x95\x02\n\x13GetExecutionMetrics\x12\x32.flyteidl.admin.WorkflowExecutionGetMetricsRequest\x1a\x33.flyteidl.admin.WorkflowExecutionGetMetricsResponse\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}B\xc2\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -41,33 +41,33 @@ _ADMINSERVICE.methods_by_name['CreateTask']._options = None _ADMINSERVICE.methods_by_name['CreateTask']._serialized_options = b'\202\323\344\223\002\022:\001*\"\r/api/v1/tasks' _ADMINSERVICE.methods_by_name['GetTask']._options = None - _ADMINSERVICE.methods_by_name['GetTask']._serialized_options = b'\202\323\344\223\002?\022=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}' + _ADMINSERVICE.methods_by_name['GetTask']._serialized_options = b'\202\323\344\223\002\215\001ZL\022J/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\022=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['ListTaskIds']._options = None - _ADMINSERVICE.methods_by_name['ListTaskIds']._serialized_options = b'\202\323\344\223\002%\022#/api/v1/task_ids/{project}/{domain}' + _ADMINSERVICE.methods_by_name['ListTaskIds']._serialized_options = b'\202\323\344\223\002SZ,\022*/api/v1/tasks/org/{org}/{project}/{domain}\022#/api/v1/task_ids/{project}/{domain}' _ADMINSERVICE.methods_by_name['ListTasks']._options = None - _ADMINSERVICE.methods_by_name['ListTasks']._serialized_options = b'\202\323\344\223\002\\Z(\022&/api/v1/tasks/{id.project}/{id.domain}\0220/api/v1/tasks/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['ListTasks']._serialized_options = b'\202\323\344\223\002\324\001Z?\022=/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}Z(\022&/api/v1/tasks/{id.project}/{id.domain}Z5\0223/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}\0220/api/v1/tasks/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['CreateWorkflow']._options = None _ADMINSERVICE.methods_by_name['CreateWorkflow']._serialized_options = b'\202\323\344\223\002\026:\001*\"\021/api/v1/workflows' _ADMINSERVICE.methods_by_name['GetWorkflow']._options = None - _ADMINSERVICE.methods_by_name['GetWorkflow']._serialized_options = b'\202\323\344\223\002C\022A/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}' + _ADMINSERVICE.methods_by_name['GetWorkflow']._serialized_options = b'\202\323\344\223\002\225\001ZP\022N/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\022A/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['ListWorkflowIds']._options = None - _ADMINSERVICE.methods_by_name['ListWorkflowIds']._serialized_options = b'\202\323\344\223\002)\022\'/api/v1/workflow_ids/{project}/{domain}' + _ADMINSERVICE.methods_by_name['ListWorkflowIds']._serialized_options = b'\202\323\344\223\002[Z0\022./api/v1/workflows/org/{org}/{project}/{domain}\022\'/api/v1/workflow_ids/{project}/{domain}' _ADMINSERVICE.methods_by_name['ListWorkflows']._options = None - _ADMINSERVICE.methods_by_name['ListWorkflows']._serialized_options = b'\202\323\344\223\002dZ,\022*/api/v1/workflows/{id.project}/{id.domain}\0224/api/v1/workflows/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['ListWorkflows']._serialized_options = b'\202\323\344\223\002\344\001ZC\022A/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}Z,\022*/api/v1/workflows/{id.project}/{id.domain}Z9\0227/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}\0224/api/v1/workflows/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['CreateLaunchPlan']._options = None _ADMINSERVICE.methods_by_name['CreateLaunchPlan']._serialized_options = b'\202\323\344\223\002\031:\001*\"\024/api/v1/launch_plans' _ADMINSERVICE.methods_by_name['GetLaunchPlan']._options = None - _ADMINSERVICE.methods_by_name['GetLaunchPlan']._serialized_options = b'\202\323\344\223\002F\022D/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}' + _ADMINSERVICE.methods_by_name['GetLaunchPlan']._serialized_options = b'\202\323\344\223\002\233\001ZS\022Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\022D/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['GetActiveLaunchPlan']._options = None - _ADMINSERVICE.methods_by_name['GetActiveLaunchPlan']._serialized_options = b'\202\323\344\223\002@\022>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['GetActiveLaunchPlan']._serialized_options = b'\202\323\344\223\002\217\001ZM\022K/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}\022>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['ListActiveLaunchPlans']._options = None _ADMINSERVICE.methods_by_name['ListActiveLaunchPlans']._serialized_options = b'\202\323\344\223\0020\022./api/v1/active_launch_plans/{project}/{domain}' _ADMINSERVICE.methods_by_name['ListLaunchPlanIds']._options = None - _ADMINSERVICE.methods_by_name['ListLaunchPlanIds']._serialized_options = b'\202\323\344\223\002,\022*/api/v1/launch_plan_ids/{project}/{domain}' + _ADMINSERVICE.methods_by_name['ListLaunchPlanIds']._serialized_options = b'\202\323\344\223\002dZ6\0224/api/v1/launch_plan_ids/org/{org}/{project}/{domain}\022*/api/v1/launch_plan_ids/{project}/{domain}' _ADMINSERVICE.methods_by_name['ListLaunchPlans']._options = None - _ADMINSERVICE.methods_by_name['ListLaunchPlans']._serialized_options = b'\202\323\344\223\002jZ/\022-/api/v1/launch_plans/{id.project}/{id.domain}\0227/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['ListLaunchPlans']._serialized_options = b'\202\323\344\223\002\360\001ZF\022D/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}Z/\022-/api/v1/launch_plans/{id.project}/{id.domain}Z<\022:/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}\0227/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['UpdateLaunchPlan']._options = None - _ADMINSERVICE.methods_by_name['UpdateLaunchPlan']._serialized_options = b'\202\323\344\223\002I:\001*\032D/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}' + _ADMINSERVICE.methods_by_name['UpdateLaunchPlan']._serialized_options = b'\202\323\344\223\002\236\001:\001*ZS\032Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\032D/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['CreateExecution']._options = None _ADMINSERVICE.methods_by_name['CreateExecution']._serialized_options = b'\202\323\344\223\002\027:\001*\"\022/api/v1/executions' _ADMINSERVICE.methods_by_name['RelaunchExecution']._options = None @@ -75,27 +75,27 @@ _ADMINSERVICE.methods_by_name['RecoverExecution']._options = None _ADMINSERVICE.methods_by_name['RecoverExecution']._serialized_options = b'\202\323\344\223\002\037:\001*\"\032/api/v1/executions/recover' _ADMINSERVICE.methods_by_name['GetExecution']._options = None - _ADMINSERVICE.methods_by_name['GetExecution']._serialized_options = b'\202\323\344\223\0027\0225/api/v1/executions/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['GetExecution']._serialized_options = b'\202\323\344\223\002}ZD\022B/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\0225/api/v1/executions/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['UpdateExecution']._options = None - _ADMINSERVICE.methods_by_name['UpdateExecution']._serialized_options = b'\202\323\344\223\002::\001*\0325/api/v1/executions/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['UpdateExecution']._serialized_options = b'\202\323\344\223\002\203\001:\001*ZG:\001*\032B/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\0325/api/v1/executions/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['GetExecutionData']._options = None - _ADMINSERVICE.methods_by_name['GetExecutionData']._serialized_options = b'\202\323\344\223\002<\022:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['GetExecutionData']._serialized_options = b'\202\323\344\223\002\207\001ZI\022G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\022:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['ListExecutions']._options = None - _ADMINSERVICE.methods_by_name['ListExecutions']._serialized_options = b'\202\323\344\223\002-\022+/api/v1/executions/{id.project}/{id.domain}' + _ADMINSERVICE.methods_by_name['ListExecutions']._serialized_options = b'\202\323\344\223\002iZ:\0228/api/v1/executions/org/{id.org}/{id.project}/{id.domain}\022+/api/v1/executions/{id.project}/{id.domain}' _ADMINSERVICE.methods_by_name['TerminateExecution']._options = None - _ADMINSERVICE.methods_by_name['TerminateExecution']._serialized_options = b'\202\323\344\223\002::\001**5/api/v1/executions/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['TerminateExecution']._serialized_options = b'\202\323\344\223\002\210\001:\001*ZL:\001**G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}*5/api/v1/executions/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['GetNodeExecution']._options = None - _ADMINSERVICE.methods_by_name['GetNodeExecution']._serialized_options = b'\202\323\344\223\002p\022n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}' + _ADMINSERVICE.methods_by_name['GetNodeExecution']._serialized_options = b'\202\323\344\223\002\376\001Z\213\001\022\210\001/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\022n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}' _ADMINSERVICE.methods_by_name['ListNodeExecutions']._options = None - _ADMINSERVICE.methods_by_name['ListNodeExecutions']._serialized_options = b'\202\323\344\223\002u\022s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}' + _ADMINSERVICE.methods_by_name['ListNodeExecutions']._serialized_options = b'\202\323\344\223\002\216\002Z\226\001\022\223\001/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\022s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}' _ADMINSERVICE.methods_by_name['ListNodeExecutionsForTask']._options = None - _ADMINSERVICE.methods_by_name['ListNodeExecutionsForTask']._serialized_options = b'\202\323\344\223\002\254\003\022\251\003/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}' + _ADMINSERVICE.methods_by_name['ListNodeExecutionsForTask']._serialized_options = b'\202\323\344\223\002\226\007Z\347\003\022\344\003/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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}\022\251\003/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}' _ADMINSERVICE.methods_by_name['GetNodeExecutionData']._options = None - _ADMINSERVICE.methods_by_name['GetNodeExecutionData']._serialized_options = b'\202\323\344\223\002u\022s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}' + _ADMINSERVICE.methods_by_name['GetNodeExecutionData']._serialized_options = b'\202\323\344\223\002\210\002Z\220\001\022\215\001/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\022s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}' _ADMINSERVICE.methods_by_name['RegisterProject']._options = None _ADMINSERVICE.methods_by_name['RegisterProject']._serialized_options = b'\202\323\344\223\002\025:\001*\"\020/api/v1/projects' _ADMINSERVICE.methods_by_name['UpdateProject']._options = None - _ADMINSERVICE.methods_by_name['UpdateProject']._serialized_options = b'\202\323\344\223\002\032:\001*\032\025/api/v1/projects/{id}' + _ADMINSERVICE.methods_by_name['UpdateProject']._serialized_options = b'\202\323\344\223\002\256\001:\001*Z%:\001*\032 /api/v1/projects/{identifier.id}Z/:\001*\032*/api/v1/projects/org/{identifier.org}/{id}Z::\001*\0325/api/v1/projects/org/{identifier.org}/{identifier.id}\032\025/api/v1/projects/{id}' _ADMINSERVICE.methods_by_name['ListProjects']._options = None _ADMINSERVICE.methods_by_name['ListProjects']._serialized_options = b'\202\323\344\223\002\022\022\020/api/v1/projects' _ADMINSERVICE.methods_by_name['CreateWorkflowEvent']._options = None @@ -105,45 +105,45 @@ _ADMINSERVICE.methods_by_name['CreateTaskEvent']._options = None _ADMINSERVICE.methods_by_name['CreateTaskEvent']._serialized_options = b'\202\323\344\223\002\031:\001*\"\024/api/v1/events/tasks' _ADMINSERVICE.methods_by_name['GetTaskExecution']._options = None - _ADMINSERVICE.methods_by_name['GetTaskExecution']._serialized_options = b'\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.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}' + _ADMINSERVICE.methods_by_name['GetTaskExecution']._serialized_options = b'\202\323\344\223\002\347\004Z\310\002\022\305\002/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\022\231\002/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}' _ADMINSERVICE.methods_by_name['ListTaskExecutions']._options = None - _ADMINSERVICE.methods_by_name['ListTaskExecutions']._serialized_options = b'\202\323\344\223\002\255\001\022\252\001/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}' + _ADMINSERVICE.methods_by_name['ListTaskExecutions']._serialized_options = b'\202\323\344\223\002\206\003Z\326\001\022\323\001/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\022\252\001/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}' _ADMINSERVICE.methods_by_name['GetTaskExecutionData']._options = None - _ADMINSERVICE.methods_by_name['GetTaskExecutionData']._serialized_options = b'\202\323\344\223\002\241\002\022\236\002/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}' + _ADMINSERVICE.methods_by_name['GetTaskExecutionData']._serialized_options = b'\202\323\344\223\002\361\004Z\315\002\022\312\002/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\022\236\002/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}' _ADMINSERVICE.methods_by_name['UpdateProjectDomainAttributes']._options = None - _ADMINSERVICE.methods_by_name['UpdateProjectDomainAttributes']._serialized_options = b'\202\323\344\223\002O:\001*\032J/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}' + _ADMINSERVICE.methods_by_name['UpdateProjectDomainAttributes']._serialized_options = b'\202\323\344\223\002\265\001:\001*Zd:\001*\032_/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}\032J/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}' _ADMINSERVICE.methods_by_name['GetProjectDomainAttributes']._options = None - _ADMINSERVICE.methods_by_name['GetProjectDomainAttributes']._serialized_options = b'\202\323\344\223\0026\0224/api/v1/project_domain_attributes/{project}/{domain}' + _ADMINSERVICE.methods_by_name['GetProjectDomainAttributes']._serialized_options = b'\202\323\344\223\002xZ@\022>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}\0224/api/v1/project_domain_attributes/{project}/{domain}' _ADMINSERVICE.methods_by_name['DeleteProjectDomainAttributes']._options = None - _ADMINSERVICE.methods_by_name['DeleteProjectDomainAttributes']._serialized_options = b'\202\323\344\223\0029:\001**4/api/v1/project_domain_attributes/{project}/{domain}' + _ADMINSERVICE.methods_by_name['DeleteProjectDomainAttributes']._serialized_options = b'\202\323\344\223\002~:\001*ZC:\001**>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}*4/api/v1/project_domain_attributes/{project}/{domain}' _ADMINSERVICE.methods_by_name['UpdateProjectAttributes']._options = None - _ADMINSERVICE.methods_by_name['UpdateProjectAttributes']._serialized_options = b'\202\323\344\223\0024:\001*\032//api/v1/project_attributes/{attributes.project}' + _ADMINSERVICE.methods_by_name['UpdateProjectAttributes']._serialized_options = b'\202\323\344\223\002\206\001:\001*ZP:\001*\032K/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}\032//api/v1/project_attributes/{attributes.project}' _ADMINSERVICE.methods_by_name['GetProjectAttributes']._options = None - _ADMINSERVICE.methods_by_name['GetProjectAttributes']._serialized_options = b'\202\323\344\223\002&\022$/api/v1/project_attributes/{project}' + _ADMINSERVICE.methods_by_name['GetProjectAttributes']._serialized_options = b'\202\323\344\223\002_Z7\0225/api/v1/project_domain_attributes/org/{org}/{project}\022$/api/v1/project_attributes/{project}' _ADMINSERVICE.methods_by_name['DeleteProjectAttributes']._options = None - _ADMINSERVICE.methods_by_name['DeleteProjectAttributes']._serialized_options = b'\202\323\344\223\002):\001**$/api/v1/project_attributes/{project}' + _ADMINSERVICE.methods_by_name['DeleteProjectAttributes']._serialized_options = b'\202\323\344\223\002e:\001*Z::\001**5/api/v1/project_domain_attributes/org/{org}/{project}*$/api/v1/project_attributes/{project}' _ADMINSERVICE.methods_by_name['UpdateWorkflowAttributes']._options = None - _ADMINSERVICE.methods_by_name['UpdateWorkflowAttributes']._serialized_options = b'\202\323\344\223\002_:\001*\032Z/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}' + _ADMINSERVICE.methods_by_name['UpdateWorkflowAttributes']._serialized_options = b'\202\323\344\223\002\325\001:\001*Zt:\001*\032o/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}\032Z/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}' _ADMINSERVICE.methods_by_name['GetWorkflowAttributes']._options = None - _ADMINSERVICE.methods_by_name['GetWorkflowAttributes']._serialized_options = b'\202\323\344\223\002;\0229/api/v1/workflow_attributes/{project}/{domain}/{workflow}' + _ADMINSERVICE.methods_by_name['GetWorkflowAttributes']._serialized_options = b'\202\323\344\223\002\202\001ZE\022C/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}\0229/api/v1/workflow_attributes/{project}/{domain}/{workflow}' _ADMINSERVICE.methods_by_name['DeleteWorkflowAttributes']._options = None - _ADMINSERVICE.methods_by_name['DeleteWorkflowAttributes']._serialized_options = b'\202\323\344\223\002>:\001**9/api/v1/workflow_attributes/{project}/{domain}/{workflow}' + _ADMINSERVICE.methods_by_name['DeleteWorkflowAttributes']._serialized_options = b'\202\323\344\223\002\210\001:\001*ZH:\001**C/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}' _ADMINSERVICE.methods_by_name['ListMatchableAttributes']._options = None _ADMINSERVICE.methods_by_name['ListMatchableAttributes']._serialized_options = b'\202\323\344\223\002\036\022\034/api/v1/matchable_attributes' _ADMINSERVICE.methods_by_name['ListNamedEntities']._options = None - _ADMINSERVICE.methods_by_name['ListNamedEntities']._serialized_options = b'\202\323\344\223\002;\0229/api/v1/named_entities/{resource_type}/{project}/{domain}' + _ADMINSERVICE.methods_by_name['ListNamedEntities']._serialized_options = b'\202\323\344\223\002\202\001ZE\022C/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}\0229/api/v1/named_entities/{resource_type}/{project}/{domain}' _ADMINSERVICE.methods_by_name['GetNamedEntity']._options = None - _ADMINSERVICE.methods_by_name['GetNamedEntity']._serialized_options = b'\202\323\344\223\002K\022I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['GetNamedEntity']._serialized_options = b'\202\323\344\223\002\245\001ZX\022V/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\022I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['UpdateNamedEntity']._options = None - _ADMINSERVICE.methods_by_name['UpdateNamedEntity']._serialized_options = b'\202\323\344\223\002N:\001*\032I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['UpdateNamedEntity']._serialized_options = b'\202\323\344\223\002\253\001:\001*Z[:\001*\032V/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\032I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['GetVersion']._options = None _ADMINSERVICE.methods_by_name['GetVersion']._serialized_options = b'\202\323\344\223\002\021\022\017/api/v1/version' _ADMINSERVICE.methods_by_name['GetDescriptionEntity']._options = None - _ADMINSERVICE.methods_by_name['GetDescriptionEntity']._serialized_options = b'\202\323\344\223\002a\022_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}' + _ADMINSERVICE.methods_by_name['GetDescriptionEntity']._serialized_options = b'\202\323\344\223\002\321\001Zn\022l/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\022_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['ListDescriptionEntities']._options = None - _ADMINSERVICE.methods_by_name['ListDescriptionEntities']._serialized_options = b'\202\323\344\223\002\232\001ZG\022E/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}\022O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['ListDescriptionEntities']._serialized_options = b'\202\323\344\223\002\320\002Z^\022\\/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}ZG\022E/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}ZT\022R/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}\022O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._options = None - _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._serialized_options = b'\202\323\344\223\002?\022=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._serialized_options = b'\202\323\344\223\002\215\001ZL\022J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\022=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}' _globals['_ADMINSERVICE']._serialized_start=609 - _globals['_ADMINSERVICE']._serialized_end=10597 + _globals['_ADMINSERVICE']._serialized_end=15238 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2_grpc.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2_grpc.py index 2e7bda23fe..7fe54c9f8c 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2_grpc.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2_grpc.py @@ -317,7 +317,7 @@ def GetTask(self, request, context): raise NotImplementedError('Method not implemented!') def ListTaskIds(self, request, context): - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -503,7 +503,7 @@ def RegisterProject(self, request, context): raise NotImplementedError('Method not implemented!') def UpdateProject(self, request, context): - """Updates an existing :ref:`ref_flyteidl.admin.Project` + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. """ @@ -512,7 +512,7 @@ def UpdateProject(self, request, context): raise NotImplementedError('Method not implemented!') def ListProjects(self, request, context): - """Fetches a list of :ref:`ref_flyteidl.admin.Project` + """Fetches a list of :ref:`ref_flyteidl.admin.Project` """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') diff --git a/flyteidl/gen/pb_python/flyteidl/service/external_plugin_service_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/external_plugin_service_pb2.py index 4de8daabf8..db56c22adf 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/external_plugin_service_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/external_plugin_service_pb2.py @@ -13,10 +13,9 @@ from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 from flyteidl.core import tasks_pb2 as flyteidl_dot_core_dot_tasks__pb2 -from flyteidl.core import interface_pb2 as flyteidl_dot_core_dot_interface__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.flyteidl/service/external_plugin_service.proto\x12\x10\x66lyteidl.service\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x19\x66lyteidl/core/tasks.proto\x1a\x1d\x66lyteidl/core/interface.proto\"\xa8\x01\n\x11TaskCreateRequest\x12\x31\n\x06inputs\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\x12\x37\n\x08template\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.TaskTemplateR\x08template\x12#\n\routput_prefix\x18\x03 \x01(\tR\x0coutputPrefix:\x02\x18\x01\"/\n\x12TaskCreateResponse\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId:\x02\x18\x01\"H\n\x0eTaskGetRequest\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12\x15\n\x06job_id\x18\x02 \x01(\tR\x05jobId:\x02\x18\x01\"y\n\x0fTaskGetResponse\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x17.flyteidl.service.StateR\x05state\x12\x33\n\x07outputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x07outputs:\x02\x18\x01\"K\n\x11TaskDeleteRequest\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12\x15\n\x06job_id\x18\x02 \x01(\tR\x05jobId:\x02\x18\x01\"\x18\n\x12TaskDeleteResponse:\x02\x18\x01*b\n\x05State\x12\x15\n\x11RETRYABLE_FAILURE\x10\x00\x12\x15\n\x11PERMANENT_FAILURE\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\r\n\tSUCCEEDED\x10\x04\x1a\x02\x18\x01\x32\xa8\x02\n\x15\x45xternalPluginService\x12\\\n\nCreateTask\x12#.flyteidl.service.TaskCreateRequest\x1a$.flyteidl.service.TaskCreateResponse\"\x03\x88\x02\x01\x12S\n\x07GetTask\x12 .flyteidl.service.TaskGetRequest\x1a!.flyteidl.service.TaskGetResponse\"\x03\x88\x02\x01\x12\\\n\nDeleteTask\x12#.flyteidl.service.TaskDeleteRequest\x1a$.flyteidl.service.TaskDeleteResponse\"\x03\x88\x02\x01\x42\xd2\x01\n\x14\x63om.flyteidl.serviceB\x1a\x45xternalPluginServiceProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.flyteidl/service/external_plugin_service.proto\x12\x10\x66lyteidl.service\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x19\x66lyteidl/core/tasks.proto\"\xa8\x01\n\x11TaskCreateRequest\x12\x31\n\x06inputs\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\x12\x37\n\x08template\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.TaskTemplateR\x08template\x12#\n\routput_prefix\x18\x03 \x01(\tR\x0coutputPrefix:\x02\x18\x01\"/\n\x12TaskCreateResponse\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId:\x02\x18\x01\"H\n\x0eTaskGetRequest\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12\x15\n\x06job_id\x18\x02 \x01(\tR\x05jobId:\x02\x18\x01\"y\n\x0fTaskGetResponse\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x17.flyteidl.service.StateR\x05state\x12\x33\n\x07outputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x07outputs:\x02\x18\x01\"K\n\x11TaskDeleteRequest\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12\x15\n\x06job_id\x18\x02 \x01(\tR\x05jobId:\x02\x18\x01\"\x18\n\x12TaskDeleteResponse:\x02\x18\x01*b\n\x05State\x12\x15\n\x11RETRYABLE_FAILURE\x10\x00\x12\x15\n\x11PERMANENT_FAILURE\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\r\n\tSUCCEEDED\x10\x04\x1a\x02\x18\x01\x32\xa8\x02\n\x15\x45xternalPluginService\x12\\\n\nCreateTask\x12#.flyteidl.service.TaskCreateRequest\x1a$.flyteidl.service.TaskCreateResponse\"\x03\x88\x02\x01\x12S\n\x07GetTask\x12 .flyteidl.service.TaskGetRequest\x1a!.flyteidl.service.TaskGetResponse\"\x03\x88\x02\x01\x12\\\n\nDeleteTask\x12#.flyteidl.service.TaskDeleteRequest\x1a$.flyteidl.service.TaskDeleteResponse\"\x03\x88\x02\x01\x42\xd2\x01\n\x14\x63om.flyteidl.serviceB\x1a\x45xternalPluginServiceProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -45,20 +44,20 @@ _EXTERNALPLUGINSERVICE.methods_by_name['GetTask']._serialized_options = b'\210\002\001' _EXTERNALPLUGINSERVICE.methods_by_name['DeleteTask']._options = None _EXTERNALPLUGINSERVICE.methods_by_name['DeleteTask']._serialized_options = b'\210\002\001' - _globals['_STATE']._serialized_start=676 - _globals['_STATE']._serialized_end=774 - _globals['_TASKCREATEREQUEST']._serialized_start=157 - _globals['_TASKCREATEREQUEST']._serialized_end=325 - _globals['_TASKCREATERESPONSE']._serialized_start=327 - _globals['_TASKCREATERESPONSE']._serialized_end=374 - _globals['_TASKGETREQUEST']._serialized_start=376 - _globals['_TASKGETREQUEST']._serialized_end=448 - _globals['_TASKGETRESPONSE']._serialized_start=450 - _globals['_TASKGETRESPONSE']._serialized_end=571 - _globals['_TASKDELETEREQUEST']._serialized_start=573 - _globals['_TASKDELETEREQUEST']._serialized_end=648 - _globals['_TASKDELETERESPONSE']._serialized_start=650 - _globals['_TASKDELETERESPONSE']._serialized_end=674 - _globals['_EXTERNALPLUGINSERVICE']._serialized_start=777 - _globals['_EXTERNALPLUGINSERVICE']._serialized_end=1073 + _globals['_STATE']._serialized_start=645 + _globals['_STATE']._serialized_end=743 + _globals['_TASKCREATEREQUEST']._serialized_start=126 + _globals['_TASKCREATEREQUEST']._serialized_end=294 + _globals['_TASKCREATERESPONSE']._serialized_start=296 + _globals['_TASKCREATERESPONSE']._serialized_end=343 + _globals['_TASKGETREQUEST']._serialized_start=345 + _globals['_TASKGETREQUEST']._serialized_end=417 + _globals['_TASKGETRESPONSE']._serialized_start=419 + _globals['_TASKGETRESPONSE']._serialized_end=540 + _globals['_TASKDELETEREQUEST']._serialized_start=542 + _globals['_TASKDELETEREQUEST']._serialized_end=617 + _globals['_TASKDELETERESPONSE']._serialized_start=619 + _globals['_TASKDELETERESPONSE']._serialized_end=643 + _globals['_EXTERNALPLUGINSERVICE']._serialized_start=746 + _globals['_EXTERNALPLUGINSERVICE']._serialized_end=1042 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/external_plugin_service_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/service/external_plugin_service_pb2.pyi index b5163a8bfe..c09566929f 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/external_plugin_service_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/service/external_plugin_service_pb2.pyi @@ -1,6 +1,5 @@ from flyteidl.core import literals_pb2 as _literals_pb2 from flyteidl.core import tasks_pb2 as _tasks_pb2 -from flyteidl.core import interface_pb2 as _interface_pb2 from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md index 9136b44368..6163162eb7 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md @@ -78,55 +78,100 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**create_workflow**](docs/AdminServiceApi.md#create_workflow) | **POST** /api/v1/workflows | Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition *AdminServiceApi* | [**create_workflow_event**](docs/AdminServiceApi.md#create_workflow_event) | **POST** /api/v1/events/workflows | Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. *AdminServiceApi* | [**delete_project_attributes**](docs/AdminServiceApi.md#delete_project_attributes) | **DELETE** /api/v1/project_attributes/{project} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**delete_project_attributes2**](docs/AdminServiceApi.md#delete_project_attributes2) | **DELETE** /api/v1/project_domain_attributes/org/{org}/{project} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**delete_project_domain_attributes**](docs/AdminServiceApi.md#delete_project_domain_attributes) | **DELETE** /api/v1/project_domain_attributes/{project}/{domain} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**delete_project_domain_attributes2**](docs/AdminServiceApi.md#delete_project_domain_attributes2) | **DELETE** /api/v1/project_domain_attributes/org/{org}/{project}/{domain} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**delete_workflow_attributes**](docs/AdminServiceApi.md#delete_workflow_attributes) | **DELETE** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +*AdminServiceApi* | [**delete_workflow_attributes2**](docs/AdminServiceApi.md#delete_workflow_attributes2) | **DELETE** /api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. *AdminServiceApi* | [**get_active_launch_plan**](docs/AdminServiceApi.md#get_active_launch_plan) | **GET** /api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name} | Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**get_active_launch_plan2**](docs/AdminServiceApi.md#get_active_launch_plan2) | **GET** /api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**get_description_entity**](docs/AdminServiceApi.md#get_description_entity) | **GET** /api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. +*AdminServiceApi* | [**get_description_entity2**](docs/AdminServiceApi.md#get_description_entity2) | **GET** /api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. *AdminServiceApi* | [**get_execution**](docs/AdminServiceApi.md#get_execution) | **GET** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Fetches a :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**get_execution2**](docs/AdminServiceApi.md#get_execution2) | **GET** /api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetches a :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**get_execution_data**](docs/AdminServiceApi.md#get_execution_data) | **GET** /api/v1/data/executions/{id.project}/{id.domain}/{id.name} | Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**get_execution_data2**](docs/AdminServiceApi.md#get_execution_data2) | **GET** /api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**get_execution_metrics**](docs/AdminServiceApi.md#get_execution_metrics) | **GET** /api/v1/metrics/executions/{id.project}/{id.domain}/{id.name} | Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**get_execution_metrics2**](docs/AdminServiceApi.md#get_execution_metrics2) | **GET** /api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**get_launch_plan**](docs/AdminServiceApi.md#get_launch_plan) | **GET** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. +*AdminServiceApi* | [**get_launch_plan2**](docs/AdminServiceApi.md#get_launch_plan2) | **GET** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. *AdminServiceApi* | [**get_named_entity**](docs/AdminServiceApi.md#get_named_entity) | **GET** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. +*AdminServiceApi* | [**get_named_entity2**](docs/AdminServiceApi.md#get_named_entity2) | **GET** /api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. *AdminServiceApi* | [**get_node_execution**](docs/AdminServiceApi.md#get_node_execution) | **GET** /api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**get_node_execution2**](docs/AdminServiceApi.md#get_node_execution2) | **GET** /api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. *AdminServiceApi* | [**get_node_execution_data**](docs/AdminServiceApi.md#get_node_execution_data) | **GET** /api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**get_node_execution_data2**](docs/AdminServiceApi.md#get_node_execution_data2) | **GET** /api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. *AdminServiceApi* | [**get_project_attributes**](docs/AdminServiceApi.md#get_project_attributes) | **GET** /api/v1/project_attributes/{project} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**get_project_attributes2**](docs/AdminServiceApi.md#get_project_attributes2) | **GET** /api/v1/project_domain_attributes/org/{org}/{project} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**get_project_domain_attributes**](docs/AdminServiceApi.md#get_project_domain_attributes) | **GET** /api/v1/project_domain_attributes/{project}/{domain} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**get_project_domain_attributes2**](docs/AdminServiceApi.md#get_project_domain_attributes2) | **GET** /api/v1/project_domain_attributes/org/{org}/{project}/{domain} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**get_task**](docs/AdminServiceApi.md#get_task) | **GET** /api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Task` definition. +*AdminServiceApi* | [**get_task2**](docs/AdminServiceApi.md#get_task2) | **GET** /api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Task` definition. *AdminServiceApi* | [**get_task_execution**](docs/AdminServiceApi.md#get_task_execution) | **GET** /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} | Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**get_task_execution2**](docs/AdminServiceApi.md#get_task_execution2) | **GET** /api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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} | Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**get_task_execution_data**](docs/AdminServiceApi.md#get_task_execution_data) | **GET** /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} | Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**get_task_execution_data2**](docs/AdminServiceApi.md#get_task_execution_data2) | **GET** /api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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} | Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**get_version**](docs/AdminServiceApi.md#get_version) | **GET** /api/v1/version | *AdminServiceApi* | [**get_workflow**](docs/AdminServiceApi.md#get_workflow) | **GET** /api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. +*AdminServiceApi* | [**get_workflow2**](docs/AdminServiceApi.md#get_workflow2) | **GET** /api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. *AdminServiceApi* | [**get_workflow_attributes**](docs/AdminServiceApi.md#get_workflow_attributes) | **GET** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +*AdminServiceApi* | [**get_workflow_attributes2**](docs/AdminServiceApi.md#get_workflow_attributes2) | **GET** /api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. *AdminServiceApi* | [**list_active_launch_plans**](docs/AdminServiceApi.md#list_active_launch_plans) | **GET** /api/v1/active_launch_plans/{project}/{domain} | List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**list_description_entities**](docs/AdminServiceApi.md#list_description_entities) | **GET** /api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. -*AdminServiceApi* | [**list_description_entities2**](docs/AdminServiceApi.md#list_description_entities2) | **GET** /api/v1/description_entities/{resource_type}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. +*AdminServiceApi* | [**list_description_entities2**](docs/AdminServiceApi.md#list_description_entities2) | **GET** /api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. +*AdminServiceApi* | [**list_description_entities3**](docs/AdminServiceApi.md#list_description_entities3) | **GET** /api/v1/description_entities/{resource_type}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. +*AdminServiceApi* | [**list_description_entities4**](docs/AdminServiceApi.md#list_description_entities4) | **GET** /api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. *AdminServiceApi* | [**list_executions**](docs/AdminServiceApi.md#list_executions) | **GET** /api/v1/executions/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**list_executions2**](docs/AdminServiceApi.md#list_executions2) | **GET** /api/v1/executions/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**list_launch_plan_ids**](docs/AdminServiceApi.md#list_launch_plan_ids) | **GET** /api/v1/launch_plan_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. +*AdminServiceApi* | [**list_launch_plan_ids2**](docs/AdminServiceApi.md#list_launch_plan_ids2) | **GET** /api/v1/launch_plan_ids/org/{org}/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. *AdminServiceApi* | [**list_launch_plans**](docs/AdminServiceApi.md#list_launch_plans) | **GET** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. -*AdminServiceApi* | [**list_launch_plans2**](docs/AdminServiceApi.md#list_launch_plans2) | **GET** /api/v1/launch_plans/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +*AdminServiceApi* | [**list_launch_plans2**](docs/AdminServiceApi.md#list_launch_plans2) | **GET** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +*AdminServiceApi* | [**list_launch_plans3**](docs/AdminServiceApi.md#list_launch_plans3) | **GET** /api/v1/launch_plans/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +*AdminServiceApi* | [**list_launch_plans4**](docs/AdminServiceApi.md#list_launch_plans4) | **GET** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. *AdminServiceApi* | [**list_matchable_attributes**](docs/AdminServiceApi.md#list_matchable_attributes) | **GET** /api/v1/matchable_attributes | Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. *AdminServiceApi* | [**list_named_entities**](docs/AdminServiceApi.md#list_named_entities) | **GET** /api/v1/named_entities/{resource_type}/{project}/{domain} | Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. +*AdminServiceApi* | [**list_named_entities2**](docs/AdminServiceApi.md#list_named_entities2) | **GET** /api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain} | Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. *AdminServiceApi* | [**list_node_executions**](docs/AdminServiceApi.md#list_node_executions) | **GET** /api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**list_node_executions2**](docs/AdminServiceApi.md#list_node_executions2) | **GET** /api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. *AdminServiceApi* | [**list_node_executions_for_task**](docs/AdminServiceApi.md#list_node_executions_for_task) | **GET** /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} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**list_node_executions_for_task2**](docs/AdminServiceApi.md#list_node_executions_for_task2) | **GET** /api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**list_projects**](docs/AdminServiceApi.md#list_projects) | **GET** /api/v1/projects | Fetches a list of :ref:`ref_flyteidl.admin.Project` *AdminServiceApi* | [**list_task_executions**](docs/AdminServiceApi.md#list_task_executions) | **GET** /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} | Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**list_task_executions2**](docs/AdminServiceApi.md#list_task_executions2) | **GET** /api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} | Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**list_task_ids**](docs/AdminServiceApi.md#list_task_ids) | **GET** /api/v1/task_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. +*AdminServiceApi* | [**list_task_ids2**](docs/AdminServiceApi.md#list_task_ids2) | **GET** /api/v1/tasks/org/{org}/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. *AdminServiceApi* | [**list_tasks**](docs/AdminServiceApi.md#list_tasks) | **GET** /api/v1/tasks/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. -*AdminServiceApi* | [**list_tasks2**](docs/AdminServiceApi.md#list_tasks2) | **GET** /api/v1/tasks/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +*AdminServiceApi* | [**list_tasks2**](docs/AdminServiceApi.md#list_tasks2) | **GET** /api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +*AdminServiceApi* | [**list_tasks3**](docs/AdminServiceApi.md#list_tasks3) | **GET** /api/v1/tasks/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +*AdminServiceApi* | [**list_tasks4**](docs/AdminServiceApi.md#list_tasks4) | **GET** /api/v1/tasks/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. *AdminServiceApi* | [**list_workflow_ids**](docs/AdminServiceApi.md#list_workflow_ids) | **GET** /api/v1/workflow_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. +*AdminServiceApi* | [**list_workflow_ids2**](docs/AdminServiceApi.md#list_workflow_ids2) | **GET** /api/v1/workflows/org/{org}/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. *AdminServiceApi* | [**list_workflows**](docs/AdminServiceApi.md#list_workflows) | **GET** /api/v1/workflows/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. -*AdminServiceApi* | [**list_workflows2**](docs/AdminServiceApi.md#list_workflows2) | **GET** /api/v1/workflows/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +*AdminServiceApi* | [**list_workflows2**](docs/AdminServiceApi.md#list_workflows2) | **GET** /api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +*AdminServiceApi* | [**list_workflows3**](docs/AdminServiceApi.md#list_workflows3) | **GET** /api/v1/workflows/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +*AdminServiceApi* | [**list_workflows4**](docs/AdminServiceApi.md#list_workflows4) | **GET** /api/v1/workflows/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. *AdminServiceApi* | [**recover_execution**](docs/AdminServiceApi.md#recover_execution) | **POST** /api/v1/executions/recover | 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. *AdminServiceApi* | [**register_project**](docs/AdminServiceApi.md#register_project) | **POST** /api/v1/projects | Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. *AdminServiceApi* | [**relaunch_execution**](docs/AdminServiceApi.md#relaunch_execution) | **POST** /api/v1/executions/relaunch | Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` *AdminServiceApi* | [**terminate_execution**](docs/AdminServiceApi.md#terminate_execution) | **DELETE** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**terminate_execution2**](docs/AdminServiceApi.md#terminate_execution2) | **DELETE** /api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**update_execution**](docs/AdminServiceApi.md#update_execution) | **PUT** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**update_execution2**](docs/AdminServiceApi.md#update_execution2) | **PUT** /api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**update_launch_plan**](docs/AdminServiceApi.md#update_launch_plan) | **PUT** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**update_launch_plan2**](docs/AdminServiceApi.md#update_launch_plan2) | **PUT** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**update_named_entity**](docs/AdminServiceApi.md#update_named_entity) | **PUT** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. -*AdminServiceApi* | [**update_project**](docs/AdminServiceApi.md#update_project) | **PUT** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**update_named_entity2**](docs/AdminServiceApi.md#update_named_entity2) | **PUT** /api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. +*AdminServiceApi* | [**update_project**](docs/AdminServiceApi.md#update_project) | **PUT** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**update_project2**](docs/AdminServiceApi.md#update_project2) | **PUT** /api/v1/projects/{identifier.id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**update_project3**](docs/AdminServiceApi.md#update_project3) | **PUT** /api/v1/projects/org/{identifier.org}/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**update_project4**](docs/AdminServiceApi.md#update_project4) | **PUT** /api/v1/projects/org/{identifier.org}/{identifier.id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. *AdminServiceApi* | [**update_project_attributes**](docs/AdminServiceApi.md#update_project_attributes) | **PUT** /api/v1/project_attributes/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level +*AdminServiceApi* | [**update_project_attributes2**](docs/AdminServiceApi.md#update_project_attributes2) | **PUT** /api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level *AdminServiceApi* | [**update_project_domain_attributes**](docs/AdminServiceApi.md#update_project_domain_attributes) | **PUT** /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**update_project_domain_attributes2**](docs/AdminServiceApi.md#update_project_domain_attributes2) | **PUT** /api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**update_workflow_attributes**](docs/AdminServiceApi.md#update_workflow_attributes) | **PUT** /api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +*AdminServiceApi* | [**update_workflow_attributes2**](docs/AdminServiceApi.md#update_workflow_attributes2) | **PUT** /api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. ## Documentation For Models @@ -214,6 +259,7 @@ Class | Method | HTTP request | Description - [AdminProjectDomainAttributesGetResponse](docs/AdminProjectDomainAttributesGetResponse.md) - [AdminProjectDomainAttributesUpdateRequest](docs/AdminProjectDomainAttributesUpdateRequest.md) - [AdminProjectDomainAttributesUpdateResponse](docs/AdminProjectDomainAttributesUpdateResponse.md) + - [AdminProjectIdentifier](docs/AdminProjectIdentifier.md) - [AdminProjectRegisterRequest](docs/AdminProjectRegisterRequest.md) - [AdminProjectRegisterResponse](docs/AdminProjectRegisterResponse.md) - [AdminProjectUpdateResponse](docs/AdminProjectUpdateResponse.md) diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py index 6cbddc0b5b..e83f7f73bd 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py @@ -105,6 +105,7 @@ from flyteadmin.models.admin_project_domain_attributes_get_response import AdminProjectDomainAttributesGetResponse from flyteadmin.models.admin_project_domain_attributes_update_request import AdminProjectDomainAttributesUpdateRequest from flyteadmin.models.admin_project_domain_attributes_update_response import AdminProjectDomainAttributesUpdateResponse +from flyteadmin.models.admin_project_identifier import AdminProjectIdentifier from flyteadmin.models.admin_project_register_request import AdminProjectRegisterRequest from flyteadmin.models.admin_project_register_response import AdminProjectRegisterResponse from flyteadmin.models.admin_project_update_response import AdminProjectUpdateResponse diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py index 01e9838ee5..cf0b04683a 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py @@ -817,47 +817,47 @@ def delete_project_attributes_with_http_info(self, project, body, **kwargs): # _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def delete_project_domain_attributes(self, project, domain, body, **kwargs): # noqa: E501 + def delete_project_attributes2(self, org, project, body, **kwargs): # noqa: E501 """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.delete_project_domain_attributes(project, domain, body, async_req=True) + >>> thread = api.delete_project_attributes2(org, project, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str org: Optional, org key applied to the project. (required) :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param AdminProjectDomainAttributesDeleteRequest body: (required) - :return: AdminProjectDomainAttributesDeleteResponse + :param AdminProjectAttributesDeleteRequest body: (required) + :return: AdminProjectAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.delete_project_domain_attributes_with_http_info(project, domain, body, **kwargs) # noqa: E501 + return self.delete_project_attributes2_with_http_info(org, project, body, **kwargs) # noqa: E501 else: - (data) = self.delete_project_domain_attributes_with_http_info(project, domain, body, **kwargs) # noqa: E501 + (data) = self.delete_project_attributes2_with_http_info(org, project, body, **kwargs) # noqa: E501 return data - def delete_project_domain_attributes_with_http_info(self, project, domain, body, **kwargs): # noqa: E501 + def delete_project_attributes2_with_http_info(self, org, project, body, **kwargs): # noqa: E501 """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.delete_project_domain_attributes_with_http_info(project, domain, body, async_req=True) + >>> thread = api.delete_project_attributes2_with_http_info(org, project, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str org: Optional, org key applied to the project. (required) :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param AdminProjectDomainAttributesDeleteRequest body: (required) - :return: AdminProjectDomainAttributesDeleteResponse + :param AdminProjectAttributesDeleteRequest body: (required) + :return: AdminProjectAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'body'] # noqa: E501 + all_params = ['org', 'project', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -868,30 +868,30 @@ def delete_project_domain_attributes_with_http_info(self, project, domain, body, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method delete_project_domain_attributes" % key + " to method delete_project_attributes2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `delete_project_attributes2`") # noqa: E501 # verify the required parameter 'project' is set if ('project' not in params or params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `delete_project_domain_attributes`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `delete_project_domain_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `project` when calling `delete_project_attributes2`") # 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 `delete_project_domain_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `delete_project_attributes2`") # noqa: E501 collection_formats = {} path_params = {} + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 if 'project' in params: path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 query_params = [] @@ -915,14 +915,14 @@ def delete_project_domain_attributes_with_http_info(self, project, domain, body, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_domain_attributes/{project}/{domain}', 'DELETE', + '/api/v1/project_domain_attributes/org/{org}/{project}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectDomainAttributesDeleteResponse', # noqa: E501 + response_type='AdminProjectAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -930,49 +930,47 @@ def delete_project_domain_attributes_with_http_info(self, project, domain, body, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def delete_workflow_attributes(self, project, domain, workflow, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def delete_project_domain_attributes(self, project, domain, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.delete_workflow_attributes(project, domain, workflow, body, async_req=True) + >>> thread = api.delete_project_domain_attributes(project, domain, body, async_req=True) >>> result = thread.get() :param async_req bool :param str project: Unique project id which this set of attributes references. +required (required) :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param AdminWorkflowAttributesDeleteRequest body: (required) - :return: AdminWorkflowAttributesDeleteResponse + :param AdminProjectDomainAttributesDeleteRequest body: (required) + :return: AdminProjectDomainAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.delete_workflow_attributes_with_http_info(project, domain, workflow, body, **kwargs) # noqa: E501 + return self.delete_project_domain_attributes_with_http_info(project, domain, body, **kwargs) # noqa: E501 else: - (data) = self.delete_workflow_attributes_with_http_info(project, domain, workflow, body, **kwargs) # noqa: E501 + (data) = self.delete_project_domain_attributes_with_http_info(project, domain, body, **kwargs) # noqa: E501 return data - def delete_workflow_attributes_with_http_info(self, project, domain, workflow, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def delete_project_domain_attributes_with_http_info(self, project, domain, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.delete_workflow_attributes_with_http_info(project, domain, workflow, body, async_req=True) + >>> thread = api.delete_project_domain_attributes_with_http_info(project, domain, body, async_req=True) >>> result = thread.get() :param async_req bool :param str project: Unique project id which this set of attributes references. +required (required) :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param AdminWorkflowAttributesDeleteRequest body: (required) - :return: AdminWorkflowAttributesDeleteResponse + :param AdminProjectDomainAttributesDeleteRequest body: (required) + :return: AdminProjectDomainAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'workflow', 'body'] # noqa: E501 + all_params = ['project', 'domain', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -983,26 +981,22 @@ def delete_workflow_attributes_with_http_info(self, project, domain, workflow, b if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method delete_workflow_attributes" % key + " to method delete_project_domain_attributes" % key ) params[key] = val del params['kwargs'] # verify the required parameter 'project' is set if ('project' not in params or params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `delete_workflow_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `project` when calling `delete_project_domain_attributes`") # noqa: E501 # verify the required parameter 'domain' is set if ('domain' not in params or params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `delete_workflow_attributes`") # noqa: E501 - # verify the required parameter 'workflow' is set - if ('workflow' not in params or - params['workflow'] is None): - raise ValueError("Missing the required parameter `workflow` when calling `delete_workflow_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `domain` when calling `delete_project_domain_attributes`") # 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 `delete_workflow_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `delete_project_domain_attributes`") # noqa: E501 collection_formats = {} @@ -1011,8 +1005,6 @@ def delete_workflow_attributes_with_http_info(self, project, domain, workflow, b path_params['project'] = params['project'] # noqa: E501 if 'domain' in params: path_params['domain'] = params['domain'] # noqa: E501 - if 'workflow' in params: - path_params['workflow'] = params['workflow'] # noqa: E501 query_params = [] @@ -1036,14 +1028,14 @@ def delete_workflow_attributes_with_http_info(self, project, domain, workflow, b auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflow_attributes/{project}/{domain}/{workflow}', 'DELETE', + '/api/v1/project_domain_attributes/{project}/{domain}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowAttributesDeleteResponse', # noqa: E501 + response_type='AdminProjectDomainAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1051,47 +1043,49 @@ def delete_workflow_attributes_with_http_info(self, project, domain, workflow, b _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_active_launch_plan(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + def delete_project_domain_attributes2(self, org, project, domain, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.get_active_launch_plan(id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_project_domain_attributes2(org, project, domain, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :return: AdminLaunchPlan + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param AdminProjectDomainAttributesDeleteRequest body: (required) + :return: AdminProjectDomainAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.delete_project_domain_attributes2_with_http_info(org, project, domain, body, **kwargs) # noqa: E501 else: - (data) = self.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.delete_project_domain_attributes2_with_http_info(org, project, domain, body, **kwargs) # noqa: E501 return data - def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + def delete_project_domain_attributes2_with_http_info(self, org, project, domain, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_project_domain_attributes2_with_http_info(org, project, domain, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :return: AdminLaunchPlan + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param AdminProjectDomainAttributesDeleteRequest body: (required) + :return: AdminProjectDomainAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name'] # noqa: E501 + all_params = ['org', 'project', 'domain', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1102,32 +1096,36 @@ def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_active_launch_plan" % key + " to method delete_project_domain_attributes2" % 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 `get_active_launch_plan`") # 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 `get_active_launch_plan`") # 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 `get_active_launch_plan`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `delete_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `delete_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `delete_project_domain_attributes2`") # 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 `delete_project_domain_attributes2`") # 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 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] @@ -1137,6 +1135,8 @@ def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, 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 @@ -1149,14 +1149,14 @@ def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/project_domain_attributes/org/{org}/{project}/{domain}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlan', # noqa: E501 + response_type='AdminProjectDomainAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1164,51 +1164,49 @@ def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_description_entity(self, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 + def delete_workflow_attributes(self, project, domain, workflow, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_description_entity(id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.delete_workflow_attributes(project, domain, workflow, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :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 provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :return: AdminDescriptionEntity + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param AdminWorkflowAttributesDeleteRequest body: (required) + :return: AdminWorkflowAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.delete_workflow_attributes_with_http_info(project, domain, workflow, body, **kwargs) # noqa: E501 else: - (data) = self.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.delete_workflow_attributes_with_http_info(project, domain, workflow, body, **kwargs) # noqa: E501 return data - def get_description_entity_with_http_info(self, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 + def delete_workflow_attributes_with_http_info(self, project, domain, workflow, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.delete_workflow_attributes_with_http_info(project, domain, workflow, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :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 provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :return: AdminDescriptionEntity + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param AdminWorkflowAttributesDeleteRequest body: (required) + :return: AdminWorkflowAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_resource_type', 'id_project', 'id_domain', 'id_name', 'id_version'] # noqa: E501 + all_params = ['project', 'domain', 'workflow', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1219,44 +1217,36 @@ def get_description_entity_with_http_info(self, id_resource_type, id_project, id if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_description_entity" % key + " to method delete_workflow_attributes" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_resource_type' is set - if ('id_resource_type' not in params or - params['id_resource_type'] is None): - raise ValueError("Missing the required parameter `id_resource_type` when calling `get_description_entity`") # noqa: E501 - # 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 `get_description_entity`") # 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 `get_description_entity`") # 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 `get_description_entity`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_description_entity`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `delete_workflow_attributes`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `delete_workflow_attributes`") # noqa: E501 + # verify the required parameter 'workflow' is set + if ('workflow' not in params or + params['workflow'] is None): + raise ValueError("Missing the required parameter `workflow` when calling `delete_workflow_attributes`") # 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 `delete_workflow_attributes`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_resource_type' in params: - path_params['id.resource_type'] = params['id_resource_type'] # noqa: E501 - 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 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + if 'workflow' in params: + path_params['workflow'] = params['workflow'] # noqa: E501 query_params = [] @@ -1266,6 +1256,8 @@ def get_description_entity_with_http_info(self, id_resource_type, id_project, id 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 @@ -1278,14 +1270,14 @@ def get_description_entity_with_http_info(self, id_resource_type, id_project, id auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/workflow_attributes/{project}/{domain}/{workflow}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminDescriptionEntity', # noqa: E501 + response_type='AdminWorkflowAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1293,47 +1285,51 @@ def get_description_entity_with_http_info(self, id_resource_type, id_project, id _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_execution(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def delete_workflow_attributes2(self, org, project, domain, workflow, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution(id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_workflow_attributes2(org, project, domain, workflow, 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) - :return: AdminExecution + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param AdminWorkflowAttributesDeleteRequest body: (required) + :return: AdminWorkflowAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_execution_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.delete_workflow_attributes2_with_http_info(org, project, domain, workflow, body, **kwargs) # noqa: E501 else: - (data) = self.get_execution_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.delete_workflow_attributes2_with_http_info(org, project, domain, workflow, body, **kwargs) # noqa: E501 return data - def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def delete_workflow_attributes2_with_http_info(self, org, project, domain, workflow, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_workflow_attributes2_with_http_info(org, project, domain, workflow, 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) - :return: AdminExecution + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param AdminWorkflowAttributesDeleteRequest body: (required) + :return: AdminWorkflowAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name'] # noqa: E501 + all_params = ['org', 'project', 'domain', 'workflow', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1344,32 +1340,42 @@ def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs) if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_execution" % key + " to method delete_workflow_attributes2" % 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 `get_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 `get_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 `get_execution`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `delete_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `delete_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `delete_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'workflow' is set + if ('workflow' not in params or + params['workflow'] is None): + raise ValueError("Missing the required parameter `workflow` when calling `delete_workflow_attributes2`") # 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 `delete_workflow_attributes2`") # 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 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + if 'workflow' in params: + path_params['workflow'] = params['workflow'] # noqa: E501 query_params = [] @@ -1379,6 +1385,8 @@ def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs) 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 @@ -1391,14 +1399,14 @@ def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs) auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminExecution', # noqa: E501 + response_type='AdminWorkflowAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1406,47 +1414,49 @@ def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs) _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_execution_data(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def get_active_launch_plan(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_data(id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_active_launch_plan(id_project, id_domain, id_name, 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) - :return: AdminWorkflowExecutionGetDataResponse + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_execution_data_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_execution_data_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_data_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, 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) - :return: AdminWorkflowExecutionGetDataResponse + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1457,22 +1467,22 @@ def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kw if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_execution_data" % key + " to method get_active_launch_plan" % 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 `get_execution_data`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_active_launch_plan`") # 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 `get_execution_data`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_active_launch_plan`") # 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 `get_execution_data`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_active_launch_plan`") # noqa: E501 collection_formats = {} @@ -1485,6 +1495,8 @@ def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kw path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -1504,14 +1516,14 @@ def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kw auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/data/executions/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowExecutionGetDataResponse', # noqa: E501 + response_type='AdminLaunchPlan', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1519,49 +1531,49 @@ def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kw _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_execution_metrics(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def get_active_launch_plan2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_metrics(id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_active_launch_plan2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :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 int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. - :return: AdminWorkflowExecutionGetMetricsResponse + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_execution_metrics_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.get_active_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_execution_metrics_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.get_active_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def get_active_launch_plan2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_metrics_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_active_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :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 int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. - :return: AdminWorkflowExecutionGetMetricsResponse + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'depth'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1572,26 +1584,32 @@ def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, * if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_execution_metrics" % key + " to method get_active_launch_plan2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_active_launch_plan2`") # noqa: E501 # 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 `get_execution_metrics`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_active_launch_plan2`") # 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 `get_execution_metrics`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_active_launch_plan2`") # 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 `get_execution_metrics`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_active_launch_plan2`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: @@ -1600,8 +1618,6 @@ def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, * path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'depth' in params: - query_params.append(('depth', params['depth'])) # noqa: E501 header_params = {} @@ -1621,14 +1637,14 @@ def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, * auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowExecutionGetMetricsResponse', # noqa: E501 + response_type='AdminLaunchPlan', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1636,51 +1652,53 @@ def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, * _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_launch_plan(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 + def get_description_entity(self, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_launch_plan(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_description_entity(id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :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 provided value for the resource. (required) :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminLaunchPlan + :param str id_org: Optional, org key applied to the resource. + :return: AdminDescriptionEntity If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 else: - (data) = self.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 return data - def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 + def get_description_entity_with_http_info(self, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :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 provided value for the resource. (required) :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminLaunchPlan + :param str id_org: Optional, org key applied to the resource. + :return: AdminDescriptionEntity If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # noqa: E501 + all_params = ['id_resource_type', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1691,30 +1709,36 @@ def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_vers if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_launch_plan" % key + " to method get_description_entity" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_resource_type' is set + if ('id_resource_type' not in params or + params['id_resource_type'] is None): + raise ValueError("Missing the required parameter `id_resource_type` when calling `get_description_entity`") # noqa: E501 # 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 `get_launch_plan`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_description_entity`") # 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 `get_launch_plan`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_description_entity`") # 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 `get_launch_plan`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_description_entity`") # noqa: E501 # verify the required parameter 'id_version' is set if ('id_version' not in params or params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_launch_plan`") # noqa: E501 + raise ValueError("Missing the required parameter `id_version` when calling `get_description_entity`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_resource_type' in params: + path_params['id.resource_type'] = params['id_resource_type'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: @@ -1725,8 +1749,8 @@ def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_vers path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'id_resource_type' in params: - query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -1746,14 +1770,14 @@ def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_vers auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlan', # noqa: E501 + response_type='AdminDescriptionEntity', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1761,49 +1785,53 @@ def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_vers _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_named_entity(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + def get_description_entity2(self, id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_named_entity(resource_type, id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_description_entity2(id_org, id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :return: AdminNamedEntity + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :return: AdminDescriptionEntity If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.get_description_entity2_with_http_info(id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 else: - (data) = self.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.get_description_entity2_with_http_info(id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 return data - def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + def get_description_entity2_with_http_info(self, id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_description_entity2_with_http_info(id_org, id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :return: AdminNamedEntity + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :return: AdminDescriptionEntity If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'id_project', 'id_domain', 'id_name'] # noqa: E501 + all_params = ['id_org', 'id_resource_type', 'id_project', 'id_domain', 'id_name', 'id_version'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1814,38 +1842,50 @@ def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_named_entity" % key + " to method get_description_entity2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `get_named_entity`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_description_entity2`") # noqa: E501 + # verify the required parameter 'id_resource_type' is set + if ('id_resource_type' not in params or + params['id_resource_type'] is None): + raise ValueError("Missing the required parameter `id_resource_type` when calling `get_description_entity2`") # noqa: E501 # 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 `get_named_entity`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_description_entity2`") # 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 `get_named_entity`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_description_entity2`") # 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 `get_named_entity`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_description_entity2`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_description_entity2`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_resource_type' in params: + path_params['id.resource_type'] = params['id_resource_type'] # noqa: E501 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 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] @@ -1867,14 +1907,14 @@ def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntity', # noqa: E501 + response_type='AdminDescriptionEntity', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1882,49 +1922,49 @@ def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_node_execution(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_execution(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_execution(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :return: FlyteidladminNodeExecution + :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 str id_org: Optional, org key applied to the resource. + :return: AdminExecution If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + return self.get_execution_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + (data) = self.get_execution_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_node_execution_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_execution_with_http_info(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :return: FlyteidladminNodeExecution + :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 str id_org: Optional, org key applied to the resource. + :return: AdminExecution If the method is called asynchronously, returns the request thread. """ - all_params = ['id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1935,40 +1975,36 @@ def get_node_execution_with_http_info(self, id_execution_id_project, id_executio if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_node_execution" % key + " to method get_execution" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_execution_id_project' is set - if ('id_execution_id_project' not in params or - params['id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution`") # noqa: E501 - # verify the required parameter 'id_execution_id_domain' is set - if ('id_execution_id_domain' not in params or - params['id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution`") # noqa: E501 - # verify the required parameter 'id_execution_id_name' is set - if ('id_execution_id_name' not in params or - params['id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution`") # noqa: E501 - # verify the required parameter 'id_node_id' is set - if ('id_node_id' not in params or - params['id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution`") # noqa: E501 + # 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 `get_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 `get_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 `get_execution`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_execution_id_project' in params: - path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 - if 'id_execution_id_domain' in params: - path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 - if 'id_execution_id_name' in params: - path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 - if 'id_node_id' in params: - path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + 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 = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -1988,14 +2024,14 @@ def get_node_execution_with_http_info(self, id_execution_id_project, id_executio auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + '/api/v1/executions/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='FlyteidladminNodeExecution', # noqa: E501 + response_type='AdminExecution', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2003,49 +2039,49 @@ def get_node_execution_with_http_info(self, id_execution_id_project, id_executio _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_node_execution_data(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_execution2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution_data(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_execution2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :return: AdminNodeExecutionGetDataResponse + :param str id_org: Optional, org key applied to the resource. (required) + :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) + :return: AdminExecution If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + return self.get_execution2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + (data) = self.get_execution2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_node_execution_data_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_execution2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_execution2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :return: AdminNodeExecutionGetDataResponse + :param str id_org: Optional, org key applied to the resource. (required) + :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) + :return: AdminExecution If the method is called asynchronously, returns the request thread. """ - all_params = ['id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2056,38 +2092,38 @@ def get_node_execution_data_with_http_info(self, id_execution_id_project, id_exe if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_node_execution_data" % key + " to method get_execution2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_execution_id_project' is set - if ('id_execution_id_project' not in params or - params['id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution_data`") # noqa: E501 - # verify the required parameter 'id_execution_id_domain' is set - if ('id_execution_id_domain' not in params or - params['id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution_data`") # noqa: E501 - # verify the required parameter 'id_execution_id_name' is set - if ('id_execution_id_name' not in params or - params['id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution_data`") # noqa: E501 - # verify the required parameter 'id_node_id' is set - if ('id_node_id' not in params or - params['id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution_data`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_execution2`") # noqa: E501 + # 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 `get_execution2`") # 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 `get_execution2`") # 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 `get_execution2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_execution_id_project' in params: - path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 - if 'id_execution_id_domain' in params: - path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 - if 'id_execution_id_name' in params: - path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 - if 'id_node_id' in params: - path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 = [] @@ -2109,14 +2145,14 @@ def get_node_execution_data_with_http_info(self, id_execution_id_project, id_exe auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + '/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNodeExecutionGetDataResponse', # noqa: E501 + response_type='AdminExecution', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2124,45 +2160,49 @@ def get_node_execution_data_with_http_info(self, id_execution_id_project, id_exe _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_project_attributes(self, project, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_execution_data(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_attributes(project, async_req=True) + >>> thread = api.get_execution_data(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminProjectAttributesGetResponse + :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 str id_org: Optional, org key applied to the resource. + :return: AdminWorkflowExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_project_attributes_with_http_info(project, **kwargs) # noqa: E501 + return self.get_execution_data_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_project_attributes_with_http_info(project, **kwargs) # noqa: E501 + (data) = self.get_execution_data_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_attributes_with_http_info(project, async_req=True) + >>> thread = api.get_execution_data_with_http_info(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminProjectAttributesGetResponse + :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 str id_org: Optional, org key applied to the resource. + :return: AdminWorkflowExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'resource_type'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2173,24 +2213,36 @@ def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E50 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_project_attributes" % key + " to method get_execution_data" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `get_project_attributes`") # noqa: E501 + # 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 `get_execution_data`") # 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 `get_execution_data`") # 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 `get_execution_data`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 + 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 = [] - if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -2210,14 +2262,14 @@ def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E50 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_attributes/{project}', 'GET', + '/api/v1/data/executions/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectAttributesGetResponse', # noqa: E501 + response_type='AdminWorkflowExecutionGetDataResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2225,47 +2277,49 @@ def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E50 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_project_domain_attributes(self, project, domain, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_execution_data2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_domain_attributes(project, domain, async_req=True) + >>> thread = api.get_execution_data2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminProjectDomainAttributesGetResponse + :param str id_org: Optional, org key applied to the resource. (required) + :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) + :return: AdminWorkflowExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_project_domain_attributes_with_http_info(project, domain, **kwargs) # noqa: E501 + return self.get_execution_data2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_project_domain_attributes_with_http_info(project, domain, **kwargs) # noqa: E501 + (data) = self.get_execution_data2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_execution_data2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_domain_attributes_with_http_info(project, domain, async_req=True) + >>> thread = api.get_execution_data2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminProjectDomainAttributesGetResponse + :param str id_org: Optional, org key applied to the resource. (required) + :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) + :return: AdminWorkflowExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'resource_type'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2276,30 +2330,40 @@ def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_project_domain_attributes" % key + " to method get_execution_data2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `get_project_domain_attributes`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `get_project_domain_attributes`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_execution_data2`") # noqa: E501 + # 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 `get_execution_data2`") # 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 `get_execution_data2`") # 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 `get_execution_data2`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 = [] - if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 header_params = {} @@ -2319,14 +2383,14 @@ def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_domain_attributes/{project}/{domain}', 'GET', + '/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectDomainAttributesGetResponse', # noqa: E501 + response_type='AdminWorkflowExecutionGetDataResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2334,51 +2398,51 @@ def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_task(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + def get_execution_metrics(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_execution_metrics(id_project, id_domain, id_name, 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 provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminTask + :param str id_name: User or system provided value for the resource. (required) + :param str id_org: Optional, org key applied to the resource. + :param int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. + :return: AdminWorkflowExecutionGetMetricsResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_task_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.get_execution_metrics_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_task_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.get_execution_metrics_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_execution_metrics_with_http_info(id_project, id_domain, id_name, 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 provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminTask - If the method is called asynchronously, - returns the request thread. + :param str id_name: User or system provided value for the resource. (required) + :param str id_org: Optional, org key applied to the resource. + :param int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. + :return: AdminWorkflowExecutionGetMetricsResponse + If the method is called asynchronously, + returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'depth'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2389,26 +2453,22 @@ def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, ** if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_task" % key + " to method get_execution_metrics" % 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 `get_task`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_execution_metrics`") # 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 `get_task`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_execution_metrics`") # 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 `get_task`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_task`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_execution_metrics`") # noqa: E501 collection_formats = {} @@ -2419,12 +2479,12 @@ def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, ** path_params['id.domain'] = params['id_domain'] # noqa: E501 if 'id_name' in params: path_params['id.name'] = params['id_name'] # noqa: E501 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'id_resource_type' in params: - query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'depth' in params: + query_params.append(('depth', params['depth'])) # noqa: E501 header_params = {} @@ -2444,14 +2504,14 @@ def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, ** auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTask', # noqa: E501 + response_type='AdminWorkflowExecutionGetMetricsResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2459,61 +2519,51 @@ def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, ** _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_task_execution(self, 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, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def get_execution_metrics2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution(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, async_req=True) + >>> thread = api.get_execution_metrics2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_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_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: FlyteidladminTaskExecution + :param str id_org: Optional, org key applied to the resource. (required) + :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 int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. + :return: AdminWorkflowExecutionGetMetricsResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_task_execution_with_http_info(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, **kwargs) # noqa: E501 + return self.get_execution_metrics2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_task_execution_with_http_info(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, **kwargs) # noqa: E501 + (data) = self.get_execution_metrics2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_task_execution_with_http_info(self, 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, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def get_execution_metrics2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution_with_http_info(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, async_req=True) + >>> thread = api.get_execution_metrics2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_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_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: FlyteidladminTaskExecution + :param str id_org: Optional, org key applied to the resource. (required) + :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 int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. + :return: AdminWorkflowExecutionGetMetricsResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['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', 'id_task_id_resource_type'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'depth'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2524,72 +2574,42 @@ def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_pr if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_task_execution" % key + " to method get_execution_metrics2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_node_execution_id_execution_id_project' is set - if ('id_node_execution_id_execution_id_project' not in params or - params['id_node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_domain' is set - if ('id_node_execution_id_execution_id_domain' not in params or - params['id_node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_name' is set - if ('id_node_execution_id_execution_id_name' not in params or - params['id_node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_node_id' is set - if ('id_node_execution_id_node_id' not in params or - params['id_node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_task_id_project' is set - if ('id_task_id_project' not in params or - params['id_task_id_project'] is None): - raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_task_id_domain' is set - if ('id_task_id_domain' not in params or - params['id_task_id_domain'] is None): - raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_task_id_name' is set - if ('id_task_id_name' not in params or - params['id_task_id_name'] is None): - raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_task_id_version' is set - if ('id_task_id_version' not in params or - params['id_task_id_version'] is None): - raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_retry_attempt' is set - if ('id_retry_attempt' not in params or - params['id_retry_attempt'] is None): - raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_execution_metrics2`") # noqa: E501 + # 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 `get_execution_metrics2`") # 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 `get_execution_metrics2`") # 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 `get_execution_metrics2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_node_execution_id_execution_id_project' in params: - path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 - if 'id_node_execution_id_execution_id_domain' in params: - path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 - if 'id_node_execution_id_execution_id_name' in params: - path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 - if 'id_node_execution_id_node_id' in params: - path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 - if 'id_task_id_project' in params: - path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 - if 'id_task_id_domain' in params: - path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 - if 'id_task_id_name' in params: - path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 - if 'id_task_id_version' in params: - path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 - if 'id_retry_attempt' in params: - path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 = [] - if 'id_task_id_resource_type' in params: - query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 + if 'depth' in params: + query_params.append(('depth', params['depth'])) # noqa: E501 header_params = {} @@ -2609,14 +2629,14 @@ def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_pr auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/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}', 'GET', + '/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='FlyteidladminTaskExecution', # noqa: E501 + response_type='AdminWorkflowExecutionGetMetricsResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2624,61 +2644,53 @@ def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_pr _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_task_execution_data(self, 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, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def get_launch_plan(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution_data(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, async_req=True) + >>> thread = api.get_launch_plan(id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_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_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminTaskExecutionGetDataResponse + :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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_task_execution_data_with_http_info(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, **kwargs) # noqa: E501 + return self.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 else: - (data) = self.get_task_execution_data_with_http_info(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, **kwargs) # noqa: E501 + (data) = self.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 return data - def get_task_execution_data_with_http_info(self, 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, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution_data_with_http_info(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, async_req=True) + >>> thread = api.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_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_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminTaskExecutionGetDataResponse + :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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ - all_params = ['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', 'id_task_id_resource_type'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2689,56 +2701,2327 @@ def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_ if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_task_execution_data" % key + " to method get_launch_plan" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_node_execution_id_execution_id_project' is set - if ('id_node_execution_id_execution_id_project' not in params or - params['id_node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_domain' is set - if ('id_node_execution_id_execution_id_domain' not in params or - params['id_node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_name' is set - if ('id_node_execution_id_execution_id_name' not in params or - params['id_node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_node_id' is set - if ('id_node_execution_id_node_id' not in params or - params['id_node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_task_id_project' is set - if ('id_task_id_project' not in params or - params['id_task_id_project'] is None): - raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_task_id_domain' is set - if ('id_task_id_domain' not in params or - params['id_task_id_domain'] is None): - raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_task_id_name' is set - if ('id_task_id_name' not in params or - params['id_task_id_name'] is None): - raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_task_id_version' is set - if ('id_task_id_version' not in params or - params['id_task_id_version'] is None): - raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_retry_attempt' is set - if ('id_retry_attempt' not in params or - params['id_retry_attempt'] is None): - raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution_data`") # noqa: E501 + # 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 `get_launch_plan`") # 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 `get_launch_plan`") # 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 `get_launch_plan`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_launch_plan`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_node_execution_id_execution_id_project' in params: - path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 - if 'id_node_execution_id_execution_id_domain' in params: - path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 - if 'id_node_execution_id_execution_id_name' in params: - path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 + 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 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 + + query_params = [] + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminLaunchPlan', # 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 get_launch_plan2(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_launch_plan2(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminLaunchPlan + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + else: + (data) = self.get_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return data + + def get_launch_plan2_with_http_info(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminLaunchPlan + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # 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 get_launch_plan2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_launch_plan2`") # noqa: E501 + # 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 `get_launch_plan2`") # 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 `get_launch_plan2`") # 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 `get_launch_plan2`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_launch_plan2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 + + query_params = [] + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminLaunchPlan', # 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 get_named_entity(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_named_entity(resource_type, id_project, id_domain, id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminNamedEntity + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + else: + (data) = self.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return data + + def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminNamedEntity + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'id_org'] # 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 get_named_entity" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `get_named_entity`") # noqa: E501 + # 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 `get_named_entity`") # 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 `get_named_entity`") # 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 `get_named_entity`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + 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 = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNamedEntity', # 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 get_named_entity2(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_named_entity2(resource_type, id_org, id_project, id_domain, id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :return: AdminNamedEntity + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + else: + (data) = self.get_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return data + + def get_named_entity2_with_http_info(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :return: AdminNamedEntity + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['resource_type', 'id_org', 'id_project', 'id_domain', 'id_name'] # 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 get_named_entity2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `get_named_entity2`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_named_entity2`") # noqa: E501 + # 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 `get_named_entity2`") # 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 `get_named_entity2`") # 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 `get_named_entity2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 + # 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/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNamedEntity', # 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 get_node_execution(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_node_execution(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :param str id_execution_id_org: Optional, org key applied to the resource. + :return: FlyteidladminNodeExecution + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + else: + (data) = self.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + return data + + def get_node_execution_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :param str id_execution_id_org: Optional, org key applied to the resource. + :return: FlyteidladminNodeExecution + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id', 'id_execution_id_org'] # 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 get_node_execution" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_execution_id_project' is set + if ('id_execution_id_project' not in params or + params['id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution`") # noqa: E501 + # verify the required parameter 'id_execution_id_domain' is set + if ('id_execution_id_domain' not in params or + params['id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution`") # noqa: E501 + # verify the required parameter 'id_execution_id_name' is set + if ('id_execution_id_name' not in params or + params['id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution`") # noqa: E501 + # verify the required parameter 'id_node_id' is set + if ('id_node_id' not in params or + params['id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_execution_id_project' in params: + path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 + if 'id_execution_id_domain' in params: + path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 + if 'id_execution_id_name' in params: + path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 + if 'id_node_id' in params: + path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + + query_params = [] + if 'id_execution_id_org' in params: + query_params.append(('id.execution_id.org', params['id_execution_id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FlyteidladminNodeExecution', # 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 get_node_execution2(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_node_execution2(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :return: FlyteidladminNodeExecution + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_node_execution2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + else: + (data) = self.get_node_execution2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + return data + + def get_node_execution2_with_http_info(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_node_execution2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :return: FlyteidladminNodeExecution + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_execution_id_org', 'id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id'] # 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 get_node_execution2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_execution_id_org' is set + if ('id_execution_id_org' not in params or + params['id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `id_execution_id_org` when calling `get_node_execution2`") # noqa: E501 + # verify the required parameter 'id_execution_id_project' is set + if ('id_execution_id_project' not in params or + params['id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution2`") # noqa: E501 + # verify the required parameter 'id_execution_id_domain' is set + if ('id_execution_id_domain' not in params or + params['id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution2`") # noqa: E501 + # verify the required parameter 'id_execution_id_name' is set + if ('id_execution_id_name' not in params or + params['id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution2`") # noqa: E501 + # verify the required parameter 'id_node_id' is set + if ('id_node_id' not in params or + params['id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_execution_id_org' in params: + path_params['id.execution_id.org'] = params['id_execution_id_org'] # noqa: E501 + if 'id_execution_id_project' in params: + path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 + if 'id_execution_id_domain' in params: + path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 + if 'id_execution_id_name' in params: + path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 + if 'id_node_id' in params: + path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FlyteidladminNodeExecution', # 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 get_node_execution_data(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_node_execution_data(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :param str id_execution_id_org: Optional, org key applied to the resource. + :return: AdminNodeExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + else: + (data) = self.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + return data + + def get_node_execution_data_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :param str id_execution_id_org: Optional, org key applied to the resource. + :return: AdminNodeExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id', 'id_execution_id_org'] # 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 get_node_execution_data" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_execution_id_project' is set + if ('id_execution_id_project' not in params or + params['id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution_data`") # noqa: E501 + # verify the required parameter 'id_execution_id_domain' is set + if ('id_execution_id_domain' not in params or + params['id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution_data`") # noqa: E501 + # verify the required parameter 'id_execution_id_name' is set + if ('id_execution_id_name' not in params or + params['id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution_data`") # noqa: E501 + # verify the required parameter 'id_node_id' is set + if ('id_node_id' not in params or + params['id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution_data`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_execution_id_project' in params: + path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 + if 'id_execution_id_domain' in params: + path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 + if 'id_execution_id_name' in params: + path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 + if 'id_node_id' in params: + path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + + query_params = [] + if 'id_execution_id_org' in params: + query_params.append(('id.execution_id.org', params['id_execution_id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNodeExecutionGetDataResponse', # 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 get_node_execution_data2(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_node_execution_data2(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :return: AdminNodeExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_node_execution_data2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + else: + (data) = self.get_node_execution_data2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + return data + + def get_node_execution_data2_with_http_info(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_node_execution_data2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_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_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :return: AdminNodeExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_execution_id_org', 'id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id'] # 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 get_node_execution_data2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_execution_id_org' is set + if ('id_execution_id_org' not in params or + params['id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `id_execution_id_org` when calling `get_node_execution_data2`") # noqa: E501 + # verify the required parameter 'id_execution_id_project' is set + if ('id_execution_id_project' not in params or + params['id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution_data2`") # noqa: E501 + # verify the required parameter 'id_execution_id_domain' is set + if ('id_execution_id_domain' not in params or + params['id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution_data2`") # noqa: E501 + # verify the required parameter 'id_execution_id_name' is set + if ('id_execution_id_name' not in params or + params['id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution_data2`") # noqa: E501 + # verify the required parameter 'id_node_id' is set + if ('id_node_id' not in params or + params['id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution_data2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_execution_id_org' in params: + path_params['id.execution_id.org'] = params['id_execution_id_org'] # noqa: E501 + if 'id_execution_id_project' in params: + path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 + if 'id_execution_id_domain' in params: + path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 + if 'id_execution_id_name' in params: + path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 + if 'id_node_id' in params: + path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNodeExecutionGetDataResponse', # 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 get_project_attributes(self, project, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.get_project_attributes(project, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the project. + :return: AdminProjectAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_project_attributes_with_http_info(project, **kwargs) # noqa: E501 + else: + (data) = self.get_project_attributes_with_http_info(project, **kwargs) # noqa: E501 + return data + + def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.get_project_attributes_with_http_info(project, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the project. + :return: AdminProjectAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['project', 'resource_type', 'org'] # 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 get_project_attributes" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_project_attributes`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/project_attributes/{project}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectAttributesGetResponse', # 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 get_project_attributes2(self, org, project, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.get_project_attributes2(org, project, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the project. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminProjectAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_project_attributes2_with_http_info(org, project, **kwargs) # noqa: E501 + else: + (data) = self.get_project_attributes2_with_http_info(org, project, **kwargs) # noqa: E501 + return data + + def get_project_attributes2_with_http_info(self, org, project, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.get_project_attributes2_with_http_info(org, project, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the project. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminProjectAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['org', 'project', 'resource_type'] # 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 get_project_attributes2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `get_project_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_project_attributes2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/project_domain_attributes/org/{org}/{project}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectAttributesGetResponse', # 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 get_project_domain_attributes(self, project, domain, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.get_project_domain_attributes(project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the attributes. + :return: AdminProjectDomainAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_project_domain_attributes_with_http_info(project, domain, **kwargs) # noqa: E501 + else: + (data) = self.get_project_domain_attributes_with_http_info(project, domain, **kwargs) # noqa: E501 + return data + + def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.get_project_domain_attributes_with_http_info(project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the attributes. + :return: AdminProjectDomainAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['project', 'domain', 'resource_type', 'org'] # 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 get_project_domain_attributes" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_project_domain_attributes`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `get_project_domain_attributes`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/project_domain_attributes/{project}/{domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectDomainAttributesGetResponse', # 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 get_project_domain_attributes2(self, org, project, domain, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.get_project_domain_attributes2(org, project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminProjectDomainAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_project_domain_attributes2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + else: + (data) = self.get_project_domain_attributes2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + return data + + def get_project_domain_attributes2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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.get_project_domain_attributes2_with_http_info(org, project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminProjectDomainAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['org', 'project', 'domain', 'resource_type'] # 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 get_project_domain_attributes2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `get_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `get_project_domain_attributes2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/project_domain_attributes/org/{org}/{project}/{domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectDomainAttributesGetResponse', # 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 get_task(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task(id_project, id_domain, id_name, id_version, 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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminTask + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + else: + (data) = self.get_task_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return data + + def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_with_http_info(id_project, id_domain, id_name, id_version, 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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminTask + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type', 'id_org'] # 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 get_task" % 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 `get_task`") # 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 `get_task`") # 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 `get_task`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_task`") # 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 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 + + query_params = [] + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/tasks/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminTask', # 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 get_task2(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task2(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminTask + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + else: + (data) = self.get_task2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return data + + def get_task2_with_http_info(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task2_with_http_info(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminTask + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # 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 get_task2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_task2`") # noqa: E501 + # 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 `get_task2`") # 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 `get_task2`") # 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 `get_task2`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_task2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 + + query_params = [] + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminTask', # 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 get_task_execution(self, 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, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution(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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_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_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :return: FlyteidladminTaskExecution + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task_execution_with_http_info(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, **kwargs) # noqa: E501 + else: + (data) = self.get_task_execution_with_http_info(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, **kwargs) # noqa: E501 + return data + + def get_task_execution_with_http_info(self, 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, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution_with_http_info(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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_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_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :return: FlyteidladminTaskExecution + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['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', 'id_task_id_resource_type', 'id_task_id_org', 'id_node_execution_id_execution_id_org'] # 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 get_task_execution" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_node_execution_id_execution_id_project' is set + if ('id_node_execution_id_execution_id_project' not in params or + params['id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_domain' is set + if ('id_node_execution_id_execution_id_domain' not in params or + params['id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_name' is set + if ('id_node_execution_id_execution_id_name' not in params or + params['id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_node_id' is set + if ('id_node_execution_id_node_id' not in params or + params['id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_task_id_project' is set + if ('id_task_id_project' not in params or + params['id_task_id_project'] is None): + raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_task_id_domain' is set + if ('id_task_id_domain' not in params or + params['id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_task_id_name' is set + if ('id_task_id_name' not in params or + params['id_task_id_name'] is None): + raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_task_id_version' is set + if ('id_task_id_version' not in params or + params['id_task_id_version'] is None): + raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_retry_attempt' is set + if ('id_retry_attempt' not in params or + params['id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_node_execution_id_execution_id_project' in params: + path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 + if 'id_node_execution_id_execution_id_domain' in params: + path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'id_node_execution_id_execution_id_name' in params: + path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 + if 'id_node_execution_id_node_id' in params: + path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 + if 'id_task_id_project' in params: + path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 + if 'id_task_id_domain' in params: + path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 + if 'id_task_id_name' in params: + path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 + if 'id_task_id_version' in params: + path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 + if 'id_retry_attempt' in params: + path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + + query_params = [] + if 'id_task_id_resource_type' in params: + query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 + if 'id_task_id_org' in params: + query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 + if 'id_node_execution_id_execution_id_org' in params: + query_params.append(('id.node_execution_id.execution_id.org', params['id_node_execution_id_execution_id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/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}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FlyteidladminTaskExecution', # 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 get_task_execution2(self, id_node_execution_id_execution_id_org, 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, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution2(id_node_execution_id_execution_id_org, 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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_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_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :return: FlyteidladminTaskExecution + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task_execution2_with_http_info(id_node_execution_id_execution_id_org, 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, **kwargs) # noqa: E501 + else: + (data) = self.get_task_execution2_with_http_info(id_node_execution_id_execution_id_org, 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, **kwargs) # noqa: E501 + return data + + def get_task_execution2_with_http_info(self, id_node_execution_id_execution_id_org, 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, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution2_with_http_info(id_node_execution_id_execution_id_org, 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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_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_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :return: FlyteidladminTaskExecution + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_node_execution_id_execution_id_org', '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', 'id_task_id_resource_type', 'id_task_id_org'] # 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 get_task_execution2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_node_execution_id_execution_id_org' is set + if ('id_node_execution_id_execution_id_org' not in params or + params['id_node_execution_id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_org` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_project' is set + if ('id_node_execution_id_execution_id_project' not in params or + params['id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_domain' is set + if ('id_node_execution_id_execution_id_domain' not in params or + params['id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_name' is set + if ('id_node_execution_id_execution_id_name' not in params or + params['id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_node_id' is set + if ('id_node_execution_id_node_id' not in params or + params['id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_task_id_project' is set + if ('id_task_id_project' not in params or + params['id_task_id_project'] is None): + raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_task_id_domain' is set + if ('id_task_id_domain' not in params or + params['id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_task_id_name' is set + if ('id_task_id_name' not in params or + params['id_task_id_name'] is None): + raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_task_id_version' is set + if ('id_task_id_version' not in params or + params['id_task_id_version'] is None): + raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_retry_attempt' is set + if ('id_retry_attempt' not in params or + params['id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_node_execution_id_execution_id_org' in params: + path_params['id.node_execution_id.execution_id.org'] = params['id_node_execution_id_execution_id_org'] # noqa: E501 + if 'id_node_execution_id_execution_id_project' in params: + path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 + if 'id_node_execution_id_execution_id_domain' in params: + path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'id_node_execution_id_execution_id_name' in params: + path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 + if 'id_node_execution_id_node_id' in params: + path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 + if 'id_task_id_project' in params: + path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 + if 'id_task_id_domain' in params: + path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 + if 'id_task_id_name' in params: + path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 + if 'id_task_id_version' in params: + path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 + if 'id_retry_attempt' in params: + path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + + query_params = [] + if 'id_task_id_resource_type' in params: + query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 + if 'id_task_id_org' in params: + query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/task_executions/org/{id.node_execution_id.execution_id.org}/{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}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FlyteidladminTaskExecution', # 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 get_task_execution_data(self, 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, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution_data(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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_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_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :return: AdminTaskExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task_execution_data_with_http_info(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, **kwargs) # noqa: E501 + else: + (data) = self.get_task_execution_data_with_http_info(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, **kwargs) # noqa: E501 + return data + + def get_task_execution_data_with_http_info(self, 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, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution_data_with_http_info(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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_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_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :return: AdminTaskExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['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', 'id_task_id_resource_type', 'id_task_id_org', 'id_node_execution_id_execution_id_org'] # 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 get_task_execution_data" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_node_execution_id_execution_id_project' is set + if ('id_node_execution_id_execution_id_project' not in params or + params['id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_domain' is set + if ('id_node_execution_id_execution_id_domain' not in params or + params['id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_name' is set + if ('id_node_execution_id_execution_id_name' not in params or + params['id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_node_id' is set + if ('id_node_execution_id_node_id' not in params or + params['id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_task_id_project' is set + if ('id_task_id_project' not in params or + params['id_task_id_project'] is None): + raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_task_id_domain' is set + if ('id_task_id_domain' not in params or + params['id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_task_id_name' is set + if ('id_task_id_name' not in params or + params['id_task_id_name'] is None): + raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_task_id_version' is set + if ('id_task_id_version' not in params or + params['id_task_id_version'] is None): + raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_retry_attempt' is set + if ('id_retry_attempt' not in params or + params['id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution_data`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_node_execution_id_execution_id_project' in params: + path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 + if 'id_node_execution_id_execution_id_domain' in params: + path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'id_node_execution_id_execution_id_name' in params: + path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 + if 'id_node_execution_id_node_id' in params: + path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 + if 'id_task_id_project' in params: + path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 + if 'id_task_id_domain' in params: + path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 + if 'id_task_id_name' in params: + path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 + if 'id_task_id_version' in params: + path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 + if 'id_retry_attempt' in params: + path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + + query_params = [] + if 'id_task_id_resource_type' in params: + query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 + if 'id_task_id_org' in params: + query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 + if 'id_node_execution_id_execution_id_org' in params: + query_params.append(('id.node_execution_id.execution_id.org', params['id_node_execution_id_execution_id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/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}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminTaskExecutionGetDataResponse', # 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 get_task_execution_data2(self, id_node_execution_id_execution_id_org, 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, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution_data2(id_node_execution_id_execution_id_org, 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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_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_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :return: AdminTaskExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task_execution_data2_with_http_info(id_node_execution_id_execution_id_org, 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, **kwargs) # noqa: E501 + else: + (data) = self.get_task_execution_data2_with_http_info(id_node_execution_id_execution_id_org, 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, **kwargs) # noqa: E501 + return data + + def get_task_execution_data2_with_http_info(self, id_node_execution_id_execution_id_org, 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, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution_data2_with_http_info(id_node_execution_id_execution_id_org, 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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_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_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_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_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :return: AdminTaskExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_node_execution_id_execution_id_org', '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', 'id_task_id_resource_type', 'id_task_id_org'] # 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 get_task_execution_data2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_node_execution_id_execution_id_org' is set + if ('id_node_execution_id_execution_id_org' not in params or + params['id_node_execution_id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_org` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_project' is set + if ('id_node_execution_id_execution_id_project' not in params or + params['id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_domain' is set + if ('id_node_execution_id_execution_id_domain' not in params or + params['id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_name' is set + if ('id_node_execution_id_execution_id_name' not in params or + params['id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_node_id' is set + if ('id_node_execution_id_node_id' not in params or + params['id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_task_id_project' is set + if ('id_task_id_project' not in params or + params['id_task_id_project'] is None): + raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_task_id_domain' is set + if ('id_task_id_domain' not in params or + params['id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_task_id_name' is set + if ('id_task_id_name' not in params or + params['id_task_id_name'] is None): + raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_task_id_version' is set + if ('id_task_id_version' not in params or + params['id_task_id_version'] is None): + raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_retry_attempt' is set + if ('id_retry_attempt' not in params or + params['id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution_data2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_node_execution_id_execution_id_org' in params: + path_params['id.node_execution_id.execution_id.org'] = params['id_node_execution_id_execution_id_org'] # noqa: E501 + if 'id_node_execution_id_execution_id_project' in params: + path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 + if 'id_node_execution_id_execution_id_domain' in params: + path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'id_node_execution_id_execution_id_name' in params: + path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 if 'id_node_execution_id_node_id' in params: path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 if 'id_task_id_project' in params: @@ -2753,8 +5036,3842 @@ def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_ path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 query_params = [] - if 'id_task_id_resource_type' in params: - query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 + if 'id_task_id_resource_type' in params: + query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 + if 'id_task_id_org' in params: + query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminTaskExecutionGetDataResponse', # 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 get_version(self, **kwargs): # noqa: E501 + """get_version # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_version(async_req=True) + >>> result = thread.get() + + :param async_req bool + :return: AdminGetVersionResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_version_with_http_info(**kwargs) # noqa: E501 + else: + (data) = self.get_version_with_http_info(**kwargs) # noqa: E501 + return data + + def get_version_with_http_info(self, **kwargs): # noqa: E501 + """get_version # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_version_with_http_info(async_req=True) + >>> result = thread.get() + + :param async_req bool + :return: AdminGetVersionResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = [] # 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 get_version" % key + ) + params[key] = val + del params['kwargs'] + + collection_formats = {} + + path_params = {} + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/version', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminGetVersionResponse', # 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 get_workflow(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow(id_project, id_domain, id_name, id_version, 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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminWorkflow + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + else: + (data) = self.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return data + + def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, 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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminWorkflow + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type', 'id_org'] # 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 get_workflow" % 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 `get_workflow`") # 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 `get_workflow`") # 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 `get_workflow`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_workflow`") # 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 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 + + query_params = [] + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/workflows/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminWorkflow', # 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 get_workflow2(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow2(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminWorkflow + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_workflow2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + else: + (data) = self.get_workflow2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return data + + def get_workflow2_with_http_info(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow2_with_http_info(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminWorkflow + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # 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 get_workflow2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_workflow2`") # noqa: E501 + # 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 `get_workflow2`") # 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 `get_workflow2`") # 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 `get_workflow2`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_workflow2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 + + query_params = [] + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminWorkflow', # 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 get_workflow_attributes(self, project, domain, workflow, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow_attributes(project, domain, workflow, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the attributes. + :return: AdminWorkflowAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_workflow_attributes_with_http_info(project, domain, workflow, **kwargs) # noqa: E501 + else: + (data) = self.get_workflow_attributes_with_http_info(project, domain, workflow, **kwargs) # noqa: E501 + return data + + def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow_attributes_with_http_info(project, domain, workflow, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the attributes. + :return: AdminWorkflowAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['project', 'domain', 'workflow', 'resource_type', 'org'] # 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 get_workflow_attributes" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_workflow_attributes`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `get_workflow_attributes`") # noqa: E501 + # verify the required parameter 'workflow' is set + if ('workflow' not in params or + params['workflow'] is None): + raise ValueError("Missing the required parameter `workflow` when calling `get_workflow_attributes`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + if 'workflow' in params: + path_params['workflow'] = params['workflow'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/workflow_attributes/{project}/{domain}/{workflow}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminWorkflowAttributesGetResponse', # 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 get_workflow_attributes2(self, org, project, domain, workflow, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow_attributes2(org, project, domain, workflow, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminWorkflowAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_workflow_attributes2_with_http_info(org, project, domain, workflow, **kwargs) # noqa: E501 + else: + (data) = self.get_workflow_attributes2_with_http_info(org, project, domain, workflow, **kwargs) # noqa: E501 + return data + + def get_workflow_attributes2_with_http_info(self, org, project, domain, workflow, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow_attributes2_with_http_info(org, project, domain, workflow, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminWorkflowAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['org', 'project', 'domain', 'workflow', 'resource_type'] # 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 get_workflow_attributes2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `get_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `get_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'workflow' is set + if ('workflow' not in params or + params['workflow'] is None): + raise ValueError("Missing the required parameter `workflow` when calling `get_workflow_attributes2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + if 'workflow' in params: + path_params['workflow'] = params['workflow'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/workflow_attributes/org/{org}/{project}/{domain}/{workflow}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminWorkflowAttributesGetResponse', # 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 list_active_launch_plans(self, project, domain, **kwargs): # noqa: E501 + """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_active_launch_plans(project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Name of the project that contains the identifiers. +required. (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required. (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str org: Optional, org key applied to the resource. + :return: AdminLaunchPlanList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_active_launch_plans_with_http_info(project, domain, **kwargs) # noqa: E501 + else: + (data) = self.list_active_launch_plans_with_http_info(project, domain, **kwargs) # noqa: E501 + return data + + def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # noqa: E501 + """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_active_launch_plans_with_http_info(project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Name of the project that contains the identifiers. +required. (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required. (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str org: Optional, org key applied to the resource. + :return: AdminLaunchPlanList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'org'] # 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 list_active_launch_plans" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_active_launch_plans`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_active_launch_plans`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/active_launch_plans/{project}/{domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminLaunchPlanList', # 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 list_description_entities(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_description_entities(resource_type, id_project, id_domain, id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + else: + (data) = self.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return data + + def list_description_entities_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_description_entities" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities`") # noqa: E501 + # 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 `list_description_entities`") # 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 `list_description_entities`") # 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 `list_description_entities`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + 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 = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminDescriptionEntityList', # 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 list_description_entities2(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_description_entities2(resource_type, id_org, id_project, id_domain, id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_description_entities2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + else: + (data) = self.list_description_entities2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return data + + def list_description_entities2_with_http_info(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_description_entities2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['resource_type', 'id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_description_entities2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities2`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_description_entities2`") # noqa: E501 + # 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 `list_description_entities2`") # 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 `list_description_entities2`") # 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 `list_description_entities2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminDescriptionEntityList', # 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 list_description_entities3(self, resource_type, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_description_entities3(resource_type, id_project, id_domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_description_entities3_with_http_info(resource_type, id_project, id_domain, **kwargs) # noqa: E501 + else: + (data) = self.list_description_entities3_with_http_info(resource_type, id_project, id_domain, **kwargs) # noqa: E501 + return data + + def list_description_entities3_with_http_info(self, resource_type, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_description_entities3_with_http_info(resource_type, id_project, id_domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_description_entities3" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities3`") # noqa: E501 + # 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 `list_description_entities3`") # 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 `list_description_entities3`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + 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 + + query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/description_entities/{resource_type}/{id.project}/{id.domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminDescriptionEntityList', # 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 list_description_entities4(self, resource_type, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_description_entities4(resource_type, id_org, id_project, id_domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_description_entities4_with_http_info(resource_type, id_org, id_project, id_domain, **kwargs) # noqa: E501 + else: + (data) = self.list_description_entities4_with_http_info(resource_type, id_org, id_project, id_domain, **kwargs) # noqa: E501 + return data + + def list_description_entities4_with_http_info(self, resource_type, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_description_entities4_with_http_info(resource_type, id_org, id_project, id_domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['resource_type', 'id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_description_entities4" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities4`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_description_entities4`") # noqa: E501 + # 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 `list_description_entities4`") # 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 `list_description_entities4`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 + + query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminDescriptionEntityList', # 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 list_executions(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_executions(id_project, id_domain, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminExecutionList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_executions_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + else: + (data) = self.list_executions_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + return data + + def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_executions_with_http_info(id_project, id_domain, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminExecutionList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_executions" % 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 `list_executions`") # 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 `list_executions`") # 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 + + query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminExecutionList', # 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 list_executions2(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_executions2(id_org, id_project, id_domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminExecutionList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_executions2_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + else: + (data) = self.list_executions2_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + return data + + def list_executions2_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_executions2_with_http_info(id_org, id_project, id_domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminExecutionList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_executions2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_executions2`") # noqa: E501 + # 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 `list_executions2`") # 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 `list_executions2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 + + query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/org/{id.org}/{id.project}/{id.domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminExecutionList', # 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 list_launch_plan_ids(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plan_ids(project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_launch_plan_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + else: + (data) = self.list_launch_plan_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + return data + + def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plan_ids_with_http_info(project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # 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 list_launch_plan_ids" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_launch_plan_ids`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_launch_plan_ids`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/launch_plan_ids/{project}/{domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNamedEntityIdentifierList', # 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 list_launch_plan_ids2(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plan_ids2(org, project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityIdentifierList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_launch_plan_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + else: + (data) = self.list_launch_plan_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + return data + + def list_launch_plan_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plan_ids2_with_http_info(org, project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityIdentifierList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # 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 list_launch_plan_ids2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_launch_plan_ids2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_launch_plan_ids2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_launch_plan_ids2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/launch_plan_ids/org/{org}/{project}/{domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNamedEntityIdentifierList', # 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 list_launch_plans(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plans(id_project, id_domain, id_name, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminLaunchPlanList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_launch_plans_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + else: + (data) = self.list_launch_plans_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return data + + def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plans_with_http_info(id_project, id_domain, id_name, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminLaunchPlanList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_launch_plans" % 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 `list_launch_plans`") # 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 `list_launch_plans`") # 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 `list_launch_plans`") # 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 = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/launch_plans/{id.project}/{id.domain}/{id.name}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminLaunchPlanList', # 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 list_launch_plans2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plans2(id_org, id_project, id_domain, id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminLaunchPlanList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_launch_plans2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + else: + (data) = self.list_launch_plans2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return data + + def list_launch_plans2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plans2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminLaunchPlanList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_launch_plans2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_launch_plans2`") # noqa: E501 + # 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 `list_launch_plans2`") # 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 `list_launch_plans2`") # 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 `list_launch_plans2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminLaunchPlanList', # 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 list_launch_plans3(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plans3(id_project, id_domain, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminLaunchPlanList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_launch_plans3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + else: + (data) = self.list_launch_plans3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + return data + + def list_launch_plans3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plans3_with_http_info(id_project, id_domain, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminLaunchPlanList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_launch_plans3" % 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 `list_launch_plans3`") # 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 `list_launch_plans3`") # 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 + + query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/launch_plans/{id.project}/{id.domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminLaunchPlanList', # 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 list_launch_plans4(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plans4(id_org, id_project, id_domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminLaunchPlanList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_launch_plans4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + else: + (data) = self.list_launch_plans4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + return data + + def list_launch_plans4_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_launch_plans4_with_http_info(id_org, id_project, id_domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminLaunchPlanList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_launch_plans4" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_launch_plans4`") # noqa: E501 + # 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 `list_launch_plans4`") # 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 `list_launch_plans4`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 + + query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/launch_plans/org/{id.org}/{id.project}/{id.domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminLaunchPlanList', # 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 list_matchable_attributes(self, **kwargs): # noqa: E501 + """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_matchable_attributes(async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminListMatchableAttributesResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_matchable_attributes_with_http_info(**kwargs) # noqa: E501 + else: + (data) = self.list_matchable_attributes_with_http_info(**kwargs) # noqa: E501 + return data + + def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 + """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_matchable_attributes_with_http_info(async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminListMatchableAttributesResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['resource_type'] # 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 list_matchable_attributes" % key + ) + params[key] = val + del params['kwargs'] + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/matchable_attributes', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminListMatchableAttributesResponse', # 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 list_named_entities(self, resource_type, project, domain, **kwargs): # noqa: E501 + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_named_entities(resource_type, project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. (required) + :param int limit: Indicates the number of resources to be returned. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_named_entities_with_http_info(resource_type, project, domain, **kwargs) # noqa: E501 + else: + (data) = self.list_named_entities_with_http_info(resource_type, project, domain, **kwargs) # noqa: E501 + return data + + def list_named_entities_with_http_info(self, resource_type, project, domain, **kwargs): # noqa: E501 + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_named_entities_with_http_info(resource_type, project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. (required) + :param int limit: Indicates the number of resources to be returned. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['resource_type', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # 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 list_named_entities" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_named_entities`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_named_entities`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_named_entities`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/named_entities/{resource_type}/{project}/{domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNamedEntityList', # 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 list_named_entities2(self, resource_type, org, project, domain, **kwargs): # noqa: E501 + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_named_entities2(resource_type, org, project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. (required) + :param int limit: Indicates the number of resources to be returned. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_named_entities2_with_http_info(resource_type, org, project, domain, **kwargs) # noqa: E501 + else: + (data) = self.list_named_entities2_with_http_info(resource_type, org, project, domain, **kwargs) # noqa: E501 + return data + + def list_named_entities2_with_http_info(self, resource_type, org, project, domain, **kwargs): # noqa: E501 + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_named_entities2_with_http_info(resource_type, org, project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. (required) + :param int limit: Indicates the number of resources to be returned. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['resource_type', 'org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # 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 list_named_entities2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_named_entities2`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_named_entities2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_named_entities2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_named_entities2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/named_entities/{resource_type}/org/{org}/{project}/{domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNamedEntityList', # 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 list_node_executions(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_node_executions(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) + :param str workflow_execution_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 workflow_execution_id_name: User or system provided value for the resource. (required) + :param str workflow_execution_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. + :return: AdminNodeExecutionList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 + else: + (data) = self.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 + return data + + def list_node_executions_with_http_info(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) + :param str workflow_execution_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 workflow_execution_id_name: User or system provided value for the resource. (required) + :param str workflow_execution_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. + :return: AdminNodeExecutionList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['workflow_execution_id_project', 'workflow_execution_id_domain', 'workflow_execution_id_name', 'workflow_execution_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction', 'unique_parent_id'] # 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 list_node_executions" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'workflow_execution_id_project' is set + if ('workflow_execution_id_project' not in params or + params['workflow_execution_id_project'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_project` when calling `list_node_executions`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_domain' is set + if ('workflow_execution_id_domain' not in params or + params['workflow_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_domain` when calling `list_node_executions`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_name' is set + if ('workflow_execution_id_name' not in params or + params['workflow_execution_id_name'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_name` when calling `list_node_executions`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'workflow_execution_id_project' in params: + path_params['workflow_execution_id.project'] = params['workflow_execution_id_project'] # noqa: E501 + if 'workflow_execution_id_domain' in params: + path_params['workflow_execution_id.domain'] = params['workflow_execution_id_domain'] # noqa: E501 + if 'workflow_execution_id_name' in params: + path_params['workflow_execution_id.name'] = params['workflow_execution_id_name'] # noqa: E501 + + query_params = [] + if 'workflow_execution_id_org' in params: + query_params.append(('workflow_execution_id.org', params['workflow_execution_id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'unique_parent_id' in params: + query_params.append(('unique_parent_id', params['unique_parent_id'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNodeExecutionList', # 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 list_node_executions2(self, workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_node_executions2(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str workflow_execution_id_org: Optional, org key applied to the resource. (required) + :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) + :param str workflow_execution_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 workflow_execution_id_name: User or system provided value for the resource. (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. + :return: AdminNodeExecutionList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_node_executions2_with_http_info(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 + else: + (data) = self.list_node_executions2_with_http_info(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 + return data + + def list_node_executions2_with_http_info(self, workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_node_executions2_with_http_info(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str workflow_execution_id_org: Optional, org key applied to the resource. (required) + :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) + :param str workflow_execution_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 workflow_execution_id_name: User or system provided value for the resource. (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. + :return: AdminNodeExecutionList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['workflow_execution_id_org', 'workflow_execution_id_project', 'workflow_execution_id_domain', 'workflow_execution_id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction', 'unique_parent_id'] # 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 list_node_executions2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'workflow_execution_id_org' is set + if ('workflow_execution_id_org' not in params or + params['workflow_execution_id_org'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_org` when calling `list_node_executions2`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_project' is set + if ('workflow_execution_id_project' not in params or + params['workflow_execution_id_project'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_project` when calling `list_node_executions2`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_domain' is set + if ('workflow_execution_id_domain' not in params or + params['workflow_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_domain` when calling `list_node_executions2`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_name' is set + if ('workflow_execution_id_name' not in params or + params['workflow_execution_id_name'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_name` when calling `list_node_executions2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'workflow_execution_id_org' in params: + path_params['workflow_execution_id.org'] = params['workflow_execution_id_org'] # noqa: E501 + if 'workflow_execution_id_project' in params: + path_params['workflow_execution_id.project'] = params['workflow_execution_id_project'] # noqa: E501 + if 'workflow_execution_id_domain' in params: + path_params['workflow_execution_id.domain'] = params['workflow_execution_id_domain'] # noqa: E501 + if 'workflow_execution_id_name' in params: + path_params['workflow_execution_id.name'] = params['workflow_execution_id_name'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'unique_parent_id' in params: + query_params.append(('unique_parent_id', params['unique_parent_id'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNodeExecutionList', # 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 list_node_executions_for_task(self, 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, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_node_executions_for_task(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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_node_execution_id_execution_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 task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str task_execution_id_node_execution_id_node_id: (required) + :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_task_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 task_execution_id_task_id_name: User provided value for the resource. (required) + :param str task_execution_id_task_id_version: Specific version of the resource. (required) + :param int task_execution_id_retry_attempt: (required) + :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str task_execution_id_task_id_org: Optional, org key applied to the resource. + :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminNodeExecutionList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_node_executions_for_task_with_http_info(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, **kwargs) # noqa: E501 + else: + (data) = self.list_node_executions_for_task_with_http_info(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, **kwargs) # noqa: E501 + return data + + def list_node_executions_for_task_with_http_info(self, 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, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_node_executions_for_task_with_http_info(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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_node_execution_id_execution_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 task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str task_execution_id_node_execution_id_node_id: (required) + :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_task_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 task_execution_id_task_id_name: User provided value for the resource. (required) + :param str task_execution_id_task_id_version: Specific version of the resource. (required) + :param int task_execution_id_retry_attempt: (required) + :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str task_execution_id_task_id_org: Optional, org key applied to the resource. + :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminNodeExecutionList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['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', 'task_execution_id_task_id_resource_type', 'task_execution_id_task_id_org', 'task_execution_id_node_execution_id_execution_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_node_executions_for_task" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_project' is set + if ('task_execution_id_node_execution_id_execution_id_project' not in params or + params['task_execution_id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_project` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_domain' is set + if ('task_execution_id_node_execution_id_execution_id_domain' not in params or + params['task_execution_id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_domain` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_name' is set + if ('task_execution_id_node_execution_id_execution_id_name' not in params or + params['task_execution_id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_name` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_node_id' is set + if ('task_execution_id_node_execution_id_node_id' not in params or + params['task_execution_id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_node_id` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_project' is set + if ('task_execution_id_task_id_project' not in params or + params['task_execution_id_task_id_project'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_project` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_domain' is set + if ('task_execution_id_task_id_domain' not in params or + params['task_execution_id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_domain` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_name' is set + if ('task_execution_id_task_id_name' not in params or + params['task_execution_id_task_id_name'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_name` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_version' is set + if ('task_execution_id_task_id_version' not in params or + params['task_execution_id_task_id_version'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_version` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_retry_attempt' is set + if ('task_execution_id_retry_attempt' not in params or + params['task_execution_id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `task_execution_id_retry_attempt` when calling `list_node_executions_for_task`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'task_execution_id_node_execution_id_execution_id_project' in params: + path_params['task_execution_id.node_execution_id.execution_id.project'] = params['task_execution_id_node_execution_id_execution_id_project'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_domain' in params: + path_params['task_execution_id.node_execution_id.execution_id.domain'] = params['task_execution_id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_name' in params: + path_params['task_execution_id.node_execution_id.execution_id.name'] = params['task_execution_id_node_execution_id_execution_id_name'] # noqa: E501 + if 'task_execution_id_node_execution_id_node_id' in params: + path_params['task_execution_id.node_execution_id.node_id'] = params['task_execution_id_node_execution_id_node_id'] # noqa: E501 + if 'task_execution_id_task_id_project' in params: + path_params['task_execution_id.task_id.project'] = params['task_execution_id_task_id_project'] # noqa: E501 + if 'task_execution_id_task_id_domain' in params: + path_params['task_execution_id.task_id.domain'] = params['task_execution_id_task_id_domain'] # noqa: E501 + if 'task_execution_id_task_id_name' in params: + path_params['task_execution_id.task_id.name'] = params['task_execution_id_task_id_name'] # noqa: E501 + if 'task_execution_id_task_id_version' in params: + path_params['task_execution_id.task_id.version'] = params['task_execution_id_task_id_version'] # noqa: E501 + if 'task_execution_id_retry_attempt' in params: + path_params['task_execution_id.retry_attempt'] = params['task_execution_id_retry_attempt'] # noqa: E501 + + query_params = [] + if 'task_execution_id_task_id_resource_type' in params: + query_params.append(('task_execution_id.task_id.resource_type', params['task_execution_id_task_id_resource_type'])) # noqa: E501 + if 'task_execution_id_task_id_org' in params: + query_params.append(('task_execution_id.task_id.org', params['task_execution_id_task_id_org'])) # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_org' in params: + query_params.append(('task_execution_id.node_execution_id.execution_id.org', params['task_execution_id_node_execution_id_execution_id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/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}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNodeExecutionList', # 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 list_node_executions_for_task2(self, task_execution_id_node_execution_id_execution_id_org, 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, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_node_executions_for_task2(task_execution_id_node_execution_id_execution_id_org, 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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_node_execution_id_execution_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 task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str task_execution_id_node_execution_id_node_id: (required) + :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_task_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 task_execution_id_task_id_name: User provided value for the resource. (required) + :param str task_execution_id_task_id_version: Specific version of the resource. (required) + :param int task_execution_id_retry_attempt: (required) + :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str task_execution_id_task_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminNodeExecutionList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_node_executions_for_task2_with_http_info(task_execution_id_node_execution_id_execution_id_org, 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, **kwargs) # noqa: E501 + else: + (data) = self.list_node_executions_for_task2_with_http_info(task_execution_id_node_execution_id_execution_id_org, 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, **kwargs) # noqa: E501 + return data + + def list_node_executions_for_task2_with_http_info(self, task_execution_id_node_execution_id_execution_id_org, 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, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_node_executions_for_task2_with_http_info(task_execution_id_node_execution_id_execution_id_org, 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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_node_execution_id_execution_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 task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str task_execution_id_node_execution_id_node_id: (required) + :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_task_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 task_execution_id_task_id_name: User provided value for the resource. (required) + :param str task_execution_id_task_id_version: Specific version of the resource. (required) + :param int task_execution_id_retry_attempt: (required) + :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str task_execution_id_task_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminNodeExecutionList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['task_execution_id_node_execution_id_execution_id_org', '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', 'task_execution_id_task_id_resource_type', 'task_execution_id_task_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_node_executions_for_task2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_org' is set + if ('task_execution_id_node_execution_id_execution_id_org' not in params or + params['task_execution_id_node_execution_id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_org` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_project' is set + if ('task_execution_id_node_execution_id_execution_id_project' not in params or + params['task_execution_id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_project` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_domain' is set + if ('task_execution_id_node_execution_id_execution_id_domain' not in params or + params['task_execution_id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_domain` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_name' is set + if ('task_execution_id_node_execution_id_execution_id_name' not in params or + params['task_execution_id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_name` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_node_id' is set + if ('task_execution_id_node_execution_id_node_id' not in params or + params['task_execution_id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_node_id` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_project' is set + if ('task_execution_id_task_id_project' not in params or + params['task_execution_id_task_id_project'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_project` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_domain' is set + if ('task_execution_id_task_id_domain' not in params or + params['task_execution_id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_domain` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_name' is set + if ('task_execution_id_task_id_name' not in params or + params['task_execution_id_task_id_name'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_name` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_version' is set + if ('task_execution_id_task_id_version' not in params or + params['task_execution_id_task_id_version'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_version` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_retry_attempt' is set + if ('task_execution_id_retry_attempt' not in params or + params['task_execution_id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `task_execution_id_retry_attempt` when calling `list_node_executions_for_task2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'task_execution_id_node_execution_id_execution_id_org' in params: + path_params['task_execution_id.node_execution_id.execution_id.org'] = params['task_execution_id_node_execution_id_execution_id_org'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_project' in params: + path_params['task_execution_id.node_execution_id.execution_id.project'] = params['task_execution_id_node_execution_id_execution_id_project'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_domain' in params: + path_params['task_execution_id.node_execution_id.execution_id.domain'] = params['task_execution_id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_name' in params: + path_params['task_execution_id.node_execution_id.execution_id.name'] = params['task_execution_id_node_execution_id_execution_id_name'] # noqa: E501 + if 'task_execution_id_node_execution_id_node_id' in params: + path_params['task_execution_id.node_execution_id.node_id'] = params['task_execution_id_node_execution_id_node_id'] # noqa: E501 + if 'task_execution_id_task_id_project' in params: + path_params['task_execution_id.task_id.project'] = params['task_execution_id_task_id_project'] # noqa: E501 + if 'task_execution_id_task_id_domain' in params: + path_params['task_execution_id.task_id.domain'] = params['task_execution_id_task_id_domain'] # noqa: E501 + if 'task_execution_id_task_id_name' in params: + path_params['task_execution_id.task_id.name'] = params['task_execution_id_task_id_name'] # noqa: E501 + if 'task_execution_id_task_id_version' in params: + path_params['task_execution_id.task_id.version'] = params['task_execution_id_task_id_version'] # noqa: E501 + if 'task_execution_id_retry_attempt' in params: + path_params['task_execution_id.retry_attempt'] = params['task_execution_id_retry_attempt'] # noqa: E501 + + query_params = [] + if 'task_execution_id_task_id_resource_type' in params: + query_params.append(('task_execution_id.task_id.resource_type', params['task_execution_id_task_id_resource_type'])) # noqa: E501 + if 'task_execution_id_task_id_org' in params: + query_params.append(('task_execution_id.task_id.org', params['task_execution_id_task_id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNodeExecutionList', # 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 list_projects(self, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_projects(async_req=True) + >>> result = thread.get() + + :param async_req bool + :param int limit: Indicates the number of projects to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminProjects + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_projects_with_http_info(**kwargs) # noqa: E501 + else: + (data) = self.list_projects_with_http_info(**kwargs) # noqa: E501 + return data + + def list_projects_with_http_info(self, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_projects_with_http_info(async_req=True) + >>> result = thread.get() + + :param async_req bool + :param int limit: Indicates the number of projects to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminProjects + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_projects" % key + ) + params[key] = val + del params['kwargs'] + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/projects', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjects', # 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 list_task_executions(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_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, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str node_execution_id_execution_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 node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str node_execution_id_node_id: (required) + :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminTaskExecutionList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 + else: + (data) = self.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 + return data + + def list_task_executions_with_http_info(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str node_execution_id_execution_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 node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str node_execution_id_node_id: (required) + :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminTaskExecutionList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['node_execution_id_execution_id_project', 'node_execution_id_execution_id_domain', 'node_execution_id_execution_id_name', 'node_execution_id_node_id', 'node_execution_id_execution_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_task_executions" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'node_execution_id_execution_id_project' is set + if ('node_execution_id_execution_id_project' not in params or + params['node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_project` when calling `list_task_executions`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_domain' is set + if ('node_execution_id_execution_id_domain' not in params or + params['node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_domain` when calling `list_task_executions`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_name' is set + if ('node_execution_id_execution_id_name' not in params or + params['node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_name` when calling `list_task_executions`") # noqa: E501 + # verify the required parameter 'node_execution_id_node_id' is set + if ('node_execution_id_node_id' not in params or + params['node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `node_execution_id_node_id` when calling `list_task_executions`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'node_execution_id_execution_id_project' in params: + path_params['node_execution_id.execution_id.project'] = params['node_execution_id_execution_id_project'] # noqa: E501 + if 'node_execution_id_execution_id_domain' in params: + path_params['node_execution_id.execution_id.domain'] = params['node_execution_id_execution_id_domain'] # noqa: E501 + if 'node_execution_id_execution_id_name' in params: + path_params['node_execution_id.execution_id.name'] = params['node_execution_id_execution_id_name'] # noqa: E501 + if 'node_execution_id_node_id' in params: + path_params['node_execution_id.node_id'] = params['node_execution_id_node_id'] # noqa: E501 + + query_params = [] + if 'node_execution_id_execution_id_org' in params: + query_params.append(('node_execution_id.execution_id.org', params['node_execution_id_execution_id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # 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/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}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminTaskExecutionList', # 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 list_task_executions2(self, node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_task_executions2(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str node_execution_id_execution_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 node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str node_execution_id_node_id: (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminTaskExecutionList + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.list_task_executions2_with_http_info(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 + else: + (data) = self.list_task_executions2_with_http_info(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 + return data + + def list_task_executions2_with_http_info(self, node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.list_task_executions2_with_http_info(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str node_execution_id_execution_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 node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str node_execution_id_node_id: (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminTaskExecutionList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['node_execution_id_execution_id_org', 'node_execution_id_execution_id_project', 'node_execution_id_execution_id_domain', 'node_execution_id_execution_id_name', 'node_execution_id_node_id', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 list_task_executions2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'node_execution_id_execution_id_org' is set + if ('node_execution_id_execution_id_org' not in params or + params['node_execution_id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_org` when calling `list_task_executions2`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_project' is set + if ('node_execution_id_execution_id_project' not in params or + params['node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_project` when calling `list_task_executions2`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_domain' is set + if ('node_execution_id_execution_id_domain' not in params or + params['node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_domain` when calling `list_task_executions2`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_name' is set + if ('node_execution_id_execution_id_name' not in params or + params['node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_name` when calling `list_task_executions2`") # noqa: E501 + # verify the required parameter 'node_execution_id_node_id' is set + if ('node_execution_id_node_id' not in params or + params['node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `node_execution_id_node_id` when calling `list_task_executions2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'node_execution_id_execution_id_org' in params: + path_params['node_execution_id.execution_id.org'] = params['node_execution_id_execution_id_org'] # noqa: E501 + if 'node_execution_id_execution_id_project' in params: + path_params['node_execution_id.execution_id.project'] = params['node_execution_id_execution_id_project'] # noqa: E501 + if 'node_execution_id_execution_id_domain' in params: + path_params['node_execution_id.execution_id.domain'] = params['node_execution_id_execution_id_domain'] # noqa: E501 + if 'node_execution_id_execution_id_name' in params: + path_params['node_execution_id.execution_id.name'] = params['node_execution_id_execution_id_name'] # noqa: E501 + if 'node_execution_id_node_id' in params: + path_params['node_execution_id.node_id'] = params['node_execution_id_node_id'] # noqa: E501 + + query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -2774,14 +8891,14 @@ def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_ auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/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}', 'GET', + '/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTaskExecutionGetDataResponse', # noqa: E501 + response_type='AdminTaskExecutionList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2789,41 +8906,57 @@ def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_ _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_version(self, **kwargs): # noqa: E501 - """get_version # noqa: E501 + def list_task_ids(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_version(async_req=True) + >>> thread = api.list_task_ids(project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :return: AdminGetVersionResponse + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_version_with_http_info(**kwargs) # noqa: E501 + return self.list_task_ids_with_http_info(project, domain, **kwargs) # noqa: E501 else: - (data) = self.get_version_with_http_info(**kwargs) # noqa: E501 + (data) = self.list_task_ids_with_http_info(project, domain, **kwargs) # noqa: E501 return data - def get_version_with_http_info(self, **kwargs): # noqa: E501 - """get_version # noqa: E501 + def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_version_with_http_info(async_req=True) + >>> thread = api.list_task_ids_with_http_info(project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :return: AdminGetVersionResponse + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ - all_params = [] # noqa: E501 + all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2834,16 +8967,40 @@ def get_version_with_http_info(self, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_version" % key + " to method list_task_ids" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_task_ids`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_task_ids`") # noqa: E501 collection_formats = {} path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -2863,14 +9020,14 @@ def get_version_with_http_info(self, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/version', 'GET', + '/api/v1/task_ids/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminGetVersionResponse', # noqa: E501 + response_type='AdminNamedEntityIdentifierList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2878,51 +9035,57 @@ def get_version_with_http_info(self, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_workflow(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + def list_task_ids2(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.list_task_ids2(org, project, domain, 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 provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminWorkflow + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.list_task_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 else: - (data) = self.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.list_task_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 return data - def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + def list_task_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.list_task_ids2_with_http_info(org, project, domain, 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 provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminWorkflow + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # noqa: E501 + all_params = ['org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2933,42 +9096,44 @@ def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_workflow" % key + " to method list_task_ids2" % 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 `get_workflow`") # 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 `get_workflow`") # 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 `get_workflow`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_workflow`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_task_ids2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_task_ids2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_task_ids2`") # 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 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] - if 'id_resource_type' in params: - query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -2988,14 +9153,14 @@ def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/tasks/org/{org}/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflow', # noqa: E501 + response_type='AdminNamedEntityIdentifierList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3003,89 +9168,109 @@ def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_workflow_attributes(self, project, domain, workflow, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def list_tasks(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow_attributes(project, domain, workflow, async_req=True) + >>> thread = api.list_tasks(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminWorkflowAttributesGetResponse + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_workflow_attributes_with_http_info(project, domain, workflow, **kwargs) # noqa: E501 + return self.list_tasks_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_workflow_attributes_with_http_info(project, domain, workflow, **kwargs) # noqa: E501 + (data) = self.list_tasks_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow_attributes_with_http_info(project, domain, workflow, async_req=True) + >>> thread = api.list_tasks_with_http_info(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminWorkflowAttributesGetResponse + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'workflow', 'resource_type'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # 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 get_workflow_attributes" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `get_workflow_attributes`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `get_workflow_attributes`") # noqa: E501 - # verify the required parameter 'workflow' is set - if ('workflow' not in params or - params['workflow'] is None): - raise ValueError("Missing the required parameter `workflow` when calling `get_workflow_attributes`") # noqa: E501 - + 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 list_tasks" % 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 `list_tasks`") # 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 `list_tasks`") # 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 `list_tasks`") # noqa: E501 + collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 - if 'workflow' in params: - path_params['workflow'] = params['workflow'] # noqa: E501 + 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 = [] - if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -3105,14 +9290,14 @@ def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kw auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflow_attributes/{project}/{domain}/{workflow}', 'GET', + '/api/v1/tasks/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowAttributesGetResponse', # noqa: E501 + response_type='AdminTaskList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3120,53 +9305,59 @@ def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kw _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_active_launch_plans(self, project, domain, **kwargs): # noqa: E501 - """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + def list_tasks2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_active_launch_plans(project, domain, async_req=True) + >>> thread = api.list_tasks2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required. (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required. (required) + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_active_launch_plans_with_http_info(project, domain, **kwargs) # noqa: E501 + return self.list_tasks2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.list_active_launch_plans_with_http_info(project, domain, **kwargs) # noqa: E501 + (data) = self.list_tasks2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + def list_tasks2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_active_launch_plans_with_http_info(project, domain, async_req=True) + >>> thread = api.list_tasks2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required. (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required. (required) + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3177,32 +9368,46 @@ def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_active_launch_plans" % key + " to method list_tasks2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_active_launch_plans`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_active_launch_plans`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_tasks2`") # noqa: E501 + # 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 `list_tasks2`") # 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 `list_tasks2`") # 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 `list_tasks2`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 = [] if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: @@ -3226,14 +9431,14 @@ def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/active_launch_plans/{project}/{domain}', 'GET', + '/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlanList', # noqa: E501 + response_type='AdminTaskList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3241,59 +9446,59 @@ def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_description_entities(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_tasks3(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities(resource_type, id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_tasks3(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.list_tasks3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.list_tasks3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 return data - def list_description_entities_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_tasks3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_tasks3_with_http_info(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3304,40 +9509,32 @@ def list_description_entities_with_http_info(self, resource_type, id_project, id if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_description_entities" % key + " to method list_tasks3" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities`") # noqa: E501 # 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 `list_description_entities`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_tasks3`") # 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 `list_description_entities`") # 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 `list_description_entities`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_tasks3`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 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 = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -3367,14 +9564,14 @@ def list_description_entities_with_http_info(self, resource_type, id_project, id auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/tasks/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminDescriptionEntityList', # noqa: E501 + response_type='AdminTaskList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3382,59 +9579,59 @@ def list_description_entities_with_http_info(self, resource_type, id_project, id _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_description_entities2(self, resource_type, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_tasks4(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities2(resource_type, id_project, id_domain, async_req=True) + >>> thread = api.list_tasks4(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_org: Optional, org key applied to the resource. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_description_entities2_with_http_info(resource_type, id_project, id_domain, **kwargs) # noqa: E501 + return self.list_tasks4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_description_entities2_with_http_info(resource_type, id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_tasks4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 return data - def list_description_entities2_with_http_info(self, resource_type, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_tasks4_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities2_with_http_info(resource_type, id_project, id_domain, async_req=True) + >>> thread = api.list_tasks4_with_http_info(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_org: Optional, org key applied to the resource. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3445,28 +9642,28 @@ def list_description_entities2_with_http_info(self, resource_type, id_project, i if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_description_entities2" % key + " to method list_tasks4" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities2`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_tasks4`") # noqa: E501 # 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 `list_description_entities2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_tasks4`") # 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 `list_description_entities2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_tasks4`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: @@ -3504,14 +9701,14 @@ def list_description_entities2_with_http_info(self, resource_type, id_project, i auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}', 'GET', + '/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminDescriptionEntityList', # noqa: E501 + response_type='AdminTaskList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3519,57 +9716,57 @@ def list_description_entities2_with_http_info(self, resource_type, id_project, i _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_executions(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def list_workflow_ids(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_executions(id_project, id_domain, async_req=True) + >>> thread = api.list_workflow_ids(project, domain, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminExecutionList + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_executions_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + return self.list_workflow_ids_with_http_info(project, domain, **kwargs) # noqa: E501 else: - (data) = self.list_executions_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_workflow_ids_with_http_info(project, domain, **kwargs) # noqa: E501 return data - def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_executions_with_http_info(id_project, id_domain, async_req=True) + >>> thread = api.list_workflow_ids_with_http_info(project, domain, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminExecutionList + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3580,40 +9777,40 @@ def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # no if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_executions" % key + " to method list_workflow_ids" % 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 `list_executions`") # 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 `list_executions`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_workflow_ids`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_workflow_ids`") # 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 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -3633,14 +9830,14 @@ def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # no auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/{id.project}/{id.domain}', 'GET', + '/api/v1/workflow_ids/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminExecutionList', # noqa: E501 + response_type='AdminNamedEntityIdentifierList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3648,15 +9845,16 @@ def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # no _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_launch_plan_ids(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + def list_workflow_ids2(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plan_ids(project, domain, async_req=True) + >>> thread = api.list_workflow_ids2(org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool + :param str org: Optional, org key applied to the resource. (required) :param str project: Name of the project that contains the identifiers. +required (required) :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. @@ -3670,20 +9868,21 @@ def list_launch_plan_ids(self, project, domain, **kwargs): # noqa: E501 """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_launch_plan_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + return self.list_workflow_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 else: - (data) = self.list_launch_plan_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + (data) = self.list_workflow_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 return data - def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + def list_workflow_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plan_ids_with_http_info(project, domain, async_req=True) + >>> thread = api.list_workflow_ids2_with_http_info(org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool + :param str org: Optional, org key applied to the resource. (required) :param str project: Name of the project that contains the identifiers. +required (required) :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. @@ -3696,7 +9895,7 @@ def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noq returns the request thread. """ - all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 + all_params = ['org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3707,22 +9906,28 @@ def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noq if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_launch_plan_ids" % key + " to method list_workflow_ids2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_workflow_ids2`") # noqa: E501 # verify the required parameter 'project' is set if ('project' not in params or params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_launch_plan_ids`") # noqa: E501 + raise ValueError("Missing the required parameter `project` when calling `list_workflow_ids2`") # noqa: E501 # verify the required parameter 'domain' is set if ('domain' not in params or params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_launch_plan_ids`") # noqa: E501 + raise ValueError("Missing the required parameter `domain` when calling `list_workflow_ids2`") # noqa: E501 collection_formats = {} path_params = {} + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 if 'project' in params: path_params['project'] = params['project'] # noqa: E501 if 'domain' in params: @@ -3758,7 +9963,7 @@ def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noq auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plan_ids/{project}/{domain}', 'GET', + '/api/v1/workflows/org/{org}/{project}/{domain}', 'GET', path_params, query_params, header_params, @@ -3773,57 +9978,59 @@ def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noq _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_launch_plans(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_workflows(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans(id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_workflows(id_project, id_domain, id_name, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_launch_plans_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.list_workflows_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.list_launch_plans_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.list_workflows_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_workflows_with_http_info(id_project, id_domain, id_name, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3834,22 +10041,22 @@ def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwa if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_launch_plans" % key + " to method list_workflows" % 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 `list_launch_plans`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_workflows`") # 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 `list_launch_plans`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_workflows`") # 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 `list_launch_plans`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `list_workflows`") # noqa: E501 collection_formats = {} @@ -3862,6 +10069,8 @@ def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwa path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -3891,14 +10100,14 @@ def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwa auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/workflows/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlanList', # noqa: E501 + response_type='AdminWorkflowList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3906,57 +10115,59 @@ def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwa _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_launch_plans2(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_workflows2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans2(id_project, id_domain, async_req=True) + >>> thread = api.list_workflows2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_launch_plans2_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + return self.list_workflows2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.list_launch_plans2_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_workflows2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def list_launch_plans2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_workflows2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans2_with_http_info(id_project, id_domain, async_req=True) + >>> thread = api.list_workflows2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3967,30 +10178,40 @@ def list_launch_plans2_with_http_info(self, id_project, id_domain, **kwargs): # if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_launch_plans2" % key + " to method list_workflows2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_workflows2`") # noqa: E501 # 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 `list_launch_plans2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_workflows2`") # 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 `list_launch_plans2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_workflows2`") # 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 `list_workflows2`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 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 = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -4020,14 +10241,14 @@ def list_launch_plans2_with_http_info(self, id_project, id_domain, **kwargs): # auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans/{id.project}/{id.domain}', 'GET', + '/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlanList', # noqa: E501 + response_type='AdminWorkflowList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4035,43 +10256,59 @@ def list_launch_plans2_with_http_info(self, id_project, id_domain, **kwargs): # _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_matchable_attributes(self, **kwargs): # noqa: E501 - """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 + def list_workflows3(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_matchable_attributes(async_req=True) + >>> thread = api.list_workflows3(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminListMatchableAttributesResponse + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_matchable_attributes_with_http_info(**kwargs) # noqa: E501 + return self.list_workflows3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_matchable_attributes_with_http_info(**kwargs) # noqa: E501 + (data) = self.list_workflows3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 return data - def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 - """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 + def list_workflows3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_matchable_attributes_with_http_info(async_req=True) + >>> thread = api.list_workflows3_with_http_info(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminListMatchableAttributesResponse + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4082,18 +10319,42 @@ def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_matchable_attributes" % key + " to method list_workflows3" % 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 `list_workflows3`") # 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 `list_workflows3`") # 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 query_params = [] - if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -4113,14 +10374,14 @@ def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/matchable_attributes', 'GET', + '/api/v1/workflows/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminListMatchableAttributesResponse', # noqa: E501 + response_type='AdminWorkflowList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4128,57 +10389,59 @@ def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_named_entities(self, resource_type, project, domain, **kwargs): # noqa: E501 - """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + def list_workflows4(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_named_entities(resource_type, project, domain, async_req=True) + >>> thread = api.list_workflows4(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. (required) - :param int limit: Indicates the number of resources to be returned. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_named_entities_with_http_info(resource_type, project, domain, **kwargs) # noqa: E501 + return self.list_workflows4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_named_entities_with_http_info(resource_type, project, domain, **kwargs) # noqa: E501 + (data) = self.list_workflows4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 return data - def list_named_entities_with_http_info(self, resource_type, project, domain, **kwargs): # noqa: E501 - """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + def list_workflows4_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_named_entities_with_http_info(resource_type, project, domain, async_req=True) + >>> thread = api.list_workflows4_with_http_info(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. (required) - :param int limit: Indicates the number of resources to be returned. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4189,44 +10452,46 @@ def list_named_entities_with_http_info(self, resource_type, project, domain, **k if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_named_entities" % key + " to method list_workflows4" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `list_named_entities`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_named_entities`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_named_entities`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_workflows4`") # noqa: E501 + # 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 `list_workflows4`") # 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 `list_workflows4`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -4246,14 +10511,14 @@ def list_named_entities_with_http_info(self, resource_type, project, domain, **k auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/named_entities/{resource_type}/{project}/{domain}', 'GET', + '/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityList', # noqa: E501 + response_type='AdminWorkflowList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4261,59 +10526,43 @@ def list_named_entities_with_http_info(self, resource_type, project, domain, **k _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_node_executions(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def recover_execution(self, body, **kwargs): # noqa: E501 + """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. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) + >>> thread = api.recover_execution(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) - :param str workflow_execution_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 workflow_execution_id_name: User or system provided value for the resource. (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. - :return: AdminNodeExecutionList + :param AdminExecutionRecoverRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 + return self.recover_execution_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 + (data) = self.recover_execution_with_http_info(body, **kwargs) # noqa: E501 return data - def list_node_executions_with_http_info(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 + """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. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) + >>> thread = api.recover_execution_with_http_info(body, async_req=True) >>> result = thread.get() - :param async_req bool - :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) - :param str workflow_execution_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 workflow_execution_id_name: User or system provided value for the resource. (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. - :return: AdminNodeExecutionList + :param async_req bool + :param AdminExecutionRecoverRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['workflow_execution_id_project', 'workflow_execution_id_domain', 'workflow_execution_id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction', 'unique_parent_id'] # noqa: E501 + all_params = ['body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4324,46 +10573,20 @@ def list_node_executions_with_http_info(self, workflow_execution_id_project, wor if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_node_executions" % key + " to method recover_execution" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'workflow_execution_id_project' is set - if ('workflow_execution_id_project' not in params or - params['workflow_execution_id_project'] is None): - raise ValueError("Missing the required parameter `workflow_execution_id_project` when calling `list_node_executions`") # noqa: E501 - # verify the required parameter 'workflow_execution_id_domain' is set - if ('workflow_execution_id_domain' not in params or - params['workflow_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `workflow_execution_id_domain` when calling `list_node_executions`") # noqa: E501 - # verify the required parameter 'workflow_execution_id_name' is set - if ('workflow_execution_id_name' not in params or - params['workflow_execution_id_name'] is None): - raise ValueError("Missing the required parameter `workflow_execution_id_name` when calling `list_node_executions`") # 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 `recover_execution`") # noqa: E501 collection_formats = {} path_params = {} - if 'workflow_execution_id_project' in params: - path_params['workflow_execution_id.project'] = params['workflow_execution_id_project'] # noqa: E501 - if 'workflow_execution_id_domain' in params: - path_params['workflow_execution_id.domain'] = params['workflow_execution_id_domain'] # noqa: E501 - if 'workflow_execution_id_name' in params: - path_params['workflow_execution_id.name'] = params['workflow_execution_id_name'] # noqa: E501 query_params = [] - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'unique_parent_id' in params: - query_params.append(('unique_parent_id', params['unique_parent_id'])) # noqa: E501 header_params = {} @@ -4371,6 +10594,8 @@ def list_node_executions_with_http_info(self, workflow_execution_id_project, wor 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 @@ -4383,14 +10608,14 @@ def list_node_executions_with_http_info(self, workflow_execution_id_project, wor auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}', 'GET', + '/api/v1/executions/recover', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNodeExecutionList', # noqa: E501 + response_type='AdminExecutionCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4398,71 +10623,43 @@ def list_node_executions_with_http_info(self, workflow_execution_id_project, wor _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_node_executions_for_task(self, 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, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def register_project(self, body, **kwargs): # noqa: E501 + """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions_for_task(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, async_req=True) + >>> thread = api.register_project(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_node_execution_id_execution_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 task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str task_execution_id_node_execution_id_node_id: (required) - :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_task_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 task_execution_id_task_id_name: User provided value for the resource. (required) - :param str task_execution_id_task_id_version: Specific version of the resource. (required) - :param int task_execution_id_retry_attempt: (required) - :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminNodeExecutionList + :param AdminProjectRegisterRequest body: (required) + :return: AdminProjectRegisterResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_node_executions_for_task_with_http_info(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, **kwargs) # noqa: E501 + return self.register_project_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.list_node_executions_for_task_with_http_info(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, **kwargs) # noqa: E501 + (data) = self.register_project_with_http_info(body, **kwargs) # noqa: E501 return data - def list_node_executions_for_task_with_http_info(self, 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, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def register_project_with_http_info(self, body, **kwargs): # noqa: E501 + """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions_for_task_with_http_info(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, async_req=True) + >>> thread = api.register_project_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_node_execution_id_execution_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 task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str task_execution_id_node_execution_id_node_id: (required) - :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_task_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 task_execution_id_task_id_name: User provided value for the resource. (required) - :param str task_execution_id_task_id_version: Specific version of the resource. (required) - :param int task_execution_id_retry_attempt: (required) - :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminNodeExecutionList + :param AdminProjectRegisterRequest body: (required) + :return: AdminProjectRegisterResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['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', 'task_execution_id_task_id_resource_type', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4473,82 +10670,20 @@ def list_node_executions_for_task_with_http_info(self, task_execution_id_node_ex if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_node_executions_for_task" % key + " to method register_project" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'task_execution_id_node_execution_id_execution_id_project' is set - if ('task_execution_id_node_execution_id_execution_id_project' not in params or - params['task_execution_id_node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_project` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_node_execution_id_execution_id_domain' is set - if ('task_execution_id_node_execution_id_execution_id_domain' not in params or - params['task_execution_id_node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_domain` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_node_execution_id_execution_id_name' is set - if ('task_execution_id_node_execution_id_execution_id_name' not in params or - params['task_execution_id_node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_name` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_node_execution_id_node_id' is set - if ('task_execution_id_node_execution_id_node_id' not in params or - params['task_execution_id_node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_node_id` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_project' is set - if ('task_execution_id_task_id_project' not in params or - params['task_execution_id_task_id_project'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_project` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_domain' is set - if ('task_execution_id_task_id_domain' not in params or - params['task_execution_id_task_id_domain'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_domain` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_name' is set - if ('task_execution_id_task_id_name' not in params or - params['task_execution_id_task_id_name'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_name` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_version' is set - if ('task_execution_id_task_id_version' not in params or - params['task_execution_id_task_id_version'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_version` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_retry_attempt' is set - if ('task_execution_id_retry_attempt' not in params or - params['task_execution_id_retry_attempt'] is None): - raise ValueError("Missing the required parameter `task_execution_id_retry_attempt` when calling `list_node_executions_for_task`") # 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 `register_project`") # noqa: E501 collection_formats = {} path_params = {} - if 'task_execution_id_node_execution_id_execution_id_project' in params: - path_params['task_execution_id.node_execution_id.execution_id.project'] = params['task_execution_id_node_execution_id_execution_id_project'] # noqa: E501 - if 'task_execution_id_node_execution_id_execution_id_domain' in params: - path_params['task_execution_id.node_execution_id.execution_id.domain'] = params['task_execution_id_node_execution_id_execution_id_domain'] # noqa: E501 - if 'task_execution_id_node_execution_id_execution_id_name' in params: - path_params['task_execution_id.node_execution_id.execution_id.name'] = params['task_execution_id_node_execution_id_execution_id_name'] # noqa: E501 - if 'task_execution_id_node_execution_id_node_id' in params: - path_params['task_execution_id.node_execution_id.node_id'] = params['task_execution_id_node_execution_id_node_id'] # noqa: E501 - if 'task_execution_id_task_id_project' in params: - path_params['task_execution_id.task_id.project'] = params['task_execution_id_task_id_project'] # noqa: E501 - if 'task_execution_id_task_id_domain' in params: - path_params['task_execution_id.task_id.domain'] = params['task_execution_id_task_id_domain'] # noqa: E501 - if 'task_execution_id_task_id_name' in params: - path_params['task_execution_id.task_id.name'] = params['task_execution_id_task_id_name'] # noqa: E501 - if 'task_execution_id_task_id_version' in params: - path_params['task_execution_id.task_id.version'] = params['task_execution_id_task_id_version'] # noqa: E501 - if 'task_execution_id_retry_attempt' in params: - path_params['task_execution_id.retry_attempt'] = params['task_execution_id_retry_attempt'] # noqa: E501 query_params = [] - if 'task_execution_id_task_id_resource_type' in params: - query_params.append(('task_execution_id.task_id.resource_type', params['task_execution_id_task_id_resource_type'])) # noqa: E501 - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -4556,6 +10691,8 @@ def list_node_executions_for_task_with_http_info(self, task_execution_id_node_ex 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 @@ -4568,14 +10705,14 @@ def list_node_executions_for_task_with_http_info(self, task_execution_id_node_ex auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/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}', 'GET', + '/api/v1/projects', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNodeExecutionList', # noqa: E501 + response_type='AdminProjectRegisterResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4583,51 +10720,43 @@ def list_node_executions_for_task_with_http_info(self, task_execution_id_node_ex _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_projects(self, **kwargs): # noqa: E501 - """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 + def relaunch_execution(self, body, **kwargs): # noqa: E501 + """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_projects(async_req=True) + >>> thread = api.relaunch_execution(body, async_req=True) >>> result = thread.get() :param async_req bool - :param int limit: Indicates the number of projects to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminProjects + :param AdminExecutionRelaunchRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_projects_with_http_info(**kwargs) # noqa: E501 + return self.relaunch_execution_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.list_projects_with_http_info(**kwargs) # noqa: E501 + (data) = self.relaunch_execution_with_http_info(body, **kwargs) # noqa: E501 return data - def list_projects_with_http_info(self, **kwargs): # noqa: E501 - """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 + def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 + """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_projects_with_http_info(async_req=True) + >>> thread = api.relaunch_execution_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param int limit: Indicates the number of projects to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminProjects + :param AdminExecutionRelaunchRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4638,26 +10767,20 @@ def list_projects_with_http_info(self, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_projects" % key + " to method relaunch_execution" % key ) params[key] = val del params['kwargs'] + # 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 `relaunch_execution`") # noqa: E501 collection_formats = {} path_params = {} query_params = [] - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -4665,6 +10788,8 @@ def list_projects_with_http_info(self, **kwargs): # noqa: E501 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 @@ -4677,14 +10802,14 @@ def list_projects_with_http_info(self, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/projects', 'GET', + '/api/v1/executions/relaunch', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjects', # noqa: E501 + response_type='AdminExecutionCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4692,59 +10817,49 @@ def list_projects_with_http_info(self, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_task_executions(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 - """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def terminate_execution(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_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, async_req=True) + >>> thread = api.terminate_execution(id_project, id_domain, id_name, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str node_execution_id_execution_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 node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str node_execution_id_node_id: (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskExecutionList + :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 AdminExecutionTerminateRequest body: (required) + :return: AdminExecutionTerminateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 + return self.terminate_execution_with_http_info(id_project, id_domain, id_name, body, **kwargs) # noqa: E501 else: - (data) = self.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 + (data) = self.terminate_execution_with_http_info(id_project, id_domain, id_name, body, **kwargs) # noqa: E501 return data - def list_task_executions_with_http_info(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 - """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def terminate_execution_with_http_info(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) + >>> thread = api.terminate_execution_with_http_info(id_project, id_domain, id_name, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str node_execution_id_execution_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 node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str node_execution_id_node_id: (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskExecutionList + :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 AdminExecutionTerminateRequest body: (required) + :return: AdminExecutionTerminateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['node_execution_id_execution_id_project', 'node_execution_id_execution_id_domain', 'node_execution_id_execution_id_name', 'node_execution_id_node_id', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + 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') @@ -4755,50 +10870,38 @@ def list_task_executions_with_http_info(self, node_execution_id_execution_id_pro if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_task_executions" % key + " to method terminate_execution" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'node_execution_id_execution_id_project' is set - if ('node_execution_id_execution_id_project' not in params or - params['node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `node_execution_id_execution_id_project` when calling `list_task_executions`") # noqa: E501 - # verify the required parameter 'node_execution_id_execution_id_domain' is set - if ('node_execution_id_execution_id_domain' not in params or - params['node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `node_execution_id_execution_id_domain` when calling `list_task_executions`") # noqa: E501 - # verify the required parameter 'node_execution_id_execution_id_name' is set - if ('node_execution_id_execution_id_name' not in params or - params['node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `node_execution_id_execution_id_name` when calling `list_task_executions`") # noqa: E501 - # verify the required parameter 'node_execution_id_node_id' is set - if ('node_execution_id_node_id' not in params or - params['node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `node_execution_id_node_id` when calling `list_task_executions`") # noqa: E501 + # 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 `terminate_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 `terminate_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 `terminate_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 `terminate_execution`") # noqa: E501 collection_formats = {} path_params = {} - if 'node_execution_id_execution_id_project' in params: - path_params['node_execution_id.execution_id.project'] = params['node_execution_id_execution_id_project'] # noqa: E501 - if 'node_execution_id_execution_id_domain' in params: - path_params['node_execution_id.execution_id.domain'] = params['node_execution_id_execution_id_domain'] # noqa: E501 - if 'node_execution_id_execution_id_name' in params: - path_params['node_execution_id.execution_id.name'] = params['node_execution_id_execution_id_name'] # noqa: E501 - if 'node_execution_id_node_id' in params: - path_params['node_execution_id.node_id'] = params['node_execution_id_node_id'] # noqa: E501 + 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 = [] - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -4806,6 +10909,8 @@ def list_task_executions_with_http_info(self, node_execution_id_execution_id_pro 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 @@ -4818,14 +10923,14 @@ def list_task_executions_with_http_info(self, node_execution_id_execution_id_pro auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/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}', 'GET', + '/api/v1/executions/{id.project}/{id.domain}/{id.name}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTaskExecutionList', # noqa: E501 + response_type='AdminExecutionTerminateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4833,55 +10938,51 @@ def list_task_executions_with_http_info(self, node_execution_id_execution_id_pro _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_task_ids(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 + def terminate_execution2(self, id_org, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_ids(project, domain, async_req=True) + >>> thread = api.terminate_execution2(id_org, id_project, id_domain, id_name, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityIdentifierList + :param str id_org: Optional, org key applied to the resource. (required) + :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 AdminExecutionTerminateRequest body: (required) + :return: AdminExecutionTerminateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_task_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + return self.terminate_execution2_with_http_info(id_org, id_project, id_domain, id_name, body, **kwargs) # noqa: E501 else: - (data) = self.list_task_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + (data) = self.terminate_execution2_with_http_info(id_org, id_project, id_domain, id_name, body, **kwargs) # noqa: E501 return data - def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 + def terminate_execution2_with_http_info(self, id_org, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_ids_with_http_info(project, domain, async_req=True) + >>> thread = api.terminate_execution2_with_http_info(id_org, id_project, id_domain, id_name, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityIdentifierList + :param str id_org: Optional, org key applied to the resource. (required) + :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 AdminExecutionTerminateRequest body: (required) + :return: AdminExecutionTerminateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 + all_params = ['id_org', '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') @@ -4892,38 +10993,44 @@ def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_task_ids" % key + " to method terminate_execution2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_task_ids`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_task_ids`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `terminate_execution2`") # noqa: E501 + # 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 `terminate_execution2`") # 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 `terminate_execution2`") # 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 `terminate_execution2`") # 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 `terminate_execution2`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 = [] - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -4931,6 +11038,8 @@ def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 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 @@ -4943,14 +11052,14 @@ def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/task_ids/{project}/{domain}', 'GET', + '/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityIdentifierList', # noqa: E501 + response_type='AdminExecutionTerminateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4958,57 +11067,49 @@ def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_tasks(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + def update_execution(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks(id_project, id_domain, id_name, async_req=True) + >>> 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskList + :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.list_tasks_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.update_execution_with_http_info(id_project, id_domain, id_name, body, **kwargs) # noqa: E501 else: - (data) = self.list_tasks_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.update_execution_with_http_info(id_project, id_domain, id_name, body, **kwargs) # noqa: E501 return data - def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + 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 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks_with_http_info(id_project, id_domain, id_name, 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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskList + :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', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + 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') @@ -5019,22 +11120,26 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_tasks" % key + " 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 `list_tasks`") # noqa: E501 + 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 `list_tasks`") # noqa: E501 + 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 `list_tasks`") # noqa: E501 + 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 = {} @@ -5047,16 +11152,6 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -5064,6 +11159,8 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): 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 @@ -5076,14 +11173,14 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks/{id.project}/{id.domain}/{id.name}', 'GET', + '/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='AdminTaskList', # noqa: E501 + 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'), @@ -5091,57 +11188,51 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_tasks2(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + def update_execution2(self, id_org, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks2(id_project, id_domain, async_req=True) + >>> thread = api.update_execution2(id_org, id_project, id_domain, id_name, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskList + :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.list_tasks2_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + return self.update_execution2_with_http_info(id_org, id_project, id_domain, id_name, body, **kwargs) # noqa: E501 else: - (data) = self.list_tasks2_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.update_execution2_with_http_info(id_org, id_project, id_domain, id_name, body, **kwargs) # noqa: E501 return data - def list_tasks2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + def update_execution2_with_http_info(self, id_org, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks2_with_http_info(id_project, id_domain, async_req=True) + >>> thread = api.update_execution2_with_http_info(id_org, id_project, id_domain, id_name, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskList + :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', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_org', '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') @@ -5152,40 +11243,44 @@ def list_tasks2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_tasks2" % key + " to method update_execution2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `update_execution2`") # noqa: E501 # 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 `list_tasks2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `update_execution2`") # 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 `list_tasks2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `update_execution2`") # 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_execution2`") # 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_execution2`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 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 = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -5193,6 +11288,8 @@ def list_tasks2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: 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 @@ -5205,14 +11302,14 @@ def list_tasks2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks/{id.project}/{id.domain}', 'GET', + '/api/v1/executions/org/{id.org}/{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='AdminTaskList', # noqa: E501 + 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'), @@ -5220,55 +11317,51 @@ def list_tasks2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_workflow_ids(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 + 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 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflow_ids(project, domain, async_req=True) + >>> thread = api.update_launch_plan(id_project, id_domain, id_name, id_version, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityIdentifierList + :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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param AdminLaunchPlanUpdateRequest body: (required) + :return: AdminLaunchPlanUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_workflow_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + return self.update_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, body, **kwargs) # noqa: E501 else: - (data) = self.list_workflow_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + (data) = self.update_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, body, **kwargs) # noqa: E501 return data - def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 + def update_launch_plan_with_http_info(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 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflow_ids_with_http_info(project, domain, async_req=True) + >>> thread = api.update_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityIdentifierList + :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 provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param AdminLaunchPlanUpdateRequest body: (required) + :return: AdminLaunchPlanUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5279,38 +11372,44 @@ def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_workflow_ids" % key + " to method update_launch_plan" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_workflow_ids`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_workflow_ids`") # noqa: E501 + # 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_launch_plan`") # 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_launch_plan`") # 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_launch_plan`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `update_launch_plan`") # 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_launch_plan`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + 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 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -5318,6 +11417,8 @@ def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: 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 @@ -5330,14 +11431,14 @@ def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflow_ids/{project}/{domain}', 'GET', + '/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityIdentifierList', # noqa: E501 + response_type='AdminLaunchPlanUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5345,57 +11446,51 @@ def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_workflows(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + def update_launch_plan2(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows(id_project, id_domain, id_name, async_req=True) + >>> thread = api.update_launch_plan2(id_org, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminWorkflowList + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :return: AdminLaunchPlanUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_workflows_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.update_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 else: - (data) = self.list_workflows_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.update_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 return data - def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + def update_launch_plan2_with_http_info(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.update_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminWorkflowList + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :return: AdminLaunchPlanUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'id_version'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5406,44 +11501,46 @@ def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_workflows" % key + " to method update_launch_plan2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `update_launch_plan2`") # noqa: E501 # 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 `list_workflows`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `update_launch_plan2`") # 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 `list_workflows`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `update_launch_plan2`") # 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 `list_workflows`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `update_launch_plan2`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `update_launch_plan2`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 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 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -5463,14 +11560,14 @@ def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowList', # noqa: E501 + response_type='AdminLaunchPlanUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5478,57 +11575,51 @@ def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_workflows2(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + def update_named_entity(self, resource_type, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows2(id_project, id_domain, async_req=True) + >>> thread = api.update_named_entity(resource_type, id_project, id_domain, id_name, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str resource_type: Resource type of the metadata to update +required (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminWorkflowList + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param AdminNamedEntityUpdateRequest body: (required) + :return: AdminNamedEntityUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_workflows2_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + return self.update_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, body, **kwargs) # noqa: E501 else: - (data) = self.list_workflows2_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.update_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, body, **kwargs) # noqa: E501 return data - def list_workflows2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + def update_named_entity_with_http_info(self, resource_type, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows2_with_http_info(id_project, id_domain, async_req=True) + >>> thread = api.update_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str resource_type: Resource type of the metadata to update +required (required) :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminWorkflowList + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param AdminNamedEntityUpdateRequest body: (required) + :return: AdminNamedEntityUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['resource_type', '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') @@ -5539,40 +11630,44 @@ def list_workflows2_with_http_info(self, id_project, id_domain, **kwargs): # no if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_workflows2" % key + " to method update_named_entity" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `update_named_entity`") # noqa: E501 # 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 `list_workflows2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `update_named_entity`") # 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 `list_workflows2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `update_named_entity`") # 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_named_entity`") # 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_named_entity`") # noqa: E501 collection_formats = {} path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 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 - - query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + 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 = {} @@ -5580,6 +11675,8 @@ def list_workflows2_with_http_info(self, id_project, id_domain, **kwargs): # no 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 @@ -5592,14 +11689,14 @@ def list_workflows2_with_http_info(self, id_project, id_domain, **kwargs): # no auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows/{id.project}/{id.domain}', 'GET', + '/api/v1/named_entities/{resource_type}/{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='AdminWorkflowList', # noqa: E501 + response_type='AdminNamedEntityUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5607,43 +11704,53 @@ def list_workflows2_with_http_info(self, id_project, id_domain, **kwargs): # no _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def recover_execution(self, body, **kwargs): # noqa: E501 - """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. # noqa: E501 + def update_named_entity2(self, resource_type, id_org, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.recover_execution(body, async_req=True) + >>> thread = api.update_named_entity2(resource_type, id_org, id_project, id_domain, id_name, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminExecutionRecoverRequest body: (required) - :return: AdminExecutionCreateResponse + :param str resource_type: Resource type of the metadata to update +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param AdminNamedEntityUpdateRequest body: (required) + :return: AdminNamedEntityUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.recover_execution_with_http_info(body, **kwargs) # noqa: E501 + return self.update_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, body, **kwargs) # noqa: E501 else: - (data) = self.recover_execution_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.update_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, body, **kwargs) # noqa: E501 return data - def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 - """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. # noqa: E501 + def update_named_entity2_with_http_info(self, resource_type, id_org, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.recover_execution_with_http_info(body, async_req=True) + >>> thread = api.update_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminExecutionRecoverRequest body: (required) - :return: AdminExecutionCreateResponse + :param str resource_type: Resource type of the metadata to update +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param AdminNamedEntityUpdateRequest body: (required) + :return: AdminNamedEntityUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['body'] # noqa: E501 + all_params = ['resource_type', 'id_org', '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') @@ -5654,18 +11761,48 @@ def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method recover_execution" % key + " to method update_named_entity2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `update_named_entity2`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `update_named_entity2`") # noqa: E501 + # 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_named_entity2`") # 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_named_entity2`") # 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_named_entity2`") # 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 `recover_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_named_entity2`") # noqa: E501 collection_formats = {} path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + 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 = [] @@ -5689,14 +11826,14 @@ def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/recover', 'POST', + '/api/v1/named_entities/{resource_type}/org/{id.org}/{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='AdminExecutionCreateResponse', # noqa: E501 + response_type='AdminNamedEntityUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5704,43 +11841,45 @@ def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def register_project(self, body, **kwargs): # noqa: E501 - """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 + def update_project(self, id, body, **kwargs): # noqa: E501 + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.register_project(body, async_req=True) + >>> thread = api.update_project(id, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminProjectRegisterRequest body: (required) - :return: AdminProjectRegisterResponse + :param str id: Deprecated, use identifier instead. Globally unique project name. (required) + :param AdminProject body: (required) + :return: AdminProjectUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.register_project_with_http_info(body, **kwargs) # noqa: E501 + return self.update_project_with_http_info(id, body, **kwargs) # noqa: E501 else: - (data) = self.register_project_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.update_project_with_http_info(id, body, **kwargs) # noqa: E501 return data - def register_project_with_http_info(self, body, **kwargs): # noqa: E501 - """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 + def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.register_project_with_http_info(body, async_req=True) + >>> thread = api.update_project_with_http_info(id, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminProjectRegisterRequest body: (required) - :return: AdminProjectRegisterResponse + :param str id: Deprecated, use identifier instead. Globally unique project name. (required) + :param AdminProject body: (required) + :return: AdminProjectUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['body'] # noqa: E501 + all_params = ['id', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5751,18 +11890,24 @@ def register_project_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method register_project" % key + " to method update_project" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id' is set + if ('id' not in params or + params['id'] is None): + raise ValueError("Missing the required parameter `id` when calling `update_project`") # 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 `register_project`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project`") # noqa: E501 collection_formats = {} path_params = {} + if 'id' in params: + path_params['id'] = params['id'] # noqa: E501 query_params = [] @@ -5786,14 +11931,14 @@ def register_project_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/projects', 'POST', + '/api/v1/projects/{id}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectRegisterResponse', # noqa: E501 + response_type='AdminProjectUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5801,43 +11946,45 @@ def register_project_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def relaunch_execution(self, body, **kwargs): # noqa: E501 - """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 + def update_project2(self, identifier_id, body, **kwargs): # noqa: E501 + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.relaunch_execution(body, async_req=True) + >>> thread = api.update_project2(identifier_id, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminExecutionRelaunchRequest body: (required) - :return: AdminExecutionCreateResponse + :param str identifier_id: Globally unique project name. (required) + :param AdminProject body: (required) + :return: AdminProjectUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.relaunch_execution_with_http_info(body, **kwargs) # noqa: E501 + return self.update_project2_with_http_info(identifier_id, body, **kwargs) # noqa: E501 else: - (data) = self.relaunch_execution_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.update_project2_with_http_info(identifier_id, body, **kwargs) # noqa: E501 return data - def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 - """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 + def update_project2_with_http_info(self, identifier_id, body, **kwargs): # noqa: E501 + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.relaunch_execution_with_http_info(body, async_req=True) + >>> thread = api.update_project2_with_http_info(identifier_id, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminExecutionRelaunchRequest body: (required) - :return: AdminExecutionCreateResponse + :param str identifier_id: Globally unique project name. (required) + :param AdminProject body: (required) + :return: AdminProjectUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['body'] # noqa: E501 + all_params = ['identifier_id', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5848,18 +11995,24 @@ def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method relaunch_execution" % key + " to method update_project2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'identifier_id' is set + if ('identifier_id' not in params or + params['identifier_id'] is None): + raise ValueError("Missing the required parameter `identifier_id` when calling `update_project2`") # 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 `relaunch_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project2`") # noqa: E501 collection_formats = {} path_params = {} + if 'identifier_id' in params: + path_params['identifier.id'] = params['identifier_id'] # noqa: E501 query_params = [] @@ -5883,14 +12036,14 @@ def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/relaunch', 'POST', + '/api/v1/projects/{identifier.id}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminExecutionCreateResponse', # noqa: E501 + response_type='AdminProjectUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5898,49 +12051,47 @@ def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def terminate_execution(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 - """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def update_project3(self, identifier_org, id, body, **kwargs): # noqa: E501 + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.terminate_execution(id_project, id_domain, id_name, body, async_req=True) + >>> thread = api.update_project3(identifier_org, id, 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 AdminExecutionTerminateRequest body: (required) - :return: AdminExecutionTerminateResponse + :param str identifier_org: Optional, org key applied to the resource. (required) + :param str id: Deprecated, use identifier instead. Globally unique project name. (required) + :param AdminProject body: (required) + :return: AdminProjectUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.terminate_execution_with_http_info(id_project, id_domain, id_name, body, **kwargs) # noqa: E501 + return self.update_project3_with_http_info(identifier_org, id, body, **kwargs) # noqa: E501 else: - (data) = self.terminate_execution_with_http_info(id_project, id_domain, id_name, body, **kwargs) # noqa: E501 + (data) = self.update_project3_with_http_info(identifier_org, id, body, **kwargs) # noqa: E501 return data - def terminate_execution_with_http_info(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 - """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def update_project3_with_http_info(self, identifier_org, id, body, **kwargs): # noqa: E501 + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.terminate_execution_with_http_info(id_project, id_domain, id_name, body, async_req=True) + >>> thread = api.update_project3_with_http_info(identifier_org, id, 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 AdminExecutionTerminateRequest body: (required) - :return: AdminExecutionTerminateResponse + :param str identifier_org: Optional, org key applied to the resource. (required) + :param str id: Deprecated, use identifier instead. Globally unique project name. (required) + :param AdminProject body: (required) + :return: AdminProjectUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'body'] # noqa: E501 + all_params = ['identifier_org', 'id', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5951,36 +12102,30 @@ def terminate_execution_with_http_info(self, id_project, id_domain, id_name, bod if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method terminate_execution" % key + " to method update_project3" % 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 `terminate_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 `terminate_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 `terminate_execution`") # noqa: E501 + # verify the required parameter 'identifier_org' is set + if ('identifier_org' not in params or + params['identifier_org'] is None): + raise ValueError("Missing the required parameter `identifier_org` when calling `update_project3`") # noqa: E501 + # verify the required parameter 'id' is set + if ('id' not in params or + params['id'] is None): + raise ValueError("Missing the required parameter `id` when calling `update_project3`") # 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 `terminate_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project3`") # 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 + if 'identifier_org' in params: + path_params['identifier.org'] = params['identifier_org'] # noqa: E501 + if 'id' in params: + path_params['id'] = params['id'] # noqa: E501 query_params = [] @@ -6004,14 +12149,14 @@ def terminate_execution_with_http_info(self, id_project, id_domain, id_name, bod auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/{id.project}/{id.domain}/{id.name}', 'DELETE', + '/api/v1/projects/org/{identifier.org}/{id}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminExecutionTerminateResponse', # noqa: E501 + response_type='AdminProjectUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6019,49 +12164,47 @@ def terminate_execution_with_http_info(self, id_project, id_domain, id_name, bod _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def update_execution(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 - """Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def update_project4(self, identifier_org, identifier_id, body, **kwargs): # noqa: E501 + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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(id_project, id_domain, id_name, body, async_req=True) + >>> thread = api.update_project4(identifier_org, identifier_id, 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 + :param str identifier_org: Optional, org key applied to the resource. (required) + :param str identifier_id: Globally unique project name. (required) + :param AdminProject body: (required) + :return: AdminProjectUpdateResponse 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 + return self.update_project4_with_http_info(identifier_org, identifier_id, body, **kwargs) # noqa: E501 else: - (data) = self.update_execution_with_http_info(id_project, id_domain, id_name, body, **kwargs) # noqa: E501 + (data) = self.update_project4_with_http_info(identifier_org, identifier_id, 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 + def update_project4_with_http_info(self, identifier_org, identifier_id, body, **kwargs): # noqa: E501 + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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) + >>> thread = api.update_project4_with_http_info(identifier_org, identifier_id, 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 + :param str identifier_org: Optional, org key applied to the resource. (required) + :param str identifier_id: Globally unique project name. (required) + :param AdminProject body: (required) + :return: AdminProjectUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'body'] # noqa: E501 + all_params = ['identifier_org', 'identifier_id', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6072,36 +12215,30 @@ def update_execution_with_http_info(self, id_project, id_domain, id_name, body, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_execution" % key + " to method update_project4" % 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 'identifier_org' is set + if ('identifier_org' not in params or + params['identifier_org'] is None): + raise ValueError("Missing the required parameter `identifier_org` when calling `update_project4`") # noqa: E501 + # verify the required parameter 'identifier_id' is set + if ('identifier_id' not in params or + params['identifier_id'] is None): + raise ValueError("Missing the required parameter `identifier_id` when calling `update_project4`") # 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 + raise ValueError("Missing the required parameter `body` when calling `update_project4`") # 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 + if 'identifier_org' in params: + path_params['identifier.org'] = params['identifier_org'] # noqa: E501 + if 'identifier_id' in params: + path_params['identifier.id'] = params['identifier_id'] # noqa: E501 query_params = [] @@ -6125,14 +12262,14 @@ def update_execution_with_http_info(self, id_project, id_domain, id_name, body, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/{id.project}/{id.domain}/{id.name}', 'PUT', + '/api/v1/projects/org/{identifier.org}/{identifier.id}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminExecutionUpdateResponse', # noqa: E501 + response_type='AdminProjectUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6140,51 +12277,45 @@ def update_execution_with_http_info(self, id_project, id_domain, id_name, body, _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 + def update_project_attributes(self, attributes_project, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # 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_launch_plan(id_project, id_domain, id_name, id_version, body, async_req=True) + >>> thread = api.update_project_attributes(attributes_project, 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 provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param AdminLaunchPlanUpdateRequest body: (required) - :return: AdminLaunchPlanUpdateResponse + :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) + :param AdminProjectAttributesUpdateRequest body: (required) + :return: AdminProjectAttributesUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.update_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, body, **kwargs) # noqa: E501 + return self.update_project_attributes_with_http_info(attributes_project, body, **kwargs) # noqa: E501 else: - (data) = self.update_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, body, **kwargs) # noqa: E501 + (data) = self.update_project_attributes_with_http_info(attributes_project, body, **kwargs) # noqa: E501 return data - def update_launch_plan_with_http_info(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 + def update_project_attributes_with_http_info(self, attributes_project, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # 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_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, 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 provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param AdminLaunchPlanUpdateRequest body: (required) - :return: AdminLaunchPlanUpdateResponse + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_project_attributes_with_http_info(attributes_project, body, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) + :param AdminProjectAttributesUpdateRequest body: (required) + :return: AdminProjectAttributesUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'body'] # noqa: E501 + all_params = ['attributes_project', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6195,42 +12326,24 @@ def update_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_v if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_launch_plan" % key + " to method update_project_attributes" % 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_launch_plan`") # 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_launch_plan`") # 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_launch_plan`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `update_launch_plan`") # noqa: E501 + # verify the required parameter 'attributes_project' is set + if ('attributes_project' not in params or + params['attributes_project'] is None): + raise ValueError("Missing the required parameter `attributes_project` when calling `update_project_attributes`") # 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_launch_plan`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project_attributes`") # 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 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 + if 'attributes_project' in params: + path_params['attributes.project'] = params['attributes_project'] # noqa: E501 query_params = [] @@ -6254,14 +12367,14 @@ def update_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_v auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}', 'PUT', + '/api/v1/project_attributes/{attributes.project}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlanUpdateResponse', # noqa: E501 + response_type='AdminProjectAttributesUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6269,51 +12382,47 @@ def update_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_v _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def update_named_entity(self, resource_type, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 - """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + def update_project_attributes2(self, attributes_org, attributes_project, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # 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_named_entity(resource_type, id_project, id_domain, id_name, body, async_req=True) + >>> thread = api.update_project_attributes2(attributes_org, attributes_project, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to update +required (required) - :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param AdminNamedEntityUpdateRequest body: (required) - :return: AdminNamedEntityUpdateResponse + :param str attributes_org: Optional, org key applied to the project. (required) + :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) + :param AdminProjectAttributesUpdateRequest body: (required) + :return: AdminProjectAttributesUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.update_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, body, **kwargs) # noqa: E501 + return self.update_project_attributes2_with_http_info(attributes_org, attributes_project, body, **kwargs) # noqa: E501 else: - (data) = self.update_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, body, **kwargs) # noqa: E501 + (data) = self.update_project_attributes2_with_http_info(attributes_org, attributes_project, body, **kwargs) # noqa: E501 return data - def update_named_entity_with_http_info(self, resource_type, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 - """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + def update_project_attributes2_with_http_info(self, attributes_org, attributes_project, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # 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_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, body, async_req=True) + >>> thread = api.update_project_attributes2_with_http_info(attributes_org, attributes_project, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to update +required (required) - :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 provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param AdminNamedEntityUpdateRequest body: (required) - :return: AdminNamedEntityUpdateResponse + :param str attributes_org: Optional, org key applied to the project. (required) + :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) + :param AdminProjectAttributesUpdateRequest body: (required) + :return: AdminProjectAttributesUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'body'] # noqa: E501 + all_params = ['attributes_org', 'attributes_project', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6324,42 +12433,30 @@ def update_named_entity_with_http_info(self, resource_type, id_project, id_domai if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_named_entity" % key + " to method update_project_attributes2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `update_named_entity`") # noqa: E501 - # 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_named_entity`") # 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_named_entity`") # 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_named_entity`") # noqa: E501 + # verify the required parameter 'attributes_org' is set + if ('attributes_org' not in params or + params['attributes_org'] is None): + raise ValueError("Missing the required parameter `attributes_org` when calling `update_project_attributes2`") # noqa: E501 + # verify the required parameter 'attributes_project' is set + if ('attributes_project' not in params or + params['attributes_project'] is None): + raise ValueError("Missing the required parameter `attributes_project` when calling `update_project_attributes2`") # 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_named_entity`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project_attributes2`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 - 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 + if 'attributes_org' in params: + path_params['attributes.org'] = params['attributes_org'] # noqa: E501 + if 'attributes_project' in params: + path_params['attributes.project'] = params['attributes_project'] # noqa: E501 query_params = [] @@ -6383,14 +12480,14 @@ def update_named_entity_with_http_info(self, resource_type, id_project, id_domai auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}', 'PUT', + '/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityUpdateResponse', # noqa: E501 + response_type='AdminProjectAttributesUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6398,45 +12495,47 @@ def update_named_entity_with_http_info(self, resource_type, id_project, id_domai _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def update_project(self, id, body, **kwargs): # noqa: E501 - """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 + def update_project_domain_attributes(self, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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_project(id, body, async_req=True) + >>> thread = api.update_project_domain_attributes(attributes_project, attributes_domain, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id: Globally unique project name. (required) - :param AdminProject body: (required) - :return: AdminProjectUpdateResponse + :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) + :param str attributes_domain: Unique domain id for which this set of attributes will be applied. (required) + :param AdminProjectDomainAttributesUpdateRequest body: (required) + :return: AdminProjectDomainAttributesUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.update_project_with_http_info(id, body, **kwargs) # noqa: E501 + return self.update_project_domain_attributes_with_http_info(attributes_project, attributes_domain, body, **kwargs) # noqa: E501 else: - (data) = self.update_project_with_http_info(id, body, **kwargs) # noqa: E501 + (data) = self.update_project_domain_attributes_with_http_info(attributes_project, attributes_domain, body, **kwargs) # noqa: E501 return data - def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 - """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 + def update_project_domain_attributes_with_http_info(self, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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_project_with_http_info(id, body, async_req=True) + >>> thread = api.update_project_domain_attributes_with_http_info(attributes_project, attributes_domain, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id: Globally unique project name. (required) - :param AdminProject body: (required) - :return: AdminProjectUpdateResponse + :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) + :param str attributes_domain: Unique domain id for which this set of attributes will be applied. (required) + :param AdminProjectDomainAttributesUpdateRequest body: (required) + :return: AdminProjectDomainAttributesUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id', 'body'] # noqa: E501 + all_params = ['attributes_project', 'attributes_domain', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6447,24 +12546,30 @@ def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_project" % key + " to method update_project_domain_attributes" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id' is set - if ('id' not in params or - params['id'] is None): - raise ValueError("Missing the required parameter `id` when calling `update_project`") # noqa: E501 + # verify the required parameter 'attributes_project' is set + if ('attributes_project' not in params or + params['attributes_project'] is None): + raise ValueError("Missing the required parameter `attributes_project` when calling `update_project_domain_attributes`") # noqa: E501 + # verify the required parameter 'attributes_domain' is set + if ('attributes_domain' not in params or + params['attributes_domain'] is None): + raise ValueError("Missing the required parameter `attributes_domain` when calling `update_project_domain_attributes`") # 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_project`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project_domain_attributes`") # noqa: E501 collection_formats = {} path_params = {} - if 'id' in params: - path_params['id'] = params['id'] # noqa: E501 + if 'attributes_project' in params: + path_params['attributes.project'] = params['attributes_project'] # noqa: E501 + if 'attributes_domain' in params: + path_params['attributes.domain'] = params['attributes_domain'] # noqa: E501 query_params = [] @@ -6488,14 +12593,14 @@ def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/projects/{id}', 'PUT', + '/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectUpdateResponse', # noqa: E501 + response_type='AdminProjectDomainAttributesUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6503,45 +12608,49 @@ def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def update_project_attributes(self, attributes_project, body, **kwargs): # noqa: E501 - """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # noqa: E501 + def update_project_domain_attributes2(self, attributes_org, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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_project_attributes(attributes_project, body, async_req=True) + >>> thread = api.update_project_domain_attributes2(attributes_org, attributes_project, attributes_domain, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str attributes_org: Optional, org key applied to the attributes. (required) :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) - :param AdminProjectAttributesUpdateRequest body: (required) - :return: AdminProjectAttributesUpdateResponse + :param str attributes_domain: Unique domain id for which this set of attributes will be applied. (required) + :param AdminProjectDomainAttributesUpdateRequest body: (required) + :return: AdminProjectDomainAttributesUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.update_project_attributes_with_http_info(attributes_project, body, **kwargs) # noqa: E501 + return self.update_project_domain_attributes2_with_http_info(attributes_org, attributes_project, attributes_domain, body, **kwargs) # noqa: E501 else: - (data) = self.update_project_attributes_with_http_info(attributes_project, body, **kwargs) # noqa: E501 + (data) = self.update_project_domain_attributes2_with_http_info(attributes_org, attributes_project, attributes_domain, body, **kwargs) # noqa: E501 return data - def update_project_attributes_with_http_info(self, attributes_project, body, **kwargs): # noqa: E501 - """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # noqa: E501 + def update_project_domain_attributes2_with_http_info(self, attributes_org, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and 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_project_attributes_with_http_info(attributes_project, body, async_req=True) + >>> thread = api.update_project_domain_attributes2_with_http_info(attributes_org, attributes_project, attributes_domain, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str attributes_org: Optional, org key applied to the attributes. (required) :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) - :param AdminProjectAttributesUpdateRequest body: (required) - :return: AdminProjectAttributesUpdateResponse + :param str attributes_domain: Unique domain id for which this set of attributes will be applied. (required) + :param AdminProjectDomainAttributesUpdateRequest body: (required) + :return: AdminProjectDomainAttributesUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['attributes_project', 'body'] # noqa: E501 + all_params = ['attributes_org', 'attributes_project', 'attributes_domain', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6552,24 +12661,36 @@ def update_project_attributes_with_http_info(self, attributes_project, body, **k if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_project_attributes" % key + " to method update_project_domain_attributes2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'attributes_org' is set + if ('attributes_org' not in params or + params['attributes_org'] is None): + raise ValueError("Missing the required parameter `attributes_org` when calling `update_project_domain_attributes2`") # noqa: E501 # verify the required parameter 'attributes_project' is set if ('attributes_project' not in params or params['attributes_project'] is None): - raise ValueError("Missing the required parameter `attributes_project` when calling `update_project_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `attributes_project` when calling `update_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'attributes_domain' is set + if ('attributes_domain' not in params or + params['attributes_domain'] is None): + raise ValueError("Missing the required parameter `attributes_domain` when calling `update_project_domain_attributes2`") # 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_project_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project_domain_attributes2`") # noqa: E501 collection_formats = {} path_params = {} + if 'attributes_org' in params: + path_params['attributes.org'] = params['attributes_org'] # noqa: E501 if 'attributes_project' in params: path_params['attributes.project'] = params['attributes_project'] # noqa: E501 + if 'attributes_domain' in params: + path_params['attributes.domain'] = params['attributes_domain'] # noqa: E501 query_params = [] @@ -6593,14 +12714,14 @@ def update_project_attributes_with_http_info(self, attributes_project, body, **k auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_attributes/{attributes.project}', 'PUT', + '/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectAttributesUpdateResponse', # noqa: E501 + response_type='AdminProjectDomainAttributesUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6608,47 +12729,49 @@ def update_project_attributes_with_http_info(self, attributes_project, body, **k _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def update_project_domain_attributes(self, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 - """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def update_workflow_attributes(self, attributes_project, attributes_domain, attributes_workflow, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # 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_project_domain_attributes(attributes_project, attributes_domain, body, async_req=True) + >>> thread = api.update_workflow_attributes(attributes_project, attributes_domain, attributes_workflow, body, async_req=True) >>> result = thread.get() :param async_req bool :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) :param str attributes_domain: Unique domain id for which this set of attributes will be applied. (required) - :param AdminProjectDomainAttributesUpdateRequest body: (required) - :return: AdminProjectDomainAttributesUpdateResponse + :param str attributes_workflow: Workflow name for which this set of attributes will be applied. (required) + :param AdminWorkflowAttributesUpdateRequest body: (required) + :return: AdminWorkflowAttributesUpdateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.update_project_domain_attributes_with_http_info(attributes_project, attributes_domain, body, **kwargs) # noqa: E501 + return self.update_workflow_attributes_with_http_info(attributes_project, attributes_domain, attributes_workflow, body, **kwargs) # noqa: E501 else: - (data) = self.update_project_domain_attributes_with_http_info(attributes_project, attributes_domain, body, **kwargs) # noqa: E501 + (data) = self.update_workflow_attributes_with_http_info(attributes_project, attributes_domain, attributes_workflow, body, **kwargs) # noqa: E501 return data - def update_project_domain_attributes_with_http_info(self, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 - """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def update_workflow_attributes_with_http_info(self, attributes_project, attributes_domain, attributes_workflow, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # 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_project_domain_attributes_with_http_info(attributes_project, attributes_domain, body, async_req=True) + >>> thread = api.update_workflow_attributes_with_http_info(attributes_project, attributes_domain, attributes_workflow, body, async_req=True) >>> result = thread.get() :param async_req bool :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) :param str attributes_domain: Unique domain id for which this set of attributes will be applied. (required) - :param AdminProjectDomainAttributesUpdateRequest body: (required) - :return: AdminProjectDomainAttributesUpdateResponse + :param str attributes_workflow: Workflow name for which this set of attributes will be applied. (required) + :param AdminWorkflowAttributesUpdateRequest body: (required) + :return: AdminWorkflowAttributesUpdateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['attributes_project', 'attributes_domain', 'body'] # noqa: E501 + all_params = ['attributes_project', 'attributes_domain', 'attributes_workflow', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6659,22 +12782,26 @@ def update_project_domain_attributes_with_http_info(self, attributes_project, at if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_project_domain_attributes" % key + " to method update_workflow_attributes" % key ) params[key] = val del params['kwargs'] # verify the required parameter 'attributes_project' is set if ('attributes_project' not in params or params['attributes_project'] is None): - raise ValueError("Missing the required parameter `attributes_project` when calling `update_project_domain_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `attributes_project` when calling `update_workflow_attributes`") # noqa: E501 # verify the required parameter 'attributes_domain' is set if ('attributes_domain' not in params or params['attributes_domain'] is None): - raise ValueError("Missing the required parameter `attributes_domain` when calling `update_project_domain_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `attributes_domain` when calling `update_workflow_attributes`") # noqa: E501 + # verify the required parameter 'attributes_workflow' is set + if ('attributes_workflow' not in params or + params['attributes_workflow'] is None): + raise ValueError("Missing the required parameter `attributes_workflow` when calling `update_workflow_attributes`") # 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_project_domain_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_workflow_attributes`") # noqa: E501 collection_formats = {} @@ -6683,6 +12810,8 @@ def update_project_domain_attributes_with_http_info(self, attributes_project, at path_params['attributes.project'] = params['attributes_project'] # noqa: E501 if 'attributes_domain' in params: path_params['attributes.domain'] = params['attributes_domain'] # noqa: E501 + if 'attributes_workflow' in params: + path_params['attributes.workflow'] = params['attributes_workflow'] # noqa: E501 query_params = [] @@ -6706,14 +12835,14 @@ def update_project_domain_attributes_with_http_info(self, attributes_project, at auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}', 'PUT', + '/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectDomainAttributesUpdateResponse', # noqa: E501 + response_type='AdminWorkflowAttributesUpdateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6721,15 +12850,16 @@ def update_project_domain_attributes_with_http_info(self, attributes_project, at _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def update_workflow_attributes(self, attributes_project, attributes_domain, attributes_workflow, body, **kwargs): # noqa: E501 + def update_workflow_attributes2(self, attributes_org, attributes_project, attributes_domain, attributes_workflow, body, **kwargs): # noqa: E501 """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # 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_workflow_attributes(attributes_project, attributes_domain, attributes_workflow, body, async_req=True) + >>> thread = api.update_workflow_attributes2(attributes_org, attributes_project, attributes_domain, attributes_workflow, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str attributes_org: Optional, org key applied to the attributes. (required) :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) :param str attributes_domain: Unique domain id for which this set of attributes will be applied. (required) :param str attributes_workflow: Workflow name for which this set of attributes will be applied. (required) @@ -6740,20 +12870,21 @@ def update_workflow_attributes(self, attributes_project, attributes_domain, attr """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.update_workflow_attributes_with_http_info(attributes_project, attributes_domain, attributes_workflow, body, **kwargs) # noqa: E501 + return self.update_workflow_attributes2_with_http_info(attributes_org, attributes_project, attributes_domain, attributes_workflow, body, **kwargs) # noqa: E501 else: - (data) = self.update_workflow_attributes_with_http_info(attributes_project, attributes_domain, attributes_workflow, body, **kwargs) # noqa: E501 + (data) = self.update_workflow_attributes2_with_http_info(attributes_org, attributes_project, attributes_domain, attributes_workflow, body, **kwargs) # noqa: E501 return data - def update_workflow_attributes_with_http_info(self, attributes_project, attributes_domain, attributes_workflow, body, **kwargs): # noqa: E501 + def update_workflow_attributes2_with_http_info(self, attributes_org, attributes_project, attributes_domain, attributes_workflow, body, **kwargs): # noqa: E501 """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # 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_workflow_attributes_with_http_info(attributes_project, attributes_domain, attributes_workflow, body, async_req=True) + >>> thread = api.update_workflow_attributes2_with_http_info(attributes_org, attributes_project, attributes_domain, attributes_workflow, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str attributes_org: Optional, org key applied to the attributes. (required) :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) :param str attributes_domain: Unique domain id for which this set of attributes will be applied. (required) :param str attributes_workflow: Workflow name for which this set of attributes will be applied. (required) @@ -6763,7 +12894,7 @@ def update_workflow_attributes_with_http_info(self, attributes_project, attribut returns the request thread. """ - all_params = ['attributes_project', 'attributes_domain', 'attributes_workflow', 'body'] # noqa: E501 + all_params = ['attributes_org', 'attributes_project', 'attributes_domain', 'attributes_workflow', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6774,30 +12905,36 @@ def update_workflow_attributes_with_http_info(self, attributes_project, attribut if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_workflow_attributes" % key + " to method update_workflow_attributes2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'attributes_org' is set + if ('attributes_org' not in params or + params['attributes_org'] is None): + raise ValueError("Missing the required parameter `attributes_org` when calling `update_workflow_attributes2`") # noqa: E501 # verify the required parameter 'attributes_project' is set if ('attributes_project' not in params or params['attributes_project'] is None): - raise ValueError("Missing the required parameter `attributes_project` when calling `update_workflow_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `attributes_project` when calling `update_workflow_attributes2`") # noqa: E501 # verify the required parameter 'attributes_domain' is set if ('attributes_domain' not in params or params['attributes_domain'] is None): - raise ValueError("Missing the required parameter `attributes_domain` when calling `update_workflow_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `attributes_domain` when calling `update_workflow_attributes2`") # noqa: E501 # verify the required parameter 'attributes_workflow' is set if ('attributes_workflow' not in params or params['attributes_workflow'] is None): - raise ValueError("Missing the required parameter `attributes_workflow` when calling `update_workflow_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `attributes_workflow` when calling `update_workflow_attributes2`") # 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_workflow_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_workflow_attributes2`") # noqa: E501 collection_formats = {} path_params = {} + if 'attributes_org' in params: + path_params['attributes.org'] = params['attributes_org'] # noqa: E501 if 'attributes_project' in params: path_params['attributes.project'] = params['attributes_project'] # noqa: E501 if 'attributes_domain' in params: @@ -6827,7 +12964,7 @@ def update_workflow_attributes_with_http_info(self, attributes_project, attribut auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}', 'PUT', + '/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}', 'PUT', path_params, query_params, header_params, 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 f2604bcd01..93a6f44c80 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 @@ -98,6 +98,7 @@ from flyteadmin.models.admin_project_domain_attributes_get_response import AdminProjectDomainAttributesGetResponse from flyteadmin.models.admin_project_domain_attributes_update_request import AdminProjectDomainAttributesUpdateRequest from flyteadmin.models.admin_project_domain_attributes_update_response import AdminProjectDomainAttributesUpdateResponse +from flyteadmin.models.admin_project_identifier import AdminProjectIdentifier from flyteadmin.models.admin_project_register_request import AdminProjectRegisterRequest from flyteadmin.models.admin_project_register_response import AdminProjectRegisterResponse from flyteadmin.models.admin_project_update_response import AdminProjectUpdateResponse diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_create_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_create_request.py index 5c5373a88d..228a1c5847 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_create_request.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_create_request.py @@ -38,7 +38,8 @@ class AdminExecutionCreateRequest(object): 'domain': 'str', 'name': 'str', 'spec': 'AdminExecutionSpec', - 'inputs': 'CoreLiteralMap' + 'inputs': 'CoreLiteralMap', + 'org': 'str' } attribute_map = { @@ -46,10 +47,11 @@ class AdminExecutionCreateRequest(object): 'domain': 'domain', 'name': 'name', 'spec': 'spec', - 'inputs': 'inputs' + 'inputs': 'inputs', + 'org': 'org' } - def __init__(self, project=None, domain=None, name=None, spec=None, inputs=None): # noqa: E501 + def __init__(self, project=None, domain=None, name=None, spec=None, inputs=None, org=None): # noqa: E501 """AdminExecutionCreateRequest - a model defined in Swagger""" # noqa: E501 self._project = None @@ -57,6 +59,7 @@ def __init__(self, project=None, domain=None, name=None, spec=None, inputs=None) self._name = None self._spec = None self._inputs = None + self._org = None self.discriminator = None if project is not None: @@ -69,6 +72,8 @@ def __init__(self, project=None, domain=None, name=None, spec=None, inputs=None) self.spec = spec if inputs is not None: self.inputs = inputs + if org is not None: + self.org = org @property def project(self): @@ -175,6 +180,29 @@ def inputs(self, inputs): self._inputs = inputs + @property + def org(self): + """Gets the org of this AdminExecutionCreateRequest. # noqa: E501 + + Optional, org key applied to the resource. # noqa: E501 + + :return: The org of this AdminExecutionCreateRequest. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this AdminExecutionCreateRequest. + + Optional, org key applied to the resource. # noqa: E501 + + :param org: The org of this AdminExecutionCreateRequest. # noqa: E501 + :type: str + """ + + self._org = org + 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_matchable_attributes_configuration.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_matchable_attributes_configuration.py index a9be455f25..58e05cbdb4 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_matchable_attributes_configuration.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_matchable_attributes_configuration.py @@ -37,7 +37,8 @@ class AdminMatchableAttributesConfiguration(object): 'domain': 'str', 'project': 'str', 'workflow': 'str', - 'launch_plan': 'str' + 'launch_plan': 'str', + 'org': 'str' } attribute_map = { @@ -45,10 +46,11 @@ class AdminMatchableAttributesConfiguration(object): 'domain': 'domain', 'project': 'project', 'workflow': 'workflow', - 'launch_plan': 'launch_plan' + 'launch_plan': 'launch_plan', + 'org': 'org' } - def __init__(self, attributes=None, domain=None, project=None, workflow=None, launch_plan=None): # noqa: E501 + def __init__(self, attributes=None, domain=None, project=None, workflow=None, launch_plan=None, org=None): # noqa: E501 """AdminMatchableAttributesConfiguration - a model defined in Swagger""" # noqa: E501 self._attributes = None @@ -56,6 +58,7 @@ def __init__(self, attributes=None, domain=None, project=None, workflow=None, la self._project = None self._workflow = None self._launch_plan = None + self._org = None self.discriminator = None if attributes is not None: @@ -68,6 +71,8 @@ def __init__(self, attributes=None, domain=None, project=None, workflow=None, la self.workflow = workflow if launch_plan is not None: self.launch_plan = launch_plan + if org is not None: + self.org = org @property def attributes(self): @@ -174,6 +179,29 @@ def launch_plan(self, launch_plan): self._launch_plan = launch_plan + @property + def org(self): + """Gets the org of this AdminMatchableAttributesConfiguration. # noqa: E501 + + Optional, org key applied to the resource. # noqa: E501 + + :return: The org of this AdminMatchableAttributesConfiguration. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this AdminMatchableAttributesConfiguration. + + Optional, org key applied to the resource. # noqa: E501 + + :param org: The org of this AdminMatchableAttributesConfiguration. # noqa: E501 + :type: str + """ + + self._org = org + 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_named_entity_identifier.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_named_entity_identifier.py index 8a06241403..a38944ceec 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_named_entity_identifier.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_named_entity_identifier.py @@ -33,21 +33,24 @@ class AdminNamedEntityIdentifier(object): swagger_types = { 'project': 'str', 'domain': 'str', - 'name': 'str' + 'name': 'str', + 'org': 'str' } attribute_map = { 'project': 'project', 'domain': 'domain', - 'name': 'name' + 'name': 'name', + 'org': 'org' } - def __init__(self, project=None, domain=None, name=None): # noqa: E501 + def __init__(self, project=None, domain=None, name=None, org=None): # noqa: E501 """AdminNamedEntityIdentifier - a model defined in Swagger""" # noqa: E501 self._project = None self._domain = None self._name = None + self._org = None self.discriminator = None if project is not None: @@ -56,6 +59,8 @@ def __init__(self, project=None, domain=None, name=None): # noqa: E501 self.domain = domain if name is not None: self.name = name + if org is not None: + self.org = org @property def project(self): @@ -124,6 +129,29 @@ def name(self, name): self._name = name + @property + def org(self): + """Gets the org of this AdminNamedEntityIdentifier. # noqa: E501 + + Optional, org key applied to the resource. # noqa: E501 + + :return: The org of this AdminNamedEntityIdentifier. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this AdminNamedEntityIdentifier. + + Optional, org key applied to the resource. # noqa: E501 + + :param org: The org of this AdminNamedEntityIdentifier. # noqa: E501 + :type: str + """ + + self._org = org + 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_project.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py index 1d64553b8f..f70707af86 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py @@ -18,6 +18,7 @@ from flyteadmin.models.admin_domain import AdminDomain # noqa: F401,E501 from flyteadmin.models.admin_labels import AdminLabels # noqa: F401,E501 +from flyteadmin.models.admin_project_identifier import AdminProjectIdentifier # noqa: F401,E501 from flyteadmin.models.project_project_state import ProjectProjectState # noqa: F401,E501 @@ -40,7 +41,8 @@ class AdminProject(object): 'domains': 'list[AdminDomain]', 'description': 'str', 'labels': 'AdminLabels', - 'state': 'ProjectProjectState' + 'state': 'ProjectProjectState', + 'identifier': 'AdminProjectIdentifier' } attribute_map = { @@ -49,10 +51,11 @@ class AdminProject(object): 'domains': 'domains', 'description': 'description', 'labels': 'labels', - 'state': 'state' + 'state': 'state', + 'identifier': 'identifier' } - def __init__(self, id=None, name=None, domains=None, description=None, labels=None, state=None): # noqa: E501 + def __init__(self, id=None, name=None, domains=None, description=None, labels=None, state=None, identifier=None): # noqa: E501 """AdminProject - a model defined in Swagger""" # noqa: E501 self._id = None @@ -61,6 +64,7 @@ def __init__(self, id=None, name=None, domains=None, description=None, labels=No self._description = None self._labels = None self._state = None + self._identifier = None self.discriminator = None if id is not None: @@ -75,12 +79,14 @@ def __init__(self, id=None, name=None, domains=None, description=None, labels=No self.labels = labels if state is not None: self.state = state + if identifier is not None: + self.identifier = identifier @property def id(self): """Gets the id of this AdminProject. # noqa: E501 - Globally unique project name. # noqa: E501 + Deprecated, use identifier instead. Globally unique project name. # noqa: E501 :return: The id of this AdminProject. # noqa: E501 :rtype: str @@ -91,7 +97,7 @@ def id(self): def id(self, id): """Sets the id of this AdminProject. - Globally unique project name. # noqa: E501 + Deprecated, use identifier instead. Globally unique project name. # noqa: E501 :param id: The id of this AdminProject. # noqa: E501 :type: str @@ -208,6 +214,29 @@ def state(self, state): self._state = state + @property + def identifier(self): + """Gets the identifier of this AdminProject. # noqa: E501 + + Optional, org key applied to the project. # noqa: E501 + + :return: The identifier of this AdminProject. # noqa: E501 + :rtype: AdminProjectIdentifier + """ + return self._identifier + + @identifier.setter + def identifier(self, identifier): + """Sets the identifier of this AdminProject. + + Optional, org key applied to the project. # noqa: E501 + + :param identifier: The identifier of this AdminProject. # noqa: E501 + :type: AdminProjectIdentifier + """ + + self._identifier = identifier + 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_project_attributes.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes.py index a892f96441..c0c913f4fd 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes.py @@ -34,25 +34,30 @@ class AdminProjectAttributes(object): """ swagger_types = { 'project': 'str', - 'matching_attributes': 'AdminMatchingAttributes' + 'matching_attributes': 'AdminMatchingAttributes', + 'org': 'str' } attribute_map = { 'project': 'project', - 'matching_attributes': 'matching_attributes' + 'matching_attributes': 'matching_attributes', + 'org': 'org' } - def __init__(self, project=None, matching_attributes=None): # noqa: E501 + def __init__(self, project=None, matching_attributes=None, org=None): # noqa: E501 """AdminProjectAttributes - a model defined in Swagger""" # noqa: E501 self._project = None self._matching_attributes = None + self._org = None self.discriminator = None if project is not None: self.project = project if matching_attributes is not None: self.matching_attributes = matching_attributes + if org is not None: + self.org = org @property def project(self): @@ -98,6 +103,29 @@ def matching_attributes(self, matching_attributes): self._matching_attributes = matching_attributes + @property + def org(self): + """Gets the org of this AdminProjectAttributes. # noqa: E501 + + Optional, org key applied to the project. # noqa: E501 + + :return: The org of this AdminProjectAttributes. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this AdminProjectAttributes. + + Optional, org key applied to the project. # noqa: E501 + + :param org: The org of this AdminProjectAttributes. # noqa: E501 + :type: str + """ + + self._org = org + 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_project_attributes_delete_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_request.py index 5b41e2c590..439707074f 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_request.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_request.py @@ -34,25 +34,30 @@ class AdminProjectAttributesDeleteRequest(object): """ swagger_types = { 'project': 'str', - 'resource_type': 'AdminMatchableResource' + 'resource_type': 'AdminMatchableResource', + 'org': 'str' } attribute_map = { 'project': 'project', - 'resource_type': 'resource_type' + 'resource_type': 'resource_type', + 'org': 'org' } - def __init__(self, project=None, resource_type=None): # noqa: E501 + def __init__(self, project=None, resource_type=None, org=None): # noqa: E501 """AdminProjectAttributesDeleteRequest - a model defined in Swagger""" # noqa: E501 self._project = None self._resource_type = None + self._org = None self.discriminator = None if project is not None: self.project = project if resource_type is not None: self.resource_type = resource_type + if org is not None: + self.org = org @property def project(self): @@ -96,6 +101,29 @@ def resource_type(self, resource_type): self._resource_type = resource_type + @property + def org(self): + """Gets the org of this AdminProjectAttributesDeleteRequest. # noqa: E501 + + Optional, org key applied to the project. # noqa: E501 + + :return: The org of this AdminProjectAttributesDeleteRequest. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this AdminProjectAttributesDeleteRequest. + + Optional, org key applied to the project. # noqa: E501 + + :param org: The org of this AdminProjectAttributesDeleteRequest. # noqa: E501 + :type: str + """ + + self._org = org + 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_project_domain_attributes.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_domain_attributes.py index 0c7d6e4559..2a8abfe98e 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_domain_attributes.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_domain_attributes.py @@ -35,21 +35,24 @@ class AdminProjectDomainAttributes(object): swagger_types = { 'project': 'str', 'domain': 'str', - 'matching_attributes': 'AdminMatchingAttributes' + 'matching_attributes': 'AdminMatchingAttributes', + 'org': 'str' } attribute_map = { 'project': 'project', 'domain': 'domain', - 'matching_attributes': 'matching_attributes' + 'matching_attributes': 'matching_attributes', + 'org': 'org' } - def __init__(self, project=None, domain=None, matching_attributes=None): # noqa: E501 + def __init__(self, project=None, domain=None, matching_attributes=None, org=None): # noqa: E501 """AdminProjectDomainAttributes - a model defined in Swagger""" # noqa: E501 self._project = None self._domain = None self._matching_attributes = None + self._org = None self.discriminator = None if project is not None: @@ -58,6 +61,8 @@ def __init__(self, project=None, domain=None, matching_attributes=None): # noqa self.domain = domain if matching_attributes is not None: self.matching_attributes = matching_attributes + if org is not None: + self.org = org @property def project(self): @@ -126,6 +131,29 @@ def matching_attributes(self, matching_attributes): self._matching_attributes = matching_attributes + @property + def org(self): + """Gets the org of this AdminProjectDomainAttributes. # noqa: E501 + + Optional, org key applied to the attributes. # noqa: E501 + + :return: The org of this AdminProjectDomainAttributes. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this AdminProjectDomainAttributes. + + Optional, org key applied to the attributes. # noqa: E501 + + :param org: The org of this AdminProjectDomainAttributes. # noqa: E501 + :type: str + """ + + self._org = org + 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_project_domain_attributes_delete_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_domain_attributes_delete_request.py index aef8bfa14f..bafad3aa40 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_domain_attributes_delete_request.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_domain_attributes_delete_request.py @@ -35,21 +35,24 @@ class AdminProjectDomainAttributesDeleteRequest(object): swagger_types = { 'project': 'str', 'domain': 'str', - 'resource_type': 'AdminMatchableResource' + 'resource_type': 'AdminMatchableResource', + 'org': 'str' } attribute_map = { 'project': 'project', 'domain': 'domain', - 'resource_type': 'resource_type' + 'resource_type': 'resource_type', + 'org': 'org' } - def __init__(self, project=None, domain=None, resource_type=None): # noqa: E501 + def __init__(self, project=None, domain=None, resource_type=None, org=None): # noqa: E501 """AdminProjectDomainAttributesDeleteRequest - a model defined in Swagger""" # noqa: E501 self._project = None self._domain = None self._resource_type = None + self._org = None self.discriminator = None if project is not None: @@ -58,6 +61,8 @@ def __init__(self, project=None, domain=None, resource_type=None): # noqa: E501 self.domain = domain if resource_type is not None: self.resource_type = resource_type + if org is not None: + self.org = org @property def project(self): @@ -122,6 +127,29 @@ def resource_type(self, resource_type): self._resource_type = resource_type + @property + def org(self): + """Gets the org of this AdminProjectDomainAttributesDeleteRequest. # noqa: E501 + + Optional, org key applied to the attributes. # noqa: E501 + + :return: The org of this AdminProjectDomainAttributesDeleteRequest. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this AdminProjectDomainAttributesDeleteRequest. + + Optional, org key applied to the attributes. # noqa: E501 + + :param org: The org of this AdminProjectDomainAttributesDeleteRequest. # noqa: E501 + :type: str + """ + + self._org = org + 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_project_identifier.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_identifier.py new file mode 100644 index 0000000000..13323d0964 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_identifier.py @@ -0,0 +1,145 @@ +# 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 AdminProjectIdentifier(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': 'str', + 'org': 'str' + } + + attribute_map = { + 'id': 'id', + 'org': 'org' + } + + def __init__(self, id=None, org=None): # noqa: E501 + """AdminProjectIdentifier - a model defined in Swagger""" # noqa: E501 + + self._id = None + self._org = None + self.discriminator = None + + if id is not None: + self.id = id + if org is not None: + self.org = org + + @property + def id(self): + """Gets the id of this AdminProjectIdentifier. # noqa: E501 + + Globally unique project name. # noqa: E501 + + :return: The id of this AdminProjectIdentifier. # noqa: E501 + :rtype: str + """ + return self._id + + @id.setter + def id(self, id): + """Sets the id of this AdminProjectIdentifier. + + Globally unique project name. # noqa: E501 + + :param id: The id of this AdminProjectIdentifier. # noqa: E501 + :type: str + """ + + self._id = id + + @property + def org(self): + """Gets the org of this AdminProjectIdentifier. # noqa: E501 + + Optional, org key applied to the resource. # noqa: E501 + + :return: The org of this AdminProjectIdentifier. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this AdminProjectIdentifier. + + Optional, org key applied to the resource. # noqa: E501 + + :param org: The org of this AdminProjectIdentifier. # noqa: E501 + :type: str + """ + + self._org = org + + 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(AdminProjectIdentifier, 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, AdminProjectIdentifier): + 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_workflow_attributes.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_workflow_attributes.py index e5dc389073..4add43a463 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_workflow_attributes.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_workflow_attributes.py @@ -36,23 +36,26 @@ class AdminWorkflowAttributes(object): 'project': 'str', 'domain': 'str', 'workflow': 'str', - 'matching_attributes': 'AdminMatchingAttributes' + 'matching_attributes': 'AdminMatchingAttributes', + 'org': 'str' } attribute_map = { 'project': 'project', 'domain': 'domain', 'workflow': 'workflow', - 'matching_attributes': 'matching_attributes' + 'matching_attributes': 'matching_attributes', + 'org': 'org' } - def __init__(self, project=None, domain=None, workflow=None, matching_attributes=None): # noqa: E501 + def __init__(self, project=None, domain=None, workflow=None, matching_attributes=None, org=None): # noqa: E501 """AdminWorkflowAttributes - a model defined in Swagger""" # noqa: E501 self._project = None self._domain = None self._workflow = None self._matching_attributes = None + self._org = None self.discriminator = None if project is not None: @@ -63,6 +66,8 @@ def __init__(self, project=None, domain=None, workflow=None, matching_attributes self.workflow = workflow if matching_attributes is not None: self.matching_attributes = matching_attributes + if org is not None: + self.org = org @property def project(self): @@ -154,6 +159,29 @@ def matching_attributes(self, matching_attributes): self._matching_attributes = matching_attributes + @property + def org(self): + """Gets the org of this AdminWorkflowAttributes. # noqa: E501 + + Optional, org key applied to the attributes. # noqa: E501 + + :return: The org of this AdminWorkflowAttributes. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this AdminWorkflowAttributes. + + Optional, org key applied to the attributes. # noqa: E501 + + :param org: The org of this AdminWorkflowAttributes. # noqa: E501 + :type: str + """ + + self._org = org + 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_workflow_attributes_delete_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_workflow_attributes_delete_request.py index 348cd98213..445583cf96 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_workflow_attributes_delete_request.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_workflow_attributes_delete_request.py @@ -36,23 +36,26 @@ class AdminWorkflowAttributesDeleteRequest(object): 'project': 'str', 'domain': 'str', 'workflow': 'str', - 'resource_type': 'AdminMatchableResource' + 'resource_type': 'AdminMatchableResource', + 'org': 'str' } attribute_map = { 'project': 'project', 'domain': 'domain', 'workflow': 'workflow', - 'resource_type': 'resource_type' + 'resource_type': 'resource_type', + 'org': 'org' } - def __init__(self, project=None, domain=None, workflow=None, resource_type=None): # noqa: E501 + def __init__(self, project=None, domain=None, workflow=None, resource_type=None, org=None): # noqa: E501 """AdminWorkflowAttributesDeleteRequest - a model defined in Swagger""" # noqa: E501 self._project = None self._domain = None self._workflow = None self._resource_type = None + self._org = None self.discriminator = None if project is not None: @@ -63,6 +66,8 @@ def __init__(self, project=None, domain=None, workflow=None, resource_type=None) self.workflow = workflow if resource_type is not None: self.resource_type = resource_type + if org is not None: + self.org = org @property def project(self): @@ -148,6 +153,29 @@ def resource_type(self, resource_type): self._resource_type = resource_type + @property + def org(self): + """Gets the org of this AdminWorkflowAttributesDeleteRequest. # noqa: E501 + + Optional, org key applied to the attributes. # noqa: E501 + + :return: The org of this AdminWorkflowAttributesDeleteRequest. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this AdminWorkflowAttributesDeleteRequest. + + Optional, org key applied to the attributes. # noqa: E501 + + :param org: The org of this AdminWorkflowAttributesDeleteRequest. # noqa: E501 + :type: str + """ + + self._org = org + def to_dict(self): """Returns the model properties as a dict""" result = {} diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_array_node.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_array_node.py index 7922966896..0755745b42 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_array_node.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_array_node.py @@ -91,7 +91,7 @@ def node(self, node): def parallelism(self): """Gets the parallelism of this CoreArrayNode. # noqa: E501 - parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network partitioning or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. # noqa: E501 + parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network orging or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. # noqa: E501 :return: The parallelism of this CoreArrayNode. # noqa: E501 :rtype: int @@ -102,7 +102,7 @@ def parallelism(self): def parallelism(self, parallelism): """Sets the parallelism of this CoreArrayNode. - parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network partitioning or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. # noqa: E501 + parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network orging or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. # noqa: E501 :param parallelism: The parallelism of this CoreArrayNode. # noqa: E501 :type: int diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_identifier.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_identifier.py index ae03fc69e6..1770753b3e 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_identifier.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_identifier.py @@ -37,7 +37,8 @@ class CoreIdentifier(object): 'project': 'str', 'domain': 'str', 'name': 'str', - 'version': 'str' + 'version': 'str', + 'org': 'str' } attribute_map = { @@ -45,10 +46,11 @@ class CoreIdentifier(object): 'project': 'project', 'domain': 'domain', 'name': 'name', - 'version': 'version' + 'version': 'version', + 'org': 'org' } - def __init__(self, resource_type=None, project=None, domain=None, name=None, version=None): # noqa: E501 + def __init__(self, resource_type=None, project=None, domain=None, name=None, version=None, org=None): # noqa: E501 """CoreIdentifier - a model defined in Swagger""" # noqa: E501 self._resource_type = None @@ -56,6 +58,7 @@ def __init__(self, resource_type=None, project=None, domain=None, name=None, ver self._domain = None self._name = None self._version = None + self._org = None self.discriminator = None if resource_type is not None: @@ -68,6 +71,8 @@ def __init__(self, resource_type=None, project=None, domain=None, name=None, ver self.name = name if version is not None: self.version = version + if org is not None: + self.org = org @property def resource_type(self): @@ -184,6 +189,29 @@ def version(self, version): self._version = version + @property + def org(self): + """Gets the org of this CoreIdentifier. # noqa: E501 + + Optional, org key applied to the resource. # noqa: E501 + + :return: The org of this CoreIdentifier. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this CoreIdentifier. + + Optional, org key applied to the resource. # noqa: E501 + + :param org: The org of this CoreIdentifier. # noqa: E501 + :type: str + """ + + self._org = org + def to_dict(self): """Returns the model properties as a dict""" result = {} diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_workflow_execution_identifier.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_workflow_execution_identifier.py index 09bd015a36..aad31c1687 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_workflow_execution_identifier.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_workflow_execution_identifier.py @@ -33,21 +33,24 @@ class CoreWorkflowExecutionIdentifier(object): swagger_types = { 'project': 'str', 'domain': 'str', - 'name': 'str' + 'name': 'str', + 'org': 'str' } attribute_map = { 'project': 'project', 'domain': 'domain', - 'name': 'name' + 'name': 'name', + 'org': 'org' } - def __init__(self, project=None, domain=None, name=None): # noqa: E501 + def __init__(self, project=None, domain=None, name=None, org=None): # noqa: E501 """CoreWorkflowExecutionIdentifier - a model defined in Swagger""" # noqa: E501 self._project = None self._domain = None self._name = None + self._org = None self.discriminator = None if project is not None: @@ -56,6 +59,8 @@ def __init__(self, project=None, domain=None, name=None): # noqa: E501 self.domain = domain if name is not None: self.name = name + if org is not None: + self.org = org @property def project(self): @@ -126,6 +131,29 @@ def name(self, name): self._name = name + @property + def org(self): + """Gets the org of this CoreWorkflowExecutionIdentifier. # noqa: E501 + + Optional, org key applied to the resource. # noqa: E501 + + :return: The org of this CoreWorkflowExecutionIdentifier. # noqa: E501 + :rtype: str + """ + return self._org + + @org.setter + def org(self, org): + """Sets the org of this CoreWorkflowExecutionIdentifier. + + Optional, org key applied to the resource. # noqa: E501 + + :param org: The org of this CoreWorkflowExecutionIdentifier. # noqa: E501 + :type: str + """ + + self._org = org + def to_dict(self): """Returns the model properties as a dict""" result = {} diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_identifier.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_identifier.py new file mode 100644 index 0000000000..7cf9507703 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_identifier.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_project_identifier import AdminProjectIdentifier # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminProjectIdentifier(unittest.TestCase): + """AdminProjectIdentifier unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminProjectIdentifier(self): + """Test AdminProjectIdentifier""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_project_identifier.AdminProjectIdentifier() # 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 680b2cd5f5..ec40e07475 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 @@ -85,6 +85,13 @@ def test_delete_project_attributes(self): """ pass + def test_delete_project_attributes2(self): + """Test case for delete_project_attributes2 + + Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + """ + pass + def test_delete_project_domain_attributes(self): """Test case for delete_project_domain_attributes @@ -92,6 +99,13 @@ def test_delete_project_domain_attributes(self): """ pass + def test_delete_project_domain_attributes2(self): + """Test case for delete_project_domain_attributes2 + + Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + """ + pass + def test_delete_workflow_attributes(self): """Test case for delete_workflow_attributes @@ -99,6 +113,13 @@ def test_delete_workflow_attributes(self): """ pass + def test_delete_workflow_attributes2(self): + """Test case for delete_workflow_attributes2 + + Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + """ + pass + def test_get_active_launch_plan(self): """Test case for get_active_launch_plan @@ -106,6 +127,13 @@ def test_get_active_launch_plan(self): """ pass + def test_get_active_launch_plan2(self): + """Test case for get_active_launch_plan2 + + Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + """ + pass + def test_get_description_entity(self): """Test case for get_description_entity @@ -113,6 +141,13 @@ def test_get_description_entity(self): """ pass + def test_get_description_entity2(self): + """Test case for get_description_entity2 + + Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 + """ + pass + def test_get_execution(self): """Test case for get_execution @@ -120,6 +155,13 @@ def test_get_execution(self): """ pass + def test_get_execution2(self): + """Test case for get_execution2 + + Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + """ + pass + def test_get_execution_data(self): """Test case for get_execution_data @@ -127,6 +169,13 @@ def test_get_execution_data(self): """ pass + def test_get_execution_data2(self): + """Test case for get_execution_data2 + + Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + """ + pass + def test_get_execution_metrics(self): """Test case for get_execution_metrics @@ -134,6 +183,13 @@ def test_get_execution_metrics(self): """ pass + def test_get_execution_metrics2(self): + """Test case for get_execution_metrics2 + + Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + """ + pass + def test_get_launch_plan(self): """Test case for get_launch_plan @@ -141,6 +197,13 @@ def test_get_launch_plan(self): """ pass + def test_get_launch_plan2(self): + """Test case for get_launch_plan2 + + Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 + """ + pass + def test_get_named_entity(self): """Test case for get_named_entity @@ -148,6 +211,13 @@ def test_get_named_entity(self): """ pass + def test_get_named_entity2(self): + """Test case for get_named_entity2 + + Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + """ + pass + def test_get_node_execution(self): """Test case for get_node_execution @@ -155,6 +225,13 @@ def test_get_node_execution(self): """ pass + def test_get_node_execution2(self): + """Test case for get_node_execution2 + + Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + """ + pass + def test_get_node_execution_data(self): """Test case for get_node_execution_data @@ -162,6 +239,13 @@ def test_get_node_execution_data(self): """ pass + def test_get_node_execution_data2(self): + """Test case for get_node_execution_data2 + + Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + """ + pass + def test_get_project_attributes(self): """Test case for get_project_attributes @@ -169,6 +253,13 @@ def test_get_project_attributes(self): """ pass + def test_get_project_attributes2(self): + """Test case for get_project_attributes2 + + Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + """ + pass + def test_get_project_domain_attributes(self): """Test case for get_project_domain_attributes @@ -176,6 +267,13 @@ def test_get_project_domain_attributes(self): """ pass + def test_get_project_domain_attributes2(self): + """Test case for get_project_domain_attributes2 + + Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + """ + pass + def test_get_task(self): """Test case for get_task @@ -183,6 +281,13 @@ def test_get_task(self): """ pass + def test_get_task2(self): + """Test case for get_task2 + + Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + """ + pass + def test_get_task_execution(self): """Test case for get_task_execution @@ -190,6 +295,13 @@ def test_get_task_execution(self): """ pass + def test_get_task_execution2(self): + """Test case for get_task_execution2 + + Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + """ + pass + def test_get_task_execution_data(self): """Test case for get_task_execution_data @@ -197,6 +309,13 @@ def test_get_task_execution_data(self): """ pass + def test_get_task_execution_data2(self): + """Test case for get_task_execution_data2 + + Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + """ + pass + def test_get_version(self): """Test case for get_version @@ -210,6 +329,13 @@ def test_get_workflow(self): """ pass + def test_get_workflow2(self): + """Test case for get_workflow2 + + Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + """ + pass + def test_get_workflow_attributes(self): """Test case for get_workflow_attributes @@ -217,6 +343,13 @@ def test_get_workflow_attributes(self): """ pass + def test_get_workflow_attributes2(self): + """Test case for get_workflow_attributes2 + + Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + """ + pass + def test_list_active_launch_plans(self): """Test case for list_active_launch_plans @@ -238,6 +371,20 @@ def test_list_description_entities2(self): """ pass + def test_list_description_entities3(self): + """Test case for list_description_entities3 + + Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + """ + pass + + def test_list_description_entities4(self): + """Test case for list_description_entities4 + + Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + """ + pass + def test_list_executions(self): """Test case for list_executions @@ -245,6 +392,13 @@ def test_list_executions(self): """ pass + def test_list_executions2(self): + """Test case for list_executions2 + + Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + """ + pass + def test_list_launch_plan_ids(self): """Test case for list_launch_plan_ids @@ -252,6 +406,13 @@ def test_list_launch_plan_ids(self): """ pass + def test_list_launch_plan_ids2(self): + """Test case for list_launch_plan_ids2 + + Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + """ + pass + def test_list_launch_plans(self): """Test case for list_launch_plans @@ -266,6 +427,20 @@ def test_list_launch_plans2(self): """ pass + def test_list_launch_plans3(self): + """Test case for list_launch_plans3 + + Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + """ + pass + + def test_list_launch_plans4(self): + """Test case for list_launch_plans4 + + Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + """ + pass + def test_list_matchable_attributes(self): """Test case for list_matchable_attributes @@ -280,6 +455,13 @@ def test_list_named_entities(self): """ pass + def test_list_named_entities2(self): + """Test case for list_named_entities2 + + Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + """ + pass + def test_list_node_executions(self): """Test case for list_node_executions @@ -287,6 +469,13 @@ def test_list_node_executions(self): """ pass + def test_list_node_executions2(self): + """Test case for list_node_executions2 + + Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + """ + pass + def test_list_node_executions_for_task(self): """Test case for list_node_executions_for_task @@ -294,6 +483,13 @@ def test_list_node_executions_for_task(self): """ pass + def test_list_node_executions_for_task2(self): + """Test case for list_node_executions_for_task2 + + Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + """ + pass + def test_list_projects(self): """Test case for list_projects @@ -308,6 +504,13 @@ def test_list_task_executions(self): """ pass + def test_list_task_executions2(self): + """Test case for list_task_executions2 + + Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + """ + pass + def test_list_task_ids(self): """Test case for list_task_ids @@ -315,6 +518,13 @@ def test_list_task_ids(self): """ pass + def test_list_task_ids2(self): + """Test case for list_task_ids2 + + Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 + """ + pass + def test_list_tasks(self): """Test case for list_tasks @@ -329,6 +539,20 @@ def test_list_tasks2(self): """ pass + def test_list_tasks3(self): + """Test case for list_tasks3 + + Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + """ + pass + + def test_list_tasks4(self): + """Test case for list_tasks4 + + Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + """ + pass + def test_list_workflow_ids(self): """Test case for list_workflow_ids @@ -336,6 +560,13 @@ def test_list_workflow_ids(self): """ pass + def test_list_workflow_ids2(self): + """Test case for list_workflow_ids2 + + Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 + """ + pass + def test_list_workflows(self): """Test case for list_workflows @@ -350,6 +581,20 @@ def test_list_workflows2(self): """ pass + def test_list_workflows3(self): + """Test case for list_workflows3 + + Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + """ + pass + + def test_list_workflows4(self): + """Test case for list_workflows4 + + Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + """ + pass + def test_recover_execution(self): """Test case for recover_execution @@ -378,6 +623,13 @@ def test_terminate_execution(self): """ pass + def test_terminate_execution2(self): + """Test case for terminate_execution2 + + Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + """ + pass + def test_update_execution(self): """Test case for update_execution @@ -385,6 +637,13 @@ def test_update_execution(self): """ pass + def test_update_execution2(self): + """Test case for update_execution2 + + 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 @@ -392,6 +651,13 @@ def test_update_launch_plan(self): """ pass + def test_update_launch_plan2(self): + """Test case for update_launch_plan2 + + Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + """ + pass + def test_update_named_entity(self): """Test case for update_named_entity @@ -399,10 +665,38 @@ def test_update_named_entity(self): """ pass + def test_update_named_entity2(self): + """Test case for update_named_entity2 + + Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + """ + pass + def test_update_project(self): """Test case for update_project - Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 + Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 + """ + pass + + def test_update_project2(self): + """Test case for update_project2 + + Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 + """ + pass + + def test_update_project3(self): + """Test case for update_project3 + + Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 + """ + pass + + def test_update_project4(self): + """Test case for update_project4 + + Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 """ pass @@ -413,6 +707,13 @@ def test_update_project_attributes(self): """ pass + def test_update_project_attributes2(self): + """Test case for update_project_attributes2 + + Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # noqa: E501 + """ + pass + def test_update_project_domain_attributes(self): """Test case for update_project_domain_attributes @@ -420,6 +721,13 @@ def test_update_project_domain_attributes(self): """ pass + def test_update_project_domain_attributes2(self): + """Test case for update_project_domain_attributes2 + + Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + """ + pass + def test_update_workflow_attributes(self): """Test case for update_workflow_attributes @@ -427,6 +735,13 @@ def test_update_workflow_attributes(self): """ pass + def test_update_workflow_attributes2(self): + """Test case for update_workflow_attributes2 + + Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + """ + pass + if __name__ == '__main__': unittest.main() diff --git a/flyteidl/gen/pb_rust/datacatalog.rs b/flyteidl/gen/pb_rust/datacatalog.rs index 8c8a79dcc7..b24a867be9 100644 --- a/flyteidl/gen/pb_rust/datacatalog.rs +++ b/flyteidl/gen/pb_rust/datacatalog.rs @@ -290,6 +290,12 @@ pub struct DatasetId { /// UUID for the dataset (if set the above fields are optional) #[prost(string, tag="5")] pub uuid: ::prost::alloc::string::String, + /// Optional, partition key applied to the dataset. + #[prost(string, tag="6")] + pub partition: ::prost::alloc::string::String, + /// Optional, org key applied to the resource. + #[prost(string, tag="7")] + pub org: ::prost::alloc::string::String, } /// /// Artifact message. It is composed of several string fields. @@ -469,7 +475,7 @@ pub struct KeyValuePair { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DatasetPropertyFilter { - #[prost(oneof="dataset_property_filter::Property", tags="1, 2, 3, 4")] + #[prost(oneof="dataset_property_filter::Property", tags="1, 2, 3, 4, 5")] pub property: ::core::option::Option, } /// Nested message and enum types in `DatasetPropertyFilter`. @@ -485,6 +491,9 @@ pub mod dataset_property_filter { Domain(::prost::alloc::string::String), #[prost(string, tag="4")] Version(::prost::alloc::string::String), + /// Optional, partition key applied to the dataset. + #[prost(string, tag="5")] + Partition(::prost::alloc::string::String), } } /// Pagination options for making list requests diff --git a/flyteidl/gen/pb_rust/flyteidl.admin.rs b/flyteidl/gen/pb_rust/flyteidl.admin.rs index dc1b065bfa..48dd83121b 100644 --- a/flyteidl/gen/pb_rust/flyteidl.admin.rs +++ b/flyteidl/gen/pb_rust/flyteidl.admin.rs @@ -218,6 +218,9 @@ pub struct NamedEntityIdentifier { /// +optional - in certain contexts - like 'List API', 'Launch plans' #[prost(string, tag="3")] pub name: ::prost::alloc::string::String, + /// Optional, org key applied to the resource. + #[prost(string, tag="4")] + pub org: ::prost::alloc::string::String, } /// Additional metadata around a named entity. #[allow(clippy::derive_partial_eq_without_eq)] @@ -319,6 +322,9 @@ pub struct NamedEntityIdentifierListRequest { /// +optional #[prost(string, tag="6")] pub filters: ::prost::alloc::string::String, + /// Optional, org key applied to the resource. + #[prost(string, tag="7")] + pub org: ::prost::alloc::string::String, } /// Represents a request structure to list NamedEntity objects #[allow(clippy::derive_partial_eq_without_eq)] @@ -351,6 +357,9 @@ pub struct NamedEntityListRequest { /// +optional #[prost(string, tag="7")] pub filters: ::prost::alloc::string::String, + /// Optional, org key applied to the resource. + #[prost(string, tag="8")] + pub org: ::prost::alloc::string::String, } /// Represents a list of NamedEntityIdentifiers. #[allow(clippy::derive_partial_eq_without_eq)] @@ -865,6 +874,9 @@ pub struct ExecutionCreateRequest { /// +optional #[prost(message, optional, tag="5")] pub inputs: ::core::option::Option, + /// Optional, org key applied to the resource. + #[prost(string, tag="6")] + pub org: ::prost::alloc::string::String, } /// Request to relaunch the referenced execution. #[allow(clippy::derive_partial_eq_without_eq)] @@ -1617,7 +1629,7 @@ pub struct ActiveLaunchPlanRequest { #[prost(message, optional, tag="1")] pub id: ::core::option::Option, } -/// Represents a request structure to list active launch plans within a project/domain. +/// Represents a request structure to list active launch plans within a project/domain and optional org. /// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1643,6 +1655,9 @@ pub struct ActiveLaunchPlanListRequest { /// +optional #[prost(message, optional, tag="5")] pub sort_by: ::core::option::Option, + /// Optional, org key applied to the resource. + #[prost(string, tag="6")] + pub org: ::prost::alloc::string::String, } /// By default any launch plan regardless of state can be used to launch a workflow execution. /// However, at most one version of a launch plan @@ -1839,8 +1854,8 @@ pub mod matching_attributes { ClusterAssignment(super::ClusterAssignment), } } -/// Represents a custom set of attributes applied for either a domain; a domain and project; or -/// domain, project and workflow name. +/// Represents a custom set of attributes applied for either a domain (and optional org); a domain and project (and optional org); +/// or domain, project and workflow name (and optional org). /// These are used to override system level defaults for kubernetes cluster resource management, /// default execution values, and more all across different levels of specificity. #[allow(clippy::derive_partial_eq_without_eq)] @@ -1856,6 +1871,9 @@ pub struct MatchableAttributesConfiguration { pub workflow: ::prost::alloc::string::String, #[prost(string, tag="5")] pub launch_plan: ::prost::alloc::string::String, + /// Optional, org key applied to the resource. + #[prost(string, tag="6")] + pub org: ::prost::alloc::string::String, } /// Request all matching resource attributes for a resource type. /// See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details @@ -2229,11 +2247,23 @@ pub struct Domain { #[prost(string, tag="2")] pub name: ::prost::alloc::string::String, } +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ProjectIdentifier { + /// Globally unique project name. + #[prost(string, tag="1")] + pub id: ::prost::alloc::string::String, + /// Optional, org key applied to the resource. + #[prost(string, tag="2")] + pub org: ::prost::alloc::string::String, +} /// Top-level namespace used to classify different entities like workflows and executions. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Project { + /// Deprecated, use identifier instead. /// Globally unique project name. + #[deprecated] #[prost(string, tag="1")] pub id: ::prost::alloc::string::String, /// Display name. @@ -2249,6 +2279,9 @@ pub struct Project { pub labels: ::core::option::Option, #[prost(enumeration="project::ProjectState", tag="6")] pub state: i32, + /// Optional, org key applied to the project. + #[prost(message, optional, tag="7")] + pub identifier: ::core::option::Option, } /// Nested message and enum types in `Project`. pub mod project { @@ -2351,6 +2384,9 @@ pub struct ProjectAttributes { pub project: ::prost::alloc::string::String, #[prost(message, optional, tag="2")] pub matching_attributes: ::core::option::Option, + /// Optional, org key applied to the project. + #[prost(string, tag="3")] + pub org: ::prost::alloc::string::String, } /// Sets custom attributes for a project /// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -2379,6 +2415,9 @@ pub struct ProjectAttributesGetRequest { /// +required #[prost(enumeration="MatchableResource", tag="2")] pub resource_type: i32, + /// Optional, org key applied to the project. + #[prost(string, tag="3")] + pub org: ::prost::alloc::string::String, } /// Response to get an individual project level attribute override. /// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -2401,6 +2440,9 @@ pub struct ProjectAttributesDeleteRequest { /// +required #[prost(enumeration="MatchableResource", tag="2")] pub resource_type: i32, + /// Optional, org key applied to the project. + #[prost(string, tag="3")] + pub org: ::prost::alloc::string::String, } /// Purposefully empty, may be populated in the future. #[allow(clippy::derive_partial_eq_without_eq)] @@ -2420,6 +2462,9 @@ pub struct ProjectDomainAttributes { pub domain: ::prost::alloc::string::String, #[prost(message, optional, tag="3")] pub matching_attributes: ::core::option::Option, + /// Optional, org key applied to the attributes. + #[prost(string, tag="4")] + pub org: ::prost::alloc::string::String, } /// Sets custom attributes for a project-domain combination. /// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -2452,6 +2497,9 @@ pub struct ProjectDomainAttributesGetRequest { /// +required #[prost(enumeration="MatchableResource", tag="3")] pub resource_type: i32, + /// Optional, org key applied to the attributes. + #[prost(string, tag="4")] + pub org: ::prost::alloc::string::String, } /// Response to get an individual project domain attribute override. /// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -2478,6 +2526,9 @@ pub struct ProjectDomainAttributesDeleteRequest { /// +required #[prost(enumeration="MatchableResource", tag="3")] pub resource_type: i32, + /// Optional, org key applied to the attributes. + #[prost(string, tag="4")] + pub org: ::prost::alloc::string::String, } /// Purposefully empty, may be populated in the future. #[allow(clippy::derive_partial_eq_without_eq)] @@ -2977,6 +3028,9 @@ pub struct WorkflowAttributes { pub workflow: ::prost::alloc::string::String, #[prost(message, optional, tag="4")] pub matching_attributes: ::core::option::Option, + /// Optional, org key applied to the attributes. + #[prost(string, tag="5")] + pub org: ::prost::alloc::string::String, } /// Sets custom attributes for a project, domain and workflow combination. /// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -3012,6 +3066,9 @@ pub struct WorkflowAttributesGetRequest { /// +required #[prost(enumeration="MatchableResource", tag="4")] pub resource_type: i32, + /// Optional, org key applied to the attributes. + #[prost(string, tag="5")] + pub org: ::prost::alloc::string::String, } /// Response to get an individual workflow attribute override. #[allow(clippy::derive_partial_eq_without_eq)] @@ -3041,6 +3098,9 @@ pub struct WorkflowAttributesDeleteRequest { /// +required #[prost(enumeration="MatchableResource", tag="4")] pub resource_type: i32, + /// Optional, org key applied to the attributes. + #[prost(string, tag="5")] + pub org: ::prost::alloc::string::String, } /// Purposefully empty, may be populated in the future. #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/flyteidl/gen/pb_rust/flyteidl.core.rs b/flyteidl/gen/pb_rust/flyteidl.core.rs index 75bb7f2f64..0566b94910 100644 --- a/flyteidl/gen/pb_rust/flyteidl.core.rs +++ b/flyteidl/gen/pb_rust/flyteidl.core.rs @@ -621,6 +621,9 @@ pub struct Identifier { /// Specific version of the resource. #[prost(string, tag="5")] pub version: ::prost::alloc::string::String, + /// Optional, org key applied to the resource. + #[prost(string, tag="6")] + pub org: ::prost::alloc::string::String, } /// Encapsulation of fields that uniquely identifies a Flyte workflow execution #[allow(clippy::derive_partial_eq_without_eq)] @@ -636,6 +639,9 @@ pub struct WorkflowExecutionIdentifier { /// User or system provided value for the resource. #[prost(string, tag="4")] pub name: ::prost::alloc::string::String, + /// Optional, org key applied to the resource. + #[prost(string, tag="5")] + pub org: ::prost::alloc::string::String, } /// Encapsulation of fields that identify a Flyte node execution entity. #[allow(clippy::derive_partial_eq_without_eq)] @@ -2320,7 +2326,7 @@ pub struct ArrayNode { #[prost(message, optional, boxed, tag="1")] pub node: ::core::option::Option<::prost::alloc::boxed::Box>, /// parallelism defines the minimum number of instances to bring up concurrently at any given - /// point. Note that this is an optimistic restriction and that, due to network partitioning or + /// point. Note that this is an optimistic restriction and that, due to network orging or /// other failures, the actual number of currently running instances might be more. This has to /// be a positive number if assigned. Default value is size. #[prost(uint32, tag="2")] diff --git a/flyteidl/go.mod b/flyteidl/go.mod index f410e79d6b..34466ad69e 100644 --- a/flyteidl/go.mod +++ b/flyteidl/go.mod @@ -2,6 +2,8 @@ module github.com/flyteorg/flyte/flyteidl go 1.21 +toolchain go1.21.3 + require ( github.com/antihax/optional v1.0.0 github.com/flyteorg/flyte/flytestdlib v0.0.0-00010101000000-000000000000 diff --git a/flyteidl/protos/flyteidl/admin/common.proto b/flyteidl/protos/flyteidl/admin/common.proto index 93bf9b0e03..755f94c8bd 100644 --- a/flyteidl/protos/flyteidl/admin/common.proto +++ b/flyteidl/protos/flyteidl/admin/common.proto @@ -22,6 +22,9 @@ message NamedEntityIdentifier { // The combination of project + domain + name uniquely identifies the resource. // +optional - in certain contexts - like 'List API', 'Launch plans' string name = 3; + + // Optional, org key applied to the resource. + string org = 4; } // The status of the named entity is used to control its visibility in the UI. @@ -102,6 +105,9 @@ message NamedEntityIdentifierListRequest { // Indicates a list of filters passed as string. // +optional string filters = 6; + + // Optional, org key applied to the resource. + string org = 7; } // Represents a request structure to list NamedEntity objects @@ -129,6 +135,9 @@ message NamedEntityListRequest { // +optional string filters = 7; + // Optional, org key applied to the resource. + string org = 8; + } // Represents a list of NamedEntityIdentifiers. diff --git a/flyteidl/protos/flyteidl/admin/execution.proto b/flyteidl/protos/flyteidl/admin/execution.proto index 7ddda0f233..f3dbad3fb3 100644 --- a/flyteidl/protos/flyteidl/admin/execution.proto +++ b/flyteidl/protos/flyteidl/admin/execution.proto @@ -39,6 +39,9 @@ message ExecutionCreateRequest { // included in this map. If not required and not provided, defaults apply. // +optional core.LiteralMap inputs = 5; + + // Optional, org key applied to the resource. + string org = 6; } // Request to relaunch the referenced execution. diff --git a/flyteidl/protos/flyteidl/admin/launch_plan.proto b/flyteidl/protos/flyteidl/admin/launch_plan.proto index 252d926c5d..a13429f751 100644 --- a/flyteidl/protos/flyteidl/admin/launch_plan.proto +++ b/flyteidl/protos/flyteidl/admin/launch_plan.proto @@ -193,7 +193,7 @@ message ActiveLaunchPlanRequest { NamedEntityIdentifier id = 1; } -// Represents a request structure to list active launch plans within a project/domain. +// Represents a request structure to list active launch plans within a project/domain and optional org. // See :ref:`ref_flyteidl.admin.LaunchPlan` for more details message ActiveLaunchPlanListRequest { // Name of the project that contains the identifiers. @@ -216,4 +216,7 @@ message ActiveLaunchPlanListRequest { // Sort ordering. // +optional Sort sort_by = 5; + + // Optional, org key applied to the resource. + string org = 6; } diff --git a/flyteidl/protos/flyteidl/admin/matchable_resource.proto b/flyteidl/protos/flyteidl/admin/matchable_resource.proto index bf93d0bd7e..692215b59d 100644 --- a/flyteidl/protos/flyteidl/admin/matchable_resource.proto +++ b/flyteidl/protos/flyteidl/admin/matchable_resource.proto @@ -154,8 +154,8 @@ message MatchingAttributes { } } -// Represents a custom set of attributes applied for either a domain; a domain and project; or -// domain, project and workflow name. +// Represents a custom set of attributes applied for either a domain (and optional org); a domain and project (and optional org); +// or domain, project and workflow name (and optional org). // These are used to override system level defaults for kubernetes cluster resource management, // default execution values, and more all across different levels of specificity. message MatchableAttributesConfiguration { @@ -168,6 +168,9 @@ message MatchableAttributesConfiguration { string workflow = 4; string launch_plan = 5; + + // Optional, org key applied to the resource. + string org = 6; } // Request all matching resource attributes for a resource type. diff --git a/flyteidl/protos/flyteidl/admin/project.proto b/flyteidl/protos/flyteidl/admin/project.proto index 761ae8da05..988ab927b1 100644 --- a/flyteidl/protos/flyteidl/admin/project.proto +++ b/flyteidl/protos/flyteidl/admin/project.proto @@ -16,11 +16,20 @@ message Domain { string name = 2; } +message ProjectIdentifier { + // Globally unique project name. + string id = 1; + + // Optional, org key applied to the resource. + string org = 2; +} + // Top-level namespace used to classify different entities like workflows and executions. message Project { + // Deprecated, use identifier instead. // Globally unique project name. - string id = 1; + string id = 1[deprecated = true]; // Display name. string name = 2; @@ -45,6 +54,9 @@ message Project { SYSTEM_GENERATED = 2; } ProjectState state = 6; + + // Optional, org key applied to the project. + ProjectIdentifier identifier = 7; } // Represents a list of projects. diff --git a/flyteidl/protos/flyteidl/admin/project_attributes.proto b/flyteidl/protos/flyteidl/admin/project_attributes.proto index e61515b0c7..2656ab25f5 100644 --- a/flyteidl/protos/flyteidl/admin/project_attributes.proto +++ b/flyteidl/protos/flyteidl/admin/project_attributes.proto @@ -12,6 +12,9 @@ message ProjectAttributes { string project = 1; MatchingAttributes matching_attributes = 2; + + // Optional, org key applied to the project. + string org = 3; } // Sets custom attributes for a project @@ -35,6 +38,9 @@ message ProjectAttributesGetRequest { // Which type of matchable attributes to return. // +required MatchableResource resource_type = 2; + + // Optional, org key applied to the project. + string org = 3; } // Response to get an individual project level attribute override. @@ -53,6 +59,9 @@ message ProjectAttributesDeleteRequest { // Which type of matchable attributes to delete. // +required MatchableResource resource_type = 2; + + // Optional, org key applied to the project. + string org = 3; } // Purposefully empty, may be populated in the future. diff --git a/flyteidl/protos/flyteidl/admin/project_domain_attributes.proto b/flyteidl/protos/flyteidl/admin/project_domain_attributes.proto index d25ea92324..b493ae1178 100644 --- a/flyteidl/protos/flyteidl/admin/project_domain_attributes.proto +++ b/flyteidl/protos/flyteidl/admin/project_domain_attributes.proto @@ -14,7 +14,10 @@ message ProjectDomainAttributes { // Unique domain id for which this set of attributes will be applied. string domain = 2; - MatchingAttributes matching_attributes = 3; + MatchingAttributes matching_attributes = 3; + + // Optional, org key applied to the attributes. + string org = 4; } // Sets custom attributes for a project-domain combination. @@ -42,6 +45,9 @@ message ProjectDomainAttributesGetRequest { // Which type of matchable attributes to return. // +required MatchableResource resource_type = 3; + + // Optional, org key applied to the attributes. + string org = 4; } // Response to get an individual project domain attribute override. @@ -64,6 +70,9 @@ message ProjectDomainAttributesDeleteRequest { // Which type of matchable attributes to delete. // +required MatchableResource resource_type = 3; + + // Optional, org key applied to the attributes. + string org = 4; } // Purposefully empty, may be populated in the future. diff --git a/flyteidl/protos/flyteidl/admin/workflow_attributes.proto b/flyteidl/protos/flyteidl/admin/workflow_attributes.proto index fed42205a7..9767f00df7 100644 --- a/flyteidl/protos/flyteidl/admin/workflow_attributes.proto +++ b/flyteidl/protos/flyteidl/admin/workflow_attributes.proto @@ -18,6 +18,9 @@ message WorkflowAttributes { string workflow = 3; MatchingAttributes matching_attributes = 4; + + // Optional, org key applied to the attributes. + string org = 5; } // Sets custom attributes for a project, domain and workflow combination. @@ -48,6 +51,9 @@ message WorkflowAttributesGetRequest { // Which type of matchable attributes to return. // +required MatchableResource resource_type = 4; + + // Optional, org key applied to the attributes. + string org = 5; } // Response to get an individual workflow attribute override. @@ -73,6 +79,9 @@ message WorkflowAttributesDeleteRequest { // Which type of matchable attributes to delete. // +required MatchableResource resource_type = 4; + + // Optional, org key applied to the attributes. + string org = 5; } // Purposefully empty, may be populated in the future. diff --git a/flyteidl/protos/flyteidl/core/identifier.proto b/flyteidl/protos/flyteidl/core/identifier.proto index d50e836099..50bf22429c 100644 --- a/flyteidl/protos/flyteidl/core/identifier.proto +++ b/flyteidl/protos/flyteidl/core/identifier.proto @@ -33,6 +33,9 @@ message Identifier { // Specific version of the resource. string version = 5; + + // Optional, org key applied to the resource. + string org = 6; } // Encapsulation of fields that uniquely identifies a Flyte workflow execution @@ -46,6 +49,9 @@ message WorkflowExecutionIdentifier { // User or system provided value for the resource. string name = 4; + + // Optional, org key applied to the resource. + string org = 5; } // Encapsulation of fields that identify a Flyte node execution entity. diff --git a/flyteidl/protos/flyteidl/core/workflow.proto b/flyteidl/protos/flyteidl/core/workflow.proto index 8c74094b5b..976559286d 100644 --- a/flyteidl/protos/flyteidl/core/workflow.proto +++ b/flyteidl/protos/flyteidl/core/workflow.proto @@ -115,7 +115,7 @@ message ArrayNode { Node node = 1; // parallelism defines the minimum number of instances to bring up concurrently at any given - // point. Note that this is an optimistic restriction and that, due to network partitioning or + // point. Note that this is an optimistic restriction and that, due to network orging or // other failures, the actual number of currently running instances might be more. This has to // be a positive number if assigned. Default value is size. uint32 parallelism = 2; diff --git a/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto b/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto index 1ddac9fccf..46ef1c8560 100644 --- a/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto +++ b/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto @@ -289,6 +289,11 @@ message DatasetID { string domain = 3; // The domain (eg. environment) string version = 4; // Version of the data schema string UUID = 5; // UUID for the dataset (if set the above fields are optional) + // Optional, partition key applied to the dataset. + string partition = 6; + + // Optional, org key applied to the resource. + string org = 7; } /* @@ -386,6 +391,8 @@ message DatasetPropertyFilter { string name = 2; string domain = 3; string version = 4; + // Optional, partition key applied to the dataset. + string partition = 5; } } diff --git a/flyteidl/protos/flyteidl/service/admin.proto b/flyteidl/protos/flyteidl/service/admin.proto index 95ad07686f..20ad9bae2f 100644 --- a/flyteidl/protos/flyteidl/service/admin.proto +++ b/flyteidl/protos/flyteidl/service/admin.proto @@ -51,16 +51,22 @@ service AdminService { rpc GetTask (flyteidl.admin.ObjectGetRequest) returns (flyteidl.admin.Task) { option (google.api.http) = { get: "/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}" + additional_bindings { + get: "/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve an existing task definition." // }; } - // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. rpc ListTaskIds (flyteidl.admin.NamedEntityIdentifierListRequest) returns (flyteidl.admin.NamedEntityIdentifierList) { option (google.api.http) = { get: "/api/v1/task_ids/{project}/{domain}" + additional_bindings { + get: "/api/v1/tasks/org/{org}/{project}/{domain}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch existing task definition identifiers matching input filters." @@ -72,7 +78,13 @@ service AdminService { option (google.api.http) = { get: "/api/v1/tasks/{id.project}/{id.domain}/{id.name}" additional_bindings { - get: "/api/v1/tasks/{id.project}/{id.domain}" + get: "/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}", + } + additional_bindings { + get: "/api/v1/tasks/{id.project}/{id.domain}", + } + additional_bindings { + get: "/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}", } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { @@ -107,6 +119,9 @@ service AdminService { rpc GetWorkflow (flyteidl.admin.ObjectGetRequest) returns (flyteidl.admin.Workflow) { option (google.api.http) = { get: "/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}" + additional_bindings { + get: "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve an existing workflow definition." @@ -117,6 +132,9 @@ service AdminService { rpc ListWorkflowIds (flyteidl.admin.NamedEntityIdentifierListRequest) returns (flyteidl.admin.NamedEntityIdentifierList) { option (google.api.http) = { get: "/api/v1/workflow_ids/{project}/{domain}" + additional_bindings { + get: "/api/v1/workflows/org/{org}/{project}/{domain}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch an existing workflow definition identifiers matching input filters." @@ -128,7 +146,13 @@ service AdminService { option (google.api.http) = { get: "/api/v1/workflows/{id.project}/{id.domain}/{id.name}" additional_bindings { - get: "/api/v1/workflows/{id.project}/{id.domain}" + get: "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}", + } + additional_bindings { + get: "/api/v1/workflows/{id.project}/{id.domain}", + } + additional_bindings { + get: "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}", } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { @@ -163,6 +187,9 @@ service AdminService { rpc GetLaunchPlan (flyteidl.admin.ObjectGetRequest) returns (flyteidl.admin.LaunchPlan) { option (google.api.http) = { get: "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}" + additional_bindings { + get: "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve an existing launch plan definition." @@ -173,6 +200,9 @@ service AdminService { rpc GetActiveLaunchPlan (flyteidl.admin.ActiveLaunchPlanRequest) returns (flyteidl.admin.LaunchPlan) { option (google.api.http) = { get: "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}" + additional_bindings { + get: "/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve the active launch plan version specified by input request filters." @@ -193,6 +223,9 @@ service AdminService { rpc ListLaunchPlanIds (flyteidl.admin.NamedEntityIdentifierListRequest) returns (flyteidl.admin.NamedEntityIdentifierList) { option (google.api.http) = { get: "/api/v1/launch_plan_ids/{project}/{domain}" + additional_bindings { + get: "/api/v1/launch_plan_ids/org/{org}/{project}/{domain}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch existing launch plan definition identifiers matching input filters." @@ -203,9 +236,15 @@ service AdminService { rpc ListLaunchPlans (flyteidl.admin.ResourceListRequest) returns (flyteidl.admin.LaunchPlanList) { option (google.api.http) = { get: "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}" + additional_bindings { + get: "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}" + } additional_bindings { get: "/api/v1/launch_plans/{id.project}/{id.domain}" } + additional_bindings { + get: "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch existing launch plan definitions matching input filters." @@ -216,6 +255,9 @@ service AdminService { rpc UpdateLaunchPlan (flyteidl.admin.LaunchPlanUpdateRequest) returns (flyteidl.admin.LaunchPlanUpdateResponse) { option (google.api.http) = { put: "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}" + additional_bindings { + put: "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}" + } body: "*" }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { @@ -273,6 +315,9 @@ service AdminService { rpc GetExecution (flyteidl.admin.WorkflowExecutionGetRequest) returns (flyteidl.admin.Execution) { option (google.api.http) = { get: "/api/v1/executions/{id.project}/{id.domain}/{id.name}" + additional_bindings { + get: "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve an existing workflow execution." @@ -284,6 +329,10 @@ service AdminService { option (google.api.http) = { put: "/api/v1/executions/{id.project}/{id.domain}/{id.name}" body: "*" + additional_bindings { + put: "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Update execution belonging to project domain." @@ -294,6 +343,9 @@ service AdminService { rpc GetExecutionData (flyteidl.admin.WorkflowExecutionGetDataRequest) returns (flyteidl.admin.WorkflowExecutionGetDataResponse) { option (google.api.http) = { get: "/api/v1/data/executions/{id.project}/{id.domain}/{id.name}" + additional_bindings { + get: "/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve input and output data from an existing workflow execution." @@ -304,6 +356,9 @@ service AdminService { rpc ListExecutions (flyteidl.admin.ResourceListRequest) returns (flyteidl.admin.ExecutionList) { option (google.api.http) = { get: "/api/v1/executions/{id.project}/{id.domain}" + additional_bindings { + get: "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch existing workflow executions matching input filters." @@ -315,6 +370,10 @@ service AdminService { option (google.api.http) = { delete: "/api/v1/executions/{id.project}/{id.domain}/{id.name}" body: "*" + additional_bindings { + delete: "/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Terminate the active workflow execution specified in the request." @@ -325,6 +384,9 @@ service AdminService { rpc GetNodeExecution (flyteidl.admin.NodeExecutionGetRequest) returns (flyteidl.admin.NodeExecution) { option (google.api.http) = { get: "/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" + additional_bindings { + get: "/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve an existing node execution." @@ -335,6 +397,9 @@ service AdminService { rpc ListNodeExecutions (flyteidl.admin.NodeExecutionListRequest) returns (flyteidl.admin.NodeExecutionList) { option (google.api.http) = { get: "/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}" + additional_bindings { + get: "/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch existing node executions matching input filters." @@ -345,6 +410,9 @@ service AdminService { rpc ListNodeExecutionsForTask (flyteidl.admin.NodeExecutionForTaskListRequest) returns (flyteidl.admin.NodeExecutionList) { option (google.api.http) = { get: "/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}" + additional_bindings { + get: "/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch child node executions launched by the specified task execution." @@ -355,6 +423,9 @@ service AdminService { rpc GetNodeExecutionData (flyteidl.admin.NodeExecutionGetDataRequest) returns (flyteidl.admin.NodeExecutionGetDataResponse) { option (google.api.http) = { get: "/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" + additional_bindings { + get: "/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve input and output data from an existing node execution." @@ -372,20 +443,32 @@ service AdminService { // }; } - // Updates an existing :ref:`ref_flyteidl.admin.Project` + // Updates an existing :ref:`ref_flyteidl.admin.Project` // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. rpc UpdateProject (flyteidl.admin.Project) returns (flyteidl.admin.ProjectUpdateResponse) { option (google.api.http) = { put: "/api/v1/projects/{id}" body: "*" + additional_bindings { + put: "/api/v1/projects/{identifier.id}" + body: "*" + } + additional_bindings { + put: "/api/v1/projects/org/{identifier.org}/{id}" + body: "*" + } + additional_bindings { + put: "/api/v1/projects/org/{identifier.org}/{identifier.id}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Update a project." // }; } - // Fetches a list of :ref:`ref_flyteidl.admin.Project` + // Fetches a list of :ref:`ref_flyteidl.admin.Project` rpc ListProjects (flyteidl.admin.ProjectListRequest) returns (flyteidl.admin.Projects) { option (google.api.http) = { get: "/api/v1/projects" @@ -431,7 +514,10 @@ service AdminService { // Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. rpc GetTaskExecution (flyteidl.admin.TaskExecutionGetRequest) returns (flyteidl.admin.TaskExecution) { option (google.api.http) = { - get: "/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}" + get: "/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}" + additional_bindings { + get: "/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve an existing task execution." @@ -441,7 +527,10 @@ service AdminService { // Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. rpc ListTaskExecutions (flyteidl.admin.TaskExecutionListRequest) returns (flyteidl.admin.TaskExecutionList) { option (google.api.http) = { - get: "/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}" + get: "/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}" + additional_bindings { + get: "/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch existing task executions matching input filters." @@ -452,7 +541,10 @@ service AdminService { // Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. rpc GetTaskExecutionData (flyteidl.admin.TaskExecutionGetDataRequest) returns (flyteidl.admin.TaskExecutionGetDataResponse) { option (google.api.http) = { - get: "/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}" + get: "/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}" + additional_bindings { + get: "/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve input and output data from an existing task execution." @@ -464,6 +556,10 @@ service AdminService { option (google.api.http) = { put: "/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}" body: "*" + additional_bindings { + put: "/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Update the customized resource attributes associated with a project-domain combination" @@ -474,6 +570,9 @@ service AdminService { rpc GetProjectDomainAttributes (flyteidl.admin.ProjectDomainAttributesGetRequest) returns (flyteidl.admin.ProjectDomainAttributesGetResponse) { option (google.api.http) = { get: "/api/v1/project_domain_attributes/{project}/{domain}" + additional_bindings { + get: "/api/v1/project_domain_attributes/org/{org}/{project}/{domain}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve the customized resource attributes associated with a project-domain combination" @@ -485,6 +584,10 @@ service AdminService { option (google.api.http) = { delete: "/api/v1/project_domain_attributes/{project}/{domain}" body: "*" + additional_bindings { + delete: "/api/v1/project_domain_attributes/org/{org}/{project}/{domain}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Delete the customized resource attributes associated with a project-domain combination" @@ -496,6 +599,10 @@ service AdminService { option (google.api.http) = { put: "/api/v1/project_attributes/{attributes.project}" body: "*" + additional_bindings { + put: "/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Update the customized resource attributes associated with a project" @@ -506,6 +613,9 @@ service AdminService { rpc GetProjectAttributes (flyteidl.admin.ProjectAttributesGetRequest) returns (flyteidl.admin.ProjectAttributesGetResponse) { option (google.api.http) = { get: "/api/v1/project_attributes/{project}" + additional_bindings { + get: "/api/v1/project_domain_attributes/org/{org}/{project}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve the customized resource attributes associated with a project" @@ -517,6 +627,10 @@ service AdminService { option (google.api.http) = { delete: "/api/v1/project_attributes/{project}" body: "*" + additional_bindings { + delete: "/api/v1/project_domain_attributes/org/{org}/{project}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Delete the customized resource attributes associated with a project" @@ -527,6 +641,10 @@ service AdminService { option (google.api.http) = { put: "/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}" body: "*" + additional_bindings { + put: "/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Update the customized resource attributes associated with a project, domain and workflow combination" @@ -537,6 +655,9 @@ service AdminService { rpc GetWorkflowAttributes (flyteidl.admin.WorkflowAttributesGetRequest) returns (flyteidl.admin.WorkflowAttributesGetResponse) { option (google.api.http) = { get: "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" + additional_bindings { + get: "/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve the customized resource attributes associated with a project, domain and workflow combination" @@ -548,6 +669,10 @@ service AdminService { option (google.api.http) = { delete: "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" body: "*" + additional_bindings { + delete: "/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Delete the customized resource attributes associated with a project, domain and workflow combination" @@ -568,6 +693,9 @@ service AdminService { rpc ListNamedEntities (flyteidl.admin.NamedEntityListRequest) returns (flyteidl.admin.NamedEntityList) { option (google.api.http) = { get: "/api/v1/named_entities/{resource_type}/{project}/{domain}" + additional_bindings { + get: "/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain." @@ -578,6 +706,9 @@ service AdminService { rpc GetNamedEntity (flyteidl.admin.NamedEntityGetRequest) returns (flyteidl.admin.NamedEntity) { option (google.api.http) = { get: "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" + additional_bindings { + get: "/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve a NamedEntity object." @@ -589,6 +720,10 @@ service AdminService { option (google.api.http) = { put: "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" body: "*" + additional_bindings { + put: "/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Update the fields associated with a NamedEntity" @@ -596,18 +731,21 @@ service AdminService { } rpc GetVersion (flyteidl.admin.GetVersionRequest) returns (flyteidl.admin.GetVersionResponse) { - option (google.api.http) = { - get: "/api/v1/version" - }; - // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - // description: "Retrieve the Version (including the Build information) for FlyteAdmin service" - // }; + option (google.api.http) = { + get: "/api/v1/version" + }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve the Version (including the Build information) for FlyteAdmin service" + // }; } // Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. rpc GetDescriptionEntity (flyteidl.admin.ObjectGetRequest) returns (flyteidl.admin.DescriptionEntity) { option (google.api.http) = { get: "/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}" + additional_bindings { + get: "/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve an existing description entity description." @@ -618,9 +756,15 @@ service AdminService { rpc ListDescriptionEntities (flyteidl.admin.DescriptionEntityListRequest) returns (flyteidl.admin.DescriptionEntityList) { option (google.api.http) = { get: "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" + additional_bindings { + get: "/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}" + } additional_bindings { get: "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}" } + additional_bindings { + get: "/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch existing description entity definitions matching input filters." @@ -631,9 +775,12 @@ service AdminService { rpc GetExecutionMetrics (flyteidl.admin.WorkflowExecutionGetMetricsRequest) returns (flyteidl.admin.WorkflowExecutionGetMetricsResponse) { option (google.api.http) = { get: "/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}" + additional_bindings { + get: "/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve metrics from an existing workflow execution." // }; }; -} +} \ No newline at end of file diff --git a/flyteidl/protos/flyteidl/service/external_plugin_service.proto b/flyteidl/protos/flyteidl/service/external_plugin_service.proto index ce890cf8f2..a3035290e2 100644 --- a/flyteidl/protos/flyteidl/service/external_plugin_service.proto +++ b/flyteidl/protos/flyteidl/service/external_plugin_service.proto @@ -4,7 +4,6 @@ package flyteidl.service; option go_package = "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service"; import "flyteidl/core/literals.proto"; import "flyteidl/core/tasks.proto"; -import "flyteidl/core/interface.proto"; // ExternalPluginService defines an RPC Service that allows propeller to send the request to the backend plugin server. service ExternalPluginService { diff --git a/flyteplugins/go/tasks/pluginmachinery/catalog/async_client_impl_test.go b/flyteplugins/go/tasks/pluginmachinery/catalog/async_client_impl_test.go index 4b8e2efb37..03d2d99d73 100644 --- a/flyteplugins/go/tasks/pluginmachinery/catalog/async_client_impl_test.go +++ b/flyteplugins/go/tasks/pluginmachinery/catalog/async_client_impl_test.go @@ -110,8 +110,8 @@ func TestAsyncClientImpl_Download(t *testing.T) { func TestAsyncClientImpl_Upload(t *testing.T) { ctx := context.Background() - inputHash1 := "{UNSPECIFIED {} [] 0}:-0-DNhkpTTPC5YDtRGb4yT-PFxgMSgHzHrKAQKgQGEfGRY" - inputHash2 := "{UNSPECIFIED {} [] 0}:-1-26M4dwarvBVJqJSUC4JC1GtRYgVBIAmQfsFSdLVMlAc" + inputHash1 := "{UNSPECIFIED {} [] 0}:-0-DNhkpTTPC5YDtRGb4yT-PFxgMSgHzHrKAQKgQGEfGRY" + inputHash2 := "{UNSPECIFIED {} [] 0}:-1-26M4dwarvBVJqJSUC4JC1GtRYgVBIAmQfsFSdLVMlAc" q := &mocks.IndexedWorkQueue{} info := &mocks.WorkItemInfo{} diff --git a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go index 5c0ac0c30b..4ceb038ee0 100644 --- a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go +++ b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go @@ -4,6 +4,7 @@ import ( "context" "encoding/base64" "fmt" + "github.com/golang/protobuf/proto" "reflect" "strconv" "strings" @@ -138,6 +139,7 @@ func GenerateDatasetIDForTask(ctx context.Context, k catalog.Key) (*datacatalog. Domain: k.Identifier.Domain, Name: getDatasetNameFromTask(k.Identifier), Version: datasetVersion, + Org: k.Identifier.Org, } return datasetID, nil } @@ -157,6 +159,7 @@ const ( execProjectKey = "exec-project" execNodeIDKey = "exec-node" execTaskAttemptKey = "exec-attempt" + execOrgKey = "exec-rog" ) // Understanding Catalog Identifiers @@ -187,6 +190,7 @@ func GetArtifactMetadataForSource(taskExecutionID *core.TaskExecutionIdentifier) execNameKey: taskExecutionID.NodeExecutionId.GetExecutionId().GetName(), execNodeIDKey: taskExecutionID.NodeExecutionId.GetNodeId(), execTaskAttemptKey: strconv.Itoa(int(taskExecutionID.GetRetryAttempt())), + execOrgKey: taskExecutionID.GetNodeExecutionId().GetExecutionId().GetOrg(), }, } } @@ -209,14 +213,11 @@ func GetSourceFromMetadata(datasetMd, artifactMd *datacatalog.Metadata, currentI return nil, fmt.Errorf("failed to parse [%v] to integer. Error: %w", val, err) } + taskID := proto.Clone(¤tID).(*core.Identifier) + taskID.Version = GetOrDefault(datasetMd.KeyMap, taskVersionKey, "unknown") + return &core.TaskExecutionIdentifier{ - TaskId: &core.Identifier{ - ResourceType: currentID.ResourceType, - Project: currentID.Project, - Domain: currentID.Domain, - Name: currentID.Name, - Version: GetOrDefault(datasetMd.KeyMap, taskVersionKey, "unknown"), - }, + TaskId: taskID, RetryAttempt: uint32(attempt), NodeExecutionId: &core.NodeExecutionIdentifier{ NodeId: GetOrDefault(artifactMd.KeyMap, execNodeIDKey, "unknown"), @@ -224,6 +225,7 @@ func GetSourceFromMetadata(datasetMd, artifactMd *datacatalog.Metadata, currentI Project: GetOrDefault(artifactMd.KeyMap, execProjectKey, currentID.GetProject()), Domain: GetOrDefault(artifactMd.KeyMap, execDomainKey, currentID.GetDomain()), Name: GetOrDefault(artifactMd.KeyMap, execNameKey, "unknown"), + Org: GetOrDefault(artifactMd.KeyMap, execOrgKey, currentID.GetOrg()), }, }, }, nil diff --git a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer_test.go b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer_test.go index 1c6b9e2e1b..fe9034039a 100644 --- a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer_test.go +++ b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer_test.go @@ -178,6 +178,7 @@ func TestGetArtifactMetadataForSource(t *testing.T) { execDomainKey: tID.NodeExecutionId.ExecutionId.Domain, execNodeIDKey: tID.NodeExecutionId.NodeId, execNameKey: tID.NodeExecutionId.ExecutionId.Name, + execOrgKey: tID.NodeExecutionId.ExecutionId.Org, }}, } for _, tt := range tests { From 4a730790cee27c76ab3f3346bc53a96c2e01597a Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Tue, 2 Jan 2024 17:44:55 -0800 Subject: [PATCH 2/7] regen Signed-off-by: Katrina Rogan --- .../gen/pb-cpp/flyteidl/admin/project.pb.cc | 579 ++------- .../gen/pb-cpp/flyteidl/admin/project.pb.h | 392 ++---- .../gen/pb-cpp/flyteidl/service/admin.pb.cc | 375 +++--- .../gen/pb-go/flyteidl/admin/project.pb.go | 147 +-- .../gen/pb-go/flyteidl/service/admin.pb.go | 333 +++-- .../gen/pb-go/flyteidl/service/admin.pb.gw.go | 38 +- .../pb-go/flyteidl/service/admin.swagger.json | 100 +- .../flyteidl/service/flyteadmin/README.md | 7 +- .../service/flyteadmin/api/swagger.yaml | 96 +- .../service/flyteadmin/api_admin_service.go | 194 +-- .../service/flyteadmin/model_admin_project.go | 4 +- .../model_admin_project_identifier.go | 17 - .../gen/pb-go/flyteidl/service/openapi.go | 4 +- .../flyteidl/admin/ProjectOuterClass.java | 1143 +++-------------- .../gen/pb-java/flyteidl/service/Admin.java | 373 +++--- flyteidl/gen/pb-js/flyteidl.d.ts | 66 +- flyteidl/gen/pb-js/flyteidl.js | 149 +-- .../pb_python/flyteidl/admin/project_pb2.py | 34 +- .../pb_python/flyteidl/admin/project_pb2.pyi | 16 +- .../pb_python/flyteidl/service/admin_pb2.py | 6 +- .../flyteidl/service/flyteadmin/README.md | 7 +- .../service/flyteadmin/flyteadmin/__init__.py | 1 - .../flyteadmin/api/admin_service_api.py | 274 +--- .../flyteadmin/flyteadmin/models/__init__.py | 1 - .../flyteadmin/models/admin_project.py | 39 +- .../models/admin_project_identifier.py | 145 --- .../test/test_admin_project_identifier.py | 40 - .../flyteadmin/test/test_admin_service_api.py | 14 - flyteidl/gen/pb_rust/flyteidl.admin.rs | 17 +- flyteidl/protos/flyteidl/admin/project.proto | 14 +- flyteidl/protos/flyteidl/service/admin.proto | 6 +- 31 files changed, 1035 insertions(+), 3596 deletions(-) delete mode 100644 flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_identifier.go delete mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_identifier.py delete mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_identifier.py diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc index 667fb6a497..b283c46bfb 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc @@ -19,18 +19,13 @@ extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Sort_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Labels_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fproject_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Domain_flyteidl_2fadmin_2fproject_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fproject_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fproject_2eproto ::google::protobuf::internal::SCCInfo<3> scc_info_Project_flyteidl_2fadmin_2fproject_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fproject_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_Project_flyteidl_2fadmin_2fproject_2eproto; namespace flyteidl { namespace admin { class DomainDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; } _Domain_default_instance_; -class ProjectIdentifierDefaultTypeInternal { - public: - ::google::protobuf::internal::ExplicitlyConstructed _instance; -} _ProjectIdentifier_default_instance_; class ProjectDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; @@ -71,20 +66,6 @@ static void InitDefaultsDomain_flyteidl_2fadmin_2fproject_2eproto() { ::google::protobuf::internal::SCCInfo<0> scc_info_Domain_flyteidl_2fadmin_2fproject_2eproto = {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsDomain_flyteidl_2fadmin_2fproject_2eproto}, {}}; -static void InitDefaultsProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::flyteidl::admin::_ProjectIdentifier_default_instance_; - new (ptr) ::flyteidl::admin::ProjectIdentifier(); - ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); - } - ::flyteidl::admin::ProjectIdentifier::InitAsDefaultInstance(); -} - -::google::protobuf::internal::SCCInfo<0> scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto}, {}}; - static void InitDefaultsProject_flyteidl_2fadmin_2fproject_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -96,11 +77,10 @@ static void InitDefaultsProject_flyteidl_2fadmin_2fproject_2eproto() { ::flyteidl::admin::Project::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<3> scc_info_Project_flyteidl_2fadmin_2fproject_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsProject_flyteidl_2fadmin_2fproject_2eproto}, { +::google::protobuf::internal::SCCInfo<2> scc_info_Project_flyteidl_2fadmin_2fproject_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsProject_flyteidl_2fadmin_2fproject_2eproto}, { &scc_info_Domain_flyteidl_2fadmin_2fproject_2eproto.base, - &scc_info_Labels_flyteidl_2fadmin_2fcommon_2eproto.base, - &scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto.base,}}; + &scc_info_Labels_flyteidl_2fadmin_2fcommon_2eproto.base,}}; static void InitDefaultsProjects_flyteidl_2fadmin_2fproject_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -177,7 +157,6 @@ ::google::protobuf::internal::SCCInfo<0> scc_info_ProjectUpdateResponse_flyteidl void InitDefaults_flyteidl_2fadmin_2fproject_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_Domain_flyteidl_2fadmin_2fproject_2eproto.base); - ::google::protobuf::internal::InitSCC(&scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_Project_flyteidl_2fadmin_2fproject_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_Projects_flyteidl_2fadmin_2fproject_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_ProjectListRequest_flyteidl_2fadmin_2fproject_2eproto.base); @@ -186,7 +165,7 @@ void InitDefaults_flyteidl_2fadmin_2fproject_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_ProjectUpdateResponse_flyteidl_2fadmin_2fproject_2eproto.base); } -::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fproject_2eproto[8]; +::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fproject_2eproto[7]; const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fadmin_2fproject_2eproto[1]; constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fadmin_2fproject_2eproto = nullptr; @@ -199,13 +178,6 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_2eproto: PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Domain, id_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Domain, name_), ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectIdentifier, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectIdentifier, id_), - PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectIdentifier, org_), - ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ @@ -216,7 +188,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_2eproto: PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, description_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, labels_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, state_), - PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, identifier_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Project, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::Projects, _internal_metadata_), ~0u, // no _extensions_ @@ -252,18 +224,16 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_2eproto: }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::Domain)}, - { 7, -1, sizeof(::flyteidl::admin::ProjectIdentifier)}, - { 14, -1, sizeof(::flyteidl::admin::Project)}, - { 26, -1, sizeof(::flyteidl::admin::Projects)}, - { 33, -1, sizeof(::flyteidl::admin::ProjectListRequest)}, - { 42, -1, sizeof(::flyteidl::admin::ProjectRegisterRequest)}, - { 48, -1, sizeof(::flyteidl::admin::ProjectRegisterResponse)}, - { 53, -1, sizeof(::flyteidl::admin::ProjectUpdateResponse)}, + { 7, -1, sizeof(::flyteidl::admin::Project)}, + { 19, -1, sizeof(::flyteidl::admin::Projects)}, + { 26, -1, sizeof(::flyteidl::admin::ProjectListRequest)}, + { 35, -1, sizeof(::flyteidl::admin::ProjectRegisterRequest)}, + { 41, -1, sizeof(::flyteidl::admin::ProjectRegisterResponse)}, + { 46, -1, sizeof(::flyteidl::admin::ProjectUpdateResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { reinterpret_cast(&::flyteidl::admin::_Domain_default_instance_), - reinterpret_cast(&::flyteidl::admin::_ProjectIdentifier_default_instance_), reinterpret_cast(&::flyteidl::admin::_Project_default_instance_), reinterpret_cast(&::flyteidl::admin::_Projects_default_instance_), reinterpret_cast(&::flyteidl::admin::_ProjectListRequest_default_instance_), @@ -275,37 +245,34 @@ static ::google::protobuf::Message const * const file_default_instances[] = { ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fadmin_2fproject_2eproto = { {}, AddDescriptors_flyteidl_2fadmin_2fproject_2eproto, "flyteidl/admin/project.proto", schemas, file_default_instances, TableStruct_flyteidl_2fadmin_2fproject_2eproto::offsets, - file_level_metadata_flyteidl_2fadmin_2fproject_2eproto, 8, file_level_enum_descriptors_flyteidl_2fadmin_2fproject_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fproject_2eproto, + file_level_metadata_flyteidl_2fadmin_2fproject_2eproto, 7, file_level_enum_descriptors_flyteidl_2fadmin_2fproject_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fproject_2eproto, }; const char descriptor_table_protodef_flyteidl_2fadmin_2fproject_2eproto[] = "\n\034flyteidl/admin/project.proto\022\016flyteidl" ".admin\032\033flyteidl/admin/common.proto\"\"\n\006D" - "omain\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\",\n\021Proje" - "ctIdentifier\022\n\n\002id\030\001 \001(\t\022\013\n\003org\030\002 \001(\t\"\271\002" - "\n\007Project\022\016\n\002id\030\001 \001(\tB\002\030\001\022\014\n\004name\030\002 \001(\t\022" - "\'\n\007domains\030\003 \003(\0132\026.flyteidl.admin.Domain" - "\022\023\n\013description\030\004 \001(\t\022&\n\006labels\030\005 \001(\0132\026." - "flyteidl.admin.Labels\0223\n\005state\030\006 \001(\0162$.f" - "lyteidl.admin.Project.ProjectState\0225\n\nid" - "entifier\030\007 \001(\0132!.flyteidl.admin.ProjectI" - "dentifier\">\n\014ProjectState\022\n\n\006ACTIVE\020\000\022\014\n" - "\010ARCHIVED\020\001\022\024\n\020SYSTEM_GENERATED\020\002\"D\n\010Pro" - "jects\022)\n\010projects\030\001 \003(\0132\027.flyteidl.admin" - ".Project\022\r\n\005token\030\002 \001(\t\"j\n\022ProjectListRe" - "quest\022\r\n\005limit\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\022\017\n\007f" - "ilters\030\003 \001(\t\022%\n\007sort_by\030\004 \001(\0132\024.flyteidl" - ".admin.Sort\"B\n\026ProjectRegisterRequest\022(\n" - "\007project\030\001 \001(\0132\027.flyteidl.admin.Project\"" - "\031\n\027ProjectRegisterResponse\"\027\n\025ProjectUpd" - "ateResponseB=Z;github.com/flyteorg/flyte" - "/flyteidl/gen/pb-go/flyteidl/adminb\006prot" - "o3" + "omain\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\"\213\002\n\007Proj" + "ect\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\'\n\007domains" + "\030\003 \003(\0132\026.flyteidl.admin.Domain\022\023\n\013descri" + "ption\030\004 \001(\t\022&\n\006labels\030\005 \001(\0132\026.flyteidl.a" + "dmin.Labels\0223\n\005state\030\006 \001(\0162$.flyteidl.ad" + "min.Project.ProjectState\022\013\n\003org\030\007 \001(\t\">\n" + "\014ProjectState\022\n\n\006ACTIVE\020\000\022\014\n\010ARCHIVED\020\001\022" + "\024\n\020SYSTEM_GENERATED\020\002\"D\n\010Projects\022)\n\010pro" + "jects\030\001 \003(\0132\027.flyteidl.admin.Project\022\r\n\005" + "token\030\002 \001(\t\"j\n\022ProjectListRequest\022\r\n\005lim" + "it\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\022\017\n\007filters\030\003 \001(\t" + "\022%\n\007sort_by\030\004 \001(\0132\024.flyteidl.admin.Sort\"" + "B\n\026ProjectRegisterRequest\022(\n\007project\030\001 \001" + "(\0132\027.flyteidl.admin.Project\"\031\n\027ProjectRe" + "gisterResponse\"\027\n\025ProjectUpdateResponseB" + "=Z;github.com/flyteorg/flyte/flyteidl/ge" + "n/pb-go/flyteidl/adminb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fproject_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fproject_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fproject_2eproto, - "flyteidl/admin/project.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_2eproto, 842, + "flyteidl/admin/project.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_2eproto, 750, }; void AddDescriptors_flyteidl_2fadmin_2fproject_2eproto() { @@ -714,398 +681,21 @@ ::google::protobuf::Metadata Domain::GetMetadata() const { } -// =================================================================== - -void ProjectIdentifier::InitAsDefaultInstance() { -} -class ProjectIdentifier::HasBitSetters { - public: -}; - -#if !defined(_MSC_VER) || _MSC_VER >= 1900 -const int ProjectIdentifier::kIdFieldNumber; -const int ProjectIdentifier::kOrgFieldNumber; -#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 - -ProjectIdentifier::ProjectIdentifier() - : ::google::protobuf::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:flyteidl.admin.ProjectIdentifier) -} -ProjectIdentifier::ProjectIdentifier(const ProjectIdentifier& from) - : ::google::protobuf::Message(), - _internal_metadata_(nullptr) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - if (from.id().size() > 0) { - id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_); - } - org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - if (from.org().size() > 0) { - org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); - } - // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectIdentifier) -} - -void ProjectIdentifier::SharedCtor() { - ::google::protobuf::internal::InitSCC( - &scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto.base); - id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} - -ProjectIdentifier::~ProjectIdentifier() { - // @@protoc_insertion_point(destructor:flyteidl.admin.ProjectIdentifier) - SharedDtor(); -} - -void ProjectIdentifier::SharedDtor() { - id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} - -void ProjectIdentifier::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const ProjectIdentifier& ProjectIdentifier::default_instance() { - ::google::protobuf::internal::InitSCC(&::scc_info_ProjectIdentifier_flyteidl_2fadmin_2fproject_2eproto.base); - return *internal_default_instance(); -} - - -void ProjectIdentifier::Clear() { -// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ProjectIdentifier) - ::google::protobuf::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - _internal_metadata_.Clear(); -} - -#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER -const char* ProjectIdentifier::_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) { - // string 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); - ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectIdentifier.id"); - object = msg->mutable_id(); - 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; - } - // string org = 2; - case 2: { - if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual; - ptr = ::google::protobuf::io::ReadSize(ptr, &size); - GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); - ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectIdentifier.org"); - object = msg->mutable_org(); - 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 ProjectIdentifier::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.ProjectIdentifier) - 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)) { - // string id = 1; - case 1: { - if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { - DO_(::google::protobuf::internal::WireFormatLite::ReadString( - input, this->mutable_id())); - DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->id().data(), static_cast(this->id().length()), - ::google::protobuf::internal::WireFormatLite::PARSE, - "flyteidl.admin.ProjectIdentifier.id")); - } else { - goto handle_unusual; - } - break; - } - - // string org = 2; - case 2: { - if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { - DO_(::google::protobuf::internal::WireFormatLite::ReadString( - input, this->mutable_org())); - DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->org().data(), static_cast(this->org().length()), - ::google::protobuf::internal::WireFormatLite::PARSE, - "flyteidl.admin.ProjectIdentifier.org")); - } 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.ProjectIdentifier) - return true; -failure: - // @@protoc_insertion_point(parse_failure:flyteidl.admin.ProjectIdentifier) - return false; -#undef DO_ -} -#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER - -void ProjectIdentifier::SerializeWithCachedSizes( - ::google::protobuf::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:flyteidl.admin.ProjectIdentifier) - ::google::protobuf::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // string id = 1; - if (this->id().size() > 0) { - ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->id().data(), static_cast(this->id().length()), - ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "flyteidl.admin.ProjectIdentifier.id"); - ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( - 1, this->id(), output); - } - - // string org = 2; - if (this->org().size() > 0) { - ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->org().data(), static_cast(this->org().length()), - ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "flyteidl.admin.ProjectIdentifier.org"); - ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( - 2, this->org(), output); - } - - if (_internal_metadata_.have_unknown_fields()) { - ::google::protobuf::internal::WireFormat::SerializeUnknownFields( - _internal_metadata_.unknown_fields(), output); - } - // @@protoc_insertion_point(serialize_end:flyteidl.admin.ProjectIdentifier) -} - -::google::protobuf::uint8* ProjectIdentifier::InternalSerializeWithCachedSizesToArray( - ::google::protobuf::uint8* target) const { - // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ProjectIdentifier) - ::google::protobuf::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // string id = 1; - if (this->id().size() > 0) { - ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->id().data(), static_cast(this->id().length()), - ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "flyteidl.admin.ProjectIdentifier.id"); - target = - ::google::protobuf::internal::WireFormatLite::WriteStringToArray( - 1, this->id(), target); - } - - // string org = 2; - if (this->org().size() > 0) { - ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->org().data(), static_cast(this->org().length()), - ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "flyteidl.admin.ProjectIdentifier.org"); - target = - ::google::protobuf::internal::WireFormatLite::WriteStringToArray( - 2, this->org(), 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.ProjectIdentifier) - return target; -} - -size_t ProjectIdentifier::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ProjectIdentifier) - 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 id = 1; - if (this->id().size() > 0) { - total_size += 1 + - ::google::protobuf::internal::WireFormatLite::StringSize( - this->id()); - } - - // string org = 2; - if (this->org().size() > 0) { - total_size += 1 + - ::google::protobuf::internal::WireFormatLite::StringSize( - this->org()); - } - - int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void ProjectIdentifier::MergeFrom(const ::google::protobuf::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ProjectIdentifier) - GOOGLE_DCHECK_NE(&from, this); - const ProjectIdentifier* source = - ::google::protobuf::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ProjectIdentifier) - ::google::protobuf::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ProjectIdentifier) - MergeFrom(*source); - } -} - -void ProjectIdentifier::MergeFrom(const ProjectIdentifier& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ProjectIdentifier) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::google::protobuf::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - if (from.id().size() > 0) { - - id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_); - } - if (from.org().size() > 0) { - - org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); - } -} - -void ProjectIdentifier::CopyFrom(const ::google::protobuf::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ProjectIdentifier) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void ProjectIdentifier::CopyFrom(const ProjectIdentifier& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ProjectIdentifier) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool ProjectIdentifier::IsInitialized() const { - return true; -} - -void ProjectIdentifier::Swap(ProjectIdentifier* other) { - if (other == this) return; - InternalSwap(other); -} -void ProjectIdentifier::InternalSwap(ProjectIdentifier* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} - -::google::protobuf::Metadata ProjectIdentifier::GetMetadata() const { - ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fproject_2eproto); - return ::file_level_metadata_flyteidl_2fadmin_2fproject_2eproto[kIndexInFileMessages]; -} - - // =================================================================== void Project::InitAsDefaultInstance() { ::flyteidl::admin::_Project_default_instance_._instance.get_mutable()->labels_ = const_cast< ::flyteidl::admin::Labels*>( ::flyteidl::admin::Labels::internal_default_instance()); - ::flyteidl::admin::_Project_default_instance_._instance.get_mutable()->identifier_ = const_cast< ::flyteidl::admin::ProjectIdentifier*>( - ::flyteidl::admin::ProjectIdentifier::internal_default_instance()); } class Project::HasBitSetters { public: static const ::flyteidl::admin::Labels& labels(const Project* msg); - static const ::flyteidl::admin::ProjectIdentifier& identifier(const Project* msg); }; const ::flyteidl::admin::Labels& Project::HasBitSetters::labels(const Project* msg) { return *msg->labels_; } -const ::flyteidl::admin::ProjectIdentifier& -Project::HasBitSetters::identifier(const Project* msg) { - return *msg->identifier_; -} void Project::clear_labels() { if (GetArenaNoVirtual() == nullptr && labels_ != nullptr) { delete labels_; @@ -1119,7 +709,7 @@ const int Project::kDomainsFieldNumber; const int Project::kDescriptionFieldNumber; const int Project::kLabelsFieldNumber; const int Project::kStateFieldNumber; -const int Project::kIdentifierFieldNumber; +const int Project::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 Project::Project() @@ -1144,16 +734,15 @@ Project::Project(const Project& from) if (from.description().size() > 0) { description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_labels()) { labels_ = new ::flyteidl::admin::Labels(*from.labels_); } else { labels_ = nullptr; } - if (from.has_identifier()) { - identifier_ = new ::flyteidl::admin::ProjectIdentifier(*from.identifier_); - } else { - identifier_ = nullptr; - } state_ = from.state_; // @@protoc_insertion_point(copy_constructor:flyteidl.admin.Project) } @@ -1164,6 +753,7 @@ void Project::SharedCtor() { id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); ::memset(&labels_, 0, static_cast( reinterpret_cast(&state_) - reinterpret_cast(&labels_)) + sizeof(state_)); @@ -1178,8 +768,8 @@ void Project::SharedDtor() { id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete labels_; - if (this != internal_default_instance()) delete identifier_; } void Project::SetCachedSize(int size) const { @@ -1201,14 +791,11 @@ void Project::Clear() { id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && labels_ != nullptr) { delete labels_; } labels_ = nullptr; - if (GetArenaNoVirtual() == nullptr && identifier_ != nullptr) { - delete identifier_; - } - identifier_ = nullptr; state_ = 0; _internal_metadata_.Clear(); } @@ -1226,7 +813,7 @@ const char* Project::_InternalParse(const char* begin, const char* end, void* ob ptr = ::google::protobuf::io::Parse32(ptr, &tag); GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); switch (tag >> 3) { - // string id = 1 [deprecated = true]; + // string id = 1; case 1: { if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; ptr = ::google::protobuf::io::ReadSize(ptr, &size); @@ -1311,17 +898,20 @@ const char* Project::_InternalParse(const char* begin, const char* end, void* ob GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); break; } - // .flyteidl.admin.ProjectIdentifier identifier = 7; + // string org = 7; case 7: { if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual; ptr = ::google::protobuf::io::ReadSize(ptr, &size); GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); - parser_till_end = ::flyteidl::admin::ProjectIdentifier::_InternalParse; - object = msg->mutable_identifier(); - if (size > end - ptr) goto len_delim_till_end; + ctx->extra_parse_data().SetFieldName("flyteidl.admin.Project.org"); + object = msg->mutable_org(); + 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; - GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( - {parser_till_end, object}, ptr - size, ptr)); break; } default: { @@ -1358,7 +948,7 @@ bool Project::MergePartialFromCodedStream( tag = p.first; if (!p.second) goto handle_unusual; switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // string id = 1 [deprecated = true]; + // string id = 1; case 1: { if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { DO_(::google::protobuf::internal::WireFormatLite::ReadString( @@ -1439,11 +1029,15 @@ bool Project::MergePartialFromCodedStream( break; } - // .flyteidl.admin.ProjectIdentifier identifier = 7; + // string org = 7; case 7: { if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) { - DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( - input, mutable_identifier())); + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.Project.org")); } else { goto handle_unusual; } @@ -1477,7 +1071,7 @@ void Project::SerializeWithCachedSizes( ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; - // string id = 1 [deprecated = true]; + // string id = 1; if (this->id().size() > 0) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->id().data(), static_cast(this->id().length()), @@ -1528,10 +1122,14 @@ void Project::SerializeWithCachedSizes( 6, this->state(), output); } - // .flyteidl.admin.ProjectIdentifier identifier = 7; - if (this->has_identifier()) { - ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( - 7, HasBitSetters::identifier(this), output); + // string org = 7; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.Project.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 7, this->org(), output); } if (_internal_metadata_.have_unknown_fields()) { @@ -1547,7 +1145,7 @@ ::google::protobuf::uint8* Project::InternalSerializeWithCachedSizesToArray( ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; - // string id = 1 [deprecated = true]; + // string id = 1; if (this->id().size() > 0) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->id().data(), static_cast(this->id().length()), @@ -1601,11 +1199,15 @@ ::google::protobuf::uint8* Project::InternalSerializeWithCachedSizesToArray( 6, this->state(), target); } - // .flyteidl.admin.ProjectIdentifier identifier = 7; - if (this->has_identifier()) { - target = ::google::protobuf::internal::WireFormatLite:: - InternalWriteMessageToArray( - 7, HasBitSetters::identifier(this), target); + // string org = 7; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.Project.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 7, this->org(), target); } if (_internal_metadata_.have_unknown_fields()) { @@ -1640,7 +1242,7 @@ size_t Project::ByteSizeLong() const { } } - // string id = 1 [deprecated = true]; + // string id = 1; if (this->id().size() > 0) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize( @@ -1661,18 +1263,18 @@ size_t Project::ByteSizeLong() const { this->description()); } - // .flyteidl.admin.Labels labels = 5; - if (this->has_labels()) { + // string org = 7; + if (this->org().size() > 0) { total_size += 1 + - ::google::protobuf::internal::WireFormatLite::MessageSize( - *labels_); + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); } - // .flyteidl.admin.ProjectIdentifier identifier = 7; - if (this->has_identifier()) { + // .flyteidl.admin.Labels labels = 5; + if (this->has_labels()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::MessageSize( - *identifier_); + *labels_); } // .flyteidl.admin.Project.ProjectState state = 6; @@ -1721,12 +1323,13 @@ void Project::MergeFrom(const Project& from) { description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_labels()) { mutable_labels()->::flyteidl::admin::Labels::MergeFrom(from.labels()); } - if (from.has_identifier()) { - mutable_identifier()->::flyteidl::admin::ProjectIdentifier::MergeFrom(from.identifier()); - } if (from.state() != 0) { set_state(from.state()); } @@ -1764,8 +1367,9 @@ void Project::InternalSwap(Project* other) { GetArenaNoVirtual()); description_.Swap(&other->description_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(labels_, other->labels_); - swap(identifier_, other->identifier_); swap(state_, other->state_); } @@ -3334,9 +2938,6 @@ namespace protobuf { template<> PROTOBUF_NOINLINE ::flyteidl::admin::Domain* Arena::CreateMaybeMessage< ::flyteidl::admin::Domain >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::admin::Domain >(arena); } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::ProjectIdentifier* Arena::CreateMaybeMessage< ::flyteidl::admin::ProjectIdentifier >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::ProjectIdentifier >(arena); -} template<> PROTOBUF_NOINLINE ::flyteidl::admin::Project* Arena::CreateMaybeMessage< ::flyteidl::admin::Project >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::admin::Project >(arena); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h index 22e211a4f0..4645e8bf9c 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h @@ -43,7 +43,7 @@ struct TableStruct_flyteidl_2fadmin_2fproject_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[8] + static const ::google::protobuf::internal::ParseTable schema[7] PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::FieldMetadata field_metadata[]; static const ::google::protobuf::internal::SerializationTable serialization_table[]; @@ -58,9 +58,6 @@ extern DomainDefaultTypeInternal _Domain_default_instance_; class Project; class ProjectDefaultTypeInternal; extern ProjectDefaultTypeInternal _Project_default_instance_; -class ProjectIdentifier; -class ProjectIdentifierDefaultTypeInternal; -extern ProjectIdentifierDefaultTypeInternal _ProjectIdentifier_default_instance_; class ProjectListRequest; class ProjectListRequestDefaultTypeInternal; extern ProjectListRequestDefaultTypeInternal _ProjectListRequest_default_instance_; @@ -82,7 +79,6 @@ namespace google { namespace protobuf { template<> ::flyteidl::admin::Domain* Arena::CreateMaybeMessage<::flyteidl::admin::Domain>(Arena*); template<> ::flyteidl::admin::Project* Arena::CreateMaybeMessage<::flyteidl::admin::Project>(Arena*); -template<> ::flyteidl::admin::ProjectIdentifier* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectIdentifier>(Arena*); template<> ::flyteidl::admin::ProjectListRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectListRequest>(Arena*); template<> ::flyteidl::admin::ProjectRegisterRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectRegisterRequest>(Arena*); template<> ::flyteidl::admin::ProjectRegisterResponse* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectRegisterResponse>(Arena*); @@ -252,141 +248,6 @@ class Domain final : }; // ------------------------------------------------------------------- -class ProjectIdentifier final : - public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ProjectIdentifier) */ { - public: - ProjectIdentifier(); - virtual ~ProjectIdentifier(); - - ProjectIdentifier(const ProjectIdentifier& from); - - inline ProjectIdentifier& operator=(const ProjectIdentifier& from) { - CopyFrom(from); - return *this; - } - #if LANG_CXX11 - ProjectIdentifier(ProjectIdentifier&& from) noexcept - : ProjectIdentifier() { - *this = ::std::move(from); - } - - inline ProjectIdentifier& operator=(ProjectIdentifier&& 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 ProjectIdentifier& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const ProjectIdentifier* internal_default_instance() { - return reinterpret_cast( - &_ProjectIdentifier_default_instance_); - } - static constexpr int kIndexInFileMessages = - 1; - - void Swap(ProjectIdentifier* other); - friend void swap(ProjectIdentifier& a, ProjectIdentifier& b) { - a.Swap(&b); - } - - // implements Message ---------------------------------------------- - - inline ProjectIdentifier* New() const final { - return CreateMaybeMessage(nullptr); - } - - ProjectIdentifier* 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 ProjectIdentifier& from); - void MergeFrom(const ProjectIdentifier& 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(ProjectIdentifier* 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 id = 1; - void clear_id(); - static const int kIdFieldNumber = 1; - const ::std::string& id() const; - void set_id(const ::std::string& value); - #if LANG_CXX11 - void set_id(::std::string&& value); - #endif - void set_id(const char* value); - void set_id(const char* value, size_t size); - ::std::string* mutable_id(); - ::std::string* release_id(); - void set_allocated_id(::std::string* id); - - // string org = 2; - void clear_org(); - static const int kOrgFieldNumber = 2; - const ::std::string& org() const; - void set_org(const ::std::string& value); - #if LANG_CXX11 - void set_org(::std::string&& value); - #endif - void set_org(const char* value); - void set_org(const char* value, size_t size); - ::std::string* mutable_org(); - ::std::string* release_org(); - void set_allocated_org(::std::string* org); - - // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectIdentifier) - private: - class HasBitSetters; - - ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; - ::google::protobuf::internal::ArenaStringPtr id_; - ::google::protobuf::internal::ArenaStringPtr org_; - mutable ::google::protobuf::internal::CachedSize _cached_size_; - friend struct ::TableStruct_flyteidl_2fadmin_2fproject_2eproto; -}; -// ------------------------------------------------------------------- - class Project final : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.Project) */ { public: @@ -425,7 +286,7 @@ class Project final : &_Project_default_instance_); } static constexpr int kIndexInFileMessages = - 2; + 1; void Swap(Project* other); friend void swap(Project& a, Project& b) { @@ -522,19 +383,19 @@ class Project final : const ::google::protobuf::RepeatedPtrField< ::flyteidl::admin::Domain >& domains() const; - // string id = 1 [deprecated = true]; - PROTOBUF_DEPRECATED void clear_id(); - PROTOBUF_DEPRECATED static const int kIdFieldNumber = 1; - PROTOBUF_DEPRECATED const ::std::string& id() const; - PROTOBUF_DEPRECATED void set_id(const ::std::string& value); + // string id = 1; + void clear_id(); + static const int kIdFieldNumber = 1; + const ::std::string& id() const; + void set_id(const ::std::string& value); #if LANG_CXX11 - PROTOBUF_DEPRECATED void set_id(::std::string&& value); + void set_id(::std::string&& value); #endif - PROTOBUF_DEPRECATED void set_id(const char* value); - PROTOBUF_DEPRECATED void set_id(const char* value, size_t size); - PROTOBUF_DEPRECATED ::std::string* mutable_id(); - PROTOBUF_DEPRECATED ::std::string* release_id(); - PROTOBUF_DEPRECATED void set_allocated_id(::std::string* id); + void set_id(const char* value); + void set_id(const char* value, size_t size); + ::std::string* mutable_id(); + ::std::string* release_id(); + void set_allocated_id(::std::string* id); // string name = 2; void clear_name(); @@ -564,6 +425,20 @@ class Project final : ::std::string* release_description(); void set_allocated_description(::std::string* description); + // string org = 7; + void clear_org(); + static const int kOrgFieldNumber = 7; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.Labels labels = 5; bool has_labels() const; void clear_labels(); @@ -573,15 +448,6 @@ class Project final : ::flyteidl::admin::Labels* mutable_labels(); void set_allocated_labels(::flyteidl::admin::Labels* labels); - // .flyteidl.admin.ProjectIdentifier identifier = 7; - bool has_identifier() const; - void clear_identifier(); - static const int kIdentifierFieldNumber = 7; - const ::flyteidl::admin::ProjectIdentifier& identifier() const; - ::flyteidl::admin::ProjectIdentifier* release_identifier(); - ::flyteidl::admin::ProjectIdentifier* mutable_identifier(); - void set_allocated_identifier(::flyteidl::admin::ProjectIdentifier* identifier); - // .flyteidl.admin.Project.ProjectState state = 6; void clear_state(); static const int kStateFieldNumber = 6; @@ -597,8 +463,8 @@ class Project final : ::google::protobuf::internal::ArenaStringPtr id_; ::google::protobuf::internal::ArenaStringPtr name_; ::google::protobuf::internal::ArenaStringPtr description_; + ::google::protobuf::internal::ArenaStringPtr org_; ::flyteidl::admin::Labels* labels_; - ::flyteidl::admin::ProjectIdentifier* identifier_; int state_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fproject_2eproto; @@ -643,7 +509,7 @@ class Projects final : &_Projects_default_instance_); } static constexpr int kIndexInFileMessages = - 3; + 2; void Swap(Projects* other); friend void swap(Projects& a, Projects& b) { @@ -776,7 +642,7 @@ class ProjectListRequest final : &_ProjectListRequest_default_instance_); } static constexpr int kIndexInFileMessages = - 4; + 3; void Swap(ProjectListRequest* other); friend void swap(ProjectListRequest& a, ProjectListRequest& b) { @@ -928,7 +794,7 @@ class ProjectRegisterRequest final : &_ProjectRegisterRequest_default_instance_); } static constexpr int kIndexInFileMessages = - 5; + 4; void Swap(ProjectRegisterRequest* other); friend void swap(ProjectRegisterRequest& a, ProjectRegisterRequest& b) { @@ -1043,7 +909,7 @@ class ProjectRegisterResponse final : &_ProjectRegisterResponse_default_instance_); } static constexpr int kIndexInFileMessages = - 6; + 5; void Swap(ProjectRegisterResponse* other); friend void swap(ProjectRegisterResponse& a, ProjectRegisterResponse& b) { @@ -1148,7 +1014,7 @@ class ProjectUpdateResponse final : &_ProjectUpdateResponse_default_instance_); } static constexpr int kIndexInFileMessages = - 7; + 6; void Swap(ProjectUpdateResponse* other); friend void swap(ProjectUpdateResponse& a, ProjectUpdateResponse& b) { @@ -1332,119 +1198,9 @@ inline void Domain::set_allocated_name(::std::string* name) { // ------------------------------------------------------------------- -// ProjectIdentifier - -// string id = 1; -inline void ProjectIdentifier::clear_id() { - id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline const ::std::string& ProjectIdentifier::id() const { - // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectIdentifier.id) - return id_.GetNoArena(); -} -inline void ProjectIdentifier::set_id(const ::std::string& value) { - - id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectIdentifier.id) -} -#if LANG_CXX11 -inline void ProjectIdentifier::set_id(::std::string&& value) { - - id_.SetNoArena( - &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); - // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectIdentifier.id) -} -#endif -inline void ProjectIdentifier::set_id(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectIdentifier.id) -} -inline void ProjectIdentifier::set_id(const char* value, size_t size) { - - id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), - ::std::string(reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectIdentifier.id) -} -inline ::std::string* ProjectIdentifier::mutable_id() { - - // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectIdentifier.id) - return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline ::std::string* ProjectIdentifier::release_id() { - // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectIdentifier.id) - - return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline void ProjectIdentifier::set_allocated_id(::std::string* id) { - if (id != nullptr) { - - } else { - - } - id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id); - // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectIdentifier.id) -} - -// string org = 2; -inline void ProjectIdentifier::clear_org() { - org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline const ::std::string& ProjectIdentifier::org() const { - // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectIdentifier.org) - return org_.GetNoArena(); -} -inline void ProjectIdentifier::set_org(const ::std::string& value) { - - org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectIdentifier.org) -} -#if LANG_CXX11 -inline void ProjectIdentifier::set_org(::std::string&& value) { - - org_.SetNoArena( - &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); - // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectIdentifier.org) -} -#endif -inline void ProjectIdentifier::set_org(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectIdentifier.org) -} -inline void ProjectIdentifier::set_org(const char* value, size_t size) { - - org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), - ::std::string(reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectIdentifier.org) -} -inline ::std::string* ProjectIdentifier::mutable_org() { - - // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectIdentifier.org) - return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline ::std::string* ProjectIdentifier::release_org() { - // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectIdentifier.org) - - return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline void ProjectIdentifier::set_allocated_org(::std::string* org) { - if (org != nullptr) { - - } else { - - } - org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); - // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectIdentifier.org) -} - -// ------------------------------------------------------------------- - // Project -// string id = 1 [deprecated = true]; +// string id = 1; inline void Project::clear_id() { id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } @@ -1692,55 +1448,57 @@ inline void Project::set_state(::flyteidl::admin::Project_ProjectState value) { // @@protoc_insertion_point(field_set:flyteidl.admin.Project.state) } -// .flyteidl.admin.ProjectIdentifier identifier = 7; -inline bool Project::has_identifier() const { - return this != internal_default_instance() && identifier_ != nullptr; +// string org = 7; +inline void Project::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } -inline void Project::clear_identifier() { - if (GetArenaNoVirtual() == nullptr && identifier_ != nullptr) { - delete identifier_; - } - identifier_ = nullptr; +inline const ::std::string& Project::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.Project.org) + return org_.GetNoArena(); } -inline const ::flyteidl::admin::ProjectIdentifier& Project::identifier() const { - const ::flyteidl::admin::ProjectIdentifier* p = identifier_; - // @@protoc_insertion_point(field_get:flyteidl.admin.Project.identifier) - return p != nullptr ? *p : *reinterpret_cast( - &::flyteidl::admin::_ProjectIdentifier_default_instance_); +inline void Project::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.Project.org) } -inline ::flyteidl::admin::ProjectIdentifier* Project::release_identifier() { - // @@protoc_insertion_point(field_release:flyteidl.admin.Project.identifier) +#if LANG_CXX11 +inline void Project::set_org(::std::string&& value) { - ::flyteidl::admin::ProjectIdentifier* temp = identifier_; - identifier_ = nullptr; - return temp; + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.Project.org) } -inline ::flyteidl::admin::ProjectIdentifier* Project::mutable_identifier() { +#endif +inline void Project::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); - if (identifier_ == nullptr) { - auto* p = CreateMaybeMessage<::flyteidl::admin::ProjectIdentifier>(GetArenaNoVirtual()); - identifier_ = p; - } - // @@protoc_insertion_point(field_mutable:flyteidl.admin.Project.identifier) - return identifier_; + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.Project.org) } -inline void Project::set_allocated_identifier(::flyteidl::admin::ProjectIdentifier* identifier) { - ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); - if (message_arena == nullptr) { - delete identifier_; - } - if (identifier) { - ::google::protobuf::Arena* submessage_arena = nullptr; - if (message_arena != submessage_arena) { - identifier = ::google::protobuf::internal::GetOwnedMessage( - message_arena, identifier, submessage_arena); - } +inline void Project::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.Project.org) +} +inline ::std::string* Project::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.Project.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* Project::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.Project.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void Project::set_allocated_org(::std::string* org) { + if (org != nullptr) { } else { } - identifier_ = identifier; - // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.Project.identifier) + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.Project.org) } // ------------------------------------------------------------------- @@ -2077,8 +1835,6 @@ inline void ProjectRegisterRequest::set_allocated_project(::flyteidl::admin::Pro // ------------------------------------------------------------------- -// ------------------------------------------------------------------- - // @@protoc_insertion_point(namespace_scope) diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc index 6a5fa9886f..3c831a1101 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc @@ -52,7 +52,7 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "admin/task_execution.proto\032\034flyteidl/adm" "in/version.proto\032\033flyteidl/admin/common." "proto\032\'flyteidl/admin/description_entity" - ".proto2\245r\n\014AdminService\022m\n\nCreateTask\022!." + ".proto2\371q\n\014AdminService\022m\n\nCreateTask\022!." "flyteidl.admin.TaskCreateRequest\032\".flyte" "idl.admin.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/a" "pi/v1/tasks:\001*\022\330\001\n\007GetTask\022 .flyteidl.ad" @@ -233,198 +233,197 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "on_id.name}/{id.node_id}\022\177\n\017RegisterProj" "ect\022&.flyteidl.admin.ProjectRegisterRequ" "est\032\'.flyteidl.admin.ProjectRegisterResp" - "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\207\002\n\rUp" + "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\333\001\n\rUp" "dateProject\022\027.flyteidl.admin.Project\032%.f" - "lyteidl.admin.ProjectUpdateResponse\"\265\001\202\323" - "\344\223\002\256\001\032\025/api/v1/projects/{id}:\001*Z%\032 /api/" - "v1/projects/{identifier.id}:\001*Z/\032*/api/v" - "1/projects/org/{identifier.org}/{id}:\001*Z" - ":\0325/api/v1/projects/org/{identifier.org}" - "/{identifier.id}:\001*\022f\n\014ListProjects\022\".fl" - "yteidl.admin.ProjectListRequest\032\030.flytei" - "dl.admin.Projects\"\030\202\323\344\223\002\022\022\020/api/v1/proje" - "cts\022\231\001\n\023CreateWorkflowEvent\022-.flyteidl.a" - "dmin.WorkflowExecutionEventRequest\032..fly" - "teidl.admin.WorkflowExecutionEventRespon" - "se\"#\202\323\344\223\002\035\"\030/api/v1/events/workflows:\001*\022" - "\211\001\n\017CreateNodeEvent\022).flyteidl.admin.Nod" - "eExecutionEventRequest\032*.flyteidl.admin." - "NodeExecutionEventResponse\"\037\202\323\344\223\002\031\"\024/api" - "/v1/events/nodes:\001*\022\211\001\n\017CreateTaskEvent\022" - ").flyteidl.admin.TaskExecutionEventReque" - "st\032*.flyteidl.admin.TaskExecutionEventRe" - "sponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/tasks:\001*\022" - "\313\005\n\020GetTaskExecution\022\'.flyteidl.admin.Ta" - "skExecutionGetRequest\032\035.flyteidl.admin.T" - "askExecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1/task_ex" - "ecutions/{id.node_execution_id.execution" - "_id.project}/{id.node_execution_id.execu" - "tion_id.domain}/{id.node_execution_id.ex" - "ecution_id.name}/{id.node_execution_id.n" - "ode_id}/{id.task_id.project}/{id.task_id" - ".domain}/{id.task_id.name}/{id.task_id.v" - "ersion}/{id.retry_attempt}Z\310\002\022\305\002/api/v1/" - "task_executions/org/{id.node_execution_i" - "d.execution_id.org}/{id.node_execution_i" - "d.execution_id.project}/{id.node_executi" - "on_id.execution_id.domain}/{id.node_exec" - "ution_id.execution_id.name}/{id.node_exe" - "cution_id.node_id}/{id.task_id.project}/" - "{id.task_id.domain}/{id.task_id.name}/{i" - "d.task_id.version}/{id.retry_attempt}\022\361\003" - "\n\022ListTaskExecutions\022(.flyteidl.admin.Ta" - "skExecutionListRequest\032!.flyteidl.admin." - "TaskExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/api/v1/ta" - "sk_executions/{node_execution_id.executi" - "on_id.project}/{node_execution_id.execut" - "ion_id.domain}/{node_execution_id.execut" - "ion_id.name}/{node_execution_id.node_id}" - "Z\326\001\022\323\001/api/v1/task_executions/org/{node_" - "execution_id.execution_id.org}/{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}\022\354\005\n\024GetTaskExecutionDa" - "ta\022+.flyteidl.admin.TaskExecutionGetData" - "Request\032,.flyteidl.admin.TaskExecutionGe" - "tDataResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v1/data/t" - "ask_executions/{id.node_execution_id.exe" - "cution_id.project}/{id.node_execution_id" - ".execution_id.domain}/{id.node_execution" - "_id.execution_id.name}/{id.node_executio" - "n_id.node_id}/{id.task_id.project}/{id.t" - "ask_id.domain}/{id.task_id.name}/{id.tas" - "k_id.version}/{id.retry_attempt}Z\315\002\022\312\002/a" - "pi/v1/data/task_executions/org/{id.node_" - "execution_id.execution_id.org}/{id.node_" - "execution_id.execution_id.project}/{id.n" - "ode_execution_id.execution_id.domain}/{i" - "d.node_execution_id.execution_id.name}/{" - "id.node_execution_id.node_id}/{id.task_i" - "d.project}/{id.task_id.domain}/{id.task_" - "id.name}/{id.task_id.version}/{id.retry_" - "attempt}\022\313\002\n\035UpdateProjectDomainAttribut" - "es\0224.flyteidl.admin.ProjectDomainAttribu" - "tesUpdateRequest\0325.flyteidl.admin.Projec" - "tDomainAttributesUpdateResponse\"\274\001\202\323\344\223\002\265" - "\001\032J/api/v1/project_domain_attributes/{at" - "tributes.project}/{attributes.domain}:\001*" - "Zd\032_/api/v1/project_domain_attributes/or" - "g/{attributes.org}/{attributes.project}/" - "{attributes.domain}:\001*\022\203\002\n\032GetProjectDom" - "ainAttributes\0221.flyteidl.admin.ProjectDo" - "mainAttributesGetRequest\0322.flyteidl.admi" - "n.ProjectDomainAttributesGetResponse\"~\202\323" - "\344\223\002x\0224/api/v1/project_domain_attributes/" - "{project}/{domain}Z@\022>/api/v1/project_do" - "main_attributes/org/{org}/{project}/{dom" - "ain}\022\223\002\n\035DeleteProjectDomainAttributes\0224" - ".flyteidl.admin.ProjectDomainAttributesD" - "eleteRequest\0325.flyteidl.admin.ProjectDom" - "ainAttributesDeleteResponse\"\204\001\202\323\344\223\002~*4/a" - "pi/v1/project_domain_attributes/{project" - "}/{domain}:\001*ZC*>/api/v1/project_domain_" - "attributes/org/{org}/{project}/{domain}:" - "\001*\022\212\002\n\027UpdateProjectAttributes\022..flyteid" - "l.admin.ProjectAttributesUpdateRequest\032/" - ".flyteidl.admin.ProjectAttributesUpdateR" - "esponse\"\215\001\202\323\344\223\002\206\001\032//api/v1/project_attri" - "butes/{attributes.project}:\001*ZP\032K/api/v1" - "/project_domain_attributes/org/{attribut" - "es.org}/{attributes.project}:\001*\022\330\001\n\024GetP" - "rojectAttributes\022+.flyteidl.admin.Projec" - "tAttributesGetRequest\032,.flyteidl.admin.P" - "rojectAttributesGetResponse\"e\202\323\344\223\002_\022$/ap" - "i/v1/project_attributes/{project}Z7\0225/ap" - "i/v1/project_domain_attributes/org/{org}" - "/{project}\022\347\001\n\027DeleteProjectAttributes\022." - ".flyteidl.admin.ProjectAttributesDeleteR" - "equest\032/.flyteidl.admin.ProjectAttribute" - "sDeleteResponse\"k\202\323\344\223\002e*$/api/v1/project" - "_attributes/{project}:\001*Z:*5/api/v1/proj" - "ect_domain_attributes/org/{org}/{project" - "}:\001*\022\334\002\n\030UpdateWorkflowAttributes\022/.flyt" - "eidl.admin.WorkflowAttributesUpdateReque" - "st\0320.flyteidl.admin.WorkflowAttributesUp" - "dateResponse\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/workflow" - "_attributes/{attributes.project}/{attrib" - "utes.domain}/{attributes.workflow}:\001*Zt\032" - "o/api/v1/workflow_attributes/org/{attrib" - "utes.org}/{attributes.project}/{attribut" - "es.domain}/{attributes.workflow}:\001*\022\200\002\n\025" - "GetWorkflowAttributes\022,.flyteidl.admin.W" - "orkflowAttributesGetRequest\032-.flyteidl.a" - "dmin.WorkflowAttributesGetResponse\"\211\001\202\323\344" - "\223\002\202\001\0229/api/v1/workflow_attributes/{proje" - "ct}/{domain}/{workflow}ZE\022C/api/v1/workf" - "low_attributes/org/{org}/{project}/{doma" - "in}/{workflow}\022\217\002\n\030DeleteWorkflowAttribu" - "tes\022/.flyteidl.admin.WorkflowAttributesD" - "eleteRequest\0320.flyteidl.admin.WorkflowAt" - "tributesDeleteResponse\"\217\001\202\323\344\223\002\210\001*9/api/v" - "1/workflow_attributes/{project}/{domain}" - "/{workflow}:\001*ZH*C/api/v1/workflow_attri" - "butes/org/{org}/{project}/{domain}/{work" - "flow}:\001*\022\240\001\n\027ListMatchableAttributes\022..f" - "lyteidl.admin.ListMatchableAttributesReq" - "uest\032/.flyteidl.admin.ListMatchableAttri" - "butesResponse\"$\202\323\344\223\002\036\022\034/api/v1/matchable" - "_attributes\022\350\001\n\021ListNamedEntities\022&.flyt" - "eidl.admin.NamedEntityListRequest\032\037.flyt" - "eidl.admin.NamedEntityList\"\211\001\202\323\344\223\002\202\001\0229/a" - "pi/v1/named_entities/{resource_type}/{pr" - "oject}/{domain}ZE\022C/api/v1/named_entitie" - "s/{resource_type}/org/{org}/{project}/{d" - "omain}\022\203\002\n\016GetNamedEntity\022%.flyteidl.adm" - "in.NamedEntityGetRequest\032\033.flyteidl.admi" - "n.NamedEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1/named_e" - "ntities/{resource_type}/{id.project}/{id" - ".domain}/{id.name}ZX\022V/api/v1/named_enti" - "ties/{resource_type}/org/{id.org}/{id.pr" - "oject}/{id.domain}/{id.name}\022\235\002\n\021UpdateN" - "amedEntity\022(.flyteidl.admin.NamedEntityU" - "pdateRequest\032).flyteidl.admin.NamedEntit" - "yUpdateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/v1/named" - "_entities/{resource_type}/{id.project}/{" - "id.domain}/{id.name}:\001*Z[\032V/api/v1/named" - "_entities/{resource_type}/org/{id.org}/{" - "id.project}/{id.domain}/{id.name}:\001*\022l\n\n" - "GetVersion\022!.flyteidl.admin.GetVersionRe" - "quest\032\".flyteidl.admin.GetVersionRespons" - "e\"\027\202\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024GetDescri" - "ptionEntity\022 .flyteidl.admin.ObjectGetRe" - "quest\032!.flyteidl.admin.DescriptionEntity" - "\"\330\001\202\323\344\223\002\321\001\022_/api/v1/description_entities" - "/{id.resource_type}/{id.project}/{id.dom" - "ain}/{id.name}/{id.version}Zn\022l/api/v1/d" - "escription_entities/org/{id.org}/{id.res" - "ource_type}/{id.project}/{id.domain}/{id" - ".name}/{id.version}\022\310\003\n\027ListDescriptionE" - "ntities\022,.flyteidl.admin.DescriptionEnti" - "tyListRequest\032%.flyteidl.admin.Descripti" - "onEntityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/descript" - "ion_entities/{resource_type}/{id.project" - "}/{id.domain}/{id.name}Z^\022\\/api/v1/descr" - "iption_entities/{resource_type}/org/{id." - "org}/{id.project}/{id.domain}/{id.name}Z" - "G\022E/api/v1/description_entities/{resourc" - "e_type}/{id.project}/{id.domain}ZT\022R/api" - "/v1/description_entities/{resource_type}" - "/org/{id.org}/{id.project}/{id.domain}\022\225" - "\002\n\023GetExecutionMetrics\0222.flyteidl.admin." - "WorkflowExecutionGetMetricsRequest\0323.fly" - "teidl.admin.WorkflowExecutionGetMetricsR" - "esponse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metrics/execu" - "tions/{id.project}/{id.domain}/{id.name}" - "ZL\022J/api/v1/metrics/executions/org/{id.o" - "rg}/{id.project}/{id.domain}/{id.name}B\?" - "Z=github.com/flyteorg/flyte/flyteidl/gen" - "/pb-go/flyteidl/serviceb\006proto3" + "lyteidl.admin.ProjectUpdateResponse\"\211\001\202\323" + "\344\223\002\202\001\032\025/api/v1/projects/{id}:\001*Z\032\032\025/api/" + "v1/projects/{id}:\001*Z$\032\037/api/v1/projects/" + "org/{org}/{id}:\001*Z$\032\037/api/v1/projects/or" + "g/{org}/{id}:\001*\022f\n\014ListProjects\022\".flytei" + "dl.admin.ProjectListRequest\032\030.flyteidl.a" + "dmin.Projects\"\030\202\323\344\223\002\022\022\020/api/v1/projects\022" + "\231\001\n\023CreateWorkflowEvent\022-.flyteidl.admin" + ".WorkflowExecutionEventRequest\032..flyteid" + "l.admin.WorkflowExecutionEventResponse\"#" + "\202\323\344\223\002\035\"\030/api/v1/events/workflows:\001*\022\211\001\n\017" + "CreateNodeEvent\022).flyteidl.admin.NodeExe" + "cutionEventRequest\032*.flyteidl.admin.Node" + "ExecutionEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/" + "events/nodes:\001*\022\211\001\n\017CreateTaskEvent\022).fl" + "yteidl.admin.TaskExecutionEventRequest\032*" + ".flyteidl.admin.TaskExecutionEventRespon" + "se\"\037\202\323\344\223\002\031\"\024/api/v1/events/tasks:\001*\022\313\005\n\020" + "GetTaskExecution\022\'.flyteidl.admin.TaskEx" + "ecutionGetRequest\032\035.flyteidl.admin.TaskE" + "xecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1/task_execut" + "ions/{id.node_execution_id.execution_id." + "project}/{id.node_execution_id.execution" + "_id.domain}/{id.node_execution_id.execut" + "ion_id.name}/{id.node_execution_id.node_" + "id}/{id.task_id.project}/{id.task_id.dom" + "ain}/{id.task_id.name}/{id.task_id.versi" + "on}/{id.retry_attempt}Z\310\002\022\305\002/api/v1/task" + "_executions/org/{id.node_execution_id.ex" + "ecution_id.org}/{id.node_execution_id.ex" + "ecution_id.project}/{id.node_execution_i" + "d.execution_id.domain}/{id.node_executio" + "n_id.execution_id.name}/{id.node_executi" + "on_id.node_id}/{id.task_id.project}/{id." + "task_id.domain}/{id.task_id.name}/{id.ta" + "sk_id.version}/{id.retry_attempt}\022\361\003\n\022Li" + "stTaskExecutions\022(.flyteidl.admin.TaskEx" + "ecutionListRequest\032!.flyteidl.admin.Task" + "ExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/api/v1/task_e" + "xecutions/{node_execution_id.execution_i" + "d.project}/{node_execution_id.execution_" + "id.domain}/{node_execution_id.execution_" + "id.name}/{node_execution_id.node_id}Z\326\001\022" + "\323\001/api/v1/task_executions/org/{node_exec" + "ution_id.execution_id.org}/{node_executi" + "on_id.execution_id.project}/{node_execut" + "ion_id.execution_id.domain}/{node_execut" + "ion_id.execution_id.name}/{node_executio" + "n_id.node_id}\022\354\005\n\024GetTaskExecutionData\022+" + ".flyteidl.admin.TaskExecutionGetDataRequ" + "est\032,.flyteidl.admin.TaskExecutionGetDat" + "aResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v1/data/task_" + "executions/{id.node_execution_id.executi" + "on_id.project}/{id.node_execution_id.exe" + "cution_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}Z\315\002\022\312\002/api/v" + "1/data/task_executions/org/{id.node_exec" + "ution_id.execution_id.org}/{id.node_exec" + "ution_id.execution_id.project}/{id.node_" + "execution_id.execution_id.domain}/{id.no" + "de_execution_id.execution_id.name}/{id.n" + "ode_execution_id.node_id}/{id.task_id.pr" + "oject}/{id.task_id.domain}/{id.task_id.n" + "ame}/{id.task_id.version}/{id.retry_atte" + "mpt}\022\313\002\n\035UpdateProjectDomainAttributes\0224" + ".flyteidl.admin.ProjectDomainAttributesU" + "pdateRequest\0325.flyteidl.admin.ProjectDom" + "ainAttributesUpdateResponse\"\274\001\202\323\344\223\002\265\001\032J/" + "api/v1/project_domain_attributes/{attrib" + "utes.project}/{attributes.domain}:\001*Zd\032_" + "/api/v1/project_domain_attributes/org/{a" + "ttributes.org}/{attributes.project}/{att" + "ributes.domain}:\001*\022\203\002\n\032GetProjectDomainA" + "ttributes\0221.flyteidl.admin.ProjectDomain" + "AttributesGetRequest\0322.flyteidl.admin.Pr" + "ojectDomainAttributesGetResponse\"~\202\323\344\223\002x" + "\0224/api/v1/project_domain_attributes/{pro" + "ject}/{domain}Z@\022>/api/v1/project_domain" + "_attributes/org/{org}/{project}/{domain}" + "\022\223\002\n\035DeleteProjectDomainAttributes\0224.fly" + "teidl.admin.ProjectDomainAttributesDelet" + "eRequest\0325.flyteidl.admin.ProjectDomainA" + "ttributesDeleteResponse\"\204\001\202\323\344\223\002~*4/api/v" + "1/project_domain_attributes/{project}/{d" + "omain}:\001*ZC*>/api/v1/project_domain_attr" + "ibutes/org/{org}/{project}/{domain}:\001*\022\212" + "\002\n\027UpdateProjectAttributes\022..flyteidl.ad" + "min.ProjectAttributesUpdateRequest\032/.fly" + "teidl.admin.ProjectAttributesUpdateRespo" + "nse\"\215\001\202\323\344\223\002\206\001\032//api/v1/project_attribute" + "s/{attributes.project}:\001*ZP\032K/api/v1/pro" + "ject_domain_attributes/org/{attributes.o" + "rg}/{attributes.project}:\001*\022\330\001\n\024GetProje" + "ctAttributes\022+.flyteidl.admin.ProjectAtt" + "ributesGetRequest\032,.flyteidl.admin.Proje" + "ctAttributesGetResponse\"e\202\323\344\223\002_\022$/api/v1" + "/project_attributes/{project}Z7\0225/api/v1" + "/project_domain_attributes/org/{org}/{pr" + "oject}\022\347\001\n\027DeleteProjectAttributes\022..fly" + "teidl.admin.ProjectAttributesDeleteReque" + "st\032/.flyteidl.admin.ProjectAttributesDel" + "eteResponse\"k\202\323\344\223\002e*$/api/v1/project_att" + "ributes/{project}:\001*Z:*5/api/v1/project_" + "domain_attributes/org/{org}/{project}:\001*" + "\022\334\002\n\030UpdateWorkflowAttributes\022/.flyteidl" + ".admin.WorkflowAttributesUpdateRequest\0320" + ".flyteidl.admin.WorkflowAttributesUpdate" + "Response\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/workflow_att" + "ributes/{attributes.project}/{attributes" + ".domain}/{attributes.workflow}:\001*Zt\032o/ap" + "i/v1/workflow_attributes/org/{attributes" + ".org}/{attributes.project}/{attributes.d" + "omain}/{attributes.workflow}:\001*\022\200\002\n\025GetW" + "orkflowAttributes\022,.flyteidl.admin.Workf" + "lowAttributesGetRequest\032-.flyteidl.admin" + ".WorkflowAttributesGetResponse\"\211\001\202\323\344\223\002\202\001" + "\0229/api/v1/workflow_attributes/{project}/" + "{domain}/{workflow}ZE\022C/api/v1/workflow_" + "attributes/org/{org}/{project}/{domain}/" + "{workflow}\022\217\002\n\030DeleteWorkflowAttributes\022" + "/.flyteidl.admin.WorkflowAttributesDelet" + "eRequest\0320.flyteidl.admin.WorkflowAttrib" + "utesDeleteResponse\"\217\001\202\323\344\223\002\210\001*9/api/v1/wo" + "rkflow_attributes/{project}/{domain}/{wo" + "rkflow}:\001*ZH*C/api/v1/workflow_attribute" + "s/org/{org}/{project}/{domain}/{workflow" + "}:\001*\022\240\001\n\027ListMatchableAttributes\022..flyte" + "idl.admin.ListMatchableAttributesRequest" + "\032/.flyteidl.admin.ListMatchableAttribute" + "sResponse\"$\202\323\344\223\002\036\022\034/api/v1/matchable_att" + "ributes\022\350\001\n\021ListNamedEntities\022&.flyteidl" + ".admin.NamedEntityListRequest\032\037.flyteidl" + ".admin.NamedEntityList\"\211\001\202\323\344\223\002\202\001\0229/api/v" + "1/named_entities/{resource_type}/{projec" + "t}/{domain}ZE\022C/api/v1/named_entities/{r" + "esource_type}/org/{org}/{project}/{domai" + "n}\022\203\002\n\016GetNamedEntity\022%.flyteidl.admin.N" + "amedEntityGetRequest\032\033.flyteidl.admin.Na" + "medEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1/named_entit" + "ies/{resource_type}/{id.project}/{id.dom" + "ain}/{id.name}ZX\022V/api/v1/named_entities" + "/{resource_type}/org/{id.org}/{id.projec" + "t}/{id.domain}/{id.name}\022\235\002\n\021UpdateNamed" + "Entity\022(.flyteidl.admin.NamedEntityUpdat" + "eRequest\032).flyteidl.admin.NamedEntityUpd" + "ateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/v1/named_ent" + "ities/{resource_type}/{id.project}/{id.d" + "omain}/{id.name}:\001*Z[\032V/api/v1/named_ent" + "ities/{resource_type}/org/{id.org}/{id.p" + "roject}/{id.domain}/{id.name}:\001*\022l\n\nGetV" + "ersion\022!.flyteidl.admin.GetVersionReques" + "t\032\".flyteidl.admin.GetVersionResponse\"\027\202" + "\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024GetDescriptio" + "nEntity\022 .flyteidl.admin.ObjectGetReques" + "t\032!.flyteidl.admin.DescriptionEntity\"\330\001\202" + "\323\344\223\002\321\001\022_/api/v1/description_entities/{id" + ".resource_type}/{id.project}/{id.domain}" + "/{id.name}/{id.version}Zn\022l/api/v1/descr" + "iption_entities/org/{id.org}/{id.resourc" + "e_type}/{id.project}/{id.domain}/{id.nam" + "e}/{id.version}\022\310\003\n\027ListDescriptionEntit" + "ies\022,.flyteidl.admin.DescriptionEntityLi" + "stRequest\032%.flyteidl.admin.DescriptionEn" + "tityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/description_" + "entities/{resource_type}/{id.project}/{i" + "d.domain}/{id.name}Z^\022\\/api/v1/descripti" + "on_entities/{resource_type}/org/{id.org}" + "/{id.project}/{id.domain}/{id.name}ZG\022E/" + "api/v1/description_entities/{resource_ty" + "pe}/{id.project}/{id.domain}ZT\022R/api/v1/" + "description_entities/{resource_type}/org" + "/{id.org}/{id.project}/{id.domain}\022\225\002\n\023G" + "etExecutionMetrics\0222.flyteidl.admin.Work" + "flowExecutionGetMetricsRequest\0323.flyteid" + "l.admin.WorkflowExecutionGetMetricsRespo" + "nse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metrics/execution" + "s/{id.project}/{id.domain}/{id.name}ZL\022J" + "/api/v1/metrics/executions/org/{id.org}/" + "{id.project}/{id.domain}/{id.name}B\?Z=gi" + "thub.com/flyteorg/flyte/flyteidl/gen/pb-" + "go/flyteidl/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fadmin_2eproto = { false, InitDefaults_flyteidl_2fservice_2fadmin_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto, - "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 15311, + "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 15267, }; void AddDescriptors_flyteidl_2fservice_2fadmin_2eproto() { diff --git a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go index 9ca8d739de..eb2ba4fac2 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go @@ -49,7 +49,7 @@ func (x Project_ProjectState) String() string { } func (Project_ProjectState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{2, 0} + return fileDescriptor_2db065ce03bf106d, []int{1, 0} } // Namespace within a project commonly used to differentiate between different service instances. @@ -103,60 +103,11 @@ func (m *Domain) GetName() string { return "" } -type ProjectIdentifier struct { - // Globally unique project name. - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - // Optional, org key applied to the resource. - Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ProjectIdentifier) Reset() { *m = ProjectIdentifier{} } -func (m *ProjectIdentifier) String() string { return proto.CompactTextString(m) } -func (*ProjectIdentifier) ProtoMessage() {} -func (*ProjectIdentifier) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{1} -} - -func (m *ProjectIdentifier) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectIdentifier.Unmarshal(m, b) -} -func (m *ProjectIdentifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectIdentifier.Marshal(b, m, deterministic) -} -func (m *ProjectIdentifier) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectIdentifier.Merge(m, src) -} -func (m *ProjectIdentifier) XXX_Size() int { - return xxx_messageInfo_ProjectIdentifier.Size(m) -} -func (m *ProjectIdentifier) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectIdentifier.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectIdentifier proto.InternalMessageInfo - -func (m *ProjectIdentifier) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *ProjectIdentifier) GetOrg() string { - if m != nil { - return m.Org - } - return "" -} - // Top-level namespace used to classify different entities like workflows and executions. type Project struct { // Deprecated, use identifier instead. // Globally unique project name. - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Deprecated: Do not use. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Display name. Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Domains []*Domain `protobuf:"bytes,3,rep,name=domains,proto3" json:"domains,omitempty"` @@ -165,18 +116,18 @@ type Project struct { // tag projects with ownership information. Labels *Labels `protobuf:"bytes,5,opt,name=labels,proto3" json:"labels,omitempty"` State Project_ProjectState `protobuf:"varint,6,opt,name=state,proto3,enum=flyteidl.admin.Project_ProjectState" json:"state,omitempty"` - // Optional, org key applied to the project. - Identifier *ProjectIdentifier `protobuf:"bytes,7,opt,name=identifier,proto3" json:"identifier,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,7,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Project) Reset() { *m = Project{} } func (m *Project) String() string { return proto.CompactTextString(m) } func (*Project) ProtoMessage() {} func (*Project) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{2} + return fileDescriptor_2db065ce03bf106d, []int{1} } func (m *Project) XXX_Unmarshal(b []byte) error { @@ -197,7 +148,6 @@ func (m *Project) XXX_DiscardUnknown() { var xxx_messageInfo_Project proto.InternalMessageInfo -// Deprecated: Do not use. func (m *Project) GetId() string { if m != nil { return m.Id @@ -240,11 +190,11 @@ func (m *Project) GetState() Project_ProjectState { return Project_ACTIVE } -func (m *Project) GetIdentifier() *ProjectIdentifier { +func (m *Project) GetOrg() string { if m != nil { - return m.Identifier + return m.Org } - return nil + return "" } // Represents a list of projects. @@ -263,7 +213,7 @@ func (m *Projects) Reset() { *m = Projects{} } func (m *Projects) String() string { return proto.CompactTextString(m) } func (*Projects) ProtoMessage() {} func (*Projects) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{3} + return fileDescriptor_2db065ce03bf106d, []int{2} } func (m *Projects) XXX_Unmarshal(b []byte) error { @@ -324,7 +274,7 @@ func (m *ProjectListRequest) Reset() { *m = ProjectListRequest{} } func (m *ProjectListRequest) String() string { return proto.CompactTextString(m) } func (*ProjectListRequest) ProtoMessage() {} func (*ProjectListRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{4} + return fileDescriptor_2db065ce03bf106d, []int{3} } func (m *ProjectListRequest) XXX_Unmarshal(b []byte) error { @@ -387,7 +337,7 @@ func (m *ProjectRegisterRequest) Reset() { *m = ProjectRegisterRequest{} func (m *ProjectRegisterRequest) String() string { return proto.CompactTextString(m) } func (*ProjectRegisterRequest) ProtoMessage() {} func (*ProjectRegisterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{5} + return fileDescriptor_2db065ce03bf106d, []int{4} } func (m *ProjectRegisterRequest) XXX_Unmarshal(b []byte) error { @@ -426,7 +376,7 @@ func (m *ProjectRegisterResponse) Reset() { *m = ProjectRegisterResponse func (m *ProjectRegisterResponse) String() string { return proto.CompactTextString(m) } func (*ProjectRegisterResponse) ProtoMessage() {} func (*ProjectRegisterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{6} + return fileDescriptor_2db065ce03bf106d, []int{5} } func (m *ProjectRegisterResponse) XXX_Unmarshal(b []byte) error { @@ -458,7 +408,7 @@ func (m *ProjectUpdateResponse) Reset() { *m = ProjectUpdateResponse{} } func (m *ProjectUpdateResponse) String() string { return proto.CompactTextString(m) } func (*ProjectUpdateResponse) ProtoMessage() {} func (*ProjectUpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_2db065ce03bf106d, []int{7} + return fileDescriptor_2db065ce03bf106d, []int{6} } func (m *ProjectUpdateResponse) XXX_Unmarshal(b []byte) error { @@ -482,7 +432,6 @@ var xxx_messageInfo_ProjectUpdateResponse proto.InternalMessageInfo func init() { proto.RegisterEnum("flyteidl.admin.Project_ProjectState", Project_ProjectState_name, Project_ProjectState_value) proto.RegisterType((*Domain)(nil), "flyteidl.admin.Domain") - proto.RegisterType((*ProjectIdentifier)(nil), "flyteidl.admin.ProjectIdentifier") proto.RegisterType((*Project)(nil), "flyteidl.admin.Project") proto.RegisterType((*Projects)(nil), "flyteidl.admin.Projects") proto.RegisterType((*ProjectListRequest)(nil), "flyteidl.admin.ProjectListRequest") @@ -494,37 +443,35 @@ func init() { func init() { proto.RegisterFile("flyteidl/admin/project.proto", fileDescriptor_2db065ce03bf106d) } var fileDescriptor_2db065ce03bf106d = []byte{ - // 507 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x93, 0x5f, 0x6f, 0xd3, 0x3c, - 0x14, 0xc6, 0xdf, 0xa4, 0x6b, 0xd2, 0xf7, 0x74, 0x54, 0xc5, 0x2a, 0xab, 0xf9, 0x73, 0x51, 0x22, - 0x2e, 0x7a, 0xc1, 0x12, 0xe8, 0xc4, 0x0d, 0x08, 0xa4, 0x76, 0x8d, 0xa0, 0x62, 0x20, 0xe4, 0x76, - 0x93, 0xe0, 0x66, 0x6a, 0x1b, 0x37, 0x18, 0x92, 0x38, 0xd8, 0xde, 0x45, 0x3f, 0x02, 0xdf, 0x97, - 0x0f, 0x80, 0xe2, 0x38, 0x5d, 0xd7, 0xad, 0x5c, 0xc5, 0xf6, 0xf9, 0x9d, 0xe7, 0x3c, 0xc7, 0x27, - 0x86, 0x27, 0xab, 0x64, 0xad, 0x28, 0x8b, 0x92, 0x60, 0x1e, 0xa5, 0x2c, 0x0b, 0x72, 0xc1, 0x7f, - 0xd0, 0xa5, 0xf2, 0x73, 0xc1, 0x15, 0x47, 0xad, 0x2a, 0xea, 0xeb, 0xe8, 0xa3, 0xc7, 0x3b, 0xf4, - 0x92, 0xa7, 0x29, 0xcf, 0x4a, 0xd8, 0x7b, 0x0e, 0xce, 0x98, 0xa7, 0x73, 0x96, 0xa1, 0x16, 0xd8, - 0x2c, 0xc2, 0x56, 0xcf, 0xea, 0xff, 0x4f, 0x6c, 0x16, 0x21, 0x04, 0x07, 0xd9, 0x3c, 0xa5, 0xd8, - 0xd6, 0x27, 0x7a, 0xed, 0xbd, 0x82, 0xfb, 0x5f, 0xca, 0x5a, 0x93, 0x88, 0x66, 0x8a, 0xad, 0x18, - 0x15, 0xb7, 0x12, 0xdb, 0x50, 0xe3, 0x22, 0x36, 0x79, 0xc5, 0xd2, 0xfb, 0x63, 0x83, 0x6b, 0xf2, - 0x10, 0xba, 0xa6, 0x47, 0x36, 0xb6, 0xf6, 0x95, 0x42, 0x2f, 0xc0, 0x8d, 0xb4, 0x31, 0x89, 0x6b, - 0xbd, 0x5a, 0xbf, 0x39, 0x38, 0xf2, 0x6f, 0xf6, 0xe5, 0x97, 0xbe, 0x49, 0x85, 0xa1, 0x1e, 0x34, - 0x23, 0x2a, 0x97, 0x82, 0xe5, 0x8a, 0xf1, 0x0c, 0x1f, 0x68, 0xb1, 0xed, 0x23, 0xe4, 0x83, 0x93, - 0xcc, 0x17, 0x34, 0x91, 0xb8, 0xde, 0xb3, 0xee, 0x92, 0x3c, 0xd3, 0x51, 0x62, 0x28, 0xf4, 0x1a, - 0xea, 0x52, 0xcd, 0x15, 0xc5, 0x4e, 0xcf, 0xea, 0xb7, 0x06, 0xcf, 0x76, 0x71, 0xd3, 0x53, 0xf5, - 0x9d, 0x16, 0x2c, 0x29, 0x53, 0xd0, 0x10, 0x80, 0x6d, 0xee, 0x08, 0xbb, 0xba, 0xde, 0xd3, 0x3d, - 0x02, 0xd7, 0x97, 0x49, 0xb6, 0x92, 0xbc, 0x77, 0x70, 0xb8, 0xad, 0x8c, 0x00, 0x9c, 0xe1, 0xe9, - 0x6c, 0x72, 0x11, 0xb6, 0xff, 0x43, 0x87, 0xd0, 0x18, 0x92, 0xd3, 0x0f, 0x93, 0x8b, 0x70, 0xdc, - 0xb6, 0x50, 0x07, 0xda, 0xd3, 0xaf, 0xd3, 0x59, 0xf8, 0xe9, 0xf2, 0x7d, 0xf8, 0x39, 0x24, 0xc3, - 0x59, 0x38, 0x6e, 0xdb, 0xde, 0x39, 0x34, 0x4c, 0xbe, 0x44, 0x27, 0xd0, 0x30, 0x7f, 0x89, 0xc4, - 0x96, 0xbe, 0xcf, 0xee, 0x1e, 0x33, 0x64, 0x03, 0xa2, 0x0e, 0xd4, 0x15, 0xff, 0x49, 0x33, 0x33, - 0x98, 0x72, 0xe3, 0xfd, 0xb6, 0x00, 0x19, 0xf6, 0x8c, 0x49, 0x45, 0xe8, 0xaf, 0x2b, 0x2a, 0x55, - 0x01, 0x27, 0x2c, 0x65, 0x4a, 0xcf, 0xf6, 0x1e, 0x29, 0x37, 0x77, 0x4b, 0x20, 0x0c, 0xee, 0x8a, - 0x25, 0x8a, 0x8a, 0x62, 0xb8, 0xc5, 0x79, 0xb5, 0x45, 0xc7, 0xe0, 0x4a, 0x2e, 0xd4, 0xe5, 0x62, - 0xad, 0x07, 0xd8, 0x1c, 0x74, 0x76, 0x6d, 0x4e, 0xb9, 0x50, 0xc4, 0x29, 0xa0, 0xd1, 0xda, 0xfb, - 0x08, 0x47, 0x95, 0x6d, 0x1a, 0x33, 0xa9, 0xa8, 0xa8, 0xec, 0xbc, 0x04, 0xd7, 0xf4, 0xa1, 0x0d, - 0xfd, 0xa3, 0xdf, 0x8a, 0xf3, 0x1e, 0x42, 0xf7, 0x96, 0x98, 0xcc, 0x79, 0x26, 0xa9, 0xd7, 0x85, - 0x07, 0x26, 0x74, 0x9e, 0x47, 0xc5, 0x94, 0x4d, 0x60, 0xf4, 0xf6, 0xdb, 0x9b, 0x98, 0xa9, 0xef, - 0x57, 0x0b, 0x7f, 0xc9, 0xd3, 0x40, 0x57, 0xe0, 0x22, 0x2e, 0x17, 0xc1, 0xe6, 0xe1, 0xc5, 0x34, - 0x0b, 0xf2, 0xc5, 0x71, 0xcc, 0x83, 0x9b, 0x6f, 0x71, 0xe1, 0xe8, 0x57, 0x78, 0xf2, 0x37, 0x00, - 0x00, 0xff, 0xff, 0x5f, 0x55, 0xa8, 0x93, 0xd2, 0x03, 0x00, 0x00, + // 468 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xcd, 0x6e, 0xd3, 0x40, + 0x10, 0xc7, 0xb1, 0xd3, 0xd8, 0x61, 0x52, 0x22, 0x6b, 0x15, 0x9a, 0xe5, 0xe3, 0x60, 0x59, 0x1c, + 0x72, 0xa0, 0x36, 0xa4, 0x37, 0x10, 0x48, 0x69, 0x63, 0x41, 0x45, 0x41, 0x68, 0x93, 0x56, 0x82, + 0x4b, 0x65, 0xc7, 0x5b, 0xb3, 0x60, 0x7b, 0xcd, 0xee, 0xf6, 0x90, 0x47, 0xe0, 0xa9, 0x78, 0x35, + 0xe4, 0xf5, 0xba, 0x6a, 0x43, 0x41, 0x3d, 0x79, 0x3e, 0x7e, 0x9e, 0xf9, 0xcf, 0x8e, 0x06, 0x9e, + 0x5e, 0x14, 0x1b, 0x45, 0x59, 0x56, 0x44, 0x49, 0x56, 0xb2, 0x2a, 0xaa, 0x05, 0xff, 0x4e, 0xd7, + 0x2a, 0xac, 0x05, 0x57, 0x1c, 0x8d, 0xba, 0x6c, 0xa8, 0xb3, 0x8f, 0x9f, 0x6c, 0xd1, 0x6b, 0x5e, + 0x96, 0xbc, 0x6a, 0xe1, 0xe0, 0x39, 0x38, 0x0b, 0x5e, 0x26, 0xac, 0x42, 0x23, 0xb0, 0x59, 0x86, + 0x2d, 0xdf, 0x9a, 0xde, 0x27, 0x36, 0xcb, 0x10, 0x82, 0x9d, 0x2a, 0x29, 0x29, 0xb6, 0x75, 0x44, + 0xdb, 0xc1, 0x6f, 0x1b, 0xdc, 0xcf, 0x6d, 0xb3, 0xbb, 0xf0, 0xe8, 0x05, 0xb8, 0x99, 0xae, 0x2e, + 0x71, 0xcf, 0xef, 0x4d, 0x87, 0xb3, 0xbd, 0xf0, 0xa6, 0xb8, 0xb0, 0x6d, 0x4e, 0x3a, 0x0c, 0xf9, + 0x30, 0xcc, 0xa8, 0x5c, 0x0b, 0x56, 0x2b, 0xc6, 0x2b, 0xbc, 0xa3, 0x8b, 0x5d, 0x0f, 0xa1, 0x10, + 0x9c, 0x22, 0x49, 0x69, 0x21, 0x71, 0xdf, 0xb7, 0x6e, 0x2b, 0x79, 0xa2, 0xb3, 0xc4, 0x50, 0xe8, + 0x15, 0xf4, 0xa5, 0x4a, 0x14, 0xc5, 0x8e, 0x6f, 0x4d, 0x47, 0xb3, 0x67, 0xdb, 0xb8, 0x99, 0xa7, + 0xfb, 0x2e, 0x1b, 0x96, 0xb4, 0xbf, 0x20, 0x0f, 0x7a, 0x5c, 0xe4, 0xd8, 0xd5, 0x2a, 0x1a, 0x33, + 0x78, 0x0b, 0xbb, 0xd7, 0x41, 0x04, 0xe0, 0xcc, 0x8f, 0x56, 0xc7, 0x67, 0xb1, 0x77, 0x0f, 0xed, + 0xc2, 0x60, 0x4e, 0x8e, 0xde, 0x1f, 0x9f, 0xc5, 0x0b, 0xcf, 0x42, 0x63, 0xf0, 0x96, 0x5f, 0x96, + 0xab, 0xf8, 0xe3, 0xf9, 0xbb, 0xf8, 0x53, 0x4c, 0xe6, 0xab, 0x78, 0xe1, 0xd9, 0xc1, 0x29, 0x0c, + 0xcc, 0xff, 0x12, 0x1d, 0xc0, 0xc0, 0x6c, 0x4e, 0x62, 0x4b, 0x3f, 0xcf, 0xe4, 0x1f, 0xe2, 0xc8, + 0x15, 0x88, 0xc6, 0xd0, 0x57, 0xfc, 0x07, 0xad, 0xcc, 0x3b, 0xb7, 0x4e, 0xf0, 0xcb, 0x02, 0x64, + 0xd8, 0x13, 0x26, 0x15, 0xa1, 0x3f, 0x2f, 0xa9, 0x54, 0x0d, 0x5c, 0xb0, 0x92, 0x29, 0xbd, 0xa6, + 0x07, 0xa4, 0x75, 0x6e, 0x2f, 0x81, 0x30, 0xb8, 0x17, 0xac, 0x50, 0x54, 0x34, 0xbb, 0x6a, 0xe2, + 0x9d, 0x8b, 0xf6, 0xc1, 0x95, 0x5c, 0xa8, 0xf3, 0x74, 0xa3, 0xf7, 0x31, 0x9c, 0x8d, 0xb7, 0x65, + 0x2e, 0xb9, 0x50, 0xc4, 0x69, 0xa0, 0xc3, 0x4d, 0xf0, 0x01, 0xf6, 0x3a, 0xd9, 0x34, 0x67, 0x52, + 0x51, 0xd1, 0xc9, 0x79, 0x09, 0xae, 0x99, 0x43, 0x0b, 0xfa, 0xcf, 0xbc, 0x1d, 0x17, 0x3c, 0x82, + 0xc9, 0x5f, 0xc5, 0x64, 0xcd, 0x2b, 0x49, 0x83, 0x09, 0x3c, 0x34, 0xa9, 0xd3, 0x3a, 0x6b, 0x96, + 0x66, 0x12, 0x87, 0x6f, 0xbe, 0xbe, 0xce, 0x99, 0xfa, 0x76, 0x99, 0x86, 0x6b, 0x5e, 0x46, 0xba, + 0x03, 0x17, 0x79, 0x6b, 0x44, 0x57, 0xc7, 0x90, 0xd3, 0x2a, 0xaa, 0xd3, 0xfd, 0x9c, 0x47, 0x37, + 0xef, 0x23, 0x75, 0xf4, 0x65, 0x1c, 0xfc, 0x09, 0x00, 0x00, 0xff, 0xff, 0xb2, 0x1f, 0xe5, 0x14, + 0x66, 0x03, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go index 6a44e26214..f8aa255e01 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go @@ -29,173 +29,172 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("flyteidl/service/admin.proto", fileDescriptor_5cfa31da1d67295d) } var fileDescriptor_5cfa31da1d67295d = []byte{ - // 2654 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x6d, 0x8c, 0x15, 0x57, - 0xf9, 0xcf, 0x99, 0xa5, 0x7f, 0xfe, 0x9e, 0xf2, 0xb2, 0x3c, 0x05, 0x77, 0x19, 0x58, 0xa0, 0x43, - 0x61, 0xe1, 0x02, 0x77, 0xb6, 0x50, 0x5a, 0x4b, 0xac, 0x95, 0xb2, 0xf4, 0x4a, 0x0b, 0x14, 0x17, - 0xac, 0x7a, 0x6b, 0xbc, 0x99, 0xbd, 0xf7, 0xb0, 0x4c, 0xb9, 0xf7, 0xce, 0x75, 0x66, 0x76, 0x5b, - 0x42, 0xb6, 0x6a, 0x51, 0x4a, 0xdb, 0x2c, 0x98, 0x20, 0x24, 0x8d, 0x6d, 0x63, 0x4c, 0x48, 0x7c, - 0x8b, 0x1f, 0x4c, 0xea, 0x27, 0x3f, 0xf8, 0x85, 0xa4, 0xb1, 0x31, 0x69, 0x53, 0x5f, 0x9a, 0xc8, - 0x27, 0x43, 0x42, 0x13, 0x8d, 0x5a, 0xfd, 0xa0, 0x7e, 0xd0, 0x98, 0x39, 0x2f, 0xf3, 0x7e, 0xe6, - 0xe5, 0xee, 0x6e, 0xd3, 0x44, 0xbe, 0xed, 0xde, 0xe7, 0x77, 0x9e, 0xf3, 0x3c, 0xbf, 0xe7, 0xe5, - 0x9c, 0x33, 0x73, 0x06, 0xaf, 0x3f, 0xd9, 0x3e, 0xe3, 0x12, 0xb3, 0xd5, 0xd6, 0x1d, 0x62, 0xcf, - 0x98, 0x4d, 0xa2, 0x1b, 0xad, 0x8e, 0xd9, 0xad, 0xf6, 0x6c, 0xcb, 0xb5, 0x60, 0x50, 0x48, 0xab, - 0x5c, 0xaa, 0xae, 0x9f, 0xb2, 0xac, 0xa9, 0x36, 0xd1, 0x8d, 0x9e, 0xa9, 0x1b, 0xdd, 0xae, 0xe5, - 0x1a, 0xae, 0x69, 0x75, 0x1d, 0x86, 0x57, 0x03, 0x6d, 0x54, 0x8b, 0xde, 0xb3, 0xad, 0xa7, 0x49, - 0xd3, 0xe5, 0xd2, 0x6a, 0xba, 0xb4, 0xd1, 0xb2, 0x3a, 0x86, 0xd9, 0x6d, 0x18, 0xae, 0x6b, 0x9b, - 0x93, 0xd3, 0x2e, 0x11, 0xda, 0x46, 0x25, 0xf8, 0x04, 0x70, 0x6d, 0x0c, 0xe8, 0x1a, 0xce, 0x69, - 0x2e, 0x1a, 0x89, 0x89, 0x9e, 0xb1, 0xec, 0xd3, 0x27, 0xdb, 0xd6, 0x33, 0x5c, 0xbc, 0x4d, 0x22, - 0x4e, 0xce, 0xb1, 0x29, 0x86, 0x6c, 0x1b, 0xd3, 0xdd, 0xe6, 0xa9, 0x46, 0xaf, 0x6d, 0x70, 0xb2, - 0x54, 0x35, 0x86, 0x20, 0x33, 0xa4, 0x2b, 0x5c, 0xdf, 0x10, 0x97, 0x3d, 0x4b, 0x9a, 0xd3, 0x1e, - 0x73, 0x12, 0x57, 0x3b, 0x86, 0xdb, 0x3c, 0x65, 0x4c, 0xb6, 0x49, 0xc3, 0x26, 0x8e, 0x35, 0x6d, - 0x37, 0x09, 0x07, 0x6e, 0x8e, 0x01, 0xbb, 0x56, 0x8b, 0x34, 0xe2, 0xda, 0x36, 0xa7, 0xf0, 0x91, - 0x00, 0xc5, 0x63, 0x35, 0x43, 0x6c, 0x27, 0x90, 0xae, 0x8b, 0x49, 0x9b, 0x56, 0xa7, 0x23, 0xb5, - 0xb6, 0x45, 0x9c, 0xa6, 0x6d, 0xf6, 0x3c, 0xe5, 0x0d, 0xd2, 0x75, 0x4d, 0xf7, 0x0c, 0x03, 0xee, - 0xbe, 0x66, 0xe3, 0x65, 0xfb, 0x3d, 0xc8, 0x71, 0x96, 0x3e, 0xd0, 0xc1, 0xf8, 0x80, 0x4d, 0x0c, - 0x97, 0x9c, 0x30, 0x9c, 0xd3, 0x70, 0xb7, 0x9f, 0x11, 0x55, 0x96, 0x75, 0xde, 0xaf, 0x4c, 0x3e, - 0x41, 0xbe, 0x32, 0x4d, 0x1c, 0x57, 0xd5, 0xb2, 0x20, 0x4e, 0xcf, 0xea, 0x3a, 0x44, 0x1b, 0x7e, - 0xfe, 0xdd, 0x9b, 0x97, 0x15, 0xd0, 0x96, 0xd3, 0xac, 0x9c, 0xb9, 0x97, 0xfa, 0xeb, 0xec, 0x43, - 0x15, 0x78, 0x0f, 0xe1, 0xa5, 0x35, 0xe2, 0xd2, 0xc9, 0x36, 0xc5, 0x35, 0x3d, 0x31, 0xe9, 0x65, - 0x53, 0x8d, 0xb8, 0x62, 0xae, 0xd5, 0x69, 0x73, 0x69, 0xdf, 0x46, 0x54, 0xfd, 0x1c, 0x82, 0x87, - 0x22, 0xfa, 0xf5, 0xb3, 0x66, 0xab, 0xca, 0x53, 0x72, 0x96, 0xfe, 0xc3, 0xf2, 0x98, 0xfd, 0xdd, - 0x35, 0x3a, 0x84, 0xfd, 0xc5, 0x79, 0x9d, 0xad, 0x1f, 0x86, 0xc7, 0xa2, 0x0a, 0x2c, 0x7b, 0x8a, - 0x22, 0x2c, 0x7b, 0x6a, 0xb6, 0xac, 0x36, 0xb8, 0x8e, 0xf0, 0x9d, 0x87, 0x4d, 0x87, 0xfa, 0x76, - 0xa8, 0xe5, 0xc0, 0x58, 0xdc, 0xf8, 0xa3, 0x46, 0x87, 0xb4, 0x0e, 0xd2, 0x68, 0x1c, 0x6a, 0x79, - 0x51, 0x39, 0x69, 0x12, 0xdb, 0x1b, 0x21, 0xdc, 0xdd, 0x5e, 0x78, 0x84, 0xf6, 0x45, 0x4a, 0xc1, - 0x71, 0xd8, 0x1c, 0x76, 0xa0, 0x61, 0xb6, 0x1c, 0xfd, 0x6c, 0x60, 0x33, 0x37, 0xb8, 0xbe, 0x13, - 0x2a, 0x29, 0x7e, 0x32, 0x27, 0x13, 0x68, 0xf8, 0xbe, 0x82, 0x3f, 0x26, 0xfc, 0x70, 0x60, 0x73, - 0xdc, 0xa6, 0x09, 0x9e, 0xfe, 0x61, 0xc3, 0x87, 0xd3, 0xe2, 0x44, 0xed, 0xfc, 0x3d, 0x8b, 0xd5, - 0xaf, 0x11, 0x8c, 0x95, 0x8d, 0x55, 0xfd, 0xe1, 0x78, 0x7c, 0x4b, 0x86, 0xa7, 0xbe, 0x0d, 0xb6, - 0x16, 0x9b, 0xb4, 0xbe, 0x17, 0xf6, 0xf4, 0x31, 0x15, 0xcc, 0xe2, 0x15, 0x2c, 0xf3, 0x3f, 0xcf, - 0xbb, 0x14, 0x6c, 0x89, 0x33, 0x21, 0x24, 0xd1, 0x22, 0xda, 0x9a, 0x07, 0xe3, 0x85, 0xb4, 0x9e, - 0xb2, 0xf7, 0x71, 0x6d, 0x95, 0xb0, 0x4e, 0xb4, 0x43, 0x5a, 0x4c, 0xef, 0x23, 0x7c, 0x67, 0x8d, - 0xb8, 0xfe, 0xe4, 0xf9, 0x05, 0x35, 0x2c, 0x9b, 0x57, 0x7b, 0x95, 0x05, 0xea, 0x0a, 0x82, 0xfd, - 0x89, 0xb9, 0x4a, 0x17, 0xd6, 0x31, 0x38, 0x9a, 0x54, 0x32, 0xaf, 0xe2, 0x7a, 0x07, 0xe1, 0x95, - 0x5e, 0x42, 0x09, 0x7b, 0x17, 0xbd, 0xc0, 0x0c, 0x4a, 0xc7, 0x53, 0x30, 0x1a, 0x77, 0x44, 0x56, - 0x64, 0x63, 0x50, 0x95, 0xf8, 0x2c, 0x2b, 0xb4, 0x5f, 0x28, 0x78, 0x79, 0xd8, 0xa7, 0x82, 0xc5, - 0xb6, 0x5e, 0x16, 0x43, 0x6a, 0xf7, 0x1f, 0x59, 0x1c, 0x6f, 0x22, 0xb8, 0xaf, 0x9f, 0x38, 0xd6, - 0x0f, 0xa4, 0xc5, 0xbf, 0x6c, 0xe1, 0x85, 0x1a, 0x4e, 0xfe, 0xe4, 0xf5, 0x07, 0xe1, 0x81, 0x3e, - 0xa7, 0x84, 0xf3, 0x08, 0x0f, 0xb2, 0x92, 0x39, 0x4c, 0x57, 0xff, 0x63, 0x6d, 0xa3, 0x0b, 0xa3, - 0x71, 0x82, 0x02, 0x59, 0xb4, 0x0a, 0xb7, 0xe5, 0x03, 0x79, 0x1d, 0x6e, 0xa4, 0xa4, 0xae, 0xd5, - 0x56, 0x0b, 0x43, 0x43, 0x9b, 0x0d, 0x5a, 0x8a, 0x7f, 0x43, 0x78, 0x79, 0x8d, 0xb8, 0x21, 0x2b, - 0xf2, 0x8b, 0x51, 0x95, 0x4f, 0xaf, 0x7d, 0x8f, 0x85, 0xf1, 0x3b, 0x08, 0xc6, 0xd3, 0xa6, 0x2c, - 0x5d, 0x91, 0xc7, 0xe1, 0xb3, 0xa9, 0x7a, 0xe6, 0x55, 0x94, 0x7f, 0x47, 0xf8, 0xae, 0x1a, 0x71, - 0xf7, 0x37, 0x5d, 0x73, 0x26, 0x33, 0x00, 0x71, 0x44, 0x11, 0x06, 0xae, 0x32, 0x06, 0x2e, 0x21, - 0xf8, 0x94, 0xb0, 0xdc, 0xa0, 0x6a, 0x1a, 0x25, 0x89, 0xa8, 0x1f, 0x81, 0xc7, 0xb3, 0x34, 0x94, - 0xa4, 0x00, 0x5e, 0x45, 0x78, 0x8d, 0x57, 0x6a, 0x71, 0xa7, 0x1c, 0xd8, 0x91, 0xe7, 0x77, 0xb8, - 0x8c, 0x37, 0xc8, 0x7d, 0xa7, 0x85, 0x7c, 0x3f, 0x75, 0x3f, 0xd4, 0x55, 0x52, 0xbd, 0x4f, 0x76, - 0x95, 0x1b, 0x08, 0xaf, 0xf2, 0x14, 0x04, 0xea, 0x16, 0xbd, 0x57, 0x3e, 0x4d, 0x4d, 0x6d, 0x05, - 0x45, 0x1f, 0xb2, 0x51, 0xd6, 0x2e, 0xef, 0x0f, 0xfa, 0x53, 0x1c, 0x9d, 0xd9, 0x34, 0xdf, 0x56, - 0xd8, 0x42, 0x10, 0xe6, 0xbd, 0x50, 0xdb, 0xcc, 0xe3, 0xfb, 0x1f, 0x2c, 0xdf, 0xfe, 0x8a, 0x82, - 0x6e, 0x54, 0x36, 0xd1, 0x1e, 0x95, 0x14, 0x6b, 0xd9, 0xf6, 0xa9, 0xc3, 0xae, 0x52, 0x26, 0xd4, - 0x3f, 0x09, 0xfb, 0xfa, 0x9f, 0x18, 0xe6, 0x14, 0x3c, 0xf8, 0xb9, 0x5e, 0xab, 0x70, 0x13, 0x65, - 0xd8, 0x02, 0x4d, 0x54, 0x00, 0x79, 0x13, 0xbd, 0xc6, 0x18, 0x7e, 0x1d, 0xa9, 0x0b, 0xd2, 0xd3, - 0xf6, 0xa1, 0x4a, 0xfd, 0xb8, 0xba, 0x08, 0x6d, 0xed, 0xeb, 0x08, 0xaf, 0x64, 0xfd, 0xff, 0xa0, - 0x38, 0xa1, 0x41, 0x62, 0xc3, 0xe6, 0x8b, 0xa2, 0x4b, 0xca, 0x68, 0x2e, 0x8e, 0x93, 0x31, 0x42, - 0xb9, 0x18, 0xd2, 0x40, 0xd8, 0xef, 0x9f, 0x06, 0xe9, 0x7a, 0x72, 0x11, 0xe1, 0x55, 0x13, 0x84, - 0xf9, 0x14, 0x58, 0xb1, 0x4d, 0xaa, 0x5d, 0x60, 0x4b, 0xdb, 0xb1, 0x95, 0xda, 0xb1, 0x49, 0x5b, - 0x97, 0xb4, 0x43, 0xb7, 0xb9, 0x52, 0xcf, 0xa0, 0x97, 0x11, 0x1e, 0x9c, 0x20, 0x4d, 0x6b, 0x86, - 0xd8, 0x81, 0x3d, 0xa3, 0x19, 0xf6, 0x50, 0x68, 0x69, 0x73, 0xb6, 0x50, 0x73, 0x36, 0x6a, 0x6a, - 0xaa, 0x39, 0x54, 0xa7, 0x67, 0xcd, 0x0d, 0x84, 0x97, 0xd5, 0x88, 0x1b, 0x58, 0xb2, 0x43, 0xb6, - 0x29, 0xf2, 0x21, 0xa1, 0x85, 0x77, 0xad, 0xd4, 0x1a, 0xed, 0x1c, 0xcb, 0xd1, 0x59, 0xd8, 0x9b, - 0x62, 0x40, 0x81, 0xd2, 0x1d, 0x87, 0x47, 0x52, 0x06, 0x96, 0x5d, 0x62, 0xfe, 0x82, 0xf0, 0x4a, - 0x56, 0x3c, 0x45, 0x32, 0x30, 0x5a, 0x8f, 0xa3, 0xb9, 0x38, 0x4e, 0xf5, 0x4b, 0xcc, 0xd5, 0x73, - 0x48, 0xed, 0xcf, 0x57, 0xaf, 0xfe, 0x6a, 0xea, 0x02, 0xb8, 0xeb, 0x05, 0xf4, 0xbc, 0x82, 0x07, - 0xc3, 0x01, 0x1d, 0x37, 0x5c, 0x03, 0xf4, 0x22, 0x41, 0xf5, 0x90, 0xc2, 0xf7, 0xb1, 0xe2, 0x03, - 0x38, 0x09, 0x17, 0x19, 0x09, 0x2f, 0xa0, 0xa0, 0x83, 0xb6, 0x0c, 0xd7, 0x28, 0x19, 0xf5, 0x43, - 0x50, 0x93, 0x8d, 0x2e, 0x1b, 0xfa, 0xeb, 0x08, 0xaf, 0xf0, 0xd6, 0x23, 0xdf, 0xe2, 0x82, 0xcb, - 0xdb, 0x88, 0x34, 0xec, 0x74, 0x75, 0xb3, 0xa8, 0x9b, 0x26, 0xec, 0x28, 0x11, 0xea, 0xfa, 0x3e, - 0xf8, 0x44, 0xbf, 0xd1, 0x85, 0x7f, 0x23, 0x0c, 0x27, 0x88, 0xdd, 0x31, 0xbb, 0x91, 0x2c, 0xde, - 0x2e, 0x35, 0xd3, 0x07, 0x0b, 0x8f, 0x2a, 0x45, 0xa0, 0x3c, 0x8c, 0x97, 0x58, 0x18, 0x2f, 0xa0, - 0x4a, 0xff, 0xb9, 0x7c, 0xb8, 0xb2, 0x50, 0x41, 0xf4, 0x12, 0xfa, 0x0f, 0x2c, 0xa1, 0x8f, 0x5a, - 0x2d, 0x92, 0xd1, 0x2f, 0x23, 0xe2, 0x50, 0x87, 0x1a, 0xc9, 0x04, 0x6a, 0xdf, 0x54, 0xa8, 0xbb, - 0xff, 0x41, 0xd0, 0x15, 0x26, 0x47, 0x1f, 0x3b, 0x32, 0x9f, 0xfd, 0x7f, 0x1b, 0x71, 0x93, 0x23, - 0x92, 0xb0, 0xfd, 0x11, 0x41, 0xb0, 0x36, 0x52, 0xed, 0x66, 0x6b, 0xb6, 0xfe, 0x32, 0x82, 0x0b, - 0x48, 0x36, 0xa7, 0xa0, 0x29, 0xa2, 0xc4, 0xe7, 0x6c, 0xe1, 0xad, 0x81, 0x7f, 0x29, 0x18, 0xbc, - 0xf4, 0x8e, 0xb0, 0xe3, 0x24, 0x97, 0xc9, 0x88, 0x3c, 0x5c, 0x35, 0x77, 0xe7, 0x22, 0xb5, 0x2b, - 0x8c, 0xeb, 0x8b, 0x0a, 0x38, 0x52, 0xae, 0xfd, 0x67, 0x03, 0x12, 0x1f, 0xd3, 0xe5, 0xbe, 0xa7, - 0xe9, 0x62, 0xd6, 0x5a, 0xae, 0x22, 0xb8, 0x9c, 0x4d, 0x78, 0xfa, 0x68, 0x46, 0xfb, 0xe2, 0x19, - 0x06, 0x97, 0xfe, 0x1f, 0xaf, 0x4d, 0x72, 0xff, 0xa8, 0x65, 0xd3, 0x67, 0xbb, 0x7a, 0x26, 0xb1, - 0x1c, 0x55, 0x32, 0x12, 0xaf, 0x2d, 0xa5, 0x91, 0xb8, 0xba, 0x14, 0x7e, 0x30, 0x20, 0x18, 0x69, - 0x9e, 0x32, 0xdb, 0x2d, 0x9b, 0xc4, 0x9f, 0xa8, 0x3b, 0xfa, 0xd9, 0xe8, 0x0f, 0x0d, 0x91, 0x36, - 0x91, 0x5f, 0x24, 0xac, 0x94, 0x1e, 0xea, 0x13, 0x56, 0x7a, 0x24, 0x4f, 0xea, 0x22, 0xe3, 0x44, - 0xd6, 0xa7, 0xa1, 0xf9, 0xd3, 0xdf, 0x4c, 0x1f, 0x04, 0x26, 0xc3, 0x58, 0x01, 0x91, 0x5a, 0x25, - 0x00, 0x62, 0xaf, 0x9c, 0x86, 0xb1, 0x89, 0x6b, 0x9f, 0x69, 0x18, 0xae, 0x4b, 0x3a, 0x3d, 0x77, - 0xb6, 0x7e, 0x6b, 0x00, 0x6e, 0xe6, 0x87, 0x8b, 0x66, 0x72, 0x69, 0xf6, 0x58, 0x92, 0xdf, 0x8e, - 0xf4, 0x47, 0x22, 0xd2, 0x70, 0x6e, 0x00, 0xaf, 0x8e, 0x2f, 0x79, 0x74, 0x1f, 0xb7, 0x23, 0x6f, - 0xd9, 0x0b, 0xef, 0xe1, 0x76, 0x16, 0x03, 0x8b, 0x85, 0x9f, 0x75, 0xe7, 0x0b, 0xa1, 0xee, 0x4c, - 0x17, 0xef, 0x0f, 0x69, 0x39, 0xfc, 0x16, 0x82, 0x39, 0x94, 0x39, 0xf1, 0x87, 0xbe, 0x26, 0x7e, - 0x15, 0xaf, 0x9c, 0x20, 0x53, 0xa6, 0xe3, 0x12, 0xfb, 0x18, 0x53, 0x98, 0x3c, 0x3a, 0x70, 0x81, - 0xc0, 0x49, 0x8f, 0x0e, 0x09, 0x1c, 0x67, 0x7d, 0x1d, 0x25, 0x7d, 0x8d, 0x36, 0x28, 0x5c, 0xe7, - 0xa6, 0xd3, 0xa3, 0xeb, 0x0b, 0x0a, 0x5e, 0xce, 0x8e, 0x1a, 0x62, 0xfe, 0x21, 0x89, 0x5e, 0x75, - 0x8b, 0x44, 0x10, 0x3b, 0xa9, 0xbc, 0xc1, 0x76, 0x77, 0x3f, 0x41, 0xea, 0x9a, 0xf8, 0x84, 0x9e, - 0xef, 0x74, 0xf7, 0xb6, 0x45, 0xdd, 0x94, 0x26, 0x13, 0xcf, 0xa9, 0xaa, 0x1c, 0xa6, 0xab, 0x95, - 0x04, 0x8c, 0x87, 0xc8, 0x87, 0x8a, 0xe8, 0xd0, 0x01, 0xfb, 0x82, 0xd3, 0x51, 0xee, 0x80, 0xd8, - 0x64, 0x70, 0x12, 0x2f, 0xf3, 0x16, 0x2e, 0xee, 0x94, 0x03, 0x9a, 0xc4, 0xdd, 0xcc, 0x57, 0x69, - 0x62, 0xb4, 0x78, 0xa9, 0x0a, 0x09, 0xd2, 0xe1, 0x15, 0x84, 0xef, 0x8a, 0xbe, 0x87, 0x3a, 0x38, - 0x43, 0xba, 0x2e, 0xec, 0xca, 0x3d, 0x0e, 0x51, 0x9c, 0x98, 0xba, 0x5a, 0x14, 0xce, 0xc3, 0xb2, - 0x99, 0x1a, 0x34, 0xa2, 0x0d, 0xfb, 0x5b, 0x6e, 0x4f, 0xec, 0x44, 0xdf, 0x51, 0xbd, 0xe8, 0x3f, - 0x4c, 0xa1, 0x75, 0x4c, 0xed, 0xda, 0x9e, 0x59, 0xe2, 0x11, 0x9b, 0x2a, 0x45, 0xa0, 0xb2, 0x87, - 0xf4, 0xdc, 0x1e, 0xaf, 0x34, 0x62, 0xb6, 0x78, 0xbb, 0x0f, 0x89, 0x2d, 0x54, 0x54, 0xcc, 0x96, - 0x34, 0x68, 0x8e, 0x2d, 0xfe, 0x8b, 0xf0, 0xb7, 0xee, 0xa0, 0xe7, 0x83, 0x88, 0x8a, 0xe4, 0xf9, - 0x20, 0x22, 0xce, 0x3a, 0x1f, 0x44, 0x80, 0xda, 0x9f, 0x97, 0xd0, 0xe9, 0x6f, 0x2d, 0x81, 0x57, - 0x94, 0xc8, 0x0b, 0xe2, 0x58, 0x47, 0x2c, 0xbc, 0x4e, 0x96, 0x58, 0x18, 0x0b, 0xaf, 0x84, 0x39, - 0x4b, 0x5f, 0xea, 0x5a, 0x97, 0xb6, 0xb8, 0x25, 0x57, 0xb3, 0xd4, 0xe5, 0x2b, 0xb9, 0x33, 0x79, - 0x53, 0x81, 0xeb, 0x52, 0x7a, 0x44, 0xdf, 0x2e, 0xb4, 0x03, 0xf9, 0x5f, 0xa7, 0x12, 0x3e, 0x18, - 0x60, 0x07, 0xb1, 0x48, 0x1a, 0xa6, 0x1c, 0xc4, 0x22, 0xf2, 0xcc, 0xed, 0x7f, 0x02, 0xa9, 0xcd, - 0x0d, 0xd0, 0xa4, 0x3e, 0x3f, 0x00, 0x3f, 0x44, 0xd2, 0xa4, 0x2e, 0x1c, 0x86, 0xa2, 0x31, 0x28, - 0x16, 0x00, 0x39, 0xfb, 0xf5, 0xdf, 0x22, 0x78, 0x17, 0x65, 0x66, 0x59, 0xa1, 0x14, 0xfb, 0xc8, - 0x39, 0x06, 0x7f, 0xba, 0x83, 0x6e, 0xf7, 0x22, 0x81, 0x4a, 0xdf, 0xee, 0xc5, 0xbb, 0x58, 0xe6, - 0x76, 0x2f, 0x1d, 0xcc, 0xdb, 0xea, 0x3f, 0x59, 0x63, 0xfb, 0x60, 0x09, 0xbc, 0xae, 0x44, 0xb6, - 0x5d, 0xb7, 0xbb, 0x5b, 0xbc, 0xbb, 0xfd, 0x4a, 0x81, 0x5f, 0x66, 0x73, 0x74, 0xbb, 0xc5, 0x95, - 0x69, 0x71, 0x6f, 0x29, 0x78, 0x24, 0xb2, 0xad, 0x1d, 0xa7, 0x2a, 0xf7, 0xfb, 0xd7, 0x12, 0xe1, - 0x3e, 0xc9, 0xd6, 0x2d, 0x0e, 0x8c, 0x3e, 0xaf, 0xdf, 0x5b, 0x72, 0x14, 0xaf, 0x84, 0x9f, 0xb3, - 0x3d, 0xf1, 0x1b, 0x48, 0x7d, 0x2c, 0xb6, 0x1f, 0x4c, 0xde, 0xde, 0xd4, 0xcf, 0x46, 0x2f, 0x4f, - 0x72, 0x7a, 0x42, 0x3f, 0x72, 0x7a, 0xbc, 0x0d, 0x6f, 0x4b, 0x6d, 0xe4, 0x2b, 0xa4, 0xa9, 0x13, - 0x1a, 0xcf, 0x72, 0xa4, 0xf8, 0x2c, 0x70, 0x4e, 0xc1, 0x6a, 0x8d, 0xb8, 0x32, 0x2a, 0xef, 0x2d, - 0x48, 0x4a, 0x68, 0x4b, 0xb4, 0xbb, 0xcc, 0x10, 0x4e, 0xe2, 0x73, 0x94, 0xc3, 0x67, 0x83, 0x57, - 0xd1, 0x19, 0x14, 0x26, 0x5f, 0x61, 0x7f, 0x3a, 0xb8, 0x99, 0x90, 0xc3, 0x94, 0xec, 0x65, 0xf6, - 0x65, 0x05, 0x8f, 0x8c, 0x93, 0x36, 0x99, 0x7f, 0x4e, 0x31, 0x2d, 0x65, 0x73, 0x4a, 0x8c, 0xe2, - 0x74, 0x7c, 0x83, 0xe5, 0xd4, 0x73, 0x95, 0xbe, 0xf8, 0xf0, 0x92, 0xe7, 0x40, 0x65, 0x9e, 0x94, - 0x78, 0xb9, 0xf1, 0x92, 0x82, 0x87, 0x22, 0x95, 0x16, 0xe2, 0xa3, 0x2a, 0xf1, 0x4c, 0x56, 0x5d, - 0x7a, 0x61, 0x3c, 0xe7, 0x60, 0x8e, 0x71, 0x70, 0x1e, 0xa9, 0x7a, 0xdc, 0x93, 0x9c, 0x82, 0xf2, - 0xfc, 0x3f, 0xa6, 0x3e, 0xbe, 0x80, 0xc5, 0xc3, 0x2f, 0xcc, 0xae, 0x0e, 0x0a, 0x25, 0xc4, 0xc4, - 0x8e, 0x5c, 0xcf, 0x42, 0xc5, 0xb1, 0xb3, 0x18, 0x98, 0x73, 0x40, 0x28, 0x05, 0x0d, 0xb8, 0x27, - 0x8b, 0x01, 0x61, 0x64, 0xfd, 0x01, 0xd8, 0xdb, 0x57, 0xcc, 0xe1, 0x16, 0xc2, 0x43, 0x91, 0xec, - 0x2f, 0x15, 0xe7, 0x68, 0xc6, 0xeb, 0x85, 0xf1, 0xdc, 0xc7, 0xd3, 0xd4, 0x47, 0x52, 0x29, 0xe4, - 0x23, 0x7d, 0x10, 0x50, 0xe9, 0xcf, 0x4d, 0xfa, 0xba, 0x5a, 0xc1, 0xc3, 0x2c, 0xcf, 0xc4, 0x91, - 0x3a, 0xe4, 0xaa, 0xf4, 0x2d, 0xa7, 0x2c, 0xa7, 0xc7, 0x8a, 0x0f, 0xe0, 0xce, 0xde, 0x60, 0x49, - 0xfd, 0x1b, 0xa4, 0xd6, 0x13, 0xd7, 0x19, 0xfb, 0x58, 0x26, 0x22, 0xbf, 0x09, 0x45, 0x94, 0x24, - 0x57, 0xb5, 0xb2, 0x26, 0x98, 0xd7, 0xb2, 0x21, 0x9d, 0x15, 0xbe, 0xa6, 0xe0, 0x35, 0xa1, 0x7b, - 0xb0, 0x21, 0x6e, 0x77, 0xe6, 0x53, 0x15, 0xaa, 0x92, 0x5d, 0x05, 0xd1, 0x9c, 0xd5, 0x17, 0x19, - 0xab, 0xcf, 0x23, 0x78, 0x30, 0x93, 0xd5, 0x44, 0x93, 0x0b, 0x5e, 0xac, 0xcc, 0xd6, 0x0f, 0xc2, - 0x81, 0x5c, 0xc6, 0x24, 0xbd, 0x32, 0xa4, 0x06, 0x2e, 0x29, 0x78, 0x98, 0x65, 0x78, 0x7f, 0x19, - 0x16, 0xad, 0xa6, 0xb1, 0xe2, 0x03, 0x12, 0x2f, 0x60, 0xfb, 0xe7, 0xc2, 0x4b, 0xa0, 0xcf, 0x54, - 0x16, 0x82, 0x0e, 0x2f, 0x29, 0xbe, 0x8b, 0xf0, 0x90, 0x77, 0x6e, 0x3c, 0x22, 0x3e, 0xdc, 0xc8, - 0xea, 0x2e, 0x12, 0xa0, 0xb4, 0xbb, 0x48, 0xf1, 0x9c, 0x8e, 0x7b, 0x28, 0x1b, 0x1b, 0x60, 0xbd, - 0x70, 0x26, 0xf8, 0x7c, 0x24, 0xf0, 0x06, 0xde, 0xe7, 0x57, 0xf5, 0x82, 0x9b, 0x75, 0x26, 0x71, - 0x92, 0x4f, 0x6b, 0x43, 0x17, 0xef, 0xc2, 0x47, 0xe6, 0x8d, 0x39, 0xb8, 0xb4, 0xfc, 0xf4, 0xb6, - 0xbc, 0x2d, 0xf6, 0x45, 0x88, 0xe9, 0x85, 0x43, 0x7c, 0xcb, 0xd2, 0x70, 0xcf, 0xf4, 0x48, 0x1a, - 0xa9, 0xe1, 0xfc, 0xcc, 0x19, 0x9c, 0xb9, 0xd3, 0x39, 0xa7, 0xe0, 0x15, 0x35, 0x12, 0xf2, 0xf4, - 0x4c, 0xf2, 0xaa, 0x7c, 0x48, 0x18, 0x2a, 0xca, 0x75, 0x19, 0x30, 0xed, 0xc7, 0xcc, 0xc5, 0x6b, - 0x08, 0x0e, 0x15, 0x75, 0x31, 0xff, 0x36, 0xc7, 0x17, 0xe0, 0xc9, 0x32, 0x2e, 0x97, 0xb8, 0xdc, - 0xf1, 0x9a, 0x82, 0x57, 0xb1, 0xd6, 0x1c, 0x26, 0x62, 0x5b, 0x86, 0x87, 0xd1, 0xce, 0xbf, 0xbd, - 0x00, 0x92, 0x67, 0xe0, 0x4f, 0x19, 0x33, 0x3f, 0x42, 0xea, 0xc2, 0x31, 0xe3, 0x15, 0xe8, 0x53, - 0xea, 0x22, 0x91, 0xe3, 0xd5, 0x6c, 0x1b, 0xe3, 0x1a, 0x71, 0x9f, 0x64, 0xa7, 0xb0, 0xe4, 0xc7, - 0x48, 0x81, 0x4c, 0xfa, 0x31, 0x52, 0x18, 0xc2, 0x99, 0x18, 0xa2, 0x44, 0xac, 0x82, 0x95, 0xc2, - 0x6e, 0x7e, 0xca, 0x83, 0x9f, 0x29, 0x74, 0x6b, 0x35, 0x1e, 0x7c, 0x2b, 0xc5, 0x03, 0x92, 0x7f, - 0x75, 0x3b, 0x61, 0x5a, 0x42, 0x89, 0xf6, 0x1e, 0x0b, 0xc0, 0x3b, 0x08, 0xfc, 0xf3, 0x54, 0xe2, - 0xab, 0x2c, 0x4a, 0x1b, 0x3d, 0x6a, 0x96, 0x8c, 0x44, 0xf4, 0x72, 0x77, 0x17, 0xda, 0x99, 0x53, - 0x24, 0x22, 0x31, 0xbf, 0xf9, 0xe0, 0xcd, 0x01, 0xd6, 0x5a, 0xe3, 0x4e, 0x9b, 0x69, 0x2b, 0x6e, - 0x82, 0x99, 0x70, 0x0f, 0xdb, 0x52, 0x08, 0xad, 0xfd, 0x8e, 0xbd, 0xe5, 0x7b, 0x5b, 0x81, 0x27, - 0xb2, 0xb9, 0x2c, 0x5f, 0xec, 0x5f, 0x86, 0x2f, 0x95, 0x52, 0x59, 0xf6, 0x2e, 0x6f, 0x0d, 0x0e, - 0x2e, 0x88, 0xc9, 0xf5, 0x13, 0x30, 0xb1, 0xf0, 0x86, 0xc2, 0x15, 0x85, 0x5e, 0xe1, 0xf7, 0x1f, - 0xb8, 0x1d, 0x21, 0xae, 0x6d, 0x36, 0x1d, 0xd8, 0x5d, 0xe4, 0x26, 0x1d, 0x07, 0x8b, 0x60, 0xee, - 0x29, 0x35, 0x86, 0x57, 0x67, 0xca, 0xc7, 0x7c, 0x1d, 0x06, 0x29, 0x79, 0x07, 0x2f, 0xf4, 0x31, - 0x5f, 0x8a, 0x82, 0x92, 0x61, 0x7b, 0xe4, 0xe1, 0xfa, 0x43, 0x53, 0xa6, 0x7b, 0x6a, 0x7a, 0xb2, - 0xda, 0xb4, 0x3a, 0x3a, 0xf5, 0xcb, 0x53, 0x41, 0xff, 0xd0, 0xfd, 0x8f, 0x2d, 0xa7, 0x48, 0x57, - 0xef, 0x4d, 0xee, 0x9a, 0xb2, 0xf4, 0xf8, 0x47, 0xbb, 0x93, 0xff, 0x47, 0xbf, 0xb7, 0xdc, 0xf3, - 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8e, 0xb6, 0xde, 0x29, 0xcf, 0x3b, 0x00, 0x00, + // 2634 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x5b, 0x6c, 0x1c, 0x57, + 0xf9, 0xd7, 0x19, 0xa7, 0xff, 0xfc, 0x39, 0xcd, 0xc5, 0xf9, 0x9a, 0x60, 0x67, 0x12, 0x27, 0xe9, + 0xe4, 0x62, 0x67, 0x9d, 0x78, 0xdc, 0xa4, 0x69, 0xa9, 0x45, 0x29, 0x69, 0xec, 0x2e, 0x69, 0x93, + 0x34, 0x38, 0xa1, 0xc0, 0x16, 0xb1, 0x1a, 0xef, 0x9e, 0x38, 0xd3, 0xec, 0xee, 0x6c, 0x67, 0xc6, + 0x6e, 0xad, 0xc8, 0x05, 0x6a, 0x08, 0x69, 0x2b, 0x27, 0x48, 0x21, 0x91, 0x2a, 0xda, 0x0a, 0x21, + 0x55, 0xe2, 0xf6, 0x84, 0x04, 0x4f, 0x3c, 0xf0, 0x12, 0xa9, 0xa2, 0x42, 0x6a, 0x55, 0x2e, 0x95, + 0x9a, 0x27, 0x14, 0x29, 0x95, 0x40, 0x40, 0xe1, 0x01, 0xfa, 0x00, 0x42, 0x73, 0x2e, 0x3b, 0xd7, + 0x33, 0x97, 0xb5, 0x5d, 0x55, 0x22, 0x6f, 0xf6, 0x7e, 0xbf, 0xf3, 0x9d, 0xef, 0xfb, 0x7d, 0x97, + 0x73, 0xce, 0xcc, 0x19, 0xbc, 0xf5, 0x4c, 0x63, 0xce, 0x25, 0x66, 0xbd, 0xa1, 0x3b, 0xc4, 0x9e, + 0x35, 0x6b, 0x44, 0x37, 0xea, 0x4d, 0xb3, 0x35, 0xd2, 0xb6, 0x2d, 0xd7, 0x82, 0x5e, 0x21, 0x1d, + 0xe1, 0x52, 0x75, 0xeb, 0xb4, 0x65, 0x4d, 0x37, 0x88, 0x6e, 0xb4, 0x4d, 0xdd, 0x68, 0xb5, 0x2c, + 0xd7, 0x70, 0x4d, 0xab, 0xe5, 0x30, 0xbc, 0xea, 0x6b, 0xa3, 0x5a, 0xf4, 0xb6, 0x6d, 0x3d, 0x45, + 0x6a, 0x2e, 0x97, 0x8e, 0x24, 0x4b, 0xab, 0x75, 0xab, 0x69, 0x98, 0xad, 0xaa, 0xe1, 0xba, 0xb6, + 0x39, 0x35, 0xe3, 0x12, 0xa1, 0x6d, 0x50, 0x82, 0x8f, 0x01, 0x37, 0x47, 0x80, 0xae, 0xe1, 0x9c, + 0xe3, 0xa2, 0x81, 0x88, 0xe8, 0x19, 0xcb, 0x3e, 0x77, 0xa6, 0x61, 0x3d, 0xc3, 0xc5, 0x43, 0x12, + 0x71, 0x7c, 0x8e, 0x1d, 0x11, 0x64, 0xc3, 0x98, 0x69, 0xd5, 0xce, 0x56, 0xdb, 0x0d, 0x83, 0x93, + 0xa5, 0xaa, 0x11, 0x04, 0x99, 0x25, 0x2d, 0xe1, 0xfa, 0xb6, 0xa8, 0xec, 0x59, 0x52, 0x9b, 0xf1, + 0x98, 0x93, 0xb8, 0xda, 0x34, 0xdc, 0xda, 0x59, 0x63, 0xaa, 0x41, 0xaa, 0x36, 0x71, 0xac, 0x19, + 0xbb, 0x46, 0x38, 0x70, 0x67, 0x04, 0xd8, 0xb2, 0xea, 0xa4, 0x1a, 0xd5, 0xb6, 0x33, 0x81, 0x8f, + 0x18, 0x28, 0x1a, 0xab, 0x59, 0x62, 0x3b, 0xbe, 0x74, 0x4b, 0x44, 0x5a, 0xb3, 0x9a, 0x4d, 0xa9, + 0xb5, 0x75, 0xe2, 0xd4, 0x6c, 0xb3, 0xed, 0x29, 0xaf, 0x92, 0x96, 0x6b, 0xba, 0x73, 0x0c, 0x78, + 0xe0, 0xc3, 0xa7, 0xf1, 0x9a, 0xc3, 0x1e, 0xe4, 0x14, 0x4b, 0x1f, 0x68, 0x62, 0x7c, 0xc4, 0x26, + 0x86, 0x4b, 0x4e, 0x1b, 0xce, 0x39, 0xb8, 0xbb, 0x93, 0x11, 0x23, 0x2c, 0xeb, 0xbc, 0x5f, 0x99, + 0x7c, 0x92, 0x3c, 0x3d, 0x43, 0x1c, 0x57, 0xd5, 0xd2, 0x20, 0x4e, 0xdb, 0x6a, 0x39, 0x44, 0xeb, + 0x7f, 0xfe, 0x9d, 0x9b, 0x57, 0x14, 0xd0, 0xd6, 0xd2, 0xac, 0x9c, 0xbd, 0x87, 0xfa, 0xeb, 0x8c, + 0xa1, 0x12, 0xbc, 0x8b, 0xf0, 0xea, 0x32, 0x71, 0xe9, 0x64, 0x3b, 0xa2, 0x9a, 0x1e, 0x9f, 0xf2, + 0xb2, 0xa9, 0x4c, 0x5c, 0x31, 0xd7, 0xc6, 0xa4, 0xb9, 0xb4, 0xef, 0x22, 0xaa, 0x7e, 0x11, 0xc1, + 0x83, 0x21, 0xfd, 0xfa, 0x79, 0xb3, 0x3e, 0xc2, 0x53, 0x72, 0x9e, 0xfe, 0xc3, 0xf2, 0x98, 0xfd, + 0xdd, 0x32, 0x9a, 0x84, 0xfd, 0xc5, 0x79, 0x9d, 0xaf, 0x1c, 0x83, 0x47, 0xc3, 0x0a, 0x2c, 0x7b, + 0x9a, 0x22, 0x2c, 0x7b, 0x7a, 0xbe, 0xa8, 0x36, 0xb8, 0x8e, 0xf0, 0x9d, 0xc7, 0x4c, 0x87, 0xfa, + 0x76, 0xb4, 0xee, 0xc0, 0x68, 0xd4, 0xf8, 0x13, 0x46, 0x93, 0xd4, 0x27, 0x68, 0x34, 0x8e, 0xd6, + 0xbd, 0xa8, 0x9c, 0x31, 0x89, 0xed, 0x8d, 0x10, 0xee, 0xee, 0xcd, 0x3d, 0x42, 0xfb, 0x32, 0xa5, + 0xe0, 0x14, 0xec, 0x0c, 0x3a, 0x50, 0x35, 0xeb, 0x8e, 0x7e, 0xde, 0xb7, 0x99, 0x1b, 0x5c, 0xd9, + 0x07, 0xa5, 0x04, 0x3f, 0x99, 0x93, 0x31, 0x34, 0xfc, 0x50, 0xc1, 0x9f, 0x10, 0x7e, 0x38, 0xb0, + 0x33, 0x6a, 0xd3, 0x24, 0x4f, 0xff, 0xa0, 0xe1, 0xfd, 0x49, 0x71, 0xa2, 0x76, 0xbe, 0xc7, 0x62, + 0xf5, 0x5b, 0x04, 0xa3, 0x45, 0x63, 0x55, 0x79, 0x28, 0x1a, 0xdf, 0x82, 0xe1, 0xa9, 0x0c, 0xc1, + 0x9e, 0x7c, 0x93, 0x56, 0x0e, 0xc1, 0xc1, 0x2e, 0xa6, 0x82, 0x79, 0xbc, 0x8e, 0x65, 0xfe, 0x17, + 0x79, 0x97, 0x82, 0xdd, 0x51, 0x26, 0x84, 0x24, 0x5c, 0x44, 0x7b, 0xb2, 0x60, 0xbc, 0x90, 0xb6, + 0x52, 0xf6, 0x3e, 0xa9, 0x6d, 0x10, 0xd6, 0x89, 0x76, 0x48, 0x8b, 0xe9, 0x7d, 0x84, 0xef, 0x2c, + 0x13, 0xb7, 0x33, 0x79, 0x76, 0x41, 0xf5, 0xcb, 0xe6, 0xd5, 0x5e, 0x61, 0x81, 0xba, 0x8a, 0xe0, + 0x70, 0x6c, 0xae, 0xc2, 0x85, 0x75, 0x12, 0x4e, 0xc4, 0x95, 0x2c, 0xa9, 0xb8, 0xde, 0x46, 0x78, + 0xbd, 0x97, 0x50, 0xc2, 0xde, 0x15, 0x2f, 0x30, 0x83, 0xd2, 0xf1, 0x24, 0x0c, 0x46, 0x1d, 0x91, + 0x15, 0xd9, 0x28, 0x8c, 0x48, 0x7c, 0x96, 0x15, 0xda, 0xaf, 0x14, 0xbc, 0x36, 0xe8, 0x53, 0xce, + 0x62, 0xdb, 0x2a, 0x8b, 0x21, 0xb5, 0xfb, 0x4f, 0x2c, 0x8e, 0x37, 0x11, 0xdc, 0xdb, 0x4d, 0x1c, + 0x2b, 0x47, 0x92, 0xe2, 0x5f, 0xb4, 0xf0, 0x02, 0x0d, 0x27, 0x7b, 0xf2, 0xca, 0x03, 0x70, 0x7f, + 0x97, 0x53, 0xc2, 0x05, 0x84, 0x7b, 0x59, 0xc9, 0x1c, 0xa3, 0xab, 0xff, 0xc9, 0x86, 0xd1, 0x82, + 0xc1, 0x28, 0x41, 0xbe, 0x2c, 0x5c, 0x85, 0x43, 0xd9, 0x40, 0x5e, 0x87, 0xdb, 0x29, 0xa9, 0x9b, + 0xb5, 0x8d, 0xc2, 0xd0, 0xc0, 0x66, 0x83, 0x96, 0xe2, 0xdf, 0x11, 0x5e, 0x5b, 0x26, 0x6e, 0xc0, + 0x8a, 0xec, 0x62, 0x54, 0xe5, 0xd3, 0x6b, 0x3f, 0x60, 0x61, 0xfc, 0x1e, 0x82, 0xf1, 0xa4, 0x29, + 0x0b, 0x57, 0xe4, 0x29, 0xf8, 0x7c, 0xa2, 0x9e, 0x25, 0x15, 0xe5, 0x3f, 0x10, 0xbe, 0xab, 0x4c, + 0xdc, 0xc3, 0x35, 0xd7, 0x9c, 0x4d, 0x0d, 0x40, 0x14, 0x91, 0x87, 0x81, 0x6b, 0x8c, 0x81, 0xcb, + 0x08, 0x3e, 0x23, 0x2c, 0x37, 0xa8, 0x9a, 0x6a, 0x41, 0x22, 0x2a, 0xc7, 0xe1, 0xb1, 0x34, 0x0d, + 0x05, 0x29, 0x80, 0x57, 0x10, 0xde, 0xe4, 0x95, 0x5a, 0xd4, 0x29, 0x07, 0x86, 0xb3, 0xfc, 0x0e, + 0x96, 0xf1, 0x36, 0xb9, 0xef, 0xb4, 0x90, 0xef, 0xa3, 0xee, 0x07, 0xba, 0x4a, 0xa2, 0xf7, 0xf1, + 0xae, 0x72, 0x03, 0xe1, 0x0d, 0x9e, 0x02, 0x5f, 0xdd, 0x8a, 0xf7, 0xca, 0xa7, 0xa8, 0xa9, 0x75, + 0xbf, 0xe8, 0x03, 0x36, 0xca, 0xda, 0xe5, 0x7d, 0x7e, 0x7f, 0x8a, 0xa2, 0x53, 0x9b, 0xe6, 0x5b, + 0x0a, 0x5b, 0x08, 0x82, 0xbc, 0xe7, 0x6a, 0x9b, 0x59, 0x7c, 0xff, 0x93, 0xe5, 0xdb, 0xdf, 0x90, + 0xdf, 0x8d, 0x8a, 0x26, 0xda, 0x23, 0x92, 0x62, 0x2d, 0xda, 0x3e, 0x75, 0xd8, 0x5f, 0xc8, 0x84, + 0xca, 0xa7, 0x61, 0xac, 0xfb, 0x89, 0x61, 0x51, 0xc1, 0xbd, 0x5f, 0x68, 0xd7, 0x73, 0x37, 0x51, + 0x86, 0xcd, 0xd1, 0x44, 0x05, 0x90, 0x37, 0xd1, 0xd7, 0x19, 0xc3, 0xaf, 0x21, 0x75, 0x59, 0x7a, + 0xda, 0x18, 0x2a, 0x55, 0x4e, 0xa9, 0x2b, 0xd0, 0xd6, 0xbe, 0x81, 0xf0, 0x7a, 0xd6, 0xff, 0x27, + 0xc4, 0x09, 0x0d, 0x62, 0x1b, 0xb6, 0x8e, 0x28, 0xbc, 0xa4, 0x0c, 0x66, 0xe2, 0x38, 0x19, 0x03, + 0x94, 0x8b, 0x3e, 0x0d, 0x84, 0xfd, 0x9d, 0xd3, 0x20, 0x5d, 0x4f, 0x2e, 0x21, 0xbc, 0x61, 0x92, + 0x30, 0x9f, 0x7c, 0x2b, 0x86, 0xa4, 0xda, 0x05, 0xb6, 0xb0, 0x1d, 0x7b, 0xa8, 0x1d, 0x3b, 0xb4, + 0x2d, 0x71, 0x3b, 0x74, 0x9b, 0x2b, 0xf5, 0x0c, 0x7a, 0x09, 0xe1, 0xde, 0x49, 0x52, 0xb3, 0x66, + 0x89, 0xed, 0xdb, 0x33, 0x98, 0x62, 0x0f, 0x85, 0x16, 0x36, 0x67, 0x37, 0x35, 0x67, 0xbb, 0xa6, + 0x26, 0x9a, 0x43, 0x75, 0x7a, 0xd6, 0xdc, 0x40, 0x78, 0x4d, 0x99, 0xb8, 0xbe, 0x25, 0xc3, 0xb2, + 0x4d, 0x51, 0x07, 0x12, 0x58, 0x78, 0x37, 0x4b, 0xad, 0xd1, 0x16, 0x58, 0x8e, 0xce, 0xc3, 0xa1, + 0x04, 0x03, 0x72, 0x94, 0xee, 0x38, 0x3c, 0x9c, 0x30, 0xb0, 0xe8, 0x12, 0xf3, 0x57, 0x84, 0xd7, + 0xb3, 0xe2, 0xc9, 0x93, 0x81, 0xe1, 0x7a, 0x1c, 0xcc, 0xc4, 0x71, 0xaa, 0x5f, 0x64, 0xae, 0x2e, + 0x20, 0xb5, 0x3b, 0x5f, 0xbd, 0xfa, 0x2b, 0xab, 0xcb, 0xe0, 0xae, 0x17, 0xd0, 0x0b, 0x0a, 0xee, + 0x0d, 0x06, 0x74, 0xdc, 0x70, 0x0d, 0xd0, 0xf3, 0x04, 0xd5, 0x43, 0x0a, 0xdf, 0x47, 0xf3, 0x0f, + 0xe0, 0x24, 0x5c, 0x62, 0x24, 0x7c, 0x1b, 0xf9, 0x1d, 0xb4, 0x6e, 0xb8, 0x46, 0xc1, 0xa8, 0x1f, + 0x85, 0xb2, 0x6c, 0x74, 0xd1, 0xd0, 0x5f, 0x47, 0x78, 0x9d, 0xb7, 0x1e, 0x75, 0x2c, 0xce, 0xb9, + 0xbc, 0x0d, 0x48, 0xc3, 0x4e, 0x57, 0x37, 0x8b, 0xba, 0x69, 0xc2, 0x70, 0x81, 0x50, 0x57, 0xc6, + 0xe0, 0x53, 0xdd, 0x46, 0x17, 0xfe, 0x8d, 0x30, 0x9c, 0x26, 0x76, 0xd3, 0x6c, 0x85, 0xb2, 0x78, + 0xaf, 0xd4, 0xcc, 0x0e, 0x58, 0x78, 0x54, 0xca, 0x03, 0xe5, 0x61, 0xbc, 0xcc, 0xc2, 0x78, 0x11, + 0x95, 0xba, 0xcf, 0xe5, 0x63, 0xa5, 0xe5, 0x0a, 0xa2, 0x97, 0xd0, 0x7f, 0x64, 0x09, 0x7d, 0xc2, + 0xaa, 0x93, 0x94, 0x7e, 0x19, 0x12, 0x07, 0x3a, 0xd4, 0x40, 0x2a, 0x50, 0xfb, 0x96, 0x42, 0xdd, + 0xfd, 0x0f, 0x82, 0x96, 0x30, 0x39, 0xfc, 0xd8, 0x91, 0xf9, 0xdc, 0xf9, 0xb7, 0x1a, 0x35, 0x39, + 0x24, 0x09, 0xda, 0x1f, 0x12, 0xf8, 0x6b, 0x23, 0xd5, 0x6e, 0xd6, 0xe7, 0x2b, 0x2f, 0x21, 0xb8, + 0x88, 0x64, 0x73, 0x0a, 0x9a, 0x42, 0x4a, 0x3a, 0x9c, 0x2d, 0xbf, 0x35, 0xf0, 0xa1, 0x82, 0xc1, + 0x4b, 0xef, 0x10, 0x3b, 0x4e, 0x7c, 0x99, 0x0c, 0xc9, 0x83, 0x55, 0x73, 0x77, 0x26, 0x52, 0xbb, + 0xca, 0xb8, 0xbe, 0xa4, 0x80, 0x23, 0xe5, 0xba, 0xf3, 0x6c, 0x40, 0xe2, 0x63, 0xb2, 0xbc, 0xe3, + 0x69, 0xb2, 0x98, 0xb5, 0x96, 0x6b, 0x08, 0xae, 0xa4, 0x13, 0x9e, 0x3c, 0x9a, 0xd1, 0xbe, 0x72, + 0x86, 0xc1, 0xe5, 0xff, 0xc7, 0x9b, 0xe3, 0xdc, 0x3f, 0x62, 0xd9, 0xf4, 0xd9, 0xae, 0x9e, 0x4a, + 0x2c, 0x47, 0x15, 0x8c, 0xc4, 0xab, 0xab, 0x69, 0x24, 0xae, 0xad, 0x86, 0x1f, 0xf5, 0x08, 0x46, + 0x6a, 0x67, 0xcd, 0x46, 0xdd, 0x26, 0xd1, 0x27, 0xea, 0x8e, 0x7e, 0x3e, 0xfc, 0x43, 0x55, 0xa4, + 0x4d, 0xe8, 0x17, 0x09, 0x2b, 0x85, 0x87, 0x76, 0x08, 0x2b, 0x3c, 0x92, 0x27, 0x75, 0x9e, 0x71, + 0x22, 0xeb, 0x93, 0xd0, 0xfc, 0xe9, 0x6f, 0xaa, 0x0f, 0x02, 0x93, 0x62, 0xac, 0x80, 0x48, 0xad, + 0x12, 0x00, 0xb1, 0x57, 0x4e, 0xc2, 0xd8, 0xc4, 0xb5, 0xe7, 0xaa, 0x86, 0xeb, 0x92, 0x66, 0xdb, + 0x9d, 0xaf, 0xdc, 0xea, 0x81, 0x9b, 0xd9, 0xe1, 0xa2, 0x99, 0x5c, 0x98, 0x3d, 0x96, 0xe4, 0xb7, + 0x23, 0xfd, 0xb1, 0x88, 0x34, 0x2c, 0xf4, 0xe0, 0x8d, 0xd1, 0x25, 0x8f, 0xee, 0xe3, 0x86, 0xb3, + 0x96, 0xbd, 0xe0, 0x1e, 0x6e, 0x5f, 0x3e, 0xb0, 0x58, 0xf8, 0x59, 0x77, 0xbe, 0x18, 0xe8, 0xce, + 0x74, 0xf1, 0xfe, 0x88, 0x96, 0xc3, 0xef, 0x20, 0x58, 0x44, 0xa9, 0x13, 0x7f, 0xe4, 0x6b, 0xe2, + 0xd7, 0xf0, 0xfa, 0x49, 0x32, 0x6d, 0x3a, 0x2e, 0xb1, 0x4f, 0x32, 0x85, 0xf1, 0xa3, 0x03, 0x17, + 0x08, 0x9c, 0xf4, 0xe8, 0x10, 0xc3, 0x71, 0xd6, 0xb7, 0x50, 0xd2, 0x37, 0x69, 0xbd, 0xc2, 0x75, + 0x6e, 0x3a, 0x3d, 0xba, 0xbe, 0x87, 0xf0, 0x5a, 0x76, 0xd4, 0x10, 0xf3, 0xf7, 0x49, 0xf4, 0xaa, + 0xbb, 0x25, 0x82, 0xc8, 0x49, 0xe5, 0x05, 0xb6, 0xbb, 0x7b, 0x1e, 0xa9, 0x9b, 0xa2, 0x13, 0x7a, + 0xbe, 0xd3, 0xdd, 0x9b, 0x9a, 0x22, 0xdb, 0xa5, 0x6e, 0x8f, 0xc9, 0x02, 0x0f, 0x99, 0x8a, 0xa0, + 0xe0, 0x0c, 0x5e, 0xe3, 0x2d, 0x46, 0xdc, 0x50, 0x07, 0x34, 0x89, 0x0b, 0xa9, 0xaf, 0xc7, 0xc4, + 0x68, 0xf1, 0xa2, 0x14, 0x62, 0x44, 0xc2, 0xcb, 0x08, 0xdf, 0x15, 0x7e, 0xb7, 0x34, 0x31, 0x4b, + 0x5a, 0x2e, 0xec, 0xcf, 0x3c, 0xe2, 0x50, 0x9c, 0x98, 0x7a, 0x24, 0x2f, 0x9c, 0x53, 0xbd, 0x93, + 0x1a, 0x34, 0xa0, 0xf5, 0x77, 0xb6, 0xd1, 0x9e, 0xd8, 0x09, 0xbf, 0x77, 0x7a, 0xa1, 0xf3, 0x80, + 0x84, 0xd6, 0x26, 0xb5, 0x6b, 0x6f, 0x6a, 0xd9, 0x86, 0x6c, 0x2a, 0xe5, 0x81, 0xca, 0x1e, 0xbc, + 0x73, 0x7b, 0xbc, 0x74, 0x8f, 0xd8, 0xe2, 0xed, 0x28, 0x24, 0xb6, 0x50, 0x51, 0x3e, 0x5b, 0x92, + 0xa0, 0x19, 0xb6, 0x74, 0x5e, 0x6e, 0xbf, 0x79, 0x07, 0xdd, 0xf3, 0x87, 0x54, 0xc4, 0xf7, 0xfc, + 0x21, 0x71, 0xda, 0x9e, 0x3f, 0x04, 0xd4, 0xfe, 0xb2, 0x8a, 0x4e, 0x7f, 0x6b, 0x15, 0xbc, 0xac, + 0x84, 0x5e, 0xfa, 0x46, 0xba, 0x5c, 0xee, 0xb5, 0xaf, 0xc0, 0x62, 0x97, 0x7b, 0x75, 0xcb, 0x58, + 0xce, 0x12, 0xd7, 0xaf, 0xa4, 0x05, 0x2b, 0xbe, 0x42, 0x25, 0x2e, 0x49, 0xf1, 0xdd, 0xc6, 0x1b, + 0x0a, 0x5c, 0x97, 0xd2, 0x23, 0x7a, 0x71, 0xae, 0x5d, 0xc5, 0xff, 0x3a, 0x95, 0xf0, 0x41, 0x0f, + 0x3b, 0x5c, 0x85, 0xd2, 0x30, 0xe1, 0x70, 0x15, 0x92, 0xa7, 0x6e, 0xe9, 0x63, 0x48, 0x6d, 0xb1, + 0x87, 0x26, 0xf5, 0x85, 0x1e, 0xf8, 0x31, 0x92, 0x26, 0x75, 0xee, 0x30, 0xe4, 0x8d, 0x41, 0xbe, + 0x00, 0xc8, 0xd9, 0xaf, 0xfc, 0x1e, 0xc1, 0x3b, 0x28, 0x35, 0xcb, 0x72, 0xa5, 0xd8, 0xc7, 0xce, + 0x31, 0xf8, 0xf3, 0x1d, 0x74, 0x0b, 0x17, 0x0a, 0x54, 0xf2, 0x16, 0x2e, 0xda, 0xc5, 0x52, 0xb7, + 0x70, 0xc9, 0x60, 0xde, 0x56, 0xff, 0xc5, 0x1a, 0xdb, 0x07, 0xab, 0xe0, 0x35, 0x25, 0xb4, 0x95, + 0xba, 0xdd, 0xdd, 0xa2, 0xdd, 0xed, 0x37, 0x0a, 0xfc, 0x3a, 0x9d, 0xa3, 0xdb, 0x2d, 0xae, 0x48, + 0x8b, 0x7b, 0x53, 0xc1, 0x03, 0xa1, 0xad, 0xea, 0x38, 0x55, 0x79, 0xb8, 0x73, 0xd5, 0x10, 0xee, + 0x95, 0x6c, 0xdd, 0xa2, 0xc0, 0xf0, 0x33, 0xf8, 0x43, 0x05, 0x47, 0xf1, 0x4a, 0xf8, 0x25, 0xdb, + 0xe7, 0xfe, 0x1c, 0xa9, 0x8f, 0x46, 0xf6, 0x83, 0xf1, 0x1b, 0x99, 0xfa, 0xf9, 0xf0, 0x85, 0x48, + 0x4e, 0x4f, 0xe0, 0x47, 0x4e, 0x8f, 0xb7, 0xb5, 0xad, 0xab, 0xd5, 0x6c, 0x85, 0x34, 0x75, 0x02, + 0xe3, 0x59, 0x8e, 0xe4, 0x9f, 0x05, 0x16, 0x14, 0xac, 0x96, 0x89, 0x2b, 0xa3, 0xf2, 0x9e, 0x9c, + 0xa4, 0x04, 0xb6, 0x44, 0x07, 0x8a, 0x0c, 0xe1, 0x24, 0x3e, 0x47, 0x39, 0x7c, 0xd6, 0x7f, 0xbd, + 0x9c, 0x42, 0x61, 0xfc, 0xb5, 0xf4, 0x67, 0xfd, 0xdb, 0x06, 0x19, 0x4c, 0xc9, 0x5e, 0x50, 0x5f, + 0x51, 0xf0, 0xc0, 0x38, 0x69, 0x90, 0xa5, 0xe7, 0x14, 0xd3, 0x52, 0x34, 0xa7, 0xc4, 0x28, 0x4e, + 0xc7, 0x37, 0x59, 0x4e, 0x3d, 0x57, 0xea, 0x8a, 0x0f, 0x2f, 0x79, 0x8e, 0x94, 0x96, 0x48, 0x89, + 0x97, 0x1b, 0x2f, 0x2a, 0xb8, 0x2f, 0x54, 0x69, 0x01, 0x3e, 0x46, 0x24, 0x9e, 0xc9, 0xaa, 0x4b, + 0xcf, 0x8d, 0xe7, 0x1c, 0x2c, 0x32, 0x0e, 0x2e, 0x20, 0x55, 0x8f, 0x7a, 0x92, 0x51, 0x50, 0x9e, + 0xff, 0x27, 0xd5, 0xc7, 0x96, 0xb1, 0x78, 0xf8, 0x25, 0xd8, 0x8d, 0x7e, 0xa1, 0x04, 0x98, 0x18, + 0xce, 0xf4, 0x2c, 0x50, 0x1c, 0xfb, 0xf2, 0x81, 0x39, 0x07, 0x84, 0x52, 0x50, 0x85, 0x5d, 0x69, + 0x0c, 0x08, 0x23, 0x2b, 0xf7, 0xfb, 0xef, 0x3f, 0x0b, 0xc5, 0x1c, 0x6e, 0x21, 0xdc, 0x17, 0xca, + 0xfe, 0x42, 0x71, 0x0e, 0x67, 0xbc, 0x9e, 0x1b, 0xcf, 0x7d, 0x3c, 0x47, 0x7d, 0x24, 0xa5, 0x5c, + 0x3e, 0x7a, 0xa1, 0x1d, 0x2b, 0x75, 0xe7, 0x26, 0x7d, 0x05, 0xad, 0xe0, 0x7e, 0x96, 0x67, 0xe2, + 0x48, 0x1d, 0x70, 0x55, 0xfa, 0xe6, 0x52, 0x96, 0xd3, 0xa3, 0xf9, 0x07, 0x70, 0x67, 0x6f, 0xb0, + 0xa4, 0xfe, 0x1d, 0x52, 0x2b, 0xb1, 0x2b, 0x8a, 0x5d, 0x2c, 0x13, 0xa1, 0xdf, 0x84, 0x22, 0x4a, + 0x92, 0xab, 0x5a, 0x69, 0x13, 0x2c, 0x69, 0xd9, 0x90, 0xce, 0x0a, 0x5f, 0x57, 0xf0, 0xa6, 0xc0, + 0xdd, 0xd6, 0x00, 0xb7, 0xfb, 0xb2, 0xa9, 0x0a, 0x54, 0xc9, 0xfe, 0x9c, 0xe8, 0xe8, 0xa3, 0x26, + 0x78, 0x20, 0x95, 0xd5, 0x58, 0x93, 0xf3, 0x5f, 0x96, 0xcc, 0x57, 0x26, 0xe0, 0x48, 0x26, 0x63, + 0x92, 0x5e, 0x19, 0x50, 0x03, 0x97, 0x15, 0xdc, 0xcf, 0x32, 0xbc, 0xbb, 0x0c, 0x0b, 0x57, 0xd3, + 0x68, 0xfe, 0x01, 0xb1, 0x97, 0xaa, 0xdd, 0x73, 0xe1, 0x25, 0xd0, 0xe7, 0x4a, 0xcb, 0x41, 0x87, + 0x97, 0x14, 0xdf, 0x47, 0xb8, 0xcf, 0x3b, 0x37, 0x1e, 0x17, 0x1f, 0x63, 0xa4, 0x75, 0x17, 0x09, + 0x50, 0xda, 0x5d, 0xa4, 0x78, 0x4e, 0xc7, 0x2e, 0xca, 0xc6, 0x36, 0xd8, 0x2a, 0x9c, 0xf1, 0x3f, + 0x09, 0xf1, 0xbd, 0x81, 0xf7, 0xf9, 0xf5, 0x3b, 0xff, 0xb6, 0x9c, 0x49, 0x9c, 0xf8, 0x13, 0xd8, + 0xc0, 0x65, 0xba, 0xe0, 0x91, 0x79, 0x7b, 0x06, 0x2e, 0x29, 0x3f, 0xbd, 0x2d, 0x6f, 0x9d, 0x7d, + 0xe5, 0x61, 0x7a, 0xe1, 0x10, 0xdf, 0xa7, 0x54, 0xdd, 0xb9, 0x36, 0x49, 0x22, 0x35, 0x98, 0x9f, + 0x19, 0x83, 0x53, 0x77, 0x3a, 0x0b, 0x0a, 0x5e, 0x57, 0x26, 0x01, 0x4f, 0xe7, 0xe2, 0xd7, 0xdf, + 0x03, 0xc2, 0x40, 0x51, 0x6e, 0x49, 0x81, 0x69, 0x3f, 0x65, 0x2e, 0xbe, 0x8e, 0xe0, 0x68, 0x5e, + 0x17, 0xb3, 0x6f, 0x68, 0x7c, 0x09, 0x9e, 0x28, 0xe2, 0x72, 0x81, 0x0b, 0x1b, 0xaf, 0x2a, 0x78, + 0x03, 0x6b, 0xcd, 0x41, 0x22, 0x86, 0x52, 0x3c, 0x0c, 0x77, 0xfe, 0xbd, 0x39, 0x90, 0x3c, 0x03, + 0x7f, 0xc6, 0x98, 0xf9, 0x09, 0x52, 0x97, 0x8f, 0x19, 0xaf, 0x40, 0x9f, 0x54, 0x57, 0x88, 0x1c, + 0xaf, 0x66, 0x1b, 0x18, 0x97, 0x89, 0xfb, 0x04, 0x3b, 0x85, 0xc5, 0x3f, 0x30, 0xf2, 0x65, 0xd2, + 0x0f, 0x8c, 0x82, 0x10, 0xce, 0x44, 0x1f, 0x25, 0x62, 0x03, 0xac, 0x17, 0x76, 0xf3, 0x53, 0x1e, + 0xfc, 0x42, 0xa1, 0x5b, 0xab, 0x71, 0xff, 0xfb, 0x27, 0x1e, 0x90, 0xec, 0xeb, 0xd8, 0x31, 0xd3, + 0x62, 0x4a, 0xb4, 0x77, 0x59, 0x00, 0xde, 0x46, 0xd0, 0x39, 0x4f, 0xc5, 0xbe, 0xb4, 0xa2, 0xb4, + 0xd1, 0xa3, 0x66, 0xc1, 0x48, 0x84, 0x2f, 0x6c, 0xb7, 0xa0, 0x91, 0x3a, 0x45, 0x2c, 0x12, 0x4b, + 0x9b, 0x0f, 0xde, 0xe8, 0x61, 0xad, 0x35, 0xea, 0xb4, 0x99, 0xb4, 0xe2, 0xc6, 0x98, 0x09, 0xf6, + 0xb0, 0xdd, 0xb9, 0xd0, 0xda, 0x1f, 0xd8, 0x9b, 0xbb, 0xb7, 0x14, 0x78, 0x3c, 0x9d, 0xcb, 0xe2, + 0xc5, 0xfe, 0x55, 0xf8, 0x4a, 0x21, 0x95, 0x45, 0xef, 0xe7, 0x96, 0x61, 0x62, 0x59, 0x4c, 0xae, + 0x9c, 0x86, 0xc9, 0xe5, 0x37, 0x14, 0xae, 0x2a, 0xf4, 0x5a, 0x7e, 0xe7, 0x81, 0xdb, 0x71, 0xe2, + 0xda, 0x66, 0xcd, 0x81, 0x03, 0x79, 0x6e, 0xc7, 0x71, 0xb0, 0x08, 0xe6, 0xc1, 0x42, 0x63, 0x78, + 0x75, 0x26, 0x7c, 0xa0, 0xd7, 0x64, 0x90, 0x82, 0xf7, 0xea, 0x02, 0x1f, 0xe8, 0x25, 0x28, 0x28, + 0x18, 0xb6, 0x87, 0x1f, 0xaa, 0x3c, 0x38, 0x6d, 0xba, 0x67, 0x67, 0xa6, 0x46, 0x6a, 0x56, 0x53, + 0xa7, 0x7e, 0x79, 0x2a, 0xe8, 0x1f, 0x7a, 0xe7, 0x03, 0xca, 0x69, 0xd2, 0xd2, 0xdb, 0x53, 0xfb, + 0xa7, 0x2d, 0x3d, 0xfa, 0x21, 0xee, 0xd4, 0xff, 0xd1, 0x6f, 0x28, 0x0f, 0xfe, 0x37, 0x00, 0x00, + 0xff, 0xff, 0x44, 0x5a, 0xcf, 0x7c, 0xa3, 0x3b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go index 4c5d78837c..08e7f32269 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go @@ -3360,15 +3360,15 @@ func request_AdminService_UpdateProject_1(ctx context.Context, marshaler runtime _ = err ) - val, ok = pathParams["identifier.id"] + val, ok = pathParams["id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "identifier.id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") } - err = runtime.PopulateFieldFromPath(&protoReq, "identifier.id", val) + protoReq.Id, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "identifier.id", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } msg, err := client.UpdateProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) @@ -3395,15 +3395,15 @@ func request_AdminService_UpdateProject_2(ctx context.Context, marshaler runtime _ = err ) - val, ok = pathParams["identifier.org"] + val, ok = pathParams["org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "identifier.org") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") } - err = runtime.PopulateFieldFromPath(&protoReq, "identifier.org", val) + protoReq.Org, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "identifier.org", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) } val, ok = pathParams["id"] @@ -3441,26 +3441,26 @@ func request_AdminService_UpdateProject_3(ctx context.Context, marshaler runtime _ = err ) - val, ok = pathParams["identifier.org"] + val, ok = pathParams["org"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "identifier.org") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") } - err = runtime.PopulateFieldFromPath(&protoReq, "identifier.org", val) + protoReq.Org, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "identifier.org", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) } - val, ok = pathParams["identifier.id"] + val, ok = pathParams["id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "identifier.id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") } - err = runtime.PopulateFieldFromPath(&protoReq, "identifier.id", val) + protoReq.Id, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "identifier.id", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } msg, err := client.UpdateProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) @@ -8441,11 +8441,11 @@ var ( pattern_AdminService_UpdateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "id"}, "")) - pattern_AdminService_UpdateProject_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "identifier.id"}, "")) + pattern_AdminService_UpdateProject_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "id"}, "")) - pattern_AdminService_UpdateProject_2 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "projects", "org", "identifier.org", "id"}, "")) + pattern_AdminService_UpdateProject_2 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "projects", "org", "id"}, "")) - pattern_AdminService_UpdateProject_3 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "projects", "org", "identifier.org", "identifier.id"}, "")) + pattern_AdminService_UpdateProject_3 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "projects", "org", "id"}, "")) pattern_AdminService_ListProjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "projects"}, "")) diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json index f760045744..da201ddc26 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json @@ -4366,7 +4366,7 @@ ] } }, - "/api/v1/projects/org/{identifier.org}/{identifier.id}": { + "/api/v1/projects/org/{org}/{id}": { "put": { "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", "operationId": "UpdateProject4", @@ -4380,48 +4380,7 @@ }, "parameters": [ { - "name": "identifier.org", - "description": "Optional, org key applied to the resource.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "identifier.id", - "description": "Globally unique project name.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/adminProject" - } - } - ], - "tags": [ - "AdminService" - ] - } - }, - "/api/v1/projects/org/{identifier.org}/{id}": { - "put": { - "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", - "operationId": "UpdateProject3", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminProjectUpdateResponse" - } - } - }, - "parameters": [ - { - "name": "identifier.org", + "name": "org", "description": "Optional, org key applied to the resource.", "in": "path", "required": true, @@ -4448,44 +4407,10 @@ ] } }, - "/api/v1/projects/{identifier.id}": { - "put": { - "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", - "operationId": "UpdateProject2", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminProjectUpdateResponse" - } - } - }, - "parameters": [ - { - "name": "identifier.id", - "description": "Globally unique project name.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/adminProject" - } - } - ], - "tags": [ - "AdminService" - ] - } - }, "/api/v1/projects/{id}": { "put": { "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", - "operationId": "UpdateProject", + "operationId": "UpdateProject2", "responses": { "200": { "description": "A successful response.", @@ -8234,9 +8159,9 @@ "state": { "$ref": "#/definitions/ProjectProjectState" }, - "identifier": { - "$ref": "#/definitions/adminProjectIdentifier", - "description": "Optional, org key applied to the project." + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "description": "Top-level namespace used to classify different entities like workflows and executions." @@ -8373,19 +8298,6 @@ "type": "object", "description": "Purposefully empty, may be populated in the future." }, - "adminProjectIdentifier": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Globally unique project name." - }, - "org": { - "type": "string", - "description": "Optional, org key applied to the resource." - } - } - }, "adminProjectRegisterRequest": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md index e3d647ce62..5cafea708e 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md @@ -113,10 +113,8 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**UpdateLaunchPlan2**](docs/AdminServiceApi.md#updatelaunchplan2) | **Put** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**UpdateNamedEntity**](docs/AdminServiceApi.md#updatenamedentity) | **Put** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. *AdminServiceApi* | [**UpdateNamedEntity2**](docs/AdminServiceApi.md#updatenamedentity2) | **Put** /api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. -*AdminServiceApi* | [**UpdateProject**](docs/AdminServiceApi.md#updateproject) | **Put** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -*AdminServiceApi* | [**UpdateProject2**](docs/AdminServiceApi.md#updateproject2) | **Put** /api/v1/projects/{identifier.id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -*AdminServiceApi* | [**UpdateProject3**](docs/AdminServiceApi.md#updateproject3) | **Put** /api/v1/projects/org/{identifier.org}/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -*AdminServiceApi* | [**UpdateProject4**](docs/AdminServiceApi.md#updateproject4) | **Put** /api/v1/projects/org/{identifier.org}/{identifier.id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**UpdateProject2**](docs/AdminServiceApi.md#updateproject2) | **Put** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**UpdateProject4**](docs/AdminServiceApi.md#updateproject4) | **Put** /api/v1/projects/org/{org}/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. *AdminServiceApi* | [**UpdateProjectAttributes**](docs/AdminServiceApi.md#updateprojectattributes) | **Put** /api/v1/project_attributes/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level *AdminServiceApi* | [**UpdateProjectAttributes2**](docs/AdminServiceApi.md#updateprojectattributes2) | **Put** /api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level *AdminServiceApi* | [**UpdateProjectDomainAttributes**](docs/AdminServiceApi.md#updateprojectdomainattributes) | **Put** /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. @@ -210,7 +208,6 @@ Class | Method | HTTP request | Description - [AdminProjectDomainAttributesGetResponse](docs/AdminProjectDomainAttributesGetResponse.md) - [AdminProjectDomainAttributesUpdateRequest](docs/AdminProjectDomainAttributesUpdateRequest.md) - [AdminProjectDomainAttributesUpdateResponse](docs/AdminProjectDomainAttributesUpdateResponse.md) - - [AdminProjectIdentifier](docs/AdminProjectIdentifier.md) - [AdminProjectRegisterRequest](docs/AdminProjectRegisterRequest.md) - [AdminProjectRegisterResponse](docs/AdminProjectRegisterResponse.md) - [AdminProjectUpdateResponse](docs/AdminProjectUpdateResponse.md) diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index 9000f5d714..fb8b11441f 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -3872,7 +3872,7 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminProjectRegisterResponse" - /api/v1/projects/org/{identifier.org}/{identifier.id}: + /api/v1/projects/org/{org}/{id}: put: tags: - "AdminService" @@ -3881,44 +3881,12 @@ paths: \ in the handler as domains cannot be updated via this API." operationId: "UpdateProject4" parameters: - - name: "identifier.org" - in: "path" - description: "Optional, org key applied to the resource." - required: true - type: "string" - x-exportParamName: "IdentifierOrg" - - name: "identifier.id" - in: "path" - description: "Globally unique project name." - required: true - type: "string" - x-exportParamName: "IdentifierId" - - in: "body" - name: "body" - required: true - schema: - $ref: "#/definitions/adminProject" - x-exportParamName: "Body" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminProjectUpdateResponse" - /api/v1/projects/org/{identifier.org}/{id}: - put: - tags: - - "AdminService" - summary: "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project\ - \ should be passed but the domains property should be empty;\nit will be ignored\ - \ in the handler as domains cannot be updated via this API." - operationId: "UpdateProject3" - parameters: - - name: "identifier.org" + - name: "org" in: "path" description: "Optional, org key applied to the resource." required: true type: "string" - x-exportParamName: "IdentifierOrg" + x-exportParamName: "Org" - name: "id" in: "path" description: "Deprecated, use identifier instead.\nGlobally unique project\ @@ -3937,32 +3905,6 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminProjectUpdateResponse" - /api/v1/projects/{identifier.id}: - put: - tags: - - "AdminService" - summary: "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project\ - \ should be passed but the domains property should be empty;\nit will be ignored\ - \ in the handler as domains cannot be updated via this API." - operationId: "UpdateProject2" - parameters: - - name: "identifier.id" - in: "path" - description: "Globally unique project name." - required: true - type: "string" - x-exportParamName: "IdentifierId" - - in: "body" - name: "body" - required: true - schema: - $ref: "#/definitions/adminProject" - x-exportParamName: "Body" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminProjectUpdateResponse" /api/v1/projects/{id}: put: tags: @@ -3970,7 +3912,7 @@ paths: summary: "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project\ \ should be passed but the domains property should be empty;\nit will be ignored\ \ in the handler as domains cannot be updated via this API." - operationId: "UpdateProject" + operationId: "UpdateProject2" parameters: - name: "id" in: "path" @@ -24963,15 +24905,13 @@ definitions: $ref: "#/definitions/adminLabels" state: $ref: "#/definitions/ProjectProjectState" - identifier: - description: "Optional, org key applied to the project." - $ref: "#/definitions/adminProjectIdentifier" + org: + type: "string" + description: "Optional, org key applied to the resource." description: "Top-level namespace used to classify different entities like workflows\ \ and executions." example: - identifier: - org: "org" - id: "id" + org: "org" name: "name" domains: - name: "name" @@ -25514,18 +25454,6 @@ definitions: adminProjectDomainAttributesUpdateResponse: type: "object" description: "Purposefully empty, may be populated in the future." - adminProjectIdentifier: - type: "object" - properties: - id: - type: "string" - description: "Globally unique project name." - org: - type: "string" - description: "Optional, org key applied to the resource." - example: - org: "org" - id: "id" adminProjectRegisterRequest: type: "object" properties: @@ -25556,9 +25484,7 @@ definitions: \ for more details" example: projects: - - identifier: - org: "org" - id: "id" + - org: "org" name: "name" domains: - name: "name" @@ -25571,9 +25497,7 @@ definitions: labels: values: key: "values" - - identifier: - org: "org" - id: "id" + - org: "org" name: "name" domains: - name: "name" diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go index 5b7fc29b27..950456184b 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go @@ -10138,7 +10138,7 @@ AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project @return AdminProjectUpdateResponse */ -func (a *AdminServiceApiService) UpdateProject(ctx context.Context, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProject2(ctx context.Context, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} @@ -10224,104 +10224,13 @@ func (a *AdminServiceApiService) UpdateProject(ctx context.Context, id string, b /* AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param identifierId Globally unique project name. - * @param body - -@return AdminProjectUpdateResponse -*/ -func (a *AdminServiceApiService) UpdateProject2(ctx context.Context, identifierId string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { - var ( - localVarHttpMethod = strings.ToUpper("Put") - localVarPostBody interface{} - localVarFileName string - localVarFileBytes []byte - localVarReturnValue AdminProjectUpdateResponse - ) - - // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/projects/{identifier.id}" - localVarPath = strings.Replace(localVarPath, "{"+"identifier.id"+"}", fmt.Sprintf("%v", identifierId), -1) - - localVarHeaderParams := make(map[string]string) - localVarQueryParams := url.Values{} - localVarFormParams := url.Values{} - - // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} - - // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType - } - - // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} - - // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept - } - // body params - localVarPostBody = &body - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) - if err != nil { - return localVarReturnValue, nil, err - } - - localVarHttpResponse, err := a.client.callAPI(r) - if err != nil || localVarHttpResponse == nil { - return localVarReturnValue, localVarHttpResponse, err - } - - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() - if err != nil { - return localVarReturnValue, localVarHttpResponse, err - } - - if localVarHttpResponse.StatusCode < 300 { - // If we succeed, return the data, otherwise pass on to decode error. - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); - if err == nil { - return localVarReturnValue, localVarHttpResponse, err - } - } - - if localVarHttpResponse.StatusCode >= 300 { - newErr := GenericSwaggerError{ - body: localVarBody, - error: localVarHttpResponse.Status, - } - - if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectUpdateResponse - 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 an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param identifierOrg Optional, org key applied to the resource. + * @param org Optional, org key applied to the resource. * @param id Deprecated, use identifier instead. Globally unique project name. * @param body @return AdminProjectUpdateResponse */ -func (a *AdminServiceApiService) UpdateProject3(ctx context.Context, identifierOrg string, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProject4(ctx context.Context, org string, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} @@ -10331,8 +10240,8 @@ func (a *AdminServiceApiService) UpdateProject3(ctx context.Context, identifierO ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/projects/org/{identifier.org}/{id}" - localVarPath = strings.Replace(localVarPath, "{"+"identifier.org"+"}", fmt.Sprintf("%v", identifierOrg), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/projects/org/{org}/{id}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", fmt.Sprintf("%v", id), -1) localVarHeaderParams := make(map[string]string) @@ -10405,99 +10314,6 @@ func (a *AdminServiceApiService) UpdateProject3(ctx context.Context, identifierO return localVarReturnValue, localVarHttpResponse, nil } -/* -AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param identifierOrg Optional, org key applied to the resource. - * @param identifierId Globally unique project name. - * @param body - -@return AdminProjectUpdateResponse -*/ -func (a *AdminServiceApiService) UpdateProject4(ctx context.Context, identifierOrg string, identifierId string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { - var ( - localVarHttpMethod = strings.ToUpper("Put") - localVarPostBody interface{} - localVarFileName string - localVarFileBytes []byte - localVarReturnValue AdminProjectUpdateResponse - ) - - // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/projects/org/{identifier.org}/{identifier.id}" - localVarPath = strings.Replace(localVarPath, "{"+"identifier.org"+"}", fmt.Sprintf("%v", identifierOrg), -1) - localVarPath = strings.Replace(localVarPath, "{"+"identifier.id"+"}", fmt.Sprintf("%v", identifierId), -1) - - localVarHeaderParams := make(map[string]string) - localVarQueryParams := url.Values{} - localVarFormParams := url.Values{} - - // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} - - // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType - } - - // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} - - // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept - } - // body params - localVarPostBody = &body - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) - if err != nil { - return localVarReturnValue, nil, err - } - - localVarHttpResponse, err := a.client.callAPI(r) - if err != nil || localVarHttpResponse == nil { - return localVarReturnValue, localVarHttpResponse, err - } - - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() - if err != nil { - return localVarReturnValue, localVarHttpResponse, err - } - - if localVarHttpResponse.StatusCode < 300 { - // If we succeed, return the data, otherwise pass on to decode error. - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); - if err == nil { - return localVarReturnValue, localVarHttpResponse, err - } - } - - if localVarHttpResponse.StatusCode >= 300 { - newErr := GenericSwaggerError{ - body: localVarBody, - error: localVarHttpResponse.Status, - } - - if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectUpdateResponse - 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 Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go index eab400115d..9253985456 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go @@ -20,6 +20,6 @@ type AdminProject struct { // Leverage Labels from flyteidl.admin.common.proto to tag projects with ownership information. Labels *AdminLabels `json:"labels,omitempty"` State *ProjectProjectState `json:"state,omitempty"` - // Optional, org key applied to the project. - Identifier *AdminProjectIdentifier `json:"identifier,omitempty"` + // Optional, org key applied to the resource. + Org string `json:"org,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_identifier.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_identifier.go deleted file mode 100644 index cd5e620e6d..0000000000 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_identifier.go +++ /dev/null @@ -1,17 +0,0 @@ -/* - * 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 AdminProjectIdentifier struct { - // Globally unique project name. - Id string `json:"id,omitempty"` - // Optional, org key applied to the resource. - Org string `json:"org,omitempty"` -} diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index 5cc1c20880..28a959eb48 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\xfd\x73\xe3\xb8\x95\x2f\x8c\xff\xbe\x7f\x05\xaa\xf7\x5b\xd5\x33\x89\xed\x9e\x64\x72\xf7\x9b\xf2\xd6\xad\xe7\xd1\xd8\xea\x1e\xdd\x71\xdb\x8e\x2d\x4f\x6f\xea\x6a\x4b\x03\x91\x90\x84\x98\x02\x34\x00\x68\xb7\xb2\x95\xff\xfd\x29\x1c\x00\x24\x48\x91\x14\xf5\x66\x4b\x6e\x24\x55\x89\x5b\x24\xf1\x72\x00\x1c\x9c\xd7\xcf\xf9\x9f\x7f\x43\xe8\x9d\x7c\xc6\x93\x09\x11\xef\xce\xd1\xbb\x3f\x9f\xfd\xf0\xee\x44\xff\x46\xd9\x98\xbf\x3b\x47\xfa\x39\x42\xef\x14\x55\x09\xd1\xcf\xc7\xc9\x42\x11\x1a\x27\x1f\x24\x11\x4f\x34\x22\x1f\x70\x3c\xa3\xec\x6c\x2e\xb8\xe2\xf0\x21\x42\xef\x9e\x88\x90\x94\x33\xfd\xba\xfd\x13\x31\xae\x90\x24\xea\xdd\xbf\x21\xf4\x2f\x68\x5e\x46\x53\x32\x23\xf2\xdd\x39\xfa\xbf\xe6\xa3\xa9\x52\x73\xd7\x80\xfe\x5b\xea\x77\xff\x1b\xde\x8d\x38\x93\x69\xe1\x65\x3c\x9f\x27\x34\xc2\x8a\x72\xf6\xe1\x1f\x92\xb3\xfc\xdd\xb9\xe0\x71\x1a\xb5\x7c\x17\xab\xa9\xcc\xe7\xf8\x01\xcf\xe9\x87\xa7\x3f\x7d\xc0\x91\xa2\x4f\x64\x98\xe0\x94\x45\xd3\xe1\x3c\xc1\x4c\x7e\xe0\x62\xf2\xe1\x7f\x68\x7c\xc6\xc5\xe4\x5f\xf0\xc7\x5c\xf0\x7f\x90\x48\x99\x7f\xc4\x7c\x86\x29\x33\x7f\x33\x3c\x23\xff\xca\x1a\x45\xe8\xdd\x84\x28\xef\x9f\x7a\xea\xe9\x6c\x86\xc5\x42\x93\xe7\x23\x51\xd1\x14\xa9\x29\x41\xa6\x53\xe4\xe8\xc5\xc7\x08\xa3\x73\x41\xc6\xe7\xbf\x09\x32\x1e\x3a\xaa\x9f\x19\x6a\x5f\xc1\xd0\x6e\x13\xcc\x7e\x3b\xb3\x34\x83\x96\xf9\x9c\x08\x98\x68\x2f\xd6\xad\x7f\x22\xaa\x03\xcd\xe6\xef\xff\xd9\x7f\x5d\x10\x39\xe7\x4c\x12\x59\x18\x1f\x42\xef\xfe\xfc\xc3\x0f\xa5\x9f\x10\x7a\x17\x13\x19\x09\x3a\x57\x76\x65\x3b\x48\xa6\x51\x44\xa4\x1c\xa7\x09\x72\x2d\xf9\xa3\x31\x73\xd5\xcb\x8c\x97\x1a\x43\xe8\xdd\xff\x4f\x90\xb1\x6e\xe7\xdf\x3f\xc4\x64\x4c\x19\xd5\xed\x4a\xb3\x9b\xf2\xe1\xbe\x2b\x7c\xf5\xaf\x7f\xab\xfa\xfb\x5f\xde\x8c\xe6\x58\xe0\x19\x51\x44\xe4\xeb\x6f\xfe\x53\x9a\x8b\x5e\x24\xdd\xb9\x59\xd1\xf2\xa0\x4b\x33\xbd\x81\xbf\x70\x72\x82\xb8\x98\xa0\x47\xb2\x40\xb0\xa5\x48\x8c\x14\x87\xb5\x13\x44\xf2\x54\x44\xcb\xb3\xa7\xf0\xbd\xde\x66\xe5\x27\x82\xfc\x9e\x52\x41\xf4\x32\x29\x91\x92\xd2\x53\xb5\x98\xc3\xf0\xa4\x12\x94\x4d\x7c\x22\xfc\xeb\xa4\xd5\xa4\xec\xee\x5c\x31\xb1\x6b\x3c\x23\x7a\xa7\xe9\x39\xd8\x2f\x0a\xf3\x41\x23\x92\x70\x36\x91\x48\xf1\xc3\x99\x9a\x39\x6b\x6b\xcc\xcc\x7c\x50\x3b\xb1\x01\xeb\xb8\x57\x22\xcc\xd0\x88\x20\xcd\x6e\x68\x4c\x04\x89\x11\x96\x08\x23\x99\x8e\x24\x51\xe8\x99\xaa\x29\x65\xfa\xdf\x73\x12\xd1\x31\x8d\x1c\xcd\x0e\x87\x36\xf0\x67\x33\x65\x1e\x24\x11\x7a\xe0\x4f\x34\x26\x31\x7a\xc2\x49\x4a\xd0\x98\x8b\xe2\x3e\x1e\xb0\xfe\x54\xd3\x61\x36\xa2\x0c\xf8\x89\xa6\xa5\xdb\x21\x7f\x74\xe4\xfa\x23\xd2\xfd\xa1\x94\xd1\xdf\x53\x92\x2c\x10\x8d\x09\x53\x74\x4c\x89\x2c\xb7\xf6\x47\x6e\x8f\x10\x3a\x45\x9a\xce\x44\x28\xa0\x37\x67\x8a\x7c\x55\x12\x9d\xa2\x84\x3e\x12\xf4\xfe\x8a\x4a\x85\x3a\xb7\xbd\xf7\x27\xe8\xbd\x61\x02\x08\xd8\xef\xfb\x17\xa0\x70\xf6\xf7\x7f\x7b\xfc\x44\xe1\x49\x99\x93\xbc\xeb\x68\x16\x75\x6f\x6e\xbf\xbc\x85\xff\xfe\x37\xbf\x1d\xbb\x5e\x8d\x57\xca\x11\xdf\x22\xe1\x12\x09\xfc\x36\xf0\xdb\xc0\x6f\xf7\x4f\xe1\xfd\x4b\x67\xbf\xa7\x44\x2c\x1a\x66\x35\xc6\x89\x3c\xe8\x6b\x24\xbf\x43\xec\x05\xd2\xf6\xda\x80\xd5\x2f\xde\x18\x52\x6f\xbc\x6d\x2f\x0c\xdd\x6e\xf9\xc6\x90\xc7\x75\x65\xe8\x29\xec\xfb\xda\xd8\xe6\xce\xc0\x0a\x0e\x33\xa6\xcc\x9c\xfd\x8c\x15\x08\xa9\x8f\xbf\xdb\xbe\x07\xc2\x29\xb7\xb9\x42\xbc\x99\x79\xb7\x88\xbb\x1c\x3c\xaa\x1c\xe0\xbc\x13\x3a\xa3\xab\xd6\xb7\xc7\x62\x1a\x61\x65\x79\x38\x4b\x67\x23\x22\x34\x19\x1c\xd7\x82\xd9\x8e\x34\x17\x53\xa9\x60\x24\x6e\x31\xcd\x6d\x38\x1a\x65\x8a\x4c\x88\x28\x7f\x3d\xe6\x62\x86\x95\x7d\xe1\x3f\xfe\xb2\x2e\x21\x14\x7f\x24\xab\xd6\xbf\x67\x56\x33\xc2\x12\xb6\xc1\x2c\x4d\x14\x9d\x27\x04\xcd\xf1\x84\x48\x4b\x91\x34\x51\xf2\x04\x5e\x93\x44\x3c\x11\x71\x9a\x5d\xac\xd0\x83\x13\x28\x52\x69\xb8\xff\x38\x93\x8b\x19\xf9\xaa\xa0\xa5\x01\x03\x91\x02\x48\xe4\x5f\x94\x2f\x73\x39\xb4\x20\x95\xe4\x42\x0d\x47\x8b\xb3\x47\xb2\xd4\x6f\xed\xce\xc1\x0c\x61\xa5\x04\x1d\xa5\x8a\xe8\x79\xeb\x36\xdc\xd5\x07\xec\xd1\xc8\x1d\x6d\x58\xc3\xeb\x4d\x38\xa6\x82\x44\x30\xb7\x75\x0e\x4c\xf6\x95\x9e\xb7\xbe\xf8\x17\x66\xf6\x5a\x0e\xd0\x62\x56\x05\x05\xb2\x25\x1f\xb0\x01\x43\xa7\xe8\xb2\x7b\x7f\xd1\xbd\xbe\xec\x5d\x7f\x3a\x47\x3f\x2d\x50\x4c\xc6\x38\x4d\xd4\x09\x1a\x53\x92\xc4\x12\x61\x41\xa0\x49\x12\x6b\x51\x4a\x0f\x86\xb0\x98\xb2\x09\xe2\x22\x26\x62\x7f\x64\x2c\x3d\x25\x2c\x9d\x95\xee\x15\xf8\x3d\x1f\x7d\xe9\x0b\x2d\x62\x64\x8f\x0a\x4f\xfe\x7b\x89\xc0\x30\x63\xdd\xb7\xd7\xda\x9a\xcb\x18\x04\x35\x5f\x50\x8b\xa6\x34\x89\x05\x61\x1f\x14\x96\x8f\x43\xf2\x95\x44\xa9\x91\x33\xc0\x8e\x5c\xfc\x71\xa8\x15\x09\x1e\x93\xe2\x2f\x85\x7f\x18\xab\xf3\xda\x9f\xe5\x92\xe1\xda\x9f\x66\xb6\x88\xb5\xbf\x04\xcb\x45\xbb\xef\xe0\x17\x1a\x57\xbe\x0d\xbf\xac\x98\x83\x7b\xa7\x61\xb0\xee\x95\xda\x51\xb9\x17\xac\x00\x5c\xf9\x8e\x20\x4a\x2c\x86\x58\x29\x32\x9b\xab\x35\xad\x32\x18\x25\x5a\xcc\x6e\x12\xab\xaf\x79\x4c\xba\xae\xbf\xdf\x90\x91\xee\x49\x8c\x46\x0b\x7b\x2c\xc6\x44\x10\x16\x91\xfa\x16\xfa\x58\x3e\xe6\x2d\xac\x92\xcd\x0b\xfd\xc9\x8f\x5c\xe8\xcf\x8f\xc2\x31\x50\x18\xf9\x4b\xc8\xe8\x9b\x9c\xd4\x37\xe6\x4d\xd8\x94\xeb\xbc\x39\x5b\xd8\x86\x3c\x34\x58\xce\xb6\xa7\x64\x5b\x3b\x1b\x17\x48\x2e\xa4\x22\xb3\x95\x16\xb7\xe3\x21\x84\xbd\x24\x0f\x75\xc0\xa5\x7b\xfa\x1b\x38\xf5\x45\xa9\x23\x1c\xef\x35\x48\xb6\x2b\x7b\xf9\xa1\xcf\xd3\x05\xc0\x34\x4f\xf5\xde\x2d\x9f\xe7\xae\x3b\x8a\x69\x16\xe4\xe1\x5d\x0f\x72\x4f\x16\xa8\xda\xb5\x72\xd4\x1e\xc2\x00\x56\xd8\x1e\x8a\x1e\x97\xec\xfc\xe9\x4f\x7d\xa3\x9d\xb1\xd0\xaa\x29\x95\x9e\xfd\x12\x45\x5c\x18\x71\x38\xb6\xe7\xdd\x98\x1f\x3a\xfd\xce\x7d\xb7\x7f\x8e\x3a\x28\xc6\x0a\xeb\x03\x2e\xc8\x5c\x10\x49\x98\x02\xd3\x8e\xfe\x5e\x2d\xd0\x8c\xc7\x24\x31\x46\x88\x8f\x5a\xfa\x47\x97\x58\xe1\x0b\xac\x70\xc2\x27\x67\xa8\x03\xff\xd4\x1f\x53\x89\x70\x22\x39\xc2\x6e\x5b\x91\xd8\x35\x81\x59\xec\x58\x0b\x46\x11\x9f\xcd\x69\x92\x79\x9b\x32\x7b\x1b\x65\x31\x7d\xa2\x71\x8a\x13\xc4\x47\x9a\xab\xc8\xb3\x01\xeb\x3e\x11\xa6\x52\x9c\x24\x0b\x84\x93\x04\xd9\x6e\xdd\x0b\x48\x4e\x79\x9a\xc4\xba\x5d\x37\x4a\x49\x67\x34\xc1\x42\xcb\xb4\x66\xb4\x37\xb6\x2d\xd4\x9f\x92\x6c\xac\x30\x2e\x4d\xcd\x19\x7e\x24\x12\x51\x85\xe6\x5c\x4a\x3a\x4a\xf2\x33\xff\xd0\x43\x30\xee\x8b\xab\x1e\x98\x78\x22\x85\xb8\xe1\xa1\xae\x73\x6b\xd2\x73\x3d\xce\x30\x63\x04\x3a\xe6\x6a\x4a\x84\xed\xde\xbe\xfc\xda\xd6\x9a\x87\xeb\xfb\xdb\xee\x45\xef\x63\xaf\x7b\xb9\x6c\xae\xe9\x77\xee\x7f\x59\xfe\xf5\xcb\xcd\xdd\x2f\x1f\xaf\x6e\xbe\x2c\x3f\xb9\xea\x3c\x5c\x5f\xfc\x3c\xbc\xbd\xea\x5c\x2f\x3f\xb4\xdb\xaa\xb5\xe5\xc7\x1f\xd9\xce\xce\xd6\xd1\x19\x85\x82\x51\x7f\x8d\x65\xdf\xb5\x51\xff\xe4\xed\x5a\xf5\xc7\x34\x01\xa3\x43\x6b\x8b\x7e\x66\x35\xb2\x5f\xa2\x39\x96\xd2\xc8\x81\x66\x04\x67\x03\xf6\x99\x0b\xcd\xae\xc7\x5c\x73\x44\x2d\x2b\x2a\x91\x46\x8a\xb2\x49\xf6\xd1\x39\x1a\xa4\x3f\xfc\xf0\x63\x74\x45\xd9\x23\xfc\x45\x0e\x91\x38\xc1\xe5\x11\x5c\x1e\x07\xe7\xf2\xf8\xb7\x8a\x4f\xf7\xef\x1e\x08\x36\xfe\x60\xe3\xdf\x9f\x8d\x3f\x98\xf8\xbd\x31\x04\xfb\xf6\xb6\x84\x08\x06\xb0\x60\xdf\xde\x9e\x10\xc1\xbe\x7d\xa0\x33\x0e\xc7\x3b\xd8\xb7\x83\x7d\x3b\xd8\xb7\x83\x7d\x3b\xd8\xb7\x83\x7d\xfb\x9b\xb1\x6f\x1f\x60\xc8\x53\x30\xf2\x07\x23\x7f\x30\xf2\x07\x23\x7f\x30\xf2\x07\x23\xff\xf1\x18\xf9\xb5\xb4\xfb\xa1\x1c\xfa\xbf\x27\x08\x19\x2d\x5c\xb2\x79\xaa\x40\x94\xe4\xa9\xd2\x7f\xea\xfe\x61\xaf\x34\x40\x00\xb4\x33\x28\x7f\x22\x2a\x7b\x51\x8b\xb6\x47\x11\x2b\xfe\x85\x8b\xc7\x71\xc2\x9f\xb3\x91\x7f\x22\x4a\x0f\xfe\xce\xf6\x12\xa0\x65\x02\xb4\x0c\x0a\x50\x07\xbb\x86\x3a\x38\x28\x13\xf5\xae\xf8\xbb\xfb\xfa\x9d\x56\xfe\x15\xa9\xe5\xc5\x7d\x22\x66\x94\x39\xd9\x85\x32\x2d\xe4\x4e\x04\x91\x72\x5b\x0e\x9c\x35\x9c\xbd\x7e\x14\x3c\x38\x1b\x6d\x36\xfe\xc0\x7d\x03\xf7\xad\x99\x5a\xe0\xbe\x6f\x8c\xfb\xb6\x98\xda\x88\xc7\x4b\xea\x84\x19\x49\xd5\x93\xe6\x91\xec\x8c\x43\xfd\x9e\x92\x76\x61\x07\x2f\xa1\x35\x1c\xb5\xa2\x70\x0c\x77\xd4\x01\xe8\x09\x81\xa9\x07\xa6\x5e\x4d\x99\xa3\x64\xea\xc7\xe8\x13\xd8\x3f\x4f\x2f\x7a\x51\x72\x73\x50\x05\xd0\x43\x7d\x8c\x67\x6d\x08\x67\x4d\x84\xa6\x17\x80\xf9\x22\xd7\x44\x31\xcc\x71\xc5\x55\x51\x78\xf9\x68\xec\x4a\x85\x51\xbf\xfc\x5d\xf1\xc6\xd1\x06\xbe\x95\x60\xcb\x10\x4b\xb9\x21\xa1\xde\xf0\xa5\xf9\x72\x91\x90\x2f\x7f\xdb\x7d\xb3\x77\x5a\xb8\xd2\xec\x7f\x02\xc3\x0f\x0c\x3f\x30\xfc\x57\x62\xf8\x1b\xd0\x3d\xa8\x70\x4b\x97\x5a\x25\x98\x5f\x5b\xf4\xbe\x75\x52\xf9\xd6\xc8\xdd\x6b\x9d\xac\xb7\x22\x3b\xaf\x32\x1d\xaf\x2a\xff\x6e\x39\xe1\xae\x32\xc3\x6e\xbb\x94\xba\x4d\xef\xea\xf6\x49\x72\x9f\x88\x2a\xbc\x7c\x34\xfa\x67\x61\xd4\x2f\x7f\x59\xbf\x7a\x30\xe8\x6b\xf1\xe9\x6f\x2f\x21\x30\x64\x00\xee\x91\x74\x6f\x5d\xac\x39\xdc\x1c\xbf\x6f\x20\xa9\x2f\x64\xf1\xad\x45\xa3\xb7\x95\xb6\xf7\x56\xf3\xf4\x8e\x33\x31\x2f\x64\xe2\x85\x4c\xbc\x9d\xaa\xbc\xa5\xa7\xdf\x54\x26\xde\x31\xa7\xde\xbd\xbc\x79\x22\x98\x1c\x0e\xdf\xe4\x10\x2c\x0e\xf6\x3f\x41\xfb\x5e\x7b\xe6\x41\xb4\x0f\xda\x77\x9b\x99\x07\xed\x3b\x68\xdf\x07\x78\x44\x83\xf6\x1d\xb4\xef\xa0\x7d\x07\xed\x3b\x68\xdf\x28\x68\xdf\x5e\x43\xaf\x05\xd8\x70\x08\xce\xcd\xa3\xb2\x39\xe4\x53\x1f\xba\x03\xbe\x0c\x72\x50\x60\xbb\x6d\x70\x0f\xe0\x2f\xa7\xd4\xaf\x8b\xc3\x5b\xab\xa5\x5f\xe6\x83\xed\x02\x93\xfc\xcd\xb2\x8a\x15\x0a\xfb\xd2\x77\x47\x11\x23\xb0\x34\xea\x90\x6e\xbb\xa9\xc8\xf3\x4a\x42\xc3\x9e\x28\x70\x24\xd7\xd7\xfa\x0b\xf5\x86\x75\xc9\xa0\x43\x6e\x9f\x42\x77\x34\xba\xe3\xf1\xe8\x8c\x2f\x2f\x5b\xbc\x45\x71\x22\x48\x13\xde\x18\xc2\xc5\x1b\x2e\xde\x70\xf1\x86\x8b\x37\x5c\xbc\x21\x03\xdf\xbe\xbf\x57\x79\xa2\x24\x4c\xb4\x02\x68\xdc\x79\x65\xa0\x0a\x51\xc2\xbb\x81\x57\xd5\xf9\x29\x7f\x4d\x89\xfc\xcb\x51\xca\x14\x2f\x51\xea\x27\x08\x15\x47\x22\x54\xbc\x49\x5b\x52\x90\x94\x82\xa4\x54\x4d\x99\x56\x92\xd2\x80\xf5\xa7\x9a\x0e\xb3\x11\x65\x99\x37\xcf\xed\x90\x3f\x3a\x72\xfd\x11\xe9\xfe\x50\xca\xe8\xef\x29\x49\x16\x39\x4f\x92\xe5\xd6\x32\xbc\x68\x74\x8a\x34\x9d\x89\x50\x40\x6f\xce\x14\xf9\xaa\x24\x3a\x45\x09\x7d\x24\xe8\xbd\x66\xcc\xa8\x73\xdb\x7b\x7f\x82\xde\x5f\x41\xd9\x3a\x34\x4f\x30\x93\xef\x0f\xc6\x71\x13\xc0\xfa\xf7\x05\xd6\x1f\xb0\xfa\x03\x56\x7f\x5b\x02\x05\xac\xfe\x80\xd5\x7f\xbc\x58\xfd\x3b\xd3\x0f\x37\xc4\xe5\x7c\x15\x4d\xf1\x38\x7d\xd9\x41\x53\x44\x41\x53\x0c\x9a\x62\xd0\x14\x83\xa6\x78\x24\x9a\xe2\x61\x50\x38\xa8\x89\x41\x4d\x0c\x6a\xe2\x0e\x89\x13\xd4\xc4\xa0\x26\x06\x35\x71\x49\x4d\x3c\x5e\xcf\xe1\x8f\x41\x1f\x0c\xfa\xa0\xff\xfb\xf1\xe9\x83\x41\x75\x0a\xaa\x53\x35\x65\x8e\x53\x75\x3a\x18\xd9\xe7\x18\x43\x8a\x82\x52\xd8\x9e\x10\x41\x29\x6c\x4d\xaa\xa0\x14\x36\x10\x27\x28\x85\x41\x29\x0c\x4a\x61\x6b\xa5\xf0\x98\xdc\x85\x41\x3b\x0c\xda\xa1\xff\x7b\xd0\x0e\x83\x76\x18\xb4\xc3\xe0\x58\x0b\xaa\x61\x50\x0d\x83\x6a\x18\x54\xc3\x55\xc4\x09\xaa\x61\x50\x0d\xbf\x2d\xd5\x90\x3c\x11\xa6\x24\x14\x43\xf4\x15\xa5\x77\x73\x2e\xeb\x15\x3c\x9f\x3b\x54\x28\x77\xd0\x66\xb1\x28\x21\xa0\xb6\xfd\x86\xa6\x58\x22\x1e\x45\xa9\x28\x9d\x81\xb2\x7a\x77\x21\x08\x56\x04\x5a\xd0\x1f\x1e\x83\x5a\xb7\x3c\xdd\x97\x02\x20\x1e\xf1\x78\x69\xb7\x9b\x83\x50\xf5\xa4\x59\xcc\xda\xd9\xd4\x7f\x4f\x49\x3b\xad\x76\x8f\x9b\x5a\x61\xf9\xb8\xe3\x4d\x5d\x00\x9a\xde\x68\x53\x43\x0b\xc7\xb2\xa9\x97\xa7\xfb\xcd\x6c\xea\xaa\xa9\x1f\xc2\xa6\x7e\xe6\xe2\x71\x9c\xf0\xe7\x1d\x6f\xec\x2f\xb6\xd9\xed\x36\x77\xd6\xca\xb1\x6c\xf0\xea\x69\x7f\x33\x9b\xbc\x6e\xfa\xaf\xbb\xd1\xb3\xfa\x10\xad\xb7\x78\x5f\xd0\xc9\x44\xab\x19\xa0\xe1\xe9\xad\x68\x4d\x1f\x0d\x00\x49\x79\x45\x84\x95\xdb\x3a\x7b\xf5\x18\xb6\x74\x36\x58\x33\xf6\x6f\x66\x2f\x2f\xcd\xfb\x40\x36\xf1\x2b\x81\x76\xb4\x2b\xf8\x71\x45\xa5\xca\xde\x3c\x8e\x6c\xab\x6c\xb8\x2f\xe1\x37\x09\xf9\x3b\xc1\xcd\x10\xdc\x0c\x87\xef\x66\x38\x18\x83\x5a\x30\xc9\xef\xc9\x24\x4f\x65\xb0\xc9\x07\x9b\x7c\x5b\x02\x05\x9b\x7c\xb0\xc9\x1f\xaf\x4d\x7e\x4d\xdd\x61\xc3\x08\xad\x3a\x83\xd0\x3a\xfa\xc3\x27\x92\xab\x0f\xc7\xa5\x3d\x04\xcd\x21\x68\x0e\x41\x73\xd8\xb9\xe6\x70\x50\xe5\x08\x77\xc5\xa5\xdd\xd7\xef\xe6\x69\x3d\x4f\x7d\x98\xc7\x58\x11\x94\x31\x6f\xbb\x13\xf4\xc5\xa8\x78\x76\x08\xec\x7e\xd8\x92\xed\x9a\xbe\x8e\x94\xf3\x9a\xc1\xbf\x60\x79\xd6\xc0\x87\x03\x1f\x0e\x7c\xf8\xb0\xf1\xcd\x0f\xc7\x7d\xe0\xd8\xd3\xa1\xb8\x0f\x04\x89\xf8\x13\x11\xad\x7d\x61\x77\x04\x1c\x60\x20\xdd\xcf\x05\x79\xa2\x3c\x95\xc9\xe2\x54\xa4\x0c\x39\xdf\xb1\x77\x49\x41\x0c\xff\x33\x4d\x12\xc4\x99\x56\x15\x15\x16\xca\x3d\x66\x13\x34\x16\x7c\x06\xdb\x25\xc1\x52\xa1\x47\xc6\x9f\x19\x1a\x63\x9a\xa4\x82\xa0\x39\xa7\x4c\x9d\x0d\x58\x8f\xa1\x3b\x33\x46\xa8\xb9\x78\x82\x52\x49\x84\xd4\x47\x8d\x71\x85\xa2\x29\x66\x13\x82\x30\x5b\xd8\xe2\xe5\x39\x03\xd7\x9b\x34\x35\xb7\xa6\xee\xa2\x04\x58\x9f\x8d\x11\xac\x8d\x54\x22\x2a\x11\xf9\xaa\x04\x99\x91\x64\xa1\xfb\xd0\x57\x94\xe2\xc8\xd2\xc7\x0c\xd5\xee\x79\x22\x04\x17\x12\xaa\x35\x8e\x16\xff\xc4\x4c\x51\x46\x10\xe8\x74\xd2\x58\x12\x4f\xd1\x15\x97\x60\x62\xfa\xe5\xaf\x12\x45\x49\x2a\x15\x11\x27\x68\x94\x4e\xa4\x56\x6a\xe7\x09\x56\x63\x2e\x66\x7a\x84\x94\x49\x85\x47\x34\xa1\x6a\x71\x82\x66\x38\x9a\x9a\xb6\x80\x06\xf2\x64\xc0\x62\xfe\xcc\xa4\x12\x04\x67\xbd\xbb\x87\xe8\x3b\xff\x99\xd9\x00\xf2\xfb\x13\x38\x9b\x74\xa6\x35\x73\x6f\xf8\xf9\x8a\x9b\x35\xd1\x8d\x90\x18\x8d\x48\x84\x53\x69\xf3\x2e\x94\x58\x20\xf2\x75\x8a\x53\x09\x6b\xa7\xa7\x67\xeb\x5d\x46\x7c\x36\x4f\x88\x22\x88\x8e\x91\x12\xfa\xe2\xc2\x13\x4c\x35\xe9\xee\x09\x69\x21\x6d\xd8\x05\xb4\xbb\xfe\x37\xe0\x12\x33\x2e\x08\x8a\x89\xc2\x34\x69\xcc\xc5\xb1\xdf\x06\x27\xe9\x31\x71\xb9\xe2\x82\x1f\x04\x9b\x4b\xc0\xa0\xbf\x03\x9f\x3f\xb3\x9e\x86\x08\x27\x5b\xba\xff\xef\xec\xa0\xc2\xde\x3e\xae\xbd\x6d\x56\xed\x70\x36\xf7\x41\x7b\xfd\x8f\x6a\x4f\xbf\x90\xd3\x3f\x68\x57\x41\xbb\xaa\xa6\x4c\xf0\x8f\x87\x4c\xbc\xe5\x69\x05\xb7\x7f\x70\xfb\x07\xb7\xff\x2e\x89\x13\xdc\xfe\xc1\xed\xff\xcd\xba\xfd\x0f\xdc\xd3\x7f\x54\x1a\x43\xd0\x16\x82\xb6\x10\x7c\x31\x6b\x4e\xed\xe8\x64\xf4\x5d\x71\xe6\xcc\xd5\x1f\x93\x84\x28\x52\x6f\x7d\x24\x62\xa6\x75\x3b\x23\x75\x50\xa6\xc5\xd3\x89\x20\x52\x6e\xcb\x67\xb3\x86\x8f\x93\xdb\x66\xc3\x7f\x41\xff\x7e\x60\xbf\x81\xfd\x56\x53\xe6\x28\xd9\xef\xe1\x18\xd2\xbd\xc3\xfc\x52\x96\xf4\x8c\xff\x1e\x68\xa8\xd5\x51\x31\xe3\x17\x8f\xb4\x0a\x9c\x38\x70\xe2\x6a\xca\x04\x4e\x7c\xfc\x41\x49\xc6\xab\x3a\x9c\x27\x98\x0d\x69\x6c\x93\x13\x4c\x66\x42\x6e\xac\xd8\x97\x67\x53\x1f\xad\xd8\x00\xa6\x66\x00\xa5\xe2\x37\xfd\x49\x92\x3b\x3a\x10\x1f\xe9\x61\xac\x84\x8e\x35\xbe\x91\xdb\x04\xb3\x5e\x7c\x1c\x59\xcf\x95\xd3\x7f\x09\x67\xe8\xdb\x0b\x9e\xdd\xe6\x92\xc2\x0a\x9c\x6e\x98\x32\x63\x76\xcd\x81\x6f\x0b\x46\xe5\xc3\x98\xe8\x36\x57\x96\x37\x31\xef\xd6\x72\x97\x91\x47\x94\xc3\x9b\x76\xf0\xc5\x05\x54\xcc\xe0\x6d\x6a\x39\xe1\xe0\x6d\x3a\x5c\x6f\x53\x8b\x65\xdc\x8b\x0b\xf9\x85\x8f\xe7\x8b\xca\xac\x47\x2d\xa9\x06\x41\x15\x05\xb1\x2e\x88\x75\xf5\xb3\x0e\x62\x5d\x10\xeb\x82\x58\x17\xc4\xba\x20\xd6\xbd\xbe\x58\xd7\x62\x9a\xdf\x6c\x94\xc1\x2a\x51\xb5\x3d\xf2\xa9\xc9\xf1\x81\x54\xc0\x74\x9e\x70\x1c\x37\x45\x7a\xe5\xc2\xa4\x5f\x68\xab\x41\x02\x35\xad\xe7\x9f\x1d\x83\x00\x9a\x8f\xf6\x1b\xcb\x7f\x5a\x9e\xf8\xa1\x78\x0b\x5e\x0b\x03\xb5\x7a\xbf\xaf\xa1\x73\xc9\xbf\x1c\xd7\x8e\x0f\x90\xa8\x01\x50\xa3\x62\x6a\xc1\x77\x1d\x52\xbe\x42\x6e\xd4\x9b\x53\xdc\x43\x6e\x54\xc8\x8d\x0a\x66\x8d\xe6\x69\x07\xb3\xc6\x9b\xc8\x8d\x5a\x5f\x99\xd8\x63\xd9\xea\xed\xd5\x8a\xa3\x08\x39\x0a\x6a\x45\x50\x2b\x82\x5a\x11\xd4\x8a\x43\x2c\xe8\x1c\x74\x8a\xa0\x53\x04\x9d\x22\xe8\x14\x41\xa7\xd8\x39\x19\x83\x4e\xd1\x42\xa7\x80\xbf\x2c\x60\xe9\xda\x0a\xc6\x9a\x8a\xc5\x0a\x54\x86\xfc\xa3\x23\xd3\x2a\x82\x46\x11\x34\x8a\xa0\x51\xbc\xb8\x46\x71\x30\x13\xb2\xec\x73\xc5\x9c\xee\xdd\x82\x94\xe0\xa1\x0f\x6f\x3e\x6e\x44\x43\x68\x69\x85\x30\x51\x54\xd0\xb2\x5d\xa7\x3f\xf5\x75\x14\x13\x9b\x0a\x62\x79\x1e\xba\x89\x22\x2e\x0c\x53\x8e\xed\x2e\x37\xf2\x44\xa7\xdf\xb9\xef\xf6\xcf\x51\x07\xc5\x58\x61\xbd\xad\x05\x99\x0b\x22\x09\x53\x20\xab\x11\x88\xca\x05\x90\xee\xc4\x48\x15\x1f\xf5\xfd\x83\x2e\xb1\xc2\x17\x58\xe1\x84\x4f\xce\x50\x07\xfe\xa9\x3f\xa6\x12\xe1\x44\x72\x84\x1d\xe9\x49\xec\x9a\xc0\x2c\x76\x07\x0a\x03\xf6\x34\x4d\x32\xe5\x34\x53\x2f\x28\x8b\xe9\x13\x8d\x53\x9c\x64\xc1\xce\x03\x53\x60\x38\xc5\x49\xb2\x40\x38\x49\x90\xed\xd6\xbd\xe0\xe0\xac\x47\x24\x1b\xa5\xa4\x33\x9a\x60\xa1\xd9\xb1\x19\xed\x8d\x6d\x0b\x69\xc5\xd8\x8d\x15\xc6\xa5\xa9\x39\xc3\x8f\x44\x22\xaa\xd0\x9c\x4b\x49\x47\x49\x7e\x00\x1e\x7a\x08\xc6\x7d\x71\xd5\x03\x99\x2d\x52\x88\x1b\xce\xe1\x3a\xb7\x0a\x8c\xeb\x71\x86\x19\x23\xd0\x31\x57\x53\x22\x6c\xf7\xf6\xe5\xd7\x16\xbf\x1e\xae\xef\x6f\xbb\x17\xbd\x8f\xbd\xee\xe5\xb2\xfc\xd5\xef\xdc\xff\xb2\xfc\xeb\x97\x9b\xbb\x5f\x3e\x5e\xdd\x7c\x59\x7e\x72\xd5\x79\xb8\xbe\xf8\x79\x78\x7b\xd5\xb9\x5e\x7e\x68\xb7\x55\x6b\x51\xce\x1f\xd9\x3e\x64\x39\xf7\x75\x0b\x84\x00\x7b\xb8\x14\x56\xa9\x34\xd5\xa0\x05\x99\x50\xa9\x80\xfd\xb7\x91\xc2\x56\x03\x03\x1c\xad\xf4\x15\xaa\xb0\x04\x59\x2c\xc8\x62\x41\x16\x3b\x36\x59\xec\xe5\x4c\x02\x47\x14\xa6\xf8\xe3\x71\xdd\x3d\x01\xc4\x3d\x30\xe7\xc3\x67\xce\x07\xe7\x7a\x3b\x18\xd3\xf9\x31\x02\x44\x06\xa7\x62\x7b\x42\x04\xa7\x62\x7b\x5a\x05\xa7\x62\x03\x71\x82\x53\x31\x38\x15\xbf\x61\xa7\xe2\x51\xc6\x26\x06\x55\xc2\xbd\x17\x54\x89\xa0\x4a\xbc\x51\x55\xe2\x60\x28\x1c\xf4\x88\xa0\x47\x04\x3d\x22\xe8\x11\xcd\xc4\x09\x7a\x44\xd0\x23\x82\x1e\x71\x6c\xf1\x88\xc7\xa5\x49\x04\x2d\x22\x68\x11\x87\xad\x45\x1c\xcc\x84\x8e\xc7\x5b\xdc\x6e\x3e\x21\x72\x2f\x44\xee\x85\xc8\xbd\xda\xc8\xbd\x37\xaa\xc9\xef\x4a\x7e\x73\x5f\x1f\x5a\x40\xe2\x71\x89\x5f\xa1\x56\x51\xf6\x34\x08\x63\x41\x18\xfb\x46\x85\xb1\x03\x02\x51\x3c\x88\x92\x4b\x33\xac\xa2\x29\x1e\x25\x64\x98\xd9\xb2\x64\x5b\xf5\xfe\x8a\x4a\x25\x51\x94\x4a\xc5\x67\xf5\x97\xcb\x67\xd7\x43\x27\xeb\xe0\x82\xb3\x31\x9d\xa4\xe6\x6e\xf9\x0d\xb6\xbe\x77\xa2\x73\x01\x77\x31\x27\xab\xfc\x8a\x15\xad\x1f\xc5\xb5\x54\x3d\xf4\x97\xba\x9d\xd6\xd1\x47\x72\xdb\xa5\x55\x26\xb4\x08\x39\xbc\xeb\xde\xdf\x3c\xdc\x5d\x74\xcf\x51\x07\x44\x2c\x70\x27\x98\xad\x40\xff\xa9\x27\x85\x14\x96\x8f\xf9\x5a\x0a\xb3\xcd\x25\xc8\xd9\xe0\xbf\xd0\x22\x3f\x3a\x45\x17\x57\x0f\xf7\xfd\xee\x5d\x4d\x83\x76\xa3\x40\xe1\x45\x32\x9b\x27\x58\x91\x18\x3d\xa6\x23\x22\x18\xd1\xd2\x4e\x94\xa4\x5a\xb8\xc9\xbd\x1a\xa6\xd1\xee\x7f\x75\x2f\x1e\xfa\xbd\x9b\xeb\xe1\xdf\x1e\xba\x0f\xdd\x73\xe4\x76\x9c\x6e\x56\x8f\x4b\x8f\x22\x5e\x30\x3c\xd3\x8a\x95\xfe\x21\x2f\xf5\xf8\x7b\x4a\x52\x82\xb0\x94\x74\xc2\x66\x84\xa9\x72\x8b\x6e\xc0\x57\x9d\x9f\xba\x57\xc5\x96\xa7\x04\xfd\xf2\xd7\x7c\x50\x09\x1e\x91\xc4\xba\x59\xc0\x73\xa0\x37\x7a\xde\x91\xf5\xbf\xa4\x86\xaa\x7f\x7b\xe8\x5c\xf5\xfa\x7f\x1f\xde\x7c\x1c\xde\x77\xef\x7e\xed\x5d\x74\x87\x56\x58\xbe\xe8\xe8\x7e\x0b\x3d\x59\x99\x1a\xfd\x9e\xe2\x44\x2b\x5d\x7c\x0c\x7e\x0b\x1a\x11\xf4\x3c\x25\x0c\xa5\x0c\x76\x9c\xd1\xe4\xb4\x7a\x97\x75\xaa\x4f\x99\x99\xd1\xed\xd5\xc3\xa7\xde\xf5\xf0\xe6\xd7\xee\xdd\x5d\xef\xb2\x7b\x8e\xee\x49\x02\xba\x8e\x23\x3a\xac\xe2\x3c\x49\x27\x94\x21\x3a\x9b\x27\x44\x53\xc3\xe8\x72\x23\x32\xc5\x4f\x94\x0b\x7b\x74\x27\xf4\x89\x30\x43\x47\x38\xb3\xd0\xbe\xd3\x29\x86\x1e\xe9\x6e\xae\x3f\xf6\x3e\x9d\xa3\x4e\x1c\x67\x73\x90\xd0\x46\x61\xe7\x3c\x73\xf1\x38\x4e\xf8\xf3\x69\x71\xd8\x9a\x39\x40\xf7\x66\x13\xf1\x27\x22\x04\x8d\x49\x69\x1f\x75\xee\xef\x7b\x9f\xae\x3f\x77\xaf\xfb\x40\x31\x25\x78\x22\xd1\x94\x3f\x83\x85\x1e\x66\x08\x86\xfb\x27\x4c\x13\xe8\xcc\x2d\x16\x67\xe8\x79\x4a\xc1\xab\x43\xa5\x4f\x30\xa3\x76\x8a\x94\xbd\xba\xd1\xb9\x70\xf0\x96\xb5\xb1\xf2\x49\x5a\x7e\xa3\x74\x2c\x9a\x5e\x28\xec\xf2\xe5\x17\x57\xed\xd6\xe5\x2f\x4a\xdb\xad\x5e\x07\x5d\xda\x2f\xf5\x33\xcd\xd7\xba\xb5\x0a\x5a\xa4\xe1\xcb\x5d\xb3\x44\x09\x1a\xc9\x0f\xd9\xbe\xda\x2f\xc8\x18\x91\x7a\xc3\x2a\x3a\x23\xc8\xf6\x6c\x4f\xea\x96\xb5\x6a\x3f\x11\x95\xbd\xf8\xd9\x34\x7c\x14\x59\x69\x5f\x2c\x47\xc9\x06\xff\x89\x28\x3b\xfe\x90\xa0\x16\x12\xd4\x6a\xa6\x16\xb4\xdc\xed\xb5\xdc\x63\xab\xc8\x1b\x93\xf9\x72\x87\xa5\x89\xc1\x3b\xc6\x5f\xb9\x14\x5e\x63\x2c\xc1\xd6\x16\x9e\x90\x27\x92\x80\x20\xab\x04\xd6\x7a\xb1\x15\xcf\x46\x82\xe0\x47\x2d\xd3\xc6\xfc\xd9\x17\xce\x62\xa2\x30\x4d\xe4\x2b\x85\xdf\xfc\xf8\xe7\x57\xbd\x0f\x8f\xf7\x0a\x0c\x37\x60\x30\x89\x86\xcb\xe2\x1b\xbc\x2c\x8e\xd1\x29\x15\xee\xc0\x43\xb9\x03\x35\xb9\xe3\xa1\x73\x4f\x7f\xf8\x9f\x82\x51\xee\x5f\xfb\xd2\x0f\xef\x20\xde\x57\x36\x5d\x84\x5e\x85\xcd\xdf\xac\x53\x7b\xc5\x8d\xe8\x7d\x71\x14\xfa\xa0\x37\xde\x43\x32\xb5\xde\xf9\x96\x6f\x77\x4f\xcc\x88\xc2\x31\x56\x58\x1f\xa1\x09\x51\x67\xe8\x86\xc1\xb3\x3e\x96\x8f\x27\xc8\xdd\xeb\x9a\x77\xe6\xae\x85\x17\x28\xae\xd9\xd2\x66\xf5\xda\xc1\x08\x87\xc8\xd1\x83\x96\xbe\xcb\xa9\x05\xc1\x2b\xa4\x17\x1d\x32\x0e\x8c\xfb\xba\x55\xf4\xce\xee\x6e\x65\xd3\xe2\x11\x5f\xcc\x2f\x1b\xaf\xb3\xd3\x6b\x3a\x85\xa1\x87\x3b\xd8\xfc\x27\xdc\xc1\xe1\x0e\x0e\x77\x70\x13\x65\xc2\x1d\x7c\xc4\x01\x5d\x15\x57\xd6\xab\x46\x74\xb5\x31\x2b\x18\x9b\x42\x6e\x50\x58\x13\x78\x2e\xb7\x21\xac\x84\x8b\xa8\x90\x5a\x56\x62\x45\xe4\xdf\x50\x72\x1c\xfe\x65\x6f\x96\x2f\x81\x17\xb1\x53\x61\xc5\x64\x2c\x07\xab\xc2\x1e\x25\x9a\xb7\x27\xce\x6c\x23\xcb\x60\x05\x97\x0c\xa6\xcc\xdc\x49\x79\xf6\x92\x7c\x81\x1d\xb6\xe6\x44\xb7\x91\x6c\xbc\x89\x79\xc2\x8d\x93\x59\x3c\xa2\x1c\xc8\xa2\xee\x05\x56\xe2\x75\xec\xf8\xaf\x0f\x25\x41\xde\x2e\x92\x44\x00\x4b\x58\xeb\x90\x04\xb0\x84\x97\x00\x4b\x68\xb1\x8c\x7b\x41\x40\x79\xe1\xe3\xf9\x9a\xaa\xc3\xf1\x38\x21\x8f\x4c\x67\x38\x2a\x7d\x21\xf8\x20\xf7\x6f\xff\x0c\xa6\xc2\x60\x2a\xac\xa6\x4c\x30\x15\x7e\x5b\xe1\x5a\xbb\xba\xef\xdd\xd7\xaf\xed\x85\x3c\xb2\x9b\x39\x38\x21\xc3\x25\x1c\x2e\xe1\x70\x09\x87\x4b\x78\x57\x14\x0e\xfe\xba\x35\x95\xee\xa3\xf0\xd2\x1d\xd9\xb5\x1e\x9c\x74\xe1\xc6\x77\x1f\x07\x97\xd6\xaa\x79\x06\x97\x56\x70\x69\x05\x97\x56\x70\x69\x05\x97\x56\xf6\x7b\x70\x69\xbd\xe8\x6e\xfd\x66\xcd\x76\xd5\x1a\x03\x8f\xc9\xb0\x02\x49\x26\xfb\x69\xe8\xa7\x0d\x16\x7e\x2d\xb8\xef\x0a\x4f\x7c\x5f\x5e\xe1\x41\x0e\xff\x0e\xfd\xd2\x78\xed\x3c\xfc\x26\x73\x22\x8f\x49\xeb\xbc\xfb\xc2\xcb\x87\x1e\x17\xe8\x26\x6a\x54\x0f\x7f\xe4\x2f\x90\x67\x5f\xde\x09\x6f\x2c\xfa\xac\x66\x57\xbf\x45\x4b\x5d\xc5\x19\x0d\x66\xbb\x95\x84\x7a\xc3\x80\x03\x96\x09\xbf\xc0\x78\x5e\xfe\x0e\x73\xc0\x7f\xc3\x8a\x9b\xac\xfa\x59\x7e\x9f\x55\x3f\xcf\x6e\xb5\xea\xc7\xfb\x29\x91\xd8\xfe\x52\x03\x3b\x9a\xff\xf6\x91\x84\xbb\xfb\x43\x7e\x09\x5b\x5a\xed\xc6\x78\x63\x17\x5b\xe3\x26\x7f\x73\xd7\x5b\xd3\x91\x0d\x97\x5c\x4b\x72\xbd\xd5\xab\x2e\xd4\x38\x6c\xb2\xe2\x85\x22\x82\x07\x68\xa5\x08\x46\xc4\x60\x44\x3c\x46\x23\xa2\x09\x3e\x18\xce\xb1\x20\x4c\x55\xe8\x16\xe5\xeb\x04\x5e\xf7\x8b\x4e\x39\xa9\x03\x1a\x40\x5a\xb4\x47\xf6\x42\xce\xae\xaa\x37\x16\x28\x5f\xd2\x5e\xde\xb0\x9d\xed\xc0\xf5\x91\xc3\x31\xb3\xbd\x55\x29\x3d\x18\xa1\x82\x11\xaa\x3c\xcf\x97\x33\x42\x6d\x40\xf7\xe0\x2c\x6a\xbc\xaa\xbe\x11\x43\xda\x81\xdf\x5b\x87\x64\x47\x7b\xab\x37\x57\xb0\x2f\xed\x80\x5c\x6f\xf5\x16\x7b\x2d\x93\xf2\xcb\x6b\xe9\xc1\x92\x16\x2c\x69\xc1\x92\x16\x2c\x69\xc1\x92\xe6\xff\x1e\x2c\x69\x4d\x74\x7f\x31\xf5\xc4\x8a\x40\x5e\xf5\xd1\x0f\xff\x93\xff\x9d\xa9\x25\xbe\x6a\xd1\x94\xc1\x7a\x21\x08\x9c\x0a\x2e\x6c\xfe\xe3\x2e\xea\x93\x62\x55\x10\x7a\xa1\xa2\x41\x83\x2e\x62\xb2\x8a\x6e\xcd\xdb\xc7\x55\x96\x74\x69\xd0\x2f\x9b\xff\xba\xbc\xf0\xed\x0e\x90\x5b\x19\x6a\x4a\x6c\x7a\x75\x1c\xb5\xdc\xcd\xc7\xf9\xc5\x20\xd1\x33\x4d\x12\x2d\xc9\x58\xa9\xed\x40\xa4\xd1\x57\xcf\x8a\xab\x5d\xf9\x57\xcd\x8d\xab\xe2\x0e\x55\x2c\xa1\x8d\x75\x7c\x57\x75\x8a\xdd\x66\x83\x12\xb2\xa0\xf7\xad\x30\xa7\xbf\x0d\x4e\xf0\x89\xa8\x97\x62\x03\x9b\x9e\xfd\xc6\x73\x2f\xc8\x98\x08\xc2\x22\x72\x80\x19\x59\xeb\xa4\x0a\x7e\x31\x93\xb4\x79\x82\x59\xf9\x6e\x7f\xaa\x8a\x5b\x3d\xad\x20\xea\x86\xea\xcd\xa1\x7a\x73\xa8\xde\x5c\x3e\xea\xa1\x7a\xf3\xdb\xa8\xde\xdc\x82\xcb\xee\xc0\xb6\xd7\x6c\xb0\x3d\x50\xbd\xcb\x7d\xfd\x2e\x26\x09\x51\xa4\x56\x50\xba\x84\xc7\xaf\x25\x28\x99\xde\xdf\x86\xac\x64\xe6\x12\xc4\xa5\x6f\x46\x59\x72\x0b\x7e\x10\xca\x92\x39\x6b\xbe\xce\x04\xc9\x15\x9e\x72\x6d\x32\x2a\xde\xa6\x99\xe5\x28\x12\x28\x0e\xc7\xce\xb2\xf7\x4b\xf1\xa5\x99\x43\xb0\x21\x2d\x8f\x24\xd8\x90\xb6\x63\x8b\x85\x1f\x2b\x50\x98\x5e\x9c\x55\x6e\x22\x60\x15\xf8\xe5\x25\xbc\x7e\x9c\x5c\xb3\x3c\xf6\x63\xe6\x9d\x5e\x6b\x87\xc1\x44\xbe\x5d\xf6\xb9\x74\xc4\xdb\x4d\xdc\x86\xfe\x1c\xef\xbc\x0f\xe5\xda\xa8\x3b\xd6\x87\x7c\x79\x14\xeb\x68\x1d\xaf\x47\xe2\x98\xd8\xff\xab\xb8\x24\xde\x9c\x98\xfc\xcd\x19\x0d\x82\x8f\x25\xf8\x58\x82\x8f\x25\xf8\x58\x82\x8f\x05\x6d\xea\x63\xd9\x95\xa4\x75\xd4\x0e\x89\xe3\x14\x95\x5e\xd6\x23\x11\xa4\xa5\x63\x97\x96\x0e\x45\x29\x3c\x2e\x17\xcb\x96\x65\x95\x0f\x45\x2f\x7c\x4b\xc6\xc1\xe3\xd2\x11\x0f\xce\x1c\xf8\xcd\x31\xbe\xcd\x4c\x7f\x47\x3b\xdd\xa0\x15\x07\xad\x38\x68\xc5\x41\x2b\x0e\x5a\x31\x0a\x5a\xf1\xda\x5a\xf1\x5b\x12\x14\x8f\x4e\x43\x0e\xb2\xe2\x6b\x4f\xf8\x1b\x93\x15\x0f\xc5\x26\x50\x77\x72\x0f\xd4\x32\xf0\x6d\x06\x14\x1d\xf1\x4d\x10\x72\x5e\x91\xb7\x74\x21\xe0\xe6\x5b\xe1\xa3\x07\x1e\x70\xf3\xf6\xec\xaa\x47\xcc\x23\x43\x36\x70\x10\x2b\x77\x34\xdd\x60\x82\x0c\x26\xc8\x60\x82\x0c\x26\xc8\x60\x82\x44\x87\x9d\xfc\xbc\xd2\xe0\x14\xf2\x9f\xf7\x65\x58\x3d\x62\x49\x31\xe4\x42\x07\x61\x71\x77\xd3\x3d\x54\xdd\xf9\x90\x6c\x90\x72\xfd\xba\x11\x2b\x91\xb8\xed\xb4\x7f\x6b\x60\x60\x57\x54\x3a\x45\xf7\x98\xf8\x95\xdc\x37\x4b\xda\x06\x7e\xd7\xad\xe8\x9b\x45\xdf\xdd\xa2\x1a\x3d\xf0\xae\x37\x5a\x8e\x3e\x80\x03\x37\x10\x27\x80\x03\xaf\xc5\x4d\x02\x38\xf0\x4b\x80\x03\xef\x5c\x59\x99\x73\x59\x7f\x73\xdf\x91\x09\x95\x70\x64\x1b\x6a\x3e\xb9\x3b\x1b\x0a\x0f\xc0\x56\xf8\xa8\x5f\x40\x31\x99\x27\x7c\x01\xf6\xa1\x86\xeb\xdc\x75\x71\xbb\x24\x51\x1f\xfa\x8d\xee\x46\xfe\x52\x3a\xc7\xa1\xc8\xa4\xf9\xbc\x0f\x42\x0a\x35\x21\xf1\x39\xb6\xb5\x85\xd7\xf0\x7e\x28\x95\x38\x6b\x72\x7a\x3f\x58\x4f\x37\x18\x04\xa9\x84\x5b\x6b\xe5\xc6\x1f\xb0\xea\x07\xce\x30\x36\x22\xee\x9a\x1c\xa5\xca\x2b\xf5\x21\xb5\xdc\x35\x27\x42\x2d\xbc\x37\xc9\x6c\xae\x16\xff\x39\x60\x54\x65\x6e\x45\x3a\x61\x5c\x18\xa6\xa7\x3f\x9e\x62\x16\x27\x44\xe8\x3b\xd7\xb5\x13\x61\xc6\xb8\x02\x69\x04\x26\x10\xa3\x27\x8a\x8d\xec\xd2\xb9\xed\xb5\x76\xae\xff\xe5\x88\x4e\xdf\xcb\x7a\xcf\x8b\xdb\x6b\x5b\x0b\xd7\x81\x95\x28\x29\x1c\x95\x15\x73\xfb\x94\xf0\x11\x4e\x92\x05\x4a\x8b\xb6\x0d\xdd\xd6\x81\x4c\xe7\x50\xf8\xe4\xc1\x32\xc6\xc0\x0d\xb3\xc9\x36\x71\xc3\x1f\x03\x37\xfc\x36\xb9\xe1\x8a\x09\x5d\x92\xb9\x20\x5a\xef\x89\x4f\xb4\xf2\xef\x97\xd5\xa0\x4c\x2a\x82\xe3\xb3\x01\x0b\x7c\xd2\x3e\x39\x02\x3e\x19\x64\xc5\x0d\xb8\xe3\x31\xc5\xe0\xbf\x1a\x77\x0c\xe2\xd4\xdb\x62\x13\x81\x37\x64\x93\x6d\xe2\x0d\x81\x35\x04\xd9\xe2\xdb\x66\x1a\x0a\xcb\x47\xbf\x1a\xb2\x55\xc5\xce\x8a\x55\x92\x87\x15\x25\xa5\xff\xd5\xe6\xbd\x42\xd9\xff\x15\xef\x66\x15\x95\x57\xbf\x0a\xd5\x95\x6b\x5e\xb4\xa5\xb8\xcd\x63\x98\x5e\x79\x1c\xee\x47\xbf\x43\xf7\x5b\xde\xb2\xfb\xe5\x89\x08\x49\xb9\x7d\x4d\x10\x25\x16\x43\xac\x94\xe6\x5a\x6b\xc7\x5b\x37\xd8\xa6\xfb\x58\x3e\xb6\xab\xec\xfc\x89\xa8\xc2\xcb\x87\x2e\xdf\xb8\x89\xc2\x3c\x0b\x23\xdf\x3f\x13\x6b\xb1\x8d\xdf\x9c\x52\xd8\xf2\x48\xae\x98\xf7\xf1\x15\xb7\x6e\xcb\x60\xd6\x98\xf8\xb7\x52\xe8\xba\x1d\xc3\x5d\x15\x53\x75\x8c\x45\xaf\x9b\x6e\x90\x83\x19\x61\xe9\x12\x7b\x8b\x27\xb7\x78\x25\x87\x23\xda\x44\xa3\xb6\x67\xf1\x68\x4e\x60\x49\xd2\x5a\x31\xb7\x7b\xb7\x40\xf6\x75\xb7\x13\x0e\x6f\x5e\x05\x61\x71\xd7\xa3\xda\x4f\x4c\x9a\xb7\x1a\xeb\xa4\x21\xf5\x9c\xf6\x67\x22\x6c\xb2\x33\xe4\x12\x93\xb2\xa3\xa9\xa6\x50\xd4\x86\x4a\x5f\x61\x8c\xb8\x30\xd2\x66\x6c\xcf\xac\x89\xb1\xe9\xf4\x3b\xf7\xdd\xfe\x39\xea\xa0\x18\x2b\xac\x0f\xa9\xd0\x4a\xa7\x24\x4c\x19\x7b\x05\x53\x54\x2d\xd0\x8c\xc7\x24\x31\xc6\x02\x13\xce\x71\x89\x15\xbe\xc0\x0a\x27\x7c\x72\x86\x3a\xf0\x4f\xfd\x31\x95\x08\x27\x92\x23\xec\x36\x0e\x89\x5d\x13\x98\xc5\x8e\x3d\x60\x14\xf1\xd9\x9c\x26\x26\x37\xc6\x0f\xb9\xa3\x2c\xa6\x4f\x34\x4e\x71\x82\xf8\x08\x0c\x2d\x67\x03\xd6\x7d\x22\x4c\xa5\xa0\xe3\xe2\x24\x41\xb6\x5b\xf7\x82\x67\xe5\x70\xa3\x94\x74\x46\x13\x2c\xb4\xf4\x68\x46\x7b\x63\xdb\x42\xfd\x29\xc9\xc6\x0a\xe3\xd2\xd4\x9c\xe1\x47\x22\x11\x55\x68\xce\xa5\xa4\xa3\x24\x3f\xc6\x0f\x3d\x04\xe3\xbe\xb8\xea\x41\x1c\x53\xa4\x10\x37\x7c\xd0\x75\x6e\x83\xfa\x5c\x8f\x33\xcc\x18\x81\x8e\xb9\x9a\x12\x61\xbb\xb7\x2f\xbf\x76\x48\xd2\xc3\xb5\x4d\x39\xe9\x5e\x2e\xc7\x24\xf5\x3b\xf7\xbf\xd4\xe7\x98\x2c\x3f\xb9\xea\x3c\x5c\x5f\xfc\x3c\xbc\xbd\xea\x54\xe4\xae\xd8\x6d\xd5\x3a\xbc\xc9\x1f\xd9\xe6\x87\x69\xff\x8a\xc6\x81\xe6\x9a\xb4\x37\x3a\xb4\xb2\x38\xb4\x36\x37\xb4\xb5\x35\xb4\x33\x34\xd4\x5b\x19\xf6\x10\x5a\xde\xde\x14\x70\x45\x65\xd1\x16\x70\x1c\x80\x43\x85\x21\xeb\x39\xec\xdb\x10\xf0\xcd\x59\x01\xbe\x51\x13\x40\xd0\xff\xf7\x42\xb7\xb7\xaa\xfc\x1f\xb8\xe6\xbf\x4d\x9e\x4c\x96\x43\x1f\x12\x65\x96\x13\x65\x48\xc8\x93\x09\x79\x32\x6d\x09\x14\xf2\x64\x42\x9e\xcc\x31\xe4\xc9\xb4\x52\xb4\x82\xc7\xf6\x10\x3c\xb6\x07\xae\xa3\x1d\xb2\xc3\xf6\xad\x6a\x2e\xc1\x79\x19\x9c\x97\xc1\x79\x79\xa4\x27\x37\x38\x2f\xdb\xd3\x28\x38\x2f\x83\xf3\x32\x38\x2f\x83\xf3\x32\x38\x2f\x83\xf3\xf2\x35\x4d\x23\x87\x10\x1b\x7a\xcc\x2e\xdb\xe0\x89\x5d\xe1\x89\x3d\x70\x25\xff\x20\x1d\xb1\x6f\x55\x47\x08\xaa\x7d\xf0\x4b\x6e\x35\xed\x83\x52\xea\xdf\xda\xbd\x19\x5c\xb1\xed\x09\x11\x5c\xb1\xad\x49\x15\x5c\xb1\x0d\xc4\x09\xae\xd8\xe0\x8a\xfd\x06\x5d\xb1\x34\xde\xba\x6c\x4f\x1b\xbd\x45\xcb\x8a\x71\x17\xcc\x43\x99\x71\x4b\xfc\x06\xd2\x23\x96\x8f\x99\x05\xa8\x85\x3e\xd3\x8b\x8f\x42\x91\xa9\x9c\xf0\x4b\x28\x34\xdb\x68\x2c\x58\x69\x0e\xae\x00\xcf\x40\x3f\xc9\x8d\x8a\x07\x88\x33\xbe\x8d\x8e\xe2\x4d\xcc\x53\x53\x9c\xf6\xe1\x11\xe5\xf0\xa6\x1d\x04\xbf\x20\xf8\x05\xd9\xa6\xe5\x84\x83\x6c\x73\xb8\xb2\xcd\x6b\x29\x2c\x87\x77\x3c\x8f\xce\x3e\xb1\x77\xb1\xb4\x50\x1f\xa3\x11\x66\xdb\x94\xda\x05\xd7\x5d\x3a\x4f\x38\x8e\x57\x05\xc8\xfd\x86\x72\x59\xad\x41\xdc\x34\xed\xea\x0f\x0e\x5c\xda\x5c\x8a\x8d\x33\x23\xff\x16\x90\xb5\x6b\xa7\xfe\xaa\xe0\xda\xb0\x7f\x33\xd4\xa2\x0c\x96\xa8\x10\x3d\xba\x2f\x35\xab\xbc\xc1\x5b\x69\x54\xf2\x28\xb0\xab\xf5\x48\x5f\x42\x7f\x7a\x93\xd9\x77\x6f\xd8\x93\x15\xbc\x55\xcd\x21\x05\x3b\x8a\x6e\x1b\xb0\xbe\x56\xa4\xf8\x6c\x44\x59\x16\xcc\xe3\x76\xc8\x1f\x1d\xb9\xfe\x08\x40\x7a\x16\x5c\x2f\x59\xe4\x7a\xb6\x2c\xb7\x96\x49\x61\xe8\x54\x8b\xc0\x11\x11\x0a\xe8\xcd\x99\x22\x5f\x95\x44\xa7\x28\xa1\x8f\x04\xbd\xd7\x47\x1e\x75\x6e\x7b\xef\x4f\xd0\xfb\x2b\x9c\xb2\x68\x8a\xe6\x09\x66\xf2\xfd\xc1\x48\x6f\x41\x21\x0f\xd5\xa3\x82\x2b\x66\x1f\xda\x7b\x30\x57\xac\x9c\x76\x30\x57\xbc\x19\x57\x4c\x4b\x9d\xc1\x64\xac\xe1\x19\x39\x14\xed\xe1\x68\x00\x3e\x82\xf6\x10\xb4\x87\x8a\xa9\x05\xed\xe1\x1b\xd4\x1e\x0e\x83\xc2\x41\x75\x08\xaa\x43\x50\x1d\x82\xea\x10\x54\x87\x9d\x93\x31\xa8\x0e\x4d\xaa\x03\xfc\xe5\x40\x29\xd6\xd5\x23\x5a\xeb\x0f\x2d\x10\x28\x8e\x46\x79\x08\x8a\x43\x50\x1c\x82\xe2\xf0\xe2\x8a\xc3\xc1\x4c\xe8\xed\x25\xd3\x87\x74\xf4\x90\x8e\x1e\xd2\xd1\x6b\xd2\xd1\x5f\x4a\x64\x33\xf2\xda\x91\xc5\xdf\x1f\x85\xd0\xf6\x6a\x01\xf8\x6f\x4f\x8c\x0b\x29\x05\x21\xa5\x20\x98\x21\x43\x4a\x41\x30\xb4\x05\x43\xdb\x41\x1b\xda\x5e\xcb\x7a\xfe\xc2\xc7\xf3\x05\x84\xd3\x03\x8f\x58\xfe\xf1\x18\x24\xd0\x17\x8c\x39\x08\x56\xb6\x60\x65\xab\xa6\xcc\x71\xba\xe7\x0f\xe6\xd6\x0f\xe8\x31\x41\xe2\x0f\x81\x07\x21\xf0\x60\x25\x71\x82\x3e\x14\xf4\xa1\x83\xd3\x87\x5e\x51\x51\x38\xb8\x30\xe5\xa0\x31\x04\x8d\x21\x68\x0c\x6f\x56\x63\x38\x18\x0a\x07\x75\x21\xa8\x0b\x41\x5d\x08\xea\x42\x33\x71\x82\xba\x10\xd4\x85\xa0\x2e\x1c\x74\x68\xf2\xb1\x28\x0c\x41\x59\x08\xca\xc2\x61\x2b\x0b\x07\x33\xa1\x10\xc4\x1b\x82\x78\x43\x10\xef\x37\x13\xc4\xfb\x46\x15\xf6\xbd\x8a\x69\x8e\x45\x36\x09\x5e\xcb\xf2\xd2\xaf\x4b\x8c\xf5\x60\x45\xa6\x7c\xb4\x9b\x42\x24\xee\x8a\xd4\xcf\x5c\x3c\x8e\x13\xfe\x3c\xcc\xb4\x3a\x1b\x14\x9e\xff\xdb\xe6\xf3\x79\x3f\xe4\xc2\xb3\xf7\x63\x26\x44\x7b\xbf\xb9\xd6\x0b\x32\xf4\x3c\x5d\x85\xa4\x29\x11\x17\x28\x9d\xc7\xf0\x67\x94\x4a\xc5\x67\xf5\x52\xf5\x67\xac\xa2\x29\x1e\x25\xa4\x93\xf5\x7b\xc1\xd9\x98\x4e\x52\xb3\x3f\x7e\x03\x56\x88\x9d\x64\x73\xe2\x24\x23\xcd\x14\xdd\xf8\x9a\x24\xf1\x07\x18\xc7\x17\xfb\x66\xde\xc9\x51\x04\xa0\x2f\x0f\xdb\x4c\xe7\xa5\x90\x39\x8b\xbb\x68\x5b\x16\xe7\xb5\x76\x18\xe2\xcf\xf2\x99\x58\x25\xaa\x82\x15\x3a\xd3\x4c\x68\x0c\x9b\xf3\x79\x4a\xc1\xb2\x06\x96\x38\xb0\x3e\xe5\x0d\xa3\x67\x9a\x24\x20\x71\x18\x5a\x1c\xde\xcc\x5b\x69\x2f\x76\xe2\xf6\xec\xbd\x89\x79\x3b\xe6\xb1\x62\xe6\xee\x08\x1a\x37\xc4\x91\x4e\xfb\x35\x11\x76\x57\x30\xb2\x57\xc5\xd9\xad\xbd\x3e\x6b\x72\xaa\x3e\xfc\x4f\xe5\x95\xd8\xa6\x30\xe3\x6b\xdf\x83\x9f\x88\x7a\x33\x97\xe0\x27\xa2\x5e\xea\x06\x7c\x8b\xd7\xde\xa6\x77\x5d\x23\xe3\x13\x64\x4c\x04\x61\x11\x39\xd6\x9c\xac\xa5\x2b\xee\x68\xa7\xbb\xd1\xcd\x76\xb4\xb3\x5d\xc7\x80\xf5\xc5\x4c\xd2\x9a\xab\x66\x8e\xe5\xfa\x53\x55\xdc\xba\x97\x0b\x2e\x30\x6b\xac\xea\x77\xee\x7f\x19\xde\x75\xef\x6f\x1e\xee\x2e\xba\xe7\xa8\x03\x07\x1d\xbe\x31\xec\x9d\xfe\x13\x9a\x83\x7c\xd8\xcc\x18\x26\xcc\x1d\x27\x81\x55\x83\x1b\x5c\x53\x11\x9d\xa2\x8b\xab\x87\xfb\x7e\xf7\xae\xa6\x41\xcb\xfc\x29\x9b\x20\x45\x66\xf3\x04\x2b\x12\xa3\xc7\x74\x44\x04\x23\xa0\x58\x25\xa9\x54\x44\xe4\xce\x71\xd3\x68\xf7\xbf\xba\x17\x0f\xfd\xde\xcd\xf5\xf0\x6f\x0f\xdd\x87\xee\x39\x72\xb7\x88\x6e\x56\x8f\x4b\x8f\x22\x5e\x30\x3c\xa3\x91\xf9\x21\xab\x73\x89\x7e\x4f\x49\x4a\x10\x96\x92\x4e\xd8\x8c\x30\x55\x6e\xd1\x0d\xf8\xaa\xf3\x53\xf7\xaa\xd8\xf2\x94\xa0\x5f\xfe\x9a\x0f\x2a\xc1\x23\x92\x58\x6f\x3d\x38\xa0\xf5\xe5\x95\x77\x64\xdd\xf8\xa9\xa1\xea\xdf\x1e\x3a\x57\xbd\xfe\xdf\x87\x37\x1f\x87\xf7\xdd\xbb\x5f\x7b\x17\xdd\xa1\x35\xc6\x5c\x74\x74\xbf\x85\x9e\xac\xcd\x06\xfd\x9e\xe2\x84\xaa\x85\x5e\x47\x69\x2e\x7d\xf4\x3c\x25\x0c\xa5\x0c\x2e\x10\x63\x29\xc4\xcc\xeb\x54\xce\x49\x64\x66\x74\x7b\xf5\xf0\xa9\x77\x3d\xbc\xf9\xb5\x7b\x77\xd7\xbb\xec\x9e\xa3\x7b\x92\x80\x2d\xcd\x11\x1d\x56\x71\x9e\xa4\x13\xcd\x09\x66\xf3\x84\x68\x6a\x18\x5b\xe1\x88\x4c\xf1\x13\xe5\xc2\x5e\xc7\x13\xfa\x44\x98\xa1\xa3\xde\x56\xa6\x7d\x67\xb3\x1a\x7a\xa4\xbb\xb9\xfe\xd8\xfb\x74\x8e\x3a\x71\x9c\xcd\x41\x42\x1b\x85\x9d\xe3\x8e\xee\x69\x71\xd8\x74\x4c\x23\xe8\xde\x6c\x22\xfe\x44\x84\xa0\x31\x29\xed\xa3\xce\xfd\x7d\xef\xd3\xf5\xe7\xee\x75\x1f\x28\xa6\x04\x4f\x24\x9a\xf2\x67\x70\xf4\xc2\x0c\xc1\xff\xfb\x84\x69\x02\x9d\xb9\xc5\xe2\xcc\x3f\xfd\x5e\xcf\xc6\xac\x29\x52\xf6\xea\xbe\xcb\xc2\xc1\x5b\xb6\xf6\x95\x4f\xd2\xf2\x1b\xa5\x63\xd1\xf4\x42\x61\x97\x2f\xbf\xb8\x6a\xb7\x2e\x7f\x51\xda\x6e\xf5\x36\xce\xa5\xfd\x52\x3f\xd3\x7c\xad\x5b\x9b\x38\x8b\x34\xdc\x87\x8c\xed\xbe\x7e\x17\x93\x84\x28\x52\x2b\x13\x5f\xc2\xe3\xd7\x97\x89\xcd\x38\xde\x8c\x58\x6c\xa6\x13\x24\xe3\x20\x19\xb7\x9e\x70\x90\x8c\xab\x26\xfc\x46\x24\xe3\x03\xb4\xfa\x38\x16\x75\x70\x56\x9f\xe0\x1f\x29\xad\xd4\x71\x5e\x81\xaf\xe6\x1e\x09\xfe\x83\xf5\xae\x90\xe3\x9f\x77\xf0\x1f\x04\xff\x41\xe5\x4d\xf2\xe6\xbd\x06\xc7\x79\x35\xbc\xa0\xd3\x20\xa8\x11\x0d\xf3\x0d\x6a\xc4\x91\xcd\x36\x18\xd8\x83\x81\x3d\x18\xd8\x83\x81\x3d\x18\xd8\xd1\xa6\x06\xf6\x16\x5c\xf6\x25\xcc\xa9\x07\x1a\x44\xfc\x56\xdc\x06\xc7\x29\x17\xbf\xac\xd7\x20\x88\xc6\x0d\xf3\x0d\xa2\xf1\x91\xcd\xf6\x00\xed\x22\x87\x65\x61\xa7\x71\x95\x41\xe4\x05\xa1\xe9\xdd\x48\xda\xc2\xd3\x3b\x82\xf6\xe2\xa3\x60\xe7\xaf\x86\x50\x1f\xf0\xdc\x03\x9e\x7b\x80\x6b\x09\x78\xee\x28\x00\x92\x04\x40\x92\x43\x06\x24\x69\xb1\x8c\x6f\x01\xcf\xfd\x65\x2c\x0c\x6f\x28\x49\xd9\x09\x86\xb2\x10\xbb\xc1\xe5\xaa\xe0\x0d\xb0\x12\xa4\xf3\x84\xe3\xb8\x09\x2c\xc6\xc9\x91\x3e\x60\x4c\x83\xe8\x69\xda\xfe\xb2\xac\x3c\x1d\xac\xe4\xe9\xc6\x6a\x46\xfe\x52\xe6\x83\x83\x51\xb8\xdc\xb4\x0f\x42\xcd\x6a\x59\xbb\x75\xe7\x6a\x57\xd5\x26\x6f\xad\x61\xc9\xbf\x1c\xd3\x36\x7f\x21\x48\xd5\xb7\x57\xf8\x2b\x40\x3f\x05\xe8\xa7\x5a\xca\x1c\x27\x4e\xec\xc1\x48\x74\x41\x49\x0f\x98\xaa\x01\x53\x75\x1f\x1a\x7d\x30\x61\xac\x9c\x76\x30\x61\xbc\x09\x4c\xd5\x35\x75\x88\x3d\xd6\x64\xd8\x4e\x9b\x38\xaa\x9c\xbd\xa0\x4d\x04\x6d\xa2\x62\x6a\x41\x9b\xf8\x06\xb5\x89\xc3\xa0\x70\x50\x25\x82\x2a\x11\x54\x89\xa0\x4a\x04\x55\x62\xe7\x64\x0c\xaa\xc4\xeb\xd4\x6b\xa8\xd2\x27\x5a\xe6\xba\x1d\x95\x32\x11\x14\x89\xa0\x48\x04\x45\x22\x54\xa4\x68\x9e\x53\xa8\x48\x11\x2a\x52\x84\x8a\x14\x6f\xa0\x22\xc5\x4b\x8a\x70\x35\x30\xc8\xc7\x11\xbf\x7f\x14\x42\xdc\xab\x05\xf0\xbf\x3d\x91\x2e\xa4\x24\x84\x94\x84\x60\xa2\x0c\x29\x09\xc1\x08\x17\x8c\x70\x07\x6d\x84\x7b\x2d\xcb\xfa\x0b\x1f\xcf\x17\x12\x54\x8f\x24\xda\xf9\xc7\x63\x90\x46\x5f\x38\x3e\x21\x58\xe0\x82\x05\xae\x9a\x32\xc7\xe9\xca\x3f\x18\x29\xe0\x18\x4b\x52\x06\x0d\xa0\x3d\x21\x42\x90\x42\x7b\x5a\x85\x20\x85\x06\xe2\x04\xfd\x28\xe8\x47\x07\xa7\x1f\xbd\xb2\xe2\x70\xb0\x21\xce\x41\x83\x30\xef\x05\x0d\x22\x68\x10\x6f\x54\x83\x38\x18\x0a\x07\xf5\x21\xa8\x0f\x41\x7d\x08\xea\x43\x33\x71\x82\xfa\x10\xd4\x87\xa0\x3e\x1c\x4d\x58\xf3\x31\x29\x10\x41\x79\x08\xca\xc3\x61\x2b\x0f\x07\x33\xa1\x10\x00\x1c\x02\x80\x43\x00\xf0\x37\x13\x00\xfc\x46\x15\xf8\xdd\x8a\x6d\xff\x66\x09\xf5\xce\x13\x30\x32\x49\xe4\xdd\x4f\x09\x1f\xf5\x17\x73\xa2\xff\xff\x92\xce\x08\x93\x40\x09\xaa\x16\xbe\x98\x56\xb3\xa1\x96\xb7\xd2\xbb\xfb\xde\xf5\xa7\x2b\xbf\xee\xc8\xbb\xcf\x0f\x57\xfd\xde\x6d\xe7\x2e\x5b\xee\x6c\x56\xfe\x12\xdb\xef\x0a\x92\xa6\x3d\xc9\x77\x44\xab\xd4\xc0\x0c\xee\x15\x56\xa9\xdc\x6c\x64\x77\xdd\xfb\xee\xdd\xaf\x50\x37\x65\x78\xd9\xbb\xef\xfc\x74\x55\xd8\xe7\x85\xe7\x9d\x8b\xbf\x3d\xf4\xee\xea\x9f\x77\xff\xab\x77\xdf\xbf\xaf\x7b\x7a\xd7\xbd\xea\x76\xee\xeb\xbf\xfe\xd8\xe9\x5d\x3d\xdc\x75\x1b\xe9\xd1\x38\xda\x66\xdd\x4a\x02\x91\xa0\x76\x00\x8a\x2c\x33\x14\x39\x0d\x51\x26\x15\x3b\x2e\x5f\xd5\xd7\x39\x7a\xb0\xa6\x0a\x6a\x1b\x37\xf7\x86\xd7\x90\xd1\xb1\x62\x2a\xf1\x28\x21\xf1\x52\x4b\x8e\x86\x75\x2d\xe1\xc2\xa0\x9e\xb1\xf4\x24\x69\xcd\xca\x23\x73\x7c\x10\x54\x73\x52\x84\xc5\x15\x7d\x98\x75\xa8\xed\x81\x69\x96\x4c\x9f\x48\xa1\xa7\x28\x15\x82\x30\x95\x2c\x10\xf9\x4a\xa5\x92\x4b\x8d\xba\xe5\xab\x6b\xd6\x32\x84\xac\xc1\x29\x96\x68\x44\x08\x2b\x8e\x5f\x90\x84\x60\x59\x31\x66\xbb\xfa\xed\xc8\x92\xad\x95\x35\x32\x99\x3b\x76\x8c\x69\x92\x0a\x52\x3a\x2d\x7c\x36\xc7\x82\x4a\xce\xba\x5f\xf5\x15\xad\x0f\xf2\x0d\x7c\xce\xc5\x66\x27\xa6\xfb\x37\x7f\x07\x5f\x17\xff\xf9\xa9\x5f\xfc\x57\xe1\xcc\x5f\xf5\x8b\xff\x6a\xde\xeb\x5e\xc3\xe5\x9d\x7d\x8a\x3e\xf5\xcf\xd1\x27\x80\x18\x15\xa8\x3f\xc5\x66\xc7\x5e\xf5\xcf\xd1\x15\x91\x12\x7e\xc9\x3f\x56\x54\x25\x30\xb7\x9f\x28\xc3\x62\x81\xdc\xf4\x4d\x49\x30\x1c\x4d\x11\xc9\x48\x53\x26\x1e\xfb\x47\xca\xc0\x22\x91\x53\xef\x8a\x4f\x68\x84\x93\xed\x88\xd8\xb9\x2e\xf0\x81\x9b\xbb\x46\x52\xf8\x6f\x2f\xd3\xa2\x73\x7d\x09\xe5\xb6\xdc\x50\x2b\x66\x7e\x4d\xa4\xde\x24\x11\x67\xb1\xf5\xa9\x69\xa1\x66\xe1\xe9\x2a\xff\xe0\x50\xb2\x2c\x95\x94\x4d\x74\x8b\xe8\x03\xba\xb9\x1b\xb0\x1b\x11\x1b\xfb\x2e\xd1\x42\xbe\xd9\x73\x54\x22\xc6\x15\xa2\xb3\x39\x17\x0a\x33\xa5\xf5\x1b\x90\x6e\x2c\x45\x0c\x07\xb8\xe0\xb3\x59\xaa\xb0\x3e\x68\x4b\x44\x65\xc6\xca\x73\x4f\x54\x2f\x06\x47\x58\x05\x0d\x8d\xf8\x93\xcf\x65\x2e\x74\xfb\x5a\xf4\x2a\x9a\x06\x68\xbc\xa4\xa1\xbb\x26\xb0\x10\xb8\x78\x01\xbf\xa3\x8a\xcc\xca\xef\xb7\xbc\x76\xff\x55\x69\xf7\xb8\x30\x59\x11\x44\x74\x44\x34\xa5\x8a\x44\x4a\x1f\xc1\x8d\xf6\xc4\xc3\xf5\x2f\xd7\x37\x5f\x7c\xc1\xe8\x5d\xe7\xf3\xe5\x7f\x14\x60\x60\x3b\x77\x9f\x97\x7e\x18\xfe\xfa\x1f\x4b\xbf\xfc\xff\x1b\xf7\x53\xb9\xa7\x25\xf3\x85\x37\x97\x53\xd0\x14\xc0\xd4\xed\xa6\x8a\xe8\x0c\x4f\x08\x92\xe9\x5c\xef\x00\x79\x56\x5c\x5f\x2d\x29\x5f\x71\x1c\x53\x36\x31\x55\xa5\xae\xa8\x22\x02\x27\x9f\xf1\xfc\xa3\x33\xcb\x6f\x40\x9d\xff\x73\x5f\xa8\x6c\xf6\xee\xef\x9d\xcf\x7e\x6d\xb4\x77\xb7\x77\x37\xfd\x9b\xc6\x59\x17\x5a\x58\x3e\x46\xfa\xf1\x39\xfc\x2f\xfa\x80\x74\xeb\x99\x40\x3f\x23\x0a\x6b\x45\x07\x7d\x67\x0a\xf1\x64\x99\x30\x94\x25\x70\x6a\xe6\x82\xce\x28\x5c\x29\xc6\x30\xf9\xbd\xd1\x19\x32\xa5\x28\x3b\x37\xe6\x03\x30\x02\xb8\x4b\x99\xc5\x58\xc4\xe8\x1f\xb2\x5c\x68\x0f\xec\xe1\xe6\x07\x12\xa3\x53\x34\x55\x6a\x2e\xcf\x3f\x7c\x78\x7e\x7e\x3e\xd3\x6f\x6b\x01\xf6\x83\xfe\xe3\x94\xb0\xb3\xa9\x9a\x25\xa6\xb0\xa0\xa6\xc2\x39\xba\x15\x5c\x5f\x21\x60\x77\x20\x82\xe2\x84\xfe\x93\xc4\x68\x64\xf8\x1f\x1f\xa3\xdf\x22\x2e\xc8\x59\xbe\x30\xd6\x56\x66\xef\x11\x6b\x4f\xfb\xa0\x5f\xaa\x60\x26\xe5\xf5\x44\x31\x89\x68\x6c\xc5\x0c\xc2\x22\x0e\x06\x55\xe3\x82\xd1\xed\xb9\xea\x45\x5a\x51\x9b\xa7\x2a\x27\xa7\xa7\x83\xe1\x98\x78\x75\x01\xad\x7c\x9d\x6d\x38\xad\xcf\xf5\x8c\x36\x9e\x4a\x22\xe0\x6e\xc5\x70\xab\xba\x57\xe7\x7a\xc2\x11\x4f\xd0\x28\x1d\x8f\x89\xf0\xc3\x07\x4e\xb4\x92\x46\x25\x12\x24\xe2\xb3\x19\x48\x0c\xfa\xab\x54\x9a\x5d\x0d\x14\xb3\xa3\x3d\x1b\x30\x58\x7f\xad\xbd\xc1\x0e\x88\x39\xb0\x3a\x46\x48\x8c\x30\x5b\x98\x6e\x46\xe9\xd8\x6f\xdf\x14\xec\xc4\x31\xa2\x6a\xc0\x3a\x49\x82\x04\x99\x71\x45\xbc\xba\x4c\xe0\xea\x2c\x12\x1c\x58\xa4\x20\xf3\x04\x47\x24\x36\xfb\x21\xe1\x11\x4e\xd0\x98\x26\x44\x2e\xa4\x22\x33\xbf\x81\xef\xc0\x04\xa5\x69\x46\x25\x8a\xf9\x33\x4b\x38\xb6\xf3\x28\x7f\xf6\x7d\xf1\x34\x76\x5d\x31\xc5\xae\x10\x5c\xc0\xff\xfc\x42\x59\xbc\x33\x0e\xf5\x70\xdf\xbd\xf3\xff\x7d\xff\xf7\xfb\x7e\xf7\xf3\x7a\xdc\x27\xdb\x59\x30\x3c\x30\x4d\x9c\xa3\x7b\x43\x04\x2e\xb4\x44\x24\x6a\x26\xf5\xd9\x6e\xa5\xfc\x07\x1e\x6f\xc8\x7d\x3f\x77\xae\x1f\x3a\x05\x8e\x72\x7f\xf1\x73\xf7\xf2\xa1\xa4\x0f\xd8\xf9\x15\x64\x78\xa3\xd5\xfa\xbf\x5d\xfc\xdc\xbb\xba\x1c\x56\xe8\xc1\xef\xee\xba\x17\x37\xbf\x76\xef\x72\x95\xb5\x92\x44\xa5\xc1\x94\x99\x55\xdf\x30\xa5\x29\x8f\xd1\x68\x51\x5d\x3a\x53\x4b\xce\x09\x78\xce\xf3\xe2\xb1\xa6\xd5\x73\xe0\x4d\xae\x8a\x69\xfe\xc5\x8c\xc7\xe4\xc4\xbe\x03\x35\x47\x8d\xcd\xc8\x48\xcc\xd5\x0d\xeb\xde\x31\xf3\xec\x2f\xa6\x1c\x68\x46\xb8\x73\xd4\x41\x52\xbf\x98\xea\x43\x2d\xe8\x64\x02\xf6\xd0\xd2\x50\x4d\x6b\xf6\x53\x20\x2f\x7c\x67\xd6\x7f\x2e\x38\x9c\x73\xdd\xad\x35\xa4\x67\xc6\x16\xf3\x21\xd4\xa7\x2d\xb6\x28\x30\xd8\x51\x2a\x86\xe6\x16\x4b\x13\xa1\x96\x5e\xe6\x3c\x1a\x33\x98\x3e\x5c\xc0\xb6\xa4\x31\xe3\xce\x05\x79\xa2\x3c\xf5\x3e\xb5\x25\x50\x0b\x2b\x5e\xd9\x7c\x4e\x00\x20\x9b\xb1\xf5\x94\x9a\xc9\xb6\x47\x65\x0b\x9a\x85\x3d\x41\x0b\x63\xc1\x67\x15\x6d\x14\x8f\x49\xef\xe6\x5e\x09\xac\xc8\x64\x71\x69\x59\xc6\xe6\xc7\xe3\xf2\xe6\xcb\xf5\xd5\x4d\xe7\x72\xd8\xed\x7c\x2a\x9e\xf8\xec\xc9\x7d\xff\xae\xdb\xf9\x5c\x7c\x34\xbc\xbe\xe9\x0f\xdd\x1b\x8d\x5b\xbe\xa6\x83\xe5\x7b\xba\xf8\xe2\x39\xd2\x2c\x17\x58\xe3\x33\x4d\x12\x7d\x99\x78\xfc\x71\x44\xc6\x5c\x18\x3e\x3f\x73\x81\x26\x56\x84\x71\xb4\xb5\xba\x58\x69\x16\xe7\x60\xf0\xab\x6a\xd2\x18\xf3\x95\x20\x78\x06\xf7\x04\x66\xa8\xcb\xe2\xd3\x9b\xf1\xe9\xbd\xf9\x71\x86\xc5\x23\x11\xd9\xa7\xcf\x82\x2a\x45\x58\x41\xa5\xc3\x6e\xc8\x99\x92\x98\x77\x70\x86\xee\x34\xdf\xd7\xef\x67\x97\x9a\xde\xec\x31\x51\x98\x26\xd2\x0e\xb6\x40\xd7\x73\x74\x85\xc5\x24\x37\x2f\x7e\xc7\xc7\x63\xd3\xd8\xf7\x66\x18\xfa\x0e\x2b\xcc\xa2\x82\xf7\xea\xad\xe1\xee\x45\xe8\xcf\xbe\x9c\xc9\xc3\xcb\xbb\xea\x61\xbe\xdd\x9e\x7a\xb8\x05\x8a\x1b\x8d\xbd\xa0\x1b\xda\x27\x15\x7b\x0d\x26\x6e\x1e\x37\x5f\x32\xd5\x6d\x2f\x6f\xa7\xe2\x8b\x15\xdb\xc9\xd4\x32\xd1\x2b\x3f\xd6\xda\x66\xc5\x5e\x22\x5f\xa9\x35\x18\xf8\xe3\x2e\x6d\xa1\xbc\x19\xb0\x1a\xe3\xf9\x9c\x60\x21\xab\x56\xbb\x28\x06\xd6\xac\xbd\xe9\xc9\xef\xc3\x2e\xb2\xeb\xe7\x04\x71\x06\x06\x87\x4c\x88\x28\xed\xc8\x16\x7b\xc0\xb4\xb5\xb4\x03\x6e\xa1\x2e\xf5\x8d\xad\x01\xfd\x99\x4a\xad\x34\x9a\x1f\x7f\xb2\xc5\xa9\x37\xdb\x10\x1f\x3b\xbd\xab\x92\x70\x31\xbc\xec\x7e\xec\x3c\x5c\x35\x9b\x09\x0b\xdf\x95\x97\x18\x9d\x22\xfd\xbc\x18\x0e\x40\xc7\xe6\xce\x70\x25\xb6\x8d\x4a\x4b\x18\x18\xad\x6c\xf9\x5b\x63\x86\x8f\xc9\x3c\xe1\x8b\x19\x61\x60\xe2\x29\xdc\x84\x9a\x9e\x63\x4c\xed\xd5\xe2\x0d\x16\xac\x38\xd6\xec\x06\xd7\xd8\xa9\xab\xeb\x4d\xe2\xec\xe6\x2d\x96\xf5\x2e\xb1\xee\x5b\xe3\x14\xb4\xff\x77\xaf\xb0\xda\xf0\x8c\x75\x2e\xfa\xbd\x5f\xbb\x45\xfd\xf0\xe2\xe7\xde\xaf\x55\x52\xcd\xf0\x53\xf7\xba\x7b\xd7\xe9\xaf\x10\x4e\x4a\x4d\x56\x09\x27\x52\x0f\xb8\xec\x14\xa6\x32\x0b\x74\x8a\x4c\x71\x70\x44\x95\x44\x4f\x54\xd2\x11\x85\x52\xea\xd6\xc1\xfa\xd0\x03\xce\xfa\x84\x13\x1a\x53\xb5\x70\xe2\x8b\xe9\xb7\xb8\x8e\x9a\x93\xda\xf6\x8d\xd9\xc1\x77\xbb\x82\x95\xcf\x2c\x8e\x9b\xf4\x39\x02\xdd\xf6\x09\x94\x36\xef\x33\xa6\x05\x69\x36\x21\xc2\x0c\x07\x9c\x4a\xfe\x58\xbc\xe7\x7a\x54\xbe\xb0\x92\x53\x2d\x13\x5a\x27\x84\x11\x01\xe5\xf2\xb3\x4e\x8c\x20\x25\x08\x7b\xaf\x65\xae\x79\x42\x23\xaa\x92\x05\x8a\xc0\x86\x05\xe6\xcc\x19\x66\x78\x62\x85\x03\x50\x73\x4a\x5b\xe2\x6f\xa6\xde\xfc\xcd\xd8\x9a\xf6\xfb\x94\x6c\x78\xcc\x1e\xae\x2f\xbb\x1f\x7b\xd7\xc5\x2d\xf0\x73\xef\x53\x41\x84\xfd\xdc\xbd\xec\x3d\x14\x6e\x73\x2d\xc9\x36\xcb\xf5\xe5\x66\x2b\x8e\x62\xf6\xd2\x39\xba\x34\x9f\x9e\x6b\xe2\x56\x14\xd3\xcf\x94\xdf\x12\x1d\xee\x5c\xa4\xa1\xfb\xa3\xcb\x94\xa8\xf4\x4b\xb4\x35\x21\x59\xaf\x50\xc1\x86\x54\x1d\x81\xb1\xd4\xf7\x75\xd9\x57\x5e\x9e\xb2\x7b\x11\x42\x64\xcf\x72\xcb\x92\x1f\x9a\x01\x46\x83\x3a\x23\x56\x85\xb7\x2e\x67\xd8\xbf\x82\xe7\x7d\x96\x4a\x65\x3c\xa4\xb0\x39\xd1\xe3\x5f\xa5\x26\x28\x78\x50\xcf\xd0\x3d\x21\x03\xe6\xac\x07\x13\xaa\xa6\xe9\xe8\x2c\xe2\xb3\x0f\x8f\xe9\x88\x08\x46\x14\x91\x1f\xf0\x9c\xce\xb0\x96\xa4\x89\x58\x7c\x18\x25\x7c\xf4\x61\x86\xa5\x22\xe2\xc3\xfc\x71\x02\x81\x3d\xce\xd3\xf5\x21\x6b\x76\xc2\xff\xfd\xea\xc7\x1f\x4e\xaf\xfe\xfa\xc3\xbb\x65\x0b\x59\xdd\xfa\x77\x59\x84\xe7\x32\x4d\x6c\x20\xa0\xf0\x69\xe3\x8e\x7c\x4a\x56\xad\xf7\x75\x71\xb9\xb6\xd3\x5f\x2f\x6e\x1f\x0a\x16\xeb\xe2\x3f\x3f\x77\x3f\xdf\xdc\xfd\xbd\xc0\x29\xfb\x37\x77\x9d\x4f\x05\x86\xda\xbd\xfd\xb9\xfb\xb9\x7b\xd7\xb9\x1a\xba\x87\xdb\xd8\xde\x7e\x61\xfc\x99\x15\x49\x23\x1d\x07\x5c\xea\xe9\x1c\x7d\xe4\x02\xfd\x92\xad\xe4\xe9\x08\x4b\xb8\x62\xdc\x9d\x25\x4f\xd0\x9c\xc7\xc0\x78\x11\x99\x4f\xc9\x8c\x08\x9c\x58\x9b\x81\x54\x5c\xe0\x89\xb9\xe9\x65\x24\xb0\x8a\xa6\x48\xce\x71\x44\x4e\x50\x04\xbb\x61\x72\x02\x8b\x02\xaa\x16\x9f\x94\xed\x7c\x77\x29\x53\x74\x46\x9c\x0a\x6e\xff\xd9\x37\x8b\xb1\xc1\xe2\xdc\xf4\x7f\x2e\x0a\x7b\x1f\xaf\xfe\xde\xef\x0e\xef\x2f\x7f\x69\xa4\xa7\xf9\xac\x30\xb2\x7b\x88\xab\xba\xe0\x49\x3a\x63\xfe\xdf\x9b\x8f\xad\x77\xdd\xef\x7e\x2a\x8f\xee\xa6\xd3\x2f\xee\x8c\xbb\x62\xdc\xde\xbb\x9f\x6e\x6e\xae\xba\x05\x4f\xf7\xbb\xcb\x4e\xbf\xdb\xef\x7d\x2e\xec\x9f\xcb\x87\x3b\xf0\x01\x35\x4e\xd3\x8d\xa0\x62\xa2\x7a\x5a\xfe\x34\x77\xcd\x0a\x5b\x71\xa2\x8e\x0d\xff\x37\x67\xf9\xd4\xc3\xcb\x31\x51\x6e\x60\xd5\x39\xcd\x4c\xaa\x91\x19\x69\x25\x3b\x54\xc5\x65\x42\xf5\xec\xb8\x71\xa1\x9b\xb8\x72\x3f\x1b\x02\x8c\xeb\xcc\x28\xdb\x38\x49\xf8\xb3\x89\x50\x9e\x51\x7d\x2b\xdb\x62\xeb\xfa\x15\x99\x7b\x08\xcf\x2a\x38\x5e\x71\x59\x48\x24\x88\xfa\xcc\x53\xa6\x36\xdf\x72\x9d\xeb\x02\xdf\xe9\x5e\xff\x3a\xfc\xb5\x53\xdc\x81\xbd\xab\x66\x56\xe3\x37\x51\x71\x15\x77\xae\xff\x9e\x5d\xc2\x10\xc7\x7e\x92\x69\xa8\x46\x76\x8d\x12\xaa\xc5\xde\x08\x6b\xed\x35\x01\x89\x06\x11\x0a\x26\x87\x99\x9e\x1c\xc4\xcd\xce\x8d\x3f\xc9\xf0\x27\x33\xc8\x73\xf7\x47\xa9\x3d\x09\x74\x01\x6b\xaa\x4b\x13\x80\x76\xac\x56\xcd\x10\x61\x4f\x54\x70\x06\xc2\xf6\x13\x16\x54\x4b\xe3\xa6\x65\x3d\xd7\x73\xf8\xdf\xf5\xda\x04\xc3\x68\x89\x71\xdd\x73\xa1\x2e\xb3\xf8\xe4\xcd\xac\x21\x55\x71\xba\xcb\x11\xba\xd5\x86\x8e\xe5\x6f\x2b\x16\x67\xcb\x38\xe6\xe2\x84\x7f\x4f\x2e\x29\x4e\x34\x03\xd8\x9d\xbc\xd8\xb9\xbe\xef\x15\xe5\xc7\xa2\x9a\xe1\xf1\xe5\x8d\xe5\x45\x30\x54\x9a\x91\x3b\x65\xe2\xfe\x6f\x57\x46\xbb\xd0\x9b\xc4\x9e\x5b\x4f\xb1\x00\x01\xc8\x55\x21\x9d\x63\x21\x4b\x5f\x48\x04\x48\x66\x79\x1c\x99\xbe\xb3\x20\x4a\xeb\x89\xd3\x78\xc0\xc8\xd7\x39\x61\x12\x82\x03\xcc\x7d\x96\xfb\xda\xe5\x19\xea\x8d\x81\x25\xe8\xd7\x19\x4a\x99\x75\x80\xe9\x0b\xd7\x0c\xf2\x44\x8b\xb2\x76\x08\x99\x86\x08\x86\x17\x46\x5c\x0c\x58\x3e\xf8\x01\xfb\x92\x39\xd1\xe0\xd1\x98\x6b\x06\xa4\x57\xd1\xb6\x77\x8e\x30\x93\xf4\x04\x69\x85\xa5\xbc\xa6\x90\x11\xa1\x15\x4a\x1b\x99\xa6\x39\x8d\xfd\xf3\xe5\xaf\x81\xa5\xf0\x67\xff\x32\xa8\xbe\x0b\x4a\x57\x41\x8d\x68\x9c\x18\x8f\xc9\xb0\xfd\x9d\x10\x71\x41\xac\x9f\x65\xed\x6b\x60\x15\x63\xef\x63\xf9\xb8\xe4\x7b\xe8\x31\xa9\x30\x8b\xc8\x45\x82\xe5\x86\x41\x48\xce\xc6\x71\x52\x94\x38\xee\xee\x1e\x6e\xfb\xbd\x9f\x56\x70\xf9\xf2\xc7\xcb\x61\x40\x51\x92\x3a\xf7\xdc\x48\x70\x1c\x23\xcd\x3e\x27\xdc\xb8\x02\xad\xe0\x6f\x4e\x90\x59\x13\x2a\xbd\x38\x51\x2c\x1f\x0b\x46\x6a\x9b\x65\x61\xed\x1c\xbe\x2b\x81\x5a\x42\xa0\x48\x53\x02\x79\x26\x0f\xb7\xd4\xe0\x59\x34\x51\x74\xd6\xba\x35\x4f\xb0\x1a\x73\x31\x33\x5c\xbe\x30\x69\xd3\x78\x73\xa3\x94\x29\x22\x44\x3a\x57\xa0\xb2\xeb\xb1\x96\xa5\x54\xbd\x64\x57\x7c\xf2\x99\x48\x89\x27\x64\x1b\x07\x74\x95\xf2\x70\xff\xab\xff\x4f\x70\x30\xb7\x91\xfd\x0b\x23\x74\x01\xfd\x6e\x3f\xdd\xb0\x8f\x26\x90\xe7\x96\x27\x34\xda\x30\xe0\xee\x63\xa7\x77\x35\xec\x7d\xd6\x4a\x7c\xa7\xdf\xbd\x2a\x88\x12\xf0\xac\xf3\xb1\xdf\xbd\x1b\x76\xff\xab\x7b\xf1\xd0\xef\xfc\x74\xd5\x1d\x5e\xdf\x5c\x76\xef\x87\x17\x37\x9f\x6f\xaf\xba\x2b\x22\x73\x6a\x1b\x5f\xb6\xae\x96\x5f\x3d\x5f\xfa\x05\x56\x58\xf3\x32\xdf\x5e\x06\xc9\x70\x98\x26\xe0\x04\xe7\xc6\x19\x8e\x11\xe3\x31\x81\x9f\xa5\xb3\xce\xb8\x6c\x93\x33\xd4\x53\xef\x93\x04\xe1\x54\xf1\x19\x06\xaf\x4d\xb2\x18\x30\x3c\xd2\xac\x15\x27\x89\x17\xde\x25\x52\xc6\x34\x8b\xd5\x8d\x49\x13\x5f\x9c\x10\xcd\xce\xe7\x5e\x0e\xa3\xf5\x1b\x8c\x29\x83\x00\xe2\x19\x16\x8f\xc6\xcd\x94\x77\x99\x1f\x0a\x89\xb0\x1c\x30\x3d\x2e\x62\x0d\x43\x6d\x28\x7c\xde\xea\xad\x5a\xea\xcc\xf0\x23\xd1\x54\x99\xa5\xd1\x14\xcd\x05\x9f\x08\x22\xa5\xb5\x2d\x47\x98\x99\x00\x04\xfb\xba\xbe\x86\x06\x8c\x71\x4d\x0a\x67\xc2\x8e\xc9\x9c\xb0\x98\xb0\x88\x9a\x6c\x45\xf0\xdd\x67\xa6\xcd\x89\xc0\xf3\x29\x92\x1c\x9c\xde\x40\x76\xb0\x5f\x99\x8f\xdc\x4d\x66\x66\x6c\x1e\xfb\x16\x68\x91\x6a\x3e\x71\x03\x72\xa2\xa1\x32\x7c\xec\x2e\x43\xe7\x76\x31\x76\xc0\xd9\x3c\x21\xd0\xa5\x25\x39\x2c\x86\xa6\x75\x61\x3d\xf4\x32\x55\x2d\x82\xbe\xb0\xdd\x98\xb1\xb4\x23\x3a\xab\xb0\x6c\xdb\x23\x85\x7e\xc6\x2c\x4e\x74\x2b\xce\x87\x51\x3c\x8b\x90\x61\xd3\xd1\xbb\xc6\x9d\xc6\x6d\x6e\xd1\x08\xa7\x72\x9b\x6b\xb4\x94\x62\x6a\xac\x82\xa7\x79\x50\x08\x6c\x6f\x9b\x5f\x0a\xd4\x9d\x6b\x16\x89\x13\x6e\xa9\x64\x5e\x4f\x6d\xd0\x32\x8c\xa6\xe6\x9a\x9d\x0b\xca\x22\x3a\xc7\xc9\x46\xba\x5f\x29\xc7\xc0\x86\xee\x7f\x47\xc7\x7a\xfb\x7c\xbf\xe4\xb6\x55\x44\xcc\x20\x9d\xdc\x0e\x33\x5b\xc2\x35\x2c\x49\x36\x59\x83\xc8\x3c\x9a\x04\x0b\x9e\x1a\x7f\x1c\xd0\x85\xc4\x15\x47\xf5\xac\x6a\xb9\xf5\xc9\xc0\xc5\x00\xe8\x0d\x16\xdb\x44\xfe\xd4\xd1\xaf\xd4\x8a\xed\xdd\x04\xe3\xe1\xe4\xb6\xba\xcd\xaa\x15\xf0\x1e\xfe\xab\x69\xef\x7c\xc6\x73\xbd\x67\xa2\x54\x2a\xf0\x14\x67\x73\xb4\x4a\x52\x29\x94\xdd\xf3\x9d\x67\x41\xed\xed\x57\x23\x27\xa1\x0d\x80\x5a\xee\xa4\x10\x43\xe0\x21\x02\xd8\x3d\x3e\x4e\xb5\x2c\x8b\x30\x44\x21\xa0\xef\xc8\xd9\xe4\x0c\xdd\xfc\xda\xbd\xbb\xeb\x5d\x76\x4f\x50\xe7\xf6\xb6\x7b\x7d\x79\x82\x88\x8a\xbe\x77\x31\x8b\x36\x60\x69\xc0\x14\xb7\xd2\xca\x02\x4d\xf9\x33\xf0\x46\x22\x26\xa4\x30\x67\x17\xdd\x04\xa1\xca\x13\x2a\x95\x0d\x9f\xd5\x7c\x25\x1f\x96\x96\xf7\x2b\x77\x48\xaa\xa6\xdb\x6c\x0d\x2c\x65\x3a\xd3\xba\xec\x90\xe2\xd9\x50\xf0\x64\x1b\xa6\x70\x09\x53\x01\x75\x39\x03\x53\xa0\x78\x86\x74\xb3\x36\x14\x24\x73\x39\x66\x22\x9d\x16\x8c\x34\x5f\xd6\xf7\xa6\x77\x6f\x39\xef\x83\x8d\x47\xa3\x2e\x04\x02\xc0\x16\x6a\x58\x45\x6e\x36\x1e\x5a\x4b\xfd\x10\x47\x91\x56\xb9\x77\x3c\xa9\xbc\xa3\xcc\x25\x60\x3b\xda\xdb\x34\x57\xed\x73\x37\xcc\xb9\xe6\x60\x10\x0c\xac\xaf\x5c\xc9\x23\x9a\xb7\x5f\xd1\xef\x68\xb1\xd4\x2b\x6c\xd9\xb3\x01\x7b\x90\x99\x49\xc5\x5c\xc2\x92\xc0\x4a\x4a\xf4\x3c\x25\x70\x34\x16\x68\x8a\x9f\x48\xa1\x4b\x97\x43\xa2\x1b\x5e\xf0\x54\x54\x31\xba\x01\xbb\x24\x73\x41\xb4\xa4\x5f\x76\xa0\x64\x7b\xfa\xae\xb8\x13\xc3\xbe\x0e\xfb\xfa\xe8\xf7\xf5\x45\x92\x4a\x45\x44\x47\x4a\x3a\x01\x43\xe2\x56\x02\x9c\x69\x6c\x38\xe7\x3c\x19\xb6\xb0\x89\xb4\xa7\x78\xc1\x13\x56\x08\xf8\x90\x06\xe9\x80\xa7\x20\x1f\x15\xae\x4d\xae\xef\x3a\x2f\x73\xd8\x0e\xaf\x81\x0c\xce\x65\xd6\x71\x80\x12\x5b\x89\x38\xb8\xaa\x95\xa6\x96\xd0\xde\xc5\x9c\x0b\x23\xdf\x64\xee\xb2\x7c\x88\xa5\xc3\xe4\x44\x11\xca\x1c\xd9\xf2\x8f\x60\x3f\x6b\x02\x1b\xb9\xe3\xf7\x94\x2b\x2c\xbf\x3f\x1b\x30\x2d\x44\x3d\x92\x85\x31\xb7\x6a\x31\xe5\x0f\x5a\x16\x3f\x95\x84\x49\x08\xf7\xfe\x83\x71\xcf\xe9\x2d\xee\xcc\xd5\x46\x35\x25\xb3\x79\x82\x15\x04\x5d\x67\xbd\x40\x88\xae\x6d\xd4\x4a\x49\x79\x00\x34\xc8\xf9\x66\x2e\xf6\x99\x19\xfe\x84\x28\xc8\x1c\x57\x54\x81\xce\x14\xa7\x9a\x3c\xcb\x43\x5f\x69\xba\x32\xbb\x42\x70\xf0\x93\xc4\xe9\x76\x8c\x5f\x2e\xb7\xb1\x92\x33\x66\xda\xc2\xbd\x8d\x79\xff\xe0\xec\x46\x91\xe0\xac\x14\x0d\xa3\x95\x39\xb3\xd2\x23\xc3\x0e\x9c\xff\x9a\xb0\xb3\x67\xfa\x48\xe7\x24\xa6\x18\x22\xe0\xf5\xbf\x3e\xe8\x79\xfd\xfb\xc5\xdd\xcd\xf5\x30\xcf\xe4\xf9\xcf\x01\xeb\x24\x92\x67\x59\x0a\x88\x71\x96\x85\xdb\xcf\x05\x71\x22\xa1\x9d\x0b\x58\x5d\x73\x33\xe2\x80\xd5\x8d\x20\xe6\x91\x3c\xc3\xcf\xf2\x0c\xcf\xf0\x3f\x39\x03\x57\x7a\x07\xfe\xbc\x48\x78\x1a\x7f\xc1\x2a\x9a\x7e\x80\x73\xad\x3e\x90\x27\xc2\x94\x71\x53\x69\x72\xc5\x90\x93\x2c\x21\x5a\xff\xdf\xf5\x98\xf3\xa4\x22\xa9\x35\xd9\x88\xcc\x15\xfa\x7f\x05\x19\x71\xae\xaa\x2f\x29\x3e\x1e\x4b\xb2\xd6\x85\x94\x2b\x69\xf7\x37\xe8\xaf\xff\xf1\xc3\x9f\xf4\x16\xda\x84\xc6\xbd\xfb\x9b\xa1\xfe\xfe\xdf\x2f\xed\xf7\x72\x0d\x76\x67\x52\x69\xa5\x75\x35\x1b\x6a\x98\xc0\xf9\x94\xc1\xed\x27\xc0\x79\x01\xec\x0d\xb6\x43\xbe\x8e\x55\xdc\xed\xb2\xd0\xfa\x76\x2a\xdb\x46\xc4\x04\x15\xdb\x9b\x23\x3a\x45\x8c\xa3\x99\x89\x35\xc5\x0c\xfd\xe5\x97\x9f\xaa\x17\x30\x15\x74\xa3\x0e\xa9\x45\xa1\xf0\xba\x94\xf4\x9f\x44\x22\xbd\x6b\xf4\x2e\xe6\x33\xdd\xb5\x20\x72\xca\x93\x18\x3d\x13\x50\x93\x6c\x1c\x68\xa6\x95\x0b\x32\x60\x7e\x13\x10\x72\x88\x70\xa2\xf8\x84\xc0\x5d\xed\x14\x35\x45\x84\x16\x55\x4c\x96\x86\xe2\x82\x9c\x18\x60\xb6\xfb\x1f\x5d\x6c\x35\x4c\x13\x1e\xb9\xa4\x16\x6b\x92\x8b\x47\xd5\x33\x1f\x97\x4d\xaf\xa8\xde\x86\x5f\x5e\x64\x6b\xb6\xad\x26\x8d\x4d\x42\xb1\x36\xac\xf2\xca\x54\x0f\x86\x46\x9c\x0d\x13\xca\x1e\x37\x5a\x0c\x97\x18\x8e\x74\x0b\x96\x66\xba\xc5\xcc\xce\x6d\x2c\x20\x6b\x9c\x8f\x8f\x69\x92\x98\xd4\x16\x7f\x79\x40\xee\x32\x74\x03\x61\x60\x6e\x72\x40\x49\x6c\xfd\x5e\x56\x13\x16\x84\x41\xc0\xdb\x80\x8d\x16\xd6\x67\x2b\x4f\x90\x4c\xa3\xa9\xcb\xcc\x8b\x38\x93\x5a\x8c\xe6\x02\x45\x7c\x36\xd3\x5a\x2f\x2c\x99\xe2\x3c\x91\x36\xda\x9d\x9d\x2a\x1c\xa9\x01\xcb\xfb\x5b\x71\xf2\x4c\x51\xa6\xed\x52\xf7\xda\xbb\x74\xf2\xe2\x4f\x8d\x02\x37\x8d\x7d\x28\x0a\x30\x82\x19\x4f\x94\x07\x6a\xc1\x97\xcf\x92\x59\xb0\x1a\xcd\x40\x4e\xb9\x50\xc3\xb8\x92\xe7\xac\xdc\x34\x65\x46\xc8\xc8\x69\x02\x41\xc3\xfc\x49\x0b\xff\xe4\x39\x33\xbe\x36\x0d\x41\xef\xea\xa6\x11\xb4\x3b\x46\x8d\x23\x5b\x77\x0b\xd6\xd0\xca\x00\x93\x44\xc5\x98\xf0\x55\x63\xbc\x87\xaf\x2e\xf4\x47\x8d\xc4\x2b\x9f\x3b\x27\x04\xf1\x38\xc7\xd0\x33\xf7\xba\xcd\x08\x69\xa2\xa9\x85\x4e\xd8\x5f\xe6\x68\xd3\x54\x1e\x8a\x96\x5c\x3d\x16\x30\xd9\x4b\x02\xb2\x26\x16\x23\xaa\x04\x16\x05\x00\x94\x4c\x1f\x94\x04\x0b\x88\xcf\x1a\x30\x03\x87\x67\x34\x85\x18\xc5\x54\x42\x82\x08\xdc\xa5\x9e\x33\x0c\xb5\x53\x02\x4b\x47\x3b\xcf\x73\x34\xf1\xe7\x10\x58\x96\x6f\x0d\xc7\xec\x74\x47\x19\xec\x97\xd6\xcf\x78\x94\xe6\x82\x5c\x04\x12\xae\x85\x0a\x42\x94\x49\x3a\x99\x2a\x44\x99\xb5\x3b\xe2\x64\xc2\x05\x55\xd3\x99\x3c\x41\xa3\x54\x6a\x2d\xd4\x04\xab\x99\x78\x14\xa2\xa2\x56\x5c\x68\xdb\x24\xe2\xb8\xd4\xe0\xb2\x8a\xb2\xc1\xd6\x68\x77\x28\xbb\xa5\xbb\x62\xc5\xc6\xe9\x64\xf0\x89\xe5\x36\x28\x91\x19\xea\x26\x32\x71\x80\xdc\x01\x56\xfd\x9e\x12\xa9\xea\xce\x01\x80\x5d\xee\xcc\x4b\xf1\x12\x95\xb4\x90\x49\x06\x15\xc4\xc5\x6e\x83\xe4\x55\x04\xdc\x34\xa0\x54\x99\xd3\x69\x36\x57\x95\x81\x5b\xcb\xae\xa2\x3b\x0f\xca\xa8\x1d\xb1\x21\x19\x0b\x76\x33\x00\xd0\x0d\xd8\x3d\x21\xf5\xf8\x74\x4b\x6b\xff\x1b\x1c\x25\x98\x82\x4d\xf4\x68\xde\xf2\xdb\x38\xb1\x2f\xbb\xf7\x17\x77\xbd\x5b\x03\x39\x71\x73\xf7\xb9\xd3\x1f\x56\xf8\xb5\x2b\xde\xfa\xdc\xb9\xfb\xe5\x72\xf5\x6b\x3f\xf7\x8b\x59\xd9\x15\xaf\xdc\xdd\x37\x27\x73\xb4\x18\x62\x45\x52\x58\x65\x3f\xe7\x68\xbe\x50\x53\xce\xb2\x10\x85\xb8\xc0\x9b\x4e\x91\xc9\x08\x56\x10\x42\x24\xa4\xaa\x70\x1c\xf6\x21\x2e\x67\xb5\x84\x59\x5c\x2c\x83\x2e\xb7\x53\xd1\x68\x8d\x13\xf9\x29\xe1\x23\xf0\x5b\x5b\xd9\xc7\x02\xd3\x35\x44\xa0\x6f\x19\xef\x73\x49\xe5\x3c\xc1\x8b\xa5\x1e\x56\x5d\x39\xd7\x78\x46\x20\xe2\x38\x87\xc5\x73\xc9\x22\x7a\x65\x20\x81\x29\xbb\xd7\xe9\x18\x32\x99\x14\xc5\x8a\xa0\x11\x51\xcf\x90\x37\xe7\x7e\xcd\x6c\xa9\x2e\x60\x44\x9e\x0d\x18\x98\x73\x06\x9a\xc8\x71\x0a\xd1\x7e\x83\x77\x27\x68\xf0\x2e\x26\x4f\x24\xe1\x73\xbd\xf2\xfa\x87\x9a\x4b\xa6\x3b\xc3\x34\xb9\xe6\x2a\xb3\xcc\x6d\xb3\x9e\x82\x44\x74\x0e\x92\xf9\x90\xe8\x76\x5f\x4e\xf0\x28\xec\x64\xc7\xce\x60\x0c\x08\xc7\xb1\x56\xb2\x81\x95\xb9\xe1\xe5\x21\x40\xcc\x9b\x7a\xa1\xd8\xe5\x3a\x22\x45\x66\xfe\x36\x3d\xfa\x6d\x16\xcd\x9e\x95\x2b\xc0\x9e\xf6\xe8\x92\xdd\xf6\x22\xd7\x5a\xc9\x2f\x64\x01\x29\x18\xb7\x98\x8a\x0d\x5d\xb3\x55\x31\xaf\x7b\x71\xd2\x76\x2b\x3a\x3a\x20\x77\x6d\x35\x1d\xb6\x73\xdc\x66\xb1\x7a\x2f\xa5\xa5\xba\x58\xae\xac\xe3\x96\x6a\xeb\x43\x9d\x92\x5a\x1b\xc2\x80\xca\x8a\xd7\x9c\x44\x6b\x68\x5c\xd9\x00\xef\xf5\x77\x2b\x35\x95\x4c\x5c\x73\xf1\x77\xf9\x2a\xd8\xe4\xf8\x72\x3e\x3e\x59\x39\xe2\x28\xe1\xb2\x88\x95\xd3\x7a\xd0\x17\xf6\xd3\xa6\x71\x77\xfd\xed\xab\xe5\xc2\xb5\x02\x1a\x2a\x08\x5f\xc2\xb8\x34\xf7\x8c\xb2\x1e\x32\xfb\xf6\x09\xa2\x10\x6d\x09\x0a\x59\x92\x23\x07\xb0\x18\xe5\x6e\x90\x01\xcb\x63\x56\x24\x7a\x26\x09\x84\xb9\x45\x7c\x36\x07\x13\xbf\x1d\xae\x6d\x89\xc4\x26\x62\xf8\x04\xf1\x54\xe9\xc6\x4c\x4e\x8e\x33\xe2\xda\x84\x9f\xdc\xed\x61\x7c\x6f\x36\xf8\x3d\xc3\xcb\x36\x7b\xdd\xdc\xa5\x94\xa1\x4f\x44\x41\x2b\x50\x66\xc1\x9f\x20\xe8\x09\xe5\x10\xca\x6a\xda\x6f\x71\xa2\xec\x4c\xd6\x58\xf9\x1c\x38\xe5\xa7\x84\x8f\x9a\x8d\x04\xd0\x38\x7a\xb8\xeb\x39\x8b\x64\x1e\x3f\xe5\x81\x32\x17\x3c\x8a\xdd\xdb\xbb\xee\x45\xa7\xdf\xbd\x3c\x43\x0f\x92\x68\xf2\x64\xd3\x85\xfc\xea\x4c\x25\x31\x23\xb7\x48\x2c\x4c\x2a\x82\xeb\x0c\x21\x44\x88\x42\x16\xf4\x0a\xc6\x51\x84\x69\x69\xde\xd8\x00\x92\x42\xad\xa1\x0e\x80\x85\xca\xf3\xb4\x91\x79\xab\x4e\x20\xc4\x49\x0d\x8f\x27\x4a\xcd\x8c\x77\xb6\x1c\x99\xb7\x6a\xfb\x14\x23\xfa\xf6\x3d\x19\x38\x5a\x6a\x4a\xa8\x40\xad\xa6\x65\x36\xd5\xb0\xfd\x9c\xbc\x10\xf7\xcf\x78\xde\x9c\x7e\x8a\x9f\x0b\x9b\xd6\x88\xc2\x9e\xef\x7e\xdf\xe7\xc0\xb1\xb5\xa1\x61\x85\xdb\x4f\x30\x77\x68\x19\xde\x9a\xf1\x4d\x93\xf1\x21\x9d\x91\xcc\x9f\x58\x69\x10\x36\x8e\x55\x22\x38\x3b\xf0\x0b\x65\xa8\x70\x25\x9e\xa0\x31\xfd\x6a\x1b\xcd\xe3\xdb\xdd\xab\x5e\xc0\x43\x4d\x3c\xe5\x14\x2f\x9f\xa9\x35\xc4\x86\x5b\xf8\xbe\x51\x88\xe4\x52\x8b\x44\x91\x16\x97\x04\x89\xb8\xd0\x37\x05\x74\x9b\x7b\x21\x56\x89\x0c\x0a\x0b\x4d\x94\x65\xaf\x4c\xd3\xe9\xcf\x4b\xab\xc4\x58\x91\x53\x2d\x7a\xad\x48\x80\xb6\x39\x32\x90\x4d\x83\x95\x07\x07\x96\xdf\x3c\x23\x32\xc1\xcc\x85\x66\xd7\x0c\xd7\x5d\x79\x5b\xb0\x2a\xad\x02\x61\x48\x0f\x03\xf9\x0a\x52\x7f\x0a\xe3\x90\x73\xa0\x67\xe3\x38\x6c\xf4\xcb\x21\x90\xed\x19\x67\xc1\x38\x35\x83\x4d\xe7\xf1\x21\x0d\x36\xc1\x52\x21\x3b\xa6\x3a\x53\x84\xa7\x22\xee\xd7\x08\x5b\xd0\xed\xdb\x2a\x6f\x7a\x0b\x15\xb5\x58\x02\x9e\x11\xe9\x70\x53\x0c\x4a\x8c\xd6\x69\x9c\x20\x7c\x01\x2b\x94\x9d\xed\x3b\x23\x65\xb9\x5b\xc2\x67\x26\x10\xa4\xbf\xdc\xf4\x19\xea\xb0\x25\xbc\x2c\x17\x97\x55\xa0\x97\xb9\x93\x70\xf2\x8c\x17\x12\xcd\x85\x81\x96\x31\x91\xfb\x6e\xf2\xa0\x81\x15\x3f\xca\x42\x21\x94\x4b\x9d\x40\x60\x8b\x59\x1d\x34\xe7\xe4\xde\xe1\x1e\x5c\x79\xa5\xa8\xf2\x4c\x20\xcf\x9b\xcb\x6d\x15\x2d\x58\x9d\x22\xc3\x68\x8a\xd9\x84\x0c\x9d\x91\x75\x13\x6d\x49\xb7\x73\x01\xcd\x5c\xda\x56\xaa\x2f\xa7\x5b\xa3\x30\xd9\xb2\x36\xe6\xd5\xcc\x80\xa8\x0f\x81\x54\x78\x42\x90\x19\x51\x2b\xb3\x74\x21\x62\xcc\x82\x0d\x83\x9e\x60\x5b\xed\x16\xa3\xe8\xeb\x84\x77\x08\x7d\xba\xc2\x23\x92\xbc\x4e\xe4\x04\x74\x6d\x8d\xf3\xe0\xad\x33\xd9\x00\x04\x3d\x83\x3d\xbf\xc4\x32\xac\xf5\x5e\xa4\x55\xb9\x01\x4d\xf3\x84\x23\x67\x4f\xda\x36\x13\x75\x25\x50\x36\x99\x6a\x5d\x61\x14\xff\xda\xf3\x0a\x88\x54\x19\xd8\xfc\xeb\xaf\x6c\x53\xde\x6c\x20\x5e\x1d\x93\x9a\x71\x6c\x5d\xc8\x64\xe5\x54\x36\x06\x19\x68\x59\xb3\xb0\x37\x46\x8c\x33\x82\xa8\xcc\x5f\x56\xc5\x74\xa8\x0c\xa2\x47\x8b\xf8\xc6\xf8\x92\x15\x1f\xcb\x6a\x4a\xed\xdb\xd2\x92\x83\x27\x64\xb6\x01\x97\xdf\xcd\x88\x56\x54\xb1\x58\x00\xc4\xa7\xe1\xc3\x45\x99\x6e\xe5\x38\x77\x2e\x70\xf7\x1d\x82\xab\x17\xa9\xab\x38\x02\x31\xb2\x34\x38\x64\x70\x50\xed\x4b\xf6\x23\x0b\x53\x33\x60\x99\x65\x03\x36\x22\x95\x68\x86\xe7\xe0\xd3\x63\x5c\xe5\x5f\x19\xd8\x25\x95\x2d\xe1\x89\x13\xc4\xa5\x29\x0d\xb6\x9a\x02\x5c\x4c\xb6\x09\xd5\x68\x5f\xfe\xa1\xbd\x61\xc9\x5d\xfe\xf9\xaa\x16\xc1\x35\x1d\x30\xf0\x84\x3e\x11\xe6\x4e\xd4\x89\x3b\x91\x9a\x24\x6e\xca\xc9\xe2\x14\x43\x90\x33\x89\x7d\xbf\x4b\x33\x3f\x34\xe6\xa0\x43\xb0\x86\xb6\x27\x59\xbf\x32\x88\xc7\x40\xb4\x15\xb0\xf5\x5d\x58\xba\x7f\x46\x2c\x6a\xb0\xc9\x43\xc7\x12\xfd\x81\x71\xf5\x07\x0f\x57\xd9\x99\x4e\xe0\x53\x67\x00\x3b\x59\xaa\x83\x03\x2c\xc3\x6e\x5b\x84\x3d\x7c\xaf\x95\x94\xdf\x36\x32\x21\x0f\xbb\xdf\xab\x2c\xdc\x5d\xce\xc1\xab\x2b\x24\x16\xe2\x05\x50\xf9\x52\x2a\x9b\x5b\x4d\xad\xc2\xfc\xa4\x17\xcc\xac\x72\x55\x80\x40\xb6\x16\xad\x02\x03\x96\xf0\x08\xb6\xd9\x6d\xb3\xd6\x71\x5b\x2b\x20\x98\xab\xad\x22\x9b\x64\x99\xd6\x69\x05\xa2\x18\x38\x67\x8b\x70\xd4\x60\x0c\x9f\x0d\xd8\x47\x2e\xac\x00\x20\x6d\x95\x83\x11\x8e\x1e\x4f\x09\x8b\x11\x4e\xd5\xd4\x60\xfd\x5a\xaf\xc6\xc2\xee\x06\x2d\xe7\xc0\xb6\xc9\x80\x3c\xa8\x8c\xb0\x88\x5d\xbd\x8d\x27\xee\x46\x31\x60\x5e\x23\x50\x47\x01\xaa\x67\x41\x59\xe3\x3a\x45\x97\x48\xad\xdd\xd5\xd1\xa2\xaa\xb2\xed\x52\x5d\xdb\xe6\x73\x56\xa8\xd4\x0b\x15\x20\x20\xbc\x8a\x8f\x97\xa9\xd3\x73\xb6\x4e\xa7\x5d\xea\xfd\xbc\xec\x03\x39\xb1\xfa\x8c\x31\x88\xd9\x19\x68\x39\xeb\x07\xc7\x6b\x0b\x98\xc5\xe3\x54\x40\xb0\x70\x55\x9b\xdf\x45\x53\x9a\xe4\x9e\x93\xef\x4f\xb2\x61\xea\x26\x13\xf2\x44\x12\x83\x98\x1f\x09\xc8\x0b\x30\x36\xcb\x1f\xd0\xff\x36\xd5\x5e\xd1\x9f\x06\xec\x13\xb0\xe1\x24\x59\x00\x9e\x67\xd6\x32\x56\xa5\x66\x1e\x2b\x07\xa0\x6c\x22\x12\x2a\x0e\xc4\xac\xf5\x14\x3f\x91\x01\x73\xcd\xfc\x6f\xf4\x88\xfe\x88\xfe\x54\xa7\x5c\xba\xf0\xfe\x3d\x5b\x59\x3e\x7a\xc1\xf3\xde\x2d\x67\x19\xa5\xe5\x37\xce\x08\x53\x30\x81\x56\xe0\x7a\x64\xb0\xdc\x94\x3d\xf1\x68\x29\x87\xc4\x3f\xb5\x58\x10\xa6\x86\x8c\xc7\x64\x48\x2a\x1c\xaa\x0d\x4c\x42\x0b\x01\xd7\x3c\x26\x2b\xdd\xa1\x19\x33\xfd\x02\x86\x23\x99\x8e\xb2\xe5\x00\x78\x81\x2c\x97\x3c\xb3\x7d\x14\x77\x5a\xf5\xc8\x33\xec\xdb\x4d\xc6\xbd\xa9\x2b\x37\x17\x1b\x71\x0e\xbe\x5b\xed\x4e\x4c\xb0\x72\xd2\x64\xf9\x38\x96\xdd\x10\xfa\x65\x3d\x73\x7b\x59\x79\xa8\xbe\x50\x79\x45\xd0\x09\xd5\xda\x43\x7b\x77\x31\x70\xc2\x4d\x7c\x29\x06\xe2\xb4\x95\x33\x25\x27\x85\x83\x79\x39\xcd\xf6\x5f\xee\x02\x1d\xf1\xb4\xac\x3e\x58\x02\x50\xe9\x07\x1b\x58\x4d\x61\xa1\xf9\xf0\xc4\xe4\x1f\x92\x29\x35\x19\xff\x9d\x8b\x2b\xa4\x4f\x07\x9f\x19\x58\x2c\x20\x5a\xaa\xa6\x5c\xd0\x7f\x36\xed\x6d\x2c\x14\x1d\xe3\x48\x0d\x77\x52\x45\xa6\x7e\x33\x75\x6c\x3f\xbd\xfa\x4a\x75\x4b\x08\x07\xf8\x89\x78\x01\x88\x10\x5e\x68\x5b\x91\x99\x23\xb7\xcc\x6f\xb9\x40\x8c\x3f\xe7\xb0\x58\xee\x7b\x40\x82\xf6\x12\x37\xb0\x56\xb9\xe6\x10\x41\x2c\x29\xec\x4f\x00\xa9\x7a\xaf\x4c\x52\x26\x00\x9c\x1b\x78\x29\xbd\x3d\xa7\x98\xc5\x89\xbb\x42\x10\x37\x11\x3d\x8b\x67\xbc\x58\xcb\xa7\xee\xc7\x55\xe6\x59\x7a\x66\xf9\x8b\x4a\x10\xf0\x00\x23\xa9\xa9\x82\xaa\x59\xa5\x08\xa3\x51\x0a\xc0\xba\x9a\x26\xe3\x34\x31\xd5\x38\x22\x2e\xe2\xb3\x01\xb3\x01\xd5\x5e\x6f\x5a\x04\x74\x5a\x13\x56\x59\x83\xd4\xe2\x8f\xda\x7a\x1f\xc6\x2c\xd7\x28\xd7\xff\x2d\x25\xe9\x8e\xd2\x2a\x5f\x35\x10\xbd\x8f\x27\x32\x8f\x2c\x37\xb4\xd1\x57\x5e\x4e\xdf\xdf\xf5\x4c\xa5\x97\x88\xec\xcc\xc5\x19\xae\x97\xb1\xb3\x98\x22\xb6\x6b\x99\xe9\xee\x4c\x3d\x83\x1d\xd8\xe9\x5e\x22\x48\x67\x59\xf4\xac\xe0\xea\x76\xfb\x3d\x65\x69\xb9\xe8\x65\x8c\x5f\xae\x30\x44\x49\xa8\xdb\xa3\x1d\x6c\x83\xbb\x63\x59\x57\x69\x0c\x75\xcf\xad\x62\xd9\x6d\x51\x91\x21\xaf\x38\xe4\xd2\x3c\x0b\x0a\xb0\x7f\x8b\xfc\xe5\xac\x5e\xb3\xbb\x85\x7d\x1e\xa3\x85\x3f\xa3\x2d\x40\xb0\x8e\x23\xe1\xa2\xfa\xea\x5c\xc3\xae\x63\x1b\x2a\x76\xbd\x1c\x8c\x51\x77\x22\x0c\x4b\x3a\xd4\x23\xb1\x8c\xf9\xb3\xf2\x30\x64\xe5\x5d\x5e\xc7\x2a\x9c\x49\x8c\x2f\x77\x32\xb2\xed\x38\x8c\x70\x34\xad\x9d\xd4\x88\xf3\x84\x60\x56\xa7\x14\x54\x3e\x2e\x1f\x11\x83\x58\x0b\xac\x3b\x49\x00\xb6\xd9\x91\xc0\x96\xfa\xcc\xb5\x22\x16\x03\xdc\xbe\xe1\xe1\x26\xe0\xd3\x0d\x54\x11\xe6\x0c\x6a\x94\x4d\x12\x52\xa6\x95\xad\x8b\x70\x62\x3b\x49\xa2\x34\xf1\x6a\x7d\xce\x89\xd0\xa3\xd6\x24\x7e\x22\x4c\xab\x62\x76\x1c\xce\x43\xf5\xec\xb2\xdc\xb3\x0a\x5f\x27\x59\xd7\xce\x49\x0a\xa9\xa4\xf1\x80\xc1\xc1\xe5\xc5\xc3\xaa\xf7\xaa\xd4\xda\x9b\x6f\xee\xdb\xf8\x74\x7a\x42\xc4\xda\xc7\xf3\xbe\x68\xfb\x5f\xfb\x4c\x9a\xbe\x87\x10\x38\xb2\xb5\xbf\xd4\xf3\xa9\xe5\xf8\x1b\x66\x61\x1d\xc6\xda\x0b\x79\x06\x20\x14\xa7\x18\x4b\xec\x45\xe2\xd4\x61\x7c\xed\xf5\x2e\xc9\x6b\x9a\xb8\xdb\xa0\xe5\x50\x1a\xe3\x0f\x5a\x46\x13\x80\xd1\xb7\xe9\xdc\x5e\x59\xa9\xbe\xe8\x87\xcf\x92\xb6\xf2\xd8\x55\x5b\xb5\x57\x09\x0c\x90\x13\x00\x14\xf0\xc5\x18\x2e\xa8\x34\xc2\xbd\xab\x5d\x32\x9b\xab\x85\x2d\x75\x07\xf7\x62\x41\xde\x07\x18\xbf\x2a\x9f\x7f\xf9\x8e\x8c\x0b\x5e\xff\xaa\xce\xa0\x23\x6b\xad\xa9\x6c\xd2\x11\xda\x87\x85\x29\xc1\x70\xd4\x85\xf8\x98\xaa\xc1\x43\x9c\xd4\x9a\x08\x77\xc0\x34\x41\x39\xca\xa1\x37\x2c\xa2\xaf\x12\x29\xd1\xbc\x0b\x27\x49\x69\x5e\x18\x72\xdc\x55\x56\x39\x70\x94\x97\x37\x6e\x1f\x81\x90\xe0\x11\x59\x2b\xe6\xe0\xca\x7c\xd0\xb8\x8b\xe0\x15\x08\xd7\x9f\xcf\x93\x45\xbb\x34\x01\x5f\xfb\xad\x44\xbe\x5b\x35\x30\x1f\x2f\xaf\xf1\x6e\x2a\x62\xce\x6d\x36\x44\x49\xa2\x54\x50\xb5\x18\x5a\x5b\x6a\x7b\xa6\x75\x6f\xbf\xbc\xb0\x1f\xb6\x31\x54\x9c\x23\xd7\x9f\xb3\xdd\xc2\x3d\x25\xa8\x29\x8b\x64\xa7\xd0\x66\xb9\x71\xaa\xa6\x95\x88\x58\x4d\x84\x75\x90\x5c\xed\x86\xaa\xbb\xd8\x74\x78\xb6\xdc\xca\x90\x8f\x1d\xd8\x55\x7b\xc2\x96\xeb\xd0\xac\x61\x84\x76\x98\xda\x73\x41\xb9\xb0\xe5\x5e\xda\x44\x2a\xce\xf0\xd7\xe1\x1c\x0b\x9c\x24\x24\xa1\x72\xb6\xb9\xc9\xfc\xc7\x3f\x37\x8e\xf6\xc2\x94\x25\x32\x83\x9d\xe1\xaf\x74\x96\xce\x10\x4b\x67\x23\x2b\xe5\x62\xf9\xe8\x23\x9a\x3a\xfc\x05\x03\xcc\xe5\x06\x58\x40\x81\x10\x1e\x46\xed\x80\x79\x68\xe5\xd6\x54\x81\xa3\x29\x25\x4f\x80\xa5\x2a\x18\x91\xf2\x0c\x5d\x73\x45\xce\xd1\x67\x3c\xef\x83\xa0\x66\xea\x84\x4e\x8c\xd3\x01\x4b\xa4\xa5\xd6\x94\x51\x75\x32\x60\x16\xe2\xdc\x51\xe5\x43\xc4\x99\x81\xb9\x8d\x80\xb0\x59\x13\x60\x45\x77\x78\xaf\xca\x65\xab\x52\x59\x43\x6c\x81\x9f\x87\x5e\x48\xf2\xd0\xa4\x7c\xac\xb1\x8f\xef\xf0\xb3\x09\xc2\xbf\xc4\x0a\x9b\x12\xc0\x4d\x92\xbb\x8d\x72\xb3\x65\xa1\x0c\xba\xb3\x8b\x06\xe2\x16\x62\x24\x2b\x68\x67\x42\x8e\xbf\xa3\x67\xe4\x0c\xfd\x94\xf0\x91\x3c\xc9\x4d\x55\xe6\xa1\x24\x4a\x9e\x18\xbf\x1f\xfc\xdb\xe4\xf7\x7d\xef\xa8\x9f\xf3\x7d\xa8\xe5\x38\xa6\x5f\x0d\xb2\x89\xfc\xf1\xfc\xc3\x87\xd9\xe2\x74\x94\x46\x8f\x44\xe9\xbf\x40\xa6\xa8\xa4\x90\x83\x05\xc3\x55\x20\x63\xab\xa8\xb3\x0c\x50\xd6\x6a\x47\xda\x5c\x29\x49\x00\x0c\x5f\x5f\xe9\x59\xb5\x5c\x87\x67\xc5\x59\x75\x29\x50\x3b\x65\x91\xd6\x1d\xaf\x02\x8a\xf6\xcb\x68\x2b\xa6\x1a\xb0\x0f\xde\x3d\x4e\xf0\xa4\xa4\xb2\xac\xa1\xa4\xdc\xcc\xa8\xdd\x45\x7a\xee\x10\x44\xa3\x4f\x59\x31\x74\xf0\xbd\xf3\xf2\x82\xb7\xd6\x7a\xb1\xce\x06\xac\x23\xd1\x33\x31\x45\x7e\x21\xd1\x14\x9c\x3e\x29\x95\xd3\x2c\xcd\x14\xcc\xd0\xd0\xa8\xc1\x38\x36\x50\x18\x56\x71\x74\x9a\x95\x73\x8b\x59\x0d\x14\x27\x92\x9c\xe8\x86\xc1\xa4\xea\xa2\x43\xd1\xb3\xc0\xf3\x39\x11\x03\x66\xf1\x6a\x01\x95\x9d\x73\x1b\xf9\x53\x97\x22\x10\x34\xca\x97\xd5\x28\x3d\xda\x93\x62\x16\xea\xaa\xf3\x0d\x49\xab\x4d\x14\xae\xca\xc3\x74\xe4\xd3\xb2\x68\xdb\xf0\xfd\xd7\x37\x1b\xb7\x1c\xf3\x2a\xed\xbc\x53\xca\xbd\x80\x1a\xe2\x33\x50\x20\x65\x5e\x2a\xd5\xd9\xfa\x32\xf5\xbd\x20\xe6\x00\xdc\x39\x7c\x1c\x73\x22\x3d\x23\x3e\xca\x6c\x71\x09\x1d\x13\x2d\x7d\x0c\x98\xde\xc6\xbe\xc3\xc1\xa0\xa6\x3b\x10\x75\xdd\x69\x24\xb8\x94\x36\x9d\xc2\xb4\xd3\x9c\x14\xb7\x45\x81\x46\x03\xfd\xde\xbb\xb9\x1e\x2e\x97\x6a\xf4\x9e\xb9\xa2\x8d\xf6\x61\x25\x72\x42\x6d\x53\x2b\x4b\x34\xe6\xb4\x58\xa3\x48\xe3\x87\x8b\xab\x5e\x56\x99\xac\xd4\xf5\x72\x95\x46\x1f\x2e\xbf\xbe\x4e\xe3\xf2\x8c\xbd\x8a\x8d\xa5\x26\x1a\x6a\x36\xae\x5e\xac\x62\x10\xf7\x36\x58\x88\xa5\xa5\x5f\xc9\x1f\x8a\x7b\x66\x55\xae\xc1\x8e\x96\xa9\xe6\x5a\x89\x40\x60\xdc\x77\xe0\x02\x08\x5e\xfa\x2d\xa9\xf0\x6c\xee\xe7\xd1\x3a\x30\x58\x3b\x4d\x73\xd4\xea\x2e\xc1\x17\x05\xa9\x8f\xb0\x09\x12\x2a\x0f\x6e\x69\x29\xd6\xf3\x78\xf5\x2d\xf6\xfd\x2e\x62\xd3\x5f\x2e\x31\x3d\x59\xe4\xc1\x90\xd2\xca\x6e\xae\xae\x7a\x8d\xdd\x7f\x44\x32\x9c\xff\xda\x05\xdd\x36\xf3\x34\xc3\x03\x13\x04\x4b\xeb\xfe\x86\x04\xcd\x52\xf2\xd6\x1a\xe6\xe1\x6c\xcc\x26\xc5\xfb\x34\xab\xac\xe1\x5d\x35\xb6\x58\x5c\xe4\x0e\x22\x15\x82\x3c\x11\x01\x7b\xc7\x86\x52\xb1\xe2\x51\xc5\x89\x20\x38\x5e\x78\x14\xc9\xe2\x38\x4c\xcf\x60\x1e\x93\x74\xa6\x15\x78\x50\x4d\x18\x3f\xe5\x73\xa7\xb3\x14\xde\x82\xb2\x28\x74\xac\x6f\x2c\x2f\x0a\x44\x7f\xc1\x4e\xc9\x57\x2a\x95\x96\x2b\x2a\x42\x60\x5d\x23\x20\xf1\x40\xb1\xb4\x29\xb1\x37\xdc\xe0\x5d\xe7\xa7\x9b\xbb\x7e\xf7\x72\xf0\x2e\x4f\xb9\x70\x39\x85\x19\xcc\x97\xab\xda\xc0\xd9\x80\x65\x71\xca\x19\xaa\x35\xac\x25\xc2\x71\x9c\xc7\x47\x5b\x25\xd2\xc8\x6c\x8d\x1c\xd9\x3b\x15\x2b\x23\x94\x1b\x9a\x79\x80\xc4\xb2\x43\x3d\x59\x0d\xae\xb3\xc2\xc9\x31\xe9\x71\x0d\x79\x4c\x3b\xba\x6c\x7c\x40\x5e\x65\x74\x6d\xa2\x1c\x62\x24\x23\xcf\x4e\x57\x82\xdb\xf9\x03\x36\x97\xf0\x7a\xdc\xce\x2d\xc8\x06\x8b\xfa\x91\x7e\x25\xf1\x5d\x8d\x54\xb5\x93\x34\xa5\x56\x01\x96\x95\xab\x90\x32\xba\x8e\xc6\x9f\x4d\xe5\x41\x7f\xd7\x9e\x2d\xdd\xe4\x38\x7b\x39\x66\x2e\x00\xe6\x2a\x84\x51\x44\x84\xc2\x94\xa1\x31\x1c\x6c\x16\x2d\x10\xa0\xb0\x10\xf0\x61\xff\x19\xcd\x28\x03\x38\x88\x26\xd2\x3e\x14\xe7\xb1\x86\xd0\xfa\xb9\x77\xfd\xd0\x2f\x88\xaa\x3f\xdf\x3c\x14\x2b\xf5\x77\xfe\xde\x28\xab\x96\x5a\x68\x0a\x16\xf2\xa6\x98\xa7\x96\x5a\xe8\xe0\x8c\x32\x95\x13\x4d\x16\x8a\x3c\xdc\x5d\x6d\x25\xdf\x55\x3b\xcb\x6a\x81\xdf\x7d\xe9\xaa\x1a\xe6\xa2\xcd\xa7\x31\x89\x56\x41\xd3\xb6\xdf\x47\x26\x0a\x4a\xd3\xc1\x5a\x13\x2d\x6c\x1d\x96\x68\x8e\x85\xf5\x43\xc5\x26\x00\xaa\x58\xee\xcd\x68\x5e\x4d\xb0\x20\x9f\x88\xfa\x55\x5f\x7d\x9c\xed\x22\xb9\xc4\x8a\xb2\xe0\x1f\x25\xc3\x27\xd3\xf0\x1a\x27\xcd\x0e\xa5\x21\x7f\xc9\x09\xcb\xd0\x03\xb2\x3d\xf8\x60\x1a\x67\xa6\xec\x7f\x47\x37\x07\x14\x71\x61\x9a\x5a\x25\xe5\x4c\xef\x48\x83\x91\xeb\x80\x75\xbd\xe6\xf8\xd8\x7c\xdc\x12\x66\xd0\x4b\x16\xd0\x6d\xe5\xa4\x44\x9d\xdb\x5e\x05\xad\xaf\xca\x2e\xa4\xb7\x55\xa3\x28\xc9\xbc\x59\xbb\x46\xbe\xf2\x72\x4e\x0f\x02\xea\xca\xce\x74\x3b\x6c\x2b\xe3\xf4\xbf\x2d\x46\x12\x1c\x02\x04\x73\x95\xca\x50\xc8\x25\x5f\x81\xb6\xbc\x5e\x7a\x65\x4e\x86\x35\x91\xac\xfc\x01\xd9\xec\x1a\x1f\xbd\x69\x39\x74\xfb\xc4\x47\x73\xe2\xa6\x0a\xb2\x8d\x2d\xd8\x19\xc2\x55\x3e\x9b\x36\x10\x57\xbf\x9a\x1d\x9d\x21\xa0\x00\xa6\x8b\xab\xb2\xe9\x42\xae\x2d\x20\x81\x3f\x5d\x7f\xb7\xad\x87\x8a\x95\x8f\xcf\x99\xbf\x2d\xc0\x38\x9e\x63\x6b\x77\x00\x25\xca\x95\xbf\xa8\xaa\x96\x78\x36\x60\x5e\xc0\x8a\x34\x6a\x8f\x3e\x23\xae\xe2\x0c\x94\x31\x66\x80\x56\x0e\xb9\x4f\x99\xf0\x53\x58\x81\x32\xee\x81\x9a\x16\x6b\xc6\x2c\xf5\x63\x4f\xa7\x9c\x62\x97\x5d\xea\x2c\x28\x36\x0e\xd0\xb7\x2f\x41\x7b\x5e\x95\x08\xdb\x31\x98\xa3\xc1\x68\x81\xbd\x1a\x84\x1e\x22\x41\xcc\x89\x64\xef\x55\x96\xbf\x4b\x93\x85\x0b\xa9\x2e\xb9\x07\xb4\x54\x87\xa9\x6d\xb9\xf9\x80\xef\x00\x72\x6b\x5d\xc5\xc1\x3b\x56\x2b\xcd\x54\xce\xc7\x0b\x3b\xc1\x8f\x45\x82\x4e\xeb\xac\xea\x5f\xe7\x24\xda\x04\x17\xe8\x16\x0b\x3c\x23\x8a\x88\xa6\x70\xa4\x62\x85\x70\x10\x71\xdc\x0a\xda\x7e\xcd\x2a\x9a\xf2\x29\xe5\x3a\x3b\x99\x76\x7b\xb5\x0a\xe7\x27\x9b\xc5\x5a\x90\x66\x7a\x1a\xbf\x5a\xcb\xff\x9a\xb3\xb0\xfd\xe4\xd3\xb0\xd1\x56\x1e\xac\xd3\xb6\x73\x7a\x19\x7c\x9b\xfe\x12\x52\x4c\x21\x5c\xe8\x40\x80\x6d\x56\x8f\xb2\x0e\xd1\x66\x15\x2f\xdd\x09\xef\x76\x19\x0e\x2e\x33\xb9\x74\xa8\x0a\xb9\x13\xb0\x4b\x40\xa5\x32\xe0\x2e\xd5\xa8\x34\x20\xb4\x54\x45\x48\x7a\x6e\x3f\x8b\x59\x98\x1b\x74\xad\x64\x55\xae\x18\x56\x22\xd7\x0a\x1e\xb7\x2b\xc4\x8e\x20\xd1\xec\x5a\xa2\x59\xb5\x95\x0b\xd1\xb5\x7a\x77\x12\x51\x02\x0f\xb2\x95\xbc\x2d\xea\x43\x71\x82\x90\xd2\x65\xaf\x48\x5b\x0e\x18\xae\x7e\xca\xb2\x7f\x15\x39\xb8\xdb\xd4\xfe\x56\xad\xca\x55\x3d\xf3\x5c\x50\xe0\x81\x4a\x7c\x69\xc0\xc6\xd5\xc0\x68\x4d\x18\xa4\xb1\xf2\xf7\xae\x8d\x03\x0b\x72\xc6\x17\x3c\x45\xcf\x54\x4e\x91\xe2\x03\x06\x71\x82\x99\x37\x40\x71\x64\x5e\x3c\x81\xb7\x00\xdb\x42\xa6\xa3\x19\x55\x08\x7b\x33\x2c\x98\x24\x4f\xec\x79\xd6\x1f\xc0\x8c\x2b\xe1\x0b\xaa\x70\x97\x56\x1c\x9a\x0d\xec\x6b\x79\x23\xdb\x22\x14\x78\x31\xcd\xfb\xc5\x28\xf0\x34\x1e\x5f\xc3\xac\x3c\x73\x01\xa4\x00\x55\x5b\x1b\x2c\x12\x2c\xc0\xf5\x52\xa9\x4a\x77\x8b\x35\xf4\xac\x00\x28\xc8\x17\xa2\x15\x42\x41\xfe\xfa\x2e\x20\x0a\xea\x6a\xcf\x35\xa5\xac\xba\x4f\x6a\xec\xdf\x2e\x15\x5a\x71\x17\x38\xef\x4b\x4a\xb7\xb5\x92\xd2\xa1\x41\xd5\xe5\x09\x01\x9b\x87\x97\xd7\x45\x2f\xc3\x19\x8f\x38\x8b\xe9\x1a\xf1\xc2\x50\x5f\x6c\x94\x8e\x3b\x6c\xb1\x1a\xf9\x68\xe6\x07\xea\x5b\x7b\x89\x27\x89\x54\x63\x6e\xae\x54\x59\xf3\xf6\xfd\x9d\xee\xa5\x84\x16\xc1\x88\x48\xf9\x76\x62\x5c\x41\xde\x4f\xa4\x92\x45\x45\x2e\xea\x80\x55\x4b\x49\xcd\x7c\x7b\xdb\x34\x92\x9d\xc2\xee\x79\x3c\xc2\xcd\xc2\x5a\xdd\xbe\x64\x81\x78\x46\xa1\x27\x16\x64\xa3\x24\x06\xe7\x6e\xc8\xba\x00\x2a\x2d\x1c\x6d\x92\x6b\x5e\xc1\x39\xaa\x87\xbe\x94\xe4\xb1\xf2\xec\x5a\xc1\x60\x87\xea\xe7\xd2\x0d\xd2\x3a\x27\x26\x93\xe3\xed\x8d\x61\x83\xba\xe3\xcc\xd6\x50\x72\x27\x6f\x52\xde\x18\xe0\x6c\x77\x06\xc2\x5b\x46\xa6\xd0\x8d\x9f\x80\x0b\xda\x8e\x1d\x9b\x70\x9c\x0c\x1a\xbe\xb4\x26\x85\x19\x9b\x90\xca\xbd\xcc\x7a\xdd\x9a\xd4\x9e\x4f\x54\xd8\x98\x64\xea\x5b\x37\xa0\x18\xb5\x0d\xe5\x2c\xdd\x16\x99\x00\x9a\xb2\x98\x08\x46\xb0\x9a\xbe\x5c\x26\xc8\xc5\xb6\x26\x74\x6f\x7c\xfb\xcd\x0a\xb1\x23\xc5\xc5\xe4\x90\x6d\x86\x5b\x2c\xce\xbf\x72\x9c\xfa\xf5\x36\xd6\x2c\x1b\x20\x91\x95\xa7\x5e\x52\x6f\x2b\x4c\x9b\x1e\xfe\xd0\x3a\xbb\x74\xab\x64\x91\x6a\x95\x73\x3f\x69\x33\x15\xb6\xa9\xa5\x84\x19\x7d\xda\xfd\xa2\xde\x2b\x48\xf2\x26\xf2\x53\xf6\x9f\x32\xd1\x54\x3e\x3c\xf5\xb2\x28\xa0\x86\xbb\xc2\x94\x59\xee\xd5\x94\x38\xa1\xe5\xde\x19\xae\xca\x95\x38\xf8\x2c\x9c\x37\x9f\x84\x13\x52\x32\x42\x4a\x46\xc5\x1a\x85\x94\x0c\x84\x0e\x2d\x25\x63\x95\x0a\xda\x64\xa4\xcd\xfc\x86\x50\xe6\xb5\x50\x5b\xc9\xac\xef\x0a\x3d\x72\xf3\xb4\x03\x67\xe7\xf4\x63\xb6\xec\x2f\xf6\x87\xca\xb0\xad\xa5\xcf\xca\xb3\xf5\x6d\xae\x6c\x51\x76\x5d\x60\x11\x27\x16\x82\xd0\x06\x55\x17\x6d\x64\x4d\xe6\xdc\x01\xfb\x99\x3f\x93\x27\x22\x4e\x10\x56\x68\xc6\x01\xd7\x2a\x8f\xe1\x81\x83\x50\xc0\xd2\x37\xb1\x1a\x18\x5d\xe3\x19\x89\x4d\xa9\x4d\x2f\xf4\xd2\x1a\x95\xad\x3b\xb8\x0a\x69\x17\x40\x63\xcd\x32\xb8\xd8\x8e\x01\x33\xe1\x90\x26\x04\x0f\x64\x05\xea\x26\x06\x1b\xe6\x0f\x99\xb3\xfa\x0f\x67\xa8\xaf\xef\x27\x2a\x8b\xe3\xf5\x80\xf7\xea\xc6\x36\x60\x13\xc1\xd3\x79\x66\xe7\xe3\x23\x53\x73\xd9\x44\x68\x2d\x3b\xab\x61\x30\xce\x53\x1d\xe1\x58\xeb\xe2\xcd\x1b\xe7\x55\x22\x65\x37\x82\x59\xf2\x37\x90\x3e\x86\x59\xf8\x9f\x0d\xc7\x37\x3e\x66\x0f\x5c\xa6\xa9\x02\xc0\x9e\x1c\xe0\x97\x44\x82\x55\x28\xf3\x0c\x14\x72\xdd\x8b\x78\x0a\x95\xe3\x6c\xb2\xdb\x66\xbe\x15\xe7\x7f\xa8\x86\x6a\xc8\x3b\xb7\x71\x69\x26\x91\xd6\xde\x13\x7b\xb3\xe8\xb6\x8e\xf0\xad\xe3\x17\xb7\xa9\x98\x73\x90\xc4\x92\x85\x83\x96\xb0\x20\x7f\x73\x3e\x4f\x4d\xec\x1d\xf5\x43\xb1\x2a\x77\x36\x95\xea\x33\x56\xd1\x54\x73\xee\x1c\x95\x6d\x47\x31\x89\x39\x57\xde\xaf\x95\xb7\x62\x06\x17\x7e\xef\x35\x6e\x8f\xa6\xdd\xe3\xc5\x18\x66\x81\x9c\x99\x24\x31\xd3\xfd\x19\xd7\xa0\xad\xa4\xee\xd9\x45\xdd\x27\xf6\x89\x9e\xe8\xaa\x5d\xb4\x6a\xfc\xed\xf6\x56\xb1\xd4\xdb\xce\xa3\x1d\xb7\x80\xb9\xb9\xb4\xa0\x62\xf9\x8b\xb6\x34\x70\x4d\x88\x82\xa0\x9b\x65\x2a\xd9\xf2\x0c\x4f\x5a\x1c\xc9\x2c\xae\x33\x3c\xd7\x4a\x84\xe2\xfa\x96\x14\x13\x23\xc7\x9a\x58\x5e\x84\x51\x2a\xa8\x3b\xfb\xa5\xbc\xf5\xfa\xdd\x01\x16\xca\x0f\x7e\x29\xaf\x08\x7b\x55\x0e\x4d\x50\x02\x8e\x54\x8a\xb3\xe0\x49\xd8\x13\xae\xfa\xbe\xc9\xd1\x77\xce\x7f\xe1\xc4\xbb\x8a\x35\x5d\xb9\xb1\xb7\x58\x65\x5c\x85\xc1\xd8\xea\xa4\x51\x36\xf1\x00\x1c\xab\xad\xc4\x6d\x8a\x6e\x54\x7e\xd9\xae\x70\x48\xe5\xa7\x4e\xf6\xd9\xe4\xdb\x06\x80\xa9\x56\x21\xeb\x87\x58\x31\xc1\xcb\x04\xb0\xa1\xc2\x56\x76\xf3\x81\x3d\x6d\x47\x00\x7b\x4c\x21\x94\x01\x3b\x59\xee\x3b\xbf\x6c\x82\x1e\xda\xf7\xff\x99\x3f\x04\xfd\xdd\x16\x67\xa9\x78\x71\xc0\xb8\xb0\xaf\x9e\x64\xef\xe9\xd7\x72\x7c\x62\x2d\x25\x2e\x7f\x99\xa3\x8f\x8a\x22\x4e\x21\xa0\xb5\x58\x9c\x39\x03\x4f\x9d\x95\xb5\xd0\x83\x7f\x4c\x47\x44\x30\xa2\xe7\xe4\x70\x1d\x32\x1e\x3c\xc3\x0c\x4f\x00\x0c\xfb\x04\x82\x0e\x41\xca\xce\x35\x28\x73\x12\x4d\x7d\x50\x60\xb2\x9a\xc7\xdb\x54\xe6\xbc\x4e\x36\xf4\x69\x24\x70\x8b\xc5\x9b\x47\xae\x54\x1f\xda\x3b\xdb\xff\x66\x8a\x46\xbf\x73\xff\xcb\xf0\xae\x7b\x7f\xf3\x70\x77\x51\xd0\x36\x2e\xae\x1e\xee\xfb\xdd\xbb\xca\x67\x79\x1a\xf0\xdf\x1e\xba\x0f\x35\x8f\x5c\x03\x57\x9d\x9f\xba\x85\xa2\xf3\x7f\x7b\xe8\x5c\xf5\xfa\x7f\x1f\xde\x7c\x1c\xde\x77\xef\x7e\xed\x5d\x74\x87\xf7\xb7\xdd\x8b\xde\xc7\xde\x45\x47\x7f\xe9\xbf\x7b\x7b\xf5\xf0\xa9\x77\x3d\x74\x11\xdd\xfe\xa3\x2f\x37\x77\xbf\x7c\xbc\xba\xf9\x32\xf4\xba\xbc\xb9\xfe\xd8\xfb\x54\x35\x8b\xce\xfd\x7d\xef\xd3\xf5\xe7\xee\x75\x73\x71\xfb\x6a\x6a\xd4\xd6\xcd\xf6\xee\x5f\xcf\xd6\xe5\x49\x77\xa3\x85\x3d\x13\xf4\x9f\xe0\x72\xb9\x35\x5b\xf4\xf4\xc4\xfd\x65\x4a\xd1\x9f\x6a\xce\xed\xdc\x79\x39\xd3\x1b\xb0\xcc\x27\x9c\xc9\x02\x0a\x4f\xa4\xcb\xea\x2e\x8c\xf6\x1c\x75\xe0\x90\x81\x9e\x53\xe8\x14\x92\x46\xb2\x91\xba\x28\x02\xd8\x87\x09\x9d\x51\x08\x28\x40\xa7\xa8\xbc\xe0\xc5\x06\xed\x9c\x60\x08\xd6\xdd\x18\x37\x9d\x06\x59\x4e\x18\x87\x9d\x72\x8e\xdc\xc5\x42\x8c\x15\xc4\xc0\xfa\x2e\x18\x9e\xd1\xa8\x9c\xdd\x02\xc8\xb6\x28\x47\x71\x29\xb7\x58\xd8\x60\xc5\x96\xa7\x04\xfd\xf2\xd7\x7c\x50\xe0\x78\xb1\x06\x83\x74\xa9\x02\xa5\x7d\x20\x52\x43\xd5\x55\xdb\xb3\xd0\x93\x3b\xe6\xd6\x22\x0e\xe7\xd6\x56\xba\x07\x2f\x59\xca\x3c\x24\xb7\x82\xcb\x4c\x1f\x6f\x33\xa3\xd2\x1e\x3f\x47\xf7\x80\x22\x23\x73\x8b\x83\x5e\xc5\x79\x92\x4e\x28\x43\x74\x36\x4f\x80\xc7\x18\x33\xc4\x88\x4c\xf1\x13\xe5\xae\xe0\x8a\xa9\x4b\x03\x74\xb4\x12\x21\x3a\x45\xb5\x07\xe5\x1c\x75\xe2\x58\x16\x19\x5c\x61\xe7\x38\x2e\x7a\x5a\x1c\xb6\x0f\xbe\xa6\x19\xab\x65\x9b\xa5\x7d\x94\x1f\x39\xa0\xd8\xee\x71\x72\x96\xd9\x61\x51\x64\xd8\x42\x6a\xd1\x14\x1c\xba\xad\x3c\xdc\x48\x86\xe9\x63\xf9\xe8\x58\xf3\x2a\x39\xc6\x21\x16\x6d\xd7\xa3\x85\x2e\x6a\xdb\x69\x46\xd9\x21\x1c\xb4\xcd\xfa\xac\x05\xdc\x5e\xd1\xa5\x9b\x71\x52\x2a\x75\xd7\xba\xbf\x42\xa9\xbc\xca\xce\x76\xea\xa4\xaa\x16\x22\xe1\x48\x0e\xb3\xfd\xbf\xc6\x3c\x6e\xe1\xd3\x9b\xec\xcb\x46\x49\x73\xe8\xd1\x6d\x5d\xd7\xd5\x52\xfe\xb3\x75\x5f\x35\xee\xc3\x1d\x21\x67\xb5\x97\x22\xa1\x54\x08\x8d\xc0\x4b\x89\x29\xb3\x05\xa4\x48\xe6\x46\x73\x05\xdb\xf5\x39\xce\x4a\x2a\xe2\x11\x7f\x2a\xe8\xc4\x33\x22\x25\xae\xc1\x82\xf1\x2c\x79\xdb\x30\x86\xec\x84\xda\x0f\x5b\xee\x27\x77\x26\xfb\xfa\xab\x26\x19\xfd\xce\x57\xe8\xdd\x44\xb5\x0c\x1b\xbb\x20\x66\x74\x63\x52\x19\x35\x7f\x39\xc9\x63\x80\xb8\xf0\x42\xa3\xea\xbc\x56\x2d\xad\x81\x65\x82\x55\xd6\x05\xf3\x3d\x8f\xeb\x87\x0e\x79\xad\x6f\x0c\x36\x6e\xdd\x41\xb8\x48\x9f\x35\x76\x5d\xc1\x4d\xeb\x57\x6c\x8f\xf8\x6c\x66\xe4\x82\x82\x09\xf8\x04\x61\x93\x41\x9a\x4b\x53\x32\x8d\xa6\xc6\x39\xa6\xaf\x8c\x93\x01\x7b\xf6\x16\xa4\x10\x63\xdd\xf1\x5b\x02\xa0\xd6\xaf\xfa\xb8\xd1\xa7\x42\xe4\x3a\x88\x8c\x14\xc2\xa8\xbd\x8d\x60\xfc\x98\x79\xc1\xb3\x15\x1b\xdc\x5b\xaf\x2d\xb6\xfa\x06\xb5\x35\x4b\xf4\xad\xab\xb0\x99\xcd\xcd\x2b\x6c\xb9\x85\x82\xdf\x76\x08\x5e\x6d\xcd\xaa\x11\xec\xa0\xb4\xe6\x8b\x22\xa7\x67\x99\xb0\x26\x71\x7a\x36\xb2\xf0\x1f\x7a\xba\x8e\xda\x7f\x74\x33\xfa\xa3\x51\x84\xd3\x1a\xbc\x18\xaf\xb5\x0c\x3c\x1d\x9d\x6a\x99\xd5\xe1\x18\xd8\xf8\x11\x89\x4e\x0d\x20\xe3\x7b\x08\x62\xed\xdc\xf6\xde\x9f\xa0\xf7\x7e\x22\xdf\xfb\xa3\x31\x5d\xe4\xc7\xdf\x52\xcd\x16\xf7\x04\x5d\xae\x90\x4b\x52\x3c\xf4\xb0\x53\x4a\x7c\xc0\xee\x18\xcb\x06\x50\x1d\x17\xd0\x5f\x16\xbe\x01\x8f\x3e\x94\x8b\x34\x4e\xef\x2c\x92\xdd\xfa\xcd\x8c\x84\x4d\x65\xc5\xca\xc5\x03\x36\x5a\x94\x3d\x63\x27\x99\x6b\xac\x35\x8f\xd8\xba\x04\xa2\x6e\x6f\x39\xef\x7c\xc7\x11\xd6\xcd\xb7\xd1\x8a\x4c\xf6\x4e\x56\xa7\x27\xe7\xa1\x75\xa1\x1d\x21\x35\xa1\x6a\x56\x05\x33\x9f\x23\x66\xe5\xa2\xac\x92\xbe\x8e\x6d\xbb\xb5\x88\xe7\xef\x54\x51\xc4\xa6\x72\xd4\x88\xf6\x61\x97\xed\x77\x97\xed\x22\x95\xa5\x38\xb8\xf5\xaf\xef\x0b\x23\x45\x7a\xcd\x38\x73\xaf\x56\x65\x32\x06\x5f\xa8\x93\xb9\xba\xbc\xf5\x9a\x8e\x72\x8f\x26\xab\x3d\xe5\xf7\x26\xda\xc2\xf8\xaa\x97\xc7\x5a\x1e\x6a\x47\xd9\xea\x52\x9c\x9a\xb4\x55\x45\x67\xe4\xc4\x94\x33\xcb\x23\x44\xec\x79\x85\xed\x66\x02\xbb\xa6\x84\x0a\xd7\x89\x05\x8f\x5c\x0b\xe7\x60\x4d\x5d\xa0\x6e\x8f\x6c\x11\x9e\x73\xdd\xf9\xdc\xbd\x1c\x76\xaf\xfb\xbd\xfe\xdf\x2b\x80\x41\x8b\x8f\x1d\x36\xa8\xf7\xc2\xfd\xdf\xef\xfb\xdd\xcf\xc3\x4f\xdd\xeb\xee\x5d\xa7\xbf\x02\x37\xb4\xa9\xb3\x3a\x4c\xca\x54\x56\x29\x8f\xeb\xe0\x52\x3a\x23\x73\x45\xef\xcb\xe8\xa1\x5e\x27\x94\xd4\x20\x88\x1a\x4c\x07\x16\x13\x81\x62\xf2\x44\x12\x3e\xcf\x8d\xba\x95\x04\xf3\xa0\x45\x2b\xda\x6f\x82\x17\x85\x36\xcb\x34\x3e\x47\xa6\x36\xa2\x57\x1e\x3a\x6b\x10\x44\x3e\x2c\x08\x7b\xaf\x10\xf9\x3a\x4f\x68\x44\x95\x97\xf3\xc9\x85\x75\xee\x18\x9f\x2b\x84\xf4\xae\xd8\x5c\x3b\x0b\xe1\xd9\xb9\xc5\xc1\x0f\x3f\x58\xb6\x35\x64\x27\x2a\x83\xba\x5b\x59\x19\x6a\x07\x66\x85\x1a\x4f\xfb\x12\x12\xdf\x06\xa3\xdb\x87\x71\x62\x39\xb1\xc9\xe6\x6d\xd6\xa0\xf4\x55\x0f\x72\xf5\x6d\xd8\x14\x5c\x54\x38\xd7\xcd\xd1\x45\xed\x76\xea\x2b\xc7\x08\x15\x0a\xd1\xee\x00\x52\xc5\x06\xfc\xaf\x19\xe5\xb1\x54\x08\x88\x99\x40\x5d\x8c\x04\x99\x71\xa5\x15\x30\x13\x46\x71\xa2\x85\x2a\x8a\x13\xfa\x4f\x00\x1f\x13\xe4\xcc\x0b\x3b\x71\x90\x6d\xb9\xf3\xc2\x02\x83\x9c\x0d\xd8\x65\xf7\xf6\xae\x7b\xa1\x19\xd2\x19\x7a\x90\x80\x2b\x56\x98\xfa\xa5\xdd\xde\x46\x1c\xf3\xc3\x3f\x28\x93\x8a\xe0\xba\x08\x3a\x22\x04\x17\xed\xf9\x43\xd6\x5f\x17\xbe\xab\xde\xde\xf0\xac\x60\x19\x73\xe6\x87\xeb\xda\x2a\xe2\x5e\xa2\xc5\xce\x13\xd9\xee\xf0\x73\x81\x22\x3e\xae\x0a\x48\x22\x45\xaa\xef\x91\xda\x80\xcc\xda\x7e\x7e\x85\x3e\x6f\xe1\xdb\xa6\x79\xf6\x21\x2e\x51\xaa\x1c\xe6\xd5\x20\xc1\x66\xe5\x8c\x4a\xf3\xac\x15\x15\xc5\x6b\x60\xb0\x94\xb6\xfe\x88\x4c\x30\x43\x22\x65\xac\x84\xfb\xeb\xdb\xf9\x96\x23\x8d\xd6\x3d\xaa\x9a\x66\x78\xc6\x53\x66\xea\xf1\xea\x51\x55\x0c\x46\xce\x09\x53\x2b\x06\xf3\x5a\x08\x3b\xa5\xa1\x1e\x2e\xc8\x4e\xc5\x40\xeb\x70\x76\xaa\xbc\x59\x50\xaa\x7c\xbd\x6b\xd9\x45\x32\x16\x5c\x5a\xfa\x50\x65\xf7\x73\xb5\x96\x8d\xe5\xe3\xd6\xdd\xf5\xb1\x7c\x5c\xdd\x55\x4c\xa2\xc7\x75\x2f\x9b\x72\x3a\x6b\x62\x2b\xbd\x2f\x19\xfb\x16\xfa\xa9\xad\xb9\x03\x05\xfe\xa3\x47\xf4\x73\xff\xf3\x15\x1a\x53\x2d\xf7\xea\x6b\xe5\x1a\x6b\x19\xfb\x41\x24\xce\x2a\x6d\x2d\xbb\xa9\x48\xb2\xbb\x17\x16\xde\x89\x52\x9e\x94\xa0\x6f\x34\x3c\x21\xce\xd4\x2c\x2c\x8c\x62\xa9\xe6\x8e\xc0\x2c\xe6\x33\x33\x8f\x0f\x32\x1d\x8f\xe9\xd7\x33\x85\xc5\xf7\x35\xf4\x30\x31\x1d\xc3\x7f\xf0\xd1\x50\x8f\x68\xcb\x8b\xb8\xaa\x39\x64\x0b\x90\x67\x64\xb3\x33\xbb\x34\xef\xfe\x1f\x3e\x02\x88\x00\x40\x39\x70\xbe\x41\x1b\x27\x61\x5f\x71\x3b\x29\xaf\xc8\x5d\x40\xaf\x89\xb8\x10\xc4\x22\x0b\x98\xa2\xb1\x73\x2c\x14\x05\x6b\xad\x43\xbf\x29\x94\x3d\xc8\x97\xc8\x2f\x91\x3f\xc5\x39\xc4\xf8\x88\x10\x70\x2f\xcd\x69\xb2\x9e\xd2\x7b\x51\xf0\x8c\x96\x4e\xa0\x0d\xd7\xb5\x80\xa8\x60\x90\x59\x29\x62\x75\x9f\x08\x53\x3b\xd1\x4f\xa0\x89\x0a\xac\x83\x76\x3e\x0e\x53\xbb\xb5\x77\x99\x5f\x6e\x2e\x0e\xda\x8f\xa9\x52\x02\xc3\x3d\x6f\xb3\xcb\xac\x43\xbf\x2e\xcc\xe0\xa9\xb5\xe7\x1a\x5e\x5d\xa6\xcb\x8a\x7c\x02\x4b\xed\xbc\x34\x7e\x1e\x0b\xec\x6a\x36\x6c\x88\xd0\x24\x89\xb1\x62\x78\xc8\x20\x56\x39\x2d\xaf\xb9\xe9\x53\xef\xad\x52\x97\x2b\x97\x7c\x03\x38\xa2\x42\x33\x9f\x08\xe4\xc1\xee\x22\x7a\x7f\x1d\xc0\x03\x18\xc8\x83\x48\x20\xee\xbc\xd1\x8a\x65\xea\xc7\x6b\xce\x97\x49\x76\xb8\x85\x8c\x6e\x06\xa3\x85\x46\x32\x17\x24\xd2\x57\xd9\x39\xba\x4d\x88\x96\xbc\x52\x2d\x7d\xa5\x49\xe2\xa0\xdb\x9a\xa5\xc3\xb5\xe0\x06\xf7\x3e\x2f\x4f\xf7\x68\x98\x98\x83\x2e\x6c\x9e\x99\x47\x83\xdd\xc3\x54\x78\xf4\x05\x13\x32\x18\x12\x8b\x5a\x24\x70\xf8\x85\x89\xda\x05\x53\x12\x2e\x5c\x64\xf4\x9f\x9a\xfd\x0a\x22\xa7\xbc\x36\x33\xd4\x9f\xed\x7e\xe6\xe0\x48\xb9\xc7\x49\xb8\xfb\xb0\x2e\x18\xbd\x85\x5c\x53\xba\x03\x0b\x22\x4e\x1b\x5f\x6c\x1e\x7b\x62\x81\x74\xed\xdd\x6a\x87\x06\xb7\x64\x6e\x6a\xf3\x41\xed\x72\xd7\x45\xae\xcc\x2c\x8c\xef\x35\xfb\x3c\x37\x20\xe7\x79\x14\x54\xc9\xbc\x9c\x20\xd2\x77\x6d\xdd\x12\xeb\x79\x0e\x53\xb1\x16\x8e\x47\x0e\x47\xbf\x0e\xe7\xb6\x19\x3c\xf9\xb0\x34\x11\xaa\xd9\xa5\xad\x12\x02\x62\xb4\x0d\x74\x92\x05\x88\x3f\xbb\x6d\x0c\x19\x2b\x55\xbc\x7a\xa6\xbc\xad\x5b\x0d\xa4\xe4\x5c\x94\xd9\x97\x77\xad\xb0\x03\x0b\x13\x08\xa0\x71\xeb\x83\xc6\xd9\x92\x31\xd9\xde\x03\x88\x47\x25\x00\x2d\x21\x77\xa0\x95\x05\x07\x6b\xf4\x5e\x95\x2e\x56\x58\x9d\x56\xb9\x61\x85\x2f\x34\x2f\xb9\xdc\xd2\x03\xa7\x27\xb3\x18\x42\xb6\xed\x36\x31\x40\x85\xf9\x1b\xef\x01\xb4\x49\x62\x64\x20\x1f\x0c\xa4\xb5\xa5\x5d\xe6\x39\x99\x63\x41\x98\x1a\xb0\x3b\x3d\x0a\xf3\x45\x1e\x89\xe1\xa2\x80\x5c\x99\x01\x28\x46\x3c\x46\xd8\x7e\x05\x44\xaf\x0b\xc3\x93\x43\xf3\x12\xa8\xa6\x7b\x44\x26\xf8\xc9\xbc\x63\x80\x22\x2c\x50\x92\x9e\x2a\x1d\xe7\x6a\xbc\x16\x20\xa3\x29\x05\x9c\x86\x98\x48\x7b\x21\x51\x65\x81\x38\x32\xf1\x3b\x25\x0e\x58\x1b\x3e\xcb\xf8\x57\x15\xc3\x76\x86\x02\xe6\x0c\x74\x72\xc0\xbc\x3e\x1a\x70\x58\x8d\xb2\xbe\xa1\x2a\x01\xeb\x4c\xe3\xcc\xf1\x05\xff\x34\x2b\xc4\x05\x9d\x50\xe6\x55\xc3\xb2\xd3\x9b\xe1\x39\x98\x77\xcd\x19\xe4\xe3\xec\x4e\xeb\xdb\x1c\x87\x33\x18\xf1\xff\xfd\xaf\xff\x3e\xa3\x75\xde\x0f\x39\xb4\x14\x38\x84\x95\x5c\x6f\x59\xfc\x95\xf7\xa0\x57\x6a\x20\x3d\x3c\x9d\x56\x16\xf2\x36\xf2\x5f\xed\xe5\xa6\x37\x0d\x57\x53\xe3\xee\x2d\x6e\x77\xf0\x8d\x88\xb4\xe1\x6c\x98\x2b\xe6\x75\x69\x49\x25\xe4\x26\xe8\x91\x98\x93\x9c\x19\x08\xfc\x4a\xf3\x4b\x66\x9a\x01\xcb\x3f\x91\x06\x44\xc6\xe0\xf6\x9a\x1f\x72\xea\xb4\x24\x4c\x13\xef\xcf\x23\x25\x72\x77\xb8\x17\x0b\xed\xea\xa2\x98\x18\x56\xdd\x7e\xe9\xa6\x2d\x71\x6e\x0f\xc0\x72\x9b\x98\xd1\x29\x96\xfb\x0b\xcd\xa9\xac\xe7\x65\xac\xe9\xbe\xf0\xb0\x2a\x48\xc7\x0c\xd2\xa4\xc8\xea\x05\x49\x25\x11\x86\xd3\x65\x18\x62\x76\x27\xf8\xf0\x9c\x10\x21\xba\xc2\xd7\x48\x66\x98\xae\x95\xcd\xa0\xdf\xaf\x06\x0f\x2d\x38\x1b\xf0\x84\x88\x61\x9c\xaa\xa5\x63\xd1\x94\x61\xa0\x3f\xba\x4c\xd5\x62\x75\xfb\x32\xc1\xcb\xf5\x8c\x9a\x00\x5b\xf5\xfb\x35\xcd\xae\x96\x98\xbd\x10\x9f\xa2\xd4\x5c\x03\x87\x4a\x4a\x70\xa8\x36\xe2\xb5\x60\x22\x81\x1b\x98\x29\xc0\x21\xcc\x35\x29\x7b\x45\x1b\xd0\x76\x18\x39\x1a\xa5\xb9\x49\x29\x2b\x83\x11\x9f\x0d\xd8\x47\x53\x47\x06\xb4\x3c\x33\x80\x08\xd2\x8d\xc8\xd7\x39\x97\xa4\x90\xff\x56\x51\xda\xc2\x26\xbe\xda\x61\x54\x0b\xeb\xf9\x47\xdb\xcb\xea\xaf\x0e\x6c\xbb\xbc\xe0\xcb\x53\xae\xde\x81\x5b\x89\x83\x11\x9d\x53\xbd\x77\x86\x95\x27\x6d\x7f\xe5\x95\xf3\x98\x2e\x00\x0f\x53\xc9\xe2\x04\x65\xd3\x2b\x6d\x88\x84\x3c\x11\x30\xa7\xc3\x18\xfd\x02\x26\x45\xbb\x5e\x0d\x3b\x59\x75\x80\xf2\xe4\x53\x60\x0b\x28\x2e\x8f\xa0\x98\xa2\x57\xb5\x17\x8b\xc9\x47\x5b\xe7\xc9\x55\x05\xa6\xac\x21\x9e\x77\xfc\x42\x2e\x0b\xa2\x10\xf9\xaa\x88\x2d\xf5\xda\x77\x99\x8c\xcb\xc9\x0f\xa8\x3a\x19\xab\x5e\x76\xdc\x7b\xd1\xed\x8e\x4b\x7c\x77\xa9\x9a\xb1\xbb\xf2\x6d\xea\xe2\x14\xb3\xd8\xe6\xe3\x5a\x25\x43\x0b\x5b\x30\x3b\x63\x74\xcb\x32\x15\x6c\x56\xa9\x87\x80\x6f\xda\x34\x50\xfd\x70\x91\x39\x85\x51\xab\x2c\x10\x5e\xc1\x85\x96\xdc\x53\xa6\x68\xa2\x37\x87\x1d\x83\x44\x63\x88\x8c\xb3\xe8\x8e\x10\xd9\x5e\x07\x20\x48\xa5\xa4\x6c\x32\xb4\x94\x74\xa9\xa5\xed\x2e\x86\xe2\x9e\xfa\x6c\x9a\x32\x3f\xfe\xe4\x1a\x6a\x36\xaa\x9b\x6d\x0d\xe0\x6e\x2e\xa9\x15\x34\x0e\xc6\xdd\x64\x2c\x2a\x9f\xcb\x85\x1d\xd2\xd8\x90\x82\x9a\x8a\xe2\x30\xd1\x75\xec\xee\x20\xd3\x2d\x83\x5f\xe4\x57\x88\xb4\x89\xaa\x26\xfd\x0c\x22\xf5\x55\x4d\x26\xae\xac\xcd\xc0\xed\xb1\x4c\x44\xb3\xf5\xcc\x32\x9c\x81\x52\x32\x2f\x76\xdd\xd9\x74\x04\x9c\x24\x23\x1c\x3d\x66\x5a\x58\x66\x8b\xe0\xc2\xd5\x83\xd0\x72\x25\x14\xbc\x33\x9b\x4b\x0f\x34\x02\xe9\xc6\xf7\x16\x1a\xf8\x23\x3b\xec\xbc\x73\x43\x35\x8b\x2b\x67\xf0\xae\xcc\xe8\x4d\x6e\x43\x4c\xe6\x09\x5f\xcc\x6a\xee\xb3\x72\x02\xe3\x36\x91\x3a\x75\xf9\x93\x3b\xbd\xca\x4a\x4c\x6f\xed\xcb\x6c\x29\x1b\x6a\x07\x60\x5c\x6b\x70\xc9\xdc\x74\x7f\x02\x36\xfb\x9c\x1f\x66\x16\xfb\x01\xfb\x94\xf0\x11\xd8\x5d\xad\x8d\xc2\xa5\x01\x79\xf9\x20\xe5\x43\xbf\x6e\x72\x52\x79\x58\x54\xce\x13\xad\xf1\xd4\xf7\x60\x12\x53\xf6\xbb\xb8\x06\x46\x61\xb5\x09\xb1\x7d\x48\x77\xe5\xe7\xfb\xc0\x86\xbe\x72\xe2\x82\x79\xd7\x30\xb9\x92\x29\xce\xe4\x23\x9e\x19\x4f\xb6\xe2\x03\xa6\xf0\xc4\x2d\xae\x95\x40\xf9\x33\x23\x42\x4e\xe9\xbc\x50\x2d\x73\xeb\x18\x72\xbb\xed\xed\xff\x99\x88\xe9\x6a\xc5\xbd\x2a\xe7\x70\x15\x79\x6c\xb3\x2d\x91\xe7\x56\x26\x81\x55\xa4\xe1\xad\xbc\x02\xf8\xfc\xd4\xc0\xbc\xe8\x1d\x2c\xe7\x38\xca\x8d\xbb\x51\x82\xa5\xa4\xe3\x85\x87\xce\x92\x05\x0c\x43\x0e\x5c\xd1\x1a\xe2\x95\xd0\xab\xe2\x97\x66\x6c\xbb\x81\x27\xd8\x3e\x35\xf3\xa1\xc8\x20\x68\xec\xa3\xf7\xe9\x6b\x71\x19\xc3\xc7\x09\x1c\x96\xe8\xb5\x28\xc4\x06\x87\x61\x33\x38\x81\xb6\xc0\x4f\x7b\xce\x26\x6c\xb3\x91\x72\xd8\xb1\x4c\x20\xb7\x34\xb3\xca\x60\x06\xd9\xe2\xe3\x20\xa9\x42\x32\x2c\xec\x3c\xad\x7c\x3a\xdb\xba\x3e\xbb\x19\xdc\x0b\xa0\x62\xe4\x1f\x9f\x20\xb9\x15\xba\x5b\x9b\x4d\x79\x49\x12\xb2\x93\xa8\xf5\x0d\x76\x68\x39\x24\xc4\xdb\x9b\x8d\xfb\x32\xaf\x6f\xb1\xda\x40\xb3\x41\x30\x7d\x0d\xd8\x52\xf5\xd0\xbf\x98\x81\xda\x78\xfa\xaa\x55\x04\xe3\x2a\x50\x79\xf5\x68\x0f\x69\x97\x7b\x31\x2a\x66\xf8\x76\xbf\xe7\x73\x2c\x6c\xea\x7c\xc6\x99\xc0\x79\x88\xfb\xfc\x95\x63\xde\x97\xc6\xf5\x89\xb4\x89\xcf\x59\x79\xfa\x36\xe2\xbd\xcb\x37\x54\xbb\x7d\x61\x3d\xe0\x8a\xa3\x09\x01\x48\x1f\xca\x62\xfa\x44\xe3\x14\x27\x47\xb5\x27\x76\x96\xb1\xb3\x23\xea\x57\x73\x98\x56\x26\xa3\x3c\xb0\x94\x28\xe9\xee\xa3\x25\xf0\x50\xbb\x38\x07\xb8\x04\x87\x71\x2c\x8d\x52\xf1\xe6\x25\xb6\xad\x31\x36\xec\xc8\x2c\xd2\x44\x10\x25\x0b\x97\x6c\x3e\xf6\xdd\x4b\x93\x86\xc6\xb1\xfd\x22\xc3\x95\x28\xe0\xb9\xe1\x02\x2c\xa6\x59\xa3\xd7\xe7\xba\xe5\xa3\xf5\xd6\xe5\xce\xf5\xcf\x58\x79\x54\xf9\xe9\x0a\xc2\xf0\x21\x9c\xd3\xf6\xf2\xb0\x43\xb2\x3d\x40\xe1\xa7\xee\x18\x1e\xe6\xfd\x7b\x00\xc2\xf1\x92\x48\xb0\x3b\x11\xf9\x88\xb6\xc9\x41\x48\xca\x4b\x4b\xf1\x52\xf2\xf2\xa9\x03\x09\xcb\x21\xb7\x0e\x77\x89\x0e\xe3\x24\xef\x06\x90\x6e\x2b\xff\xc9\x06\xae\x91\x57\x84\x2c\xab\xa5\xe4\x9d\xf5\x08\xef\x4f\x54\x5a\x7d\xf2\x76\x72\xd2\x00\x79\x18\x03\x44\x42\x6a\x2b\x30\xc1\x7a\x78\x61\xb5\x4b\x6e\xc8\x15\x01\xcb\x76\x78\xad\x42\x95\x97\xc8\xb9\x8f\x83\x62\xf3\x61\x5b\x1f\x93\x7d\x1e\xda\x75\xc7\xb2\x0b\x6d\x77\xcf\x0e\x5d\xbb\x1b\xbd\x0f\x42\xde\x40\x3b\x79\xa4\x02\x65\xcb\x2d\xd9\x2e\x0f\x59\x55\xd9\xcc\xed\x11\x3d\x5c\xba\xef\x70\x2e\xc8\x98\x7e\xdd\x48\xa9\xba\x85\x4f\xad\xa1\x42\x93\xb9\x54\x88\x13\x9c\xb0\x50\xb8\xd3\x8b\x6d\xb6\x94\xb6\xc5\xfa\x06\x2c\x4f\x92\xb6\x19\xd2\x9a\xc9\x73\x51\xf8\x69\x53\x34\xda\xdd\x17\x0d\x35\xeb\x3a\x55\x6a\x2e\xcf\x3f\x7c\x98\x50\x35\x4d\x47\x67\x11\x9f\x99\x94\x1c\x2e\x26\xe6\x8f\x0f\x54\xca\x94\xc8\x0f\x7f\xfe\xd3\x9f\xf2\x25\x1e\xe1\xe8\x71\x62\x10\xb6\x96\xbd\xcb\xc5\x25\x27\x58\x6e\x17\xe4\xe7\xb2\x59\xf7\x8c\x6a\xe0\x75\xe3\xf2\xc8\xf5\x37\x52\xe1\xd9\xdc\x8f\x0a\x37\x65\x37\xa5\xc2\x79\xb1\x1f\x48\x51\xd6\xd3\x44\x53\x3c\x9f\x13\x56\x6f\xc0\x32\x39\xe7\x5b\xb0\x1e\x97\xb5\x6e\x47\x48\xbe\xce\x13\xcc\x8a\x48\x2c\x50\xb9\x4e\x90\x88\x30\x65\x51\x42\x94\xc0\x4c\x9a\x78\x23\x2e\x1c\x1a\x98\xe1\xff\xeb\x65\x25\xc3\x1c\xa9\xcc\x4b\x52\xba\xe1\xd8\xf2\xd0\xae\x68\x30\xf6\x48\x57\x2e\xc9\x9d\xd3\x8e\x38\xaa\x35\xe5\x2b\xdf\xdb\xf2\x7b\xdb\xec\xa0\x48\x70\x36\x24\x5f\x35\x93\x93\x9b\x62\xf7\x3d\x48\x22\x51\xe7\xcb\x3d\x92\x0b\xa6\xf0\xd7\x73\xf4\x99\x32\x50\x05\x7e\xe6\xa9\x90\xe8\x12\x2f\x4e\xf9\xf8\x74\xc6\x99\x9a\xa2\xcf\xf0\xbf\xf6\xa7\x67\x42\x1e\xd1\xdf\x09\x16\x96\x3f\xd8\x92\x9e\xae\xaa\x20\x6c\x21\x91\x32\x89\xc8\x93\x3e\xa1\x7f\xfa\x5f\x68\x66\x5a\x3e\x47\x3f\x7c\xf8\xd3\xff\x42\x7f\x80\xff\xfe\x3f\xe8\x0f\x35\x36\x9b\xf5\xd0\xff\xa0\xf2\xfb\x5d\x6d\xd0\x06\x50\x4a\x2e\x93\x7c\x55\xb3\x17\x82\xe7\x2b\x55\xd9\xf2\x23\x8d\x1e\xf9\x78\x3c\xd4\x1b\xc3\xe4\xf4\x0e\xf1\x56\xe2\xb4\x0f\xe4\x4c\x6d\xed\x7e\x53\x09\x34\xaf\xc1\x65\x3b\x35\xe0\x2f\x8e\x5d\xcb\x34\x17\xbb\x21\x9e\xb0\x50\x0d\x9e\x4a\xf8\x8a\xc4\x9a\xab\xae\x73\x3a\x9c\x9d\xd6\xe1\x40\x38\x5b\x9c\x0f\x96\xe4\x04\xe2\x42\x0c\xb0\x1f\xd0\x6e\x62\xfe\x2c\x21\x2b\x8f\xc3\x52\xa4\xfd\x9b\x09\x9f\x86\xa9\xbd\x56\xe8\xb4\x5c\xea\x7c\x75\xd4\xf4\x3d\x17\x5b\xe9\x5b\x8f\xa4\x36\xab\x69\x45\xbd\x39\x57\x03\x1d\xfb\xe6\x21\xc5\x91\xe4\x22\x03\x54\x37\x16\x26\x5b\x95\x76\xb5\x3d\x9a\x0a\x13\x67\xda\xee\xd0\xeb\xa9\x5f\x66\x9f\xac\x1a\x26\x04\x9d\xba\xb7\xf3\x7a\x9b\x30\x5a\x2d\x22\x69\x96\x58\x31\xe2\x0a\xdc\xd3\x55\x0b\x7a\x9f\x41\xdd\x40\xe3\x10\x01\x0d\xa9\x5c\xcc\x49\xb6\x16\x4b\xa4\x7a\x3d\xb5\xf6\x7d\xc1\xb7\x8b\x80\x4f\x28\x5b\x4a\x9d\xa9\x0d\x25\xac\x97\xc9\xaf\x6c\xd1\x3e\x07\x0d\xce\xe3\x5c\x59\x30\x0e\x1e\x5b\x0e\xc7\xc3\x24\x2e\xce\x06\xb0\x2d\x77\x01\x7b\xbb\x54\xa4\x65\x0b\xae\x6d\x5c\x00\x39\xc3\x73\x35\x7e\x4a\xa5\x7d\x04\xd6\xbc\xb0\x21\x42\x15\x02\xf3\xb6\x1e\x87\x57\xae\x2a\x8f\xf6\x2b\x14\x8e\x86\x91\x40\x0a\xec\x86\xb0\xc5\xa6\x72\xdc\x09\x12\x18\xe2\xb3\xd5\x54\xb7\x27\x89\x38\x1d\xe3\x88\xb2\xc9\x89\x87\x58\x0b\xe8\x31\xfe\x75\x50\xb5\x49\xfb\x58\x3e\xee\xd6\x66\xb6\x75\x01\x60\x1a\xe7\x45\x28\x2d\xc6\x94\x31\xa9\xd1\x25\xb8\x4e\x85\xe5\x63\x1d\xc8\xda\x12\xc2\x63\xc3\xe8\x32\x52\x38\x5c\xc8\xa6\xf1\x39\x34\x0a\xe2\xeb\x53\x50\x3c\xc6\x95\xa4\xb7\x78\xaf\x2e\xf9\x17\x67\x80\x4c\x65\xa0\xe3\x86\xf1\xcb\x29\x17\x6a\xb8\x21\x44\x74\xd9\x54\xc8\xc8\x69\x02\xd8\x4e\xfc\x89\x88\x27\x4a\x9e\x8b\x48\xcb\xeb\xec\x45\x63\x34\xf3\x22\x53\x01\x8a\x77\x36\xe7\x90\x4d\x37\x46\x33\xcc\x16\x86\x51\x6a\xe6\x82\xe5\xa3\xcc\x0a\x61\x23\x39\xc3\x49\x72\x82\x04\x49\xa5\x29\x10\x2f\x49\x32\x3e\x75\x35\x79\x62\x94\xf0\x09\x8d\x70\x82\x46\x09\x8f\x1e\xa5\x49\x76\x65\x13\xc3\xa4\xe6\x82\x47\x44\x4a\x4f\xb2\xca\x81\x2d\x6c\xba\x31\x54\xc1\x56\x44\xcc\x28\xa3\x52\xd1\xc8\x89\x4c\x39\x3e\x4d\x1f\x32\x63\x22\x0c\xc6\x75\x48\xde\x86\xe1\x6a\x49\x8f\x18\x9c\xde\x94\xd9\xea\x6d\x70\x5d\x5b\xf8\x4d\x97\x2f\x52\x77\x80\x76\x80\x26\xea\x76\xc8\x50\x15\x0f\xe4\x8a\x23\x75\x61\x3f\x83\x63\xdc\xb4\x05\xee\x8a\x27\x2a\xdb\x90\xd9\x49\x2b\x20\x9c\x41\x7a\x49\x96\x0d\x53\x90\x5c\xb2\x24\x91\x03\x03\x37\x84\x21\xd7\x40\x1a\xae\xda\xd3\x9a\x8a\x20\xf2\x40\xc1\xc0\x72\xfc\x03\x65\x51\x92\xc6\x59\xa5\x5b\x2d\x02\x3c\xe9\x4d\xe2\xc8\xa3\x69\xaf\x05\x85\x13\x84\x25\x7a\x26\x49\xa2\xff\xdf\x24\xc3\x9c\x66\x15\x5c\x34\x4b\x36\x55\x76\xa0\x13\xc7\xa5\xeb\x76\xd4\xc1\x01\xd5\xde\x62\x35\x35\xf0\x1f\x33\xae\x4c\x91\x61\x03\x54\xeb\xec\x5b\x06\xd9\x74\x94\xf0\x11\x9c\x74\xc0\xb0\x75\x29\xef\x5e\x86\x6d\x1a\x45\x84\xc4\x24\x36\x25\x53\x33\x7c\x55\x7b\x44\xbf\xaf\x46\x54\x2d\x50\xe4\x00\xf0\x6b\xcb\x86\xb5\x5a\x14\xdb\x62\xc1\xc9\x33\x74\x5b\xc2\x68\xf2\x28\x33\xc6\x65\xc4\xbe\x93\xa5\x25\x7c\x1d\xcc\xdb\xd2\x24\xf6\xb7\x42\x6b\x62\xde\x16\xfa\xdc\x01\xe6\x6d\x69\x9e\x35\x19\x3a\x7c\xb2\x57\xf8\x01\x3d\xa9\x2b\xde\x3e\x27\xd4\x60\x05\x9a\xbb\xb3\xb0\x05\xdd\x81\x5c\x54\x6d\xc4\xc3\xc2\xf3\x2d\x95\x65\x7d\x5d\x3c\xdf\xd2\x60\x0e\x19\xcf\xb7\x34\xd4\xc3\xc5\xf3\xad\x18\x68\x0b\x3c\x5f\x13\x26\x31\xd4\x9b\xba\x1d\x53\x80\xf4\xb5\x51\x3a\xbe\x07\xd4\x87\xc6\x31\x5e\x98\x10\x0c\x73\x8d\xb9\x3b\xda\xfa\xcd\x61\xb4\x36\x1d\xba\x2e\xb0\xad\xe4\x84\x58\x77\xef\x65\xde\x37\x83\x03\xb3\xae\xd9\xfd\xc4\xb7\x76\x83\x1d\x32\xc2\x73\x0b\x2f\x51\x57\x75\xea\x70\x12\xe9\x37\x83\x4a\x06\x38\xd2\x02\xcb\x6f\x05\x26\xf8\xb9\x54\xc0\x65\xca\x9f\x6d\x11\x35\xd8\x86\x66\x53\xd6\x6e\x41\xe8\x74\x68\x95\xb6\x3a\xca\x51\xa6\xc8\xa4\xac\xd3\xe6\x87\x86\x32\xf5\xe3\x9f\x57\x72\x22\x83\xb6\xea\xd4\x43\xaf\x8c\x4a\xe6\xec\xb0\xcf\x48\x8c\xa2\xa9\xd6\x8a\xa4\x56\x5f\xf4\x74\xcc\xcd\x2a\xd1\x0c\x53\xa7\x48\xa5\xd2\xb8\x96\xa8\x1c\xb0\x02\x3c\xf1\x19\xfa\x08\x95\xa9\xf1\x6c\xae\xf5\xaf\x6c\x7e\x54\xef\xa4\x41\xfa\xc3\x0f\x3f\x12\xf4\x03\x9a\x11\xcc\x0a\x3a\x2c\xa8\x4d\xfa\xea\x83\xd4\x60\x35\x25\x03\x56\xb9\x14\xa8\xfb\xd5\x94\x9b\x73\x91\x9b\x3d\x36\xe6\x4e\x27\x86\x8a\xab\x38\x9a\x22\x99\x8e\x4c\xc9\x70\xcf\x86\xe1\x04\xe9\x2b\x3e\x01\x47\x35\xdc\xc8\x6e\xd0\x4d\xa7\x70\xbf\x31\x00\xd6\xdd\xd8\xf6\x36\xee\xc0\x3d\x72\x2a\x49\x01\xe6\xad\xc2\x69\x66\x38\x9f\x7f\xf0\xa5\x81\x80\x3a\x31\x3e\x04\xad\x9f\x61\x6b\xd9\xd7\xb2\x34\x04\x66\x83\x97\x2c\x4d\xb0\xb0\x47\x7f\xc0\xb4\xa2\x21\xc8\x13\xe5\xa9\x4c\x16\x28\xe6\x8c\x9c\xc0\x4e\x48\xa3\xa9\x71\xac\x6a\x9d\x05\xdb\xda\x35\x4f\x54\xa6\x5a\xa1\x85\xb6\x5c\xa9\x1c\xa9\xb0\x81\xa7\x9b\x52\xe8\x47\xab\xdf\x04\xbe\x52\x5e\xa6\x29\x6a\xa7\x45\xf9\x08\xd2\x25\x9e\xdf\x12\x41\xba\xb0\xab\x02\x82\x74\x86\x20\xbd\x4c\x97\x43\x44\x90\x2e\xad\x79\x3b\x04\xe9\xaa\x25\xdf\x00\x41\xba\xd0\xcc\x9b\x41\x90\x2e\x51\xf4\xcd\x20\x48\x97\xe6\x15\x10\xa4\x97\xa7\x70\xec\x08\xd2\x5b\x62\x24\x57\xf3\x62\x03\xb5\xa6\x28\x5b\xac\xbd\xc9\xde\x4b\xd4\xbb\xd1\x1b\x2c\x7a\x2c\x06\xb5\x65\xd7\xd5\xf6\xb8\xcc\xd5\x4c\x68\x3d\x5c\xe6\x4a\x55\xbd\x9e\xd5\x6d\x8b\xf5\x06\x8a\xc1\x0b\xe3\x32\x17\x26\x10\xe2\x2b\xd7\x8f\xaf\xac\xdc\x7c\xb6\x6f\x3d\x3c\x17\x74\x59\xbe\x90\x5b\x22\x33\x17\xd6\xa7\x55\x24\x26\x88\xee\x3b\xd8\x89\xfb\x95\xe6\xfb\x85\x43\xbe\x52\x96\xf7\xa9\x28\x2d\x46\xbc\x96\xf0\x1c\x70\xa4\x51\xc2\x7d\xff\x7f\xd8\xb9\x1b\x44\x06\x97\xc8\x9b\xf9\x55\xcc\x5e\x6c\xb1\x55\x5b\xef\x50\xa7\x95\xee\x26\xe5\xda\xa5\xc1\xae\xe9\x62\x76\x83\xb8\x9f\x93\xa8\xc6\xc6\x4c\x67\x74\x57\xcd\xae\xba\xc8\x32\x58\x3c\x50\xc8\x97\x32\x7c\xf5\xf5\x64\x86\x63\x64\xfc\x52\x62\x35\xe0\xcd\x98\x2f\x27\x54\x2a\x51\x1b\xdb\xb4\x34\xc2\x6d\x5c\xa5\xf3\xb4\x75\x40\x8c\x47\xd5\xc9\x66\x9f\xcd\xc8\x8c\x8b\x55\x81\x55\x95\x5f\xda\xaa\x57\x9b\x7c\x4a\xe6\x53\x32\xd3\x92\xcc\x70\xdd\x46\xda\xae\x77\x96\xfe\x6d\xb3\x00\x4d\xa0\x63\x61\x13\x78\x8e\x50\xfd\x6e\x6c\xc0\x69\x5b\x2f\xf7\xb6\xcb\x6c\xe1\x73\xd7\x74\x08\x39\x5c\xf5\x66\x83\x9b\x7d\xa9\xe0\xee\x86\xfd\x5d\x19\xd3\x91\x85\xd4\xac\x8e\xda\x68\x88\xd7\x68\x42\x97\xcb\xbf\xb2\x35\xe1\xd7\x70\xe5\x17\xbd\xf3\x9a\x13\xfa\x05\xc1\xd7\x0f\xf0\xa8\x01\x50\x5e\x26\x0f\x44\xe6\x48\x22\x4e\x7d\xcd\xa0\x30\x98\x65\x7a\x15\x76\x89\xd3\x28\xb7\xd8\x24\xa9\xa8\x8d\x32\x6d\x63\xd0\x8e\x54\x8a\x13\xd0\x24\xfc\x42\xb6\xe5\x45\x1d\x2d\x2a\x12\x48\xdb\x79\x4c\x28\x53\xff\xf1\x97\xb5\x56\x53\xab\x56\x96\x6e\x50\x7c\x0f\x47\x11\x91\xc6\xc6\x6e\xa3\x90\xf1\x88\x3f\x41\xdd\xbd\x6d\x56\x55\x1f\x65\x3d\x6f\xcd\xe0\x33\x54\xf2\x38\xdf\xea\x46\x5c\x98\x0a\x9e\x4e\xa6\xce\x86\xa4\xcf\x8c\x9e\x5a\xd5\x5a\xfe\xba\x64\x23\x5f\x7b\x2d\x7f\x4a\x69\xb2\x99\x85\xee\xbe\x50\x91\xf0\x53\xaf\x8f\xe4\x34\x3b\xad\x23\x68\xb6\x72\x61\x97\x07\xdd\xbe\x4f\xfb\x6d\xe6\xaf\x81\x6e\x4e\x1c\x12\xef\x98\x27\x09\x78\x1a\x24\x99\x3d\x11\x51\xdd\x3d\x4c\xb8\x4f\xd7\xc3\xc7\xcc\x06\x00\x5f\xe7\x89\x11\xad\xe4\xaf\x5b\x23\x1a\x4a\xe4\x46\x5f\x0e\x5a\x30\xa1\x6a\x9c\x11\x56\x65\x63\xfb\xb2\x5c\x0c\xea\xc8\x02\x06\x5d\xf4\xd8\xce\x82\x06\x1d\x49\x5e\x38\x70\x70\xc5\x3c\x0e\x35\x78\xb0\xc4\xec\xb2\x58\xbe\xfc\x9a\x71\x81\x43\x46\xf1\xe9\x68\x12\x0f\x58\xa7\x90\x4f\xe1\x8a\xe6\x8f\x16\x79\x40\xb6\xd1\x21\x7c\x66\x06\x25\x77\xac\x61\x05\xdc\x68\xfa\x2f\xd0\x74\x0c\x8e\xb5\x09\x29\x74\x61\x83\x10\x4d\x4e\xe2\x53\x1c\x2d\xa2\x84\x46\x9e\xce\x3c\x11\x78\x3e\xad\xe2\x78\x6e\xe5\x03\x7e\xd3\x6b\xe1\x37\xd5\xd5\xa6\x5b\x27\x6e\xdb\xed\x2b\x86\x67\x24\xe0\x4a\x1d\x22\xae\xd4\x49\x86\x5c\xc2\xf2\x2a\x7f\xaf\x08\x88\xb1\x7c\xee\x03\xb8\xd4\x2b\x80\x4b\x6d\x72\xf8\x73\xe4\xa8\xc2\xb1\x0f\x80\x57\x6d\x88\xf7\xfa\x80\x57\x99\x10\x70\x50\x18\x46\xf5\xfc\xe0\x95\xb1\x71\x96\x07\xf6\x9a\x00\x57\x15\xe2\xd2\x3a\x72\x63\x13\xc2\x55\xd3\xbe\x68\x45\x97\xd7\xc5\x9b\x5a\x8f\x32\x6b\x41\x49\x55\xde\x9d\x07\x02\x2c\x55\xbf\x0c\x07\x72\x6e\x76\x99\xd5\xb3\x5e\x19\x65\x3f\xb3\x67\x1d\x05\x73\xbd\x24\x9f\x6c\x3f\x1c\x57\xa2\x4f\x5e\x6f\x72\xb3\x64\x9f\x8e\xf3\xc1\x13\x81\xa6\x3c\x89\x1d\x08\x47\x46\xad\xac\x83\x2c\x13\x22\x23\x90\x5b\x8c\xfb\x39\x89\x8c\xb6\x99\xd7\x46\x6c\x4a\xe9\xc9\x16\x11\x86\xbb\x03\x46\xb3\x0b\x2b\x4a\xc6\x49\x36\xb1\x9f\xac\x94\x2e\x64\xd1\xfc\xdf\x30\xc6\x02\x85\xc0\x6b\x50\x3d\xcc\x95\x76\xef\x15\x83\x6b\x12\x3d\x3c\xe3\xa8\xa8\xaa\x7a\x6c\xf6\x19\x3c\x7d\xa2\xce\x10\x83\xfd\x1e\x1b\xbd\x94\x6e\x76\xad\x3c\x95\xe5\xcd\xb2\x41\x30\xdc\x52\x11\xcb\xed\xc1\x91\x66\xf8\xeb\x70\x8e\x05\x4e\x12\x92\x50\x39\xdb\x5b\x30\xf4\x45\xd1\x5d\xad\xcf\xaa\xe0\xc6\x44\xc6\xd2\xd9\xc8\x6c\x45\x37\x10\x5b\xf7\x54\x71\x24\x52\xe6\x43\xbb\x65\x0b\x93\xd5\x55\x4d\xe1\x5e\x00\xab\x5a\x34\x85\x02\xd6\x63\x4c\x05\x23\xb2\xb6\x5c\x30\x89\x52\x41\xd5\x62\x68\xab\x2f\xb7\x3f\x70\xf7\xf6\xcb\x0b\xfb\x61\xb3\x87\xdf\xa1\x1a\xb8\xfe\xb2\x6a\xcf\x73\x22\xa0\x62\x9a\xab\xfd\xe5\x55\x98\xb6\xa8\x15\x24\x2b\xbb\x06\xe1\xdf\x4b\xd7\x76\x5d\xe0\x34\x7e\x1e\x7a\x19\x65\xc3\xa8\xbc\x39\x56\x1d\xd6\x2a\xdc\xad\xa6\x49\xee\x19\x79\xaa\xc6\x8b\xbe\x87\x5a\x4a\x36\x6d\xc4\x34\xad\x07\xec\xb9\xc2\xc1\x5e\x9b\x2f\x8c\x97\xf2\x5f\x81\xc3\xe8\x8d\xd3\x62\x1d\x55\x05\x5f\x35\x0c\xb6\xe3\x7d\xd5\x62\xc4\x5e\x27\x3b\x1a\xb6\x3e\xe8\x42\xa4\x73\x45\x47\xcb\xd0\x3e\x8e\x1b\xec\xa0\x9a\x72\x27\x81\x34\x73\xe7\x66\x29\x74\x6b\x4a\x2c\x17\x38\xb1\x9d\x9d\x96\xff\x2d\x8e\x9a\x43\x48\x32\x08\x53\x7e\x1e\xe3\xcd\x8c\x2a\xe5\x12\x25\x8c\x01\x5e\xef\xce\xa2\x6d\xfa\xbd\x0b\x77\xc1\x50\xf4\xda\x98\xa8\xce\x06\xac\x23\xd1\x33\x41\x8c\x58\x08\x8d\x8a\x72\xd6\x99\x55\x1f\xca\xe0\x8d\x88\xee\x29\x8b\xcd\xd1\xc2\x03\x55\x32\xab\xc4\x68\xfa\x18\xe3\x44\x92\x13\xdd\x30\x14\x70\x56\x1c\x82\x5f\x31\x7a\x16\x78\x3e\x27\x62\xc0\x6c\x16\x0b\x38\x9c\x38\x4f\x4c\xfb\x75\x21\xbe\x96\x06\x64\x18\xe1\x68\xfa\x42\x6b\x84\x21\x19\x29\x9a\x92\xd8\xe5\x4b\x17\x97\xc7\xcd\xdb\x18\xec\xd7\x58\xac\xde\xd8\x55\x12\x3c\xb1\x9d\x24\x91\xe6\x28\x59\xc5\xfd\x39\x11\x7a\xd4\x7a\x0f\x3f\x11\x86\xe8\xd8\x8d\xc3\xc6\x2e\xa1\x67\xf0\xcc\xe9\xad\xff\x84\x69\x62\x00\x08\x5c\xd7\x4e\x08\x34\xee\x87\x01\x33\xee\x7e\x16\x15\x32\x74\x29\xa3\x72\xaa\x39\x75\x0a\x3e\x59\x50\x33\xea\x12\x87\xd8\xd3\x3a\xa7\xb9\xab\x5f\x6f\xe6\xa0\x4f\x54\x70\x36\x83\x24\x21\x8b\x4b\xe5\xc8\x27\x89\xca\x8e\x47\x65\x8a\xe7\x4a\x89\x38\x8e\x65\xd1\xf8\x6a\xd4\x4a\xfa\xcf\x82\xd9\xe5\xb4\x90\x15\x19\x79\xb0\x4a\x10\xc4\xea\x8a\x2c\x36\xc9\xbf\x21\xb5\x63\x39\xb5\xa3\x9a\x36\x87\x98\xde\x91\x1d\xe2\x75\x53\x3c\xea\x96\x7f\x17\x92\xed\x0e\x53\x3d\x5e\x39\x27\x62\x3f\xe9\x10\xaf\x9b\xbf\xb2\x8f\xd4\x95\x90\xe0\xf1\x8a\x09\x1e\xad\x2d\xb5\xc5\xd8\xf4\xfa\x63\xbb\x56\x72\xc4\x0a\x30\xab\xaa\x5e\x3e\x13\x25\x68\x24\x77\xc1\x1f\xe4\x1c\xb7\x8c\xea\x03\x2d\x70\xbe\x42\x6a\xd2\x2f\x64\x4e\x50\x88\x93\xcb\x6a\x85\x8e\x04\xc1\x8f\x31\x7f\x5e\xb2\xd5\x49\x1f\x4d\xe4\x33\xd7\x62\x8f\x20\x11\x95\xa4\x10\xc9\x43\x25\x62\x44\x5a\x63\x27\x1e\xb0\x29\x25\x02\x8b\x68\x0a\xd9\x9d\xf9\xc2\x98\x2c\x61\x03\xe8\x64\x62\x39\x7c\x6f\xd7\x1a\x8b\xde\x82\xee\x65\x0b\x53\x86\xcf\x67\xd7\x5c\x8f\x64\x66\x3e\xc9\x84\x19\x2b\x65\xf8\x26\xb9\x56\xcb\xbf\x6d\x22\x42\x46\xec\xbd\x26\x23\x64\xc1\x54\xde\x17\x2d\x13\x12\xf2\xdd\x10\x92\x12\xf6\x94\x94\x50\x41\xe2\xf5\x12\x13\x36\x32\xf9\xbd\x7c\xcc\xb4\xeb\xf9\x25\xe2\xa6\x57\x05\xad\xa5\xa3\xe1\xde\x8f\x5e\xe5\x9c\xdb\x9e\xc0\x2f\xd9\xa6\x30\x12\xb1\xd0\xfb\x6c\x44\xe2\x18\x38\xad\xe2\xb6\x68\x7e\xbe\x77\x9c\x79\x40\xdf\xbd\x58\xea\xcd\x8e\x13\xce\x26\x92\xc6\x06\x6c\x66\x8e\xa1\xea\xb3\x6f\xbc\x00\x70\x05\x58\xdf\x24\x21\xc2\x79\x25\x04\xfa\x4e\x52\x66\xd1\x24\xb3\xdf\x62\x4e\x24\x7b\xaf\x8c\xb1\x00\xb3\x05\x7a\x64\xfc\x39\x21\xf1\x04\x56\xa8\x3c\x98\x53\x44\xc9\x09\xa2\x2a\xfb\x4c\x00\x1a\x03\x4f\xd5\x40\x8f\x1d\x62\xed\x8c\x06\x40\xec\xb7\xc2\x56\xaf\xf0\x38\xb0\xfc\xfe\x0c\xa1\x1e\x43\x63\x1c\xa9\x13\x24\xd3\x51\xde\x7e\xcc\x4d\xbd\x7f\xad\x7d\x7b\x13\xcf\x1b\x09\x31\xf3\x15\x9d\x57\x9f\x0d\xc7\x1d\xf4\x76\xed\x24\x14\x6f\x15\x5b\xf8\x84\xb7\x81\x58\xfd\x9c\x4a\x1b\x84\x81\x38\xcb\x8e\xbe\x85\x97\xca\x30\xb2\x01\xef\xd4\xe0\x4d\x33\x1e\xd7\xda\x3a\x4b\x53\x59\x77\x2c\x79\x20\xa8\x15\x94\xac\xa3\x0a\xda\x35\xe4\xd6\x52\x93\x54\x82\xe0\x99\x75\x0e\xe8\xab\x06\xc4\x1a\x13\x06\xaa\x47\x4f\x85\x91\x30\xd7\x59\xe2\x2b\xca\x1e\xf5\xea\xe6\xa8\xe0\x1c\xf0\x92\x75\xcf\x55\x8b\x36\xd7\x37\x1e\xb9\xe0\xcc\x38\x08\xb7\x92\x3b\xe9\x84\xe1\x64\x4d\x1b\xc7\x12\xe5\x96\x7d\x7a\x4e\xce\xb2\xe2\x82\x96\x22\x8c\xb1\x0f\x99\x1e\xd7\xb2\x21\x95\xe6\xeb\xcb\x7b\x18\xc5\x64\x4e\x58\x4c\x58\xb4\x80\x2d\xc2\x00\x39\x48\x30\x9c\x20\x0c\xdf\xe1\xe4\x0c\x5d\x9a\xfc\xa2\x4c\xc2\xb3\xd7\x3a\x5c\xe8\x33\xcc\xe8\x58\xeb\x09\x60\x84\xb5\xa3\x1c\x30\x33\x4c\xe7\x03\x21\xb9\x75\x35\xa3\x58\xd5\xca\xe8\x1b\xe4\x7a\x4b\x54\x66\x56\xfc\x1e\x35\x5f\x38\xd0\x5b\xd3\xea\xe8\xe6\x5c\x0d\x06\x99\x8e\x4e\xe1\xdf\x85\x84\x3b\x07\x54\x94\xa3\xe8\x90\x84\x80\x39\xd0\x7a\xbc\xe0\x62\xac\x03\xd6\xdb\x85\xdf\x6e\x45\x1e\x8b\xd7\x47\x41\xa9\x99\x51\x46\x67\xe9\xcc\x73\xde\x99\x8a\x0d\x91\xb5\x5f\x9a\x4c\x94\xb9\xd6\x03\x22\x07\xde\x8e\xf4\xe5\xca\x16\x68\x42\x9f\x08\x1b\xb0\x39\xa7\x4c\x9d\xa1\x6b\xae\x88\x57\x22\xc3\x40\x67\xf1\xb9\xa2\x33\x83\xf6\x2a\x88\x3e\x07\x06\x14\x1c\x80\x36\xa7\x58\x9d\xa0\x38\x85\xa3\xca\x88\xd2\xac\x03\x71\x31\x81\xc8\x70\x31\x60\xe6\x8e\x1b\x63\x9a\xa4\x82\x58\x69\x15\x9b\x8c\xa0\x7c\xb0\xf9\x98\x2c\x06\x9c\x37\xfc\x19\x9d\x4c\x95\x5e\x1c\x2d\xdd\x59\x4f\xe3\x54\xf3\x21\x3e\x60\x23\x82\x30\x9a\x73\x49\x15\x7d\xca\x3c\x97\x74\x8c\xb0\x94\x60\x3b\x39\x43\x97\x05\xcb\x3f\x95\xa0\x74\xd7\x45\x14\x53\x36\xb4\x56\xe7\xfa\x4c\xa4\xad\x97\xb0\xd0\x8b\xa5\x2f\x1e\x49\x9e\xa4\xca\x77\xbe\x56\xaf\x6a\x6e\x14\x77\x25\x0b\xc0\x34\xcc\xc7\x03\xe6\x76\xb4\x3c\x43\x1d\x89\x24\xd7\xeb\x23\xcd\x22\x46\x82\x2a\x22\xa8\xc1\xaf\x22\xca\x2c\x42\x76\x42\xb3\xdd\x3f\xc3\xe2\x51\x0b\x4f\xbe\xed\xdd\xa0\xa9\x16\xec\x1c\x23\x23\x1b\x01\xa0\x97\xbf\x1c\x60\xf4\x47\x8c\xb3\x53\x46\x26\x78\xd5\x8a\x0c\x58\x61\x49\xd0\x77\x74\x9c\xab\xa2\x75\xde\x46\x8f\x76\x43\x88\x79\xaa\x5b\x25\xd3\x71\xdd\x22\x8d\x13\x8e\x57\x38\x8c\xc7\xf9\x71\x47\xff\xe0\x23\x33\x46\xad\xf1\x73\x05\xf2\x9f\x56\xac\xc6\x5c\x90\x29\x66\xf1\x89\x5b\xac\xe2\xd8\xe0\x4e\xb4\x46\x36\xa7\x86\x81\x0c\xe8\xe0\x93\x89\x41\xa1\xc2\xcc\x5b\x0b\xab\xb2\xd9\xa5\xc8\xd7\x61\xad\x5b\x22\x6b\x0d\xaa\xbe\x18\xd3\x83\x61\x76\x8b\xb9\x3d\xdc\x92\xce\xe6\x49\x9e\xcd\xe5\x59\x45\xc7\x5a\xb8\x72\xdc\x91\x3f\x81\xd1\xca\xe9\x6b\x70\x9f\xdb\x95\xd3\xfb\xac\x62\xe4\x19\x0b\x85\xfb\xc2\x59\xbb\x4c\x29\x55\x8f\x79\x7d\x27\x89\xfe\xa7\x22\xb9\xc2\x67\xc4\xf4\x01\x73\xc2\xc7\xf7\xc0\x5f\x6c\xb3\x9e\xd9\x4c\x0b\xcf\x06\xe0\xd6\xd2\x0f\x45\xc6\xbd\x5d\x38\x27\xf6\x30\xb8\x57\x2b\xaf\x28\x45\xb5\x80\xfd\x13\x05\x6c\xae\xcb\x2d\x01\xf7\x29\x8b\x49\x6d\x19\xab\x56\x5c\xa3\xee\x56\x51\x70\xc9\x0d\x37\xad\x3c\xd1\x9f\x12\x49\x90\x7a\xce\x20\xe2\xb4\x46\x05\xc6\x4a\x41\x12\xf2\x84\xf3\xdb\x2d\xeb\xcb\xb2\xcb\x08\xcb\x9a\xc2\x30\x80\xb3\xa6\xc7\xbf\x79\xca\x74\x36\xbe\x1b\x3d\x94\x27\x9c\xd8\x94\x15\xeb\x25\x97\xf5\x0b\xd6\xbb\xdc\x2a\x7a\xd4\xb6\x52\x45\xcf\x7a\xe1\xc2\xf5\xfd\x0b\x59\x54\x53\x64\x05\x7c\x61\x53\x1e\x7a\x46\xf6\x35\xac\xd4\xb7\xf9\x37\xcb\x34\xae\xa5\xdc\x2f\x85\x29\xbf\x42\xfa\xd4\xed\x52\x15\x73\xf8\x53\xa6\xe3\x31\xfd\x0a\xfa\xac\xbb\x49\x9c\xce\x11\x09\x2e\x35\x17\x03\x29\x05\xb9\xc5\x33\x2e\xe4\x6d\x52\xa9\x2a\xbf\xd4\xfa\xd5\xda\x3b\xba\x96\xda\x7f\x4b\x89\xd8\x8a\xde\xd9\x56\x5d\x27\x10\xd1\x3b\x25\xd5\xda\xa1\x6b\x54\xe1\x96\xd1\x48\x7e\xab\x7d\x5c\x43\xba\xd5\xc0\xe7\x95\x9f\x8d\x0c\xf3\x5d\x7f\x20\x3e\xd7\x6e\xb4\xa6\xe5\x91\x69\x59\x54\xb2\x2b\x47\xa4\xf9\xdb\x89\x85\x56\xc7\x36\x64\x2a\x4b\x72\xc6\x2e\x5a\xc4\xb8\x44\x4c\xb5\x2a\x65\x6b\x2c\x78\x3a\xba\x6d\x8c\xb2\xc9\x80\x39\xda\xca\x13\x64\x02\xc4\x4b\x0c\xb5\x80\x6a\x8f\xbd\x4f\xb3\x8d\xdd\xce\x98\x6a\x3c\xea\x8c\x48\xa9\x2f\x46\xa9\x04\xa6\xcc\x7a\x6f\x1c\x7d\xe4\x80\xa1\xd3\x72\x84\xfa\x09\x58\x10\x4e\x5c\x9e\xeb\x49\x3e\x40\x39\x60\x26\xd7\x04\xfd\x19\x7d\xa7\xf0\xc4\xdc\x12\x80\x5b\x89\x13\x40\xbc\x04\xfd\xc0\xea\xe3\x5e\x5a\x40\x76\x22\x69\xfc\xfd\x79\x53\x9f\xc6\x7a\xf0\x1d\x34\x03\x87\x5c\xd3\x30\x27\x10\x1d\xe7\xff\x20\xf1\xf7\x4d\x2d\xe5\x1f\x3d\x92\xc5\x49\x99\xc8\xf5\xf7\x46\x1f\x6f\x15\x9b\xb9\xaf\x8b\x03\x06\xdd\xde\x3d\x89\x47\x24\xf9\x35\x9f\x28\x6a\x64\x45\x3f\x51\x86\xb7\xe3\x41\x95\xc3\x6b\x17\x7b\x3e\x5a\xd4\x55\xac\xab\x60\x3d\x1b\x63\xad\x74\x8c\x2c\x4b\x90\xee\xce\x4a\xec\xae\x9e\x21\x86\x78\xc7\x29\x49\xe6\x28\xa6\x63\x70\xba\x29\xd8\x2f\x19\x6c\xac\xa9\xf4\xa3\x15\x9a\x59\xca\x0c\x04\xb0\x89\xf7\x78\xb6\x27\xdd\xb2\x8c\xbc\xf1\xb3\x01\xeb\xa9\xf7\x12\x49\x25\x38\x9b\x68\x35\x3a\x7e\xa2\x32\x2f\x61\xa7\x0f\x64\x3a\x23\xc2\x76\x41\xa5\x91\xba\x6d\xf9\x27\xec\x2e\x36\x3d\x36\x7d\xf5\x81\xe0\xe3\xca\x2c\xea\x1f\x8d\x5e\xa1\x47\x29\x5d\xbc\x54\x45\xc0\xbb\x5d\xdc\x12\xef\x7c\x61\xa3\xe5\xaf\xbe\x5d\x12\xcd\x72\x13\xa6\xe3\x97\x1f\xca\x06\x4c\x4b\xf5\x06\xe3\xe5\xda\x17\x42\xdb\x8b\xc0\xd5\x4b\x48\x4d\x82\x93\xee\xc7\xb9\xb4\xcc\xe0\xd6\x52\xb1\x4a\x13\xb4\xa3\x36\xda\x93\x6f\xbc\x24\x14\xec\x1f\x52\x61\x45\x23\x7b\x0b\x70\x61\xed\xb7\x56\xaf\xae\x5f\xda\x6d\x75\x12\x19\xe1\x64\x79\x85\x1b\xbc\xe9\xe6\xfd\x66\x13\xa7\x3d\x6e\xa6\xed\x46\x48\x97\x88\x27\xc9\x3a\x05\xea\x4a\x33\xbf\xc8\x3f\x6f\x1e\x51\xde\x8f\x5e\x00\xb7\x16\x70\x6a\x8c\x81\x02\x27\xd6\x51\x24\x95\x5d\x25\xff\x25\x73\xa9\x2d\xac\xfa\x38\x60\x7c\x0c\x25\x0c\x93\xba\x98\xf5\xb9\xe0\x33\xba\x4e\x0d\x0d\x13\xc6\x7d\xe7\xbc\xfe\x2b\x7c\x28\x2e\x36\x00\x0c\x6f\x66\x7b\xd9\x1e\x01\x8d\x01\x5b\x93\x5a\xc3\x19\x9a\xe1\xf9\x46\x04\x5f\x15\xf3\xd2\x41\x33\x13\x70\x64\xa9\x07\x68\xda\x04\xd2\x52\x81\xc8\xcf\x78\x91\x03\xdf\xd4\x55\x47\x60\x6b\x6d\x87\x07\xfd\x7a\x8f\x8d\xf9\x1a\x87\x33\x07\xaa\xb1\xa7\x0f\xbb\x3d\xeb\x9d\xbf\x2c\x06\xc3\xac\xbe\xa1\x69\x9b\xf3\x78\x51\xb5\xa9\xd7\x3e\x99\x8e\x82\xfb\xf4\xc0\xfa\x4c\xc4\xfb\xe6\x5f\xeb\xdc\xad\xc5\xa3\xe5\xb5\x88\x60\x38\xcd\xa4\xfa\x5c\xd8\x87\x3b\xa7\x51\xa9\x1d\x78\x96\xa7\x8a\xdd\x56\xb7\xfa\x02\x34\xb3\x87\xa4\x15\xb1\xb6\x44\xe6\x5a\xaf\xca\x83\xeb\x31\xab\xe9\xb0\xb5\x26\xb7\x8a\x18\xff\x1f\x7b\xef\xda\xdc\xb8\x91\xa4\x0b\x7f\xdf\x5f\x51\xeb\x7d\x23\xba\xfb\x2c\x45\xb9\xed\x33\x13\x5e\x6d\x38\xe2\xa5\xd5\x6a\x9b\x63\xb5\xa4\xd1\xc5\x9e\x3d\xc3\x09\x76\x11\x28\x92\x18\x81\x55\x30\x0a\x90\x9a\xb3\x3b\xff\xfd\x44\x65\x66\x5d\x70\x23\x01\x51\x6a\x7b\xf7\xcc\x87\x19\xb7\x08\xa0\xee\x95\x95\x95\xf9\xe4\x93\x20\xcd\x34\xdd\x1a\x7c\xdc\x09\x11\x00\x2c\x93\x54\xe8\x31\x9b\xb6\xb8\x6f\x6d\xf8\xbd\x83\x8b\x63\x20\xa0\xd5\x9e\xca\x3c\x09\xd2\xbe\x5b\x1d\x89\x25\x90\x7e\x2e\x84\xb0\x04\xee\x0a\x70\x9c\xae\xd5\x23\xc6\xde\xe5\x89\x91\x59\xa8\xac\x16\xe0\xcc\x32\xb2\x20\x21\x5f\x10\xba\xd2\xdc\x07\x0a\x23\x22\xcc\x35\xc7\xb9\xc1\x42\x0b\x44\x7d\x4a\x9f\x23\x81\x67\x7f\x76\x03\x5b\xeb\xad\xf9\xa2\xcf\xa5\xc0\xbe\x7b\x40\xeb\x9c\x96\x3f\xdc\x1e\xf9\x1e\x3e\xb5\x86\x5d\xce\x96\xb9\x80\x5b\xf6\xc6\x31\xa6\x61\xca\x04\xa5\xe0\xbc\xbb\x79\xf7\xe3\xf1\xdd\x94\x89\x22\x62\x69\x72\x2f\x66\x32\xd2\x0f\x70\xe9\xfb\xa5\x14\x85\xf9\xb9\xc3\x08\x94\x6c\x84\xd4\x20\x09\x92\xa2\xe7\x7d\xcd\x0e\x8c\xf9\xef\xbb\xea\xf7\x7d\x6e\xe5\x8e\xe5\xd3\xac\x5d\x9b\xcd\x10\x96\x29\x24\x6c\xc3\xa1\x6d\xb1\x6b\x7e\x87\x9e\xd6\xb3\xb6\x5c\xe7\x4f\x08\x86\x96\x7f\x2d\xe5\x40\xa5\xeb\xd4\x7f\x14\xb4\xa2\x43\xa7\xdb\x64\x1c\x32\x99\x0c\x8b\xb2\xc6\x6f\x5a\x4b\xdf\x27\x44\x3c\xe9\x8d\xf5\x9c\xfb\xb4\xf0\xac\xc8\x85\x00\x11\xe2\xd6\x13\x9d\xf5\xc4\xb3\xe6\x3a\x16\x7c\x34\x9e\xc9\x0f\x16\x4f\xe7\x7f\xd5\xde\xd7\xb0\x59\x04\x09\x5e\xaa\xa5\x40\xb1\x71\xa2\xdd\x0f\x90\xae\x4f\x97\x69\x81\xf9\x8a\x97\x89\xe4\xa9\x6b\x28\x3e\x69\x93\x12\x39\x97\xd1\xfa\x50\x07\x79\xb2\x9c\x8b\x74\x88\x26\x3a\x5d\x9e\xa5\xda\xac\xef\xe8\xbe\x63\x77\x3e\x25\x23\xb7\xef\x0c\x7a\x9c\x28\xab\x27\xf3\x0e\x76\x9e\x62\xbe\x60\xc1\x00\x81\x55\x8f\x8d\x47\xfa\x2f\x33\x8b\xa4\xa9\x23\x00\x0b\x83\x52\x5d\xc0\x19\xd4\xc2\x78\x31\x93\x79\x29\x21\x95\x98\xc3\x63\x72\xe6\xb3\xc1\x44\x16\x1d\x41\x58\x95\x95\x11\x13\x98\x6c\x05\x5f\x36\xf7\x33\x55\x6a\xf0\x47\x6d\x44\x61\x0e\xa8\xd7\x90\xe5\x1f\x01\xd1\x23\x96\xe5\xc9\x06\x5c\xca\xfa\x4d\xcb\xd4\x9d\xf2\x82\xa7\x6a\xf5\xdc\x56\xa5\x27\x06\xd7\xd8\x66\xb0\xe9\x3b\x33\xf8\x2b\x21\x45\x0e\x1d\x05\x5b\x76\xeb\x16\xee\x61\xe5\xee\x90\xdc\xe0\x49\x24\xe7\xaf\x76\x16\x0b\x5e\x16\x6a\x63\xee\xb7\x3c\x4d\xb7\x23\xf4\x3a\x0b\xb6\xe6\x7a\x6d\x27\x1a\x1d\x86\x7d\xce\x26\x1a\xdc\x53\x1e\xad\xc5\x4d\xc1\x8b\xb2\x15\x93\x55\x6b\xe5\x17\x42\x96\x9b\x2f\x4e\xd8\x9f\x7d\x1f\x4f\x27\xa7\x3f\x9c\xcd\xdf\x4d\x6f\x26\xdf\x9d\x9f\xbd\x0b\xfa\x43\x4f\x3e\x4c\x6f\x6e\x9a\xbf\xfe\x30\xbd\x6d\xfe\x78\x75\x79\x75\x77\x3e\xb9\x6d\x2b\xe5\xfc\xf2\xf2\xc7\xbb\xab\xf9\xfb\xc9\xf4\xfc\xee\xfa\xac\xe5\xd3\xbb\xdb\xee\x87\x37\x3f\x4e\xaf\xae\xce\x9c\x95\xfe\x2f\xc1\xee\x02\x0f\xb9\xe9\x68\x47\x37\xea\x1b\xf0\x88\x55\x5f\x3c\x61\x77\xf5\xc4\x56\x14\x69\x85\x2c\x61\x8f\x5c\x1b\x19\x06\x81\x7e\x60\x69\xf5\x83\xd2\xf5\x29\x82\x91\xa3\xb5\x60\xa9\x52\xf7\x65\x46\xa2\x0d\x8d\xea\x52\xa1\xe1\x47\xe8\xa0\xb4\x1f\xa6\xb7\x27\xcd\x04\x5b\xae\xb0\x80\x0f\xd5\xd9\x90\x1f\x39\x72\x03\x80\x38\x05\x5b\x8a\x4d\xbc\xe4\x3d\xd4\x41\x0d\x6e\x66\x76\xd5\x83\xa5\x71\x59\xd4\xaa\x89\x63\xcf\xa2\x04\x1d\x0b\x0a\xae\xce\xeb\xae\xd1\x74\xc3\x81\x99\x45\xd9\x42\x44\xbc\x44\xc8\xb6\x39\xa7\xf2\x5c\xe5\x61\x83\xfd\x7a\x78\xbe\x42\x69\x1d\xb5\x16\x58\x9b\x33\xd3\x71\x7d\x9f\x64\x99\x88\xbf\x68\xea\x2f\xd5\xdc\xff\x1a\x76\x9f\xa9\x33\xd8\x93\xe6\x5e\x0f\x77\x7e\x9b\x16\x6f\xbd\x75\x38\x21\x80\xa5\x7a\xa0\x2e\xa4\xe9\x30\x67\x82\x4b\x5b\x96\x00\xfc\x87\x17\xec\x51\x00\x61\x4c\x49\x79\x41\xf1\xee\x6d\xf6\x36\x54\x87\x7e\x7b\x9b\xe5\xb7\x42\x24\xd3\x29\x8c\x9f\x43\xe1\x36\xdf\x6b\x31\xcc\xd9\xb6\x97\xf5\xe3\x1d\x16\x0a\xd2\xd9\x22\xfa\xa1\xc5\xcf\xe9\x9c\x6b\x39\x91\xf6\x1c\x16\x46\x6c\xf7\x69\x8f\x65\x5a\xab\xa4\x2f\xe9\xdf\xb0\x4a\x8a\x8b\xbd\x63\x75\xab\x62\xbe\x35\x8b\x03\xc0\x09\xba\xcc\x32\x95\x17\xac\xa3\x0c\x04\x29\x62\xfb\xe0\xcc\xa1\x7e\x38\x19\x07\x85\x18\x0d\x43\xb7\x64\x4a\xeb\x47\xfe\x44\xe3\x1a\xf8\xb8\x82\xf0\x1f\xb8\x08\xba\xac\x96\x9b\xca\x95\xba\xb2\x42\xdb\x94\xdf\x43\xe2\x27\x33\x73\xc0\xf7\x4d\xb2\xdc\x56\xfb\xa5\x2d\xa1\x75\xca\x53\xb1\x2c\xe6\x03\x9d\x52\x50\xa2\xec\xe2\xeb\x4b\x56\xeb\x67\x28\xb1\xff\x2d\xe1\x2b\x82\x2d\x9b\xab\x41\x60\x21\xc8\x95\x2a\x50\x3f\xf5\x77\x18\x66\x47\x13\xcc\x0b\x54\x29\x45\xba\x3b\x25\xd0\xe8\xfc\x88\xf9\x72\x41\xe1\xe3\x99\x3c\x03\x78\xa8\xbf\x88\xd8\x00\x78\xb8\x05\xec\xd5\xff\x2b\x29\xe5\x3f\x6b\x2c\x4a\x37\x7f\xbf\x5f\xf7\x08\x2d\x14\xe9\xd6\xb1\x38\xc5\xac\xf2\x5d\x9f\xdd\x83\x56\x6f\xab\x02\x62\x87\x71\xeb\xe8\x42\x64\x64\x99\xc7\x7e\x7a\x1c\x33\x78\x85\x4d\x55\x63\xf6\xb3\xb5\xfc\x40\x58\x8f\x0b\x73\xb1\xc8\xd4\x94\x6f\x2d\xe5\x77\xdb\xc0\x3e\x07\x8b\xf6\x73\x07\xfa\xec\x1e\x60\x47\x97\xd9\x32\xca\x95\x0b\xb8\x94\x68\x91\x1d\x00\x17\x3a\x75\x1f\xdd\x88\xdd\xc8\xc7\xf7\x90\x64\x9d\x70\xe3\xa0\x74\xc8\x74\xfb\xcf\x38\x59\xc8\xb3\x61\xc1\x14\x94\xf4\x9a\x3c\xa8\x66\xff\x80\x07\x10\x69\x38\xd8\x32\x49\x53\xd0\x03\xc6\x6c\x22\xb7\x96\xa6\xc2\x1c\x85\x16\x44\x9a\xac\xa4\xda\x17\x41\xdf\xb1\x98\xa2\x60\x31\xdd\x74\x2f\x26\xc4\x69\x78\x96\xa2\xe7\x59\x51\xcf\xc0\x58\x67\x64\x0b\x6f\xe6\x3b\xe9\xcf\x53\x37\xe0\xf2\x1e\x9e\xe6\x9f\x2b\xf6\xab\xd1\xdc\xe0\xc3\xbf\xb7\x37\xfd\xfb\x92\xe7\x5c\x16\x10\xd1\x44\xaa\x7b\x2e\x82\xc0\x6a\xf1\x09\x30\xa8\x12\x0d\xc1\xf0\x53\x38\xb9\xd6\xe5\x8f\x30\xb1\x24\x1e\xb1\x64\x2c\xc6\x90\x7b\x37\x37\xba\xc4\xc2\xbf\xb9\x36\x9a\xc3\x4c\x36\x22\x35\xc6\x6c\x92\x6a\x45\x5f\x08\x19\xa5\x4a\x03\x04\x77\x11\xd2\xa2\xc3\xca\x27\xb7\xd2\x62\x0b\x17\x14\x98\x4a\x5f\xbc\xa2\x07\xc1\x87\x90\x42\x16\x7c\xe2\x29\xec\x74\xff\xfb\xbf\x2a\x22\x78\xed\xc2\x49\xbc\x60\xb2\xae\xc6\x31\xf4\x62\x93\x84\x89\xa0\x77\x4d\x10\xbc\x01\x13\xe3\x23\x68\x02\x7e\x39\xf6\x9a\x17\x2c\x15\x5c\x17\xec\xed\x9b\x41\xd8\x10\xdb\x41\x2f\x5d\x69\xfb\xfa\x30\x78\x1b\x48\x19\x2a\x77\xae\x62\xc8\x0c\xcc\xf3\x82\x71\x26\xc5\x63\x18\x37\xa3\x20\xd4\xc9\xa6\xfb\x15\x01\x73\x07\x62\xe6\x91\x77\x08\x62\x51\xf1\xca\xd4\x21\x47\x6c\x32\x0b\x72\x9f\x52\xb3\x5a\x56\xd6\xc8\xa1\xcf\x00\x6e\x6e\x5e\xf2\x21\x8d\x6b\x5e\xcc\x24\x49\x56\x0b\x1b\x09\x82\xd8\x27\x69\x5a\x0d\x23\xe4\x10\x29\x2b\x4d\x87\x4d\xeb\xe3\xb1\x1b\xa0\x0b\xb8\x7e\xb9\x58\xae\x8a\x9d\xce\x6f\x16\x8c\x39\x70\x6c\x8e\x61\xd9\xad\xda\x4e\x9b\x7d\xf9\x33\x2a\xc1\x2d\xd5\x9f\xab\x55\x12\xf1\xb4\x87\x32\x2c\xda\x9a\xbc\x67\x63\x35\x6d\xfa\x3b\x74\xe3\xe7\xae\xa0\xbf\xaa\xdc\x6e\x1f\x87\x63\xf6\x51\xb5\x98\xdb\x3b\x26\x37\xd0\x2d\x0e\xb9\x80\xbb\xa0\xc2\xcf\xe5\xf1\xad\x34\x7d\x1a\x03\xa5\xc1\x7e\x29\xe8\x29\x02\xac\xe8\xc0\xc8\xb2\x38\x88\x58\x0e\x02\x24\x09\xec\x89\x82\x8f\xde\xec\xf0\xbc\x66\xff\xbd\xbb\x3f\xf2\xfd\xb7\x5d\x71\x20\xb8\x66\xc7\xbb\x95\xbd\x49\xfc\x57\x1e\x41\x1c\x23\xd4\x64\x23\x28\x9b\x74\x93\x36\x49\x09\x07\x63\x7e\xab\x7a\x98\xe5\x2a\x12\x5a\x8f\xd9\x19\x1c\x34\xf4\x27\xe3\x4b\xeb\x90\x08\x5e\x9e\x49\x73\x33\xb1\xec\x74\x41\xf9\xd5\x25\xde\xb6\x03\x90\xea\xf6\x20\x5f\xce\x66\x7f\x06\xba\xae\xdb\x84\x65\xda\x85\x32\x20\x69\x15\x3b\x5b\x9d\xb0\x58\x45\xf7\x22\x3f\xce\x45\x9c\xe8\x13\xf0\xad\x17\x9d\x4e\xbd\x8d\xb9\x6d\x1f\xac\x69\x74\x01\x05\xf6\x84\xfc\x9f\x62\xfd\x04\xfd\xb7\x21\x44\x23\x96\x2c\xe1\x3a\x61\x23\x4e\x31\xd0\xca\x92\xf9\x09\x59\xe4\x5b\x44\x25\x5b\x53\x56\x6d\x20\xec\x4d\xc3\x28\x6d\x5d\xb1\xd2\xf9\x73\x60\x70\x9e\xd8\x6d\x8c\xcc\x21\xc0\x01\x76\xaa\x50\x14\xaf\x85\xe2\x22\xe3\xc5\x5a\x03\x31\x47\x75\x0c\xe8\xd2\x05\x9f\x9a\x11\xe2\x19\xe0\x15\xd0\x4a\xe1\x3f\x72\xf4\x11\xba\x48\xd2\x74\x26\x31\xc0\x02\x38\x34\x5e\xb5\xf2\xff\x98\x4f\x47\x8c\xc7\x31\xfb\xff\x5e\xbf\x3f\xff\x8f\xdb\xb3\xf9\xf4\x02\x8c\xd6\xd3\xf3\xb3\x37\x23\xf7\xe3\xe5\xdd\xad\xfb\x15\x2d\x2c\x0f\x22\x67\x1b\x7e\x0f\x57\x3c\xa9\x05\x85\x86\x8a\x99\x0c\x5b\x6a\x99\x91\xcc\x13\x2d\x2c\xd2\x95\xd4\x14\x47\x10\x4d\x73\xd8\x45\xab\x4a\x84\x99\x03\x2e\xbf\xd7\xee\x93\xdd\x6b\xd0\x2e\x1e\x57\x85\x55\x03\x21\x02\x98\xeb\x80\x2a\x87\xee\xbe\x7e\xc1\x09\xb9\x4a\x64\x17\x1e\x4f\xc8\x87\x97\x54\xe2\x7f\x14\x5b\x00\x84\x5f\xf1\x24\xef\xbd\xf6\xda\xb9\x0e\xed\x8e\x31\xf7\x74\xae\xeb\x9b\x4a\xa3\x2e\x8c\xb1\xc4\x9d\x98\xcf\x36\x9a\xdb\x5f\xbd\xbb\x44\x9e\x29\x3e\x15\xb9\xe5\xe0\x72\x31\xab\x96\xa8\xd2\x1d\x34\x7e\x0d\xce\xe4\xed\xe5\xbb\xcb\x13\x26\x52\xbe\x50\x10\xae\x48\x90\x20\x5b\x04\x0d\x58\xa4\x36\x41\x41\x15\xfe\xb5\x11\xcb\x3c\xff\x5a\x68\x44\x1b\x63\x19\x7b\x78\xd8\x32\x95\x37\xd9\xcb\x9e\xf7\x0a\x48\x9d\xbd\x52\x79\x9f\xe3\xdf\xbc\x86\xf1\x1b\x99\xb9\xc8\xd5\x24\x2f\x9d\xcd\x4b\xc1\x81\x9b\x83\xdc\x42\x64\xcb\x27\x00\x6b\x9a\x56\xb2\x65\x9b\x8d\xa3\xc7\xe4\x82\xf7\x6f\x2a\xc9\x7e\xfc\x46\xb3\x45\x59\xcc\x64\xb5\x0c\x25\xd9\xe4\xe7\x1b\xf6\x1d\x2f\xa2\xf5\x9b\x99\x84\xf8\xc1\x1f\xbf\xe9\x20\x8a\x1c\xcc\xbd\x6c\xc6\xe4\x1d\x2f\xf8\xb9\xe2\x71\x22\x57\x6d\xc4\xcb\x3e\x3b\xe0\xd9\xed\xe4\x84\xd9\x24\x2d\x3e\xda\xb5\xb0\x84\x27\x41\x41\x20\x90\xa1\x23\x56\x8a\x80\x28\x97\x55\x72\x5a\xbc\x99\xc1\x81\x35\x93\xb7\xc8\x38\x6d\xa4\x6a\x52\xb0\x4c\x51\x86\x4a\x73\x2b\x43\x2e\x6e\x6e\xa3\xc0\x45\xba\x65\x66\x74\x60\x19\xbb\xc9\x20\x7d\x0c\xf4\x99\xa6\xb0\x9f\x49\xb8\xa0\xbb\xf8\xdb\x54\x45\x3c\x05\x4c\xde\x51\x60\xd3\x33\xd7\x76\x55\x02\xfb\x0d\x80\x61\xe4\xb6\x0a\x9d\x75\x84\x4c\x4e\x29\x0b\x27\x0a\x0c\x00\x30\x8f\xe4\x8d\xdd\x28\x23\x71\x90\x69\x16\x8c\x6f\x29\x8e\x8e\xf9\xd0\x31\xcf\xe2\xb0\x98\xa7\x2e\x34\x5d\x95\xd2\x32\xad\x45\x60\xbe\x97\x5b\x80\x6f\x43\x4a\x39\x05\xd0\x0f\x2f\x9d\x69\x51\x36\x66\xd1\x9d\x89\xc1\x67\x33\x89\x48\xc1\xca\xbc\x84\xdc\x84\x41\xed\x4a\x02\x90\xb1\x19\x0f\x5f\x66\x04\x6c\x24\x5d\x3f\xcb\xc5\x91\x8b\xf2\x8e\x2b\x63\x6a\x4e\xd8\x31\xbb\x0e\xaf\xd7\xb1\x8a\xca\x8d\xcd\x1b\x01\x11\xe2\x84\x80\xa3\x43\xd4\xad\x10\x3c\xd8\xf7\xad\x78\xe0\xa0\x2b\x04\x90\xe3\xf4\xbe\x1f\xe3\x82\x99\x84\x9f\x36\x35\xf5\x6e\xc5\x17\x64\xc7\x61\xa8\x35\x2c\x68\x9e\x55\x4b\xaa\x94\x76\x30\xf7\xc2\x85\xe7\xb6\x57\x39\x28\x5b\xe2\x53\xa6\xc0\xc8\x8d\x01\xd0\x2a\x7e\xa5\xd9\xf4\xca\x68\x40\xe6\xc6\xeb\xf6\x60\xa9\x0b\x04\x97\x61\x9c\x32\x7c\x8d\xe1\x02\x23\xf6\x25\x9b\x95\x5f\x7e\xf9\x75\xc4\x3e\xd9\x7f\xfc\xfe\x77\xbf\xfb\xfa\xf7\x43\xc2\x49\xec\x85\x1c\xca\xf5\x63\xe4\x92\x85\x56\x55\xa2\x70\x06\x9a\x92\xea\x80\x59\xa0\x0d\xd8\x35\xfc\x4f\xe1\xb0\x0e\xb0\x43\x7c\x45\x3b\x5c\x87\x3b\x93\x55\xb6\xa6\x47\x12\x68\x51\x8c\xaa\x12\xc2\x29\xbb\xa4\xd1\xff\xf3\x0e\x2a\xd6\xb9\xd9\x2a\x4f\xc3\x38\x25\xa9\x53\xaf\x4d\x21\xec\x35\xd9\xff\x0a\x70\x20\xbe\xb1\x07\x9c\x4a\x63\x91\x63\x9b\x9c\xc9\xce\x19\x12\x41\x38\x88\x4f\x59\xaa\x62\x4b\xfe\xee\xf9\x0e\x12\x50\x10\xce\x3e\x71\x23\xb9\x47\x44\x12\x4a\xf1\xa5\xe0\x79\x59\xf2\x48\x50\x2c\xf4\xeb\x4f\x27\xe6\xb7\x11\xdb\x9e\x00\x88\x74\xc4\xfe\x76\x42\x5c\x80\x3c\x2f\xe6\xe6\xa7\x37\x56\xd7\xa6\x22\xa0\xd1\x89\x66\xaf\x8e\x1f\x78\x7e\x0c\xe2\xf9\x18\x5b\xf4\x8a\x24\xab\xcb\x7a\x1c\xea\xe6\xa9\x52\xf7\x04\xb0\x6d\x7c\x78\x6c\x69\x65\x61\x79\x3b\xbf\x09\x4e\xbd\xa3\x1d\x2a\xd8\x11\xbc\x20\xd8\x38\x5b\xb0\xf1\x5f\xb5\x92\x6c\xbc\xe5\x9b\x94\x7e\xb5\x4f\x09\xff\xcb\x35\xc5\xc4\xc5\x0e\xe4\x93\x6e\xd1\x52\xfa\x5d\xaa\x16\xd0\xab\x0f\xb6\xa7\x88\xa0\x85\x86\xfa\xd3\xc7\x1f\x58\xd4\x11\x4b\xb6\x01\xec\x88\x1b\x55\xe0\x2b\x14\xde\xda\xec\xd5\x27\xd7\xa4\x3f\xa1\x5f\x18\x06\xc5\x06\xf1\xa1\x71\xd8\xa1\xd7\x4c\xa1\x9f\xd8\x6b\x12\x41\x6f\xcc\x19\x43\x70\x65\x1c\x86\xb6\x0a\xb6\xae\x82\xff\x08\x2a\x48\x24\xc3\xb0\xcc\x1d\x5f\xfe\xed\x78\x3c\x1e\xbb\xaf\x81\x93\xe7\xff\xb0\xa4\xd0\x22\x5d\x62\x49\xf6\x04\xdb\xce\xe4\x07\x9b\x56\xca\x1a\xaf\x3d\x61\x75\x96\xab\x42\x45\x2a\x65\x47\xde\xa0\x1b\xab\x48\xb3\x7f\x31\x6a\x6d\x30\x94\xf0\xa3\xb9\xc7\x75\x90\xdc\x63\x1e\x8b\xcf\xb4\xa9\xc8\x20\x5e\xdf\x56\x21\x47\xad\xbb\xd8\x72\x1d\x06\x23\xc3\x5a\x30\x2b\xe7\x98\x78\x6c\xf3\xdc\xbc\x2c\x3e\x15\xf0\xa8\x83\x26\xb8\x15\xca\xde\x7e\x52\x36\xc4\xad\x67\x0b\xc6\x65\xdd\x31\x00\xc4\xe6\x49\x92\x01\xfb\x39\x0a\xdd\x27\xe6\x70\x91\x61\xa2\x23\x5d\x6e\x36\x3c\xdf\x1e\xfb\xdd\xd6\x5c\x9c\x9e\x47\x16\x64\x4c\x6a\x07\x00\x5c\xb8\x29\x6d\x2d\x42\x31\x90\x7a\x69\x4f\x34\xb7\x77\x23\xc8\x54\x1d\xb0\x32\x09\x19\xa9\x98\xd6\xb5\x8f\x3e\xad\x6a\x2c\xee\x9d\xa6\xae\x62\x11\x31\xda\x1b\xe3\x64\x81\x04\x65\xf4\x86\xfd\xb8\x43\x7c\xab\xb9\x2e\x8c\xa0\x5c\x0d\x70\x8f\x4e\x2f\x6f\xec\x37\xfd\x0f\x5d\x18\x87\xaa\xca\xce\xd3\x90\xfd\x57\xae\x58\xce\x1f\xfd\xf1\x0b\xd8\x0e\xb4\xce\x94\x2e\x36\x17\xff\x3e\x55\x57\x49\x6a\x4e\x2d\x58\xe3\xe3\x99\xac\xfc\x3c\x62\x22\x4d\x36\x89\x74\xd8\x3a\x14\xee\x6a\x89\xda\xf3\x7d\x52\x98\x29\xd3\xf1\xbd\x91\x60\x96\xb5\x32\xb8\x52\x4d\xe4\xd6\x2e\x1d\xe7\x98\x22\x0b\x44\xa9\x4d\xbb\xfc\x1d\x1d\xa2\xf6\x93\x58\x1c\x91\x42\x9a\x04\x0b\x0f\xf6\xef\x4c\x9a\xd2\xec\x5e\xf2\x70\xe1\xa0\xbc\xa0\xb8\x23\x9b\xee\x27\x90\x00\x50\x47\x05\xf3\xeb\xf4\xdf\x16\x05\xe5\x4c\x96\x9b\x43\x83\x4d\x08\x3e\xfc\x6b\x99\xe9\xae\x72\x61\x4f\x2a\x0a\x5c\x12\xb2\xdc\xd8\x0d\x35\x60\xc5\x9d\x91\xfa\x13\x8b\x28\xe5\xc8\xc3\x67\x0a\x02\xe4\xe3\x08\x1d\xa4\x59\x50\x17\x1e\x2f\x58\x0d\x66\x10\x4c\x85\x7c\x8d\x7f\xbf\x61\x74\x36\x7c\x39\xa2\xf3\x3c\xd7\x8e\xe5\x0c\xe7\x1c\x32\x70\x8b\x18\x6d\xe8\x90\x73\x61\xc5\xf3\x18\xad\xe5\xe1\xad\x02\x23\x78\x8d\xfe\xb5\x55\x25\x7b\x4c\xf4\x7a\x26\x6f\x95\x35\x38\x32\xa9\x5c\xd6\x8a\x11\x5c\x46\x1b\xf5\x71\x0d\x42\x00\x5a\xdd\xb6\x02\x8c\x10\x3e\x28\xd6\x08\x50\xb0\x73\xa9\x62\x71\x18\x3d\xe3\xad\xf7\x55\x58\xff\x75\x2e\x30\x1e\x0c\x4e\x8a\xae\x70\x5a\xa1\xf5\x40\xdb\x7c\x7d\xe2\xe1\x1c\xa2\x72\x4c\xad\xea\x71\x50\xee\x90\x90\xf9\xd4\x9d\x6a\x50\x8a\xbd\x71\x06\xd1\xc0\x95\xb1\x77\xb9\x20\x0e\x9d\x84\xa8\x85\x8b\xb1\xd7\xd9\x8f\x7d\x8f\x60\xd8\x1d\xc0\x98\xb3\x55\xae\xca\xcc\x85\xcc\xdb\x70\x3f\x9c\x06\xd2\x69\xa6\x72\xa9\x4e\xe8\x4e\x75\x9e\xc8\x7b\x5c\xf1\x2f\x35\x47\x98\xee\x43\xc4\x15\x92\x5a\x9b\x83\x1f\xfa\x70\xc4\x12\x19\xa5\x25\x1c\x7c\xba\xe0\xd1\x3d\xa6\x2c\xe9\x32\xfa\x9a\x6f\xe6\xfb\x83\x29\x3b\x34\xa6\x32\x4d\xa9\x5a\x7f\x80\x02\x19\x1c\x98\x80\x1e\x12\xce\x38\xbb\xbb\x9e\xb6\xd7\x7d\x9f\x34\x9d\x39\xed\xa7\x67\x75\x81\xc0\xff\xfd\x98\x0c\xc2\x5d\xd6\x48\x7f\x45\x65\xa9\x3b\xe3\x52\x17\xa5\x3c\x2e\xd2\xc2\x5c\x20\xe2\xeb\x16\xd3\xfe\xe0\x75\xba\xca\xca\xb9\x19\xa8\x74\x08\x40\xc0\xb4\xe2\xfb\xab\xbb\x49\xf0\xdd\xae\xa5\xf2\xfd\xd5\x1d\x0b\xea\x40\x3a\xe7\x54\x44\x85\x43\x1a\x8f\xd9\xa9\xcf\xb2\x50\xd7\xcc\x63\xf1\x90\x44\x18\xe2\x3a\x32\x5a\xd1\x4c\x02\x79\xb9\xb9\xeb\x1c\x59\xde\x4b\xf6\xfd\xd5\x1d\xb1\x65\x7a\x7e\x1b\x4c\x18\x01\x14\x16\xc3\x8e\x9d\x1a\x6d\xb8\x54\xf2\x08\xa9\x7d\xf2\xd8\x7b\x3b\x46\x70\xb9\x8e\x78\x56\x94\xa4\x60\x3c\xbc\x1d\xdb\x39\xb9\xf6\x9e\x10\xd3\x2c\x35\x93\x46\x57\xc2\x28\x03\xc8\x6d\x66\x3a\xdd\x9c\xda\xda\xa0\x1e\x02\x0e\x80\x41\x3b\x48\xf8\x27\x2e\xc2\x8f\xcb\x2d\xe3\xf9\x22\x29\x72\x73\x0d\xc3\x8f\x47\xc8\x44\xb6\xb6\xf9\xab\x70\xde\xbc\x66\x44\xe9\xe8\x60\x82\x13\x59\xe8\x99\x0c\x22\x58\x5c\x54\x30\x06\x2f\x24\x92\x01\xd9\x2f\x60\x6f\x2c\x05\x69\x94\xaa\x32\xb6\xc7\x6a\xee\xd2\xdb\x6d\x33\x54\xa2\x66\x12\x98\x49\xcc\xd9\xaa\x8c\x1a\xea\xcf\xfe\x13\xf6\x51\x3e\x24\x71\xc2\x8f\x0a\xa1\x53\x7e\x54\xfc\xef\x8f\xa3\xda\x4f\xfc\xed\x97\x5f\x7e\xc4\x4c\x7d\x5d\xb4\x0b\x01\xbb\xd2\x81\x06\x9e\x76\x3f\x85\xe3\x29\x34\xab\xf4\x80\x79\x3a\x4f\xee\x05\xfb\x88\xd3\xfd\x91\xe8\x89\x9f\x36\x6d\x33\xd9\x36\x6f\xec\x29\xd3\x06\x64\xf1\xed\xf3\xc6\x76\x4c\xdb\xdb\xd5\xf8\x77\xab\x85\x99\xad\xaf\x56\xe3\xb7\x5f\xc2\x3f\x6b\x73\xb4\x6f\xf3\xba\xe8\x99\xb6\x66\xb7\x08\xa2\x96\x6d\xe9\x64\xd1\x4c\xee\x17\x46\x6c\x98\x2c\x82\x55\xdb\xb6\xf1\x79\x21\x0e\x8d\x6e\x45\xd6\xea\x01\xe8\xeb\x06\x1d\xf8\x4e\x8f\xe0\x81\x5c\xda\x9e\x07\x1b\xe0\x9e\xdd\xa4\xde\x21\x00\x17\x1e\x0e\xe0\xe3\x81\xf7\xfb\xf5\xa7\xf6\xee\x9e\xee\xec\x6e\x66\x2a\xc4\x00\x06\x99\x1b\xf3\x7a\xcf\x46\x56\x5e\xdd\xd5\xc6\x47\x8e\xf9\x02\x9b\x69\x6a\x62\xba\xad\x0f\xd9\x45\x76\x39\xa2\xc9\x44\xbb\xb8\x3f\xd7\x12\x0b\xad\x74\xf7\x6b\x5b\xef\x8a\xf6\x52\x98\x8e\xd0\x79\xdd\x5a\x16\x7e\x60\x8a\x38\x10\x0a\x67\xae\xd4\xf3\x4d\x6f\x0a\x74\x5f\xf1\x3b\xfa\xf8\x43\x83\x10\xdd\xa9\x97\x1f\x20\x32\xdb\x91\x61\x6d\xb8\x34\xda\x9a\xad\xb5\xc3\xb1\x84\xb7\xfc\x27\x35\xe9\x2e\x7b\x52\x83\xb0\xc6\x9e\x99\xfa\xa9\x2a\x5b\xca\x23\xfa\x56\x79\x8a\xbe\x83\x62\x0d\x66\x65\x9f\xe1\xd6\x8a\x39\x6f\x5e\xc6\x6c\xb8\x29\xcf\x57\x68\xf4\xd2\xa2\xd0\x6f\x5a\x66\xd8\xc7\xb1\x1d\x30\xc3\x56\xed\x9a\x0f\xe3\xf9\xb0\xfa\x18\x98\x54\x76\xed\x34\xd7\xca\x6a\x3a\x0c\x77\xd3\xb2\xf5\x87\x5c\xef\x3e\xb8\x2e\x52\x39\xe6\x8e\x02\x3e\xd6\x6e\x1e\xac\x03\xe9\x60\x2f\xf8\xc6\xb1\xbc\x50\x69\x36\x66\x17\x1b\xb7\x10\x90\xc9\xa5\xbb\x0d\xbd\xb8\x5e\xfb\x36\x81\x18\x69\xbb\x5a\x30\x93\x13\xfb\x8a\x67\xa5\xd6\x09\x5a\x59\x30\x1c\xb1\x5c\x60\x84\x0b\xd8\xcc\xb8\x1f\x75\xea\x5c\x47\x27\x86\x06\xe4\xd7\xba\x70\xa7\x45\xee\x4f\x23\xcf\x5a\x1a\xf6\xa3\xa3\xe6\x7e\xac\xc5\x3b\x25\xba\xed\x22\x15\x65\xc7\x72\x4f\xc5\x2a\xdf\xc7\x00\xb9\xab\x52\x8b\xb8\x30\xbb\x78\x05\xfc\x63\x41\xa2\xe5\xae\xda\xfb\x5f\x93\xa8\x1b\x44\x97\x8d\x18\x0a\x88\x4a\x48\xb7\x7e\x93\x78\x6a\xf5\x5a\x65\x4d\x59\x51\x1c\x74\x16\x24\x7c\x33\xcf\x55\x77\xfa\xe7\x1e\xe3\x65\x8b\xa8\x78\x0c\xd6\x98\x0e\x72\xcb\x7e\x29\x79\x8a\x47\xab\xa4\xcd\x60\x9b\x0d\xc6\x97\xaf\x7e\xcf\x26\x70\xf6\xb1\x0f\x20\x95\x01\x32\x06\xa5\x15\x8a\x25\x9b\x4c\xe4\x5a\x49\xde\x99\x07\xfd\xfe\x1b\x3d\xa7\x5c\xae\xe6\x62\xae\xca\x66\xde\xd6\x01\x3d\x69\x29\x2d\xec\x14\x67\xf7\xe5\x42\xe4\x52\x60\xae\x77\x78\x8f\xd9\xf7\x7a\x35\x57\xf1\xb2\x58\x7f\x35\x8f\xd2\xa4\x77\x82\x59\x88\x57\x9d\x98\xcf\x4e\xf1\xab\x5d\x1d\xa8\x94\x5f\x69\xba\x64\xf8\x8c\xe1\xb3\x31\xfb\x8e\x47\xf7\x42\xc6\x2c\x4b\xcb\x55\x42\xf4\x34\x78\xd9\x48\xaa\x66\x85\x6a\xc7\x50\xb3\xc1\xf2\xcd\x21\x38\x93\x1b\x7e\x8f\x49\x5f\x48\x85\x35\xf7\x96\x2e\x72\x43\x67\xa8\x99\x27\xcd\xb5\xbb\x77\xb6\xdc\x69\xdc\x2c\xa6\xbe\xf6\x74\x89\xd1\x7a\x8f\x6b\x45\x18\xa7\x8a\x9d\x68\xc0\xc6\x75\xab\xb5\xc1\x22\x66\x99\x5e\x5c\xd6\x7f\x6a\x0c\xee\x5e\x70\x20\x42\xe2\xa2\x52\x32\x0e\x44\x64\xaf\x34\x2b\x33\x2b\x44\xc0\xb3\x95\x02\xce\x08\xa7\xc0\x3c\xc8\x92\xe8\x1e\x91\xad\x10\xbb\xc1\x5c\xf7\x1a\xc9\xa1\x99\xf0\x10\xcb\x36\xd1\xb0\x44\x1a\x9e\xc3\x50\x33\x8d\xbc\x47\x7b\xd6\x69\xcf\xb8\x94\x62\x2d\xe4\xfc\x09\xe9\x77\xfa\x4f\x5a\x25\x06\x85\x94\x70\xe7\x21\x74\x43\x58\xca\x84\x48\xb7\xfd\x0d\xdf\x65\x98\x48\x96\x35\x25\x3e\xd1\x4c\xf3\x22\xd1\x46\x96\xb5\x8e\xb8\x27\x3f\x3a\x64\xd4\xf9\x30\xc6\xa5\x16\xb6\xa5\xda\x58\xb8\x38\xb7\x31\x7b\x0f\x7e\x95\xe0\x5e\xa2\x1c\x77\x51\x97\xc0\x2a\xd6\xa2\x93\xc4\xf7\x39\x00\xa2\xb6\x07\xc1\xfb\x3b\xdd\x65\x2e\xa6\x71\xcc\x26\xde\x9f\x8d\xec\x4d\xe8\xa9\xde\xd3\x23\x91\x6a\xf1\x94\xc5\xd7\xcb\xf5\x03\x98\x2f\x58\x40\x0c\xf4\x38\x6d\x7e\xf7\x6c\xee\xae\x99\x8f\x40\x1b\xc0\xef\x85\xdc\x65\xdf\xef\xdf\x42\x74\xc0\xec\x34\x48\x38\xcf\x8e\x42\xe7\xce\x53\x1a\xd8\x7f\xdb\x79\xc2\xac\x64\x79\x6c\x86\xdc\x5c\x82\xa2\x7b\x0a\x56\x44\xff\x1e\x51\x6e\x3d\xae\x95\x0e\xf7\x99\x9d\x3f\xbc\x47\xe7\xa5\xcb\xaa\x05\xc1\x9e\x6e\x80\x11\xe5\x29\x55\xc8\xc8\x05\xad\x76\x9b\x14\x8d\x4a\x6e\xbe\x99\x15\xa1\x30\x0c\x80\x8b\xb0\x45\xb5\xec\x66\x99\x95\xcf\x95\xbb\x65\x3f\x0d\x76\x73\x84\x1b\x0d\xfa\xf1\x1b\x7d\x09\xf5\x3d\x07\x19\x0d\x5a\x19\x9f\x3f\x10\xec\x89\x2e\x70\x07\x71\xb6\xd6\x4f\x05\x41\x22\x74\x50\x66\x2a\x66\x7e\xbd\x77\x45\xda\x48\xa9\x10\xe2\xfa\x1b\xec\x56\xd0\xb8\xde\x7d\xdb\xb7\xd5\x3e\x04\x38\x39\xb6\x28\x93\x34\x46\x36\xc1\x40\x43\x55\x56\x05\x82\x34\x46\xa0\x8f\x24\xda\x1d\x70\x2d\x8b\xfe\xc7\x6f\xf4\x95\x8a\x0f\x59\x58\xc3\x19\x63\x9b\xeb\xba\x47\x18\x8d\x0e\xb1\x4c\x9b\xfd\x23\x91\xa9\xee\x00\x88\x78\xae\xab\x19\x7b\x77\x34\x18\x10\x6f\x8b\x72\x79\x03\xe9\x41\xbb\x48\x99\x82\xcc\x79\x36\xca\xda\xcc\xb3\xa9\xc6\xc5\xfc\x75\x4d\x0a\x01\xa8\xbc\x3e\xc2\xd9\x1f\x6e\x2e\x2f\x8e\x36\x3c\xd7\x6b\x0e\xa4\x17\xb6\xac\x91\xcd\xb8\x8e\xd6\x02\x0b\xec\x48\xe4\x4c\x1e\xb1\x95\x1a\x21\x8c\xe8\x84\xad\x8b\x22\xd3\x27\xc7\xc7\xab\xa4\x58\x97\x8b\x71\xa4\x36\xc7\x7e\x68\x8e\x79\x96\x1c\x2f\x52\xb5\x38\xce\x05\x04\x92\x1c\xbd\x1d\x7f\xf5\x16\x66\xe6\xf8\xe1\xed\x31\x80\x47\xc6\x2b\xf5\x2f\xe7\x5f\xfd\xdb\xd7\xbf\x37\x05\x67\xdb\x62\xad\xe4\x09\x61\x94\x76\x96\x7d\x84\xd7\x84\x63\xfc\xa4\x56\xcb\xbf\x8d\xbf\x0c\x9b\x41\xaf\x6e\x54\x2c\x52\x7d\xfc\xf0\x76\x6e\x27\x66\x9c\x75\x64\xb6\xf8\x47\xe8\xc5\x67\x08\xbd\xb8\x4f\x8a\x7f\x84\x5e\xfc\xaa\xa1\x17\xfd\x55\x2e\x27\x63\x80\xcb\xda\xcb\x47\xf3\xbb\x93\x91\xd6\x13\xb1\x4f\x0e\xb5\x1c\x0e\x61\x60\xdc\x01\x47\xc4\xc0\x44\x73\xb5\xee\xba\xbb\x4c\x87\xc5\x71\x68\x3e\x99\xce\xdb\xc5\x20\x1e\x10\x00\x3a\x26\x11\xd8\x0a\xd1\x42\x9a\xf1\xa4\x2d\xa0\x22\xc8\xaf\x73\xc0\x10\x62\xbe\x8f\x76\xd2\xb3\x3e\x69\xb1\x28\x33\x94\x88\xe7\xcf\x92\x20\xab\xb5\x0e\xc4\x84\x0e\x2e\xbf\xa1\x77\xf7\x50\x8d\x09\x25\x7d\xd0\x88\xbe\x60\x2a\x93\xe7\xce\x61\x42\xdd\x7d\x62\xfe\x92\x14\xbf\xb6\x98\x6e\xf5\x68\xf3\x96\x3c\x47\xb6\x0f\x8f\x57\xef\x97\xe9\x03\x17\x29\xb4\xc5\xb6\xab\xa3\x19\x6b\xae\x9f\x16\x1c\x30\x41\xaa\x60\xe7\x0b\x46\x64\x75\xa2\x6d\x85\xf6\x34\xb6\xec\x4b\xe6\x70\xb7\x24\x8f\x59\x99\x67\x4a\x0b\x3d\x66\xef\x55\x8e\xb4\x5e\xc4\xb9\xe3\x03\x1e\xae\xdf\x9f\xb2\xb7\xdf\xfc\xdb\xd7\x33\xf9\xba\x45\x19\x82\x43\x54\xe5\x2b\x8a\xbf\x00\x15\x68\xc3\x75\x21\xf2\xe3\x7c\x19\x1d\xe3\xd1\x71\x6c\xbe\x3f\xa2\x4a\x8f\xd4\xf2\xc8\xa5\x32\x38\x22\x56\xf7\xf1\x26\x7e\xd3\x85\x4c\x6c\x57\xb8\x7f\xb5\x4b\xcf\xa4\x43\x31\x6f\x9b\xdf\xfd\x82\xb5\xb2\x85\x50\x11\x21\x2d\x44\x83\xc6\x82\x54\x8c\x6a\xe9\x92\xef\x60\x9c\x2f\xe6\xe9\x52\xcb\x96\x7f\x7c\x97\xaa\x85\x7e\xe3\x08\x60\xb9\xb6\x75\x78\x46\xc6\x36\xb9\xdd\xd8\x73\x87\xdc\xbe\x69\x28\x5e\xd2\xac\x66\x65\x62\x38\x6d\x43\x06\xbe\x5d\x68\x78\x5d\x10\xf9\xa8\x78\xae\x4a\x69\xb3\x5b\x28\x29\xd4\x12\x60\x4e\x70\x4d\xb2\x28\x4d\xf0\x2c\x00\xf6\xcf\x71\x4f\xe5\x22\x43\xed\x03\x7c\x60\xdd\xc3\x7d\x60\x86\x97\x7d\xe3\xfc\x12\x19\x5e\x0e\x1d\x77\x12\x8c\xbf\xd2\x80\x1f\x1a\x4a\x81\x5b\x69\x08\x02\xc9\xbc\xbf\x17\x6d\xe0\xe4\x80\xcf\x30\xed\x93\x29\x64\x3c\x07\x0d\x5e\x1c\x15\xea\x08\x48\xfb\x80\x0a\x0e\x73\x2e\x75\x41\x90\x00\xa5\x31\xe4\xb8\x37\xef\xf7\x68\x27\xde\xda\x3e\x05\x0d\x25\x85\x55\x23\x85\x39\x41\xd2\x13\x29\x45\x4e\x1e\xe0\xbd\x9a\xc1\x40\x0c\x47\x38\x95\xbb\x11\xe9\xde\x4c\x11\xe6\xc3\x71\xf1\x88\x3c\x10\x02\x63\x06\x57\x93\xb5\xda\x28\xa3\xeb\xaa\x52\x07\x0f\xf1\x6a\x0b\xca\x44\xa7\x62\xbe\xe1\x19\xea\xab\xbf\x5e\x6f\xcc\xd6\x32\x8f\xd0\x04\x1d\xbe\x34\x28\xc5\xd8\xa2\x9a\x54\x69\x4f\xfb\x5d\x36\x9c\xdd\xeb\x06\x10\x42\x1b\x70\xf9\xad\xf9\x83\xb0\x39\x2e\x92\xbf\x99\x4b\xaf\x59\x52\xee\x1a\xe9\x34\x10\x04\xb4\x21\x17\x75\x08\xdf\xb4\xa7\x6e\x27\x5b\x4c\xb9\x19\x38\x07\x2e\xc8\xaa\xcf\x04\x70\x89\x61\x47\x36\xde\xe8\xa8\x35\xe0\xa8\x6b\x5f\x82\x5d\xad\x34\x37\x13\xcb\x97\x3e\xac\xa9\x37\xae\x00\xa2\x46\x6f\xb6\xdb\xd3\x4d\x42\x74\x1a\x8e\x31\x0a\x04\xab\x5b\x74\x81\x9c\x87\x6f\x46\x48\x30\x37\x64\xec\xa0\x12\x5c\x9c\x8d\x11\x0c\xf6\x42\xd7\x00\x0e\xb3\xbf\xee\x32\x67\xb6\xe1\xdb\x91\xa1\xd7\x47\x2f\x9b\x56\x36\x2c\x0b\xee\xc3\x07\x9f\xc4\x18\xe0\xbf\x8b\x12\x9e\x5f\x5c\xde\x86\xc8\xa6\x04\x7b\x7b\x14\xad\x45\x74\x0f\xd6\x34\x3c\xf2\x70\x33\x50\x30\x3e\xc0\xad\x7d\xea\xd3\x42\x59\xa0\xcc\xd6\x65\x83\x71\x19\x91\x54\xce\xe2\x44\x67\x29\xdf\x02\x24\x41\x62\x9c\xa2\x87\x33\xb8\x00\x5f\x23\x0a\xf6\x39\x13\xfa\xcf\xb4\x99\x95\x89\xff\x6e\xe8\x58\x7a\xe0\xb9\x1f\xcc\xa6\x3c\x60\x5a\x6c\xb8\x2c\x92\x68\x26\x37\x82\xcb\x10\xc1\x4a\x90\x0c\x33\xc8\xb1\x12\x94\x2f\x61\xb9\x14\x51\xe1\x09\x97\xe1\x12\xe2\x46\x6a\xdf\x1e\x1c\xd6\x77\xb7\xf3\x76\x76\xfd\x07\x9b\x9e\x39\xd9\x00\x3e\x9a\xd6\x10\x1d\x8d\x4f\x74\x35\x42\xaa\x5c\x3a\x72\xed\xa5\x16\xfe\xb2\x6b\x8a\x2d\x44\xf1\x28\x80\x4f\x88\x08\x10\xda\x74\xfc\x83\xd3\x25\x1d\x12\x3c\x38\x71\xfc\x83\x44\x2f\xdf\x20\x10\xa6\x0d\x16\x02\x2f\x1d\xf1\xa1\xac\x31\x18\xbe\x22\x4a\x06\x30\x05\xbe\x22\xa3\xe6\x2b\x38\xa6\xcd\x2d\x38\x7f\x10\xf1\x4c\x56\x69\x25\x49\x67\xf4\x1b\x8e\xf9\x44\xa0\xcf\x23\x6d\xec\x18\xf7\x72\xf4\x9c\x01\x95\x96\x27\xd1\x76\xa4\x03\x3b\x12\x93\x62\xa7\x5f\xf2\x56\x65\x73\x22\xf7\xbd\x0c\xfb\x5c\xa1\x94\xe8\x8f\xf2\x02\x57\xd0\x3f\x6e\x51\x3a\xd2\x3c\x64\xd4\x75\x60\x71\x32\x5a\x37\xcc\xe0\x6d\x65\xcc\xa4\x65\x93\x59\x96\x29\xb2\xa4\x77\xc5\xec\x10\x87\xa6\x8d\x7c\xfd\xf5\x22\xa0\x9d\xd1\x95\x05\xb9\x55\x1d\x48\x27\x00\xee\xa3\xac\xb3\xab\x5e\x48\x5d\x82\x4a\x61\xd3\x2a\x82\x57\x62\x25\x0a\x38\xcd\xe3\x32\x45\xc0\x26\xb8\x53\x80\x8f\x93\xa7\x29\x4b\x0a\x3d\x93\x8e\x3e\x14\x03\x73\x40\xc2\x5a\x7f\x4b\x4c\x57\x2e\xa8\x02\x8a\x85\xc7\x5c\x82\x1e\x96\x44\x49\xd1\x08\x77\xd8\x86\xa9\xc8\xb2\x4c\x70\x8c\xe5\xc7\x69\x9b\xc9\xf0\xce\x55\x9f\x04\x0a\x7c\x87\xec\xf5\xcf\x11\x83\xbe\xc3\x70\x6b\xaa\x78\x12\xca\x06\x7b\x67\x2e\x5c\x36\xcb\x38\xb6\x96\xf8\x83\x08\x95\x6c\x6e\x35\x85\xb6\x0e\x14\x7f\x6f\x85\x98\x9e\xa8\x4c\x79\x8e\xc1\x4c\xcb\x32\x65\xc9\x32\x48\x98\x0e\x73\x80\xe4\x91\x66\xba\x22\x05\x67\xb5\x75\xa1\x68\xbe\x11\x01\x6f\x0d\x99\x77\xd2\x00\xf1\x83\x19\x31\x10\x4a\x62\xca\x7a\x33\x66\xef\x3c\x3d\x2e\xce\x30\xec\x89\x80\x74\x3a\xd1\x28\xfe\x5c\x7b\x03\xca\x05\xe8\x9d\x69\xa2\x92\x66\x47\xba\x5d\xd7\x31\x83\x90\xbc\x66\x18\x9c\xc8\xa6\x2e\xda\x8d\xb0\x6f\xa5\x5c\x31\x9f\xd6\x40\x46\x6e\x43\x74\x34\xd0\x9e\x0a\x03\x1b\x19\x12\x76\x3f\xa1\xa1\x8e\x10\xbd\xa5\xb1\x9b\x1d\xf9\xd9\x61\x1e\x07\x36\x35\xc8\x76\x38\xbc\xa1\xc1\xca\x09\xc1\x63\x7d\x46\x76\xc5\x8b\xa1\x48\x32\x17\xb8\x36\xbc\xa1\xad\xa8\xbd\x3e\xcd\x04\xe9\x31\xb0\x9d\x13\xf3\xcd\x13\x1b\xaa\xcb\xc5\x11\x0a\x68\x97\x0f\x09\x44\x85\xe0\xd1\xba\xca\x21\x61\x99\x9e\x5d\x0f\x20\x86\x10\xf6\xe3\x70\xfa\x8b\x89\x5f\x73\x90\xf0\x91\x99\xe6\x8f\xd9\xa5\x14\x88\xf3\x54\xcb\xe0\x50\xa1\x06\x50\x66\x48\x48\xb6\xe3\xa4\xdc\xc2\x34\x4c\xde\x5b\x6a\x2d\xb3\xe5\x46\x8c\xfb\xd2\x41\xea\xe1\xb2\x41\x29\xd2\xa1\x4b\xb6\xa5\xa6\x3a\x40\xbd\xec\x47\x50\xd1\x7e\xe7\x0f\xe0\xd2\xc3\x25\x40\x5b\x3f\xfa\x4f\xcb\xce\xb8\x07\x77\x8b\xb3\xc1\x0e\xd5\x75\xc3\x10\xfc\xbc\x6f\x7c\xaf\xd6\x55\xcc\xec\x80\x44\x8e\x77\x17\xef\xce\xde\x4f\x2f\xaa\xd9\x17\xff\x78\x77\x76\x57\xfd\xe5\xfa\xee\xe2\x62\x7a\xf1\x7d\xf8\xd3\xcd\xdd\xe9\xe9\xd9\xd9\xbb\xea\x7b\xef\x27\xd3\xf3\xda\x7b\xe6\xa7\xea\x4b\x93\xef\x2e\xaf\x6b\xf9\x1e\x6d\xb2\xc6\xe0\xa7\xdb\xe9\x87\xb3\x77\xf3\xcb\xbb\x4a\xca\xc8\x77\xff\x71\x31\xf9\x30\x3d\x9d\xb7\xb4\xe7\xfa\xec\xf4\xf2\xa7\xb3\xeb\x3d\x19\x1f\x7d\x7f\x5b\x87\xf4\x39\xb0\x85\x4f\xce\xff\x39\x61\xcb\x3c\x11\x32\x4e\xb7\x18\x29\x62\x6f\xb6\x35\xe8\x77\x78\xf6\x26\x1b\xa1\xca\x43\x02\x3e\x6e\xd7\x82\xa9\x07\x91\x03\x0b\x18\x96\x46\x94\x21\x9e\x71\xa0\x5e\x6b\x2e\x8a\xbc\xe9\x15\xd8\x19\x55\x57\xe4\x5b\x17\xb7\xb9\xab\x39\x9e\x41\x92\x2a\x61\x99\xc8\x77\xb5\x05\x34\xa3\xbc\xcc\x8a\x64\xd1\x1d\xc2\x33\x38\xf0\xbe\xef\xdd\x1b\xf9\x8e\xdb\xc9\xe1\x2e\xda\x05\x63\x25\x92\xe5\x10\x98\x3c\x94\xf0\xd4\xb4\xb6\xee\x6b\x0b\x2d\xce\xca\x45\x9a\x44\x2c\x89\xeb\xf6\x14\xe2\xc3\x00\x93\x71\x9d\x16\x3d\x13\x39\xa8\xaa\xe6\x06\x90\xe5\xe2\x88\x97\xc5\x1a\x29\x3c\x29\x70\x86\x92\xd8\xcc\xa4\x16\x51\x2e\xd0\x17\x20\x34\x18\x69\x31\x9f\x69\x50\x13\x34\x86\x18\x6c\x62\x20\xcb\x1b\x07\x29\x6a\x3a\x7c\x04\xf8\x25\x96\x3e\xc0\x48\x8a\xef\xef\x1c\x1a\x6a\x71\x82\x19\x53\x03\x58\x18\x9c\xf0\xf8\xd0\x66\x45\x35\xfd\x36\x92\xda\x65\x05\xc5\x49\xb6\x91\x46\xed\xdd\xd8\xb7\xc6\xc2\x85\x52\x0d\xbd\xa1\xd2\xe9\xd1\x69\x2e\xe0\x10\x21\x48\x83\xb5\x5f\x00\xae\x89\x22\x93\x20\x20\xc9\x5c\xd5\x16\x62\xcd\xd3\x25\x6a\x1c\x66\x6a\xda\x59\x45\xb0\xfc\x5b\x75\x2f\xe4\x35\x4e\xd8\xaf\x22\x0e\x25\xde\x7c\x3c\xa7\x91\xb3\x08\x79\x13\xa6\x69\xa3\x5d\x55\x36\x2e\x14\x94\xa9\x02\xef\x09\xc1\x63\x0c\x40\xf2\x19\x0b\x6c\x48\xe9\x72\x99\x7c\x32\x05\xce\xa4\x68\xe5\x6c\x07\x30\x99\x65\x97\x74\x72\x19\x80\x73\x48\xd1\x77\x2f\x24\xe4\x53\x05\x72\xc0\xfd\x6b\x76\x98\xfd\xbc\x39\x17\x3b\x0c\xfa\x60\xf3\x4b\x2a\x69\x66\x43\x2f\x8f\x1d\xa7\x02\x23\xc2\x1c\x07\x07\xac\x9b\xd3\xf3\xe9\xd9\xc5\xed\xfc\xf4\xfa\xec\xdd\xd9\xc5\xed\x74\x72\x7e\xd3\x77\xfb\x3d\x47\x14\x5f\x6d\xf7\xd5\x83\xd9\x9c\x84\x38\xa6\x9d\xe7\x43\xd9\x5d\xa7\xfc\xb6\x83\x29\xd9\xdf\xfa\x24\xce\xe6\x71\xa2\x23\x73\xfc\x6d\xe7\x42\xc6\x90\xec\xe2\x49\x4b\xb5\xbd\xa8\x7a\x2f\xdc\x1b\xcc\xbd\x61\x25\x08\x9e\x76\x0f\x76\x45\xbb\xe7\x00\xc9\x04\x33\x64\x2e\xcc\xe6\x8f\x2b\x1c\x23\xe3\xfd\x19\xce\x4c\x71\x87\xf5\xad\x5a\x44\xbd\x4f\xd8\xde\x44\xeb\x12\xa8\x4c\xec\x6b\x80\x47\xed\x18\x15\x62\x20\x0e\x33\x6e\x24\x41\xb6\x78\x96\xe8\x99\xdc\x70\x19\xf3\x42\xe5\xdb\x8e\x2e\xf6\x13\x9e\xe1\xb6\xa9\x8a\xd0\xf0\xc8\x96\x42\xc4\x76\x16\xf0\x55\x2e\xeb\x4b\x09\xf3\x72\xdc\x5e\xfe\x78\x76\x71\x33\x3f\xbb\xf8\x69\x7e\x75\x7d\xf6\x7e\xfa\x27\x07\x93\xcd\xb8\x6e\xcb\x0e\x9d\xe5\xc2\x48\x17\x4b\x73\xd6\x2a\x5f\x30\x65\xb3\x2d\x87\xd2\x74\x26\xcb\x99\xb4\x92\x25\xf7\xc5\xaf\x73\x55\xae\xd6\xed\x05\xd5\x5b\x79\x35\xb9\xfd\xe1\x49\xcd\x04\x12\x4a\xcc\xeb\x8a\xbb\xad\x09\x17\x4e\x96\x24\xf7\x10\x63\x5c\x6b\x1e\x50\xa9\xc2\xab\x6d\x5e\x86\x0e\x89\xf6\xa4\xdb\x4b\x53\x68\xed\x54\xfe\x5b\x5e\xef\x5a\x40\xb7\x81\xdc\xac\x1c\x23\x00\x5f\xc7\xf4\xe0\x8d\xd2\x4e\x5a\x7e\xab\x9c\x60\x5f\x1d\xa5\x62\xb5\x12\x31\x2e\xaf\x7a\xc1\x64\x83\x23\x11\x18\xf9\x73\xbd\x6d\x14\x29\x81\xef\x01\x07\xb3\xc3\x7b\xf5\x17\xe0\x57\xee\x93\x76\x59\x71\x4a\x44\x52\xe0\xdf\x2c\xb8\xec\x70\x24\xef\x8f\x07\x6b\x2f\xfe\x32\x67\x2e\x54\x8f\x0c\x26\xd6\x65\xe0\xf7\x41\x17\xe0\xe5\x70\x7c\xab\x6b\xc7\xb5\xc8\x52\x1e\x09\x17\xe0\x82\x0c\xc0\x70\xaf\x7f\x8a\x03\x8f\xd2\x24\x4b\xb2\xb7\x04\xe9\x93\x7d\x66\xb8\xb6\x25\x00\x96\xdb\x6b\x2b\x8f\x5f\xde\xb4\xb2\xf3\xe2\x46\xbc\x9f\x60\x68\xc6\x3c\x95\x14\x17\x81\xb6\x28\x48\xfe\xda\x89\x59\x1f\xb4\x1c\x6a\x35\xff\x44\x13\x8f\x77\xe6\xaa\xa1\x9b\x5b\x66\x5d\xb7\x3c\x9c\xea\xb8\xcb\x5e\x58\x14\xf9\x4e\x32\xee\xe7\x70\x47\x5c\xe5\x6a\x93\x68\x31\x29\x8a\x3c\x59\x94\x61\x36\xe2\x81\x80\xb9\xca\xe5\xc4\x77\x38\xcb\x55\x5c\x46\x96\x3e\x0b\x7a\xeb\x61\x3f\x64\xe5\xb3\x5a\x47\xcc\x8e\xcc\xea\xa3\x9b\x9b\x88\x8f\x20\xda\x03\xf9\xdd\xda\x7c\x6c\x56\x30\x76\xd8\xfe\xae\xec\x51\xfe\xcc\x31\xa3\xdd\x83\x69\xd7\x40\xbf\x30\x70\x66\x5f\x07\x0d\xb8\x03\x35\x45\xcb\x65\xc1\xd1\x81\x5e\xd5\x51\xba\xd8\x72\xdc\x51\x33\x0c\xdc\xd5\x0f\x1b\x53\x0d\xa7\x42\xbd\x61\xcd\x35\xaa\xf3\x45\xb4\xae\x36\x1c\x7a\x53\x65\x0d\xae\x37\xd7\xa9\xc7\x87\x99\x4d\x7a\xb9\xd1\x46\x68\x68\x48\xc8\xb0\x5d\xc9\x00\xeb\xd2\x59\x77\xda\xef\x31\xe4\x62\xfe\x4b\x29\x86\x64\x75\xb6\xa1\x1a\x7f\x84\xcf\xf6\x02\x52\x12\xc4\x6e\x39\xdb\x6b\x91\x6c\x8c\x06\xc4\xf3\x68\xcd\x16\x5c\x13\x1d\x61\xc8\x96\x80\xe9\xe7\x59\x62\xbe\xe2\x51\x41\xe9\x78\x6d\xb5\x36\x25\xef\xad\x85\x42\x1a\xb5\xd6\x5b\x3d\xda\x96\xdb\xbe\x01\x18\x62\xbd\xb6\xcd\x98\xbe\x1b\xe4\x43\x08\xf5\x70\x77\x4f\xc6\x23\x16\x4e\xa7\x94\x97\x32\x5a\xb3\x2c\xe5\x48\x28\xb1\xe6\x1a\x05\x85\x45\xe8\xf0\x45\x92\x26\x05\xf0\x84\xa1\xe3\xb8\xb6\x6e\xcd\xe5\x99\xe7\xf7\x36\xdd\x02\xf7\xa4\x70\xbb\x44\xc9\x81\x48\x68\xd7\xab\xcf\x8a\x85\xf6\x82\x30\x14\xee\xfd\x36\x3b\xe1\xa0\xfd\x74\x98\xe3\x0d\x36\xbb\xef\xcb\x30\xef\x10\x95\x78\x55\xff\xbc\x36\xde\x48\x40\x79\x10\x49\xf0\xce\xb8\xac\x17\x01\x9d\xfb\xa8\xb2\xdd\xc7\x68\xb3\xc3\x2d\x4a\xf0\x70\xe0\x13\x25\x4e\x1a\xa0\xc4\xd4\xd3\x2a\xb5\xee\xfb\x65\xaa\x78\xb1\x3b\xca\x0d\xb3\x24\x75\x95\x1d\xab\x72\xd1\x95\x97\x03\x5b\xf5\xf4\x18\x3a\x2b\xfe\x9f\xcb\xe6\x1e\x9e\xa3\xbc\x10\x46\xfa\x3e\x6d\x40\xcd\xd7\x47\xf0\x79\x7b\xe1\x14\xc5\x3c\x98\x91\xc2\x2d\x03\x9f\xab\xcf\xe9\xfe\x00\x49\x6d\xd9\x4e\x75\x25\xef\xa0\x98\xc7\xc3\xe6\x2b\x91\x7b\x96\xd2\xfe\xf4\x5f\x5f\x7f\xd5\x27\x1a\xf1\x8f\x25\x37\x07\xc0\xe5\xf2\x06\x09\xc2\x0e\xe9\x74\x91\x34\xb7\x55\xbb\x18\xa8\xd7\x7a\x5b\xf5\xd2\x86\x0b\xbf\x37\xdb\x41\x5b\x6f\x6e\xcc\xd7\xfd\xc5\xee\xb4\x62\x8d\xcd\xf2\x44\x01\x51\x96\x5a\x56\x74\x8d\x16\x49\xdc\x5a\xef\x01\x23\xf9\x4b\x29\x4a\x61\x16\xd0\xa2\x8c\x57\x4d\x67\xc9\x80\x0b\x97\xef\xd2\x5a\x3d\xb2\x4d\x19\xad\x99\x2d\x9c\xc5\x22\xe5\xdb\xaa\x1a\x65\xee\x1a\x85\x02\x0a\xe5\x41\x7c\x81\x01\xf1\x7d\x54\xea\x42\x6d\x00\xa7\xee\xcb\xcd\x4b\x09\xbb\x9c\x71\xbb\xbb\xda\x0e\xb4\x0a\xa1\xe7\x13\x3d\xe4\x37\x57\x67\xa7\xd3\xf7\xd3\x9a\x7b\x7a\x72\xf3\x63\xf8\xf7\xcf\x97\xd7\x3f\xbe\x3f\xbf\xfc\x39\xfc\xed\x7c\x72\x77\x71\xfa\xc3\xfc\xea\x7c\x72\x51\x71\x62\x4f\x6e\x27\x37\x67\xb7\x7b\xfc\xd4\xcd\x5a\xbb\x27\x82\x07\x7c\xa3\x16\x39\x6f\x93\xe9\x58\x73\x15\xd5\x7a\xc2\x26\x96\x7d\xb5\xc2\x0f\x6c\xb1\x06\x00\x4e\x4a\x11\x63\x89\x90\x84\x77\xbc\xe0\xa7\xbc\xe0\xa9\x5a\x8d\xd9\x84\x51\x5c\x01\xc6\x8b\x68\xa3\x12\x12\x35\xa5\x99\x1d\x2c\xc2\xe8\x85\x91\x37\x05\xf9\x6c\xe1\x6a\x49\xa4\xb0\xa9\x08\xf3\x4a\xd9\x20\xcf\x99\x3c\x7b\x10\xb2\x28\x41\xd1\xe6\x69\xca\xa8\x5a\xfb\x42\xc0\x0a\x62\x5b\xa9\x93\x4d\x92\xf2\xdc\x27\x76\xbe\xa4\xb2\xe0\xb2\x6b\xdb\xea\x58\xe9\x9a\x94\x13\xd6\x1e\x70\x37\x65\xd0\xee\xd3\xf3\x29\x28\xba\x51\x61\xb3\x16\xda\xca\x67\x12\x49\x47\xa9\xc6\x0d\x87\x18\xa6\x42\x91\x81\x1e\xab\xa7\x97\xbb\x17\xe2\x41\x8a\x95\x75\x65\xbd\x94\x61\xc2\x35\xd2\xfe\xe3\x4c\x16\xf9\xb6\xb7\xf6\x7a\x0b\x8c\x0e\x1a\xee\x75\x04\x89\xac\x26\x7b\x46\xfb\x29\xb3\xa5\x5f\x80\x4a\x6b\xf1\xba\xe4\xde\x73\x5e\x3c\x84\x47\x75\x5c\x89\x52\x73\xf2\xfe\x56\xc7\x21\x64\x01\x83\x51\x58\xa8\x52\xc6\x9a\xc0\x9b\x9b\x44\x1e\x6f\xf8\xa7\x37\xb6\xa7\x48\x62\xe3\x52\xae\x01\x63\xa2\x48\xcd\x7d\x70\x6b\x84\xdc\xee\xe1\x9a\xc9\x1d\xe3\xb5\xff\x4e\x60\x25\x2b\x98\x0c\xbc\x7d\x07\x61\xa8\x0f\x62\xdb\x36\x7f\x8d\xb4\x99\x2c\xcc\xfd\x00\x85\x64\xb9\x30\x2f\x3a\x8c\x6b\x8a\xd0\x65\xf7\x37\xc4\xb2\x54\x52\x7b\xb7\xcb\xee\x10\x36\x72\xd0\xb6\x69\x05\xac\xf4\x57\x7c\x7a\xe7\x3d\xa5\x9a\xcc\x9c\x21\x7c\xc5\x7a\x4e\x28\x76\x87\xfc\xf2\x66\xb2\xfe\xaa\x16\x6c\x09\x81\x6c\x64\x27\xc8\x05\x78\xca\x60\x2a\x6c\xa2\x1e\xe0\xd5\x6b\x60\x62\xec\x12\x48\x85\x06\xff\x91\x34\x97\x6a\xf1\x4b\x49\x10\x80\xb7\x5f\x0e\x3b\x67\x0b\xcc\xf6\x80\xf4\xde\xf5\x3c\x08\xee\x2c\x87\x76\x95\x32\x69\x23\xdb\xbc\x2e\xa5\x39\x8a\x9f\x03\x3d\xd5\xdf\x3d\x5e\xab\x94\xfe\xdc\x1b\x6b\x66\x3d\x3b\x39\xbe\xff\x62\xcc\xcd\x3f\xd5\x08\x9b\xa9\x3a\x88\x6c\xa0\xd2\xc3\x03\x6d\xc1\xa3\xfb\x47\x9e\xc7\x68\xfe\x07\x38\xd3\x98\xfd\xa0\x1e\xc5\x83\xc8\x47\x2c\x12\x79\xc1\x89\xaf\x50\x03\x9e\x03\x36\x14\x95\x33\x93\x10\xe8\x83\xe4\x8f\x52\x97\xb9\x60\x45\xb2\x5a\x17\x22\x0f\xd1\x38\x2a\x37\xe2\xa8\x40\xaa\xda\x4c\x44\x44\xc8\xd6\x31\x00\xcb\x94\x3f\x34\x09\x18\x9f\xc2\x24\xc3\xa6\x2e\x5a\xd9\xba\xbb\x6d\xf2\xb3\x5d\xf8\x29\x1a\x30\x12\x9a\x48\xa1\x35\x62\x2b\x95\x72\xb9\x1a\x8f\xc7\x90\xe8\xe3\xcd\xa0\x85\x4e\x05\x86\x0e\x74\x87\xd2\x4f\x95\xd2\x22\xdd\x3a\x12\x31\x17\x47\x05\xc0\xdd\x4f\x85\x90\x3a\x41\xc3\x56\xcb\xf2\xbf\xa9\x3b\x97\x3e\xaf\x2f\xae\xfd\x7a\x3e\x38\x4a\xb7\xa3\x1c\xc8\xa5\x3a\xa0\x24\x7c\xbf\xfd\xe6\xf5\xa4\xa8\xf3\xf6\xb2\xa4\x92\x43\x43\xa9\x7f\x52\x49\x07\x14\xe4\x49\x64\xa3\xad\x25\x11\x11\xd2\x93\xc2\x4f\xdb\xc7\xac\x11\x11\x7c\x40\x30\xf0\x8e\xb8\xde\x81\x21\xbd\x7d\x0c\x01\x37\xf5\xe9\x1e\xbc\x2d\xf6\xa7\x77\x6b\xed\xd0\xc0\x90\x69\xcf\x6d\x30\x44\x75\xc2\xa8\xcb\x74\x0b\x37\x2e\x17\x40\x0d\xee\x81\x38\xf0\x2a\x55\x9c\x66\x10\xca\xe7\xbd\x6e\x8e\xa0\x2e\x70\xb2\xe9\x42\xe5\x7c\x25\xd8\x46\xc4\x49\xb9\x69\x15\x36\xae\xb9\x87\xc0\x47\x55\x5a\x6e\xba\xa9\x42\x0f\x55\xa0\x7d\x23\xf1\x5f\xa7\x50\x5d\x7f\x0e\x1d\x17\x19\x61\xb3\x6c\x52\x7b\xd1\x85\x44\x63\x6d\x4e\xca\x3c\xd1\xc0\xb2\xfb\x94\xc8\x59\x57\x0c\x16\x0d\x0e\xf8\x6d\x86\x46\xf6\xca\xec\x1e\x59\xcf\x28\x7d\xa2\x71\x56\xc1\x6b\xdf\x7d\x28\xd4\x41\xa9\xc3\x73\xed\xe5\xaa\x6c\x70\x4f\xf5\x02\x4a\x80\xda\x18\x64\xde\x20\xd4\x1c\x14\x48\xd0\x9e\x42\xb1\xa5\x8d\xc5\xbc\x17\x01\xf5\x61\x0c\x39\x39\x1e\x91\xf2\xe9\xc7\x6f\xb4\x05\x01\x11\x4e\xcb\x6b\x2c\x85\xaf\x04\x3d\x40\x0f\x6f\x2d\x3c\x0f\x7b\x88\x45\x00\x41\x61\xcc\x65\xd1\x5a\x80\x47\xaf\x42\x59\xf8\xc9\x4f\xbc\x4c\xdb\x5f\xa7\xf2\xe1\x55\xcc\xd9\x3a\xf9\xf9\x86\xe1\x50\x53\xfe\x84\x7c\x57\x43\x83\x42\xf6\x03\x04\x61\xb8\xe6\x4f\xd0\x04\x2b\xf3\x80\x83\x6e\xd3\x77\x98\x61\x17\x45\xb4\xf6\x9a\x07\x10\x34\x3a\x62\x49\x4a\xc8\x4d\xfd\xdc\xf8\x8c\x10\x88\xbd\x0e\x41\xac\xc9\x4a\xaa\x30\x95\x92\x92\x02\x5c\x71\x46\x00\xa9\xb0\x58\x96\x14\xfb\x91\x82\x03\x59\x09\xf7\x2d\xb5\x42\x21\x02\x8c\xfa\x59\xf1\x53\xc3\x95\x22\x41\xba\x2a\x0b\xb3\xc6\x3b\x11\xe5\x77\xae\x67\x0a\xa8\x12\x80\xcc\x64\xb5\xaa\xc6\x20\x59\x28\x5f\x92\x0b\x24\xf8\xd6\x46\x7b\x2b\x92\x07\xb3\x51\x9b\xcb\xda\x2d\x50\x90\x00\xcd\xb5\x47\x6e\x5b\x16\xb0\x84\xdf\x8b\xad\x0e\x93\x49\xd3\x8a\x62\x5d\x0b\x32\x31\xfd\xa1\xf9\xda\x3f\x15\x30\x70\xf3\xdc\xa7\x84\xec\x77\x96\x61\xa5\x1f\xcc\xc7\x3b\x30\xc2\x8d\xc2\xcd\x1a\xf4\xc1\xae\xde\xa6\x48\x62\xc2\x8f\x33\xcd\xa1\x87\x01\x02\xc8\x33\x84\x71\x86\x91\x4b\x70\xf1\x35\xf7\xdb\x99\xa4\x44\x02\xc1\x21\x67\x04\x4e\x73\xda\x28\x02\x1f\xe9\xcb\xb7\x15\xf6\x20\xa0\x56\xb5\x34\xb3\xd5\x2a\xad\x77\x19\xf2\xf2\xc1\xf2\x80\xaa\x31\x46\xd9\xda\xf0\x5a\x2b\x7c\x22\xb6\x94\x26\xb7\x13\x4f\x1a\x04\x02\xe2\x9b\xc4\x2e\x8a\x59\xc9\xf1\xf6\x13\x09\x33\x7c\x13\xd9\x0a\xe5\xb4\x40\xce\x9b\xb3\xd3\xeb\xb3\xdb\xcf\x86\x37\xb5\x60\xcf\xc1\x80\x53\xdb\xce\x77\x67\xef\x27\x77\xe7\xb7\xf3\x77\xd3\xeb\x97\x40\x9c\xd2\xa3\x27\x40\x4e\x6f\x28\x3f\xc9\xa9\x92\x85\xf8\x74\xd0\x99\x9c\x97\x72\xce\x07\x84\x3e\xb9\x0c\x45\xbb\xd4\x1d\x2c\xb4\x99\x5f\xc5\x25\x3f\x21\x6e\x5b\x42\x9d\xd8\x74\x2a\x4b\x6f\x34\x5c\x26\x69\x0a\x91\xe0\xce\xbc\x4e\x51\x86\x66\x50\x41\xfe\x58\x3a\x5f\x92\xa9\x33\xb9\xa8\xa4\xbf\x01\x93\xdf\xda\x5c\x82\x31\x06\x3c\x33\x03\x90\x27\x10\x61\xbb\x2b\x05\xcb\x2a\x91\xc2\x37\x03\x66\xcd\xb4\xaf\x93\xa6\x9e\x26\xf1\x25\x91\x75\xa4\x78\xf5\xd5\x35\xed\x8a\xab\xac\x4f\xab\x7e\xda\x87\xae\x87\xb8\x89\x13\x89\x8a\x69\x65\x37\xdf\xb4\x2f\xdd\x63\xbf\x05\x60\xdc\xcd\x4c\x72\xf0\x41\xe8\x82\xe7\x85\x9f\x48\x9a\x08\x4c\x0c\xe7\x9d\x13\xf7\x09\x22\xd0\xd4\xb2\x36\xce\x46\x14\x9a\xb1\x4e\xc0\x53\xc1\x89\xdc\x26\x4a\x4b\x5d\x88\x9c\xcc\x26\x93\x9f\x6f\x66\xf2\x3b\x73\x7c\xbd\xa1\x53\x88\xd2\x77\x61\x15\x88\xd4\x51\x95\xfa\xad\x86\x12\x4a\xb0\xd7\x68\xa3\xde\x08\x2e\x35\x83\xad\x91\xa6\x22\xf7\x2b\x03\xdb\x23\x44\x4c\x49\xb4\x81\xea\xd9\x7f\xff\x86\x11\xb8\xd5\x0c\x85\x69\xaf\x4b\x23\xb6\x51\x45\x73\x3d\x75\x11\x0d\x00\xe2\xfc\x25\x57\x4e\x4b\xe0\x53\xdf\x55\x44\x60\xfd\xd6\x45\x54\x0d\x43\xea\xb5\x96\x6e\xb1\xb8\x7f\x2c\xa5\x67\x5c\x4a\x3d\xce\xf5\xf0\x94\x60\x6b\x65\x04\xa8\xcb\x6d\xe5\xdd\xcc\x8e\xe8\x24\x05\x94\x9b\x19\xc6\xd6\x53\xa7\x96\x5d\xf6\x10\xec\x07\x14\x75\x18\x42\x7b\xd2\xc2\xa8\xe4\xd3\x18\x5a\xdf\xce\xce\xc4\xb5\x2f\xc3\x5c\x38\xb1\x58\x55\xa9\x0a\xcb\x41\xe2\xe0\xa1\x84\x75\x35\x2f\x38\xf2\x9b\x9d\x6d\x24\x42\x19\xab\xa5\xcc\x0f\x4c\xfe\x78\x1b\x62\x6a\x2b\x51\xd9\xd8\x8a\x90\xcf\xc1\x72\x38\x38\x0e\x98\x21\x8b\xef\xe9\xe9\x85\xab\x6b\xce\xf1\x89\x3e\x09\xec\x70\x71\x79\x71\x16\x42\x15\xa6\x17\xb7\x67\xdf\x9f\x5d\x57\xe2\xf9\xcf\x2f\x27\x95\x98\xfc\x9b\xdb\xeb\x5a\x28\xfe\x77\x97\x97\xe7\x67\x0d\xcc\xc3\xd9\xed\xf4\x43\xa5\xf0\x77\x77\xd7\x93\xdb\xe9\x65\xe5\xbd\xef\xa6\x17\x93\xeb\xff\x08\x7f\x39\xbb\xbe\xbe\xbc\xae\xd5\x77\x77\xba\x1b\x3d\x51\xe9\x46\xbb\xf9\xc7\x3b\x67\x03\x6a\xd5\xd6\x6d\x5c\x4d\xbf\x7c\xc0\x2e\xee\x89\x3c\xdb\xb7\x1c\x6d\xb8\x7e\x1c\xa6\xe3\xc0\x8d\x61\x9a\x3a\x68\xd5\x3d\x7f\xbe\xe8\xca\xd0\x65\xfc\x30\xb1\x67\x4e\xb5\xf9\x73\x20\x01\x77\x2a\x80\xae\x96\x9a\xe1\x96\xd2\xb3\xe3\xd0\x66\xe0\xc1\x5a\xf1\xce\x7c\x65\x32\x7e\xf1\x96\xda\x3a\xf6\xb5\xd3\x53\x79\xed\x61\x44\x7a\x2e\x36\x94\x5d\x8d\x0e\x2a\xb3\x64\x03\x49\x6c\x15\x05\xfb\x30\x84\xdd\x9b\x6e\x98\x95\x13\x2c\xc7\xae\xc4\xbe\xed\x61\x4b\xbb\xd9\xf7\x86\xb6\x9f\x2a\x69\xb6\xbd\x46\xd5\x32\xa0\xdd\x40\x99\x35\xa4\xdd\xb7\x5c\xdf\x0f\x6d\x37\x55\xd2\x6c\x37\xa8\x7d\x4f\x6a\x37\x18\xbc\x8b\x76\x1a\x9d\x01\x42\x2c\x2c\xa6\xda\x3c\x17\xe3\xef\x5e\x09\xf2\x67\xf7\x6b\xa3\xd9\x00\x2f\x7b\xbd\xcc\x78\x7f\x47\x06\xb4\xc6\x6d\x57\x5e\x63\x95\xbf\x81\xa7\xd0\xc3\x45\x2e\xf8\x7d\xac\x1e\x69\x3e\xea\xc8\x50\xd6\x4b\x9a\x57\x07\xc8\xc8\x70\x7b\x44\x14\x39\x79\xa0\x10\xa5\xe6\x8b\x07\x98\x5c\x42\xbc\xe8\xa8\x83\x05\xa9\x97\xeb\x44\x44\x40\xfd\x24\xfd\xec\xcc\x24\x6a\xf3\x6d\xe9\x9b\xcd\xac\x9a\x16\x11\x75\x08\x74\xd5\xe9\xd0\xe8\x5c\xd7\xc1\xc4\x52\x1c\x50\x99\x03\x98\x6e\x91\xc3\x9d\x09\x06\x24\x91\x60\x4c\xce\xcd\x85\x27\x17\x51\xa2\x45\x90\x31\xae\xf5\xc4\xfe\xe5\xb0\x54\x28\x05\x2f\x5a\xcd\xae\xbd\xed\xe1\x3c\x2a\x4a\x9e\x32\x08\x57\x22\x06\x46\xb4\x55\xe2\x2f\x11\x97\x18\x1a\x53\x88\x4d\x06\x51\xfd\x61\x4c\xc7\x4c\xfe\x0c\x40\x09\x9c\x82\x57\x9a\x7d\x0f\x90\x07\xfb\x32\x1d\xc2\x1b\x5e\xc0\x59\xfc\x47\xac\xc3\x3d\x1b\xcf\x64\x25\x03\x53\xf0\x55\x25\x19\xd3\x78\x26\x6d\xb6\x8e\x58\x45\x7a\x0c\x37\xbe\xb1\xca\x57\xc7\x94\x4b\xdd\x2c\x76\x75\xbf\x50\xea\xfe\x58\xc8\x63\xb0\x49\x15\xc7\xbc\x2c\xd4\x31\xc0\xa5\x70\xfe\xf5\xb1\x4d\x7a\x6c\xb3\x46\xeb\xe3\x75\xf2\x20\xe0\xff\xc6\xeb\x62\x93\xfe\x8b\xce\xd6\x9f\x8e\x56\x69\x7e\x64\xbe\x3d\x0a\xbf\x3d\xb2\xdf\x1e\xd9\x6f\x8f\xcc\x67\xf8\x7f\xd9\x16\xdd\x3b\xe2\x13\x37\x67\xd9\x68\x26\x13\xa9\x45\x5e\x80\xf6\xf3\x98\x27\x85\x4f\x75\xb5\x65\xaf\xfe\xf3\x3f\xd9\x38\xe7\x8f\x18\x11\xfb\x8e\x17\xfc\x0a\xed\x8b\x7f\xff\xfb\x2b\x70\xa8\x62\x14\x53\xc6\xf3\x5f\x4a\x51\xcc\xa4\x16\x66\x13\xb2\xff\x35\x93\xe0\x81\xdd\x6c\xe7\x05\xda\x5d\xd1\x06\x19\x6b\xf6\x2d\x96\x39\x45\x36\xd2\x58\x9b\x92\x3a\xc2\x09\x12\x9e\xb6\x64\xe9\xef\x30\xd1\xff\x92\xbe\xa3\xf7\x07\x6c\xeb\x5f\xd2\xea\xae\xb6\xc9\x96\xf4\x2f\x29\x1c\xa0\xa9\xe2\x16\xac\xc5\xdc\xe2\x85\x7b\x32\x35\xae\x6d\x8f\x34\xa0\x01\x2f\xea\xa6\x6f\xdf\x2b\x37\xc8\x88\x6e\x2d\xf7\x0d\x31\x02\xbe\x02\xef\x87\x00\xef\x79\x62\x76\xc8\x0d\x5a\x42\x41\x73\xc3\x9e\x83\x4e\x4a\xae\x73\x57\x1e\x1a\x2e\xf4\xd7\x27\xc7\xc7\x23\xb6\xd2\xf0\x9f\xc5\x2f\xf0\x1f\x40\x0f\x3d\x17\xa9\x6f\x63\x30\x1d\x10\xae\x39\xcb\xfb\x67\xe2\x39\x50\x74\x9f\x83\x47\xbe\xb6\x4c\xbf\x2b\x65\x9c\x0a\x1f\xda\x58\x71\x89\xa4\xca\xcc\xa4\x9d\xa8\x66\xe6\x21\x98\xe3\x85\x88\xb8\x11\x7c\x8d\xba\x11\x5c\xaa\x96\x85\x90\x68\x0d\xcb\x7d\xb6\x47\x8e\x96\x2b\x50\x8b\x01\x0a\xc9\x0b\x82\x9c\x0b\xf8\x11\x2a\x01\x62\xf6\x51\xfd\x11\xdb\xaa\x92\x38\xc6\x81\x39\x37\x16\x51\x0a\x89\x1c\x2c\x7b\x10\xcb\x45\x51\xe6\x92\x71\x96\x71\x19\x73\x0d\x2b\x70\x99\x83\xb7\x33\x67\xbc\xd9\xd0\x11\xc2\x71\x55\x59\x00\x27\x16\x22\x0b\xc2\x91\x40\x12\xf8\xa0\xcd\xa3\xa0\x11\x78\x26\x00\x17\x75\xe3\xc3\xf1\x4c\xda\x7c\x84\x84\x85\x43\x4b\x59\xa4\xb2\x2d\x31\x1e\xd5\x07\x3d\xb1\x96\x33\x1a\xee\x91\xc7\x9b\xd4\xdf\x1d\xb1\xa4\xea\x5a\x03\xbe\xf9\x22\x48\xf1\x6e\x93\xe4\xbf\x16\x32\x52\xb1\xc8\xf5\x1b\xb3\x0d\x13\x77\xef\x40\xfd\x21\xd1\x7e\x32\x40\x4a\x99\xc3\x8d\xac\x85\xa6\x78\x97\x60\xca\x8c\x4e\x85\xa1\xbc\x4d\xcf\xd9\xbf\x55\x7e\xeb\x28\x98\xb6\xf6\xd2\x3f\x3f\x2b\x22\x26\xc4\x75\xda\x3b\xe7\xd3\x4d\x10\xb8\x65\x43\x89\x8b\x85\xa2\x8e\x43\xca\x89\xcd\xa7\x9d\x14\x90\x21\x33\x17\xba\x98\x49\x3a\x81\x47\x6c\x29\xb8\xd1\xf3\x46\x2c\xd2\x0f\x28\x8c\xf1\xb8\x2f\x1e\x95\xc7\xe0\xd8\xf4\x36\x00\x86\xad\x14\xee\x8d\xc4\xf8\x1a\xa7\x08\x6c\x04\x18\x74\xdd\xd0\x9d\xaa\x02\x83\xd5\x2a\x10\x9f\x30\x0e\x36\x5b\x4a\x3d\xc3\x5a\x98\xac\x07\x46\x62\x8b\x8e\x62\x56\x6f\x07\x3e\x30\x82\x07\x7b\x87\x30\x90\x40\x38\x82\xc6\x4d\x58\x5a\xdc\x67\xde\x87\x1b\x52\xd6\x83\x6d\xa6\x6b\x53\xed\x18\x08\x68\xc0\xd3\xec\x16\xe6\xd3\xbd\x06\x2b\x2d\x72\x9b\xca\x05\xfb\x8a\x04\x93\xeb\x24\x8f\x8f\x32\x9e\x17\x5b\xbb\x7c\xd3\x64\x01\x19\x20\xd2\xe4\x5e\xb0\x49\x9e\xab\xc7\xe7\x1e\x85\x4e\xd1\xd2\x75\xc3\x3e\x04\xc9\x3e\xf4\x96\xdf\x4a\x2f\x5b\x37\x77\x3c\x8d\xca\xb6\xcb\xf0\xd1\x5a\x4f\x2e\x8a\x7c\x3b\x37\x0b\x71\x93\x75\x4a\x8a\x5e\x41\x13\xfd\x95\xdc\x61\x2c\xb9\x35\x13\x46\x27\x4b\x6e\x65\x56\x7f\x3b\x2c\xb9\x2d\x04\xb8\x4d\x96\xdc\xe9\xc5\xf4\x76\x3a\x39\x9f\xfe\x9f\x5a\x89\x3f\x4f\xa6\xb7\xd3\x8b\xef\xe7\xef\x2f\xaf\xe7\xd7\x67\x37\x97\x77\xd7\xa7\x67\xbb\x69\xaf\x9a\xad\xf7\x2a\xf8\x11\x0b\xeb\x39\x61\xb7\x01\x50\x03\x83\x0d\x48\xff\xa6\xfc\xb8\xb0\xaa\xcc\x66\x4e\xe4\x6a\x04\x1b\xf5\x84\x9d\xe5\xf9\x74\xc3\x57\xe2\xaa\x4c\x53\x80\x53\x61\x64\xcf\x69\x2e\xe0\xe2\x39\x62\x57\x2a\x9e\x06\xdf\x41\x38\x62\x6b\x37\xa0\x7e\x1e\xc7\xb9\xd0\x1a\xab\x1f\x51\xfd\x01\x78\xc8\x85\x3a\x12\x78\x8e\x3f\xf0\x24\x35\xf7\xb7\x13\xf6\x1d\x8f\xee\xd5\x72\x89\xe1\x33\x23\x17\x38\xc5\x7e\x29\x55\xc1\x99\xf8\x14\x01\xd5\x5b\xfb\x3a\x39\x57\xab\x5f\x01\xaa\xdc\xc3\x3d\xd5\x71\x49\x81\x54\x77\xf3\xf6\xe3\xbc\x5d\x10\x50\x2f\x3f\xe0\xa7\xef\xf1\xcb\x76\x03\x65\x91\x3e\x43\x78\xfc\xb9\x5a\xb5\x27\x1e\x02\xed\x9a\xb2\x25\x91\x23\x21\x22\x76\x11\xb5\x62\x3a\x91\xf7\x33\xf9\xf3\x5a\x48\xa6\xca\x1c\x7f\x82\x6b\xbe\x51\x33\xd3\x52\xaf\x05\xa4\xa9\x1e\xb1\x47\xc1\x36\x7c\x8b\x6a\x33\xdc\x09\x5c\xb6\x14\x58\x32\x70\x8a\x98\xaf\xd3\x44\x1a\x69\x91\x25\x36\x2e\xa1\x3e\xf5\xcf\x71\xe3\xb2\x44\x87\xfc\x70\x1e\xe2\x5d\xe7\x69\x05\x9f\x07\xa6\x32\x8f\x9b\xb4\x00\x21\x92\xdc\x90\x54\x56\xa9\xfb\x32\xf3\x94\xa8\xaf\xac\x73\x12\x86\xfb\x41\x25\x31\x8b\xcb\x2c\x4d\x22\x27\x77\x1f\x55\xde\xc9\xfb\x8c\x01\x34\xfd\x4f\x9d\x7a\x58\xd8\xae\x8e\xb5\x44\xe7\x04\x48\xba\x1d\x0c\xd0\x2f\xcc\x81\xcd\x12\x19\xa5\x25\xa4\x99\x2b\xb5\xc8\x8f\x5c\xea\x68\x17\xeb\xf7\xdb\x27\xc9\xf6\x24\x9c\x87\x87\xb5\x85\x41\xe7\xa9\x5a\x25\x11\x4f\x43\x70\xb3\x47\x45\x38\x16\x5e\xbb\xed\x29\x99\x30\xc4\x41\xd8\x06\x75\x12\x69\x65\xb9\x00\x22\xe8\x39\x88\xf2\x39\x89\xbb\x43\xda\xbd\x64\xe6\x82\x8e\xed\x0a\x39\x72\xad\x7b\xc1\x9e\x70\xbe\x6e\x9b\x89\x0d\x54\x4c\x4c\xe1\xcf\xd4\xa3\x14\x39\x68\xb0\x00\xfb\x30\x3d\x95\x0a\x74\x13\x97\x9d\xcd\xe1\x93\x6d\x76\xc2\xa5\x03\x62\x63\xe4\xec\x2a\x79\x10\xf2\xf3\x93\x9a\x07\x15\x44\x3c\x5a\x8b\xb9\xd5\xcb\x9f\x5b\x64\xb9\x03\x60\xa0\xb0\xb2\x69\x52\x42\x51\xea\xdc\x9b\x70\x75\xc2\x16\x37\x65\x17\x3a\x12\x77\x44\x64\x99\x46\xcc\x63\x11\xdd\x7f\x76\xd1\xec\x41\x56\xb6\x21\x8c\xb3\x77\x22\xba\x67\x77\xd7\x53\x8c\x06\x4e\x0a\x66\x44\x81\x5e\xfb\xb4\x4f\x9d\x77\xb7\x82\xaf\x5e\x80\xc2\xaa\x6f\xde\x2a\x9f\xaa\xc0\x65\xeb\x33\x0d\x22\x40\x14\xc4\x4b\x1a\x21\x49\xb1\x34\x00\x04\xe3\x85\xcd\x66\x04\x86\x78\xa6\x37\x90\xbc\xa8\x2c\x82\x8c\x7f\x29\x5f\x88\xb4\x83\xb8\x33\x53\xf1\xdc\xfa\x49\x0e\x05\xf3\x34\xca\xb2\x76\x0c\xf2\x3a\xda\x38\x06\x6e\x34\xd6\x5b\x7a\x91\xdd\x7f\xa3\x03\x7a\x0d\x15\xf2\x87\xc3\xbd\x9e\x6b\x08\xef\x5e\x26\x2b\xeb\x6d\x4b\x96\x94\x62\x09\x03\xfa\x8d\x1e\x0c\xf2\xd2\x94\x74\xa5\x62\x82\xe9\x39\x2e\x3c\xa3\x05\x09\xb2\x9e\x78\x5c\x45\xd8\x04\x8b\x03\x84\x7a\xcd\x8e\x10\x3c\x66\x6a\x49\xd6\xc4\x2c\x4b\x13\x60\x86\x8e\x91\x84\x1e\xd8\x33\x74\x15\x1d\x1f\x96\x66\x1b\x1b\x90\x7c\x5c\x59\x20\x5e\x57\x32\x5e\x10\x18\x18\xc1\x30\x07\x36\xb8\xf9\x03\xef\x26\x53\x7b\xf1\x8c\x69\x1d\xed\x71\xde\xe4\x2a\x25\x6c\x85\xb4\x8f\x6c\x05\x78\xac\xdb\x80\xfc\x88\xa7\x51\x49\x7e\x32\x48\x97\x6f\xb3\xe0\xef\x46\x10\x7a\xaf\x9f\x99\xe8\xaa\xd5\xbf\xae\x64\x1e\x9a\x5d\xd1\x05\x68\x3d\xd5\xa6\xb0\xdb\xbc\xb8\x4a\xd5\x02\x56\x4e\x37\x4a\x70\xc7\x89\x65\xc4\x75\x9e\xc4\x43\xf4\x1d\x3b\x26\x97\xee\xd3\x5d\x0d\xbc\xb4\xa6\x1f\x57\x93\x5d\xf7\x8c\x12\x19\xd4\x98\x1b\x87\x51\x20\x2c\x29\xab\x6a\xf5\x7a\x52\x50\x1a\x0f\x58\x56\xee\x7c\xea\xb0\x33\x54\xfb\x72\xd0\x44\x37\x99\x62\xf6\x8c\xa5\x27\x97\xd9\x3d\xc9\x07\xd0\x7d\xa0\x28\x73\x9c\x1f\xdd\x96\x45\x19\x8b\x78\xfe\x84\x3e\x9c\xd1\xb7\xfd\xfa\xe2\x46\x1a\x9b\x07\x36\x40\x79\x64\x54\x85\x98\xe7\xb1\xef\xc7\x08\xf6\x7b\xc4\x33\x30\xc3\x83\x5b\xe3\xe1\xed\xd8\xd6\x71\xed\xa3\x8b\x8c\xbc\xc4\x98\x7f\xc4\x6f\xab\x96\x1c\x38\xfb\xd6\x91\x5b\xa4\x08\xef\x36\x2b\xc7\x2f\xd7\x4a\xdc\x4d\xaf\xb5\x5b\x5f\x61\x56\x80\x1f\xb2\xb8\x5e\x42\x76\x94\x85\xf2\xde\x1e\xe8\xcf\x14\x68\x87\xc3\x88\x3e\x10\x90\xd3\xb8\x03\x29\x62\xd5\x6f\x2b\x84\x06\xe0\x8f\x07\x21\xa0\xb3\x5c\x58\xbf\xe1\x56\x14\x8e\xd7\x21\xb5\x79\x05\xc1\x2d\xe6\x7a\x5d\x25\xb6\xb1\xdc\x15\x8e\x8c\x0c\x9c\x58\xa4\xea\x47\x6a\x93\x29\x09\xb0\x24\x8c\x52\x9b\x49\x2a\xdc\x66\x87\x77\x9e\xb5\x4a\xa8\xe3\x88\x0c\x9a\x18\x38\x23\xb4\x4a\x1f\xc8\x85\x1a\x24\x31\x81\xbc\x92\xa6\x81\xa7\xe6\x6e\xa8\x72\x24\xd8\xb2\x27\x3b\x44\x02\xd4\x52\xa4\xe7\x62\x95\xe8\x42\x84\xd1\xa1\xe1\xf7\xcf\x96\xcd\xb6\x62\x3c\xd9\x35\xf4\x9d\xd9\x6c\xf7\xdd\x82\x8c\x7c\x1a\xd0\x9e\x6d\x26\xe2\xa9\xfb\x6e\xf7\x62\xa8\x05\xf0\x7b\x71\x58\x39\xef\x70\x0d\xe0\xed\x4f\x23\xd5\x97\x76\xe9\x47\xdc\x24\x11\x09\x13\xf7\x80\x46\x33\x45\xab\x92\xe7\x5c\x16\x42\xe8\x99\x24\xc7\x33\x52\xd6\x85\xac\x2c\x35\x20\xa4\xbb\xdb\x44\x4a\x17\xc8\x00\x05\x9f\x2c\x79\x92\x96\x79\xa7\xb9\x01\x57\xe5\x93\x68\x27\x76\x8d\xd2\x29\x14\xcb\xda\x26\xcd\x05\x30\x07\xbb\xc8\xb1\xa6\xd4\xdd\xc6\xd5\xf8\xde\x8e\x2e\xd8\xc3\xa5\xff\x7c\x3b\x5b\x73\x47\x4c\xf3\x37\x7a\x9e\xa9\x01\x12\xef\xc7\x6f\xf4\x95\xea\x88\x06\xd7\xbf\x34\x6c\xa2\x3b\xe0\x13\xbf\x74\x25\x64\xe1\xfa\x1e\x3c\x8f\xfb\x4c\x31\xbd\xd8\x38\xf7\xfa\x27\x3b\x65\x17\xac\xda\x35\x97\x71\x6a\x54\x5e\x5e\xd4\x79\xaf\x1d\xce\xdb\x5c\x89\x0a\x2b\x1c\xbb\x83\xfa\x20\x46\x66\x1e\x35\x02\x2c\xf7\x8d\x53\x2d\x32\x73\x27\x96\xb2\x56\x4b\x35\x5e\xb2\x2d\x4e\xc7\xeb\x30\x94\x06\xd9\x6d\xd8\x5f\x5d\x7f\x39\x0b\xdb\xfe\x99\xd4\x97\xea\x5e\x5b\x26\xab\xdf\x80\x21\xe1\x43\xf3\x48\x88\x48\xe6\xd0\x41\xed\xa2\x1b\x0e\x94\x3a\x10\x48\x66\xa4\x76\xc8\x38\x3e\x93\x94\x0e\x1e\xd1\x05\xe0\x56\x46\xbe\x35\xcd\xde\xba\xe8\xe2\xb7\xbf\xb3\x6c\x5b\x5b\xb6\x84\x45\x05\x94\x76\x2a\x8a\xca\x1c\x5c\xff\x64\x9e\x64\x02\x0f\x61\x3d\x88\x48\x06\x54\x0f\x07\xd8\x42\x3d\xb1\x4d\x4d\x72\xf6\xe8\x4a\xa7\x6e\xc1\x0c\x89\x89\xed\xdd\xa1\x4f\xf9\xca\x72\x5d\x30\x5d\x88\xac\x55\xfc\x56\xb4\xcb\x6d\x26\x26\x52\xaa\xa2\x1e\x9f\x32\x58\xbf\xe4\xae\x94\x9e\x5b\x67\xc0\x61\x34\x09\x4c\x46\x7f\xb8\xb9\xbc\x60\x19\xdf\x02\xf6\xb1\x50\x0c\x5f\x05\xc2\xd1\xba\xa0\xda\x37\x03\xd5\xce\x57\xa5\x0a\x8e\xa9\x05\x51\xb7\xfb\x27\xa8\xc6\xa6\xb2\x08\x6b\x86\x96\xa4\x91\x59\xb9\x4a\x8f\xb2\x94\xcb\x00\xde\xae\xc7\xac\x56\x7d\x88\x67\x70\x9e\x4d\x42\x8c\x41\x03\xc0\x5e\x41\x6b\x21\x2f\x5b\x01\xd0\xc0\xbb\x63\x17\xd4\x61\x10\x86\x4e\x19\xb1\x13\xd8\xf9\x01\xb3\xc0\x60\x4e\x04\x64\xcf\xb0\xb0\x0c\x87\xec\xe1\x1a\x40\xb7\x9d\x0c\xe0\x3c\x4a\xb9\xd6\x3b\x51\x3a\x2f\x42\x25\x1f\x44\x2d\xee\x17\x5f\xd5\x76\x22\x8c\x10\xb8\x4d\xf0\x5e\xea\x1e\x03\x5b\x82\x15\x5d\x3e\xe9\x5b\xa0\xef\x07\xd9\x20\x08\xfa\x40\x7c\x51\xf0\x3d\x32\x41\xde\x8b\xad\xb5\x70\x91\xa8\xe2\x1b\x31\x72\xc6\x56\x67\x4d\x0c\x40\x7f\xcd\x82\x67\x12\x50\xb1\xef\xc3\xe6\xb1\xf7\x4a\x8d\x10\x9f\x49\x95\x73\x2c\x96\x87\x08\xa7\x99\x7c\xaf\xd4\x98\xbb\x4b\x2c\xb5\x9f\xc4\x4d\xbd\x42\x42\x45\x01\xe6\xb0\x36\x9d\xfd\xf7\xe6\x0f\x89\xc4\xf4\x84\xc9\xc6\x5c\xa0\x68\x9c\x60\x45\x41\x83\x6c\x36\x7c\xf5\xa8\x59\x8c\x94\x32\x65\xa2\xd7\xe0\x76\x41\x3f\x27\xd4\x4f\x47\x0a\x02\xb2\x72\x2e\xb5\xd9\xc3\xe0\xaa\x11\x0f\x82\xec\xb5\x15\x8c\xc1\xf4\xdd\xb9\x83\x2d\xe1\xbe\xa4\xd4\x1d\x1d\xbb\x2d\xb8\x74\x1c\x72\x39\x07\xb8\xf9\x00\x42\x3b\x32\x70\x7e\xe0\xd9\xae\x60\xd8\x83\x4b\xdc\x37\x4b\x8e\x50\xab\x7e\xa3\x82\x4c\xe6\x90\xc3\xb0\x12\x11\x1b\x8e\xde\x9d\x3c\xf0\xc4\x69\xe5\xb4\xdf\x9f\x72\xa7\xb7\x81\x61\xa0\xa8\xd8\x7f\xdc\x04\xdc\x96\x0e\x32\xe8\xee\x82\x46\xb0\x43\x86\x38\x20\xe5\xc3\x2d\x3d\x66\x37\x42\xb0\x8f\x30\x52\xa6\xb2\x8f\x94\x81\x14\x50\xd0\x05\x4f\x5a\x13\xc4\xc1\xdb\x53\xb9\x54\x87\xc9\xff\x7c\xd5\x40\xd9\x1e\x34\x2a\xed\xed\x3c\x14\xc7\x0b\x96\x7e\xf9\xb2\xb4\x22\xbd\x0e\x86\xda\x5c\x5f\x79\x7b\x13\x05\x1b\xdb\x96\x1a\x95\x0c\xa6\xf8\x29\xc4\x75\xb5\x45\x62\x7a\x39\x42\x32\xf6\x7b\xa9\x1e\x25\xca\x63\xaa\x89\xbd\x36\xfb\x0f\x74\x16\xf4\x0b\xa1\x26\x58\xa2\x34\x7c\x03\xec\xf0\x13\xf7\x37\xbb\x41\x17\x38\xb6\x19\x52\x87\x69\xd0\x77\x29\xe9\x17\x1c\xe0\xaf\x27\x23\xf6\xdd\x88\x9d\x8e\xd8\x78\x3c\x7e\x33\x62\x82\x47\x6b\xdb\x22\xfc\x04\x45\x7f\xc1\x57\xa6\x6c\x4a\xfb\xb3\x0c\x2a\x80\xf4\x80\x46\x3f\xb1\x24\x88\xdc\xbf\x15\x58\xd5\x6c\x17\x30\x34\x9b\xe2\xc8\x08\x2e\x14\xad\x55\xe2\x1b\x05\xc8\x73\x11\xa9\xdc\x62\xd7\x75\xa1\x72\x8b\xc3\x7d\xe0\x39\x4f\x24\x30\x56\xf0\x66\x14\x02\xd5\x1c\x70\xd6\x8b\x4f\x7c\x03\xfd\x4f\xa4\xa3\xed\x35\xc3\x74\xeb\xda\x5f\x6c\x33\xf2\xb3\x3d\xe6\x49\x51\x18\x85\x4c\xcf\xe4\x0d\x3b\xf9\x96\x4d\xb2\x2c\x15\x6c\xc2\xfe\x8b\x7d\xc7\x25\x97\x9c\x7d\xc7\xfe\x8b\x9d\x72\x59\xf0\x54\x95\x99\x60\xa7\xec\xbf\xcc\xb0\x99\xf2\x2e\x94\xd1\x80\xb6\x23\xc6\x99\x2c\x53\x54\xf4\x5e\x5b\x8c\xeb\x1b\xd7\x2f\xee\x67\x67\x21\x8a\x47\x21\x24\xd3\x6a\x43\x47\xe1\x9f\xdc\xe9\xaf\x13\xb9\x4a\x45\x41\xeb\xa1\x8a\x46\xc6\x0a\x8e\xa0\xa7\x27\x33\xe9\xec\xd4\x7f\x32\x2d\xfe\x13\xfb\x2f\x76\x51\xa6\xa9\x69\x92\x11\x34\x66\x21\x9d\x30\x1b\x1d\x26\xe4\xf8\x31\xb9\x4f\x32\x11\x27\x1c\xe2\xc3\xcc\x5f\xc7\xb7\x30\xdb\xf3\xd2\x53\x81\x86\x7b\xda\xa5\x63\x3b\x44\xf4\xbc\x08\xd7\x84\x4b\x16\x18\x6a\x2b\x9d\x20\x94\xf0\xd3\xe1\x4a\xb0\x27\x40\xa6\xfd\x40\x77\x14\x4c\xa5\x17\x3a\x28\xdb\xeb\x77\x59\xbf\x32\xf3\xaf\x56\xfa\x8f\x5e\xd9\xbf\x76\x8d\x87\x6f\x23\x28\xa7\x38\x39\x3e\x38\x13\x2e\x32\x10\x4b\x88\xfb\x6e\x0b\x29\x3f\x6c\xd9\x78\xed\x44\xf7\xb6\xb9\x4a\xa3\x36\x5a\xf0\xd5\x88\x65\x2e\x8f\x94\xdd\x54\xce\xb1\x8d\xfb\x18\x73\x26\x90\xb2\xf9\xda\x02\x88\xcc\x5a\xa6\xf8\xc3\xe3\x58\x6d\x78\x22\xdf\x40\x1d\x96\x3a\x6f\xcf\x40\xb5\x5c\x57\xf6\x8f\xd0\x2d\xdf\x89\x66\xec\xa6\xf6\xaf\x2a\x3b\xb5\x14\x6e\x6d\xdb\xe1\xc0\x1c\x66\x3e\xc3\xe9\x67\xbc\x0e\xfd\xd4\x58\xa2\xbd\x73\x1f\x50\xbe\xb1\x0a\x7b\x0a\xe8\xf2\x9e\x41\xae\x97\x6f\xdd\x65\x2e\xfb\xa9\x9a\xe2\xb5\x32\xc4\x2a\xe9\x95\x0b\xb7\xd6\xd8\x3b\xba\x89\x61\xdc\xb3\x11\x93\x49\x7a\x6c\x44\xe5\xf1\x85\x92\x82\x71\xad\x93\x15\xb2\xde\x81\x41\x0d\x93\xc8\x5a\xa5\xec\xb6\x7a\x65\x08\x44\x10\xe8\x67\xa6\x49\x88\x98\x2e\x8c\x14\x36\x53\x90\x6e\x67\xd2\x7c\x41\x1a\x01\x44\x4f\x25\x8e\x1c\x1d\x6b\x23\xee\x71\x5b\x17\x1d\x88\x41\xe1\x2d\x0b\x6c\x17\x35\xc3\x01\x0b\x8e\x76\xe2\x01\x1e\xb7\x8b\x80\x18\x94\x4a\xb3\xac\x51\x08\xa7\x59\x88\x54\xc9\x95\x59\x15\x5d\x42\x18\xa4\xc0\x33\x35\x01\x0b\xeb\x6c\x81\x51\x56\xe8\x15\x9a\x12\xa3\xa7\x24\xb1\x37\xa9\xe9\x72\x61\xf4\x38\xe7\xed\x71\xda\x08\x75\xae\x8b\xa7\xe2\x30\xd8\xd2\x9d\x91\xc1\x2a\xb7\xc0\x39\xe7\x49\x44\xc5\xc5\x73\x38\x61\x8f\xba\x10\x1a\xf9\x20\x53\x4e\x87\x67\x7b\xc4\x54\x8e\xf4\x9d\xd6\x83\xed\xf8\xb7\x9a\xb5\x77\x6f\xe9\x9d\xd1\x1e\xed\xb6\x4f\xf2\x93\x36\xf8\x42\x7a\xec\x86\x5f\x33\xf0\xa3\x4f\x38\xc8\xfb\xc9\xf4\xbc\xf6\x5e\x33\x1c\xa4\x25\x66\xe4\x76\xfa\xe1\xec\xdd\xfc\xf2\xee\xb6\xf1\x9e\x29\x8d\x7e\xda\x13\x11\xd2\x39\x7a\xcf\x81\x89\xff\x05\x73\x98\xcd\xd5\xd2\xd2\x03\xf4\x3f\x9e\x1b\x59\xe4\xfa\x41\x2f\x8b\xe0\x76\x1d\x66\x5b\x6b\x2e\x9c\x4e\x92\x13\x39\x27\x5f\x6b\xbf\xc6\xd6\x07\xec\x52\xbe\xc7\xcf\xaf\x54\x9a\x44\xbb\x91\xdc\xf6\xb0\x34\x5a\x55\x13\x1a\xbb\x10\x10\xda\x40\x06\x5f\x6a\x14\xde\xcf\x0a\x11\x15\x1e\x4b\xd0\xec\xdc\xff\xd3\xe8\xd1\xfd\x16\x18\xb4\xc3\xba\x61\x83\xe4\xe4\x0e\x9d\x00\x27\x3b\xb0\x46\x43\xb2\x14\xd4\x72\xc1\xb2\x0b\x32\x2f\xe2\xe4\x73\xaa\x8c\x3c\x1c\x0f\x8f\x6b\x95\x92\x3d\x16\x19\xb8\x67\x32\x13\x79\xa4\x00\x75\x89\xe4\x2e\x8a\x45\xeb\x24\x8d\x7d\x46\xb2\xd7\x10\xa6\x02\x60\xf2\x37\x94\x5c\x57\x38\xf4\x8c\x2d\x7e\xc7\x99\x6f\x97\xdd\x3b\xdc\xdd\x07\x21\xcf\x9e\x13\x77\xbe\x6b\xd9\xff\x4c\xf8\x68\x1c\x0a\xe2\xcc\xab\xe1\x20\x40\xed\x0f\xdb\x33\xc8\xa5\x63\x0e\x7b\x4a\x36\x15\xf9\x6b\x73\x51\x9b\x57\x5a\x66\xf5\xa1\x04\x26\x75\xb4\xa3\x23\x08\x50\x0b\x68\xce\x46\x70\xd4\x04\x3d\xaf\x31\x4d\xea\x4c\x7a\xe4\xc7\x2b\x1d\x6a\x85\xad\xf3\x8c\xd6\x77\x8b\x6c\x1f\xb1\x57\x95\x8e\xbe\x02\xa6\x6d\xa9\xa0\x3e\xf2\xce\x57\x86\x06\x96\xeb\x88\x25\xc5\x4c\x9a\x3b\x9b\x59\x99\xb9\x48\xc5\x83\x69\x5d\xe8\x1d\x22\xbc\xa2\xb5\x9c\xd8\x6e\x43\x70\x14\xb7\x9c\x1a\xb4\x6c\x68\x13\xe6\x21\x63\x33\xba\xa5\x63\xa1\x8d\xd6\x0a\xb9\xa6\xc4\x27\xb3\x01\x12\x70\x7e\x22\xb0\x2d\x16\xd2\xb6\x0f\xf0\x6e\x98\xe7\x7f\x26\xa7\x4b\x20\x36\x00\x3a\x85\x38\x46\x1b\x84\xcd\x3e\xe4\xe8\x33\x13\xf2\x06\x29\xb2\xc8\xd8\x89\xa0\xdc\xd0\xb8\x93\xc4\x83\xc8\xb7\x05\x98\xf4\x61\x5c\xa5\xe0\xc5\x9a\x25\xc5\x08\x78\x4f\xad\xa4\x9c\x49\x1e\xc7\x14\x0f\x8e\xc5\x05\xd7\xd9\xce\x79\xa6\xe7\x0b\xf5\xb0\x4b\xad\x3e\x14\xb9\x8b\xbb\x3a\x4b\xb9\x9c\xe3\x09\xf2\x2b\x60\x77\x83\xb4\xdd\x5d\x20\x8e\x72\x31\x77\x5c\x6d\xcf\xd2\x4e\x27\xef\xaf\x2d\x74\x99\xae\x36\xe5\xc2\x56\x34\xaa\x40\xb3\x17\x9e\xd6\xc3\x59\xe9\x08\x37\x95\x33\x8b\x2d\xe9\x2f\x05\x3c\xac\x97\xd7\x30\x56\x76\xb5\xee\xc3\xf5\xda\x15\xf0\x5b\x45\x5e\xf6\x99\xf9\xda\x19\x52\x9f\xf6\xe1\xa0\xbf\x86\x86\xf8\x24\xe0\xdf\x9e\x66\xbd\x2c\xf8\xaf\xd3\x8a\xd3\x04\x01\xda\xde\x06\xfe\x7d\x0a\x1d\x40\x2b\xac\x33\xa0\xb5\xa7\x65\x0f\x6f\x81\xaa\x05\x1f\xff\x9c\x1e\x0a\x90\x53\x7d\xed\x34\x9e\x50\x04\xda\x35\x66\x53\xc9\xac\xba\x37\x62\xaf\x70\x61\xe9\x57\x64\x80\xa6\xdc\xfe\x04\x96\x89\x69\xf7\x10\x05\x43\x1d\x64\x86\x81\x70\x7e\xbb\xa1\x1f\x70\x27\x5f\xef\x8b\x8e\xcb\x77\x09\x04\xe2\x3d\x85\x6b\x05\x7d\xc8\x0b\x2c\xc0\xc6\x91\x04\xa6\x50\xea\x2e\xf8\x32\x7c\x87\xad\xb7\x93\x7d\x67\x3f\x34\x43\x94\x95\x74\x9e\xda\xe7\x4c\xe5\x33\x69\x4b\x23\x83\xb4\xc6\x04\x81\xf5\xa2\x82\xb8\x20\xd2\xf9\x83\x95\x0a\x50\x00\x9b\x13\x12\x52\x8d\x7a\x52\xf1\xba\x14\x00\x14\xd4\xc2\x21\x50\x21\x0b\x85\xaf\xcd\x28\x1e\x66\x81\x6f\xf0\x98\xaf\x13\x0f\xa7\xa9\x19\x94\xa4\xb0\x3c\xc7\x41\xcc\x9e\x2e\x81\xad\x7b\x59\x1a\x61\x14\x50\x9a\xcf\xa4\x19\x3c\xb6\x4c\x20\x76\x83\xc6\x65\x26\x3f\x28\x6d\x29\x62\xb4\x1f\x0f\x0b\x2c\xa0\x61\x7b\xe5\x52\x63\xd2\x0f\xef\xe0\xd0\x26\x8f\x0f\x92\xbd\xb9\xa3\x05\x82\x35\x89\xe7\x69\xab\xca\xdc\x77\x2a\xe2\x72\x26\xff\x6a\x86\x07\xae\x53\x5c\xda\x69\x55\x4b\xdc\xc2\x30\x83\xe0\x2a\xfb\x88\x85\xbe\xfe\xdd\x9b\x8f\x6f\x30\xb8\xaa\xd4\x90\x8d\x78\x54\x3d\x40\x5c\x76\x8b\x32\x4d\x01\x87\x60\x7b\xe0\x18\x96\x7c\x15\x3b\x71\x78\x74\xa9\x9b\xcb\xaa\x8a\xd1\x67\xa3\xf7\x33\xeb\x4f\x58\xc4\x8b\x68\x7d\x64\x75\x39\x12\x63\xf6\xf4\xa3\xe9\xc3\x28\x28\xa3\x69\xb1\xd6\x04\x0f\xe6\xc2\x99\x6f\x1c\xe5\x6c\x65\xbd\x98\x2e\x80\xf9\xff\xb6\x9e\xed\xcc\x31\x62\xe3\xe2\x44\x1c\x50\x55\xcf\x73\xaf\xdb\x5c\xa3\xfe\xc6\x49\x3e\x12\xc9\x37\x22\x66\xaf\x20\x0c\xf8\x95\x9d\xfc\x99\xcc\x16\xe3\x74\xbb\x2c\x88\xb7\xd0\x0c\xca\x18\xb2\xf2\xed\x39\xe5\xe6\x71\xf3\x9a\xb4\x67\xb0\x3b\x2f\x5a\xed\xba\x8e\x1b\x1b\x57\x53\x7f\x85\x05\x6d\x5c\x6e\x74\x6e\xaa\x98\xc0\x6a\x7a\x10\xae\xef\x47\x6c\x91\x73\x09\x09\x95\xe2\x50\xa9\xf2\xbb\x13\x2e\xcf\x48\x0a\x68\xe3\x02\x25\x4f\xb7\x10\xff\x33\x9a\x49\x64\x50\x04\xaa\xfd\x6d\x94\x26\x11\x5b\xe5\x3c\x5b\xd7\xf4\x20\xf1\x20\x64\x01\x79\xb9\xaf\x05\xd7\x87\x61\x35\xf2\x7a\x09\xac\xb7\x37\x6d\x22\xe1\xf6\xc1\x65\x8d\xf3\x1a\x9a\xd7\x71\xb4\x00\x3e\x53\xc4\xf3\x61\x7c\x57\x7b\x59\x99\x2b\x5c\x9f\x44\x3c\x07\xfe\x67\xd3\x39\x66\x6b\xdd\x07\x7e\xc0\x71\x25\x2a\x26\x8b\xe8\x3d\x14\xb0\xe1\xa8\x9d\x0e\x22\xe8\x9d\x56\xb5\x48\xee\x39\xab\xbc\xdd\x9c\xdc\x7e\x68\xa9\xb0\x61\x10\x4e\x70\x8c\x28\x6f\x2a\x90\x77\xb2\x3f\x96\x0b\x95\x5a\xf6\xd3\xe9\x3b\xa6\x72\x48\x3c\x54\x28\xfa\x29\x89\xbb\xb4\x83\x44\xc6\xe2\xd3\x41\x14\x44\xbb\x0f\x7a\xab\x36\x9b\x6a\x82\xfc\x36\xf5\xce\x82\x74\xca\x85\x39\x84\x0b\x7b\x33\x6e\xbc\xa5\xeb\x50\xe5\x49\x5a\xac\x01\x3f\x8c\x21\x3a\x7e\x50\x37\x7c\xcb\xa2\x35\x97\xab\xc0\x34\x01\x70\x4e\x91\xa9\x1c\x13\xf4\x3e\x00\xd7\xa7\xca\x2d\xc5\x03\x11\x17\x50\x9c\x90\x73\x63\x20\x3c\x5f\x59\x76\x02\xbe\x5a\xe5\x62\x05\x61\xac\x33\x59\xa1\x5e\x01\x9e\x53\x9b\x1b\x08\xeb\xd9\xc5\x5c\xf1\x3c\xf4\x4f\x5d\xb7\xc1\x22\xdf\xba\xb8\x7f\xca\x6e\xed\xf7\x73\x7d\x58\x47\x2c\x11\xe3\x11\xfb\xca\x87\x24\x88\x48\x49\x47\x1c\xd0\x11\x35\x5e\x33\xf9\xb3\x3d\x57\x87\x26\x4f\x54\x7b\xdb\xe1\x59\x23\x47\x76\xeb\xa2\xd9\xc9\xbc\x50\xf0\xa2\x1c\x70\x06\x9d\xf2\x82\xa7\x6a\x75\x6a\x3e\xbe\xc1\x6f\x77\xad\xeb\x53\x8c\x17\xb0\x1c\x7d\xe6\x7d\x73\x72\x9a\xba\x3d\x87\x7f\xdb\x58\xef\x35\x20\xa7\xaa\xdb\x80\xfc\x1c\xaa\xba\x25\x62\xda\x6f\x43\x4e\x3b\xc8\x85\x76\xf4\x69\xa8\x89\xd8\xa2\xfa\x29\x30\x49\xd7\xaf\xb1\x2d\x12\x20\xcb\x55\x5c\x46\x22\x36\x3b\x17\xee\x43\x88\x87\x72\x1c\x47\x15\x21\xd9\x76\xd0\x56\x88\xda\xe0\xd4\xfd\x5c\x36\x87\x5e\xdc\xf8\x6e\xf8\xef\x3a\xec\x0d\x56\xe3\x6b\x1b\xf4\x70\x7f\xe2\x38\xe5\x03\xcf\x29\x57\x7d\x95\xd1\x5e\xe5\xc9\x2a\x91\xbc\x50\x39\x7b\xed\x98\x0c\xde\xb8\x34\x78\xdd\x1a\xc2\x40\x31\x51\x19\x22\x14\x13\x9f\x55\xf1\x68\x5b\xa4\xe6\x2d\x5d\xf0\x4d\x16\x72\x44\x83\x15\x38\x18\x99\x14\x07\xc1\xe9\x26\x60\x3b\x4d\xb4\x8f\xda\x9d\x49\xf2\x38\xe0\xbc\xa9\x3c\x4c\x72\xd0\x79\x36\x67\x65\x31\x7f\x22\xef\x19\x7e\x3c\xcc\xf0\x44\x20\x88\x0f\x3c\xdb\xcd\x24\xc5\xc9\xe4\x80\x61\x8b\x64\x8e\xf0\x9a\x4a\x75\x7d\xee\x4e\x23\x34\x90\xd9\xba\xee\xb8\xbf\x3e\xb7\x8e\x22\x7f\x1f\xac\x5c\xb0\x60\x22\x90\x52\x17\xc3\xc0\xf0\x6a\xef\xc4\x9a\x39\xc5\x2d\xfd\xd4\x69\xaa\xca\x98\x91\x50\x23\x10\x40\x3e\xc6\xd3\x11\x38\xae\xc7\xe3\xae\xb0\xb6\x81\xe9\xcd\x9d\xfc\x81\xef\xda\x77\x20\x3c\xeb\x90\xc0\x3b\xb7\x3e\x8d\xec\x8b\x4d\x3d\x8d\x34\xcc\xbd\x13\xc7\x83\xe6\xde\x59\xc1\x81\x70\x73\x98\x81\x14\xee\xa3\x49\x9c\xc2\x7e\x0b\x1d\x08\x2d\x94\xe0\x15\xc7\xac\xbe\x3f\xb8\x3a\xcb\x42\xb1\xbb\xaa\x8c\xe7\x42\x16\x73\xa8\x71\x58\x65\x50\xc9\x15\x7c\x5e\x51\x98\x7a\x19\x82\xff\x7c\xab\xd0\xbe\x6f\xd9\xb5\xfe\xc2\x6e\xc8\xa6\x65\xe4\x55\x02\x10\x62\x7d\xcf\x5e\x27\x80\x78\x0a\x7c\xa1\x6e\xe2\x3a\xa6\x8b\x3a\xf4\x84\xd1\x0b\x3a\x54\x11\xed\xbd\x3a\xe4\x5b\x0f\xae\x6a\x28\x85\xcc\x7b\xc4\x09\x60\x44\xad\xfd\x2d\xc8\xb8\x71\x51\xf9\x1b\xd8\x91\xcd\xfc\xa5\xec\x6f\x22\x57\x3e\xfe\x0b\x8d\x55\x61\xc1\x3b\xf5\xf5\xa7\x27\x0b\x47\x7d\x1c\xd3\x54\x87\x79\x5a\xe1\x17\x22\x30\x43\x8b\xc2\x62\x6b\xaf\x23\x1d\x2e\xa4\x4c\x44\xf3\x8e\xa4\x3c\xbd\x9a\x12\x5c\x3c\xc3\x24\x3b\x49\xed\x30\xb3\x1b\xf4\x18\xec\x15\x14\x58\xb5\xe1\x19\xa1\x0b\x09\x48\x5e\x77\xde\x8c\xa1\x13\x7f\xfe\xd3\x5f\xc6\x49\x47\x88\x37\x34\x7d\x28\x58\xcb\x35\xfe\x7d\x9e\x08\x19\x83\x33\x96\xc7\xcd\x7c\x71\xb2\x62\x9d\xaf\x88\x67\xb3\x0c\x9f\x25\x1e\xbc\xfd\xa8\xd5\x73\x5c\x44\x9f\xc1\xa3\xef\x85\xac\xdb\xbe\x15\x7f\x5f\x97\x2a\xa1\xe7\xf1\x56\xf2\x4d\x12\x7d\xd6\x36\x6e\x13\x91\xc6\xd0\x44\xaa\x7d\x9f\x57\x2a\x16\xd1\xfd\x50\x9d\xe0\xc9\xd9\x2e\x44\x74\xcf\x7e\xb8\xfd\x70\x8e\xc9\x8d\x13\x3d\x93\x17\xbc\x48\x1e\xc4\x5d\x9e\x3a\x77\x00\x81\xb4\xf3\xd4\xee\x91\x2a\xfb\x7a\xc0\xf4\x65\xa9\xda\xad\xe2\x10\x26\xc7\xd8\x6c\x8f\x16\x65\x74\x2f\x8a\xe3\x9c\xcb\x58\x6d\xb0\x1b\xc7\xba\x5c\x2e\x93\x4f\xe3\x82\xe7\x1d\x99\x32\xd0\x8e\xf0\x2b\xea\xb9\x3e\xff\x59\xe1\x75\x5e\x54\x75\x1f\x21\xcc\x9b\xb2\xea\x57\x94\x5b\x8c\x4a\xe4\x1b\x01\x54\xa7\xac\x9a\x65\x06\x4a\xc1\xc8\x69\x48\xc6\xaa\x35\xc5\x4f\x28\x4a\xf5\xfe\x31\x50\xee\x3f\x06\xad\xf2\x2e\xec\xb0\x51\x3e\xc1\xe9\x86\xdf\xe3\xfd\x70\x95\x0b\xad\x47\x4c\x2b\x68\xf1\x4c\xda\x48\x04\x1b\x2d\x07\xb8\x17\x20\x4b\x4e\xb7\x2c\x52\x99\x83\xcc\x63\xbf\xd6\xea\x11\xec\xf4\x61\x9c\x30\xa4\xf0\x2e\x65\x91\xa4\x8c\x2f\x0b\x32\xe2\x43\x66\x08\x9b\x09\x4e\x8f\x67\x12\x5c\xb1\x11\x74\x1f\x20\x12\xce\xfd\xe2\x3a\xa1\xd9\x92\x47\x49\x9a\x14\xc4\x57\x07\x21\x66\xdc\xf4\xd7\x9c\x07\x66\x2c\x73\xbe\xe5\xa9\xbf\x58\xf1\xb4\xf4\xa1\xd1\x47\x5a\xec\xe0\x43\x4d\xf4\x1c\x0d\x04\x2f\xb7\xc1\x3d\x0a\x30\x09\x9d\x0f\xc8\x1d\x3f\x31\x95\x5f\xd4\x4e\xd1\x7f\x0a\xff\x5b\xb9\x87\xef\xd2\x0a\x0e\xb8\x90\x1f\x72\x38\x36\xaf\xdc\x2e\x7d\xba\xd7\x33\x92\xd8\xa2\x93\x2b\xaa\xb8\x0f\x3e\x76\xc7\x23\xf8\x4c\x3a\x2e\xfd\x63\x9b\xf4\xae\x59\xc3\x80\xd1\x6b\x57\x12\x3f\x93\x39\xa3\x8b\xd0\xbf\x4f\xf3\xad\x35\xfe\x4a\xa9\xf4\x50\x8b\x3c\x51\x72\x24\x4a\xce\x21\x0f\xf4\x21\xd7\x49\x5c\x00\xce\xb0\x35\x7d\xe7\x7c\xee\x8e\x21\xbf\x9a\x3d\x8e\xe0\x60\xd4\x04\x10\x64\xd0\x88\x1d\x38\x75\x9d\xb5\x80\x2e\x06\xe2\xed\xa1\x0c\x44\x6b\x59\xd5\xbe\xe9\x22\x08\xd8\x59\xb8\x6f\x23\xb0\x08\xd7\x5a\x38\xc8\x58\x87\x59\x9b\x6b\x55\x39\xc3\x5d\xc8\x36\xee\xc6\x31\xa8\xdb\x8e\xe7\x86\x4b\xb2\xfc\x91\x16\x3f\x93\x81\xc6\x8e\x8c\x78\x36\xa0\xc1\x8d\x5a\x9b\x3d\xaf\xb2\x0c\x0f\xb6\xe7\x1d\x92\x52\x62\xa7\xe4\x7c\x17\x26\x87\x04\x2c\x48\xa4\x36\x8b\x44\x5a\x4e\x0a\x32\x72\xc3\x55\x63\x62\x19\x7b\x9d\x43\xc2\x5e\x19\x30\x65\x50\x6d\xec\x9d\x9a\x13\x92\x1f\x87\x22\x6b\xdf\x75\x3c\xbc\xdf\x3d\x6f\xf6\x8b\x0e\x4f\x63\xbd\x07\xe6\x00\x49\x1f\xf9\x56\x43\x02\x75\x61\xa4\xe2\x12\x0d\xbb\xd5\xf6\x8f\x02\xf5\xc3\xb2\x41\xcf\x24\x8c\x10\xb2\x85\x59\x41\x6a\x24\x2b\x2c\xc0\xd4\xa6\x8a\xf7\x4c\x6f\xaf\x74\xfb\xe0\xfc\x3a\xbe\x9a\x7c\xa7\xaf\x06\x9d\xd0\xff\x3d\xdc\x33\x3b\x8c\xc0\x07\xda\xa2\x83\x63\x12\x35\x46\x82\x09\x41\xd8\x98\x73\x51\x8f\xd8\x86\x27\x92\xb6\x01\xa6\xe3\x8c\xc5\xa2\x5c\xad\x3a\x4d\xa4\xbf\x7d\x5f\x4b\x75\x9f\xfc\x8f\xb7\x85\xef\xe4\x2a\x7c\x0e\x6b\xf1\xd4\xd6\x84\xe6\x6b\x73\xef\xfb\x3c\x06\xe2\x5f\xd1\x1a\xdf\xea\x12\x6b\x2c\xa2\xe7\xb1\xc6\x4f\xfb\x58\xe3\x2d\xb6\x0b\x02\xfc\xe8\x3a\x6d\xf1\x37\xff\x30\xd3\x7f\x1e\x33\x7d\xaf\x45\x81\xa4\x3e\xf3\xa4\xaa\xa0\xef\x68\xe1\x13\x79\x2f\x1d\x15\x34\xb4\x0a\xb9\xe5\x8c\x74\x8f\x35\x5b\xf0\xe8\x05\x88\x30\xe1\x74\x3c\xdc\x1e\xb8\x07\xfc\x72\xa3\x36\x82\x41\x55\x1a\x13\x39\x31\x8a\x62\x1c\x01\x5a\xd5\x74\xd0\x23\x46\x08\x8f\x02\xc7\x29\x22\x57\x62\xaf\x54\xbf\x96\xe2\x91\x99\xd3\x6a\x14\xc2\xf7\x82\xe9\x81\x0c\x7f\x6f\x8c\x76\x58\xc1\xfa\x3b\xc2\x8e\x5c\xac\x78\x1e\x43\x84\x09\x6d\xc9\x94\x47\xf7\xe6\xdf\xd0\x3e\xaa\x91\x20\x86\x96\x2b\x00\x61\xaf\xbe\xb4\x44\x46\x48\x85\x68\x39\xdd\x5d\xfb\xf0\x73\xcd\x78\x94\x2b\x8d\x46\x23\x97\x18\x1b\xe2\xab\x41\x81\x7d\x48\xe2\x92\xa7\x58\x63\xa7\xa5\x7d\x28\x7c\xad\x0e\x38\x0a\x72\xd8\x35\xd1\x6c\x34\x1d\xc8\x50\x05\xc3\x38\x9e\xc9\x77\xce\x61\x72\xc2\xee\xb4\x20\x94\x99\xb6\x59\x00\x76\xb6\xf4\xc5\xd4\x87\x06\x26\xb0\x53\x87\xd8\x31\x00\x16\x64\x1d\x0c\x84\xee\x1e\x89\x3d\x74\xaa\x87\x4c\xca\x60\x5a\xe8\x69\x90\x48\xdf\x0f\x0b\xde\x13\x72\xc1\xe3\x6d\xc8\xc5\x98\x48\x06\x5e\x3a\xc6\xe3\x4d\x22\xcd\x26\xb0\xc9\x5a\xdd\x49\x63\xf3\x36\x20\xe4\x18\x72\x9a\xa5\x69\x4d\x08\x6a\x26\x85\x51\x2e\x79\x9e\xa4\x5b\xb8\x4f\x64\xb9\x38\x0a\xea\x09\xe6\x87\x22\x9e\x20\x03\x05\x91\xc8\x94\x5a\x2c\xcb\x14\x6f\x1d\x70\x2f\x77\x1d\x20\x89\x74\x37\x1d\x19\x85\xa3\xa0\x4c\x42\x41\xc5\x98\x9f\xf3\x39\xa2\x47\x1a\xde\xca\x61\x1e\x37\xcf\x15\x9a\x03\xc8\x7d\xad\x1e\x6d\xa8\xdb\x23\xf7\x58\xe6\xae\xd3\xf5\xd9\xbc\x2c\xbb\xf5\x50\x7b\x03\xb4\x72\x2a\x20\xfc\x73\xae\x35\x7a\x26\x62\x27\x9b\x12\x09\xdd\xa1\x14\xd7\xde\x72\x5d\x6a\x8c\x98\x33\x73\x09\xe7\x97\x35\x74\x54\x0d\xd7\xcc\xf5\x2e\xd1\x4a\xb2\x59\xf9\xe5\x97\x5f\x0b\xf6\x25\x84\x10\xd2\x7d\x04\xfd\x63\xc0\x16\x8a\xa5\x83\xc8\x76\x15\x08\xa4\x12\x6d\xcc\x08\x6b\x83\xa8\xda\x78\x7d\x00\x79\xf2\x68\xcd\x74\xb9\x40\x04\x23\x27\x17\x0b\x97\x8e\x75\xfc\x5c\x01\x18\x11\x4f\x76\xdb\xfa\xff\x47\x1c\x0a\x98\xf4\x65\x26\x33\x85\xc4\xf8\x00\xfd\x5c\x08\xb6\xe1\xf9\x3d\xe4\xf0\x45\xf3\x3c\x24\x02\x78\x9d\x88\x71\xd5\xbd\xf0\xa6\xd2\x1e\x72\xe8\x20\xe1\x35\xcb\x4b\x29\x6d\x52\x32\x66\x14\x53\x6f\xeb\x1f\xcd\xe4\xa2\x0c\xef\x9e\x15\x67\x81\x5f\x5a\xe0\x30\x00\x61\xab\x80\xa9\x84\x1a\xc5\xb5\x6f\xd7\x98\xf5\xf0\x1a\xcc\xe4\x33\xbb\x0d\xf6\x19\xfc\xae\x48\x07\xb3\xc6\xbc\x20\x5e\x01\xba\x1b\xe6\xcd\x86\xe9\xc0\x65\x0f\x4a\xce\x15\x24\xcf\x1e\xb1\x1f\x92\x07\x31\x62\x37\x19\xcf\xef\x47\xec\x1d\xba\xff\xfe\xa0\x16\x6d\x36\xbc\x06\xa1\xc4\xc1\x76\xbc\xa7\x99\xb1\x76\xd1\xbc\xb4\x6b\xff\x3f\x37\x88\x01\x58\x97\xef\xfb\xbf\x27\x22\xaf\x83\xeb\xe3\x7f\xba\x25\x62\x8f\x9b\xfa\x1f\xe0\xb5\xff\x91\xb7\xe2\xdd\x34\x1f\xff\x14\xfe\xd7\xca\x2f\xab\x71\x81\xee\x49\x52\xae\x15\x95\xf6\xdb\x0a\x6c\x4e\xe2\xfa\xa1\xdc\x8c\x6f\xee\xb7\x15\x28\x7c\x3c\x76\xa1\xed\x03\x40\xf7\xf4\xa9\x1d\xaf\xd3\x54\xe9\x32\xdf\xbd\xf9\xaf\xab\xad\xb6\xb5\xb7\x10\xbd\xc2\x62\xdb\x2c\x04\xb0\x16\xf4\x85\x9f\xe0\x6b\xf3\xbf\xaa\xc5\x1c\xb0\x56\x87\xed\xf0\xb6\xe2\x1c\x7d\xb4\x8a\x2a\x4d\xf5\x27\xe4\x4d\x26\x80\xef\xca\xab\xa2\xde\x21\x50\x5b\x61\xce\x34\x32\x93\x96\x71\x1f\x23\x66\xf3\x5c\x00\x35\x78\x2e\x20\xd1\x23\x23\x86\xc3\x74\x1b\x68\x44\xc1\xcd\xc7\x83\x62\xc2\x28\x37\x08\x56\xa5\xfb\xd6\x42\x08\xe9\x46\x7b\x88\x2a\x01\x34\xd8\xb5\xd1\x27\xb4\xdb\xa3\xb0\x89\x17\x3a\x92\xd2\x36\xbe\x0b\xee\x82\xa0\x72\xaf\x44\x11\x48\xf3\x9a\x6a\x51\xd9\x9a\x15\x0f\xd5\x6f\x0a\xf1\xdf\xea\x83\xae\x91\x73\x55\x0c\x28\xbd\x7c\x7a\xcf\x61\x2f\xbf\xe2\xc5\x1a\x2f\xb4\x1b\x55\x08\x94\x99\xc8\x12\x84\xeb\x05\xad\xce\x8b\x54\x2d\x20\xc3\x62\xb1\x83\x41\x32\xa2\xad\xdd\x6b\xe8\x9a\x13\xd6\x47\x32\x18\x69\x02\x91\xb6\xb9\xd0\x40\xb8\xd2\xf4\x52\xf5\xc5\x27\x0f\xbb\x74\x37\x9b\x6b\x84\xfe\xbb\xc6\x65\xbb\x99\x92\xc3\x6c\x6b\x00\xab\x9e\x3d\x21\x82\xa6\x91\xe0\x84\xa8\xaa\xc9\x0d\x8c\x6c\xb5\xb5\xfe\xda\x44\xfe\x33\x39\xc1\x27\xc1\x21\xc0\x7d\x8e\x2d\x87\x07\xa5\x9c\xcd\x6e\xff\x61\xf8\x2a\x9b\x84\x08\x44\xb2\x10\x8c\xbc\x2d\x13\x2e\x03\x23\x88\x6a\x94\x45\x92\x0b\x26\x01\x85\x30\x93\xba\x5c\x1c\x79\x62\x12\x73\x8b\x7b\x00\x32\x1d\x2d\x32\x0e\x57\x19\xe0\x2b\x3a\x6a\x39\x86\xd1\x32\xe9\x73\xe5\x58\xfa\x40\x9e\x92\xf0\x87\x58\x49\x8c\x8c\x77\x7d\x77\xe5\x98\xcb\x1a\xdc\xa2\x2d\x5c\x09\x0f\xbb\x5d\xf2\x02\xb2\x79\x41\x04\xe6\x35\xa2\x28\x7e\xed\x03\x3c\xf4\x86\xf6\x3d\xba\xc1\x9f\x36\x93\xff\x6a\xcf\x86\x6e\x50\xf1\x80\x95\x6e\x46\xc6\x1c\x51\x9d\x60\xe7\x4a\xdb\xec\x15\x32\x50\x02\xbb\x1b\xd5\x58\xf2\x6d\xa5\x72\x8b\x6b\x09\x53\xba\x28\x0a\x97\x85\xa7\x0f\x89\x0e\xc8\xde\xa1\xb6\x1b\x21\xd8\x49\x2e\x96\x27\x1f\x73\xb1\x9c\xdb\x99\x1e\x43\x87\xc6\xa6\x47\x4d\xca\xf7\x9e\x8b\x43\x67\x4a\xb6\x93\x1f\xee\xa1\x46\xad\x75\x09\xcb\x09\xfa\x94\x2c\x99\xcf\x6e\x6b\xfa\x03\x0c\x10\x22\xae\x73\xd1\x37\x5a\xf6\xd9\x8f\xb9\x2e\x24\x58\x0f\xa8\x55\x47\x12\xd4\xff\xf9\xc7\x5b\x65\xcc\xfa\x1c\x6f\xb7\x55\xc8\x8c\x15\xf6\x5c\xba\x03\xaf\x1b\x17\xfa\x79\xd1\xe9\x30\x81\x3a\xe3\x8f\x92\x78\x6c\x06\x99\x9e\xfa\x1d\x6b\x35\x00\x51\x70\xac\x35\x30\x70\x7e\x97\x49\x6b\xe9\x4b\x5c\x1e\xcd\x11\xf3\x37\x68\x9e\xa6\x61\x46\x0d\xef\x69\x9b\x49\x1f\x97\x6a\xb4\xd6\x34\xb5\x26\xbc\x8a\xbe\xe1\x12\x1e\xeb\x82\x17\x62\x64\x49\x57\x88\xae\x90\xfc\x61\x47\x0b\x0e\xa9\xad\x5d\x0e\xb5\x7d\xbb\xf9\xb9\x2e\x91\xbf\xb1\xb8\xe8\x3d\x9e\x67\xac\x76\x7e\x2f\x1a\x70\xe6\xbd\x6d\x6d\xf7\x74\x04\x94\x12\xb0\x99\xad\x94\x8d\x78\x9e\x5b\x94\x3f\xd5\xca\x2c\xdd\x79\x78\x2b\xe9\x68\xe7\x5a\x44\xf7\x99\x4a\xe4\x60\x59\x54\xa1\xb8\x80\xc5\x5e\x30\x5f\x9a\xbb\x1d\xf6\x3a\x1c\x2b\xfa\x24\x76\x44\x03\xbc\xc2\x42\x43\x3d\x19\x1b\x67\x2e\x53\x76\xf7\xb2\x7b\x6e\xfb\x85\xf0\x67\xc3\x0b\xd8\x62\x5b\xfc\x43\xb5\x53\x85\xb7\x18\x76\x2a\x4c\xa0\xbc\x11\xfd\xd5\x73\xb0\x39\xab\x50\x18\xb6\x0e\x29\x98\x20\xff\x61\x19\xfa\x87\x65\xe8\xbf\xb9\x65\xe8\x73\x9a\x85\x00\x1b\xf3\x92\x36\xa1\x1d\x0e\xf2\x03\xb6\xa3\xab\x75\x70\x8c\x63\xab\x76\x3c\x0a\x92\x7e\x07\x91\x8e\x4d\xa0\xbf\x25\xc2\x30\xe3\xb3\xe0\xd1\xbd\x90\x9d\x3e\x7a\x4b\x5f\xd4\x99\x7f\xf5\x79\x11\x2c\x6d\xec\x4b\xc1\xd7\xbb\xa1\x2c\x1e\xea\x44\xa4\xc1\x6d\x84\x20\x66\x9f\x80\xee\x69\x3a\x7e\x04\xa0\x31\x95\x3b\x62\x6b\x4d\x51\x78\xe8\x8c\x44\x9a\x24\x04\x4b\xd5\xa8\xa0\xfb\x62\xe2\x6c\xc5\xf3\x4c\xa9\xb4\x15\x1a\xf7\xac\x03\xd8\x08\x94\xe9\x3b\x78\x53\x54\x46\x75\x08\x18\xb3\xa3\xe8\x83\x2e\x7c\x88\x06\xc6\x63\x40\x26\x0e\x58\x4d\x71\x09\xb1\x94\x7e\x38\x82\xf4\x8a\xdc\x19\x5c\x08\x23\xb6\x10\x11\x87\xc4\xaf\x16\xbc\x17\x71\x17\x7d\x12\x92\x22\x35\xc2\x41\x74\xb3\x9e\x0e\xaf\x25\x94\x3b\x4f\xda\xd2\x6e\x0c\xdd\x5c\x35\x0d\xc1\x42\xcb\xb1\xe5\x16\x49\x62\x69\x17\xf7\x25\x34\xb6\x1c\xd3\x73\xc8\xbe\xd8\xef\x84\x6b\x95\x3b\x53\x2a\xe8\x14\xca\xe9\x2f\x48\x7f\x80\x70\x9c\x4d\x4f\xe4\xce\x4c\x4e\x5c\x9e\x5b\x8f\xfd\x72\xc8\x3d\x74\x97\x22\x66\xb1\x31\x35\xc8\xe5\xe8\x6f\x2e\x23\xa6\xcb\x68\x0d\x6c\x95\x55\x39\x15\xca\xad\xe6\x8e\x1d\xcd\xa4\xb9\x10\x81\xa9\x65\xc3\x21\x2e\xfe\xd1\x28\xab\x3a\xf9\x9b\x70\xf0\x2c\x22\xef\x0a\x11\x59\x78\x71\x52\xb2\x15\xbd\x66\x89\x43\x11\x60\xe1\x31\x25\x65\x16\xf3\x42\x8c\x67\x1e\x6d\x93\xa0\xa5\xd3\xa2\x3c\x48\x65\xd6\x61\xc7\x42\x1c\x63\x4d\xd2\xa6\xc9\x52\x44\xdb\xa8\x91\x85\x68\x37\x4d\xc4\x3f\xae\x6d\xbf\xad\x6b\x1b\xb2\xec\x62\xcc\xe0\x90\xa1\xa5\xa6\x5e\xfb\xcf\x0f\x1b\x5c\xc1\x82\x96\xe8\x01\xe3\xfc\x19\xaf\x9d\x2d\x3a\xf0\x30\x7d\xbe\xf7\x3d\x68\xf7\x71\xe6\x2f\xb6\xfe\xb0\x0e\x28\x10\x1a\x6a\x61\xe8\x5c\x2c\xc2\xa5\x63\x14\xda\xde\x6e\xfd\x6e\x96\x99\xdf\x14\x38\xa9\xcf\xc5\xd5\x68\xdc\x0e\xae\x74\x61\x35\x6d\x29\xf0\xbc\xdb\xa1\x71\x07\xac\xee\xbc\x78\xa5\xdd\xa8\x57\x25\xa0\xc5\xfe\x4f\xe4\xf6\xa0\x00\xcc\x6d\x26\xe6\x65\x9e\x1e\x04\x37\xbe\xbb\x3e\x3f\x76\xda\x06\x68\xce\x9d\x79\x8f\x8a\x5a\x6a\x68\x9b\x93\x58\xc4\x04\x07\x8d\x54\xca\x16\xe5\x72\x09\xf9\x4b\x08\x18\x6a\x85\x11\x64\xa6\x2f\x75\x61\xcf\x13\x64\x9a\xe1\xba\x98\x49\x25\x05\x9b\x7d\x71\x3c\xfb\xc2\x1c\x65\x39\x8f\x0a\x91\x23\xc9\x40\xca\x75\xc1\xb4\x58\x81\xaa\x45\x95\xde\x5d\x9f\x43\x54\x62\xb1\xc6\xe2\xdc\x95\x15\xe3\x3d\x91\xf3\x19\x72\xfd\x00\x41\xb5\x0c\x32\x6e\x41\xdb\x5f\x73\xcd\x12\x39\x93\x1f\x4d\x11\xc7\x2b\xa5\x56\xa9\x18\xdb\x09\x19\xbf\x23\xd3\xe3\xc7\x37\xd8\x02\xf8\x3c\x84\xf5\x9b\x03\x91\x4b\x25\x93\x88\xa7\x10\x90\x33\x93\xa0\x35\x8f\x4c\x67\xc0\x34\x3a\xfb\x62\x3c\xfb\x82\x81\xfb\xb4\x60\x3c\x8a\x44\x56\x88\x18\x53\x9b\x4e\x25\xcb\x00\xbf\x18\x89\x11\x2b\x04\xdf\x68\x4b\xe9\xcc\x32\x73\xc7\x84\xab\x21\x4b\x24\x21\x9d\x16\x89\xe4\xf9\x16\xc1\x4c\x98\xac\x9c\x82\x3f\xb6\x33\x29\x3e\x01\xfd\x67\x02\x0c\xa0\xa5\x76\xb4\x34\x94\x98\xc0\x74\x79\x22\xb7\x63\xf6\x03\x32\x34\x20\x05\xea\xdd\xf5\xb9\xa5\x37\xa2\x18\xd0\x99\xd4\xd1\x5a\x6c\x04\xfb\xb8\x2e\x8a\xec\xe3\x08\xff\xab\x3f\x82\xc7\x51\x2a\x86\x4f\x47\xcc\x4c\x91\x51\x54\x2d\x5e\x3e\xdd\x42\x0e\xd9\x32\xa3\x84\xf3\x33\x09\x5c\xec\x79\x88\xee\x35\xa3\x0d\x35\x06\x57\xf0\x0a\x2e\xdc\x48\x71\x48\xee\x78\x62\x06\xe7\x7f\xb1\xe9\xd2\x57\x69\x06\xd0\xe6\x16\x73\xad\x02\x85\x44\x43\xc8\xd6\xd8\x7c\x30\x91\xec\x87\xdb\xdb\x2b\xf6\xfd\xd9\xad\x55\x76\xee\xae\xcf\x71\x5d\x00\x9d\x0a\xe3\xec\xcf\xf5\x29\xbe\xdd\x66\xe2\x2f\x7f\xfe\xcb\x4c\x32\x9b\xa3\x5c\xda\x91\xc6\x1d\x3d\x42\x4a\x58\xc0\x3b\x81\x63\x16\xa8\x9c\xa1\x3e\x4c\xb9\x43\xcd\xcf\x51\x3b\x7f\x24\x6b\x01\x9c\x51\xa9\x52\xf7\x65\xe6\xcc\xdc\xa1\x1e\x66\x2a\xbc\xbb\x3e\x87\xd2\x81\x4e\xa9\x58\x43\xfe\x34\xe1\xac\x2f\x30\xf1\xdc\x36\xc6\xfc\xfb\x41\x25\x31\xe3\x72\x6b\xbe\xc5\xa2\x61\x59\xe6\x62\xa9\x72\x31\xb2\x6f\x9a\x02\x78\x91\x2c\x92\x34\x29\xb6\x20\xa5\x6c\x5e\xfb\xcc\x72\xe4\x9b\x02\xcc\x6d\x86\x00\xde\x66\x81\x61\x1a\xdb\xd7\x77\x3a\x44\x80\xc3\xa4\xb9\xdc\x88\x78\xd1\x31\xdf\x2e\x72\xc1\xef\xcd\xea\xa6\x12\xc6\x6f\x28\x67\xac\x38\xc1\x33\x66\x59\xca\x08\x97\x86\x69\x03\xad\x7e\xba\x39\xa5\x5b\xc6\x1f\x78\x82\x39\x65\xad\xbb\x7c\xb9\x4c\xa2\x84\xa7\x24\x39\x16\xe5\x12\xd2\xc6\x70\x4d\x29\x8b\x10\x7c\x68\x0a\x81\x5b\x86\x4d\xd8\x8f\x0b\x6a\x21\x56\x09\x02\x8e\x1f\x93\x62\x8d\x71\x05\x63\x9c\x67\x9e\x25\x7a\x1c\xa9\x0d\xec\xb7\x1b\x58\x4a\x9a\x2e\xbd\x80\x03\xaf\xad\x73\xf6\xda\x42\xed\x36\x59\xb1\xa5\xb5\xf7\x86\x6d\x92\xd5\xba\x80\x44\x2e\x50\x3b\x40\x22\x92\x4d\x96\xc2\xa5\x8f\x3c\x8c\x16\xef\xab\xc5\x86\xcb\x22\x89\xba\x7c\x4a\xad\x29\xc1\xfb\x61\x3c\x17\xdb\x62\xb7\x1d\xef\x03\xf1\xec\x73\xa4\xd0\x0f\x24\x32\xab\x0b\x64\x92\x81\x90\x5e\x26\x20\xf0\xaf\xa7\x9c\xdd\x77\x85\xfa\x38\x91\xdb\x8f\x9e\x84\x94\xcb\x20\xf7\xd5\x8e\xda\xed\xfe\xe7\xa9\xa2\x59\x63\x7c\x26\x01\xd5\x69\x04\x06\x25\xa3\xdd\x79\xc6\xb8\x23\xc5\xcc\xec\x95\x5d\x34\x69\xb2\x80\xba\x49\x56\x68\xa6\xcb\x0c\xe2\x09\x0a\xc5\x32\x1e\xdd\x1f\x97\xd2\xfc\xc7\x08\x43\xdc\xee\x3a\x24\x27\x9a\x49\xb5\x64\x65\x81\x1b\xc7\x2e\x61\x30\x8a\x04\xa6\x00\x7f\x41\xdb\x88\x62\xad\x62\x17\x17\x66\xca\x84\xf1\x33\x2d\x3a\x23\x7a\xe9\xb7\x27\xec\xca\x54\x68\x16\x31\xd5\xcd\x5d\xf7\x13\xc9\x4e\xff\xf5\x5f\xe1\x7d\x33\xb8\xef\x95\x62\x4b\xa5\xd8\xb7\x6c\x3c\x1e\xff\x3b\xfe\x66\x0a\xe5\x72\x4b\x7f\x71\xb9\x1d\x9b\xe2\xde\xe7\x6a\xf3\x7a\xa9\xd4\x1b\xfa\x1d\x92\x36\x9b\x7f\x24\x4b\xf6\xda\xbc\x74\x07\x55\xdd\xaa\xd7\xb3\xf2\xcb\x2f\xbf\xfa\xbd\x79\xf5\x0d\xfb\x4f\x7c\x27\x78\xfd\xef\x61\x53\xbf\xda\xd3\xd4\x3f\xf0\x07\xde\xa7\xad\xec\x5b\x38\x6b\x4c\x01\x3b\xdb\x98\xe8\xd7\xef\x95\x1a\xc3\xed\x3f\x6c\x1d\x16\x6b\xde\xc0\x56\x04\x6f\xfd\x7b\xd0\x6c\x66\xdb\xfd\xf5\x9e\x76\x23\xaa\xde\xb5\x1c\x8b\x7f\xaf\xd4\xeb\xf1\xd8\xc8\x2d\x1a\x57\x6c\xf5\xeb\x37\xd5\x81\x86\x0e\x34\xdb\x6f\x1e\x4f\xb1\xf9\xef\xce\x6e\x4e\xaf\xa7\x57\xb7\x97\xd7\x6f\x4e\x6c\x0f\xfc\x0c\x04\xdf\x33\x9b\x5a\xdb\x35\xfc\x7f\xef\x69\xf8\xf7\xca\xb6\x19\x1a\x7d\xf2\x2d\xc3\xd9\xcc\x16\xe3\xf7\x4a\xfd\xe7\x78\x3c\xfe\x3b\x3d\xe6\x72\x3b\x32\x07\x93\x79\x27\x43\x51\xfe\x81\xe7\x7a\xcd\x53\xd3\xa7\xa0\x0d\xae\x13\xad\x25\xda\xe2\x92\x65\xad\xb0\x3b\xb9\xf1\xc5\x41\x65\x30\xb1\xf0\xd6\x3f\x7f\xcb\x64\x92\xfa\xe9\x0b\xea\x80\x79\xba\x05\x6a\x89\xe8\xde\x6d\x17\x97\x23\x74\xb1\x65\x59\x7d\xe3\x62\xdc\xd9\xd6\x66\x28\x30\xe2\x7e\x26\x5f\xb5\x48\xf4\x63\xa3\xda\x8d\xe1\x81\x39\xa0\x5e\xd9\xec\xf1\xf6\x58\x70\x99\xb5\x70\x64\xc1\x11\x8d\xbb\x55\x52\x8c\x5a\x9b\x7e\xe8\x0e\xbc\x80\xac\x0a\xd4\xce\x57\xc7\xaf\x28\x50\xc8\x57\x51\x25\x92\x9f\x7d\xb1\x54\x6a\xbc\xe0\x39\xb4\xee\xd3\xf1\x76\xfc\xb7\xd9\x17\xd8\x1f\x54\x3e\x50\x31\x82\xc2\x67\x5f\xc0\x53\x58\x0e\x33\xf9\x87\x9b\xcb\x8b\x99\xfc\xf6\xdb\x6f\xbf\xc5\xd1\x32\x7f\xb7\xf8\x5e\xcc\x71\x05\xe2\x16\xf5\x94\x52\xdb\x94\x92\x62\x55\xa6\x3c\x9f\xc9\x76\x77\x4d\x2c\xbc\xd0\x1c\x79\xe7\x0d\xad\xb3\x91\xcd\x6e\x01\x49\xca\xac\x8c\x43\xdb\xe4\xc7\xff\xdf\x34\xf9\x23\xa9\x88\x4e\xc8\x87\x43\x30\xb6\x8b\xf9\xc4\x2e\x55\x33\xd8\x66\xfd\x7a\x3d\x6b\x99\xa4\x82\x36\xae\x5d\xdc\x57\x22\xd7\x4a\xfa\x35\x43\x17\x02\xe0\x36\x03\x07\x00\xfb\x96\xbd\xfd\xf7\xda\x53\x33\x0f\xf6\xe1\x57\x15\x49\xc0\x98\x2f\x6a\xf6\x05\xb4\x7a\xf6\xc5\x09\x9b\x7d\xd1\xb6\x6e\xaa\x0d\x1b\x63\x53\x66\x5f\x8c\x7c\x01\xd0\x8c\x0b\xbe\xc1\x42\xca\x2f\xbf\xfc\x3a\xc2\x26\x60\xe8\x5a\xf0\xa6\x69\x52\xf7\x8b\x41\x13\xa7\x35\xd7\x99\x1d\x08\x1b\x02\xf9\x28\xd2\xf4\xe8\x5e\xaa\x47\xcc\x33\x0e\x7e\x22\x8a\x52\x66\xb8\x3c\xaa\x93\x4b\xb9\xc9\x6a\x33\x6e\x83\x36\x5d\x35\x2e\xbd\x1d\x4c\xe8\x4c\x7e\x84\xa5\x63\x67\x94\xe8\x88\x80\x0e\xd4\xd5\x04\x97\x1a\x5a\x09\x36\xc6\x82\x16\xc2\x4c\x42\x31\x6e\xce\xd9\x6b\x00\x7e\x51\x57\x1a\x9a\xb5\xbd\x3c\xfd\xe5\xcf\x7f\x79\x73\x72\xc8\x3c\x55\x8b\xab\x4c\x15\xf4\x07\xcb\x78\x3b\xfe\xea\xed\x57\x7a\xf6\x05\x8d\x7a\xfb\x15\xfb\x3c\xd1\xc5\x4f\x35\x0d\xec\x09\xc9\xce\x8d\xe2\xf0\x52\xce\x0b\xdb\x54\x6c\x66\x5f\xa7\xc5\x75\xd5\xad\xa0\x96\xd6\xac\x03\x97\x33\x9b\x06\xde\xb4\x7b\x90\x7a\xe7\xc6\x0b\x2f\x5b\xec\x31\xe7\x59\x26\x72\x6b\x2b\x6f\xb8\x33\x20\xa7\x3a\xd4\x62\x45\x7f\x9b\x30\x33\xcb\xa6\x56\x34\xbc\x06\x43\x37\x6e\x9f\xb9\x8b\x32\x4d\x3b\x67\x6e\x7f\xb2\xe4\x8b\xbb\xf3\xf3\xf9\x4f\x93\xf3\xbb\x33\xdb\xfd\xd6\xe4\xc3\xc1\x6b\x9d\x63\xe2\x5a\x42\x63\x82\xb8\xaa\x02\xb0\x54\xe5\x46\xe4\x96\x29\xcc\xf7\x1a\x71\x24\x65\x9a\x56\xd3\x62\xcf\xe4\x47\x2a\x07\xc4\x40\x29\x13\xab\xa6\xec\x1c\xb8\x6a\xfd\xf0\xda\x47\x53\xf8\x47\xfc\xf6\x88\xf9\x4e\x9c\xb0\x0b\x57\x6b\xc7\xb8\x12\xe1\xc4\x01\xdb\x01\xe3\x6d\xbb\xb6\xc3\x73\x27\xfe\x7f\xda\xf6\xb8\x93\x90\xf4\xcb\x48\x5e\xcc\xd7\xff\x2c\xbb\x03\xc7\xee\x63\x15\x0a\xee\xcc\xa5\x31\x7a\x0d\xa1\xdc\x11\xa6\x6b\xd7\x05\x71\x16\xe3\x98\xcd\x24\x0a\x62\xd3\xa6\x42\x75\xb7\x89\x4d\xc9\x83\x94\x72\xb9\x2a\xf9\x4a\xe8\x11\xb3\x95\xcf\xa4\xbd\x9d\xda\xbb\x8e\x03\xe6\x00\x23\x6b\x6d\x09\xd5\x42\x80\x13\x39\x93\xd4\x27\x38\x61\xa9\x78\x0c\x47\xfd\xc3\x8d\xeb\x0e\xc5\x7d\x63\x41\x94\x71\x5e\xce\x24\x4e\x2e\xda\xc6\x2c\xd8\x10\xd4\x8e\xe6\xd9\xc4\x01\x1e\x8c\xf7\xba\x98\x15\x6a\x05\xb0\xc7\x99\x74\x2c\x58\x08\xce\xb0\xf7\x35\x9f\x1b\x14\x9b\xb4\x5f\x9e\xd8\xc9\xb0\x7b\x82\xda\xd6\xbe\xea\x0f\x3e\x03\xcc\x86\x9b\xb7\xde\xe5\x77\x2f\x5b\x2f\xc6\x7a\x02\x72\x78\x20\x38\xba\xa8\x11\x81\xfa\xac\xbd\x35\xb6\x5f\xf8\x4e\x67\xf4\xa8\x2a\x17\xe9\x80\x26\xe1\xfb\x3b\x1b\x85\x22\x79\x77\xa3\x7a\x58\xa4\xaf\x6b\x5b\xcb\x2c\xd3\x5d\xd5\x2e\x94\xea\x98\x97\x67\xc4\xec\x56\x1a\x45\x1f\xec\x1b\x8c\x32\x2a\x9e\xb2\x5e\x7a\xf0\x01\xd5\x87\xc8\x4a\x9f\x5d\x0d\x4a\x13\xfd\xa4\xe6\x78\xfd\xa9\x77\x8b\x9c\x86\x40\x87\xdd\x20\x09\x4b\xe7\x5c\x45\xc0\x76\x88\x49\x7b\x4d\xc1\xf0\x16\x91\xa0\x78\x31\x9b\x67\x04\x9b\xc8\xac\xff\x91\x5b\x44\x23\x3f\x73\x23\x68\x64\x54\xe6\xda\x88\x4b\x92\x77\x24\xb5\x55\xce\xf8\x4c\x5a\x36\x18\x2b\x8e\x27\xd6\x1e\x9c\xbb\x5f\x91\x63\x29\xc3\x94\x75\xe0\x14\x2a\xc0\x4a\x4e\xd2\x70\x26\x1f\x78\x9e\x70\x09\x98\xe6\x85\x86\x7c\xc3\x70\xa5\xdb\x32\x7a\xe0\x08\x38\x74\x68\x64\xde\x23\xf3\x6a\x6a\x40\xe5\x9c\xff\x27\xf3\xbf\xbf\xff\xd3\xff\x0d\x00\x00\xff\xff\xd9\xdb\xa7\xa4\x75\xb2\x06\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\xe3\xb8\xb5\x2f\x0c\xff\xbf\x3f\x05\xaa\xf7\x5b\xd5\x33\x89\xed\x9e\x5c\xce\x7e\x53\xde\x75\xea\x79\x34\xb6\xba\x47\x67\xdc\xb6\xe3\xcb\xf4\x9e\x3a\xda\xa5\x81\x48\x48\x42\x4c\x01\x1a\x00\xb4\x5b\xd9\x95\xef\xfe\x14\x16\x00\x12\xa4\x48\x8a\xba\x5a\x72\x23\xa9\x4a\xdc\x22\x89\xcb\x02\xb0\xb0\xae\xbf\xf5\x3f\xff\x86\xd0\x3b\xf9\x82\xc7\x63\x22\xde\x9d\xa3\x77\x7f\x3e\xfb\xe1\xdd\x89\xfe\x8d\xb2\x11\x7f\x77\x8e\xf4\x73\x84\xde\x29\xaa\x12\xa2\x9f\x8f\x92\xb9\x22\x34\x4e\x3e\x48\x22\x9e\x69\x44\x3e\xe0\x78\x4a\xd9\xd9\x4c\x70\xc5\xe1\x43\x84\xde\x3d\x13\x21\x29\x67\xfa\x75\xfb\x27\x62\x5c\x21\x49\xd4\xbb\x7f\x43\xe8\x5f\xd0\xbc\x8c\x26\x64\x4a\xe4\xbb\x73\xf4\x7f\xcd\x47\x13\xa5\x66\xae\x01\xfd\xb7\xd4\xef\xfe\x37\xbc\x1b\x71\x26\xd3\xc2\xcb\x78\x36\x4b\x68\x84\x15\xe5\xec\xc3\x3f\x24\x67\xf9\xbb\x33\xc1\xe3\x34\x6a\xf9\x2e\x56\x13\x99\xcf\xf1\x03\x9e\xd1\x0f\xcf\x7f\xfa\x80\x23\x45\x9f\xc9\x20\xc1\x29\x8b\x26\x83\x59\x82\x99\xfc\xc0\xc5\xf8\xc3\xff\xd0\xf8\x8c\x8b\xf1\xbf\xe0\x8f\x99\xe0\xff\x20\x91\x32\xff\x88\xf9\x14\x53\x66\xfe\x66\x78\x4a\xfe\x95\x35\x8a\xd0\xbb\x31\x51\xde\x3f\xf5\xd4\xd3\xe9\x14\x8b\xb9\x26\xcf\x47\xa2\xa2\x09\x52\x13\x82\x4c\xa7\xc8\xd1\x8b\x8f\x10\x46\xe7\x82\x8c\xce\x7f\x13\x64\x34\x70\x54\x3f\x33\xd4\xbe\x82\xa1\xdd\x26\x98\xfd\x76\x66\x69\x06\x2d\xf3\x19\x11\x30\xd1\x5e\xac\x5b\xff\x44\x54\x07\x9a\xcd\xdf\xff\xb3\xff\xba\x20\x72\xc6\x99\x24\xb2\x30\x3e\x84\xde\xfd\xf9\x87\x1f\x4a\x3f\x21\xf4\x2e\x26\x32\x12\x74\xa6\xec\xca\x76\x90\x4c\xa3\x88\x48\x39\x4a\x13\xe4\x5a\xf2\x47\x63\xe6\xaa\x97\x19\x2f\x34\x86\xd0\xbb\xff\x9f\x20\x23\xdd\xce\xbf\x7f\x88\xc9\x88\x32\xaa\xdb\x95\x66\x37\xe5\xc3\x7d\x57\xf8\xea\x5f\xff\x56\xf5\xf7\xbf\xbc\x19\xcd\xb0\xc0\x53\xa2\x88\xc8\xd7\xdf\xfc\xa7\x34\x17\xbd\x48\xba\x73\xb3\xa2\xe5\x41\x97\x66\x7a\x03\x7f\xe1\xe4\x04\x71\x31\x46\x4f\x64\x8e\x60\x4b\x91\x18\x29\x0e\x6b\x27\x88\xe4\xa9\x88\x16\x67\x4f\xe1\x7b\xbd\xcd\xca\x4f\x04\xf9\x3d\xa5\x82\xe8\x65\x52\x22\x25\xa5\xa7\x6a\x3e\x83\xe1\x49\x25\x28\x1b\xfb\x44\xf8\xd7\x49\xab\x49\xd9\xdd\xb9\x64\x62\xd7\x78\x4a\xf4\x4e\xd3\x73\xb0\x5f\x14\xe6\x83\x86\x24\xe1\x6c\x2c\x91\xe2\x87\x33\x35\x73\xd6\x56\x98\x99\xf9\xa0\x76\x62\x7d\xd6\x71\xaf\x44\x98\xa1\x21\x41\x9a\xdd\xd0\x98\x08\x12\x23\x2c\x11\x46\x32\x1d\x4a\xa2\xd0\x0b\x55\x13\xca\xf4\xbf\x67\x24\xa2\x23\x1a\x39\x9a\x1d\x0e\x6d\xe0\xcf\x66\xca\x3c\x4a\x22\xf4\xc0\x9f\x69\x4c\x62\xf4\x8c\x93\x94\xa0\x11\x17\xc5\x7d\xdc\x67\x0f\x13\x4d\x87\xe9\x90\x32\xe0\x27\x9a\x96\x6e\x87\xfc\xd1\x91\xeb\x8f\x48\xf7\x87\x52\x46\x7f\x4f\x49\x32\x47\x34\x26\x4c\xd1\x11\x25\xb2\xdc\xda\x1f\xb9\x3d\x42\xe8\x14\x69\x3a\x13\xa1\x80\xde\x9c\x29\xf2\x55\x49\x74\x8a\x12\xfa\x44\xd0\xfb\x2b\x2a\x15\xea\xdc\xf6\xde\x9f\xa0\xf7\x86\x09\x20\x60\xbf\xef\xf7\x40\xe1\xec\xef\xff\xf6\xf8\x89\xc2\xe3\x32\x27\x79\xd7\xd1\x2c\xea\xde\xdc\x7e\x79\x0b\xff\xfd\x6f\x7e\x3b\x76\xbd\x1a\xaf\x94\x23\xbe\x45\xc2\x25\x12\xf8\x6d\xe0\xb7\x81\xdf\xee\x9e\xc2\xbb\x97\xce\x7e\x4f\x89\x98\x37\xcc\x6a\x84\x13\x79\xd0\xd7\x48\x7e\x87\xd8\x0b\xa4\xed\xb5\x01\xab\x5f\xbc\x31\xa4\xde\x78\x9b\x5e\x18\xba\xdd\xf2\x8d\x21\x8f\xeb\xca\xd0\x53\xd8\xf5\xb5\xb1\xc9\x9d\x81\x15\x1c\x66\x4c\x99\x39\xfb\x19\x2b\x10\x52\x1f\x7f\xb7\x7d\x0f\x84\x53\x6e\x72\x85\x78\x33\xf3\x6e\x11\x77\x39\x78\x54\x39\xc0\x79\x27\x74\x4a\x97\xad\x6f\x8f\xc5\x34\xc2\xca\xf2\x70\x96\x4e\x87\x44\x68\x32\x38\xae\x05\xb3\x1d\x6a\x2e\xa6\x52\xc1\x48\xdc\x62\x9a\x9b\x70\x34\xca\x14\x19\x13\x51\xfe\x7a\xc4\xc5\x14\x2b\xfb\xc2\x7f\xfc\x75\x55\x42\x28\xfe\x44\x96\xad\x7f\xcf\xac\x66\x84\x25\x6c\x83\x69\x9a\x28\x3a\x4b\x08\x9a\xe1\x31\x91\x96\x22\x69\xa2\xe4\x09\xbc\x26\x89\x78\x26\xe2\x34\xbb\x58\xa1\x07\x27\x50\xa4\xd2\x70\xff\x51\x26\x17\x33\xf2\x55\x41\x4b\x7d\x06\x22\x05\x90\xc8\xbf\x28\xf7\x73\x39\xb4\x20\x95\xe4\x42\x0d\x86\xf3\xb3\x27\xb2\xd0\x6f\xed\xce\xc1\x0c\x61\xa5\x04\x1d\xa6\x8a\xe8\x79\xeb\x36\xdc\xd5\x07\xec\xd1\xc8\x1d\x6d\x58\xc3\xeb\x4d\x38\xa6\x82\x44\x30\xb7\x55\x0e\x4c\xf6\x95\x9e\xb7\xbe\xf8\xe7\x66\xf6\x5a\x0e\xd0\x62\x56\x05\x05\xb2\x25\xef\xb3\x3e\x43\xa7\xe8\xb2\x7b\x7f\xd1\xbd\xbe\xec\x5d\x7f\x3a\x47\x3f\xce\x51\x4c\x46\x38\x4d\xd4\x09\x1a\x51\x92\xc4\x12\x61\x41\xa0\x49\x12\x6b\x51\x4a\x0f\x86\xb0\x98\xb2\x31\xe2\x22\x26\x62\x77\x64\x2c\x3d\x25\x2c\x9d\x96\xee\x15\xf8\x3d\x1f\x7d\xe9\x0b\x2d\x62\x64\x8f\x0a\x4f\xfe\x7b\x81\xc0\x30\x63\xdd\xb7\xd7\xda\x8a\xcb\x18\x04\x35\x5f\x50\x8b\x26\x34\x89\x05\x61\x1f\x14\x96\x4f\x03\xf2\x95\x44\xa9\x91\x33\xc0\x8e\x5c\xfc\x71\xa0\x15\x09\x1e\x93\xe2\x2f\x85\x7f\x18\xab\xf3\xca\x9f\xe5\x92\xe1\xca\x9f\x66\xb6\x88\x95\xbf\x04\xcb\x45\xbb\xef\xe0\x17\x1a\x57\xbe\x0d\xbf\x2c\x99\x83\x7b\xa7\x61\xb0\xee\x95\xda\x51\xb9\x17\xac\x00\x5c\xf9\x8e\x20\x4a\xcc\x07\x58\x29\x32\x9d\xa9\x15\xad\x32\x18\x25\x5a\xcc\x6e\x12\xab\xaf\x79\x4c\xba\xae\xbf\xdf\x90\x91\xee\x49\x8c\x86\x73\x7b\x2c\x46\x44\x10\x16\x91\xfa\x16\x1e\xb0\x7c\xca\x5b\x58\x26\x9b\x17\xfa\x93\x1f\xb9\xd0\x9f\x1f\x85\x63\xa0\x30\xf2\x7d\xc8\xe8\xeb\x9c\xd4\x37\xe6\x4d\x58\x97\xeb\xbc\x39\x5b\xd8\x9a\x3c\x34\x58\xce\x36\xa7\x64\x5b\x3b\x1b\x17\x48\xce\xa5\x22\xd3\xa5\x16\xb7\xe3\x21\x84\xbd\x24\x0f\x75\xc0\xa5\x7b\xfa\x1b\x38\xf5\x45\xa9\x23\x1c\xef\x15\x48\xb6\x2d\x7b\xf9\xa1\xcf\xd3\x05\xc0\x34\x4f\xf5\xde\x2d\x9f\xe7\xae\x3b\x8a\x69\x16\xe4\xe1\x6d\x0f\x72\x47\x16\xa8\xda\xb5\x72\xd4\x1e\xc0\x00\x96\xd8\x1e\x8a\x1e\x97\xec\xfc\xe9\x4f\x7d\xa3\x9d\xb1\xd0\xaa\x09\x95\x9e\xfd\x12\x45\x5c\x18\x71\x38\xb6\xe7\xdd\x98\x1f\x3a\x0f\x9d\xfb\xee\xc3\x39\xea\xa0\x18\x2b\xac\x0f\xb8\x20\x33\x41\x24\x61\x0a\x4c\x3b\xfa\x7b\x35\x47\x53\x1e\x93\xc4\x18\x21\x3e\x6a\xe9\x1f\x5d\x62\x85\x2f\xb0\xc2\x09\x1f\x9f\xa1\x0e\xfc\x53\x7f\x4c\x25\xc2\x89\xe4\x08\xbb\x6d\x45\x62\xd7\x04\x66\xb1\x63\x2d\x18\x45\x7c\x3a\xa3\x49\xe6\x6d\xca\xec\x6d\x94\xc5\xf4\x99\xc6\x29\x4e\x10\x1f\x6a\xae\x22\xcf\xfa\xac\xfb\x4c\x98\x4a\x71\x92\xcc\x11\x4e\x12\x64\xbb\x75\x2f\x20\x39\xe1\x69\x12\xeb\x76\xdd\x28\x25\x9d\xd2\x04\x0b\x2d\xd3\x9a\xd1\xde\xd8\xb6\xd0\xc3\x84\x64\x63\x85\x71\x69\x6a\x4e\xf1\x13\x91\x88\x2a\x34\xe3\x52\xd2\x61\x92\x9f\xf9\xc7\x1e\x82\x71\x5f\x5c\xf5\xc0\xc4\x13\x29\xc4\x0d\x0f\x75\x9d\x5b\x93\x9e\xeb\x71\x8a\x19\x23\xd0\x31\x57\x13\x22\x6c\xf7\xf6\xe5\xd7\xb6\xd6\x3c\x5e\xdf\xdf\x76\x2f\x7a\x1f\x7b\xdd\xcb\x45\x73\xcd\x43\xe7\xfe\xe7\xc5\x5f\xbf\xdc\xdc\xfd\xfc\xf1\xea\xe6\xcb\xe2\x93\xab\xce\xe3\xf5\xc5\x4f\x83\xdb\xab\xce\xf5\xe2\x43\xbb\xad\x5a\x5b\x7e\xfc\x91\x6d\xed\x6c\x1d\x9d\x51\x28\x18\xf5\x57\x58\xf6\x6d\x1b\xf5\x4f\xde\xae\x55\x7f\x44\x13\x30\x3a\xb4\xb6\xe8\x67\x56\x23\xfb\x25\x9a\x61\x29\x8d\x1c\x68\x46\x70\xd6\x67\x9f\xb9\xd0\xec\x7a\xc4\x35\x47\xd4\xb2\xa2\x12\x69\xa4\x28\x1b\x67\x1f\x9d\xa3\x7e\xfa\xc3\x0f\x7f\x89\xae\x28\x7b\x82\xbf\xc8\x21\x12\x27\xb8\x3c\x82\xcb\xe3\xe0\x5c\x1e\xff\x56\xf1\xe9\xee\xdd\x03\xc1\xc6\x1f\x6c\xfc\xbb\xb3\xf1\x07\x13\xbf\x37\x86\x60\xdf\xde\x94\x10\xc1\x00\x16\xec\xdb\x9b\x13\x22\xd8\xb7\x0f\x74\xc6\xe1\x78\x07\xfb\x76\xb0\x6f\x07\xfb\x76\xb0\x6f\x07\xfb\x76\xb0\x6f\x7f\x33\xf6\xed\x03\x0c\x79\x0a\x46\xfe\x60\xe4\x0f\x46\xfe\x60\xe4\x0f\x46\xfe\x60\xe4\x3f\x1e\x23\xbf\x96\x76\x3f\x94\x43\xff\x77\x04\x21\xa3\x85\x4b\x36\x4b\x15\x88\x92\x3c\x55\xfa\x4f\xdd\x3f\xec\x95\x06\x08\x80\x76\x06\xe5\x4f\x44\x65\x2f\x6a\xd1\xf6\x28\x62\xc5\xbf\x70\xf1\x34\x4a\xf8\x4b\x36\xf2\x4f\x44\xe9\xc1\xdf\xd9\x5e\x02\xb4\x4c\x80\x96\x41\x01\xea\x60\xdb\x50\x07\x07\x65\xa2\xde\x16\x7f\x77\x5f\xbf\xd3\xca\xbf\x22\xb5\xbc\xf8\x81\x88\x29\x65\x4e\x76\xa1\x4c\x0b\xb9\x63\x41\xa4\xdc\x94\x03\x67\x0d\x67\xaf\x1f\x05\x0f\xce\x46\x9b\x8d\x3f\x70\xdf\xc0\x7d\x6b\xa6\x16\xb8\xef\x1b\xe3\xbe\x2d\xa6\x36\xe4\xf1\x82\x3a\x61\x46\x52\xf5\xa4\x79\x24\x5b\xe3\x50\xbf\xa7\xa4\x5d\xd8\xc1\x3e\xb4\x86\xa3\x56\x14\x8e\xe1\x8e\x3a\x00\x3d\x21\x30\xf5\xc0\xd4\xab\x29\x73\x94\x4c\xfd\x18\x7d\x02\xbb\xe7\xe9\x45\x2f\x4a\x6e\x0e\xaa\x00\x7a\xa8\x8f\xf1\xac\x0d\xe1\xac\x89\xd0\xf4\x02\x30\xf7\x72\x4d\x14\xc3\x1c\x97\x5c\x15\x85\x97\x8f\xc6\xae\x54\x18\xf5\xfe\xef\x8a\x37\x8e\x36\xf0\xad\x04\x5b\x86\x58\xca\x35\x09\xf5\x86\x2f\xcd\xfd\x45\x42\xee\xff\xb6\xfb\x66\xef\xb4\x70\xa5\xd9\xff\x04\x86\x1f\x18\x7e\x60\xf8\xaf\xc4\xf0\xd7\xa0\x7b\x50\xe1\x16\x2e\xb5\x4a\x30\xbf\xb6\xe8\x7d\xab\xa4\xf2\xad\x90\xbb\xd7\x3a\x59\x6f\x49\x76\x5e\x65\x3a\x5e\x55\xfe\xdd\x62\xc2\x5d\x65\x86\xdd\x66\x29\x75\xeb\xde\xd5\xed\x93\xe4\x3e\x11\x55\x78\xf9\x68\xf4\xcf\xc2\xa8\xf7\x7f\x59\xbf\x7a\x30\xe8\x6b\xf1\xe9\x6f\x2f\x21\x30\x64\x00\xee\x90\x74\x6f\x5d\xac\x39\xdc\x1c\xbf\x6f\x20\xa9\x2f\x64\xf1\xad\x44\xa3\xb7\x95\xb6\xf7\x56\xf3\xf4\x8e\x33\x31\x2f\x64\xe2\x85\x4c\xbc\xad\xaa\xbc\xa5\xa7\xdf\x54\x26\xde\x31\xa7\xde\xed\xdf\x3c\x11\x4c\x0e\x87\x6f\x72\x08\x16\x07\xfb\x9f\xa0\x7d\xaf\x3c\xf3\x20\xda\x07\xed\xbb\xcd\xcc\x83\xf6\x1d\xb4\xef\x03\x3c\xa2\x41\xfb\x0e\xda\x77\xd0\xbe\x83\xf6\x1d\xb4\x6f\x14\xb4\x6f\xaf\xa1\xd7\x02\x6c\x38\x04\xe7\xe6\x51\xd9\x1c\xf2\xa9\x0f\xdc\x01\x5f\x04\x39\x28\xb0\xdd\x36\xb8\x07\xf0\x97\x53\xea\x57\xc5\xe1\xad\xd5\xd2\x2f\xf3\xc1\x76\x81\x49\xfe\x66\x59\xc5\x12\x85\x7d\xe1\xbb\xa3\x88\x11\x58\x18\x75\x48\xb7\x5d\x57\xe4\x79\x25\xa1\x61\x47\x14\x38\x92\xeb\x6b\xf5\x85\x7a\xc3\xba\x64\xd0\x21\x37\x4f\xa1\x3b\x1a\xdd\xf1\x78\x74\xc6\xfd\xcb\x16\x6f\x51\x9c\x08\xd2\x84\x37\x86\x70\xf1\x86\x8b\x37\x5c\xbc\xe1\xe2\x0d\x17\x6f\xc8\xc0\xb7\xef\xef\x54\x9e\x28\x09\x13\xad\x00\x1a\xb7\x5e\x19\xa8\x42\x94\xf0\x6e\xe0\x65\x75\x7e\xca\x5f\x53\x22\xff\x7a\x94\x32\xc5\x3e\x4a\xfd\x04\xa1\xe2\x48\x84\x8a\x37\x69\x4b\x0a\x92\x52\x90\x94\xaa\x29\xd3\x4a\x52\xea\xb3\x87\x89\xa6\xc3\x74\x48\x59\xe6\xcd\x73\x3b\xe4\x8f\x8e\x5c\x7f\x44\xba\x3f\x94\x32\xfa\x7b\x4a\x92\x79\xce\x93\x64\xb9\xb5\x0c\x2f\x1a\x9d\x22\x4d\x67\x22\x14\xd0\x9b\x33\x45\xbe\x2a\x89\x4e\x51\x42\x9f\x08\x7a\xaf\x19\x33\xea\xdc\xf6\xde\x9f\xa0\xf7\x57\x50\xb6\x0e\xcd\x12\xcc\xe4\xfb\x83\x71\xdc\x04\xb0\xfe\x5d\x81\xf5\x07\xac\xfe\x80\xd5\xdf\x96\x40\x01\xab\x3f\x60\xf5\x1f\x2f\x56\xff\xd6\xf4\xc3\x35\x71\x39\x5f\x45\x53\x3c\x4e\x5f\x76\xd0\x14\x51\xd0\x14\x83\xa6\x18\x34\xc5\xa0\x29\x1e\x89\xa6\x78\x18\x14\x0e\x6a\x62\x50\x13\x83\x9a\xb8\x45\xe2\x04\x35\x31\xa8\x89\x41\x4d\x5c\x50\x13\x8f\xd7\x73\xf8\x97\xa0\x0f\x06\x7d\xd0\xff\xfd\xf8\xf4\xc1\xa0\x3a\x05\xd5\xa9\x9a\x32\xc7\xa9\x3a\x1d\x8c\xec\x73\x8c\x21\x45\x41\x29\x6c\x4f\x88\xa0\x14\xb6\x26\x55\x50\x0a\x1b\x88\x13\x94\xc2\xa0\x14\x06\xa5\xb0\xb5\x52\x78\x4c\xee\xc2\xa0\x1d\x06\xed\xd0\xff\x3d\x68\x87\x41\x3b\x0c\xda\x61\x70\xac\x05\xd5\x30\xa8\x86\x41\x35\x0c\xaa\xe1\x32\xe2\x04\xd5\x30\xa8\x86\xdf\x96\x6a\x48\x9e\x09\x53\x12\x8a\x21\xfa\x8a\xd2\xbb\x19\x97\xf5\x0a\x9e\xcf\x1d\x2a\x94\x3b\x68\xb3\x58\x94\x10\x50\xdb\x7e\x43\x13\x2c\x11\x8f\xa2\x54\x94\xce\x40\x59\xbd\xbb\x10\x04\x2b\x02\x2d\xe8\x0f\x8f\x41\xad\x5b\x9c\xee\xbe\x00\x88\x87\x3c\x5e\xd8\xed\xe6\x20\x54\x3d\x69\x16\xb3\xb6\x36\xf5\xdf\x53\xd2\x4e\xab\xdd\xe1\xa6\x56\x58\x3e\x6d\x79\x53\x17\x80\xa6\xd7\xda\xd4\xd0\xc2\xb1\x6c\xea\xc5\xe9\x7e\x33\x9b\xba\x6a\xea\x87\xb0\xa9\x5f\xb8\x78\x1a\x25\xfc\x65\xcb\x1b\xfb\x8b\x6d\x76\xb3\xcd\x9d\xb5\x72\x2c\x1b\xbc\x7a\xda\xdf\xcc\x26\xaf\x9b\xfe\xeb\x6e\xf4\xac\x3e\x44\xeb\x2d\xfe\x20\xe8\x78\xac\xd5\x0c\xd0\xf0\xf4\x56\xb4\xa6\x8f\x06\x80\xa4\xbc\x22\xc2\xd2\x6d\x9d\xbd\x7a\x0c\x5b\x3a\x1b\xac\x19\xfb\x37\xb3\x97\x17\xe6\x7d\x20\x9b\xf8\x95\x40\x3b\xda\x15\xfc\xb8\xa2\x52\x65\x6f\x1e\x47\xb6\x55\x36\xdc\x7d\xf8\x4d\x42\xfe\x4e\x70\x33\x04\x37\xc3\xe1\xbb\x19\x0e\xc6\xa0\x16\x4c\xf2\x3b\x32\xc9\x53\x19\x6c\xf2\xc1\x26\xdf\x96\x40\xc1\x26\x1f\x6c\xf2\xc7\x6b\x93\x5f\x51\x77\x58\x33\x42\xab\xce\x20\xb4\x8a\xfe\xf0\x89\xe4\xea\xc3\x71\x69\x0f\x41\x73\x08\x9a\x43\xd0\x1c\xb6\xae\x39\x1c\x54\x39\xc2\x6d\x71\x69\xf7\xf5\xbb\x59\x5a\xcf\x53\x1f\x67\x31\x56\x04\x65\xcc\xdb\xee\x04\x7d\x31\x2a\x9e\x1d\x02\xbb\x1f\x36\x64\xbb\xa6\xaf\x23\xe5\xbc\x66\xf0\x7b\x2c\xcf\x1a\xf8\x70\xe0\xc3\x81\x0f\x1f\x36\xbe\xf9\xe1\xb8\x0f\x1c\x7b\x3a\x14\xf7\x81\x20\x11\x7f\x26\xa2\xb5\x2f\xec\x8e\x80\x03\x0c\xa4\xfb\x99\x20\xcf\x94\xa7\x32\x99\x9f\x8a\x94\x21\xe7\x3b\xf6\x2e\x29\x88\xe1\x7f\xa1\x49\x82\x38\xd3\xaa\xa2\xc2\x42\xb9\xc7\x6c\x8c\x46\x82\x4f\x61\xbb\x24\x58\x2a\xf4\xc4\xf8\x0b\x43\x23\x4c\x93\x54\x10\x34\xe3\x94\xa9\xb3\x3e\xeb\x31\x74\x67\xc6\x08\x35\x17\x4f\x50\x2a\x89\x90\xfa\xa8\x31\xae\x50\x34\xc1\x6c\x4c\x10\x66\x73\x5b\xbc\x3c\x67\xe0\x7a\x93\xa6\xe6\xd6\xd4\x5d\x94\x00\xeb\xb3\x31\x82\xb5\x91\x4a\x44\x25\x22\x5f\x95\x20\x53\x92\xcc\x75\x1f\xfa\x8a\x52\x1c\x59\xfa\x98\xa1\xda\x3d\x4f\x84\xe0\x42\x42\xb5\xc6\xe1\xfc\x9f\x98\x29\xca\x08\x02\x9d\x4e\x1a\x4b\xe2\x29\xba\xe2\x12\x4c\x4c\x3f\xff\x4d\xa2\x28\x49\xa5\x22\xe2\x04\x0d\xd3\xb1\xd4\x4a\xed\x2c\xc1\x6a\xc4\xc5\x54\x8f\x90\x32\xa9\xf0\x90\x26\x54\xcd\x4f\xd0\x14\x47\x13\xd3\x16\xd0\x40\x9e\xf4\x59\xcc\x5f\x98\x54\x82\xe0\xac\x77\xf7\x10\x7d\xe7\x3f\x33\x1b\x40\x7e\x7f\x02\x67\x93\x4e\xb5\x66\xee\x0d\x3f\x5f\x71\xb3\x26\xba\x11\x12\xa3\x21\x89\x70\x2a\x6d\xde\x85\x12\x73\x44\xbe\x4e\x70\x2a\x61\xed\xf4\xf4\x6c\xbd\xcb\x88\x4f\x67\x09\x51\x04\xd1\x11\x52\x42\x5f\x5c\x78\x8c\xa9\x26\xdd\x3d\x21\x2d\xa4\x0d\xbb\x80\x76\xd7\xff\x06\x5c\x62\xca\x05\x41\x31\x51\x98\x26\x8d\xb9\x38\xf6\xdb\xe0\x24\x3d\x26\x2e\x57\x5c\xf0\x83\x60\x73\x09\x18\xf4\xb7\xe0\xf3\x67\xd6\xd3\x10\xe1\x64\x43\xf7\xff\x9d\x1d\x54\xd8\xdb\xc7\xb5\xb7\xcd\xaa\x1d\xce\xe6\x3e\x68\xaf\xff\x51\xed\xe9\x3d\x39\xfd\x83\x76\x15\xb4\xab\x6a\xca\x04\xff\x78\xc8\xc4\x5b\x9c\x56\x70\xfb\x07\xb7\x7f\x70\xfb\x6f\x93\x38\xc1\xed\x1f\xdc\xfe\xdf\xac\xdb\xff\xc0\x3d\xfd\x47\xa5\x31\x04\x6d\x21\x68\x0b\xc1\x17\xb3\xe2\xd4\x8e\x4e\x46\xdf\x16\x67\xce\x5c\xfd\x31\x49\x88\x22\xf5\xd6\x47\x22\xa6\x5a\xb7\x33\x52\x07\x65\x5a\x3c\x1d\x0b\x22\xe5\xa6\x7c\x36\x6b\xf8\x38\xb9\x6d\x36\xfc\x3d\xfa\xf7\x03\xfb\x0d\xec\xb7\x9a\x32\x47\xc9\x7e\x0f\xc7\x90\xee\x1d\xe6\x7d\x59\xd2\x33\xfe\x7b\xa0\xa1\x56\x47\xc5\x8c\xf7\x1e\x69\x15\x38\x71\xe0\xc4\xd5\x94\x09\x9c\xf8\xf8\x83\x92\x8c\x57\x75\x30\x4b\x30\x1b\xd0\xd8\x26\x27\x98\xcc\x84\xdc\x58\xb1\x2b\xcf\xa6\x3e\x5a\xb1\x01\x4c\xcd\x00\x4a\xc5\x6f\xfa\x93\x24\x77\x74\x20\x3e\xd4\xc3\x58\x0a\x1d\x6b\x7c\x23\xb7\x09\x66\xbd\xf8\x38\xb2\x9e\x2b\xa7\xbf\x0f\x67\xe8\xdb\x0b\x9e\xdd\xe4\x92\xc2\x0a\x9c\x6e\x98\x32\x63\x76\xcd\x81\x6f\x0b\x46\xe5\xc3\x98\xe8\x26\x57\x96\x37\x31\xef\xd6\x72\x97\x91\x47\x94\xc3\x9b\x76\xf0\xc5\x05\x54\xcc\xe0\x6d\x6a\x39\xe1\xe0\x6d\x3a\x5c\x6f\x53\x8b\x65\xdc\x89\x0b\x79\xcf\xc7\x73\xaf\x32\xeb\x51\x4b\xaa\x41\x50\x45\x41\xac\x0b\x62\x5d\xfd\xac\x83\x58\x17\xc4\xba\x20\xd6\x05\xb1\x2e\x88\x75\xaf\x2f\xd6\xb5\x98\xe6\x37\x1b\x65\xb0\x4c\x54\x6d\x8f\x7c\x6a\x72\x7c\x20\x15\x30\x9d\x25\x1c\xc7\x4d\x91\x5e\xb9\x30\xe9\x17\xda\x6a\x90\x40\x4d\xeb\xf9\x67\xc7\x20\x80\xe6\xa3\xfd\xc6\xf2\x9f\x16\x27\x7e\x28\xde\x82\xd7\xc2\x40\xad\xde\xef\x2b\xe8\x5c\xf2\xaf\xc7\xb5\xe3\x03\x24\x6a\x00\xd4\xa8\x98\x5a\xf0\x5d\x87\x94\xaf\x90\x1b\xf5\xe6\x14\xf7\x90\x1b\x15\x72\xa3\x82\x59\xa3\x79\xda\xc1\xac\xf1\x26\x72\xa3\x56\x57\x26\x76\x58\xb6\x7a\x73\xb5\xe2\x28\x42\x8e\x82\x5a\x11\xd4\x8a\xa0\x56\x04\xb5\xe2\x10\x0b\x3a\x07\x9d\x22\xe8\x14\x41\xa7\x08\x3a\x45\xd0\x29\xb6\x4e\xc6\xa0\x53\xb4\xd0\x29\xe0\x2f\x0b\x58\xba\xb2\x82\xb1\xa2\x62\xb1\x04\x95\x21\xff\xe8\xc8\xb4\x8a\xa0\x51\x04\x8d\x22\x68\x14\x7b\xd7\x28\x0e\x66\x42\x96\x7d\x2e\x99\xd3\xbd\x5b\x90\x12\x3c\xf4\xe1\xcd\xc7\x8d\x68\x00\x2d\x2d\x11\x26\x8a\x0a\x5a\xb6\xeb\xf4\xa7\xbe\x8e\x62\x62\x53\x41\x2c\xcf\x43\x37\x51\xc4\x85\x61\xca\xb1\xdd\xe5\x46\x9e\xe8\x3c\x74\xee\xbb\x0f\xe7\xa8\x83\x62\xac\xb0\xde\xd6\x82\xcc\x04\x91\x84\x29\x90\xd5\x08\x44\xe5\x02\x48\x77\x62\xa4\x8a\x8f\xfa\xfe\x41\x97\x58\xe1\x0b\xac\x70\xc2\xc7\x67\xa8\x03\xff\xd4\x1f\x53\x89\x70\x22\x39\xc2\x8e\xf4\x24\x76\x4d\x60\x16\xbb\x03\x85\x01\x7b\x9a\x26\x99\x72\x9a\xa9\x17\x94\xc5\xf4\x99\xc6\x29\x4e\xb2\x60\xe7\xbe\x29\x30\x9c\xe2\x24\x99\x23\x9c\x24\xc8\x76\xeb\x5e\x70\x70\xd6\x43\x92\x8d\x52\xd2\x29\x4d\xb0\xd0\xec\xd8\x8c\xf6\xc6\xb6\x85\xb4\x62\xec\xc6\x0a\xe3\xd2\xd4\x9c\xe2\x27\x22\x11\x55\x68\xc6\xa5\xa4\xc3\x24\x3f\x00\x8f\x3d\x04\xe3\xbe\xb8\xea\x81\xcc\x16\x29\xc4\x0d\xe7\x70\x9d\x5b\x05\xc6\xf5\x38\xc5\x8c\x11\xe8\x98\xab\x09\x11\xb6\x7b\xfb\xf2\x6b\x8b\x5f\x8f\xd7\xf7\xb7\xdd\x8b\xde\xc7\x5e\xf7\x72\x51\xfe\x7a\xe8\xdc\xff\xbc\xf8\xeb\x97\x9b\xbb\x9f\x3f\x5e\xdd\x7c\x59\x7c\x72\xd5\x79\xbc\xbe\xf8\x69\x70\x7b\xd5\xb9\x5e\x7c\x68\xb7\x55\x6b\x51\xce\x1f\xd9\x2e\x64\x39\xf7\x75\x0b\x84\x00\x7b\xb8\x14\x56\xa9\x34\xd5\xa0\x05\x19\x53\xa9\x80\xfd\xb7\x91\xc2\x96\x03\x03\x1c\xad\xf4\x15\xaa\xb0\x04\x59\x2c\xc8\x62\x41\x16\x3b\x36\x59\x6c\x7f\x26\x81\x23\x0a\x53\xfc\xcb\x71\xdd\x3d\x01\xc4\x3d\x30\xe7\xc3\x67\xce\x07\xe7\x7a\x3b\x18\xd3\xf9\x31\x02\x44\x06\xa7\x62\x7b\x42\x04\xa7\x62\x7b\x5a\x05\xa7\x62\x03\x71\x82\x53\x31\x38\x15\xbf\x61\xa7\xe2\x51\xc6\x26\x06\x55\xc2\xbd\x17\x54\x89\xa0\x4a\xbc\x51\x55\xe2\x60\x28\x1c\xf4\x88\xa0\x47\x04\x3d\x22\xe8\x11\xcd\xc4\x09\x7a\x44\xd0\x23\x82\x1e\x71\x6c\xf1\x88\xc7\xa5\x49\x04\x2d\x22\x68\x11\x87\xad\x45\x1c\xcc\x84\x8e\xc7\x5b\xdc\x6e\x3e\x21\x72\x2f\x44\xee\x85\xc8\xbd\xda\xc8\xbd\x37\xaa\xc9\x6f\x4b\x7e\x73\x5f\x1f\x5a\x40\xe2\x71\x89\x5f\xa1\x56\x51\xf6\x34\x08\x63\x41\x18\xfb\x46\x85\xb1\x03\x02\x51\x3c\x88\x92\x4b\x53\xac\xa2\x09\x1e\x26\x64\x90\xd9\xb2\x64\x5b\xf5\xfe\x8a\x4a\x25\x51\x94\x4a\xc5\xa7\xf5\x97\xcb\x67\xd7\x43\x27\xeb\xe0\x82\xb3\x11\x1d\xa7\xe6\x6e\xf9\x0d\xb6\xbe\x77\xa2\x73\x01\x77\x3e\x23\xcb\xfc\x8a\x15\xad\x1f\xc5\xb5\x54\x3d\xf4\x7d\xdd\x4e\xab\xe8\x23\xb9\xed\xd2\x2a\x13\x5a\x84\x1c\xdc\x75\xef\x6f\x1e\xef\x2e\xba\xe7\xa8\x03\x22\x16\xb8\x13\xcc\x56\xa0\xff\xd4\x93\x42\x0a\xcb\xa7\x7c\x2d\x85\xd9\xe6\x12\xe4\x6c\xf0\x5f\x68\x91\x1f\x9d\xa2\x8b\xab\xc7\xfb\x87\xee\x5d\x4d\x83\x76\xa3\x40\xe1\x45\x32\x9d\x25\x58\x91\x18\x3d\xa5\x43\x22\x18\xd1\xd2\x4e\x94\xa4\x5a\xb8\xc9\xbd\x1a\xa6\xd1\xee\x7f\x75\x2f\x1e\x1f\x7a\x37\xd7\x83\xbf\x3f\x76\x1f\xbb\xe7\xc8\xed\x38\xdd\xac\x1e\x97\x1e\x45\x3c\x67\x78\xaa\x15\x2b\xfd\x43\x5e\xea\xf1\xf7\x94\xa4\x04\x61\x29\xe9\x98\x4d\x09\x53\xe5\x16\xdd\x80\xaf\x3a\x3f\x76\xaf\x8a\x2d\x4f\x08\xfa\xf9\x6f\xf9\xa0\x12\x3c\x24\x89\x75\xb3\x80\xe7\x40\x6f\xf4\xbc\x23\xeb\x7f\x49\x0d\x55\xff\xfe\xd8\xb9\xea\x3d\xfc\x3a\xb8\xf9\x38\xb8\xef\xde\xfd\xd2\xbb\xe8\x0e\xac\xb0\x7c\xd1\xd1\xfd\x16\x7a\xb2\x32\x35\xfa\x3d\xc5\x89\x56\xba\xf8\x08\xfc\x16\x34\x22\xe8\x65\x42\x18\x4a\x19\xec\x38\xa3\xc9\x69\xf5\x2e\xeb\x54\x9f\x32\x33\xa3\xdb\xab\xc7\x4f\xbd\xeb\xc1\xcd\x2f\xdd\xbb\xbb\xde\x65\xf7\x1c\xdd\x93\x04\x74\x1d\x47\x74\x58\xc5\x59\x92\x8e\x29\x43\x74\x3a\x4b\x88\xa6\x86\xd1\xe5\x86\x64\x82\x9f\x29\x17\xf6\xe8\x8e\xe9\x33\x61\x86\x8e\x70\x66\xa1\x7d\xa7\x53\x0c\x3c\xd2\xdd\x5c\x7f\xec\x7d\x3a\x47\x9d\x38\xce\xe6\x20\xa1\x8d\xc2\xce\x79\xe1\xe2\x69\x94\xf0\x97\xd3\xe2\xb0\x35\x73\x80\xee\xcd\x26\xe2\xcf\x44\x08\x1a\x93\xd2\x3e\xea\xdc\xdf\xf7\x3e\x5d\x7f\xee\x5e\x3f\x00\xc5\x94\xe0\x89\x44\x13\xfe\x02\x16\x7a\x98\x21\x18\xee\x9f\x31\x4d\xa0\x33\xb7\x58\x9c\xa1\x97\x09\x05\xaf\x0e\x95\x3e\xc1\x8c\xda\x29\x52\xf6\xea\x46\xe7\xc2\xc1\x5b\xd4\xc6\xca\x27\x69\xf1\x8d\xd2\xb1\x68\x7a\xa1\xb0\xcb\x17\x5f\x5c\xb6\x5b\x17\xbf\x28\x6d\xb7\x7a\x1d\x74\x61\xbf\xd4\xcf\x34\x5f\xeb\xd6\x2a\x68\x91\x86\xfb\xbb\x66\x89\x12\x34\x92\x1f\xb2\x7d\xb5\x5b\x90\x31\x22\xf5\x86\x55\x74\x4a\x90\xed\xd9\x9e\xd4\x0d\x6b\xd5\x7e\x22\x2a\x7b\xf1\xb3\x69\xf8\x28\xb2\xd2\xbe\x58\x8e\x92\x0d\xfe\x13\x51\x76\xfc\x21\x41\x2d\x24\xa8\xd5\x4c\x2d\x68\xb9\x9b\x6b\xb9\xc7\x56\x91\x37\x26\xb3\xc5\x0e\x4b\x13\x83\x77\x8c\xbf\x72\x21\xbc\xc6\x58\x82\xad\x2d\x3c\x21\xcf\x24\x01\x41\x56\x09\xac\xf5\x62\x2b\x9e\x0d\x05\xc1\x4f\x5a\xa6\x8d\xf9\x8b\x2f\x9c\xc5\x44\x61\x9a\xc8\x57\x0a\xbf\xf9\xcb\x9f\x5f\xf5\x3e\x3c\xde\x2b\x30\xdc\x80\xc1\x24\x1a\x2e\x8b\x6f\xf0\xb2\x38\x46\xa7\x54\xb8\x03\x0f\xe5\x0e\xd4\xe4\x8e\x07\xce\x3d\xfd\xe1\x7f\x0a\x46\xb9\x7f\xed\x4a\x3f\xbc\x83\x78\x5f\xd9\x74\x11\x7a\x15\x36\x7f\xb3\x4e\xed\x25\x37\xa2\xf7\xc5\x51\xe8\x83\xde\x78\x0f\xc9\xd4\x7a\xe7\x5b\xbe\xdd\x3d\x31\x25\x0a\xc7\x58\x61\x7d\x84\xc6\x44\x9d\xa1\x1b\x06\xcf\x1e\xb0\x7c\x3a\x41\xee\x5e\xd7\xbc\x33\x77\x2d\xec\xa1\xb8\x66\x4b\x9b\xd5\x6b\x07\x23\x1c\x22\x47\x0f\x5a\xfa\x36\xa7\x16\x04\xaf\x90\x5e\x74\xc8\x38\x30\xee\xeb\x56\xd1\x3b\xdb\xbb\x95\x4d\x8b\x47\x7c\x31\xef\x37\x5e\x67\xab\xd7\x74\x0a\x43\x0f\x77\xb0\xf9\x4f\xb8\x83\xc3\x1d\x1c\xee\xe0\x26\xca\x84\x3b\xf8\x88\x03\xba\x2a\xae\xac\x57\x8d\xe8\x6a\x63\x56\x30\x36\x85\xdc\xa0\xb0\x22\xf0\x5c\x6e\x43\x58\x0a\x17\x51\x21\xb5\x2c\xc5\x8a\xc8\xbf\xa1\xe4\x38\xfc\xcb\xde\x2c\xf7\x81\x17\xb1\x55\x61\xc5\x64\x2c\x07\xab\xc2\x0e\x25\x9a\xb7\x27\xce\x6c\x22\xcb\x60\x05\x97\x0c\xa6\xcc\xdc\x49\x79\xf6\x92\xdc\xc3\x0e\x5b\x71\xa2\x9b\x48\x36\xde\xc4\x3c\xe1\xc6\xc9\x2c\x1e\x51\x0e\x64\x51\x77\x02\x2b\xf1\x3a\x76\xfc\xd7\x87\x92\x20\x6f\x17\x49\x22\x80\x25\xac\x74\x48\x02\x58\xc2\x3e\xc0\x12\x5a\x2c\xe3\x4e\x10\x50\xf6\x7c\x3c\x5f\x53\x75\x38\x1e\x27\xe4\x91\xe9\x0c\x47\xa5\x2f\x04\x1f\xe4\xee\xed\x9f\xc1\x54\x18\x4c\x85\xd5\x94\x09\xa6\xc2\x6f\x2b\x5c\x6b\x5b\xf7\xbd\xfb\xfa\xb5\xbd\x90\x47\x76\x33\x07\x27\x64\xb8\x84\xc3\x25\x1c\x2e\xe1\x70\x09\x6f\x8b\xc2\xc1\x5f\xb7\xa2\xd2\x7d\x14\x5e\xba\x23\xbb\xd6\x83\x93\x2e\xdc\xf8\xee\xe3\xe0\xd2\x5a\x36\xcf\xe0\xd2\x0a\x2e\xad\xe0\xd2\x0a\x2e\xad\xe0\xd2\xca\x7e\x0f\x2e\xad\xbd\xee\xd6\x6f\xd6\x6c\x57\xad\x31\xf0\x98\x0c\x2a\x90\x64\xb2\x9f\x06\x7e\xda\x60\xe1\xd7\x82\xfb\xae\xf0\xc4\xf7\xe5\x15\x1e\xe4\xf0\xef\xd0\x2f\x8d\x57\xce\xc3\x6f\x32\x27\xf2\x98\xb4\xce\xbb\x2f\xbc\x7c\xe8\x71\x81\x6e\xa2\x46\xf5\xf0\x47\xbe\x87\x3c\xfb\xf2\x4e\x78\x63\xd1\x67\x35\xbb\xfa\x2d\x5a\xea\x2a\xce\x68\x30\xdb\x2d\x25\xd4\x1b\x06\x1c\xb0\x4c\x78\x0f\xe3\xd9\xff\x1d\xe6\x80\xff\x06\x15\x37\x59\xf5\xb3\xfc\x3e\xab\x7e\x9e\xdd\x6a\xd5\x8f\x77\x53\x22\xb1\xfd\xa5\x06\x76\x34\xff\xed\x23\x09\x77\xf7\x87\xbc\x0f\x5b\x5a\xed\xc6\x78\x63\x17\x5b\xe3\x26\x7f\x73\xd7\x5b\xd3\x91\x0d\x97\x5c\x4b\x72\xbd\xd5\xab\x2e\xd4\x38\x6c\xb2\xe2\x85\x22\x82\x07\x68\xa5\x08\x46\xc4\x60\x44\x3c\x46\x23\xa2\x09\x3e\x18\xcc\xb0\x20\x4c\x55\xe8\x16\xe5\xeb\x04\x5e\xf7\x8b\x4e\x39\xa9\x03\x1a\x40\x5a\xb4\x47\xf6\x42\xce\xae\xaa\x37\x16\x28\x5f\xd2\x5e\xde\xb0\x9d\xed\xc0\xf5\x91\xc3\x31\xb3\xbd\x55\x29\x3d\x18\xa1\x82\x11\xaa\x3c\xcf\xfd\x19\xa1\xd6\xa0\x7b\x70\x16\x35\x5e\x55\xdf\x88\x21\xed\xc0\xef\xad\x43\xb2\xa3\xbd\xd5\x9b\x2b\xd8\x97\xb6\x40\xae\xb7\x7a\x8b\xbd\x96\x49\x79\xff\x5a\x7a\xb0\xa4\x05\x4b\x5a\xb0\xa4\x05\x4b\x5a\xb0\xa4\xf9\xbf\x07\x4b\x5a\x13\xdd\xf7\xa6\x9e\x58\x11\xc8\xab\x3e\xfa\xe1\x7f\xf2\xbf\x33\xb5\xc4\x57\x2d\x9a\x32\x58\x2f\x04\x81\x53\xc1\x85\xcd\x7f\xdc\x46\x7d\x52\xac\x0a\x42\x2f\x54\x34\x68\xd0\x45\x4c\x56\xd1\xad\x79\xfb\xb8\xca\x92\x2e\x0c\x7a\xbf\xf9\xaf\x8b\x0b\xdf\xee\x00\xb9\x95\xa1\xa6\xc4\xa6\x57\xc7\x51\xcb\xdd\x7c\x94\x5f\x0c\x12\xbd\xd0\x24\xd1\x92\x8c\x95\xda\x0e\x44\x1a\x7d\xf5\xac\xb8\xda\x95\x7f\xd5\xdc\xb8\x2a\xee\x50\xc5\x12\xda\x58\xc7\xb7\x55\xa7\xd8\x6d\x36\x28\x21\x0b\x7a\xdf\x12\x73\xfa\xdb\xe0\x04\x9f\x88\xda\x17\x1b\x58\xf7\xec\x37\x9e\x7b\x41\x46\x44\x10\x16\x91\x03\xcc\xc8\x5a\x25\x55\xf0\x8b\x99\xa4\xcd\x13\xcc\xca\x77\xfb\x53\x55\xdc\xea\x69\x05\x51\x37\x54\x6f\x0e\xd5\x9b\x43\xf5\xe6\xf2\x51\x0f\xd5\x9b\xdf\x46\xf5\xe6\x16\x5c\x76\x0b\xb6\xbd\x66\x83\xed\x81\xea\x5d\xee\xeb\x77\x31\x49\x88\x22\xb5\x82\xd2\x25\x3c\x7e\x2d\x41\xc9\xf4\xfe\x36\x64\x25\x33\x97\x20\x2e\x7d\x33\xca\x92\x5b\xf0\x83\x50\x96\xcc\x59\xf3\x75\x26\x48\xae\xf0\x94\x6b\x93\x51\xf1\x36\xcd\x2c\x47\x91\x40\x71\x38\x76\x96\x9d\x5f\x8a\xfb\x66\x0e\xc1\x86\xb4\x38\x92\x60\x43\xda\x8c\x2d\x16\x7e\xac\x40\x61\xda\x3b\xab\x5c\x47\xc0\x2a\xf0\xcb\x4b\x78\xfd\x38\xb9\x66\x79\xec\xc7\xcc\x3b\xbd\xd6\x0e\x83\x89\x7c\xbb\xec\x73\xe1\x88\xb7\x9b\xb8\x0d\xfd\x39\xde\x79\x1f\xca\xb5\x51\x77\xac\x0f\xf9\xf2\x28\xd6\xd1\x3a\x5e\x8f\xc4\x31\xb1\xff\x57\x71\x49\xbc\x39\x31\xf9\x9b\x33\x1a\x04\x1f\x4b\xf0\xb1\x04\x1f\x4b\xf0\xb1\x04\x1f\x0b\x5a\xd7\xc7\xb2\x2d\x49\xeb\xa8\x1d\x12\xc7\x29\x2a\xed\xd7\x23\x11\xa4\xa5\x63\x97\x96\x0e\x45\x29\x3c\x2e\x17\xcb\x86\x65\x95\x0f\x45\x2f\x7c\x4b\xc6\xc1\xe3\xd2\x11\x0f\xce\x1c\xf8\xcd\x31\xbe\xf5\x4c\x7f\x47\x3b\xdd\xa0\x15\x07\xad\x38\x68\xc5\x41\x2b\x0e\x5a\x31\x0a\x5a\xf1\xca\x5a\xf1\x5b\x12\x14\x8f\x4e\x43\x0e\xb2\xe2\x6b\x4f\xf8\x1b\x93\x15\x0f\xc5\x26\x50\x77\x72\x0f\xd4\x32\xf0\x6d\x06\x14\x1d\xf1\x4d\x10\x72\x5e\x91\xb7\x74\x21\xe0\xe6\x5b\xe1\xa3\x07\x1e\x70\xf3\xf6\xec\xaa\x47\xcc\x23\x43\x36\x70\x10\x2b\xb7\x34\xdd\x60\x82\x0c\x26\xc8\x60\x82\x0c\x26\xc8\x60\x82\x44\x87\x9d\xfc\xbc\xd4\xe0\x14\xf2\x9f\x77\x65\x58\x3d\x62\x49\x31\xe4\x42\x07\x61\x71\x7b\xd3\x3d\x54\xdd\xf9\x90\x6c\x90\x72\xf5\xba\x11\x4b\x91\xb8\xed\xb4\x7f\x6b\x60\x60\x57\x54\x3a\x45\xf7\x98\xf8\x95\xdc\x35\x4b\xda\x04\x7e\xd7\xad\xe8\x9b\x45\xdf\xdd\xa0\x1a\x3d\xf0\xae\x37\x5a\x8e\x3e\x80\x03\x37\x10\x27\x80\x03\xaf\xc4\x4d\x02\x38\xf0\x3e\xc0\x81\xb7\xae\xac\xcc\xb8\xac\xbf\xb9\xef\xc8\x98\x4a\x38\xb2\x0d\x35\x9f\xdc\x9d\x0d\x85\x07\x60\x2b\x7c\xd4\x2f\xa0\x98\xcc\x12\x3e\x07\xfb\x50\xc3\x75\xee\xba\xb8\x5d\x90\xa8\x0f\xfd\x46\x77\x23\xdf\x97\xce\x71\x28\x32\x69\x3e\xef\x83\x90\x42\xfd\x90\xf8\x52\x31\xb3\x26\xf7\xf6\xa3\xf5\x69\x83\xe9\x8f\x4a\xb8\x9f\x96\x6e\xf1\x3e\xab\x7e\xe0\x4c\x60\x43\xe2\x2e\xc4\x61\xaa\xbc\xa2\x1e\x52\x4b\x58\x33\x22\xd4\xdc\x7b\x93\x4c\x67\x6a\xfe\x9f\x7d\x46\x55\xe6\x40\xa4\x63\xc6\x85\x61\x6f\xfa\xe3\x09\x66\x71\x42\x84\xbe\x5d\x5d\x3b\x11\x66\x8c\x2b\x90\x3b\x60\x02\x31\x7a\xa6\xd8\x48\x29\x9d\xdb\x5e\x6b\x37\xfa\x5f\x8f\xe8\x9c\xed\xd7\x4f\xfe\xf6\x8a\x3d\x2f\x85\x87\xbf\x24\x33\x41\xf4\x45\x1e\x9f\x68\x69\xd6\xc7\x89\xa7\x4c\x2a\x82\xb5\x22\xf0\x29\xe1\x43\x9c\x24\x73\x94\x16\x8d\x1a\xba\x97\x03\x99\xe8\xa1\x30\xc8\x57\xe7\x88\x81\x0f\xb6\xe5\x83\xc7\x14\x49\xba\x5f\x3e\x18\xb8\xc6\x37\xc2\x35\x14\x96\x4f\x7e\xe1\x3e\x10\xa7\x5c\xed\xc5\x42\xd1\xaa\x72\x05\xab\x7f\xb5\x79\xaf\x50\xa1\x76\xc9\xbb\x7e\xcd\xda\x25\xaf\x96\xaa\xd8\x16\x9f\xd9\xba\xb6\xf0\x18\xa6\x57\x1e\x87\xfb\xd1\xef\xd0\xfd\x96\xb7\xec\x7e\x79\x26\x42\x52\x6e\x5f\x13\x44\x89\xf9\x00\x2b\xa5\xd9\xd6\x36\x4b\xe7\x3e\x60\xf9\xd4\xba\x74\x6e\xe1\xe5\x43\x67\x62\x85\xda\xb9\x85\x91\xef\xa1\x76\xee\xf2\x6d\xfc\xe6\xc4\xbd\x96\x47\x72\xc9\xbc\x8f\xaf\x0e\x63\x5b\x06\xb3\xc2\xc4\xbf\x95\x9a\x8c\xed\x18\xee\x32\xf7\xdf\x31\xd6\x67\x6c\xba\x41\x0e\x66\x84\xa5\x4b\xec\x2d\x9e\xdc\xe2\x95\x1c\x8e\x68\x13\x8d\xda\x9e\xc5\xa3\x39\x81\x25\x49\x6b\xc9\xdc\xee\xdd\x02\xd9\xd7\xdd\x4e\x38\xbc\x79\x15\x84\xc5\x6d\x8f\x6a\x37\xee\x53\x6f\x35\x56\x89\x98\xed\x39\xed\xcf\x38\x83\xb2\x33\xe4\x62\x68\xb3\xa3\xa9\x26\x80\xbf\x4e\xa5\xaf\x30\x46\x5c\x18\x69\x33\xb6\x67\xd6\xb8\x83\x3a\x0f\x9d\xfb\xee\xc3\x39\xea\xa0\x18\x2b\xac\x0f\xa9\xd0\x4a\xa7\x24\x4c\x19\x83\x05\x53\x54\xcd\xd1\x94\xc7\x24\x31\xd6\x02\xe3\x79\xb8\xc4\x0a\x5f\x60\x85\x13\x3e\x3e\x43\x1d\xf8\xa7\xfe\x98\x4a\x84\x13\xc9\x11\x76\x1b\x87\xc4\xae\x09\xcc\x62\xc7\x1e\x30\x8a\xf8\x74\x46\x13\x13\xc6\xe9\x7b\x87\x29\x8b\xe9\x33\x8d\x53\x9c\x20\x3e\x04\x4b\xcb\x59\x9f\x75\x9f\x09\x53\x29\xe8\xb8\x38\x49\x90\xed\xd6\xbd\xe0\x99\x39\xdc\x28\x25\x9d\xd2\x04\x0b\x2d\x3d\x9a\xd1\xde\xd8\xb6\xd0\xc3\x84\x64\x63\x85\x71\x69\x6a\x4e\xf1\x13\x91\x88\x2a\x34\xe3\x52\xd2\x61\x92\x1f\xe3\xc7\x1e\x82\x71\x5f\x5c\xf5\xc0\xe5\x16\x29\xc4\x0d\x1f\x74\x9d\x5b\xff\xb3\xeb\x71\x8a\x19\x23\xd0\x31\x57\x13\x22\x6c\xf7\xf6\xe5\xd7\xf6\x9e\x3d\x5e\xdb\xe8\xc8\xee\xe5\xa2\xfb\xec\xa1\x73\xff\x73\x7d\x38\xe4\xe2\x93\xab\xce\xe3\xf5\xc5\x4f\x83\xdb\xab\x4e\x45\x98\xa5\xdd\x56\xad\x3d\x71\xfe\xc8\xd6\x3f\x4c\x47\x57\xf1\x79\xff\x46\x87\x56\x16\x87\xd6\xe6\x86\xb6\xb6\x86\x76\x86\x86\x7a\x2b\xc3\x0e\xa2\xa0\xda\x9b\x02\xae\xa8\x2c\xda\x02\x8e\x23\x37\xbe\x30\x64\x3d\x87\x5d\x1b\x02\xbe\x39\x2b\xc0\x37\x6a\x02\x08\xfa\xff\x4e\xe8\xf6\x56\x95\xff\x03\xd7\xfc\x37\x09\xe9\xcc\xd2\xbd\x42\x4c\xe7\x62\x4c\x27\x09\x21\x9d\x21\xa4\xb3\x2d\x81\x42\x48\x67\x08\xe9\x3c\x86\x90\xce\x56\x8a\x56\xf0\xd8\x1e\x82\xc7\xf6\xc0\x75\xb4\x43\x76\xd8\xbe\x55\xcd\x25\x38\x2f\x83\xf3\x32\x38\x2f\x8f\xf4\xe4\x06\xe7\x65\x7b\x1a\x05\xe7\x65\x70\x5e\x06\xe7\x65\x70\x5e\x06\xe7\x65\x70\x5e\xbe\xa6\x69\xe4\x10\x62\x43\x8f\xd9\x65\x1b\x3c\xb1\x4b\x3c\xb1\x07\xae\xe4\x1f\xa4\x23\xf6\xad\xea\x08\x41\xb5\x0f\x7e\xc9\x8d\xa6\x7d\x50\x4a\xfd\x5b\xbb\x37\x83\x2b\xb6\x3d\x21\x82\x2b\xb6\x35\xa9\x82\x2b\xb6\x81\x38\xc1\x15\x1b\x5c\xb1\xdf\xa0\x2b\x96\xc6\x1b\x23\xcc\xb7\xd1\x5b\xb4\xac\x18\x77\xc1\x3c\x94\x19\xb7\xc4\x6f\x20\x3d\x62\xf9\x94\x59\x80\x5a\xe8\x33\xbd\xf8\x28\x14\x99\xca\x09\xef\x43\xa1\xd9\x44\x63\xc1\x4a\x73\x70\x05\x80\x06\xfa\x49\x6e\x54\x3c\x40\x48\xcc\x4d\x74\x14\x6f\x62\x9e\x9a\xe2\xb4\x0f\xbf\x0e\xf3\xc1\x4d\x3b\x08\x7e\x41\xf0\x0b\xb2\x4d\xcb\x09\x07\xd9\xe6\x70\x65\x9b\xd7\x52\x58\x0e\xef\x78\x1e\x9d\x7d\x62\xe7\x62\x69\x01\xca\xb9\x11\x11\xd2\x54\x85\x03\xd7\x5d\x3a\x4b\x38\x8e\x97\x05\xc8\xfd\x86\x72\x59\xad\x41\xdc\x34\xed\xea\x0f\x0e\x5c\xda\x5c\x88\x8d\x33\x23\xff\x16\x40\x20\x6b\xa7\xfe\xaa\x38\x90\xb0\x7f\x33\xd4\xa2\x0c\x96\xa8\x10\x3d\xba\x2b\x35\xab\xbc\xc1\x5b\x69\x54\xf2\x28\xc0\x17\xf5\x48\xf7\xa1\x3f\xbd\xc9\xec\xbb\x37\xec\xc9\x0a\xde\xaa\xe6\x90\x82\x2d\x45\xb7\xf5\xd9\x83\x56\xa4\xf8\x74\x48\x59\x16\xcc\xe3\x76\xc8\x1f\x1d\xb9\xfe\x08\x40\x7a\x16\x5c\x2f\x99\xe7\x7a\xb6\x2c\xb7\x96\x49\x61\xe8\x54\x8b\xc0\x11\x11\x0a\xe8\xcd\x99\x22\x5f\x95\x44\xa7\x28\xa1\x4f\x04\xbd\xd7\x47\x1e\x75\x6e\x7b\xef\x4f\xd0\xfb\x2b\x9c\xb2\x68\x82\x66\x09\x66\xf2\xfd\xc1\x48\x6f\x41\x21\x0f\x85\x0e\x82\x2b\x66\x17\xda\x7b\x30\x57\x2c\x9d\x76\x30\x57\xbc\x19\x57\x4c\x4b\x9d\xc1\x64\xac\xe1\x29\x39\x14\xed\xe1\x68\x00\x3e\x82\xf6\x10\xb4\x87\x8a\xa9\x05\xed\xe1\x1b\xd4\x1e\x0e\x83\xc2\x41\x75\x08\xaa\x43\x50\x1d\x82\xea\x10\x54\x87\xad\x93\x31\xa8\x0e\x4d\xaa\x03\xfc\xe5\x40\x29\x56\xd5\x23\x5a\xeb\x0f\x2d\x10\x28\x8e\x46\x79\x08\x8a\x43\x50\x1c\x82\xe2\xb0\x77\xc5\xe1\x60\x26\xf4\xf6\x92\xe9\x43\x3a\x7a\x48\x47\x0f\xe9\xe8\x35\xe9\xe8\xfb\x12\xd9\x8c\xbc\x76\x64\xf1\xf7\x47\x21\xb4\xbd\x5a\x00\xfe\xdb\x13\xe3\x42\x4a\x41\x48\x29\x08\x66\xc8\x90\x52\x10\x0c\x6d\xc1\xd0\x76\xd0\x86\xb6\xd7\xb2\x9e\xef\xf9\x78\xee\x41\x38\x3d\xf0\x88\xe5\xbf\x1c\x83\x04\xba\xc7\x98\x83\x60\x65\x0b\x56\xb6\x6a\xca\x1c\xa7\x7b\xfe\x60\x6e\xfd\x80\x1e\x13\x24\xfe\x10\x78\x10\x02\x0f\x96\x12\x27\xe8\x43\x41\x1f\x3a\x38\x7d\xe8\x15\x15\x85\x83\x0b\x53\x0e\x1a\x43\xd0\x18\x82\xc6\xf0\x66\x35\x86\x83\xa1\x70\x50\x17\x82\xba\x10\xd4\x85\xa0\x2e\x34\x13\x27\xa8\x0b\x41\x5d\x08\xea\xc2\x41\x87\x26\x1f\x8b\xc2\x10\x94\x85\xa0\x2c\x1c\xb6\xb2\x70\x30\x13\x0a\x41\xbc\x21\x88\x37\x04\xf1\x7e\x33\x41\xbc\x6f\x54\x61\xdf\xa9\x98\xe6\x58\x64\x93\xe0\xb5\x28\x2f\xfd\xb2\xc0\x58\x0f\x56\x64\xca\x47\xbb\x2e\x44\xe2\xb6\x48\xfd\xc2\xc5\xd3\x28\xe1\x2f\x83\x4c\xab\xb3\x41\xe1\xf9\xbf\x6d\x3e\x9f\xf7\x43\x2e\x3c\x7b\x3f\x66\x42\xb4\xf7\x9b\x6b\xbd\x20\x43\xcf\xd2\x65\x48\x9a\x12\x71\x81\xd2\x59\x0c\x7f\x46\xa9\x54\x7c\x5a\x2f\x55\x7f\xc6\x2a\x9a\xe0\x61\x42\x3a\x59\xbf\x17\x9c\x8d\xe8\x38\x35\xfb\xe3\x37\x60\x85\xd8\x49\x36\x27\x4e\x32\xd2\x4c\xd1\x8d\xaf\x49\x12\x7f\x84\x71\x7c\xb1\x6f\xe6\x9d\x1c\x45\x00\xfa\xe2\xb0\xcd\x74\xf6\x85\xcc\x59\xdc\x45\x9b\xb2\x38\xaf\xb5\xc3\x10\x7f\x16\xcf\xc4\x32\x51\x15\xac\xd0\x99\x66\x42\x63\xd8\x9c\x2f\x13\x0a\x96\x35\xb0\xc4\x81\xf5\x29\x6f\x18\xbd\xd0\x24\x01\x89\xc3\xd0\xe2\xf0\x66\xde\x4a\x7b\xb1\x13\xb7\x67\xef\x4d\xcc\xdb\x31\x8f\x25\x33\x77\x47\xd0\xb8\x21\x8e\x74\xda\xaf\x89\xb0\xbb\x84\x91\xbd\x2a\xce\x6e\xed\xf5\x59\x93\x53\xf5\xe1\x7f\x2a\xaf\xc4\x36\x85\x19\x5f\xfb\x1e\xfc\x44\xd4\x9b\xb9\x04\x3f\x11\xb5\xaf\x1b\xf0\x2d\x5e\x7b\xeb\xde\x75\x8d\x8c\x4f\x90\x11\x11\x84\x45\xe4\x58\x73\xb2\x16\xae\xb8\xa3\x9d\xee\x5a\x37\xdb\xd1\xce\x76\x15\x03\xd6\x17\x33\x49\x6b\xae\x9a\x3a\x96\xeb\x4f\x55\x71\xeb\x5e\x2e\xb8\xc0\xac\xb1\xea\xa1\x73\xff\xf3\xe0\xae\x7b\x7f\xf3\x78\x77\xd1\x3d\x47\x1d\x38\xe8\xf0\x8d\x61\xef\xf4\x9f\xd0\x1c\xe4\xc3\x66\xc6\x30\x61\xee\x38\x09\xac\x1a\xdc\xe0\x9a\x8a\xe8\x14\x5d\x5c\x3d\xde\x3f\x74\xef\x6a\x1a\xb4\xcc\x9f\xb2\x31\x52\x64\x3a\x4b\xb0\x22\x31\x7a\x4a\x87\x44\x30\x02\x8a\x55\x92\x4a\x45\x44\xee\x1c\x37\x8d\x76\xff\xab\x7b\xf1\xf8\xd0\xbb\xb9\x1e\xfc\xfd\xb1\xfb\xd8\x3d\x47\xee\x16\xd1\xcd\xea\x71\xe9\x51\xc4\x73\x86\xa7\x34\x32\x3f\x64\x75\x2e\xd1\xef\x29\x49\x09\xc2\x52\xd2\x31\x9b\x12\xa6\xca\x2d\xba\x01\x5f\x75\x7e\xec\x5e\x15\x5b\x9e\x10\xf4\xf3\xdf\xf2\x41\x25\x78\x48\x12\xeb\xad\x07\x07\xb4\xbe\xbc\xf2\x8e\xac\x1b\x3f\x35\x54\xfd\xfb\x63\xe7\xaa\xf7\xf0\xeb\xe0\xe6\xe3\xe0\xbe\x7b\xf7\x4b\xef\xa2\x3b\xb0\xc6\x98\x8b\x8e\xee\xb7\xd0\x93\xb5\xd9\xa0\xdf\x53\x9c\x50\x35\xd7\xeb\x28\xcd\xa5\x8f\x5e\x26\x84\xa1\x94\xc1\x05\x62\x2c\x85\x98\x79\x9d\xca\x19\x89\xcc\x8c\x6e\xaf\x1e\x3f\xf5\xae\x07\x37\xbf\x74\xef\xee\x7a\x97\xdd\x73\x74\x4f\x12\xb0\xa5\x39\xa2\xc3\x2a\xce\x92\x74\xac\x39\xc1\x74\x96\x10\x4d\x0d\x63\x2b\x1c\x92\x09\x7e\xa6\x5c\xd8\xeb\x78\x4c\x9f\x09\x33\x74\xd4\xdb\xca\xb4\xef\x6c\x56\x03\x8f\x74\x37\xd7\x1f\x7b\x9f\xce\x51\x27\x8e\xb3\x39\x48\x68\xa3\xb0\x73\xdc\xd1\x3d\x2d\x0e\x9b\x8e\x68\x04\xdd\x9b\x4d\xc4\x9f\x89\x10\x34\x26\xa5\x7d\xd4\xb9\xbf\xef\x7d\xba\xfe\xdc\xbd\x7e\x00\x8a\x29\xc1\x13\x89\x26\xfc\x05\x1c\xbd\x30\x43\xf0\xff\x3e\x63\x9a\x40\x67\x6e\xb1\x38\xf3\x4f\xbf\xd7\xb3\x31\x6b\x8a\x94\xbd\xba\xef\xb2\x70\xf0\x16\xad\x7d\xe5\x93\xb4\xf8\x46\xe9\x58\x34\xbd\x50\xd8\xe5\x8b\x2f\x2e\xdb\xad\x8b\x5f\x94\xb6\x5b\xbd\x8d\x73\x61\xbf\xd4\xcf\x34\x5f\xeb\xd6\x26\xce\x22\x0d\x77\x21\x63\xbb\xaf\xdf\xc5\x24\x21\x8a\xd4\xca\xc4\x97\xf0\xf8\xf5\x65\x62\x33\x8e\x37\x23\x16\x9b\xe9\x04\xc9\x38\x48\xc6\xad\x27\x1c\x24\xe3\xaa\x09\xbf\x11\xc9\xf8\x00\xad\x3e\x8e\x45\x1d\x9c\xd5\x27\xf8\x47\x4a\x2b\x75\x9c\x57\xe0\xab\xb9\x47\x82\xff\x60\xb5\x2b\xe4\xf8\xe7\x1d\xfc\x07\xc1\x7f\x50\x79\x93\xbc\x79\xaf\xc1\x71\x5e\x0d\x7b\x74\x1a\x04\x35\xa2\x61\xbe\x41\x8d\x38\xb2\xd9\x06\x03\x7b\x30\xb0\x07\x03\x7b\x30\xb0\x07\x03\x3b\x5a\xd7\xc0\xde\x82\xcb\xee\xc3\x9c\x7a\xa0\x41\xc4\x6f\xc5\x6d\x70\x9c\x72\xf1\x7e\xbd\x06\x41\x34\x6e\x98\x6f\x10\x8d\x8f\x6c\xb6\x07\x68\x17\x39\x2c\x0b\x3b\x8d\xab\x0c\x22\x7b\x84\xa6\x77\x23\x69\x0b\x4f\xef\x08\xda\x8b\x8f\x82\x9d\xbf\x1a\x42\x7d\xc0\x73\x0f\x78\xee\x01\xae\x25\xe0\xb9\xa3\x00\x48\x12\x00\x49\x0e\x19\x90\xa4\xc5\x32\xbe\x05\x3c\xf7\xfd\x58\x18\xde\x50\x92\xb2\x13\x0c\x65\x21\x76\x83\xcb\x65\xc1\x1b\x60\x25\x48\x67\x09\xc7\x71\x13\x58\x8c\x93\x23\x7d\xc0\x98\x06\xd1\xd3\xb4\xfd\x65\x51\x79\x3a\x58\xc9\xd3\x8d\xd5\x8c\x7c\x5f\xe6\x83\x83\x51\xb8\xdc\xb4\x0f\x42\xcd\x6a\x59\xbb\x75\xeb\x6a\x57\xd5\x26\x6f\xad\x61\xc9\xbf\x1e\xd3\x36\xdf\x13\xa4\xea\xdb\x2b\xfc\x15\xa0\x9f\x02\xf4\x53\x2d\x65\x8e\x13\x27\xf6\x60\x24\xba\xa0\xa4\x07\x4c\xd5\x80\xa9\xba\x0b\x8d\x3e\x98\x30\x96\x4e\x3b\x98\x30\xde\x04\xa6\xea\x8a\x3a\xc4\x0e\x6b\x32\x6c\xa6\x4d\x1c\x55\xce\x5e\xd0\x26\x82\x36\x51\x31\xb5\xa0\x4d\x7c\x83\xda\xc4\x61\x50\x38\xa8\x12\x41\x95\x08\xaa\x44\x50\x25\x82\x2a\xb1\x75\x32\x06\x55\xe2\x75\xea\x35\x54\xe9\x13\x2d\x73\xdd\x8e\x4a\x99\x08\x8a\x44\x50\x24\x82\x22\x11\x2a\x52\x34\xcf\x29\x54\xa4\x08\x15\x29\x42\x45\x8a\x37\x50\x91\x62\x9f\x22\x5c\x0d\x0c\xf2\x71\xc4\xef\x1f\x85\x10\xf7\x6a\x01\xfc\x6f\x4f\xa4\x0b\x29\x09\x21\x25\x21\x98\x28\x43\x4a\x42\x30\xc2\x05\x23\xdc\x41\x1b\xe1\x5e\xcb\xb2\xbe\xe7\xe3\xb9\x27\x41\xf5\x48\xa2\x9d\xff\x72\x0c\xd2\xe8\x9e\xe3\x13\x82\x05\x2e\x58\xe0\xaa\x29\x73\x9c\xae\xfc\x83\x91\x02\x8e\xb1\x24\x65\xd0\x00\xda\x13\x22\x04\x29\xb4\xa7\x55\x08\x52\x68\x20\x4e\xd0\x8f\x82\x7e\x74\x70\xfa\xd1\x2b\x2b\x0e\x07\x1b\xe2\x1c\x34\x08\xf3\x5e\xd0\x20\x82\x06\xf1\x46\x35\x88\x83\xa1\x70\x50\x1f\x82\xfa\x10\xd4\x87\xa0\x3e\x34\x13\x27\xa8\x0f\x41\x7d\x08\xea\xc3\xd1\x84\x35\x1f\x93\x02\x11\x94\x87\xa0\x3c\x1c\xb6\xf2\x70\x30\x13\x0a\x01\xc0\x21\x00\x38\x04\x00\x7f\x33\x01\xc0\x6f\x54\x81\xdf\xae\xd8\xf6\x6f\x96\x50\xef\x3c\x01\x23\x93\x44\xde\xfd\x98\xf0\xe1\xc3\x7c\x46\xf4\xff\x5f\xd2\x29\x61\x12\x28\x41\xd5\xdc\x17\xd3\x6a\x36\xd4\xe2\x56\x7a\x77\xdf\xbb\xfe\x74\xe5\xd7\x1d\x79\xf7\xf9\xf1\xea\xa1\x77\xdb\xb9\xcb\x96\x3b\x9b\x95\xbf\xc4\xf6\xbb\x82\xa4\x69\x4f\xf2\x1d\xd1\x2a\x35\x30\x83\x7b\x85\x55\x2a\xd7\x1b\xd9\x5d\xf7\xbe\x7b\xf7\x0b\xd4\x4d\x19\x5c\xf6\xee\x3b\x3f\x5e\x15\xf6\x79\xe1\x79\xe7\xe2\xef\x8f\xbd\xbb\xfa\xe7\xdd\xff\xea\xdd\x3f\xdc\xd7\x3d\xbd\xeb\x5e\x75\x3b\xf7\xf5\x5f\x7f\xec\xf4\xae\x1e\xef\xba\x8d\xf4\x68\x1c\x6d\xb3\x6e\x25\x81\x48\x50\x3b\x00\x45\x96\x19\x8a\x9c\x86\x28\x93\x8a\x1d\x97\xaf\xea\xeb\x1c\x3d\x5a\x53\x05\xb5\x8d\x9b\x7b\xc3\x6b\xc8\xe8\x58\x31\x95\x78\x98\x90\x78\xa1\x25\x47\xc3\xba\x96\x70\x61\x50\x2f\x58\x7a\x92\xb4\x66\xe5\x91\x39\x3e\x08\xaa\x39\x29\xc2\xe2\x8a\x3e\xcc\x3a\xd4\xf6\xc0\x34\x4b\xa6\xcf\xa4\xd0\x53\x94\x0a\x41\x98\x4a\xe6\x88\x7c\xa5\x52\xc9\x85\x46\xdd\xf2\xd5\x35\x6b\x19\x42\xd6\xe0\x04\x4b\x34\x24\x84\x15\xc7\x2f\x48\x42\xb0\xac\x18\xb3\x5d\xfd\x76\x64\xc9\xd6\xca\x1a\x99\xcc\x1d\x3b\xc2\x34\x49\x05\x29\x9d\x16\x3e\x9d\x61\x41\x25\x67\xdd\xaf\xfa\x8a\xd6\x07\xf9\x06\x3e\xe7\x62\xbd\x13\xd3\xfd\xbb\xbf\x83\xaf\x8b\xff\xfc\xf4\x50\xfc\x57\xe1\xcc\x5f\x3d\x14\xff\xd5\xbc\xd7\xbd\x86\xcb\x3b\xfb\x14\x7d\x7a\x38\x47\x9f\x00\x62\x54\xa0\x87\x09\x36\x3b\xf6\xea\xe1\x1c\x5d\x11\x29\xe1\x97\xfc\x63\x45\x55\x02\x73\xfb\x91\x32\x2c\xe6\xc8\x4d\xdf\x94\x04\xc3\xd1\x04\x91\x8c\x34\x65\xe2\xb1\x7f\xa4\x0c\x2c\x12\x39\xf5\xae\xf8\x98\x46\x38\xd9\x8c\x88\x9d\xeb\x02\x1f\xb8\xb9\x6b\x24\x85\xff\xf6\x22\x2d\x3a\xd7\x97\x50\x6e\xcb\x0d\xb5\x62\xe6\xd7\x44\xea\x4d\x12\x71\x16\x5b\x9f\x9a\x16\x6a\xe6\x9e\xae\xf2\x0f\x0e\x25\xcb\x52\x49\xd9\x58\xb7\x88\x3e\xa0\x9b\xbb\x3e\xbb\x11\xb1\xb1\xef\x12\x2d\xe4\x9b\x3d\x47\x25\x62\x5c\x21\x3a\x9d\x71\xa1\x30\x53\x5a\xbf\x01\xe9\xc6\x52\xc4\x70\x80\x0b\x3e\x9d\xa6\x0a\xeb\x83\xb6\x40\x54\x66\xac\x3c\xf7\x44\xf5\x62\x70\x84\x55\xd0\xd0\x88\x3f\xf9\x5c\x66\x42\xb7\xaf\x45\xaf\xa2\x69\x80\xc6\x0b\x1a\xba\x6b\x02\x0b\x81\x8b\x17\xf0\x3b\xaa\xc8\xb4\xfc\x7e\xcb\x6b\xf7\x5f\x95\x76\x8f\x0b\x93\x15\x41\x44\x47\x44\x13\xaa\x48\xa4\xf4\x11\x5c\x6b\x4f\x3c\x5e\xff\x7c\x7d\xf3\xc5\x17\x8c\xde\x75\x3e\x5f\xfe\x47\x01\x06\xb6\x73\xf7\x79\xe1\x87\xc1\x2f\xff\xb1\xf0\xcb\xff\xbf\x71\x3f\x95\x7b\x5a\x30\x5f\x78\x73\x39\x05\x4d\x01\x4c\xdd\x6e\xaa\x88\x4e\xf1\x98\x20\x99\xce\xf4\x0e\x90\x67\xc5\xf5\xd5\x92\xf2\x15\xc7\x31\x65\x63\x53\x55\xea\x8a\x2a\x22\x70\xf2\x19\xcf\x3e\x3a\xb3\xfc\x1a\xd4\xf9\x3f\xf7\x85\xca\x66\xef\x7e\xed\x7c\xf6\x6b\xa3\xbd\xbb\xbd\xbb\x79\xb8\x69\x9c\x75\xa1\x85\xc5\x63\xa4\x1f\x9f\xc3\xff\xa2\x0f\x48\xb7\x9e\x09\xf4\x53\xa2\xb0\x56\x74\xd0\x77\xa6\x10\x4f\x96\x09\x43\x59\x02\xa7\x66\x26\xe8\x94\xc2\x95\x62\x0c\x93\xdf\x1b\x9d\x21\x53\x8a\xb2\x73\x63\x3e\x00\x23\x80\xbb\x94\x59\x8c\x45\x8c\xfe\x21\xcb\x85\xf6\xc0\x1e\x6e\x7e\x20\x31\x3a\x45\x13\xa5\x66\xf2\xfc\xc3\x87\x97\x97\x97\x33\xfd\xb6\x16\x60\x3f\xe8\x3f\x4e\x09\x3b\x9b\xa8\x69\x62\x0a\x0b\x6a\x2a\x9c\xa3\x5b\xc1\xf5\x15\x02\x76\x07\x22\x28\x4e\xe8\x3f\x49\x8c\x86\x86\xff\xf1\x11\xfa\x2d\xe2\x82\x9c\xe5\x0b\x63\x6d\x65\xf6\x1e\xb1\xf6\xb4\x0f\xfa\xa5\x0a\x66\x52\x5e\x4f\x14\x93\x88\xc6\x56\xcc\x20\x2c\xe2\x60\x50\x35\x2e\x18\xdd\x9e\xab\x5e\xa4\x15\xb5\x59\xaa\x72\x72\x7a\x3a\x18\x8e\x89\x57\x17\xd0\xca\xd7\xd9\x86\xd3\xfa\x5c\xcf\x68\xe3\xa9\x24\x02\xee\x56\x0c\xb7\xaa\x7b\x75\xa6\x27\x1c\xf1\x04\x0d\xd3\xd1\x88\x08\x3f\x7c\xe0\x44\x2b\x69\x54\x22\x41\x22\x3e\x9d\x82\xc4\xa0\xbf\x4a\xa5\xd9\xd5\x40\x31\x3b\xda\xb3\x3e\x83\xf5\xd7\xda\x1b\xec\x80\x98\x03\xab\x63\x84\xc4\x08\xb3\xb9\xe9\x66\x98\x8e\xfc\xf6\x4d\xc1\x4e\x1c\x23\xaa\xfa\xac\x93\x24\x48\x90\x29\x57\xc4\xab\xcb\x04\xae\xce\x22\xc1\x81\x45\x0a\x32\x4b\x70\x44\x62\xb3\x1f\x12\x1e\xe1\x04\x8d\x68\x42\xe4\x5c\x2a\x32\xf5\x1b\xf8\x0e\x4c\x50\x9a\x66\x54\xa2\x98\xbf\xb0\x84\x63\x3b\x8f\xf2\x67\xdf\x17\x4f\x63\xd7\x15\x53\xec\x0a\xc1\x05\xfc\xcf\xcf\x94\xc5\x5b\xe3\x50\x8f\xf7\xdd\x3b\xff\xdf\xf7\xbf\xde\x3f\x74\x3f\xaf\xc6\x7d\xb2\x9d\x05\xc3\x03\xd3\xc4\x39\xba\x37\x44\xe0\x42\x4b\x44\xa2\x66\x52\x9f\xed\x56\xca\x7f\xe0\xf1\x9a\xdc\xf7\x73\xe7\xfa\xb1\x53\xe0\x28\xf7\x17\x3f\x75\x2f\x1f\x4b\xfa\x80\x9d\x5f\x41\x86\x37\x5a\xad\xff\xdb\xc5\x4f\xbd\xab\xcb\x41\x85\x1e\xfc\xee\xae\x7b\x71\xf3\x4b\xf7\x2e\x57\x59\x2b\x49\x54\x1a\x4c\x99\x59\x3d\x18\xa6\x34\xe1\x31\x1a\xce\xab\x4b\x67\x6a\xc9\x39\x01\xcf\x79\x5e\x3c\xd6\xb4\x7a\x0e\xbc\xc9\x55\x31\xcd\xbf\x98\xf2\x98\x9c\xd8\x77\xa0\xe6\xa8\xb1\x19\x19\x89\xb9\xba\x61\xdd\x3b\x66\x9e\xfd\xc5\x94\x03\xcd\x08\x77\x8e\x3a\x48\xea\x17\x53\x7d\xa8\x05\x1d\x8f\xc1\x1e\x5a\x1a\xaa\x69\xcd\x7e\x0a\xe4\x85\xef\xcc\xfa\xcf\x04\x87\x73\xae\xbb\xb5\x86\xf4\xcc\xd8\x62\x3e\x84\xfa\xb4\xc5\x16\x05\x06\x3b\x4a\xc5\xd0\xdc\x62\x69\x22\xd4\xd2\xcb\x9c\x47\x63\x06\xd3\x87\x0b\xd8\x96\x34\x66\xdc\x99\x20\xcf\x94\xa7\xde\xa7\xb6\x04\x6a\x61\xc5\x2b\x9b\xcf\x09\x00\x64\x33\xb6\x9e\x52\x33\xd9\xf6\xa8\x6c\x41\xb3\xb0\x67\x68\x61\x24\xf8\xb4\xa2\x8d\xe2\x31\xe9\xdd\xdc\x2b\x81\x15\x19\xcf\x2f\x2d\xcb\x58\xff\x78\x5c\xde\x7c\xb9\xbe\xba\xe9\x5c\x0e\xba\x9d\x4f\xc5\x13\x9f\x3d\xb9\x7f\xb8\xeb\x76\x3e\x17\x1f\x0d\xae\x6f\x1e\x06\xee\x8d\xc6\x2d\x5f\xd3\xc1\xe2\x3d\x5d\x7c\xf1\x1c\x69\x96\x0b\xac\xf1\x85\x26\x89\xbe\x4c\x3c\xfe\x38\x24\x23\x2e\x0c\x9f\x9f\xba\x40\x13\x2b\xc2\x38\xda\x5a\x5d\xac\x34\x8b\x73\x30\xf8\x55\x35\x69\x8c\xf9\x4a\x10\x3c\x85\x7b\x02\x33\xd4\x65\xf1\xe9\xcd\xe8\xf4\xde\xfc\x38\xc5\xe2\x89\x88\xec\xd3\x17\x41\x95\x22\xac\xa0\xd2\x61\x37\xe4\x4c\x49\xcc\x3b\x38\x43\x77\x9a\xef\xeb\xf7\xb3\x4b\x4d\x6f\xf6\x98\x28\x4c\x13\x69\x07\x5b\xa0\xeb\x39\xba\xc2\x62\x9c\x9b\x17\xbf\xe3\xa3\x91\x69\xec\x7b\x33\x0c\x7d\x87\x15\x66\x51\xc1\x7b\xf5\xd6\x70\xf7\x22\xf4\x67\x5f\xce\xe4\xe1\xc5\x5d\xf5\x38\xdb\x6c\x4f\x3d\xde\x02\xc5\x8d\xc6\x5e\xd0\x0d\xed\x93\x8a\xbd\x06\x13\x37\x8f\x9b\x2f\x99\xea\xb6\x17\xb7\x53\xf1\xc5\x8a\xed\x64\x6a\x99\xe8\x95\x1f\x69\x6d\xb3\x62\x2f\x91\xaf\xd4\x1a\x0c\xfc\x71\x97\xb6\x50\xde\x0c\x58\x8d\xf1\x6c\x46\xb0\x90\x55\xab\x5d\x14\x03\x6b\xd6\xde\xf4\xe4\xf7\x61\x17\xd9\xf5\x73\x82\x38\x03\x83\x43\x26\x44\x94\x76\x64\x8b\x3d\x60\xda\x5a\xd8\x01\xb7\x50\x97\xfa\xc6\xd6\x80\xfe\x4c\xa5\x56\x1a\xcd\x8f\x3f\xda\xe2\xd4\xeb\x6d\x88\x8f\x9d\xde\x55\x49\xb8\x18\x5c\x76\x3f\x76\x1e\xaf\x9a\xcd\x84\x85\xef\xca\x4b\x8c\x4e\x91\x7e\x5e\x0c\x07\xa0\x23\x73\x67\xb8\x12\xdb\x46\xa5\x25\x0c\x8c\x56\xb6\xfc\xad\x31\xc3\xc7\x64\x96\xf0\xf9\x94\x30\x30\xf1\x14\x6e\x42\x4d\xcf\x11\xa6\xf6\x6a\xf1\x06\x0b\x56\x1c\x6b\x76\x83\x6b\xec\xd4\xd5\xf5\x26\x71\x76\xf3\x16\xcb\x7a\x97\x58\xf7\xad\x71\x0a\xda\xff\xbb\x57\x58\xad\x79\xc6\x3a\x17\x0f\xbd\x5f\xba\x45\xfd\xf0\xe2\xa7\xde\x2f\x55\x52\xcd\xe0\x53\xf7\xba\x7b\xd7\x79\x58\x22\x9c\x94\x9a\xac\x12\x4e\xa4\x1e\x70\xd9\x29\x4c\x65\x16\xe8\x14\x99\xe2\xe0\x88\x2a\x89\x9e\xa9\xa4\x43\x0a\xa5\xd4\xad\x83\xf5\xb1\x07\x9c\xf5\x19\x27\x34\xa6\x6a\xee\xc4\x17\xd3\x6f\x71\x1d\x35\x27\xb5\xed\x1b\xb3\x83\xef\x76\x05\x2b\x9f\x59\x1c\x37\xe9\x73\x04\xba\xed\x33\x28\x6d\xde\x67\x4c\x0b\xd2\x6c\x4c\x84\x19\x0e\x38\x95\xfc\xb1\x78\xcf\xf5\xa8\x7c\x61\x25\xa7\x5a\x26\xb4\x8e\x09\x23\x02\xca\xe5\x67\x9d\x18\x41\x4a\x10\xf6\x5e\xcb\x5c\xb3\x84\x46\x54\x25\x73\x14\x81\x0d\x0b\xcc\x99\x53\xcc\xf0\xd8\x0a\x07\xa0\xe6\x94\xb6\xc4\xdf\x4d\xbd\xf9\x9b\x91\x35\xed\x3f\x50\xb2\xe6\x31\x7b\xbc\xbe\xec\x7e\xec\x5d\x17\xb7\xc0\x4f\xbd\x4f\x05\x11\xf6\x73\xf7\xb2\xf7\x58\xb8\xcd\xb5\x24\xdb\x2c\xd7\x97\x9b\xad\x38\x8a\xd9\x4b\xe7\xe8\xd2\x7c\x7a\xae\x89\x5b\x51\x4c\x3f\x53\x7e\x4b\x74\xb8\x73\x91\x86\xee\x8f\x2e\x53\xa2\xd2\x2f\xd1\xd6\x84\x64\xbd\x42\x05\x1b\x52\x75\x04\xc6\x42\xdf\xd7\x65\x5f\x79\x79\xca\xee\x45\x08\x91\x3d\xcb\x2d\x4b\x7e\x68\x06\x18\x0d\xea\x8c\x58\x15\xde\xba\x9c\x61\xff\x02\x9e\xf7\x69\x2a\x95\xf1\x90\xc2\xe6\x44\x4f\x7f\x93\x9a\xa0\xe0\x41\x3d\x43\xf7\x84\xf4\x99\xb3\x1e\x8c\xa9\x9a\xa4\xc3\xb3\x88\x4f\x3f\x3c\xa5\x43\x22\x18\x51\x44\x7e\xc0\x33\x3a\xc5\x5a\x92\x26\x62\xfe\x61\x98\xf0\xe1\x87\x29\x96\x8a\x88\x0f\xb3\xa7\x31\x04\xf6\x38\x4f\xd7\x87\xac\xd9\x31\xff\xf7\xab\xbf\xfc\x70\x7a\xf5\xb7\x1f\xde\x2d\x5a\xc8\xea\xd6\xbf\xcb\x22\x3c\x93\x69\x62\x03\x01\x85\x4f\x1b\x77\xe4\x53\xb2\x6c\xbd\xaf\x8b\xcb\xb5\x99\xfe\x7a\x71\xfb\x58\xb0\x58\x17\xff\xf9\xb9\xfb\xf9\xe6\xee\xd7\x02\xa7\x7c\xb8\xb9\xeb\x7c\x2a\x30\xd4\xee\xed\x4f\xdd\xcf\xdd\xbb\xce\xd5\xc0\x3d\xdc\xc4\xf6\xf6\x33\xe3\x2f\xac\x48\x1a\xe9\x38\xe0\x42\x4f\xe7\xe8\x23\x17\xe8\xe7\x6c\x25\x4f\x87\x58\xc2\x15\xe3\xee\x2c\x79\x82\x66\x3c\x06\xc6\x8b\xc8\x6c\x42\xa6\x44\xe0\xc4\xda\x0c\xa4\xe2\x02\x8f\xcd\x4d\x2f\x23\x81\x55\x34\x41\x72\x86\x23\x72\x82\x22\xd8\x0d\xe3\x13\x58\x14\x50\xb5\xf8\xb8\x6c\xe7\xbb\x4b\x99\xa2\x53\xe2\x54\x70\xfb\xcf\x07\xb3\x18\x6b\x2c\xce\xcd\xc3\x4f\x45\x61\xef\xe3\xd5\xaf\x0f\xdd\xc1\xfd\xe5\xcf\x8d\xf4\x34\x9f\x15\x46\x76\x0f\x71\x55\x17\x3c\x49\xa7\xcc\xff\x7b\xfd\xb1\xf5\xae\x1f\xba\x9f\xca\xa3\xbb\xe9\x3c\x14\x77\xc6\x5d\x31\x6e\xef\xdd\x8f\x37\x37\x57\xdd\x82\xa7\xfb\xdd\x65\xe7\xa1\xfb\xd0\xfb\x5c\xd8\x3f\x97\x8f\x77\xe0\x03\x6a\x9c\xa6\x1b\x41\xc5\x44\xf5\xb4\xfc\x69\x6e\x9b\x15\xb6\xe2\x44\x1d\x1b\xfe\x6f\xce\xf2\xa9\x87\x97\x63\xa2\xdc\xc0\xaa\x73\x9a\x99\x54\x23\x33\xd2\x4a\x76\xa8\x8a\xcb\x84\xea\xd9\x71\xe3\x42\x37\x71\xe5\x87\x6c\x08\x30\xae\x33\xa3\x6c\xe3\x24\xe1\x2f\x26\x42\x79\x4a\xf5\xad\x6c\x8b\xad\xeb\x57\x64\xee\x21\x3c\xab\xe0\x78\xc5\x65\x21\x91\x20\xea\x33\x4f\x99\x5a\x7f\xcb\x75\xae\x0b\x7c\xa7\x7b\xfd\xcb\xe0\x97\x4e\x71\x07\xf6\xae\x9a\x59\x8d\xdf\x44\xc5\x55\xdc\xb9\xfe\x35\xbb\x84\x21\x8e\xfd\x24\xd3\x50\x8d\xec\x1a\x25\x54\x8b\xbd\x11\xd6\xda\x6b\x02\x12\x0d\x22\x14\x4c\x0e\x53\x3d\x39\x88\x9b\x9d\x19\x7f\x92\xe1\x4f\x66\x90\xe7\xee\x8f\x52\x7b\x12\xe8\x02\xd6\x54\x97\x26\x00\xed\x58\xad\x9a\x21\xc2\x9e\xa9\xe0\x0c\x84\xed\x67\x2c\xa8\x96\xc6\x4d\xcb\x7a\xae\xe7\xf0\xbf\xab\xb5\x09\x86\xd1\x12\xe3\xba\xe7\x42\x5d\x66\xf1\xc9\xeb\x59\x43\xaa\xe2\x74\x17\x23\x74\xab\x0d\x1d\x8b\xdf\x56\x2c\xce\x86\x71\xcc\xc5\x09\xff\x9e\x5c\x52\x9c\x68\x06\xb0\x3d\x79\xb1\x73\x7d\xdf\x2b\xca\x8f\x45\x35\xc3\xe3\xcb\x6b\xcb\x8b\x60\xa8\x34\x23\x77\xca\xc4\xfd\xdf\xaf\x8c\x76\xa1\x37\x89\x3d\xb7\x9e\x62\x01\x02\x90\xab\x42\x3a\xc3\x42\x96\xbe\x90\x08\x90\xcc\xf2\x38\x32\x7d\x67\x41\x94\xd6\x33\xa7\x71\x9f\x91\xaf\x33\xc2\x24\x04\x07\x98\xfb\x2c\xf7\xb5\xcb\x33\xd4\x1b\x01\x4b\xd0\xaf\x33\x94\x32\xeb\x00\xd3\x17\xae\x19\xe4\x89\x16\x65\xed\x10\x32\x0d\x11\x0c\x2f\x8c\xb8\x18\xb0\x7c\xf0\x7d\xf6\x25\x73\xa2\xc1\xa3\x11\xd7\x0c\x48\xaf\xa2\x6d\xef\x1c\x61\x26\xe9\x09\xd2\x0a\x4b\x79\x4d\x21\x23\x42\x2b\x94\x36\x32\x4d\x73\x1a\xfb\xe7\xfe\xaf\x81\x85\xf0\x67\xff\x32\xa8\xbe\x0b\x4a\x57\x41\x8d\x68\x9c\x18\x8f\xc9\xa0\xfd\x9d\x10\x71\x41\xac\x9f\x65\xe5\x6b\x60\x19\x63\x7f\xc0\xf2\x69\xc1\xf7\xd0\x63\x52\x61\x16\x91\x8b\x04\xcb\x35\x83\x90\x9c\x8d\xe3\xa4\x28\x71\xdc\xdd\x3d\xde\x3e\xf4\x7e\x5c\xc2\xe5\xcb\x1f\x2f\x86\x01\x45\x49\xea\xdc\x73\x43\xc1\x71\x8c\x34\xfb\x1c\x73\xe3\x0a\xb4\x82\xbf\x39\x41\x66\x4d\xa8\xf4\xe2\x44\xb1\x7c\x2a\x18\xa9\x6d\x96\x85\xb5\x73\xf8\xae\x04\x6a\x09\x81\x22\x4d\x09\xe4\x99\x3c\xdc\x52\x83\x67\xd1\x44\xd1\x59\xeb\xd6\x2c\xc1\x6a\xc4\xc5\xd4\x70\xf9\xc2\xa4\x4d\xe3\xcd\x8d\x52\xa6\x88\x10\xe9\x4c\x81\xca\xae\xc7\x5a\x96\x52\xf5\x92\x5d\xf1\xf1\x67\x22\x25\x1e\x93\x4d\x1c\xd0\x55\xca\xc3\xfd\x2f\xfe\x3f\xc1\xc1\xdc\x46\xf6\x2f\x8c\xd0\x05\xf4\xbb\xfd\x74\xc3\x3e\x9a\x40\x9e\x5b\x9e\xd0\x68\xcd\x80\xbb\x8f\x9d\xde\xd5\xa0\xf7\x59\x2b\xf1\x9d\x87\xee\x55\x41\x94\x80\x67\x9d\x8f\x0f\xdd\xbb\x41\xf7\xbf\xba\x17\x8f\x0f\x9d\x1f\xaf\xba\x83\xeb\x9b\xcb\xee\xfd\xe0\xe2\xe6\xf3\xed\x55\x77\x49\x64\x4e\x6d\xe3\x8b\xd6\xd5\xf2\xab\xe7\x0b\xbf\xc0\x0a\x6b\x5e\xe6\xdb\xcb\x20\x19\x0e\xd3\x04\x9c\xe0\xdc\x38\xc3\x31\x62\x3c\x26\xf0\xb3\x74\xd6\x19\x97\x6d\x72\x86\x7a\xea\x7d\x92\x20\x9c\x2a\x3e\xc5\xe0\xb5\x49\xe6\x7d\x86\x87\x9a\xb5\xe2\x24\xf1\xc2\xbb\x44\xca\x98\x66\xb1\xba\x31\x69\xe2\x8b\x13\xa2\xd9\xf9\xcc\xcb\x61\xb4\x7e\x83\x11\x65\x10\x40\x3c\xc5\xe2\xc9\xb8\x99\xf2\x2e\xf3\x43\x21\x11\x96\x7d\xa6\xc7\x45\xac\x61\xa8\x0d\x85\xcf\x5b\xbd\x55\x4b\x9d\x29\x7e\x22\x9a\x2a\xd3\x34\x9a\xa0\x99\xe0\x63\x41\xa4\xb4\xb6\xe5\x08\x33\x13\x80\x60\x5f\xd7\xd7\x50\x9f\x31\xae\x49\xe1\x4c\xd8\x31\x99\x11\x16\x13\x16\x51\x93\xad\x08\xbe\xfb\xcc\xb4\x39\x16\x78\x36\x41\x92\x83\xd3\x1b\xc8\x0e\xf6\x2b\xf3\x91\xbb\xc9\xcc\x8c\xcd\x63\xdf\x02\x2d\x52\xcd\x27\x6e\x40\x4e\x34\x54\x86\x8f\xdd\x65\xe8\xdc\x2e\xc6\x0e\x38\x9d\x25\x04\xba\xb4\x24\x87\xc5\xd0\xb4\x2e\xac\x87\x5e\xa6\xaa\x45\xd0\x17\xb6\x1b\x33\x96\x76\x44\x67\x15\x96\x6d\x7b\xa4\xd0\x4f\x98\xc5\x89\x6e\xc5\xf9\x30\x8a\x67\x11\x32\x6c\x3a\x7a\xd7\xb8\xd3\xb8\xc9\x2d\x1a\xe1\x54\x6e\x72\x8d\x96\x52\x4c\x8d\x55\xf0\x34\x0f\x0a\x81\xed\x6d\xf3\x4b\x81\xba\x33\xcd\x22\x71\xc2\x2d\x95\xcc\xeb\xa9\x0d\x5a\x86\xd1\xd4\x5c\xb3\x33\x41\x59\x44\x67\x38\x59\x4b\xf7\x2b\xe5\x18\xd8\xd0\xfd\xef\xe8\x48\x6f\x9f\xef\x17\xdc\xb6\x8a\x88\x29\xa4\x93\xdb\x61\x66\x4b\xb8\x82\x25\xc9\x26\x6b\x10\x99\x47\x93\x60\xc1\x53\xe3\x8f\x03\xba\x90\xb8\xe2\xa8\x9e\x55\x2d\xb7\x3e\x19\xb8\x18\x00\xbd\xc6\x62\x9b\xc8\x9f\x3a\xfa\x95\x5a\xb1\xbd\x9b\x60\x3c\x9c\xdc\x56\xb7\x59\xb5\x02\xde\xc3\x7f\x35\xed\x9d\xcf\x78\xa6\xf7\x4c\x94\x4a\x05\x9e\xe2\x6c\x8e\x56\x49\x2a\x85\xb2\x7b\xbe\xf3\x2c\xa8\xbd\xfd\x6a\xe4\x24\xb4\x01\x50\x8b\x9d\x14\x62\x08\x3c\x44\x00\xbb\xc7\x47\xa9\x96\x65\x11\x86\x28\x04\xf4\x1d\x39\x1b\x9f\xa1\x9b\x5f\xba\x77\x77\xbd\xcb\xee\x09\xea\xdc\xde\x76\xaf\x2f\x4f\x10\x51\xd1\xf7\x2e\x66\xd1\x06\x2c\xf5\x99\xe2\x56\x5a\x99\xa3\x09\x7f\x01\xde\x48\xc4\x98\x14\xe6\xec\xa2\x9b\x20\x54\x79\x4c\xa5\xb2\xe1\xb3\x9a\xaf\xe4\xc3\xd2\xf2\x7e\xe5\x0e\x49\xd5\x64\x93\xad\x81\xa5\x4c\xa7\x5a\x97\x1d\x50\x3c\x1d\x08\x9e\x6c\xc2\x14\x2e\x61\x2a\xa0\x2e\x67\x60\x0a\x14\x4f\x91\x6e\xd6\x86\x82\x64\x2e\xc7\x4c\xa4\xd3\x82\x91\xe6\xcb\xfa\xde\xf4\xee\x2d\xe7\x7d\xb0\xf1\x68\xd4\x85\x40\x00\xd8\x42\x0d\xab\xc8\xcd\xc6\x03\x6b\xa9\x1f\xe0\x28\xd2\x2a\xf7\x96\x27\x95\x77\x94\xb9\x04\x6c\x47\x3b\x9b\xe6\xb2\x7d\xee\x86\x39\xd3\x1c\x0c\x82\x81\xf5\x95\x2b\x79\x44\xf3\xf6\x2b\xfa\x1d\xce\x17\x7a\x85\x2d\x7b\xd6\x67\x8f\x32\x33\xa9\x98\x4b\x58\x12\x58\x49\x89\x5e\x26\x04\x8e\xc6\x1c\x4d\xf0\x33\x29\x74\xe9\x72\x48\x74\xc3\x73\x9e\x8a\x2a\x46\xd7\x67\x97\x64\x26\x88\x96\xf4\xcb\x0e\x94\x6c\x4f\xdf\x15\x77\x62\xd8\xd7\x61\x5f\x1f\xfd\xbe\xbe\x48\x52\xa9\x88\xe8\x48\x49\xc7\x60\x48\xdc\x48\x80\x33\x8d\x0d\x66\x9c\x27\x83\x16\x36\x91\xf6\x14\x2f\x78\xc2\x0a\x01\x1f\xd2\x20\x1d\xf0\x14\xe4\xa3\xc2\xb5\xc9\xf5\x5d\xe7\x65\x0e\xdb\xe1\x35\x90\xc1\xb9\xcc\x3a\x0e\x50\x62\x23\x11\x07\x57\xb5\xd2\xd4\x12\xda\xb9\x98\x73\x61\xe4\x9b\xcc\x5d\x96\x0f\xb1\x74\x98\x9c\x28\x42\x99\x23\x5b\xfe\x11\xec\x67\x4d\x60\x23\x77\xfc\x9e\x72\x85\xe5\xf7\x67\x7d\xa6\x85\xa8\x27\x32\x37\xe6\x56\x2d\xa6\xfc\x41\xcb\xe2\xa7\x92\x30\x09\xe1\xde\x7f\x30\xee\x39\xbd\xc5\x9d\xb9\xda\xa8\xa6\x64\x3a\x4b\xb0\x82\xa0\xeb\xac\x17\x08\xd1\xb5\x8d\x5a\x29\x29\x0f\x80\x06\x39\xdf\xcc\xc5\x3e\x33\xc3\x1f\x13\x05\x99\xe3\x8a\x2a\xd0\x99\xe2\x54\x93\x67\x71\xe8\x4b\x4d\x57\x66\x57\x08\x0e\x7e\x92\x38\xdd\x8c\xf1\xcb\xc5\x36\x96\x72\xc6\x4c\x5b\xb8\xb7\x31\xef\x1f\x9c\xdd\x28\x12\x9c\x95\xa2\x61\xb4\x32\x67\x56\x7a\x68\xd8\x81\xf3\x5f\x13\x76\xf6\x42\x9f\xe8\x8c\xc4\x14\x43\x04\xbc\xfe\xd7\x07\x3d\xaf\x7f\xbf\xb8\xbb\xb9\x1e\xe4\x99\x3c\xff\xd9\x67\x9d\x44\xf2\x2c\x4b\x01\x31\xce\xb2\x70\xfb\x99\x20\x4e\x24\xb4\x73\x01\xab\x6b\x6e\x46\xec\xb3\xba\x11\xc4\x3c\x92\x67\xf8\x45\x9e\xe1\x29\xfe\x27\x67\xe0\x4a\xef\xc0\x9f\x17\x09\x4f\xe3\x2f\x58\x45\x93\x0f\x70\xae\xd5\x07\xf2\x4c\x98\x32\x6e\x2a\x4d\xae\x18\x72\x92\x25\x44\xeb\xff\xbb\x1e\x73\x9e\x54\x24\xb5\x26\x1b\x91\x99\x42\xff\xaf\x20\x43\xce\x55\xf5\x25\xc5\x47\x23\x49\x56\xba\x90\x72\x25\xed\xfe\x06\xfd\xed\x3f\x7e\xf8\x93\xde\x42\xeb\xd0\xb8\x77\x7f\x33\xd0\xdf\xff\xfb\xa5\xfd\x5e\xae\xc0\xee\x4c\x2a\xad\xb4\xae\x66\x43\x0d\x13\x38\x9f\x32\xb8\xfd\x04\x38\x2f\x80\xbd\xc1\x76\xc8\xd7\xb1\x8a\xbb\x5d\x16\x5a\xdf\x4c\x65\x5b\x8b\x98\xa0\x62\x7b\x73\x44\xa7\x88\x71\x34\x35\xb1\xa6\x98\xa1\xbf\xfe\xfc\x63\xf5\x02\xa6\x82\xae\xd5\x21\xb5\x28\x14\x5e\x97\x92\xfe\x93\x48\xa4\x77\x8d\xde\xc5\x7c\xaa\xbb\x16\x44\x4e\x78\x12\xa3\x17\x02\x6a\x92\x8d\x03\xcd\xb4\x72\x41\xfa\xcc\x6f\x02\x42\x0e\x11\x4e\x14\x1f\x13\xb8\xab\x9d\xa2\xa6\x88\xd0\xa2\x8a\xc9\xd2\x50\x5c\x90\x13\x03\xcc\x76\xff\x17\x17\x5b\x0d\xd3\x84\x47\x2e\xa9\xc5\x9a\xe4\xe2\x61\xf5\xcc\x47\x65\xd3\x2b\xaa\xb7\xe1\x97\x17\xd9\x9a\x6d\xab\x49\x63\x93\x50\xac\x0d\xab\xbc\x32\xd5\x83\xa1\x11\x67\x83\x84\xb2\xa7\xb5\x16\xc3\x25\x86\x23\xdd\x82\xa5\x99\x6e\x31\xb3\x73\x1b\x0b\xc8\x0a\xe7\xe3\x63\x9a\x24\x26\xb5\xc5\x5f\x1e\x90\xbb\x0c\xdd\x40\x18\x98\x99\x1c\x50\x12\x5b\xbf\x97\xd5\x84\x05\x61\x10\xf0\xd6\x67\xc3\xb9\xf5\xd9\xca\x13\x24\xd3\x68\xe2\x32\xf3\x22\xce\xa4\x16\xa3\xb9\x40\x11\x9f\x4e\xb5\xd6\x0b\x4b\xa6\x38\x4f\xa4\x8d\x76\x67\xa7\x0a\x47\xaa\xcf\xf2\xfe\x96\x9c\x3c\x53\x94\x69\xb3\xd4\xbd\xf6\x2e\x9d\xbc\xf8\x53\xa3\xc0\x4d\x63\x1f\x8a\x02\x8c\x60\xc6\x13\xe5\x81\x5a\xf0\xc5\xb3\x64\x16\xac\x46\x33\x90\x13\x2e\xd4\x20\xae\xe4\x39\x4b\x37\x4d\x99\x11\x32\x72\x9a\x40\xd0\x30\x7f\xd6\xc2\x3f\x79\xc9\x8c\xaf\x4d\x43\xd0\xbb\xba\x69\x04\xed\x8e\x51\xe3\xc8\x56\xdd\x82\x35\xb4\x32\xc0\x24\x51\x31\x26\x7c\xd9\x18\xef\xe1\xab\x0b\xfd\x51\x23\xf1\xca\xe7\xce\x09\x41\x3c\xce\x31\xf4\xcc\xbd\x6e\x33\x42\x9a\x68\x6a\xa1\x13\x76\x97\x39\xda\x34\x95\xc7\xa2\x25\x57\x8f\x05\x4c\xf6\x92\x80\xac\x89\xc5\x90\x2a\x81\x45\x01\x00\x25\xd3\x07\x25\xc1\x02\xe2\xb3\xfa\xcc\xc0\xe1\x19\x4d\x21\x46\x31\x95\x90\x20\x02\x77\xa9\xe7\x0c\x43\xed\x94\xc0\xd2\xd1\xce\xf3\x1c\x4d\xfc\x39\x04\x96\xe5\x5b\xc3\x31\x3b\xdd\x51\x06\xfb\xa5\xf5\x33\x1e\xa5\xb9\x20\x17\x81\x84\x6b\xa1\x82\x10\x65\x92\x8e\x27\x0a\x51\x66\xed\x8e\x38\x19\x73\x41\xd5\x64\x2a\x4f\xd0\x30\x95\x5a\x0b\x35\xc1\x6a\x26\x1e\x85\xa8\xa8\x15\x17\xda\x34\x89\x38\x2e\x35\xb8\xa8\xa2\xac\xb1\x35\xda\x1d\xca\x6e\xe9\xae\x58\xb2\x71\x3a\x19\x7c\x62\xb9\x0d\x4a\x64\x86\xba\x89\x4c\x1c\x20\x77\x80\x55\xbf\xa7\x44\xaa\xba\x73\x00\x60\x97\x5b\xf3\x52\xec\xa3\x92\x16\x32\xc9\xa0\x82\xb8\xd8\x6d\x90\xbc\x8a\x80\x9b\x06\x94\x2a\x73\x3a\x4d\x67\xaa\x32\x70\x6b\xd1\x55\x74\xe7\x41\x19\xb5\x23\x36\x24\x63\xc1\x6e\x06\x00\xba\x3e\xbb\x27\xa4\x1e\x9f\x6e\x61\xed\x7f\x83\xa3\x04\x53\xb0\x89\x1e\xcd\x5b\x7e\x13\x27\xf6\x65\xf7\xfe\xe2\xae\x77\x6b\x20\x27\x6e\xee\x3e\x77\x1e\x06\x15\x7e\xed\x8a\xb7\x3e\x77\xee\x7e\xbe\x5c\xfe\xda\x4f\x0f\xc5\xac\xec\x8a\x57\xee\xee\x9b\x93\x39\x5a\x0c\xb1\x22\x29\xac\xb2\x9f\x73\x34\x9b\xab\x09\x67\x59\x88\x42\x5c\xe0\x4d\xa7\xc8\x64\x04\x2b\x08\x21\x12\x52\x55\x38\x0e\x1f\x20\x2e\x67\xb9\x84\x59\x5c\x2c\x83\x2e\xb7\x55\xd1\x68\x85\x13\xf9\x29\xe1\x43\xf0\x5b\x5b\xd9\xc7\x02\xd3\x35\x44\xa0\x6f\x18\xef\x73\x49\xe5\x2c\xc1\xf3\x85\x1e\x96\x5d\x39\xd7\x78\x4a\x20\xe2\x38\x87\xc5\x73\xc9\x22\x7a\x65\x20\x81\x29\xbb\xd7\xe9\x08\x32\x99\x14\xc5\x8a\xa0\x21\x51\x2f\x90\x37\xe7\x7e\xcd\x6c\xa9\x2e\x60\x44\x9e\xf5\x19\x98\x73\xfa\x9a\xc8\x71\x0a\xd1\x7e\xfd\x77\x27\xa8\xff\x2e\x26\xcf\x24\xe1\x33\xbd\xf2\xfa\x87\x9a\x4b\xa6\x3b\xc5\x34\xb9\xe6\x2a\xb3\xcc\x6d\xb2\x9e\x82\x44\x74\x06\x92\xf9\x80\xe8\x76\xf7\x27\x78\x14\x76\xb2\x63\x67\x30\x06\x84\xe3\x58\x2b\xd9\xc0\xca\xdc\xf0\xf2\x10\x20\xe6\x4d\xbd\x50\xec\x72\x15\x91\x22\x33\x7f\x9b\x1e\xfd\x36\x8b\x66\xcf\xca\x15\x60\xcf\x3b\x74\xc9\x6e\x7a\x91\x6b\xad\xe4\x67\x32\x87\x14\x8c\x5b\x4c\xc5\x9a\xae\xd9\xaa\x98\xd7\x9d\x38\x69\xbb\x15\x1d\x1d\x90\xbb\xb6\x9a\x0e\x9b\x39\x6e\xb3\x58\xbd\x7d\x69\xa9\x2e\x96\x2b\xeb\xb8\xa5\xda\xfa\x58\xa7\xa4\xd6\x86\x30\xa0\xb2\xe2\x35\x23\xd1\x0a\x1a\x57\x36\xc0\x7b\xfd\xdd\x52\x4d\x25\x13\xd7\x5c\xfc\x5d\xbe\x0a\x36\x39\xbe\x9c\x8f\x4f\x96\x8e\x38\x4a\xb8\x2c\x62\xe5\xb4\x1e\xf4\x85\xfd\xb4\x69\xdc\x5d\x7f\xfb\x6a\xb9\x70\xa5\x80\x86\x0a\xc2\x97\x30\x2e\xcd\x3d\xa3\xac\x87\xcc\xbe\x7d\x82\x28\x44\x5b\x82\x42\x96\xe4\xc8\x01\x2c\x46\xb9\x1b\xa4\xcf\xf2\x98\x15\x89\x5e\x48\x02\x61\x6e\x11\x9f\xce\xc0\xc4\x6f\x87\x6b\x5b\x22\xb1\x89\x18\x3e\x41\x3c\x55\xba\x31\x93\x93\xe3\x8c\xb8\x36\xe1\x27\x77\x7b\x18\xdf\x9b\x0d\x7e\xcf\xf0\xb2\xcd\x5e\x37\x77\x29\x65\xe8\x13\x51\xd0\x0a\x94\x59\xf0\x27\x08\x7a\x42\x39\x84\xb2\x9a\xf6\x1b\x9c\x28\x3b\x93\x15\x56\x3e\x07\x4e\xf9\x31\xe1\xc3\x66\x23\x01\x34\x8e\x1e\xef\x7a\xce\x22\x99\xc7\x4f\x79\xa0\xcc\x05\x8f\x62\xf7\xf6\xae\x7b\xd1\x79\xe8\x5e\x9e\xa1\x47\x49\x34\x79\xb2\xe9\x42\x7e\x75\xa6\x92\x98\x91\x5b\x24\x16\x26\x15\xc1\x75\x86\x10\x22\x44\x21\x0b\x7a\x09\xe3\x28\xc2\xb4\x34\x6f\x6c\x00\x49\xa1\xd6\x50\x07\xc0\x42\xe5\x79\xda\xc8\xbc\x65\x27\x10\xe2\xa4\x06\xc7\x13\xa5\x66\xc6\x3b\x5d\x8c\xcc\x5b\xb6\x7d\x8a\x11\x7d\xbb\x9e\x0c\x1c\x2d\x35\x21\x54\xa0\x56\xd3\x32\x9b\x6a\xd0\x7e\x4e\x5e\x88\xfb\x67\x3c\x6b\x4e\x3f\xc5\x2f\x85\x4d\x6b\x44\x61\xcf\x77\xbf\xeb\x73\xe0\xd8\xda\xc0\xb0\xc2\xcd\x27\x98\x3b\xb4\x0c\x6f\xcd\xf8\xa6\xc9\xf8\x90\xce\x48\xe6\x4f\xac\x34\x08\x1b\xc7\x2a\x11\x9c\x1d\xf8\x85\x32\x54\xb8\x12\x4f\xd0\x88\x7e\xb5\x8d\xe6\xf1\xed\xee\x55\x2f\xe0\xa1\x26\x9e\x72\x82\x17\xcf\xd4\x0a\x62\xc3\x2d\x7c\xdf\x28\x44\x72\xa9\x45\xa2\x48\x8b\x4b\x82\x44\x5c\xe8\x9b\x02\xba\xcd\xbd\x10\xcb\x44\x06\x85\x85\x26\xca\xa2\x57\xa6\xe9\xf4\xe7\xa5\x55\x62\xac\xc8\xa9\x16\xbd\x96\x24\x40\xdb\x1c\x19\xc8\xa6\xc1\xca\x83\x03\xcb\x6f\x9e\x21\x19\x63\xe6\x42\xb3\x6b\x86\xeb\xae\xbc\x0d\x58\x95\x56\x81\x30\xa4\x87\x81\x7c\x05\xa9\x3f\x85\x71\xc8\x19\xd0\xb3\x71\x1c\x36\xfa\xe5\x10\xc8\xf6\x82\xb3\x60\x9c\x9a\xc1\xa6\xb3\xf8\x90\x06\x9b\x60\xa9\x90\x1d\x53\x9d\x29\xc2\x53\x11\x77\x6b\x84\x2d\xe8\xf6\x6d\x95\x37\xbd\x85\x8a\x5a\x2c\x01\xcf\x88\x74\xb8\x29\x06\x25\x46\xeb\x34\x4e\x10\xbe\x80\x15\xca\xce\xf6\x9d\x91\xb2\xdc\x2d\xe1\x33\x13\x08\xd2\x5f\x6c\xfa\x0c\x75\xd8\x02\x5e\x96\x8b\xcb\x2a\xd0\xcb\xdc\x49\x38\x79\xc1\x73\x89\x66\xc2\x40\xcb\x98\xc8\x7d\x37\x79\xd0\xc0\x8a\x1f\x65\xa1\x10\xca\xa5\x4e\x20\xb0\xc5\x2c\x0f\x9a\x73\x72\xef\x60\x07\xae\xbc\x52\x54\x79\x26\x90\xe7\xcd\xe5\xb6\x8a\x16\xac\x4e\x91\x41\x34\xc1\x6c\x4c\x06\xce\xc8\xba\x8e\xb6\xa4\xdb\xb9\x80\x66\x2e\x6d\x2b\xd5\x97\xd3\xad\x51\x98\x6c\x59\x1b\xf3\x6a\x66\x40\xd4\x87\x40\x2a\x3c\x26\xc8\x8c\xa8\x95\x59\xba\x10\x31\x66\xc1\x86\x41\x4f\xb0\xad\x76\x8b\x51\xf4\x75\xc2\x3b\x84\x3e\x5d\xe1\x21\x49\x5e\x27\x72\x02\xba\xb6\xc6\x79\xf0\xd6\x99\x6c\x00\x82\x5e\xc0\x9e\x5f\x62\x19\xd6\x7a\x2f\xd2\xaa\xdc\x80\xa6\x79\xc2\x91\xb3\x27\x6d\x93\x89\xba\x12\x28\xeb\x4c\xb5\xae\x30\x8a\x7f\xed\x79\x05\x44\xaa\x0c\x6c\xfe\xf5\x57\xb6\x29\xaf\x37\x10\xaf\x8e\x49\xcd\x38\x36\x2e\x64\xb2\x74\x2a\x6b\x83\x0c\xb4\xac\x59\xd8\x1b\x21\xc6\x19\x41\x54\xe6\x2f\xab\x62\x3a\x54\x06\xd1\xa3\x45\x7c\x63\x7c\xc9\x8a\x8f\x65\x35\xa5\x76\x6d\x69\xc9\xc1\x13\x32\xdb\x80\xcb\xef\x66\x44\x2b\xaa\x58\xcc\x01\xe2\xd3\xf0\xe1\xa2\x4c\xb7\x74\x9c\x5b\x17\xb8\x1f\x1c\x82\xab\x17\xa9\xab\x38\x02\x31\xb2\x34\x38\x64\x70\x50\xed\x4b\xf6\x23\x0b\x53\xd3\x67\x99\x65\x03\x36\x22\x95\x68\x8a\x67\xe0\xd3\x63\x5c\xe5\x5f\x19\xd8\x25\x95\x2d\xe1\x89\x13\xc4\xa5\x29\x0d\xb6\x9c\x02\x5c\x8c\x37\x09\xd5\x68\x5f\xfe\xa1\xbd\x61\xc9\x5d\xfe\xf9\xaa\x16\xc1\x35\x1d\x30\xf0\x98\x3e\x13\xe6\x4e\xd4\x89\x3b\x91\x9a\x24\x6e\xca\xc9\xfc\x14\x43\x90\x33\x89\x7d\xbf\x4b\x33\x3f\x34\xe6\xa0\x43\xb0\x86\xb6\x27\xd9\x43\x65\x10\x8f\x81\x68\x2b\x60\xeb\xbb\xb0\x74\xff\x8c\x58\xd4\x60\x93\x87\x8e\x25\xfa\x03\xe3\xea\x0f\x1e\xae\xb2\x33\x9d\xc0\xa7\xce\x00\x76\xb2\x50\x07\x07\x58\x86\xdd\xb6\x08\x7b\xf8\x5e\x4b\x29\xbf\x69\x64\x42\x1e\x76\xbf\x53\x59\xb8\xbb\x98\x83\x57\x57\x48\x2c\xc4\x0b\xa0\xf2\xa5\x54\x36\xb7\x9a\x5a\x85\xf9\x49\x2f\x98\x59\xe5\xb2\x00\x81\x6c\x2d\x5a\x05\x06\x2c\xe0\x11\x6c\xb2\xdb\xa6\xad\xe3\xb6\x96\x40\x30\x57\x5b\x45\xd6\xc9\x32\xad\xd3\x0a\x44\x31\x70\xce\x16\xe1\xa8\xc1\x18\x3e\xeb\xb3\x8f\x5c\x58\x01\x40\xda\x2a\x07\x43\x1c\x3d\x9d\x12\x16\x23\x9c\xaa\x89\xc1\xfa\xb5\x5e\x8d\xb9\xdd\x0d\x5a\xce\x81\x6d\x93\x01\x79\x50\x19\x61\x11\xbb\x7a\x1b\xcf\xdc\x8d\xa2\xcf\xbc\x46\xa0\x8e\x02\x54\xcf\x82\xb2\xc6\x75\x8a\x2e\x91\x5a\xbb\xab\xa3\x45\x55\x65\xdb\x85\xba\xb6\xcd\xe7\xac\x50\xa9\x17\x2a\x40\x40\x78\x15\x1f\x2d\x52\xa7\xe7\x6c\x9d\x4e\xbb\xd4\xfb\x79\xd1\x07\x72\x62\xf5\x19\x63\x10\xb3\x33\xd0\x72\xd6\x0f\x8e\xd7\x16\x30\x8b\x47\xa9\x80\x60\xe1\xaa\x36\xbf\x8b\x26\x34\xc9\x3d\x27\xdf\x9f\x64\xc3\xd4\x4d\x26\xe4\x99\x24\x06\x31\x3f\x12\x90\x17\x60\x6c\x96\x3f\xa0\xff\x6d\xaa\xbd\xa2\x3f\xf5\xd9\x27\x60\xc3\x49\x32\x07\x3c\xcf\xac\x65\xac\x4a\xcd\x3c\x55\x0e\x40\xd9\x44\x24\x54\x1c\x88\x59\xeb\x09\x7e\x26\x7d\xe6\x9a\xf9\xdf\xe8\x09\xfd\x11\xfd\xa9\x4e\xb9\x74\xe1\xfd\x3b\xb6\xb2\x7c\xf4\x82\xe7\xbd\x5b\xce\x32\x4a\xcb\x6f\x9c\x11\xa6\x60\x02\xad\xc0\xf5\xc8\x60\xb9\x29\x7b\xe6\xd1\x42\x0e\x89\x7f\x6a\xb1\x20\x4c\x0d\x18\x8f\xc9\x80\x54\x38\x54\x1b\x98\x84\x16\x02\xae\x79\x4c\x96\xba\x43\x33\x66\xfa\x05\x0c\x47\x32\x1d\x66\xcb\x01\xf0\x02\x59\x2e\x79\x66\xfb\x28\xee\xb4\xea\x91\x67\xd8\xb7\xeb\x8c\x7b\x5d\x57\x6e\x2e\x36\xe2\x1c\x7c\xb7\xda\x9d\x98\x60\xe5\xa4\xc9\xf2\x71\x2c\xbb\x21\xf4\xcb\x7a\xe6\xf6\xb2\xf2\x50\x7d\xa1\xf2\x8a\xa0\x63\xaa\xb5\x87\xf6\xee\x62\xe0\x84\xeb\xf8\x52\x0c\xc4\x69\x2b\x67\x4a\x4e\x0a\x07\xf3\x72\x9a\xed\xbf\xdc\x05\x3a\xe4\x69\x59\x7d\xb0\x04\xa0\xd2\x0f\x36\xb0\x9a\xc2\x5c\xf3\xe1\xb1\xc9\x3f\x24\x13\x6a\x32\xfe\x3b\x17\x57\x48\x9f\x0e\x3e\x35\xb0\x58\x40\xb4\x54\x4d\xb8\xa0\xff\x6c\xda\xdb\x58\x28\x3a\xc2\x91\x1a\x6c\xa5\x8a\x4c\xfd\x66\xea\xd8\x7e\x7a\xf5\x95\xea\x16\x10\x0e\xf0\x33\xf1\x02\x10\x21\xbc\xd0\xb6\x22\x33\x47\x6e\x99\xdf\x72\x81\x18\x7f\xc9\x61\xb1\xdc\xf7\x80\x04\xed\x25\x6e\x60\xad\x72\xcd\x20\x82\x58\x52\xd8\x9f\x00\x52\xf5\x5e\x99\xa4\x4c\x00\x38\x37\xf0\x52\x7a\x7b\x4e\x30\x8b\x13\x77\x85\x20\x6e\x22\x7a\xe6\x2f\x78\xbe\x92\x4f\xdd\x8f\xab\xcc\xb3\xf4\xcc\xf2\x17\x95\x20\xe0\x01\x46\x52\x53\x05\x55\xb3\x4a\x11\x46\xc3\x14\x80\x75\x35\x4d\x46\x69\x62\xaa\x71\x44\x5c\xc4\x67\x7d\x66\x03\xaa\xbd\xde\xb4\x08\xe8\xb4\x26\xac\xb2\x06\xa9\xc5\x1f\xb5\xf5\x3e\x8c\x59\xae\x51\xae\xff\x7b\x4a\xd2\x2d\xa5\x55\xbe\x6a\x20\xfa\x03\x1e\xcb\x3c\xb2\xdc\xd0\x46\x5f\x79\x39\x7d\x7f\xd7\x33\x95\x5e\x22\xb2\x33\x17\x67\xb8\x5e\xc6\xce\x62\x8a\xd8\xae\x64\xa6\xbb\x33\xf5\x0c\xb6\x60\xa7\xdb\x47\x90\xce\xa2\xe8\x59\xc1\xd5\xed\xf6\x7b\xce\xd2\x72\xd1\x7e\x8c\x5f\xae\x30\x44\x49\xa8\xdb\xa1\x1d\x6c\x8d\xbb\x63\x51\x57\x69\x0c\x75\xcf\xad\x62\xd9\x6d\x51\x91\x21\xaf\x38\xe4\xd2\xbc\x08\x0a\xb0\x7f\xf3\xfc\xe5\xac\x5e\xb3\xbb\x85\x7d\x1e\xa3\x85\x3f\xa3\x2d\x40\xb0\x8e\x23\xe1\xbc\xfa\xea\x5c\xc1\xae\x63\x1b\x2a\x76\xbd\x18\x8c\x51\x77\x22\x0c\x4b\x3a\xd4\x23\xb1\x88\xf9\xb3\xf4\x30\x64\xe5\x5d\x5e\xc7\x2a\x9c\x49\x8c\xfb\x3b\x19\xd9\x76\x1c\x44\x38\x9a\xd4\x4e\x6a\xc8\x79\x42\x30\xab\x53\x0a\x2a\x1f\x97\x8f\x88\x41\xac\x05\xd6\x9d\x24\x00\xdb\xec\x48\x60\x4b\x7d\xe6\x5a\x11\x8b\x01\x6e\xdf\xf0\x70\x13\xf0\xe9\x06\xaa\x08\x73\x06\x35\xca\xc6\x09\x29\xd3\xca\xd6\x45\x38\xb1\x9d\x24\x51\x9a\x78\xb5\x3e\x67\x44\xe8\x51\x6b\x12\x3f\x13\xa6\x55\x31\x3b\x0e\xe7\xa1\x7a\x71\x59\xee\x59\x85\xaf\x93\xac\x6b\xe7\x24\x85\x54\xd2\xb8\xcf\xe0\xe0\xf2\xe2\x61\xd5\x7b\x55\x6a\xed\xcd\x37\xf7\xad\x7d\x3a\x3d\x21\x62\xe5\xe3\x79\x5f\xb4\xfd\xaf\x7c\x26\x4d\xdf\x03\x08\x1c\xd9\xd8\x5f\xea\xf9\xd4\x72\xfc\x0d\xb3\xb0\x0e\x63\x6d\x4f\x9e\x01\x08\xc5\x29\xc6\x12\x7b\x91\x38\x75\x18\x5f\x3b\xbd\x4b\xf2\x9a\x26\xee\x36\x68\x39\x94\xc6\xf8\x83\x96\xd1\x04\x60\xf4\x6d\x3a\xb7\x57\x56\xaa\x2f\xfa\xe1\xb3\xa4\xad\x3c\x76\xd5\x56\xed\x55\x02\x03\xe4\x04\x00\x05\x7c\x31\x86\x0b\x2a\x8d\x70\xef\x6a\x97\x4c\x67\x6a\x6e\x4b\xdd\xc1\xbd\x58\x90\xf7\x01\xc6\xaf\xca\xe7\x5f\xbe\x23\xe3\x82\xd7\xbf\xaa\x33\xe8\xc8\x5a\x6b\x2a\x9b\x74\x84\xf6\x61\x61\x4a\x30\x1c\x75\x21\x3e\xa6\x6a\xf0\x00\x27\xb5\x26\xc2\x2d\x30\x4d\x50\x8e\x72\xe8\x0d\x8b\xe8\xab\x44\x4a\x34\xef\xc2\x49\x52\x9a\x17\x86\x1c\x77\x95\x55\x0e\x1c\xe6\xe5\x8d\xdb\x47\x20\x24\x78\x48\x56\x8a\x39\xb8\x32\x1f\x34\xee\x22\x78\x05\xc2\xf5\x67\xb3\x64\xde\x2e\x4d\xc0\xd7\x7e\x2b\x91\xef\x96\x0d\xcc\xc7\xcb\x6b\xbc\x9b\x8a\x98\x73\xeb\x0d\x51\x92\x28\x15\x54\xcd\x07\xd6\x96\xda\x9e\x69\xdd\xdb\x2f\x2f\xec\x87\x6d\x0c\x15\xe7\xc8\xf5\xe7\x6c\xb7\x70\x4f\x09\x6a\xca\x22\xd9\x29\xb4\x59\x6e\x9c\xaa\x49\x25\x22\x56\x13\x61\x1d\x24\x57\xbb\xa1\xea\x2e\xd6\x1d\x9e\x2d\xb7\x32\xe0\x23\x07\x76\xd5\x9e\xb0\xe5\x3a\x34\x2b\x18\xa1\x1d\xa6\xf6\x4c\x50\x2e\x6c\xb9\x97\x36\x91\x8a\x53\xfc\x75\x30\xc3\x02\x27\x09\x49\xa8\x9c\xae\x6f\x32\xff\xcb\x9f\x1b\x47\x7b\x61\xca\x12\x99\xc1\x4e\xf1\x57\x3a\x4d\xa7\x88\xa5\xd3\xa1\x95\x72\xb1\x7c\xf2\x11\x4d\x1d\xfe\x82\x01\xe6\x72\x03\x2c\xa0\x40\x08\x0f\xa3\xb6\xcf\x3c\xb4\x72\x6b\xaa\xc0\xd1\x84\x92\x67\xc0\x52\x15\x8c\x48\x79\x86\xae\xb9\x22\xe7\xe8\x33\x9e\x3d\x80\xa0\x66\xea\x84\x8e\x8d\xd3\x01\x4b\xa4\xa5\xd6\x94\x51\x75\xd2\x67\x16\xe2\xdc\x51\xe5\x43\xc4\x99\x81\xb9\x8d\x80\xb0\x59\x13\x60\x45\x77\x78\xaf\xca\x65\xab\x52\x59\x43\x6c\x81\x5f\x06\x5e\x48\xf2\xc0\xa4\x7c\xac\xb0\x8f\xef\xf0\x8b\x09\xc2\xbf\xc4\x0a\x9b\x12\xc0\x4d\x92\xbb\x8d\x72\xb3\x65\xa1\x0c\xba\xb3\x8b\x06\xe2\x16\x62\x24\x2b\x68\x67\x42\x8e\xbf\xa3\x67\xe4\x0c\xfd\x98\xf0\xa1\x3c\xc9\x4d\x55\xe6\xa1\x24\x4a\x9e\x18\xbf\x1f\xfc\xdb\xe4\xf7\x7d\xef\xa8\x9f\xf3\x7d\xa8\xe5\x38\xa2\x5f\x0d\xb2\x89\xfc\xcb\xf9\x87\x0f\xd3\xf9\xe9\x30\x8d\x9e\x88\xd2\x7f\x81\x4c\x51\x49\x21\x07\x0b\x86\xab\x40\xc6\x96\x51\x67\x11\xa0\xac\xd5\x8e\xb4\xb9\x52\x92\x00\x18\xbe\xbe\xd2\xb3\x6a\xb9\x0e\xcf\x8a\xb3\xea\x52\xa0\x76\xca\x22\xad\x3b\x5e\x05\x14\xed\xfd\x68\x2b\xa6\x1a\xb0\x0f\xde\x3d\x4a\xf0\xb8\xa4\xb2\xac\xa0\xa4\xdc\x4c\xa9\xdd\x45\x7a\xee\x10\x44\xa3\x4f\x59\x31\x74\xf0\xbd\xf3\xf2\x82\xb7\xd6\x7a\xb1\xce\xfa\xac\x23\xd1\x0b\x31\x45\x7e\x21\xd1\x14\x9c\x3e\x29\x95\x93\x2c\xcd\x14\xcc\xd0\xd0\xa8\xc1\x38\x36\x50\x18\x56\x71\x74\x9a\x95\x73\x8b\x59\x0d\x14\x27\x92\x9c\xe8\x86\xc1\xa4\xea\xa2\x43\xd1\x8b\xc0\xb3\x19\x11\x7d\x66\xf1\x6a\x01\x95\x9d\x73\x1b\xf9\x53\x97\x22\x10\x34\xca\xfd\x6a\x94\x1e\xed\x49\x31\x0b\x75\xd9\xf9\x86\xa4\xd5\x26\x0a\x57\xe5\x61\x3a\xf2\x69\x59\xb4\x6d\xf8\xfe\xeb\x9b\x8d\x5b\x8e\x79\x99\x76\xde\x29\xe5\x5e\x40\x0d\xf1\x29\x28\x90\x32\x2f\x95\xea\x6c\x7d\x99\xfa\x5e\x10\x73\x00\xee\x1c\x3e\x8e\x39\x91\x9e\x11\x1f\x65\xb6\xb8\x84\x8e\x88\x96\x3e\xfa\x4c\x6f\x63\xdf\xe1\x60\x50\xd3\x1d\x88\xba\xee\x34\x12\x5c\x4a\x9b\x4e\x61\xda\x69\x4e\x8a\xdb\xa0\x40\xa3\x81\x7e\xef\xdd\x5c\x0f\x16\x4b\x35\x7a\xcf\x5c\xd1\x46\xfb\xb0\x12\x39\xa1\xb6\xa9\xa5\x25\x1a\x73\x5a\xac\x50\xa4\xf1\xc3\xc5\x55\x2f\xab\x4c\x56\xea\x7a\xb1\x4a\xa3\x0f\x97\x5f\x5f\xa7\x71\x71\xc6\x5e\xc5\xc6\x52\x13\x0d\x35\x1b\x97\x2f\x56\x31\x88\x7b\x13\x2c\xc4\xd2\xd2\x2f\xe5\x0f\xc5\x3d\xb3\x2c\xd7\x60\x4b\xcb\x54\x73\xad\x44\x20\x30\xee\x3a\x70\x01\x04\x2f\xfd\x96\x54\x78\x3a\xf3\xf3\x68\x1d\x18\xac\x9d\xa6\x39\x6a\x75\x97\xe0\x5e\x41\xea\x23\x6c\x82\x84\xca\x83\x5b\x58\x8a\xd5\x3c\x5e\x0f\x16\xfb\x7e\x1b\xb1\xe9\xfb\x4b\x4c\x4f\xe6\x79\x30\xa4\xb4\xb2\x9b\xab\xab\x5e\x63\xf7\x1f\x92\x0c\xe7\xbf\x76\x41\x37\xcd\x3c\xcd\xf0\xc0\x04\xc1\xd2\xba\xbf\x21\x41\xb3\x94\xbc\xb5\x82\x79\x38\x1b\xb3\x49\xf1\x3e\xcd\x2a\x6b\x78\x57\x8d\x2d\x16\x17\xb9\x83\x48\x85\x20\xcf\x44\xc0\xde\xb1\xa1\x54\xac\x78\x54\x71\x22\x08\x8e\xe7\x1e\x45\xb2\x38\x0e\xd3\x33\x98\xc7\x24\x9d\x6a\x05\x1e\x54\x13\xc6\x4f\xf9\xcc\xe9\x2c\x85\xb7\xa0\x2c\x0a\x1d\xe9\x1b\xcb\x8b\x02\xd1\x5f\xb0\x53\xf2\x95\x4a\xa5\xe5\x8a\x8a\x10\x58\xd7\x08\x48\x3c\x50\x2c\x6d\x42\xec\x0d\xd7\x7f\xd7\xf9\xf1\xe6\xee\xa1\x7b\xd9\x7f\x97\xa7\x5c\xb8\x9c\xc2\x0c\xe6\xcb\x55\x6d\xe0\xac\xcf\xb2\x38\xe5\x0c\xd5\x1a\xd6\x12\xe1\x38\xce\xe3\xa3\xad\x12\x69\x64\xb6\x46\x8e\xec\x9d\x8a\xa5\x11\xca\x0d\xcd\x3c\x42\x62\xd9\xa1\x9e\xac\x06\xd7\x59\xe1\xe4\x98\xf4\xb8\x86\x3c\xa6\x2d\x5d\x36\x3e\x20\xaf\x32\xba\x36\x51\x0e\x31\x92\x91\x17\xa7\x2b\xc1\xed\xfc\x01\x9b\x4b\x78\x35\x6e\xe7\x16\x64\x8d\x45\xfd\x48\xbf\x92\xf8\xae\x46\xaa\xda\x4a\x9a\x52\xab\x00\xcb\xca\x55\x48\x19\x5d\x45\xe3\xcf\xa6\xf2\xa8\xbf\x6b\xcf\x96\x6e\x72\x9c\xbd\x1c\x33\x17\x00\x73\x15\xc2\x28\x22\x42\x61\xca\xd0\x08\x0e\x36\x8b\xe6\x08\x50\x58\x08\xf8\xb0\xff\x8c\xa6\x94\x01\x1c\x44\x13\x69\x1f\x8b\xf3\x58\x41\x68\xfd\xdc\xbb\x7e\x7c\x28\x88\xaa\x3f\xdd\x3c\x16\x2b\xf5\x77\x7e\x6d\x94\x55\x4b\x2d\x34\x05\x0b\x79\x53\xcc\x53\x4b\x2d\x74\x70\x46\x99\xca\x89\x26\x73\x45\x1e\xef\xae\x36\x92\xef\xaa\x9d\x65\xb5\xc0\xef\xbe\x74\x55\x0d\x73\xd1\xe6\xd3\x98\x44\xcb\xa0\x69\xdb\xef\x23\x13\x05\xa5\xe9\x60\xad\x89\x16\xb6\x0e\x4b\x34\xc3\xc2\xfa\xa1\x62\x13\x00\x55\x2c\xf7\x66\x34\xaf\x26\x58\x90\x4f\x44\xfd\xa2\xaf\x3e\xce\xb6\x91\x5c\x62\x45\x59\xf0\x8f\x92\xc1\xb3\x69\x78\x85\x93\x66\x87\xd2\x90\xbf\xe4\x84\x65\xe8\x01\xd9\x1e\x7c\x30\x8d\x33\x53\xf6\xbf\xa3\x9b\x03\x8a\xb8\x30\x4d\xad\x92\x72\xa6\x77\xa4\xc1\xc8\x75\xc0\xba\x5e\x73\x7c\x64\x3e\x6e\x09\x33\xe8\x25\x0b\xe8\xb6\x72\x52\xa2\xce\x6d\xaf\x82\xd6\x57\x65\x17\xd2\xdb\xaa\x51\x94\x64\xde\xac\x6d\x23\x5f\x79\x39\xa7\x07\x01\x75\x65\x67\xba\x19\xb6\x95\x71\xfa\xdf\x16\x23\x09\x0e\x01\x82\xb9\x4a\x65\x28\xe4\x92\x2f\x41\x5b\x5e\x2d\xbd\x32\x27\xc3\x8a\x48\x56\xfe\x80\x6c\x76\x8d\x8f\xde\xb4\x18\xba\x7d\xe2\xa3\x39\x71\x53\x05\xd9\xc6\x16\x6c\x0d\xe1\x2a\x9f\x4d\x1b\x88\xab\x5f\xcc\x8e\xce\x10\x50\x00\xd3\xc5\x55\xd9\x74\x21\xd7\x16\x90\xc0\x9f\xae\xbf\xdb\x56\x43\xc5\xca\xc7\xe7\xcc\xdf\x16\x60\x1c\xcf\xb0\xb5\x3b\x80\x12\xe5\xca\x5f\x54\x55\x4b\x3c\xeb\x33\x2f\x60\x45\x1a\xb5\x47\x9f\x11\x57\x71\x06\xca\x18\x33\x40\x2b\x87\xdc\xa7\x4c\xf8\x29\xac\x40\x19\xf7\x40\x4d\x8a\x35\x63\x16\xfa\xb1\xa7\x53\x4e\xb0\xcb\x2e\x75\x16\x14\x1b\x07\xe8\xdb\x97\xa0\x3d\xaf\x4a\x84\xed\x18\xcc\xd1\x60\xb4\xc0\x5e\x0d\x42\x0f\x91\x20\xe6\x44\xb2\xf7\x2a\xcb\xdf\xa5\xc9\xdc\x85\x54\x97\xdc\x03\x5a\xaa\xc3\xd4\xb6\xdc\x7c\xc0\xb7\x00\xb9\xb5\xaa\xe2\xe0\x1d\xab\xa5\x66\x2a\xe7\xe3\x85\x9d\xe0\xc7\x22\x41\xa7\x75\x56\xf5\xaf\x33\x12\xad\x83\x0b\x74\x8b\x05\x9e\x12\x45\x44\x53\x38\x52\xb1\x42\x38\x88\x38\x6e\x05\x6d\xbf\x66\x15\x4d\xf9\x94\x72\x9d\x9d\x4c\xbb\xbd\x5a\x86\xf3\x93\xcd\x62\x25\x48\x33\x3d\x8d\x5f\xac\xe5\x7f\xc5\x59\xd8\x7e\xf2\x69\xd8\x68\x2b\x0f\xd6\x69\xd3\x39\xed\x07\xdf\xe6\x61\x01\x29\xa6\x10\x2e\x74\x20\xc0\x36\xcb\x47\x59\x87\x68\xb3\x8c\x97\x6e\x85\x77\xbb\x0c\x07\x97\x99\x5c\x3a\x54\x85\xdc\x09\xd8\x25\xa0\x52\x19\x70\x97\x6a\x54\x1a\x10\x5a\xaa\x22\x24\x3d\xb7\x9f\xc5\x2c\xcc\x0d\xba\x56\xb2\x2a\x57\x0c\x2b\x91\x6b\x09\x8f\xdb\x16\x62\x47\x90\x68\xb6\x2d\xd1\x2c\xdb\xca\x85\xe8\x5a\xbd\x3b\x89\x28\x81\x07\xd9\x4a\xde\x16\xf5\xa1\x38\x41\x48\xe9\xb2\x57\xa4\x2d\x07\x0c\x57\x3f\x65\xd9\xbf\x8a\x1c\xdc\x6d\x6a\x7f\xab\x56\xe5\xaa\x9e\x79\x2e\x28\xf0\x40\x25\xbe\x34\x60\xe3\x6a\x60\xb4\x26\x0c\xd2\x58\xf9\x7b\xd7\xc6\x81\x05\x39\xe3\x73\x9e\xa2\x17\x2a\x27\x48\xf1\x3e\x83\x38\xc1\xcc\x1b\xa0\x38\x32\x2f\x9e\xc0\x5b\x80\x6d\x21\xd3\xe1\x94\x2a\x84\xbd\x19\x16\x4c\x92\x27\xf6\x3c\xeb\x0f\x60\xc6\x95\xf0\x05\x55\xb8\x4b\x4b\x0e\xcd\x1a\xf6\xb5\xbc\x91\x4d\x11\x0a\xbc\x98\xe6\xdd\x62\x14\x78\x1a\x8f\xaf\x61\x56\x9e\xb9\x00\x52\x80\xaa\xad\x0d\x16\x09\x16\xe0\x7a\xa9\x54\xa5\xbb\xc5\x1a\x7a\x96\x00\x14\xe4\x0b\xd1\x0a\xa1\x20\x7f\x7d\x1b\x10\x05\x75\xb5\xe7\x9a\x52\x56\xdd\x27\x35\xf6\x6f\x97\x0a\xad\xb8\x0b\x9c\xf7\x25\xa5\xdb\x5a\x49\xe9\xd0\xa0\xea\xf2\x84\x80\xf5\xc3\xcb\xeb\xa2\x97\xe1\x8c\x47\x9c\xc5\x74\x85\x78\x61\xa8\x2f\x36\x4c\x47\x1d\x36\x5f\x8e\x7c\x34\xf5\x03\xf5\xad\xbd\xc4\x93\x44\xaa\x31\x37\x97\xaa\xac\x79\xfb\xfe\x4e\xf7\x52\x42\x8b\x60\x44\xa4\x7c\x3b\x31\xae\x20\xef\x27\x52\xc9\xbc\x22\x17\xb5\xcf\xaa\xa5\xa4\x66\xbe\xbd\x69\x1a\xc9\x56\x61\xf7\x3c\x1e\xe1\x66\x61\xad\x6e\x5f\xb2\x40\x3c\xa3\xd0\x13\x0b\xb2\x51\x12\x83\x73\x37\x64\x5d\x00\x95\x16\x8e\xd6\xc9\x35\xaf\xe0\x1c\xd5\x43\x5f\x48\xf2\x58\x7a\x76\xad\x60\xb0\x45\xf5\x73\xe1\x06\x69\x9d\x13\x93\xc9\xf1\xf6\xc6\xb0\x41\xdd\x71\x66\x6b\x28\xb9\x93\xd7\x29\x6f\x0c\x70\xb6\x5b\x03\xe1\x2d\x23\x53\xe8\xc6\x4f\xc0\x05\x6d\xc7\x8e\x4d\x38\x4e\x06\x0d\x5f\x5a\x93\xc2\x8c\x4d\x48\xe5\x4e\x66\xbd\x6a\x4d\x6a\xcf\x27\x2a\x6c\x4c\x32\xf5\xad\x1b\x50\x8c\xda\x86\x72\x96\x6e\x8b\x4c\x00\x4d\x59\x4c\x04\x23\x58\x4d\xf6\x97\x09\x72\xb1\xa9\x09\xdd\x1b\xdf\x6e\xb3\x42\xec\x48\x71\x31\x39\x64\x93\xe1\x16\x8b\xf3\x2f\x1d\xa7\x7e\xbd\x8d\x35\xcb\x06\x48\x64\xe5\xa9\x17\xd4\xdb\x0a\xd3\xa6\x87\x3f\xb4\xca\x2e\xdd\x28\x59\xa4\x5a\xe5\xdc\x4d\xda\x4c\x85\x6d\x6a\x21\x61\x46\x9f\x76\xbf\xa8\xf7\x12\x92\xbc\x89\xfc\x94\xdd\xa7\x4c\x34\x95\x0f\x4f\xbd\x2c\x0a\xa8\xe1\xae\x30\x65\x96\x7b\x35\x25\x4e\x68\xb9\x77\x8a\xab\x72\x25\x0e\x3e\x0b\xe7\xcd\x27\xe1\x84\x94\x8c\x90\x92\x51\xb1\x46\x21\x25\x03\xa1\x43\x4b\xc9\x58\xa6\x82\x36\x19\x69\x33\xbf\x21\x94\x79\x2d\xd4\x56\x32\xeb\xbb\x44\x8f\x5c\x3f\xed\xc0\xd9\x39\xfd\x98\x2d\xfb\x8b\xfd\xa1\x32\x6c\x6b\xe1\xb3\xf2\x6c\x7d\x9b\x2b\x9b\x97\x5d\x17\x58\xc4\x89\x85\x20\xb4\x41\xd5\x45\x1b\x59\x93\x39\xb7\xcf\x7e\xe2\x2f\xe4\x99\x88\x13\x84\x15\x9a\x72\xc0\xb5\xca\x63\x78\xe0\x20\x14\xb0\xf4\x4d\xac\x06\x46\xd7\x78\x4a\x62\x53\x6a\xd3\x0b\xbd\xb4\x46\x65\xeb\x0e\xae\x42\xda\x05\xd0\x58\xb3\x0c\x2e\xb6\xa3\xcf\x4c\x38\xa4\x09\xc1\x03\x59\x81\xba\x89\xc1\x86\xf9\x43\xe6\xac\xfe\xc3\x19\x7a\xd0\xf7\x13\x95\xc5\xf1\x7a\xc0\x7b\x75\x63\xeb\xb3\xb1\xe0\xe9\x2c\xb3\xf3\xf1\xa1\xa9\xb9\x6c\x22\xb4\x16\x9d\xd5\x30\x18\xe7\xa9\x8e\x70\xac\x75\xf1\xe6\x8d\xf3\x2a\x91\xb2\x6b\xc1\x2c\xf9\x1b\x48\x1f\xc3\x2c\xfc\xcf\x86\xe3\x1b\x1f\xb3\x07\x2e\xd3\x54\x01\x60\x47\x0e\xf0\x4b\x22\xc1\x2a\x94\x79\x06\x0a\xb9\xee\x45\x3c\x85\xca\x71\x36\xd9\x6d\x33\xdf\x8a\xf3\x3f\x54\x43\x35\xe4\x9d\xdb\xb8\x34\x93\x48\x6b\xef\x89\x9d\x59\x74\x5b\x47\xf8\xd6\xf1\x8b\xdb\x54\xcc\x38\x48\x62\xc9\xdc\x41\x4b\x58\x90\xbf\x19\x9f\xa5\x26\xf6\x8e\xfa\xa1\x58\x95\x3b\x9b\x4a\xf5\x19\xab\x68\xa2\x39\x77\x8e\xca\xb6\xa5\x98\xc4\x9c\x2b\xef\xd6\xca\x5b\x31\x83\x0b\xbf\xf7\x1a\xb7\x47\xd3\xee\xf1\x62\x0c\xb3\x40\xce\x4c\x92\x98\xea\xfe\x8c\x6b\xd0\x56\x52\xf7\xec\xa2\xee\x13\xfb\x44\x4f\x74\xd9\x2e\x5a\x36\xfe\x76\x7b\xab\x58\xea\x6d\xeb\xd1\x8e\x1b\xc0\xdc\x5c\x5a\x50\xb1\xfc\x45\x5b\x1a\xb8\x26\x44\x41\xd0\xf5\x32\x95\x6c\x79\x86\x67\x2d\x8e\x64\x16\xd7\x29\x9e\x69\x25\x42\x71\x7d\x4b\x8a\xb1\x91\x63\x4d\x2c\x2f\xc2\x28\x15\xd4\x9d\xfd\x52\xde\x7a\xfd\xee\x00\x0b\xe5\x07\xbf\x94\x57\x84\xbd\x2a\x87\x26\x28\x01\x47\x2a\xc5\x59\xf0\x24\xec\x09\x57\x7d\xdf\xe4\xe8\x3b\xe7\xbf\x70\xe2\x5d\xc5\x9a\x2e\xdd\xd8\x1b\xac\x32\xae\xc2\x60\x6c\x75\xd2\x28\x1b\x7b\x00\x8e\xd5\x56\xe2\x36\x45\x37\x2a\xbf\x6c\x57\x38\xa4\xf2\x53\x27\xfb\xac\xf3\x6d\x03\xc0\x54\xab\x90\xf5\x43\xac\x98\xe0\x65\x02\xd8\x50\x61\x2b\xbb\xf9\xc0\x9e\xb6\x23\x80\x3d\xa6\x10\xca\x80\x9d\x2c\xf7\x9d\x5f\x36\x41\x0f\xed\xfb\xff\xcc\x1f\x82\xfe\x6e\x8b\xb3\x54\xbc\xd8\x67\x5c\xd8\x57\x4f\xb2\xf7\xf4\x6b\x39\x3e\xb1\x96\x12\x17\xbf\xcc\xd1\x47\x45\x11\xa7\x10\xd0\x5a\x2c\xce\x9c\x81\xa7\xce\xca\x5a\xe8\xc1\x3f\xa5\x43\x22\x18\xd1\x73\x72\xb8\x0e\x19\x0f\x9e\x62\x86\xc7\x00\x86\x7d\x02\x41\x87\x20\x65\xe7\x1a\x94\x39\x89\xa6\x3e\x28\x30\x59\xcd\xe3\x6d\x2a\x73\x5e\x27\x1b\xfa\x34\x12\xb8\xc5\xe2\xcd\x23\x57\xaa\x0f\xed\x9d\xed\x7f\x3d\x45\xe3\xa1\x73\xff\xf3\xe0\xae\x7b\x7f\xf3\x78\x77\x51\xd0\x36\x2e\xae\x1e\xef\x1f\xba\x77\x95\xcf\xf2\x34\xe0\xbf\x3f\x76\x1f\x6b\x1e\xb9\x06\xae\x3a\x3f\x76\x0b\x45\xe7\xff\xfe\xd8\xb9\xea\x3d\xfc\x3a\xb8\xf9\x38\xb8\xef\xde\xfd\xd2\xbb\xe8\x0e\xee\x6f\xbb\x17\xbd\x8f\xbd\x8b\x8e\xfe\xd2\x7f\xf7\xf6\xea\xf1\x53\xef\x7a\xe0\x22\xba\xfd\x47\x5f\x6e\xee\x7e\xfe\x78\x75\xf3\x65\xe0\x75\x79\x73\xfd\xb1\xf7\xa9\x6a\x16\x9d\xfb\xfb\xde\xa7\xeb\xcf\xdd\xeb\xe6\xe2\xf6\xd5\xd4\xa8\xad\x9b\xed\xdd\xbf\x9e\xad\xcb\x93\xee\x86\x73\x7b\x26\xe8\x3f\xc1\xe5\x72\x6b\xb6\xe8\xe9\x89\xfb\xcb\x94\xa2\x3f\xd5\x9c\xdb\xb9\xf3\x72\xa6\xd7\x67\x99\x4f\x38\x93\x05\x14\x1e\x4b\x97\xd5\x5d\x18\xed\x39\xea\xc0\x21\x03\x3d\xa7\xd0\x29\x24\x8d\x64\x23\x75\x51\x04\xb0\x0f\x13\x3a\xa5\x10\x50\x80\x4e\x51\x79\xc1\x8b\x0d\xda\x39\xc1\x10\xac\xbb\x31\x6e\x3a\x0d\xb2\x9c\x30\x0e\x3b\xe5\x1c\xb9\x8b\x85\x18\x2b\x88\x81\xf5\x9d\x33\x3c\xa5\x51\x39\xbb\x05\x90\x6d\x51\x8e\xe2\x52\x6e\xb1\xb0\xc1\x8a\x2d\x4f\x08\xfa\xf9\x6f\xf9\xa0\xc0\xf1\x62\x0d\x06\xe9\x42\x05\x4a\xfb\x40\xa4\x86\xaa\xcb\xb6\x67\xa1\x27\x77\xcc\xad\x45\x1c\xce\xad\xad\x74\x0f\x5e\xb2\x94\x79\x48\x6e\x05\x97\x99\x3e\xde\x66\x46\xa5\x3d\x7e\x8e\xee\x01\x45\x46\xe6\x16\x07\xbd\x8a\xb3\x24\x1d\x53\x86\xe8\x74\x96\x00\x8f\x31\x66\x88\x21\x99\xe0\x67\xca\x5d\xc1\x15\x53\x97\x06\xe8\x68\x25\x42\x74\x8a\x6a\x0f\xca\x39\xea\xc4\xb1\x2c\x32\xb8\xc2\xce\x71\x5c\xf4\xb4\x38\x6c\x1f\x7c\x4d\x33\x56\xcb\x36\x4b\xfb\x28\x3f\x72\x40\xb1\xed\xe3\xe4\x2c\xb2\xc3\xa2\xc8\xb0\x81\xd4\xa2\x29\x38\x70\x5b\x79\xb0\x96\x0c\xf3\x80\xe5\x93\x63\xcd\xcb\xe4\x18\x87\x58\xb4\x59\x8f\x16\xba\xa8\x6d\xa7\x19\x65\x07\x70\xd0\xd6\xeb\xb3\x16\x70\x7b\x49\x97\x6e\xc6\x49\xa9\xd4\x5d\xeb\xfe\x0a\xa5\xf2\x2a\x3b\xdb\xaa\x93\xaa\x5a\x88\x84\x23\x39\xc8\xf6\xff\x0a\xf3\xb8\x85\x4f\x6f\xb2\x2f\x1b\x25\xcd\x81\x47\xb7\x55\x5d\x57\x0b\xf9\xcf\xd6\x7d\xd5\xb8\x0f\xb7\x84\x9c\xd5\x5e\x8a\x84\x52\x21\x34\x02\x2f\x25\xa6\xcc\x16\x90\x22\x99\x1b\xcd\x15\x6c\xd7\xe7\x38\x2b\xa9\x88\x87\xfc\xb9\xa0\x13\x4f\x89\x94\xb8\x06\x0b\xc6\xb3\xe4\x6d\xc2\x18\xb2\x13\x6a\x3f\x6c\xb9\x9f\xdc\x99\x7c\xd0\x5f\x35\xc9\xe8\x77\xbe\x42\xef\x26\xaa\x65\xd8\xd8\x05\x31\xa3\x1b\x93\xca\xa8\xf9\xcb\x49\x1e\x03\xc4\x85\x17\x1a\x55\xe7\xb5\x6a\x69\x0d\x2c\x13\xac\xb2\x2e\x98\xef\x79\x5c\x3d\x74\xc8\x6b\x7d\x6d\xb0\x71\xeb\x0e\xc2\x45\xfa\xac\xb0\xeb\x0a\x6e\x5a\xbf\x62\x7b\xc4\xa7\x53\x23\x17\x14\x4c\xc0\x27\x08\x9b\x0c\xd2\x5c\x9a\x92\x69\x34\x31\xce\x31\x7d\x65\x9c\xf4\xd9\x8b\xb7\x20\x85\x18\xeb\x8e\xdf\x12\x00\xb5\x7e\xd5\xc7\x8d\x3e\x17\x22\xd7\x41\x64\xa4\x10\x46\xed\x6d\x04\xe3\xc7\xcc\x0b\x9e\x2d\xd9\xe0\xde\x7a\x6d\xb0\xd5\xd7\xa8\xad\x59\xa2\x6f\x5d\x85\xcd\x6c\x6e\x5e\x61\xcb\x0d\x14\xfc\xb6\x43\xf0\x6a\x6b\x56\x8d\x60\x0b\xa5\x35\xf7\x8a\x9c\x9e\x65\xc2\x9a\xc4\xe9\xe9\xd0\xc2\x7f\xe8\xe9\x3a\x6a\xff\xd1\xcd\xe8\x8f\x46\x11\x4e\x6b\xf0\x62\xbc\xd6\x32\xf0\x74\x74\xaa\x65\x56\x87\x63\x60\xe3\x47\x24\x3a\x35\x80\x8c\xef\x21\x88\xb5\x73\xdb\x7b\x7f\x82\xde\xfb\x89\x7c\xef\x8f\xc6\x74\x91\x1f\x7f\x4b\x35\x5b\xdc\x13\x74\xb9\x42\x2e\x49\xf1\xd0\xc3\x4e\x29\xf1\x01\xbb\x63\x2c\x1b\x40\x75\x5c\x40\x7f\x59\xf8\x06\x3c\xfa\x50\x2e\xd2\x38\xbd\xb3\x48\x76\xeb\x37\x33\x12\x36\x95\x15\x2b\x17\xf7\xd9\x70\x5e\xf6\x8c\x9d\x64\xae\xb1\xd6\x3c\x62\xe3\x12\x88\xba\xbd\xc5\xbc\xf3\x2d\x47\x58\x37\xdf\x46\x4b\x32\xd9\x3b\x59\x9d\x9e\x9c\x87\xd6\x85\x76\x84\xd4\x84\xaa\x59\x15\xcc\x7c\x8e\x98\x95\x8b\xb2\x4c\xfa\x3a\xb6\xed\xd6\x22\x9e\xbf\x53\x45\x11\x9b\xca\x51\x23\xda\x87\x5d\xb6\xdb\x5d\xb6\x8d\x54\x96\xe2\xe0\x56\xbf\xbe\x2f\x8c\x14\xe9\x35\xe3\xcc\xbd\x5a\x95\xc9\x18\x7c\xa1\x4e\xe6\xf2\xf2\xd6\x2b\x3a\xca\x3d\x9a\x2c\xf7\x94\xdf\x9b\x68\x0b\xe3\xab\x5e\x1c\x6b\x79\xa8\x1d\x65\xab\x4b\x71\x6a\xd2\x56\x15\x9d\x92\x13\x53\xce\x2c\x8f\x10\xb1\xe7\x15\xb6\x9b\x09\xec\x9a\x10\x2a\x5c\x27\x16\x3c\x72\x25\x9c\x83\x15\x75\x81\xba\x3d\xb2\x41\x78\xce\x75\xe7\x73\xf7\x72\xd0\xbd\x7e\xe8\x3d\xfc\x5a\x01\x0c\x5a\x7c\xec\xb0\x41\xbd\x17\xee\x7f\xbd\x7f\xe8\x7e\x1e\x7c\xea\x5e\x77\xef\x3a\x0f\x4b\x70\x43\x9b\x3a\xab\xc3\xa4\x4c\x65\x95\xf2\xb8\x0a\x2e\xa5\x33\x32\x57\xf4\xbe\x88\x1e\xea\x75\x42\x49\x0d\x82\xa8\xc1\x74\x60\x31\x11\x28\x26\xcf\x24\xe1\xb3\xdc\xa8\x5b\x49\x30\x0f\x5a\xb4\xa2\xfd\x26\x78\x51\x68\xb3\x4c\xe3\x73\x64\x6a\x23\x7a\xe5\xa1\xb3\x06\x41\xe4\xc3\x82\xb0\xf7\x0a\x91\xaf\xb3\x84\x46\x54\x79\x39\x9f\x5c\x58\xe7\x8e\xf1\xb9\x42\x48\xef\x92\xcd\xb5\xb5\x10\x9e\xad\x5b\x1c\xfc\xf0\x83\x45\x5b\x43\x76\xa2\x32\xa8\xbb\xa5\x95\xa1\xb6\x60\x56\xa8\xf1\xb4\x2f\x20\xf1\xad\x31\xba\x5d\x18\x27\x16\x13\x9b\x6c\xde\x66\x0d\x4a\x5f\xf5\x20\x97\xdf\x86\x4d\xc1\x45\x85\x73\xdd\x1c\x5d\xd4\x6e\xa7\xbe\x72\x8c\x50\xa1\x10\xed\x16\x20\x55\x6c\xc0\xff\x8a\x51\x1e\x0b\x85\x80\x98\x09\xd4\xc5\x48\x90\x29\x57\x5a\x01\x33\x61\x14\x27\x5a\xa8\xa2\x38\xa1\xff\x04\xf0\x31\x41\xce\xbc\xb0\x13\x07\xd9\x96\x3b\x2f\x2c\x30\xc8\x59\x9f\x5d\x76\x6f\xef\xba\x17\x9a\x21\x9d\xa1\x47\x09\xb8\x62\x85\xa9\x5f\xda\xed\x6d\xc4\x31\x3f\xfc\x83\x32\xa9\x08\xae\x8b\xa0\x23\x42\x70\xd1\x9e\x3f\x64\xfd\x75\xe1\xbb\xea\xed\x0d\xcf\x0a\x96\x31\x67\x7e\xb8\xae\xad\x22\xee\x25\x5a\x6c\x3d\x91\xed\x0e\xbf\x14\x28\xe2\xe3\xaa\x80\x24\x52\xa4\xfa\x0e\xa9\x0d\xc8\xac\xed\xe7\x57\xe8\xf3\x16\xbe\x6d\x9a\xe7\x03\xc4\x25\x4a\x95\xc3\xbc\x1a\x24\xd8\xac\x9c\x51\x69\x9e\xb5\xa2\xa2\x78\x0d\x0c\x96\xd2\xd6\x1f\x92\x31\x66\x48\xa4\x8c\x95\x70\x7f\x7d\x3b\xdf\x62\xa4\xd1\xaa\x47\x55\xd3\x0c\x4f\x79\xca\x4c\x3d\x5e\x3d\xaa\x8a\xc1\xc8\x19\x61\x6a\xc9\x60\x5e\x0b\x61\xa7\x34\xd4\xc3\x05\xd9\xa9\x18\x68\x1d\xce\x4e\x95\x37\x0b\x4a\x95\xaf\x76\x2d\xbb\x48\xc6\x82\x4b\x4b\x1f\xaa\xec\x7e\xae\xd6\xb2\xb1\x7c\xda\xb8\xbb\x07\x2c\x9f\x96\x77\x15\x93\xe8\x69\xd5\xcb\xa6\x9c\xce\x9a\xd8\x4a\xef\x0b\xc6\xbe\xb9\x7e\x6a\x6b\xee\x40\x81\xff\xe8\x09\xfd\xf4\xf0\xf9\x0a\x8d\xa8\x96\x7b\xf5\xb5\x72\x8d\xb5\x8c\xfd\x28\x12\x67\x95\xb6\x96\xdd\x54\x24\xd9\xdd\x0b\x0b\xef\x44\x29\x4f\x4a\xd0\x37\x1a\x1e\x13\x67\x6a\x16\x16\x46\xb1\x54\x73\x47\x60\x16\xf3\xa9\x99\xc7\x07\x99\x8e\x46\xf4\xeb\x99\xc2\xe2\xfb\x1a\x7a\x98\x98\x8e\xc1\x3f\xf8\x70\xa0\x47\xb4\xe1\x45\x5c\xd5\x1c\xb2\x05\xc8\x33\xb2\xd9\x99\x5d\x9a\x77\xff\x0f\x1f\x02\x44\x00\xa0\x1c\x38\xdf\xa0\x8d\x93\xb0\xaf\xb8\x9d\x94\x57\xe4\x2e\xa0\xd7\x44\x5c\x08\x62\x91\x05\x4c\xd1\xd8\x19\x16\x8a\x82\xb5\xd6\xa1\xdf\x14\xca\x1e\xe4\x4b\xe4\x97\xc8\x9f\xe0\x1c\x62\x7c\x48\x08\xb8\x97\x66\x34\x59\x4d\xe9\xbd\x28\x78\x46\x4b\x27\xd0\x86\xeb\x5a\x40\x54\x30\xc8\x2c\x15\xb1\xba\xcf\x84\xa9\xad\xe8\x27\xd0\x44\x05\xd6\x41\x3b\x1f\x87\xa9\xdd\xda\xbb\xcc\x2f\x37\x17\x07\xed\xc7\x54\x29\x81\xe1\x9e\xb7\xd9\x65\xd6\xa1\x5f\x17\x66\xf0\xdc\xda\x73\x0d\xaf\x2e\xd2\x65\x49\x3e\x81\xa5\x76\x5e\x1a\x3f\x8f\x05\x76\x35\x1b\xd6\x44\x68\x92\xc4\x58\x31\x3c\x64\x10\xab\x9c\x96\xd7\xdc\xf4\xa9\xf7\x56\xa9\xcb\xa5\x4b\xbe\x06\x1c\x51\xa1\x99\x4f\x04\xf2\x60\xb7\x11\xbd\xbf\x0a\xe0\x01\x0c\xe4\x51\x24\x10\x77\xde\x68\xc5\x32\xf5\xe3\x35\xe7\xcb\x24\x3b\xdc\x42\x46\x37\x83\xd1\x42\x23\x99\x09\x12\xe9\xab\xec\x1c\xdd\x26\x44\x4b\x5e\xa9\x96\xbe\xd2\x24\x71\xd0\x6d\xcd\xd2\xe1\x4a\x70\x83\x3b\x9f\x97\xa7\x7b\x34\x4c\xcc\x41\x17\x36\xcf\xcc\xa3\xc1\xf6\x61\x2a\x3c\xfa\x82\x09\x19\x0c\x89\x45\x2d\x12\x38\xfc\xdc\x44\xed\x82\x29\x09\x17\x2e\x32\xfa\x4f\xcd\x7e\x05\x91\x13\x5e\x9b\x19\xea\xcf\x76\x37\x73\x70\xa4\xdc\xe1\x24\xdc\x7d\x58\x17\x8c\xde\x42\xae\x29\xdd\x81\x05\x11\xa7\x8d\x2f\x36\x8f\x3d\xb1\x40\xba\xf6\x6e\xb5\x43\x83\x5b\x32\x37\xb5\xf9\xa0\x76\xb9\xeb\x22\x57\x66\xe6\xc6\xf7\x9a\x7d\x9e\x1b\x90\xf3\x3c\x0a\xaa\x64\x5e\x4e\x10\xe9\xbb\xb6\x6e\x89\xf5\x3c\x07\xa9\x58\x09\xc7\x23\x87\xa3\x5f\x85\x73\xdb\x0c\x9e\x7c\x58\x9a\x08\xd5\xec\xd2\x56\x09\x01\x31\xda\x06\x3a\xc9\x02\xc4\x9f\xdd\x36\x86\x8c\x95\x2a\x5e\x3d\x53\xde\xd4\xad\x06\x52\x72\x2e\xca\xec\xca\xbb\x56\xd8\x81\x85\x09\x04\xd0\xb8\xd5\x41\xe3\x6c\xc9\x98\x6c\xef\x01\xc4\xa3\x12\x80\x96\x90\x3b\xd0\xca\x82\x83\x35\x7a\x2f\x4b\x17\x2b\xac\x4e\xab\xdc\xb0\xc2\x17\x9a\x97\x5c\x6e\xe8\x81\xd3\x93\x99\x0f\x20\xdb\x76\x93\x18\xa0\xc2\xfc\x8d\xf7\x00\xda\x24\x31\x32\x90\x0f\x06\xd2\xda\xd2\x2e\xf3\x9c\xcc\xb0\x20\x4c\xf5\xd9\x9d\x1e\x85\xf9\x22\x8f\xc4\x70\x51\x40\xae\xcc\x00\x14\x23\x1e\x21\x6c\xbf\x02\xa2\xd7\x85\xe1\xc9\x81\x79\x09\x54\xd3\x1d\x22\x13\xfc\x68\xde\x31\x40\x11\x16\x28\x49\x4f\x95\x8e\x72\x35\x5e\x0b\x90\xd1\x84\x02\x4e\x43\x4c\xa4\xbd\x90\xa8\xb2\x40\x1c\x99\xf8\x9d\x12\x07\xac\x0d\x9f\x65\xfc\xab\x8a\x61\x3b\x43\x01\x73\x06\x3a\xd9\x67\x5e\x1f\x0d\x38\xac\x46\x59\x5f\x53\x95\x80\x75\xa6\x71\xe6\xf8\x82\x7f\x9a\x15\xe2\x82\x8e\x29\xf3\xaa\x61\xd9\xe9\x4d\xf1\x0c\xcc\xbb\xe6\x0c\xf2\x51\x76\xa7\x3d\xd8\x1c\x87\x33\x18\xf1\xff\xfd\xaf\xff\x3e\xa3\x75\xde\x0f\x39\xb0\x14\x38\x84\x95\x5c\x6d\x59\xfc\x95\xf7\xa0\x57\x6a\x20\x3d\x3c\x9d\x56\x16\xf2\x36\xf2\x5f\xed\xe5\xa6\x37\x0d\x57\x13\xe3\xee\x2d\x6e\x77\xf0\x8d\x88\xb4\xe1\x6c\x98\x2b\xe6\x75\x69\x49\x25\xe4\x26\xe8\x91\x98\x93\x9c\x19\x08\xfc\x4a\xf3\x0b\x66\x9a\x3e\xcb\x3f\x91\x06\x44\xc6\xe0\xf6\x9a\x1f\x72\xea\xb4\x24\x4c\x13\xef\xcf\x23\x25\x72\x77\xb8\x17\x0b\xed\xea\xa2\x98\x18\x56\xdd\x7e\xe9\xa6\x2d\x71\x6e\x0f\xc0\x72\x93\x98\xd1\x09\x96\xbb\x0b\xcd\xa9\xac\xe7\x65\xac\xe9\xbe\xf0\xb0\x2c\x48\xc7\x0c\xd2\xa4\xc8\xea\x05\x49\x25\x11\x86\xd3\x65\x18\x62\x76\x27\xf8\xf0\x9c\x10\x21\xba\xc4\xd7\x48\xa6\x98\xae\x94\xcd\xa0\xdf\xaf\x06\x0f\x2d\x38\x1b\xf0\x98\x88\x41\x9c\xaa\x85\x63\xd1\x94\x61\xa0\x3f\xba\x4c\xd5\x7c\x79\xfb\x32\xc1\x8b\xf5\x8c\x9a\x00\x5b\xf5\xfb\x35\xcd\x2e\x97\x98\xbd\x10\x9f\xa2\xd4\x5c\x03\x87\x4a\x4a\x70\xa8\x36\xe2\xb5\x60\x22\x81\x1b\x98\x29\xc0\x21\xcc\x35\x29\x7b\x45\x1b\xd0\x76\x18\x39\x1a\xa6\xb9\x49\x29\x2b\x83\x11\x9f\xf5\xd9\x47\x53\x47\x06\xb4\x3c\x33\x80\x08\xd2\x8d\xc8\xd7\x19\x97\xa4\x90\xff\x56\x51\xda\xc2\x26\xbe\xda\x61\x54\x0b\xeb\xf9\x47\x9b\xcb\xea\xaf\x0e\x6c\xbb\xb8\xe0\x8b\x53\xae\xde\x81\x1b\x89\x83\x11\x9d\x51\xbd\x77\x06\x95\x27\x6d\x77\xe5\x95\xf3\x98\x2e\x00\x0f\x53\xc9\xfc\x04\x65\xd3\x2b\x6d\x88\x84\x3c\x13\x30\xa7\xc3\x18\xfd\x02\x26\x45\xbb\x5e\x0d\x3b\x59\x76\x80\xf2\xe4\x53\x60\x0b\x28\x2e\x8f\xa0\x98\xa2\x57\xb5\x17\x8b\xc9\x47\x1b\xe7\xc9\x55\x05\xa6\xac\x20\x9e\x77\xfc\x42\x2e\x73\xa2\x10\xf9\xaa\x88\x2d\xf5\xfa\xe0\x32\x19\x17\x93\x1f\x50\x75\x32\x56\xbd\xec\xb8\xf3\xa2\xdb\x1d\x97\xf8\xee\x52\x35\x63\x77\xe5\xdb\xd4\xc5\x09\x66\xb1\xcd\xc7\xb5\x4a\x86\x16\xb6\x60\x76\xc6\xe8\x96\x65\x2a\xd8\xac\x52\x0f\x01\xdf\xb4\x69\xa0\xfa\xe1\x22\x73\x0a\xa3\x56\x59\x20\xbc\x82\x0b\x2d\xb9\xa7\x4c\xd1\x44\x6f\x0e\x3b\x06\x89\x46\x10\x19\x67\xd1\x1d\x21\xb2\xbd\x0e\x40\x90\x4a\x49\xd9\x78\x60\x29\xe9\x52\x4b\xdb\x5d\x0c\xc5\x3d\xf5\xd9\x34\x65\x7e\xfc\xd1\x35\xd4\x6c\x54\x37\xdb\x1a\xc0\xdd\x5c\x52\x2b\x68\x1c\x8c\xbb\xc9\x58\x54\x3e\x97\x0b\x3b\xa0\xb1\x21\x05\x35\x15\xc5\x61\xa2\xab\xd8\xdd\x41\xa6\x5b\x04\xbf\xc8\xaf\x10\x69\x13\x55\x4d\xfa\x19\x44\xea\xab\x9a\x4c\x5c\x59\x9b\x81\xdb\x63\x99\x88\x66\xeb\x99\x65\x38\x03\xa5\x64\x5e\xec\xba\xb3\xe9\x08\x38\x49\x86\x38\x7a\xca\xb4\xb0\xcc\x16\xc1\x85\xab\x07\xa1\xe5\x4a\x28\x78\x67\x36\x97\x1e\x68\x04\xd2\x8d\xef\x2d\x34\xf0\x47\x76\xd8\x79\xe7\x86\x6a\x16\x57\xce\xe0\x5d\x99\xd1\x9b\xdc\x86\x98\xcc\x12\x3e\x9f\xd6\xdc\x67\xe5\x04\xc6\x4d\x22\x75\xea\xf2\x27\xb7\x7a\x95\x95\x98\xde\xca\x97\xd9\x42\x36\xd4\x16\xc0\xb8\x56\xe0\x92\xb9\xe9\xfe\x04\x6c\xf6\x39\x3f\xcc\x2c\xf6\x7d\xf6\x29\xe1\x43\xb0\xbb\x5a\x1b\x85\x4b\x03\xf2\xf2\x41\xca\x87\x7e\xd5\xe4\xa4\xf2\xb0\xa8\x9c\x25\x5a\xe3\xa9\xef\xc1\x24\xa6\xec\x76\x71\x0d\x8c\xc2\x72\x13\x62\xfb\x90\xee\xca\xcf\x77\x81\x0d\x7d\xe5\xc4\x05\xf3\xae\x61\x72\x25\x53\x9c\xc9\x47\x3c\x33\x9e\x6c\xc5\xfb\x4c\xe1\xb1\x5b\x5c\x2b\x81\xf2\x17\x46\x84\x9c\xd0\x59\xa1\x5a\xe6\xc6\x31\xe4\x76\xdb\xdb\xff\x33\x11\xd3\x95\x6d\x1e\x60\x7e\xd7\x03\x9f\x9d\x1a\x08\x17\xbd\x3b\xe5\x0c\x47\xb9\xe1\x36\x4a\xb0\x94\x74\x34\xf7\x90\x57\xb2\x60\x60\xc8\x6f\x2b\x5a\x3a\xbc\xf2\x78\x55\xbc\xd0\x50\x67\x3b\xd0\x03\x9b\xa7\x5d\x3e\x16\x0f\x3f\x8d\x7d\x64\x3e\x7d\xe5\x2d\xe2\xf3\x38\x61\xc2\x52\xbd\x16\x61\xd8\x60\x2c\xac\x07\x15\xd0\x16\xd4\x69\xc7\x3b\xa9\x22\x57\x73\x61\x23\xe5\x90\x62\x99\xb0\x6d\x69\x66\x15\xbd\x0c\x8e\xc5\xc7\x38\x52\x85\x44\x57\xd8\x79\x5a\xb1\x74\x76\x73\x7d\x2e\x33\x28\x17\x40\xbc\xc8\x3f\x3e\x41\x72\x23\xe4\xb6\x36\x9b\xf2\x92\x24\x64\x2b\x11\xe9\x6b\xec\xd0\x72\xb8\x87\xb7\x37\x1b\xf7\x65\x5e\xbb\x62\xb9\xf1\x65\x8d\x40\xf9\x1a\x20\xa5\xea\xa1\x7f\x31\x03\xb5\xb1\xf2\x55\xab\x08\x86\x53\xa0\xf2\xf2\xd1\x1e\xd2\x2e\xf7\xe2\x4f\xcc\xf0\xed\x7e\xcf\xe7\x58\xd8\xd4\xf9\x8c\x33\x61\xf2\x10\xf7\xf9\x2b\xc7\xb3\x2f\x8c\xeb\x13\x69\x13\x7b\xb3\xf4\xf4\xad\xc5\x7b\x17\x6f\xa8\x76\xfb\xc2\x7a\xb7\x15\x47\x63\x02\x70\x3d\x94\xc5\xf4\x99\xc6\x29\x4e\x8e\x6a\x4f\x6c\x2d\x1b\x67\x4b\xd4\xaf\xe6\x30\xad\xcc\x41\x79\xd0\x28\x51\xd2\xdd\x47\x0b\xc0\xa0\x76\x71\x0e\x70\x09\x0e\xe3\x58\x1a\x85\xe1\xcd\x4b\x6c\x1b\xe3\x67\xd8\x91\x59\x14\x89\x20\x4a\x16\x2e\xd9\x7c\xec\xdb\x97\x26\x0d\x8d\x63\xfb\x45\x86\x19\x51\xc0\x6a\xc3\x05\xc8\x4b\xb3\x46\xaf\xcf\x75\xcb\x47\xeb\xad\xcb\x9d\xab\x9f\xb1\xf2\xa8\xf2\xd3\x15\x84\xe1\x43\x38\xa7\xed\xe5\x61\x87\x52\x7b\x80\xc2\x4f\xdd\x31\x3c\xcc\xfb\xf7\x00\x84\xe3\x05\x91\x60\x7b\x22\xf2\x11\x6d\x93\x83\x90\x94\x17\x96\x62\x5f\xf2\xf2\xa9\x03\x00\xcb\xe1\xb4\x0e\x77\x89\x0e\xe3\x24\xdf\x59\x1f\xe5\xee\x2e\xf8\xe5\xfb\x65\x2b\xfb\x03\xb0\x70\x31\x24\xed\xa7\xb6\x26\x10\x1c\x5e\x2f\xd0\x73\xc1\x31\xb6\x24\x84\xd6\x0e\xaf\x55\xf0\xec\x02\x39\x77\xb1\xbc\x36\x43\xb3\xf5\xe2\xee\x72\xab\xad\x3a\x96\x6d\xe8\x68\x3b\x76\x31\xda\xdd\xe8\x7d\x10\x22\xd9\xdb\xdd\xa2\x15\xb8\x4f\x6e\xc9\xb6\x79\xc8\xaa\x0a\x39\x6e\x8e\x31\xe1\x12\x50\x07\x33\x41\x46\xf4\xeb\x5a\xaa\xc0\x2d\x7c\x6a\xd5\x6b\x4d\xe6\x52\x69\x48\x70\x0b\x42\x29\x49\x2f\xda\xd6\x52\xda\x96\x8f\xeb\xb3\x3c\x6d\xd7\xe6\xec\x6a\x61\x98\x8b\xc2\x4f\xeb\xe2\xa3\x6e\xbf\x8c\xa5\x59\xd7\x89\x52\x33\x79\xfe\xe1\xc3\x98\xaa\x49\x3a\x3c\x8b\xf8\xd4\x24\x89\x70\x31\x36\x7f\x7c\xa0\x52\xa6\x44\x7e\xf8\xf3\x9f\xfe\x94\x2f\xf1\x10\x47\x4f\x63\x83\xf9\xb4\xe8\xef\x2c\x2e\x39\xc1\x72\xb3\xb0\x33\x97\x5f\xb9\xe3\x3c\x7b\xaf\x1b\x97\xd9\xac\xbf\x91\x0a\x4f\x67\x7e\x9c\xb2\x29\x04\x29\x15\xce\xcb\xcf\x40\xd2\xac\x9e\x26\x9a\xe0\xd9\x8c\xb0\x7a\xb3\x8b\xc9\x82\xde\x80\xf5\xb8\x3c\x6a\x3b\x42\xf2\x75\x96\x60\x56\xc4\x06\x81\x5a\x6a\x82\x44\x84\x29\x8b\x5b\x91\x17\xb0\x87\xdd\x68\xf0\xa9\x0c\xff\x5f\x2d\x4f\x16\xe6\x48\x65\x5e\x24\xd1\x0d\xc7\x16\x2c\x76\x65\x6c\xb1\x47\xba\x72\x91\xe8\x9c\x76\xc4\x51\xad\x29\x83\xf6\xde\x16\x84\xdb\x64\x07\x45\x82\xb3\x01\xf9\xaa\x99\x9c\x5c\x17\x4d\xee\x51\x12\x89\x3a\x5f\xee\x91\x9c\x33\x85\xbf\x9e\xa3\xcf\x94\x81\x00\xfb\x13\x4f\x85\x44\x97\x78\x7e\xca\x47\xa7\x53\xce\xd4\x04\x7d\x86\xff\xb5\x3f\xbd\x10\xf2\x84\x7e\x25\x58\x58\xfe\x60\x8b\x4c\xba\x3a\x77\xb0\x85\x44\xca\x24\x22\xcf\xfa\x84\xfe\xe9\x7f\xa1\xa9\x69\xf9\x1c\xfd\xf0\xe1\x4f\xff\x0b\xfd\x01\xfe\xfb\xff\xa0\x3f\xd4\x58\x1a\x56\xc3\xa3\x83\x5a\xe4\x77\xb5\x61\x04\x40\x29\xb9\x48\xf2\x65\xcd\x5e\x08\x9e\xaf\x54\x65\xcb\x4f\x34\x7a\xe2\xa3\xd1\x40\x6f\x0c\x93\x65\x3a\xc0\x1b\x99\x1d\x7c\x68\x61\x6a\xab\xc9\x9b\xda\x94\x79\x55\x28\xdb\xa9\x81\x23\x71\xec\x5a\xa6\xb9\x79\x02\x22\xdc\x0a\xf5\xc9\xa9\x84\xaf\x48\xac\xb9\xea\x2a\xa7\xc3\x59\x17\x1d\x32\x81\xb3\x20\xf9\xf0\x3d\x4e\x20\x2e\x44\xa5\xfa\x21\xd6\x26\x0a\xcd\x12\xb2\xf2\x38\x2c\xc4\x7e\xbf\x99\x80\x5e\x98\xda\x6b\x05\xf3\xca\x85\xce\x97\xc7\xf1\xde\x73\xb1\x91\xbe\xf5\x44\x6a\xf3\x6c\x96\x54\x40\x73\x55\xb9\xb1\x6f\xd4\x50\x1c\x49\x2e\x32\x88\x6f\x63\x17\xb1\x75\x52\x97\x5b\x51\xa9\x30\x91\x8f\xed\x0e\xbd\x9e\xfa\x65\xf6\xc9\xb2\x61\x42\x18\xa4\x7b\x3b\xaf\x00\x09\xa3\xd5\x22\x92\x66\x89\x15\x23\xae\x40\xe2\x5c\xb6\xa0\xf7\x19\xf8\x0a\x34\x0e\x31\xb9\x90\x5c\xc4\x9c\x64\x6b\xd1\x2d\xaa\xd7\x33\x15\x11\xb9\xe0\x9b\xc5\x64\x27\x94\x2d\x24\x73\xd4\x06\xb7\xd5\xcb\xe4\x57\xb6\x8c\x9c\x03\xab\xe6\x71\xae\x2c\x18\xb7\x84\x2d\xd0\xe2\xa1\xe4\x16\x67\x03\x68\x8b\xdb\x00\x62\x5d\x28\x1b\xb2\x01\xd7\x36\x86\xeb\x9c\xe1\xb9\xaa\x33\xa5\x62\x33\x02\x6b\x5e\xd8\x10\x33\x09\xe1\x64\x1b\x8f\xc3\x2b\xa0\x94\xc7\xa8\x15\x4a\x19\xc3\x48\x20\x29\x73\x4d\x20\x5d\x53\xcb\xec\x04\x09\x0c\x11\xc3\x6a\xa2\xdb\x93\x44\x9c\x8e\x70\x44\xd9\xf8\xc4\xc3\x50\x05\x3c\x13\xff\x3a\xa8\xda\xa4\x0f\x58\x3e\x6d\x37\x0a\x76\xe3\x92\xb4\x34\xce\xcb\x22\x5a\xd4\x23\xe3\x58\xa1\x0b\x00\x92\x0a\xcb\xa7\x3a\xd8\xaf\x05\xcc\xc1\x86\xd1\x65\xa4\x70\x48\x85\x4d\xe3\x73\xf8\x08\xc4\xd7\xa7\xa0\x9c\x89\x2b\x92\x6e\x11\x48\x5d\x3a\x2a\xce\x20\x82\xca\xd0\xbb\x0d\xe3\x97\x13\x2e\xd4\x60\x4d\xd0\xe2\xb2\x4b\x85\x91\xd3\x04\xd0\x86\xf8\x33\x11\xcf\x94\xbc\x14\xb1\x7f\x57\xd9\x8b\xc6\x68\xe6\xc5\x53\x02\x38\xec\x74\xc6\x21\xbf\x6b\x84\xa6\x98\xcd\x0d\xa3\xd4\xcc\x05\xcb\x27\x99\x95\x66\x46\x72\x8a\x93\xe4\x04\x09\x92\x4a\x53\xb2\x5c\x92\x64\x74\xea\xaa\xc4\xc4\x28\xe1\x63\x1a\xe1\x04\x0d\x13\x1e\x3d\x49\x93\x7e\xc9\xc6\x86\x49\xcd\x04\x8f\x88\x94\x9e\x64\x95\x43\x2d\xd8\x04\x58\xa8\xcb\xac\x88\x98\x52\x46\xa5\xa2\x91\x13\x99\x72\xc4\x94\x07\xc8\xd5\x88\x30\x98\x84\x21\x9d\x18\x86\xab\x25\x3d\x62\x90\x63\x53\x66\xeb\x89\xc1\x75\x6d\x01\x21\x5d\x06\x43\xdd\x01\xda\x02\xbe\xa5\xdb\x21\x03\x55\x3c\x90\x4b\x8e\xd4\x85\xfd\x0c\x8e\x71\xd3\x16\xb8\x2b\x9e\xa8\x6c\x43\x66\x27\xad\x80\xb9\x05\x09\x0f\x59\x7e\x46\x41\x72\xc9\xd2\x16\x0e\x0c\x6e\x0f\x86\x5c\x03\xb2\xb7\x6c\x4f\x6b\x2a\x82\xc8\x03\x25\xec\xca\x5e\x7b\xca\xa2\x24\x8d\xb3\xda\xab\x5a\x04\x78\xd6\x9b\xc4\x91\x47\xd3\x5e\x0b\x0a\x27\x08\x4b\xf4\x42\x92\x44\xff\xbf\x49\xcf\x38\xcd\x6a\x8a\x68\x96\x6c\xea\xbe\x40\x27\x8e\x4b\xd7\xed\xa8\x83\x83\x4e\xbd\xc5\x6a\x62\x00\x29\xa6\x5c\x99\xb2\xb7\x06\x3a\xd5\xd9\xb7\x0c\xd6\xe6\x30\xe1\x43\x38\xe9\x80\xaa\xea\x92\xb0\xbd\x9c\xcf\x34\x8a\x08\x89\x49\x6c\x8a\x78\x66\x88\x9f\xf6\x88\x7e\x5f\x8d\xf1\x59\xa0\xc8\x01\x20\xaa\x96\x0d\x6b\xb5\xb8\xaa\xc5\x12\x88\x67\xe8\xb6\x84\x1a\xe4\x51\x66\x84\xcb\x18\x72\x27\x0b\x4b\xf8\x3a\x28\xac\xa5\x49\xec\x6e\x85\x56\x44\x61\x2d\xf4\xb9\x05\x14\xd6\xd2\x3c\x6b\x72\x46\xf8\x78\xa7\x09\xf1\x7a\x52\x57\xbc\x7d\x96\xa2\x41\xaf\x33\x77\x67\x61\x0b\xba\x03\x39\xaf\xda\x88\x87\x85\x30\x5b\x2a\x14\xfa\xba\x08\xb3\xa5\xc1\x1c\x32\xc2\x6c\x69\xa8\x87\x8b\x30\x5b\x31\xd0\x16\x08\xb3\xc6\xb9\x3f\xd0\x9b\xba\x1d\x53\x80\x84\xaa\x61\x3a\xba\x07\x1c\x82\xc6\x31\x5e\x98\xc0\x01\x73\x8d\xb9\x3b\xda\xc6\x17\xc1\x68\x6d\x82\x6e\x5d\x38\x56\xc9\x09\xb1\xea\xde\xcb\xbc\x6f\x06\x99\x64\x55\xb3\xfb\x89\x6f\xed\x06\x3b\x64\x84\x67\x16\xf0\xa0\xae\x0e\xd2\xe1\xa4\x76\xaf\x07\xde\x0b\x00\x99\x05\x96\xdf\x0a\xde\xee\x73\xa9\xa4\xc8\x84\xbf\xd8\xb2\x5e\xb0\x0d\xcd\xa6\xac\xdd\x82\xd0\xe9\xc0\x2a\x6d\x75\x94\xa3\x4c\x91\x71\x59\xa7\xcd\x0f\x0d\x65\xea\x2f\x7f\x5e\xca\x89\x0c\xfe\xa7\x53\x0f\xbd\xc2\x1e\x99\xb3\xc3\x3e\x23\x31\x8a\x26\x5a\x2b\x92\x5a\x7d\xd1\xd3\x31\x37\xab\x44\x53\x4c\x9d\x22\x95\x4a\xe3\x5a\xa2\xb2\xcf\x0a\x80\xb9\x67\xe8\x23\xd4\x4a\xc6\xd3\x99\xd6\xbf\xb2\xf9\x51\xbd\x93\xfa\xe9\x0f\x3f\xfc\x85\xa0\x1f\xd0\x94\x60\x56\xd0\x61\x41\x6d\xd2\x57\x1f\x24\xab\xaa\x09\xe9\xb3\xca\xa5\x40\xdd\xaf\xa6\x00\x9a\x8b\x37\xec\xb1\x11\x77\x3a\x31\xd4\x00\xc5\xd1\x04\xc9\x74\x68\x8a\x58\x7b\x36\x0c\x27\x48\x5f\xf1\x31\x38\xaa\xe1\x46\x76\x83\x6e\x3a\x85\xbb\x8d\x01\xb0\xee\xc6\xb6\xb7\x71\x07\xee\x91\x53\x49\x0a\xc0\x63\x15\x4e\x33\xc3\xf9\xfc\x83\x2f\x0d\x28\xd1\x89\xf1\x21\x68\xfd\x0c\x5b\xcb\xbe\x96\xa5\x21\x9c\x18\xbc\x64\x69\x82\x85\x3d\xfa\x7d\xa6\x15\x0d\x41\x9e\x29\x4f\x65\x32\x47\x31\x67\xe4\x04\x76\x42\x1a\x4d\x8c\x63\x55\xeb\x2c\xd8\x56\x53\x79\xa6\x32\xd5\x0a\x2d\xb4\xe5\x8a\xb7\x48\x85\x0d\x60\xda\x84\x42\x3f\x5a\xfd\x26\xf0\x95\xf2\xf2\x23\x51\x3b\x2d\xca\xc7\x34\x2e\xf1\xfc\x96\x98\xc6\x85\x5d\x15\x30\x8d\x33\x4c\xe3\x45\xba\x1c\x22\xa6\x71\x69\xcd\xdb\x61\x1a\x57\x2d\xf9\x1a\x98\xc6\x85\x66\xde\x0c\xa6\x71\x89\xa2\x6f\x06\xd3\xb8\x34\xaf\x80\x69\xfc\xf6\x30\x8d\x37\x44\xed\xad\xe6\xc5\x06\xfc\x4b\x51\x36\x5f\x79\x93\xbd\x97\xa8\x77\xa3\x37\x58\xf4\x54\x0c\x6a\xcb\xae\xab\xcd\x91\x82\xab\x99\xd0\x6a\x48\xc1\x95\xaa\x7a\x3d\xab\xdb\x14\x7d\x0c\x14\x83\x3d\x23\x05\x17\x26\x10\xe2\x2b\x57\x8f\xaf\xac\xdc\x7c\xb6\x6f\x3d\x3c\x17\x74\x59\xbe\x90\x5b\x62\x05\x17\xd6\xa7\x55\x24\x26\x88\xee\x5b\xd8\x89\xbb\x95\xe6\x1f\x0a\x87\x7c\xa9\x2c\xef\x53\x51\x5a\xd4\x72\x2d\xe1\x39\x28\x43\xa3\x84\xfb\xfe\xff\xb0\x73\xd7\x88\x0c\x2e\x91\x37\xf3\xab\x98\xbd\xd8\x62\xab\xb6\xde\xa1\x4e\x2b\xdd\x4e\xa2\xb0\x4b\xde\x5c\xd1\xc5\xec\x06\x71\x3f\x23\x51\x8d\x8d\x99\x4e\xe9\xb6\x9a\x5d\x76\x91\x65\x40\x6d\xa0\x90\x2f\xe4\xa5\xea\xeb\xc9\x0c\xc7\xc8\xf8\xa5\x74\x60\x40\x49\x31\x5f\x8e\xa9\x54\xa2\x36\xb6\x69\x61\x84\x9b\xb8\x4a\x67\x69\xeb\x80\x18\x8f\xaa\xe3\xf5\x3e\x9b\x92\x29\x17\xcb\x02\xab\x2a\xbf\xb4\x75\x98\xd6\xf9\x94\xcc\x26\x64\xaa\x25\x99\xc1\xaa\x8d\xb4\x5d\xef\x2c\x69\xd9\xe6\xae\x99\x40\xc7\xc2\x26\xf0\x1c\xa1\xfa\xdd\xd8\xc0\xa5\xb6\x5e\xee\x4d\x97\xd9\x02\xba\xae\xe8\x10\x72\x48\xdf\xcd\x06\x37\xfb\x52\xc1\xdd\x0d\xfb\xbb\x32\xa6\x23\x0b\xa9\x59\x1e\xb5\xd1\x10\xaf\xd1\x84\x77\x96\x7f\x65\xab\x94\xaf\xe0\xca\x2f\x7a\xe7\x35\x27\xf4\x4b\x54\xaf\x1e\xe0\x51\x03\xe9\xbb\x48\x1e\x88\xcc\x91\x44\x9c\xfa\x9a\x41\x61\x30\x8b\xf4\x2a\xec\x12\xa7\x51\x6e\xb0\x49\x52\x51\x1b\x65\xda\xc6\xa0\x1d\xa9\x14\x27\xa0\x49\xf8\xa5\x55\xcb\x8b\x3a\x9c\x57\xa4\x3d\xb6\xf3\x98\x50\xa6\xfe\xe3\xaf\x2b\xad\xa6\x56\xad\x2c\xdd\xa0\x1c\x1c\x8e\x22\x22\x8d\x8d\xdd\x46\x21\xe3\x21\x7f\x86\x4a\x70\x9b\xac\xaa\x3e\xca\x7a\xde\x9a\xc1\x67\x38\xd9\x71\xbe\xd5\x8d\xb8\x30\x11\x3c\x1d\x4f\x9c\x0d\x49\x9f\x19\x3d\xb5\xaa\xb5\xfc\x65\xc1\x46\xbe\xf2\x5a\xfe\x98\xd2\x64\x3d\x0b\xdd\x7d\xa1\x46\xde\xa7\xde\x03\x92\x93\xec\xb4\x0e\xa1\xd9\xca\x85\x5d\x1c\x74\xfb\x3e\xed\xb7\x99\xbf\x06\xba\x39\x71\xd8\xb0\x23\x9e\x24\xe0\x69\x90\x64\xfa\x4c\x44\x75\xf7\x30\xe1\x07\xba\x1a\x62\x63\x36\x00\xf8\x3a\x4f\x8c\x68\x25\x7f\xdd\x1a\xd1\x50\x22\x37\xfa\x72\xd0\x82\x09\x55\xe3\x8c\xb0\x2a\x1b\xdb\x97\xc5\xf2\x44\x47\x16\x30\xe8\xa2\xc7\xb6\x16\x34\xe8\x48\xb2\xe7\xc0\xc1\x25\xf3\x38\xd4\xe0\xc1\x12\xb3\xcb\x62\xf9\xf2\x6b\xc6\x05\x0e\x19\xc5\xa7\xa3\x49\xdc\x67\x9d\x42\x3e\x85\x2b\xe3\x3e\x9c\xe7\x01\xd9\x46\x87\xf0\x99\x19\x14\x81\xb1\x86\x15\x70\xa3\xe9\xbf\x40\xd3\x31\xc8\xca\x26\xa4\xd0\x85\x0d\x42\x34\x39\x89\x4f\x71\x34\x8f\x12\x1a\x79\x3a\xf3\x58\xe0\xd9\xa4\x8a\xe3\xb9\x95\x0f\xa8\x43\xaf\x85\x3a\x54\x57\x2d\x6d\x95\xb8\x6d\xb7\xaf\x18\x9e\x92\x80\x86\x74\x88\x68\x48\x27\x19\xde\x06\xcb\xeb\xce\xbd\x22\x8c\xc3\xe2\xb9\x0f\x90\x48\xaf\x00\x89\xb4\xce\xe1\xcf\xf1\x8e\x0a\xc7\x3e\xc0\x34\xb5\x21\xde\xeb\xc3\x34\x65\x42\xc0\x41\x21\xef\xd4\xf3\x83\x57\x46\x74\x59\x1c\xd8\x6b\xc2\x32\x55\x88\x4b\xab\xc8\x8d\x4d\xb8\x4c\x4d\xfb\xa2\x15\x5d\x5e\x17\x25\x69\x35\xca\xac\x04\x80\x54\x79\x77\x1e\x08\x1c\x52\xfd\x32\x1c\xc8\xb9\xd9\x66\x56\xcf\x6a\x85\x7d\xfd\xcc\x9e\x55\x14\xcc\xd5\x92\x7c\xb2\xfd\x70\x5c\x89\x3e\x79\x05\xc4\xf5\x92\x7d\x3a\xce\x07\x4f\x04\x9a\xf0\x24\x76\x20\x1c\x19\xb5\xb2\x0e\xb2\x4c\x88\x8c\x40\x6e\x31\xee\x67\x24\x32\xda\x66\x5e\xad\xaf\x29\xa5\x27\x5b\x44\x18\xee\x16\x18\xcd\x36\xac\x28\x19\x27\x59\xc7\x7e\xb2\x54\xba\x90\x45\xf3\x7f\xc3\x18\x0b\x14\x02\xaf\x41\xf5\x30\x97\xda\xbd\x97\x0c\xae\x49\xf4\xf0\x8c\xa3\xa2\xaa\x0e\xaf\xd9\x67\xf0\xf4\x99\x3a\x43\x0c\xf6\x7b\x6c\xf4\x52\xba\xd9\xb5\xf2\x54\x96\x37\xcb\x1a\xc1\x70\x0b\x65\x15\x37\x07\x47\x9a\xe2\xaf\x83\x19\x16\x38\x49\x48\x42\xe5\x74\x67\xc1\xd0\x17\x45\x77\xb5\x3e\xab\x82\x1b\x13\x19\x4b\xa7\x43\xb3\x15\xdd\x40\x6c\x25\x4e\xc5\x91\x48\x99\x0f\xed\x96\x2d\x4c\x56\xe9\x33\x85\x7b\x01\xac\x6a\xd1\x04\x4a\x2a\x8f\x30\x15\x8c\xc8\xda\x02\xb6\x24\x4a\x05\x55\xf3\x81\xad\x07\xdc\xfe\xc0\xdd\xdb\x2f\x2f\xec\x87\xcd\x1e\x7e\x87\x6a\xe0\xfa\xcb\xea\x0f\xcf\x88\x80\x1a\x5e\xae\x1a\x95\x57\xf3\xd8\xa2\x56\x90\xac\x10\x18\x84\x7f\x2f\x5c\xdb\x75\x81\xd3\xf8\x65\xe0\x65\x94\x0d\xa2\xf2\xe6\x58\x76\x58\xab\x70\xb7\x9a\x26\xb9\x63\xe4\xa9\x1a\x2f\xfa\x0e\xaa\xfb\xd8\xb4\x11\xd3\xb4\x1e\xb0\xe7\x0a\x07\x7b\x6d\xbe\x30\x5e\xca\x7f\x45\xb1\x1b\x6f\x9c\x16\xeb\xa8\x2a\xf8\xaa\x61\xb0\x1d\xef\xab\x16\x23\xf6\x3a\xd9\xd2\xb0\xf5\x41\x17\x22\x9d\x29\x3a\x5c\x84\xf6\x71\xdc\x60\x0b\xf5\x7d\x3b\x09\xa4\x99\x3b\x37\x4b\xa1\x5b\x53\xf4\xb7\xc0\x89\xed\xec\xb4\xfc\x6f\x71\xd4\x1c\x42\x92\x41\x98\xf2\xf3\x18\x6f\xa6\x54\x29\x97\x28\x61\x0c\xf0\x7a\x77\x16\x6d\xd3\xef\x5d\xb8\x0b\x86\x32\xcc\xc6\x44\x75\xd6\x67\x1d\x89\x5e\x08\x62\xc4\x42\x68\x54\x14\x58\xce\xac\xfa\x50\x98\x6d\x48\x74\x4f\x59\x6c\x8e\x16\x1e\xa8\x92\x59\x6d\x40\xd3\xc7\x08\x27\x92\x9c\xe8\x86\xa1\xa4\xb0\xe2\x10\xfc\x8a\xd1\x8b\xc0\xb3\x19\x11\x7d\x66\xb3\x58\xc0\xe1\xc4\x79\x62\xda\xaf\x0b\xf1\xb5\x34\x20\x83\x08\x47\x93\x3d\xad\x11\x86\x64\xa4\x68\x42\x62\x97\x2f\x5d\x5c\x1e\x37\x6f\x63\xb0\x5f\x61\xb1\x7a\x23\x57\xdb\xee\xc4\x76\x92\x44\x9a\xa3\x64\x35\xe0\x67\x44\xe8\x51\xeb\x3d\xfc\x4c\x18\xa2\x23\x37\x0e\x1b\xbb\x84\x5e\xc0\x33\xa7\xb7\xfe\x33\xa6\x89\x01\x20\x70\x5d\x3b\x21\xd0\xb8\x1f\xfa\xcc\xb8\xfb\x59\x54\xc8\xd0\xa5\x8c\xca\x89\xe6\xd4\x29\xf8\x64\x41\xcd\xa8\x4b\x1c\x62\xcf\xab\x9c\xe6\xae\x7e\xbd\x99\x83\x3e\x53\xc1\xd9\x14\x92\x84\x2c\x2e\x95\x23\x9f\x24\x2a\x3b\x1e\x95\x29\x9e\x4b\x25\xe2\x38\x96\x45\xe3\xab\x51\x2b\xe9\x3f\x0b\x66\x97\xd3\x42\x56\x64\xe4\xc1\x2a\x41\x10\xab\x2b\xfb\xd7\x24\xff\x86\xd4\x8e\xc5\xd4\x8e\x6a\xda\x1c\x62\x7a\x47\x76\x88\x57\x4d\xf1\xa8\x5b\xfe\x6d\x48\xb6\x5b\x4c\xf5\x78\xe5\x9c\x88\xdd\xa4\x43\xbc\x6e\xfe\xca\x2e\x52\x57\x42\x82\xc7\x2b\x26\x78\xb4\xb6\xd4\x16\x63\xd3\xeb\x8f\xed\x4a\xc9\x11\x4b\xc0\xac\xaa\x7a\xf9\x4c\x94\xa0\x91\xdc\x06\x7f\x90\x33\xdc\x32\xaa\x0f\xb4\xc0\xd9\x12\xa9\x49\xbf\x90\x39\x41\x21\x4e\x2e\xab\x70\x39\x14\x04\x3f\xc5\xfc\x65\xc1\x56\x27\x7d\x34\x91\xcf\x5c\x8b\x3d\x82\x44\x54\x92\x42\x24\x0f\x95\x88\x11\x69\x8d\x9d\xb8\xcf\x26\x94\x08\x2c\xa2\x09\x64\x77\xe6\x0b\x63\xb2\x84\x0d\xa0\x93\x89\xe5\xf0\xbd\x5d\x2b\x2c\x7a\x0b\xba\x97\x2d\x4c\x19\x3e\x9f\x5d\x73\x3d\x92\xa9\xf9\x24\x13\x66\xac\x94\xe1\x9b\xe4\x5a\x2d\xff\xa6\x89\x08\x19\xb1\x77\x9a\x8c\x90\x05\x53\x79\x5f\xb4\x4c\x48\xc8\x77\x43\x48\x4a\xd8\x51\x52\x42\x05\x89\x57\x4b\x4c\x58\xcb\xe4\xb7\xff\x98\x69\xd7\xf3\x3e\xe2\xa6\x97\x05\xad\xa5\xc3\xc1\xce\x8f\x5e\xe5\x9c\xdb\x9e\xc0\x2f\xd9\xa6\x30\x12\xb1\xd0\xfb\x6c\x48\xe2\x18\x38\xad\xe2\xb6\x8c\x7b\xbe\x77\x9c\x79\x40\xdf\xbd\x58\xea\xcd\x8e\x13\xce\xc6\x92\xc6\x06\x6c\x66\x86\xa1\x56\xb1\x6f\xbc\x00\x70\x05\x58\xdf\x24\x21\xc2\x79\x25\x04\xfa\x4e\x52\x66\xd1\x24\xb3\xdf\x62\x4e\x24\x7b\xaf\x8c\xb1\x00\xb3\x39\x7a\x62\xfc\x25\x21\xf1\x18\x56\xa8\x3c\x98\x53\x44\xc9\x09\xa2\x2a\xfb\x4c\x00\x1a\x03\x4f\x55\x5f\x8f\x1d\x62\xed\x8c\x06\x40\xec\xb7\xc2\x56\xaf\xf0\x38\xb0\xfc\xfe\x0c\xa1\x1e\x43\x23\x1c\xa9\x13\x24\xd3\x61\xde\x7e\xcc\x4d\x05\x7a\xad\x7d\x7b\x13\xcf\x1b\x09\x31\xf3\x15\x9d\x57\x9f\x0d\xc7\x1d\xf4\x76\xed\x24\x14\x6f\x14\x5b\xf8\x8c\x37\x81\x58\xfd\x9c\x4a\x1b\x84\x81\x38\xcb\x8e\xbe\x85\x97\xca\x30\xb2\x01\xef\xd4\xe0\x4d\x33\x1e\xd7\xda\x3a\x4b\x53\x59\x75\x2c\x79\x20\xa8\x15\x94\xac\xa3\x0a\xda\x35\xe4\xd6\x52\x93\x54\x82\xe0\xa9\x75\x0e\xe8\xab\x06\xc4\x1a\x13\x06\xaa\x47\x4f\x85\x91\x30\x57\x59\xe2\x2b\xca\x9e\xf4\xea\xe6\xa8\xe0\x1c\xf0\x92\x75\xcf\x55\x8b\x36\xd3\x37\x1e\xb9\xe0\xcc\x38\x08\x37\x92\x3b\xe9\x98\xe1\x64\x45\x1b\xc7\x02\xe5\x16\x7d\x7a\x4e\xce\xb2\xe2\x82\x96\x22\x8c\xb1\x0f\x99\x1e\x57\xb2\x21\x95\xe6\xeb\xcb\x7b\x18\xc5\x64\x46\x58\x4c\x58\x34\x87\x2d\xc2\x00\x39\x48\x30\x9c\x20\x0c\xdf\xe1\xe4\x0c\x5d\x9a\xfc\xa2\x4c\xc2\xb3\xd7\x3a\x5c\xe8\x53\xcc\xe8\x48\xeb\x09\x60\x84\xb5\xa3\xec\x33\x33\x4c\xe7\x03\x21\xb9\x75\x35\xa3\x58\xd5\xca\xe8\x1b\xe4\x7a\x43\x54\x66\x56\xfc\x1e\x35\x5f\x38\xd0\x5b\xd3\xea\xe8\xe6\x5c\x0d\x06\x99\x0e\x4f\xe1\xdf\x85\x84\x3b\x07\x54\x94\xa3\xe8\x90\x84\x80\x39\xd0\x7a\xbc\xe0\x62\xac\x03\xd6\xdb\x86\xdf\x6e\x49\x1e\x8b\xd7\x47\x41\xa9\x99\x52\x46\xa7\xe9\xd4\x73\xde\x99\x8a\x0d\x91\xb5\x5f\x9a\x4c\x94\x99\xd6\x03\x22\x07\xde\x8e\xf4\xe5\xca\xe6\x68\x4c\x9f\x09\xeb\xb3\x19\xa7\x4c\x9d\xa1\x6b\xae\x88\x57\x22\xc3\x40\x67\xf1\x99\xa2\x53\x83\xf6\x2a\x88\x3e\x07\x06\x14\x1c\x80\x36\x27\x58\x9d\xa0\x38\x85\xa3\xca\x88\xd2\xac\x03\x71\x31\x86\xc8\x70\xd1\x67\xe6\x8e\x1b\x61\x9a\xa4\x82\x58\x69\x15\x9b\x8c\xa0\x7c\xb0\xf9\x98\x2c\x06\x9c\x37\xfc\x29\x1d\x4f\x94\x5e\x1c\x2d\xdd\x59\x4f\xe3\x44\xf3\x21\xde\x67\x43\x82\x30\x9a\x71\x49\x15\x7d\xce\x3c\x97\x74\x84\xb0\x94\x60\x3b\x39\x43\x97\x05\xcb\x3f\x95\xa0\x74\xd7\x45\x14\x53\x36\xb0\x56\xe7\xfa\x4c\xa4\x8d\x97\xb0\xd0\x8b\xa5\x2f\x1e\x4a\x9e\xa4\xca\x77\xbe\x56\xaf\x6a\x6e\x14\x77\x25\x0b\xc0\x34\xcc\x47\x7d\xe6\x76\xb4\x3c\x43\x1d\x89\x24\xd7\xeb\x23\xcd\x22\x46\x82\x2a\x22\xa8\xc1\xaf\x22\xca\x2c\x42\x76\x42\xb3\xdd\x3f\xc5\xe2\x49\x0b\x4f\xbe\xed\xdd\xa0\xa9\x16\xec\x1c\x43\x23\x1b\x01\xa0\x97\xbf\x1c\x60\xf4\x47\x8c\xb3\x53\x46\xc6\x78\xd9\x8a\xf4\x59\x61\x49\xd0\x77\x74\x94\xab\xa2\x75\xde\x46\x8f\x76\x03\x88\x79\xaa\x5b\x25\xd3\x71\xdd\x22\x8d\x12\x8e\x97\x38\x8c\x47\xf9\x71\x47\xff\xe0\x43\x33\x46\xad\xf1\x73\x05\xf2\x9f\x56\xac\x46\x5c\x90\x09\x66\xf1\x89\x5b\xac\xe2\xd8\xe0\x4e\xb4\x46\x36\xa7\x86\x81\x0c\xe8\xe0\x93\x89\x41\xa1\xc2\xcc\x5b\x0b\xab\xb2\xd9\xa5\xc8\xd7\x61\xa5\x5b\x22\x6b\x0d\xaa\xbe\x18\xd3\x83\x61\x76\xf3\x99\x3d\xdc\x92\x4e\x67\x49\x9e\xcd\xe5\x59\x45\x47\x5a\xb8\x72\xdc\x91\x3f\x83\xd1\xca\xe9\x6b\x70\x9f\xdb\x95\xd3\xfb\xac\x62\xe4\x19\x0b\x85\xfb\xc2\x59\xbb\x4c\x01\x50\x8f\x79\x7d\x27\x89\xfe\xa7\x22\xb9\xc2\x67\xc4\xf4\x3e\x73\xc2\xc7\xf7\xc0\x5f\x6c\xb3\x9e\xd9\x4c\x0b\xcf\x06\xe0\xd6\xd2\x0f\x45\xc6\xbd\x5d\x38\x27\xf6\x30\xb8\x57\x2b\xaf\x28\x45\xb5\x80\xfd\x23\x05\x6c\xae\xcb\x0d\x01\xf7\x29\x8b\x49\x6d\x19\xab\x56\x5c\xa3\xee\x56\x51\x70\xc9\x0d\xd6\xad\x3c\xf1\x30\x21\x92\x20\xf5\x92\x41\xc4\x69\x8d\x0a\x8c\x95\x82\x24\xe4\x19\xe7\xb7\x5b\xd6\x97\x65\x97\x11\x96\x35\x85\x61\x00\x67\x4d\x8f\x7f\xfd\x94\xe9\x6c\x7c\x37\x7a\x28\xcf\x38\xb1\x29\x2b\xd6\x4b\x2e\xeb\x17\xac\x77\xb9\x51\xf4\xa8\x6d\xa5\x8a\x9e\xf5\xc2\x85\xeb\xfb\x67\x32\xaf\xa6\xc8\x12\xf8\xc2\xa6\x3c\xf4\x8c\xec\x2b\x58\xa9\x6f\xf3\x6f\x16\x69\x5c\x4b\xb9\x9f\x0b\x53\x7e\x85\xf4\xa9\xdb\x85\xda\xdb\xf0\xa7\x4c\x47\x23\xfa\x15\xf4\x59\x77\x93\x38\x9d\x23\x12\x5c\x6a\x2e\x06\x52\x0a\x72\x8b\x67\x5c\xc8\x9b\xa4\x52\x55\x7e\xa9\xf5\xab\x95\x77\x74\x2d\xb5\xff\x9e\x12\xb1\x11\xbd\xb3\xad\xba\x4a\x20\xa2\x77\x4a\xaa\xb5\x43\xd7\xa8\xc2\x2d\xa3\x91\xfc\x56\x1f\x70\x0d\xe9\x96\x03\x9f\x57\x7e\x36\x34\xcc\x77\xf5\x81\xf8\x5c\xbb\xd1\x9a\x96\x47\xa6\x65\x51\xc9\xae\x1c\x91\xe6\x6f\x27\x16\x5a\x1d\xdb\x90\xa9\x2c\xc9\x19\xbb\x68\x11\xe3\x12\x31\xd5\xaa\x94\xad\xb1\xe0\xe9\xe8\xb6\x31\xca\xc6\x7d\xe6\x68\x2b\x4f\x90\x09\x10\x2f\x31\xd4\x02\xaa\x3d\xf6\x3e\xcd\x36\x76\x3b\x63\xaa\xf1\xa8\x33\x22\xa5\xbe\x18\xa5\x12\x98\x32\xeb\xbd\x71\xf4\x91\x7d\x86\x4e\xcb\x11\xea\x27\x60\x41\x38\x71\x79\xae\x27\xf9\x00\x65\x9f\x99\x5c\x13\xf4\x67\xf4\x9d\xc2\x63\x73\x4b\x00\x6e\x25\x4e\x00\xf1\x12\xf4\x03\xab\x8f\x7b\x69\x01\xd9\x89\xa4\xf1\xf7\xe7\x4d\x7d\x1a\xeb\xc1\x77\xd0\x0c\x1c\x72\x4d\xc3\x9c\x40\x74\x94\xff\x83\xc4\xdf\x37\xb5\x94\x7f\xf4\x44\xe6\x27\x65\x22\xd7\xdf\x1b\x0f\x78\xa3\xd8\xcc\x5d\x5d\x1c\x30\xe8\xf6\xee\x49\x3c\x24\xc9\x2f\xf9\x44\x51\x23\x2b\xfa\x91\x32\xbc\x19\x0f\xaa\x1c\x5e\xbb\xd8\xf3\xe1\xbc\xae\x62\x5d\x05\xeb\x59\x1b\x6b\xa5\x63\x64\x59\x82\x74\x77\x56\x62\x77\xf5\x0c\x31\xc4\x3b\x4e\x48\x32\x43\x31\x1d\x81\xd3\x4d\xc1\x7e\xc9\x60\x63\x4d\xa5\x1f\xad\xd0\x4c\x53\x66\x20\x80\x4d\xbc\xc7\x8b\x3d\xe9\x96\x65\xe4\x8d\x9f\xf5\x59\x4f\xbd\x97\x48\x2a\xc1\xd9\x58\xab\xd1\xf1\x33\x95\x79\x09\x3b\x7d\x20\xd3\x29\x11\xb6\x0b\x2a\x8d\xd4\x6d\xcb\x3f\x61\x77\xb1\xe9\xb1\xe9\xab\x0f\x04\x1f\x57\x66\x51\xff\x68\xf4\x0a\x3d\x4a\xe9\xe2\xa5\x2a\x02\xde\xed\xe2\x96\x78\xe7\x9e\x8d\x96\xbf\xf8\x76\x49\x34\xcd\x4d\x98\x8e\x5f\x7e\x28\x1b\x30\x2d\xd5\x1b\x8c\x97\x2b\x5f\x08\x6d\x2f\x02\x57\x2f\x21\x35\x09\x4e\xba\x1f\xe7\xd2\x32\x83\x5b\x49\xc5\x2a\x4d\xd0\x8e\xda\x68\x4f\xbe\xf1\x92\x50\xb0\x7f\x48\x85\x15\x8d\xec\x2d\xc0\x85\xb5\xdf\x5a\xbd\xba\x7e\x69\x37\xd5\x49\x64\x84\x93\xc5\x15\x6e\xf0\xa6\x9b\xf7\x9b\x4d\x9c\xf6\xb8\x99\xb6\x1b\x21\x5d\x22\x9e\x24\xab\x14\xa8\x2b\xcd\xfc\x22\xff\xbc\x79\x44\x79\x3f\x7a\x01\xdc\x5a\xc0\xa9\x31\x06\x0a\x9c\x58\x47\x91\x54\x76\x95\xfc\x97\xcc\xa5\x36\xb7\xea\x63\x9f\xf1\x11\x94\x30\x4c\xea\x62\xd6\x67\x82\x4f\xe9\x2a\x35\x34\x4c\x18\xf7\x9d\xf3\xfa\x2f\xf1\xa1\xb8\xd8\x00\x30\xbc\x99\xed\x65\x7b\x04\x34\x06\x6c\x4d\x6a\x0d\x67\x68\x8a\x67\x6b\x11\x7c\x59\xcc\x4b\x07\x4d\x4d\xc0\x91\xa5\x1e\xa0\x69\x13\x48\x4b\x05\x22\xbf\xe0\x79\x0e\x7c\x53\x57\x1d\x81\xad\xb4\x1d\x1e\xf5\xeb\x3d\x36\xe2\x2b\x1c\xce\x1c\xa8\xc6\x9e\x3e\xec\xf6\xac\x77\xfe\xb2\x18\x0c\xb3\xfa\x86\xa6\x6d\xce\xe3\x45\xd5\xa6\x5e\xf9\x64\x3a\x0a\xee\xd2\x03\xeb\x33\x11\xef\x9b\x7f\xad\x72\xb7\x16\x8f\x96\xd7\x22\x82\xe1\x34\x93\xea\x73\x61\x1f\x6e\x9d\x46\xa5\x76\xe0\x59\x9e\x2a\x76\x5b\xdd\xea\x1e\x68\x66\x0f\x49\x2b\x62\x6d\x88\xcc\xb5\x5a\x95\x07\xd7\x63\x56\xd3\x61\x63\x4d\x6e\x19\x31\x80\x9b\x49\xab\x35\xe4\x79\x27\x16\x00\x60\x44\x13\x22\xcf\x50\xaf\xc2\x7d\xeb\xd2\xef\xb3\x70\x71\x93\x08\xe8\xa4\xa7\x54\x50\xaf\xec\xbb\x93\x91\x10\x85\xf2\x73\x7e\x08\x8b\xe7\xae\x00\xc7\xe9\x84\xbf\x98\xdc\x3b\x41\x35\xcf\x32\xc2\xaa\x02\x67\x96\xe6\x05\xd4\xfa\x82\x8c\x2b\x2d\xfb\x80\xff\x7f\xec\xbd\x6b\x73\xe3\x46\x92\x2e\xfc\x7d\x7f\x45\xad\xf7\x8d\xe8\xee\xb3\x14\xe5\xb6\xcf\x4c\x78\xb5\xe1\x88\x97\x56\xab\x6d\x8e\xd5\x92\x46\x17\x7b\xf6\x0c\x27\xd8\x45\xa0\x48\x62\x04\x56\xc1\x28\x40\x6a\xce\xee\xfc\xf7\x13\x95\x99\x75\xc1\x8d\x04\x44\xa9\xed\xdd\x33\x1f\x66\xdc\x22\x80\xba\x57\x56\x56\xe6\x93\x4f\x62\x44\x84\xb9\xe6\x38\x37\x58\x68\x81\xa8\x4f\xe9\x73\x24\xf0\xec\xcf\x6e\x60\x6b\xbd\x35\x5f\xf4\xb9\x14\xd8\x77\x0f\x68\x9d\xd3\xf2\x87\xdb\x23\xdf\xc3\xa7\xd6\xb0\xcb\xd9\x32\x17\x70\xcb\xde\x38\xc6\x34\x4c\x99\xa0\x14\x9c\x77\x37\xef\x7e\x3c\xbe\x9b\x32\x51\x44\x2c\x4d\xee\xc5\x4c\x46\xfa\x01\x2e\x7d\xbf\x94\xa2\x30\x3f\x77\x18\x81\x92\x8d\x90\x1a\x24\x41\x52\xf4\xbc\xaf\xd9\x81\x31\xff\x7d\x57\xfd\xbe\xcf\xad\xdc\xb1\x7c\x9a\xb5\x6b\xb3\x19\xc2\x32\x85\x84\x6d\x38\xb4\x2d\x76\xcd\xef\xd0\xd3\x7a\xd6\x96\xeb\xfc\x09\xc1\xd0\xf2\xaf\xa5\x1c\xa8\x74\x9d\xfa\x8f\x82\x56\x74\xe8\x74\x9b\x8c\x43\x26\x93\x61\x51\xd6\xf8\x4d\x6b\xe9\xfb\x84\x88\x27\xbd\xb1\x9e\x73\x9f\x16\x9e\x15\xb9\x10\x20\x42\xdc\x7a\xa2\xb3\x9e\x78\xd6\x5c\xc7\x82\x8f\xc6\x33\xf9\xc1\xe2\xe9\xfc\xaf\xda\xfb\x1a\x36\x8b\x20\xc1\x4b\xb5\x14\x28\x36\x4e\xb4\xfb\x01\xd2\xf5\xe9\x32\x2d\x30\x5f\xf1\x32\x91\x3c\x75\x0d\xc5\x27\x6d\x52\x22\xe7\x32\x5a\x1f\xea\x20\x4f\x96\x73\x91\x0e\xd1\x44\xa7\xcb\xb3\x54\x9b\xf5\x1d\xdd\x77\xec\xce\xa7\x64\xe4\xf6\x9d\x41\x8f\x13\x65\xf5\x64\xde\xc1\xce\x53\xcc\x17\x2c\x18\x20\xb0\xea\xb1\xf1\x48\xff\x65\x66\x91\x34\x75\x04\x60\x61\x50\xaa\x0b\x38\x83\x5a\x18\x2f\x66\x32\x2f\x25\xa4\x12\x73\x78\x4c\xce\x7c\x36\x98\xc8\xa2\x23\x08\xab\xb2\x32\x62\x02\x93\xad\xe0\xcb\xe6\x7e\xa6\x4a\x0d\xfe\xa8\x8d\x28\xcc\x01\xf5\x1a\xb2\xfc\x23\x20\x7a\xc4\xb2\x3c\xd9\x80\x4b\x59\xbf\x69\x99\xba\x53\x5e\xf0\x54\xad\x9e\xdb\xaa\xf4\xc4\xe0\x1a\xdb\x0c\x36\x7d\x67\x06\x7f\x25\xa4\xc8\xa1\xa3\x60\xcb\x6e\xdd\xc2\x3d\xac\xdc\x1d\x92\x1b\x3c\x89\xe4\xfc\xd5\xce\x62\xc1\xcb\x42\x6d\xcc\xfd\x96\xa7\xe9\x76\x84\x5e\x67\xc1\xd6\x5c\xaf\xed\x44\xa3\xc3\xb0\xcf\xd9\x44\x83\x7b\xca\xa3\xb5\xb8\x29\x78\x51\xb6\x62\xb2\x6a\xad\xfc\x42\xc8\x72\xf3\xc5\x09\xfb\xb3\xef\xe3\xe9\xe4\xf4\x87\xb3\xf9\xbb\xe9\xcd\xe4\xbb\xf3\xb3\x77\x41\x7f\xe8\xc9\x87\xe9\xcd\x4d\xf3\xd7\x1f\xa6\xb7\xcd\x1f\xaf\x2e\xaf\xee\xce\x27\xb7\x6d\xa5\x9c\x5f\x5e\xfe\x78\x77\x35\x7f\x3f\x99\x9e\xdf\x5d\x9f\xb5\x7c\x7a\x77\xdb\xfd\xf0\xe6\xc7\xe9\xd5\xd5\x99\xb3\xd2\xff\x25\xd8\x5d\xe0\x21\x37\x1d\xed\xe8\x46\x7d\x03\x1e\xb1\xea\x8b\x27\xec\xae\x9e\xd8\x8a\x22\xad\x90\x25\xec\x91\x6b\x23\xc3\x20\xd0\x0f\x2c\xad\x7e\x50\xba\x3e\x45\x30\x72\xb4\x16\x2c\x55\xea\xbe\xcc\x48\xb4\xa1\x51\x5d\x2a\x34\xfc\x08\x1d\x94\xf6\xc3\xf4\xf6\xa4\x99\x60\xcb\x15\x16\xf0\xa1\x3a\x1b\xf2\x23\x47\x6e\x00\x10\xa7\x60\x4b\xb1\x89\x97\xbc\x87\x3a\xa8\xc1\xcd\xcc\xae\x7a\xb0\x34\x2e\x8b\x5a\x35\x71\xec\x59\x94\xa0\x63\x41\xc1\xd5\x79\xdd\x35\x9a\x6e\x38\x30\xb3\x28\x5b\x88\x88\x97\x08\xd9\x36\xe7\x54\x9e\xab\x3c\x6c\xb0\x5f\x0f\xcf\x57\x28\xad\xa3\xd6\x02\x6b\x73\x66\x3a\xae\xef\x93\x2c\x13\xf1\x17\x4d\xfd\xa5\x9a\xfb\x5f\xc3\xee\x33\x75\x06\x7b\xd2\xdc\xeb\xe1\xce\x6f\xd3\xe2\xad\xb7\x0e\x27\x04\xb0\x54\x0f\xd4\x85\x34\x1d\xe6\x4c\x70\x69\xcb\x12\x80\xff\xf0\x82\x3d\x0a\x20\x8c\x29\x29\x2f\x28\xde\xbd\xcd\xde\x86\xea\xd0\x6f\x6f\xb3\xfc\x56\x88\x64\x3a\x85\xf1\x73\x28\xdc\xe6\x7b\x2d\x86\x39\xdb\xf6\xb2\x7e\xbc\xc3\x42\x41\x3a\x5b\x44\x3f\xb4\xf8\x39\x9d\x73\x2d\x27\xd2\x9e\xc3\xc2\x88\xed\x3e\xed\xb1\x4c\x6b\x95\xf4\x25\xfd\x1b\x56\x49\x71\xb1\x77\xac\x6e\x55\xcc\xb7\x66\x71\x00\x38\x41\x97\x59\xa6\xf2\x82\x75\x94\x81\x20\x45\x6c\x1f\x9c\x39\xd4\x0f\x27\xe3\xa0\x10\xa3\x61\xe8\x96\x4c\x69\xfd\xc8\x9f\x68\x5c\x03\x1f\x57\x10\xfe\x03\x17\x41\x97\xd5\x72\x53\xb9\x52\x57\x56\x68\x9b\xf2\x7b\x48\xfc\x64\x66\x0e\xf8\xbe\x49\x96\xdb\x6a\xbf\xb4\x25\xb4\x4e\x79\x2a\x96\xc5\x7c\xa0\x53\x0a\x4a\x94\x5d\x7c\x7d\xc9\x6a\xfd\x0c\x25\xf6\xbf\x25\x7c\x45\xb0\x65\x73\x35\x08\x2c\x04\xb9\x52\x05\xea\xa7\xfe\x0e\xc3\xec\x68\x82\x79\x81\x2a\xa5\x48\x77\xa7\x04\x1a\x9d\x1f\x31\x5f\x2e\x28\x7c\x3c\x93\x67\x00\x0f\xf5\x17\x11\x1b\x00\x0f\xb7\x80\xbd\xfa\x7f\x25\xa5\xfc\x67\x8d\x45\xe9\xe6\xef\xf7\xeb\x1e\xa1\x85\x22\xdd\x3a\x16\xa7\x98\x55\xbe\xeb\xb3\x7b\xd0\xea\x6d\x55\x40\xec\x30\x6e\x1d\x5d\x88\x8c\x2c\xf3\xd8\x4f\x8f\x63\x06\xaf\xb0\xa9\x6a\xcc\x7e\xb6\x96\x1f\x08\xeb\x71\x61\x2e\x16\x99\x9a\xf2\xad\xa5\xfc\x6e\x1b\xd8\xe7\x60\xd1\x7e\xee\x40\x9f\xdd\x03\xec\xe8\x32\x5b\x46\xb9\x72\x01\x97\x12\x2d\xb2\x03\xe0\x42\xa7\xee\xa3\x1b\xb1\x1b\xf9\xf8\x1e\x92\xac\x13\x6e\x1c\x94\x0e\x99\x6e\xff\x19\x27\x0b\x79\x36\x2c\x98\x82\x92\x5e\x93\x07\xd5\xec\x1f\xf0\x00\x22\x0d\x07\x5b\x26\x69\x0a\x7a\xc0\x98\x4d\xe4\xd6\xd2\x54\x98\xa3\xd0\x82\x48\x93\x95\x54\xfb\x22\xe8\x3b\x16\x53\x14\x2c\xa6\x9b\xee\xc5\x84\x38\x0d\xcf\x52\xf4\x3c\x2b\xea\x19\x18\xeb\x8c\x6c\xe1\xcd\x7c\x27\xfd\x79\xea\x06\x5c\xde\xc3\xd3\xfc\x73\xc5\x7e\x35\x9a\x1b\x7c\xf8\xf7\xf6\xa6\x7f\x5f\xf2\x9c\xcb\x02\x22\x9a\x48\x75\xcf\x45\x10\x58\x2d\x3e\x01\x06\x55\xa2\x21\x18\x7e\x0a\x27\xd7\xba\xfc\x11\x26\x96\xc4\x23\x96\x8c\xc5\x18\x72\xef\xe6\x46\x97\x58\xf8\x37\xd7\x46\x73\x98\xc9\x46\xa4\xc6\x98\x4d\x52\xad\xe8\x0b\x21\xa3\x54\x69\x80\xe0\x2e\x42\x5a\x74\x58\xf9\xe4\x56\x5a\x6c\xe1\x82\x02\x53\xe9\x8b\x57\xf4\x20\xf8\x10\x52\xc8\x82\x4f\x3c\x85\x9d\xee\x7f\xff\x57\x45\x04\xaf\x5d\x38\x89\x17\x4c\xd6\xd5\x38\x86\x5e\x6c\x92\x30\x11\xf4\xae\x09\x82\x37\x60\x62\x7c\x04\x4d\xc0\x2f\xc7\x5e\xf3\x82\xa5\x82\xeb\x82\xbd\x7d\x33\x08\x1b\x62\x3b\xe8\xa5\x2b\x6d\x5f\x1f\x06\x6f\x03\x29\x43\xe5\xce\x55\x0c\x99\x81\x79\x5e\x30\xce\xa4\x78\x0c\xe3\x66\x14\x84\x3a\xd9\x74\xbf\x22\x60\xee\x40\xcc\x3c\xf2\x0e\x41\x2c\x2a\x5e\x99\x3a\xe4\x88\x4d\x66\x41\xee\x53\x6a\x56\xcb\xca\x1a\x39\xf4\x19\xc0\xcd\xcd\x4b\x3e\xa4\x71\xcd\x8b\x99\x24\xc9\x6a\x61\x23\x41\x10\xfb\x24\x4d\xab\x61\x84\x1c\x22\x65\xa5\xe9\xb0\x69\x7d\x3c\x76\x03\x74\x01\xd7\x2f\x17\xcb\x55\xb1\xd3\xf9\xcd\x82\x31\x07\x8e\xcd\x31\x2c\xbb\x55\xdb\x69\xb3\x2f\x7f\x46\x25\xb8\xa5\xfa\x73\xb5\x4a\x22\x9e\xf6\x50\x86\x45\x5b\x93\xf7\x6c\xac\xa6\x4d\x7f\x87\x6e\xfc\xdc\x15\xf4\x57\x95\xdb\xed\xe3\x70\xcc\x3e\xaa\x16\x73\x7b\xc7\xe4\x06\xba\xc5\x21\x17\x70\x17\x54\xf8\xb9\x3c\xbe\x95\xa6\x4f\x63\xa0\x34\xd8\x2f\x05\x3d\x45\x80\x15\x1d\x18\x59\x16\x07\x11\xcb\x41\x80\x24\x81\x3d\x51\xf0\xd1\x9b\x1d\x9e\xd7\xec\xbf\x77\xf7\x47\xbe\xff\xb6\x2b\x0e\x04\xd7\xec\x78\xb7\xb2\x37\x89\xff\xca\x23\x88\x63\x84\x9a\x6c\x04\x65\x93\x6e\xd2\x26\x29\xe1\x60\xcc\x6f\x55\x0f\xb3\x5c\x45\x42\xeb\x31\x3b\x83\x83\x86\xfe\x64\x7c\x69\x1d\x12\xc1\xcb\x33\x69\x6e\x26\x96\x9d\x2e\x28\xbf\xba\xc4\xdb\x76\x00\x52\xdd\x1e\xe4\xcb\xd9\xec\xcf\x40\xd7\x75\x9b\xb0\x4c\xbb\x50\x06\x24\xad\x62\x67\xab\x13\x16\xab\xe8\x5e\xe4\xc7\xb9\x88\x13\x7d\x02\xbe\xf5\xa2\xd3\xa9\xb7\x31\xb7\xed\x83\x35\x8d\x2e\xa0\xc0\x9e\x90\xff\x53\xac\x9f\xa0\xff\x36\x84\x68\xc4\x92\x25\x5c\x27\x6c\xc4\x29\x06\x5a\x59\x32\x3f\x21\x8b\x7c\x8b\xa8\x64\x6b\xca\xaa\x0d\x84\xbd\x69\x18\xa5\xad\x2b\x56\x3a\x7f\x0e\x0c\xce\x13\xbb\x8d\x91\x39\x04\x38\xc0\x4e\x15\x8a\xe2\xb5\x50\x5c\x64\xbc\x58\x6b\x20\xe6\xa8\x8e\x01\x5d\xba\xe0\x53\x33\x42\x3c\x03\xbc\x02\x5a\x29\xfc\x47\x8e\x3e\x42\x17\x49\x9a\xce\x24\x06\x58\x00\x87\xc6\xab\x56\xfe\x1f\xf3\xe9\x88\xf1\x38\x66\xff\xdf\xeb\xf7\xe7\xff\x71\x7b\x36\x9f\x5e\x80\xd1\x7a\x7a\x7e\xf6\x66\xe4\x7e\xbc\xbc\xbb\x75\xbf\xa2\x85\xe5\x41\xe4\x6c\xc3\xef\xe1\x8a\x27\xb5\xa0\xd0\x50\x31\x93\x61\x4b\x2d\x33\x92\x79\xa2\x85\x45\xba\x92\x9a\xe2\x08\xa2\x69\x0e\xbb\x68\x55\x89\x30\x73\xc0\xe5\xf7\xda\x7d\xb2\x7b\x0d\xda\xc5\xe3\xaa\xb0\x6a\x20\x44\x00\x73\x1d\x50\xe5\xd0\xdd\xd7\x2f\x38\x21\x57\x89\xec\xc2\xe3\x09\xf9\xf0\x92\x4a\xfc\x8f\x62\x0b\x80\xf0\x2b\x9e\xe4\xbd\xd7\x5e\x3b\xd7\xa1\xdd\x31\xe6\x9e\xce\x75\x7d\x53\x69\xd4\x85\x31\x96\xb8\x13\xf3\xd9\x46\x73\xfb\xab\x77\x97\xc8\x33\xc5\xa7\x22\xb7\x1c\x5c\x2e\x66\xd5\x12\x55\xba\x83\xc6\xaf\xc1\x99\xbc\xbd\x7c\x77\x79\xc2\x44\xca\x17\x0a\xc2\x15\x09\x12\x64\x8b\xa0\x01\x8b\xd4\x26\x28\xa8\xc2\xbf\x36\x62\x99\xe7\x5f\x0b\x8d\x68\x63\x2c\x63\x0f\x0f\x5b\xa6\xf2\x26\x7b\xd9\xf3\x5e\x01\xa9\xb3\x57\x2a\xef\x73\xfc\x9b\xd7\x30\x7e\x23\x33\x17\xb9\x9a\xe4\xa5\xb3\x79\x29\x38\x70\x73\x90\x5b\x88\x6c\xf9\x04\x60\x4d\xd3\x4a\xb6\x6c\xb3\x71\xf4\x98\x5c\xf0\xfe\x4d\x25\xd9\x8f\xdf\x68\xb6\x28\x8b\x99\xac\x96\xa1\x24\x9b\xfc\x7c\xc3\xbe\xe3\x45\xb4\x7e\x33\x93\x10\x3f\xf8\xe3\x37\x1d\x44\x91\x83\xb9\x97\xcd\x98\xbc\xe3\x05\x3f\x57\x3c\x4e\xe4\xaa\x8d\x78\xd9\x67\x07\x3c\xbb\x9d\x9c\x30\x9b\xa4\xc5\x47\xbb\x16\x96\xf0\x24\x28\x08\x04\x32\x74\xc4\x4a\x11\x10\xe5\xb2\x4a\x4e\x8b\x37\x33\x38\xb0\x66\xf2\x16\x19\xa7\x8d\x54\x4d\x0a\x96\x29\xca\x50\x69\x6e\x65\xc8\xc5\xcd\x6d\x14\xb8\x48\xb7\xcc\x8c\x0e\x2c\x63\x37\x19\xa4\x8f\x81\x3e\xd3\x14\xf6\x33\x09\x17\x74\x17\x7f\x9b\xaa\x88\xa7\x80\xc9\x3b\x0a\x6c\x7a\xe6\xda\xae\x4a\x60\xbf\x01\x30\x8c\xdc\x56\xa1\xb3\x8e\x90\xc9\x29\x65\xe1\x44\x81\x01\x00\xe6\x91\xbc\xb1\x1b\x65\x24\x0e\x32\xcd\x82\xf1\x2d\xc5\xd1\x31\x1f\x3a\xe6\x59\x1c\x16\xf3\xd4\x85\xa6\xab\x52\x5a\xa6\xb5\x08\xcc\xf7\x72\x0b\xf0\x6d\x48\x29\xa7\x00\xfa\xe1\xa5\x33\x2d\xca\xc6\x2c\xba\x33\x31\xf8\x6c\x26\x11\x29\x58\x99\x97\x90\x9b\x30\xa8\x5d\x49\x00\x32\x36\xe3\xe1\xcb\x8c\x80\x8d\xa4\xeb\x67\xb9\x38\x72\x51\xde\x71\x65\x4c\xcd\x09\x3b\x66\xd7\xe1\xf5\x3a\x56\x51\xb9\xb1\x79\x23\x20\x42\x9c\x10\x70\x74\x88\xba\x15\x82\x07\xfb\xbe\x15\x0f\x1c\x74\x85\x00\x72\x9c\xde\xf7\x63\x5c\x30\x93\xf0\xd3\xa6\xa6\xde\xad\xf8\x82\xec\x38\x0c\xb5\x86\x05\xcd\xb3\x6a\x49\x95\xd2\x0e\xe6\x5e\xb8\xf0\xdc\xf6\x2a\x07\x65\x4b\x7c\xca\x14\x18\xb9\x31\x00\x5a\xc5\xaf\x34\x9b\x5e\x19\x0d\xc8\xdc\x78\xdd\x1e\x2c\x75\x81\xe0\x32\x8c\x53\x86\xaf\x31\x5c\x60\xc4\xbe\x64\xb3\xf2\xcb\x2f\xbf\x8e\xd8\x27\xfb\x8f\xdf\xff\xee\x77\x5f\xff\x7e\x48\x38\x89\xbd\x90\x43\xb9\x7e\x8c\x5c\xb2\xd0\xaa\x4a\x14\xce\x40\x53\x52\x1d\x30\x0b\xb4\x01\xbb\x86\xff\x29\x1c\xd6\x01\x76\x88\xaf\x68\x87\xeb\x70\x67\xb2\xca\xd6\xf4\x48\x02\x2d\x8a\x51\x55\x42\x38\x65\x97\x34\xfa\x7f\xde\x41\xc5\x3a\x37\x5b\xe5\x69\x18\xa7\x24\x75\xea\xb5\x29\x84\xbd\x26\xfb\x5f\x01\x0e\xc4\x37\xf6\x80\x53\x69\x2c\x72\x6c\x93\x33\xd9\x39\x43\x22\x08\x07\xf1\x29\x4b\x55\x6c\xc9\xdf\x3d\xdf\x41\x02\x0a\xc2\xd9\x27\x6e\x24\xf7\x88\x48\x42\x29\xbe\x14\x3c\x2f\x4b\x1e\x09\x8a\x85\x7e\xfd\xe9\xc4\xfc\x36\x62\xdb\x13\x00\x91\x8e\xd8\xdf\x4e\x88\x0b\x90\xe7\xc5\xdc\xfc\xf4\xc6\xea\xda\x54\x04\x34\x3a\xd1\xec\xd5\xf1\x03\xcf\x8f\x41\x3c\x1f\x63\x8b\x5e\x91\x64\x75\x59\x8f\x43\xdd\x3c\x55\xea\x9e\x00\xb6\x8d\x0f\x8f\x2d\xad\x2c\x2c\x6f\xe7\x37\xc1\xa9\x77\xb4\x43\x05\x3b\x82\x17\x04\x1b\x67\x0b\x36\xfe\xab\x56\x92\x8d\xb7\x7c\x93\xd2\xaf\xf6\x29\xe1\x7f\xb9\xa6\x98\xb8\xd8\x81\x7c\xd2\x2d\x5a\x4a\xbf\x4b\xd5\x02\x7a\xf5\xc1\xf6\x14\x11\xb4\xd0\x50\x7f\xfa\xf8\x03\x8b\x3a\x62\xc9\x36\x80\x1d\x71\xa3\x0a\x7c\x85\xc2\x5b\x9b\xbd\xfa\xe4\x9a\xf4\x27\xf4\x0b\xc3\xa0\xd8\x20\x3e\x34\x0e\x3b\xf4\x9a\x29\xf4\x13\x7b\x4d\x22\xe8\x8d\x39\x63\x08\xae\x8c\xc3\xd0\x56\xc1\xd6\x55\xf0\x1f\x41\x05\x89\x64\x18\x96\xb9\xe3\xcb\xbf\x1d\x8f\xc7\x63\xf7\x35\x70\xf2\xfc\x1f\x96\x14\x5a\xa4\x4b\x2c\xc9\x9e\x60\xdb\x99\xfc\x60\xd3\x4a\x59\xe3\xb5\x27\xac\xce\x72\x55\xa8\x48\xa5\xec\xc8\x1b\x74\x63\x15\x69\xf6\x2f\x46\xad\x0d\x86\x12\x7e\x34\xf7\xb8\x0e\x92\x7b\xcc\x63\xf1\x99\x36\x15\x19\xc4\xeb\xdb\x2a\xe4\xa8\x75\x17\x5b\xae\xc3\x60\x64\x58\x0b\x66\xe5\x1c\x13\x8f\x6d\x9e\x9b\x97\xc5\xa7\x02\x1e\x75\xd0\x04\xb7\x42\xd9\xdb\x4f\xca\x86\xb8\xf5\x6c\xc1\xb8\xac\x3b\x06\x80\xd8\x3c\x49\x32\x60\x3f\x47\xa1\xfb\xc4\x1c\x2e\x32\x4c\x74\xa4\xcb\xcd\x86\xe7\xdb\x63\xbf\xdb\x9a\x8b\xd3\xf3\xc8\x82\x8c\x49\xed\x00\x80\x0b\x37\xa5\xad\x45\x28\x06\x52\x2f\xed\x89\xe6\xf6\x6e\x04\x99\xaa\x03\x56\x26\x21\x23\x15\xd3\xba\xf6\xd1\xa7\x55\x8d\xc5\xbd\xd3\xd4\x55\x2c\x22\x46\x7b\x63\x9c\x2c\x90\xa0\x8c\xde\xb0\x1f\x77\x88\x6f\x35\xd7\x85\x11\x94\xab\x01\xee\xd1\xe9\xe5\x8d\xfd\xa6\xff\xa1\x0b\xe3\x50\x55\xd9\x79\x1a\xb2\xff\xca\x15\xcb\xf9\xa3\x3f\x7e\x01\xdb\x81\xd6\x99\xd2\xc5\xe6\xe2\xdf\xa7\xea\x2a\x49\xcd\xa9\x05\x6b\x7c\x3c\x93\x95\x9f\x47\x4c\xa4\xc9\x26\x91\x0e\x5b\x87\xc2\x5d\x2d\x51\x7b\xbe\x4f\x0a\x33\x65\x3a\xbe\x37\x12\xcc\xb2\x56\x06\x57\xaa\x89\xdc\xda\xa5\xe3\x1c\x53\x64\x81\x28\xb5\x69\x97\xbf\xa3\x43\xd4\x7e\x12\x8b\x23\x52\x48\x93\x60\xe1\xc1\xfe\x9d\x49\x53\x9a\xdd\x4b\x1e\x2e\x1c\x94\x17\x14\x77\x64\xd3\xfd\x04\x12\x00\xea\xa8\x60\x7e\x9d\xfe\xdb\xa2\xa0\x9c\xc9\x72\x73\x68\xb0\x09\xc1\x87\x7f\x2d\x33\xdd\x55\x2e\xec\x49\x45\x81\x4b\x42\x96\x1b\xbb\xa1\x06\xac\xb8\x33\x52\x7f\x62\x11\xa5\x1c\x79\xf8\x4c\x41\x80\x7c\x1c\xa1\x83\x34\x0b\xea\xc2\xe3\x05\xab\xc1\x0c\x82\xa9\x90\xaf\xf1\xef\x37\x8c\xce\x86\x2f\x47\x74\x9e\xe7\xda\xb1\x9c\xe1\x9c\x43\x06\x6e\x11\xa3\x0d\x1d\x72\x2e\xac\x78\x1e\xa3\xb5\x3c\xbc\x55\x60\x04\xaf\xd1\xbf\xb6\xaa\x64\x8f\x89\x5e\xcf\xe4\xad\xb2\x06\x47\x26\x95\xcb\x5a\x31\x82\xcb\x68\xa3\x3e\xae\x41\x08\x40\xab\xdb\x56\x80\x11\xc2\x07\xc5\x1a\x01\x0a\x76\x2e\x55\x2c\x0e\xa3\x67\xbc\xf5\xbe\x0a\xeb\xbf\xce\x05\xc6\x83\xc1\x49\xd1\x15\x4e\x2b\xb4\x1e\x68\x9b\xaf\x4f\x3c\x9c\x43\x54\x8e\xa9\x55\x3d\x0e\xca\x1d\x12\x32\x9f\xba\x53\x0d\x4a\xb1\x37\xce\x20\x1a\xb8\x32\xf6\x2e\x17\xc4\xa1\x93\x10\xb5\x70\x31\xf6\x3a\xfb\xb1\xef\x11\x0c\xbb\x03\x18\x73\xb6\xca\x55\x99\xb9\x90\x79\x1b\xee\x87\xd3\x40\x3a\xcd\x54\x2e\xd5\x09\xdd\xa9\xce\x13\x79\x8f\x2b\xfe\xa5\xe6\x08\xd3\x7d\x88\xb8\x42\x52\x6b\x73\xf0\x43\x1f\x8e\x58\x22\xa3\xb4\x84\x83\x4f\x17\x3c\xba\xc7\x94\x25\x5d\x46\x5f\xf3\xcd\x7c\x7f\x30\x65\x87\xc6\x54\xa6\x29\x55\xeb\x0f\x50\x20\x83\x03\x13\xd0\x43\xc2\x19\x67\x77\xd7\xd3\xf6\xba\xef\x93\xa6\x33\xa7\xfd\xf4\xac\x2e\x10\xf8\xbf\x1f\x93\x41\xb8\xcb\x1a\xe9\xaf\xa8\x2c\x75\x67\x5c\xea\xa2\x94\xc7\x45\x5a\x98\x0b\x44\x7c\xdd\x62\xda\x1f\xbc\x4e\x57\x59\x39\x37\x03\x95\x0e\x01\x08\x98\x56\x7c\x7f\x75\x37\x09\xbe\xdb\xb5\x54\xbe\xbf\xba\x63\x41\x1d\x48\xe7\x9c\x8a\xa8\x70\x48\xe3\x31\x3b\xf5\x59\x16\xea\x9a\x79\x2c\x1e\x92\x08\x43\x5c\x47\x46\x2b\x9a\x49\x20\x2f\x37\x77\x9d\x23\xcb\x7b\xc9\xbe\xbf\xba\x23\xb6\x4c\xcf\x6f\x83\x09\x23\x80\xc2\x62\xd8\xb1\x53\xa3\x0d\x97\x4a\x1e\x21\xb5\x4f\x1e\x7b\x6f\xc7\x08\x2e\xd7\x11\xcf\x8a\x92\x14\x8c\x87\xb7\x63\x3b\x27\xd7\xde\x13\x62\x9a\xa5\x66\xd2\xe8\x4a\x18\x65\x00\xb9\xcd\x4c\xa7\x9b\x53\x5b\x1b\xd4\x43\xc0\x01\x30\x68\x07\x09\xff\xc4\x45\xf8\x71\xb9\x65\x3c\x5f\x24\x45\x6e\xae\x61\xf8\xf1\x08\x99\xc8\xd6\x36\x7f\x15\xce\x9b\xd7\x8c\x28\x1d\x1d\x4c\x70\x22\x0b\x3d\x93\x41\x04\x8b\x8b\x0a\xc6\xe0\x85\x44\x32\x20\xfb\x05\xec\x8d\xa5\x20\x8d\x52\x55\xc6\xf6\x58\xcd\x5d\x7a\xbb\x6d\x86\x4a\xd4\x4c\x02\x33\x89\x39\x5b\x95\x51\x43\xfd\xd9\x7f\xc2\x3e\xca\x87\x24\x4e\xf8\x51\x21\x74\xca\x8f\x8a\xff\xfd\x71\x54\xfb\x89\xbf\xfd\xf2\xcb\x8f\x98\xa9\xaf\x8b\x76\x21\x60\x57\x3a\xd0\xc0\xd3\xee\xa7\x70\x3c\x85\x66\x95\x1e\x30\x4f\xe7\xc9\xbd\x60\x1f\x71\xba\x3f\x12\x3d\xf1\xd3\xa6\x6d\x26\xdb\xe6\x8d\x3d\x65\xda\x80\x2c\xbe\x7d\xde\xd8\x8e\x69\x7b\xbb\x1a\xff\x6e\xb5\x30\xb3\xf5\xd5\x6a\xfc\xf6\x4b\xf8\x67\x6d\x8e\xf6\x6d\x5e\x17\x3d\xd3\xd6\xec\x16\x41\xd4\xb2\x2d\x9d\x2c\x9a\xc9\xfd\xc2\x88\x0d\x93\x45\xb0\x6a\xdb\x36\x3e\x2f\xc4\xa1\xd1\xad\xc8\x5a\x3d\x00\x7d\xdd\xa0\x03\xdf\xe9\x11\x3c\x90\x4b\xdb\xf3\x60\x03\xdc\xb3\x9b\xd4\x3b\x04\xe0\xc2\xc3\x01\x7c\x3c\xf0\x7e\xbf\xfe\xd4\xde\xdd\xd3\x9d\xdd\xcd\x4c\x85\x18\xc0\x20\x73\x63\x5e\xef\xd9\xc8\xca\xab\xbb\xda\xf8\xc8\x31\x5f\x60\x33\x4d\x4d\x4c\xb7\xf5\x21\xbb\xc8\x2e\x47\x34\x99\x68\x17\xf7\xe7\x5a\x62\xa1\x95\xee\x7e\x6d\xeb\x5d\xd1\x5e\x0a\xd3\x11\x3a\xaf\x5b\xcb\xc2\x0f\x4c\x11\x07\x42\xe1\xcc\x95\x7a\xbe\xe9\x4d\x81\xee\x2b\x7e\x47\x1f\x7f\x68\x10\xa2\x3b\xf5\xf2\x03\x44\x66\x3b\x32\xac\x0d\x97\x46\x5b\xb3\xb5\x76\x38\x96\xf0\x96\xff\xa4\x26\xdd\x65\x4f\x6a\x10\xd6\xd8\x33\x53\x3f\x55\x65\x4b\x79\x44\xdf\x2a\x4f\xd1\x77\x50\xac\xc1\xac\xec\x33\xdc\x5a\x31\xe7\xcd\xcb\x98\x0d\x37\xe5\xf9\x0a\x8d\x5e\x5a\x14\xfa\x4d\xcb\x0c\xfb\x38\xb6\x03\x66\xd8\xaa\x5d\xf3\x61\x3c\x1f\x56\x1f\x03\x93\xca\xae\x9d\xe6\x5a\x59\x4d\x87\xe1\x6e\x5a\xb6\xfe\x90\xeb\xdd\x07\xd7\x45\x2a\xc7\xdc\x51\xc0\xc7\xda\xcd\x83\x75\x20\x1d\xec\x05\xdf\x38\x96\x17\x2a\xcd\xc6\xec\x62\xe3\x16\x02\x32\xb9\x74\xb7\xa1\x17\xd7\x6b\xdf\x26\x10\x23\x6d\x57\x0b\x66\x72\x62\x5f\xf1\xac\xd4\x3a\x41\x2b\x0b\x86\x23\x96\x0b\x8c\x70\x01\x9b\x19\xf7\xa3\x4e\x9d\xeb\xe8\xc4\xd0\x80\xfc\x5a\x17\xee\xb4\xc8\xfd\x69\xe4\x59\x4b\xc3\x7e\x74\xd4\xdc\x8f\xb5\x78\xa7\x44\xb7\x5d\xa4\xa2\xec\x58\xee\xa9\x58\xe5\xfb\x18\x20\x77\x55\x6a\x11\x17\x66\x17\xaf\x80\x7f\x2c\x48\xb4\xdc\x55\x7b\xff\x6b\x12\x75\x83\xe8\xb2\x11\x43\x01\x51\x09\xe9\xd6\x6f\x12\x4f\xad\x5e\xab\xac\x29\x2b\x8a\x83\xce\x82\x84\x6f\xe6\xb9\xea\x4e\xff\xdc\x63\xbc\x6c\x11\x15\x8f\xc1\x1a\xd3\x41\x6e\xd9\x2f\x25\x4f\xf1\x68\x95\xb4\x19\x6c\xb3\xc1\xf8\xf2\xd5\xef\xd9\x04\xce\x3e\xf6\x01\xa4\x32\x40\xc6\xa0\xb4\x42\xb1\x64\x93\x89\x5c\x2b\xc9\x3b\xf3\xa0\xdf\x7f\xa3\xe7\x94\xcb\xd5\x5c\xcc\x55\xd9\xcc\xdb\x3a\xa0\x27\x2d\xa5\x85\x9d\xe2\xec\xbe\x5c\x88\x5c\x0a\xcc\xf5\x0e\xef\x31\xfb\x5e\xaf\xe6\x2a\x5e\x16\xeb\xaf\xe6\x51\x9a\xf4\x4e\x30\x0b\xf1\xaa\x13\xf3\xd9\x29\x7e\xb5\xab\x03\x95\xf2\x2b\x4d\x97\x0c\x9f\x31\x7c\x36\x66\xdf\xf1\xe8\x5e\xc8\x98\x65\x69\xb9\x4a\x88\x9e\x06\x2f\x1b\x49\xd5\xac\x50\xed\x18\x6a\x36\x58\xbe\x39\x04\x67\x72\xc3\xef\x31\xe9\x0b\xa9\xb0\xe6\xde\xd2\x45\x6e\xe8\x0c\x35\xf3\xa4\xb9\x76\xf7\xce\x96\x3b\x8d\x9b\xc5\xd4\xd7\x9e\x2e\x31\x5a\xef\x71\xad\x08\xe3\x54\xb1\x13\x0d\xd8\xb8\x6e\xb5\x36\x58\xc4\x2c\xd3\x8b\xcb\xfa\x4f\x8d\xc1\xdd\x0b\x0e\x44\x48\x5c\x54\x4a\xc6\x81\x88\xec\x95\x66\x65\x66\x85\x08\x78\xb6\x52\xc0\x19\xe1\x14\x98\x07\x59\x12\xdd\x23\xb2\x15\x62\x37\x98\xeb\x5e\x23\x39\x34\x13\x1e\x62\xd9\x26\x1a\x96\x48\xc3\x73\x18\x6a\xa6\x91\xf7\x68\xcf\x3a\xed\x19\x97\x52\xac\x85\x9c\x3f\x21\xfd\x4e\xff\x49\xab\xc4\xa0\x90\x12\xee\x3c\x84\x6e\x08\x4b\x99\x10\xe9\xb6\xbf\xe1\xbb\x0c\x13\xc9\xb2\xa6\xc4\x27\x9a\x69\x5e\x24\xda\xc8\xb2\xd6\x11\xf7\xe4\x47\x87\x8c\x3a\x1f\xc6\xb8\xd4\xc2\xb6\x54\x1b\x0b\x17\xe7\x36\x66\xef\xc1\xaf\x12\xdc\x4b\x94\xe3\x2e\xea\x12\x58\xc5\x5a\x74\x92\xf8\x3e\x07\x40\xd4\xf6\x20\x78\x7f\xa7\xbb\xcc\xc5\x34\x8e\xd9\xc4\xfb\xb3\x91\xbd\x09\x3d\xd5\x7b\x7a\x24\x52\x2d\x9e\xb2\xf8\x7a\xb9\x7e\x00\xf3\x05\x0b\x88\x81\x1e\xa7\xcd\xef\x9e\xcd\xdd\x35\xf3\x11\x68\x03\xf8\xbd\x90\xbb\xec\xfb\xfd\x5b\x88\x0e\x98\x9d\x06\x09\xe7\xd9\x51\xe8\xdc\x79\x4a\x03\xfb\x6f\x3b\x4f\x98\x95\x2c\x8f\xcd\x90\x9b\x4b\x50\x74\x4f\xc1\x8a\xe8\xdf\x23\xca\xad\xc7\xb5\xd2\xe1\x3e\xb3\xf3\x87\xf7\xe8\xbc\x74\x59\xb5\x20\xd8\xd3\x0d\x30\xa2\x3c\xa5\x0a\x19\xb9\xa0\xd5\x6e\x93\xa2\x51\xc9\xcd\x37\xb3\x22\x14\x86\x01\x70\x11\xb6\xa8\x96\xdd\x2c\xb3\xf2\xb9\x72\xb7\xec\xa7\xc1\x6e\x8e\x70\xa3\x41\x3f\x7e\xa3\x2f\xa1\xbe\xe7\x20\xa3\x41\x2b\xe3\xf3\x07\x82\x3d\xd1\x05\xee\x20\xce\xd6\xfa\xa9\x20\x48\x84\x0e\xca\x4c\xc5\xcc\xaf\xf7\xae\x48\x1b\x29\x15\x42\x5c\x7f\x83\xdd\x0a\x1a\xd7\xbb\x6f\xfb\xb6\xda\x87\x00\x27\xc7\x16\x65\x92\xc6\xc8\x26\x18\x68\xa8\xca\xaa\x40\x90\xc6\x08\xf4\x91\x44\xbb\x03\xae\x65\xd1\xff\xf8\x8d\xbe\x52\xf1\x21\x0b\x6b\x38\x63\x6c\x73\x5d\xf7\x08\xa3\xd1\x21\x96\x69\xb3\x7f\x24\x32\xd5\x1d\x00\x11\xcf\x75\x35\x63\xef\x8e\x06\x03\xe2\x6d\x51\x2e\x6f\x20\x3d\x68\x17\x29\x53\x90\x39\xcf\x46\x59\x9b\x79\x36\xd5\xb8\x98\xbf\xae\x49\x21\x00\x95\xd7\x47\x38\xfb\xc3\xcd\xe5\xc5\xd1\x86\xe7\x7a\xcd\x81\xf4\xc2\x96\x35\xb2\x19\xd7\xd1\x5a\x60\x81\x1d\x89\x9c\xc9\x23\xb6\x52\x23\x84\x11\x9d\xb0\x75\x51\x64\xfa\xe4\xf8\x78\x95\x14\xeb\x72\x31\x8e\xd4\xe6\xd8\x0f\xcd\x31\xcf\x92\xe3\x45\xaa\x16\xc7\xb9\x80\x40\x92\xa3\xb7\xe3\xaf\xde\xc2\xcc\x1c\x3f\xbc\x3d\x06\xf0\xc8\x78\xa5\xfe\xe5\xfc\xab\x7f\xfb\xfa\xf7\xa6\xe0\x6c\x5b\xac\x95\x3c\x21\x8c\xd2\xce\xb2\x8f\xf0\x9a\x70\x8c\x9f\xd4\x6a\xf9\xb7\xf1\x97\x61\x33\xe8\xd5\x8d\x8a\x45\xaa\x8f\x1f\xde\xce\xed\xc4\x8c\xb3\x8e\xcc\x16\xff\x08\xbd\xf8\x0c\xa1\x17\xf7\x49\xf1\x8f\xd0\x8b\x5f\x35\xf4\xa2\xbf\xca\xe5\x64\x0c\x70\x59\x7b\xf9\x68\x7e\x77\x32\xd2\x7a\x22\xf6\xc9\xa1\x96\xc3\x21\x0c\x8c\x3b\xe0\x88\x18\x98\x68\xae\xd6\x5d\x77\x97\xe9\xb0\x38\x0e\xcd\x27\xd3\x79\xbb\x18\xc4\x03\x02\x40\xc7\x24\x02\x5b\x21\x5a\x48\x33\x9e\xb4\x05\x54\x04\xf9\x75\x0e\x18\x42\xcc\xf7\xd1\x4e\x7a\xd6\x27\x2d\x16\x65\x86\x12\xf1\xfc\x59\x12\x64\xb5\xd6\x81\x98\xd0\xc1\xe5\x37\xf4\xee\x1e\xaa\x31\xa1\xa4\x0f\x1a\xd1\x17\x4c\x65\xf2\xdc\x39\x4c\xa8\xbb\x4f\xcc\x5f\x92\xe2\xd7\x16\xd3\xad\x1e\x6d\xde\x92\xe7\xc8\xf6\xe1\xf1\xea\xfd\x32\x7d\xe0\x22\x85\xb6\xd8\x76\x75\x34\x63\xcd\xf5\xd3\x82\x03\x26\x48\x15\xec\x7c\xc1\x88\xac\x4e\xb4\xad\xd0\x9e\xc6\x96\x7d\xc9\x1c\xee\x96\xe4\x31\x2b\xf3\x4c\x69\xa1\xc7\xec\xbd\xca\x91\xd6\x8b\x38\x77\x7c\xc0\xc3\xf5\xfb\x53\xf6\xf6\x9b\x7f\xfb\x7a\x26\x5f\xb7\x28\x43\x70\x88\xaa\x7c\x45\xf1\x17\xa0\x02\x6d\xb8\x2e\x44\x7e\x9c\x2f\xa3\x63\x3c\x3a\x8e\xcd\xf7\x47\x54\xe9\x91\x5a\x1e\xb9\x54\x06\x47\xc4\xea\x3e\xde\xc4\x6f\xba\x90\x89\xed\x0a\xf7\xaf\x76\xe9\x99\x74\x28\xe6\x6d\xf3\xbb\x5f\xb0\x56\xb6\x10\x2a\x22\xa4\x85\x68\xd0\x58\x90\x8a\x51\x2d\x5d\xf2\x1d\x8c\xf3\xc5\x3c\x5d\x6a\xd9\xf2\x8f\xef\x52\xb5\xd0\x6f\x1c\x01\x2c\xd7\xb6\x0e\xcf\xc8\xd8\x26\xb7\x1b\x7b\xee\x90\xdb\x37\x0d\xc5\x4b\x9a\xd5\xac\x4c\x0c\xa7\x6d\xc8\xc0\xb7\x0b\x0d\xaf\x0b\x22\x1f\x15\xcf\x55\x29\x6d\x76\x0b\x25\x85\x5a\x02\xcc\x09\xae\x49\x16\xa5\x09\x9e\x05\xc0\xfe\x39\xee\xa9\x5c\x64\xa8\x7d\x80\x0f\xac\x7b\xb8\x0f\xcc\xf0\xb2\x6f\x9c\x5f\x22\xc3\xcb\xa1\xe3\x4e\x82\xf1\x57\x1a\xf0\x43\x43\x29\x70\x2b\x0d\x41\x20\x99\xf7\xf7\xa2\x0d\x9c\x1c\xf0\x19\xa6\x7d\x32\x85\x8c\xe7\xa0\xc1\x8b\xa3\x42\x1d\x01\x69\x1f\x50\xc1\x61\xce\xa5\x2e\x08\x12\xa0\x34\x86\x1c\xf7\xe6\xfd\x1e\xed\xc4\x5b\xdb\xa7\xa0\xa1\xa4\xb0\x6a\xa4\x30\x27\x48\x7a\x22\xa5\xc8\xc9\x03\xbc\x57\x33\x18\x88\xe1\x08\xa7\x72\x37\x22\xdd\x9b\x29\xc2\x7c\x38\x2e\x1e\x91\x07\x42\x60\xcc\xe0\x6a\xb2\x56\x1b\x65\x74\x5d\x55\xea\xe0\x21\x5e\x6d\x41\x99\xe8\x54\xcc\x37\x3c\x43\x7d\xf5\xd7\xeb\x8d\xd9\x5a\xe6\x11\x9a\xa0\xc3\x97\x06\xa5\x18\x5b\x54\x93\x2a\xed\x69\xbf\xcb\x86\xb3\x7b\xdd\x00\x42\x68\x03\x2e\xbf\x35\x7f\x10\x36\xc7\x45\xf2\x37\x73\xe9\x35\x4b\xca\x5d\x23\x9d\x06\x82\x80\x36\xe4\xa2\x0e\xe1\x9b\xf6\xd4\xed\x64\x8b\x29\x37\x03\xe7\xc0\x05\x59\xf5\x99\x00\x2e\x31\xec\xc8\xc6\x1b\x1d\xb5\x06\x1c\x75\xed\x4b\xb0\xab\x95\xe6\x66\x62\xf9\xd2\x87\x35\xf5\xc6\x15\x40\xd4\xe8\xcd\x76\x7b\xba\x49\x88\x4e\xc3\x31\x46\x81\x60\x75\x8b\x2e\x90\xf3\xf0\xcd\x08\x09\xe6\x86\x8c\x1d\x54\x82\x8b\xb3\x31\x82\xc1\x5e\xe8\x1a\xc0\x61\xf6\xd7\x5d\xe6\xcc\x36\x7c\x3b\x32\xf4\xfa\xe8\x65\xd3\xca\x86\x65\xc1\x7d\xf8\xe0\x93\x18\x03\xfc\x77\x51\xc2\xf3\x8b\xcb\xdb\x10\xd9\x94\x60\x6f\x8f\xa2\xb5\x88\xee\xc1\x9a\x86\x47\x1e\x6e\x06\x0a\xc6\x07\xb8\xb5\x4f\x7d\x5a\x28\x0b\x94\xd9\xba\x6c\x30\x2e\x23\x92\xca\x59\x9c\xe8\x2c\xe5\x5b\x80\x24\x48\x8c\x53\xf4\x70\x06\x17\xe0\x6b\x44\xc1\x3e\x67\x42\xff\x99\x36\xb3\x32\xf1\xdf\x0d\x1d\x4b\x0f\x3c\xf7\x83\xd9\x94\x07\x4c\x8b\x0d\x97\x45\x12\xcd\xe4\x46\x70\x19\x22\x58\x09\x92\x61\x06\x39\x56\x82\xf2\x25\x2c\x97\x22\x2a\x3c\xe1\x32\x5c\x42\xdc\x48\xed\xdb\x83\xc3\xfa\xee\x76\xde\xce\xae\xff\x60\xd3\x33\x27\x1b\xc0\x47\xd3\x1a\xa2\xa3\xf1\x89\xae\x46\x48\x95\x4b\x47\xae\xbd\xd4\xc2\x5f\x76\x4d\xb1\x85\x28\x1e\x05\xf0\x09\x11\x01\x42\x9b\x8e\x7f\x70\xba\xa4\x43\x82\x07\x27\x8e\x7f\x90\xe8\xe5\x1b\x04\xc2\xb4\xc1\x42\xe0\xa5\x23\x3e\x94\x35\x06\xc3\x57\x44\xc9\x00\xa6\xc0\x57\x64\xd4\x7c\x05\xc7\xb4\xb9\x05\xe7\x0f\x22\x9e\xc9\x2a\xad\x24\xe9\x8c\x7e\xc3\x31\x9f\x08\xf4\x79\xa4\x8d\x1d\xe3\x5e\x8e\x9e\x33\xa0\xd2\xf2\x24\xda\x8e\x74\x60\x47\x62\x52\xec\xf4\x4b\xde\xaa\x6c\x4e\xe4\xbe\x97\x61\x9f\x2b\x94\x12\xfd\x51\x5e\xe0\x0a\xfa\xc7\x2d\x4a\x47\x9a\x87\x8c\xba\x0e\x2c\x4e\x46\xeb\x86\x19\xbc\xad\x8c\x99\xb4\x6c\x32\xcb\x32\x45\x96\xf4\xae\x98\x1d\xe2\xd0\xb4\x91\xaf\xbf\x5e\x04\xb4\x33\xba\xb2\x20\xb7\xaa\x03\xe9\x04\xc0\x7d\x94\x75\x76\xd5\x0b\xa9\x4b\x50\x29\x6c\x5a\x45\xf0\x4a\xac\x44\x01\xa7\x79\x5c\xa6\x08\xd8\x04\x77\x0a\xf0\x71\xf2\x34\x65\x49\xa1\x67\xd2\xd1\x87\x62\x60\x0e\x48\x58\xeb\x6f\x89\xe9\xca\x05\x55\x40\xb1\xf0\x98\x4b\xd0\xc3\x92\x28\x29\x1a\xe1\x0e\xdb\x30\x15\x59\x96\x09\x8e\xb1\xfc\x38\x6d\x33\x19\xde\xb9\xea\x93\x40\x81\xef\x90\xbd\xfe\x39\x62\xd0\x77\x18\x6e\x4d\x15\x4f\x42\xd9\x60\xef\xcc\x85\xcb\x66\x19\xc7\xd6\x12\x7f\x10\xa1\x92\xcd\xad\xa6\xd0\xd6\x81\xe2\xef\xad\x10\xd3\x13\x95\x29\xcf\x31\x98\x69\x59\xa6\x2c\x59\x06\x09\xd3\x61\x0e\x90\x3c\xd2\x4c\x57\xa4\xe0\xac\xb6\x2e\x14\xcd\x37\x22\xe0\xad\x21\xf3\x4e\x1a\x20\x7e\x30\x23\x06\x42\x49\x4c\x59\x6f\xc6\xec\x9d\xa7\xc7\xc5\x19\x86\x3d\x11\x90\x4e\x27\x1a\xc5\x9f\x6b\x6f\x40\xb9\x00\xbd\x33\x4d\x54\xd2\xec\x48\xb7\xeb\x3a\x66\x10\x92\xd7\x0c\x83\x13\xd9\xd4\x45\xbb\x11\xf6\xad\x94\x2b\xe6\xd3\x1a\xc8\xc8\x6d\x88\x8e\x06\xda\x53\x61\x60\x23\x43\xc2\xee\x27\x34\xd4\x11\xa2\xb7\x34\x76\xb3\x23\x3f\x3b\xcc\xe3\xc0\xa6\x06\xd9\x0e\x87\x37\x34\x58\x39\x21\x78\xac\xcf\xc8\xae\x78\x31\x14\x49\xe6\x02\xd7\x86\x37\xb4\x15\xb5\xd7\xa7\x99\x20\x3d\x06\xb6\x73\x62\xbe\x79\x62\x43\x75\xb9\x38\x42\x01\xed\xf2\x21\x81\xa8\x10\x3c\x5a\x57\x39\x24\x2c\xd3\xb3\xeb\x01\xc4\x10\xc2\x7e\x1c\x4e\x7f\x31\xf1\x6b\x0e\x12\x3e\x32\xd3\xfc\x31\xbb\x94\x02\x71\x9e\x6a\x19\x1c\x2a\xd4\x00\xca\x0c\x09\xc9\x76\x9c\x94\x5b\x98\x86\xc9\x7b\x4b\xad\x65\xb6\xdc\x88\x71\x5f\x3a\x48\x3d\x5c\x36\x28\x45\x3a\x74\xc9\xb6\xd4\x54\x07\xa8\x97\xfd\x08\x2a\xda\xef\xfc\x01\x5c\x7a\xb8\x04\x68\xeb\x47\xff\x69\xd9\x19\xf7\xe0\x6e\x71\x36\xd8\xa1\xba\x6e\x18\x82\x9f\xf7\x8d\xef\xd5\xba\x8a\x99\x1d\x90\xc8\xf1\xee\xe2\xdd\xd9\xfb\xe9\x45\x35\xfb\xe2\x1f\xef\xce\xee\xaa\xbf\x5c\xdf\x5d\x5c\x4c\x2f\xbe\x0f\x7f\xba\xb9\x3b\x3d\x3d\x3b\x7b\x57\x7d\xef\xfd\x64\x7a\x5e\x7b\xcf\xfc\x54\x7d\x69\xf2\xdd\xe5\x75\x2d\xdf\xa3\x4d\xd6\x18\xfc\x74\x3b\xfd\x70\xf6\x6e\x7e\x79\x57\x49\x19\xf9\xee\x3f\x2e\x26\x1f\xa6\xa7\xf3\x96\xf6\x5c\x9f\x9d\x5e\xfe\x74\x76\xbd\x27\xe3\xa3\xef\x6f\xeb\x90\x3e\x07\xb6\xf0\xc9\xf9\x3f\x27\x6c\x99\x27\x42\xc6\xe9\x16\x23\x45\xec\xcd\xb6\x06\xfd\x0e\xcf\xde\x64\x23\x54\x79\x48\xc0\xc7\xed\x5a\x30\xf5\x20\x72\x60\x01\xc3\xd2\x88\x32\xc4\x33\x0e\xd4\x6b\xcd\x45\x91\x37\xbd\x02\x3b\xa3\xea\x8a\x7c\xeb\xe2\x36\x77\x35\xc7\x33\x48\x52\x25\x2c\x13\xf9\xae\xb6\x80\x66\x94\x97\x59\x91\x2c\xba\x43\x78\x06\x07\xde\xf7\xbd\x7b\x23\xdf\x71\x3b\x39\xdc\x45\xbb\x60\xac\x44\xb2\x1c\x02\x93\x87\x12\x9e\x9a\xd6\xd6\x7d\x6d\xa1\xc5\x59\xb9\x48\x93\x88\x25\x71\xdd\x9e\x42\x7c\x18\x60\x32\xae\xd3\xa2\x67\x22\x07\x55\xd5\xdc\x00\xb2\x5c\x1c\xf1\xb2\x58\x23\x85\x27\x05\xce\x50\x12\x9b\x99\xd4\x22\xca\x05\xfa\x02\x84\x06\x23\x2d\xe6\x33\x0d\x6a\x82\xc6\x10\x83\x4d\x0c\x64\x79\xe3\x20\x45\x4d\x87\x8f\x00\xbf\xc4\xd2\x07\x18\x49\xf1\xfd\x9d\x43\x43\x2d\x4e\x30\x63\x6a\x00\x0b\x83\x13\x1e\x1f\xda\xac\xa8\xa6\xdf\x46\x52\xbb\xac\xa0\x38\xc9\x36\xd2\xa8\xbd\x1b\xfb\xd6\x58\xb8\x50\xaa\xa1\x37\x54\x3a\x3d\x3a\xcd\x05\x1c\x22\x04\x69\xb0\xf6\x0b\xc0\x35\x51\x64\x12\x04\x24\x99\xab\xda\x42\xac\x79\xba\x44\x8d\xc3\x4c\x4d\x3b\xab\x08\x96\x7f\xab\xee\x85\xbc\xc6\x09\xfb\x55\xc4\xa1\xc4\x9b\x8f\xe7\x34\x72\x16\x21\x6f\xc2\x34\x6d\xb4\xab\xca\xc6\x85\x82\x32\x55\xe0\x3d\x21\x78\x8c\x01\x48\x3e\x63\x81\x0d\x29\x5d\x2e\x93\x4f\xa6\xc0\x99\x14\xad\x9c\xed\x00\x26\xb3\xec\x92\x4e\x2e\x03\x70\x0e\x29\xfa\xee\x85\x84\x7c\xaa\x40\x0e\xb8\x7f\xcd\x0e\xb3\x9f\x37\xe7\x62\x87\x41\x1f\x6c\x7e\x49\x25\xcd\x6c\xe8\xe5\xb1\xe3\x54\x60\x44\x98\xe3\xe0\x80\x75\x73\x7a\x3e\x3d\xbb\xb8\x9d\x9f\x5e\x9f\xbd\x3b\xbb\xb8\x9d\x4e\xce\x6f\xfa\x6e\xbf\xe7\x88\xe2\xab\xed\xbe\x7a\x30\x9b\x93\x10\xc7\xb4\xf3\x7c\x28\xbb\xeb\x94\xdf\x76\x30\x25\xfb\x5b\x9f\xc4\xd9\x3c\x4e\x74\x64\x8e\xbf\xed\x5c\xc8\x18\x92\x5d\x3c\x69\xa9\xb6\x17\x55\xef\x85\x7b\x83\xb9\x37\xac\x04\xc1\xd3\xee\xc1\xae\x68\xf7\x1c\x20\x99\x60\x86\xcc\x85\xd9\xfc\x71\x85\x63\x64\xbc\x3f\xc3\x99\x29\xee\xb0\xbe\x55\x8b\xa8\xf7\x09\xdb\x9b\x68\x5d\x02\x95\x89\x7d\x0d\xf0\xa8\x1d\xa3\x42\x0c\xc4\x61\xc6\x8d\x24\xc8\x16\xcf\x12\x3d\x93\x1b\x2e\x63\x5e\xa8\x7c\xdb\xd1\xc5\x7e\xc2\x33\xdc\x36\x55\x11\x1a\x1e\xd9\x52\x88\xd8\xce\x02\xbe\xca\x65\x7d\x29\x61\x5e\x8e\xdb\xcb\x1f\xcf\x2e\x6e\xe6\x67\x17\x3f\xcd\xaf\xae\xcf\xde\x4f\xff\xe4\x60\xb2\x19\xd7\x6d\xd9\xa1\xb3\x5c\x18\xe9\x62\x69\xce\x5a\xe5\x0b\xa6\x6c\xb6\xe5\x50\x9a\xce\x64\x39\x93\x56\xb2\xe4\xbe\xf8\x75\xae\xca\xd5\xba\xbd\xa0\x7a\x2b\xaf\x26\xb7\x3f\x3c\xa9\x99\x40\x42\x89\x79\x5d\x71\xb7\x35\xe1\xc2\xc9\x92\xe4\x1e\x62\x8c\x6b\xcd\x03\x2a\x55\x78\xb5\xcd\xcb\xd0\x21\xd1\x9e\x74\x7b\x69\x0a\xad\x9d\xca\x7f\xcb\xeb\x5d\x0b\xe8\x36\x90\x9b\x95\x63\x04\xe0\xeb\x98\x1e\xbc\x51\xda\x49\xcb\x6f\x95\x13\xec\xab\xa3\x54\xac\x56\x22\xc6\xe5\x55\x2f\x98\x6c\x70\x24\x02\x23\x7f\xae\xb7\x8d\x22\x25\xf0\x3d\xe0\x60\x76\x78\xaf\xfe\x02\xfc\xca\x7d\xd2\x2e\x2b\x4e\x89\x48\x0a\xfc\x9b\x05\x97\x1d\x8e\xe4\xfd\xf1\x60\xed\xc5\x5f\xe6\xcc\x85\xea\x91\xc1\xc4\xba\x0c\xfc\x3e\xe8\x02\xbc\x1c\x8e\x6f\x75\xed\xb8\x16\x59\xca\x23\xe1\x02\x5c\x90\x01\x18\xee\xf5\x4f\x71\xe0\x51\x9a\x64\x49\xf6\x96\x20\x7d\xb2\xcf\x0c\xd7\xb6\x04\xc0\x72\x7b\x6d\xe5\xf1\xcb\x9b\x56\x76\x5e\xdc\x88\xf7\x13\x0c\xcd\x98\xa7\x92\xe2\x22\xd0\x16\x05\xc9\x5f\x3b\x31\xeb\x83\x96\x43\xad\xe6\x9f\x68\xe2\xf1\xce\x5c\x35\x74\x73\xcb\xac\xeb\x96\x87\x53\x1d\x77\xd9\x0b\x8b\x22\xdf\x49\xc6\xfd\x1c\xee\x88\xab\x5c\x6d\x12\x2d\x26\x45\x91\x27\x8b\x32\xcc\x46\x3c\x10\x30\x57\xb9\x9c\xf8\x0e\x67\xb9\x8a\xcb\xc8\xd2\x67\x41\x6f\x3d\xec\x87\xac\x7c\x56\xeb\x88\xd9\x91\x59\x7d\x74\x73\x13\xf1\x11\x44\x7b\x20\xbf\x5b\x9b\x8f\xcd\x0a\xc6\x0e\xdb\xdf\x95\x3d\xca\x9f\x39\x66\xb4\x7b\x30\xed\x1a\xe8\x17\x06\xce\xec\xeb\xa0\x01\x77\xa0\xa6\x68\xb9\x2c\x38\x3a\xd0\xab\x3a\x4a\x17\x5b\x8e\x3b\x6a\x86\x81\xbb\xfa\x61\x63\xaa\xe1\x54\xa8\x37\xac\xb9\x46\x75\xbe\x88\xd6\xd5\x86\x43\x6f\xaa\xac\xc1\xf5\xe6\x3a\xf5\xf8\x30\xb3\x49\x2f\x37\xda\x08\x0d\x0d\x09\x19\xb6\x2b\x19\x60\x5d\x3a\xeb\x4e\xfb\x3d\x86\x5c\xcc\x7f\x29\xc5\x90\xac\xce\x36\x54\xe3\x8f\xf0\xd9\x5e\x40\x4a\x82\xd8\x2d\x67\x7b\x2d\x92\x8d\xd1\x80\x78\x1e\xad\xd9\x82\x6b\xa2\x23\x0c\xd9\x12\x30\xfd\x3c\x4b\xcc\x57\x3c\x2a\x28\x1d\xaf\xad\xd6\xa6\xe4\xbd\xb5\x50\x48\xa3\xd6\x7a\xab\x47\xdb\x72\xdb\x37\x00\x43\xac\xd7\xb6\x19\xd3\x77\x83\x7c\x08\xa1\x1e\xee\xee\xc9\x78\xc4\xc2\xe9\x94\xf2\x52\x46\x6b\x96\xa5\x1c\x09\x25\xd6\x5c\xa3\xa0\xb0\x08\x1d\xbe\x48\xd2\xa4\x00\x9e\x30\x74\x1c\xd7\xd6\xad\xb9\x3c\xf3\xfc\xde\xa6\x5b\xe0\x9e\x14\x6e\x97\x28\x39\x10\x09\xed\x7a\xf5\x59\xb1\xd0\x5e\x10\x86\xc2\xbd\xdf\x66\x27\x1c\xb4\x9f\x0e\x73\xbc\xc1\x66\xf7\x7d\x19\xe6\x1d\xa2\x12\xaf\xea\x9f\xd7\xc6\x1b\x09\x28\x0f\x22\x09\xde\x19\x97\xf5\x22\xa0\x73\x1f\x55\xb6\xfb\x18\x6d\x76\xb8\x45\x09\x1e\x0e\x7c\xa2\xc4\x49\x03\x94\x98\x7a\x5a\xa5\xd6\x7d\xbf\x4c\x15\x2f\x76\x47\xb9\x61\x96\xa4\xae\xb2\x63\x55\x2e\xba\xf2\x72\x60\xab\x9e\x1e\x43\x67\xc5\xff\x73\xd9\xdc\xc3\x73\x94\x17\xc2\x48\xdf\xa7\x0d\xa8\xf9\xfa\x08\x3e\x6f\x2f\x9c\xa2\x98\x07\x33\x52\xb8\x65\xe0\x73\xf5\x39\xdd\x1f\x20\xa9\x2d\xdb\xa9\xae\xe4\x1d\x14\xf3\x78\xd8\x7c\x25\x72\xcf\x52\xda\x9f\xfe\xeb\xeb\xaf\xfa\x44\x23\xfe\xb1\xe4\xe6\x00\xb8\x5c\xde\x20\x41\xd8\x21\x9d\x2e\x92\xe6\xb6\x6a\x17\x03\xf5\x5a\x6f\xab\x5e\xda\x70\xe1\xf7\x66\x3b\x68\xeb\xcd\x8d\xf9\xba\xbf\xd8\x9d\x56\xac\xb1\x59\x9e\x28\x20\xca\x52\xcb\x8a\xae\xd1\x22\x89\x5b\xeb\x3d\x60\x24\x7f\x29\x45\x29\xcc\x02\x5a\x94\xf1\xaa\xe9\x2c\x19\x70\xe1\xf2\x5d\x5a\xab\x47\xb6\x29\xa3\x35\xb3\x85\xb3\x58\xa4\x7c\x5b\x55\xa3\xcc\x5d\xa3\x50\x40\xa1\x3c\x88\x2f\x30\x20\xbe\x8f\x4a\x5d\xa8\x0d\xe0\xd4\x7d\xb9\x79\x29\x61\x97\x33\x6e\x77\x57\xdb\x81\x56\x21\xf4\x7c\xa2\x87\xfc\xe6\xea\xec\x74\xfa\x7e\x5a\x73\x4f\x4f\x6e\x7e\x0c\xff\xfe\xf9\xf2\xfa\xc7\xf7\xe7\x97\x3f\x87\xbf\x9d\x4f\xee\x2e\x4e\x7f\x98\x5f\x9d\x4f\x2e\x2a\x4e\xec\xc9\xed\xe4\xe6\xec\x76\x8f\x9f\xba\x59\x6b\xf7\x44\xf0\x80\x6f\xd4\x22\xe7\x6d\x32\x1d\x6b\xae\xa2\x5a\x4f\xd8\xc4\xb2\xaf\x56\xf8\x81\x2d\xd6\x00\xc0\x49\x29\x62\x2c\x11\x92\xf0\x8e\x17\xfc\x94\x17\x3c\x55\xab\x31\x9b\x30\x8a\x2b\xc0\x78\x11\x6d\x54\x42\xa2\xa6\x34\xb3\x83\x45\x18\xbd\x30\xf2\xa6\x20\x9f\x2d\x5c\x2d\x89\x14\x36\x15\x61\x5e\x29\x1b\xe4\x39\x93\x67\x0f\x42\x16\x25\x28\xda\x3c\x4d\x19\x55\x6b\x5f\x08\x58\x41\x6c\x2b\x75\xb2\x49\x52\x9e\xfb\xc4\xce\x97\x54\x16\x5c\x76\x6d\x5b\x1d\x2b\x5d\x93\x72\xc2\xda\x03\xee\xa6\x0c\xda\x7d\x7a\x3e\x05\x45\x37\x2a\x6c\xd6\x42\x5b\xf9\x4c\x22\xe9\x28\xd5\xb8\xe1\x10\xc3\x54\x28\x32\xd0\x63\xf5\xf4\x72\xf7\x42\x3c\x48\xb1\xb2\xae\xac\x97\x32\x4c\xb8\x46\xda\x7f\x9c\xc9\x22\xdf\xf6\xd6\x5e\x6f\x81\xd1\x41\xc3\xbd\x8e\x20\x91\xd5\x64\xcf\x68\x3f\x65\xb6\xf4\x0b\x50\x69\x2d\x5e\x97\xdc\x7b\xce\x8b\x87\xf0\xa8\x8e\x2b\x51\x6a\x4e\xde\xdf\xea\x38\x84\x2c\x60\x30\x0a\x0b\x55\xca\x58\x13\x78\x73\x93\xc8\xe3\x0d\xff\xf4\xc6\xf6\x14\x49\x6c\x5c\xca\x35\x60\x4c\x14\xa9\xb9\x0f\x6e\x8d\x90\xdb\x3d\x5c\x33\xb9\x63\xbc\xf6\xdf\x09\xac\x64\x05\x93\x81\xb7\xef\x20\x0c\xf5\x41\x6c\xdb\xe6\xaf\x91\x36\x93\x85\xb9\x1f\xa0\x90\x2c\x17\xe6\x45\x87\x71\x4d\x11\xba\xec\xfe\x86\x58\x96\x4a\x6a\xef\x76\xd9\x1d\xc2\x46\x0e\xda\x36\xad\x80\x95\xfe\x8a\x4f\xef\xbc\xa7\x54\x93\x99\x33\x84\xaf\x58\xcf\x09\xc5\xee\x90\x5f\xde\x4c\xd6\x5f\xd5\x82\x2d\x21\x90\x8d\xec\x04\xb9\x00\x4f\x19\x4c\x85\x4d\xd4\x03\xbc\x7a\x0d\x4c\x8c\x5d\x02\xa9\xd0\xe0\x3f\x92\xe6\x52\x2d\x7e\x29\x09\x02\xf0\xf6\xcb\x61\xe7\x6c\x81\xd9\x1e\x90\xde\xbb\x9e\x07\xc1\x9d\xe5\xd0\xae\x52\x26\x6d\x64\x9b\xd7\xa5\x34\x47\xf1\x73\xa0\xa7\xfa\xbb\xc7\x6b\x95\xd2\x9f\x7b\x63\xcd\xac\x67\x27\xc7\xf7\x5f\x8c\xb9\xf9\xa7\x1a\x61\x33\x55\x07\x91\x0d\x54\x7a\x78\xa0\x2d\x78\x74\xff\xc8\xf3\x18\xcd\xff\x00\x67\x1a\xb3\x1f\xd4\xa3\x78\x10\xf9\x88\x45\x22\x2f\x38\xf1\x15\x6a\xc0\x73\xc0\x86\xa2\x72\x66\x12\x02\x7d\x90\xfc\x51\xea\x32\x17\xac\x48\x56\xeb\x42\xe4\x21\x1a\x47\xe5\x46\x1c\x15\x48\x55\x9b\x89\x88\x08\xd9\x3a\x06\x60\x99\xf2\x87\x26\x01\xe3\x53\x98\x64\xd8\xd4\x45\x2b\x5b\x77\xb7\x4d\x7e\xb6\x0b\x3f\x45\x03\x46\x42\x13\x29\xb4\x46\x6c\xa5\x52\x2e\x57\xe3\xf1\x18\x12\x7d\xbc\x19\xb4\xd0\xa9\xc0\xd0\x81\xee\x50\xfa\xa9\x52\x5a\xa4\x5b\x47\x22\xe6\xe2\xa8\x00\xb8\xfb\xa9\x10\x52\x27\x68\xd8\x6a\x59\xfe\x37\x75\xe7\xd2\xe7\xf5\xc5\xb5\x5f\xcf\x07\x47\xe9\x76\x94\x03\xb9\x54\x07\x94\x84\xef\xb7\xdf\xbc\x9e\x14\x75\xde\x5e\x96\x54\x72\x68\x28\xf5\x4f\x2a\xe9\x80\x82\x3c\x89\x6c\xb4\xb5\x24\x22\x42\x7a\x52\xf8\x69\xfb\x98\x35\x22\x82\x0f\x08\x06\xde\x11\xd7\x3b\x30\xa4\xb7\x8f\x21\xe0\xa6\x3e\xdd\x83\xb7\xc5\xfe\xf4\x6e\xad\x1d\x1a\x18\x32\xed\xb9\x0d\x86\xa8\x4e\x18\x75\x99\x6e\xe1\xc6\xe5\x02\xa8\xc1\x3d\x10\x07\x5e\xa5\x8a\xd3\x0c\x42\xf9\xbc\xd7\xcd\x11\xd4\x05\x4e\x36\x5d\xa8\x9c\xaf\x04\xdb\x88\x38\x29\x37\xad\xc2\xc6\x35\xf7\x10\xf8\xa8\x4a\xcb\x4d\x37\x55\xe8\xa1\x0a\xb4\x6f\x24\xfe\xeb\x14\xaa\xeb\xcf\xa1\xe3\x22\x23\x6c\x96\x4d\x6a\x2f\xba\x90\x68\xac\xcd\x49\x99\x27\x1a\x58\x76\x9f\x12\x39\xeb\x8a\xc1\xa2\xc1\x01\xbf\xcd\xd0\xc8\x5e\x99\xdd\x23\xeb\x19\xa5\x4f\x34\xce\x2a\x78\xed\xbb\x0f\x85\x3a\x28\x75\x78\xae\xbd\x5c\x95\x0d\xee\xa9\x5e\x40\x09\x50\x1b\x83\xcc\x1b\x84\x9a\x83\x02\x09\xda\x53\x28\xb6\xb4\xb1\x98\xf7\x22\xa0\x3e\x8c\x21\x27\xc7\x23\x52\x3e\xfd\xf8\x8d\xb6\x20\x20\xc2\x69\x79\x8d\xa5\xf0\x95\xa0\x07\xe8\xe1\xad\x85\xe7\x61\x0f\xb1\x08\x20\x28\x8c\xb9\x2c\x5a\x0b\xf0\xe8\x55\x28\x0b\x3f\xf9\x89\x97\x69\xfb\xeb\x54\x3e\xbc\x8a\x39\x5b\x27\x3f\xdf\x30\x1c\x6a\xca\x9f\x90\xef\x6a\x68\x50\xc8\x7e\x80\x20\x0c\xd7\xfc\x09\x9a\x60\x65\x1e\x70\xd0\x6d\xfa\x0e\x33\xec\xa2\x88\xd6\x5e\xf3\x00\x82\x46\x47\x2c\x49\x09\xb9\xa9\x9f\x1b\x9f\x11\x02\xb1\xd7\x21\x88\x35\x59\x49\x15\xa6\x52\x52\x52\x80\x2b\xce\x08\x20\x15\x16\xcb\x92\x62\x3f\x52\x70\x20\x2b\xe1\xbe\xa5\x56\x28\x44\x80\x51\x3f\x2b\x7e\x6a\xb8\x52\x24\x48\x57\x65\x61\xd6\x78\x27\xa2\xfc\xce\xf5\x4c\x01\x55\x02\x90\x99\xac\x56\xd5\x18\x24\x0b\xe5\x4b\x72\x81\x04\xdf\xda\x68\x6f\x45\xf2\x60\x36\x6a\x73\x59\xbb\x05\x0a\x12\xa0\xb9\xf6\xc8\x6d\xcb\x02\x96\xf0\x7b\xb1\xd5\x61\x32\x69\x5a\x51\xac\x6b\x41\x26\xa6\x3f\x34\x5f\xfb\xa7\x02\x06\x6e\x9e\xfb\x94\x90\xfd\xce\x32\xac\xf4\x83\xf9\x78\x07\x46\xb8\x51\xb8\x59\x83\x3e\xd8\xd5\xdb\x14\x49\x4c\xf8\x71\xa6\x39\xf4\x30\x40\x00\x79\x86\x30\xce\x30\x72\x09\x2e\xbe\xe6\x7e\x3b\x93\x94\x48\x20\x38\xe4\x8c\xc0\x69\x4e\x1b\x45\xe0\x23\x7d\xf9\xb6\xc2\x1e\x04\xd4\xaa\x96\x66\xb6\x5a\xa5\xf5\x2e\x43\x5e\x3e\x58\x1e\x50\x35\xc6\x28\x5b\x1b\x5e\x6b\x85\x4f\xc4\x96\xd2\xe4\x76\xe2\x49\x83\x40\x40\x7c\x93\xd8\x45\x31\x2b\x39\xde\x7e\x22\x61\x86\x6f\x22\x5b\xa1\x9c\x16\xc8\x79\x73\x76\x7a\x7d\x76\xfb\xd9\xf0\xa6\x16\xec\x39\x18\x70\x6a\xdb\xf9\xee\xec\xfd\xe4\xee\xfc\x76\xfe\x6e\x7a\xfd\x12\x88\x53\x7a\xf4\x04\xc8\xe9\x0d\xe5\x27\x39\x55\xb2\x10\x9f\x0e\x3a\x93\xf3\x52\xce\xf9\x80\xd0\x27\x97\xa1\x68\x97\xba\x83\x85\x36\xf3\xab\xb8\xe4\x27\xc4\x6d\x4b\xa8\x13\x9b\x4e\x65\xe9\x8d\x86\xcb\x24\x4d\x21\x12\xdc\x99\xd7\x29\xca\xd0\x0c\x2a\xc8\x1f\x4b\xe7\x4b\x32\x75\x26\x17\x95\xf4\x37\x60\xf2\x5b\x9b\x4b\x30\xc6\x80\x67\x66\x00\xf2\x04\x22\x6c\x77\xa5\x60\x59\x25\x52\xf8\x66\xc0\xac\x99\xf6\x75\xd2\xd4\xd3\x24\xbe\x24\xb2\x8e\x14\xaf\xbe\xba\xa6\x5d\x71\x95\xf5\x69\xd5\x4f\xfb\xd0\xf5\x10\x37\x71\x22\x51\x31\xad\xec\xe6\x9b\xf6\xa5\x7b\xec\xb7\x00\x8c\xbb\x99\x49\x0e\x3e\x08\x5d\xf0\xbc\xf0\x13\x49\x13\x81\x89\xe1\xbc\x73\xe2\x3e\x41\x04\x9a\x5a\xd6\xc6\xd9\x88\x42\x33\xd6\x09\x78\x2a\x38\x91\xdb\x44\x69\xa9\x0b\x91\x93\xd9\x64\xf2\xf3\xcd\x4c\x7e\x67\x8e\xaf\x37\x74\x0a\x51\xfa\x2e\xac\x02\x91\x3a\xaa\x52\xbf\xd5\x50\x42\x09\xf6\x1a\x6d\xd4\x1b\xc1\xa5\x66\xb0\x35\xd2\x54\xe4\x7e\x65\x60\x7b\x84\x88\x29\x89\x36\x50\x3d\xfb\xef\xdf\x30\x02\xb7\x9a\xa1\x30\xed\x75\x69\xc4\x36\xaa\x68\xae\xa7\x2e\xa2\x01\x40\x9c\xbf\xe4\xca\x69\x09\x7c\xea\xbb\x8a\x08\xac\xdf\xba\x88\xaa\x61\x48\xbd\xd6\xd2\x2d\x16\xf7\x8f\xa5\xf4\x8c\x4b\xa9\xc7\xb9\x1e\x9e\x12\x6c\xad\x8c\x00\x75\xb9\xad\xbc\x9b\xd9\x11\x9d\xa4\x80\x72\x33\xc3\xd8\x7a\xea\xd4\xb2\xcb\x1e\x82\xfd\x80\xa2\x0e\x43\x68\x4f\x5a\x18\x95\x7c\x1a\x43\xeb\xdb\xd9\x99\xb8\xf6\x65\x98\x0b\x27\x16\xab\x2a\x55\x61\x39\x48\x1c\x3c\x94\xb0\xae\xe6\x05\x47\x7e\xb3\xb3\x8d\x44\x28\x63\xb5\x94\xf9\x81\xc9\x1f\x6f\x43\x4c\x6d\x25\x2a\x1b\x5b\x11\xf2\x39\x58\x0e\x07\xc7\x01\x33\x64\xf1\x3d\x3d\xbd\x70\x75\xcd\x39\x3e\xd1\x27\x81\x1d\x2e\x2e\x2f\xce\x42\xa8\xc2\xf4\xe2\xf6\xec\xfb\xb3\xeb\x4a\x3c\xff\xf9\xe5\xa4\x12\x93\x7f\x73\x7b\x5d\x0b\xc5\xff\xee\xf2\xf2\xfc\xac\x81\x79\x38\xbb\x9d\x7e\xa8\x14\xfe\xee\xee\x7a\x72\x3b\xbd\xac\xbc\xf7\xdd\xf4\x62\x72\xfd\x1f\xe1\x2f\x67\xd7\xd7\x97\xd7\xb5\xfa\xee\x4e\x77\xa3\x27\x2a\xdd\x68\x37\xff\x78\xe7\x6c\x40\xad\xda\xba\x8d\xab\xe9\x97\x0f\xd8\xc5\x3d\x91\x67\xfb\x96\xa3\x0d\xd7\x8f\xc3\x74\x1c\xb8\x31\x4c\x53\x07\xad\xba\xe7\xcf\x17\x5d\x19\xba\x8c\x1f\x26\xf6\xcc\xa9\x36\x7f\x0e\x24\xe0\x4e\x05\xd0\xd5\x52\x33\xdc\x52\x7a\x76\x1c\xda\x0c\x3c\x58\x2b\xde\x99\xaf\x4c\xc6\x2f\xde\x52\x5b\xc7\xbe\x76\x7a\x2a\xaf\x3d\x8c\x48\xcf\xc5\x86\xb2\xab\xd1\x41\x65\x96\x6c\x20\x89\xad\xa2\x60\x1f\x86\xb0\x7b\xd3\x0d\xb3\x72\x82\xe5\xd8\x95\xd8\xb7\x3d\x6c\x69\x37\xfb\xde\xd0\xf6\x53\x25\xcd\xb6\xd7\xa8\x5a\x06\xb4\x1b\x28\xb3\x86\xb4\xfb\x96\xeb\xfb\xa1\xed\xa6\x4a\x9a\xed\x06\xb5\xef\x49\xed\x06\x83\x77\xd1\x4e\xa3\x33\x40\x88\x85\xc5\x54\x9b\xe7\x62\xfc\xdd\x2b\x41\xfe\xec\x7e\x6d\x34\x1b\xe0\x65\xaf\x97\x19\xef\xef\xc8\x80\xd6\xb8\xed\xca\x6b\xac\xf2\x37\xf0\x14\x7a\xb8\xc8\x05\xbf\x8f\xd5\x23\xcd\x47\x1d\x19\xca\x7a\x49\xf3\xea\x00\x19\x19\x6e\x8f\x88\x22\x27\x0f\x14\xa2\xd4\x7c\xf1\x00\x93\x4b\x88\x17\x1d\x75\xb0\x20\xf5\x72\x9d\x88\x08\xa8\x9f\xa4\x9f\x9d\x99\x44\x6d\xbe\x2d\x7d\xb3\x99\x55\xd3\x22\xa2\x0e\x81\xae\x3a\x1d\x1a\x9d\xeb\x3a\x98\x58\x8a\x03\x2a\x73\x00\xd3\x2d\x72\xb8\x33\xc1\x80\x24\x12\x8c\xc9\xb9\xb9\xf0\xe4\x22\x4a\xb4\x08\x32\xc6\xb5\x9e\xd8\xbf\x1c\x96\x0a\xa5\xe0\x45\xab\xd9\xb5\xb7\x3d\x9c\x47\x45\xc9\x53\x06\xe1\x4a\xc4\xc0\x88\xb6\x4a\xfc\x25\xe2\x12\x43\x63\x0a\xb1\xc9\x20\xaa\x3f\x8c\xe9\x98\xc9\x9f\x01\x28\x81\x53\xf0\x4a\xb3\xef\x01\xf2\x60\x5f\xa6\x43\x78\xc3\x0b\x38\x8b\xff\x88\x75\xb8\x67\xe3\x99\xac\x64\x60\x0a\xbe\xaa\x24\x63\x1a\xcf\xa4\xcd\xd6\x11\xab\x48\x8f\xe1\xc6\x37\x56\xf9\xea\x98\x72\xa9\x9b\xc5\xae\xee\x17\x4a\xdd\x1f\x0b\x79\x0c\x36\xa9\xe2\x98\x97\x85\x3a\x06\xb8\x14\xce\xbf\x3e\xb6\x49\x8f\x6d\xd6\x68\x7d\xbc\x4e\x1e\x04\xfc\xdf\x78\x5d\x6c\xd2\x7f\xd1\xd9\xfa\xd3\xd1\x2a\xcd\x8f\xcc\xb7\x47\xe1\xb7\x47\xf6\xdb\x23\xfb\xed\x91\xf9\x0c\xff\x2f\xdb\xa2\x7b\x47\x7c\xe2\xe6\x2c\x1b\xcd\x64\x22\xb5\xc8\x0b\xd0\x7e\x1e\xf3\xa4\xf0\xa9\xae\xb6\xec\xd5\x7f\xfe\x27\x1b\xe7\xfc\x11\x23\x62\xdf\xf1\x82\x5f\xa1\x7d\xf1\xef\x7f\x7f\x05\x0e\x55\x8c\x62\xca\x78\xfe\x4b\x29\x8a\x99\xd4\xc2\x6c\x42\xf6\xbf\x66\x12\x3c\xb0\x9b\xed\xbc\x40\xbb\x2b\xda\x20\x63\xcd\xbe\xc5\x32\xa7\xc8\x46\x1a\x6b\x53\x52\x47\x38\x41\xc2\xd3\x96\x2c\xfd\x1d\x26\xfa\x5f\xd2\x77\xf4\xfe\x80\x6d\xfd\x4b\x5a\xdd\xd5\x36\xd9\x92\xfe\x25\x85\x03\x34\x55\xdc\x82\xb5\x98\x5b\xbc\x70\x4f\xa6\xc6\xb5\xed\x91\x06\x34\xe0\x45\xdd\xf4\xed\x7b\xe5\x06\x19\xd1\xad\xe5\xbe\x21\x46\xc0\x57\xe0\xfd\x10\xe0\x3d\x4f\xcc\x0e\xb9\x41\x4b\x28\x68\x6e\xd8\x73\xd0\x49\xc9\x75\xee\xca\x43\xc3\x85\xfe\xfa\xe4\xf8\x78\xc4\x56\x1a\xfe\xb3\xf8\x05\xfe\x03\xe8\xa1\xe7\x22\xf5\x6d\x0c\xa6\x03\xc2\x35\x67\x79\xff\x4c\x3c\x07\x8a\xee\x73\xf0\xc8\xd7\x96\xe9\x77\xa5\x8c\x53\xe1\x43\x1b\x2b\x2e\x91\x54\x99\x99\xb4\x13\xd5\xcc\x3c\x04\x73\xbc\x10\x11\x37\x82\xaf\x51\x37\x82\x4b\xd5\xb2\x10\x12\xad\x61\xb9\xcf\xf6\xc8\xd1\x72\x05\x6a\x31\x40\x21\x79\x41\x90\x73\x01\x3f\x42\x25\x40\xcc\x3e\xaa\x3f\x62\x5b\x55\x12\xc7\x38\x30\xe7\xc6\x22\x4a\x21\x91\x83\x65\x0f\x62\xb9\x28\xca\x5c\x32\xce\x32\x2e\x63\xae\x61\x05\x2e\x73\xf0\x76\xe6\x8c\x37\x1b\x3a\x42\x38\xae\x2a\x0b\xe0\xc4\x42\x64\x41\x38\x12\x48\x02\x1f\xb4\x79\x14\x34\x02\xcf\x04\xe0\xa2\x6e\x7c\x38\x9e\x49\x9b\x8f\x90\xb0\x70\x68\x29\x8b\x54\xb6\x25\xc6\xa3\xfa\xa0\x27\xd6\x72\x46\xc3\x3d\xf2\x78\x93\xfa\xbb\x23\x96\x54\x5d\x6b\xc0\x37\x5f\x04\x29\xde\x6d\x92\xfc\xd7\x42\x46\x2a\x16\xb9\x7e\x63\xb6\x61\xe2\xee\x1d\xa8\x3f\x24\xda\x4f\x06\x48\x29\x73\xb8\x91\xb5\xd0\x14\xef\x12\x4c\x99\xd1\xa9\x30\x94\xb7\xe9\x39\xfb\xb7\xca\x6f\x1d\x05\xd3\xd6\x5e\xfa\xe7\x67\x45\xc4\x84\xb8\x4e\x7b\xe7\x7c\xba\x09\x02\xb7\x6c\x28\x71\xb1\x50\xd4\x71\x48\x39\xb1\xf9\xb4\x93\x02\x32\x64\xe6\x42\x17\x33\x49\x27\xf0\x88\x2d\x05\x37\x7a\xde\x88\x45\xfa\x01\x85\x31\x1e\xf7\xc5\xa3\xf2\x18\x1c\x9b\xde\x06\xc0\xb0\x95\xc2\xbd\x91\x18\x5f\xe3\x14\x81\x8d\x00\x83\xae\x1b\xba\x53\x55\x60\xb0\x5a\x05\xe2\x13\xc6\xc1\x66\x4b\xa9\x67\x58\x0b\x93\xf5\xc0\x48\x6c\xd1\x51\xcc\xea\xed\xc0\x07\x46\xf0\x60\xef\x10\x06\x12\x08\x47\xd0\xb8\x09\x4b\x8b\xfb\xcc\xfb\x70\x43\xca\x7a\xb0\xcd\x74\x6d\xaa\x1d\x03\x01\x0d\x78\x9a\xdd\xc2\x7c\xba\xd7\x60\xa5\x45\x6e\x53\xb9\x60\x5f\x91\x60\x72\x9d\xe4\xf1\x51\xc6\xf3\x62\x6b\x97\x6f\x9a\x2c\x20\x03\x44\x9a\xdc\x0b\x36\xc9\x73\xf5\xf8\xdc\xa3\xd0\x29\x5a\xba\x6e\xd8\x87\x20\xd9\x87\xde\xf2\x5b\xe9\x65\xeb\xe6\x8e\xa7\x51\xd9\x76\x19\x3e\x5a\xeb\xc9\x45\x91\x6f\xe7\x66\x21\x6e\xb2\x4e\x49\xd1\x2b\x68\xa2\xbf\x92\x3b\x8c\x25\xb7\x66\xc2\xe8\x64\xc9\xad\xcc\xea\x6f\x87\x25\xb7\x85\x00\xb7\xc9\x92\x3b\xbd\x98\xde\x4e\x27\xe7\xd3\xff\x53\x2b\xf1\xe7\xc9\xf4\x76\x7a\xf1\xfd\xfc\xfd\xe5\xf5\xfc\xfa\xec\xe6\xf2\xee\xfa\xf4\x6c\x37\xed\x55\xb3\xf5\x5e\x05\x3f\x62\x61\x3d\x27\xec\x36\x00\x6a\x60\xb0\x01\xe9\xdf\x94\x1f\x17\x56\x95\xd9\xcc\x89\x5c\x8d\x60\xa3\x9e\xb0\xb3\x3c\x9f\x6e\xf8\x4a\x5c\x95\x69\x0a\x70\x2a\x8c\xec\x39\xcd\x05\x5c\x3c\x47\xec\x4a\xc5\xd3\xe0\x3b\x08\x47\x6c\xed\x06\xd4\xcf\xe3\x38\x17\x5a\x63\xf5\x23\xaa\x3f\x00\x0f\xb9\x50\x47\x02\xcf\xf1\x07\x9e\xa4\xe6\xfe\x76\xc2\xbe\xe3\xd1\xbd\x5a\x2e\x31\x7c\x66\xe4\x02\xa7\xd8\x2f\xa5\x2a\x38\x13\x9f\x22\xa0\x7a\x6b\x5f\x27\xe7\x6a\xf5\x2b\x40\x95\x7b\xb8\xa7\x3a\x2e\x29\x90\xea\x6e\xde\x7e\x9c\xb7\x0b\x02\xea\xe5\x07\xfc\xf4\x3d\x7e\xd9\x6e\xa0\x2c\xd2\x67\x08\x8f\x3f\x57\xab\xf6\xc4\x43\xa0\x5d\x53\xb6\x24\x72\x24\x44\xc4\x2e\xa2\x56\x4c\x27\xf2\x7e\x26\x7f\x5e\x0b\xc9\x54\x99\xe3\x4f\x70\xcd\x37\x6a\x66\x5a\xea\xb5\x80\x34\xd5\x23\xf6\x28\xd8\x86\x6f\x51\x6d\x86\x3b\x81\xcb\x96\x02\x4b\x06\x4e\x11\xf3\x75\x9a\x48\x23\x2d\xb2\xc4\xc6\x25\xd4\xa7\xfe\x39\x6e\x5c\x96\xe8\x90\x1f\xce\x43\xbc\xeb\x3c\xad\xe0\xf3\xc0\x54\xe6\x71\x93\x16\x20\x44\x92\x1b\x92\xca\x2a\x75\x5f\x66\x9e\x12\xf5\x95\x75\x4e\xc2\x70\x3f\xa8\x24\x66\x71\x99\xa5\x49\xe4\xe4\xee\xa3\xca\x3b\x79\x9f\x31\x80\xa6\xff\xa9\x53\x0f\x0b\xdb\xd5\xb1\x96\xe8\x9c\x00\x49\xb7\x83\x01\xfa\x85\x39\xb0\x59\x22\xa3\xb4\x84\x34\x73\xa5\x16\xf9\x91\x4b\x1d\xed\x62\xfd\x7e\xfb\x24\xd9\x9e\x84\xf3\xf0\xb0\xb6\x30\xe8\x3c\x55\xab\x24\xe2\x69\x08\x6e\xf6\xa8\x08\xc7\xc2\x6b\xb7\x3d\x25\x13\x86\x38\x08\xdb\xa0\x4e\x22\xad\x2c\x17\x40\x04\x3d\x07\x51\x3e\x27\x71\x77\x48\xbb\x97\xcc\x5c\xd0\xb1\x5d\x21\x47\xae\x75\x2f\xd8\x13\xce\xd7\x6d\x33\xb1\x81\x8a\x89\x29\xfc\x99\x7a\x94\x22\x07\x0d\x16\x60\x1f\xa6\xa7\x52\x81\x6e\xe2\xb2\xb3\x39\x7c\xb2\xcd\x4e\xb8\x74\x40\x6c\x8c\x9c\x5d\x25\x0f\x42\x7e\x7e\x52\xf3\xa0\x82\x88\x47\x6b\x31\xb7\x7a\xf9\x73\x8b\x2c\x77\x00\x0c\x14\x56\x36\x4d\x4a\x28\x4a\x9d\x7b\x13\xae\x4e\xd8\xe2\xa6\xec\x42\x47\xe2\x8e\x88\x2c\xd3\x88\x79\x2c\xa2\xfb\xcf\x2e\x9a\x3d\xc8\xca\x36\x84\x71\xf6\x4e\x44\xf7\xec\xee\x7a\x8a\xd1\xc0\x49\xc1\x8c\x28\xd0\x6b\x9f\xf6\xa9\xf3\xee\x56\xf0\xd5\x0b\x50\x58\xf5\xcd\x5b\xe5\x53\x15\xb8\x6c\x7d\xa6\x41\x04\x88\x82\x78\x49\x23\x24\x29\x96\x06\x80\x60\xbc\xb0\xd9\x8c\xc0\x10\xcf\xf4\x06\x92\x17\x95\x45\x90\xf1\x2f\xe5\x0b\x91\x76\x10\x77\x66\x2a\x9e\x5b\x3f\xc9\xa1\x60\x9e\x46\x59\xd6\x8e\x41\x5e\x47\x1b\xc7\xc0\x8d\xc6\x7a\x4b\x2f\xb2\xfb\x6f\x74\x40\xaf\xa1\x42\xfe\x70\xb8\xd7\x73\x0d\xe1\xdd\xcb\x64\x65\xbd\x6d\xc9\x92\x52\x2c\x61\x40\xbf\xd1\x83\x41\x5e\x9a\x92\xae\x54\x4c\x30\x3d\xc7\x85\x67\xb4\x20\x41\xd6\x13\x8f\xab\x08\x9b\x60\x71\x80\x50\xaf\xd9\x11\x82\xc7\x4c\x2d\xc9\x9a\x98\x65\x69\x02\xcc\xd0\x31\x92\xd0\x03\x7b\x86\xae\xa2\xe3\xc3\xd2\x6c\x63\x03\x92\x8f\x2b\x0b\xc4\xeb\x4a\xc6\x0b\x02\x03\x23\x18\xe6\xc0\x06\x37\x7f\xe0\xdd\x64\x6a\x2f\x9e\x31\xad\xa3\x3d\xce\x9b\x5c\xa5\x84\xad\x90\xf6\x91\xad\x00\x8f\x75\x1b\x90\x1f\xf1\x34\x2a\xc9\x4f\x06\xe9\xf2\x6d\x16\xfc\xdd\x08\x42\xef\xf5\x33\x13\x5d\xb5\xfa\xd7\x95\xcc\x43\xb3\x2b\xba\x00\xad\xa7\xda\x14\x76\x9b\x17\x57\xa9\x5a\xc0\xca\xe9\x46\x09\xee\x38\xb1\x8c\xb8\xce\x93\x78\x88\xbe\x63\xc7\xe4\xd2\x7d\xba\xab\x81\x97\xd6\xf4\xe3\x6a\xb2\xeb\x9e\x51\x22\x83\x1a\x73\xe3\x30\x0a\x84\x25\x65\x55\xad\x5e\x4f\x0a\x4a\xe3\x01\xcb\xca\x9d\x4f\x1d\x76\x86\x6a\x5f\x0e\x9a\xe8\x26\x53\xcc\x9e\xb1\xf4\xe4\x32\xbb\x27\xf9\x00\xba\x0f\x14\x65\x8e\xf3\xa3\xdb\xb2\x28\x63\x11\xcf\x9f\xd0\x87\x33\xfa\xb6\x5f\x5f\xdc\x48\x63\xf3\xc0\x06\x28\x8f\x8c\xaa\x10\xf3\x3c\xf6\xfd\x18\xc1\x7e\x8f\x78\x06\x66\x78\x70\x6b\x3c\xbc\x1d\xdb\x3a\xae\x7d\x74\x91\x91\x97\x18\xf3\x8f\xf8\x6d\xd5\x92\x03\x67\xdf\x3a\x72\x8b\x14\xe1\xdd\x66\xe5\xf8\xe5\x5a\x89\xbb\xe9\xb5\x76\xeb\x2b\xcc\x0a\xf0\x43\x16\xd7\x4b\xc8\x8e\xb2\x50\xde\xdb\x03\xfd\x99\x02\xed\x70\x18\xd1\x07\x02\x72\x1a\x77\x20\x45\xac\xfa\x6d\x85\xd0\x00\xfc\xf1\x20\x04\x74\x96\x0b\xeb\x37\xdc\x8a\xc2\xf1\x3a\xa4\x36\xaf\x20\xb8\xc5\x5c\xaf\xab\xc4\x36\x96\xbb\xc2\x91\x91\x81\x13\x8b\x54\xfd\x48\x6d\x32\x25\x01\x96\x84\x51\x6a\x33\x49\x85\xdb\xec\xf0\xce\xb3\x56\x09\x75\x1c\x91\x41\x13\x03\x67\x84\x56\xe9\x03\xb9\x50\x83\x24\x26\x90\x57\xd2\x34\xf0\xd4\xdc\x0d\x55\x8e\x04\x5b\xf6\x64\x87\x48\x80\x5a\x8a\xf4\x5c\xac\x12\x5d\x88\x30\x3a\x34\xfc\xfe\xd9\xb2\xd9\x56\x8c\x27\xbb\x86\xbe\x33\x9b\xed\xbe\x5b\x90\x91\x4f\x03\xda\xb3\xcd\x44\x3c\x75\xdf\xed\x5e\x0c\xb5\x00\x7e\x2f\x0e\x2b\xe7\x1d\xae\x01\xbc\xfd\x69\xa4\xfa\xd2\x2e\xfd\x88\x9b\x24\x22\x61\xe2\x1e\xd0\x68\xa6\x68\x55\xf2\x9c\xcb\x42\x08\x3d\x93\xe4\x78\x46\xca\xba\x90\x95\xa5\x06\x84\x74\x77\x9b\x48\xe9\x02\x19\xa0\xe0\x93\x25\x4f\xd2\x32\xef\x34\x37\xe0\xaa\x7c\x12\xed\xc4\xae\x51\x3a\x85\x62\x59\xdb\xa4\xb9\x00\xe6\x60\x17\x39\xd6\x94\xba\xdb\xb8\x1a\xdf\xdb\xd1\x05\x7b\xb8\xf4\x9f\x6f\x67\x6b\xee\x88\x69\xfe\x46\xcf\x33\x35\x40\xe2\xfd\xf8\x8d\xbe\x52\x1d\xd1\xe0\xfa\x97\x86\x4d\x74\x07\x7c\xe2\x97\xae\x84\x2c\x5c\xdf\x83\xe7\x71\x9f\x29\xa6\x17\x1b\xe7\x5e\xff\x64\xa7\xec\x82\x55\xbb\xe6\x32\x4e\x8d\xca\xcb\x8b\x3a\xef\xb5\xc3\x79\x9b\x2b\x51\x61\x85\x63\x77\x50\x1f\xc4\xc8\xcc\xa3\x46\x80\xe5\xbe\x71\xaa\x45\x66\xee\xc4\x52\xd6\x6a\xa9\xc6\x4b\xb6\xc5\xe9\x78\x1d\x86\xd2\x20\xbb\x0d\xfb\xab\xeb\x2f\x67\x61\xdb\x3f\x93\xfa\x52\xdd\x6b\xcb\x64\xf5\x1b\x30\x24\x7c\x68\x1e\x09\x11\xc9\x1c\x3a\xa8\x5d\x74\xc3\x81\x52\x07\x02\xc9\x8c\xd4\x0e\x19\xc7\x67\x92\xd2\xc1\x23\xba\x00\xdc\xca\xc8\xb7\xa6\xd9\x5b\x17\x5d\xfc\xf6\x77\x96\x6d\x6b\xcb\x96\xb0\xa8\x80\xd2\x4e\x45\x51\x99\x83\xeb\x9f\xcc\x93\x4c\xe0\x21\xac\x07\x11\xc9\x80\xea\xe1\x00\x5b\xa8\x27\xb6\xa9\x49\xce\x1e\x5d\xe9\xd4\x2d\x98\x21\x31\xb1\xbd\x3b\xf4\x29\x5f\x59\xae\x0b\xa6\x0b\x91\xb5\x8a\xdf\x8a\x76\xb9\xcd\xc4\x44\x4a\x55\xd4\xe3\x53\x06\xeb\x97\xdc\x95\xd2\x73\xeb\x0c\x38\x8c\x26\x81\xc9\xe8\x0f\x37\x97\x17\x2c\xe3\x5b\xc0\x3e\x16\x8a\xe1\xab\x40\x38\x5a\x17\x54\xfb\x66\xa0\xda\xf9\xaa\x54\xc1\x31\xb5\x20\xea\x76\xff\x04\xd5\xd8\x54\x16\x61\xcd\xd0\x92\x34\x32\x2b\x57\xe9\x51\x96\x72\x19\xc0\xdb\xf5\x98\xd5\xaa\x0f\xf1\x0c\xce\xb3\x49\x88\x31\x68\x00\xd8\x2b\x68\x2d\xe4\x65\x2b\x00\x1a\x78\x77\xec\x82\x3a\x0c\xc2\xd0\x29\x23\x76\x02\x3b\x3f\x60\x16\x18\xcc\x89\x80\xec\x19\x16\x96\xe1\x90\x3d\x5c\x03\xe8\xb6\x93\x01\x9c\x47\x29\xd7\x7a\x27\x4a\xe7\x45\xa8\xe4\x83\xa8\xc5\xfd\xe2\xab\xda\x4e\x84\x11\x02\xb7\x09\xde\x4b\xdd\x63\x60\x4b\xb0\xa2\xcb\x27\x7d\x0b\xf4\xfd\x20\x1b\x04\x41\x1f\x88\x2f\x0a\xbe\x47\x26\xc8\x7b\xb1\xb5\x16\x2e\x12\x55\x7c\x23\x46\xce\xd8\xea\xac\x89\x01\xe8\xaf\x59\xf0\x4c\x02\x2a\xf6\x7d\xd8\x3c\xf6\x5e\xa9\x11\xe2\x33\xa9\x72\x8e\xc5\xf2\x10\xe1\x34\x93\xef\x95\x1a\x73\x77\x89\xa5\xf6\x93\xb8\xa9\x57\x48\xa8\x28\xc0\x1c\xd6\xa6\xb3\xff\xde\xfc\x21\x91\x98\x9e\x30\xd9\x98\x0b\x14\x8d\x13\xac\x28\x68\x90\xcd\x86\xaf\x1e\x35\x8b\x91\x52\xa6\x4c\xf4\x1a\xdc\x2e\xe8\xe7\x84\xfa\xe9\x48\x41\x40\x56\xce\xa5\x36\x7b\x18\x5c\x35\xe2\x41\x90\xbd\xb6\x82\x31\x98\xbe\x3b\x77\xb0\x25\xdc\x97\x94\xba\xa3\x63\xb7\x05\x97\x8e\x43\x2e\xe7\x00\x37\x1f\x40\x68\x47\x06\xce\x0f\x3c\xdb\x15\x0c\x7b\x70\x89\xfb\x66\xc9\x11\x6a\xd5\x6f\x54\x90\xc9\x1c\x72\x18\x56\x22\x62\xc3\xd1\xbb\x93\x07\x9e\x38\xad\x9c\xf6\xfb\x53\xee\xf4\x36\x30\x0c\x14\x15\xfb\x8f\x9b\x80\xdb\xd2\x41\x06\xdd\x5d\xd0\x08\x76\xc8\x10\x07\xa4\x7c\xb8\xa5\xc7\xec\x46\x08\xf6\x11\x46\xca\x54\xf6\x91\x32\x90\x02\x0a\xba\xe0\x49\x6b\x82\x38\x78\x7b\x2a\x97\xea\x30\xf9\x9f\xaf\x1a\x28\xdb\x83\x46\xa5\xbd\x9d\x87\xe2\x78\xc1\xd2\x2f\x5f\x96\x56\xa4\xd7\xc1\x50\x9b\xeb\x2b\x6f\x6f\xa2\x60\x63\xdb\x52\xa3\x92\xc1\x14\x3f\x85\xb8\xae\xb6\x48\x4c\x2f\x47\x48\xc6\x7e\x2f\xd5\xa3\x44\x79\x4c\x35\xb1\xd7\x66\xff\x81\xce\x82\x7e\x21\xd4\x04\x4b\x94\x86\x6f\x80\x1d\x7e\xe2\xfe\x66\x37\xe8\x02\xc7\x36\x43\xea\x30\x0d\xfa\x2e\x25\xfd\x82\x03\xfc\xf5\x64\xc4\xbe\x1b\xb1\xd3\x11\x1b\x8f\xc7\x6f\x46\x4c\xf0\x68\x6d\x5b\x84\x9f\xa0\xe8\x2f\xf8\xca\x94\x4d\x69\x7f\x96\x41\x05\x90\x1e\xd0\xe8\x27\x96\x04\x91\xfb\xb7\x02\xab\x9a\xed\x02\x86\x66\x53\x1c\x19\xc1\x85\xa2\xb5\x4a\x7c\xa3\x00\x79\x2e\x22\x95\x5b\xec\xba\x2e\x54\x6e\x71\xb8\x0f\x3c\xe7\x89\x04\xc6\x0a\xde\x8c\x42\xa0\x9a\x03\xce\x7a\xf1\x89\x6f\xa0\xff\x89\x74\xb4\xbd\x66\x98\x6e\x5d\xfb\x8b\x6d\x46\x7e\xb6\xc7\x3c\x29\x0a\xa3\x90\xe9\x99\xbc\x61\x27\xdf\xb2\x49\x96\xa5\x82\x4d\xd8\x7f\xb1\xef\xb8\xe4\x92\xb3\xef\xd8\x7f\xb1\x53\x2e\x0b\x9e\xaa\x32\x13\xec\x94\xfd\x97\x19\x36\x53\xde\x85\x32\x1a\xd0\x76\xc4\x38\x93\x65\x8a\x8a\xde\x6b\x8b\x71\x7d\xe3\xfa\xc5\xfd\xec\x2c\x44\xf1\x28\x84\x64\x5a\x6d\xe8\x28\xfc\x93\x3b\xfd\x75\x22\x57\xa9\x28\x68\x3d\x54\xd1\xc8\x58\xc1\x11\xf4\xf4\x64\x26\x9d\x9d\xfa\x4f\xa6\xc5\x7f\x62\xff\xc5\x2e\xca\x34\x35\x4d\x32\x82\xc6\x2c\xa4\x13\x66\xa3\xc3\x84\x1c\x3f\x26\xf7\x49\x26\xe2\x84\x43\x7c\x98\xf9\xeb\xf8\x16\x66\x7b\x5e\x7a\x2a\xd0\x70\x4f\xbb\x74\x6c\x87\x88\x9e\x17\xe1\x9a\x70\xc9\x02\x43\x6d\xa5\x13\x84\x12\x7e\x3a\x5c\x09\xf6\x04\xc8\xb4\x1f\xe8\x8e\x82\xa9\xf4\x42\x07\x65\x7b\xfd\x2e\xeb\x57\x66\xfe\xd5\x4a\xff\xd1\x2b\xfb\xd7\xae\xf1\xf0\x6d\x04\xe5\x14\x27\xc7\x07\x67\xc2\x45\x06\x62\x09\x71\xdf\x6d\x21\xe5\x87\x2d\x1b\xaf\x9d\xe8\xde\x36\x57\x69\xd4\x46\x0b\xbe\x1a\xb1\xcc\xe5\x91\xb2\x9b\xca\x39\xb6\x71\x1f\x63\xce\x04\x52\x36\x5f\x5b\x00\x91\x59\xcb\x14\x7f\x78\x1c\xab\x0d\x4f\xe4\x1b\xa8\xc3\x52\xe7\xed\x19\xa8\x96\xeb\xca\xfe\x11\xba\xe5\x3b\xd1\x8c\xdd\xd4\xfe\x55\x65\xa7\x96\xc2\xad\x6d\x3b\x1c\x98\xc3\xcc\x67\x38\xfd\x8c\xd7\xa1\x9f\x1a\x4b\xb4\x77\xee\x03\xca\x37\x56\x61\x4f\x01\x5d\xde\x33\xc8\xf5\xf2\xad\xbb\xcc\x65\x3f\x55\x53\xbc\x56\x86\x58\x25\xbd\x72\xe1\xd6\x1a\x7b\x47\x37\x31\x8c\x7b\x36\x62\x32\x49\x8f\x8d\xa8\x3c\xbe\x50\x52\x30\xae\x75\xb2\x42\xd6\x3b\x30\xa8\x61\x12\x59\xab\x94\xdd\x56\xaf\x0c\x81\x08\x02\xfd\xcc\x34\x09\x11\xd3\x85\x91\xc2\x66\x0a\xd2\xed\x4c\x9a\x2f\x48\x23\x80\xe8\xa9\xc4\x91\xa3\x63\x6d\xc4\x3d\x6e\xeb\xa2\x03\x31\x28\xbc\x65\x81\xed\xa2\x66\x38\x60\xc1\xd1\x4e\x3c\xc0\xe3\x76\x11\x10\x83\x52\x69\x96\x35\x0a\xe1\x34\x0b\x91\x2a\xb9\x32\xab\xa2\x4b\x08\x83\x14\x78\xa6\x26\x60\x61\x9d\x2d\x30\xca\x0a\xbd\x42\x53\x62\xf4\x94\x24\xf6\x26\x35\x5d\x2e\x8c\x1e\xe7\xbc\x3d\x4e\x1b\xa1\xce\x75\xf1\x54\x1c\x06\x5b\xba\x33\x32\x58\xe5\x16\x38\xe7\x3c\x89\xa8\xb8\x78\x0e\x27\xec\x51\x17\x42\x23\x1f\x64\xca\xe9\xf0\x6c\x8f\x98\xca\x91\xbe\xd3\x7a\xb0\x1d\xff\x56\xb3\xf6\xee\x2d\xbd\x33\xda\xa3\xdd\xf6\x49\x7e\xd2\x06\x5f\x48\x8f\xdd\xf0\x6b\x06\x7e\xf4\x09\x07\x79\x3f\x99\x9e\xd7\xde\x6b\x86\x83\xb4\xc4\x8c\xdc\x4e\x3f\x9c\xbd\x9b\x5f\xde\xdd\x36\xde\x33\xa5\xd1\x4f\x7b\x22\x42\x3a\x47\xef\x39\x30\xf1\xbf\x60\x0e\xb3\xb9\x5a\x5a\x7a\x80\xfe\xc7\x73\x23\x8b\x5c\x3f\xe8\x65\x11\xdc\xae\xc3\x6c\x6b\xcd\x85\xd3\x49\x72\x22\xe7\xe4\x6b\xed\xd7\xd8\xfa\x80\x5d\xca\xf7\xf8\xf9\x95\x4a\x93\x68\x37\x92\xdb\x1e\x96\x46\xab\x6a\x42\x63\x17\x02\x42\x1b\xc8\xe0\x4b\x8d\xc2\xfb\x59\x21\xa2\xc2\x63\x09\x9a\x9d\xfb\x7f\x1a\x3d\xba\xdf\x02\x83\x76\x58\x37\x6c\x90\x9c\xdc\xa1\x13\xe0\x64\x07\xd6\x68\x48\x96\x82\x5a\x2e\x58\x76\x41\xe6\x45\x9c\x7c\x4e\x95\x91\x87\xe3\xe1\x71\xad\x52\xb2\xc7\x22\x03\xf7\x4c\x66\x22\x8f\x14\xa0\x2e\x91\xdc\x45\xb1\x68\x9d\xa4\xb1\xcf\x48\xf6\x1a\xc2\x54\x00\x4c\xfe\x86\x92\xeb\x0a\x87\x9e\xb1\xc5\xef\x38\xf3\xed\xb2\x7b\x87\xbb\xfb\x20\xe4\xd9\x73\xe2\xce\x77\x2d\xfb\x9f\x09\x1f\x8d\x43\x41\x9c\x79\x35\x1c\x04\xa8\xfd\x61\x7b\x06\xb9\x74\xcc\x61\x4f\xc9\xa6\x22\x7f\x6d\x2e\x6a\xf3\x4a\xcb\xac\x3e\x94\xc0\xa4\x8e\x76\x74\x04\x01\x6a\x01\xcd\xd9\x08\x8e\x9a\xa0\xe7\x35\xa6\x49\x9d\x49\x8f\xfc\x78\xa5\x43\xad\xb0\x75\x9e\xd1\xfa\x6e\x91\xed\x23\xf6\xaa\xd2\xd1\x57\xc0\xb4\x2d\x15\xd4\x47\xde\xf9\xca\xd0\xc0\x72\x1d\xb1\xa4\x98\x49\x73\x67\x33\x2b\x33\x17\xa9\x78\x30\xad\x0b\xbd\x43\x84\x57\xb4\x96\x13\xdb\x6d\x08\x8e\xe2\x96\x53\x83\x96\x0d\x6d\xc2\x3c\x64\x6c\x46\xb7\x74\x2c\xb4\xd1\x5a\x21\xd7\x94\xf8\x64\x36\x40\x02\xce\x4f\x04\xb6\xc5\x42\xda\xf6\x01\xde\x0d\xf3\xfc\xcf\xe4\x74\x09\xc4\x06\x40\xa7\x10\xc7\x68\x83\xb0\xd9\x87\x1c\x7d\x66\x42\xde\x20\x45\x16\x19\x3b\x11\x94\x1b\x1a\x77\x92\x78\x10\xf9\xb6\x00\x93\x3e\x8c\xab\x14\xbc\x58\xb3\xa4\x18\x01\xef\xa9\x95\x94\x33\xc9\xe3\x98\xe2\xc1\xb1\xb8\xe0\x3a\xdb\x39\xcf\xf4\x7c\xa1\x1e\x76\xa9\xd5\x87\x22\x77\x71\x57\x67\x29\x97\x73\x3c\x41\x7e\x05\xec\x6e\x90\xb6\xbb\x0b\xc4\x51\x2e\xe6\x8e\xab\xed\x59\xda\xe9\xe4\xfd\xb5\x85\x2e\xd3\xd5\xa6\x5c\xd8\x8a\x46\x15\x68\xf6\xc2\xd3\x7a\x38\x2b\x1d\xe1\xa6\x72\x66\xb1\x25\xfd\xa5\x80\x87\xf5\xf2\x1a\xc6\xca\xae\xd6\x7d\xb8\x5e\xbb\x02\x7e\xab\xc8\xcb\x3e\x33\x5f\x3b\x43\xea\xd3\x3e\x1c\xf4\xd7\xd0\x10\x9f\x04\xfc\xdb\xd3\xac\x97\x05\xff\x75\x5a\x71\x9a\x20\x40\xdb\xdb\xc0\xbf\x4f\xa1\x03\x68\x85\x75\x06\xb4\xf6\xb4\xec\xe1\x2d\x50\xb5\xe0\xe3\x9f\xd3\x43\x01\x72\xaa\xaf\x9d\xc6\x13\x8a\x40\xbb\xc6\x6c\x2a\x99\x55\xf7\x46\xec\x15\x2e\x2c\xfd\x8a\x0c\xd0\x94\xdb\x9f\xc0\x32\x31\xed\x1e\xa2\x60\xa8\x83\xcc\x30\x10\xce\x6f\x37\xf4\x03\xee\xe4\xeb\x7d\xd1\x71\xf9\x2e\x81\x40\xbc\xa7\x70\xad\xa0\x0f\x79\x81\x05\xd8\x38\x92\xc0\x14\x4a\xdd\x05\x5f\x86\xef\xb0\xf5\x76\xb2\xef\xec\x87\x66\x88\xb2\x92\xce\x53\xfb\x9c\xa9\x7c\x26\x6d\x69\x64\x90\xd6\x98\x20\xb0\x5e\x54\x10\x17\x44\x3a\x7f\xb0\x52\x01\x0a\x60\x73\x42\x42\xaa\x51\x4f\x2a\x5e\x97\x02\x80\x82\x5a\x38\x04\x2a\x64\xa1\xf0\xb5\x19\xc5\xc3\x2c\xf0\x0d\x1e\xf3\x75\xe2\xe1\x34\x35\x83\x92\x14\x96\xe7\x38\x88\xd9\xd3\x25\xb0\x75\x2f\x4b\x23\x8c\x02\x4a\xf3\x99\x34\x83\xc7\x96\x09\xc4\x6e\xd0\xb8\xcc\xe4\x07\xa5\x2d\x45\x8c\xf6\xe3\x61\x81\x05\x34\x6c\xaf\x5c\x6a\x4c\xfa\xe1\x1d\x1c\xda\xe4\xf1\x41\xb2\x37\x77\xb4\x40\xb0\x26\xf1\x3c\x6d\x55\x99\xfb\x4e\x45\x5c\xce\xe4\x5f\xcd\xf0\xc0\x75\x8a\x4b\x3b\xad\x6a\x89\x5b\x18\x66\x10\x5c\x65\x1f\xb1\xd0\xd7\xbf\x7b\xf3\xf1\x0d\x06\x57\x95\x1a\xb2\x11\x8f\xaa\x07\x88\xcb\x6e\x51\xa6\x29\xe0\x10\x6c\x0f\x1c\xc3\x92\xaf\x62\x27\x0e\x8f\x2e\x75\x73\x59\x55\x31\xfa\x6c\xf4\x7e\x66\xfd\x09\x8b\x78\x11\xad\x8f\xac\x2e\x47\x62\xcc\x9e\x7e\x34\x7d\x18\x05\x65\x34\x2d\xd6\x9a\xe0\xc1\x5c\x38\xf3\x8d\xa3\x9c\xad\xac\x17\xd3\x05\x30\xff\xdf\xd6\xb3\x9d\x39\x46\x6c\x5c\x9c\x88\x03\xaa\xea\x79\xee\x75\x9b\x6b\xd4\xdf\x38\xc9\x47\x22\xf9\x46\xc4\xec\x15\x84\x01\xbf\xb2\x93\x3f\x93\xd9\x62\x9c\x6e\x97\x05\xf1\x16\x9a\x41\x19\x43\x56\xbe\x3d\xa7\xdc\x3c\x6e\x5e\x93\xf6\x0c\x76\xe7\x45\xab\x5d\xd7\x71\x63\xe3\x6a\xea\xaf\xb0\xa0\x8d\xcb\x8d\xce\x4d\x15\x13\x58\x4d\x0f\xc2\xf5\xfd\x88\x2d\x72\x2e\x21\xa1\x52\x1c\x2a\x55\x7e\x77\xc2\xe5\x19\x49\x01\x6d\x5c\xa0\xe4\xe9\x16\xe2\x7f\x46\x33\x89\x0c\x8a\x40\xb5\xbf\x8d\xd2\x24\x62\xab\x9c\x67\xeb\x9a\x1e\x24\x1e\x84\x2c\x20\x2f\xf7\xb5\xe0\xfa\x30\xac\x46\x5e\x2f\x81\xf5\xf6\xa6\x4d\x24\xdc\x3e\xb8\xac\x71\x5e\x43\xf3\x3a\x8e\x16\xc0\x67\x8a\x78\x3e\x8c\xef\x6a\x2f\x2b\x73\x85\xeb\x93\x88\xe7\xc0\xff\x6c\x3a\xc7\x6c\xad\xfb\xc0\x0f\x38\xae\x44\xc5\x64\x11\xbd\x87\x02\x36\x1c\xb5\xd3\x41\x04\xbd\xd3\xaa\x16\xc9\x3d\x67\x95\xb7\x9b\x93\xdb\x0f\x2d\x15\x36\x0c\xc2\x09\x8e\x11\xe5\x4d\x05\xf2\x4e\xf6\xc7\x72\xa1\x52\xcb\x7e\x3a\x7d\xc7\x54\x0e\x89\x87\x0a\x45\x3f\x25\x71\x97\x76\x90\xc8\x58\x7c\x3a\x88\x82\x68\xf7\x41\x6f\xd5\x66\x53\x4d\x90\xdf\xa6\xde\x59\x90\x4e\xb9\x30\x87\x70\x61\x6f\xc6\x8d\xb7\x74\x1d\xaa\x3c\x49\x8b\x35\xe0\x87\x31\x44\xc7\x0f\xea\x86\x6f\x59\xb4\xe6\x72\x15\x98\x26\x00\xce\x29\x32\x95\x63\x82\xde\x07\xe0\xfa\x54\xb9\xa5\x78\x20\xe2\x02\x8a\x13\x72\x6e\x0c\x84\xe7\x2b\xcb\x4e\xc0\x57\xab\x5c\xac\x20\x8c\x75\x26\x2b\xd4\x2b\xc0\x73\x6a\x73\x03\x61\x3d\xbb\x98\x2b\x9e\x87\xfe\xa9\xeb\x36\x58\xe4\x5b\x17\xf7\x4f\xd9\xad\xfd\x7e\xae\x0f\xeb\x88\x25\x62\x3c\x62\x5f\xf9\x90\x04\x11\x29\xe9\x88\x03\x3a\xa2\xc6\x6b\x26\x7f\xb6\xe7\xea\xd0\xe4\x89\x6a\x6f\x3b\x3c\x6b\xe4\xc8\x6e\x5d\x34\x3b\x99\x17\x0a\x5e\x94\x03\xce\xa0\x53\x5e\xf0\x54\xad\x4e\xcd\xc7\x37\xf8\xed\xae\x75\x7d\x8a\xf1\x02\x96\xa3\xcf\xbc\x6f\x4e\x4e\x53\xb7\xe7\xf0\x6f\x1b\xeb\xbd\x06\xe4\x54\x75\x1b\x90\x9f\x43\x55\xb7\x44\x4c\xfb\x6d\xc8\x69\x07\xb9\xd0\x8e\x3e\x0d\x35\x11\x5b\x54\x3f\x05\x26\xe9\xfa\x35\xb6\x45\x02\x64\xb9\x8a\xcb\x48\xc4\x66\xe7\xc2\x7d\x08\xf1\x50\x8e\xe3\xa8\x22\x24\xdb\x0e\xda\x0a\x51\x1b\x9c\xba\x9f\xcb\xe6\xd0\x8b\x1b\xdf\x0d\xff\x5d\x87\xbd\xc1\x6a\x7c\x6d\x83\x1e\xee\x4f\x1c\xa7\x7c\xe0\x39\xe5\xaa\xaf\x32\xda\xab\x3c\x59\x25\x92\x17\x2a\x67\xaf\x1d\x93\xc1\x1b\x97\x06\xaf\x5b\x43\x18\x28\x26\x2a\x43\x84\x62\xe2\xb3\x2a\x1e\x6d\x8b\xd4\xbc\xa5\x0b\xbe\xc9\x42\x8e\x68\xb0\x02\x07\x23\x93\xe2\x20\x38\xdd\x04\x6c\xa7\x89\xf6\x51\xbb\x33\x49\x1e\x07\x9c\x37\x95\x87\x49\x0e\x3a\xcf\xe6\xac\x2c\xe6\x4f\xe4\x3d\xc3\x8f\x87\x19\x9e\x08\x04\xf1\x81\x67\xbb\x99\xa4\x38\x99\x1c\x30\x6c\x91\xcc\x11\x5e\x53\xa9\xae\xcf\xdd\x69\x84\x06\x32\x5b\xd7\x1d\xf7\xd7\xe7\xd6\x51\xe4\xef\x83\x95\x0b\x16\x4c\x04\x52\xea\x62\x18\x18\x5e\xed\x9d\x58\x33\xa7\xb8\xa5\x9f\x3a\x4d\x55\x19\x33\x12\x6a\x04\x02\xc8\xc7\x78\x3a\x02\xc7\xf5\x78\xdc\x15\xd6\x36\x30\xbd\xb9\x93\x3f\xf0\x5d\xfb\x0e\x84\x67\x1d\x12\x78\xe7\xd6\xa7\x91\x7d\xb1\xa9\xa7\x91\x86\xb9\x77\xe2\x78\xd0\xdc\x3b\x2b\x38\x10\x6e\x0e\x33\x90\xc2\x7d\x34\x89\x53\xd8\x6f\xa1\x03\xa1\x85\x12\xbc\xe2\x98\xd5\xf7\x07\x57\x67\x59\x28\x76\x57\x95\xf1\x5c\xc8\x62\x0e\x35\x0e\xab\x0c\x2a\xb9\x82\xcf\x2b\x0a\x53\x2f\x43\xf0\x9f\x6f\x15\xda\xf7\x2d\xbb\xd6\x5f\xd8\x0d\xd9\xb4\x8c\xbc\x4a\x00\x42\xac\xef\xd9\xeb\x04\x10\x4f\x81\x2f\xd4\x4d\x5c\xc7\x74\x51\x87\x9e\x30\x7a\x41\x87\x2a\xa2\xbd\x57\x87\x7c\xeb\xc1\x55\x0d\xa5\x90\x79\x8f\x38\x01\x8c\xa8\xb5\xbf\x05\x19\x37\x2e\x2a\x7f\x03\x3b\xb2\x99\xbf\x94\xfd\x4d\xe4\xca\xc7\x7f\xa1\xb1\x2a\x2c\x78\xa7\xbe\xfe\xf4\x64\xe1\xa8\x8f\x63\x9a\xea\x30\x4f\x2b\xfc\x42\x04\x66\x68\x51\x58\x6c\xed\x75\xa4\xc3\x85\x94\x89\x68\xde\x91\x94\xa7\x57\x53\x82\x8b\x67\x98\x64\x27\xa9\x1d\x66\x76\x83\x1e\x83\xbd\x82\x02\xab\x36\x3c\x23\x74\x21\x01\xc9\xeb\xce\x9b\x31\x74\xe2\xcf\x7f\xfa\xcb\x38\xe9\x08\xf1\x86\xa6\x0f\x05\x6b\xb9\xc6\xbf\xcf\x13\x21\x63\x70\xc6\xf2\xb8\x99\x2f\x4e\x56\xac\xf3\x15\xf1\x6c\x96\xe1\xb3\xc4\x83\xb7\x1f\xb5\x7a\x8e\x8b\xe8\x33\x78\xf4\xbd\x90\x75\xdb\xb7\xe2\xef\xeb\x52\x25\xf4\x3c\xde\x4a\xbe\x49\xa2\xcf\xda\xc6\x6d\x22\xd2\x18\x9a\x48\xb5\xef\xf3\x4a\xc5\x22\xba\x1f\xaa\x13\x3c\x39\xdb\x85\x88\xee\xd9\x0f\xb7\x1f\xce\x31\xb9\x71\xa2\x67\xf2\x82\x17\xc9\x83\xb8\xcb\x53\xe7\x0e\x20\x90\x76\x9e\xda\x3d\x52\x65\x5f\x0f\x98\xbe\x2c\x55\xbb\x55\x1c\xc2\xe4\x18\x9b\xed\xd1\xa2\x8c\xee\x45\x71\x9c\x73\x19\xab\x0d\x76\xe3\x58\x97\xcb\x65\xf2\x69\x5c\xf0\xbc\x23\x53\x06\xda\x11\x7e\x45\x3d\xd7\xe7\x3f\x2b\xbc\xce\x8b\xaa\xee\x23\x84\x79\x53\x56\xfd\x8a\x72\x8b\x51\x89\x7c\x23\x80\xea\x94\x55\xb3\xcc\x40\x29\x18\x39\x0d\xc9\x58\xb5\xa6\xf8\x09\x45\xa9\xde\x3f\x06\xca\xfd\xc7\xa0\x55\xde\x85\x1d\x36\xca\x27\x38\xdd\xf0\x7b\xbc\x1f\xae\x72\xa1\xf5\x88\x69\x05\x2d\x9e\x49\x1b\x89\x60\xa3\xe5\x00\xf7\x02\x64\xc9\xe9\x96\x45\x2a\x73\x90\x79\xec\xd7\x5a\x3d\x82\x9d\x3e\x8c\x13\x86\x14\xde\xa5\x2c\x92\x94\xf1\x65\x41\x46\x7c\xc8\x0c\x61\x33\xc1\xe9\xf1\x4c\x82\x2b\x36\x82\xee\x03\x44\xc2\xb9\x5f\x5c\x27\x34\x5b\xf2\x28\x49\x93\x82\xf8\xea\x20\xc4\x8c\x9b\xfe\x9a\xf3\xc0\x8c\x65\xce\xb7\x3c\xf5\x17\x2b\x9e\x96\x3e\x34\xfa\x48\x8b\x1d\x7c\xa8\x89\x9e\xa3\x81\xe0\xe5\x36\xb8\x47\x01\x26\xa1\xf3\x01\xb9\xe3\x27\xa6\xf2\x8b\xda\x29\xfa\x4f\xe1\x7f\x2b\xf7\xf0\x5d\x5a\xc1\x01\x17\xf2\x43\x0e\xc7\xe6\x95\xdb\xa5\x4f\xf7\x7a\x46\x12\x5b\x74\x72\x45\x15\xf7\xc1\xc7\xee\x78\x04\x9f\x49\xc7\xa5\x7f\x6c\x93\xde\x35\x6b\x18\x30\x7a\xed\x4a\xe2\x67\x32\x67\x74\x11\xfa\xf7\x69\xbe\xb5\xc6\x5f\x29\x95\x1e\x6a\x91\x27\x4a\x8e\x44\xc9\x39\xe4\x81\x3e\xe4\x3a\x89\x0b\xc0\x19\xb6\xa6\xef\x9c\xcf\xdd\x31\xe4\x57\xb3\xc7\x11\x1c\x8c\x9a\x00\x82\x0c\x1a\xb1\x03\xa7\xae\xb3\x16\xd0\xc5\x40\xbc\x3d\x94\x81\x68\x2d\xab\xda\x37\x5d\x04\x01\x3b\x0b\xf7\x6d\x04\x16\xe1\x5a\x0b\x07\x19\xeb\x30\x6b\x73\xad\x2a\x67\xb8\x0b\xd9\xc6\xdd\x38\x06\x75\xdb\xf1\xdc\x70\x49\x96\x3f\xd2\xe2\x67\x32\xd0\xd8\x91\x11\xcf\x06\x34\xb8\x51\x6b\xb3\xe7\x55\x96\xe1\xc1\xf6\xbc\x43\x52\x4a\xec\x94\x9c\xef\xc2\xe4\x90\x80\x05\x89\xd4\x66\x91\x48\xcb\x49\x41\x46\x6e\xb8\x6a\x4c\x2c\x63\xaf\x73\x48\xd8\x2b\x03\xa6\x0c\xaa\x8d\xbd\x53\x73\x42\xf2\xe3\x50\x64\xed\xbb\x8e\x87\xf7\xbb\xe7\xcd\x7e\xd1\xe1\x69\xac\xf7\xc0\x1c\x20\xe9\x23\xdf\x6a\x48\xa0\x2e\x8c\x54\x5c\xa2\x61\xb7\xda\xfe\x51\xa0\x7e\x58\x36\xe8\x99\x84\x11\x42\xb6\x30\x2b\x48\x8d\x64\x85\x05\x98\xda\x54\xf1\x9e\xe9\xed\x95\x6e\x1f\x9c\x5f\xc7\x57\x93\xef\xf4\xd5\xa0\x13\xfa\xbf\x87\x7b\x66\x87\x11\xf8\x40\x5b\x74\x70\x4c\xa2\xc6\x48\x30\x21\x08\x1b\x73\x2e\xea\x11\xdb\xf0\x44\xd2\x36\xc0\x74\x9c\xb1\x58\x94\xab\x55\xa7\x89\xf4\xb7\xef\x6b\xa9\xee\x93\xff\xf1\xb6\xf0\x9d\x5c\x85\xcf\x61\x2d\x9e\xda\x9a\xd0\x7c\x6d\xee\x7d\x9f\xc7\x40\xfc\x2b\x5a\xe3\x5b\x5d\x62\x8d\x45\xf4\x3c\xd6\xf8\x69\x1f\x6b\xbc\xc5\x76\x41\x80\x1f\x5d\xa7\x2d\xfe\xe6\x1f\x66\xfa\xcf\x63\xa6\xef\xb5\x28\x90\xd4\x67\x9e\x54\x15\xf4\x1d\x2d\x7c\x22\xef\xa5\xa3\x82\x86\x56\x21\xb7\x9c\x91\xee\xb1\x66\x0b\x1e\xbd\x00\x11\x26\x9c\x8e\x87\xdb\x03\xf7\x80\x5f\x6e\xd4\x46\x30\xa8\x4a\x63\x22\x27\x46\x51\x8c\x23\x40\xab\x9a\x0e\x7a\xc4\x08\xe1\x51\xe0\x38\x45\xe4\x4a\xec\x95\xea\xd7\x52\x3c\x32\x73\x5a\x8d\x42\xf8\x5e\x30\x3d\x90\xe1\xef\x8d\xd1\x0e\x2b\x58\x7f\x47\xd8\x91\x8b\x15\xcf\x63\x88\x30\xa1\x2d\x99\xf2\xe8\xde\xfc\x1b\xda\x47\x35\x12\xc4\xd0\x72\x05\x20\xec\xd5\x97\x96\xc8\x08\xa9\x10\x2d\xa7\xbb\x6b\x1f\x7e\xae\x19\x8f\x72\xa5\xd1\x68\xe4\x12\x63\x43\x7c\x35\x28\xb0\x0f\x49\x5c\xf2\x14\x6b\xec\xb4\xb4\x0f\x85\xaf\xd5\x01\x47\x41\x0e\xbb\x26\x9a\x8d\xa6\x03\x19\xaa\x60\x18\xc7\x33\xf9\xce\x39\x4c\x4e\xd8\x9d\x16\x84\x32\xd3\x36\x0b\xc0\xce\x96\xbe\x98\xfa\xd0\xc0\x04\x76\xea\x10\x3b\x06\xc0\x82\xac\x83\x81\xd0\xdd\x23\xb1\x87\x4e\xf5\x90\x49\x19\x4c\x0b\x3d\x0d\x12\xe9\xfb\x61\xc1\x7b\x42\x2e\x78\xbc\x0d\xb9\x18\x13\xc9\xc0\x4b\xc7\x78\xbc\x49\xa4\xd9\x04\x36\x59\xab\x3b\x69\x6c\xde\x06\x84\x1c\x43\x4e\xb3\x34\xad\x09\x41\xcd\xa4\x30\xca\x25\xcf\x93\x74\x0b\xf7\x89\x2c\x17\x47\x41\x3d\xc1\xfc\x50\xc4\x13\x64\xa0\x20\x12\x99\x52\x8b\x65\x99\xe2\xad\x03\xee\xe5\xae\x03\x24\x91\xee\xa6\x23\xa3\x70\x14\x94\x49\x28\xa8\x18\xf3\x73\x3e\x47\xf4\x48\xc3\x5b\x39\xcc\xe3\xe6\xb9\x42\x73\x00\xb9\xaf\xd5\xa3\x0d\x75\x7b\xe4\x1e\xcb\xdc\x75\xba\x3e\x9b\x97\x65\xb7\x1e\x6a\x6f\x80\x56\x4e\x05\x84\x7f\xce\xb5\x46\xcf\x44\xec\x64\x53\x22\xa1\x3b\x94\xe2\xda\x5b\xae\x4b\x8d\x11\x73\x66\x2e\xe1\xfc\xb2\x86\x8e\xaa\xe1\x9a\xb9\xde\x25\x5a\x49\x36\x2b\xbf\xfc\xf2\x6b\xc1\xbe\x84\x10\x42\xba\x8f\xa0\x7f\x0c\xd8\x42\xb1\x74\x10\xd9\xae\x02\x81\x54\xa2\x8d\x19\x61\x6d\x10\x55\x1b\xaf\x0f\x20\x4f\x1e\xad\x99\x2e\x17\x88\x60\xe4\xe4\x62\xe1\xd2\xb1\x8e\x9f\x2b\x00\x23\xe2\xc9\x6e\x5b\xff\xff\x88\x43\x01\x93\xbe\xcc\x64\xa6\x90\x18\x1f\xa0\x9f\x0b\xc1\x36\x3c\xbf\x87\x1c\xbe\x68\x9e\x87\x44\x00\xaf\x13\x31\xae\xba\x17\xde\x54\xda\x43\x0e\x1d\x24\xbc\x66\x79\x29\xa5\x4d\x4a\xc6\x8c\x62\xea\x6d\xfd\xa3\x99\x5c\x94\xe1\xdd\xb3\xe2\x2c\xf0\x4b\x0b\x1c\x06\x20\x6c\x15\x30\x95\x50\xa3\xb8\xf6\xed\x1a\xb3\x1e\x5e\x83\x99\x7c\x66\xb7\xc1\x3e\x83\xdf\x15\xe9\x60\xd6\x98\x17\xc4\x2b\x40\x77\xc3\xbc\xd9\x30\x1d\xb8\xec\x41\xc9\xb9\x82\xe4\xd9\x23\xf6\x43\xf2\x20\x46\xec\x26\xe3\xf9\xfd\x88\xbd\x43\xf7\xdf\x1f\xd4\xa2\xcd\x86\xd7\x20\x94\x38\xd8\x8e\xf7\x34\x33\xd6\x2e\x9a\x97\x76\xed\xff\xe7\x06\x31\x00\xeb\xf2\x7d\xff\xf7\x44\xe4\x75\x70\x7d\xfc\x4f\xb7\x44\xec\x71\x53\xff\x03\xbc\xf6\x3f\xf2\x56\xbc\x9b\xe6\xe3\x9f\xc2\xff\x5a\xf9\x65\x35\x2e\xd0\x3d\x49\xca\xb5\xa2\xd2\x7e\x5b\x81\xcd\x49\x5c\x3f\x94\x9b\xf1\xcd\xfd\xb6\x02\x85\x8f\xc7\x2e\xb4\x7d\x00\xe8\x9e\x3e\xb5\xe3\x75\x9a\x2a\x5d\xe6\xbb\x37\xff\x75\xb5\xd5\xb6\xf6\x16\xa2\x57\x58\x6c\x9b\x85\x00\xd6\x82\xbe\xf0\x13\x7c\x6d\xfe\x57\xb5\x98\x03\xd6\xea\xb0\x1d\xde\x56\x9c\xa3\x8f\x56\x51\xa5\xa9\xfe\x84\xbc\xc9\x04\xf0\x5d\x79\x55\xd4\x3b\x04\x6a\x2b\xcc\x99\x46\x66\xd2\x32\xee\x63\xc4\x6c\x9e\x0b\xa0\x06\xcf\x05\x24\x7a\x64\xc4\x70\x98\x6e\x03\x8d\x28\xb8\xf9\x78\x50\x4c\x18\xe5\x06\xc1\xaa\x74\xdf\x5a\x08\x21\xdd\x68\x0f\x51\x25\x80\x06\xbb\x36\xfa\x84\x76\x7b\x14\x36\xf1\x42\x47\x52\xda\xc6\x77\xc1\x5d\x10\x54\xee\x95\x28\x02\x69\x5e\x53\x2d\x2a\x5b\xb3\xe2\xa1\xfa\x4d\x21\xfe\x5b\x7d\xd0\x35\x72\xae\x8a\x01\xa5\x97\x4f\xef\x39\xec\xe5\x57\xbc\x58\xe3\x85\x76\xa3\x0a\x81\x32\x13\x59\x82\x70\xbd\xa0\xd5\x79\x91\xaa\x05\x64\x58\x2c\x76\x30\x48\x46\xb4\xb5\x7b\x0d\x5d\x73\xc2\xfa\x48\x06\x23\x4d\x20\xd2\x36\x17\x1a\x08\x57\x9a\x5e\xaa\xbe\xf8\xe4\x61\x97\xee\x66\x73\x8d\xd0\x7f\xd7\xb8\x6c\x37\x53\x72\x98\x6d\x0d\x60\xd5\xb3\x27\x44\xd0\x34\x12\x9c\x10\x55\x35\xb9\x81\x91\xad\xb6\xd6\x5f\x9b\xc8\x7f\x26\x27\xf8\x24\x38\x04\xb8\xcf\xb1\xe5\xf0\xa0\x94\xb3\xd9\xed\x3f\x0c\x5f\x65\x93\x10\x81\x48\x16\x82\x91\xb7\x65\xc2\x65\x60\x04\x51\x8d\xb2\x48\x72\xc1\x24\xa0\x10\x66\x52\x97\x8b\x23\x4f\x4c\x62\x6e\x71\x0f\x40\xa6\xa3\x45\xc6\xe1\x2a\x03\x7c\x45\x47\x2d\xc7\x30\x5a\x26\x7d\xae\x1c\x4b\x1f\xc8\x53\x12\xfe\x10\x2b\x89\x91\xf1\xae\xef\xae\x1c\x73\x59\x83\x5b\xb4\x85\x2b\xe1\x61\xb7\x4b\x5e\x40\x36\x2f\x88\xc0\xbc\x46\x14\xc5\xaf\x7d\x80\x87\xde\xd0\xbe\x47\x37\xf8\xd3\x66\xf2\x5f\xed\xd9\xd0\x0d\x2a\x1e\xb0\xd2\xcd\xc8\x98\x23\xaa\x13\xec\x5c\x69\x9b\xbd\x42\x06\x4a\x60\x77\xa3\x1a\x4b\xbe\xad\x54\x6e\x71\x2d\x61\x4a\x17\x45\xe1\xb2\xf0\xf4\x21\xd1\x01\xd9\x3b\xd4\x76\x23\x04\x3b\xc9\xc5\xf2\xe4\x63\x2e\x96\x73\x3b\xd3\x63\xe8\xd0\xd8\xf4\xa8\x49\xf9\xde\x73\x71\xe8\x4c\xc9\x76\xf2\xc3\x3d\xd4\xa8\xb5\x2e\x61\x39\x41\x9f\x92\x25\xf3\xd9\x6d\x4d\x7f\x80\x01\x42\xc4\x75\x2e\xfa\x46\xcb\x3e\xfb\x31\xd7\x85\x04\xeb\x01\xb5\xea\x48\x82\xfa\x3f\xff\x78\xab\x8c\x59\x9f\xe3\xed\xb6\x0a\x99\xb1\xc2\x9e\x4b\x77\xe0\x75\xe3\x42\x3f\x2f\x3a\x1d\x26\x50\x67\xfc\x51\x12\x8f\xcd\x20\xd3\x53\xbf\x63\xad\x06\x20\x0a\x8e\xb5\x06\x06\xce\xef\x32\x69\x2d\x7d\x89\xcb\xa3\x39\x62\xfe\x06\xcd\xd3\x34\xcc\xa8\xe1\x3d\x6d\x33\xe9\xe3\x52\x8d\xd6\x9a\xa6\xd6\x84\x57\xd1\x37\x5c\xc2\x63\x5d\xf0\x42\x8c\x2c\xe9\x0a\xd1\x15\x92\x3f\xec\x68\xc1\x21\xb5\xb5\xcb\xa1\xb6\x6f\x37\x3f\xd7\x25\xf2\x37\x16\x17\xbd\xc7\xf3\x8c\xd5\xce\xef\x45\x03\xce\xbc\xb7\xad\xed\x9e\x8e\x80\x52\x02\x36\xb3\x95\xb2\x11\xcf\x73\x8b\xf2\xa7\x5a\x99\xa5\x3b\x0f\x6f\x25\x1d\xed\x5c\x8b\xe8\x3e\x53\x89\x1c\x2c\x8b\x2a\x14\x17\xb0\xd8\x0b\xe6\x4b\x73\xb7\xc3\x5e\x87\x63\x45\x9f\xc4\x8e\x68\x80\x57\x58\x68\xa8\x27\x63\xe3\xcc\x65\xca\xee\x5e\x76\xcf\x6d\xbf\x10\xfe\x6c\x78\x01\x5b\x6c\x8b\x7f\xa8\x76\xaa\xf0\x16\xc3\x4e\x85\x09\x94\x37\xa2\xbf\x7a\x0e\x36\x67\x15\x0a\xc3\xd6\x21\x05\x13\xe4\x3f\x2c\x43\xff\xb0\x0c\xfd\x37\xb7\x0c\x7d\x4e\xb3\x10\x60\x63\x5e\xd2\x26\xb4\xc3\x41\x7e\xc0\x76\x74\xb5\x0e\x8e\x71\x6c\xd5\x8e\x47\x41\xd2\xef\x20\xd2\xb1\x09\xf4\xb7\x44\x18\x66\x7c\x16\x3c\xba\x17\xb2\xd3\x47\x6f\xe9\x8b\x3a\xf3\xaf\x3e\x2f\x82\xa5\x8d\x7d\x29\xf8\x7a\x37\x94\xc5\x43\x9d\x88\x34\xb8\x8d\x10\xc4\xec\x13\xd0\x3d\x4d\xc7\x8f\x00\x34\xa6\x72\x47\x6c\xad\x29\x0a\x0f\x9d\x91\x48\x93\x84\x60\xa9\x1a\x15\x74\x5f\x4c\x9c\xad\x78\x9e\x29\x95\xb6\x42\xe3\x9e\x75\x00\x1b\x81\x32\x7d\x07\x6f\x8a\xca\xa8\x0e\x01\x63\x76\x14\x7d\xd0\x85\x0f\xd1\xc0\x78\x0c\xc8\xc4\x01\xab\x29\x2e\x21\x96\xd2\x0f\x47\x90\x5e\x91\x3b\x83\x0b\x61\xc4\x16\x22\xe2\x90\xf8\xd5\x82\xf7\x22\xee\xa2\x4f\x42\x52\xa4\x46\x38\x88\x6e\xd6\xd3\xe1\xb5\x84\x72\xe7\x49\x5b\xda\x8d\xa1\x9b\xab\xa6\x21\x58\x68\x39\xb6\xdc\x22\x49\x2c\xed\xe2\xbe\x84\xc6\x96\x63\x7a\x0e\xd9\x17\xfb\x9d\x70\xad\x72\x67\x4a\x05\x9d\x42\x39\xfd\x05\xe9\x0f\x10\x8e\xb3\xe9\x89\xdc\x99\xc9\x89\xcb\x73\xeb\xb1\x5f\x0e\xb9\x87\xee\x52\xc4\x2c\x36\xa6\x06\xb9\x1c\xfd\xcd\x65\xc4\x74\x19\xad\x81\xad\xb2\x2a\xa7\x42\xb9\xd5\xdc\xb1\xa3\x99\x34\x17\x22\x30\xb5\x6c\x38\xc4\xc5\x3f\x1a\x65\x55\x27\x7f\x13\x0e\x9e\x45\xe4\x5d\x21\x22\x0b\x2f\x4e\x4a\xb6\xa2\xd7\x2c\x71\x28\x02\x2c\x3c\xa6\xa4\xcc\x62\x5e\x88\xf1\xcc\xa3\x6d\x12\xb4\x74\x5a\x94\x07\xa9\xcc\x3a\xec\x58\x88\x63\xac\x49\xda\x34\x59\x8a\x68\x1b\x35\xb2\x10\xed\xa6\x89\xf8\xc7\xb5\xed\xb7\x75\x6d\x43\x96\x5d\x8c\x19\x1c\x32\xb4\xd4\xd4\x6b\xff\xf9\x61\x83\x2b\x58\xd0\x12\x3d\x60\x9c\x3f\xe3\xb5\xb3\x45\x07\x1e\xa6\xcf\xf7\xbe\x07\xed\x3e\xce\xfc\xc5\xd6\x1f\xd6\x01\x05\x42\x43\x2d\x0c\x9d\x8b\x45\xb8\x74\x8c\x42\xdb\xdb\xad\xdf\xcd\x32\xf3\x9b\x02\x27\xf5\xb9\xb8\x1a\x8d\xdb\xc1\x95\x2e\xac\xa6\x2d\x05\x9e\x77\x3b\x34\xee\x80\xd5\x9d\x17\xaf\xb4\x1b\xf5\xaa\x04\xb4\xd8\xff\x89\xdc\x1e\x14\x80\xb9\xcd\xc4\xbc\xcc\xd3\x83\xe0\xc6\x77\xd7\xe7\xc7\x4e\xdb\x00\xcd\xb9\x33\xef\x51\x51\x4b\x0d\x6d\x73\x12\x8b\x98\xe0\xa0\x91\x4a\xd9\xa2\x5c\x2e\x21\x7f\x09\x01\x43\xad\x30\x82\xcc\xf4\xa5\x2e\xec\x79\x82\x4c\x33\x5c\x17\x33\xa9\xa4\x60\xb3\x2f\x8e\x67\x5f\x98\xa3\x2c\xe7\x51\x21\x72\x24\x19\x48\xb9\x2e\x98\x16\x2b\x50\xb5\xa8\xd2\xbb\xeb\x73\x88\x4a\x2c\xd6\x58\x9c\xbb\xb2\x62\xbc\x27\x72\x3e\x43\xae\x1f\x20\xa8\x96\x41\xc6\x2d\x68\xfb\x6b\xae\x59\x22\x67\xf2\xa3\x29\xe2\x78\xa5\xd4\x2a\x15\x63\x3b\x21\xe3\x77\x64\x7a\xfc\xf8\x06\x5b\x00\x9f\x87\xb0\x7e\x73\x20\x72\xa9\x64\x12\xf1\x14\x02\x72\x66\x12\xb4\xe6\x91\xe9\x0c\x98\x46\x67\x5f\x8c\x67\x5f\x30\x70\x9f\x16\x8c\x47\x91\xc8\x0a\x11\x63\x6a\xd3\xa9\x64\x19\xe0\x17\x23\x31\x62\x85\xe0\x1b\x6d\x29\x9d\x59\x66\xee\x98\x70\x35\x64\x89\x24\xa4\xd3\x22\x91\x3c\xdf\x22\x98\x09\x93\x95\x53\xf0\xc7\x76\x26\xc5\x27\xa0\xff\x4c\x80\x01\xb4\xd4\x8e\x96\x86\x12\x13\x98\x2e\x4f\xe4\x76\xcc\x7e\x40\x86\x06\xa4\x40\xbd\xbb\x3e\xb7\xf4\x46\x14\x03\x3a\x93\x3a\x5a\x8b\x8d\x60\x1f\xd7\x45\x91\x7d\x1c\xe1\x7f\xf5\x47\xf0\x38\x4a\xc5\xf0\xe9\x88\x99\x29\x32\x8a\xaa\xc5\xcb\xa7\x5b\xc8\x21\x5b\x66\x94\x70\x7e\x26\x81\x8b\x3d\x0f\xd1\xbd\x66\xb4\xa1\xc6\xe0\x0a\x5e\xc1\x85\x1b\x29\x0e\xc9\x1d\x4f\xcc\xe0\xfc\x2f\x36\x5d\xfa\x2a\xcd\x00\xda\xdc\x62\xae\x55\xa0\x90\x68\x08\xd9\x1a\x9b\x0f\x26\x92\xfd\x70\x7b\x7b\xc5\xbe\x3f\xbb\xb5\xca\xce\xdd\xf5\x39\xae\x0b\xa0\x53\x61\x9c\xfd\xb9\x3e\xc5\xb7\xdb\x4c\xfc\xe5\xcf\x7f\x99\x49\x66\x73\x94\x4b\x3b\xd2\xb8\xa3\x47\x48\x09\x0b\x78\x27\x70\xcc\x02\x95\x33\xd4\x87\x29\x77\xa8\xf9\x39\x6a\xe7\x8f\x64\x2d\x80\x33\x2a\x55\xea\xbe\xcc\x9c\x99\x3b\xd4\xc3\x4c\x85\x77\xd7\xe7\x50\x3a\xd0\x29\x15\x6b\xc8\x9f\x26\x9c\xf5\x05\x26\x9e\xdb\xc6\x98\x7f\x3f\xa8\x24\x66\x5c\x6e\xcd\xb7\x58\x34\x2c\xcb\x5c\x2c\x55\x2e\x46\xf6\x4d\x53\x00\x2f\x92\x45\x92\x26\xc5\x16\xa4\x94\xcd\x6b\x9f\x59\x8e\x7c\x53\x80\xb9\xcd\x10\xc0\xdb\x2c\x30\x4c\x63\xfb\xfa\x4e\x87\x08\x70\x98\x34\x97\x1b\x11\x2f\x3a\xe6\xdb\x45\x2e\xf8\xbd\x59\xdd\x54\xc2\xf8\x0d\xe5\x8c\x15\x27\x78\xc6\x2c\x4b\x19\xe1\xd2\x30\x6d\xa0\xd5\x4f\x37\xa7\x74\xcb\xf8\x03\x4f\x30\xa7\xac\x75\x97\x2f\x97\x49\x94\xf0\x94\x24\xc7\xa2\x5c\x42\xda\x18\xae\x29\x65\x11\x82\x0f\x4d\x21\x70\xcb\xb0\x09\xfb\x71\x41\x2d\xc4\x2a\x41\xc0\xf1\x63\x52\xac\x31\xae\x60\x8c\xf3\xcc\xb3\x44\x8f\x23\xb5\x81\xfd\x76\x03\x4b\x49\xd3\xa5\x17\x70\xe0\xb5\x75\xce\x5e\x5b\xa8\xdd\x26\x2b\xb6\xb4\xf6\xde\xb0\x4d\xb2\x5a\x17\x90\xc8\x05\x6a\x07\x48\x44\xb2\xc9\x52\xb8\xf4\x91\x87\xd1\xe2\x7d\xb5\xd8\x70\x59\x24\x51\x97\x4f\xa9\x35\x25\x78\x3f\x8c\xe7\x62\x5b\xec\xb6\xe3\x7d\x20\x9e\x7d\x8e\x14\xfa\x81\x44\x66\x75\x81\x4c\x32\x10\xd2\xcb\x04\x04\xfe\xf5\x94\xb3\xfb\xae\x50\x1f\x27\x72\xfb\xd1\x93\x90\x72\x19\xe4\xbe\xda\x51\xbb\xdd\xff\x3c\x55\x34\x6b\x8c\xcf\x24\xa0\x3a\x8d\xc0\xa0\x64\xb4\x3b\xcf\x18\x77\xa4\x98\x99\xbd\xb2\x8b\x26\x4d\x16\x50\x37\xc9\x0a\xcd\x74\x99\x41\x3c\x41\xa1\x58\xc6\xa3\xfb\xe3\x52\x9a\xff\x18\x61\x88\xdb\x5d\x87\xe4\x44\x33\xa9\x96\xac\x2c\x70\xe3\xd8\x25\x0c\x46\x91\xc0\x14\xe0\x2f\x68\x1b\x51\xac\x55\xec\xe2\xc2\x4c\x99\x30\x7e\xa6\x45\x67\x44\x2f\xfd\xf6\x84\x5d\x99\x0a\xcd\x22\xa6\xba\xb9\xeb\x7e\x22\xd9\xe9\xbf\xfe\x2b\xbc\x6f\x06\xf7\xbd\x52\x6c\xa9\x14\xfb\x96\x8d\xc7\xe3\x7f\xc7\xdf\x4c\xa1\x5c\x6e\xe9\x2f\x2e\xb7\x63\x53\xdc\xfb\x5c\x6d\x5e\x2f\x95\x7a\x43\xbf\x43\xd2\x66\xf3\x8f\x64\xc9\x5e\x9b\x97\xee\xa0\xaa\x5b\xf5\x7a\x56\x7e\xf9\xe5\x57\xbf\x37\xaf\xbe\x61\xff\x89\xef\x04\xaf\xff\x3d\x6c\xea\x57\x7b\x9a\xfa\x07\xfe\xc0\xfb\xb4\x95\x7d\x0b\x67\x8d\x29\x60\x67\x1b\x13\xfd\xfa\xbd\x52\x63\xb8\xfd\x87\xad\xc3\x62\xcd\x1b\xd8\x8a\xe0\xad\x7f\x0f\x9a\xcd\x6c\xbb\xbf\xde\xd3\x6e\x44\xd5\xbb\x96\x63\xf1\xef\x95\x7a\x3d\x1e\x1b\xb9\x45\xe3\x8a\xad\x7e\xfd\xa6\x3a\xd0\xd0\x81\x66\xfb\xcd\xe3\x29\x36\xff\xdd\xd9\xcd\xe9\xf5\xf4\xea\xf6\xf2\xfa\xcd\x89\xed\x81\x9f\x81\xe0\x7b\x66\x53\x6b\xbb\x86\xff\xef\x3d\x0d\xff\x5e\xd9\x36\x43\xa3\x4f\xbe\x65\x38\x9b\xd9\x62\xfc\x5e\xa9\xff\x1c\x8f\xc7\x7f\xa7\xc7\x5c\x6e\x47\xe6\x60\x32\xef\x64\x28\xca\x3f\xf0\x5c\xaf\x79\x6a\xfa\x14\xb4\xc1\x75\xa2\xb5\x44\x5b\x5c\xb2\xac\x15\x76\x27\x37\xbe\x38\xa8\x0c\x26\x16\xde\xfa\xe7\x6f\x99\x4c\x52\x3f\x7d\x41\x1d\x30\x4f\xb7\x40\x2d\x11\xdd\xbb\xed\xe2\x72\x84\x2e\xb6\x2c\xab\x6f\x5c\x8c\x3b\xdb\xda\x0c\x05\x46\xdc\xcf\xe4\xab\x16\x89\x7e\x6c\x54\xbb\x31\x3c\x30\x07\xd4\x2b\x9b\x3d\xde\x1e\x0b\x2e\xb3\x16\x8e\x2c\x38\xa2\x71\xb7\x4a\x8a\x51\x6b\xd3\x0f\xdd\x81\x17\x90\x55\x81\xda\xf9\xea\xf8\x15\x05\x0a\xf9\x2a\xaa\x44\xf2\xb3\x2f\x96\x4a\x8d\x17\x3c\x87\xd6\x7d\x3a\xde\x8e\xff\x36\xfb\x02\xfb\x83\xca\x07\x2a\x46\x50\xf8\xec\x0b\x78\x0a\xcb\x61\x26\xff\x70\x73\x79\x31\x93\xdf\x7e\xfb\xed\xb7\x38\x5a\xe6\xef\x16\xdf\x8b\x39\xae\x40\xdc\xa2\x9e\x52\x6a\x9b\x52\x52\xac\xca\x94\xe7\x33\xd9\xee\xae\x89\x85\x17\x9a\x23\xef\xbc\xa1\x75\x36\xb2\xd9\x2d\x20\x49\x99\x95\x71\x68\x9b\xfc\xf8\xff\x9b\x26\x7f\x24\x15\xd1\x09\xf9\x70\x08\xc6\x76\x31\x9f\xd8\xa5\x6a\x06\xdb\xac\x5f\xaf\x67\x2d\x93\x54\xd0\xc6\xb5\x8b\xfb\x4a\xe4\x5a\x49\xbf\x66\xe8\x42\x00\xdc\x66\xe0\x00\x60\xdf\xb2\xb7\xff\x5e\x7b\x6a\xe6\xc1\x3e\xfc\xaa\x22\x09\x18\xf3\x45\xcd\xbe\x80\x56\xcf\xbe\x38\x61\xb3\x2f\xda\xd6\x4d\xb5\x61\x63\x6c\xca\xec\x8b\x91\x2f\x00\x9a\x71\xc1\x37\x58\x48\xf9\xe5\x97\x5f\x47\xd8\x04\x0c\x5d\x0b\xde\x34\x4d\xea\x7e\x31\x68\xe2\xb4\xe6\x3a\xb3\x03\x61\x43\x20\x1f\x45\x9a\x1e\xdd\x4b\xf5\x88\x79\xc6\xc1\x4f\x44\x51\xca\x0c\x97\x47\x75\x72\x29\x37\x59\x6d\xc6\x6d\xd0\xa6\xab\xc6\xa5\xb7\x83\x09\x9d\xc9\x8f\xb0\x74\xec\x8c\x12\x1d\x11\xd0\x81\xba\x9a\xe0\x52\x43\x2b\xc1\xc6\x58\xd0\x42\x98\x49\x28\xc6\xcd\x39\x7b\x0d\xc0\x2f\xea\x4a\x43\xb3\xb6\x97\xa7\xbf\xfc\xf9\x2f\x6f\x4e\x0e\x99\xa7\x6a\x71\x95\xa9\x82\xfe\x60\x19\x6f\xc7\x5f\xbd\xfd\x4a\xcf\xbe\xa0\x51\x6f\xbf\x62\x9f\x27\xba\xf8\xa9\xa6\x81\x3d\x21\xd9\xb9\x51\x1c\x5e\xca\x79\x61\x9b\x8a\xcd\xec\xeb\xb4\xb8\xae\xba\x15\xd4\xd2\x9a\x75\xe0\x72\x66\xd3\xc0\x9b\x76\x0f\x52\xef\xdc\x78\xe1\x65\x8b\x3d\xe6\x3c\xcb\x44\x6e\x6d\xe5\x0d\x77\x06\xe4\x54\x87\x5a\xac\xe8\x6f\x13\x66\x66\xd9\xd4\x8a\x86\xd7\x60\xe8\xc6\xed\x33\x77\x51\xa6\x69\xe7\xcc\xed\x4f\x96\x7c\x71\x77\x7e\x3e\xff\x69\x72\x7e\x77\x66\xbb\xdf\x9a\x7c\x38\x78\xad\x73\x4c\x5c\x4b\x68\x4c\x10\x57\x55\x00\x96\xaa\xdc\x88\xdc\x32\x85\xf9\x5e\x23\x8e\xa4\x4c\xd3\x6a\x5a\xec\x99\xfc\x48\xe5\x80\x18\x28\x65\x62\xd5\x94\x9d\x03\x57\xad\x1f\x5e\xfb\x68\x0a\xff\x88\xdf\x1e\x31\xdf\x89\x13\x76\xe1\x6a\xed\x18\x57\x22\x9c\x38\x60\x3b\x60\xbc\x6d\xd7\x76\x78\xee\xc4\xff\x4f\xdb\x1e\x77\x12\x92\x7e\x19\xc9\x8b\xf9\xfa\x9f\x65\x77\xe0\xd8\x7d\xac\x42\xc1\x9d\xb9\x34\x46\xaf\x21\x94\x3b\xc2\x74\xed\xba\x20\xce\x62\x1c\xb3\x99\x44\x41\x6c\xda\x54\xa8\xee\x36\xb1\x29\x79\x90\x52\x2e\x57\x25\x5f\x09\x3d\x62\xb6\xf2\x99\xb4\xb7\x53\x7b\xd7\x71\xc0\x1c\x60\x64\xad\x2d\xa1\x5a\x08\x70\x22\x67\x92\xfa\x04\x27\x2c\x15\x8f\xe1\xa8\x7f\xb8\x71\xdd\xa1\xb8\x6f\x2c\x88\x32\xce\xcb\x99\xc4\xc9\x45\xdb\x98\x05\x1b\x82\xda\xd1\x3c\x9b\x38\xc0\x83\xf1\x5e\x17\xb3\x42\xad\x00\xf6\x38\x93\x8e\x05\x0b\xc1\x19\xf6\xbe\xe6\x73\x83\x62\x93\xf6\xcb\x13\x3b\x19\x76\x4f\x50\xdb\xda\x57\xfd\xc1\x67\x80\xd9\x70\xf3\xd6\xbb\xfc\xee\x65\xeb\xc5\x58\x4f\x40\x0e\x0f\x04\x47\x17\x35\x22\x50\x9f\xb5\xb7\xc6\xf6\x0b\xdf\xe9\x8c\x1e\x55\xe5\x22\x1d\xd0\x24\x7c\x7f\x67\xa3\x50\x24\xef\x6e\x54\x0f\x8b\xf4\x75\x6d\x6b\x99\x65\xba\xab\xda\x85\x52\x1d\xf3\xf2\x8c\x98\xdd\x4a\xa3\xe8\x83\x7d\x83\x51\x46\xc5\x53\xd6\x4b\x0f\x3e\xa0\xfa\x10\x59\xe9\xb3\xab\x41\x69\xa2\x9f\xd4\x1c\xaf\x3f\xf5\x6e\x91\xd3\x10\xe8\xb0\x1b\x24\x61\xe9\x9c\xab\x08\xd8\x0e\x31\x69\xaf\x29\x18\xde\x22\x12\x14\x2f\x66\xf3\x8c\x60\x13\x99\xf5\x3f\x72\x8b\x68\xe4\x67\x6e\x04\x8d\x8c\xca\x5c\x1b\x71\x49\xf2\x8e\xa4\xb6\xca\x19\x9f\x49\xcb\x06\x63\xc5\xf1\xc4\xda\x83\x73\xf7\x2b\x72\x2c\x65\x98\xb2\x0e\x9c\x42\x05\x58\xc9\x49\x1a\xce\xe4\x03\xcf\x13\x2e\x01\xd3\xbc\xd0\x90\x6f\x18\xae\x74\x5b\x46\x0f\x1c\x01\x87\x0e\x8d\xcc\x7b\x64\x5e\x4d\x0d\xa8\x9c\xf3\xff\x64\xfe\xf7\xf7\x7f\xfa\xbf\x01\x00\x00\xff\xff\x73\x28\x27\x08\xb2\xa7\x06\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: 438901, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 436146, 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/ProjectOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java index b5602ebc92..46bbaebc56 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java @@ -782,764 +782,6 @@ public flyteidl.admin.ProjectOuterClass.Domain getDefaultInstanceForType() { } - public interface ProjectIdentifierOrBuilder extends - // @@protoc_insertion_point(interface_extends:flyteidl.admin.ProjectIdentifier) - com.google.protobuf.MessageOrBuilder { - - /** - *
-     * Globally unique project name.
-     * 
- * - * string id = 1; - */ - java.lang.String getId(); - /** - *
-     * Globally unique project name.
-     * 
- * - * string id = 1; - */ - com.google.protobuf.ByteString - getIdBytes(); - - /** - *
-     * Optional, org key applied to the resource.
-     * 
- * - * string org = 2; - */ - java.lang.String getOrg(); - /** - *
-     * Optional, org key applied to the resource.
-     * 
- * - * string org = 2; - */ - com.google.protobuf.ByteString - getOrgBytes(); - } - /** - * Protobuf type {@code flyteidl.admin.ProjectIdentifier} - */ - public static final class ProjectIdentifier extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:flyteidl.admin.ProjectIdentifier) - ProjectIdentifierOrBuilder { - private static final long serialVersionUID = 0L; - // Use ProjectIdentifier.newBuilder() to construct. - private ProjectIdentifier(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private ProjectIdentifier() { - id_ = ""; - org_ = ""; - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ProjectIdentifier( - 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: { - java.lang.String s = input.readStringRequireUtf8(); - - id_ = s; - break; - } - case 18: { - java.lang.String s = input.readStringRequireUtf8(); - - org_ = 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.ProjectOuterClass.internal_static_flyteidl_admin_ProjectIdentifier_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return flyteidl.admin.ProjectOuterClass.internal_static_flyteidl_admin_ProjectIdentifier_fieldAccessorTable - .ensureFieldAccessorsInitialized( - flyteidl.admin.ProjectOuterClass.ProjectIdentifier.class, flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder.class); - } - - public static final int ID_FIELD_NUMBER = 1; - private volatile java.lang.Object id_; - /** - *
-     * Globally unique project name.
-     * 
- * - * string id = 1; - */ - public java.lang.String getId() { - java.lang.Object ref = id_; - 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(); - id_ = s; - return s; - } - } - /** - *
-     * Globally unique project name.
-     * 
- * - * string id = 1; - */ - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ORG_FIELD_NUMBER = 2; - private volatile java.lang.Object org_; - /** - *
-     * Optional, org key applied to the resource.
-     * 
- * - * string org = 2; - */ - public java.lang.String getOrg() { - java.lang.Object ref = org_; - 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(); - org_ = s; - return s; - } - } - /** - *
-     * Optional, org key applied to the resource.
-     * 
- * - * string org = 2; - */ - public com.google.protobuf.ByteString - getOrgBytes() { - java.lang.Object ref = org_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - org_ = 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 (!getIdBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); - } - if (!getOrgBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, org_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!getIdBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); - } - if (!getOrgBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, org_); - } - 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.ProjectOuterClass.ProjectIdentifier)) { - return super.equals(obj); - } - flyteidl.admin.ProjectOuterClass.ProjectIdentifier other = (flyteidl.admin.ProjectOuterClass.ProjectIdentifier) obj; - - if (!getId() - .equals(other.getId())) return false; - if (!getOrg() - .equals(other.getOrg())) 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) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId().hashCode(); - hash = (37 * hash) + ORG_FIELD_NUMBER; - hash = (53 * hash) + getOrg().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier 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.ProjectOuterClass.ProjectIdentifier parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier 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.ProjectOuterClass.ProjectIdentifier parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier 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.ProjectOuterClass.ProjectIdentifier parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier 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.ProjectOuterClass.ProjectIdentifier 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.ProjectIdentifier} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:flyteidl.admin.ProjectIdentifier) - flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return flyteidl.admin.ProjectOuterClass.internal_static_flyteidl_admin_ProjectIdentifier_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return flyteidl.admin.ProjectOuterClass.internal_static_flyteidl_admin_ProjectIdentifier_fieldAccessorTable - .ensureFieldAccessorsInitialized( - flyteidl.admin.ProjectOuterClass.ProjectIdentifier.class, flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder.class); - } - - // Construct using flyteidl.admin.ProjectOuterClass.ProjectIdentifier.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(); - id_ = ""; - - org_ = ""; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return flyteidl.admin.ProjectOuterClass.internal_static_flyteidl_admin_ProjectIdentifier_descriptor; - } - - @java.lang.Override - public flyteidl.admin.ProjectOuterClass.ProjectIdentifier getDefaultInstanceForType() { - return flyteidl.admin.ProjectOuterClass.ProjectIdentifier.getDefaultInstance(); - } - - @java.lang.Override - public flyteidl.admin.ProjectOuterClass.ProjectIdentifier build() { - flyteidl.admin.ProjectOuterClass.ProjectIdentifier result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public flyteidl.admin.ProjectOuterClass.ProjectIdentifier buildPartial() { - flyteidl.admin.ProjectOuterClass.ProjectIdentifier result = new flyteidl.admin.ProjectOuterClass.ProjectIdentifier(this); - result.id_ = id_; - result.org_ = org_; - 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.ProjectOuterClass.ProjectIdentifier) { - return mergeFrom((flyteidl.admin.ProjectOuterClass.ProjectIdentifier)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(flyteidl.admin.ProjectOuterClass.ProjectIdentifier other) { - if (other == flyteidl.admin.ProjectOuterClass.ProjectIdentifier.getDefaultInstance()) return this; - if (!other.getId().isEmpty()) { - id_ = other.id_; - onChanged(); - } - if (!other.getOrg().isEmpty()) { - org_ = other.org_; - 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.ProjectOuterClass.ProjectIdentifier parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (flyteidl.admin.ProjectOuterClass.ProjectIdentifier) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private java.lang.Object id_ = ""; - /** - *
-       * Globally unique project name.
-       * 
- * - * string id = 1; - */ - public java.lang.String getId() { - java.lang.Object ref = id_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-       * Globally unique project name.
-       * 
- * - * string id = 1; - */ - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-       * Globally unique project name.
-       * 
- * - * string id = 1; - */ - public Builder setId( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - id_ = value; - onChanged(); - return this; - } - /** - *
-       * Globally unique project name.
-       * 
- * - * string id = 1; - */ - public Builder clearId() { - - id_ = getDefaultInstance().getId(); - onChanged(); - return this; - } - /** - *
-       * Globally unique project name.
-       * 
- * - * string id = 1; - */ - public Builder setIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - id_ = value; - onChanged(); - return this; - } - - private java.lang.Object org_ = ""; - /** - *
-       * Optional, org key applied to the resource.
-       * 
- * - * string org = 2; - */ - public java.lang.String getOrg() { - java.lang.Object ref = org_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - org_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-       * Optional, org key applied to the resource.
-       * 
- * - * string org = 2; - */ - public com.google.protobuf.ByteString - getOrgBytes() { - java.lang.Object ref = org_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - org_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-       * Optional, org key applied to the resource.
-       * 
- * - * string org = 2; - */ - public Builder setOrg( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - org_ = value; - onChanged(); - return this; - } - /** - *
-       * Optional, org key applied to the resource.
-       * 
- * - * string org = 2; - */ - public Builder clearOrg() { - - org_ = getDefaultInstance().getOrg(); - onChanged(); - return this; - } - /** - *
-       * Optional, org key applied to the resource.
-       * 
- * - * string org = 2; - */ - public Builder setOrgBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - org_ = 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.ProjectIdentifier) - } - - // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectIdentifier) - private static final flyteidl.admin.ProjectOuterClass.ProjectIdentifier DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new flyteidl.admin.ProjectOuterClass.ProjectIdentifier(); - } - - public static flyteidl.admin.ProjectOuterClass.ProjectIdentifier getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ProjectIdentifier parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ProjectIdentifier(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.ProjectOuterClass.ProjectIdentifier getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - public interface ProjectOrBuilder extends // @@protoc_insertion_point(interface_extends:flyteidl.admin.Project) com.google.protobuf.MessageOrBuilder { @@ -1550,18 +792,18 @@ public interface ProjectOrBuilder extends * Globally unique project name. *
* - * string id = 1 [deprecated = true]; + * string id = 1; */ - @java.lang.Deprecated java.lang.String getId(); + java.lang.String getId(); /** *
      * Deprecated, use identifier instead.
      * Globally unique project name.
      * 
* - * string id = 1 [deprecated = true]; + * string id = 1; */ - @java.lang.Deprecated com.google.protobuf.ByteString + com.google.protobuf.ByteString getIdBytes(); /** @@ -1655,28 +897,21 @@ flyteidl.admin.ProjectOuterClass.DomainOrBuilder getDomainsOrBuilder( /** *
-     * Optional, org key applied to the project.
-     * 
- * - * .flyteidl.admin.ProjectIdentifier identifier = 7; - */ - boolean hasIdentifier(); - /** - *
-     * Optional, org key applied to the project.
+     * Optional, org key applied to the resource.
      * 
* - * .flyteidl.admin.ProjectIdentifier identifier = 7; + * string org = 7; */ - flyteidl.admin.ProjectOuterClass.ProjectIdentifier getIdentifier(); + java.lang.String getOrg(); /** *
-     * Optional, org key applied to the project.
+     * Optional, org key applied to the resource.
      * 
* - * .flyteidl.admin.ProjectIdentifier identifier = 7; + * string org = 7; */ - flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder getIdentifierOrBuilder(); + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -1700,6 +935,7 @@ private Project() {
       domains_ = java.util.Collections.emptyList();
       description_ = "";
       state_ = 0;
+      org_ = "";
     }
 
     @java.lang.Override
@@ -1773,16 +1009,9 @@ private Project(
               break;
             }
             case 58: {
-              flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder subBuilder = null;
-              if (identifier_ != null) {
-                subBuilder = identifier_.toBuilder();
-              }
-              identifier_ = input.readMessage(flyteidl.admin.ProjectOuterClass.ProjectIdentifier.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(identifier_);
-                identifier_ = subBuilder.buildPartial();
-              }
+              java.lang.String s = input.readStringRequireUtf8();
 
+              org_ = s;
               break;
             }
             default: {
@@ -1964,9 +1193,9 @@ private ProjectState(int value) {
      * Globally unique project name.
      * 
* - * string id = 1 [deprecated = true]; + * string id = 1; */ - @java.lang.Deprecated public java.lang.String getId() { + public java.lang.String getId() { java.lang.Object ref = id_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; @@ -1984,9 +1213,9 @@ private ProjectState(int value) { * Globally unique project name. *
* - * string id = 1 [deprecated = true]; + * string id = 1; */ - @java.lang.Deprecated public com.google.protobuf.ByteString + public com.google.protobuf.ByteString getIdBytes() { java.lang.Object ref = id_; if (ref instanceof java.lang.String) { @@ -2164,37 +1393,46 @@ public flyteidl.admin.ProjectOuterClass.Project.ProjectState getState() { return result == null ? flyteidl.admin.ProjectOuterClass.Project.ProjectState.UNRECOGNIZED : result; } - public static final int IDENTIFIER_FIELD_NUMBER = 7; - private flyteidl.admin.ProjectOuterClass.ProjectIdentifier identifier_; - /** - *
-     * Optional, org key applied to the project.
-     * 
- * - * .flyteidl.admin.ProjectIdentifier identifier = 7; - */ - public boolean hasIdentifier() { - return identifier_ != null; - } + public static final int ORG_FIELD_NUMBER = 7; + private volatile java.lang.Object org_; /** *
-     * Optional, org key applied to the project.
+     * Optional, org key applied to the resource.
      * 
* - * .flyteidl.admin.ProjectIdentifier identifier = 7; + * string org = 7; */ - public flyteidl.admin.ProjectOuterClass.ProjectIdentifier getIdentifier() { - return identifier_ == null ? flyteidl.admin.ProjectOuterClass.ProjectIdentifier.getDefaultInstance() : identifier_; + public java.lang.String getOrg() { + java.lang.Object ref = org_; + 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(); + org_ = s; + return s; + } } /** *
-     * Optional, org key applied to the project.
+     * Optional, org key applied to the resource.
      * 
* - * .flyteidl.admin.ProjectIdentifier identifier = 7; + * string org = 7; */ - public flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder getIdentifierOrBuilder() { - return getIdentifier(); + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } private byte memoizedIsInitialized = -1; @@ -2229,8 +1467,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (state_ != flyteidl.admin.ProjectOuterClass.Project.ProjectState.ACTIVE.getNumber()) { output.writeEnum(6, state_); } - if (identifier_ != null) { - output.writeMessage(7, getIdentifier()); + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, org_); } unknownFields.writeTo(output); } @@ -2262,9 +1500,8 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(6, state_); } - if (identifier_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, getIdentifier()); + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, org_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -2295,11 +1532,8 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getLabels())) return false; } if (state_ != other.state_) return false; - if (hasIdentifier() != other.hasIdentifier()) return false; - if (hasIdentifier()) { - if (!getIdentifier() - .equals(other.getIdentifier())) return false; - } + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -2327,10 +1561,8 @@ public int hashCode() { } hash = (37 * hash) + STATE_FIELD_NUMBER; hash = (53 * hash) + state_; - if (hasIdentifier()) { - hash = (37 * hash) + IDENTIFIER_FIELD_NUMBER; - hash = (53 * hash) + getIdentifier().hashCode(); - } + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -2489,12 +1721,8 @@ public Builder clear() { } state_ = 0; - if (identifierBuilder_ == null) { - identifier_ = null; - } else { - identifier_ = null; - identifierBuilder_ = null; - } + org_ = ""; + return this; } @@ -2541,11 +1769,7 @@ public flyteidl.admin.ProjectOuterClass.Project buildPartial() { result.labels_ = labelsBuilder_.build(); } result.state_ = state_; - if (identifierBuilder_ == null) { - result.identifier_ = identifier_; - } else { - result.identifier_ = identifierBuilder_.build(); - } + result.org_ = org_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -2639,8 +1863,9 @@ public Builder mergeFrom(flyteidl.admin.ProjectOuterClass.Project other) { if (other.state_ != 0) { setStateValue(other.getStateValue()); } - if (other.hasIdentifier()) { - mergeIdentifier(other.getIdentifier()); + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); } this.mergeUnknownFields(other.unknownFields); onChanged(); @@ -2679,9 +1904,9 @@ public Builder mergeFrom( * Globally unique project name. *
* - * string id = 1 [deprecated = true]; + * string id = 1; */ - @java.lang.Deprecated public java.lang.String getId() { + public java.lang.String getId() { java.lang.Object ref = id_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = @@ -2699,9 +1924,9 @@ public Builder mergeFrom( * Globally unique project name. *
* - * string id = 1 [deprecated = true]; + * string id = 1; */ - @java.lang.Deprecated public com.google.protobuf.ByteString + public com.google.protobuf.ByteString getIdBytes() { java.lang.Object ref = id_; if (ref instanceof String) { @@ -2720,9 +1945,9 @@ public Builder mergeFrom( * Globally unique project name. *
* - * string id = 1 [deprecated = true]; + * string id = 1; */ - @java.lang.Deprecated public Builder setId( + public Builder setId( java.lang.String value) { if (value == null) { throw new NullPointerException(); @@ -2738,9 +1963,9 @@ public Builder mergeFrom( * Globally unique project name. *
* - * string id = 1 [deprecated = true]; + * string id = 1; */ - @java.lang.Deprecated public Builder clearId() { + public Builder clearId() { id_ = getDefaultInstance().getId(); onChanged(); @@ -2752,9 +1977,9 @@ public Builder mergeFrom( * Globally unique project name. *
* - * string id = 1 [deprecated = true]; + * string id = 1; */ - @java.lang.Deprecated public Builder setIdBytes( + public Builder setIdBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); @@ -3371,157 +2596,93 @@ public Builder clearState() { return this; } - private flyteidl.admin.ProjectOuterClass.ProjectIdentifier identifier_; - private com.google.protobuf.SingleFieldBuilderV3< - flyteidl.admin.ProjectOuterClass.ProjectIdentifier, flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder, flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder> identifierBuilder_; - /** - *
-       * Optional, org key applied to the project.
-       * 
- * - * .flyteidl.admin.ProjectIdentifier identifier = 7; - */ - public boolean hasIdentifier() { - return identifierBuilder_ != null || identifier_ != null; - } - /** - *
-       * Optional, org key applied to the project.
-       * 
- * - * .flyteidl.admin.ProjectIdentifier identifier = 7; - */ - public flyteidl.admin.ProjectOuterClass.ProjectIdentifier getIdentifier() { - if (identifierBuilder_ == null) { - return identifier_ == null ? flyteidl.admin.ProjectOuterClass.ProjectIdentifier.getDefaultInstance() : identifier_; - } else { - return identifierBuilder_.getMessage(); - } - } + private java.lang.Object org_ = ""; /** *
-       * Optional, org key applied to the project.
+       * Optional, org key applied to the resource.
        * 
* - * .flyteidl.admin.ProjectIdentifier identifier = 7; + * string org = 7; */ - public Builder setIdentifier(flyteidl.admin.ProjectOuterClass.ProjectIdentifier value) { - if (identifierBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - identifier_ = value; - onChanged(); + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; } else { - identifierBuilder_.setMessage(value); + return (java.lang.String) ref; } - - return this; } /** *
-       * Optional, org key applied to the project.
+       * Optional, org key applied to the resource.
        * 
* - * .flyteidl.admin.ProjectIdentifier identifier = 7; + * string org = 7; */ - public Builder setIdentifier( - flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder builderForValue) { - if (identifierBuilder_ == null) { - identifier_ = builderForValue.build(); - onChanged(); + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; } else { - identifierBuilder_.setMessage(builderForValue.build()); + return (com.google.protobuf.ByteString) ref; } - - return this; } /** *
-       * Optional, org key applied to the project.
+       * Optional, org key applied to the resource.
        * 
* - * .flyteidl.admin.ProjectIdentifier identifier = 7; + * string org = 7; */ - public Builder mergeIdentifier(flyteidl.admin.ProjectOuterClass.ProjectIdentifier value) { - if (identifierBuilder_ == null) { - if (identifier_ != null) { - identifier_ = - flyteidl.admin.ProjectOuterClass.ProjectIdentifier.newBuilder(identifier_).mergeFrom(value).buildPartial(); - } else { - identifier_ = value; - } - onChanged(); - } else { - identifierBuilder_.mergeFrom(value); - } - + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); return this; } /** *
-       * Optional, org key applied to the project.
+       * Optional, org key applied to the resource.
        * 
* - * .flyteidl.admin.ProjectIdentifier identifier = 7; + * string org = 7; */ - public Builder clearIdentifier() { - if (identifierBuilder_ == null) { - identifier_ = null; - onChanged(); - } else { - identifier_ = null; - identifierBuilder_ = null; - } - + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); return this; } /** *
-       * Optional, org key applied to the project.
+       * Optional, org key applied to the resource.
        * 
* - * .flyteidl.admin.ProjectIdentifier identifier = 7; + * string org = 7; */ - public flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder getIdentifierBuilder() { + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + org_ = value; onChanged(); - return getIdentifierFieldBuilder().getBuilder(); - } - /** - *
-       * Optional, org key applied to the project.
-       * 
- * - * .flyteidl.admin.ProjectIdentifier identifier = 7; - */ - public flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder getIdentifierOrBuilder() { - if (identifierBuilder_ != null) { - return identifierBuilder_.getMessageOrBuilder(); - } else { - return identifier_ == null ? - flyteidl.admin.ProjectOuterClass.ProjectIdentifier.getDefaultInstance() : identifier_; - } - } - /** - *
-       * Optional, org key applied to the project.
-       * 
- * - * .flyteidl.admin.ProjectIdentifier identifier = 7; - */ - private com.google.protobuf.SingleFieldBuilderV3< - flyteidl.admin.ProjectOuterClass.ProjectIdentifier, flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder, flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder> - getIdentifierFieldBuilder() { - if (identifierBuilder_ == null) { - identifierBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - flyteidl.admin.ProjectOuterClass.ProjectIdentifier, flyteidl.admin.ProjectOuterClass.ProjectIdentifier.Builder, flyteidl.admin.ProjectOuterClass.ProjectIdentifierOrBuilder>( - getIdentifier(), - getParentForChildren(), - isClean()); - identifier_ = null; - } - return identifierBuilder_; + return this; } @java.lang.Override public final Builder setUnknownFields( @@ -7231,11 +6392,6 @@ public flyteidl.admin.ProjectOuterClass.ProjectUpdateResponse getDefaultInstance private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_flyteidl_admin_Domain_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_ProjectIdentifier_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_ProjectIdentifier_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_flyteidl_admin_Project_descriptor; private static final @@ -7277,26 +6433,23 @@ public flyteidl.admin.ProjectOuterClass.ProjectUpdateResponse getDefaultInstance java.lang.String[] descriptorData = { "\n\034flyteidl/admin/project.proto\022\016flyteidl" + ".admin\032\033flyteidl/admin/common.proto\"\"\n\006D" + - "omain\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\",\n\021Proje" + - "ctIdentifier\022\n\n\002id\030\001 \001(\t\022\013\n\003org\030\002 \001(\t\"\271\002" + - "\n\007Project\022\016\n\002id\030\001 \001(\tB\002\030\001\022\014\n\004name\030\002 \001(\t\022" + - "\'\n\007domains\030\003 \003(\0132\026.flyteidl.admin.Domain" + - "\022\023\n\013description\030\004 \001(\t\022&\n\006labels\030\005 \001(\0132\026." + - "flyteidl.admin.Labels\0223\n\005state\030\006 \001(\0162$.f" + - "lyteidl.admin.Project.ProjectState\0225\n\nid" + - "entifier\030\007 \001(\0132!.flyteidl.admin.ProjectI" + - "dentifier\">\n\014ProjectState\022\n\n\006ACTIVE\020\000\022\014\n" + - "\010ARCHIVED\020\001\022\024\n\020SYSTEM_GENERATED\020\002\"D\n\010Pro" + - "jects\022)\n\010projects\030\001 \003(\0132\027.flyteidl.admin" + - ".Project\022\r\n\005token\030\002 \001(\t\"j\n\022ProjectListRe" + - "quest\022\r\n\005limit\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\022\017\n\007f" + - "ilters\030\003 \001(\t\022%\n\007sort_by\030\004 \001(\0132\024.flyteidl" + - ".admin.Sort\"B\n\026ProjectRegisterRequest\022(\n" + - "\007project\030\001 \001(\0132\027.flyteidl.admin.Project\"" + - "\031\n\027ProjectRegisterResponse\"\027\n\025ProjectUpd" + - "ateResponseB=Z;github.com/flyteorg/flyte" + - "/flyteidl/gen/pb-go/flyteidl/adminb\006prot" + - "o3" + "omain\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\"\213\002\n\007Proj" + + "ect\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\'\n\007domains" + + "\030\003 \003(\0132\026.flyteidl.admin.Domain\022\023\n\013descri" + + "ption\030\004 \001(\t\022&\n\006labels\030\005 \001(\0132\026.flyteidl.a" + + "dmin.Labels\0223\n\005state\030\006 \001(\0162$.flyteidl.ad" + + "min.Project.ProjectState\022\013\n\003org\030\007 \001(\t\">\n" + + "\014ProjectState\022\n\n\006ACTIVE\020\000\022\014\n\010ARCHIVED\020\001\022" + + "\024\n\020SYSTEM_GENERATED\020\002\"D\n\010Projects\022)\n\010pro" + + "jects\030\001 \003(\0132\027.flyteidl.admin.Project\022\r\n\005" + + "token\030\002 \001(\t\"j\n\022ProjectListRequest\022\r\n\005lim" + + "it\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\022\017\n\007filters\030\003 \001(\t" + + "\022%\n\007sort_by\030\004 \001(\0132\024.flyteidl.admin.Sort\"" + + "B\n\026ProjectRegisterRequest\022(\n\007project\030\001 \001" + + "(\0132\027.flyteidl.admin.Project\"\031\n\027ProjectRe" + + "gisterResponse\"\027\n\025ProjectUpdateResponseB" + + "=Z;github.com/flyteorg/flyte/flyteidl/ge" + + "n/pb-go/flyteidl/adminb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -7317,44 +6470,38 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_Domain_descriptor, new java.lang.String[] { "Id", "Name", }); - internal_static_flyteidl_admin_ProjectIdentifier_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_flyteidl_admin_ProjectIdentifier_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_flyteidl_admin_ProjectIdentifier_descriptor, - new java.lang.String[] { "Id", "Org", }); internal_static_flyteidl_admin_Project_descriptor = - getDescriptor().getMessageTypes().get(2); + getDescriptor().getMessageTypes().get(1); internal_static_flyteidl_admin_Project_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_Project_descriptor, - new java.lang.String[] { "Id", "Name", "Domains", "Description", "Labels", "State", "Identifier", }); + new java.lang.String[] { "Id", "Name", "Domains", "Description", "Labels", "State", "Org", }); internal_static_flyteidl_admin_Projects_descriptor = - getDescriptor().getMessageTypes().get(3); + getDescriptor().getMessageTypes().get(2); internal_static_flyteidl_admin_Projects_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_Projects_descriptor, new java.lang.String[] { "Projects", "Token", }); internal_static_flyteidl_admin_ProjectListRequest_descriptor = - getDescriptor().getMessageTypes().get(4); + getDescriptor().getMessageTypes().get(3); internal_static_flyteidl_admin_ProjectListRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectListRequest_descriptor, new java.lang.String[] { "Limit", "Token", "Filters", "SortBy", }); internal_static_flyteidl_admin_ProjectRegisterRequest_descriptor = - getDescriptor().getMessageTypes().get(5); + getDescriptor().getMessageTypes().get(4); internal_static_flyteidl_admin_ProjectRegisterRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectRegisterRequest_descriptor, new java.lang.String[] { "Project", }); internal_static_flyteidl_admin_ProjectRegisterResponse_descriptor = - getDescriptor().getMessageTypes().get(6); + getDescriptor().getMessageTypes().get(5); internal_static_flyteidl_admin_ProjectRegisterResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectRegisterResponse_descriptor, new java.lang.String[] { }); internal_static_flyteidl_admin_ProjectUpdateResponse_descriptor = - getDescriptor().getMessageTypes().get(7); + getDescriptor().getMessageTypes().get(6); internal_static_flyteidl_admin_ProjectUpdateResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectUpdateResponse_descriptor, diff --git a/flyteidl/gen/pb-java/flyteidl/service/Admin.java b/flyteidl/gen/pb-java/flyteidl/service/Admin.java index 2e774a4d5a..f353b78f35 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Admin.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Admin.java @@ -38,7 +38,7 @@ public static void registerAllExtensions( "admin/task_execution.proto\032\034flyteidl/adm" + "in/version.proto\032\033flyteidl/admin/common." + "proto\032\'flyteidl/admin/description_entity" + - ".proto2\245r\n\014AdminService\022m\n\nCreateTask\022!." + + ".proto2\371q\n\014AdminService\022m\n\nCreateTask\022!." + "flyteidl.admin.TaskCreateRequest\032\".flyte" + "idl.admin.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/a" + "pi/v1/tasks:\001*\022\330\001\n\007GetTask\022 .flyteidl.ad" + @@ -219,193 +219,192 @@ public static void registerAllExtensions( "on_id.name}/{id.node_id}\022\177\n\017RegisterProj" + "ect\022&.flyteidl.admin.ProjectRegisterRequ" + "est\032\'.flyteidl.admin.ProjectRegisterResp" + - "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\207\002\n\rUp" + + "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\333\001\n\rUp" + "dateProject\022\027.flyteidl.admin.Project\032%.f" + - "lyteidl.admin.ProjectUpdateResponse\"\265\001\202\323" + - "\344\223\002\256\001\032\025/api/v1/projects/{id}:\001*Z%\032 /api/" + - "v1/projects/{identifier.id}:\001*Z/\032*/api/v" + - "1/projects/org/{identifier.org}/{id}:\001*Z" + - ":\0325/api/v1/projects/org/{identifier.org}" + - "/{identifier.id}:\001*\022f\n\014ListProjects\022\".fl" + - "yteidl.admin.ProjectListRequest\032\030.flytei" + - "dl.admin.Projects\"\030\202\323\344\223\002\022\022\020/api/v1/proje" + - "cts\022\231\001\n\023CreateWorkflowEvent\022-.flyteidl.a" + - "dmin.WorkflowExecutionEventRequest\032..fly" + - "teidl.admin.WorkflowExecutionEventRespon" + - "se\"#\202\323\344\223\002\035\"\030/api/v1/events/workflows:\001*\022" + - "\211\001\n\017CreateNodeEvent\022).flyteidl.admin.Nod" + - "eExecutionEventRequest\032*.flyteidl.admin." + - "NodeExecutionEventResponse\"\037\202\323\344\223\002\031\"\024/api" + - "/v1/events/nodes:\001*\022\211\001\n\017CreateTaskEvent\022" + - ").flyteidl.admin.TaskExecutionEventReque" + - "st\032*.flyteidl.admin.TaskExecutionEventRe" + - "sponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/tasks:\001*\022" + - "\313\005\n\020GetTaskExecution\022\'.flyteidl.admin.Ta" + - "skExecutionGetRequest\032\035.flyteidl.admin.T" + - "askExecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1/task_ex" + - "ecutions/{id.node_execution_id.execution" + - "_id.project}/{id.node_execution_id.execu" + - "tion_id.domain}/{id.node_execution_id.ex" + - "ecution_id.name}/{id.node_execution_id.n" + - "ode_id}/{id.task_id.project}/{id.task_id" + - ".domain}/{id.task_id.name}/{id.task_id.v" + - "ersion}/{id.retry_attempt}Z\310\002\022\305\002/api/v1/" + - "task_executions/org/{id.node_execution_i" + - "d.execution_id.org}/{id.node_execution_i" + - "d.execution_id.project}/{id.node_executi" + - "on_id.execution_id.domain}/{id.node_exec" + - "ution_id.execution_id.name}/{id.node_exe" + - "cution_id.node_id}/{id.task_id.project}/" + - "{id.task_id.domain}/{id.task_id.name}/{i" + - "d.task_id.version}/{id.retry_attempt}\022\361\003" + - "\n\022ListTaskExecutions\022(.flyteidl.admin.Ta" + - "skExecutionListRequest\032!.flyteidl.admin." + - "TaskExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/api/v1/ta" + - "sk_executions/{node_execution_id.executi" + - "on_id.project}/{node_execution_id.execut" + - "ion_id.domain}/{node_execution_id.execut" + - "ion_id.name}/{node_execution_id.node_id}" + - "Z\326\001\022\323\001/api/v1/task_executions/org/{node_" + - "execution_id.execution_id.org}/{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}\022\354\005\n\024GetTaskExecutionDa" + - "ta\022+.flyteidl.admin.TaskExecutionGetData" + - "Request\032,.flyteidl.admin.TaskExecutionGe" + - "tDataResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v1/data/t" + - "ask_executions/{id.node_execution_id.exe" + - "cution_id.project}/{id.node_execution_id" + - ".execution_id.domain}/{id.node_execution" + - "_id.execution_id.name}/{id.node_executio" + - "n_id.node_id}/{id.task_id.project}/{id.t" + - "ask_id.domain}/{id.task_id.name}/{id.tas" + - "k_id.version}/{id.retry_attempt}Z\315\002\022\312\002/a" + - "pi/v1/data/task_executions/org/{id.node_" + - "execution_id.execution_id.org}/{id.node_" + - "execution_id.execution_id.project}/{id.n" + - "ode_execution_id.execution_id.domain}/{i" + - "d.node_execution_id.execution_id.name}/{" + - "id.node_execution_id.node_id}/{id.task_i" + - "d.project}/{id.task_id.domain}/{id.task_" + - "id.name}/{id.task_id.version}/{id.retry_" + - "attempt}\022\313\002\n\035UpdateProjectDomainAttribut" + - "es\0224.flyteidl.admin.ProjectDomainAttribu" + - "tesUpdateRequest\0325.flyteidl.admin.Projec" + - "tDomainAttributesUpdateResponse\"\274\001\202\323\344\223\002\265" + - "\001\032J/api/v1/project_domain_attributes/{at" + - "tributes.project}/{attributes.domain}:\001*" + - "Zd\032_/api/v1/project_domain_attributes/or" + - "g/{attributes.org}/{attributes.project}/" + - "{attributes.domain}:\001*\022\203\002\n\032GetProjectDom" + - "ainAttributes\0221.flyteidl.admin.ProjectDo" + - "mainAttributesGetRequest\0322.flyteidl.admi" + - "n.ProjectDomainAttributesGetResponse\"~\202\323" + - "\344\223\002x\0224/api/v1/project_domain_attributes/" + - "{project}/{domain}Z@\022>/api/v1/project_do" + - "main_attributes/org/{org}/{project}/{dom" + - "ain}\022\223\002\n\035DeleteProjectDomainAttributes\0224" + - ".flyteidl.admin.ProjectDomainAttributesD" + - "eleteRequest\0325.flyteidl.admin.ProjectDom" + - "ainAttributesDeleteResponse\"\204\001\202\323\344\223\002~*4/a" + - "pi/v1/project_domain_attributes/{project" + - "}/{domain}:\001*ZC*>/api/v1/project_domain_" + - "attributes/org/{org}/{project}/{domain}:" + - "\001*\022\212\002\n\027UpdateProjectAttributes\022..flyteid" + - "l.admin.ProjectAttributesUpdateRequest\032/" + - ".flyteidl.admin.ProjectAttributesUpdateR" + - "esponse\"\215\001\202\323\344\223\002\206\001\032//api/v1/project_attri" + - "butes/{attributes.project}:\001*ZP\032K/api/v1" + - "/project_domain_attributes/org/{attribut" + - "es.org}/{attributes.project}:\001*\022\330\001\n\024GetP" + - "rojectAttributes\022+.flyteidl.admin.Projec" + - "tAttributesGetRequest\032,.flyteidl.admin.P" + - "rojectAttributesGetResponse\"e\202\323\344\223\002_\022$/ap" + - "i/v1/project_attributes/{project}Z7\0225/ap" + - "i/v1/project_domain_attributes/org/{org}" + - "/{project}\022\347\001\n\027DeleteProjectAttributes\022." + - ".flyteidl.admin.ProjectAttributesDeleteR" + - "equest\032/.flyteidl.admin.ProjectAttribute" + - "sDeleteResponse\"k\202\323\344\223\002e*$/api/v1/project" + - "_attributes/{project}:\001*Z:*5/api/v1/proj" + - "ect_domain_attributes/org/{org}/{project" + - "}:\001*\022\334\002\n\030UpdateWorkflowAttributes\022/.flyt" + - "eidl.admin.WorkflowAttributesUpdateReque" + - "st\0320.flyteidl.admin.WorkflowAttributesUp" + - "dateResponse\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/workflow" + - "_attributes/{attributes.project}/{attrib" + - "utes.domain}/{attributes.workflow}:\001*Zt\032" + - "o/api/v1/workflow_attributes/org/{attrib" + - "utes.org}/{attributes.project}/{attribut" + - "es.domain}/{attributes.workflow}:\001*\022\200\002\n\025" + - "GetWorkflowAttributes\022,.flyteidl.admin.W" + - "orkflowAttributesGetRequest\032-.flyteidl.a" + - "dmin.WorkflowAttributesGetResponse\"\211\001\202\323\344" + - "\223\002\202\001\0229/api/v1/workflow_attributes/{proje" + - "ct}/{domain}/{workflow}ZE\022C/api/v1/workf" + - "low_attributes/org/{org}/{project}/{doma" + - "in}/{workflow}\022\217\002\n\030DeleteWorkflowAttribu" + - "tes\022/.flyteidl.admin.WorkflowAttributesD" + - "eleteRequest\0320.flyteidl.admin.WorkflowAt" + - "tributesDeleteResponse\"\217\001\202\323\344\223\002\210\001*9/api/v" + - "1/workflow_attributes/{project}/{domain}" + - "/{workflow}:\001*ZH*C/api/v1/workflow_attri" + - "butes/org/{org}/{project}/{domain}/{work" + - "flow}:\001*\022\240\001\n\027ListMatchableAttributes\022..f" + - "lyteidl.admin.ListMatchableAttributesReq" + - "uest\032/.flyteidl.admin.ListMatchableAttri" + - "butesResponse\"$\202\323\344\223\002\036\022\034/api/v1/matchable" + - "_attributes\022\350\001\n\021ListNamedEntities\022&.flyt" + - "eidl.admin.NamedEntityListRequest\032\037.flyt" + - "eidl.admin.NamedEntityList\"\211\001\202\323\344\223\002\202\001\0229/a" + - "pi/v1/named_entities/{resource_type}/{pr" + - "oject}/{domain}ZE\022C/api/v1/named_entitie" + - "s/{resource_type}/org/{org}/{project}/{d" + - "omain}\022\203\002\n\016GetNamedEntity\022%.flyteidl.adm" + - "in.NamedEntityGetRequest\032\033.flyteidl.admi" + - "n.NamedEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1/named_e" + - "ntities/{resource_type}/{id.project}/{id" + - ".domain}/{id.name}ZX\022V/api/v1/named_enti" + - "ties/{resource_type}/org/{id.org}/{id.pr" + - "oject}/{id.domain}/{id.name}\022\235\002\n\021UpdateN" + - "amedEntity\022(.flyteidl.admin.NamedEntityU" + - "pdateRequest\032).flyteidl.admin.NamedEntit" + - "yUpdateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/v1/named" + - "_entities/{resource_type}/{id.project}/{" + - "id.domain}/{id.name}:\001*Z[\032V/api/v1/named" + - "_entities/{resource_type}/org/{id.org}/{" + - "id.project}/{id.domain}/{id.name}:\001*\022l\n\n" + - "GetVersion\022!.flyteidl.admin.GetVersionRe" + - "quest\032\".flyteidl.admin.GetVersionRespons" + - "e\"\027\202\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024GetDescri" + - "ptionEntity\022 .flyteidl.admin.ObjectGetRe" + - "quest\032!.flyteidl.admin.DescriptionEntity" + - "\"\330\001\202\323\344\223\002\321\001\022_/api/v1/description_entities" + - "/{id.resource_type}/{id.project}/{id.dom" + - "ain}/{id.name}/{id.version}Zn\022l/api/v1/d" + - "escription_entities/org/{id.org}/{id.res" + - "ource_type}/{id.project}/{id.domain}/{id" + - ".name}/{id.version}\022\310\003\n\027ListDescriptionE" + - "ntities\022,.flyteidl.admin.DescriptionEnti" + - "tyListRequest\032%.flyteidl.admin.Descripti" + - "onEntityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/descript" + - "ion_entities/{resource_type}/{id.project" + - "}/{id.domain}/{id.name}Z^\022\\/api/v1/descr" + - "iption_entities/{resource_type}/org/{id." + - "org}/{id.project}/{id.domain}/{id.name}Z" + - "G\022E/api/v1/description_entities/{resourc" + - "e_type}/{id.project}/{id.domain}ZT\022R/api" + - "/v1/description_entities/{resource_type}" + - "/org/{id.org}/{id.project}/{id.domain}\022\225" + - "\002\n\023GetExecutionMetrics\0222.flyteidl.admin." + - "WorkflowExecutionGetMetricsRequest\0323.fly" + - "teidl.admin.WorkflowExecutionGetMetricsR" + - "esponse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metrics/execu" + - "tions/{id.project}/{id.domain}/{id.name}" + - "ZL\022J/api/v1/metrics/executions/org/{id.o" + - "rg}/{id.project}/{id.domain}/{id.name}B?" + - "Z=github.com/flyteorg/flyte/flyteidl/gen" + - "/pb-go/flyteidl/serviceb\006proto3" + "lyteidl.admin.ProjectUpdateResponse\"\211\001\202\323" + + "\344\223\002\202\001\032\025/api/v1/projects/{id}:\001*Z\032\032\025/api/" + + "v1/projects/{id}:\001*Z$\032\037/api/v1/projects/" + + "org/{org}/{id}:\001*Z$\032\037/api/v1/projects/or" + + "g/{org}/{id}:\001*\022f\n\014ListProjects\022\".flytei" + + "dl.admin.ProjectListRequest\032\030.flyteidl.a" + + "dmin.Projects\"\030\202\323\344\223\002\022\022\020/api/v1/projects\022" + + "\231\001\n\023CreateWorkflowEvent\022-.flyteidl.admin" + + ".WorkflowExecutionEventRequest\032..flyteid" + + "l.admin.WorkflowExecutionEventResponse\"#" + + "\202\323\344\223\002\035\"\030/api/v1/events/workflows:\001*\022\211\001\n\017" + + "CreateNodeEvent\022).flyteidl.admin.NodeExe" + + "cutionEventRequest\032*.flyteidl.admin.Node" + + "ExecutionEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/" + + "events/nodes:\001*\022\211\001\n\017CreateTaskEvent\022).fl" + + "yteidl.admin.TaskExecutionEventRequest\032*" + + ".flyteidl.admin.TaskExecutionEventRespon" + + "se\"\037\202\323\344\223\002\031\"\024/api/v1/events/tasks:\001*\022\313\005\n\020" + + "GetTaskExecution\022\'.flyteidl.admin.TaskEx" + + "ecutionGetRequest\032\035.flyteidl.admin.TaskE" + + "xecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1/task_execut" + + "ions/{id.node_execution_id.execution_id." + + "project}/{id.node_execution_id.execution" + + "_id.domain}/{id.node_execution_id.execut" + + "ion_id.name}/{id.node_execution_id.node_" + + "id}/{id.task_id.project}/{id.task_id.dom" + + "ain}/{id.task_id.name}/{id.task_id.versi" + + "on}/{id.retry_attempt}Z\310\002\022\305\002/api/v1/task" + + "_executions/org/{id.node_execution_id.ex" + + "ecution_id.org}/{id.node_execution_id.ex" + + "ecution_id.project}/{id.node_execution_i" + + "d.execution_id.domain}/{id.node_executio" + + "n_id.execution_id.name}/{id.node_executi" + + "on_id.node_id}/{id.task_id.project}/{id." + + "task_id.domain}/{id.task_id.name}/{id.ta" + + "sk_id.version}/{id.retry_attempt}\022\361\003\n\022Li" + + "stTaskExecutions\022(.flyteidl.admin.TaskEx" + + "ecutionListRequest\032!.flyteidl.admin.Task" + + "ExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/api/v1/task_e" + + "xecutions/{node_execution_id.execution_i" + + "d.project}/{node_execution_id.execution_" + + "id.domain}/{node_execution_id.execution_" + + "id.name}/{node_execution_id.node_id}Z\326\001\022" + + "\323\001/api/v1/task_executions/org/{node_exec" + + "ution_id.execution_id.org}/{node_executi" + + "on_id.execution_id.project}/{node_execut" + + "ion_id.execution_id.domain}/{node_execut" + + "ion_id.execution_id.name}/{node_executio" + + "n_id.node_id}\022\354\005\n\024GetTaskExecutionData\022+" + + ".flyteidl.admin.TaskExecutionGetDataRequ" + + "est\032,.flyteidl.admin.TaskExecutionGetDat" + + "aResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v1/data/task_" + + "executions/{id.node_execution_id.executi" + + "on_id.project}/{id.node_execution_id.exe" + + "cution_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}Z\315\002\022\312\002/api/v" + + "1/data/task_executions/org/{id.node_exec" + + "ution_id.execution_id.org}/{id.node_exec" + + "ution_id.execution_id.project}/{id.node_" + + "execution_id.execution_id.domain}/{id.no" + + "de_execution_id.execution_id.name}/{id.n" + + "ode_execution_id.node_id}/{id.task_id.pr" + + "oject}/{id.task_id.domain}/{id.task_id.n" + + "ame}/{id.task_id.version}/{id.retry_atte" + + "mpt}\022\313\002\n\035UpdateProjectDomainAttributes\0224" + + ".flyteidl.admin.ProjectDomainAttributesU" + + "pdateRequest\0325.flyteidl.admin.ProjectDom" + + "ainAttributesUpdateResponse\"\274\001\202\323\344\223\002\265\001\032J/" + + "api/v1/project_domain_attributes/{attrib" + + "utes.project}/{attributes.domain}:\001*Zd\032_" + + "/api/v1/project_domain_attributes/org/{a" + + "ttributes.org}/{attributes.project}/{att" + + "ributes.domain}:\001*\022\203\002\n\032GetProjectDomainA" + + "ttributes\0221.flyteidl.admin.ProjectDomain" + + "AttributesGetRequest\0322.flyteidl.admin.Pr" + + "ojectDomainAttributesGetResponse\"~\202\323\344\223\002x" + + "\0224/api/v1/project_domain_attributes/{pro" + + "ject}/{domain}Z@\022>/api/v1/project_domain" + + "_attributes/org/{org}/{project}/{domain}" + + "\022\223\002\n\035DeleteProjectDomainAttributes\0224.fly" + + "teidl.admin.ProjectDomainAttributesDelet" + + "eRequest\0325.flyteidl.admin.ProjectDomainA" + + "ttributesDeleteResponse\"\204\001\202\323\344\223\002~*4/api/v" + + "1/project_domain_attributes/{project}/{d" + + "omain}:\001*ZC*>/api/v1/project_domain_attr" + + "ibutes/org/{org}/{project}/{domain}:\001*\022\212" + + "\002\n\027UpdateProjectAttributes\022..flyteidl.ad" + + "min.ProjectAttributesUpdateRequest\032/.fly" + + "teidl.admin.ProjectAttributesUpdateRespo" + + "nse\"\215\001\202\323\344\223\002\206\001\032//api/v1/project_attribute" + + "s/{attributes.project}:\001*ZP\032K/api/v1/pro" + + "ject_domain_attributes/org/{attributes.o" + + "rg}/{attributes.project}:\001*\022\330\001\n\024GetProje" + + "ctAttributes\022+.flyteidl.admin.ProjectAtt" + + "ributesGetRequest\032,.flyteidl.admin.Proje" + + "ctAttributesGetResponse\"e\202\323\344\223\002_\022$/api/v1" + + "/project_attributes/{project}Z7\0225/api/v1" + + "/project_domain_attributes/org/{org}/{pr" + + "oject}\022\347\001\n\027DeleteProjectAttributes\022..fly" + + "teidl.admin.ProjectAttributesDeleteReque" + + "st\032/.flyteidl.admin.ProjectAttributesDel" + + "eteResponse\"k\202\323\344\223\002e*$/api/v1/project_att" + + "ributes/{project}:\001*Z:*5/api/v1/project_" + + "domain_attributes/org/{org}/{project}:\001*" + + "\022\334\002\n\030UpdateWorkflowAttributes\022/.flyteidl" + + ".admin.WorkflowAttributesUpdateRequest\0320" + + ".flyteidl.admin.WorkflowAttributesUpdate" + + "Response\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/workflow_att" + + "ributes/{attributes.project}/{attributes" + + ".domain}/{attributes.workflow}:\001*Zt\032o/ap" + + "i/v1/workflow_attributes/org/{attributes" + + ".org}/{attributes.project}/{attributes.d" + + "omain}/{attributes.workflow}:\001*\022\200\002\n\025GetW" + + "orkflowAttributes\022,.flyteidl.admin.Workf" + + "lowAttributesGetRequest\032-.flyteidl.admin" + + ".WorkflowAttributesGetResponse\"\211\001\202\323\344\223\002\202\001" + + "\0229/api/v1/workflow_attributes/{project}/" + + "{domain}/{workflow}ZE\022C/api/v1/workflow_" + + "attributes/org/{org}/{project}/{domain}/" + + "{workflow}\022\217\002\n\030DeleteWorkflowAttributes\022" + + "/.flyteidl.admin.WorkflowAttributesDelet" + + "eRequest\0320.flyteidl.admin.WorkflowAttrib" + + "utesDeleteResponse\"\217\001\202\323\344\223\002\210\001*9/api/v1/wo" + + "rkflow_attributes/{project}/{domain}/{wo" + + "rkflow}:\001*ZH*C/api/v1/workflow_attribute" + + "s/org/{org}/{project}/{domain}/{workflow" + + "}:\001*\022\240\001\n\027ListMatchableAttributes\022..flyte" + + "idl.admin.ListMatchableAttributesRequest" + + "\032/.flyteidl.admin.ListMatchableAttribute" + + "sResponse\"$\202\323\344\223\002\036\022\034/api/v1/matchable_att" + + "ributes\022\350\001\n\021ListNamedEntities\022&.flyteidl" + + ".admin.NamedEntityListRequest\032\037.flyteidl" + + ".admin.NamedEntityList\"\211\001\202\323\344\223\002\202\001\0229/api/v" + + "1/named_entities/{resource_type}/{projec" + + "t}/{domain}ZE\022C/api/v1/named_entities/{r" + + "esource_type}/org/{org}/{project}/{domai" + + "n}\022\203\002\n\016GetNamedEntity\022%.flyteidl.admin.N" + + "amedEntityGetRequest\032\033.flyteidl.admin.Na" + + "medEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1/named_entit" + + "ies/{resource_type}/{id.project}/{id.dom" + + "ain}/{id.name}ZX\022V/api/v1/named_entities" + + "/{resource_type}/org/{id.org}/{id.projec" + + "t}/{id.domain}/{id.name}\022\235\002\n\021UpdateNamed" + + "Entity\022(.flyteidl.admin.NamedEntityUpdat" + + "eRequest\032).flyteidl.admin.NamedEntityUpd" + + "ateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/v1/named_ent" + + "ities/{resource_type}/{id.project}/{id.d" + + "omain}/{id.name}:\001*Z[\032V/api/v1/named_ent" + + "ities/{resource_type}/org/{id.org}/{id.p" + + "roject}/{id.domain}/{id.name}:\001*\022l\n\nGetV" + + "ersion\022!.flyteidl.admin.GetVersionReques" + + "t\032\".flyteidl.admin.GetVersionResponse\"\027\202" + + "\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024GetDescriptio" + + "nEntity\022 .flyteidl.admin.ObjectGetReques" + + "t\032!.flyteidl.admin.DescriptionEntity\"\330\001\202" + + "\323\344\223\002\321\001\022_/api/v1/description_entities/{id" + + ".resource_type}/{id.project}/{id.domain}" + + "/{id.name}/{id.version}Zn\022l/api/v1/descr" + + "iption_entities/org/{id.org}/{id.resourc" + + "e_type}/{id.project}/{id.domain}/{id.nam" + + "e}/{id.version}\022\310\003\n\027ListDescriptionEntit" + + "ies\022,.flyteidl.admin.DescriptionEntityLi" + + "stRequest\032%.flyteidl.admin.DescriptionEn" + + "tityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/description_" + + "entities/{resource_type}/{id.project}/{i" + + "d.domain}/{id.name}Z^\022\\/api/v1/descripti" + + "on_entities/{resource_type}/org/{id.org}" + + "/{id.project}/{id.domain}/{id.name}ZG\022E/" + + "api/v1/description_entities/{resource_ty" + + "pe}/{id.project}/{id.domain}ZT\022R/api/v1/" + + "description_entities/{resource_type}/org" + + "/{id.org}/{id.project}/{id.domain}\022\225\002\n\023G" + + "etExecutionMetrics\0222.flyteidl.admin.Work" + + "flowExecutionGetMetricsRequest\0323.flyteid" + + "l.admin.WorkflowExecutionGetMetricsRespo" + + "nse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metrics/execution" + + "s/{id.project}/{id.domain}/{id.name}ZL\022J" + + "/api/v1/metrics/executions/org/{id.org}/" + + "{id.project}/{id.domain}/{id.name}B?Z=gi" + + "thub.com/flyteorg/flyte/flyteidl/gen/pb-" + + "go/flyteidl/serviceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index add3966bb7..c4b461d11e 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -16264,64 +16264,6 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a ProjectIdentifier. */ - interface IProjectIdentifier { - - /** ProjectIdentifier id */ - id?: (string|null); - - /** ProjectIdentifier org */ - org?: (string|null); - } - - /** Represents a ProjectIdentifier. */ - class ProjectIdentifier implements IProjectIdentifier { - - /** - * Constructs a new ProjectIdentifier. - * @param [properties] Properties to set - */ - constructor(properties?: flyteidl.admin.IProjectIdentifier); - - /** ProjectIdentifier id. */ - public id: string; - - /** ProjectIdentifier org. */ - public org: string; - - /** - * Creates a new ProjectIdentifier instance using the specified properties. - * @param [properties] Properties to set - * @returns ProjectIdentifier instance - */ - public static create(properties?: flyteidl.admin.IProjectIdentifier): flyteidl.admin.ProjectIdentifier; - - /** - * Encodes the specified ProjectIdentifier message. Does not implicitly {@link flyteidl.admin.ProjectIdentifier.verify|verify} messages. - * @param message ProjectIdentifier message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: flyteidl.admin.IProjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ProjectIdentifier message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ProjectIdentifier - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ProjectIdentifier; - - /** - * Verifies a ProjectIdentifier message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - } - /** Properties of a Project. */ interface IProject { @@ -16343,8 +16285,8 @@ export namespace flyteidl { /** Project state */ state?: (flyteidl.admin.Project.ProjectState|null); - /** Project identifier */ - identifier?: (flyteidl.admin.IProjectIdentifier|null); + /** Project org */ + org?: (string|null); } /** Represents a Project. */ @@ -16374,8 +16316,8 @@ export namespace flyteidl { /** Project state. */ public state: flyteidl.admin.Project.ProjectState; - /** Project identifier. */ - public identifier?: (flyteidl.admin.IProjectIdentifier|null); + /** Project org. */ + public org: string; /** * Creates a new Project instance using the specified properties. diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index 78392bf735..3a896bc0fd 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -39354,133 +39354,6 @@ return Domain; })(); - admin.ProjectIdentifier = (function() { - - /** - * Properties of a ProjectIdentifier. - * @memberof flyteidl.admin - * @interface IProjectIdentifier - * @property {string|null} [id] ProjectIdentifier id - * @property {string|null} [org] ProjectIdentifier org - */ - - /** - * Constructs a new ProjectIdentifier. - * @memberof flyteidl.admin - * @classdesc Represents a ProjectIdentifier. - * @implements IProjectIdentifier - * @constructor - * @param {flyteidl.admin.IProjectIdentifier=} [properties] Properties to set - */ - function ProjectIdentifier(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * ProjectIdentifier id. - * @member {string} id - * @memberof flyteidl.admin.ProjectIdentifier - * @instance - */ - ProjectIdentifier.prototype.id = ""; - - /** - * ProjectIdentifier org. - * @member {string} org - * @memberof flyteidl.admin.ProjectIdentifier - * @instance - */ - ProjectIdentifier.prototype.org = ""; - - /** - * Creates a new ProjectIdentifier instance using the specified properties. - * @function create - * @memberof flyteidl.admin.ProjectIdentifier - * @static - * @param {flyteidl.admin.IProjectIdentifier=} [properties] Properties to set - * @returns {flyteidl.admin.ProjectIdentifier} ProjectIdentifier instance - */ - ProjectIdentifier.create = function create(properties) { - return new ProjectIdentifier(properties); - }; - - /** - * Encodes the specified ProjectIdentifier message. Does not implicitly {@link flyteidl.admin.ProjectIdentifier.verify|verify} messages. - * @function encode - * @memberof flyteidl.admin.ProjectIdentifier - * @static - * @param {flyteidl.admin.IProjectIdentifier} message ProjectIdentifier message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ProjectIdentifier.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.id != null && message.hasOwnProperty("id")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.id); - if (message.org != null && message.hasOwnProperty("org")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.org); - return writer; - }; - - /** - * Decodes a ProjectIdentifier message from the specified reader or buffer. - * @function decode - * @memberof flyteidl.admin.ProjectIdentifier - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.ProjectIdentifier} ProjectIdentifier - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ProjectIdentifier.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ProjectIdentifier(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.id = reader.string(); - break; - case 2: - message.org = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Verifies a ProjectIdentifier message. - * @function verify - * @memberof flyteidl.admin.ProjectIdentifier - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ProjectIdentifier.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) - if (!$util.isString(message.id)) - return "id: string expected"; - if (message.org != null && message.hasOwnProperty("org")) - if (!$util.isString(message.org)) - return "org: string expected"; - return null; - }; - - return ProjectIdentifier; - })(); - admin.Project = (function() { /** @@ -39493,7 +39366,7 @@ * @property {string|null} [description] Project description * @property {flyteidl.admin.ILabels|null} [labels] Project labels * @property {flyteidl.admin.Project.ProjectState|null} [state] Project state - * @property {flyteidl.admin.IProjectIdentifier|null} [identifier] Project identifier + * @property {string|null} [org] Project org */ /** @@ -39561,12 +39434,12 @@ Project.prototype.state = 0; /** - * Project identifier. - * @member {flyteidl.admin.IProjectIdentifier|null|undefined} identifier + * Project org. + * @member {string} org * @memberof flyteidl.admin.Project * @instance */ - Project.prototype.identifier = null; + Project.prototype.org = ""; /** * Creates a new Project instance using the specified properties. @@ -39605,8 +39478,8 @@ $root.flyteidl.admin.Labels.encode(message.labels, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); if (message.state != null && message.hasOwnProperty("state")) writer.uint32(/* id 6, wireType 0 =*/48).int32(message.state); - if (message.identifier != null && message.hasOwnProperty("identifier")) - $root.flyteidl.admin.ProjectIdentifier.encode(message.identifier, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.org); return writer; }; @@ -39649,7 +39522,7 @@ message.state = reader.int32(); break; case 7: - message.identifier = $root.flyteidl.admin.ProjectIdentifier.decode(reader, reader.uint32()); + message.org = reader.string(); break; default: reader.skipType(tag & 7); @@ -39702,11 +39575,9 @@ case 2: break; } - if (message.identifier != null && message.hasOwnProperty("identifier")) { - var error = $root.flyteidl.admin.ProjectIdentifier.verify(message.identifier); - if (error) - return "identifier." + error; - } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py index d34629f3e1..ddebf730f2 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py @@ -14,7 +14,7 @@ from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/project.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\",\n\x06\x44omain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"5\n\x11ProjectIdentifier\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03org\x18\x02 \x01(\tR\x03org\"\xf4\x02\n\x07Project\x12\x12\n\x02id\x18\x01 \x01(\tB\x02\x18\x01R\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x30\n\x07\x64omains\x18\x03 \x03(\x0b\x32\x16.flyteidl.admin.DomainR\x07\x64omains\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12.\n\x06labels\x18\x05 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12:\n\x05state\x18\x06 \x01(\x0e\x32$.flyteidl.admin.Project.ProjectStateR\x05state\x12\x41\n\nidentifier\x18\x07 \x01(\x0b\x32!.flyteidl.admin.ProjectIdentifierR\nidentifier\">\n\x0cProjectState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\"U\n\x08Projects\x12\x33\n\x08projects\x18\x01 \x03(\x0b\x32\x17.flyteidl.admin.ProjectR\x08projects\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x89\x01\n\x12ProjectListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x03 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x04 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\"K\n\x16ProjectRegisterRequest\x12\x31\n\x07project\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.ProjectR\x07project\"\x19\n\x17ProjectRegisterResponse\"\x17\n\x15ProjectUpdateResponseB\xb8\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/project.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\",\n\x06\x44omain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xbf\x02\n\x07Project\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x30\n\x07\x64omains\x18\x03 \x03(\x0b\x32\x16.flyteidl.admin.DomainR\x07\x64omains\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12.\n\x06labels\x18\x05 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12:\n\x05state\x18\x06 \x01(\x0e\x32$.flyteidl.admin.Project.ProjectStateR\x05state\x12\x10\n\x03org\x18\x07 \x01(\tR\x03org\">\n\x0cProjectState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\"U\n\x08Projects\x12\x33\n\x08projects\x18\x01 \x03(\x0b\x32\x17.flyteidl.admin.ProjectR\x08projects\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x89\x01\n\x12ProjectListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x03 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x04 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\"K\n\x16ProjectRegisterRequest\x12\x31\n\x07project\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.ProjectR\x07project\"\x19\n\x17ProjectRegisterResponse\"\x17\n\x15ProjectUpdateResponseB\xb8\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -23,24 +23,20 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\014ProjectProtoP\001Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' - _PROJECT.fields_by_name['id']._options = None - _PROJECT.fields_by_name['id']._serialized_options = b'\030\001' _globals['_DOMAIN']._serialized_start=77 _globals['_DOMAIN']._serialized_end=121 - _globals['_PROJECTIDENTIFIER']._serialized_start=123 - _globals['_PROJECTIDENTIFIER']._serialized_end=176 - _globals['_PROJECT']._serialized_start=179 - _globals['_PROJECT']._serialized_end=551 - _globals['_PROJECT_PROJECTSTATE']._serialized_start=489 - _globals['_PROJECT_PROJECTSTATE']._serialized_end=551 - _globals['_PROJECTS']._serialized_start=553 - _globals['_PROJECTS']._serialized_end=638 - _globals['_PROJECTLISTREQUEST']._serialized_start=641 - _globals['_PROJECTLISTREQUEST']._serialized_end=778 - _globals['_PROJECTREGISTERREQUEST']._serialized_start=780 - _globals['_PROJECTREGISTERREQUEST']._serialized_end=855 - _globals['_PROJECTREGISTERRESPONSE']._serialized_start=857 - _globals['_PROJECTREGISTERRESPONSE']._serialized_end=882 - _globals['_PROJECTUPDATERESPONSE']._serialized_start=884 - _globals['_PROJECTUPDATERESPONSE']._serialized_end=907 + _globals['_PROJECT']._serialized_start=124 + _globals['_PROJECT']._serialized_end=443 + _globals['_PROJECT_PROJECTSTATE']._serialized_start=381 + _globals['_PROJECT_PROJECTSTATE']._serialized_end=443 + _globals['_PROJECTS']._serialized_start=445 + _globals['_PROJECTS']._serialized_end=530 + _globals['_PROJECTLISTREQUEST']._serialized_start=533 + _globals['_PROJECTLISTREQUEST']._serialized_end=670 + _globals['_PROJECTREGISTERREQUEST']._serialized_start=672 + _globals['_PROJECTREGISTERREQUEST']._serialized_end=747 + _globals['_PROJECTREGISTERRESPONSE']._serialized_start=749 + _globals['_PROJECTREGISTERRESPONSE']._serialized_end=774 + _globals['_PROJECTUPDATERESPONSE']._serialized_start=776 + _globals['_PROJECTUPDATERESPONSE']._serialized_end=799 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi index edc5517ec8..5353d66e1b 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi @@ -15,16 +15,8 @@ class Domain(_message.Message): name: str def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... -class ProjectIdentifier(_message.Message): - __slots__ = ["id", "org"] - ID_FIELD_NUMBER: _ClassVar[int] - ORG_FIELD_NUMBER: _ClassVar[int] - id: str - org: str - def __init__(self, id: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... - class Project(_message.Message): - __slots__ = ["id", "name", "domains", "description", "labels", "state", "identifier"] + __slots__ = ["id", "name", "domains", "description", "labels", "state", "org"] class ProjectState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = [] ACTIVE: _ClassVar[Project.ProjectState] @@ -39,15 +31,15 @@ class Project(_message.Message): DESCRIPTION_FIELD_NUMBER: _ClassVar[int] LABELS_FIELD_NUMBER: _ClassVar[int] STATE_FIELD_NUMBER: _ClassVar[int] - IDENTIFIER_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] id: str name: str domains: _containers.RepeatedCompositeFieldContainer[Domain] description: str labels: _common_pb2.Labels state: Project.ProjectState - identifier: ProjectIdentifier - def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., domains: _Optional[_Iterable[_Union[Domain, _Mapping]]] = ..., description: _Optional[str] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., state: _Optional[_Union[Project.ProjectState, str]] = ..., identifier: _Optional[_Union[ProjectIdentifier, _Mapping]] = ...) -> None: ... + org: str + def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., domains: _Optional[_Iterable[_Union[Domain, _Mapping]]] = ..., description: _Optional[str] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., state: _Optional[_Union[Project.ProjectState, str]] = ..., org: _Optional[str] = ...) -> None: ... class Projects(_message.Message): __slots__ = ["projects", "token"] diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py index 0599b4dfaf..e946de047f 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py @@ -29,7 +29,7 @@ from flyteidl.admin import description_entity_pb2 as flyteidl_dot_admin_dot_description__entity__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(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\'flyteidl/admin/project_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\'flyteidl/admin/description_entity.proto2\xa5r\n\x0c\x41\x64minService\x12m\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\xd8\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc5\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"Y\x82\xd3\xe4\x93\x02SZ,\x12*/api/v1/tasks/org/{org}/{project}/{domain}\x12#/api/v1/task_ids/{project}/{domain}\x12\xa8\x02\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\xdb\x01\x82\xd3\xe4\x93\x02\xd4\x01Z?\x12=/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}Z(\x12&/api/v1/tasks/{id.project}/{id.domain}Z5\x12\x33/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12}\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\xe8\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"\x9c\x01\x82\xd3\xe4\x93\x02\x95\x01ZP\x12N/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xd1\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"a\x82\xd3\xe4\x93\x02[Z0\x12./api/v1/workflows/org/{org}/{project}/{domain}\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xc0\x02\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01ZC\x12\x41/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}Z,\x12*/api/v1/workflows/{id.project}/{id.domain}Z9\x12\x37/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\x86\x01\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\xf2\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\xa2\x01\x82\xd3\xe4\x93\x02\x9b\x01ZS\x12Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01ZM\x12K/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\x9c\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"6\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xdc\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"j\x82\xd3\xe4\x93\x02\x64Z6\x12\x34/api/v1/launch_plan_ids/org/{org}/{project}/{domain}\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xd0\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xf7\x01\x82\xd3\xe4\x93\x02\xf0\x01ZF\x12\x44/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}Z<\x12:/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\x8d\x02\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xa5\x01\x82\xd3\xe4\x93\x02\x9e\x01:\x01*ZS\x1aQ/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x81\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\x8e\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x8b\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\xdc\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"\x83\x01\x82\xd3\xe4\x93\x02}ZD\x12\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xef\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"\x8a\x01\x82\xd3\xe4\x93\x02\x83\x01:\x01*ZG:\x01*\x1a\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\x86\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8e\x01\x82\xd3\xe4\x93\x02\x87\x01ZI\x12G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\xc5\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"o\x82\xd3\xe4\x93\x02iZ:\x12\x38/api/v1/executions/org/{id.org}/{id.project}/{id.domain}\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xfd\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZL:\x01**G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}*5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xe2\x02\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x85\x02\x82\xd3\xe4\x93\x02\xfe\x01Z\x8b\x01\x12\x88\x01/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xf9\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x95\x02\x82\xd3\xe4\x93\x02\x8e\x02Z\x96\x01\x12\x93\x01/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\x8f\x08\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x9d\x07\x82\xd3\xe4\x93\x02\x96\x07Z\xe7\x03\x12\xe4\x03/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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}\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}\x12\x83\x03\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\x8f\x02\x82\xd3\xe4\x93\x02\x88\x02Z\x90\x01\x12\x8d\x01/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12\x87\x02\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"\xb5\x01\x82\xd3\xe4\x93\x02\xae\x01:\x01*Z%:\x01*\x1a /api/v1/projects/{identifier.id}Z/:\x01*\x1a*/api/v1/projects/org/{identifier.org}/{id}Z::\x01*\x1a\x35/api/v1/projects/org/{identifier.org}/{identifier.id}\x1a\x15/api/v1/projects/{id}\x12\x66\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\x99\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\x89\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\x89\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\xcb\x05\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xee\x04\x82\xd3\xe4\x93\x02\xe7\x04Z\xc8\x02\x12\xc5\x02/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\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}\x12\xf1\x03\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\x8d\x03\x82\xd3\xe4\x93\x02\x86\x03Z\xd6\x01\x12\xd3\x01/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\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}\x12\xec\x05\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xf8\x04\x82\xd3\xe4\x93\x02\xf1\x04Z\xcd\x02\x12\xca\x02/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\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}\x12\xcb\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xbc\x01\x82\xd3\xe4\x93\x02\xb5\x01:\x01*Zd:\x01*\x1a_/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\x83\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"~\x82\xd3\xe4\x93\x02xZ@\x12>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\x93\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x84\x01\x82\xd3\xe4\x93\x02~:\x01*ZC:\x01**>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}*4/api/v1/project_domain_attributes/{project}/{domain}\x12\x8a\x02\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x8d\x01\x82\xd3\xe4\x93\x02\x86\x01:\x01*ZP:\x01*\x1aK/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}\x1a//api/v1/project_attributes/{attributes.project}\x12\xd8\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"e\x82\xd3\xe4\x93\x02_Z7\x12\x35/api/v1/project_domain_attributes/org/{org}/{project}\x12$/api/v1/project_attributes/{project}\x12\xe7\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"k\x82\xd3\xe4\x93\x02\x65:\x01*Z::\x01**5/api/v1/project_domain_attributes/org/{org}/{project}*$/api/v1/project_attributes/{project}\x12\xdc\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xdc\x01\x82\xd3\xe4\x93\x02\xd5\x01:\x01*Zt:\x01*\x1ao/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\x80\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\x8f\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZH:\x01**C/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xa0\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x12\xe8\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\x83\x02\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"\xac\x01\x82\xd3\xe4\x93\x02\xa5\x01ZX\x12V/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x9d\x02\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"\xb2\x01\x82\xd3\xe4\x93\x02\xab\x01:\x01*Z[:\x01*\x1aV/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xb6\x02\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"\xd8\x01\x82\xd3\xe4\x93\x02\xd1\x01Zn\x12l/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc8\x03\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xd7\x02\x82\xd3\xe4\x93\x02\xd0\x02Z^\x12\\/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}ZT\x12R/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x95\x02\n\x13GetExecutionMetrics\x12\x32.flyteidl.admin.WorkflowExecutionGetMetricsRequest\x1a\x33.flyteidl.admin.WorkflowExecutionGetMetricsResponse\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}B\xc2\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(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\'flyteidl/admin/project_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\'flyteidl/admin/description_entity.proto2\xf9q\n\x0c\x41\x64minService\x12m\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\xd8\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc5\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"Y\x82\xd3\xe4\x93\x02SZ,\x12*/api/v1/tasks/org/{org}/{project}/{domain}\x12#/api/v1/task_ids/{project}/{domain}\x12\xa8\x02\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\xdb\x01\x82\xd3\xe4\x93\x02\xd4\x01Z?\x12=/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}Z(\x12&/api/v1/tasks/{id.project}/{id.domain}Z5\x12\x33/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12}\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\xe8\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"\x9c\x01\x82\xd3\xe4\x93\x02\x95\x01ZP\x12N/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xd1\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"a\x82\xd3\xe4\x93\x02[Z0\x12./api/v1/workflows/org/{org}/{project}/{domain}\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xc0\x02\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01ZC\x12\x41/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}Z,\x12*/api/v1/workflows/{id.project}/{id.domain}Z9\x12\x37/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\x86\x01\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\xf2\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\xa2\x01\x82\xd3\xe4\x93\x02\x9b\x01ZS\x12Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01ZM\x12K/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\x9c\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"6\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xdc\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"j\x82\xd3\xe4\x93\x02\x64Z6\x12\x34/api/v1/launch_plan_ids/org/{org}/{project}/{domain}\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xd0\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xf7\x01\x82\xd3\xe4\x93\x02\xf0\x01ZF\x12\x44/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}Z<\x12:/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\x8d\x02\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xa5\x01\x82\xd3\xe4\x93\x02\x9e\x01:\x01*ZS\x1aQ/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x81\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\x8e\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x8b\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\xdc\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"\x83\x01\x82\xd3\xe4\x93\x02}ZD\x12\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xef\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"\x8a\x01\x82\xd3\xe4\x93\x02\x83\x01:\x01*ZG:\x01*\x1a\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\x86\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8e\x01\x82\xd3\xe4\x93\x02\x87\x01ZI\x12G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\xc5\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"o\x82\xd3\xe4\x93\x02iZ:\x12\x38/api/v1/executions/org/{id.org}/{id.project}/{id.domain}\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xfd\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZL:\x01**G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}*5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xe2\x02\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x85\x02\x82\xd3\xe4\x93\x02\xfe\x01Z\x8b\x01\x12\x88\x01/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xf9\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x95\x02\x82\xd3\xe4\x93\x02\x8e\x02Z\x96\x01\x12\x93\x01/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\x8f\x08\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x9d\x07\x82\xd3\xe4\x93\x02\x96\x07Z\xe7\x03\x12\xe4\x03/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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}\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}\x12\x83\x03\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\x8f\x02\x82\xd3\xe4\x93\x02\x88\x02Z\x90\x01\x12\x8d\x01/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12\xdb\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01:\x01*Z\x1a:\x01*\x1a\x15/api/v1/projects/{id}Z$:\x01*\x1a\x1f/api/v1/projects/org/{org}/{id}Z$:\x01*\x1a\x1f/api/v1/projects/org/{org}/{id}\x1a\x15/api/v1/projects/{id}\x12\x66\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\x99\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\x89\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\x89\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\xcb\x05\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xee\x04\x82\xd3\xe4\x93\x02\xe7\x04Z\xc8\x02\x12\xc5\x02/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\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}\x12\xf1\x03\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\x8d\x03\x82\xd3\xe4\x93\x02\x86\x03Z\xd6\x01\x12\xd3\x01/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\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}\x12\xec\x05\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xf8\x04\x82\xd3\xe4\x93\x02\xf1\x04Z\xcd\x02\x12\xca\x02/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\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}\x12\xcb\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xbc\x01\x82\xd3\xe4\x93\x02\xb5\x01:\x01*Zd:\x01*\x1a_/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\x83\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"~\x82\xd3\xe4\x93\x02xZ@\x12>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\x93\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x84\x01\x82\xd3\xe4\x93\x02~:\x01*ZC:\x01**>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}*4/api/v1/project_domain_attributes/{project}/{domain}\x12\x8a\x02\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x8d\x01\x82\xd3\xe4\x93\x02\x86\x01:\x01*ZP:\x01*\x1aK/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}\x1a//api/v1/project_attributes/{attributes.project}\x12\xd8\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"e\x82\xd3\xe4\x93\x02_Z7\x12\x35/api/v1/project_domain_attributes/org/{org}/{project}\x12$/api/v1/project_attributes/{project}\x12\xe7\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"k\x82\xd3\xe4\x93\x02\x65:\x01*Z::\x01**5/api/v1/project_domain_attributes/org/{org}/{project}*$/api/v1/project_attributes/{project}\x12\xdc\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xdc\x01\x82\xd3\xe4\x93\x02\xd5\x01:\x01*Zt:\x01*\x1ao/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\x80\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\x8f\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZH:\x01**C/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xa0\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x12\xe8\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\x83\x02\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"\xac\x01\x82\xd3\xe4\x93\x02\xa5\x01ZX\x12V/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x9d\x02\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"\xb2\x01\x82\xd3\xe4\x93\x02\xab\x01:\x01*Z[:\x01*\x1aV/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xb6\x02\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"\xd8\x01\x82\xd3\xe4\x93\x02\xd1\x01Zn\x12l/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc8\x03\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xd7\x02\x82\xd3\xe4\x93\x02\xd0\x02Z^\x12\\/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}ZT\x12R/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x95\x02\n\x13GetExecutionMetrics\x12\x32.flyteidl.admin.WorkflowExecutionGetMetricsRequest\x1a\x33.flyteidl.admin.WorkflowExecutionGetMetricsResponse\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}B\xc2\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -95,7 +95,7 @@ _ADMINSERVICE.methods_by_name['RegisterProject']._options = None _ADMINSERVICE.methods_by_name['RegisterProject']._serialized_options = b'\202\323\344\223\002\025:\001*\"\020/api/v1/projects' _ADMINSERVICE.methods_by_name['UpdateProject']._options = None - _ADMINSERVICE.methods_by_name['UpdateProject']._serialized_options = b'\202\323\344\223\002\256\001:\001*Z%:\001*\032 /api/v1/projects/{identifier.id}Z/:\001*\032*/api/v1/projects/org/{identifier.org}/{id}Z::\001*\0325/api/v1/projects/org/{identifier.org}/{identifier.id}\032\025/api/v1/projects/{id}' + _ADMINSERVICE.methods_by_name['UpdateProject']._serialized_options = b'\202\323\344\223\002\202\001:\001*Z\032:\001*\032\025/api/v1/projects/{id}Z$:\001*\032\037/api/v1/projects/org/{org}/{id}Z$:\001*\032\037/api/v1/projects/org/{org}/{id}\032\025/api/v1/projects/{id}' _ADMINSERVICE.methods_by_name['ListProjects']._options = None _ADMINSERVICE.methods_by_name['ListProjects']._serialized_options = b'\202\323\344\223\002\022\022\020/api/v1/projects' _ADMINSERVICE.methods_by_name['CreateWorkflowEvent']._options = None @@ -145,5 +145,5 @@ _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._options = None _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._serialized_options = b'\202\323\344\223\002\215\001ZL\022J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\022=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}' _globals['_ADMINSERVICE']._serialized_start=609 - _globals['_ADMINSERVICE']._serialized_end=15238 + _globals['_ADMINSERVICE']._serialized_end=15194 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md index 6163162eb7..dcc536efa5 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md @@ -162,10 +162,8 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**update_launch_plan2**](docs/AdminServiceApi.md#update_launch_plan2) | **PUT** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**update_named_entity**](docs/AdminServiceApi.md#update_named_entity) | **PUT** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. *AdminServiceApi* | [**update_named_entity2**](docs/AdminServiceApi.md#update_named_entity2) | **PUT** /api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. -*AdminServiceApi* | [**update_project**](docs/AdminServiceApi.md#update_project) | **PUT** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -*AdminServiceApi* | [**update_project2**](docs/AdminServiceApi.md#update_project2) | **PUT** /api/v1/projects/{identifier.id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -*AdminServiceApi* | [**update_project3**](docs/AdminServiceApi.md#update_project3) | **PUT** /api/v1/projects/org/{identifier.org}/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -*AdminServiceApi* | [**update_project4**](docs/AdminServiceApi.md#update_project4) | **PUT** /api/v1/projects/org/{identifier.org}/{identifier.id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**update_project2**](docs/AdminServiceApi.md#update_project2) | **PUT** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**update_project4**](docs/AdminServiceApi.md#update_project4) | **PUT** /api/v1/projects/org/{org}/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. *AdminServiceApi* | [**update_project_attributes**](docs/AdminServiceApi.md#update_project_attributes) | **PUT** /api/v1/project_attributes/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level *AdminServiceApi* | [**update_project_attributes2**](docs/AdminServiceApi.md#update_project_attributes2) | **PUT** /api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level *AdminServiceApi* | [**update_project_domain_attributes**](docs/AdminServiceApi.md#update_project_domain_attributes) | **PUT** /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. @@ -259,7 +257,6 @@ Class | Method | HTTP request | Description - [AdminProjectDomainAttributesGetResponse](docs/AdminProjectDomainAttributesGetResponse.md) - [AdminProjectDomainAttributesUpdateRequest](docs/AdminProjectDomainAttributesUpdateRequest.md) - [AdminProjectDomainAttributesUpdateResponse](docs/AdminProjectDomainAttributesUpdateResponse.md) - - [AdminProjectIdentifier](docs/AdminProjectIdentifier.md) - [AdminProjectRegisterRequest](docs/AdminProjectRegisterRequest.md) - [AdminProjectRegisterResponse](docs/AdminProjectRegisterResponse.md) - [AdminProjectUpdateResponse](docs/AdminProjectUpdateResponse.md) diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py index e83f7f73bd..6cbddc0b5b 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py @@ -105,7 +105,6 @@ from flyteadmin.models.admin_project_domain_attributes_get_response import AdminProjectDomainAttributesGetResponse from flyteadmin.models.admin_project_domain_attributes_update_request import AdminProjectDomainAttributesUpdateRequest from flyteadmin.models.admin_project_domain_attributes_update_response import AdminProjectDomainAttributesUpdateResponse -from flyteadmin.models.admin_project_identifier import AdminProjectIdentifier from flyteadmin.models.admin_project_register_request import AdminProjectRegisterRequest from flyteadmin.models.admin_project_register_response import AdminProjectRegisterResponse from flyteadmin.models.admin_project_update_response import AdminProjectUpdateResponse diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py index cf0b04683a..f2014e377e 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py @@ -11841,12 +11841,12 @@ def update_named_entity2_with_http_info(self, resource_type, id_org, id_project, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def update_project(self, id, body, **kwargs): # noqa: E501 + def update_project2(self, id, body, **kwargs): # noqa: E501 """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project(id, body, async_req=True) + >>> thread = api.update_project2(id, body, async_req=True) >>> result = thread.get() :param async_req bool @@ -11858,17 +11858,17 @@ def update_project(self, id, body, **kwargs): # noqa: E501 """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.update_project_with_http_info(id, body, **kwargs) # noqa: E501 + return self.update_project2_with_http_info(id, body, **kwargs) # noqa: E501 else: - (data) = self.update_project_with_http_info(id, body, **kwargs) # noqa: E501 + (data) = self.update_project2_with_http_info(id, body, **kwargs) # noqa: E501 return data - def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 + def update_project2_with_http_info(self, id, body, **kwargs): # noqa: E501 """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project_with_http_info(id, body, async_req=True) + >>> thread = api.update_project2_with_http_info(id, body, async_req=True) >>> result = thread.get() :param async_req bool @@ -11890,18 +11890,18 @@ def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_project" % key + " to method update_project2" % key ) params[key] = val del params['kwargs'] # verify the required parameter 'id' is set if ('id' not in params or params['id'] is None): - raise ValueError("Missing the required parameter `id` when calling `update_project`") # noqa: E501 + raise ValueError("Missing the required parameter `id` when calling `update_project2`") # 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_project`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project2`") # noqa: E501 collection_formats = {} @@ -11946,121 +11946,16 @@ def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def update_project2(self, identifier_id, body, **kwargs): # noqa: E501 - """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project2(identifier_id, body, async_req=True) - >>> result = thread.get() - - :param async_req bool - :param str identifier_id: Globally unique project name. (required) - :param AdminProject body: (required) - :return: AdminProjectUpdateResponse - If the method is called asynchronously, - returns the request thread. - """ - kwargs['_return_http_data_only'] = True - if kwargs.get('async_req'): - return self.update_project2_with_http_info(identifier_id, body, **kwargs) # noqa: E501 - else: - (data) = self.update_project2_with_http_info(identifier_id, body, **kwargs) # noqa: E501 - return data - - def update_project2_with_http_info(self, identifier_id, body, **kwargs): # noqa: E501 + def update_project4(self, org, id, body, **kwargs): # noqa: E501 """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project2_with_http_info(identifier_id, body, async_req=True) + >>> thread = api.update_project4(org, id, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str identifier_id: Globally unique project name. (required) - :param AdminProject body: (required) - :return: AdminProjectUpdateResponse - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['identifier_id', '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_project2" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'identifier_id' is set - if ('identifier_id' not in params or - params['identifier_id'] is None): - raise ValueError("Missing the required parameter `identifier_id` when calling `update_project2`") # 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_project2`") # noqa: E501 - - collection_formats = {} - - path_params = {} - if 'identifier_id' in params: - path_params['identifier.id'] = params['identifier_id'] # 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/projects/{identifier.id}', 'PUT', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='AdminProjectUpdateResponse', # 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_project3(self, identifier_org, id, body, **kwargs): # noqa: E501 - """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project3(identifier_org, id, body, async_req=True) - >>> result = thread.get() - - :param async_req bool - :param str identifier_org: Optional, org key applied to the resource. (required) + :param str org: Optional, org key applied to the resource. (required) :param str id: Deprecated, use identifier instead. Globally unique project name. (required) :param AdminProject body: (required) :return: AdminProjectUpdateResponse @@ -12069,21 +11964,21 @@ def update_project3(self, identifier_org, id, body, **kwargs): # noqa: E501 """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.update_project3_with_http_info(identifier_org, id, body, **kwargs) # noqa: E501 + return self.update_project4_with_http_info(org, id, body, **kwargs) # noqa: E501 else: - (data) = self.update_project3_with_http_info(identifier_org, id, body, **kwargs) # noqa: E501 + (data) = self.update_project4_with_http_info(org, id, body, **kwargs) # noqa: E501 return data - def update_project3_with_http_info(self, identifier_org, id, body, **kwargs): # noqa: E501 + def update_project4_with_http_info(self, org, id, body, **kwargs): # noqa: E501 """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project3_with_http_info(identifier_org, id, body, async_req=True) + >>> thread = api.update_project4_with_http_info(org, id, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str identifier_org: Optional, org key applied to the resource. (required) + :param str org: Optional, org key applied to the resource. (required) :param str id: Deprecated, use identifier instead. Globally unique project name. (required) :param AdminProject body: (required) :return: AdminProjectUpdateResponse @@ -12091,7 +11986,7 @@ def update_project3_with_http_info(self, identifier_org, id, body, **kwargs): # returns the request thread. """ - all_params = ['identifier_org', 'id', 'body'] # noqa: E501 + all_params = ['org', 'id', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -12102,28 +11997,28 @@ def update_project3_with_http_info(self, identifier_org, id, body, **kwargs): # if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_project3" % key + " to method update_project4" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'identifier_org' is set - if ('identifier_org' not in params or - params['identifier_org'] is None): - raise ValueError("Missing the required parameter `identifier_org` when calling `update_project3`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `update_project4`") # noqa: E501 # verify the required parameter 'id' is set if ('id' not in params or params['id'] is None): - raise ValueError("Missing the required parameter `id` when calling `update_project3`") # noqa: E501 + raise ValueError("Missing the required parameter `id` when calling `update_project4`") # 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_project3`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project4`") # noqa: E501 collection_formats = {} path_params = {} - if 'identifier_org' in params: - path_params['identifier.org'] = params['identifier_org'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 if 'id' in params: path_params['id'] = params['id'] # noqa: E501 @@ -12149,120 +12044,7 @@ def update_project3_with_http_info(self, identifier_org, id, body, **kwargs): # auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/projects/org/{identifier.org}/{id}', 'PUT', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='AdminProjectUpdateResponse', # 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_project4(self, identifier_org, identifier_id, body, **kwargs): # noqa: E501 - """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project4(identifier_org, identifier_id, body, async_req=True) - >>> result = thread.get() - - :param async_req bool - :param str identifier_org: Optional, org key applied to the resource. (required) - :param str identifier_id: Globally unique project name. (required) - :param AdminProject body: (required) - :return: AdminProjectUpdateResponse - If the method is called asynchronously, - returns the request thread. - """ - kwargs['_return_http_data_only'] = True - if kwargs.get('async_req'): - return self.update_project4_with_http_info(identifier_org, identifier_id, body, **kwargs) # noqa: E501 - else: - (data) = self.update_project4_with_http_info(identifier_org, identifier_id, body, **kwargs) # noqa: E501 - return data - - def update_project4_with_http_info(self, identifier_org, identifier_id, body, **kwargs): # noqa: E501 - """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project4_with_http_info(identifier_org, identifier_id, body, async_req=True) - >>> result = thread.get() - - :param async_req bool - :param str identifier_org: Optional, org key applied to the resource. (required) - :param str identifier_id: Globally unique project name. (required) - :param AdminProject body: (required) - :return: AdminProjectUpdateResponse - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['identifier_org', 'identifier_id', '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_project4" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'identifier_org' is set - if ('identifier_org' not in params or - params['identifier_org'] is None): - raise ValueError("Missing the required parameter `identifier_org` when calling `update_project4`") # noqa: E501 - # verify the required parameter 'identifier_id' is set - if ('identifier_id' not in params or - params['identifier_id'] is None): - raise ValueError("Missing the required parameter `identifier_id` when calling `update_project4`") # 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_project4`") # noqa: E501 - - collection_formats = {} - - path_params = {} - if 'identifier_org' in params: - path_params['identifier.org'] = params['identifier_org'] # noqa: E501 - if 'identifier_id' in params: - path_params['identifier.id'] = params['identifier_id'] # 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/projects/org/{identifier.org}/{identifier.id}', 'PUT', + '/api/v1/projects/org/{org}/{id}', 'PUT', path_params, query_params, header_params, 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 93a6f44c80..f2604bcd01 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 @@ -98,7 +98,6 @@ from flyteadmin.models.admin_project_domain_attributes_get_response import AdminProjectDomainAttributesGetResponse from flyteadmin.models.admin_project_domain_attributes_update_request import AdminProjectDomainAttributesUpdateRequest from flyteadmin.models.admin_project_domain_attributes_update_response import AdminProjectDomainAttributesUpdateResponse -from flyteadmin.models.admin_project_identifier import AdminProjectIdentifier from flyteadmin.models.admin_project_register_request import AdminProjectRegisterRequest from flyteadmin.models.admin_project_register_response import AdminProjectRegisterResponse from flyteadmin.models.admin_project_update_response import AdminProjectUpdateResponse diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py index f70707af86..798f4ce8db 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py @@ -18,7 +18,6 @@ from flyteadmin.models.admin_domain import AdminDomain # noqa: F401,E501 from flyteadmin.models.admin_labels import AdminLabels # noqa: F401,E501 -from flyteadmin.models.admin_project_identifier import AdminProjectIdentifier # noqa: F401,E501 from flyteadmin.models.project_project_state import ProjectProjectState # noqa: F401,E501 @@ -42,7 +41,7 @@ class AdminProject(object): 'description': 'str', 'labels': 'AdminLabels', 'state': 'ProjectProjectState', - 'identifier': 'AdminProjectIdentifier' + 'org': 'str' } attribute_map = { @@ -52,10 +51,10 @@ class AdminProject(object): 'description': 'description', 'labels': 'labels', 'state': 'state', - 'identifier': 'identifier' + 'org': 'org' } - def __init__(self, id=None, name=None, domains=None, description=None, labels=None, state=None, identifier=None): # noqa: E501 + def __init__(self, id=None, name=None, domains=None, description=None, labels=None, state=None, org=None): # noqa: E501 """AdminProject - a model defined in Swagger""" # noqa: E501 self._id = None @@ -64,7 +63,7 @@ def __init__(self, id=None, name=None, domains=None, description=None, labels=No self._description = None self._labels = None self._state = None - self._identifier = None + self._org = None self.discriminator = None if id is not None: @@ -79,8 +78,8 @@ def __init__(self, id=None, name=None, domains=None, description=None, labels=No self.labels = labels if state is not None: self.state = state - if identifier is not None: - self.identifier = identifier + if org is not None: + self.org = org @property def id(self): @@ -215,27 +214,27 @@ def state(self, state): self._state = state @property - def identifier(self): - """Gets the identifier of this AdminProject. # noqa: E501 + def org(self): + """Gets the org of this AdminProject. # noqa: E501 - Optional, org key applied to the project. # noqa: E501 + Optional, org key applied to the resource. # noqa: E501 - :return: The identifier of this AdminProject. # noqa: E501 - :rtype: AdminProjectIdentifier + :return: The org of this AdminProject. # noqa: E501 + :rtype: str """ - return self._identifier + return self._org - @identifier.setter - def identifier(self, identifier): - """Sets the identifier of this AdminProject. + @org.setter + def org(self, org): + """Sets the org of this AdminProject. - Optional, org key applied to the project. # noqa: E501 + Optional, org key applied to the resource. # noqa: E501 - :param identifier: The identifier of this AdminProject. # noqa: E501 - :type: AdminProjectIdentifier + :param org: The org of this AdminProject. # noqa: E501 + :type: str """ - self._identifier = identifier + self._org = org def to_dict(self): """Returns the model properties as a dict""" diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_identifier.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_identifier.py deleted file mode 100644 index 13323d0964..0000000000 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_identifier.py +++ /dev/null @@ -1,145 +0,0 @@ -# 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 AdminProjectIdentifier(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': 'str', - 'org': 'str' - } - - attribute_map = { - 'id': 'id', - 'org': 'org' - } - - def __init__(self, id=None, org=None): # noqa: E501 - """AdminProjectIdentifier - a model defined in Swagger""" # noqa: E501 - - self._id = None - self._org = None - self.discriminator = None - - if id is not None: - self.id = id - if org is not None: - self.org = org - - @property - def id(self): - """Gets the id of this AdminProjectIdentifier. # noqa: E501 - - Globally unique project name. # noqa: E501 - - :return: The id of this AdminProjectIdentifier. # noqa: E501 - :rtype: str - """ - return self._id - - @id.setter - def id(self, id): - """Sets the id of this AdminProjectIdentifier. - - Globally unique project name. # noqa: E501 - - :param id: The id of this AdminProjectIdentifier. # noqa: E501 - :type: str - """ - - self._id = id - - @property - def org(self): - """Gets the org of this AdminProjectIdentifier. # noqa: E501 - - Optional, org key applied to the resource. # noqa: E501 - - :return: The org of this AdminProjectIdentifier. # noqa: E501 - :rtype: str - """ - return self._org - - @org.setter - def org(self, org): - """Sets the org of this AdminProjectIdentifier. - - Optional, org key applied to the resource. # noqa: E501 - - :param org: The org of this AdminProjectIdentifier. # noqa: E501 - :type: str - """ - - self._org = org - - 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(AdminProjectIdentifier, 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, AdminProjectIdentifier): - 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_project_identifier.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_identifier.py deleted file mode 100644 index 7cf9507703..0000000000 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_identifier.py +++ /dev/null @@ -1,40 +0,0 @@ -# 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_project_identifier import AdminProjectIdentifier # noqa: E501 -from flyteadmin.rest import ApiException - - -class TestAdminProjectIdentifier(unittest.TestCase): - """AdminProjectIdentifier unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testAdminProjectIdentifier(self): - """Test AdminProjectIdentifier""" - # FIXME: construct object with mandatory attributes with example values - # model = flyteadmin.models.admin_project_identifier.AdminProjectIdentifier() # 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 ec40e07475..8859ea6a03 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 @@ -672,13 +672,6 @@ def test_update_named_entity2(self): """ pass - def test_update_project(self): - """Test case for update_project - - Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 - """ - pass - def test_update_project2(self): """Test case for update_project2 @@ -686,13 +679,6 @@ def test_update_project2(self): """ pass - def test_update_project3(self): - """Test case for update_project3 - - Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 - """ - pass - def test_update_project4(self): """Test case for update_project4 diff --git a/flyteidl/gen/pb_rust/flyteidl.admin.rs b/flyteidl/gen/pb_rust/flyteidl.admin.rs index 48dd83121b..c500abe884 100644 --- a/flyteidl/gen/pb_rust/flyteidl.admin.rs +++ b/flyteidl/gen/pb_rust/flyteidl.admin.rs @@ -2247,23 +2247,12 @@ pub struct Domain { #[prost(string, tag="2")] pub name: ::prost::alloc::string::String, } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ProjectIdentifier { - /// Globally unique project name. - #[prost(string, tag="1")] - pub id: ::prost::alloc::string::String, - /// Optional, org key applied to the resource. - #[prost(string, tag="2")] - pub org: ::prost::alloc::string::String, -} /// Top-level namespace used to classify different entities like workflows and executions. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Project { /// Deprecated, use identifier instead. /// Globally unique project name. - #[deprecated] #[prost(string, tag="1")] pub id: ::prost::alloc::string::String, /// Display name. @@ -2279,9 +2268,9 @@ pub struct Project { pub labels: ::core::option::Option, #[prost(enumeration="project::ProjectState", tag="6")] pub state: i32, - /// Optional, org key applied to the project. - #[prost(message, optional, tag="7")] - pub identifier: ::core::option::Option, + /// Optional, org key applied to the resource. + #[prost(string, tag="7")] + pub org: ::prost::alloc::string::String, } /// Nested message and enum types in `Project`. pub mod project { diff --git a/flyteidl/protos/flyteidl/admin/project.proto b/flyteidl/protos/flyteidl/admin/project.proto index 988ab927b1..88ce071380 100644 --- a/flyteidl/protos/flyteidl/admin/project.proto +++ b/flyteidl/protos/flyteidl/admin/project.proto @@ -16,20 +16,12 @@ message Domain { string name = 2; } -message ProjectIdentifier { - // Globally unique project name. - string id = 1; - - // Optional, org key applied to the resource. - string org = 2; -} - // Top-level namespace used to classify different entities like workflows and executions. message Project { // Deprecated, use identifier instead. // Globally unique project name. - string id = 1[deprecated = true]; + string id = 1; // Display name. string name = 2; @@ -55,8 +47,8 @@ message Project { } ProjectState state = 6; - // Optional, org key applied to the project. - ProjectIdentifier identifier = 7; + // Optional, org key applied to the resource. + string org = 7; } // Represents a list of projects. diff --git a/flyteidl/protos/flyteidl/service/admin.proto b/flyteidl/protos/flyteidl/service/admin.proto index 20ad9bae2f..e3af44a0d3 100644 --- a/flyteidl/protos/flyteidl/service/admin.proto +++ b/flyteidl/protos/flyteidl/service/admin.proto @@ -451,15 +451,15 @@ service AdminService { put: "/api/v1/projects/{id}" body: "*" additional_bindings { - put: "/api/v1/projects/{identifier.id}" + put: "/api/v1/projects/{id}" body: "*" } additional_bindings { - put: "/api/v1/projects/org/{identifier.org}/{id}" + put: "/api/v1/projects/org/{org}/{id}" body: "*" } additional_bindings { - put: "/api/v1/projects/org/{identifier.org}/{identifier.id}" + put: "/api/v1/projects/org/{org}/{id}" body: "*" } }; From d8a75e28e1b960b807d930b70b4185f8c1fdddaf Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Tue, 2 Jan 2024 18:09:27 -0800 Subject: [PATCH 3/7] regen Signed-off-by: Katrina Rogan --- flyteidl/gen/pb-go/flyteidl/admin/project.pb.go | 1 - flyteidl/gen/pb-go/flyteidl/core/workflow.pb.go | 2 +- .../gen/pb-go/flyteidl/service/admin.swagger.json | 8 ++++---- .../flyteidl/service/flyteadmin/api/swagger.yaml | 11 ++++------- .../flyteidl/service/flyteadmin/api_admin_service.go | 4 ++-- .../service/flyteadmin/model_admin_project.go | 2 +- .../service/flyteadmin/model_core_array_node.go | 2 +- flyteidl/gen/pb-go/flyteidl/service/openapi.go | 4 ++-- .../gen/pb-java/flyteidl/admin/ProjectOuterClass.java | 9 --------- flyteidl/gen/pb-java/flyteidl/core/Workflow.java | 10 +++++----- .../flyteadmin/flyteadmin/api/admin_service_api.py | 8 ++++---- .../flyteadmin/flyteadmin/models/admin_project.py | 4 ++-- .../flyteadmin/flyteadmin/models/core_array_node.py | 4 ++-- flyteidl/gen/pb_rust/flyteidl.admin.rs | 1 - flyteidl/gen/pb_rust/flyteidl.core.rs | 2 +- flyteidl/protos/flyteidl/admin/project.proto | 1 - flyteidl/protos/flyteidl/core/workflow.proto | 2 +- 17 files changed, 30 insertions(+), 45 deletions(-) diff --git a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go index eb2ba4fac2..790ab90e6d 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go @@ -105,7 +105,6 @@ func (m *Domain) GetName() string { // Top-level namespace used to classify different entities like workflows and executions. type Project struct { - // Deprecated, use identifier instead. // Globally unique project name. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Display name. diff --git a/flyteidl/gen/pb-go/flyteidl/core/workflow.pb.go b/flyteidl/gen/pb-go/flyteidl/core/workflow.pb.go index 1556ddd8c3..8ab1496330 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/workflow.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/core/workflow.pb.go @@ -647,7 +647,7 @@ type ArrayNode struct { // node is the sub-node that will be executed for each element in the array. Node *Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` // parallelism defines the minimum number of instances to bring up concurrently at any given - // point. Note that this is an optimistic restriction and that, due to network orging or + // point. Note that this is an optimistic restriction and that, due to network partitioning or // other failures, the actual number of currently running instances might be more. This has to // be a positive number if assigned. Default value is size. Parallelism uint32 `protobuf:"varint,2,opt,name=parallelism,proto3" json:"parallelism,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json index da201ddc26..ca2e116531 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json @@ -4388,7 +4388,7 @@ }, { "name": "id", - "description": "Deprecated, use identifier instead.\nGlobally unique project name.", + "description": "Globally unique project name.", "in": "path", "required": true, "type": "string" @@ -4422,7 +4422,7 @@ "parameters": [ { "name": "id", - "description": "Deprecated, use identifier instead.\nGlobally unique project name.", + "description": "Globally unique project name.", "in": "path", "required": true, "type": "string" @@ -8137,7 +8137,7 @@ "properties": { "id": { "type": "string", - "description": "Deprecated, use identifier instead.\nGlobally unique project name." + "description": "Globally unique project name." }, "name": { "type": "string", @@ -8981,7 +8981,7 @@ "parallelism": { "type": "integer", "format": "int64", - "description": "parallelism defines the minimum number of instances to bring up concurrently at any given\npoint. Note that this is an optimistic restriction and that, due to network orging or\nother failures, the actual number of currently running instances might be more. This has to\nbe a positive number if assigned. Default value is size." + "description": "parallelism defines the minimum number of instances to bring up concurrently at any given\npoint. Note that this is an optimistic restriction and that, due to network partitioning or\nother failures, the actual number of currently running instances might be more. This has to\nbe a positive number if assigned. Default value is size." }, "min_successes": { "type": "integer", diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index fb8b11441f..e1bb82d227 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -3889,8 +3889,7 @@ paths: x-exportParamName: "Org" - name: "id" in: "path" - description: "Deprecated, use identifier instead.\nGlobally unique project\ - \ name." + description: "Globally unique project name." required: true type: "string" x-exportParamName: "Id" @@ -3916,8 +3915,7 @@ paths: parameters: - name: "id" in: "path" - description: "Deprecated, use identifier instead.\nGlobally unique project\ - \ name." + description: "Globally unique project name." required: true type: "string" x-exportParamName: "Id" @@ -24888,8 +24886,7 @@ definitions: properties: id: type: "string" - description: "Deprecated, use identifier instead.\nGlobally unique project\ - \ name." + description: "Globally unique project name." name: type: "string" description: "Display name." @@ -79063,7 +79060,7 @@ definitions: format: "int64" description: "parallelism defines the minimum number of instances to bring\ \ up concurrently at any given\npoint. Note that this is an optimistic restriction\ - \ and that, due to network orging or\nother failures, the actual number\ + \ and that, due to network partitioning or\nother failures, the actual number\ \ of currently running instances might be more. This has to\nbe a positive\ \ number if assigned. Default value is size." min_successes: diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go index 950456184b..a496f55dd0 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go @@ -10133,7 +10133,7 @@ func (a *AdminServiceApiService) UpdateNamedEntity2(ctx context.Context, resourc /* AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param id Deprecated, use identifier instead. Globally unique project name. + * @param id Globally unique project name. * @param body @return AdminProjectUpdateResponse @@ -10225,7 +10225,7 @@ func (a *AdminServiceApiService) UpdateProject2(ctx context.Context, id string, AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param org Optional, org key applied to the resource. - * @param id Deprecated, use identifier instead. Globally unique project name. + * @param id Globally unique project name. * @param body @return AdminProjectUpdateResponse diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go index 9253985456..fafa42e708 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go @@ -11,7 +11,7 @@ package flyteadmin // Top-level namespace used to classify different entities like workflows and executions. type AdminProject struct { - // Deprecated, use identifier instead. Globally unique project name. + // Globally unique project name. Id string `json:"id,omitempty"` // Display name. Name string `json:"name,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_array_node.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_array_node.go index aba5cd75e4..3af3d44494 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_array_node.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_array_node.go @@ -13,7 +13,7 @@ package flyteadmin type CoreArrayNode struct { // node is the sub-node that will be executed for each element in the array. Node *CoreNode `json:"node,omitempty"` - // parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network orging or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. + // parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network partitioning or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. Parallelism int64 `json:"parallelism,omitempty"` // min_successes is an absolute number of the minimum number of successful completions of sub-nodes. As soon as this criteria is met, the ArrayNode will be marked as successful and outputs will be computed. This has to be a non-negative number if assigned. Default value is size (if specified). MinSuccesses int64 `json:"min_successes,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index 28a959eb48..09feb3bd00 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\x7b\x73\xe3\xb8\xb5\x2f\x0c\xff\xbf\x3f\x05\xaa\xf7\x5b\xd5\x33\x89\xed\x9e\x5c\xce\x7e\x53\xde\x75\xea\x79\x34\xb6\xba\x47\x67\xdc\xb6\xe3\xcb\xf4\x9e\x3a\xda\xa5\x81\x48\x48\x42\x4c\x01\x1a\x00\xb4\x5b\xd9\x95\xef\xfe\x14\x16\x00\x12\xa4\x48\x8a\xba\x5a\x72\x23\xa9\x4a\xdc\x22\x89\xcb\x02\xb0\xb0\xae\xbf\xf5\x3f\xff\x86\xd0\x3b\xf9\x82\xc7\x63\x22\xde\x9d\xa3\x77\x7f\x3e\xfb\xe1\xdd\x89\xfe\x8d\xb2\x11\x7f\x77\x8e\xf4\x73\x84\xde\x29\xaa\x12\xa2\x9f\x8f\x92\xb9\x22\x34\x4e\x3e\x48\x22\x9e\x69\x44\x3e\xe0\x78\x4a\xd9\xd9\x4c\x70\xc5\xe1\x43\x84\xde\x3d\x13\x21\x29\x67\xfa\x75\xfb\x27\x62\x5c\x21\x49\xd4\xbb\x7f\x43\xe8\x5f\xd0\xbc\x8c\x26\x64\x4a\xe4\xbb\x73\xf4\x7f\xcd\x47\x13\xa5\x66\xae\x01\xfd\xb7\xd4\xef\xfe\x37\xbc\x1b\x71\x26\xd3\xc2\xcb\x78\x36\x4b\x68\x84\x15\xe5\xec\xc3\x3f\x24\x67\xf9\xbb\x33\xc1\xe3\x34\x6a\xf9\x2e\x56\x13\x99\xcf\xf1\x03\x9e\xd1\x0f\xcf\x7f\xfa\x80\x23\x45\x9f\xc9\x20\xc1\x29\x8b\x26\x83\x59\x82\x99\xfc\xc0\xc5\xf8\xc3\xff\xd0\xf8\x8c\x8b\xf1\xbf\xe0\x8f\x99\xe0\xff\x20\x91\x32\xff\x88\xf9\x14\x53\x66\xfe\x66\x78\x4a\xfe\x95\x35\x8a\xd0\xbb\x31\x51\xde\x3f\xf5\xd4\xd3\xe9\x14\x8b\xb9\x26\xcf\x47\xa2\xa2\x09\x52\x13\x82\x4c\xa7\xc8\xd1\x8b\x8f\x10\x46\xe7\x82\x8c\xce\x7f\x13\x64\x34\x70\x54\x3f\x33\xd4\xbe\x82\xa1\xdd\x26\x98\xfd\x76\x66\x69\x06\x2d\xf3\x19\x11\x30\xd1\x5e\xac\x5b\xff\x44\x54\x07\x9a\xcd\xdf\xff\xb3\xff\xba\x20\x72\xc6\x99\x24\xb2\x30\x3e\x84\xde\xfd\xf9\x87\x1f\x4a\x3f\x21\xf4\x2e\x26\x32\x12\x74\xa6\xec\xca\x76\x90\x4c\xa3\x88\x48\x39\x4a\x13\xe4\x5a\xf2\x47\x63\xe6\xaa\x97\x19\x2f\x34\x86\xd0\xbb\xff\x9f\x20\x23\xdd\xce\xbf\x7f\x88\xc9\x88\x32\xaa\xdb\x95\x66\x37\xe5\xc3\x7d\x57\xf8\xea\x5f\xff\x56\xf5\xf7\xbf\xbc\x19\xcd\xb0\xc0\x53\xa2\x88\xc8\xd7\xdf\xfc\xa7\x34\x17\xbd\x48\xba\x73\xb3\xa2\xe5\x41\x97\x66\x7a\x03\x7f\xe1\xe4\x04\x71\x31\x46\x4f\x64\x8e\x60\x4b\x91\x18\x29\x0e\x6b\x27\x88\xe4\xa9\x88\x16\x67\x4f\xe1\x7b\xbd\xcd\xca\x4f\x04\xf9\x3d\xa5\x82\xe8\x65\x52\x22\x25\xa5\xa7\x6a\x3e\x83\xe1\x49\x25\x28\x1b\xfb\x44\xf8\xd7\x49\xab\x49\xd9\xdd\xb9\x64\x62\xd7\x78\x4a\xf4\x4e\xd3\x73\xb0\x5f\x14\xe6\x83\x86\x24\xe1\x6c\x2c\x91\xe2\x87\x33\x35\x73\xd6\x56\x98\x99\xf9\xa0\x76\x62\x7d\xd6\x71\xaf\x44\x98\xa1\x21\x41\x9a\xdd\xd0\x98\x08\x12\x23\x2c\x11\x46\x32\x1d\x4a\xa2\xd0\x0b\x55\x13\xca\xf4\xbf\x67\x24\xa2\x23\x1a\x39\x9a\x1d\x0e\x6d\xe0\xcf\x66\xca\x3c\x4a\x22\xf4\xc0\x9f\x69\x4c\x62\xf4\x8c\x93\x94\xa0\x11\x17\xc5\x7d\xdc\x67\x0f\x13\x4d\x87\xe9\x90\x32\xe0\x27\x9a\x96\x6e\x87\xfc\xd1\x91\xeb\x8f\x48\xf7\x87\x52\x46\x7f\x4f\x49\x32\x47\x34\x26\x4c\xd1\x11\x25\xb2\xdc\xda\x1f\xb9\x3d\x42\xe8\x14\x69\x3a\x13\xa1\x80\xde\x9c\x29\xf2\x55\x49\x74\x8a\x12\xfa\x44\xd0\xfb\x2b\x2a\x15\xea\xdc\xf6\xde\x9f\xa0\xf7\x86\x09\x20\x60\xbf\xef\xf7\x40\xe1\xec\xef\xff\xf6\xf8\x89\xc2\xe3\x32\x27\x79\xd7\xd1\x2c\xea\xde\xdc\x7e\x79\x0b\xff\xfd\x6f\x7e\x3b\x76\xbd\x1a\xaf\x94\x23\xbe\x45\xc2\x25\x12\xf8\x6d\xe0\xb7\x81\xdf\xee\x9e\xc2\xbb\x97\xce\x7e\x4f\x89\x98\x37\xcc\x6a\x84\x13\x79\xd0\xd7\x48\x7e\x87\xd8\x0b\xa4\xed\xb5\x01\xab\x5f\xbc\x31\xa4\xde\x78\x9b\x5e\x18\xba\xdd\xf2\x8d\x21\x8f\xeb\xca\xd0\x53\xd8\xf5\xb5\xb1\xc9\x9d\x81\x15\x1c\x66\x4c\x99\x39\xfb\x19\x2b\x10\x52\x1f\x7f\xb7\x7d\x0f\x84\x53\x6e\x72\x85\x78\x33\xf3\x6e\x11\x77\x39\x78\x54\x39\xc0\x79\x27\x74\x4a\x97\xad\x6f\x8f\xc5\x34\xc2\xca\xf2\x70\x96\x4e\x87\x44\x68\x32\x38\xae\x05\xb3\x1d\x6a\x2e\xa6\x52\xc1\x48\xdc\x62\x9a\x9b\x70\x34\xca\x14\x19\x13\x51\xfe\x7a\xc4\xc5\x14\x2b\xfb\xc2\x7f\xfc\x75\x55\x42\x28\xfe\x44\x96\xad\x7f\xcf\xac\x66\x84\x25\x6c\x83\x69\x9a\x28\x3a\x4b\x08\x9a\xe1\x31\x91\x96\x22\x69\xa2\xe4\x09\xbc\x26\x89\x78\x26\xe2\x34\xbb\x58\xa1\x07\x27\x50\xa4\xd2\x70\xff\x51\x26\x17\x33\xf2\x55\x41\x4b\x7d\x06\x22\x05\x90\xc8\xbf\x28\xf7\x73\x39\xb4\x20\x95\xe4\x42\x0d\x86\xf3\xb3\x27\xb2\xd0\x6f\xed\xce\xc1\x0c\x61\xa5\x04\x1d\xa6\x8a\xe8\x79\xeb\x36\xdc\xd5\x07\xec\xd1\xc8\x1d\x6d\x58\xc3\xeb\x4d\x38\xa6\x82\x44\x30\xb7\x55\x0e\x4c\xf6\x95\x9e\xb7\xbe\xf8\xe7\x66\xf6\x5a\x0e\xd0\x62\x56\x05\x05\xb2\x25\xef\xb3\x3e\x43\xa7\xe8\xb2\x7b\x7f\xd1\xbd\xbe\xec\x5d\x7f\x3a\x47\x3f\xce\x51\x4c\x46\x38\x4d\xd4\x09\x1a\x51\x92\xc4\x12\x61\x41\xa0\x49\x12\x6b\x51\x4a\x0f\x86\xb0\x98\xb2\x31\xe2\x22\x26\x62\x77\x64\x2c\x3d\x25\x2c\x9d\x96\xee\x15\xf8\x3d\x1f\x7d\xe9\x0b\x2d\x62\x64\x8f\x0a\x4f\xfe\x7b\x81\xc0\x30\x63\xdd\xb7\xd7\xda\x8a\xcb\x18\x04\x35\x5f\x50\x8b\x26\x34\x89\x05\x61\x1f\x14\x96\x4f\x03\xf2\x95\x44\xa9\x91\x33\xc0\x8e\x5c\xfc\x71\xa0\x15\x09\x1e\x93\xe2\x2f\x85\x7f\x18\xab\xf3\xca\x9f\xe5\x92\xe1\xca\x9f\x66\xb6\x88\x95\xbf\x04\xcb\x45\xbb\xef\xe0\x17\x1a\x57\xbe\x0d\xbf\x2c\x99\x83\x7b\xa7\x61\xb0\xee\x95\xda\x51\xb9\x17\xac\x00\x5c\xf9\x8e\x20\x4a\xcc\x07\x58\x29\x32\x9d\xa9\x15\xad\x32\x18\x25\x5a\xcc\x6e\x12\xab\xaf\x79\x4c\xba\xae\xbf\xdf\x90\x91\xee\x49\x8c\x86\x73\x7b\x2c\x46\x44\x10\x16\x91\xfa\x16\x1e\xb0\x7c\xca\x5b\x58\x26\x9b\x17\xfa\x93\x1f\xb9\xd0\x9f\x1f\x85\x63\xa0\x30\xf2\x7d\xc8\xe8\xeb\x9c\xd4\x37\xe6\x4d\x58\x97\xeb\xbc\x39\x5b\xd8\x9a\x3c\x34\x58\xce\x36\xa7\x64\x5b\x3b\x1b\x17\x48\xce\xa5\x22\xd3\xa5\x16\xb7\xe3\x21\x84\xbd\x24\x0f\x75\xc0\xa5\x7b\xfa\x1b\x38\xf5\x45\xa9\x23\x1c\xef\x15\x48\xb6\x2d\x7b\xf9\xa1\xcf\xd3\x05\xc0\x34\x4f\xf5\xde\x2d\x9f\xe7\xae\x3b\x8a\x69\x16\xe4\xe1\x6d\x0f\x72\x47\x16\xa8\xda\xb5\x72\xd4\x1e\xc0\x00\x96\xd8\x1e\x8a\x1e\x97\xec\xfc\xe9\x4f\x7d\xa3\x9d\xb1\xd0\xaa\x09\x95\x9e\xfd\x12\x45\x5c\x18\x71\x38\xb6\xe7\xdd\x98\x1f\x3a\x0f\x9d\xfb\xee\xc3\x39\xea\xa0\x18\x2b\xac\x0f\xb8\x20\x33\x41\x24\x61\x0a\x4c\x3b\xfa\x7b\x35\x47\x53\x1e\x93\xc4\x18\x21\x3e\x6a\xe9\x1f\x5d\x62\x85\x2f\xb0\xc2\x09\x1f\x9f\xa1\x0e\xfc\x53\x7f\x4c\x25\xc2\x89\xe4\x08\xbb\x6d\x45\x62\xd7\x04\x66\xb1\x63\x2d\x18\x45\x7c\x3a\xa3\x49\xe6\x6d\xca\xec\x6d\x94\xc5\xf4\x99\xc6\x29\x4e\x10\x1f\x6a\xae\x22\xcf\xfa\xac\xfb\x4c\x98\x4a\x71\x92\xcc\x11\x4e\x12\x64\xbb\x75\x2f\x20\x39\xe1\x69\x12\xeb\x76\xdd\x28\x25\x9d\xd2\x04\x0b\x2d\xd3\x9a\xd1\xde\xd8\xb6\xd0\xc3\x84\x64\x63\x85\x71\x69\x6a\x4e\xf1\x13\x91\x88\x2a\x34\xe3\x52\xd2\x61\x92\x9f\xf9\xc7\x1e\x82\x71\x5f\x5c\xf5\xc0\xc4\x13\x29\xc4\x0d\x0f\x75\x9d\x5b\x93\x9e\xeb\x71\x8a\x19\x23\xd0\x31\x57\x13\x22\x6c\xf7\xf6\xe5\xd7\xb6\xd6\x3c\x5e\xdf\xdf\x76\x2f\x7a\x1f\x7b\xdd\xcb\x45\x73\xcd\x43\xe7\xfe\xe7\xc5\x5f\xbf\xdc\xdc\xfd\xfc\xf1\xea\xe6\xcb\xe2\x93\xab\xce\xe3\xf5\xc5\x4f\x83\xdb\xab\xce\xf5\xe2\x43\xbb\xad\x5a\x5b\x7e\xfc\x91\x6d\xed\x6c\x1d\x9d\x51\x28\x18\xf5\x57\x58\xf6\x6d\x1b\xf5\x4f\xde\xae\x55\x7f\x44\x13\x30\x3a\xb4\xb6\xe8\x67\x56\x23\xfb\x25\x9a\x61\x29\x8d\x1c\x68\x46\x70\xd6\x67\x9f\xb9\xd0\xec\x7a\xc4\x35\x47\xd4\xb2\xa2\x12\x69\xa4\x28\x1b\x67\x1f\x9d\xa3\x7e\xfa\xc3\x0f\x7f\x89\xae\x28\x7b\x82\xbf\xc8\x21\x12\x27\xb8\x3c\x82\xcb\xe3\xe0\x5c\x1e\xff\x56\xf1\xe9\xee\xdd\x03\xc1\xc6\x1f\x6c\xfc\xbb\xb3\xf1\x07\x13\xbf\x37\x86\x60\xdf\xde\x94\x10\xc1\x00\x16\xec\xdb\x9b\x13\x22\xd8\xb7\x0f\x74\xc6\xe1\x78\x07\xfb\x76\xb0\x6f\x07\xfb\x76\xb0\x6f\x07\xfb\x76\xb0\x6f\x7f\x33\xf6\xed\x03\x0c\x79\x0a\x46\xfe\x60\xe4\x0f\x46\xfe\x60\xe4\x0f\x46\xfe\x60\xe4\x3f\x1e\x23\xbf\x96\x76\x3f\x94\x43\xff\x77\x04\x21\xa3\x85\x4b\x36\x4b\x15\x88\x92\x3c\x55\xfa\x4f\xdd\x3f\xec\x95\x06\x08\x80\x76\x06\xe5\x4f\x44\x65\x2f\x6a\xd1\xf6\x28\x62\xc5\xbf\x70\xf1\x34\x4a\xf8\x4b\x36\xf2\x4f\x44\xe9\xc1\xdf\xd9\x5e\x02\xb4\x4c\x80\x96\x41\x01\xea\x60\xdb\x50\x07\x07\x65\xa2\xde\x16\x7f\x77\x5f\xbf\xd3\xca\xbf\x22\xb5\xbc\xf8\x81\x88\x29\x65\x4e\x76\xa1\x4c\x0b\xb9\x63\x41\xa4\xdc\x94\x03\x67\x0d\x67\xaf\x1f\x05\x0f\xce\x46\x9b\x8d\x3f\x70\xdf\xc0\x7d\x6b\xa6\x16\xb8\xef\x1b\xe3\xbe\x2d\xa6\x36\xe4\xf1\x82\x3a\x61\x46\x52\xf5\xa4\x79\x24\x5b\xe3\x50\xbf\xa7\xa4\x5d\xd8\xc1\x3e\xb4\x86\xa3\x56\x14\x8e\xe1\x8e\x3a\x00\x3d\x21\x30\xf5\xc0\xd4\xab\x29\x73\x94\x4c\xfd\x18\x7d\x02\xbb\xe7\xe9\x45\x2f\x4a\x6e\x0e\xaa\x00\x7a\xa8\x8f\xf1\xac\x0d\xe1\xac\x89\xd0\xf4\x02\x30\xf7\x72\x4d\x14\xc3\x1c\x97\x5c\x15\x85\x97\x8f\xc6\xae\x54\x18\xf5\xfe\xef\x8a\x37\x8e\x36\xf0\xad\x04\x5b\x86\x58\xca\x35\x09\xf5\x86\x2f\xcd\xfd\x45\x42\xee\xff\xb6\xfb\x66\xef\xb4\x70\xa5\xd9\xff\x04\x86\x1f\x18\x7e\x60\xf8\xaf\xc4\xf0\xd7\xa0\x7b\x50\xe1\x16\x2e\xb5\x4a\x30\xbf\xb6\xe8\x7d\xab\xa4\xf2\xad\x90\xbb\xd7\x3a\x59\x6f\x49\x76\x5e\x65\x3a\x5e\x55\xfe\xdd\x62\xc2\x5d\x65\x86\xdd\x66\x29\x75\xeb\xde\xd5\xed\x93\xe4\x3e\x11\x55\x78\xf9\x68\xf4\xcf\xc2\xa8\xf7\x7f\x59\xbf\x7a\x30\xe8\x6b\xf1\xe9\x6f\x2f\x21\x30\x64\x00\xee\x90\x74\x6f\x5d\xac\x39\xdc\x1c\xbf\x6f\x20\xa9\x2f\x64\xf1\xad\x44\xa3\xb7\x95\xb6\xf7\x56\xf3\xf4\x8e\x33\x31\x2f\x64\xe2\x85\x4c\xbc\xad\xaa\xbc\xa5\xa7\xdf\x54\x26\xde\x31\xa7\xde\xed\xdf\x3c\x11\x4c\x0e\x87\x6f\x72\x08\x16\x07\xfb\x9f\xa0\x7d\xaf\x3c\xf3\x20\xda\x07\xed\xbb\xcd\xcc\x83\xf6\x1d\xb4\xef\x03\x3c\xa2\x41\xfb\x0e\xda\x77\xd0\xbe\x83\xf6\x1d\xb4\x6f\x14\xb4\x6f\xaf\xa1\xd7\x02\x6c\x38\x04\xe7\xe6\x51\xd9\x1c\xf2\xa9\x0f\xdc\x01\x5f\x04\x39\x28\xb0\xdd\x36\xb8\x07\xf0\x97\x53\xea\x57\xc5\xe1\xad\xd5\xd2\x2f\xf3\xc1\x76\x81\x49\xfe\x66\x59\xc5\x12\x85\x7d\xe1\xbb\xa3\x88\x11\x58\x18\x75\x48\xb7\x5d\x57\xe4\x79\x25\xa1\x61\x47\x14\x38\x92\xeb\x6b\xf5\x85\x7a\xc3\xba\x64\xd0\x21\x37\x4f\xa1\x3b\x1a\xdd\xf1\x78\x74\xc6\xfd\xcb\x16\x6f\x51\x9c\x08\xd2\x84\x37\x86\x70\xf1\x86\x8b\x37\x5c\xbc\xe1\xe2\x0d\x17\x6f\xc8\xc0\xb7\xef\xef\x54\x9e\x28\x09\x13\xad\x00\x1a\xb7\x5e\x19\xa8\x42\x94\xf0\x6e\xe0\x65\x75\x7e\xca\x5f\x53\x22\xff\x7a\x94\x32\xc5\x3e\x4a\xfd\x04\xa1\xe2\x48\x84\x8a\x37\x69\x4b\x0a\x92\x52\x90\x94\xaa\x29\xd3\x4a\x52\xea\xb3\x87\x89\xa6\xc3\x74\x48\x59\xe6\xcd\x73\x3b\xe4\x8f\x8e\x5c\x7f\x44\xba\x3f\x94\x32\xfa\x7b\x4a\x92\x79\xce\x93\x64\xb9\xb5\x0c\x2f\x1a\x9d\x22\x4d\x67\x22\x14\xd0\x9b\x33\x45\xbe\x2a\x89\x4e\x51\x42\x9f\x08\x7a\xaf\x19\x33\xea\xdc\xf6\xde\x9f\xa0\xf7\x57\x50\xb6\x0e\xcd\x12\xcc\xe4\xfb\x83\x71\xdc\x04\xb0\xfe\x5d\x81\xf5\x07\xac\xfe\x80\xd5\xdf\x96\x40\x01\xab\x3f\x60\xf5\x1f\x2f\x56\xff\xd6\xf4\xc3\x35\x71\x39\x5f\x45\x53\x3c\x4e\x5f\x76\xd0\x14\x51\xd0\x14\x83\xa6\x18\x34\xc5\xa0\x29\x1e\x89\xa6\x78\x18\x14\x0e\x6a\x62\x50\x13\x83\x9a\xb8\x45\xe2\x04\x35\x31\xa8\x89\x41\x4d\x5c\x50\x13\x8f\xd7\x73\xf8\x97\xa0\x0f\x06\x7d\xd0\xff\xfd\xf8\xf4\xc1\xa0\x3a\x05\xd5\xa9\x9a\x32\xc7\xa9\x3a\x1d\x8c\xec\x73\x8c\x21\x45\x41\x29\x6c\x4f\x88\xa0\x14\xb6\x26\x55\x50\x0a\x1b\x88\x13\x94\xc2\xa0\x14\x06\xa5\xb0\xb5\x52\x78\x4c\xee\xc2\xa0\x1d\x06\xed\xd0\xff\x3d\x68\x87\x41\x3b\x0c\xda\x61\x70\xac\x05\xd5\x30\xa8\x86\x41\x35\x0c\xaa\xe1\x32\xe2\x04\xd5\x30\xa8\x86\xdf\x96\x6a\x48\x9e\x09\x53\x12\x8a\x21\xfa\x8a\xd2\xbb\x19\x97\xf5\x0a\x9e\xcf\x1d\x2a\x94\x3b\x68\xb3\x58\x94\x10\x50\xdb\x7e\x43\x13\x2c\x11\x8f\xa2\x54\x94\xce\x40\x59\xbd\xbb\x10\x04\x2b\x02\x2d\xe8\x0f\x8f\x41\xad\x5b\x9c\xee\xbe\x00\x88\x87\x3c\x5e\xd8\xed\xe6\x20\x54\x3d\x69\x16\xb3\xb6\x36\xf5\xdf\x53\xd2\x4e\xab\xdd\xe1\xa6\x56\x58\x3e\x6d\x79\x53\x17\x80\xa6\xd7\xda\xd4\xd0\xc2\xb1\x6c\xea\xc5\xe9\x7e\x33\x9b\xba\x6a\xea\x87\xb0\xa9\x5f\xb8\x78\x1a\x25\xfc\x65\xcb\x1b\xfb\x8b\x6d\x76\xb3\xcd\x9d\xb5\x72\x2c\x1b\xbc\x7a\xda\xdf\xcc\x26\xaf\x9b\xfe\xeb\x6e\xf4\xac\x3e\x44\xeb\x2d\xfe\x20\xe8\x78\xac\xd5\x0c\xd0\xf0\xf4\x56\xb4\xa6\x8f\x06\x80\xa4\xbc\x22\xc2\xd2\x6d\x9d\xbd\x7a\x0c\x5b\x3a\x1b\xac\x19\xfb\x37\xb3\x97\x17\xe6\x7d\x20\x9b\xf8\x95\x40\x3b\xda\x15\xfc\xb8\xa2\x52\x65\x6f\x1e\x47\xb6\x55\x36\xdc\x7d\xf8\x4d\x42\xfe\x4e\x70\x33\x04\x37\xc3\xe1\xbb\x19\x0e\xc6\xa0\x16\x4c\xf2\x3b\x32\xc9\x53\x19\x6c\xf2\xc1\x26\xdf\x96\x40\xc1\x26\x1f\x6c\xf2\xc7\x6b\x93\x5f\x51\x77\x58\x33\x42\xab\xce\x20\xb4\x8a\xfe\xf0\x89\xe4\xea\xc3\x71\x69\x0f\x41\x73\x08\x9a\x43\xd0\x1c\xb6\xae\x39\x1c\x54\x39\xc2\x6d\x71\x69\xf7\xf5\xbb\x59\x5a\xcf\x53\x1f\x67\x31\x56\x04\x65\xcc\xdb\xee\x04\x7d\x31\x2a\x9e\x1d\x02\xbb\x1f\x36\x64\xbb\xa6\xaf\x23\xe5\xbc\x66\xf0\x7b\x2c\xcf\x1a\xf8\x70\xe0\xc3\x81\x0f\x1f\x36\xbe\xf9\xe1\xb8\x0f\x1c\x7b\x3a\x14\xf7\x81\x20\x11\x7f\x26\xa2\xb5\x2f\xec\x8e\x80\x03\x0c\xa4\xfb\x99\x20\xcf\x94\xa7\x32\x99\x9f\x8a\x94\x21\xe7\x3b\xf6\x2e\x29\x88\xe1\x7f\xa1\x49\x82\x38\xd3\xaa\xa2\xc2\x42\xb9\xc7\x6c\x8c\x46\x82\x4f\x61\xbb\x24\x58\x2a\xf4\xc4\xf8\x0b\x43\x23\x4c\x93\x54\x10\x34\xe3\x94\xa9\xb3\x3e\xeb\x31\x74\x67\xc6\x08\x35\x17\x4f\x50\x2a\x89\x90\xfa\xa8\x31\xae\x50\x34\xc1\x6c\x4c\x10\x66\x73\x5b\xbc\x3c\x67\xe0\x7a\x93\xa6\xe6\xd6\xd4\x5d\x94\x00\xeb\xb3\x31\x82\xb5\x91\x4a\x44\x25\x22\x5f\x95\x20\x53\x92\xcc\x75\x1f\xfa\x8a\x52\x1c\x59\xfa\x98\xa1\xda\x3d\x4f\x84\xe0\x42\x42\xb5\xc6\xe1\xfc\x9f\x98\x29\xca\x08\x02\x9d\x4e\x1a\x4b\xe2\x29\xba\xe2\x12\x4c\x4c\x3f\xff\x4d\xa2\x28\x49\xa5\x22\xe2\x04\x0d\xd3\xb1\xd4\x4a\xed\x2c\xc1\x6a\xc4\xc5\x54\x8f\x90\x32\xa9\xf0\x90\x26\x54\xcd\x4f\xd0\x14\x47\x13\xd3\x16\xd0\x40\x9e\xf4\x59\xcc\x5f\x98\x54\x82\xe0\xac\x77\xf7\x10\x7d\xe7\x3f\x33\x1b\x40\x7e\x7f\x02\x67\x93\x4e\xb5\x66\xee\x0d\x3f\x5f\x71\xb3\x26\xba\x11\x12\xa3\x21\x89\x70\x2a\x6d\xde\x85\x12\x73\x44\xbe\x4e\x70\x2a\x61\xed\xf4\xf4\x6c\xbd\xcb\x88\x4f\x67\x09\x51\x04\xd1\x11\x52\x42\x5f\x5c\x78\x8c\xa9\x26\xdd\x3d\x21\x2d\xa4\x0d\xbb\x80\x76\xd7\xff\x06\x5c\x62\xca\x05\x41\x31\x51\x98\x26\x8d\xb9\x38\xf6\xdb\xe0\x24\x3d\x26\x2e\x57\x5c\xf0\x83\x60\x73\x09\x18\xf4\xb7\xe0\xf3\x67\xd6\xd3\x10\xe1\x64\x43\xf7\xff\x9d\x1d\x54\xd8\xdb\xc7\xb5\xb7\xcd\xaa\x1d\xce\xe6\x3e\x68\xaf\xff\x51\xed\xe9\x3d\x39\xfd\x83\x76\x15\xb4\xab\x6a\xca\x04\xff\x78\xc8\xc4\x5b\x9c\x56\x70\xfb\x07\xb7\x7f\x70\xfb\x6f\x93\x38\xc1\xed\x1f\xdc\xfe\xdf\xac\xdb\xff\xc0\x3d\xfd\x47\xa5\x31\x04\x6d\x21\x68\x0b\xc1\x17\xb3\xe2\xd4\x8e\x4e\x46\xdf\x16\x67\xce\x5c\xfd\x31\x49\x88\x22\xf5\xd6\x47\x22\xa6\x5a\xb7\x33\x52\x07\x65\x5a\x3c\x1d\x0b\x22\xe5\xa6\x7c\x36\x6b\xf8\x38\xb9\x6d\x36\xfc\x3d\xfa\xf7\x03\xfb\x0d\xec\xb7\x9a\x32\x47\xc9\x7e\x0f\xc7\x90\xee\x1d\xe6\x7d\x59\xd2\x33\xfe\x7b\xa0\xa1\x56\x47\xc5\x8c\xf7\x1e\x69\x15\x38\x71\xe0\xc4\xd5\x94\x09\x9c\xf8\xf8\x83\x92\x8c\x57\x75\x30\x4b\x30\x1b\xd0\xd8\x26\x27\x98\xcc\x84\xdc\x58\xb1\x2b\xcf\xa6\x3e\x5a\xb1\x01\x4c\xcd\x00\x4a\xc5\x6f\xfa\x93\x24\x77\x74\x20\x3e\xd4\xc3\x58\x0a\x1d\x6b\x7c\x23\xb7\x09\x66\xbd\xf8\x38\xb2\x9e\x2b\xa7\xbf\x0f\x67\xe8\xdb\x0b\x9e\xdd\xe4\x92\xc2\x0a\x9c\x6e\x98\x32\x63\x76\xcd\x81\x6f\x0b\x46\xe5\xc3\x98\xe8\x26\x57\x96\x37\x31\xef\xd6\x72\x97\x91\x47\x94\xc3\x9b\x76\xf0\xc5\x05\x54\xcc\xe0\x6d\x6a\x39\xe1\xe0\x6d\x3a\x5c\x6f\x53\x8b\x65\xdc\x89\x0b\x79\xcf\xc7\x73\xaf\x32\xeb\x51\x4b\xaa\x41\x50\x45\x41\xac\x0b\x62\x5d\xfd\xac\x83\x58\x17\xc4\xba\x20\xd6\x05\xb1\x2e\x88\x75\xaf\x2f\xd6\xb5\x98\xe6\x37\x1b\x65\xb0\x4c\x54\x6d\x8f\x7c\x6a\x72\x7c\x20\x15\x30\x9d\x25\x1c\xc7\x4d\x91\x5e\xb9\x30\xe9\x17\xda\x6a\x90\x40\x4d\xeb\xf9\x67\xc7\x20\x80\xe6\xa3\xfd\xc6\xf2\x9f\x16\x27\x7e\x28\xde\x82\xd7\xc2\x40\xad\xde\xef\x2b\xe8\x5c\xf2\xaf\xc7\xb5\xe3\x03\x24\x6a\x00\xd4\xa8\x98\x5a\xf0\x5d\x87\x94\xaf\x90\x1b\xf5\xe6\x14\xf7\x90\x1b\x15\x72\xa3\x82\x59\xa3\x79\xda\xc1\xac\xf1\x26\x72\xa3\x56\x57\x26\x76\x58\xb6\x7a\x73\xb5\xe2\x28\x42\x8e\x82\x5a\x11\xd4\x8a\xa0\x56\x04\xb5\xe2\x10\x0b\x3a\x07\x9d\x22\xe8\x14\x41\xa7\x08\x3a\x45\xd0\x29\xb6\x4e\xc6\xa0\x53\xb4\xd0\x29\xe0\x2f\x0b\x58\xba\xb2\x82\xb1\xa2\x62\xb1\x04\x95\x21\xff\xe8\xc8\xb4\x8a\xa0\x51\x04\x8d\x22\x68\x14\x7b\xd7\x28\x0e\x66\x42\x96\x7d\x2e\x99\xd3\xbd\x5b\x90\x12\x3c\xf4\xe1\xcd\xc7\x8d\x68\x00\x2d\x2d\x11\x26\x8a\x0a\x5a\xb6\xeb\xf4\xa7\xbe\x8e\x62\x62\x53\x41\x2c\xcf\x43\x37\x51\xc4\x85\x61\xca\xb1\xdd\xe5\x46\x9e\xe8\x3c\x74\xee\xbb\x0f\xe7\xa8\x83\x62\xac\xb0\xde\xd6\x82\xcc\x04\x91\x84\x29\x90\xd5\x08\x44\xe5\x02\x48\x77\x62\xa4\x8a\x8f\xfa\xfe\x41\x97\x58\xe1\x0b\xac\x70\xc2\xc7\x67\xa8\x03\xff\xd4\x1f\x53\x89\x70\x22\x39\xc2\x8e\xf4\x24\x76\x4d\x60\x16\xbb\x03\x85\x01\x7b\x9a\x26\x99\x72\x9a\xa9\x17\x94\xc5\xf4\x99\xc6\x29\x4e\xb2\x60\xe7\xbe\x29\x30\x9c\xe2\x24\x99\x23\x9c\x24\xc8\x76\xeb\x5e\x70\x70\xd6\x43\x92\x8d\x52\xd2\x29\x4d\xb0\xd0\xec\xd8\x8c\xf6\xc6\xb6\x85\xb4\x62\xec\xc6\x0a\xe3\xd2\xd4\x9c\xe2\x27\x22\x11\x55\x68\xc6\xa5\xa4\xc3\x24\x3f\x00\x8f\x3d\x04\xe3\xbe\xb8\xea\x81\xcc\x16\x29\xc4\x0d\xe7\x70\x9d\x5b\x05\xc6\xf5\x38\xc5\x8c\x11\xe8\x98\xab\x09\x11\xb6\x7b\xfb\xf2\x6b\x8b\x5f\x8f\xd7\xf7\xb7\xdd\x8b\xde\xc7\x5e\xf7\x72\x51\xfe\x7a\xe8\xdc\xff\xbc\xf8\xeb\x97\x9b\xbb\x9f\x3f\x5e\xdd\x7c\x59\x7c\x72\xd5\x79\xbc\xbe\xf8\x69\x70\x7b\xd5\xb9\x5e\x7c\x68\xb7\x55\x6b\x51\xce\x1f\xd9\x2e\x64\x39\xf7\x75\x0b\x84\x00\x7b\xb8\x14\x56\xa9\x34\xd5\xa0\x05\x19\x53\xa9\x80\xfd\xb7\x91\xc2\x96\x03\x03\x1c\xad\xf4\x15\xaa\xb0\x04\x59\x2c\xc8\x62\x41\x16\x3b\x36\x59\x6c\x7f\x26\x81\x23\x0a\x53\xfc\xcb\x71\xdd\x3d\x01\xc4\x3d\x30\xe7\xc3\x67\xce\x07\xe7\x7a\x3b\x18\xd3\xf9\x31\x02\x44\x06\xa7\x62\x7b\x42\x04\xa7\x62\x7b\x5a\x05\xa7\x62\x03\x71\x82\x53\x31\x38\x15\xbf\x61\xa7\xe2\x51\xc6\x26\x06\x55\xc2\xbd\x17\x54\x89\xa0\x4a\xbc\x51\x55\xe2\x60\x28\x1c\xf4\x88\xa0\x47\x04\x3d\x22\xe8\x11\xcd\xc4\x09\x7a\x44\xd0\x23\x82\x1e\x71\x6c\xf1\x88\xc7\xa5\x49\x04\x2d\x22\x68\x11\x87\xad\x45\x1c\xcc\x84\x8e\xc7\x5b\xdc\x6e\x3e\x21\x72\x2f\x44\xee\x85\xc8\xbd\xda\xc8\xbd\x37\xaa\xc9\x6f\x4b\x7e\x73\x5f\x1f\x5a\x40\xe2\x71\x89\x5f\xa1\x56\x51\xf6\x34\x08\x63\x41\x18\xfb\x46\x85\xb1\x03\x02\x51\x3c\x88\x92\x4b\x53\xac\xa2\x09\x1e\x26\x64\x90\xd9\xb2\x64\x5b\xf5\xfe\x8a\x4a\x25\x51\x94\x4a\xc5\xa7\xf5\x97\xcb\x67\xd7\x43\x27\xeb\xe0\x82\xb3\x11\x1d\xa7\xe6\x6e\xf9\x0d\xb6\xbe\x77\xa2\x73\x01\x77\x3e\x23\xcb\xfc\x8a\x15\xad\x1f\xc5\xb5\x54\x3d\xf4\x7d\xdd\x4e\xab\xe8\x23\xb9\xed\xd2\x2a\x13\x5a\x84\x1c\xdc\x75\xef\x6f\x1e\xef\x2e\xba\xe7\xa8\x03\x22\x16\xb8\x13\xcc\x56\xa0\xff\xd4\x93\x42\x0a\xcb\xa7\x7c\x2d\x85\xd9\xe6\x12\xe4\x6c\xf0\x5f\x68\x91\x1f\x9d\xa2\x8b\xab\xc7\xfb\x87\xee\x5d\x4d\x83\x76\xa3\x40\xe1\x45\x32\x9d\x25\x58\x91\x18\x3d\xa5\x43\x22\x18\xd1\xd2\x4e\x94\xa4\x5a\xb8\xc9\xbd\x1a\xa6\xd1\xee\x7f\x75\x2f\x1e\x1f\x7a\x37\xd7\x83\xbf\x3f\x76\x1f\xbb\xe7\xc8\xed\x38\xdd\xac\x1e\x97\x1e\x45\x3c\x67\x78\xaa\x15\x2b\xfd\x43\x5e\xea\xf1\xf7\x94\xa4\x04\x61\x29\xe9\x98\x4d\x09\x53\xe5\x16\xdd\x80\xaf\x3a\x3f\x76\xaf\x8a\x2d\x4f\x08\xfa\xf9\x6f\xf9\xa0\x12\x3c\x24\x89\x75\xb3\x80\xe7\x40\x6f\xf4\xbc\x23\xeb\x7f\x49\x0d\x55\xff\xfe\xd8\xb9\xea\x3d\xfc\x3a\xb8\xf9\x38\xb8\xef\xde\xfd\xd2\xbb\xe8\x0e\xac\xb0\x7c\xd1\xd1\xfd\x16\x7a\xb2\x32\x35\xfa\x3d\xc5\x89\x56\xba\xf8\x08\xfc\x16\x34\x22\xe8\x65\x42\x18\x4a\x19\xec\x38\xa3\xc9\x69\xf5\x2e\xeb\x54\x9f\x32\x33\xa3\xdb\xab\xc7\x4f\xbd\xeb\xc1\xcd\x2f\xdd\xbb\xbb\xde\x65\xf7\x1c\xdd\x93\x04\x74\x1d\x47\x74\x58\xc5\x59\x92\x8e\x29\x43\x74\x3a\x4b\x88\xa6\x86\xd1\xe5\x86\x64\x82\x9f\x29\x17\xf6\xe8\x8e\xe9\x33\x61\x86\x8e\x70\x66\xa1\x7d\xa7\x53\x0c\x3c\xd2\xdd\x5c\x7f\xec\x7d\x3a\x47\x9d\x38\xce\xe6\x20\xa1\x8d\xc2\xce\x79\xe1\xe2\x69\x94\xf0\x97\xd3\xe2\xb0\x35\x73\x80\xee\xcd\x26\xe2\xcf\x44\x08\x1a\x93\xd2\x3e\xea\xdc\xdf\xf7\x3e\x5d\x7f\xee\x5e\x3f\x00\xc5\x94\xe0\x89\x44\x13\xfe\x02\x16\x7a\x98\x21\x18\xee\x9f\x31\x4d\xa0\x33\xb7\x58\x9c\xa1\x97\x09\x05\xaf\x0e\x95\x3e\xc1\x8c\xda\x29\x52\xf6\xea\x46\xe7\xc2\xc1\x5b\xd4\xc6\xca\x27\x69\xf1\x8d\xd2\xb1\x68\x7a\xa1\xb0\xcb\x17\x5f\x5c\xb6\x5b\x17\xbf\x28\x6d\xb7\x7a\x1d\x74\x61\xbf\xd4\xcf\x34\x5f\xeb\xd6\x2a\x68\x91\x86\xfb\xbb\x66\x89\x12\x34\x92\x1f\xb2\x7d\xb5\x5b\x90\x31\x22\xf5\x86\x55\x74\x4a\x90\xed\xd9\x9e\xd4\x0d\x6b\xd5\x7e\x22\x2a\x7b\xf1\xb3\x69\xf8\x28\xb2\xd2\xbe\x58\x8e\x92\x0d\xfe\x13\x51\x76\xfc\x21\x41\x2d\x24\xa8\xd5\x4c\x2d\x68\xb9\x9b\x6b\xb9\xc7\x56\x91\x37\x26\xb3\xc5\x0e\x4b\x13\x83\x77\x8c\xbf\x72\x21\xbc\xc6\x58\x82\xad\x2d\x3c\x21\xcf\x24\x01\x41\x56\x09\xac\xf5\x62\x2b\x9e\x0d\x05\xc1\x4f\x5a\xa6\x8d\xf9\x8b\x2f\x9c\xc5\x44\x61\x9a\xc8\x57\x0a\xbf\xf9\xcb\x9f\x5f\xf5\x3e\x3c\xde\x2b\x30\xdc\x80\xc1\x24\x1a\x2e\x8b\x6f\xf0\xb2\x38\x46\xa7\x54\xb8\x03\x0f\xe5\x0e\xd4\xe4\x8e\x07\xce\x3d\xfd\xe1\x7f\x0a\x46\xb9\x7f\xed\x4a\x3f\xbc\x83\x78\x5f\xd9\x74\x11\x7a\x15\x36\x7f\xb3\x4e\xed\x25\x37\xa2\xf7\xc5\x51\xe8\x83\xde\x78\x0f\xc9\xd4\x7a\xe7\x5b\xbe\xdd\x3d\x31\x25\x0a\xc7\x58\x61\x7d\x84\xc6\x44\x9d\xa1\x1b\x06\xcf\x1e\xb0\x7c\x3a\x41\xee\x5e\xd7\xbc\x33\x77\x2d\xec\xa1\xb8\x66\x4b\x9b\xd5\x6b\x07\x23\x1c\x22\x47\x0f\x5a\xfa\x36\xa7\x16\x04\xaf\x90\x5e\x74\xc8\x38\x30\xee\xeb\x56\xd1\x3b\xdb\xbb\x95\x4d\x8b\x47\x7c\x31\xef\x37\x5e\x67\xab\xd7\x74\x0a\x43\x0f\x77\xb0\xf9\x4f\xb8\x83\xc3\x1d\x1c\xee\xe0\x26\xca\x84\x3b\xf8\x88\x03\xba\x2a\xae\xac\x57\x8d\xe8\x6a\x63\x56\x30\x36\x85\xdc\xa0\xb0\x22\xf0\x5c\x6e\x43\x58\x0a\x17\x51\x21\xb5\x2c\xc5\x8a\xc8\xbf\xa1\xe4\x38\xfc\xcb\xde\x2c\xf7\x81\x17\xb1\x55\x61\xc5\x64\x2c\x07\xab\xc2\x0e\x25\x9a\xb7\x27\xce\x6c\x22\xcb\x60\x05\x97\x0c\xa6\xcc\xdc\x49\x79\xf6\x92\xdc\xc3\x0e\x5b\x71\xa2\x9b\x48\x36\xde\xc4\x3c\xe1\xc6\xc9\x2c\x1e\x51\x0e\x64\x51\x77\x02\x2b\xf1\x3a\x76\xfc\xd7\x87\x92\x20\x6f\x17\x49\x22\x80\x25\xac\x74\x48\x02\x58\xc2\x3e\xc0\x12\x5a\x2c\xe3\x4e\x10\x50\xf6\x7c\x3c\x5f\x53\x75\x38\x1e\x27\xe4\x91\xe9\x0c\x47\xa5\x2f\x04\x1f\xe4\xee\xed\x9f\xc1\x54\x18\x4c\x85\xd5\x94\x09\xa6\xc2\x6f\x2b\x5c\x6b\x5b\xf7\xbd\xfb\xfa\xb5\xbd\x90\x47\x76\x33\x07\x27\x64\xb8\x84\xc3\x25\x1c\x2e\xe1\x70\x09\x6f\x8b\xc2\xc1\x5f\xb7\xa2\xd2\x7d\x14\x5e\xba\x23\xbb\xd6\x83\x93\x2e\xdc\xf8\xee\xe3\xe0\xd2\x5a\x36\xcf\xe0\xd2\x0a\x2e\xad\xe0\xd2\x0a\x2e\xad\xe0\xd2\xca\x7e\x0f\x2e\xad\xbd\xee\xd6\x6f\xd6\x6c\x57\xad\x31\xf0\x98\x0c\x2a\x90\x64\xb2\x9f\x06\x7e\xda\x60\xe1\xd7\x82\xfb\xae\xf0\xc4\xf7\xe5\x15\x1e\xe4\xf0\xef\xd0\x2f\x8d\x57\xce\xc3\x6f\x32\x27\xf2\x98\xb4\xce\xbb\x2f\xbc\x7c\xe8\x71\x81\x6e\xa2\x46\xf5\xf0\x47\xbe\x87\x3c\xfb\xf2\x4e\x78\x63\xd1\x67\x35\xbb\xfa\x2d\x5a\xea\x2a\xce\x68\x30\xdb\x2d\x25\xd4\x1b\x06\x1c\xb0\x4c\x78\x0f\xe3\xd9\xff\x1d\xe6\x80\xff\x06\x15\x37\x59\xf5\xb3\xfc\x3e\xab\x7e\x9e\xdd\x6a\xd5\x8f\x77\x53\x22\xb1\xfd\xa5\x06\x76\x34\xff\xed\x23\x09\x77\xf7\x87\xbc\x0f\x5b\x5a\xed\xc6\x78\x63\x17\x5b\xe3\x26\x7f\x73\xd7\x5b\xd3\x91\x0d\x97\x5c\x4b\x72\xbd\xd5\xab\x2e\xd4\x38\x6c\xb2\xe2\x85\x22\x82\x07\x68\xa5\x08\x46\xc4\x60\x44\x3c\x46\x23\xa2\x09\x3e\x18\xcc\xb0\x20\x4c\x55\xe8\x16\xe5\xeb\x04\x5e\xf7\x8b\x4e\x39\xa9\x03\x1a\x40\x5a\xb4\x47\xf6\x42\xce\xae\xaa\x37\x16\x28\x5f\xd2\x5e\xde\xb0\x9d\xed\xc0\xf5\x91\xc3\x31\xb3\xbd\x55\x29\x3d\x18\xa1\x82\x11\xaa\x3c\xcf\xfd\x19\xa1\xd6\xa0\x7b\x70\x16\x35\x5e\x55\xdf\x88\x21\xed\xc0\xef\xad\x43\xb2\xa3\xbd\xd5\x9b\x2b\xd8\x97\xb6\x40\xae\xb7\x7a\x8b\xbd\x96\x49\x79\xff\x5a\x7a\xb0\xa4\x05\x4b\x5a\xb0\xa4\x05\x4b\x5a\xb0\xa4\xf9\xbf\x07\x4b\x5a\x13\xdd\xf7\xa6\x9e\x58\x11\xc8\xab\x3e\xfa\xe1\x7f\xf2\xbf\x33\xb5\xc4\x57\x2d\x9a\x32\x58\x2f\x04\x81\x53\xc1\x85\xcd\x7f\xdc\x46\x7d\x52\xac\x0a\x42\x2f\x54\x34\x68\xd0\x45\x4c\x56\xd1\xad\x79\xfb\xb8\xca\x92\x2e\x0c\x7a\xbf\xf9\xaf\x8b\x0b\xdf\xee\x00\xb9\x95\xa1\xa6\xc4\xa6\x57\xc7\x51\xcb\xdd\x7c\x94\x5f\x0c\x12\xbd\xd0\x24\xd1\x92\x8c\x95\xda\x0e\x44\x1a\x7d\xf5\xac\xb8\xda\x95\x7f\xd5\xdc\xb8\x2a\xee\x50\xc5\x12\xda\x58\xc7\xb7\x55\xa7\xd8\x6d\x36\x28\x21\x0b\x7a\xdf\x12\x73\xfa\xdb\xe0\x04\x9f\x88\xda\x17\x1b\x58\xf7\xec\x37\x9e\x7b\x41\x46\x44\x10\x16\x91\x03\xcc\xc8\x5a\x25\x55\xf0\x8b\x99\xa4\xcd\x13\xcc\xca\x77\xfb\x53\x55\xdc\xea\x69\x05\x51\x37\x54\x6f\x0e\xd5\x9b\x43\xf5\xe6\xf2\x51\x0f\xd5\x9b\xdf\x46\xf5\xe6\x16\x5c\x76\x0b\xb6\xbd\x66\x83\xed\x81\xea\x5d\xee\xeb\x77\x31\x49\x88\x22\xb5\x82\xd2\x25\x3c\x7e\x2d\x41\xc9\xf4\xfe\x36\x64\x25\x33\x97\x20\x2e\x7d\x33\xca\x92\x5b\xf0\x83\x50\x96\xcc\x59\xf3\x75\x26\x48\xae\xf0\x94\x6b\x93\x51\xf1\x36\xcd\x2c\x47\x91\x40\x71\x38\x76\x96\x9d\x5f\x8a\xfb\x66\x0e\xc1\x86\xb4\x38\x92\x60\x43\xda\x8c\x2d\x16\x7e\xac\x40\x61\xda\x3b\xab\x5c\x47\xc0\x2a\xf0\xcb\x4b\x78\xfd\x38\xb9\x66\x79\xec\xc7\xcc\x3b\xbd\xd6\x0e\x83\x89\x7c\xbb\xec\x73\xe1\x88\xb7\x9b\xb8\x0d\xfd\x39\xde\x79\x1f\xca\xb5\x51\x77\xac\x0f\xf9\xf2\x28\xd6\xd1\x3a\x5e\x8f\xc4\x31\xb1\xff\x57\x71\x49\xbc\x39\x31\xf9\x9b\x33\x1a\x04\x1f\x4b\xf0\xb1\x04\x1f\x4b\xf0\xb1\x04\x1f\x0b\x5a\xd7\xc7\xb2\x2d\x49\xeb\xa8\x1d\x12\xc7\x29\x2a\xed\xd7\x23\x11\xa4\xa5\x63\x97\x96\x0e\x45\x29\x3c\x2e\x17\xcb\x86\x65\x95\x0f\x45\x2f\x7c\x4b\xc6\xc1\xe3\xd2\x11\x0f\xce\x1c\xf8\xcd\x31\xbe\xf5\x4c\x7f\x47\x3b\xdd\xa0\x15\x07\xad\x38\x68\xc5\x41\x2b\x0e\x5a\x31\x0a\x5a\xf1\xca\x5a\xf1\x5b\x12\x14\x8f\x4e\x43\x0e\xb2\xe2\x6b\x4f\xf8\x1b\x93\x15\x0f\xc5\x26\x50\x77\x72\x0f\xd4\x32\xf0\x6d\x06\x14\x1d\xf1\x4d\x10\x72\x5e\x91\xb7\x74\x21\xe0\xe6\x5b\xe1\xa3\x07\x1e\x70\xf3\xf6\xec\xaa\x47\xcc\x23\x43\x36\x70\x10\x2b\xb7\x34\xdd\x60\x82\x0c\x26\xc8\x60\x82\x0c\x26\xc8\x60\x82\x44\x87\x9d\xfc\xbc\xd4\xe0\x14\xf2\x9f\x77\x65\x58\x3d\x62\x49\x31\xe4\x42\x07\x61\x71\x7b\xd3\x3d\x54\xdd\xf9\x90\x6c\x90\x72\xf5\xba\x11\x4b\x91\xb8\xed\xb4\x7f\x6b\x60\x60\x57\x54\x3a\x45\xf7\x98\xf8\x95\xdc\x35\x4b\xda\x04\x7e\xd7\xad\xe8\x9b\x45\xdf\xdd\xa0\x1a\x3d\xf0\xae\x37\x5a\x8e\x3e\x80\x03\x37\x10\x27\x80\x03\xaf\xc4\x4d\x02\x38\xf0\x3e\xc0\x81\xb7\xae\xac\xcc\xb8\xac\xbf\xb9\xef\xc8\x98\x4a\x38\xb2\x0d\x35\x9f\xdc\x9d\x0d\x85\x07\x60\x2b\x7c\xd4\x2f\xa0\x98\xcc\x12\x3e\x07\xfb\x50\xc3\x75\xee\xba\xb8\x5d\x90\xa8\x0f\xfd\x46\x77\x23\xdf\x97\xce\x71\x28\x32\x69\x3e\xef\x83\x90\x42\xfd\x90\xf8\x52\x31\xb3\x26\xf7\xf6\xa3\xf5\x69\x83\xe9\x8f\x4a\xb8\x9f\x96\x6e\xf1\x3e\xab\x7e\xe0\x4c\x60\x43\xe2\x2e\xc4\x61\xaa\xbc\xa2\x1e\x52\x4b\x58\x33\x22\xd4\xdc\x7b\x93\x4c\x67\x6a\xfe\x9f\x7d\x46\x55\xe6\x40\xa4\x63\xc6\x85\x61\x6f\xfa\xe3\x09\x66\x71\x42\x84\xbe\x5d\x5d\x3b\x11\x66\x8c\x2b\x90\x3b\x60\x02\x31\x7a\xa6\xd8\x48\x29\x9d\xdb\x5e\x6b\x37\xfa\x5f\x8f\xe8\x9c\xed\xd7\x4f\xfe\xf6\x8a\x3d\x2f\x85\x87\xbf\x24\x33\x41\xf4\x45\x1e\x9f\x68\x69\xd6\xc7\x89\xa7\x4c\x2a\x82\xb5\x22\xf0\x29\xe1\x43\x9c\x24\x73\x94\x16\x8d\x1a\xba\x97\x03\x99\xe8\xa1\x30\xc8\x57\xe7\x88\x81\x0f\xb6\xe5\x83\xc7\x14\x49\xba\x5f\x3e\x18\xb8\xc6\x37\xc2\x35\x14\x96\x4f\x7e\xe1\x3e\x10\xa7\x5c\xed\xc5\x42\xd1\xaa\x72\x05\xab\x7f\xb5\x79\xaf\x50\xa1\x76\xc9\xbb\x7e\xcd\xda\x25\xaf\x96\xaa\xd8\x16\x9f\xd9\xba\xb6\xf0\x18\xa6\x57\x1e\x87\xfb\xd1\xef\xd0\xfd\x96\xb7\xec\x7e\x79\x26\x42\x52\x6e\x5f\x13\x44\x89\xf9\x00\x2b\xa5\xd9\xd6\x36\x4b\xe7\x3e\x60\xf9\xd4\xba\x74\x6e\xe1\xe5\x43\x67\x62\x85\xda\xb9\x85\x91\xef\xa1\x76\xee\xf2\x6d\xfc\xe6\xc4\xbd\x96\x47\x72\xc9\xbc\x8f\xaf\x0e\x63\x5b\x06\xb3\xc2\xc4\xbf\x95\x9a\x8c\xed\x18\xee\x32\xf7\xdf\x31\xd6\x67\x6c\xba\x41\x0e\x66\x84\xa5\x4b\xec\x2d\x9e\xdc\xe2\x95\x1c\x8e\x68\x13\x8d\xda\x9e\xc5\xa3\x39\x81\x25\x49\x6b\xc9\xdc\xee\xdd\x02\xd9\xd7\xdd\x4e\x38\xbc\x79\x15\x84\xc5\x6d\x8f\x6a\x37\xee\x53\x6f\x35\x56\x89\x98\xed\x39\xed\xcf\x38\x83\xb2\x33\xe4\x62\x68\xb3\xa3\xa9\x26\x80\xbf\x4e\xa5\xaf\x30\x46\x5c\x18\x69\x33\xb6\x67\xd6\xb8\x83\x3a\x0f\x9d\xfb\xee\xc3\x39\xea\xa0\x18\x2b\xac\x0f\xa9\xd0\x4a\xa7\x24\x4c\x19\x83\x05\x53\x54\xcd\xd1\x94\xc7\x24\x31\xd6\x02\xe3\x79\xb8\xc4\x0a\x5f\x60\x85\x13\x3e\x3e\x43\x1d\xf8\xa7\xfe\x98\x4a\x84\x13\xc9\x11\x76\x1b\x87\xc4\xae\x09\xcc\x62\xc7\x1e\x30\x8a\xf8\x74\x46\x13\x13\xc6\xe9\x7b\x87\x29\x8b\xe9\x33\x8d\x53\x9c\x20\x3e\x04\x4b\xcb\x59\x9f\x75\x9f\x09\x53\x29\xe8\xb8\x38\x49\x90\xed\xd6\xbd\xe0\x99\x39\xdc\x28\x25\x9d\xd2\x04\x0b\x2d\x3d\x9a\xd1\xde\xd8\xb6\xd0\xc3\x84\x64\x63\x85\x71\x69\x6a\x4e\xf1\x13\x91\x88\x2a\x34\xe3\x52\xd2\x61\x92\x1f\xe3\xc7\x1e\x82\x71\x5f\x5c\xf5\xc0\xe5\x16\x29\xc4\x0d\x1f\x74\x9d\x5b\xff\xb3\xeb\x71\x8a\x19\x23\xd0\x31\x57\x13\x22\x6c\xf7\xf6\xe5\xd7\xf6\x9e\x3d\x5e\xdb\xe8\xc8\xee\xe5\xa2\xfb\xec\xa1\x73\xff\x73\x7d\x38\xe4\xe2\x93\xab\xce\xe3\xf5\xc5\x4f\x83\xdb\xab\x4e\x45\x98\xa5\xdd\x56\xad\x3d\x71\xfe\xc8\xd6\x3f\x4c\x47\x57\xf1\x79\xff\x46\x87\x56\x16\x87\xd6\xe6\x86\xb6\xb6\x86\x76\x86\x86\x7a\x2b\xc3\x0e\xa2\xa0\xda\x9b\x02\xae\xa8\x2c\xda\x02\x8e\x23\x37\xbe\x30\x64\x3d\x87\x5d\x1b\x02\xbe\x39\x2b\xc0\x37\x6a\x02\x08\xfa\xff\x4e\xe8\xf6\x56\x95\xff\x03\xd7\xfc\x37\x09\xe9\xcc\xd2\xbd\x42\x4c\xe7\x62\x4c\x27\x09\x21\x9d\x21\xa4\xb3\x2d\x81\x42\x48\x67\x08\xe9\x3c\x86\x90\xce\x56\x8a\x56\xf0\xd8\x1e\x82\xc7\xf6\xc0\x75\xb4\x43\x76\xd8\xbe\x55\xcd\x25\x38\x2f\x83\xf3\x32\x38\x2f\x8f\xf4\xe4\x06\xe7\x65\x7b\x1a\x05\xe7\x65\x70\x5e\x06\xe7\x65\x70\x5e\x06\xe7\x65\x70\x5e\xbe\xa6\x69\xe4\x10\x62\x43\x8f\xd9\x65\x1b\x3c\xb1\x4b\x3c\xb1\x07\xae\xe4\x1f\xa4\x23\xf6\xad\xea\x08\x41\xb5\x0f\x7e\xc9\x8d\xa6\x7d\x50\x4a\xfd\x5b\xbb\x37\x83\x2b\xb6\x3d\x21\x82\x2b\xb6\x35\xa9\x82\x2b\xb6\x81\x38\xc1\x15\x1b\x5c\xb1\xdf\xa0\x2b\x96\xc6\x1b\x23\xcc\xb7\xd1\x5b\xb4\xac\x18\x77\xc1\x3c\x94\x19\xb7\xc4\x6f\x20\x3d\x62\xf9\x94\x59\x80\x5a\xe8\x33\xbd\xf8\x28\x14\x99\xca\x09\xef\x43\xa1\xd9\x44\x63\xc1\x4a\x73\x70\x05\x80\x06\xfa\x49\x6e\x54\x3c\x40\x48\xcc\x4d\x74\x14\x6f\x62\x9e\x9a\xe2\xb4\x0f\xbf\x0e\xf3\xc1\x4d\x3b\x08\x7e\x41\xf0\x0b\xb2\x4d\xcb\x09\x07\xd9\xe6\x70\x65\x9b\xd7\x52\x58\x0e\xef\x78\x1e\x9d\x7d\x62\xe7\x62\x69\x01\xca\xb9\x11\x11\xd2\x54\x85\x03\xd7\x5d\x3a\x4b\x38\x8e\x97\x05\xc8\xfd\x86\x72\x59\xad\x41\xdc\x34\xed\xea\x0f\x0e\x5c\xda\x5c\x88\x8d\x33\x23\xff\x16\x40\x20\x6b\xa7\xfe\xaa\x38\x90\xb0\x7f\x33\xd4\xa2\x0c\x96\xa8\x10\x3d\xba\x2b\x35\xab\xbc\xc1\x5b\x69\x54\xf2\x28\xc0\x17\xf5\x48\xf7\xa1\x3f\xbd\xc9\xec\xbb\x37\xec\xc9\x0a\xde\xaa\xe6\x90\x82\x2d\x45\xb7\xf5\xd9\x83\x56\xa4\xf8\x74\x48\x59\x16\xcc\xe3\x76\xc8\x1f\x1d\xb9\xfe\x08\x40\x7a\x16\x5c\x2f\x99\xe7\x7a\xb6\x2c\xb7\x96\x49\x61\xe8\x54\x8b\xc0\x11\x11\x0a\xe8\xcd\x99\x22\x5f\x95\x44\xa7\x28\xa1\x4f\x04\xbd\xd7\x47\x1e\x75\x6e\x7b\xef\x4f\xd0\xfb\x2b\x9c\xb2\x68\x82\x66\x09\x66\xf2\xfd\xc1\x48\x6f\x41\x21\x0f\x85\x0e\x82\x2b\x66\x17\xda\x7b\x30\x57\x2c\x9d\x76\x30\x57\xbc\x19\x57\x4c\x4b\x9d\xc1\x64\xac\xe1\x29\x39\x14\xed\xe1\x68\x00\x3e\x82\xf6\x10\xb4\x87\x8a\xa9\x05\xed\xe1\x1b\xd4\x1e\x0e\x83\xc2\x41\x75\x08\xaa\x43\x50\x1d\x82\xea\x10\x54\x87\xad\x93\x31\xa8\x0e\x4d\xaa\x03\xfc\xe5\x40\x29\x56\xd5\x23\x5a\xeb\x0f\x2d\x10\x28\x8e\x46\x79\x08\x8a\x43\x50\x1c\x82\xe2\xb0\x77\xc5\xe1\x60\x26\xf4\xf6\x92\xe9\x43\x3a\x7a\x48\x47\x0f\xe9\xe8\x35\xe9\xe8\xfb\x12\xd9\x8c\xbc\x76\x64\xf1\xf7\x47\x21\xb4\xbd\x5a\x00\xfe\xdb\x13\xe3\x42\x4a\x41\x48\x29\x08\x66\xc8\x90\x52\x10\x0c\x6d\xc1\xd0\x76\xd0\x86\xb6\xd7\xb2\x9e\xef\xf9\x78\xee\x41\x38\x3d\xf0\x88\xe5\xbf\x1c\x83\x04\xba\xc7\x98\x83\x60\x65\x0b\x56\xb6\x6a\xca\x1c\xa7\x7b\xfe\x60\x6e\xfd\x80\x1e\x13\x24\xfe\x10\x78\x10\x02\x0f\x96\x12\x27\xe8\x43\x41\x1f\x3a\x38\x7d\xe8\x15\x15\x85\x83\x0b\x53\x0e\x1a\x43\xd0\x18\x82\xc6\xf0\x66\x35\x86\x83\xa1\x70\x50\x17\x82\xba\x10\xd4\x85\xa0\x2e\x34\x13\x27\xa8\x0b\x41\x5d\x08\xea\xc2\x41\x87\x26\x1f\x8b\xc2\x10\x94\x85\xa0\x2c\x1c\xb6\xb2\x70\x30\x13\x0a\x41\xbc\x21\x88\x37\x04\xf1\x7e\x33\x41\xbc\x6f\x54\x61\xdf\xa9\x98\xe6\x58\x64\x93\xe0\xb5\x28\x2f\xfd\xb2\xc0\x58\x0f\x56\x64\xca\x47\xbb\x2e\x44\xe2\xb6\x48\xfd\xc2\xc5\xd3\x28\xe1\x2f\x83\x4c\xab\xb3\x41\xe1\xf9\xbf\x6d\x3e\x9f\xf7\x43\x2e\x3c\x7b\x3f\x66\x42\xb4\xf7\x9b\x6b\xbd\x20\x43\xcf\xd2\x65\x48\x9a\x12\x71\x81\xd2\x59\x0c\x7f\x46\xa9\x54\x7c\x5a\x2f\x55\x7f\xc6\x2a\x9a\xe0\x61\x42\x3a\x59\xbf\x17\x9c\x8d\xe8\x38\x35\xfb\xe3\x37\x60\x85\xd8\x49\x36\x27\x4e\x32\xd2\x4c\xd1\x8d\xaf\x49\x12\x7f\x84\x71\x7c\xb1\x6f\xe6\x9d\x1c\x45\x00\xfa\xe2\xb0\xcd\x74\xf6\x85\xcc\x59\xdc\x45\x9b\xb2\x38\xaf\xb5\xc3\x10\x7f\x16\xcf\xc4\x32\x51\x15\xac\xd0\x99\x66\x42\x63\xd8\x9c\x2f\x13\x0a\x96\x35\xb0\xc4\x81\xf5\x29\x6f\x18\xbd\xd0\x24\x01\x89\xc3\xd0\xe2\xf0\x66\xde\x4a\x7b\xb1\x13\xb7\x67\xef\x4d\xcc\xdb\x31\x8f\x25\x33\x77\x47\xd0\xb8\x21\x8e\x74\xda\xaf\x89\xb0\xbb\x84\x91\xbd\x2a\xce\x6e\xed\xf5\x59\x93\x53\xf5\xe1\x7f\x2a\xaf\xc4\x36\x85\x19\x5f\xfb\x1e\xfc\x44\xd4\x9b\xb9\x04\x3f\x11\xb5\xaf\x1b\xf0\x2d\x5e\x7b\xeb\xde\x75\x8d\x8c\x4f\x90\x11\x11\x84\x45\xe4\x58\x73\xb2\x16\xae\xb8\xa3\x9d\xee\x5a\x37\xdb\xd1\xce\x76\x15\x03\xd6\x17\x33\x49\x6b\xae\x9a\x3a\x96\xeb\x4f\x55\x71\xeb\x5e\x2e\xb8\xc0\xac\xb1\xea\xa1\x73\xff\xf3\xe0\xae\x7b\x7f\xf3\x78\x77\xd1\x3d\x47\x1d\x38\xe8\xf0\x8d\x61\xef\xf4\x9f\xd0\x1c\xe4\xc3\x66\xc6\x30\x61\xee\x38\x09\xac\x1a\xdc\xe0\x9a\x8a\xe8\x14\x5d\x5c\x3d\xde\x3f\x74\xef\x6a\x1a\xb4\xcc\x9f\xb2\x31\x52\x64\x3a\x4b\xb0\x22\x31\x7a\x4a\x87\x44\x30\x02\x8a\x55\x92\x4a\x45\x44\xee\x1c\x37\x8d\x76\xff\xab\x7b\xf1\xf8\xd0\xbb\xb9\x1e\xfc\xfd\xb1\xfb\xd8\x3d\x47\xee\x16\xd1\xcd\xea\x71\xe9\x51\xc4\x73\x86\xa7\x34\x32\x3f\x64\x75\x2e\xd1\xef\x29\x49\x09\xc2\x52\xd2\x31\x9b\x12\xa6\xca\x2d\xba\x01\x5f\x75\x7e\xec\x5e\x15\x5b\x9e\x10\xf4\xf3\xdf\xf2\x41\x25\x78\x48\x12\xeb\xad\x07\x07\xb4\xbe\xbc\xf2\x8e\xac\x1b\x3f\x35\x54\xfd\xfb\x63\xe7\xaa\xf7\xf0\xeb\xe0\xe6\xe3\xe0\xbe\x7b\xf7\x4b\xef\xa2\x3b\xb0\xc6\x98\x8b\x8e\xee\xb7\xd0\x93\xb5\xd9\xa0\xdf\x53\x9c\x50\x35\xd7\xeb\x28\xcd\xa5\x8f\x5e\x26\x84\xa1\x94\xc1\x05\x62\x2c\x85\x98\x79\x9d\xca\x19\x89\xcc\x8c\x6e\xaf\x1e\x3f\xf5\xae\x07\x37\xbf\x74\xef\xee\x7a\x97\xdd\x73\x74\x4f\x12\xb0\xa5\x39\xa2\xc3\x2a\xce\x92\x74\xac\x39\xc1\x74\x96\x10\x4d\x0d\x63\x2b\x1c\x92\x09\x7e\xa6\x5c\xd8\xeb\x78\x4c\x9f\x09\x33\x74\xd4\xdb\xca\xb4\xef\x6c\x56\x03\x8f\x74\x37\xd7\x1f\x7b\x9f\xce\x51\x27\x8e\xb3\x39\x48\x68\xa3\xb0\x73\xdc\xd1\x3d\x2d\x0e\x9b\x8e\x68\x04\xdd\x9b\x4d\xc4\x9f\x89\x10\x34\x26\xa5\x7d\xd4\xb9\xbf\xef\x7d\xba\xfe\xdc\xbd\x7e\x00\x8a\x29\xc1\x13\x89\x26\xfc\x05\x1c\xbd\x30\x43\xf0\xff\x3e\x63\x9a\x40\x67\x6e\xb1\x38\xf3\x4f\xbf\xd7\xb3\x31\x6b\x8a\x94\xbd\xba\xef\xb2\x70\xf0\x16\xad\x7d\xe5\x93\xb4\xf8\x46\xe9\x58\x34\xbd\x50\xd8\xe5\x8b\x2f\x2e\xdb\xad\x8b\x5f\x94\xb6\x5b\xbd\x8d\x73\x61\xbf\xd4\xcf\x34\x5f\xeb\xd6\x26\xce\x22\x0d\x77\x21\x63\xbb\xaf\xdf\xc5\x24\x21\x8a\xd4\xca\xc4\x97\xf0\xf8\xf5\x65\x62\x33\x8e\x37\x23\x16\x9b\xe9\x04\xc9\x38\x48\xc6\xad\x27\x1c\x24\xe3\xaa\x09\xbf\x11\xc9\xf8\x00\xad\x3e\x8e\x45\x1d\x9c\xd5\x27\xf8\x47\x4a\x2b\x75\x9c\x57\xe0\xab\xb9\x47\x82\xff\x60\xb5\x2b\xe4\xf8\xe7\x1d\xfc\x07\xc1\x7f\x50\x79\x93\xbc\x79\xaf\xc1\x71\x5e\x0d\x7b\x74\x1a\x04\x35\xa2\x61\xbe\x41\x8d\x38\xb2\xd9\x06\x03\x7b\x30\xb0\x07\x03\x7b\x30\xb0\x07\x03\x3b\x5a\xd7\xc0\xde\x82\xcb\xee\xc3\x9c\x7a\xa0\x41\xc4\x6f\xc5\x6d\x70\x9c\x72\xf1\x7e\xbd\x06\x41\x34\x6e\x98\x6f\x10\x8d\x8f\x6c\xb6\x07\x68\x17\x39\x2c\x0b\x3b\x8d\xab\x0c\x22\x7b\x84\xa6\x77\x23\x69\x0b\x4f\xef\x08\xda\x8b\x8f\x82\x9d\xbf\x1a\x42\x7d\xc0\x73\x0f\x78\xee\x01\xae\x25\xe0\xb9\xa3\x00\x48\x12\x00\x49\x0e\x19\x90\xa4\xc5\x32\xbe\x05\x3c\xf7\xfd\x58\x18\xde\x50\x92\xb2\x13\x0c\x65\x21\x76\x83\xcb\x65\xc1\x1b\x60\x25\x48\x67\x09\xc7\x71\x13\x58\x8c\x93\x23\x7d\xc0\x98\x06\xd1\xd3\xb4\xfd\x65\x51\x79\x3a\x58\xc9\xd3\x8d\xd5\x8c\x7c\x5f\xe6\x83\x83\x51\xb8\xdc\xb4\x0f\x42\xcd\x6a\x59\xbb\x75\xeb\x6a\x57\xd5\x26\x6f\xad\x61\xc9\xbf\x1e\xd3\x36\xdf\x13\xa4\xea\xdb\x2b\xfc\x15\xa0\x9f\x02\xf4\x53\x2d\x65\x8e\x13\x27\xf6\x60\x24\xba\xa0\xa4\x07\x4c\xd5\x80\xa9\xba\x0b\x8d\x3e\x98\x30\x96\x4e\x3b\x98\x30\xde\x04\xa6\xea\x8a\x3a\xc4\x0e\x6b\x32\x6c\xa6\x4d\x1c\x55\xce\x5e\xd0\x26\x82\x36\x51\x31\xb5\xa0\x4d\x7c\x83\xda\xc4\x61\x50\x38\xa8\x12\x41\x95\x08\xaa\x44\x50\x25\x82\x2a\xb1\x75\x32\x06\x55\xe2\x75\xea\x35\x54\xe9\x13\x2d\x73\xdd\x8e\x4a\x99\x08\x8a\x44\x50\x24\x82\x22\x11\x2a\x52\x34\xcf\x29\x54\xa4\x08\x15\x29\x42\x45\x8a\x37\x50\x91\x62\x9f\x22\x5c\x0d\x0c\xf2\x71\xc4\xef\x1f\x85\x10\xf7\x6a\x01\xfc\x6f\x4f\xa4\x0b\x29\x09\x21\x25\x21\x98\x28\x43\x4a\x42\x30\xc2\x05\x23\xdc\x41\x1b\xe1\x5e\xcb\xb2\xbe\xe7\xe3\xb9\x27\x41\xf5\x48\xa2\x9d\xff\x72\x0c\xd2\xe8\x9e\xe3\x13\x82\x05\x2e\x58\xe0\xaa\x29\x73\x9c\xae\xfc\x83\x91\x02\x8e\xb1\x24\x65\xd0\x00\xda\x13\x22\x04\x29\xb4\xa7\x55\x08\x52\x68\x20\x4e\xd0\x8f\x82\x7e\x74\x70\xfa\xd1\x2b\x2b\x0e\x07\x1b\xe2\x1c\x34\x08\xf3\x5e\xd0\x20\x82\x06\xf1\x46\x35\x88\x83\xa1\x70\x50\x1f\x82\xfa\x10\xd4\x87\xa0\x3e\x34\x13\x27\xa8\x0f\x41\x7d\x08\xea\xc3\xd1\x84\x35\x1f\x93\x02\x11\x94\x87\xa0\x3c\x1c\xb6\xf2\x70\x30\x13\x0a\x01\xc0\x21\x00\x38\x04\x00\x7f\x33\x01\xc0\x6f\x54\x81\xdf\xae\xd8\xf6\x6f\x96\x50\xef\x3c\x01\x23\x93\x44\xde\xfd\x98\xf0\xe1\xc3\x7c\x46\xf4\xff\x5f\xd2\x29\x61\x12\x28\x41\xd5\xdc\x17\xd3\x6a\x36\xd4\xe2\x56\x7a\x77\xdf\xbb\xfe\x74\xe5\xd7\x1d\x79\xf7\xf9\xf1\xea\xa1\x77\xdb\xb9\xcb\x96\x3b\x9b\x95\xbf\xc4\xf6\xbb\x82\xa4\x69\x4f\xf2\x1d\xd1\x2a\x35\x30\x83\x7b\x85\x55\x2a\xd7\x1b\xd9\x5d\xf7\xbe\x7b\xf7\x0b\xd4\x4d\x19\x5c\xf6\xee\x3b\x3f\x5e\x15\xf6\x79\xe1\x79\xe7\xe2\xef\x8f\xbd\xbb\xfa\xe7\xdd\xff\xea\xdd\x3f\xdc\xd7\x3d\xbd\xeb\x5e\x75\x3b\xf7\xf5\x5f\x7f\xec\xf4\xae\x1e\xef\xba\x8d\xf4\x68\x1c\x6d\xb3\x6e\x25\x81\x48\x50\x3b\x00\x45\x96\x19\x8a\x9c\x86\x28\x93\x8a\x1d\x97\xaf\xea\xeb\x1c\x3d\x5a\x53\x05\xb5\x8d\x9b\x7b\xc3\x6b\xc8\xe8\x58\x31\x95\x78\x98\x90\x78\xa1\x25\x47\xc3\xba\x96\x70\x61\x50\x2f\x58\x7a\x92\xb4\x66\xe5\x91\x39\x3e\x08\xaa\x39\x29\xc2\xe2\x8a\x3e\xcc\x3a\xd4\xf6\xc0\x34\x4b\xa6\xcf\xa4\xd0\x53\x94\x0a\x41\x98\x4a\xe6\x88\x7c\xa5\x52\xc9\x85\x46\xdd\xf2\xd5\x35\x6b\x19\x42\xd6\xe0\x04\x4b\x34\x24\x84\x15\xc7\x2f\x48\x42\xb0\xac\x18\xb3\x5d\xfd\x76\x64\xc9\xd6\xca\x1a\x99\xcc\x1d\x3b\xc2\x34\x49\x05\x29\x9d\x16\x3e\x9d\x61\x41\x25\x67\xdd\xaf\xfa\x8a\xd6\x07\xf9\x06\x3e\xe7\x62\xbd\x13\xd3\xfd\xbb\xbf\x83\xaf\x8b\xff\xfc\xf4\x50\xfc\x57\xe1\xcc\x5f\x3d\x14\xff\xd5\xbc\xd7\xbd\x86\xcb\x3b\xfb\x14\x7d\x7a\x38\x47\x9f\x00\x62\x54\xa0\x87\x09\x36\x3b\xf6\xea\xe1\x1c\x5d\x11\x29\xe1\x97\xfc\x63\x45\x55\x02\x73\xfb\x91\x32\x2c\xe6\xc8\x4d\xdf\x94\x04\xc3\xd1\x04\x91\x8c\x34\x65\xe2\xb1\x7f\xa4\x0c\x2c\x12\x39\xf5\xae\xf8\x98\x46\x38\xd9\x8c\x88\x9d\xeb\x02\x1f\xb8\xb9\x6b\x24\x85\xff\xf6\x22\x2d\x3a\xd7\x97\x50\x6e\xcb\x0d\xb5\x62\xe6\xd7\x44\xea\x4d\x12\x71\x16\x5b\x9f\x9a\x16\x6a\xe6\x9e\xae\xf2\x0f\x0e\x25\xcb\x52\x49\xd9\x58\xb7\x88\x3e\xa0\x9b\xbb\x3e\xbb\x11\xb1\xb1\xef\x12\x2d\xe4\x9b\x3d\x47\x25\x62\x5c\x21\x3a\x9d\x71\xa1\x30\x53\x5a\xbf\x01\xe9\xc6\x52\xc4\x70\x80\x0b\x3e\x9d\xa6\x0a\xeb\x83\xb6\x40\x54\x66\xac\x3c\xf7\x44\xf5\x62\x70\x84\x55\xd0\xd0\x88\x3f\xf9\x5c\x66\x42\xb7\xaf\x45\xaf\xa2\x69\x80\xc6\x0b\x1a\xba\x6b\x02\x0b\x81\x8b\x17\xf0\x3b\xaa\xc8\xb4\xfc\x7e\xcb\x6b\xf7\x5f\x95\x76\x8f\x0b\x93\x15\x41\x44\x47\x44\x13\xaa\x48\xa4\xf4\x11\x5c\x6b\x4f\x3c\x5e\xff\x7c\x7d\xf3\xc5\x17\x8c\xde\x75\x3e\x5f\xfe\x47\x01\x06\xb6\x73\xf7\x79\xe1\x87\xc1\x2f\xff\xb1\xf0\xcb\xff\xbf\x71\x3f\x95\x7b\x5a\x30\x5f\x78\x73\x39\x05\x4d\x01\x4c\xdd\x6e\xaa\x88\x4e\xf1\x98\x20\x99\xce\xf4\x0e\x90\x67\xc5\xf5\xd5\x92\xf2\x15\xc7\x31\x65\x63\x53\x55\xea\x8a\x2a\x22\x70\xf2\x19\xcf\x3e\x3a\xb3\xfc\x1a\xd4\xf9\x3f\xf7\x85\xca\x66\xef\x7e\xed\x7c\xf6\x6b\xa3\xbd\xbb\xbd\xbb\x79\xb8\x69\x9c\x75\xa1\x85\xc5\x63\xa4\x1f\x9f\xc3\xff\xa2\x0f\x48\xb7\x9e\x09\xf4\x53\xa2\xb0\x56\x74\xd0\x77\xa6\x10\x4f\x96\x09\x43\x59\x02\xa7\x66\x26\xe8\x94\xc2\x95\x62\x0c\x93\xdf\x1b\x9d\x21\x53\x8a\xb2\x73\x63\x3e\x00\x23\x80\xbb\x94\x59\x8c\x45\x8c\xfe\x21\xcb\x85\xf6\xc0\x1e\x6e\x7e\x20\x31\x3a\x45\x13\xa5\x66\xf2\xfc\xc3\x87\x97\x97\x97\x33\xfd\xb6\x16\x60\x3f\xe8\x3f\x4e\x09\x3b\x9b\xa8\x69\x62\x0a\x0b\x6a\x2a\x9c\xa3\x5b\xc1\xf5\x15\x02\x76\x07\x22\x28\x4e\xe8\x3f\x49\x8c\x86\x86\xff\xf1\x11\xfa\x2d\xe2\x82\x9c\xe5\x0b\x63\x6d\x65\xf6\x1e\xb1\xf6\xb4\x0f\xfa\xa5\x0a\x66\x52\x5e\x4f\x14\x93\x88\xc6\x56\xcc\x20\x2c\xe2\x60\x50\x35\x2e\x18\xdd\x9e\xab\x5e\xa4\x15\xb5\x59\xaa\x72\x72\x7a\x3a\x18\x8e\x89\x57\x17\xd0\xca\xd7\xd9\x86\xd3\xfa\x5c\xcf\x68\xe3\xa9\x24\x02\xee\x56\x0c\xb7\xaa\x7b\x75\xa6\x27\x1c\xf1\x04\x0d\xd3\xd1\x88\x08\x3f\x7c\xe0\x44\x2b\x69\x54\x22\x41\x22\x3e\x9d\x82\xc4\xa0\xbf\x4a\xa5\xd9\xd5\x40\x31\x3b\xda\xb3\x3e\x83\xf5\xd7\xda\x1b\xec\x80\x98\x03\xab\x63\x84\xc4\x08\xb3\xb9\xe9\x66\x98\x8e\xfc\xf6\x4d\xc1\x4e\x1c\x23\xaa\xfa\xac\x93\x24\x48\x90\x29\x57\xc4\xab\xcb\x04\xae\xce\x22\xc1\x81\x45\x0a\x32\x4b\x70\x44\x62\xb3\x1f\x12\x1e\xe1\x04\x8d\x68\x42\xe4\x5c\x2a\x32\xf5\x1b\xf8\x0e\x4c\x50\x9a\x66\x54\xa2\x98\xbf\xb0\x84\x63\x3b\x8f\xf2\x67\xdf\x17\x4f\x63\xd7\x15\x53\xec\x0a\xc1\x05\xfc\xcf\xcf\x94\xc5\x5b\xe3\x50\x8f\xf7\xdd\x3b\xff\xdf\xf7\xbf\xde\x3f\x74\x3f\xaf\xc6\x7d\xb2\x9d\x05\xc3\x03\xd3\xc4\x39\xba\x37\x44\xe0\x42\x4b\x44\xa2\x66\x52\x9f\xed\x56\xca\x7f\xe0\xf1\x9a\xdc\xf7\x73\xe7\xfa\xb1\x53\xe0\x28\xf7\x17\x3f\x75\x2f\x1f\x4b\xfa\x80\x9d\x5f\x41\x86\x37\x5a\xad\xff\xdb\xc5\x4f\xbd\xab\xcb\x41\x85\x1e\xfc\xee\xae\x7b\x71\xf3\x4b\xf7\x2e\x57\x59\x2b\x49\x54\x1a\x4c\x99\x59\x3d\x18\xa6\x34\xe1\x31\x1a\xce\xab\x4b\x67\x6a\xc9\x39\x01\xcf\x79\x5e\x3c\xd6\xb4\x7a\x0e\xbc\xc9\x55\x31\xcd\xbf\x98\xf2\x98\x9c\xd8\x77\xa0\xe6\xa8\xb1\x19\x19\x89\xb9\xba\x61\xdd\x3b\x66\x9e\xfd\xc5\x94\x03\xcd\x08\x77\x8e\x3a\x48\xea\x17\x53\x7d\xa8\x05\x1d\x8f\xc1\x1e\x5a\x1a\xaa\x69\xcd\x7e\x0a\xe4\x85\xef\xcc\xfa\xcf\x04\x87\x73\xae\xbb\xb5\x86\xf4\xcc\xd8\x62\x3e\x84\xfa\xb4\xc5\x16\x05\x06\x3b\x4a\xc5\xd0\xdc\x62\x69\x22\xd4\xd2\xcb\x9c\x47\x63\x06\xd3\x87\x0b\xd8\x96\x34\x66\xdc\x99\x20\xcf\x94\xa7\xde\xa7\xb6\x04\x6a\x61\xc5\x2b\x9b\xcf\x09\x00\x64\x33\xb6\x9e\x52\x33\xd9\xf6\xa8\x6c\x41\xb3\xb0\x67\x68\x61\x24\xf8\xb4\xa2\x8d\xe2\x31\xe9\xdd\xdc\x2b\x81\x15\x19\xcf\x2f\x2d\xcb\x58\xff\x78\x5c\xde\x7c\xb9\xbe\xba\xe9\x5c\x0e\xba\x9d\x4f\xc5\x13\x9f\x3d\xb9\x7f\xb8\xeb\x76\x3e\x17\x1f\x0d\xae\x6f\x1e\x06\xee\x8d\xc6\x2d\x5f\xd3\xc1\xe2\x3d\x5d\x7c\xf1\x1c\x69\x96\x0b\xac\xf1\x85\x26\x89\xbe\x4c\x3c\xfe\x38\x24\x23\x2e\x0c\x9f\x9f\xba\x40\x13\x2b\xc2\x38\xda\x5a\x5d\xac\x34\x8b\x73\x30\xf8\x55\x35\x69\x8c\xf9\x4a\x10\x3c\x85\x7b\x02\x33\xd4\x65\xf1\xe9\xcd\xe8\xf4\xde\xfc\x38\xc5\xe2\x89\x88\xec\xd3\x17\x41\x95\x22\xac\xa0\xd2\x61\x37\xe4\x4c\x49\xcc\x3b\x38\x43\x77\x9a\xef\xeb\xf7\xb3\x4b\x4d\x6f\xf6\x98\x28\x4c\x13\x69\x07\x5b\xa0\xeb\x39\xba\xc2\x62\x9c\x9b\x17\xbf\xe3\xa3\x91\x69\xec\x7b\x33\x0c\x7d\x87\x15\x66\x51\xc1\x7b\xf5\xd6\x70\xf7\x22\xf4\x67\x5f\xce\xe4\xe1\xc5\x5d\xf5\x38\xdb\x6c\x4f\x3d\xde\x02\xc5\x8d\xc6\x5e\xd0\x0d\xed\x93\x8a\xbd\x06\x13\x37\x8f\x9b\x2f\x99\xea\xb6\x17\xb7\x53\xf1\xc5\x8a\xed\x64\x6a\x99\xe8\x95\x1f\x69\x6d\xb3\x62\x2f\x91\xaf\xd4\x1a\x0c\xfc\x71\x97\xb6\x50\xde\x0c\x58\x8d\xf1\x6c\x46\xb0\x90\x55\xab\x5d\x14\x03\x6b\xd6\xde\xf4\xe4\xf7\x61\x17\xd9\xf5\x73\x82\x38\x03\x83\x43\x26\x44\x94\x76\x64\x8b\x3d\x60\xda\x5a\xd8\x01\xb7\x50\x97\xfa\xc6\xd6\x80\xfe\x4c\xa5\x56\x1a\xcd\x8f\x3f\xda\xe2\xd4\xeb\x6d\x88\x8f\x9d\xde\x55\x49\xb8\x18\x5c\x76\x3f\x76\x1e\xaf\x9a\xcd\x84\x85\xef\xca\x4b\x8c\x4e\x91\x7e\x5e\x0c\x07\xa0\x23\x73\x67\xb8\x12\xdb\x46\xa5\x25\x0c\x8c\x56\xb6\xfc\xad\x31\xc3\xc7\x64\x96\xf0\xf9\x94\x30\x30\xf1\x14\x6e\x42\x4d\xcf\x11\xa6\xf6\x6a\xf1\x06\x0b\x56\x1c\x6b\x76\x83\x6b\xec\xd4\xd5\xf5\x26\x71\x76\xf3\x16\xcb\x7a\x97\x58\xf7\xad\x71\x0a\xda\xff\xbb\x57\x58\xad\x79\xc6\x3a\x17\x0f\xbd\x5f\xba\x45\xfd\xf0\xe2\xa7\xde\x2f\x55\x52\xcd\xe0\x53\xf7\xba\x7b\xd7\x79\x58\x22\x9c\x94\x9a\xac\x12\x4e\xa4\x1e\x70\xd9\x29\x4c\x65\x16\xe8\x14\x99\xe2\xe0\x88\x2a\x89\x9e\xa9\xa4\x43\x0a\xa5\xd4\xad\x83\xf5\xb1\x07\x9c\xf5\x19\x27\x34\xa6\x6a\xee\xc4\x17\xd3\x6f\x71\x1d\x35\x27\xb5\xed\x1b\xb3\x83\xef\x76\x05\x2b\x9f\x59\x1c\x37\xe9\x73\x04\xba\xed\x33\x28\x6d\xde\x67\x4c\x0b\xd2\x6c\x4c\x84\x19\x0e\x38\x95\xfc\xb1\x78\xcf\xf5\xa8\x7c\x61\x25\xa7\x5a\x26\xb4\x8e\x09\x23\x02\xca\xe5\x67\x9d\x18\x41\x4a\x10\xf6\x5e\xcb\x5c\xb3\x84\x46\x54\x25\x73\x14\x81\x0d\x0b\xcc\x99\x53\xcc\xf0\xd8\x0a\x07\xa0\xe6\x94\xb6\xc4\xdf\x4d\xbd\xf9\x9b\x91\x35\xed\x3f\x50\xb2\xe6\x31\x7b\xbc\xbe\xec\x7e\xec\x5d\x17\xb7\xc0\x4f\xbd\x4f\x05\x11\xf6\x73\xf7\xb2\xf7\x58\xb8\xcd\xb5\x24\xdb\x2c\xd7\x97\x9b\xad\x38\x8a\xd9\x4b\xe7\xe8\xd2\x7c\x7a\xae\x89\x5b\x51\x4c\x3f\x53\x7e\x4b\x74\xb8\x73\x91\x86\xee\x8f\x2e\x53\xa2\xd2\x2f\xd1\xd6\x84\x64\xbd\x42\x05\x1b\x52\x75\x04\xc6\x42\xdf\xd7\x65\x5f\x79\x79\xca\xee\x45\x08\x91\x3d\xcb\x2d\x4b\x7e\x68\x06\x18\x0d\xea\x8c\x58\x15\xde\xba\x9c\x61\xff\x02\x9e\xf7\x69\x2a\x95\xf1\x90\xc2\xe6\x44\x4f\x7f\x93\x9a\xa0\xe0\x41\x3d\x43\xf7\x84\xf4\x99\xb3\x1e\x8c\xa9\x9a\xa4\xc3\xb3\x88\x4f\x3f\x3c\xa5\x43\x22\x18\x51\x44\x7e\xc0\x33\x3a\xc5\x5a\x92\x26\x62\xfe\x61\x98\xf0\xe1\x87\x29\x96\x8a\x88\x0f\xb3\xa7\x31\x04\xf6\x38\x4f\xd7\x87\xac\xd9\x31\xff\xf7\xab\xbf\xfc\x70\x7a\xf5\xb7\x1f\xde\x2d\x5a\xc8\xea\xd6\xbf\xcb\x22\x3c\x93\x69\x62\x03\x01\x85\x4f\x1b\x77\xe4\x53\xb2\x6c\xbd\xaf\x8b\xcb\xb5\x99\xfe\x7a\x71\xfb\x58\xb0\x58\x17\xff\xf9\xb9\xfb\xf9\xe6\xee\xd7\x02\xa7\x7c\xb8\xb9\xeb\x7c\x2a\x30\xd4\xee\xed\x4f\xdd\xcf\xdd\xbb\xce\xd5\xc0\x3d\xdc\xc4\xf6\xf6\x33\xe3\x2f\xac\x48\x1a\xe9\x38\xe0\x42\x4f\xe7\xe8\x23\x17\xe8\xe7\x6c\x25\x4f\x87\x58\xc2\x15\xe3\xee\x2c\x79\x82\x66\x3c\x06\xc6\x8b\xc8\x6c\x42\xa6\x44\xe0\xc4\xda\x0c\xa4\xe2\x02\x8f\xcd\x4d\x2f\x23\x81\x55\x34\x41\x72\x86\x23\x72\x82\x22\xd8\x0d\xe3\x13\x58\x14\x50\xb5\xf8\xb8\x6c\xe7\xbb\x4b\x99\xa2\x53\xe2\x54\x70\xfb\xcf\x07\xb3\x18\x6b\x2c\xce\xcd\xc3\x4f\x45\x61\xef\xe3\xd5\xaf\x0f\xdd\xc1\xfd\xe5\xcf\x8d\xf4\x34\x9f\x15\x46\x76\x0f\x71\x55\x17\x3c\x49\xa7\xcc\xff\x7b\xfd\xb1\xf5\xae\x1f\xba\x9f\xca\xa3\xbb\xe9\x3c\x14\x77\xc6\x5d\x31\x6e\xef\xdd\x8f\x37\x37\x57\xdd\x82\xa7\xfb\xdd\x65\xe7\xa1\xfb\xd0\xfb\x5c\xd8\x3f\x97\x8f\x77\xe0\x03\x6a\x9c\xa6\x1b\x41\xc5\x44\xf5\xb4\xfc\x69\x6e\x9b\x15\xb6\xe2\x44\x1d\x1b\xfe\x6f\xce\xf2\xa9\x87\x97\x63\xa2\xdc\xc0\xaa\x73\x9a\x99\x54\x23\x33\xd2\x4a\x76\xa8\x8a\xcb\x84\xea\xd9\x71\xe3\x42\x37\x71\xe5\x87\x6c\x08\x30\xae\x33\xa3\x6c\xe3\x24\xe1\x2f\x26\x42\x79\x4a\xf5\xad\x6c\x8b\xad\xeb\x57\x64\xee\x21\x3c\xab\xe0\x78\xc5\x65\x21\x91\x20\xea\x33\x4f\x99\x5a\x7f\xcb\x75\xae\x0b\x7c\xa7\x7b\xfd\xcb\xe0\x97\x4e\x71\x07\xf6\xae\x9a\x59\x8d\xdf\x44\xc5\x55\xdc\xb9\xfe\x35\xbb\x84\x21\x8e\xfd\x24\xd3\x50\x8d\xec\x1a\x25\x54\x8b\xbd\x11\xd6\xda\x6b\x02\x12\x0d\x22\x14\x4c\x0e\x53\x3d\x39\x88\x9b\x9d\x19\x7f\x92\xe1\x4f\x66\x90\xe7\xee\x8f\x52\x7b\x12\xe8\x02\xd6\x54\x97\x26\x00\xed\x58\xad\x9a\x21\xc2\x9e\xa9\xe0\x0c\x84\xed\x67\x2c\xa8\x96\xc6\x4d\xcb\x7a\xae\xe7\xf0\xbf\xab\xb5\x09\x86\xd1\x12\xe3\xba\xe7\x42\x5d\x66\xf1\xc9\xeb\x59\x43\xaa\xe2\x74\x17\x23\x74\xab\x0d\x1d\x8b\xdf\x56\x2c\xce\x86\x71\xcc\xc5\x09\xff\x9e\x5c\x52\x9c\x68\x06\xb0\x3d\x79\xb1\x73\x7d\xdf\x2b\xca\x8f\x45\x35\xc3\xe3\xcb\x6b\xcb\x8b\x60\xa8\x34\x23\x77\xca\xc4\xfd\xdf\xaf\x8c\x76\xa1\x37\x89\x3d\xb7\x9e\x62\x01\x02\x90\xab\x42\x3a\xc3\x42\x96\xbe\x90\x08\x90\xcc\xf2\x38\x32\x7d\x67\x41\x94\xd6\x33\xa7\x71\x9f\x91\xaf\x33\xc2\x24\x04\x07\x98\xfb\x2c\xf7\xb5\xcb\x33\xd4\x1b\x01\x4b\xd0\xaf\x33\x94\x32\xeb\x00\xd3\x17\xae\x19\xe4\x89\x16\x65\xed\x10\x32\x0d\x11\x0c\x2f\x8c\xb8\x18\xb0\x7c\xf0\x7d\xf6\x25\x73\xa2\xc1\xa3\x11\xd7\x0c\x48\xaf\xa2\x6d\xef\x1c\x61\x26\xe9\x09\xd2\x0a\x4b\x79\x4d\x21\x23\x42\x2b\x94\x36\x32\x4d\x73\x1a\xfb\xe7\xfe\xaf\x81\x85\xf0\x67\xff\x32\xa8\xbe\x0b\x4a\x57\x41\x8d\x68\x9c\x18\x8f\xc9\xa0\xfd\x9d\x10\x71\x41\xac\x9f\x65\xe5\x6b\x60\x19\x63\x7f\xc0\xf2\x69\xc1\xf7\xd0\x63\x52\x61\x16\x91\x8b\x04\xcb\x35\x83\x90\x9c\x8d\xe3\xa4\x28\x71\xdc\xdd\x3d\xde\x3e\xf4\x7e\x5c\xc2\xe5\xcb\x1f\x2f\x86\x01\x45\x49\xea\xdc\x73\x43\xc1\x71\x8c\x34\xfb\x1c\x73\xe3\x0a\xb4\x82\xbf\x39\x41\x66\x4d\xa8\xf4\xe2\x44\xb1\x7c\x2a\x18\xa9\x6d\x96\x85\xb5\x73\xf8\xae\x04\x6a\x09\x81\x22\x4d\x09\xe4\x99\x3c\xdc\x52\x83\x67\xd1\x44\xd1\x59\xeb\xd6\x2c\xc1\x6a\xc4\xc5\xd4\x70\xf9\xc2\xa4\x4d\xe3\xcd\x8d\x52\xa6\x88\x10\xe9\x4c\x81\xca\xae\xc7\x5a\x96\x52\xf5\x92\x5d\xf1\xf1\x67\x22\x25\x1e\x93\x4d\x1c\xd0\x55\xca\xc3\xfd\x2f\xfe\x3f\xc1\xc1\xdc\x46\xf6\x2f\x8c\xd0\x05\xf4\xbb\xfd\x74\xc3\x3e\x9a\x40\x9e\x5b\x9e\xd0\x68\xcd\x80\xbb\x8f\x9d\xde\xd5\xa0\xf7\x59\x2b\xf1\x9d\x87\xee\x55\x41\x94\x80\x67\x9d\x8f\x0f\xdd\xbb\x41\xf7\xbf\xba\x17\x8f\x0f\x9d\x1f\xaf\xba\x83\xeb\x9b\xcb\xee\xfd\xe0\xe2\xe6\xf3\xed\x55\x77\x49\x64\x4e\x6d\xe3\x8b\xd6\xd5\xf2\xab\xe7\x0b\xbf\xc0\x0a\x6b\x5e\xe6\xdb\xcb\x20\x19\x0e\xd3\x04\x9c\xe0\xdc\x38\xc3\x31\x62\x3c\x26\xf0\xb3\x74\xd6\x19\x97\x6d\x72\x86\x7a\xea\x7d\x92\x20\x9c\x2a\x3e\xc5\xe0\xb5\x49\xe6\x7d\x86\x87\x9a\xb5\xe2\x24\xf1\xc2\xbb\x44\xca\x98\x66\xb1\xba\x31\x69\xe2\x8b\x13\xa2\xd9\xf9\xcc\xcb\x61\xb4\x7e\x83\x11\x65\x10\x40\x3c\xc5\xe2\xc9\xb8\x99\xf2\x2e\xf3\x43\x21\x11\x96\x7d\xa6\xc7\x45\xac\x61\xa8\x0d\x85\xcf\x5b\xbd\x55\x4b\x9d\x29\x7e\x22\x9a\x2a\xd3\x34\x9a\xa0\x99\xe0\x63\x41\xa4\xb4\xb6\xe5\x08\x33\x13\x80\x60\x5f\xd7\xd7\x50\x9f\x31\xae\x49\xe1\x4c\xd8\x31\x99\x11\x16\x13\x16\x51\x93\xad\x08\xbe\xfb\xcc\xb4\x39\x16\x78\x36\x41\x92\x83\xd3\x1b\xc8\x0e\xf6\x2b\xf3\x91\xbb\xc9\xcc\x8c\xcd\x63\xdf\x02\x2d\x52\xcd\x27\x6e\x40\x4e\x34\x54\x86\x8f\xdd\x65\xe8\xdc\x2e\xc6\x0e\x38\x9d\x25\x04\xba\xb4\x24\x87\xc5\xd0\xb4\x2e\xac\x87\x5e\xa6\xaa\x45\xd0\x17\xb6\x1b\x33\x96\x76\x44\x67\x15\x96\x6d\x7b\xa4\xd0\x4f\x98\xc5\x89\x6e\xc5\xf9\x30\x8a\x67\x11\x32\x6c\x3a\x7a\xd7\xb8\xd3\xb8\xc9\x2d\x1a\xe1\x54\x6e\x72\x8d\x96\x52\x4c\x8d\x55\xf0\x34\x0f\x0a\x81\xed\x6d\xf3\x4b\x81\xba\x33\xcd\x22\x71\xc2\x2d\x95\xcc\xeb\xa9\x0d\x5a\x86\xd1\xd4\x5c\xb3\x33\x41\x59\x44\x67\x38\x59\x4b\xf7\x2b\xe5\x18\xd8\xd0\xfd\xef\xe8\x48\x6f\x9f\xef\x17\xdc\xb6\x8a\x88\x29\xa4\x93\xdb\x61\x66\x4b\xb8\x82\x25\xc9\x26\x6b\x10\x99\x47\x93\x60\xc1\x53\xe3\x8f\x03\xba\x90\xb8\xe2\xa8\x9e\x55\x2d\xb7\x3e\x19\xb8\x18\x00\xbd\xc6\x62\x9b\xc8\x9f\x3a\xfa\x95\x5a\xb1\xbd\x9b\x60\x3c\x9c\xdc\x56\xb7\x59\xb5\x02\xde\xc3\x7f\x35\xed\x9d\xcf\x78\xa6\xf7\x4c\x94\x4a\x05\x9e\xe2\x6c\x8e\x56\x49\x2a\x85\xb2\x7b\xbe\xf3\x2c\xa8\xbd\xfd\x6a\xe4\x24\xb4\x01\x50\x8b\x9d\x14\x62\x08\x3c\x44\x00\xbb\xc7\x47\xa9\x96\x65\x11\x86\x28\x04\xf4\x1d\x39\x1b\x9f\xa1\x9b\x5f\xba\x77\x77\xbd\xcb\xee\x09\xea\xdc\xde\x76\xaf\x2f\x4f\x10\x51\xd1\xf7\x2e\x66\xd1\x06\x2c\xf5\x99\xe2\x56\x5a\x99\xa3\x09\x7f\x01\xde\x48\xc4\x98\x14\xe6\xec\xa2\x9b\x20\x54\x79\x4c\xa5\xb2\xe1\xb3\x9a\xaf\xe4\xc3\xd2\xf2\x7e\xe5\x0e\x49\xd5\x64\x93\xad\x81\xa5\x4c\xa7\x5a\x97\x1d\x50\x3c\x1d\x08\x9e\x6c\xc2\x14\x2e\x61\x2a\xa0\x2e\x67\x60\x0a\x14\x4f\x91\x6e\xd6\x86\x82\x64\x2e\xc7\x4c\xa4\xd3\x82\x91\xe6\xcb\xfa\xde\xf4\xee\x2d\xe7\x7d\xb0\xf1\x68\xd4\x85\x40\x00\xd8\x42\x0d\xab\xc8\xcd\xc6\x03\x6b\xa9\x1f\xe0\x28\xd2\x2a\xf7\x96\x27\x95\x77\x94\xb9\x04\x6c\x47\x3b\x9b\xe6\xb2\x7d\xee\x86\x39\xd3\x1c\x0c\x82\x81\xf5\x95\x2b\x79\x44\xf3\xf6\x2b\xfa\x1d\xce\x17\x7a\x85\x2d\x7b\xd6\x67\x8f\x32\x33\xa9\x98\x4b\x58\x12\x58\x49\x89\x5e\x26\x04\x8e\xc6\x1c\x4d\xf0\x33\x29\x74\xe9\x72\x48\x74\xc3\x73\x9e\x8a\x2a\x46\xd7\x67\x97\x64\x26\x88\x96\xf4\xcb\x0e\x94\x6c\x4f\xdf\x15\x77\x62\xd8\xd7\x61\x5f\x1f\xfd\xbe\xbe\x48\x52\xa9\x88\xe8\x48\x49\xc7\x60\x48\xdc\x48\x80\x33\x8d\x0d\x66\x9c\x27\x83\x16\x36\x91\xf6\x14\x2f\x78\xc2\x0a\x01\x1f\xd2\x20\x1d\xf0\x14\xe4\xa3\xc2\xb5\xc9\xf5\x5d\xe7\x65\x0e\xdb\xe1\x35\x90\xc1\xb9\xcc\x3a\x0e\x50\x62\x23\x11\x07\x57\xb5\xd2\xd4\x12\xda\xb9\x98\x73\x61\xe4\x9b\xcc\x5d\x96\x0f\xb1\x74\x98\x9c\x28\x42\x99\x23\x5b\xfe\x11\xec\x67\x4d\x60\x23\x77\xfc\x9e\x72\x85\xe5\xf7\x67\x7d\xa6\x85\xa8\x27\x32\x37\xe6\x56\x2d\xa6\xfc\x41\xcb\xe2\xa7\x92\x30\x09\xe1\xde\x7f\x30\xee\x39\xbd\xc5\x9d\xb9\xda\xa8\xa6\x64\x3a\x4b\xb0\x82\xa0\xeb\xac\x17\x08\xd1\xb5\x8d\x5a\x29\x29\x0f\x80\x06\x39\xdf\xcc\xc5\x3e\x33\xc3\x1f\x13\x05\x99\xe3\x8a\x2a\xd0\x99\xe2\x54\x93\x67\x71\xe8\x4b\x4d\x57\x66\x57\x08\x0e\x7e\x92\x38\xdd\x8c\xf1\xcb\xc5\x36\x96\x72\xc6\x4c\x5b\xb8\xb7\x31\xef\x1f\x9c\xdd\x28\x12\x9c\x95\xa2\x61\xb4\x32\x67\x56\x7a\x68\xd8\x81\xf3\x5f\x13\x76\xf6\x42\x9f\xe8\x8c\xc4\x14\x43\x04\xbc\xfe\xd7\x07\x3d\xaf\x7f\xbf\xb8\xbb\xb9\x1e\xe4\x99\x3c\xff\xd9\x67\x9d\x44\xf2\x2c\x4b\x01\x31\xce\xb2\x70\xfb\x99\x20\x4e\x24\xb4\x73\x01\xab\x6b\x6e\x46\xec\xb3\xba\x11\xc4\x3c\x92\x67\xf8\x45\x9e\xe1\x29\xfe\x27\x67\xe0\x4a\xef\xc0\x9f\x17\x09\x4f\xe3\x2f\x58\x45\x93\x0f\x70\xae\xd5\x07\xf2\x4c\x98\x32\x6e\x2a\x4d\xae\x18\x72\x92\x25\x44\xeb\xff\xbb\x1e\x73\x9e\x54\x24\xb5\x26\x1b\x91\x99\x42\xff\xaf\x20\x43\xce\x55\xf5\x25\xc5\x47\x23\x49\x56\xba\x90\x72\x25\xed\xfe\x06\xfd\xed\x3f\x7e\xf8\x93\xde\x42\xeb\xd0\xb8\x77\x7f\x33\xd0\xdf\xff\xfb\xa5\xfd\x5e\xae\xc0\xee\x4c\x2a\xad\xb4\xae\x66\x43\x0d\x13\x38\x9f\x32\xb8\xfd\x04\x38\x2f\x80\xbd\xc1\x76\xc8\xd7\xb1\x8a\xbb\x5d\x16\x5a\xdf\x4c\x65\x5b\x8b\x98\xa0\x62\x7b\x73\x44\xa7\x88\x71\x34\x35\xb1\xa6\x98\xa1\xbf\xfe\xfc\x63\xf5\x02\xa6\x82\xae\xd5\x21\xb5\x28\x14\x5e\x97\x92\xfe\x93\x48\xa4\x77\x8d\xde\xc5\x7c\xaa\xbb\x16\x44\x4e\x78\x12\xa3\x17\x02\x6a\x92\x8d\x03\xcd\xb4\x72\x41\xfa\xcc\x6f\x02\x42\x0e\x11\x4e\x14\x1f\x13\xb8\xab\x9d\xa2\xa6\x88\xd0\xa2\x8a\xc9\xd2\x50\x5c\x90\x13\x03\xcc\x76\xff\x17\x17\x5b\x0d\xd3\x84\x47\x2e\xa9\xc5\x9a\xe4\xe2\x61\xf5\xcc\x47\x65\xd3\x2b\xaa\xb7\xe1\x97\x17\xd9\x9a\x6d\xab\x49\x63\x93\x50\xac\x0d\xab\xbc\x32\xd5\x83\xa1\x11\x67\x83\x84\xb2\xa7\xb5\x16\xc3\x25\x86\x23\xdd\x82\xa5\x99\x6e\x31\xb3\x73\x1b\x0b\xc8\x0a\xe7\xe3\x63\x9a\x24\x26\xb5\xc5\x5f\x1e\x90\xbb\x0c\xdd\x40\x18\x98\x99\x1c\x50\x12\x5b\xbf\x97\xd5\x84\x05\x61\x10\xf0\xd6\x67\xc3\xb9\xf5\xd9\xca\x13\x24\xd3\x68\xe2\x32\xf3\x22\xce\xa4\x16\xa3\xb9\x40\x11\x9f\x4e\xb5\xd6\x0b\x4b\xa6\x38\x4f\xa4\x8d\x76\x67\xa7\x0a\x47\xaa\xcf\xf2\xfe\x96\x9c\x3c\x53\x94\x69\xb3\xd4\xbd\xf6\x2e\x9d\xbc\xf8\x53\xa3\xc0\x4d\x63\x1f\x8a\x02\x8c\x60\xc6\x13\xe5\x81\x5a\xf0\xc5\xb3\x64\x16\xac\x46\x33\x90\x13\x2e\xd4\x20\xae\xe4\x39\x4b\x37\x4d\x99\x11\x32\x72\x9a\x40\xd0\x30\x7f\xd6\xc2\x3f\x79\xc9\x8c\xaf\x4d\x43\xd0\xbb\xba\x69\x04\xed\x8e\x51\xe3\xc8\x56\xdd\x82\x35\xb4\x32\xc0\x24\x51\x31\x26\x7c\xd9\x18\xef\xe1\xab\x0b\xfd\x51\x23\xf1\xca\xe7\xce\x09\x41\x3c\xce\x31\xf4\xcc\xbd\x6e\x33\x42\x9a\x68\x6a\xa1\x13\x76\x97\x39\xda\x34\x95\xc7\xa2\x25\x57\x8f\x05\x4c\xf6\x92\x80\xac\x89\xc5\x90\x2a\x81\x45\x01\x00\x25\xd3\x07\x25\xc1\x02\xe2\xb3\xfa\xcc\xc0\xe1\x19\x4d\x21\x46\x31\x95\x90\x20\x02\x77\xa9\xe7\x0c\x43\xed\x94\xc0\xd2\xd1\xce\xf3\x1c\x4d\xfc\x39\x04\x96\xe5\x5b\xc3\x31\x3b\xdd\x51\x06\xfb\xa5\xf5\x33\x1e\xa5\xb9\x20\x17\x81\x84\x6b\xa1\x82\x10\x65\x92\x8e\x27\x0a\x51\x66\xed\x8e\x38\x19\x73\x41\xd5\x64\x2a\x4f\xd0\x30\x95\x5a\x0b\x35\xc1\x6a\x26\x1e\x85\xa8\xa8\x15\x17\xda\x34\x89\x38\x2e\x35\xb8\xa8\xa2\xac\xb1\x35\xda\x1d\xca\x6e\xe9\xae\x58\xb2\x71\x3a\x19\x7c\x62\xb9\x0d\x4a\x64\x86\xba\x89\x4c\x1c\x20\x77\x80\x55\xbf\xa7\x44\xaa\xba\x73\x00\x60\x97\x5b\xf3\x52\xec\xa3\x92\x16\x32\xc9\xa0\x82\xb8\xd8\x6d\x90\xbc\x8a\x80\x9b\x06\x94\x2a\x73\x3a\x4d\x67\xaa\x32\x70\x6b\xd1\x55\x74\xe7\x41\x19\xb5\x23\x36\x24\x63\xc1\x6e\x06\x00\xba\x3e\xbb\x27\xa4\x1e\x9f\x6e\x61\xed\x7f\x83\xa3\x04\x53\xb0\x89\x1e\xcd\x5b\x7e\x13\x27\xf6\x65\xf7\xfe\xe2\xae\x77\x6b\x20\x27\x6e\xee\x3e\x77\x1e\x06\x15\x7e\xed\x8a\xb7\x3e\x77\xee\x7e\xbe\x5c\xfe\xda\x4f\x0f\xc5\xac\xec\x8a\x57\xee\xee\x9b\x93\x39\x5a\x0c\xb1\x22\x29\xac\xb2\x9f\x73\x34\x9b\xab\x09\x67\x59\x88\x42\x5c\xe0\x4d\xa7\xc8\x64\x04\x2b\x08\x21\x12\x52\x55\x38\x0e\x1f\x20\x2e\x67\xb9\x84\x59\x5c\x2c\x83\x2e\xb7\x55\xd1\x68\x85\x13\xf9\x29\xe1\x43\xf0\x5b\x5b\xd9\xc7\x02\xd3\x35\x44\xa0\x6f\x18\xef\x73\x49\xe5\x2c\xc1\xf3\x85\x1e\x96\x5d\x39\xd7\x78\x4a\x20\xe2\x38\x87\xc5\x73\xc9\x22\x7a\x65\x20\x81\x29\xbb\xd7\xe9\x08\x32\x99\x14\xc5\x8a\xa0\x21\x51\x2f\x90\x37\xe7\x7e\xcd\x6c\xa9\x2e\x60\x44\x9e\xf5\x19\x98\x73\xfa\x9a\xc8\x71\x0a\xd1\x7e\xfd\x77\x27\xa8\xff\x2e\x26\xcf\x24\xe1\x33\xbd\xf2\xfa\x87\x9a\x4b\xa6\x3b\xc5\x34\xb9\xe6\x2a\xb3\xcc\x6d\xb2\x9e\x82\x44\x74\x06\x92\xf9\x80\xe8\x76\xf7\x27\x78\x14\x76\xb2\x63\x67\x30\x06\x84\xe3\x58\x2b\xd9\xc0\xca\xdc\xf0\xf2\x10\x20\xe6\x4d\xbd\x50\xec\x72\x15\x91\x22\x33\x7f\x9b\x1e\xfd\x36\x8b\x66\xcf\xca\x15\x60\xcf\x3b\x74\xc9\x6e\x7a\x91\x6b\xad\xe4\x67\x32\x87\x14\x8c\x5b\x4c\xc5\x9a\xae\xd9\xaa\x98\xd7\x9d\x38\x69\xbb\x15\x1d\x1d\x90\xbb\xb6\x9a\x0e\x9b\x39\x6e\xb3\x58\xbd\x7d\x69\xa9\x2e\x96\x2b\xeb\xb8\xa5\xda\xfa\x58\xa7\xa4\xd6\x86\x30\xa0\xb2\xe2\x35\x23\xd1\x0a\x1a\x57\x36\xc0\x7b\xfd\xdd\x52\x4d\x25\x13\xd7\x5c\xfc\x5d\xbe\x0a\x36\x39\xbe\x9c\x8f\x4f\x96\x8e\x38\x4a\xb8\x2c\x62\xe5\xb4\x1e\xf4\x85\xfd\xb4\x69\xdc\x5d\x7f\xfb\x6a\xb9\x70\xa5\x80\x86\x0a\xc2\x97\x30\x2e\xcd\x3d\xa3\xac\x87\xcc\xbe\x7d\x82\x28\x44\x5b\x82\x42\x96\xe4\xc8\x01\x2c\x46\xb9\x1b\xa4\xcf\xf2\x98\x15\x89\x5e\x48\x02\x61\x6e\x11\x9f\xce\xc0\xc4\x6f\x87\x6b\x5b\x22\xb1\x89\x18\x3e\x41\x3c\x55\xba\x31\x93\x93\xe3\x8c\xb8\x36\xe1\x27\x77\x7b\x18\xdf\x9b\x0d\x7e\xcf\xf0\xb2\xcd\x5e\x37\x77\x29\x65\xe8\x13\x51\xd0\x0a\x94\x59\xf0\x27\x08\x7a\x42\x39\x84\xb2\x9a\xf6\x1b\x9c\x28\x3b\x93\x15\x56\x3e\x07\x4e\xf9\x31\xe1\xc3\x66\x23\x01\x34\x8e\x1e\xef\x7a\xce\x22\x99\xc7\x4f\x79\xa0\xcc\x05\x8f\x62\xf7\xf6\xae\x7b\xd1\x79\xe8\x5e\x9e\xa1\x47\x49\x34\x79\xb2\xe9\x42\x7e\x75\xa6\x92\x98\x91\x5b\x24\x16\x26\x15\xc1\x75\x86\x10\x22\x44\x21\x0b\x7a\x09\xe3\x28\xc2\xb4\x34\x6f\x6c\x00\x49\xa1\xd6\x50\x07\xc0\x42\xe5\x79\xda\xc8\xbc\x65\x27\x10\xe2\xa4\x06\xc7\x13\xa5\x66\xc6\x3b\x5d\x8c\xcc\x5b\xb6\x7d\x8a\x11\x7d\xbb\x9e\x0c\x1c\x2d\x35\x21\x54\xa0\x56\xd3\x32\x9b\x6a\xd0\x7e\x4e\x5e\x88\xfb\x67\x3c\x6b\x4e\x3f\xc5\x2f\x85\x4d\x6b\x44\x61\xcf\x77\xbf\xeb\x73\xe0\xd8\xda\xc0\xb0\xc2\xcd\x27\x98\x3b\xb4\x0c\x6f\xcd\xf8\xa6\xc9\xf8\x90\xce\x48\xe6\x4f\xac\x34\x08\x1b\xc7\x2a\x11\x9c\x1d\xf8\x85\x32\x54\xb8\x12\x4f\xd0\x88\x7e\xb5\x8d\xe6\xf1\xed\xee\x55\x2f\xe0\xa1\x26\x9e\x72\x82\x17\xcf\xd4\x0a\x62\xc3\x2d\x7c\xdf\x28\x44\x72\xa9\x45\xa2\x48\x8b\x4b\x82\x44\x5c\xe8\x9b\x02\xba\xcd\xbd\x10\xcb\x44\x06\x85\x85\x26\xca\xa2\x57\xa6\xe9\xf4\xe7\xa5\x55\x62\xac\xc8\xa9\x16\xbd\x96\x24\x40\xdb\x1c\x19\xc8\xa6\xc1\xca\x83\x03\xcb\x6f\x9e\x21\x19\x63\xe6\x42\xb3\x6b\x86\xeb\xae\xbc\x0d\x58\x95\x56\x81\x30\xa4\x87\x81\x7c\x05\xa9\x3f\x85\x71\xc8\x19\xd0\xb3\x71\x1c\x36\xfa\xe5\x10\xc8\xf6\x82\xb3\x60\x9c\x9a\xc1\xa6\xb3\xf8\x90\x06\x9b\x60\xa9\x90\x1d\x53\x9d\x29\xc2\x53\x11\x77\x6b\x84\x2d\xe8\xf6\x6d\x95\x37\xbd\x85\x8a\x5a\x2c\x01\xcf\x88\x74\xb8\x29\x06\x25\x46\xeb\x34\x4e\x10\xbe\x80\x15\xca\xce\xf6\x9d\x91\xb2\xdc\x2d\xe1\x33\x13\x08\xd2\x5f\x6c\xfa\x0c\x75\xd8\x02\x5e\x96\x8b\xcb\x2a\xd0\xcb\xdc\x49\x38\x79\xc1\x73\x89\x66\xc2\x40\xcb\x98\xc8\x7d\x37\x79\xd0\xc0\x8a\x1f\x65\xa1\x10\xca\xa5\x4e\x20\xb0\xc5\x2c\x0f\x9a\x73\x72\xef\x60\x07\xae\xbc\x52\x54\x79\x26\x90\xe7\xcd\xe5\xb6\x8a\x16\xac\x4e\x91\x41\x34\xc1\x6c\x4c\x06\xce\xc8\xba\x8e\xb6\xa4\xdb\xb9\x80\x66\x2e\x6d\x2b\xd5\x97\xd3\xad\x51\x98\x6c\x59\x1b\xf3\x6a\x66\x40\xd4\x87\x40\x2a\x3c\x26\xc8\x8c\xa8\x95\x59\xba\x10\x31\x66\xc1\x86\x41\x4f\xb0\xad\x76\x8b\x51\xf4\x75\xc2\x3b\x84\x3e\x5d\xe1\x21\x49\x5e\x27\x72\x02\xba\xb6\xc6\x79\xf0\xd6\x99\x6c\x00\x82\x5e\xc0\x9e\x5f\x62\x19\xd6\x7a\x2f\xd2\xaa\xdc\x80\xa6\x79\xc2\x91\xb3\x27\x6d\x93\x89\xba\x12\x28\xeb\x4c\xb5\xae\x30\x8a\x7f\xed\x79\x05\x44\xaa\x0c\x6c\xfe\xf5\x57\xb6\x29\xaf\x37\x10\xaf\x8e\x49\xcd\x38\x36\x2e\x64\xb2\x74\x2a\x6b\x83\x0c\xb4\xac\x59\xd8\x1b\x21\xc6\x19\x41\x54\xe6\x2f\xab\x62\x3a\x54\x06\xd1\xa3\x45\x7c\x63\x7c\xc9\x8a\x8f\x65\x35\xa5\x76\x6d\x69\xc9\xc1\x13\x32\xdb\x80\xcb\xef\x66\x44\x2b\xaa\x58\xcc\x01\xe2\xd3\xf0\xe1\xa2\x4c\xb7\x74\x9c\x5b\x17\xb8\x1f\x1c\x82\xab\x17\xa9\xab\x38\x02\x31\xb2\x34\x38\x64\x70\x50\xed\x4b\xf6\x23\x0b\x53\xd3\x67\x99\x65\x03\x36\x22\x95\x68\x8a\x67\xe0\xd3\x63\x5c\xe5\x5f\x19\xd8\x25\x95\x2d\xe1\x89\x13\xc4\xa5\x29\x0d\xb6\x9c\x02\x5c\x8c\x37\x09\xd5\x68\x5f\xfe\xa1\xbd\x61\xc9\x5d\xfe\xf9\xaa\x16\xc1\x35\x1d\x30\xf0\x98\x3e\x13\xe6\x4e\xd4\x89\x3b\x91\x9a\x24\x6e\xca\xc9\xfc\x14\x43\x90\x33\x89\x7d\xbf\x4b\x33\x3f\x34\xe6\xa0\x43\xb0\x86\xb6\x27\xd9\x43\x65\x10\x8f\x81\x68\x2b\x60\xeb\xbb\xb0\x74\xff\x8c\x58\xd4\x60\x93\x87\x8e\x25\xfa\x03\xe3\xea\x0f\x1e\xae\xb2\x33\x9d\xc0\xa7\xce\x00\x76\xb2\x50\x07\x07\x58\x86\xdd\xb6\x08\x7b\xf8\x5e\x4b\x29\xbf\x69\x64\x42\x1e\x76\xbf\x53\x59\xb8\xbb\x98\x83\x57\x57\x48\x2c\xc4\x0b\xa0\xf2\xa5\x54\x36\xb7\x9a\x5a\x85\xf9\x49\x2f\x98\x59\xe5\xb2\x00\x81\x6c\x2d\x5a\x05\x06\x2c\xe0\x11\x6c\xb2\xdb\xa6\xad\xe3\xb6\x96\x40\x30\x57\x5b\x45\xd6\xc9\x32\xad\xd3\x0a\x44\x31\x70\xce\x16\xe1\xa8\xc1\x18\x3e\xeb\xb3\x8f\x5c\x58\x01\x40\xda\x2a\x07\x43\x1c\x3d\x9d\x12\x16\x23\x9c\xaa\x89\xc1\xfa\xb5\x5e\x8d\xb9\xdd\x0d\x5a\xce\x81\x6d\x93\x01\x79\x50\x19\x61\x11\xbb\x7a\x1b\xcf\xdc\x8d\xa2\xcf\xbc\x46\xa0\x8e\x02\x54\xcf\x82\xb2\xc6\x75\x8a\x2e\x91\x5a\xbb\xab\xa3\x45\x55\x65\xdb\x85\xba\xb6\xcd\xe7\xac\x50\xa9\x17\x2a\x40\x40\x78\x15\x1f\x2d\x52\xa7\xe7\x6c\x9d\x4e\xbb\xd4\xfb\x79\xd1\x07\x72\x62\xf5\x19\x63\x10\xb3\x33\xd0\x72\xd6\x0f\x8e\xd7\x16\x30\x8b\x47\xa9\x80\x60\xe1\xaa\x36\xbf\x8b\x26\x34\xc9\x3d\x27\xdf\x9f\x64\xc3\xd4\x4d\x26\xe4\x99\x24\x06\x31\x3f\x12\x90\x17\x60\x6c\x96\x3f\xa0\xff\x6d\xaa\xbd\xa2\x3f\xf5\xd9\x27\x60\xc3\x49\x32\x07\x3c\xcf\xac\x65\xac\x4a\xcd\x3c\x55\x0e\x40\xd9\x44\x24\x54\x1c\x88\x59\xeb\x09\x7e\x26\x7d\xe6\x9a\xf9\xdf\xe8\x09\xfd\x11\xfd\xa9\x4e\xb9\x74\xe1\xfd\x3b\xb6\xb2\x7c\xf4\x82\xe7\xbd\x5b\xce\x32\x4a\xcb\x6f\x9c\x11\xa6\x60\x02\xad\xc0\xf5\xc8\x60\xb9\x29\x7b\xe6\xd1\x42\x0e\x89\x7f\x6a\xb1\x20\x4c\x0d\x18\x8f\xc9\x80\x54\x38\x54\x1b\x98\x84\x16\x02\xae\x79\x4c\x96\xba\x43\x33\x66\xfa\x05\x0c\x47\x32\x1d\x66\xcb\x01\xf0\x02\x59\x2e\x79\x66\xfb\x28\xee\xb4\xea\x91\x67\xd8\xb7\xeb\x8c\x7b\x5d\x57\x6e\x2e\x36\xe2\x1c\x7c\xb7\xda\x9d\x98\x60\xe5\xa4\xc9\xf2\x71\x2c\xbb\x21\xf4\xcb\x7a\xe6\xf6\xb2\xf2\x50\x7d\xa1\xf2\x8a\xa0\x63\xaa\xb5\x87\xf6\xee\x62\xe0\x84\xeb\xf8\x52\x0c\xc4\x69\x2b\x67\x4a\x4e\x0a\x07\xf3\x72\x9a\xed\xbf\xdc\x05\x3a\xe4\x69\x59\x7d\xb0\x04\xa0\xd2\x0f\x36\xb0\x9a\xc2\x5c\xf3\xe1\xb1\xc9\x3f\x24\x13\x6a\x32\xfe\x3b\x17\x57\x48\x9f\x0e\x3e\x35\xb0\x58\x40\xb4\x54\x4d\xb8\xa0\xff\x6c\xda\xdb\x58\x28\x3a\xc2\x91\x1a\x6c\xa5\x8a\x4c\xfd\x66\xea\xd8\x7e\x7a\xf5\x95\xea\x16\x10\x0e\xf0\x33\xf1\x02\x10\x21\xbc\xd0\xb6\x22\x33\x47\x6e\x99\xdf\x72\x81\x18\x7f\xc9\x61\xb1\xdc\xf7\x80\x04\xed\x25\x6e\x60\xad\x72\xcd\x20\x82\x58\x52\xd8\x9f\x00\x52\xf5\x5e\x99\xa4\x4c\x00\x38\x37\xf0\x52\x7a\x7b\x4e\x30\x8b\x13\x77\x85\x20\x6e\x22\x7a\xe6\x2f\x78\xbe\x92\x4f\xdd\x8f\xab\xcc\xb3\xf4\xcc\xf2\x17\x95\x20\xe0\x01\x46\x52\x53\x05\x55\xb3\x4a\x11\x46\xc3\x14\x80\x75\x35\x4d\x46\x69\x62\xaa\x71\x44\x5c\xc4\x67\x7d\x66\x03\xaa\xbd\xde\xb4\x08\xe8\xb4\x26\xac\xb2\x06\xa9\xc5\x1f\xb5\xf5\x3e\x8c\x59\xae\x51\xae\xff\x7b\x4a\xd2\x2d\xa5\x55\xbe\x6a\x20\xfa\x03\x1e\xcb\x3c\xb2\xdc\xd0\x46\x5f\x79\x39\x7d\x7f\xd7\x33\x95\x5e\x22\xb2\x33\x17\x67\xb8\x5e\xc6\xce\x62\x8a\xd8\xae\x64\xa6\xbb\x33\xf5\x0c\xb6\x60\xa7\xdb\x47\x90\xce\xa2\xe8\x59\xc1\xd5\xed\xf6\x7b\xce\xd2\x72\xd1\x7e\x8c\x5f\xae\x30\x44\x49\xa8\xdb\xa1\x1d\x6c\x8d\xbb\x63\x51\x57\x69\x0c\x75\xcf\xad\x62\xd9\x6d\x51\x91\x21\xaf\x38\xe4\xd2\xbc\x08\x0a\xb0\x7f\xf3\xfc\xe5\xac\x5e\xb3\xbb\x85\x7d\x1e\xa3\x85\x3f\xa3\x2d\x40\xb0\x8e\x23\xe1\xbc\xfa\xea\x5c\xc1\xae\x63\x1b\x2a\x76\xbd\x18\x8c\x51\x77\x22\x0c\x4b\x3a\xd4\x23\xb1\x88\xf9\xb3\xf4\x30\x64\xe5\x5d\x5e\xc7\x2a\x9c\x49\x8c\xfb\x3b\x19\xd9\x76\x1c\x44\x38\x9a\xd4\x4e\x6a\xc8\x79\x42\x30\xab\x53\x0a\x2a\x1f\x97\x8f\x88\x41\xac\x05\xd6\x9d\x24\x00\xdb\xec\x48\x60\x4b\x7d\xe6\x5a\x11\x8b\x01\x6e\xdf\xf0\x70\x13\xf0\xe9\x06\xaa\x08\x73\x06\x35\xca\xc6\x09\x29\xd3\xca\xd6\x45\x38\xb1\x9d\x24\x51\x9a\x78\xb5\x3e\x67\x44\xe8\x51\x6b\x12\x3f\x13\xa6\x55\x31\x3b\x0e\xe7\xa1\x7a\x71\x59\xee\x59\x85\xaf\x93\xac\x6b\xe7\x24\x85\x54\xd2\xb8\xcf\xe0\xe0\xf2\xe2\x61\xd5\x7b\x55\x6a\xed\xcd\x37\xf7\xad\x7d\x3a\x3d\x21\x62\xe5\xe3\x79\x5f\xb4\xfd\xaf\x7c\x26\x4d\xdf\x03\x08\x1c\xd9\xd8\x5f\xea\xf9\xd4\x72\xfc\x0d\xb3\xb0\x0e\x63\x6d\x4f\x9e\x01\x08\xc5\x29\xc6\x12\x7b\x91\x38\x75\x18\x5f\x3b\xbd\x4b\xf2\x9a\x26\xee\x36\x68\x39\x94\xc6\xf8\x83\x96\xd1\x04\x60\xf4\x6d\x3a\xb7\x57\x56\xaa\x2f\xfa\xe1\xb3\xa4\xad\x3c\x76\xd5\x56\xed\x55\x02\x03\xe4\x04\x00\x05\x7c\x31\x86\x0b\x2a\x8d\x70\xef\x6a\x97\x4c\x67\x6a\x6e\x4b\xdd\xc1\xbd\x58\x90\xf7\x01\xc6\xaf\xca\xe7\x5f\xbe\x23\xe3\x82\xd7\xbf\xaa\x33\xe8\xc8\x5a\x6b\x2a\x9b\x74\x84\xf6\x61\x61\x4a\x30\x1c\x75\x21\x3e\xa6\x6a\xf0\x00\x27\xb5\x26\xc2\x2d\x30\x4d\x50\x8e\x72\xe8\x0d\x8b\xe8\xab\x44\x4a\x34\xef\xc2\x49\x52\x9a\x17\x86\x1c\x77\x95\x55\x0e\x1c\xe6\xe5\x8d\xdb\x47\x20\x24\x78\x48\x56\x8a\x39\xb8\x32\x1f\x34\xee\x22\x78\x05\xc2\xf5\x67\xb3\x64\xde\x2e\x4d\xc0\xd7\x7e\x2b\x91\xef\x96\x0d\xcc\xc7\xcb\x6b\xbc\x9b\x8a\x98\x73\xeb\x0d\x51\x92\x28\x15\x54\xcd\x07\xd6\x96\xda\x9e\x69\xdd\xdb\x2f\x2f\xec\x87\x6d\x0c\x15\xe7\xc8\xf5\xe7\x6c\xb7\x70\x4f\x09\x6a\xca\x22\xd9\x29\xb4\x59\x6e\x9c\xaa\x49\x25\x22\x56\x13\x61\x1d\x24\x57\xbb\xa1\xea\x2e\xd6\x1d\x9e\x2d\xb7\x32\xe0\x23\x07\x76\xd5\x9e\xb0\xe5\x3a\x34\x2b\x18\xa1\x1d\xa6\xf6\x4c\x50\x2e\x6c\xb9\x97\x36\x91\x8a\x53\xfc\x75\x30\xc3\x02\x27\x09\x49\xa8\x9c\xae\x6f\x32\xff\xcb\x9f\x1b\x47\x7b\x61\xca\x12\x99\xc1\x4e\xf1\x57\x3a\x4d\xa7\x88\xa5\xd3\xa1\x95\x72\xb1\x7c\xf2\x11\x4d\x1d\xfe\x82\x01\xe6\x72\x03\x2c\xa0\x40\x08\x0f\xa3\xb6\xcf\x3c\xb4\x72\x6b\xaa\xc0\xd1\x84\x92\x67\xc0\x52\x15\x8c\x48\x79\x86\xae\xb9\x22\xe7\xe8\x33\x9e\x3d\x80\xa0\x66\xea\x84\x8e\x8d\xd3\x01\x4b\xa4\xa5\xd6\x94\x51\x75\xd2\x67\x16\xe2\xdc\x51\xe5\x43\xc4\x99\x81\xb9\x8d\x80\xb0\x59\x13\x60\x45\x77\x78\xaf\xca\x65\xab\x52\x59\x43\x6c\x81\x5f\x06\x5e\x48\xf2\xc0\xa4\x7c\xac\xb0\x8f\xef\xf0\x8b\x09\xc2\xbf\xc4\x0a\x9b\x12\xc0\x4d\x92\xbb\x8d\x72\xb3\x65\xa1\x0c\xba\xb3\x8b\x06\xe2\x16\x62\x24\x2b\x68\x67\x42\x8e\xbf\xa3\x67\xe4\x0c\xfd\x98\xf0\xa1\x3c\xc9\x4d\x55\xe6\xa1\x24\x4a\x9e\x18\xbf\x1f\xfc\xdb\xe4\xf7\x7d\xef\xa8\x9f\xf3\x7d\xa8\xe5\x38\xa2\x5f\x0d\xb2\x89\xfc\xcb\xf9\x87\x0f\xd3\xf9\xe9\x30\x8d\x9e\x88\xd2\x7f\x81\x4c\x51\x49\x21\x07\x0b\x86\xab\x40\xc6\x96\x51\x67\x11\xa0\xac\xd5\x8e\xb4\xb9\x52\x92\x00\x18\xbe\xbe\xd2\xb3\x6a\xb9\x0e\xcf\x8a\xb3\xea\x52\xa0\x76\xca\x22\xad\x3b\x5e\x05\x14\xed\xfd\x68\x2b\xa6\x1a\xb0\x0f\xde\x3d\x4a\xf0\xb8\xa4\xb2\xac\xa0\xa4\xdc\x4c\xa9\xdd\x45\x7a\xee\x10\x44\xa3\x4f\x59\x31\x74\xf0\xbd\xf3\xf2\x82\xb7\xd6\x7a\xb1\xce\xfa\xac\x23\xd1\x0b\x31\x45\x7e\x21\xd1\x14\x9c\x3e\x29\x95\x93\x2c\xcd\x14\xcc\xd0\xd0\xa8\xc1\x38\x36\x50\x18\x56\x71\x74\x9a\x95\x73\x8b\x59\x0d\x14\x27\x92\x9c\xe8\x86\xc1\xa4\xea\xa2\x43\xd1\x8b\xc0\xb3\x19\x11\x7d\x66\xf1\x6a\x01\x95\x9d\x73\x1b\xf9\x53\x97\x22\x10\x34\xca\xfd\x6a\x94\x1e\xed\x49\x31\x0b\x75\xd9\xf9\x86\xa4\xd5\x26\x0a\x57\xe5\x61\x3a\xf2\x69\x59\xb4\x6d\xf8\xfe\xeb\x9b\x8d\x5b\x8e\x79\x99\x76\xde\x29\xe5\x5e\x40\x0d\xf1\x29\x28\x90\x32\x2f\x95\xea\x6c\x7d\x99\xfa\x5e\x10\x73\x00\xee\x1c\x3e\x8e\x39\x91\x9e\x11\x1f\x65\xb6\xb8\x84\x8e\x88\x96\x3e\xfa\x4c\x6f\x63\xdf\xe1\x60\x50\xd3\x1d\x88\xba\xee\x34\x12\x5c\x4a\x9b\x4e\x61\xda\x69\x4e\x8a\xdb\xa0\x40\xa3\x81\x7e\xef\xdd\x5c\x0f\x16\x4b\x35\x7a\xcf\x5c\xd1\x46\xfb\xb0\x12\x39\xa1\xb6\xa9\xa5\x25\x1a\x73\x5a\xac\x50\xa4\xf1\xc3\xc5\x55\x2f\xab\x4c\x56\xea\x7a\xb1\x4a\xa3\x0f\x97\x5f\x5f\xa7\x71\x71\xc6\x5e\xc5\xc6\x52\x13\x0d\x35\x1b\x97\x2f\x56\x31\x88\x7b\x13\x2c\xc4\xd2\xd2\x2f\xe5\x0f\xc5\x3d\xb3\x2c\xd7\x60\x4b\xcb\x54\x73\xad\x44\x20\x30\xee\x3a\x70\x01\x04\x2f\xfd\x96\x54\x78\x3a\xf3\xf3\x68\x1d\x18\xac\x9d\xa6\x39\x6a\x75\x97\xe0\x5e\x41\xea\x23\x6c\x82\x84\xca\x83\x5b\x58\x8a\xd5\x3c\x5e\x0f\x16\xfb\x7e\x1b\xb1\xe9\xfb\x4b\x4c\x4f\xe6\x79\x30\xa4\xb4\xb2\x9b\xab\xab\x5e\x63\xf7\x1f\x92\x0c\xe7\xbf\x76\x41\x37\xcd\x3c\xcd\xf0\xc0\x04\xc1\xd2\xba\xbf\x21\x41\xb3\x94\xbc\xb5\x82\x79\x38\x1b\xb3\x49\xf1\x3e\xcd\x2a\x6b\x78\x57\x8d\x2d\x16\x17\xb9\x83\x48\x85\x20\xcf\x44\xc0\xde\xb1\xa1\x54\xac\x78\x54\x71\x22\x08\x8e\xe7\x1e\x45\xb2\x38\x0e\xd3\x33\x98\xc7\x24\x9d\x6a\x05\x1e\x54\x13\xc6\x4f\xf9\xcc\xe9\x2c\x85\xb7\xa0\x2c\x0a\x1d\xe9\x1b\xcb\x8b\x02\xd1\x5f\xb0\x53\xf2\x95\x4a\xa5\xe5\x8a\x8a\x10\x58\xd7\x08\x48\x3c\x50\x2c\x6d\x42\xec\x0d\xd7\x7f\xd7\xf9\xf1\xe6\xee\xa1\x7b\xd9\x7f\x97\xa7\x5c\xb8\x9c\xc2\x0c\xe6\xcb\x55\x6d\xe0\xac\xcf\xb2\x38\xe5\x0c\xd5\x1a\xd6\x12\xe1\x38\xce\xe3\xa3\xad\x12\x69\x64\xb6\x46\x8e\xec\x9d\x8a\xa5\x11\xca\x0d\xcd\x3c\x42\x62\xd9\xa1\x9e\xac\x06\xd7\x59\xe1\xe4\x98\xf4\xb8\x86\x3c\xa6\x2d\x5d\x36\x3e\x20\xaf\x32\xba\x36\x51\x0e\x31\x92\x91\x17\xa7\x2b\xc1\xed\xfc\x01\x9b\x4b\x78\x35\x6e\xe7\x16\x64\x8d\x45\xfd\x48\xbf\x92\xf8\xae\x46\xaa\xda\x4a\x9a\x52\xab\x00\xcb\xca\x55\x48\x19\x5d\x45\xe3\xcf\xa6\xf2\xa8\xbf\x6b\xcf\x96\x6e\x72\x9c\xbd\x1c\x33\x17\x00\x73\x15\xc2\x28\x22\x42\x61\xca\xd0\x08\x0e\x36\x8b\xe6\x08\x50\x58\x08\xf8\xb0\xff\x8c\xa6\x94\x01\x1c\x44\x13\x69\x1f\x8b\xf3\x58\x41\x68\xfd\xdc\xbb\x7e\x7c\x28\x88\xaa\x3f\xdd\x3c\x16\x2b\xf5\x77\x7e\x6d\x94\x55\x4b\x2d\x34\x05\x0b\x79\x53\xcc\x53\x4b\x2d\x74\x70\x46\x99\xca\x89\x26\x73\x45\x1e\xef\xae\x36\x92\xef\xaa\x9d\x65\xb5\xc0\xef\xbe\x74\x55\x0d\x73\xd1\xe6\xd3\x98\x44\xcb\xa0\x69\xdb\xef\x23\x13\x05\xa5\xe9\x60\xad\x89\x16\xb6\x0e\x4b\x34\xc3\xc2\xfa\xa1\x62\x13\x00\x55\x2c\xf7\x66\x34\xaf\x26\x58\x90\x4f\x44\xfd\xa2\xaf\x3e\xce\xb6\x91\x5c\x62\x45\x59\xf0\x8f\x92\xc1\xb3\x69\x78\x85\x93\x66\x87\xd2\x90\xbf\xe4\x84\x65\xe8\x01\xd9\x1e\x7c\x30\x8d\x33\x53\xf6\xbf\xa3\x9b\x03\x8a\xb8\x30\x4d\xad\x92\x72\xa6\x77\xa4\xc1\xc8\x75\xc0\xba\x5e\x73\x7c\x64\x3e\x6e\x09\x33\xe8\x25\x0b\xe8\xb6\x72\x52\xa2\xce\x6d\xaf\x82\xd6\x57\x65\x17\xd2\xdb\xaa\x51\x94\x64\xde\xac\x6d\x23\x5f\x79\x39\xa7\x07\x01\x75\x65\x67\xba\x19\xb6\x95\x71\xfa\xdf\x16\x23\x09\x0e\x01\x82\xb9\x4a\x65\x28\xe4\x92\x2f\x41\x5b\x5e\x2d\xbd\x32\x27\xc3\x8a\x48\x56\xfe\x80\x6c\x76\x8d\x8f\xde\xb4\x18\xba\x7d\xe2\xa3\x39\x71\x53\x05\xd9\xc6\x16\x6c\x0d\xe1\x2a\x9f\x4d\x1b\x88\xab\x5f\xcc\x8e\xce\x10\x50\x00\xd3\xc5\x55\xd9\x74\x21\xd7\x16\x90\xc0\x9f\xae\xbf\xdb\x56\x43\xc5\xca\xc7\xe7\xcc\xdf\x16\x60\x1c\xcf\xb0\xb5\x3b\x80\x12\xe5\xca\x5f\x54\x55\x4b\x3c\xeb\x33\x2f\x60\x45\x1a\xb5\x47\x9f\x11\x57\x71\x06\xca\x18\x33\x40\x2b\x87\xdc\xa7\x4c\xf8\x29\xac\x40\x19\xf7\x40\x4d\x8a\x35\x63\x16\xfa\xb1\xa7\x53\x4e\xb0\xcb\x2e\x75\x16\x14\x1b\x07\xe8\xdb\x97\xa0\x3d\xaf\x4a\x84\xed\x18\xcc\xd1\x60\xb4\xc0\x5e\x0d\x42\x0f\x91\x20\xe6\x44\xb2\xf7\x2a\xcb\xdf\xa5\xc9\xdc\x85\x54\x97\xdc\x03\x5a\xaa\xc3\xd4\xb6\xdc\x7c\xc0\xb7\x00\xb9\xb5\xaa\xe2\xe0\x1d\xab\xa5\x66\x2a\xe7\xe3\x85\x9d\xe0\xc7\x22\x41\xa7\x75\x56\xf5\xaf\x33\x12\xad\x83\x0b\x74\x8b\x05\x9e\x12\x45\x44\x53\x38\x52\xb1\x42\x38\x88\x38\x6e\x05\x6d\xbf\x66\x15\x4d\xf9\x94\x72\x9d\x9d\x4c\xbb\xbd\x5a\x86\xf3\x93\xcd\x62\x25\x48\x33\x3d\x8d\x5f\xac\xe5\x7f\xc5\x59\xd8\x7e\xf2\x69\xd8\x68\x2b\x0f\xd6\x69\xd3\x39\xed\x07\xdf\xe6\x61\x01\x29\xa6\x10\x2e\x74\x20\xc0\x36\xcb\x47\x59\x87\x68\xb3\x8c\x97\x6e\x85\x77\xbb\x0c\x07\x97\x99\x5c\x3a\x54\x85\xdc\x09\xd8\x25\xa0\x52\x19\x70\x97\x6a\x54\x1a\x10\x5a\xaa\x22\x24\x3d\xb7\x9f\xc5\x2c\xcc\x0d\xba\x56\xb2\x2a\x57\x0c\x2b\x91\x6b\x09\x8f\xdb\x16\x62\x47\x90\x68\xb6\x2d\xd1\x2c\xdb\xca\x85\xe8\x5a\xbd\x3b\x89\x28\x81\x07\xd9\x4a\xde\x16\xf5\xa1\x38\x41\x48\xe9\xb2\x57\xa4\x2d\x07\x0c\x57\x3f\x65\xd9\xbf\x8a\x1c\xdc\x6d\x6a\x7f\xab\x56\xe5\xaa\x9e\x79\x2e\x28\xf0\x40\x25\xbe\x34\x60\xe3\x6a\x60\xb4\x26\x0c\xd2\x58\xf9\x7b\xd7\xc6\x81\x05\x39\xe3\x73\x9e\xa2\x17\x2a\x27\x48\xf1\x3e\x83\x38\xc1\xcc\x1b\xa0\x38\x32\x2f\x9e\xc0\x5b\x80\x6d\x21\xd3\xe1\x94\x2a\x84\xbd\x19\x16\x4c\x92\x27\xf6\x3c\xeb\x0f\x60\xc6\x95\xf0\x05\x55\xb8\x4b\x4b\x0e\xcd\x1a\xf6\xb5\xbc\x91\x4d\x11\x0a\xbc\x98\xe6\xdd\x62\x14\x78\x1a\x8f\xaf\x61\x56\x9e\xb9\x00\x52\x80\xaa\xad\x0d\x16\x09\x16\xe0\x7a\xa9\x54\xa5\xbb\xc5\x1a\x7a\x96\x00\x14\xe4\x0b\xd1\x0a\xa1\x20\x7f\x7d\x1b\x10\x05\x75\xb5\xe7\x9a\x52\x56\xdd\x27\x35\xf6\x6f\x97\x0a\xad\xb8\x0b\x9c\xf7\x25\xa5\xdb\x5a\x49\xe9\xd0\xa0\xea\xf2\x84\x80\xf5\xc3\xcb\xeb\xa2\x97\xe1\x8c\x47\x9c\xc5\x74\x85\x78\x61\xa8\x2f\x36\x4c\x47\x1d\x36\x5f\x8e\x7c\x34\xf5\x03\xf5\xad\xbd\xc4\x93\x44\xaa\x31\x37\x97\xaa\xac\x79\xfb\xfe\x4e\xf7\x52\x42\x8b\x60\x44\xa4\x7c\x3b\x31\xae\x20\xef\x27\x52\xc9\xbc\x22\x17\xb5\xcf\xaa\xa5\xa4\x66\xbe\xbd\x69\x1a\xc9\x56\x61\xf7\x3c\x1e\xe1\x66\x61\xad\x6e\x5f\xb2\x40\x3c\xa3\xd0\x13\x0b\xb2\x51\x12\x83\x73\x37\x64\x5d\x00\x95\x16\x8e\xd6\xc9\x35\xaf\xe0\x1c\xd5\x43\x5f\x48\xf2\x58\x7a\x76\xad\x60\xb0\x45\xf5\x73\xe1\x06\x69\x9d\x13\x93\xc9\xf1\xf6\xc6\xb0\x41\xdd\x71\x66\x6b\x28\xb9\x93\xd7\x29\x6f\x0c\x70\xb6\x5b\x03\xe1\x2d\x23\x53\xe8\xc6\x4f\xc0\x05\x6d\xc7\x8e\x4d\x38\x4e\x06\x0d\x5f\x5a\x93\xc2\x8c\x4d\x48\xe5\x4e\x66\xbd\x6a\x4d\x6a\xcf\x27\x2a\x6c\x4c\x32\xf5\xad\x1b\x50\x8c\xda\x86\x72\x96\x6e\x8b\x4c\x00\x4d\x59\x4c\x04\x23\x58\x4d\xf6\x97\x09\x72\xb1\xa9\x09\xdd\x1b\xdf\x6e\xb3\x42\xec\x48\x71\x31\x39\x64\x93\xe1\x16\x8b\xf3\x2f\x1d\xa7\x7e\xbd\x8d\x35\xcb\x06\x48\x64\xe5\xa9\x17\xd4\xdb\x0a\xd3\xa6\x87\x3f\xb4\xca\x2e\xdd\x28\x59\xa4\x5a\xe5\xdc\x4d\xda\x4c\x85\x6d\x6a\x21\x61\x46\x9f\x76\xbf\xa8\xf7\x12\x92\xbc\x89\xfc\x94\xdd\xa7\x4c\x34\x95\x0f\x4f\xbd\x2c\x0a\xa8\xe1\xae\x30\x65\x96\x7b\x35\x25\x4e\x68\xb9\x77\x8a\xab\x72\x25\x0e\x3e\x0b\xe7\xcd\x27\xe1\x84\x94\x8c\x90\x92\x51\xb1\x46\x21\x25\x03\xa1\x43\x4b\xc9\x58\xa6\x82\x36\x19\x69\x33\xbf\x21\x94\x79\x2d\xd4\x56\x32\xeb\xbb\x44\x8f\x5c\x3f\xed\xc0\xd9\x39\xfd\x98\x2d\xfb\x8b\xfd\xa1\x32\x6c\x6b\xe1\xb3\xf2\x6c\x7d\x9b\x2b\x9b\x97\x5d\x17\x58\xc4\x89\x85\x20\xb4\x41\xd5\x45\x1b\x59\x93\x39\xb7\xcf\x7e\xe2\x2f\xe4\x99\x88\x13\x84\x15\x9a\x72\xc0\xb5\xca\x63\x78\xe0\x20\x14\xb0\xf4\x4d\xac\x06\x46\xd7\x78\x4a\x62\x53\x6a\xd3\x0b\xbd\xb4\x46\x65\xeb\x0e\xae\x42\xda\x05\xd0\x58\xb3\x0c\x2e\xb6\xa3\xcf\x4c\x38\xa4\x09\xc1\x03\x59\x81\xba\x89\xc1\x86\xf9\x43\xe6\xac\xfe\xc3\x19\x7a\xd0\xf7\x13\x95\xc5\xf1\x7a\xc0\x7b\x75\x63\xeb\xb3\xb1\xe0\xe9\x2c\xb3\xf3\xf1\xa1\xa9\xb9\x6c\x22\xb4\x16\x9d\xd5\x30\x18\xe7\xa9\x8e\x70\xac\x75\xf1\xe6\x8d\xf3\x2a\x91\xb2\x6b\xc1\x2c\xf9\x1b\x48\x1f\xc3\x2c\xfc\xcf\x86\xe3\x1b\x1f\xb3\x07\x2e\xd3\x54\x01\x60\x47\x0e\xf0\x4b\x22\xc1\x2a\x94\x79\x06\x0a\xb9\xee\x45\x3c\x85\xca\x71\x36\xd9\x6d\x33\xdf\x8a\xf3\x3f\x54\x43\x35\xe4\x9d\xdb\xb8\x34\x93\x48\x6b\xef\x89\x9d\x59\x74\x5b\x47\xf8\xd6\xf1\x8b\xdb\x54\xcc\x38\x48\x62\xc9\xdc\x41\x4b\x58\x90\xbf\x19\x9f\xa5\x26\xf6\x8e\xfa\xa1\x58\x95\x3b\x9b\x4a\xf5\x19\xab\x68\xa2\x39\x77\x8e\xca\xb6\xa5\x98\xc4\x9c\x2b\xef\xd6\xca\x5b\x31\x83\x0b\xbf\xf7\x1a\xb7\x47\xd3\xee\xf1\x62\x0c\xb3\x40\xce\x4c\x92\x98\xea\xfe\x8c\x6b\xd0\x56\x52\xf7\xec\xa2\xee\x13\xfb\x44\x4f\x74\xd9\x2e\x5a\x36\xfe\x76\x7b\xab\x58\xea\x6d\xeb\xd1\x8e\x1b\xc0\xdc\x5c\x5a\x50\xb1\xfc\x45\x5b\x1a\xb8\x26\x44\x41\xd0\xf5\x32\x95\x6c\x79\x86\x67\x2d\x8e\x64\x16\xd7\x29\x9e\x69\x25\x42\x71\x7d\x4b\x8a\xb1\x91\x63\x4d\x2c\x2f\xc2\x28\x15\xd4\x9d\xfd\x52\xde\x7a\xfd\xee\x00\x0b\xe5\x07\xbf\x94\x57\x84\xbd\x2a\x87\x26\x28\x01\x47\x2a\xc5\x59\xf0\x24\xec\x09\x57\x7d\xdf\xe4\xe8\x3b\xe7\xbf\x70\xe2\x5d\xc5\x9a\x2e\xdd\xd8\x1b\xac\x32\xae\xc2\x60\x6c\x75\xd2\x28\x1b\x7b\x00\x8e\xd5\x56\xe2\x36\x45\x37\x2a\xbf\x6c\x57\x38\xa4\xf2\x53\x27\xfb\xac\xf3\x6d\x03\xc0\x54\xab\x90\xf5\x43\xac\x98\xe0\x65\x02\xd8\x50\x61\x2b\xbb\xf9\xc0\x9e\xb6\x23\x80\x3d\xa6\x10\xca\x80\x9d\x2c\xf7\x9d\x5f\x36\x41\x0f\xed\xfb\xff\xcc\x1f\x82\xfe\x6e\x8b\xb3\x54\xbc\xd8\x67\x5c\xd8\x57\x4f\xb2\xf7\xf4\x6b\x39\x3e\xb1\x96\x12\x17\xbf\xcc\xd1\x47\x45\x11\xa7\x10\xd0\x5a\x2c\xce\x9c\x81\xa7\xce\xca\x5a\xe8\xc1\x3f\xa5\x43\x22\x18\xd1\x73\x72\xb8\x0e\x19\x0f\x9e\x62\x86\xc7\x00\x86\x7d\x02\x41\x87\x20\x65\xe7\x1a\x94\x39\x89\xa6\x3e\x28\x30\x59\xcd\xe3\x6d\x2a\x73\x5e\x27\x1b\xfa\x34\x12\xb8\xc5\xe2\xcd\x23\x57\xaa\x0f\xed\x9d\xed\x7f\x3d\x45\xe3\xa1\x73\xff\xf3\xe0\xae\x7b\x7f\xf3\x78\x77\x51\xd0\x36\x2e\xae\x1e\xef\x1f\xba\x77\x95\xcf\xf2\x34\xe0\xbf\x3f\x76\x1f\x6b\x1e\xb9\x06\xae\x3a\x3f\x76\x0b\x45\xe7\xff\xfe\xd8\xb9\xea\x3d\xfc\x3a\xb8\xf9\x38\xb8\xef\xde\xfd\xd2\xbb\xe8\x0e\xee\x6f\xbb\x17\xbd\x8f\xbd\x8b\x8e\xfe\xd2\x7f\xf7\xf6\xea\xf1\x53\xef\x7a\xe0\x22\xba\xfd\x47\x5f\x6e\xee\x7e\xfe\x78\x75\xf3\x65\xe0\x75\x79\x73\xfd\xb1\xf7\xa9\x6a\x16\x9d\xfb\xfb\xde\xa7\xeb\xcf\xdd\xeb\xe6\xe2\xf6\xd5\xd4\xa8\xad\x9b\xed\xdd\xbf\x9e\xad\xcb\x93\xee\x86\x73\x7b\x26\xe8\x3f\xc1\xe5\x72\x6b\xb6\xe8\xe9\x89\xfb\xcb\x94\xa2\x3f\xd5\x9c\xdb\xb9\xf3\x72\xa6\xd7\x67\x99\x4f\x38\x93\x05\x14\x1e\x4b\x97\xd5\x5d\x18\xed\x39\xea\xc0\x21\x03\x3d\xa7\xd0\x29\x24\x8d\x64\x23\x75\x51\x04\xb0\x0f\x13\x3a\xa5\x10\x50\x80\x4e\x51\x79\xc1\x8b\x0d\xda\x39\xc1\x10\xac\xbb\x31\x6e\x3a\x0d\xb2\x9c\x30\x0e\x3b\xe5\x1c\xb9\x8b\x85\x18\x2b\x88\x81\xf5\x9d\x33\x3c\xa5\x51\x39\xbb\x05\x90\x6d\x51\x8e\xe2\x52\x6e\xb1\xb0\xc1\x8a\x2d\x4f\x08\xfa\xf9\x6f\xf9\xa0\xc0\xf1\x62\x0d\x06\xe9\x42\x05\x4a\xfb\x40\xa4\x86\xaa\xcb\xb6\x67\xa1\x27\x77\xcc\xad\x45\x1c\xce\xad\xad\x74\x0f\x5e\xb2\x94\x79\x48\x6e\x05\x97\x99\x3e\xde\x66\x46\xa5\x3d\x7e\x8e\xee\x01\x45\x46\xe6\x16\x07\xbd\x8a\xb3\x24\x1d\x53\x86\xe8\x74\x96\x00\x8f\x31\x66\x88\x21\x99\xe0\x67\xca\x5d\xc1\x15\x53\x97\x06\xe8\x68\x25\x42\x74\x8a\x6a\x0f\xca\x39\xea\xc4\xb1\x2c\x32\xb8\xc2\xce\x71\x5c\xf4\xb4\x38\x6c\x1f\x7c\x4d\x33\x56\xcb\x36\x4b\xfb\x28\x3f\x72\x40\xb1\xed\xe3\xe4\x2c\xb2\xc3\xa2\xc8\xb0\x81\xd4\xa2\x29\x38\x70\x5b\x79\xb0\x96\x0c\xf3\x80\xe5\x93\x63\xcd\xcb\xe4\x18\x87\x58\xb4\x59\x8f\x16\xba\xa8\x6d\xa7\x19\x65\x07\x70\xd0\xd6\xeb\xb3\x16\x70\x7b\x49\x97\x6e\xc6\x49\xa9\xd4\x5d\xeb\xfe\x0a\xa5\xf2\x2a\x3b\xdb\xaa\x93\xaa\x5a\x88\x84\x23\x39\xc8\xf6\xff\x0a\xf3\xb8\x85\x4f\x6f\xb2\x2f\x1b\x25\xcd\x81\x47\xb7\x55\x5d\x57\x0b\xf9\xcf\xd6\x7d\xd5\xb8\x0f\xb7\x84\x9c\xd5\x5e\x8a\x84\x52\x21\x34\x02\x2f\x25\xa6\xcc\x16\x90\x22\x99\x1b\xcd\x15\x6c\xd7\xe7\x38\x2b\xa9\x88\x87\xfc\xb9\xa0\x13\x4f\x89\x94\xb8\x06\x0b\xc6\xb3\xe4\x6d\xc2\x18\xb2\x13\x6a\x3f\x6c\xb9\x9f\xdc\x99\x7c\xd0\x5f\x35\xc9\xe8\x77\xbe\x42\xef\x26\xaa\x65\xd8\xd8\x05\x31\xa3\x1b\x93\xca\xa8\xf9\xcb\x49\x1e\x03\xc4\x85\x17\x1a\x55\xe7\xb5\x6a\x69\x0d\x2c\x13\xac\xb2\x2e\x98\xef\x79\x5c\x3d\x74\xc8\x6b\x7d\x6d\xb0\x71\xeb\x0e\xc2\x45\xfa\xac\xb0\xeb\x0a\x6e\x5a\xbf\x62\x7b\xc4\xa7\x53\x23\x17\x14\x4c\xc0\x27\x08\x9b\x0c\xd2\x5c\x9a\x92\x69\x34\x31\xce\x31\x7d\x65\x9c\xf4\xd9\x8b\xb7\x20\x85\x18\xeb\x8e\xdf\x12\x00\xb5\x7e\xd5\xc7\x8d\x3e\x17\x22\xd7\x41\x64\xa4\x10\x46\xed\x6d\x04\xe3\xc7\xcc\x0b\x9e\x2d\xd9\xe0\xde\x7a\x6d\xb0\xd5\xd7\xa8\xad\x59\xa2\x6f\x5d\x85\xcd\x6c\x6e\x5e\x61\xcb\x0d\x14\xfc\xb6\x43\xf0\x6a\x6b\x56\x8d\x60\x0b\xa5\x35\xf7\x8a\x9c\x9e\x65\xc2\x9a\xc4\xe9\xe9\xd0\xc2\x7f\xe8\xe9\x3a\x6a\xff\xd1\xcd\xe8\x8f\x46\x11\x4e\x6b\xf0\x62\xbc\xd6\x32\xf0\x74\x74\xaa\x65\x56\x87\x63\x60\xe3\x47\x24\x3a\x35\x80\x8c\xef\x21\x88\xb5\x73\xdb\x7b\x7f\x82\xde\xfb\x89\x7c\xef\x8f\xc6\x74\x91\x1f\x7f\x4b\x35\x5b\xdc\x13\x74\xb9\x42\x2e\x49\xf1\xd0\xc3\x4e\x29\xf1\x01\xbb\x63\x2c\x1b\x40\x75\x5c\x40\x7f\x59\xf8\x06\x3c\xfa\x50\x2e\xd2\x38\xbd\xb3\x48\x76\xeb\x37\x33\x12\x36\x95\x15\x2b\x17\xf7\xd9\x70\x5e\xf6\x8c\x9d\x64\xae\xb1\xd6\x3c\x62\xe3\x12\x88\xba\xbd\xc5\xbc\xf3\x2d\x47\x58\x37\xdf\x46\x4b\x32\xd9\x3b\x59\x9d\x9e\x9c\x87\xd6\x85\x76\x84\xd4\x84\xaa\x59\x15\xcc\x7c\x8e\x98\x95\x8b\xb2\x4c\xfa\x3a\xb6\xed\xd6\x22\x9e\xbf\x53\x45\x11\x9b\xca\x51\x23\xda\x87\x5d\xb6\xdb\x5d\xb6\x8d\x54\x96\xe2\xe0\x56\xbf\xbe\x2f\x8c\x14\xe9\x35\xe3\xcc\xbd\x5a\x95\xc9\x18\x7c\xa1\x4e\xe6\xf2\xf2\xd6\x2b\x3a\xca\x3d\x9a\x2c\xf7\x94\xdf\x9b\x68\x0b\xe3\xab\x5e\x1c\x6b\x79\xa8\x1d\x65\xab\x4b\x71\x6a\xd2\x56\x15\x9d\x92\x13\x53\xce\x2c\x8f\x10\xb1\xe7\x15\xb6\x9b\x09\xec\x9a\x10\x2a\x5c\x27\x16\x3c\x72\x25\x9c\x83\x15\x75\x81\xba\x3d\xb2\x41\x78\xce\x75\xe7\x73\xf7\x72\xd0\xbd\x7e\xe8\x3d\xfc\x5a\x01\x0c\x5a\x7c\xec\xb0\x41\xbd\x17\xee\x7f\xbd\x7f\xe8\x7e\x1e\x7c\xea\x5e\x77\xef\x3a\x0f\x4b\x70\x43\x9b\x3a\xab\xc3\xa4\x4c\x65\x95\xf2\xb8\x0a\x2e\xa5\x33\x32\x57\xf4\xbe\x88\x1e\xea\x75\x42\x49\x0d\x82\xa8\xc1\x74\x60\x31\x11\x28\x26\xcf\x24\xe1\xb3\xdc\xa8\x5b\x49\x30\x0f\x5a\xb4\xa2\xfd\x26\x78\x51\x68\xb3\x4c\xe3\x73\x64\x6a\x23\x7a\xe5\xa1\xb3\x06\x41\xe4\xc3\x82\xb0\xf7\x0a\x91\xaf\xb3\x84\x46\x54\x79\x39\x9f\x5c\x58\xe7\x8e\xf1\xb9\x42\x48\xef\x92\xcd\xb5\xb5\x10\x9e\xad\x5b\x1c\xfc\xf0\x83\x45\x5b\x43\x76\xa2\x32\xa8\xbb\xa5\x95\xa1\xb6\x60\x56\xa8\xf1\xb4\x2f\x20\xf1\xad\x31\xba\x5d\x18\x27\x16\x13\x9b\x6c\xde\x66\x0d\x4a\x5f\xf5\x20\x97\xdf\x86\x4d\xc1\x45\x85\x73\xdd\x1c\x5d\xd4\x6e\xa7\xbe\x72\x8c\x50\xa1\x10\xed\x16\x20\x55\x6c\xc0\xff\x8a\x51\x1e\x0b\x85\x80\x98\x09\xd4\xc5\x48\x90\x29\x57\x5a\x01\x33\x61\x14\x27\x5a\xa8\xa2\x38\xa1\xff\x04\xf0\x31\x41\xce\xbc\xb0\x13\x07\xd9\x96\x3b\x2f\x2c\x30\xc8\x59\x9f\x5d\x76\x6f\xef\xba\x17\x9a\x21\x9d\xa1\x47\x09\xb8\x62\x85\xa9\x5f\xda\xed\x6d\xc4\x31\x3f\xfc\x83\x32\xa9\x08\xae\x8b\xa0\x23\x42\x70\xd1\x9e\x3f\x64\xfd\x75\xe1\xbb\xea\xed\x0d\xcf\x0a\x96\x31\x67\x7e\xb8\xae\xad\x22\xee\x25\x5a\x6c\x3d\x91\xed\x0e\xbf\x14\x28\xe2\xe3\xaa\x80\x24\x52\xa4\xfa\x0e\xa9\x0d\xc8\xac\xed\xe7\x57\xe8\xf3\x16\xbe\x6d\x9a\xe7\x03\xc4\x25\x4a\x95\xc3\xbc\x1a\x24\xd8\xac\x9c\x51\x69\x9e\xb5\xa2\xa2\x78\x0d\x0c\x96\xd2\xd6\x1f\x92\x31\x66\x48\xa4\x8c\x95\x70\x7f\x7d\x3b\xdf\x62\xa4\xd1\xaa\x47\x55\xd3\x0c\x4f\x79\xca\x4c\x3d\x5e\x3d\xaa\x8a\xc1\xc8\x19\x61\x6a\xc9\x60\x5e\x0b\x61\xa7\x34\xd4\xc3\x05\xd9\xa9\x18\x68\x1d\xce\x4e\x95\x37\x0b\x4a\x95\xaf\x76\x2d\xbb\x48\xc6\x82\x4b\x4b\x1f\xaa\xec\x7e\xae\xd6\xb2\xb1\x7c\xda\xb8\xbb\x07\x2c\x9f\x96\x77\x15\x93\xe8\x69\xd5\xcb\xa6\x9c\xce\x9a\xd8\x4a\xef\x0b\xc6\xbe\xb9\x7e\x6a\x6b\xee\x40\x81\xff\xe8\x09\xfd\xf4\xf0\xf9\x0a\x8d\xa8\x96\x7b\xf5\xb5\x72\x8d\xb5\x8c\xfd\x28\x12\x67\x95\xb6\x96\xdd\x54\x24\xd9\xdd\x0b\x0b\xef\x44\x29\x4f\x4a\xd0\x37\x1a\x1e\x13\x67\x6a\x16\x16\x46\xb1\x54\x73\x47\x60\x16\xf3\xa9\x99\xc7\x07\x99\x8e\x46\xf4\xeb\x99\xc2\xe2\xfb\x1a\x7a\x98\x98\x8e\xc1\x3f\xf8\x70\xa0\x47\xb4\xe1\x45\x5c\xd5\x1c\xb2\x05\xc8\x33\xb2\xd9\x99\x5d\x9a\x77\xff\x0f\x1f\x02\x44\x00\xa0\x1c\x38\xdf\xa0\x8d\x93\xb0\xaf\xb8\x9d\x94\x57\xe4\x2e\xa0\xd7\x44\x5c\x08\x62\x91\x05\x4c\xd1\xd8\x19\x16\x8a\x82\xb5\xd6\xa1\xdf\x14\xca\x1e\xe4\x4b\xe4\x97\xc8\x9f\xe0\x1c\x62\x7c\x48\x08\xb8\x97\x66\x34\x59\x4d\xe9\xbd\x28\x78\x46\x4b\x27\xd0\x86\xeb\x5a\x40\x54\x30\xc8\x2c\x15\xb1\xba\xcf\x84\xa9\xad\xe8\x27\xd0\x44\x05\xd6\x41\x3b\x1f\x87\xa9\xdd\xda\xbb\xcc\x2f\x37\x17\x07\xed\xc7\x54\x29\x81\xe1\x9e\xb7\xd9\x65\xd6\xa1\x5f\x17\x66\xf0\xdc\xda\x73\x0d\xaf\x2e\xd2\x65\x49\x3e\x81\xa5\x76\x5e\x1a\x3f\x8f\x05\x76\x35\x1b\xd6\x44\x68\x92\xc4\x58\x31\x3c\x64\x10\xab\x9c\x96\xd7\xdc\xf4\xa9\xf7\x56\xa9\xcb\xa5\x4b\xbe\x06\x1c\x51\xa1\x99\x4f\x04\xf2\x60\xb7\x11\xbd\xbf\x0a\xe0\x01\x0c\xe4\x51\x24\x10\x77\xde\x68\xc5\x32\xf5\xe3\x35\xe7\xcb\x24\x3b\xdc\x42\x46\x37\x83\xd1\x42\x23\x99\x09\x12\xe9\xab\xec\x1c\xdd\x26\x44\x4b\x5e\xa9\x96\xbe\xd2\x24\x71\xd0\x6d\xcd\xd2\xe1\x4a\x70\x83\x3b\x9f\x97\xa7\x7b\x34\x4c\xcc\x41\x17\x36\xcf\xcc\xa3\xc1\xf6\x61\x2a\x3c\xfa\x82\x09\x19\x0c\x89\x45\x2d\x12\x38\xfc\xdc\x44\xed\x82\x29\x09\x17\x2e\x32\xfa\x4f\xcd\x7e\x05\x91\x13\x5e\x9b\x19\xea\xcf\x76\x37\x73\x70\xa4\xdc\xe1\x24\xdc\x7d\x58\x17\x8c\xde\x42\xae\x29\xdd\x81\x05\x11\xa7\x8d\x2f\x36\x8f\x3d\xb1\x40\xba\xf6\x6e\xb5\x43\x83\x5b\x32\x37\xb5\xf9\xa0\x76\xb9\xeb\x22\x57\x66\xe6\xc6\xf7\x9a\x7d\x9e\x1b\x90\xf3\x3c\x0a\xaa\x64\x5e\x4e\x10\xe9\xbb\xb6\x6e\x89\xf5\x3c\x07\xa9\x58\x09\xc7\x23\x87\xa3\x5f\x85\x73\xdb\x0c\x9e\x7c\x58\x9a\x08\xd5\xec\xd2\x56\x09\x01\x31\xda\x06\x3a\xc9\x02\xc4\x9f\xdd\x36\x86\x8c\x95\x2a\x5e\x3d\x53\xde\xd4\xad\x06\x52\x72\x2e\xca\xec\xca\xbb\x56\xd8\x81\x85\x09\x04\xd0\xb8\xd5\x41\xe3\x6c\xc9\x98\x6c\xef\x01\xc4\xa3\x12\x80\x96\x90\x3b\xd0\xca\x82\x83\x35\x7a\x2f\x4b\x17\x2b\xac\x4e\xab\xdc\xb0\xc2\x17\x9a\x97\x5c\x6e\xe8\x81\xd3\x93\x99\x0f\x20\xdb\x76\x93\x18\xa0\xc2\xfc\x8d\xf7\x00\xda\x24\x31\x32\x90\x0f\x06\xd2\xda\xd2\x2e\xf3\x9c\xcc\xb0\x20\x4c\xf5\xd9\x9d\x1e\x85\xf9\x22\x8f\xc4\x70\x51\x40\xae\xcc\x00\x14\x23\x1e\x21\x6c\xbf\x02\xa2\xd7\x85\xe1\xc9\x81\x79\x09\x54\xd3\x1d\x22\x13\xfc\x68\xde\x31\x40\x11\x16\x28\x49\x4f\x95\x8e\x72\x35\x5e\x0b\x90\xd1\x84\x02\x4e\x43\x4c\xa4\xbd\x90\xa8\xb2\x40\x1c\x99\xf8\x9d\x12\x07\xac\x0d\x9f\x65\xfc\xab\x8a\x61\x3b\x43\x01\x73\x06\x3a\xd9\x67\x5e\x1f\x0d\x38\xac\x46\x59\x5f\x53\x95\x80\x75\xa6\x71\xe6\xf8\x82\x7f\x9a\x15\xe2\x82\x8e\x29\xf3\xaa\x61\xd9\xe9\x4d\xf1\x0c\xcc\xbb\xe6\x0c\xf2\x51\x76\xa7\x3d\xd8\x1c\x87\x33\x18\xf1\xff\xfd\xaf\xff\x3e\xa3\x75\xde\x0f\x39\xb0\x14\x38\x84\x95\x5c\x6d\x59\xfc\x95\xf7\xa0\x57\x6a\x20\x3d\x3c\x9d\x56\x16\xf2\x36\xf2\x5f\xed\xe5\xa6\x37\x0d\x57\x13\xe3\xee\x2d\x6e\x77\xf0\x8d\x88\xb4\xe1\x6c\x98\x2b\xe6\x75\x69\x49\x25\xe4\x26\xe8\x91\x98\x93\x9c\x19\x08\xfc\x4a\xf3\x0b\x66\x9a\x3e\xcb\x3f\x91\x06\x44\xc6\xe0\xf6\x9a\x1f\x72\xea\xb4\x24\x4c\x13\xef\xcf\x23\x25\x72\x77\xb8\x17\x0b\xed\xea\xa2\x98\x18\x56\xdd\x7e\xe9\xa6\x2d\x71\x6e\x0f\xc0\x72\x93\x98\xd1\x09\x96\xbb\x0b\xcd\xa9\xac\xe7\x65\xac\xe9\xbe\xf0\xb0\x2c\x48\xc7\x0c\xd2\xa4\xc8\xea\x05\x49\x25\x11\x86\xd3\x65\x18\x62\x76\x27\xf8\xf0\x9c\x10\x21\xba\xc4\xd7\x48\xa6\x98\xae\x94\xcd\xa0\xdf\xaf\x06\x0f\x2d\x38\x1b\xf0\x98\x88\x41\x9c\xaa\x85\x63\xd1\x94\x61\xa0\x3f\xba\x4c\xd5\x7c\x79\xfb\x32\xc1\x8b\xf5\x8c\x9a\x00\x5b\xf5\xfb\x35\xcd\x2e\x97\x98\xbd\x10\x9f\xa2\xd4\x5c\x03\x87\x4a\x4a\x70\xa8\x36\xe2\xb5\x60\x22\x81\x1b\x98\x29\xc0\x21\xcc\x35\x29\x7b\x45\x1b\xd0\x76\x18\x39\x1a\xa6\xb9\x49\x29\x2b\x83\x11\x9f\xf5\xd9\x47\x53\x47\x06\xb4\x3c\x33\x80\x08\xd2\x8d\xc8\xd7\x19\x97\xa4\x90\xff\x56\x51\xda\xc2\x26\xbe\xda\x61\x54\x0b\xeb\xf9\x47\x9b\xcb\xea\xaf\x0e\x6c\xbb\xb8\xe0\x8b\x53\xae\xde\x81\x1b\x89\x83\x11\x9d\x51\xbd\x77\x06\x95\x27\x6d\x77\xe5\x95\xf3\x98\x2e\x00\x0f\x53\xc9\xfc\x04\x65\xd3\x2b\x6d\x88\x84\x3c\x13\x30\xa7\xc3\x18\xfd\x02\x26\x45\xbb\x5e\x0d\x3b\x59\x76\x80\xf2\xe4\x53\x60\x0b\x28\x2e\x8f\xa0\x98\xa2\x57\xb5\x17\x8b\xc9\x47\x1b\xe7\xc9\x55\x05\xa6\xac\x20\x9e\x77\xfc\x42\x2e\x73\xa2\x10\xf9\xaa\x88\x2d\xf5\xfa\xe0\x32\x19\x17\x93\x1f\x50\x75\x32\x56\xbd\xec\xb8\xf3\xa2\xdb\x1d\x97\xf8\xee\x52\x35\x63\x77\xe5\xdb\xd4\xc5\x09\x66\xb1\xcd\xc7\xb5\x4a\x86\x16\xb6\x60\x76\xc6\xe8\x96\x65\x2a\xd8\xac\x52\x0f\x01\xdf\xb4\x69\xa0\xfa\xe1\x22\x73\x0a\xa3\x56\x59\x20\xbc\x82\x0b\x2d\xb9\xa7\x4c\xd1\x44\x6f\x0e\x3b\x06\x89\x46\x10\x19\x67\xd1\x1d\x21\xb2\xbd\x0e\x40\x90\x4a\x49\xd9\x78\x60\x29\xe9\x52\x4b\xdb\x5d\x0c\xc5\x3d\xf5\xd9\x34\x65\x7e\xfc\xd1\x35\xd4\x6c\x54\x37\xdb\x1a\xc0\xdd\x5c\x52\x2b\x68\x1c\x8c\xbb\xc9\x58\x54\x3e\x97\x0b\x3b\xa0\xb1\x21\x05\x35\x15\xc5\x61\xa2\xab\xd8\xdd\x41\xa6\x5b\x04\xbf\xc8\xaf\x10\x69\x13\x55\x4d\xfa\x19\x44\xea\xab\x9a\x4c\x5c\x59\x9b\x81\xdb\x63\x99\x88\x66\xeb\x99\x65\x38\x03\xa5\x64\x5e\xec\xba\xb3\xe9\x08\x38\x49\x86\x38\x7a\xca\xb4\xb0\xcc\x16\xc1\x85\xab\x07\xa1\xe5\x4a\x28\x78\x67\x36\x97\x1e\x68\x04\xd2\x8d\xef\x2d\x34\xf0\x47\x76\xd8\x79\xe7\x86\x6a\x16\x57\xce\xe0\x5d\x99\xd1\x9b\xdc\x86\x98\xcc\x12\x3e\x9f\xd6\xdc\x67\xe5\x04\xc6\x4d\x22\x75\xea\xf2\x27\xb7\x7a\x95\x95\x98\xde\xca\x97\xd9\x42\x36\xd4\x16\xc0\xb8\x56\xe0\x92\xb9\xe9\xfe\x04\x6c\xf6\x39\x3f\xcc\x2c\xf6\x7d\xf6\x29\xe1\x43\xb0\xbb\x5a\x1b\x85\x4b\x03\xf2\xf2\x41\xca\x87\x7e\xd5\xe4\xa4\xf2\xb0\xa8\x9c\x25\x5a\xe3\xa9\xef\xc1\x24\xa6\xec\x76\x71\x0d\x8c\xc2\x72\x13\x62\xfb\x90\xee\xca\xcf\x77\x81\x0d\x7d\xe5\xc4\x05\xf3\xae\x61\x72\x25\x53\x9c\xc9\x47\x3c\x33\x9e\x6c\xc5\xfb\x4c\xe1\xb1\x5b\x5c\x2b\x81\xf2\x17\x46\x84\x9c\xd0\x59\xa1\x5a\xe6\xc6\x31\xe4\x76\xdb\xdb\xff\x33\x11\xd3\x95\x6d\x1e\x60\x7e\xd7\x03\x9f\x9d\x1a\x08\x17\xbd\x3b\xe5\x0c\x47\xb9\xe1\x36\x4a\xb0\x94\x74\x34\xf7\x90\x57\xb2\x60\x60\xc8\x6f\x2b\x5a\x3a\xbc\xf2\x78\x55\xbc\xd0\x50\x67\x3b\xd0\x03\x9b\xa7\x5d\x3e\x16\x0f\x3f\x8d\x7d\x64\x3e\x7d\xe5\x2d\xe2\xf3\x38\x61\xc2\x52\xbd\x16\x61\xd8\x60\x2c\xac\x07\x15\xd0\x16\xd4\x69\xc7\x3b\xa9\x22\x57\x73\x61\x23\xe5\x90\x62\x99\xb0\x6d\x69\x66\x15\xbd\x0c\x8e\xc5\xc7\x38\x52\x85\x44\x57\xd8\x79\x5a\xb1\x74\x76\x73\x7d\x2e\x33\x28\x17\x40\xbc\xc8\x3f\x3e\x41\x72\x23\xe4\xb6\x36\x9b\xf2\x92\x24\x64\x2b\x11\xe9\x6b\xec\xd0\x72\xb8\x87\xb7\x37\x1b\xf7\x65\x5e\xbb\x62\xb9\xf1\x65\x8d\x40\xf9\x1a\x20\xa5\xea\xa1\x7f\x31\x03\xb5\xb1\xf2\x55\xab\x08\x86\x53\xa0\xf2\xf2\xd1\x1e\xd2\x2e\xf7\xe2\x4f\xcc\xf0\xed\x7e\xcf\xe7\x58\xd8\xd4\xf9\x8c\x33\x61\xf2\x10\xf7\xf9\x2b\xc7\xb3\x2f\x8c\xeb\x13\x69\x13\x7b\xb3\xf4\xf4\xad\xc5\x7b\x17\x6f\xa8\x76\xfb\xc2\x7a\xb7\x15\x47\x63\x02\x70\x3d\x94\xc5\xf4\x99\xc6\x29\x4e\x8e\x6a\x4f\x6c\x2d\x1b\x67\x4b\xd4\xaf\xe6\x30\xad\xcc\x41\x79\xd0\x28\x51\xd2\xdd\x47\x0b\xc0\xa0\x76\x71\x0e\x70\x09\x0e\xe3\x58\x1a\x85\xe1\xcd\x4b\x6c\x1b\xe3\x67\xd8\x91\x59\x14\x89\x20\x4a\x16\x2e\xd9\x7c\xec\xdb\x97\x26\x0d\x8d\x63\xfb\x45\x86\x19\x51\xc0\x6a\xc3\x05\xc8\x4b\xb3\x46\xaf\xcf\x75\xcb\x47\xeb\xad\xcb\x9d\xab\x9f\xb1\xf2\xa8\xf2\xd3\x15\x84\xe1\x43\x38\xa7\xed\xe5\x61\x87\x52\x7b\x80\xc2\x4f\xdd\x31\x3c\xcc\xfb\xf7\x00\x84\xe3\x05\x91\x60\x7b\x22\xf2\x11\x6d\x93\x83\x90\x94\x17\x96\x62\x5f\xf2\xf2\xa9\x03\x00\xcb\xe1\xb4\x0e\x77\x89\x0e\xe3\x24\xdf\x59\x1f\xe5\xee\x2e\xf8\xe5\xfb\x65\x2b\xfb\x03\xb0\x70\x31\x24\xed\xa7\xb6\x26\x10\x1c\x5e\x2f\xd0\x73\xc1\x31\xb6\x24\x84\xd6\x0e\xaf\x55\xf0\xec\x02\x39\x77\xb1\xbc\x36\x43\xb3\xf5\xe2\xee\x72\xab\xad\x3a\x96\x6d\xe8\x68\x3b\x76\x31\xda\xdd\xe8\x7d\x10\x22\xd9\xdb\xdd\xa2\x15\xb8\x4f\x6e\xc9\xb6\x79\xc8\xaa\x0a\x39\x6e\x8e\x31\xe1\x12\x50\x07\x33\x41\x46\xf4\xeb\x5a\xaa\xc0\x2d\x7c\x6a\xd5\x6b\x4d\xe6\x52\x69\x48\x70\x0b\x42\x29\x49\x2f\xda\xd6\x52\xda\x96\x8f\xeb\xb3\x3c\x6d\xd7\xe6\xec\x6a\x61\x98\x8b\xc2\x4f\xeb\xe2\xa3\x6e\xbf\x8c\xa5\x59\xd7\x89\x52\x33\x79\xfe\xe1\xc3\x98\xaa\x49\x3a\x3c\x8b\xf8\xd4\x24\x89\x70\x31\x36\x7f\x7c\xa0\x52\xa6\x44\x7e\xf8\xf3\x9f\xfe\x94\x2f\xf1\x10\x47\x4f\x63\x83\xf9\xb4\xe8\xef\x2c\x2e\x39\xc1\x72\xb3\xb0\x33\x97\x5f\xb9\xe3\x3c\x7b\xaf\x1b\x97\xd9\xac\xbf\x91\x0a\x4f\x67\x7e\x9c\xb2\x29\x04\x29\x15\xce\xcb\xcf\x40\xd2\xac\x9e\x26\x9a\xe0\xd9\x8c\xb0\x7a\xb3\x8b\xc9\x82\xde\x80\xf5\xb8\x3c\x6a\x3b\x42\xf2\x75\x96\x60\x56\xc4\x06\x81\x5a\x6a\x82\x44\x84\x29\x8b\x5b\x91\x17\xb0\x87\xdd\x68\xf0\xa9\x0c\xff\x5f\x2d\x4f\x16\xe6\x48\x65\x5e\x24\xd1\x0d\xc7\x16\x2c\x76\x65\x6c\xb1\x47\xba\x72\x91\xe8\x9c\x76\xc4\x51\xad\x29\x83\xf6\xde\x16\x84\xdb\x64\x07\x45\x82\xb3\x01\xf9\xaa\x99\x9c\x5c\x17\x4d\xee\x51\x12\x89\x3a\x5f\xee\x91\x9c\x33\x85\xbf\x9e\xa3\xcf\x94\x81\x00\xfb\x13\x4f\x85\x44\x97\x78\x7e\xca\x47\xa7\x53\xce\xd4\x04\x7d\x86\xff\xb5\x3f\xbd\x10\xf2\x84\x7e\x25\x58\x58\xfe\x60\x8b\x4c\xba\x3a\x77\xb0\x85\x44\xca\x24\x22\xcf\xfa\x84\xfe\xe9\x7f\xa1\xa9\x69\xf9\x1c\xfd\xf0\xe1\x4f\xff\x0b\xfd\x01\xfe\xfb\xff\xa0\x3f\xd4\x58\x1a\x56\xc3\xa3\x83\x5a\xe4\x77\xb5\x61\x04\x40\x29\xb9\x48\xf2\x65\xcd\x5e\x08\x9e\xaf\x54\x65\xcb\x4f\x34\x7a\xe2\xa3\xd1\x40\x6f\x0c\x93\x65\x3a\xc0\x1b\x99\x1d\x7c\x68\x61\x6a\xab\xc9\x9b\xda\x94\x79\x55\x28\xdb\xa9\x81\x23\x71\xec\x5a\xa6\xb9\x79\x02\x22\xdc\x0a\xf5\xc9\xa9\x84\xaf\x48\xac\xb9\xea\x2a\xa7\xc3\x59\x17\x1d\x32\x81\xb3\x20\xf9\xf0\x3d\x4e\x20\x2e\x44\xa5\xfa\x21\xd6\x26\x0a\xcd\x12\xb2\xf2\x38\x2c\xc4\x7e\xbf\x99\x80\x5e\x98\xda\x6b\x05\xf3\xca\x85\xce\x97\xc7\xf1\xde\x73\xb1\x91\xbe\xf5\x44\x6a\xf3\x6c\x96\x54\x40\x73\x55\xb9\xb1\x6f\xd4\x50\x1c\x49\x2e\x32\x88\x6f\x63\x17\xb1\x75\x52\x97\x5b\x51\xa9\x30\x91\x8f\xed\x0e\xbd\x9e\xfa\x65\xf6\xc9\xb2\x61\x42\x18\xa4\x7b\x3b\xaf\x00\x09\xa3\xd5\x22\x92\x66\x89\x15\x23\xae\x40\xe2\x5c\xb6\xa0\xf7\x19\xf8\x0a\x34\x0e\x31\xb9\x90\x5c\xc4\x9c\x64\x6b\xd1\x2d\xaa\xd7\x33\x15\x11\xb9\xe0\x9b\xc5\x64\x27\x94\x2d\x24\x73\xd4\x06\xb7\xd5\xcb\xe4\x57\xb6\x8c\x9c\x03\xab\xe6\x71\xae\x2c\x18\xb7\x84\x2d\xd0\xe2\xa1\xe4\x16\x67\x03\x68\x8b\xdb\x00\x62\x5d\x28\x1b\xb2\x01\xd7\x36\x86\xeb\x9c\xe1\xb9\xaa\x33\xa5\x62\x33\x02\x6b\x5e\xd8\x10\x33\x09\xe1\x64\x1b\x8f\xc3\x2b\xa0\x94\xc7\xa8\x15\x4a\x19\xc3\x48\x20\x29\x73\x4d\x20\x5d\x53\xcb\xec\x04\x09\x0c\x11\xc3\x6a\xa2\xdb\x93\x44\x9c\x8e\x70\x44\xd9\xf8\xc4\xc3\x50\x05\x3c\x13\xff\x3a\xa8\xda\xa4\x0f\x58\x3e\x6d\x37\x0a\x76\xe3\x92\xb4\x34\xce\xcb\x22\x5a\xd4\x23\xe3\x58\xa1\x0b\x00\x92\x0a\xcb\xa7\x3a\xd8\xaf\x05\xcc\xc1\x86\xd1\x65\xa4\x70\x48\x85\x4d\xe3\x73\xf8\x08\xc4\xd7\xa7\xa0\x9c\x89\x2b\x92\x6e\x11\x48\x5d\x3a\x2a\xce\x20\x82\xca\xd0\xbb\x0d\xe3\x97\x13\x2e\xd4\x60\x4d\xd0\xe2\xb2\x4b\x85\x91\xd3\x04\xd0\x86\xf8\x33\x11\xcf\x94\xbc\x14\xb1\x7f\x57\xd9\x8b\xc6\x68\xe6\xc5\x53\x02\x38\xec\x74\xc6\x21\xbf\x6b\x84\xa6\x98\xcd\x0d\xa3\xd4\xcc\x05\xcb\x27\x99\x95\x66\x46\x72\x8a\x93\xe4\x04\x09\x92\x4a\x53\xb2\x5c\x92\x64\x74\xea\xaa\xc4\xc4\x28\xe1\x63\x1a\xe1\x04\x0d\x13\x1e\x3d\x49\x93\x7e\xc9\xc6\x86\x49\xcd\x04\x8f\x88\x94\x9e\x64\x95\x43\x2d\xd8\x04\x58\xa8\xcb\xac\x88\x98\x52\x46\xa5\xa2\x91\x13\x99\x72\xc4\x94\x07\xc8\xd5\x88\x30\x98\x84\x21\x9d\x18\x86\xab\x25\x3d\x62\x90\x63\x53\x66\xeb\x89\xc1\x75\x6d\x01\x21\x5d\x06\x43\xdd\x01\xda\x02\xbe\xa5\xdb\x21\x03\x55\x3c\x90\x4b\x8e\xd4\x85\xfd\x0c\x8e\x71\xd3\x16\xb8\x2b\x9e\xa8\x6c\x43\x66\x27\xad\x80\xb9\x05\x09\x0f\x59\x7e\x46\x41\x72\xc9\xd2\x16\x0e\x0c\x6e\x0f\x86\x5c\x03\xb2\xb7\x6c\x4f\x6b\x2a\x82\xc8\x03\x25\xec\xca\x5e\x7b\xca\xa2\x24\x8d\xb3\xda\xab\x5a\x04\x78\xd6\x9b\xc4\x91\x47\xd3\x5e\x0b\x0a\x27\x08\x4b\xf4\x42\x92\x44\xff\xbf\x49\xcf\x38\xcd\x6a\x8a\x68\x96\x6c\xea\xbe\x40\x27\x8e\x4b\xd7\xed\xa8\x83\x83\x4e\xbd\xc5\x6a\x62\x00\x29\xa6\x5c\x99\xb2\xb7\x06\x3a\xd5\xd9\xb7\x0c\xd6\xe6\x30\xe1\x43\x38\xe9\x80\xaa\xea\x92\xb0\xbd\x9c\xcf\x34\x8a\x08\x89\x49\x6c\x8a\x78\x66\x88\x9f\xf6\x88\x7e\x5f\x8d\xf1\x59\xa0\xc8\x01\x20\xaa\x96\x0d\x6b\xb5\xb8\xaa\xc5\x12\x88\x67\xe8\xb6\x84\x1a\xe4\x51\x66\x84\xcb\x18\x72\x27\x0b\x4b\xf8\x3a\x28\xac\xa5\x49\xec\x6e\x85\x56\x44\x61\x2d\xf4\xb9\x05\x14\xd6\xd2\x3c\x6b\x72\x46\xf8\x78\xa7\x09\xf1\x7a\x52\x57\xbc\x7d\x96\xa2\x41\xaf\x33\x77\x67\x61\x0b\xba\x03\x39\xaf\xda\x88\x87\x85\x30\x5b\x2a\x14\xfa\xba\x08\xb3\xa5\xc1\x1c\x32\xc2\x6c\x69\xa8\x87\x8b\x30\x5b\x31\xd0\x16\x08\xb3\xc6\xb9\x3f\xd0\x9b\xba\x1d\x53\x80\x84\xaa\x61\x3a\xba\x07\x1c\x82\xc6\x31\x5e\x98\xc0\x01\x73\x8d\xb9\x3b\xda\xc6\x17\xc1\x68\x6d\x82\x6e\x5d\x38\x56\xc9\x09\xb1\xea\xde\xcb\xbc\x6f\x06\x99\x64\x55\xb3\xfb\x89\x6f\xed\x06\x3b\x64\x84\x67\x16\xf0\xa0\xae\x0e\xd2\xe1\xa4\x76\xaf\x07\xde\x0b\x00\x99\x05\x96\xdf\x0a\xde\xee\x73\xa9\xa4\xc8\x84\xbf\xd8\xb2\x5e\xb0\x0d\xcd\xa6\xac\xdd\x82\xd0\xe9\xc0\x2a\x6d\x75\x94\xa3\x4c\x91\x71\x59\xa7\xcd\x0f\x0d\x65\xea\x2f\x7f\x5e\xca\x89\x0c\xfe\xa7\x53\x0f\xbd\xc2\x1e\x99\xb3\xc3\x3e\x23\x31\x8a\x26\x5a\x2b\x92\x5a\x7d\xd1\xd3\x31\x37\xab\x44\x53\x4c\x9d\x22\x95\x4a\xe3\x5a\xa2\xb2\xcf\x0a\x80\xb9\x67\xe8\x23\xd4\x4a\xc6\xd3\x99\xd6\xbf\xb2\xf9\x51\xbd\x93\xfa\xe9\x0f\x3f\xfc\x85\xa0\x1f\xd0\x94\x60\x56\xd0\x61\x41\x6d\xd2\x57\x1f\x24\xab\xaa\x09\xe9\xb3\xca\xa5\x40\xdd\xaf\xa6\x00\x9a\x8b\x37\xec\xb1\x11\x77\x3a\x31\xd4\x00\xc5\xd1\x04\xc9\x74\x68\x8a\x58\x7b\x36\x0c\x27\x48\x5f\xf1\x31\x38\xaa\xe1\x46\x76\x83\x6e\x3a\x85\xbb\x8d\x01\xb0\xee\xc6\xb6\xb7\x71\x07\xee\x91\x53\x49\x0a\xc0\x63\x15\x4e\x33\xc3\xf9\xfc\x83\x2f\x0d\x28\xd1\x89\xf1\x21\x68\xfd\x0c\x5b\xcb\xbe\x96\xa5\x21\x9c\x18\xbc\x64\x69\x82\x85\x3d\xfa\x7d\xa6\x15\x0d\x41\x9e\x29\x4f\x65\x32\x47\x31\x67\xe4\x04\x76\x42\x1a\x4d\x8c\x63\x55\xeb\x2c\xd8\x56\x53\x79\xa6\x32\xd5\x0a\x2d\xb4\xe5\x8a\xb7\x48\x85\x0d\x60\xda\x84\x42\x3f\x5a\xfd\x26\xf0\x95\xf2\xf2\x23\x51\x3b\x2d\xca\xc7\x34\x2e\xf1\xfc\x96\x98\xc6\x85\x5d\x15\x30\x8d\x33\x4c\xe3\x45\xba\x1c\x22\xa6\x71\x69\xcd\xdb\x61\x1a\x57\x2d\xf9\x1a\x98\xc6\x85\x66\xde\x0c\xa6\x71\x89\xa2\x6f\x06\xd3\xb8\x34\xaf\x80\x69\xfc\xf6\x30\x8d\x37\x44\xed\xad\xe6\xc5\x06\xfc\x4b\x51\x36\x5f\x79\x93\xbd\x97\xa8\x77\xa3\x37\x58\xf4\x54\x0c\x6a\xcb\xae\xab\xcd\x91\x82\xab\x99\xd0\x6a\x48\xc1\x95\xaa\x7a\x3d\xab\xdb\x14\x7d\x0c\x14\x83\x3d\x23\x05\x17\x26\x10\xe2\x2b\x57\x8f\xaf\xac\xdc\x7c\xb6\x6f\x3d\x3c\x17\x74\x59\xbe\x90\x5b\x62\x05\x17\xd6\xa7\x55\x24\x26\x88\xee\x5b\xd8\x89\xbb\x95\xe6\x1f\x0a\x87\x7c\xa9\x2c\xef\x53\x51\x5a\xd4\x72\x2d\xe1\x39\x28\x43\xa3\x84\xfb\xfe\xff\xb0\x73\xd7\x88\x0c\x2e\x91\x37\xf3\xab\x98\xbd\xd8\x62\xab\xb6\xde\xa1\x4e\x2b\xdd\x4e\xa2\xb0\x4b\xde\x5c\xd1\xc5\xec\x06\x71\x3f\x23\x51\x8d\x8d\x99\x4e\xe9\xb6\x9a\x5d\x76\x91\x65\x40\x6d\xa0\x90\x2f\xe4\xa5\xea\xeb\xc9\x0c\xc7\xc8\xf8\xa5\x74\x60\x40\x49\x31\x5f\x8e\xa9\x54\xa2\x36\xb6\x69\x61\x84\x9b\xb8\x4a\x67\x69\xeb\x80\x18\x8f\xaa\xe3\xf5\x3e\x9b\x92\x29\x17\xcb\x02\xab\x2a\xbf\xb4\x75\x98\xd6\xf9\x94\xcc\x26\x64\xaa\x25\x99\xc1\xaa\x8d\xb4\x5d\xef\x2c\x69\xd9\xe6\xae\x99\x40\xc7\xc2\x26\xf0\x1c\xa1\xfa\xdd\xd8\xc0\xa5\xb6\x5e\xee\x4d\x97\xd9\x02\xba\xae\xe8\x10\x72\x48\xdf\xcd\x06\x37\xfb\x52\xc1\xdd\x0d\xfb\xbb\x32\xa6\x23\x0b\xa9\x59\x1e\xb5\xd1\x10\xaf\xd1\x84\x77\x96\x7f\x65\xab\x94\xaf\xe0\xca\x2f\x7a\xe7\x35\x27\xf4\x4b\x54\xaf\x1e\xe0\x51\x03\xe9\xbb\x48\x1e\x88\xcc\x91\x44\x9c\xfa\x9a\x41\x61\x30\x8b\xf4\x2a\xec\x12\xa7\x51\x6e\xb0\x49\x52\x51\x1b\x65\xda\xc6\xa0\x1d\xa9\x14\x27\xa0\x49\xf8\xa5\x55\xcb\x8b\x3a\x9c\x57\xa4\x3d\xb6\xf3\x98\x50\xa6\xfe\xe3\xaf\x2b\xad\xa6\x56\xad\x2c\xdd\xa0\x1c\x1c\x8e\x22\x22\x8d\x8d\xdd\x46\x21\xe3\x21\x7f\x86\x4a\x70\x9b\xac\xaa\x3e\xca\x7a\xde\x9a\xc1\x67\x38\xd9\x71\xbe\xd5\x8d\xb8\x30\x11\x3c\x1d\x4f\x9c\x0d\x49\x9f\x19\x3d\xb5\xaa\xb5\xfc\x65\xc1\x46\xbe\xf2\x5a\xfe\x98\xd2\x64\x3d\x0b\xdd\x7d\xa1\x46\xde\xa7\xde\x03\x92\x93\xec\xb4\x0e\xa1\xd9\xca\x85\x5d\x1c\x74\xfb\x3e\xed\xb7\x99\xbf\x06\xba\x39\x71\xd8\xb0\x23\x9e\x24\xe0\x69\x90\x64\xfa\x4c\x44\x75\xf7\x30\xe1\x07\xba\x1a\x62\x63\x36\x00\xf8\x3a\x4f\x8c\x68\x25\x7f\xdd\x1a\xd1\x50\x22\x37\xfa\x72\xd0\x82\x09\x55\xe3\x8c\xb0\x2a\x1b\xdb\x97\xc5\xf2\x44\x47\x16\x30\xe8\xa2\xc7\xb6\x16\x34\xe8\x48\xb2\xe7\xc0\xc1\x25\xf3\x38\xd4\xe0\xc1\x12\xb3\xcb\x62\xf9\xf2\x6b\xc6\x05\x0e\x19\xc5\xa7\xa3\x49\xdc\x67\x9d\x42\x3e\x85\x2b\xe3\x3e\x9c\xe7\x01\xd9\x46\x87\xf0\x99\x19\x14\x81\xb1\x86\x15\x70\xa3\xe9\xbf\x40\xd3\x31\xc8\xca\x26\xa4\xd0\x85\x0d\x42\x34\x39\x89\x4f\x71\x34\x8f\x12\x1a\x79\x3a\xf3\x58\xe0\xd9\xa4\x8a\xe3\xb9\x95\x0f\xa8\x43\xaf\x85\x3a\x54\x57\x2d\x6d\x95\xb8\x6d\xb7\xaf\x18\x9e\x92\x80\x86\x74\x88\x68\x48\x27\x19\xde\x06\xcb\xeb\xce\xbd\x22\x8c\xc3\xe2\xb9\x0f\x90\x48\xaf\x00\x89\xb4\xce\xe1\xcf\xf1\x8e\x0a\xc7\x3e\xc0\x34\xb5\x21\xde\xeb\xc3\x34\x65\x42\xc0\x41\x21\xef\xd4\xf3\x83\x57\x46\x74\x59\x1c\xd8\x6b\xc2\x32\x55\x88\x4b\xab\xc8\x8d\x4d\xb8\x4c\x4d\xfb\xa2\x15\x5d\x5e\x17\x25\x69\x35\xca\xac\x04\x80\x54\x79\x77\x1e\x08\x1c\x52\xfd\x32\x1c\xc8\xb9\xd9\x66\x56\xcf\x6a\x85\x7d\xfd\xcc\x9e\x55\x14\xcc\xd5\x92\x7c\xb2\xfd\x70\x5c\x89\x3e\x79\x05\xc4\xf5\x92\x7d\x3a\xce\x07\x4f\x04\x9a\xf0\x24\x76\x20\x1c\x19\xb5\xb2\x0e\xb2\x4c\x88\x8c\x40\x6e\x31\xee\x67\x24\x32\xda\x66\x5e\xad\xaf\x29\xa5\x27\x5b\x44\x18\xee\x16\x18\xcd\x36\xac\x28\x19\x27\x59\xc7\x7e\xb2\x54\xba\x90\x45\xf3\x7f\xc3\x18\x0b\x14\x02\xaf\x41\xf5\x30\x97\xda\xbd\x97\x0c\xae\x49\xf4\xf0\x8c\xa3\xa2\xaa\x0e\xaf\xd9\x67\xf0\xf4\x99\x3a\x43\x0c\xf6\x7b\x6c\xf4\x52\xba\xd9\xb5\xf2\x54\x96\x37\xcb\x1a\xc1\x70\x0b\x65\x15\x37\x07\x47\x9a\xe2\xaf\x83\x19\x16\x38\x49\x48\x42\xe5\x74\x67\xc1\xd0\x17\x45\x77\xb5\x3e\xab\x82\x1b\x13\x19\x4b\xa7\x43\xb3\x15\xdd\x40\x6c\x25\x4e\xc5\x91\x48\x99\x0f\xed\x96\x2d\x4c\x56\xe9\x33\x85\x7b\x01\xac\x6a\xd1\x04\x4a\x2a\x8f\x30\x15\x8c\xc8\xda\x02\xb6\x24\x4a\x05\x55\xf3\x81\xad\x07\xdc\xfe\xc0\xdd\xdb\x2f\x2f\xec\x87\xcd\x1e\x7e\x87\x6a\xe0\xfa\xcb\xea\x0f\xcf\x88\x80\x1a\x5e\xae\x1a\x95\x57\xf3\xd8\xa2\x56\x90\xac\x10\x18\x84\x7f\x2f\x5c\xdb\x75\x81\xd3\xf8\x65\xe0\x65\x94\x0d\xa2\xf2\xe6\x58\x76\x58\xab\x70\xb7\x9a\x26\xb9\x63\xe4\xa9\x1a\x2f\xfa\x0e\xaa\xfb\xd8\xb4\x11\xd3\xb4\x1e\xb0\xe7\x0a\x07\x7b\x6d\xbe\x30\x5e\xca\x7f\x45\xb1\x1b\x6f\x9c\x16\xeb\xa8\x2a\xf8\xaa\x61\xb0\x1d\xef\xab\x16\x23\xf6\x3a\xd9\xd2\xb0\xf5\x41\x17\x22\x9d\x29\x3a\x5c\x84\xf6\x71\xdc\x60\x0b\xf5\x7d\x3b\x09\xa4\x99\x3b\x37\x4b\xa1\x5b\x53\xf4\xb7\xc0\x89\xed\xec\xb4\xfc\x6f\x71\xd4\x1c\x42\x92\x41\x98\xf2\xf3\x18\x6f\xa6\x54\x29\x97\x28\x61\x0c\xf0\x7a\x77\x16\x6d\xd3\xef\x5d\xb8\x0b\x86\x32\xcc\xc6\x44\x75\xd6\x67\x1d\x89\x5e\x08\x62\xc4\x42\x68\x54\x14\x58\xce\xac\xfa\x50\x98\x6d\x48\x74\x4f\x59\x6c\x8e\x16\x1e\xa8\x92\x59\x6d\x40\xd3\xc7\x08\x27\x92\x9c\xe8\x86\xa1\xa4\xb0\xe2\x10\xfc\x8a\xd1\x8b\xc0\xb3\x19\x11\x7d\x66\xb3\x58\xc0\xe1\xc4\x79\x62\xda\xaf\x0b\xf1\xb5\x34\x20\x83\x08\x47\x93\x3d\xad\x11\x86\x64\xa4\x68\x42\x62\x97\x2f\x5d\x5c\x1e\x37\x6f\x63\xb0\x5f\x61\xb1\x7a\x23\x57\xdb\xee\xc4\x76\x92\x44\x9a\xa3\x64\x35\xe0\x67\x44\xe8\x51\xeb\x3d\xfc\x4c\x18\xa2\x23\x37\x0e\x1b\xbb\x84\x5e\xc0\x33\xa7\xb7\xfe\x33\xa6\x89\x01\x20\x70\x5d\x3b\x21\xd0\xb8\x1f\xfa\xcc\xb8\xfb\x59\x54\xc8\xd0\xa5\x8c\xca\x89\xe6\xd4\x29\xf8\x64\x41\xcd\xa8\x4b\x1c\x62\xcf\xab\x9c\xe6\xae\x7e\xbd\x99\x83\x3e\x53\xc1\xd9\x14\x92\x84\x2c\x2e\x95\x23\x9f\x24\x2a\x3b\x1e\x95\x29\x9e\x4b\x25\xe2\x38\x96\x45\xe3\xab\x51\x2b\xe9\x3f\x0b\x66\x97\xd3\x42\x56\x64\xe4\xc1\x2a\x41\x10\xab\x2b\xfb\xd7\x24\xff\x86\xd4\x8e\xc5\xd4\x8e\x6a\xda\x1c\x62\x7a\x47\x76\x88\x57\x4d\xf1\xa8\x5b\xfe\x6d\x48\xb6\x5b\x4c\xf5\x78\xe5\x9c\x88\xdd\xa4\x43\xbc\x6e\xfe\xca\x2e\x52\x57\x42\x82\xc7\x2b\x26\x78\xb4\xb6\xd4\x16\x63\xd3\xeb\x8f\xed\x4a\xc9\x11\x4b\xc0\xac\xaa\x7a\xf9\x4c\x94\xa0\x91\xdc\x06\x7f\x90\x33\xdc\x32\xaa\x0f\xb4\xc0\xd9\x12\xa9\x49\xbf\x90\x39\x41\x21\x4e\x2e\xab\x70\x39\x14\x04\x3f\xc5\xfc\x65\xc1\x56\x27\x7d\x34\x91\xcf\x5c\x8b\x3d\x82\x44\x54\x92\x42\x24\x0f\x95\x88\x11\x69\x8d\x9d\xb8\xcf\x26\x94\x08\x2c\xa2\x09\x64\x77\xe6\x0b\x63\xb2\x84\x0d\xa0\x93\x89\xe5\xf0\xbd\x5d\x2b\x2c\x7a\x0b\xba\x97\x2d\x4c\x19\x3e\x9f\x5d\x73\x3d\x92\xa9\xf9\x24\x13\x66\xac\x94\xe1\x9b\xe4\x5a\x2d\xff\xa6\x89\x08\x19\xb1\x77\x9a\x8c\x90\x05\x53\x79\x5f\xb4\x4c\x48\xc8\x77\x43\x48\x4a\xd8\x51\x52\x42\x05\x89\x57\x4b\x4c\x58\xcb\xe4\xb7\xff\x98\x69\xd7\xf3\x3e\xe2\xa6\x97\x05\xad\xa5\xc3\xc1\xce\x8f\x5e\xe5\x9c\xdb\x9e\xc0\x2f\xd9\xa6\x30\x12\xb1\xd0\xfb\x6c\x48\xe2\x18\x38\xad\xe2\xb6\x8c\x7b\xbe\x77\x9c\x79\x40\xdf\xbd\x58\xea\xcd\x8e\x13\xce\xc6\x92\xc6\x06\x6c\x66\x86\xa1\x56\xb1\x6f\xbc\x00\x70\x05\x58\xdf\x24\x21\xc2\x79\x25\x04\xfa\x4e\x52\x66\xd1\x24\xb3\xdf\x62\x4e\x24\x7b\xaf\x8c\xb1\x00\xb3\x39\x7a\x62\xfc\x25\x21\xf1\x18\x56\xa8\x3c\x98\x53\x44\xc9\x09\xa2\x2a\xfb\x4c\x00\x1a\x03\x4f\x55\x5f\x8f\x1d\x62\xed\x8c\x06\x40\xec\xb7\xc2\x56\xaf\xf0\x38\xb0\xfc\xfe\x0c\xa1\x1e\x43\x23\x1c\xa9\x13\x24\xd3\x61\xde\x7e\xcc\x4d\x05\x7a\xad\x7d\x7b\x13\xcf\x1b\x09\x31\xf3\x15\x9d\x57\x9f\x0d\xc7\x1d\xf4\x76\xed\x24\x14\x6f\x14\x5b\xf8\x8c\x37\x81\x58\xfd\x9c\x4a\x1b\x84\x81\x38\xcb\x8e\xbe\x85\x97\xca\x30\xb2\x01\xef\xd4\xe0\x4d\x33\x1e\xd7\xda\x3a\x4b\x53\x59\x75\x2c\x79\x20\xa8\x15\x94\xac\xa3\x0a\xda\x35\xe4\xd6\x52\x93\x54\x82\xe0\xa9\x75\x0e\xe8\xab\x06\xc4\x1a\x13\x06\xaa\x47\x4f\x85\x91\x30\x57\x59\xe2\x2b\xca\x9e\xf4\xea\xe6\xa8\xe0\x1c\xf0\x92\x75\xcf\x55\x8b\x36\xd3\x37\x1e\xb9\xe0\xcc\x38\x08\x37\x92\x3b\xe9\x98\xe1\x64\x45\x1b\xc7\x02\xe5\x16\x7d\x7a\x4e\xce\xb2\xe2\x82\x96\x22\x8c\xb1\x0f\x99\x1e\x57\xb2\x21\x95\xe6\xeb\xcb\x7b\x18\xc5\x64\x46\x58\x4c\x58\x34\x87\x2d\xc2\x00\x39\x48\x30\x9c\x20\x0c\xdf\xe1\xe4\x0c\x5d\x9a\xfc\xa2\x4c\xc2\xb3\xd7\x3a\x5c\xe8\x53\xcc\xe8\x48\xeb\x09\x60\x84\xb5\xa3\xec\x33\x33\x4c\xe7\x03\x21\xb9\x75\x35\xa3\x58\xd5\xca\xe8\x1b\xe4\x7a\x43\x54\x66\x56\xfc\x1e\x35\x5f\x38\xd0\x5b\xd3\xea\xe8\xe6\x5c\x0d\x06\x99\x0e\x4f\xe1\xdf\x85\x84\x3b\x07\x54\x94\xa3\xe8\x90\x84\x80\x39\xd0\x7a\xbc\xe0\x62\xac\x03\xd6\xdb\x86\xdf\x6e\x49\x1e\x8b\xd7\x47\x41\xa9\x99\x52\x46\xa7\xe9\xd4\x73\xde\x99\x8a\x0d\x91\xb5\x5f\x9a\x4c\x94\x99\xd6\x03\x22\x07\xde\x8e\xf4\xe5\xca\xe6\x68\x4c\x9f\x09\xeb\xb3\x19\xa7\x4c\x9d\xa1\x6b\xae\x88\x57\x22\xc3\x40\x67\xf1\x99\xa2\x53\x83\xf6\x2a\x88\x3e\x07\x06\x14\x1c\x80\x36\x27\x58\x9d\xa0\x38\x85\xa3\xca\x88\xd2\xac\x03\x71\x31\x86\xc8\x70\xd1\x67\xe6\x8e\x1b\x61\x9a\xa4\x82\x58\x69\x15\x9b\x8c\xa0\x7c\xb0\xf9\x98\x2c\x06\x9c\x37\xfc\x29\x1d\x4f\x94\x5e\x1c\x2d\xdd\x59\x4f\xe3\x44\xf3\x21\xde\x67\x43\x82\x30\x9a\x71\x49\x15\x7d\xce\x3c\x97\x74\x84\xb0\x94\x60\x3b\x39\x43\x97\x05\xcb\x3f\x95\xa0\x74\xd7\x45\x14\x53\x36\xb0\x56\xe7\xfa\x4c\xa4\x8d\x97\xb0\xd0\x8b\xa5\x2f\x1e\x4a\x9e\xa4\xca\x77\xbe\x56\xaf\x6a\x6e\x14\x77\x25\x0b\xc0\x34\xcc\x47\x7d\xe6\x76\xb4\x3c\x43\x1d\x89\x24\xd7\xeb\x23\xcd\x22\x46\x82\x2a\x22\xa8\xc1\xaf\x22\xca\x2c\x42\x76\x42\xb3\xdd\x3f\xc5\xe2\x49\x0b\x4f\xbe\xed\xdd\xa0\xa9\x16\xec\x1c\x43\x23\x1b\x01\xa0\x97\xbf\x1c\x60\xf4\x47\x8c\xb3\x53\x46\xc6\x78\xd9\x8a\xf4\x59\x61\x49\xd0\x77\x74\x94\xab\xa2\x75\xde\x46\x8f\x76\x03\x88\x79\xaa\x5b\x25\xd3\x71\xdd\x22\x8d\x12\x8e\x97\x38\x8c\x47\xf9\x71\x47\xff\xe0\x43\x33\x46\xad\xf1\x73\x05\xf2\x9f\x56\xac\x46\x5c\x90\x09\x66\xf1\x89\x5b\xac\xe2\xd8\xe0\x4e\xb4\x46\x36\xa7\x86\x81\x0c\xe8\xe0\x93\x89\x41\xa1\xc2\xcc\x5b\x0b\xab\xb2\xd9\xa5\xc8\xd7\x61\xa5\x5b\x22\x6b\x0d\xaa\xbe\x18\xd3\x83\x61\x76\xf3\x99\x3d\xdc\x92\x4e\x67\x49\x9e\xcd\xe5\x59\x45\x47\x5a\xb8\x72\xdc\x91\x3f\x83\xd1\xca\xe9\x6b\x70\x9f\xdb\x95\xd3\xfb\xac\x62\xe4\x19\x0b\x85\xfb\xc2\x59\xbb\x4c\x01\x50\x8f\x79\x7d\x27\x89\xfe\xa7\x22\xb9\xc2\x67\xc4\xf4\x3e\x73\xc2\xc7\xf7\xc0\x5f\x6c\xb3\x9e\xd9\x4c\x0b\xcf\x06\xe0\xd6\xd2\x0f\x45\xc6\xbd\x5d\x38\x27\xf6\x30\xb8\x57\x2b\xaf\x28\x45\xb5\x80\xfd\x23\x05\x6c\xae\xcb\x0d\x01\xf7\x29\x8b\x49\x6d\x19\xab\x56\x5c\xa3\xee\x56\x51\x70\xc9\x0d\xd6\xad\x3c\xf1\x30\x21\x92\x20\xf5\x92\x41\xc4\x69\x8d\x0a\x8c\x95\x82\x24\xe4\x19\xe7\xb7\x5b\xd6\x97\x65\x97\x11\x96\x35\x85\x61\x00\x67\x4d\x8f\x7f\xfd\x94\xe9\x6c\x7c\x37\x7a\x28\xcf\x38\xb1\x29\x2b\xd6\x4b\x2e\xeb\x17\xac\x77\xb9\x51\xf4\xa8\x6d\xa5\x8a\x9e\xf5\xc2\x85\xeb\xfb\x67\x32\xaf\xa6\xc8\x12\xf8\xc2\xa6\x3c\xf4\x8c\xec\x2b\x58\xa9\x6f\xf3\x6f\x16\x69\x5c\x4b\xb9\x9f\x0b\x53\x7e\x85\xf4\xa9\xdb\x85\xda\xdb\xf0\xa7\x4c\x47\x23\xfa\x15\xf4\x59\x77\x93\x38\x9d\x23\x12\x5c\x6a\x2e\x06\x52\x0a\x72\x8b\x67\x5c\xc8\x9b\xa4\x52\x55\x7e\xa9\xf5\xab\x95\x77\x74\x2d\xb5\xff\x9e\x12\xb1\x11\xbd\xb3\xad\xba\x4a\x20\xa2\x77\x4a\xaa\xb5\x43\xd7\xa8\xc2\x2d\xa3\x91\xfc\x56\x1f\x70\x0d\xe9\x96\x03\x9f\x57\x7e\x36\x34\xcc\x77\xf5\x81\xf8\x5c\xbb\xd1\x9a\x96\x47\xa6\x65\x51\xc9\xae\x1c\x91\xe6\x6f\x27\x16\x5a\x1d\xdb\x90\xa9\x2c\xc9\x19\xbb\x68\x11\xe3\x12\x31\xd5\xaa\x94\xad\xb1\xe0\xe9\xe8\xb6\x31\xca\xc6\x7d\xe6\x68\x2b\x4f\x90\x09\x10\x2f\x31\xd4\x02\xaa\x3d\xf6\x3e\xcd\x36\x76\x3b\x63\xaa\xf1\xa8\x33\x22\xa5\xbe\x18\xa5\x12\x98\x32\xeb\xbd\x71\xf4\x91\x7d\x86\x4e\xcb\x11\xea\x27\x60\x41\x38\x71\x79\xae\x27\xf9\x00\x65\x9f\x99\x5c\x13\xf4\x67\xf4\x9d\xc2\x63\x73\x4b\x00\x6e\x25\x4e\x00\xf1\x12\xf4\x03\xab\x8f\x7b\x69\x01\xd9\x89\xa4\xf1\xf7\xe7\x4d\x7d\x1a\xeb\xc1\x77\xd0\x0c\x1c\x72\x4d\xc3\x9c\x40\x74\x94\xff\x83\xc4\xdf\x37\xb5\x94\x7f\xf4\x44\xe6\x27\x65\x22\xd7\xdf\x1b\x0f\x78\xa3\xd8\xcc\x5d\x5d\x1c\x30\xe8\xf6\xee\x49\x3c\x24\xc9\x2f\xf9\x44\x51\x23\x2b\xfa\x91\x32\xbc\x19\x0f\xaa\x1c\x5e\xbb\xd8\xf3\xe1\xbc\xae\x62\x5d\x05\xeb\x59\x1b\x6b\xa5\x63\x64\x59\x82\x74\x77\x56\x62\x77\xf5\x0c\x31\xc4\x3b\x4e\x48\x32\x43\x31\x1d\x81\xd3\x4d\xc1\x7e\xc9\x60\x63\x4d\xa5\x1f\xad\xd0\x4c\x53\x66\x20\x80\x4d\xbc\xc7\x8b\x3d\xe9\x96\x65\xe4\x8d\x9f\xf5\x59\x4f\xbd\x97\x48\x2a\xc1\xd9\x58\xab\xd1\xf1\x33\x95\x79\x09\x3b\x7d\x20\xd3\x29\x11\xb6\x0b\x2a\x8d\xd4\x6d\xcb\x3f\x61\x77\xb1\xe9\xb1\xe9\xab\x0f\x04\x1f\x57\x66\x51\xff\x68\xf4\x0a\x3d\x4a\xe9\xe2\xa5\x2a\x02\xde\xed\xe2\x96\x78\xe7\x9e\x8d\x96\xbf\xf8\x76\x49\x34\xcd\x4d\x98\x8e\x5f\x7e\x28\x1b\x30\x2d\xd5\x1b\x8c\x97\x2b\x5f\x08\x6d\x2f\x02\x57\x2f\x21\x35\x09\x4e\xba\x1f\xe7\xd2\x32\x83\x5b\x49\xc5\x2a\x4d\xd0\x8e\xda\x68\x4f\xbe\xf1\x92\x50\xb0\x7f\x48\x85\x15\x8d\xec\x2d\xc0\x85\xb5\xdf\x5a\xbd\xba\x7e\x69\x37\xd5\x49\x64\x84\x93\xc5\x15\x6e\xf0\xa6\x9b\xf7\x9b\x4d\x9c\xf6\xb8\x99\xb6\x1b\x21\x5d\x22\x9e\x24\xab\x14\xa8\x2b\xcd\xfc\x22\xff\xbc\x79\x44\x79\x3f\x7a\x01\xdc\x5a\xc0\xa9\x31\x06\x0a\x9c\x58\x47\x91\x54\x76\x95\xfc\x97\xcc\xa5\x36\xb7\xea\x63\x9f\xf1\x11\x94\x30\x4c\xea\x62\xd6\x67\x82\x4f\xe9\x2a\x35\x34\x4c\x18\xf7\x9d\xf3\xfa\x2f\xf1\xa1\xb8\xd8\x00\x30\xbc\x99\xed\x65\x7b\x04\x34\x06\x6c\x4d\x6a\x0d\x67\x68\x8a\x67\x6b\x11\x7c\x59\xcc\x4b\x07\x4d\x4d\xc0\x91\xa5\x1e\xa0\x69\x13\x48\x4b\x05\x22\xbf\xe0\x79\x0e\x7c\x53\x57\x1d\x81\xad\xb4\x1d\x1e\xf5\xeb\x3d\x36\xe2\x2b\x1c\xce\x1c\xa8\xc6\x9e\x3e\xec\xf6\xac\x77\xfe\xb2\x18\x0c\xb3\xfa\x86\xa6\x6d\xce\xe3\x45\xd5\xa6\x5e\xf9\x64\x3a\x0a\xee\xd2\x03\xeb\x33\x11\xef\x9b\x7f\xad\x72\xb7\x16\x8f\x96\xd7\x22\x82\xe1\x34\x93\xea\x73\x61\x1f\x6e\x9d\x46\xa5\x76\xe0\x59\x9e\x2a\x76\x5b\xdd\xea\x1e\x68\x66\x0f\x49\x2b\x62\x6d\x88\xcc\xb5\x5a\x95\x07\xd7\x63\x56\xd3\x61\x63\x4d\x6e\x19\x31\x80\x9b\x49\xab\x35\xe4\x79\x27\x16\x00\x60\x44\x13\x22\xcf\x50\xaf\xc2\x7d\xeb\xd2\xef\xb3\x70\x71\x93\x08\xe8\xa4\xa7\x54\x50\xaf\xec\xbb\x93\x91\x10\x85\xf2\x73\x7e\x08\x8b\xe7\xae\x00\xc7\xe9\x84\xbf\x98\xdc\x3b\x41\x35\xcf\x32\xc2\xaa\x02\x67\x96\xe6\x05\xd4\xfa\x82\x8c\x2b\x2d\xfb\x80\xff\x7f\xec\xbd\x6b\x73\xe3\x46\x92\x2e\xfc\x7d\x7f\x45\xad\xf7\x8d\xe8\xee\xb3\x14\xe5\xb6\xcf\x4c\x78\xb5\xe1\x88\x97\x56\xab\x6d\x8e\xd5\x92\x46\x17\x7b\xf6\x0c\x27\xd8\x45\xa0\x48\x62\x04\x56\xc1\x28\x40\x6a\xce\xee\xfc\xf7\x13\x95\x99\x75\xc1\x8d\x04\x44\xa9\xed\xdd\x33\x1f\x66\xdc\x22\x80\xba\x57\x56\x56\xe6\x93\x4f\x62\x44\x84\xb9\xe6\x38\x37\x58\x68\x81\xa8\x4f\xe9\x73\x24\xf0\xec\xcf\x6e\x60\x6b\xbd\x35\x5f\xf4\xb9\x14\xd8\x77\x0f\x68\x9d\xd3\xf2\x87\xdb\x23\xdf\xc3\xa7\xd6\xb0\xcb\xd9\x32\x17\x70\xcb\xde\x38\xc6\x34\x4c\x99\xa0\x14\x9c\x77\x37\xef\x7e\x3c\xbe\x9b\x32\x51\x44\x2c\x4d\xee\xc5\x4c\x46\xfa\x01\x2e\x7d\xbf\x94\xa2\x30\x3f\x77\x18\x81\x92\x8d\x90\x1a\x24\x41\x52\xf4\xbc\xaf\xd9\x81\x31\xff\x7d\x57\xfd\xbe\xcf\xad\xdc\xb1\x7c\x9a\xb5\x6b\xb3\x19\xc2\x32\x85\x84\x6d\x38\xb4\x2d\x76\xcd\xef\xd0\xd3\x7a\xd6\x96\xeb\xfc\x09\xc1\xd0\xf2\xaf\xa5\x1c\xa8\x74\x9d\xfa\x8f\x82\x56\x74\xe8\x74\x9b\x8c\x43\x26\x93\x61\x51\xd6\xf8\x4d\x6b\xe9\xfb\x84\x88\x27\xbd\xb1\x9e\x73\x9f\x16\x9e\x15\xb9\x10\x20\x42\xdc\x7a\xa2\xb3\x9e\x78\xd6\x5c\xc7\x82\x8f\xc6\x33\xf9\xc1\xe2\xe9\xfc\xaf\xda\xfb\x1a\x36\x8b\x20\xc1\x4b\xb5\x14\x28\x36\x4e\xb4\xfb\x01\xd2\xf5\xe9\x32\x2d\x30\x5f\xf1\x32\x91\x3c\x75\x0d\xc5\x27\x6d\x52\x22\xe7\x32\x5a\x1f\xea\x20\x4f\x96\x73\x91\x0e\xd1\x44\xa7\xcb\xb3\x54\x9b\xf5\x1d\xdd\x77\xec\xce\xa7\x64\xe4\xf6\x9d\x41\x8f\x13\x65\xf5\x64\xde\xc1\xce\x53\xcc\x17\x2c\x18\x20\xb0\xea\xb1\xf1\x48\xff\x65\x66\x91\x34\x75\x04\x60\x61\x50\xaa\x0b\x38\x83\x5a\x18\x2f\x66\x32\x2f\x25\xa4\x12\x73\x78\x4c\xce\x7c\x36\x98\xc8\xa2\x23\x08\xab\xb2\x32\x62\x02\x93\xad\xe0\xcb\xe6\x7e\xa6\x4a\x0d\xfe\xa8\x8d\x28\xcc\x01\xf5\x1a\xb2\xfc\x23\x20\x7a\xc4\xb2\x3c\xd9\x80\x4b\x59\xbf\x69\x99\xba\x53\x5e\xf0\x54\xad\x9e\xdb\xaa\xf4\xc4\xe0\x1a\xdb\x0c\x36\x7d\x67\x06\x7f\x25\xa4\xc8\xa1\xa3\x60\xcb\x6e\xdd\xc2\x3d\xac\xdc\x1d\x92\x1b\x3c\x89\xe4\xfc\xd5\xce\x62\xc1\xcb\x42\x6d\xcc\xfd\x96\xa7\xe9\x76\x84\x5e\x67\xc1\xd6\x5c\xaf\xed\x44\xa3\xc3\xb0\xcf\xd9\x44\x83\x7b\xca\xa3\xb5\xb8\x29\x78\x51\xb6\x62\xb2\x6a\xad\xfc\x42\xc8\x72\xf3\xc5\x09\xfb\xb3\xef\xe3\xe9\xe4\xf4\x87\xb3\xf9\xbb\xe9\xcd\xe4\xbb\xf3\xb3\x77\x41\x7f\xe8\xc9\x87\xe9\xcd\x4d\xf3\xd7\x1f\xa6\xb7\xcd\x1f\xaf\x2e\xaf\xee\xce\x27\xb7\x6d\xa5\x9c\x5f\x5e\xfe\x78\x77\x35\x7f\x3f\x99\x9e\xdf\x5d\x9f\xb5\x7c\x7a\x77\xdb\xfd\xf0\xe6\xc7\xe9\xd5\xd5\x99\xb3\xd2\xff\x25\xd8\x5d\xe0\x21\x37\x1d\xed\xe8\x46\x7d\x03\x1e\xb1\xea\x8b\x27\xec\xae\x9e\xd8\x8a\x22\xad\x90\x25\xec\x91\x6b\x23\xc3\x20\xd0\x0f\x2c\xad\x7e\x50\xba\x3e\x45\x30\x72\xb4\x16\x2c\x55\xea\xbe\xcc\x48\xb4\xa1\x51\x5d\x2a\x34\xfc\x08\x1d\x94\xf6\xc3\xf4\xf6\xa4\x99\x60\xcb\x15\x16\xf0\xa1\x3a\x1b\xf2\x23\x47\x6e\x00\x10\xa7\x60\x4b\xb1\x89\x97\xbc\x87\x3a\xa8\xc1\xcd\xcc\xae\x7a\xb0\x34\x2e\x8b\x5a\x35\x71\xec\x59\x94\xa0\x63\x41\xc1\xd5\x79\xdd\x35\x9a\x6e\x38\x30\xb3\x28\x5b\x88\x88\x97\x08\xd9\x36\xe7\x54\x9e\xab\x3c\x6c\xb0\x5f\x0f\xcf\x57\x28\xad\xa3\xd6\x02\x6b\x73\x66\x3a\xae\xef\x93\x2c\x13\xf1\x17\x4d\xfd\xa5\x9a\xfb\x5f\xc3\xee\x33\x75\x06\x7b\xd2\xdc\xeb\xe1\xce\x6f\xd3\xe2\xad\xb7\x0e\x27\x04\xb0\x54\x0f\xd4\x85\x34\x1d\xe6\x4c\x70\x69\xcb\x12\x80\xff\xf0\x82\x3d\x0a\x20\x8c\x29\x29\x2f\x28\xde\xbd\xcd\xde\x86\xea\xd0\x6f\x6f\xb3\xfc\x56\x88\x64\x3a\x85\xf1\x73\x28\xdc\xe6\x7b\x2d\x86\x39\xdb\xf6\xb2\x7e\xbc\xc3\x42\x41\x3a\x5b\x44\x3f\xb4\xf8\x39\x9d\x73\x2d\x27\xd2\x9e\xc3\xc2\x88\xed\x3e\xed\xb1\x4c\x6b\x95\xf4\x25\xfd\x1b\x56\x49\x71\xb1\x77\xac\x6e\x55\xcc\xb7\x66\x71\x00\x38\x41\x97\x59\xa6\xf2\x82\x75\x94\x81\x20\x45\x6c\x1f\x9c\x39\xd4\x0f\x27\xe3\xa0\x10\xa3\x61\xe8\x96\x4c\x69\xfd\xc8\x9f\x68\x5c\x03\x1f\x57\x10\xfe\x03\x17\x41\x97\xd5\x72\x53\xb9\x52\x57\x56\x68\x9b\xf2\x7b\x48\xfc\x64\x66\x0e\xf8\xbe\x49\x96\xdb\x6a\xbf\xb4\x25\xb4\x4e\x79\x2a\x96\xc5\x7c\xa0\x53\x0a\x4a\x94\x5d\x7c\x7d\xc9\x6a\xfd\x0c\x25\xf6\xbf\x25\x7c\x45\xb0\x65\x73\x35\x08\x2c\x04\xb9\x52\x05\xea\xa7\xfe\x0e\xc3\xec\x68\x82\x79\x81\x2a\xa5\x48\x77\xa7\x04\x1a\x9d\x1f\x31\x5f\x2e\x28\x7c\x3c\x93\x67\x00\x0f\xf5\x17\x11\x1b\x00\x0f\xb7\x80\xbd\xfa\x7f\x25\xa5\xfc\x67\x8d\x45\xe9\xe6\xef\xf7\xeb\x1e\xa1\x85\x22\xdd\x3a\x16\xa7\x98\x55\xbe\xeb\xb3\x7b\xd0\xea\x6d\x55\x40\xec\x30\x6e\x1d\x5d\x88\x8c\x2c\xf3\xd8\x4f\x8f\x63\x06\xaf\xb0\xa9\x6a\xcc\x7e\xb6\x96\x1f\x08\xeb\x71\x61\x2e\x16\x99\x9a\xf2\xad\xa5\xfc\x6e\x1b\xd8\xe7\x60\xd1\x7e\xee\x40\x9f\xdd\x03\xec\xe8\x32\x5b\x46\xb9\x72\x01\x97\x12\x2d\xb2\x03\xe0\x42\xa7\xee\xa3\x1b\xb1\x1b\xf9\xf8\x1e\x92\xac\x13\x6e\x1c\x94\x0e\x99\x6e\xff\x19\x27\x0b\x79\x36\x2c\x98\x82\x92\x5e\x93\x07\xd5\xec\x1f\xf0\x00\x22\x0d\x07\x5b\x26\x69\x0a\x7a\xc0\x98\x4d\xe4\xd6\xd2\x54\x98\xa3\xd0\x82\x48\x93\x95\x54\xfb\x22\xe8\x3b\x16\x53\x14\x2c\xa6\x9b\xee\xc5\x84\x38\x0d\xcf\x52\xf4\x3c\x2b\xea\x19\x18\xeb\x8c\x6c\xe1\xcd\x7c\x27\xfd\x79\xea\x06\x5c\xde\xc3\xd3\xfc\x73\xc5\x7e\x35\x9a\x1b\x7c\xf8\xf7\xf6\xa6\x7f\x5f\xf2\x9c\xcb\x02\x22\x9a\x48\x75\xcf\x45\x10\x58\x2d\x3e\x01\x06\x55\xa2\x21\x18\x7e\x0a\x27\xd7\xba\xfc\x11\x26\x96\xc4\x23\x96\x8c\xc5\x18\x72\xef\xe6\x46\x97\x58\xf8\x37\xd7\x46\x73\x98\xc9\x46\xa4\xc6\x98\x4d\x52\xad\xe8\x0b\x21\xa3\x54\x69\x80\xe0\x2e\x42\x5a\x74\x58\xf9\xe4\x56\x5a\x6c\xe1\x82\x02\x53\xe9\x8b\x57\xf4\x20\xf8\x10\x52\xc8\x82\x4f\x3c\x85\x9d\xee\x7f\xff\x57\x45\x04\xaf\x5d\x38\x89\x17\x4c\xd6\xd5\x38\x86\x5e\x6c\x92\x30\x11\xf4\xae\x09\x82\x37\x60\x62\x7c\x04\x4d\xc0\x2f\xc7\x5e\xf3\x82\xa5\x82\xeb\x82\xbd\x7d\x33\x08\x1b\x62\x3b\xe8\xa5\x2b\x6d\x5f\x1f\x06\x6f\x03\x29\x43\xe5\xce\x55\x0c\x99\x81\x79\x5e\x30\xce\xa4\x78\x0c\xe3\x66\x14\x84\x3a\xd9\x74\xbf\x22\x60\xee\x40\xcc\x3c\xf2\x0e\x41\x2c\x2a\x5e\x99\x3a\xe4\x88\x4d\x66\x41\xee\x53\x6a\x56\xcb\xca\x1a\x39\xf4\x19\xc0\xcd\xcd\x4b\x3e\xa4\x71\xcd\x8b\x99\x24\xc9\x6a\x61\x23\x41\x10\xfb\x24\x4d\xab\x61\x84\x1c\x22\x65\xa5\xe9\xb0\x69\x7d\x3c\x76\x03\x74\x01\xd7\x2f\x17\xcb\x55\xb1\xd3\xf9\xcd\x82\x31\x07\x8e\xcd\x31\x2c\xbb\x55\xdb\x69\xb3\x2f\x7f\x46\x25\xb8\xa5\xfa\x73\xb5\x4a\x22\x9e\xf6\x50\x86\x45\x5b\x93\xf7\x6c\xac\xa6\x4d\x7f\x87\x6e\xfc\xdc\x15\xf4\x57\x95\xdb\xed\xe3\x70\xcc\x3e\xaa\x16\x73\x7b\xc7\xe4\x06\xba\xc5\x21\x17\x70\x17\x54\xf8\xb9\x3c\xbe\x95\xa6\x4f\x63\xa0\x34\xd8\x2f\x05\x3d\x45\x80\x15\x1d\x18\x59\x16\x07\x11\xcb\x41\x80\x24\x81\x3d\x51\xf0\xd1\x9b\x1d\x9e\xd7\xec\xbf\x77\xf7\x47\xbe\xff\xb6\x2b\x0e\x04\xd7\xec\x78\xb7\xb2\x37\x89\xff\xca\x23\x88\x63\x84\x9a\x6c\x04\x65\x93\x6e\xd2\x26\x29\xe1\x60\xcc\x6f\x55\x0f\xb3\x5c\x45\x42\xeb\x31\x3b\x83\x83\x86\xfe\x64\x7c\x69\x1d\x12\xc1\xcb\x33\x69\x6e\x26\x96\x9d\x2e\x28\xbf\xba\xc4\xdb\x76\x00\x52\xdd\x1e\xe4\xcb\xd9\xec\xcf\x40\xd7\x75\x9b\xb0\x4c\xbb\x50\x06\x24\xad\x62\x67\xab\x13\x16\xab\xe8\x5e\xe4\xc7\xb9\x88\x13\x7d\x02\xbe\xf5\xa2\xd3\xa9\xb7\x31\xb7\xed\x83\x35\x8d\x2e\xa0\xc0\x9e\x90\xff\x53\xac\x9f\xa0\xff\x36\x84\x68\xc4\x92\x25\x5c\x27\x6c\xc4\x29\x06\x5a\x59\x32\x3f\x21\x8b\x7c\x8b\xa8\x64\x6b\xca\xaa\x0d\x84\xbd\x69\x18\xa5\xad\x2b\x56\x3a\x7f\x0e\x0c\xce\x13\xbb\x8d\x91\x39\x04\x38\xc0\x4e\x15\x8a\xe2\xb5\x50\x5c\x64\xbc\x58\x6b\x20\xe6\xa8\x8e\x01\x5d\xba\xe0\x53\x33\x42\x3c\x03\xbc\x02\x5a\x29\xfc\x47\x8e\x3e\x42\x17\x49\x9a\xce\x24\x06\x58\x00\x87\xc6\xab\x56\xfe\x1f\xf3\xe9\x88\xf1\x38\x66\xff\xdf\xeb\xf7\xe7\xff\x71\x7b\x36\x9f\x5e\x80\xd1\x7a\x7a\x7e\xf6\x66\xe4\x7e\xbc\xbc\xbb\x75\xbf\xa2\x85\xe5\x41\xe4\x6c\xc3\xef\xe1\x8a\x27\xb5\xa0\xd0\x50\x31\x93\x61\x4b\x2d\x33\x92\x79\xa2\x85\x45\xba\x92\x9a\xe2\x08\xa2\x69\x0e\xbb\x68\x55\x89\x30\x73\xc0\xe5\xf7\xda\x7d\xb2\x7b\x0d\xda\xc5\xe3\xaa\xb0\x6a\x20\x44\x00\x73\x1d\x50\xe5\xd0\xdd\xd7\x2f\x38\x21\x57\x89\xec\xc2\xe3\x09\xf9\xf0\x92\x4a\xfc\x8f\x62\x0b\x80\xf0\x2b\x9e\xe4\xbd\xd7\x5e\x3b\xd7\xa1\xdd\x31\xe6\x9e\xce\x75\x7d\x53\x69\xd4\x85\x31\x96\xb8\x13\xf3\xd9\x46\x73\xfb\xab\x77\x97\xc8\x33\xc5\xa7\x22\xb7\x1c\x5c\x2e\x66\xd5\x12\x55\xba\x83\xc6\xaf\xc1\x99\xbc\xbd\x7c\x77\x79\xc2\x44\xca\x17\x0a\xc2\x15\x09\x12\x64\x8b\xa0\x01\x8b\xd4\x26\x28\xa8\xc2\xbf\x36\x62\x99\xe7\x5f\x0b\x8d\x68\x63\x2c\x63\x0f\x0f\x5b\xa6\xf2\x26\x7b\xd9\xf3\x5e\x01\xa9\xb3\x57\x2a\xef\x73\xfc\x9b\xd7\x30\x7e\x23\x33\x17\xb9\x9a\xe4\xa5\xb3\x79\x29\x38\x70\x73\x90\x5b\x88\x6c\xf9\x04\x60\x4d\xd3\x4a\xb6\x6c\xb3\x71\xf4\x98\x5c\xf0\xfe\x4d\x25\xd9\x8f\xdf\x68\xb6\x28\x8b\x99\xac\x96\xa1\x24\x9b\xfc\x7c\xc3\xbe\xe3\x45\xb4\x7e\x33\x93\x10\x3f\xf8\xe3\x37\x1d\x44\x91\x83\xb9\x97\xcd\x98\xbc\xe3\x05\x3f\x57\x3c\x4e\xe4\xaa\x8d\x78\xd9\x67\x07\x3c\xbb\x9d\x9c\x30\x9b\xa4\xc5\x47\xbb\x16\x96\xf0\x24\x28\x08\x04\x32\x74\xc4\x4a\x11\x10\xe5\xb2\x4a\x4e\x8b\x37\x33\x38\xb0\x66\xf2\x16\x19\xa7\x8d\x54\x4d\x0a\x96\x29\xca\x50\x69\x6e\x65\xc8\xc5\xcd\x6d\x14\xb8\x48\xb7\xcc\x8c\x0e\x2c\x63\x37\x19\xa4\x8f\x81\x3e\xd3\x14\xf6\x33\x09\x17\x74\x17\x7f\x9b\xaa\x88\xa7\x80\xc9\x3b\x0a\x6c\x7a\xe6\xda\xae\x4a\x60\xbf\x01\x30\x8c\xdc\x56\xa1\xb3\x8e\x90\xc9\x29\x65\xe1\x44\x81\x01\x00\xe6\x91\xbc\xb1\x1b\x65\x24\x0e\x32\xcd\x82\xf1\x2d\xc5\xd1\x31\x1f\x3a\xe6\x59\x1c\x16\xf3\xd4\x85\xa6\xab\x52\x5a\xa6\xb5\x08\xcc\xf7\x72\x0b\xf0\x6d\x48\x29\xa7\x00\xfa\xe1\xa5\x33\x2d\xca\xc6\x2c\xba\x33\x31\xf8\x6c\x26\x11\x29\x58\x99\x97\x90\x9b\x30\xa8\x5d\x49\x00\x32\x36\xe3\xe1\xcb\x8c\x80\x8d\xa4\xeb\x67\xb9\x38\x72\x51\xde\x71\x65\x4c\xcd\x09\x3b\x66\xd7\xe1\xf5\x3a\x56\x51\xb9\xb1\x79\x23\x20\x42\x9c\x10\x70\x74\x88\xba\x15\x82\x07\xfb\xbe\x15\x0f\x1c\x74\x85\x00\x72\x9c\xde\xf7\x63\x5c\x30\x93\xf0\xd3\xa6\xa6\xde\xad\xf8\x82\xec\x38\x0c\xb5\x86\x05\xcd\xb3\x6a\x49\x95\xd2\x0e\xe6\x5e\xb8\xf0\xdc\xf6\x2a\x07\x65\x4b\x7c\xca\x14\x18\xb9\x31\x00\x5a\xc5\xaf\x34\x9b\x5e\x19\x0d\xc8\xdc\x78\xdd\x1e\x2c\x75\x81\xe0\x32\x8c\x53\x86\xaf\x31\x5c\x60\xc4\xbe\x64\xb3\xf2\xcb\x2f\xbf\x8e\xd8\x27\xfb\x8f\xdf\xff\xee\x77\x5f\xff\x7e\x48\x38\x89\xbd\x90\x43\xb9\x7e\x8c\x5c\xb2\xd0\xaa\x4a\x14\xce\x40\x53\x52\x1d\x30\x0b\xb4\x01\xbb\x86\xff\x29\x1c\xd6\x01\x76\x88\xaf\x68\x87\xeb\x70\x67\xb2\xca\xd6\xf4\x48\x02\x2d\x8a\x51\x55\x42\x38\x65\x97\x34\xfa\x7f\xde\x41\xc5\x3a\x37\x5b\xe5\x69\x18\xa7\x24\x75\xea\xb5\x29\x84\xbd\x26\xfb\x5f\x01\x0e\xc4\x37\xf6\x80\x53\x69\x2c\x72\x6c\x93\x33\xd9\x39\x43\x22\x08\x07\xf1\x29\x4b\x55\x6c\xc9\xdf\x3d\xdf\x41\x02\x0a\xc2\xd9\x27\x6e\x24\xf7\x88\x48\x42\x29\xbe\x14\x3c\x2f\x4b\x1e\x09\x8a\x85\x7e\xfd\xe9\xc4\xfc\x36\x62\xdb\x13\x00\x91\x8e\xd8\xdf\x4e\x88\x0b\x90\xe7\xc5\xdc\xfc\xf4\xc6\xea\xda\x54\x04\x34\x3a\xd1\xec\xd5\xf1\x03\xcf\x8f\x41\x3c\x1f\x63\x8b\x5e\x91\x64\x75\x59\x8f\x43\xdd\x3c\x55\xea\x9e\x00\xb6\x8d\x0f\x8f\x2d\xad\x2c\x2c\x6f\xe7\x37\xc1\xa9\x77\xb4\x43\x05\x3b\x82\x17\x04\x1b\x67\x0b\x36\xfe\xab\x56\x92\x8d\xb7\x7c\x93\xd2\xaf\xf6\x29\xe1\x7f\xb9\xa6\x98\xb8\xd8\x81\x7c\xd2\x2d\x5a\x4a\xbf\x4b\xd5\x02\x7a\xf5\xc1\xf6\x14\x11\xb4\xd0\x50\x7f\xfa\xf8\x03\x8b\x3a\x62\xc9\x36\x80\x1d\x71\xa3\x0a\x7c\x85\xc2\x5b\x9b\xbd\xfa\xe4\x9a\xf4\x27\xf4\x0b\xc3\xa0\xd8\x20\x3e\x34\x0e\x3b\xf4\x9a\x29\xf4\x13\x7b\x4d\x22\xe8\x8d\x39\x63\x08\xae\x8c\xc3\xd0\x56\xc1\xd6\x55\xf0\x1f\x41\x05\x89\x64\x18\x96\xb9\xe3\xcb\xbf\x1d\x8f\xc7\x63\xf7\x35\x70\xf2\xfc\x1f\x96\x14\x5a\xa4\x4b\x2c\xc9\x9e\x60\xdb\x99\xfc\x60\xd3\x4a\x59\xe3\xb5\x27\xac\xce\x72\x55\xa8\x48\xa5\xec\xc8\x1b\x74\x63\x15\x69\xf6\x2f\x46\xad\x0d\x86\x12\x7e\x34\xf7\xb8\x0e\x92\x7b\xcc\x63\xf1\x99\x36\x15\x19\xc4\xeb\xdb\x2a\xe4\xa8\x75\x17\x5b\xae\xc3\x60\x64\x58\x0b\x66\xe5\x1c\x13\x8f\x6d\x9e\x9b\x97\xc5\xa7\x02\x1e\x75\xd0\x04\xb7\x42\xd9\xdb\x4f\xca\x86\xb8\xf5\x6c\xc1\xb8\xac\x3b\x06\x80\xd8\x3c\x49\x32\x60\x3f\x47\xa1\xfb\xc4\x1c\x2e\x32\x4c\x74\xa4\xcb\xcd\x86\xe7\xdb\x63\xbf\xdb\x9a\x8b\xd3\xf3\xc8\x82\x8c\x49\xed\x00\x80\x0b\x37\xa5\xad\x45\x28\x06\x52\x2f\xed\x89\xe6\xf6\x6e\x04\x99\xaa\x03\x56\x26\x21\x23\x15\xd3\xba\xf6\xd1\xa7\x55\x8d\xc5\xbd\xd3\xd4\x55\x2c\x22\x46\x7b\x63\x9c\x2c\x90\xa0\x8c\xde\xb0\x1f\x77\x88\x6f\x35\xd7\x85\x11\x94\xab\x01\xee\xd1\xe9\xe5\x8d\xfd\xa6\xff\xa1\x0b\xe3\x50\x55\xd9\x79\x1a\xb2\xff\xca\x15\xcb\xf9\xa3\x3f\x7e\x01\xdb\x81\xd6\x99\xd2\xc5\xe6\xe2\xdf\xa7\xea\x2a\x49\xcd\xa9\x05\x6b\x7c\x3c\x93\x95\x9f\x47\x4c\xa4\xc9\x26\x91\x0e\x5b\x87\xc2\x5d\x2d\x51\x7b\xbe\x4f\x0a\x33\x65\x3a\xbe\x37\x12\xcc\xb2\x56\x06\x57\xaa\x89\xdc\xda\xa5\xe3\x1c\x53\x64\x81\x28\xb5\x69\x97\xbf\xa3\x43\xd4\x7e\x12\x8b\x23\x52\x48\x93\x60\xe1\xc1\xfe\x9d\x49\x53\x9a\xdd\x4b\x1e\x2e\x1c\x94\x17\x14\x77\x64\xd3\xfd\x04\x12\x00\xea\xa8\x60\x7e\x9d\xfe\xdb\xa2\xa0\x9c\xc9\x72\x73\x68\xb0\x09\xc1\x87\x7f\x2d\x33\xdd\x55\x2e\xec\x49\x45\x81\x4b\x42\x96\x1b\xbb\xa1\x06\xac\xb8\x33\x52\x7f\x62\x11\xa5\x1c\x79\xf8\x4c\x41\x80\x7c\x1c\xa1\x83\x34\x0b\xea\xc2\xe3\x05\xab\xc1\x0c\x82\xa9\x90\xaf\xf1\xef\x37\x8c\xce\x86\x2f\x47\x74\x9e\xe7\xda\xb1\x9c\xe1\x9c\x43\x06\x6e\x11\xa3\x0d\x1d\x72\x2e\xac\x78\x1e\xa3\xb5\x3c\xbc\x55\x60\x04\xaf\xd1\xbf\xb6\xaa\x64\x8f\x89\x5e\xcf\xe4\xad\xb2\x06\x47\x26\x95\xcb\x5a\x31\x82\xcb\x68\xa3\x3e\xae\x41\x08\x40\xab\xdb\x56\x80\x11\xc2\x07\xc5\x1a\x01\x0a\x76\x2e\x55\x2c\x0e\xa3\x67\xbc\xf5\xbe\x0a\xeb\xbf\xce\x05\xc6\x83\xc1\x49\xd1\x15\x4e\x2b\xb4\x1e\x68\x9b\xaf\x4f\x3c\x9c\x43\x54\x8e\xa9\x55\x3d\x0e\xca\x1d\x12\x32\x9f\xba\x53\x0d\x4a\xb1\x37\xce\x20\x1a\xb8\x32\xf6\x2e\x17\xc4\xa1\x93\x10\xb5\x70\x31\xf6\x3a\xfb\xb1\xef\x11\x0c\xbb\x03\x18\x73\xb6\xca\x55\x99\xb9\x90\x79\x1b\xee\x87\xd3\x40\x3a\xcd\x54\x2e\xd5\x09\xdd\xa9\xce\x13\x79\x8f\x2b\xfe\xa5\xe6\x08\xd3\x7d\x88\xb8\x42\x52\x6b\x73\xf0\x43\x1f\x8e\x58\x22\xa3\xb4\x84\x83\x4f\x17\x3c\xba\xc7\x94\x25\x5d\x46\x5f\xf3\xcd\x7c\x7f\x30\x65\x87\xc6\x54\xa6\x29\x55\xeb\x0f\x50\x20\x83\x03\x13\xd0\x43\xc2\x19\x67\x77\xd7\xd3\xf6\xba\xef\x93\xa6\x33\xa7\xfd\xf4\xac\x2e\x10\xf8\xbf\x1f\x93\x41\xb8\xcb\x1a\xe9\xaf\xa8\x2c\x75\x67\x5c\xea\xa2\x94\xc7\x45\x5a\x98\x0b\x44\x7c\xdd\x62\xda\x1f\xbc\x4e\x57\x59\x39\x37\x03\x95\x0e\x01\x08\x98\x56\x7c\x7f\x75\x37\x09\xbe\xdb\xb5\x54\xbe\xbf\xba\x63\x41\x1d\x48\xe7\x9c\x8a\xa8\x70\x48\xe3\x31\x3b\xf5\x59\x16\xea\x9a\x79\x2c\x1e\x92\x08\x43\x5c\x47\x46\x2b\x9a\x49\x20\x2f\x37\x77\x9d\x23\xcb\x7b\xc9\xbe\xbf\xba\x23\xb6\x4c\xcf\x6f\x83\x09\x23\x80\xc2\x62\xd8\xb1\x53\xa3\x0d\x97\x4a\x1e\x21\xb5\x4f\x1e\x7b\x6f\xc7\x08\x2e\xd7\x11\xcf\x8a\x92\x14\x8c\x87\xb7\x63\x3b\x27\xd7\xde\x13\x62\x9a\xa5\x66\xd2\xe8\x4a\x18\x65\x00\xb9\xcd\x4c\xa7\x9b\x53\x5b\x1b\xd4\x43\xc0\x01\x30\x68\x07\x09\xff\xc4\x45\xf8\x71\xb9\x65\x3c\x5f\x24\x45\x6e\xae\x61\xf8\xf1\x08\x99\xc8\xd6\x36\x7f\x15\xce\x9b\xd7\x8c\x28\x1d\x1d\x4c\x70\x22\x0b\x3d\x93\x41\x04\x8b\x8b\x0a\xc6\xe0\x85\x44\x32\x20\xfb\x05\xec\x8d\xa5\x20\x8d\x52\x55\xc6\xf6\x58\xcd\x5d\x7a\xbb\x6d\x86\x4a\xd4\x4c\x02\x33\x89\x39\x5b\x95\x51\x43\xfd\xd9\x7f\xc2\x3e\xca\x87\x24\x4e\xf8\x51\x21\x74\xca\x8f\x8a\xff\xfd\x71\x54\xfb\x89\xbf\xfd\xf2\xcb\x8f\x98\xa9\xaf\x8b\x76\x21\x60\x57\x3a\xd0\xc0\xd3\xee\xa7\x70\x3c\x85\x66\x95\x1e\x30\x4f\xe7\xc9\xbd\x60\x1f\x71\xba\x3f\x12\x3d\xf1\xd3\xa6\x6d\x26\xdb\xe6\x8d\x3d\x65\xda\x80\x2c\xbe\x7d\xde\xd8\x8e\x69\x7b\xbb\x1a\xff\x6e\xb5\x30\xb3\xf5\xd5\x6a\xfc\xf6\x4b\xf8\x67\x6d\x8e\xf6\x6d\x5e\x17\x3d\xd3\xd6\xec\x16\x41\xd4\xb2\x2d\x9d\x2c\x9a\xc9\xfd\xc2\x88\x0d\x93\x45\xb0\x6a\xdb\x36\x3e\x2f\xc4\xa1\xd1\xad\xc8\x5a\x3d\x00\x7d\xdd\xa0\x03\xdf\xe9\x11\x3c\x90\x4b\xdb\xf3\x60\x03\xdc\xb3\x9b\xd4\x3b\x04\xe0\xc2\xc3\x01\x7c\x3c\xf0\x7e\xbf\xfe\xd4\xde\xdd\xd3\x9d\xdd\xcd\x4c\x85\x18\xc0\x20\x73\x63\x5e\xef\xd9\xc8\xca\xab\xbb\xda\xf8\xc8\x31\x5f\x60\x33\x4d\x4d\x4c\xb7\xf5\x21\xbb\xc8\x2e\x47\x34\x99\x68\x17\xf7\xe7\x5a\x62\xa1\x95\xee\x7e\x6d\xeb\x5d\xd1\x5e\x0a\xd3\x11\x3a\xaf\x5b\xcb\xc2\x0f\x4c\x11\x07\x42\xe1\xcc\x95\x7a\xbe\xe9\x4d\x81\xee\x2b\x7e\x47\x1f\x7f\x68\x10\xa2\x3b\xf5\xf2\x03\x44\x66\x3b\x32\xac\x0d\x97\x46\x5b\xb3\xb5\x76\x38\x96\xf0\x96\xff\xa4\x26\xdd\x65\x4f\x6a\x10\xd6\xd8\x33\x53\x3f\x55\x65\x4b\x79\x44\xdf\x2a\x4f\xd1\x77\x50\xac\xc1\xac\xec\x33\xdc\x5a\x31\xe7\xcd\xcb\x98\x0d\x37\xe5\xf9\x0a\x8d\x5e\x5a\x14\xfa\x4d\xcb\x0c\xfb\x38\xb6\x03\x66\xd8\xaa\x5d\xf3\x61\x3c\x1f\x56\x1f\x03\x93\xca\xae\x9d\xe6\x5a\x59\x4d\x87\xe1\x6e\x5a\xb6\xfe\x90\xeb\xdd\x07\xd7\x45\x2a\xc7\xdc\x51\xc0\xc7\xda\xcd\x83\x75\x20\x1d\xec\x05\xdf\x38\x96\x17\x2a\xcd\xc6\xec\x62\xe3\x16\x02\x32\xb9\x74\xb7\xa1\x17\xd7\x6b\xdf\x26\x10\x23\x6d\x57\x0b\x66\x72\x62\x5f\xf1\xac\xd4\x3a\x41\x2b\x0b\x86\x23\x96\x0b\x8c\x70\x01\x9b\x19\xf7\xa3\x4e\x9d\xeb\xe8\xc4\xd0\x80\xfc\x5a\x17\xee\xb4\xc8\xfd\x69\xe4\x59\x4b\xc3\x7e\x74\xd4\xdc\x8f\xb5\x78\xa7\x44\xb7\x5d\xa4\xa2\xec\x58\xee\xa9\x58\xe5\xfb\x18\x20\x77\x55\x6a\x11\x17\x66\x17\xaf\x80\x7f\x2c\x48\xb4\xdc\x55\x7b\xff\x6b\x12\x75\x83\xe8\xb2\x11\x43\x01\x51\x09\xe9\xd6\x6f\x12\x4f\xad\x5e\xab\xac\x29\x2b\x8a\x83\xce\x82\x84\x6f\xe6\xb9\xea\x4e\xff\xdc\x63\xbc\x6c\x11\x15\x8f\xc1\x1a\xd3\x41\x6e\xd9\x2f\x25\x4f\xf1\x68\x95\xb4\x19\x6c\xb3\xc1\xf8\xf2\xd5\xef\xd9\x04\xce\x3e\xf6\x01\xa4\x32\x40\xc6\xa0\xb4\x42\xb1\x64\x93\x89\x5c\x2b\xc9\x3b\xf3\xa0\xdf\x7f\xa3\xe7\x94\xcb\xd5\x5c\xcc\x55\xd9\xcc\xdb\x3a\xa0\x27\x2d\xa5\x85\x9d\xe2\xec\xbe\x5c\x88\x5c\x0a\xcc\xf5\x0e\xef\x31\xfb\x5e\xaf\xe6\x2a\x5e\x16\xeb\xaf\xe6\x51\x9a\xf4\x4e\x30\x0b\xf1\xaa\x13\xf3\xd9\x29\x7e\xb5\xab\x03\x95\xf2\x2b\x4d\x97\x0c\x9f\x31\x7c\x36\x66\xdf\xf1\xe8\x5e\xc8\x98\x65\x69\xb9\x4a\x88\x9e\x06\x2f\x1b\x49\xd5\xac\x50\xed\x18\x6a\x36\x58\xbe\x39\x04\x67\x72\xc3\xef\x31\xe9\x0b\xa9\xb0\xe6\xde\xd2\x45\x6e\xe8\x0c\x35\xf3\xa4\xb9\x76\xf7\xce\x96\x3b\x8d\x9b\xc5\xd4\xd7\x9e\x2e\x31\x5a\xef\x71\xad\x08\xe3\x54\xb1\x13\x0d\xd8\xb8\x6e\xb5\x36\x58\xc4\x2c\xd3\x8b\xcb\xfa\x4f\x8d\xc1\xdd\x0b\x0e\x44\x48\x5c\x54\x4a\xc6\x81\x88\xec\x95\x66\x65\x66\x85\x08\x78\xb6\x52\xc0\x19\xe1\x14\x98\x07\x59\x12\xdd\x23\xb2\x15\x62\x37\x98\xeb\x5e\x23\x39\x34\x13\x1e\x62\xd9\x26\x1a\x96\x48\xc3\x73\x18\x6a\xa6\x91\xf7\x68\xcf\x3a\xed\x19\x97\x52\xac\x85\x9c\x3f\x21\xfd\x4e\xff\x49\xab\xc4\xa0\x90\x12\xee\x3c\x84\x6e\x08\x4b\x99\x10\xe9\xb6\xbf\xe1\xbb\x0c\x13\xc9\xb2\xa6\xc4\x27\x9a\x69\x5e\x24\xda\xc8\xb2\xd6\x11\xf7\xe4\x47\x87\x8c\x3a\x1f\xc6\xb8\xd4\xc2\xb6\x54\x1b\x0b\x17\xe7\x36\x66\xef\xc1\xaf\x12\xdc\x4b\x94\xe3\x2e\xea\x12\x58\xc5\x5a\x74\x92\xf8\x3e\x07\x40\xd4\xf6\x20\x78\x7f\xa7\xbb\xcc\xc5\x34\x8e\xd9\xc4\xfb\xb3\x91\xbd\x09\x3d\xd5\x7b\x7a\x24\x52\x2d\x9e\xb2\xf8\x7a\xb9\x7e\x00\xf3\x05\x0b\x88\x81\x1e\xa7\xcd\xef\x9e\xcd\xdd\x35\xf3\x11\x68\x03\xf8\xbd\x90\xbb\xec\xfb\xfd\x5b\x88\x0e\x98\x9d\x06\x09\xe7\xd9\x51\xe8\xdc\x79\x4a\x03\xfb\x6f\x3b\x4f\x98\x95\x2c\x8f\xcd\x90\x9b\x4b\x50\x74\x4f\xc1\x8a\xe8\xdf\x23\xca\xad\xc7\xb5\xd2\xe1\x3e\xb3\xf3\x87\xf7\xe8\xbc\x74\x59\xb5\x20\xd8\xd3\x0d\x30\xa2\x3c\xa5\x0a\x19\xb9\xa0\xd5\x6e\x93\xa2\x51\xc9\xcd\x37\xb3\x22\x14\x86\x01\x70\x11\xb6\xa8\x96\xdd\x2c\xb3\xf2\xb9\x72\xb7\xec\xa7\xc1\x6e\x8e\x70\xa3\x41\x3f\x7e\xa3\x2f\xa1\xbe\xe7\x20\xa3\x41\x2b\xe3\xf3\x07\x82\x3d\xd1\x05\xee\x20\xce\xd6\xfa\xa9\x20\x48\x84\x0e\xca\x4c\xc5\xcc\xaf\xf7\xae\x48\x1b\x29\x15\x42\x5c\x7f\x83\xdd\x0a\x1a\xd7\xbb\x6f\xfb\xb6\xda\x87\x00\x27\xc7\x16\x65\x92\xc6\xc8\x26\x18\x68\xa8\xca\xaa\x40\x90\xc6\x08\xf4\x91\x44\xbb\x03\xae\x65\xd1\xff\xf8\x8d\xbe\x52\xf1\x21\x0b\x6b\x38\x63\x6c\x73\x5d\xf7\x08\xa3\xd1\x21\x96\x69\xb3\x7f\x24\x32\xd5\x1d\x00\x11\xcf\x75\x35\x63\xef\x8e\x06\x03\xe2\x6d\x51\x2e\x6f\x20\x3d\x68\x17\x29\x53\x90\x39\xcf\x46\x59\x9b\x79\x36\xd5\xb8\x98\xbf\xae\x49\x21\x00\x95\xd7\x47\x38\xfb\xc3\xcd\xe5\xc5\xd1\x86\xe7\x7a\xcd\x81\xf4\xc2\x96\x35\xb2\x19\xd7\xd1\x5a\x60\x81\x1d\x89\x9c\xc9\x23\xb6\x52\x23\x84\x11\x9d\xb0\x75\x51\x64\xfa\xe4\xf8\x78\x95\x14\xeb\x72\x31\x8e\xd4\xe6\xd8\x0f\xcd\x31\xcf\x92\xe3\x45\xaa\x16\xc7\xb9\x80\x40\x92\xa3\xb7\xe3\xaf\xde\xc2\xcc\x1c\x3f\xbc\x3d\x06\xf0\xc8\x78\xa5\xfe\xe5\xfc\xab\x7f\xfb\xfa\xf7\xa6\xe0\x6c\x5b\xac\x95\x3c\x21\x8c\xd2\xce\xb2\x8f\xf0\x9a\x70\x8c\x9f\xd4\x6a\xf9\xb7\xf1\x97\x61\x33\xe8\xd5\x8d\x8a\x45\xaa\x8f\x1f\xde\xce\xed\xc4\x8c\xb3\x8e\xcc\x16\xff\x08\xbd\xf8\x0c\xa1\x17\xf7\x49\xf1\x8f\xd0\x8b\x5f\x35\xf4\xa2\xbf\xca\xe5\x64\x0c\x70\x59\x7b\xf9\x68\x7e\x77\x32\xd2\x7a\x22\xf6\xc9\xa1\x96\xc3\x21\x0c\x8c\x3b\xe0\x88\x18\x98\x68\xae\xd6\x5d\x77\x97\xe9\xb0\x38\x0e\xcd\x27\xd3\x79\xbb\x18\xc4\x03\x02\x40\xc7\x24\x02\x5b\x21\x5a\x48\x33\x9e\xb4\x05\x54\x04\xf9\x75\x0e\x18\x42\xcc\xf7\xd1\x4e\x7a\xd6\x27\x2d\x16\x65\x86\x12\xf1\xfc\x59\x12\x64\xb5\xd6\x81\x98\xd0\xc1\xe5\x37\xf4\xee\x1e\xaa\x31\xa1\xa4\x0f\x1a\xd1\x17\x4c\x65\xf2\xdc\x39\x4c\xa8\xbb\x4f\xcc\x5f\x92\xe2\xd7\x16\xd3\xad\x1e\x6d\xde\x92\xe7\xc8\xf6\xe1\xf1\xea\xfd\x32\x7d\xe0\x22\x85\xb6\xd8\x76\x75\x34\x63\xcd\xf5\xd3\x82\x03\x26\x48\x15\xec\x7c\xc1\x88\xac\x4e\xb4\xad\xd0\x9e\xc6\x96\x7d\xc9\x1c\xee\x96\xe4\x31\x2b\xf3\x4c\x69\xa1\xc7\xec\xbd\xca\x91\xd6\x8b\x38\x77\x7c\xc0\xc3\xf5\xfb\x53\xf6\xf6\x9b\x7f\xfb\x7a\x26\x5f\xb7\x28\x43\x70\x88\xaa\x7c\x45\xf1\x17\xa0\x02\x6d\xb8\x2e\x44\x7e\x9c\x2f\xa3\x63\x3c\x3a\x8e\xcd\xf7\x47\x54\xe9\x91\x5a\x1e\xb9\x54\x06\x47\xc4\xea\x3e\xde\xc4\x6f\xba\x90\x89\xed\x0a\xf7\xaf\x76\xe9\x99\x74\x28\xe6\x6d\xf3\xbb\x5f\xb0\x56\xb6\x10\x2a\x22\xa4\x85\x68\xd0\x58\x90\x8a\x51\x2d\x5d\xf2\x1d\x8c\xf3\xc5\x3c\x5d\x6a\xd9\xf2\x8f\xef\x52\xb5\xd0\x6f\x1c\x01\x2c\xd7\xb6\x0e\xcf\xc8\xd8\x26\xb7\x1b\x7b\xee\x90\xdb\x37\x0d\xc5\x4b\x9a\xd5\xac\x4c\x0c\xa7\x6d\xc8\xc0\xb7\x0b\x0d\xaf\x0b\x22\x1f\x15\xcf\x55\x29\x6d\x76\x0b\x25\x85\x5a\x02\xcc\x09\xae\x49\x16\xa5\x09\x9e\x05\xc0\xfe\x39\xee\xa9\x5c\x64\xa8\x7d\x80\x0f\xac\x7b\xb8\x0f\xcc\xf0\xb2\x6f\x9c\x5f\x22\xc3\xcb\xa1\xe3\x4e\x82\xf1\x57\x1a\xf0\x43\x43\x29\x70\x2b\x0d\x41\x20\x99\xf7\xf7\xa2\x0d\x9c\x1c\xf0\x19\xa6\x7d\x32\x85\x8c\xe7\xa0\xc1\x8b\xa3\x42\x1d\x01\x69\x1f\x50\xc1\x61\xce\xa5\x2e\x08\x12\xa0\x34\x86\x1c\xf7\xe6\xfd\x1e\xed\xc4\x5b\xdb\xa7\xa0\xa1\xa4\xb0\x6a\xa4\x30\x27\x48\x7a\x22\xa5\xc8\xc9\x03\xbc\x57\x33\x18\x88\xe1\x08\xa7\x72\x37\x22\xdd\x9b\x29\xc2\x7c\x38\x2e\x1e\x91\x07\x42\x60\xcc\xe0\x6a\xb2\x56\x1b\x65\x74\x5d\x55\xea\xe0\x21\x5e\x6d\x41\x99\xe8\x54\xcc\x37\x3c\x43\x7d\xf5\xd7\xeb\x8d\xd9\x5a\xe6\x11\x9a\xa0\xc3\x97\x06\xa5\x18\x5b\x54\x93\x2a\xed\x69\xbf\xcb\x86\xb3\x7b\xdd\x00\x42\x68\x03\x2e\xbf\x35\x7f\x10\x36\xc7\x45\xf2\x37\x73\xe9\x35\x4b\xca\x5d\x23\x9d\x06\x82\x80\x36\xe4\xa2\x0e\xe1\x9b\xf6\xd4\xed\x64\x8b\x29\x37\x03\xe7\xc0\x05\x59\xf5\x99\x00\x2e\x31\xec\xc8\xc6\x1b\x1d\xb5\x06\x1c\x75\xed\x4b\xb0\xab\x95\xe6\x66\x62\xf9\xd2\x87\x35\xf5\xc6\x15\x40\xd4\xe8\xcd\x76\x7b\xba\x49\x88\x4e\xc3\x31\x46\x81\x60\x75\x8b\x2e\x90\xf3\xf0\xcd\x08\x09\xe6\x86\x8c\x1d\x54\x82\x8b\xb3\x31\x82\xc1\x5e\xe8\x1a\xc0\x61\xf6\xd7\x5d\xe6\xcc\x36\x7c\x3b\x32\xf4\xfa\xe8\x65\xd3\xca\x86\x65\xc1\x7d\xf8\xe0\x93\x18\x03\xfc\x77\x51\xc2\xf3\x8b\xcb\xdb\x10\xd9\x94\x60\x6f\x8f\xa2\xb5\x88\xee\xc1\x9a\x86\x47\x1e\x6e\x06\x0a\xc6\x07\xb8\xb5\x4f\x7d\x5a\x28\x0b\x94\xd9\xba\x6c\x30\x2e\x23\x92\xca\x59\x9c\xe8\x2c\xe5\x5b\x80\x24\x48\x8c\x53\xf4\x70\x06\x17\xe0\x6b\x44\xc1\x3e\x67\x42\xff\x99\x36\xb3\x32\xf1\xdf\x0d\x1d\x4b\x0f\x3c\xf7\x83\xd9\x94\x07\x4c\x8b\x0d\x97\x45\x12\xcd\xe4\x46\x70\x19\x22\x58\x09\x92\x61\x06\x39\x56\x82\xf2\x25\x2c\x97\x22\x2a\x3c\xe1\x32\x5c\x42\xdc\x48\xed\xdb\x83\xc3\xfa\xee\x76\xde\xce\xae\xff\x60\xd3\x33\x27\x1b\xc0\x47\xd3\x1a\xa2\xa3\xf1\x89\xae\x46\x48\x95\x4b\x47\xae\xbd\xd4\xc2\x5f\x76\x4d\xb1\x85\x28\x1e\x05\xf0\x09\x11\x01\x42\x9b\x8e\x7f\x70\xba\xa4\x43\x82\x07\x27\x8e\x7f\x90\xe8\xe5\x1b\x04\xc2\xb4\xc1\x42\xe0\xa5\x23\x3e\x94\x35\x06\xc3\x57\x44\xc9\x00\xa6\xc0\x57\x64\xd4\x7c\x05\xc7\xb4\xb9\x05\xe7\x0f\x22\x9e\xc9\x2a\xad\x24\xe9\x8c\x7e\xc3\x31\x9f\x08\xf4\x79\xa4\x8d\x1d\xe3\x5e\x8e\x9e\x33\xa0\xd2\xf2\x24\xda\x8e\x74\x60\x47\x62\x52\xec\xf4\x4b\xde\xaa\x6c\x4e\xe4\xbe\x97\x61\x9f\x2b\x94\x12\xfd\x51\x5e\xe0\x0a\xfa\xc7\x2d\x4a\x47\x9a\x87\x8c\xba\x0e\x2c\x4e\x46\xeb\x86\x19\xbc\xad\x8c\x99\xb4\x6c\x32\xcb\x32\x45\x96\xf4\xae\x98\x1d\xe2\xd0\xb4\x91\xaf\xbf\x5e\x04\xb4\x33\xba\xb2\x20\xb7\xaa\x03\xe9\x04\xc0\x7d\x94\x75\x76\xd5\x0b\xa9\x4b\x50\x29\x6c\x5a\x45\xf0\x4a\xac\x44\x01\xa7\x79\x5c\xa6\x08\xd8\x04\x77\x0a\xf0\x71\xf2\x34\x65\x49\xa1\x67\xd2\xd1\x87\x62\x60\x0e\x48\x58\xeb\x6f\x89\xe9\xca\x05\x55\x40\xb1\xf0\x98\x4b\xd0\xc3\x92\x28\x29\x1a\xe1\x0e\xdb\x30\x15\x59\x96\x09\x8e\xb1\xfc\x38\x6d\x33\x19\xde\xb9\xea\x93\x40\x81\xef\x90\xbd\xfe\x39\x62\xd0\x77\x18\x6e\x4d\x15\x4f\x42\xd9\x60\xef\xcc\x85\xcb\x66\x19\xc7\xd6\x12\x7f\x10\xa1\x92\xcd\xad\xa6\xd0\xd6\x81\xe2\xef\xad\x10\xd3\x13\x95\x29\xcf\x31\x98\x69\x59\xa6\x2c\x59\x06\x09\xd3\x61\x0e\x90\x3c\xd2\x4c\x57\xa4\xe0\xac\xb6\x2e\x14\xcd\x37\x22\xe0\xad\x21\xf3\x4e\x1a\x20\x7e\x30\x23\x06\x42\x49\x4c\x59\x6f\xc6\xec\x9d\xa7\xc7\xc5\x19\x86\x3d\x11\x90\x4e\x27\x1a\xc5\x9f\x6b\x6f\x40\xb9\x00\xbd\x33\x4d\x54\xd2\xec\x48\xb7\xeb\x3a\x66\x10\x92\xd7\x0c\x83\x13\xd9\xd4\x45\xbb\x11\xf6\xad\x94\x2b\xe6\xd3\x1a\xc8\xc8\x6d\x88\x8e\x06\xda\x53\x61\x60\x23\x43\xc2\xee\x27\x34\xd4\x11\xa2\xb7\x34\x76\xb3\x23\x3f\x3b\xcc\xe3\xc0\xa6\x06\xd9\x0e\x87\x37\x34\x58\x39\x21\x78\xac\xcf\xc8\xae\x78\x31\x14\x49\xe6\x02\xd7\x86\x37\xb4\x15\xb5\xd7\xa7\x99\x20\x3d\x06\xb6\x73\x62\xbe\x79\x62\x43\x75\xb9\x38\x42\x01\xed\xf2\x21\x81\xa8\x10\x3c\x5a\x57\x39\x24\x2c\xd3\xb3\xeb\x01\xc4\x10\xc2\x7e\x1c\x4e\x7f\x31\xf1\x6b\x0e\x12\x3e\x32\xd3\xfc\x31\xbb\x94\x02\x71\x9e\x6a\x19\x1c\x2a\xd4\x00\xca\x0c\x09\xc9\x76\x9c\x94\x5b\x98\x86\xc9\x7b\x4b\xad\x65\xb6\xdc\x88\x71\x5f\x3a\x48\x3d\x5c\x36\x28\x45\x3a\x74\xc9\xb6\xd4\x54\x07\xa8\x97\xfd\x08\x2a\xda\xef\xfc\x01\x5c\x7a\xb8\x04\x68\xeb\x47\xff\x69\xd9\x19\xf7\xe0\x6e\x71\x36\xd8\xa1\xba\x6e\x18\x82\x9f\xf7\x8d\xef\xd5\xba\x8a\x99\x1d\x90\xc8\xf1\xee\xe2\xdd\xd9\xfb\xe9\x45\x35\xfb\xe2\x1f\xef\xce\xee\xaa\xbf\x5c\xdf\x5d\x5c\x4c\x2f\xbe\x0f\x7f\xba\xb9\x3b\x3d\x3d\x3b\x7b\x57\x7d\xef\xfd\x64\x7a\x5e\x7b\xcf\xfc\x54\x7d\x69\xf2\xdd\xe5\x75\x2d\xdf\xa3\x4d\xd6\x18\xfc\x74\x3b\xfd\x70\xf6\x6e\x7e\x79\x57\x49\x19\xf9\xee\x3f\x2e\x26\x1f\xa6\xa7\xf3\x96\xf6\x5c\x9f\x9d\x5e\xfe\x74\x76\xbd\x27\xe3\xa3\xef\x6f\xeb\x90\x3e\x07\xb6\xf0\xc9\xf9\x3f\x27\x6c\x99\x27\x42\xc6\xe9\x16\x23\x45\xec\xcd\xb6\x06\xfd\x0e\xcf\xde\x64\x23\x54\x79\x48\xc0\xc7\xed\x5a\x30\xf5\x20\x72\x60\x01\xc3\xd2\x88\x32\xc4\x33\x0e\xd4\x6b\xcd\x45\x91\x37\xbd\x02\x3b\xa3\xea\x8a\x7c\xeb\xe2\x36\x77\x35\xc7\x33\x48\x52\x25\x2c\x13\xf9\xae\xb6\x80\x66\x94\x97\x59\x91\x2c\xba\x43\x78\x06\x07\xde\xf7\xbd\x7b\x23\xdf\x71\x3b\x39\xdc\x45\xbb\x60\xac\x44\xb2\x1c\x02\x93\x87\x12\x9e\x9a\xd6\xd6\x7d\x6d\xa1\xc5\x59\xb9\x48\x93\x88\x25\x71\xdd\x9e\x42\x7c\x18\x60\x32\xae\xd3\xa2\x67\x22\x07\x55\xd5\xdc\x00\xb2\x5c\x1c\xf1\xb2\x58\x23\x85\x27\x05\xce\x50\x12\x9b\x99\xd4\x22\xca\x05\xfa\x02\x84\x06\x23\x2d\xe6\x33\x0d\x6a\x82\xc6\x10\x83\x4d\x0c\x64\x79\xe3\x20\x45\x4d\x87\x8f\x00\xbf\xc4\xd2\x07\x18\x49\xf1\xfd\x9d\x43\x43\x2d\x4e\x30\x63\x6a\x00\x0b\x83\x13\x1e\x1f\xda\xac\xa8\xa6\xdf\x46\x52\xbb\xac\xa0\x38\xc9\x36\xd2\xa8\xbd\x1b\xfb\xd6\x58\xb8\x50\xaa\xa1\x37\x54\x3a\x3d\x3a\xcd\x05\x1c\x22\x04\x69\xb0\xf6\x0b\xc0\x35\x51\x64\x12\x04\x24\x99\xab\xda\x42\xac\x79\xba\x44\x8d\xc3\x4c\x4d\x3b\xab\x08\x96\x7f\xab\xee\x85\xbc\xc6\x09\xfb\x55\xc4\xa1\xc4\x9b\x8f\xe7\x34\x72\x16\x21\x6f\xc2\x34\x6d\xb4\xab\xca\xc6\x85\x82\x32\x55\xe0\x3d\x21\x78\x8c\x01\x48\x3e\x63\x81\x0d\x29\x5d\x2e\x93\x4f\xa6\xc0\x99\x14\xad\x9c\xed\x00\x26\xb3\xec\x92\x4e\x2e\x03\x70\x0e\x29\xfa\xee\x85\x84\x7c\xaa\x40\x0e\xb8\x7f\xcd\x0e\xb3\x9f\x37\xe7\x62\x87\x41\x1f\x6c\x7e\x49\x25\xcd\x6c\xe8\xe5\xb1\xe3\x54\x60\x44\x98\xe3\xe0\x80\x75\x73\x7a\x3e\x3d\xbb\xb8\x9d\x9f\x5e\x9f\xbd\x3b\xbb\xb8\x9d\x4e\xce\x6f\xfa\x6e\xbf\xe7\x88\xe2\xab\xed\xbe\x7a\x30\x9b\x93\x10\xc7\xb4\xf3\x7c\x28\xbb\xeb\x94\xdf\x76\x30\x25\xfb\x5b\x9f\xc4\xd9\x3c\x4e\x74\x64\x8e\xbf\xed\x5c\xc8\x18\x92\x5d\x3c\x69\xa9\xb6\x17\x55\xef\x85\x7b\x83\xb9\x37\xac\x04\xc1\xd3\xee\xc1\xae\x68\xf7\x1c\x20\x99\x60\x86\xcc\x85\xd9\xfc\x71\x85\x63\x64\xbc\x3f\xc3\x99\x29\xee\xb0\xbe\x55\x8b\xa8\xf7\x09\xdb\x9b\x68\x5d\x02\x95\x89\x7d\x0d\xf0\xa8\x1d\xa3\x42\x0c\xc4\x61\xc6\x8d\x24\xc8\x16\xcf\x12\x3d\x93\x1b\x2e\x63\x5e\xa8\x7c\xdb\xd1\xc5\x7e\xc2\x33\xdc\x36\x55\x11\x1a\x1e\xd9\x52\x88\xd8\xce\x02\xbe\xca\x65\x7d\x29\x61\x5e\x8e\xdb\xcb\x1f\xcf\x2e\x6e\xe6\x67\x17\x3f\xcd\xaf\xae\xcf\xde\x4f\xff\xe4\x60\xb2\x19\xd7\x6d\xd9\xa1\xb3\x5c\x18\xe9\x62\x69\xce\x5a\xe5\x0b\xa6\x6c\xb6\xe5\x50\x9a\xce\x64\x39\x93\x56\xb2\xe4\xbe\xf8\x75\xae\xca\xd5\xba\xbd\xa0\x7a\x2b\xaf\x26\xb7\x3f\x3c\xa9\x99\x40\x42\x89\x79\x5d\x71\xb7\x35\xe1\xc2\xc9\x92\xe4\x1e\x62\x8c\x6b\xcd\x03\x2a\x55\x78\xb5\xcd\xcb\xd0\x21\xd1\x9e\x74\x7b\x69\x0a\xad\x9d\xca\x7f\xcb\xeb\x5d\x0b\xe8\x36\x90\x9b\x95\x63\x04\xe0\xeb\x98\x1e\xbc\x51\xda\x49\xcb\x6f\x95\x13\xec\xab\xa3\x54\xac\x56\x22\xc6\xe5\x55\x2f\x98\x6c\x70\x24\x02\x23\x7f\xae\xb7\x8d\x22\x25\xf0\x3d\xe0\x60\x76\x78\xaf\xfe\x02\xfc\xca\x7d\xd2\x2e\x2b\x4e\x89\x48\x0a\xfc\x9b\x05\x97\x1d\x8e\xe4\xfd\xf1\x60\xed\xc5\x5f\xe6\xcc\x85\xea\x91\xc1\xc4\xba\x0c\xfc\x3e\xe8\x02\xbc\x1c\x8e\x6f\x75\xed\xb8\x16\x59\xca\x23\xe1\x02\x5c\x90\x01\x18\xee\xf5\x4f\x71\xe0\x51\x9a\x64\x49\xf6\x96\x20\x7d\xb2\xcf\x0c\xd7\xb6\x04\xc0\x72\x7b\x6d\xe5\xf1\xcb\x9b\x56\x76\x5e\xdc\x88\xf7\x13\x0c\xcd\x98\xa7\x92\xe2\x22\xd0\x16\x05\xc9\x5f\x3b\x31\xeb\x83\x96\x43\xad\xe6\x9f\x68\xe2\xf1\xce\x5c\x35\x74\x73\xcb\xac\xeb\x96\x87\x53\x1d\x77\xd9\x0b\x8b\x22\xdf\x49\xc6\xfd\x1c\xee\x88\xab\x5c\x6d\x12\x2d\x26\x45\x91\x27\x8b\x32\xcc\x46\x3c\x10\x30\x57\xb9\x9c\xf8\x0e\x67\xb9\x8a\xcb\xc8\xd2\x67\x41\x6f\x3d\xec\x87\xac\x7c\x56\xeb\x88\xd9\x91\x59\x7d\x74\x73\x13\xf1\x11\x44\x7b\x20\xbf\x5b\x9b\x8f\xcd\x0a\xc6\x0e\xdb\xdf\x95\x3d\xca\x9f\x39\x66\xb4\x7b\x30\xed\x1a\xe8\x17\x06\xce\xec\xeb\xa0\x01\x77\xa0\xa6\x68\xb9\x2c\x38\x3a\xd0\xab\x3a\x4a\x17\x5b\x8e\x3b\x6a\x86\x81\xbb\xfa\x61\x63\xaa\xe1\x54\xa8\x37\xac\xb9\x46\x75\xbe\x88\xd6\xd5\x86\x43\x6f\xaa\xac\xc1\xf5\xe6\x3a\xf5\xf8\x30\xb3\x49\x2f\x37\xda\x08\x0d\x0d\x09\x19\xb6\x2b\x19\x60\x5d\x3a\xeb\x4e\xfb\x3d\x86\x5c\xcc\x7f\x29\xc5\x90\xac\xce\x36\x54\xe3\x8f\xf0\xd9\x5e\x40\x4a\x82\xd8\x2d\x67\x7b\x2d\x92\x8d\xd1\x80\x78\x1e\xad\xd9\x82\x6b\xa2\x23\x0c\xd9\x12\x30\xfd\x3c\x4b\xcc\x57\x3c\x2a\x28\x1d\xaf\xad\xd6\xa6\xe4\xbd\xb5\x50\x48\xa3\xd6\x7a\xab\x47\xdb\x72\xdb\x37\x00\x43\xac\xd7\xb6\x19\xd3\x77\x83\x7c\x08\xa1\x1e\xee\xee\xc9\x78\xc4\xc2\xe9\x94\xf2\x52\x46\x6b\x96\xa5\x1c\x09\x25\xd6\x5c\xa3\xa0\xb0\x08\x1d\xbe\x48\xd2\xa4\x00\x9e\x30\x74\x1c\xd7\xd6\xad\xb9\x3c\xf3\xfc\xde\xa6\x5b\xe0\x9e\x14\x6e\x97\x28\x39\x10\x09\xed\x7a\xf5\x59\xb1\xd0\x5e\x10\x86\xc2\xbd\xdf\x66\x27\x1c\xb4\x9f\x0e\x73\xbc\xc1\x66\xf7\x7d\x19\xe6\x1d\xa2\x12\xaf\xea\x9f\xd7\xc6\x1b\x09\x28\x0f\x22\x09\xde\x19\x97\xf5\x22\xa0\x73\x1f\x55\xb6\xfb\x18\x6d\x76\xb8\x45\x09\x1e\x0e\x7c\xa2\xc4\x49\x03\x94\x98\x7a\x5a\xa5\xd6\x7d\xbf\x4c\x15\x2f\x76\x47\xb9\x61\x96\xa4\xae\xb2\x63\x55\x2e\xba\xf2\x72\x60\xab\x9e\x1e\x43\x67\xc5\xff\x73\xd9\xdc\xc3\x73\x94\x17\xc2\x48\xdf\xa7\x0d\xa8\xf9\xfa\x08\x3e\x6f\x2f\x9c\xa2\x98\x07\x33\x52\xb8\x65\xe0\x73\xf5\x39\xdd\x1f\x20\xa9\x2d\xdb\xa9\xae\xe4\x1d\x14\xf3\x78\xd8\x7c\x25\x72\xcf\x52\xda\x9f\xfe\xeb\xeb\xaf\xfa\x44\x23\xfe\xb1\xe4\xe6\x00\xb8\x5c\xde\x20\x41\xd8\x21\x9d\x2e\x92\xe6\xb6\x6a\x17\x03\xf5\x5a\x6f\xab\x5e\xda\x70\xe1\xf7\x66\x3b\x68\xeb\xcd\x8d\xf9\xba\xbf\xd8\x9d\x56\xac\xb1\x59\x9e\x28\x20\xca\x52\xcb\x8a\xae\xd1\x22\x89\x5b\xeb\x3d\x60\x24\x7f\x29\x45\x29\xcc\x02\x5a\x94\xf1\xaa\xe9\x2c\x19\x70\xe1\xf2\x5d\x5a\xab\x47\xb6\x29\xa3\x35\xb3\x85\xb3\x58\xa4\x7c\x5b\x55\xa3\xcc\x5d\xa3\x50\x40\xa1\x3c\x88\x2f\x30\x20\xbe\x8f\x4a\x5d\xa8\x0d\xe0\xd4\x7d\xb9\x79\x29\x61\x97\x33\x6e\x77\x57\xdb\x81\x56\x21\xf4\x7c\xa2\x87\xfc\xe6\xea\xec\x74\xfa\x7e\x5a\x73\x4f\x4f\x6e\x7e\x0c\xff\xfe\xf9\xf2\xfa\xc7\xf7\xe7\x97\x3f\x87\xbf\x9d\x4f\xee\x2e\x4e\x7f\x98\x5f\x9d\x4f\x2e\x2a\x4e\xec\xc9\xed\xe4\xe6\xec\x76\x8f\x9f\xba\x59\x6b\xf7\x44\xf0\x80\x6f\xd4\x22\xe7\x6d\x32\x1d\x6b\xae\xa2\x5a\x4f\xd8\xc4\xb2\xaf\x56\xf8\x81\x2d\xd6\x00\xc0\x49\x29\x62\x2c\x11\x92\xf0\x8e\x17\xfc\x94\x17\x3c\x55\xab\x31\x9b\x30\x8a\x2b\xc0\x78\x11\x6d\x54\x42\xa2\xa6\x34\xb3\x83\x45\x18\xbd\x30\xf2\xa6\x20\x9f\x2d\x5c\x2d\x89\x14\x36\x15\x61\x5e\x29\x1b\xe4\x39\x93\x67\x0f\x42\x16\x25\x28\xda\x3c\x4d\x19\x55\x6b\x5f\x08\x58\x41\x6c\x2b\x75\xb2\x49\x52\x9e\xfb\xc4\xce\x97\x54\x16\x5c\x76\x6d\x5b\x1d\x2b\x5d\x93\x72\xc2\xda\x03\xee\xa6\x0c\xda\x7d\x7a\x3e\x05\x45\x37\x2a\x6c\xd6\x42\x5b\xf9\x4c\x22\xe9\x28\xd5\xb8\xe1\x10\xc3\x54\x28\x32\xd0\x63\xf5\xf4\x72\xf7\x42\x3c\x48\xb1\xb2\xae\xac\x97\x32\x4c\xb8\x46\xda\x7f\x9c\xc9\x22\xdf\xf6\xd6\x5e\x6f\x81\xd1\x41\xc3\xbd\x8e\x20\x91\xd5\x64\xcf\x68\x3f\x65\xb6\xf4\x0b\x50\x69\x2d\x5e\x97\xdc\x7b\xce\x8b\x87\xf0\xa8\x8e\x2b\x51\x6a\x4e\xde\xdf\xea\x38\x84\x2c\x60\x30\x0a\x0b\x55\xca\x58\x13\x78\x73\x93\xc8\xe3\x0d\xff\xf4\xc6\xf6\x14\x49\x6c\x5c\xca\x35\x60\x4c\x14\xa9\xb9\x0f\x6e\x8d\x90\xdb\x3d\x5c\x33\xb9\x63\xbc\xf6\xdf\x09\xac\x64\x05\x93\x81\xb7\xef\x20\x0c\xf5\x41\x6c\xdb\xe6\xaf\x91\x36\x93\x85\xb9\x1f\xa0\x90\x2c\x17\xe6\x45\x87\x71\x4d\x11\xba\xec\xfe\x86\x58\x96\x4a\x6a\xef\x76\xd9\x1d\xc2\x46\x0e\xda\x36\xad\x80\x95\xfe\x8a\x4f\xef\xbc\xa7\x54\x93\x99\x33\x84\xaf\x58\xcf\x09\xc5\xee\x90\x5f\xde\x4c\xd6\x5f\xd5\x82\x2d\x21\x90\x8d\xec\x04\xb9\x00\x4f\x19\x4c\x85\x4d\xd4\x03\xbc\x7a\x0d\x4c\x8c\x5d\x02\xa9\xd0\xe0\x3f\x92\xe6\x52\x2d\x7e\x29\x09\x02\xf0\xf6\xcb\x61\xe7\x6c\x81\xd9\x1e\x90\xde\xbb\x9e\x07\xc1\x9d\xe5\xd0\xae\x52\x26\x6d\x64\x9b\xd7\xa5\x34\x47\xf1\x73\xa0\xa7\xfa\xbb\xc7\x6b\x95\xd2\x9f\x7b\x63\xcd\xac\x67\x27\xc7\xf7\x5f\x8c\xb9\xf9\xa7\x1a\x61\x33\x55\x07\x91\x0d\x54\x7a\x78\xa0\x2d\x78\x74\xff\xc8\xf3\x18\xcd\xff\x00\x67\x1a\xb3\x1f\xd4\xa3\x78\x10\xf9\x88\x45\x22\x2f\x38\xf1\x15\x6a\xc0\x73\xc0\x86\xa2\x72\x66\x12\x02\x7d\x90\xfc\x51\xea\x32\x17\xac\x48\x56\xeb\x42\xe4\x21\x1a\x47\xe5\x46\x1c\x15\x48\x55\x9b\x89\x88\x08\xd9\x3a\x06\x60\x99\xf2\x87\x26\x01\xe3\x53\x98\x64\xd8\xd4\x45\x2b\x5b\x77\xb7\x4d\x7e\xb6\x0b\x3f\x45\x03\x46\x42\x13\x29\xb4\x46\x6c\xa5\x52\x2e\x57\xe3\xf1\x18\x12\x7d\xbc\x19\xb4\xd0\xa9\xc0\xd0\x81\xee\x50\xfa\xa9\x52\x5a\xa4\x5b\x47\x22\xe6\xe2\xa8\x00\xb8\xfb\xa9\x10\x52\x27\x68\xd8\x6a\x59\xfe\x37\x75\xe7\xd2\xe7\xf5\xc5\xb5\x5f\xcf\x07\x47\xe9\x76\x94\x03\xb9\x54\x07\x94\x84\xef\xb7\xdf\xbc\x9e\x14\x75\xde\x5e\x96\x54\x72\x68\x28\xf5\x4f\x2a\xe9\x80\x82\x3c\x89\x6c\xb4\xb5\x24\x22\x42\x7a\x52\xf8\x69\xfb\x98\x35\x22\x82\x0f\x08\x06\xde\x11\xd7\x3b\x30\xa4\xb7\x8f\x21\xe0\xa6\x3e\xdd\x83\xb7\xc5\xfe\xf4\x6e\xad\x1d\x1a\x18\x32\xed\xb9\x0d\x86\xa8\x4e\x18\x75\x99\x6e\xe1\xc6\xe5\x02\xa8\xc1\x3d\x10\x07\x5e\xa5\x8a\xd3\x0c\x42\xf9\xbc\xd7\xcd\x11\xd4\x05\x4e\x36\x5d\xa8\x9c\xaf\x04\xdb\x88\x38\x29\x37\xad\xc2\xc6\x35\xf7\x10\xf8\xa8\x4a\xcb\x4d\x37\x55\xe8\xa1\x0a\xb4\x6f\x24\xfe\xeb\x14\xaa\xeb\xcf\xa1\xe3\x22\x23\x6c\x96\x4d\x6a\x2f\xba\x90\x68\xac\xcd\x49\x99\x27\x1a\x58\x76\x9f\x12\x39\xeb\x8a\xc1\xa2\xc1\x01\xbf\xcd\xd0\xc8\x5e\x99\xdd\x23\xeb\x19\xa5\x4f\x34\xce\x2a\x78\xed\xbb\x0f\x85\x3a\x28\x75\x78\xae\xbd\x5c\x95\x0d\xee\xa9\x5e\x40\x09\x50\x1b\x83\xcc\x1b\x84\x9a\x83\x02\x09\xda\x53\x28\xb6\xb4\xb1\x98\xf7\x22\xa0\x3e\x8c\x21\x27\xc7\x23\x52\x3e\xfd\xf8\x8d\xb6\x20\x20\xc2\x69\x79\x8d\xa5\xf0\x95\xa0\x07\xe8\xe1\xad\x85\xe7\x61\x0f\xb1\x08\x20\x28\x8c\xb9\x2c\x5a\x0b\xf0\xe8\x55\x28\x0b\x3f\xf9\x89\x97\x69\xfb\xeb\x54\x3e\xbc\x8a\x39\x5b\x27\x3f\xdf\x30\x1c\x6a\xca\x9f\x90\xef\x6a\x68\x50\xc8\x7e\x80\x20\x0c\xd7\xfc\x09\x9a\x60\x65\x1e\x70\xd0\x6d\xfa\x0e\x33\xec\xa2\x88\xd6\x5e\xf3\x00\x82\x46\x47\x2c\x49\x09\xb9\xa9\x9f\x1b\x9f\x11\x02\xb1\xd7\x21\x88\x35\x59\x49\x15\xa6\x52\x52\x52\x80\x2b\xce\x08\x20\x15\x16\xcb\x92\x62\x3f\x52\x70\x20\x2b\xe1\xbe\xa5\x56\x28\x44\x80\x51\x3f\x2b\x7e\x6a\xb8\x52\x24\x48\x57\x65\x61\xd6\x78\x27\xa2\xfc\xce\xf5\x4c\x01\x55\x02\x90\x99\xac\x56\xd5\x18\x24\x0b\xe5\x4b\x72\x81\x04\xdf\xda\x68\x6f\x45\xf2\x60\x36\x6a\x73\x59\xbb\x05\x0a\x12\xa0\xb9\xf6\xc8\x6d\xcb\x02\x96\xf0\x7b\xb1\xd5\x61\x32\x69\x5a\x51\xac\x6b\x41\x26\xa6\x3f\x34\x5f\xfb\xa7\x02\x06\x6e\x9e\xfb\x94\x90\xfd\xce\x32\xac\xf4\x83\xf9\x78\x07\x46\xb8\x51\xb8\x59\x83\x3e\xd8\xd5\xdb\x14\x49\x4c\xf8\x71\xa6\x39\xf4\x30\x40\x00\x79\x86\x30\xce\x30\x72\x09\x2e\xbe\xe6\x7e\x3b\x93\x94\x48\x20\x38\xe4\x8c\xc0\x69\x4e\x1b\x45\xe0\x23\x7d\xf9\xb6\xc2\x1e\x04\xd4\xaa\x96\x66\xb6\x5a\xa5\xf5\x2e\x43\x5e\x3e\x58\x1e\x50\x35\xc6\x28\x5b\x1b\x5e\x6b\x85\x4f\xc4\x96\xd2\xe4\x76\xe2\x49\x83\x40\x40\x7c\x93\xd8\x45\x31\x2b\x39\xde\x7e\x22\x61\x86\x6f\x22\x5b\xa1\x9c\x16\xc8\x79\x73\x76\x7a\x7d\x76\xfb\xd9\xf0\xa6\x16\xec\x39\x18\x70\x6a\xdb\xf9\xee\xec\xfd\xe4\xee\xfc\x76\xfe\x6e\x7a\xfd\x12\x88\x53\x7a\xf4\x04\xc8\xe9\x0d\xe5\x27\x39\x55\xb2\x10\x9f\x0e\x3a\x93\xf3\x52\xce\xf9\x80\xd0\x27\x97\xa1\x68\x97\xba\x83\x85\x36\xf3\xab\xb8\xe4\x27\xc4\x6d\x4b\xa8\x13\x9b\x4e\x65\xe9\x8d\x86\xcb\x24\x4d\x21\x12\xdc\x99\xd7\x29\xca\xd0\x0c\x2a\xc8\x1f\x4b\xe7\x4b\x32\x75\x26\x17\x95\xf4\x37\x60\xf2\x5b\x9b\x4b\x30\xc6\x80\x67\x66\x00\xf2\x04\x22\x6c\x77\xa5\x60\x59\x25\x52\xf8\x66\xc0\xac\x99\xf6\x75\xd2\xd4\xd3\x24\xbe\x24\xb2\x8e\x14\xaf\xbe\xba\xa6\x5d\x71\x95\xf5\x69\xd5\x4f\xfb\xd0\xf5\x10\x37\x71\x22\x51\x31\xad\xec\xe6\x9b\xf6\xa5\x7b\xec\xb7\x00\x8c\xbb\x99\x49\x0e\x3e\x08\x5d\xf0\xbc\xf0\x13\x49\x13\x81\x89\xe1\xbc\x73\xe2\x3e\x41\x04\x9a\x5a\xd6\xc6\xd9\x88\x42\x33\xd6\x09\x78\x2a\x38\x91\xdb\x44\x69\xa9\x0b\x91\x93\xd9\x64\xf2\xf3\xcd\x4c\x7e\x67\x8e\xaf\x37\x74\x0a\x51\xfa\x2e\xac\x02\x91\x3a\xaa\x52\xbf\xd5\x50\x42\x09\xf6\x1a\x6d\xd4\x1b\xc1\xa5\x66\xb0\x35\xd2\x54\xe4\x7e\x65\x60\x7b\x84\x88\x29\x89\x36\x50\x3d\xfb\xef\xdf\x30\x02\xb7\x9a\xa1\x30\xed\x75\x69\xc4\x36\xaa\x68\xae\xa7\x2e\xa2\x01\x40\x9c\xbf\xe4\xca\x69\x09\x7c\xea\xbb\x8a\x08\xac\xdf\xba\x88\xaa\x61\x48\xbd\xd6\xd2\x2d\x16\xf7\x8f\xa5\xf4\x8c\x4b\xa9\xc7\xb9\x1e\x9e\x12\x6c\xad\x8c\x00\x75\xb9\xad\xbc\x9b\xd9\x11\x9d\xa4\x80\x72\x33\xc3\xd8\x7a\xea\xd4\xb2\xcb\x1e\x82\xfd\x80\xa2\x0e\x43\x68\x4f\x5a\x18\x95\x7c\x1a\x43\xeb\xdb\xd9\x99\xb8\xf6\x65\x98\x0b\x27\x16\xab\x2a\x55\x61\x39\x48\x1c\x3c\x94\xb0\xae\xe6\x05\x47\x7e\xb3\xb3\x8d\x44\x28\x63\xb5\x94\xf9\x81\xc9\x1f\x6f\x43\x4c\x6d\x25\x2a\x1b\x5b\x11\xf2\x39\x58\x0e\x07\xc7\x01\x33\x64\xf1\x3d\x3d\xbd\x70\x75\xcd\x39\x3e\xd1\x27\x81\x1d\x2e\x2e\x2f\xce\x42\xa8\xc2\xf4\xe2\xf6\xec\xfb\xb3\xeb\x4a\x3c\xff\xf9\xe5\xa4\x12\x93\x7f\x73\x7b\x5d\x0b\xc5\xff\xee\xf2\xf2\xfc\xac\x81\x79\x38\xbb\x9d\x7e\xa8\x14\xfe\xee\xee\x7a\x72\x3b\xbd\xac\xbc\xf7\xdd\xf4\x62\x72\xfd\x1f\xe1\x2f\x67\xd7\xd7\x97\xd7\xb5\xfa\xee\x4e\x77\xa3\x27\x2a\xdd\x68\x37\xff\x78\xe7\x6c\x40\xad\xda\xba\x8d\xab\xe9\x97\x0f\xd8\xc5\x3d\x91\x67\xfb\x96\xa3\x0d\xd7\x8f\xc3\x74\x1c\xb8\x31\x4c\x53\x07\xad\xba\xe7\xcf\x17\x5d\x19\xba\x8c\x1f\x26\xf6\xcc\xa9\x36\x7f\x0e\x24\xe0\x4e\x05\xd0\xd5\x52\x33\xdc\x52\x7a\x76\x1c\xda\x0c\x3c\x58\x2b\xde\x99\xaf\x4c\xc6\x2f\xde\x52\x5b\xc7\xbe\x76\x7a\x2a\xaf\x3d\x8c\x48\xcf\xc5\x86\xb2\xab\xd1\x41\x65\x96\x6c\x20\x89\xad\xa2\x60\x1f\x86\xb0\x7b\xd3\x0d\xb3\x72\x82\xe5\xd8\x95\xd8\xb7\x3d\x6c\x69\x37\xfb\xde\xd0\xf6\x53\x25\xcd\xb6\xd7\xa8\x5a\x06\xb4\x1b\x28\xb3\x86\xb4\xfb\x96\xeb\xfb\xa1\xed\xa6\x4a\x9a\xed\x06\xb5\xef\x49\xed\x06\x83\x77\xd1\x4e\xa3\x33\x40\x88\x85\xc5\x54\x9b\xe7\x62\xfc\xdd\x2b\x41\xfe\xec\x7e\x6d\x34\x1b\xe0\x65\xaf\x97\x19\xef\xef\xc8\x80\xd6\xb8\xed\xca\x6b\xac\xf2\x37\xf0\x14\x7a\xb8\xc8\x05\xbf\x8f\xd5\x23\xcd\x47\x1d\x19\xca\x7a\x49\xf3\xea\x00\x19\x19\x6e\x8f\x88\x22\x27\x0f\x14\xa2\xd4\x7c\xf1\x00\x93\x4b\x88\x17\x1d\x75\xb0\x20\xf5\x72\x9d\x88\x08\xa8\x9f\xa4\x9f\x9d\x99\x44\x6d\xbe\x2d\x7d\xb3\x99\x55\xd3\x22\xa2\x0e\x81\xae\x3a\x1d\x1a\x9d\xeb\x3a\x98\x58\x8a\x03\x2a\x73\x00\xd3\x2d\x72\xb8\x33\xc1\x80\x24\x12\x8c\xc9\xb9\xb9\xf0\xe4\x22\x4a\xb4\x08\x32\xc6\xb5\x9e\xd8\xbf\x1c\x96\x0a\xa5\xe0\x45\xab\xd9\xb5\xb7\x3d\x9c\x47\x45\xc9\x53\x06\xe1\x4a\xc4\xc0\x88\xb6\x4a\xfc\x25\xe2\x12\x43\x63\x0a\xb1\xc9\x20\xaa\x3f\x8c\xe9\x98\xc9\x9f\x01\x28\x81\x53\xf0\x4a\xb3\xef\x01\xf2\x60\x5f\xa6\x43\x78\xc3\x0b\x38\x8b\xff\x88\x75\xb8\x67\xe3\x99\xac\x64\x60\x0a\xbe\xaa\x24\x63\x1a\xcf\xa4\xcd\xd6\x11\xab\x48\x8f\xe1\xc6\x37\x56\xf9\xea\x98\x72\xa9\x9b\xc5\xae\xee\x17\x4a\xdd\x1f\x0b\x79\x0c\x36\xa9\xe2\x98\x97\x85\x3a\x06\xb8\x14\xce\xbf\x3e\xb6\x49\x8f\x6d\xd6\x68\x7d\xbc\x4e\x1e\x04\xfc\xdf\x78\x5d\x6c\xd2\x7f\xd1\xd9\xfa\xd3\xd1\x2a\xcd\x8f\xcc\xb7\x47\xe1\xb7\x47\xf6\xdb\x23\xfb\xed\x91\xf9\x0c\xff\x2f\xdb\xa2\x7b\x47\x7c\xe2\xe6\x2c\x1b\xcd\x64\x22\xb5\xc8\x0b\xd0\x7e\x1e\xf3\xa4\xf0\xa9\xae\xb6\xec\xd5\x7f\xfe\x27\x1b\xe7\xfc\x11\x23\x62\xdf\xf1\x82\x5f\xa1\x7d\xf1\xef\x7f\x7f\x05\x0e\x55\x8c\x62\xca\x78\xfe\x4b\x29\x8a\x99\xd4\xc2\x6c\x42\xf6\xbf\x66\x12\x3c\xb0\x9b\xed\xbc\x40\xbb\x2b\xda\x20\x63\xcd\xbe\xc5\x32\xa7\xc8\x46\x1a\x6b\x53\x52\x47\x38\x41\xc2\xd3\x96\x2c\xfd\x1d\x26\xfa\x5f\xd2\x77\xf4\xfe\x80\x6d\xfd\x4b\x5a\xdd\xd5\x36\xd9\x92\xfe\x25\x85\x03\x34\x55\xdc\x82\xb5\x98\x5b\xbc\x70\x4f\xa6\xc6\xb5\xed\x91\x06\x34\xe0\x45\xdd\xf4\xed\x7b\xe5\x06\x19\xd1\xad\xe5\xbe\x21\x46\xc0\x57\xe0\xfd\x10\xe0\x3d\x4f\xcc\x0e\xb9\x41\x4b\x28\x68\x6e\xd8\x73\xd0\x49\xc9\x75\xee\xca\x43\xc3\x85\xfe\xfa\xe4\xf8\x78\xc4\x56\x1a\xfe\xb3\xf8\x05\xfe\x03\xe8\xa1\xe7\x22\xf5\x6d\x0c\xa6\x03\xc2\x35\x67\x79\xff\x4c\x3c\x07\x8a\xee\x73\xf0\xc8\xd7\x96\xe9\x77\xa5\x8c\x53\xe1\x43\x1b\x2b\x2e\x91\x54\x99\x99\xb4\x13\xd5\xcc\x3c\x04\x73\xbc\x10\x11\x37\x82\xaf\x51\x37\x82\x4b\xd5\xb2\x10\x12\xad\x61\xb9\xcf\xf6\xc8\xd1\x72\x05\x6a\x31\x40\x21\x79\x41\x90\x73\x01\x3f\x42\x25\x40\xcc\x3e\xaa\x3f\x62\x5b\x55\x12\xc7\x38\x30\xe7\xc6\x22\x4a\x21\x91\x83\x65\x0f\x62\xb9\x28\xca\x5c\x32\xce\x32\x2e\x63\xae\x61\x05\x2e\x73\xf0\x76\xe6\x8c\x37\x1b\x3a\x42\x38\xae\x2a\x0b\xe0\xc4\x42\x64\x41\x38\x12\x48\x02\x1f\xb4\x79\x14\x34\x02\xcf\x04\xe0\xa2\x6e\x7c\x38\x9e\x49\x9b\x8f\x90\xb0\x70\x68\x29\x8b\x54\xb6\x25\xc6\xa3\xfa\xa0\x27\xd6\x72\x46\xc3\x3d\xf2\x78\x93\xfa\xbb\x23\x96\x54\x5d\x6b\xc0\x37\x5f\x04\x29\xde\x6d\x92\xfc\xd7\x42\x46\x2a\x16\xb9\x7e\x63\xb6\x61\xe2\xee\x1d\xa8\x3f\x24\xda\x4f\x06\x48\x29\x73\xb8\x91\xb5\xd0\x14\xef\x12\x4c\x99\xd1\xa9\x30\x94\xb7\xe9\x39\xfb\xb7\xca\x6f\x1d\x05\xd3\xd6\x5e\xfa\xe7\x67\x45\xc4\x84\xb8\x4e\x7b\xe7\x7c\xba\x09\x02\xb7\x6c\x28\x71\xb1\x50\xd4\x71\x48\x39\xb1\xf9\xb4\x93\x02\x32\x64\xe6\x42\x17\x33\x49\x27\xf0\x88\x2d\x05\x37\x7a\xde\x88\x45\xfa\x01\x85\x31\x1e\xf7\xc5\xa3\xf2\x18\x1c\x9b\xde\x06\xc0\xb0\x95\xc2\xbd\x91\x18\x5f\xe3\x14\x81\x8d\x00\x83\xae\x1b\xba\x53\x55\x60\xb0\x5a\x05\xe2\x13\xc6\xc1\x66\x4b\xa9\x67\x58\x0b\x93\xf5\xc0\x48\x6c\xd1\x51\xcc\xea\xed\xc0\x07\x46\xf0\x60\xef\x10\x06\x12\x08\x47\xd0\xb8\x09\x4b\x8b\xfb\xcc\xfb\x70\x43\xca\x7a\xb0\xcd\x74\x6d\xaa\x1d\x03\x01\x0d\x78\x9a\xdd\xc2\x7c\xba\xd7\x60\xa5\x45\x6e\x53\xb9\x60\x5f\x91\x60\x72\x9d\xe4\xf1\x51\xc6\xf3\x62\x6b\x97\x6f\x9a\x2c\x20\x03\x44\x9a\xdc\x0b\x36\xc9\x73\xf5\xf8\xdc\xa3\xd0\x29\x5a\xba\x6e\xd8\x87\x20\xd9\x87\xde\xf2\x5b\xe9\x65\xeb\xe6\x8e\xa7\x51\xd9\x76\x19\x3e\x5a\xeb\xc9\x45\x91\x6f\xe7\x66\x21\x6e\xb2\x4e\x49\xd1\x2b\x68\xa2\xbf\x92\x3b\x8c\x25\xb7\x66\xc2\xe8\x64\xc9\xad\xcc\xea\x6f\x87\x25\xb7\x85\x00\xb7\xc9\x92\x3b\xbd\x98\xde\x4e\x27\xe7\xd3\xff\x53\x2b\xf1\xe7\xc9\xf4\x76\x7a\xf1\xfd\xfc\xfd\xe5\xf5\xfc\xfa\xec\xe6\xf2\xee\xfa\xf4\x6c\x37\xed\x55\xb3\xf5\x5e\x05\x3f\x62\x61\x3d\x27\xec\x36\x00\x6a\x60\xb0\x01\xe9\xdf\x94\x1f\x17\x56\x95\xd9\xcc\x89\x5c\x8d\x60\xa3\x9e\xb0\xb3\x3c\x9f\x6e\xf8\x4a\x5c\x95\x69\x0a\x70\x2a\x8c\xec\x39\xcd\x05\x5c\x3c\x47\xec\x4a\xc5\xd3\xe0\x3b\x08\x47\x6c\xed\x06\xd4\xcf\xe3\x38\x17\x5a\x63\xf5\x23\xaa\x3f\x00\x0f\xb9\x50\x47\x02\xcf\xf1\x07\x9e\xa4\xe6\xfe\x76\xc2\xbe\xe3\xd1\xbd\x5a\x2e\x31\x7c\x66\xe4\x02\xa7\xd8\x2f\xa5\x2a\x38\x13\x9f\x22\xa0\x7a\x6b\x5f\x27\xe7\x6a\xf5\x2b\x40\x95\x7b\xb8\xa7\x3a\x2e\x29\x90\xea\x6e\xde\x7e\x9c\xb7\x0b\x02\xea\xe5\x07\xfc\xf4\x3d\x7e\xd9\x6e\xa0\x2c\xd2\x67\x08\x8f\x3f\x57\xab\xf6\xc4\x43\xa0\x5d\x53\xb6\x24\x72\x24\x44\xc4\x2e\xa2\x56\x4c\x27\xf2\x7e\x26\x7f\x5e\x0b\xc9\x54\x99\xe3\x4f\x70\xcd\x37\x6a\x66\x5a\xea\xb5\x80\x34\xd5\x23\xf6\x28\xd8\x86\x6f\x51\x6d\x86\x3b\x81\xcb\x96\x02\x4b\x06\x4e\x11\xf3\x75\x9a\x48\x23\x2d\xb2\xc4\xc6\x25\xd4\xa7\xfe\x39\x6e\x5c\x96\xe8\x90\x1f\xce\x43\xbc\xeb\x3c\xad\xe0\xf3\xc0\x54\xe6\x71\x93\x16\x20\x44\x92\x1b\x92\xca\x2a\x75\x5f\x66\x9e\x12\xf5\x95\x75\x4e\xc2\x70\x3f\xa8\x24\x66\x71\x99\xa5\x49\xe4\xe4\xee\xa3\xca\x3b\x79\x9f\x31\x80\xa6\xff\xa9\x53\x0f\x0b\xdb\xd5\xb1\x96\xe8\x9c\x00\x49\xb7\x83\x01\xfa\x85\x39\xb0\x59\x22\xa3\xb4\x84\x34\x73\xa5\x16\xf9\x91\x4b\x1d\xed\x62\xfd\x7e\xfb\x24\xd9\x9e\x84\xf3\xf0\xb0\xb6\x30\xe8\x3c\x55\xab\x24\xe2\x69\x08\x6e\xf6\xa8\x08\xc7\xc2\x6b\xb7\x3d\x25\x13\x86\x38\x08\xdb\xa0\x4e\x22\xad\x2c\x17\x40\x04\x3d\x07\x51\x3e\x27\x71\x77\x48\xbb\x97\xcc\x5c\xd0\xb1\x5d\x21\x47\xae\x75\x2f\xd8\x13\xce\xd7\x6d\x33\xb1\x81\x8a\x89\x29\xfc\x99\x7a\x94\x22\x07\x0d\x16\x60\x1f\xa6\xa7\x52\x81\x6e\xe2\xb2\xb3\x39\x7c\xb2\xcd\x4e\xb8\x74\x40\x6c\x8c\x9c\x5d\x25\x0f\x42\x7e\x7e\x52\xf3\xa0\x82\x88\x47\x6b\x31\xb7\x7a\xf9\x73\x8b\x2c\x77\x00\x0c\x14\x56\x36\x4d\x4a\x28\x4a\x9d\x7b\x13\xae\x4e\xd8\xe2\xa6\xec\x42\x47\xe2\x8e\x88\x2c\xd3\x88\x79\x2c\xa2\xfb\xcf\x2e\x9a\x3d\xc8\xca\x36\x84\x71\xf6\x4e\x44\xf7\xec\xee\x7a\x8a\xd1\xc0\x49\xc1\x8c\x28\xd0\x6b\x9f\xf6\xa9\xf3\xee\x56\xf0\xd5\x0b\x50\x58\xf5\xcd\x5b\xe5\x53\x15\xb8\x6c\x7d\xa6\x41\x04\x88\x82\x78\x49\x23\x24\x29\x96\x06\x80\x60\xbc\xb0\xd9\x8c\xc0\x10\xcf\xf4\x06\x92\x17\x95\x45\x90\xf1\x2f\xe5\x0b\x91\x76\x10\x77\x66\x2a\x9e\x5b\x3f\xc9\xa1\x60\x9e\x46\x59\xd6\x8e\x41\x5e\x47\x1b\xc7\xc0\x8d\xc6\x7a\x4b\x2f\xb2\xfb\x6f\x74\x40\xaf\xa1\x42\xfe\x70\xb8\xd7\x73\x0d\xe1\xdd\xcb\x64\x65\xbd\x6d\xc9\x92\x52\x2c\x61\x40\xbf\xd1\x83\x41\x5e\x9a\x92\xae\x54\x4c\x30\x3d\xc7\x85\x67\xb4\x20\x41\xd6\x13\x8f\xab\x08\x9b\x60\x71\x80\x50\xaf\xd9\x11\x82\xc7\x4c\x2d\xc9\x9a\x98\x65\x69\x02\xcc\xd0\x31\x92\xd0\x03\x7b\x86\xae\xa2\xe3\xc3\xd2\x6c\x63\x03\x92\x8f\x2b\x0b\xc4\xeb\x4a\xc6\x0b\x02\x03\x23\x18\xe6\xc0\x06\x37\x7f\xe0\xdd\x64\x6a\x2f\x9e\x31\xad\xa3\x3d\xce\x9b\x5c\xa5\x84\xad\x90\xf6\x91\xad\x00\x8f\x75\x1b\x90\x1f\xf1\x34\x2a\xc9\x4f\x06\xe9\xf2\x6d\x16\xfc\xdd\x08\x42\xef\xf5\x33\x13\x5d\xb5\xfa\xd7\x95\xcc\x43\xb3\x2b\xba\x00\xad\xa7\xda\x14\x76\x9b\x17\x57\xa9\x5a\xc0\xca\xe9\x46\x09\xee\x38\xb1\x8c\xb8\xce\x93\x78\x88\xbe\x63\xc7\xe4\xd2\x7d\xba\xab\x81\x97\xd6\xf4\xe3\x6a\xb2\xeb\x9e\x51\x22\x83\x1a\x73\xe3\x30\x0a\x84\x25\x65\x55\xad\x5e\x4f\x0a\x4a\xe3\x01\xcb\xca\x9d\x4f\x1d\x76\x86\x6a\x5f\x0e\x9a\xe8\x26\x53\xcc\x9e\xb1\xf4\xe4\x32\xbb\x27\xf9\x00\xba\x0f\x14\x65\x8e\xf3\xa3\xdb\xb2\x28\x63\x11\xcf\x9f\xd0\x87\x33\xfa\xb6\x5f\x5f\xdc\x48\x63\xf3\xc0\x06\x28\x8f\x8c\xaa\x10\xf3\x3c\xf6\xfd\x18\xc1\x7e\x8f\x78\x06\x66\x78\x70\x6b\x3c\xbc\x1d\xdb\x3a\xae\x7d\x74\x91\x91\x97\x18\xf3\x8f\xf8\x6d\xd5\x92\x03\x67\xdf\x3a\x72\x8b\x14\xe1\xdd\x66\xe5\xf8\xe5\x5a\x89\xbb\xe9\xb5\x76\xeb\x2b\xcc\x0a\xf0\x43\x16\xd7\x4b\xc8\x8e\xb2\x50\xde\xdb\x03\xfd\x99\x02\xed\x70\x18\xd1\x07\x02\x72\x1a\x77\x20\x45\xac\xfa\x6d\x85\xd0\x00\xfc\xf1\x20\x04\x74\x96\x0b\xeb\x37\xdc\x8a\xc2\xf1\x3a\xa4\x36\xaf\x20\xb8\xc5\x5c\xaf\xab\xc4\x36\x96\xbb\xc2\x91\x91\x81\x13\x8b\x54\xfd\x48\x6d\x32\x25\x01\x96\x84\x51\x6a\x33\x49\x85\xdb\xec\xf0\xce\xb3\x56\x09\x75\x1c\x91\x41\x13\x03\x67\x84\x56\xe9\x03\xb9\x50\x83\x24\x26\x90\x57\xd2\x34\xf0\xd4\xdc\x0d\x55\x8e\x04\x5b\xf6\x64\x87\x48\x80\x5a\x8a\xf4\x5c\xac\x12\x5d\x88\x30\x3a\x34\xfc\xfe\xd9\xb2\xd9\x56\x8c\x27\xbb\x86\xbe\x33\x9b\xed\xbe\x5b\x90\x91\x4f\x03\xda\xb3\xcd\x44\x3c\x75\xdf\xed\x5e\x0c\xb5\x00\x7e\x2f\x0e\x2b\xe7\x1d\xae\x01\xbc\xfd\x69\xa4\xfa\xd2\x2e\xfd\x88\x9b\x24\x22\x61\xe2\x1e\xd0\x68\xa6\x68\x55\xf2\x9c\xcb\x42\x08\x3d\x93\xe4\x78\x46\xca\xba\x90\x95\xa5\x06\x84\x74\x77\x9b\x48\xe9\x02\x19\xa0\xe0\x93\x25\x4f\xd2\x32\xef\x34\x37\xe0\xaa\x7c\x12\xed\xc4\xae\x51\x3a\x85\x62\x59\xdb\xa4\xb9\x00\xe6\x60\x17\x39\xd6\x94\xba\xdb\xb8\x1a\xdf\xdb\xd1\x05\x7b\xb8\xf4\x9f\x6f\x67\x6b\xee\x88\x69\xfe\x46\xcf\x33\x35\x40\xe2\xfd\xf8\x8d\xbe\x52\x1d\xd1\xe0\xfa\x97\x86\x4d\x74\x07\x7c\xe2\x97\xae\x84\x2c\x5c\xdf\x83\xe7\x71\x9f\x29\xa6\x17\x1b\xe7\x5e\xff\x64\xa7\xec\x82\x55\xbb\xe6\x32\x4e\x8d\xca\xcb\x8b\x3a\xef\xb5\xc3\x79\x9b\x2b\x51\x61\x85\x63\x77\x50\x1f\xc4\xc8\xcc\xa3\x46\x80\xe5\xbe\x71\xaa\x45\x66\xee\xc4\x52\xd6\x6a\xa9\xc6\x4b\xb6\xc5\xe9\x78\x1d\x86\xd2\x20\xbb\x0d\xfb\xab\xeb\x2f\x67\x61\xdb\x3f\x93\xfa\x52\xdd\x6b\xcb\x64\xf5\x1b\x30\x24\x7c\x68\x1e\x09\x11\xc9\x1c\x3a\xa8\x5d\x74\xc3\x81\x52\x07\x02\xc9\x8c\xd4\x0e\x19\xc7\x67\x92\xd2\xc1\x23\xba\x00\xdc\xca\xc8\xb7\xa6\xd9\x5b\x17\x5d\xfc\xf6\x77\x96\x6d\x6b\xcb\x96\xb0\xa8\x80\xd2\x4e\x45\x51\x99\x83\xeb\x9f\xcc\x93\x4c\xe0\x21\xac\x07\x11\xc9\x80\xea\xe1\x00\x5b\xa8\x27\xb6\xa9\x49\xce\x1e\x5d\xe9\xd4\x2d\x98\x21\x31\xb1\xbd\x3b\xf4\x29\x5f\x59\xae\x0b\xa6\x0b\x91\xb5\x8a\xdf\x8a\x76\xb9\xcd\xc4\x44\x4a\x55\xd4\xe3\x53\x06\xeb\x97\xdc\x95\xd2\x73\xeb\x0c\x38\x8c\x26\x81\xc9\xe8\x0f\x37\x97\x17\x2c\xe3\x5b\xc0\x3e\x16\x8a\xe1\xab\x40\x38\x5a\x17\x54\xfb\x66\xa0\xda\xf9\xaa\x54\xc1\x31\xb5\x20\xea\x76\xff\x04\xd5\xd8\x54\x16\x61\xcd\xd0\x92\x34\x32\x2b\x57\xe9\x51\x96\x72\x19\xc0\xdb\xf5\x98\xd5\xaa\x0f\xf1\x0c\xce\xb3\x49\x88\x31\x68\x00\xd8\x2b\x68\x2d\xe4\x65\x2b\x00\x1a\x78\x77\xec\x82\x3a\x0c\xc2\xd0\x29\x23\x76\x02\x3b\x3f\x60\x16\x18\xcc\x89\x80\xec\x19\x16\x96\xe1\x90\x3d\x5c\x03\xe8\xb6\x93\x01\x9c\x47\x29\xd7\x7a\x27\x4a\xe7\x45\xa8\xe4\x83\xa8\xc5\xfd\xe2\xab\xda\x4e\x84\x11\x02\xb7\x09\xde\x4b\xdd\x63\x60\x4b\xb0\xa2\xcb\x27\x7d\x0b\xf4\xfd\x20\x1b\x04\x41\x1f\x88\x2f\x0a\xbe\x47\x26\xc8\x7b\xb1\xb5\x16\x2e\x12\x55\x7c\x23\x46\xce\xd8\xea\xac\x89\x01\xe8\xaf\x59\xf0\x4c\x02\x2a\xf6\x7d\xd8\x3c\xf6\x5e\xa9\x11\xe2\x33\xa9\x72\x8e\xc5\xf2\x10\xe1\x34\x93\xef\x95\x1a\x73\x77\x89\xa5\xf6\x93\xb8\xa9\x57\x48\xa8\x28\xc0\x1c\xd6\xa6\xb3\xff\xde\xfc\x21\x91\x98\x9e\x30\xd9\x98\x0b\x14\x8d\x13\xac\x28\x68\x90\xcd\x86\xaf\x1e\x35\x8b\x91\x52\xa6\x4c\xf4\x1a\xdc\x2e\xe8\xe7\x84\xfa\xe9\x48\x41\x40\x56\xce\xa5\x36\x7b\x18\x5c\x35\xe2\x41\x90\xbd\xb6\x82\x31\x98\xbe\x3b\x77\xb0\x25\xdc\x97\x94\xba\xa3\x63\xb7\x05\x97\x8e\x43\x2e\xe7\x00\x37\x1f\x40\x68\x47\x06\xce\x0f\x3c\xdb\x15\x0c\x7b\x70\x89\xfb\x66\xc9\x11\x6a\xd5\x6f\x54\x90\xc9\x1c\x72\x18\x56\x22\x62\xc3\xd1\xbb\x93\x07\x9e\x38\xad\x9c\xf6\xfb\x53\xee\xf4\x36\x30\x0c\x14\x15\xfb\x8f\x9b\x80\xdb\xd2\x41\x06\xdd\x5d\xd0\x08\x76\xc8\x10\x07\xa4\x7c\xb8\xa5\xc7\xec\x46\x08\xf6\x11\x46\xca\x54\xf6\x91\x32\x90\x02\x0a\xba\xe0\x49\x6b\x82\x38\x78\x7b\x2a\x97\xea\x30\xf9\x9f\xaf\x1a\x28\xdb\x83\x46\xa5\xbd\x9d\x87\xe2\x78\xc1\xd2\x2f\x5f\x96\x56\xa4\xd7\xc1\x50\x9b\xeb\x2b\x6f\x6f\xa2\x60\x63\xdb\x52\xa3\x92\xc1\x14\x3f\x85\xb8\xae\xb6\x48\x4c\x2f\x47\x48\xc6\x7e\x2f\xd5\xa3\x44\x79\x4c\x35\xb1\xd7\x66\xff\x81\xce\x82\x7e\x21\xd4\x04\x4b\x94\x86\x6f\x80\x1d\x7e\xe2\xfe\x66\x37\xe8\x02\xc7\x36\x43\xea\x30\x0d\xfa\x2e\x25\xfd\x82\x03\xfc\xf5\x64\xc4\xbe\x1b\xb1\xd3\x11\x1b\x8f\xc7\x6f\x46\x4c\xf0\x68\x6d\x5b\x84\x9f\xa0\xe8\x2f\xf8\xca\x94\x4d\x69\x7f\x96\x41\x05\x90\x1e\xd0\xe8\x27\x96\x04\x91\xfb\xb7\x02\xab\x9a\xed\x02\x86\x66\x53\x1c\x19\xc1\x85\xa2\xb5\x4a\x7c\xa3\x00\x79\x2e\x22\x95\x5b\xec\xba\x2e\x54\x6e\x71\xb8\x0f\x3c\xe7\x89\x04\xc6\x0a\xde\x8c\x42\xa0\x9a\x03\xce\x7a\xf1\x89\x6f\xa0\xff\x89\x74\xb4\xbd\x66\x98\x6e\x5d\xfb\x8b\x6d\x46\x7e\xb6\xc7\x3c\x29\x0a\xa3\x90\xe9\x99\xbc\x61\x27\xdf\xb2\x49\x96\xa5\x82\x4d\xd8\x7f\xb1\xef\xb8\xe4\x92\xb3\xef\xd8\x7f\xb1\x53\x2e\x0b\x9e\xaa\x32\x13\xec\x94\xfd\x97\x19\x36\x53\xde\x85\x32\x1a\xd0\x76\xc4\x38\x93\x65\x8a\x8a\xde\x6b\x8b\x71\x7d\xe3\xfa\xc5\xfd\xec\x2c\x44\xf1\x28\x84\x64\x5a\x6d\xe8\x28\xfc\x93\x3b\xfd\x75\x22\x57\xa9\x28\x68\x3d\x54\xd1\xc8\x58\xc1\x11\xf4\xf4\x64\x26\x9d\x9d\xfa\x4f\xa6\xc5\x7f\x62\xff\xc5\x2e\xca\x34\x35\x4d\x32\x82\xc6\x2c\xa4\x13\x66\xa3\xc3\x84\x1c\x3f\x26\xf7\x49\x26\xe2\x84\x43\x7c\x98\xf9\xeb\xf8\x16\x66\x7b\x5e\x7a\x2a\xd0\x70\x4f\xbb\x74\x6c\x87\x88\x9e\x17\xe1\x9a\x70\xc9\x02\x43\x6d\xa5\x13\x84\x12\x7e\x3a\x5c\x09\xf6\x04\xc8\xb4\x1f\xe8\x8e\x82\xa9\xf4\x42\x07\x65\x7b\xfd\x2e\xeb\x57\x66\xfe\xd5\x4a\xff\xd1\x2b\xfb\xd7\xae\xf1\xf0\x6d\x04\xe5\x14\x27\xc7\x07\x67\xc2\x45\x06\x62\x09\x71\xdf\x6d\x21\xe5\x87\x2d\x1b\xaf\x9d\xe8\xde\x36\x57\x69\xd4\x46\x0b\xbe\x1a\xb1\xcc\xe5\x91\xb2\x9b\xca\x39\xb6\x71\x1f\x63\xce\x04\x52\x36\x5f\x5b\x00\x91\x59\xcb\x14\x7f\x78\x1c\xab\x0d\x4f\xe4\x1b\xa8\xc3\x52\xe7\xed\x19\xa8\x96\xeb\xca\xfe\x11\xba\xe5\x3b\xd1\x8c\xdd\xd4\xfe\x55\x65\xa7\x96\xc2\xad\x6d\x3b\x1c\x98\xc3\xcc\x67\x38\xfd\x8c\xd7\xa1\x9f\x1a\x4b\xb4\x77\xee\x03\xca\x37\x56\x61\x4f\x01\x5d\xde\x33\xc8\xf5\xf2\xad\xbb\xcc\x65\x3f\x55\x53\xbc\x56\x86\x58\x25\xbd\x72\xe1\xd6\x1a\x7b\x47\x37\x31\x8c\x7b\x36\x62\x32\x49\x8f\x8d\xa8\x3c\xbe\x50\x52\x30\xae\x75\xb2\x42\xd6\x3b\x30\xa8\x61\x12\x59\xab\x94\xdd\x56\xaf\x0c\x81\x08\x02\xfd\xcc\x34\x09\x11\xd3\x85\x91\xc2\x66\x0a\xd2\xed\x4c\x9a\x2f\x48\x23\x80\xe8\xa9\xc4\x91\xa3\x63\x6d\xc4\x3d\x6e\xeb\xa2\x03\x31\x28\xbc\x65\x81\xed\xa2\x66\x38\x60\xc1\xd1\x4e\x3c\xc0\xe3\x76\x11\x10\x83\x52\x69\x96\x35\x0a\xe1\x34\x0b\x91\x2a\xb9\x32\xab\xa2\x4b\x08\x83\x14\x78\xa6\x26\x60\x61\x9d\x2d\x30\xca\x0a\xbd\x42\x53\x62\xf4\x94\x24\xf6\x26\x35\x5d\x2e\x8c\x1e\xe7\xbc\x3d\x4e\x1b\xa1\xce\x75\xf1\x54\x1c\x06\x5b\xba\x33\x32\x58\xe5\x16\x38\xe7\x3c\x89\xa8\xb8\x78\x0e\x27\xec\x51\x17\x42\x23\x1f\x64\xca\xe9\xf0\x6c\x8f\x98\xca\x91\xbe\xd3\x7a\xb0\x1d\xff\x56\xb3\xf6\xee\x2d\xbd\x33\xda\xa3\xdd\xf6\x49\x7e\xd2\x06\x5f\x48\x8f\xdd\xf0\x6b\x06\x7e\xf4\x09\x07\x79\x3f\x99\x9e\xd7\xde\x6b\x86\x83\xb4\xc4\x8c\xdc\x4e\x3f\x9c\xbd\x9b\x5f\xde\xdd\x36\xde\x33\xa5\xd1\x4f\x7b\x22\x42\x3a\x47\xef\x39\x30\xf1\xbf\x60\x0e\xb3\xb9\x5a\x5a\x7a\x80\xfe\xc7\x73\x23\x8b\x5c\x3f\xe8\x65\x11\xdc\xae\xc3\x6c\x6b\xcd\x85\xd3\x49\x72\x22\xe7\xe4\x6b\xed\xd7\xd8\xfa\x80\x5d\xca\xf7\xf8\xf9\x95\x4a\x93\x68\x37\x92\xdb\x1e\x96\x46\xab\x6a\x42\x63\x17\x02\x42\x1b\xc8\xe0\x4b\x8d\xc2\xfb\x59\x21\xa2\xc2\x63\x09\x9a\x9d\xfb\x7f\x1a\x3d\xba\xdf\x02\x83\x76\x58\x37\x6c\x90\x9c\xdc\xa1\x13\xe0\x64\x07\xd6\x68\x48\x96\x82\x5a\x2e\x58\x76\x41\xe6\x45\x9c\x7c\x4e\x95\x91\x87\xe3\xe1\x71\xad\x52\xb2\xc7\x22\x03\xf7\x4c\x66\x22\x8f\x14\xa0\x2e\x91\xdc\x45\xb1\x68\x9d\xa4\xb1\xcf\x48\xf6\x1a\xc2\x54\x00\x4c\xfe\x86\x92\xeb\x0a\x87\x9e\xb1\xc5\xef\x38\xf3\xed\xb2\x7b\x87\xbb\xfb\x20\xe4\xd9\x73\xe2\xce\x77\x2d\xfb\x9f\x09\x1f\x8d\x43\x41\x9c\x79\x35\x1c\x04\xa8\xfd\x61\x7b\x06\xb9\x74\xcc\x61\x4f\xc9\xa6\x22\x7f\x6d\x2e\x6a\xf3\x4a\xcb\xac\x3e\x94\xc0\xa4\x8e\x76\x74\x04\x01\x6a\x01\xcd\xd9\x08\x8e\x9a\xa0\xe7\x35\xa6\x49\x9d\x49\x8f\xfc\x78\xa5\x43\xad\xb0\x75\x9e\xd1\xfa\x6e\x91\xed\x23\xf6\xaa\xd2\xd1\x57\xc0\xb4\x2d\x15\xd4\x47\xde\xf9\xca\xd0\xc0\x72\x1d\xb1\xa4\x98\x49\x73\x67\x33\x2b\x33\x17\xa9\x78\x30\xad\x0b\xbd\x43\x84\x57\xb4\x96\x13\xdb\x6d\x08\x8e\xe2\x96\x53\x83\x96\x0d\x6d\xc2\x3c\x64\x6c\x46\xb7\x74\x2c\xb4\xd1\x5a\x21\xd7\x94\xf8\x64\x36\x40\x02\xce\x4f\x04\xb6\xc5\x42\xda\xf6\x01\xde\x0d\xf3\xfc\xcf\xe4\x74\x09\xc4\x06\x40\xa7\x10\xc7\x68\x83\xb0\xd9\x87\x1c\x7d\x66\x42\xde\x20\x45\x16\x19\x3b\x11\x94\x1b\x1a\x77\x92\x78\x10\xf9\xb6\x00\x93\x3e\x8c\xab\x14\xbc\x58\xb3\xa4\x18\x01\xef\xa9\x95\x94\x33\xc9\xe3\x98\xe2\xc1\xb1\xb8\xe0\x3a\xdb\x39\xcf\xf4\x7c\xa1\x1e\x76\xa9\xd5\x87\x22\x77\x71\x57\x67\x29\x97\x73\x3c\x41\x7e\x05\xec\x6e\x90\xb6\xbb\x0b\xc4\x51\x2e\xe6\x8e\xab\xed\x59\xda\xe9\xe4\xfd\xb5\x85\x2e\xd3\xd5\xa6\x5c\xd8\x8a\x46\x15\x68\xf6\xc2\xd3\x7a\x38\x2b\x1d\xe1\xa6\x72\x66\xb1\x25\xfd\xa5\x80\x87\xf5\xf2\x1a\xc6\xca\xae\xd6\x7d\xb8\x5e\xbb\x02\x7e\xab\xc8\xcb\x3e\x33\x5f\x3b\x43\xea\xd3\x3e\x1c\xf4\xd7\xd0\x10\x9f\x04\xfc\xdb\xd3\xac\x97\x05\xff\x75\x5a\x71\x9a\x20\x40\xdb\xdb\xc0\xbf\x4f\xa1\x03\x68\x85\x75\x06\xb4\xf6\xb4\xec\xe1\x2d\x50\xb5\xe0\xe3\x9f\xd3\x43\x01\x72\xaa\xaf\x9d\xc6\x13\x8a\x40\xbb\xc6\x6c\x2a\x99\x55\xf7\x46\xec\x15\x2e\x2c\xfd\x8a\x0c\xd0\x94\xdb\x9f\xc0\x32\x31\xed\x1e\xa2\x60\xa8\x83\xcc\x30\x10\xce\x6f\x37\xf4\x03\xee\xe4\xeb\x7d\xd1\x71\xf9\x2e\x81\x40\xbc\xa7\x70\xad\xa0\x0f\x79\x81\x05\xd8\x38\x92\xc0\x14\x4a\xdd\x05\x5f\x86\xef\xb0\xf5\x76\xb2\xef\xec\x87\x66\x88\xb2\x92\xce\x53\xfb\x9c\xa9\x7c\x26\x6d\x69\x64\x90\xd6\x98\x20\xb0\x5e\x54\x10\x17\x44\x3a\x7f\xb0\x52\x01\x0a\x60\x73\x42\x42\xaa\x51\x4f\x2a\x5e\x97\x02\x80\x82\x5a\x38\x04\x2a\x64\xa1\xf0\xb5\x19\xc5\xc3\x2c\xf0\x0d\x1e\xf3\x75\xe2\xe1\x34\x35\x83\x92\x14\x96\xe7\x38\x88\xd9\xd3\x25\xb0\x75\x2f\x4b\x23\x8c\x02\x4a\xf3\x99\x34\x83\xc7\x96\x09\xc4\x6e\xd0\xb8\xcc\xe4\x07\xa5\x2d\x45\x8c\xf6\xe3\x61\x81\x05\x34\x6c\xaf\x5c\x6a\x4c\xfa\xe1\x1d\x1c\xda\xe4\xf1\x41\xb2\x37\x77\xb4\x40\xb0\x26\xf1\x3c\x6d\x55\x99\xfb\x4e\x45\x5c\xce\xe4\x5f\xcd\xf0\xc0\x75\x8a\x4b\x3b\xad\x6a\x89\x5b\x18\x66\x10\x5c\x65\x1f\xb1\xd0\xd7\xbf\x7b\xf3\xf1\x0d\x06\x57\x95\x1a\xb2\x11\x8f\xaa\x07\x88\xcb\x6e\x51\xa6\x29\xe0\x10\x6c\x0f\x1c\xc3\x92\xaf\x62\x27\x0e\x8f\x2e\x75\x73\x59\x55\x31\xfa\x6c\xf4\x7e\x66\xfd\x09\x8b\x78\x11\xad\x8f\xac\x2e\x47\x62\xcc\x9e\x7e\x34\x7d\x18\x05\x65\x34\x2d\xd6\x9a\xe0\xc1\x5c\x38\xf3\x8d\xa3\x9c\xad\xac\x17\xd3\x05\x30\xff\xdf\xd6\xb3\x9d\x39\x46\x6c\x5c\x9c\x88\x03\xaa\xea\x79\xee\x75\x9b\x6b\xd4\xdf\x38\xc9\x47\x22\xf9\x46\xc4\xec\x15\x84\x01\xbf\xb2\x93\x3f\x93\xd9\x62\x9c\x6e\x97\x05\xf1\x16\x9a\x41\x19\x43\x56\xbe\x3d\xa7\xdc\x3c\x6e\x5e\x93\xf6\x0c\x76\xe7\x45\xab\x5d\xd7\x71\x63\xe3\x6a\xea\xaf\xb0\xa0\x8d\xcb\x8d\xce\x4d\x15\x13\x58\x4d\x0f\xc2\xf5\xfd\x88\x2d\x72\x2e\x21\xa1\x52\x1c\x2a\x55\x7e\x77\xc2\xe5\x19\x49\x01\x6d\x5c\xa0\xe4\xe9\x16\xe2\x7f\x46\x33\x89\x0c\x8a\x40\xb5\xbf\x8d\xd2\x24\x62\xab\x9c\x67\xeb\x9a\x1e\x24\x1e\x84\x2c\x20\x2f\xf7\xb5\xe0\xfa\x30\xac\x46\x5e\x2f\x81\xf5\xf6\xa6\x4d\x24\xdc\x3e\xb8\xac\x71\x5e\x43\xf3\x3a\x8e\x16\xc0\x67\x8a\x78\x3e\x8c\xef\x6a\x2f\x2b\x73\x85\xeb\x93\x88\xe7\xc0\xff\x6c\x3a\xc7\x6c\xad\xfb\xc0\x0f\x38\xae\x44\xc5\x64\x11\xbd\x87\x02\x36\x1c\xb5\xd3\x41\x04\xbd\xd3\xaa\x16\xc9\x3d\x67\x95\xb7\x9b\x93\xdb\x0f\x2d\x15\x36\x0c\xc2\x09\x8e\x11\xe5\x4d\x05\xf2\x4e\xf6\xc7\x72\xa1\x52\xcb\x7e\x3a\x7d\xc7\x54\x0e\x89\x87\x0a\x45\x3f\x25\x71\x97\x76\x90\xc8\x58\x7c\x3a\x88\x82\x68\xf7\x41\x6f\xd5\x66\x53\x4d\x90\xdf\xa6\xde\x59\x90\x4e\xb9\x30\x87\x70\x61\x6f\xc6\x8d\xb7\x74\x1d\xaa\x3c\x49\x8b\x35\xe0\x87\x31\x44\xc7\x0f\xea\x86\x6f\x59\xb4\xe6\x72\x15\x98\x26\x00\xce\x29\x32\x95\x63\x82\xde\x07\xe0\xfa\x54\xb9\xa5\x78\x20\xe2\x02\x8a\x13\x72\x6e\x0c\x84\xe7\x2b\xcb\x4e\xc0\x57\xab\x5c\xac\x20\x8c\x75\x26\x2b\xd4\x2b\xc0\x73\x6a\x73\x03\x61\x3d\xbb\x98\x2b\x9e\x87\xfe\xa9\xeb\x36\x58\xe4\x5b\x17\xf7\x4f\xd9\xad\xfd\x7e\xae\x0f\xeb\x88\x25\x62\x3c\x62\x5f\xf9\x90\x04\x11\x29\xe9\x88\x03\x3a\xa2\xc6\x6b\x26\x7f\xb6\xe7\xea\xd0\xe4\x89\x6a\x6f\x3b\x3c\x6b\xe4\xc8\x6e\x5d\x34\x3b\x99\x17\x0a\x5e\x94\x03\xce\xa0\x53\x5e\xf0\x54\xad\x4e\xcd\xc7\x37\xf8\xed\xae\x75\x7d\x8a\xf1\x02\x96\xa3\xcf\xbc\x6f\x4e\x4e\x53\xb7\xe7\xf0\x6f\x1b\xeb\xbd\x06\xe4\x54\x75\x1b\x90\x9f\x43\x55\xb7\x44\x4c\xfb\x6d\xc8\x69\x07\xb9\xd0\x8e\x3e\x0d\x35\x11\x5b\x54\x3f\x05\x26\xe9\xfa\x35\xb6\x45\x02\x64\xb9\x8a\xcb\x48\xc4\x66\xe7\xc2\x7d\x08\xf1\x50\x8e\xe3\xa8\x22\x24\xdb\x0e\xda\x0a\x51\x1b\x9c\xba\x9f\xcb\xe6\xd0\x8b\x1b\xdf\x0d\xff\x5d\x87\xbd\xc1\x6a\x7c\x6d\x83\x1e\xee\x4f\x1c\xa7\x7c\xe0\x39\xe5\xaa\xaf\x32\xda\xab\x3c\x59\x25\x92\x17\x2a\x67\xaf\x1d\x93\xc1\x1b\x97\x06\xaf\x5b\x43\x18\x28\x26\x2a\x43\x84\x62\xe2\xb3\x2a\x1e\x6d\x8b\xd4\xbc\xa5\x0b\xbe\xc9\x42\x8e\x68\xb0\x02\x07\x23\x93\xe2\x20\x38\xdd\x04\x6c\xa7\x89\xf6\x51\xbb\x33\x49\x1e\x07\x9c\x37\x95\x87\x49\x0e\x3a\xcf\xe6\xac\x2c\xe6\x4f\xe4\x3d\xc3\x8f\x87\x19\x9e\x08\x04\xf1\x81\x67\xbb\x99\xa4\x38\x99\x1c\x30\x6c\x91\xcc\x11\x5e\x53\xa9\xae\xcf\xdd\x69\x84\x06\x32\x5b\xd7\x1d\xf7\xd7\xe7\xd6\x51\xe4\xef\x83\x95\x0b\x16\x4c\x04\x52\xea\x62\x18\x18\x5e\xed\x9d\x58\x33\xa7\xb8\xa5\x9f\x3a\x4d\x55\x19\x33\x12\x6a\x04\x02\xc8\xc7\x78\x3a\x02\xc7\xf5\x78\xdc\x15\xd6\x36\x30\xbd\xb9\x93\x3f\xf0\x5d\xfb\x0e\x84\x67\x1d\x12\x78\xe7\xd6\xa7\x91\x7d\xb1\xa9\xa7\x91\x86\xb9\x77\xe2\x78\xd0\xdc\x3b\x2b\x38\x10\x6e\x0e\x33\x90\xc2\x7d\x34\x89\x53\xd8\x6f\xa1\x03\xa1\x85\x12\xbc\xe2\x98\xd5\xf7\x07\x57\x67\x59\x28\x76\x57\x95\xf1\x5c\xc8\x62\x0e\x35\x0e\xab\x0c\x2a\xb9\x82\xcf\x2b\x0a\x53\x2f\x43\xf0\x9f\x6f\x15\xda\xf7\x2d\xbb\xd6\x5f\xd8\x0d\xd9\xb4\x8c\xbc\x4a\x00\x42\xac\xef\xd9\xeb\x04\x10\x4f\x81\x2f\xd4\x4d\x5c\xc7\x74\x51\x87\x9e\x30\x7a\x41\x87\x2a\xa2\xbd\x57\x87\x7c\xeb\xc1\x55\x0d\xa5\x90\x79\x8f\x38\x01\x8c\xa8\xb5\xbf\x05\x19\x37\x2e\x2a\x7f\x03\x3b\xb2\x99\xbf\x94\xfd\x4d\xe4\xca\xc7\x7f\xa1\xb1\x2a\x2c\x78\xa7\xbe\xfe\xf4\x64\xe1\xa8\x8f\x63\x9a\xea\x30\x4f\x2b\xfc\x42\x04\x66\x68\x51\x58\x6c\xed\x75\xa4\xc3\x85\x94\x89\x68\xde\x91\x94\xa7\x57\x53\x82\x8b\x67\x98\x64\x27\xa9\x1d\x66\x76\x83\x1e\x83\xbd\x82\x02\xab\x36\x3c\x23\x74\x21\x01\xc9\xeb\xce\x9b\x31\x74\xe2\xcf\x7f\xfa\xcb\x38\xe9\x08\xf1\x86\xa6\x0f\x05\x6b\xb9\xc6\xbf\xcf\x13\x21\x63\x70\xc6\xf2\xb8\x99\x2f\x4e\x56\xac\xf3\x15\xf1\x6c\x96\xe1\xb3\xc4\x83\xb7\x1f\xb5\x7a\x8e\x8b\xe8\x33\x78\xf4\xbd\x90\x75\xdb\xb7\xe2\xef\xeb\x52\x25\xf4\x3c\xde\x4a\xbe\x49\xa2\xcf\xda\xc6\x6d\x22\xd2\x18\x9a\x48\xb5\xef\xf3\x4a\xc5\x22\xba\x1f\xaa\x13\x3c\x39\xdb\x85\x88\xee\xd9\x0f\xb7\x1f\xce\x31\xb9\x71\xa2\x67\xf2\x82\x17\xc9\x83\xb8\xcb\x53\xe7\x0e\x20\x90\x76\x9e\xda\x3d\x52\x65\x5f\x0f\x98\xbe\x2c\x55\xbb\x55\x1c\xc2\xe4\x18\x9b\xed\xd1\xa2\x8c\xee\x45\x71\x9c\x73\x19\xab\x0d\x76\xe3\x58\x97\xcb\x65\xf2\x69\x5c\xf0\xbc\x23\x53\x06\xda\x11\x7e\x45\x3d\xd7\xe7\x3f\x2b\xbc\xce\x8b\xaa\xee\x23\x84\x79\x53\x56\xfd\x8a\x72\x8b\x51\x89\x7c\x23\x80\xea\x94\x55\xb3\xcc\x40\x29\x18\x39\x0d\xc9\x58\xb5\xa6\xf8\x09\x45\xa9\xde\x3f\x06\xca\xfd\xc7\xa0\x55\xde\x85\x1d\x36\xca\x27\x38\xdd\xf0\x7b\xbc\x1f\xae\x72\xa1\xf5\x88\x69\x05\x2d\x9e\x49\x1b\x89\x60\xa3\xe5\x00\xf7\x02\x64\xc9\xe9\x96\x45\x2a\x73\x90\x79\xec\xd7\x5a\x3d\x82\x9d\x3e\x8c\x13\x86\x14\xde\xa5\x2c\x92\x94\xf1\x65\x41\x46\x7c\xc8\x0c\x61\x33\xc1\xe9\xf1\x4c\x82\x2b\x36\x82\xee\x03\x44\xc2\xb9\x5f\x5c\x27\x34\x5b\xf2\x28\x49\x93\x82\xf8\xea\x20\xc4\x8c\x9b\xfe\x9a\xf3\xc0\x8c\x65\xce\xb7\x3c\xf5\x17\x2b\x9e\x96\x3e\x34\xfa\x48\x8b\x1d\x7c\xa8\x89\x9e\xa3\x81\xe0\xe5\x36\xb8\x47\x01\x26\xa1\xf3\x01\xb9\xe3\x27\xa6\xf2\x8b\xda\x29\xfa\x4f\xe1\x7f\x2b\xf7\xf0\x5d\x5a\xc1\x01\x17\xf2\x43\x0e\xc7\xe6\x95\xdb\xa5\x4f\xf7\x7a\x46\x12\x5b\x74\x72\x45\x15\xf7\xc1\xc7\xee\x78\x04\x9f\x49\xc7\xa5\x7f\x6c\x93\xde\x35\x6b\x18\x30\x7a\xed\x4a\xe2\x67\x32\x67\x74\x11\xfa\xf7\x69\xbe\xb5\xc6\x5f\x29\x95\x1e\x6a\x91\x27\x4a\x8e\x44\xc9\x39\xe4\x81\x3e\xe4\x3a\x89\x0b\xc0\x19\xb6\xa6\xef\x9c\xcf\xdd\x31\xe4\x57\xb3\xc7\x11\x1c\x8c\x9a\x00\x82\x0c\x1a\xb1\x03\xa7\xae\xb3\x16\xd0\xc5\x40\xbc\x3d\x94\x81\x68\x2d\xab\xda\x37\x5d\x04\x01\x3b\x0b\xf7\x6d\x04\x16\xe1\x5a\x0b\x07\x19\xeb\x30\x6b\x73\xad\x2a\x67\xb8\x0b\xd9\xc6\xdd\x38\x06\x75\xdb\xf1\xdc\x70\x49\x96\x3f\xd2\xe2\x67\x32\xd0\xd8\x91\x11\xcf\x06\x34\xb8\x51\x6b\xb3\xe7\x55\x96\xe1\xc1\xf6\xbc\x43\x52\x4a\xec\x94\x9c\xef\xc2\xe4\x90\x80\x05\x89\xd4\x66\x91\x48\xcb\x49\x41\x46\x6e\xb8\x6a\x4c\x2c\x63\xaf\x73\x48\xd8\x2b\x03\xa6\x0c\xaa\x8d\xbd\x53\x73\x42\xf2\xe3\x50\x64\xed\xbb\x8e\x87\xf7\xbb\xe7\xcd\x7e\xd1\xe1\x69\xac\xf7\xc0\x1c\x20\xe9\x23\xdf\x6a\x48\xa0\x2e\x8c\x54\x5c\xa2\x61\xb7\xda\xfe\x51\xa0\x7e\x58\x36\xe8\x99\x84\x11\x42\xb6\x30\x2b\x48\x8d\x64\x85\x05\x98\xda\x54\xf1\x9e\xe9\xed\x95\x6e\x1f\x9c\x5f\xc7\x57\x93\xef\xf4\xd5\xa0\x13\xfa\xbf\x87\x7b\x66\x87\x11\xf8\x40\x5b\x74\x70\x4c\xa2\xc6\x48\x30\x21\x08\x1b\x73\x2e\xea\x11\xdb\xf0\x44\xd2\x36\xc0\x74\x9c\xb1\x58\x94\xab\x55\xa7\x89\xf4\xb7\xef\x6b\xa9\xee\x93\xff\xf1\xb6\xf0\x9d\x5c\x85\xcf\x61\x2d\x9e\xda\x9a\xd0\x7c\x6d\xee\x7d\x9f\xc7\x40\xfc\x2b\x5a\xe3\x5b\x5d\x62\x8d\x45\xf4\x3c\xd6\xf8\x69\x1f\x6b\xbc\xc5\x76\x41\x80\x1f\x5d\xa7\x2d\xfe\xe6\x1f\x66\xfa\xcf\x63\xa6\xef\xb5\x28\x90\xd4\x67\x9e\x54\x15\xf4\x1d\x2d\x7c\x22\xef\xa5\xa3\x82\x86\x56\x21\xb7\x9c\x91\xee\xb1\x66\x0b\x1e\xbd\x00\x11\x26\x9c\x8e\x87\xdb\x03\xf7\x80\x5f\x6e\xd4\x46\x30\xa8\x4a\x63\x22\x27\x46\x51\x8c\x23\x40\xab\x9a\x0e\x7a\xc4\x08\xe1\x51\xe0\x38\x45\xe4\x4a\xec\x95\xea\xd7\x52\x3c\x32\x73\x5a\x8d\x42\xf8\x5e\x30\x3d\x90\xe1\xef\x8d\xd1\x0e\x2b\x58\x7f\x47\xd8\x91\x8b\x15\xcf\x63\x88\x30\xa1\x2d\x99\xf2\xe8\xde\xfc\x1b\xda\x47\x35\x12\xc4\xd0\x72\x05\x20\xec\xd5\x97\x96\xc8\x08\xa9\x10\x2d\xa7\xbb\x6b\x1f\x7e\xae\x19\x8f\x72\xa5\xd1\x68\xe4\x12\x63\x43\x7c\x35\x28\xb0\x0f\x49\x5c\xf2\x14\x6b\xec\xb4\xb4\x0f\x85\xaf\xd5\x01\x47\x41\x0e\xbb\x26\x9a\x8d\xa6\x03\x19\xaa\x60\x18\xc7\x33\xf9\xce\x39\x4c\x4e\xd8\x9d\x16\x84\x32\xd3\x36\x0b\xc0\xce\x96\xbe\x98\xfa\xd0\xc0\x04\x76\xea\x10\x3b\x06\xc0\x82\xac\x83\x81\xd0\xdd\x23\xb1\x87\x4e\xf5\x90\x49\x19\x4c\x0b\x3d\x0d\x12\xe9\xfb\x61\xc1\x7b\x42\x2e\x78\xbc\x0d\xb9\x18\x13\xc9\xc0\x4b\xc7\x78\xbc\x49\xa4\xd9\x04\x36\x59\xab\x3b\x69\x6c\xde\x06\x84\x1c\x43\x4e\xb3\x34\xad\x09\x41\xcd\xa4\x30\xca\x25\xcf\x93\x74\x0b\xf7\x89\x2c\x17\x47\x41\x3d\xc1\xfc\x50\xc4\x13\x64\xa0\x20\x12\x99\x52\x8b\x65\x99\xe2\xad\x03\xee\xe5\xae\x03\x24\x91\xee\xa6\x23\xa3\x70\x14\x94\x49\x28\xa8\x18\xf3\x73\x3e\x47\xf4\x48\xc3\x5b\x39\xcc\xe3\xe6\xb9\x42\x73\x00\xb9\xaf\xd5\xa3\x0d\x75\x7b\xe4\x1e\xcb\xdc\x75\xba\x3e\x9b\x97\x65\xb7\x1e\x6a\x6f\x80\x56\x4e\x05\x84\x7f\xce\xb5\x46\xcf\x44\xec\x64\x53\x22\xa1\x3b\x94\xe2\xda\x5b\xae\x4b\x8d\x11\x73\x66\x2e\xe1\xfc\xb2\x86\x8e\xaa\xe1\x9a\xb9\xde\x25\x5a\x49\x36\x2b\xbf\xfc\xf2\x6b\xc1\xbe\x84\x10\x42\xba\x8f\xa0\x7f\x0c\xd8\x42\xb1\x74\x10\xd9\xae\x02\x81\x54\xa2\x8d\x19\x61\x6d\x10\x55\x1b\xaf\x0f\x20\x4f\x1e\xad\x99\x2e\x17\x88\x60\xe4\xe4\x62\xe1\xd2\xb1\x8e\x9f\x2b\x00\x23\xe2\xc9\x6e\x5b\xff\xff\x88\x43\x01\x93\xbe\xcc\x64\xa6\x90\x18\x1f\xa0\x9f\x0b\xc1\x36\x3c\xbf\x87\x1c\xbe\x68\x9e\x87\x44\x00\xaf\x13\x31\xae\xba\x17\xde\x54\xda\x43\x0e\x1d\x24\xbc\x66\x79\x29\xa5\x4d\x4a\xc6\x8c\x62\xea\x6d\xfd\xa3\x99\x5c\x94\xe1\xdd\xb3\xe2\x2c\xf0\x4b\x0b\x1c\x06\x20\x6c\x15\x30\x95\x50\xa3\xb8\xf6\xed\x1a\xb3\x1e\x5e\x83\x99\x7c\x66\xb7\xc1\x3e\x83\xdf\x15\xe9\x60\xd6\x98\x17\xc4\x2b\x40\x77\xc3\xbc\xd9\x30\x1d\xb8\xec\x41\xc9\xb9\x82\xe4\xd9\x23\xf6\x43\xf2\x20\x46\xec\x26\xe3\xf9\xfd\x88\xbd\x43\xf7\xdf\x1f\xd4\xa2\xcd\x86\xd7\x20\x94\x38\xd8\x8e\xf7\x34\x33\xd6\x2e\x9a\x97\x76\xed\xff\xe7\x06\x31\x00\xeb\xf2\x7d\xff\xf7\x44\xe4\x75\x70\x7d\xfc\x4f\xb7\x44\xec\x71\x53\xff\x03\xbc\xf6\x3f\xf2\x56\xbc\x9b\xe6\xe3\x9f\xc2\xff\x5a\xf9\x65\x35\x2e\xd0\x3d\x49\xca\xb5\xa2\xd2\x7e\x5b\x81\xcd\x49\x5c\x3f\x94\x9b\xf1\xcd\xfd\xb6\x02\x85\x8f\xc7\x2e\xb4\x7d\x00\xe8\x9e\x3e\xb5\xe3\x75\x9a\x2a\x5d\xe6\xbb\x37\xff\x75\xb5\xd5\xb6\xf6\x16\xa2\x57\x58\x6c\x9b\x85\x00\xd6\x82\xbe\xf0\x13\x7c\x6d\xfe\x57\xb5\x98\x03\xd6\xea\xb0\x1d\xde\x56\x9c\xa3\x8f\x56\x51\xa5\xa9\xfe\x84\xbc\xc9\x04\xf0\x5d\x79\x55\xd4\x3b\x04\x6a\x2b\xcc\x99\x46\x66\xd2\x32\xee\x63\xc4\x6c\x9e\x0b\xa0\x06\xcf\x05\x24\x7a\x64\xc4\x70\x98\x6e\x03\x8d\x28\xb8\xf9\x78\x50\x4c\x18\xe5\x06\xc1\xaa\x74\xdf\x5a\x08\x21\xdd\x68\x0f\x51\x25\x80\x06\xbb\x36\xfa\x84\x76\x7b\x14\x36\xf1\x42\x47\x52\xda\xc6\x77\xc1\x5d\x10\x54\xee\x95\x28\x02\x69\x5e\x53\x2d\x2a\x5b\xb3\xe2\xa1\xfa\x4d\x21\xfe\x5b\x7d\xd0\x35\x72\xae\x8a\x01\xa5\x97\x4f\xef\x39\xec\xe5\x57\xbc\x58\xe3\x85\x76\xa3\x0a\x81\x32\x13\x59\x82\x70\xbd\xa0\xd5\x79\x91\xaa\x05\x64\x58\x2c\x76\x30\x48\x46\xb4\xb5\x7b\x0d\x5d\x73\xc2\xfa\x48\x06\x23\x4d\x20\xd2\x36\x17\x1a\x08\x57\x9a\x5e\xaa\xbe\xf8\xe4\x61\x97\xee\x66\x73\x8d\xd0\x7f\xd7\xb8\x6c\x37\x53\x72\x98\x6d\x0d\x60\xd5\xb3\x27\x44\xd0\x34\x12\x9c\x10\x55\x35\xb9\x81\x91\xad\xb6\xd6\x5f\x9b\xc8\x7f\x26\x27\xf8\x24\x38\x04\xb8\xcf\xb1\xe5\xf0\xa0\x94\xb3\xd9\xed\x3f\x0c\x5f\x65\x93\x10\x81\x48\x16\x82\x91\xb7\x65\xc2\x65\x60\x04\x51\x8d\xb2\x48\x72\xc1\x24\xa0\x10\x66\x52\x97\x8b\x23\x4f\x4c\x62\x6e\x71\x0f\x40\xa6\xa3\x45\xc6\xe1\x2a\x03\x7c\x45\x47\x2d\xc7\x30\x5a\x26\x7d\xae\x1c\x4b\x1f\xc8\x53\x12\xfe\x10\x2b\x89\x91\xf1\xae\xef\xae\x1c\x73\x59\x83\x5b\xb4\x85\x2b\xe1\x61\xb7\x4b\x5e\x40\x36\x2f\x88\xc0\xbc\x46\x14\xc5\xaf\x7d\x80\x87\xde\xd0\xbe\x47\x37\xf8\xd3\x66\xf2\x5f\xed\xd9\xd0\x0d\x2a\x1e\xb0\xd2\xcd\xc8\x98\x23\xaa\x13\xec\x5c\x69\x9b\xbd\x42\x06\x4a\x60\x77\xa3\x1a\x4b\xbe\xad\x54\x6e\x71\x2d\x61\x4a\x17\x45\xe1\xb2\xf0\xf4\x21\xd1\x01\xd9\x3b\xd4\x76\x23\x04\x3b\xc9\xc5\xf2\xe4\x63\x2e\x96\x73\x3b\xd3\x63\xe8\xd0\xd8\xf4\xa8\x49\xf9\xde\x73\x71\xe8\x4c\xc9\x76\xf2\xc3\x3d\xd4\xa8\xb5\x2e\x61\x39\x41\x9f\x92\x25\xf3\xd9\x6d\x4d\x7f\x80\x01\x42\xc4\x75\x2e\xfa\x46\xcb\x3e\xfb\x31\xd7\x85\x04\xeb\x01\xb5\xea\x48\x82\xfa\x3f\xff\x78\xab\x8c\x59\x9f\xe3\xed\xb6\x0a\x99\xb1\xc2\x9e\x4b\x77\xe0\x75\xe3\x42\x3f\x2f\x3a\x1d\x26\x50\x67\xfc\x51\x12\x8f\xcd\x20\xd3\x53\xbf\x63\xad\x06\x20\x0a\x8e\xb5\x06\x06\xce\xef\x32\x69\x2d\x7d\x89\xcb\xa3\x39\x62\xfe\x06\xcd\xd3\x34\xcc\xa8\xe1\x3d\x6d\x33\xe9\xe3\x52\x8d\xd6\x9a\xa6\xd6\x84\x57\xd1\x37\x5c\xc2\x63\x5d\xf0\x42\x8c\x2c\xe9\x0a\xd1\x15\x92\x3f\xec\x68\xc1\x21\xb5\xb5\xcb\xa1\xb6\x6f\x37\x3f\xd7\x25\xf2\x37\x16\x17\xbd\xc7\xf3\x8c\xd5\xce\xef\x45\x03\xce\xbc\xb7\xad\xed\x9e\x8e\x80\x52\x02\x36\xb3\x95\xb2\x11\xcf\x73\x8b\xf2\xa7\x5a\x99\xa5\x3b\x0f\x6f\x25\x1d\xed\x5c\x8b\xe8\x3e\x53\x89\x1c\x2c\x8b\x2a\x14\x17\xb0\xd8\x0b\xe6\x4b\x73\xb7\xc3\x5e\x87\x63\x45\x9f\xc4\x8e\x68\x80\x57\x58\x68\xa8\x27\x63\xe3\xcc\x65\xca\xee\x5e\x76\xcf\x6d\xbf\x10\xfe\x6c\x78\x01\x5b\x6c\x8b\x7f\xa8\x76\xaa\xf0\x16\xc3\x4e\x85\x09\x94\x37\xa2\xbf\x7a\x0e\x36\x67\x15\x0a\xc3\xd6\x21\x05\x13\xe4\x3f\x2c\x43\xff\xb0\x0c\xfd\x37\xb7\x0c\x7d\x4e\xb3\x10\x60\x63\x5e\xd2\x26\xb4\xc3\x41\x7e\xc0\x76\x74\xb5\x0e\x8e\x71\x6c\xd5\x8e\x47\x41\xd2\xef\x20\xd2\xb1\x09\xf4\xb7\x44\x18\x66\x7c\x16\x3c\xba\x17\xb2\xd3\x47\x6f\xe9\x8b\x3a\xf3\xaf\x3e\x2f\x82\xa5\x8d\x7d\x29\xf8\x7a\x37\x94\xc5\x43\x9d\x88\x34\xb8\x8d\x10\xc4\xec\x13\xd0\x3d\x4d\xc7\x8f\x00\x34\xa6\x72\x47\x6c\xad\x29\x0a\x0f\x9d\x91\x48\x93\x84\x60\xa9\x1a\x15\x74\x5f\x4c\x9c\xad\x78\x9e\x29\x95\xb6\x42\xe3\x9e\x75\x00\x1b\x81\x32\x7d\x07\x6f\x8a\xca\xa8\x0e\x01\x63\x76\x14\x7d\xd0\x85\x0f\xd1\xc0\x78\x0c\xc8\xc4\x01\xab\x29\x2e\x21\x96\xd2\x0f\x47\x90\x5e\x91\x3b\x83\x0b\x61\xc4\x16\x22\xe2\x90\xf8\xd5\x82\xf7\x22\xee\xa2\x4f\x42\x52\xa4\x46\x38\x88\x6e\xd6\xd3\xe1\xb5\x84\x72\xe7\x49\x5b\xda\x8d\xa1\x9b\xab\xa6\x21\x58\x68\x39\xb6\xdc\x22\x49\x2c\xed\xe2\xbe\x84\xc6\x96\x63\x7a\x0e\xd9\x17\xfb\x9d\x70\xad\x72\x67\x4a\x05\x9d\x42\x39\xfd\x05\xe9\x0f\x10\x8e\xb3\xe9\x89\xdc\x99\xc9\x89\xcb\x73\xeb\xb1\x5f\x0e\xb9\x87\xee\x52\xc4\x2c\x36\xa6\x06\xb9\x1c\xfd\xcd\x65\xc4\x74\x19\xad\x81\xad\xb2\x2a\xa7\x42\xb9\xd5\xdc\xb1\xa3\x99\x34\x17\x22\x30\xb5\x6c\x38\xc4\xc5\x3f\x1a\x65\x55\x27\x7f\x13\x0e\x9e\x45\xe4\x5d\x21\x22\x0b\x2f\x4e\x4a\xb6\xa2\xd7\x2c\x71\x28\x02\x2c\x3c\xa6\xa4\xcc\x62\x5e\x88\xf1\xcc\xa3\x6d\x12\xb4\x74\x5a\x94\x07\xa9\xcc\x3a\xec\x58\x88\x63\xac\x49\xda\x34\x59\x8a\x68\x1b\x35\xb2\x10\xed\xa6\x89\xf8\xc7\xb5\xed\xb7\x75\x6d\x43\x96\x5d\x8c\x19\x1c\x32\xb4\xd4\xd4\x6b\xff\xf9\x61\x83\x2b\x58\xd0\x12\x3d\x60\x9c\x3f\xe3\xb5\xb3\x45\x07\x1e\xa6\xcf\xf7\xbe\x07\xed\x3e\xce\xfc\xc5\xd6\x1f\xd6\x01\x05\x42\x43\x2d\x0c\x9d\x8b\x45\xb8\x74\x8c\x42\xdb\xdb\xad\xdf\xcd\x32\xf3\x9b\x02\x27\xf5\xb9\xb8\x1a\x8d\xdb\xc1\x95\x2e\xac\xa6\x2d\x05\x9e\x77\x3b\x34\xee\x80\xd5\x9d\x17\xaf\xb4\x1b\xf5\xaa\x04\xb4\xd8\xff\x89\xdc\x1e\x14\x80\xb9\xcd\xc4\xbc\xcc\xd3\x83\xe0\xc6\x77\xd7\xe7\xc7\x4e\xdb\x00\xcd\xb9\x33\xef\x51\x51\x4b\x0d\x6d\x73\x12\x8b\x98\xe0\xa0\x91\x4a\xd9\xa2\x5c\x2e\x21\x7f\x09\x01\x43\xad\x30\x82\xcc\xf4\xa5\x2e\xec\x79\x82\x4c\x33\x5c\x17\x33\xa9\xa4\x60\xb3\x2f\x8e\x67\x5f\x98\xa3\x2c\xe7\x51\x21\x72\x24\x19\x48\xb9\x2e\x98\x16\x2b\x50\xb5\xa8\xd2\xbb\xeb\x73\x88\x4a\x2c\xd6\x58\x9c\xbb\xb2\x62\xbc\x27\x72\x3e\x43\xae\x1f\x20\xa8\x96\x41\xc6\x2d\x68\xfb\x6b\xae\x59\x22\x67\xf2\xa3\x29\xe2\x78\xa5\xd4\x2a\x15\x63\x3b\x21\xe3\x77\x64\x7a\xfc\xf8\x06\x5b\x00\x9f\x87\xb0\x7e\x73\x20\x72\xa9\x64\x12\xf1\x14\x02\x72\x66\x12\xb4\xe6\x91\xe9\x0c\x98\x46\x67\x5f\x8c\x67\x5f\x30\x70\x9f\x16\x8c\x47\x91\xc8\x0a\x11\x63\x6a\xd3\xa9\x64\x19\xe0\x17\x23\x31\x62\x85\xe0\x1b\x6d\x29\x9d\x59\x66\xee\x98\x70\x35\x64\x89\x24\xa4\xd3\x22\x91\x3c\xdf\x22\x98\x09\x93\x95\x53\xf0\xc7\x76\x26\xc5\x27\xa0\xff\x4c\x80\x01\xb4\xd4\x8e\x96\x86\x12\x13\x98\x2e\x4f\xe4\x76\xcc\x7e\x40\x86\x06\xa4\x40\xbd\xbb\x3e\xb7\xf4\x46\x14\x03\x3a\x93\x3a\x5a\x8b\x8d\x60\x1f\xd7\x45\x91\x7d\x1c\xe1\x7f\xf5\x47\xf0\x38\x4a\xc5\xf0\xe9\x88\x99\x29\x32\x8a\xaa\xc5\xcb\xa7\x5b\xc8\x21\x5b\x66\x94\x70\x7e\x26\x81\x8b\x3d\x0f\xd1\xbd\x66\xb4\xa1\xc6\xe0\x0a\x5e\xc1\x85\x1b\x29\x0e\xc9\x1d\x4f\xcc\xe0\xfc\x2f\x36\x5d\xfa\x2a\xcd\x00\xda\xdc\x62\xae\x55\xa0\x90\x68\x08\xd9\x1a\x9b\x0f\x26\x92\xfd\x70\x7b\x7b\xc5\xbe\x3f\xbb\xb5\xca\xce\xdd\xf5\x39\xae\x0b\xa0\x53\x61\x9c\xfd\xb9\x3e\xc5\xb7\xdb\x4c\xfc\xe5\xcf\x7f\x99\x49\x66\x73\x94\x4b\x3b\xd2\xb8\xa3\x47\x48\x09\x0b\x78\x27\x70\xcc\x02\x95\x33\xd4\x87\x29\x77\xa8\xf9\x39\x6a\xe7\x8f\x64\x2d\x80\x33\x2a\x55\xea\xbe\xcc\x9c\x99\x3b\xd4\xc3\x4c\x85\x77\xd7\xe7\x50\x3a\xd0\x29\x15\x6b\xc8\x9f\x26\x9c\xf5\x05\x26\x9e\xdb\xc6\x98\x7f\x3f\xa8\x24\x66\x5c\x6e\xcd\xb7\x58\x34\x2c\xcb\x5c\x2c\x55\x2e\x46\xf6\x4d\x53\x00\x2f\x92\x45\x92\x26\xc5\x16\xa4\x94\xcd\x6b\x9f\x59\x8e\x7c\x53\x80\xb9\xcd\x10\xc0\xdb\x2c\x30\x4c\x63\xfb\xfa\x4e\x87\x08\x70\x98\x34\x97\x1b\x11\x2f\x3a\xe6\xdb\x45\x2e\xf8\xbd\x59\xdd\x54\xc2\xf8\x0d\xe5\x8c\x15\x27\x78\xc6\x2c\x4b\x19\xe1\xd2\x30\x6d\xa0\xd5\x4f\x37\xa7\x74\xcb\xf8\x03\x4f\x30\xa7\xac\x75\x97\x2f\x97\x49\x94\xf0\x94\x24\xc7\xa2\x5c\x42\xda\x18\xae\x29\x65\x11\x82\x0f\x4d\x21\x70\xcb\xb0\x09\xfb\x71\x41\x2d\xc4\x2a\x41\xc0\xf1\x63\x52\xac\x31\xae\x60\x8c\xf3\xcc\xb3\x44\x8f\x23\xb5\x81\xfd\x76\x03\x4b\x49\xd3\xa5\x17\x70\xe0\xb5\x75\xce\x5e\x5b\xa8\xdd\x26\x2b\xb6\xb4\xf6\xde\xb0\x4d\xb2\x5a\x17\x90\xc8\x05\x6a\x07\x48\x44\xb2\xc9\x52\xb8\xf4\x91\x87\xd1\xe2\x7d\xb5\xd8\x70\x59\x24\x51\x97\x4f\xa9\x35\x25\x78\x3f\x8c\xe7\x62\x5b\xec\xb6\xe3\x7d\x20\x9e\x7d\x8e\x14\xfa\x81\x44\x66\x75\x81\x4c\x32\x10\xd2\xcb\x04\x04\xfe\xf5\x94\xb3\xfb\xae\x50\x1f\x27\x72\xfb\xd1\x93\x90\x72\x19\xe4\xbe\xda\x51\xbb\xdd\xff\x3c\x55\x34\x6b\x8c\xcf\x24\xa0\x3a\x8d\xc0\xa0\x64\xb4\x3b\xcf\x18\x77\xa4\x98\x99\xbd\xb2\x8b\x26\x4d\x16\x50\x37\xc9\x0a\xcd\x74\x99\x41\x3c\x41\xa1\x58\xc6\xa3\xfb\xe3\x52\x9a\xff\x18\x61\x88\xdb\x5d\x87\xe4\x44\x33\xa9\x96\xac\x2c\x70\xe3\xd8\x25\x0c\x46\x91\xc0\x14\xe0\x2f\x68\x1b\x51\xac\x55\xec\xe2\xc2\x4c\x99\x30\x7e\xa6\x45\x67\x44\x2f\xfd\xf6\x84\x5d\x99\x0a\xcd\x22\xa6\xba\xb9\xeb\x7e\x22\xd9\xe9\xbf\xfe\x2b\xbc\x6f\x06\xf7\xbd\x52\x6c\xa9\x14\xfb\x96\x8d\xc7\xe3\x7f\xc7\xdf\x4c\xa1\x5c\x6e\xe9\x2f\x2e\xb7\x63\x53\xdc\xfb\x5c\x6d\x5e\x2f\x95\x7a\x43\xbf\x43\xd2\x66\xf3\x8f\x64\xc9\x5e\x9b\x97\xee\xa0\xaa\x5b\xf5\x7a\x56\x7e\xf9\xe5\x57\xbf\x37\xaf\xbe\x61\xff\x89\xef\x04\xaf\xff\x3d\x6c\xea\x57\x7b\x9a\xfa\x07\xfe\xc0\xfb\xb4\x95\x7d\x0b\x67\x8d\x29\x60\x67\x1b\x13\xfd\xfa\xbd\x52\x63\xb8\xfd\x87\xad\xc3\x62\xcd\x1b\xd8\x8a\xe0\xad\x7f\x0f\x9a\xcd\x6c\xbb\xbf\xde\xd3\x6e\x44\xd5\xbb\x96\x63\xf1\xef\x95\x7a\x3d\x1e\x1b\xb9\x45\xe3\x8a\xad\x7e\xfd\xa6\x3a\xd0\xd0\x81\x66\xfb\xcd\xe3\x29\x36\xff\xdd\xd9\xcd\xe9\xf5\xf4\xea\xf6\xf2\xfa\xcd\x89\xed\x81\x9f\x81\xe0\x7b\x66\x53\x6b\xbb\x86\xff\xef\x3d\x0d\xff\x5e\xd9\x36\x43\xa3\x4f\xbe\x65\x38\x9b\xd9\x62\xfc\x5e\xa9\xff\x1c\x8f\xc7\x7f\xa7\xc7\x5c\x6e\x47\xe6\x60\x32\xef\x64\x28\xca\x3f\xf0\x5c\xaf\x79\x6a\xfa\x14\xb4\xc1\x75\xa2\xb5\x44\x5b\x5c\xb2\xac\x15\x76\x27\x37\xbe\x38\xa8\x0c\x26\x16\xde\xfa\xe7\x6f\x99\x4c\x52\x3f\x7d\x41\x1d\x30\x4f\xb7\x40\x2d\x11\xdd\xbb\xed\xe2\x72\x84\x2e\xb6\x2c\xab\x6f\x5c\x8c\x3b\xdb\xda\x0c\x05\x46\xdc\xcf\xe4\xab\x16\x89\x7e\x6c\x54\xbb\x31\x3c\x30\x07\xd4\x2b\x9b\x3d\xde\x1e\x0b\x2e\xb3\x16\x8e\x2c\x38\xa2\x71\xb7\x4a\x8a\x51\x6b\xd3\x0f\xdd\x81\x17\x90\x55\x81\xda\xf9\xea\xf8\x15\x05\x0a\xf9\x2a\xaa\x44\xf2\xb3\x2f\x96\x4a\x8d\x17\x3c\x87\xd6\x7d\x3a\xde\x8e\xff\x36\xfb\x02\xfb\x83\xca\x07\x2a\x46\x50\xf8\xec\x0b\x78\x0a\xcb\x61\x26\xff\x70\x73\x79\x31\x93\xdf\x7e\xfb\xed\xb7\x38\x5a\xe6\xef\x16\xdf\x8b\x39\xae\x40\xdc\xa2\x9e\x52\x6a\x9b\x52\x52\xac\xca\x94\xe7\x33\xd9\xee\xae\x89\x85\x17\x9a\x23\xef\xbc\xa1\x75\x36\xb2\xd9\x2d\x20\x49\x99\x95\x71\x68\x9b\xfc\xf8\xff\x9b\x26\x7f\x24\x15\xd1\x09\xf9\x70\x08\xc6\x76\x31\x9f\xd8\xa5\x6a\x06\xdb\xac\x5f\xaf\x67\x2d\x93\x54\xd0\xc6\xb5\x8b\xfb\x4a\xe4\x5a\x49\xbf\x66\xe8\x42\x00\xdc\x66\xe0\x00\x60\xdf\xb2\xb7\xff\x5e\x7b\x6a\xe6\xc1\x3e\xfc\xaa\x22\x09\x18\xf3\x45\xcd\xbe\x80\x56\xcf\xbe\x38\x61\xb3\x2f\xda\xd6\x4d\xb5\x61\x63\x6c\xca\xec\x8b\x91\x2f\x00\x9a\x71\xc1\x37\x58\x48\xf9\xe5\x97\x5f\x47\xd8\x04\x0c\x5d\x0b\xde\x34\x4d\xea\x7e\x31\x68\xe2\xb4\xe6\x3a\xb3\x03\x61\x43\x20\x1f\x45\x9a\x1e\xdd\x4b\xf5\x88\x79\xc6\xc1\x4f\x44\x51\xca\x0c\x97\x47\x75\x72\x29\x37\x59\x6d\xc6\x6d\xd0\xa6\xab\xc6\xa5\xb7\x83\x09\x9d\xc9\x8f\xb0\x74\xec\x8c\x12\x1d\x11\xd0\x81\xba\x9a\xe0\x52\x43\x2b\xc1\xc6\x58\xd0\x42\x98\x49\x28\xc6\xcd\x39\x7b\x0d\xc0\x2f\xea\x4a\x43\xb3\xb6\x97\xa7\xbf\xfc\xf9\x2f\x6f\x4e\x0e\x99\xa7\x6a\x71\x95\xa9\x82\xfe\x60\x19\x6f\xc7\x5f\xbd\xfd\x4a\xcf\xbe\xa0\x51\x6f\xbf\x62\x9f\x27\xba\xf8\xa9\xa6\x81\x3d\x21\xd9\xb9\x51\x1c\x5e\xca\x79\x61\x9b\x8a\xcd\xec\xeb\xb4\xb8\xae\xba\x15\xd4\xd2\x9a\x75\xe0\x72\x66\xd3\xc0\x9b\x76\x0f\x52\xef\xdc\x78\xe1\x65\x8b\x3d\xe6\x3c\xcb\x44\x6e\x6d\xe5\x0d\x77\x06\xe4\x54\x87\x5a\xac\xe8\x6f\x13\x66\x66\xd9\xd4\x8a\x86\xd7\x60\xe8\xc6\xed\x33\x77\x51\xa6\x69\xe7\xcc\xed\x4f\x96\x7c\x71\x77\x7e\x3e\xff\x69\x72\x7e\x77\x66\xbb\xdf\x9a\x7c\x38\x78\xad\x73\x4c\x5c\x4b\x68\x4c\x10\x57\x55\x00\x96\xaa\xdc\x88\xdc\x32\x85\xf9\x5e\x23\x8e\xa4\x4c\xd3\x6a\x5a\xec\x99\xfc\x48\xe5\x80\x18\x28\x65\x62\xd5\x94\x9d\x03\x57\xad\x1f\x5e\xfb\x68\x0a\xff\x88\xdf\x1e\x31\xdf\x89\x13\x76\xe1\x6a\xed\x18\x57\x22\x9c\x38\x60\x3b\x60\xbc\x6d\xd7\x76\x78\xee\xc4\xff\x4f\xdb\x1e\x77\x12\x92\x7e\x19\xc9\x8b\xf9\xfa\x9f\x65\x77\xe0\xd8\x7d\xac\x42\xc1\x9d\xb9\x34\x46\xaf\x21\x94\x3b\xc2\x74\xed\xba\x20\xce\x62\x1c\xb3\x99\x44\x41\x6c\xda\x54\xa8\xee\x36\xb1\x29\x79\x90\x52\x2e\x57\x25\x5f\x09\x3d\x62\xb6\xf2\x99\xb4\xb7\x53\x7b\xd7\x71\xc0\x1c\x60\x64\xad\x2d\xa1\x5a\x08\x70\x22\x67\x92\xfa\x04\x27\x2c\x15\x8f\xe1\xa8\x7f\xb8\x71\xdd\xa1\xb8\x6f\x2c\x88\x32\xce\xcb\x99\xc4\xc9\x45\xdb\x98\x05\x1b\x82\xda\xd1\x3c\x9b\x38\xc0\x83\xf1\x5e\x17\xb3\x42\xad\x00\xf6\x38\x93\x8e\x05\x0b\xc1\x19\xf6\xbe\xe6\x73\x83\x62\x93\xf6\xcb\x13\x3b\x19\x76\x4f\x50\xdb\xda\x57\xfd\xc1\x67\x80\xd9\x70\xf3\xd6\xbb\xfc\xee\x65\xeb\xc5\x58\x4f\x40\x0e\x0f\x04\x47\x17\x35\x22\x50\x9f\xb5\xb7\xc6\xf6\x0b\xdf\xe9\x8c\x1e\x55\xe5\x22\x1d\xd0\x24\x7c\x7f\x67\xa3\x50\x24\xef\x6e\x54\x0f\x8b\xf4\x75\x6d\x6b\x99\x65\xba\xab\xda\x85\x52\x1d\xf3\xf2\x8c\x98\xdd\x4a\xa3\xe8\x83\x7d\x83\x51\x46\xc5\x53\xd6\x4b\x0f\x3e\xa0\xfa\x10\x59\xe9\xb3\xab\x41\x69\xa2\x9f\xd4\x1c\xaf\x3f\xf5\x6e\x91\xd3\x10\xe8\xb0\x1b\x24\x61\xe9\x9c\xab\x08\xd8\x0e\x31\x69\xaf\x29\x18\xde\x22\x12\x14\x2f\x66\xf3\x8c\x60\x13\x99\xf5\x3f\x72\x8b\x68\xe4\x67\x6e\x04\x8d\x8c\xca\x5c\x1b\x71\x49\xf2\x8e\xa4\xb6\xca\x19\x9f\x49\xcb\x06\x63\xc5\xf1\xc4\xda\x83\x73\xf7\x2b\x72\x2c\x65\x98\xb2\x0e\x9c\x42\x05\x58\xc9\x49\x1a\xce\xe4\x03\xcf\x13\x2e\x01\xd3\xbc\xd0\x90\x6f\x18\xae\x74\x5b\x46\x0f\x1c\x01\x87\x0e\x8d\xcc\x7b\x64\x5e\x4d\x0d\xa8\x9c\xf3\xff\x64\xfe\xf7\xf7\x7f\xfa\xbf\x01\x00\x00\xff\xff\x73\x28\x27\x08\xb2\xa7\x06\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\xe3\xb8\xb5\x2f\x0c\xff\xbf\x3f\x05\xaa\xf7\x5b\xd5\x33\x89\xed\x9e\x5c\xce\x7e\x53\xde\x75\xea\x79\x34\xb6\xba\x47\x67\xdc\xb6\xe3\xcb\xf4\x9e\x3a\xda\xa5\x81\x48\x48\x42\x4c\x01\x1a\x00\xb4\x5b\xd9\x95\xef\xfe\x14\x16\x00\x12\xa4\x48\x8a\xba\x5a\x72\x23\xa9\x4a\xdc\x22\x89\xcb\x02\xb0\xb0\xae\xbf\xf5\x3f\xff\x86\xd0\x3b\xf9\x82\xc7\x63\x22\xde\x9d\xa3\x77\x7f\x3e\xfb\xe1\xdd\x89\xfe\x8d\xb2\x11\x7f\x77\x8e\xf4\x73\x84\xde\x29\xaa\x12\xa2\x9f\x8f\x92\xb9\x22\x34\x4e\x3e\x48\x22\x9e\x69\x44\x3e\xe0\x78\x4a\xd9\xd9\x4c\x70\xc5\xe1\x43\x84\xde\x3d\x13\x21\x29\x67\xfa\x75\xfb\x27\x62\x5c\x21\x49\xd4\xbb\x7f\x43\xe8\x5f\xd0\xbc\x8c\x26\x64\x4a\xe4\xbb\x73\xf4\x7f\xcd\x47\x13\xa5\x66\xae\x01\xfd\xb7\xd4\xef\xfe\x37\xbc\x1b\x71\x26\xd3\xc2\xcb\x78\x36\x4b\x68\x84\x15\xe5\xec\xc3\x3f\x24\x67\xf9\xbb\x33\xc1\xe3\x34\x6a\xf9\x2e\x56\x13\x99\xcf\xf1\x03\x9e\xd1\x0f\xcf\x7f\xfa\x80\x23\x45\x9f\xc9\x20\xc1\x29\x8b\x26\x83\x59\x82\x99\xfc\xc0\xc5\xf8\xc3\xff\xd0\xf8\x8c\x8b\xf1\xbf\xe0\x8f\x99\xe0\xff\x20\x91\x32\xff\x88\xf9\x14\x53\x66\xfe\x66\x78\x4a\xfe\x95\x35\x8a\xd0\xbb\x31\x51\xde\x3f\xf5\xd4\xd3\xe9\x14\x8b\xb9\x26\xcf\x47\xa2\xa2\x09\x52\x13\x82\x4c\xa7\xc8\xd1\x8b\x8f\x10\x46\xe7\x82\x8c\xce\x7f\x13\x64\x34\x70\x54\x3f\x33\xd4\xbe\x82\xa1\xdd\x26\x98\xfd\x76\x66\x69\x06\x2d\xf3\x19\x11\x30\xd1\x5e\xac\x5b\xff\x44\x54\x07\x9a\xcd\xdf\xff\xb3\xff\xba\x20\x72\xc6\x99\x24\xb2\x30\x3e\x84\xde\xfd\xf9\x87\x1f\x4a\x3f\x21\xf4\x2e\x26\x32\x12\x74\xa6\xec\xca\x76\x90\x4c\xa3\x88\x48\x39\x4a\x13\xe4\x5a\xf2\x47\x63\xe6\xaa\x97\x19\x2f\x34\x86\xd0\xbb\xff\x9f\x20\x23\xdd\xce\xbf\x7f\x88\xc9\x88\x32\xaa\xdb\x95\x66\x37\xe5\xc3\x7d\x57\xf8\xea\x5f\xff\x56\xf5\xf7\xbf\xbc\x19\xcd\xb0\xc0\x53\xa2\x88\xc8\xd7\xdf\xfc\xa7\x34\x17\xbd\x48\xba\x73\xb3\xa2\xe5\x41\x97\x66\x7a\x03\x7f\xe1\xe4\x04\x71\x31\x46\x4f\x64\x8e\x60\x4b\x91\x18\x29\x0e\x6b\x27\x88\xe4\xa9\x88\x16\x67\x4f\xe1\x7b\xbd\xcd\xca\x4f\x04\xf9\x3d\xa5\x82\xe8\x65\x52\x22\x25\xa5\xa7\x6a\x3e\x83\xe1\x49\x25\x28\x1b\xfb\x44\xf8\xd7\x49\xab\x49\xd9\xdd\xb9\x64\x62\xd7\x78\x4a\xf4\x4e\xd3\x73\xb0\x5f\x14\xe6\x83\x86\x24\xe1\x6c\x2c\x91\xe2\x87\x33\x35\x73\xd6\x56\x98\x99\xf9\xa0\x76\x62\x7d\xd6\x71\xaf\x44\x98\xa1\x21\x41\x9a\xdd\xd0\x98\x08\x12\x23\x2c\x11\x46\x32\x1d\x4a\xa2\xd0\x0b\x55\x13\xca\xf4\xbf\x67\x24\xa2\x23\x1a\x39\x9a\x1d\x0e\x6d\xe0\xcf\x66\xca\x3c\x4a\x22\xf4\xc0\x9f\x69\x4c\x62\xf4\x8c\x93\x94\xa0\x11\x17\xc5\x7d\xdc\x67\x0f\x13\x4d\x87\xe9\x90\x32\xe0\x27\x9a\x96\x6e\x87\xfc\xd1\x91\xeb\x8f\x48\xf7\x87\x52\x46\x7f\x4f\x49\x32\x47\x34\x26\x4c\xd1\x11\x25\xb2\xdc\xda\x1f\xb9\x3d\x42\xe8\x14\x69\x3a\x13\xa1\x80\xde\x9c\x29\xf2\x55\x49\x74\x8a\x12\xfa\x44\xd0\xfb\x2b\x2a\x15\xea\xdc\xf6\xde\x9f\xa0\xf7\x86\x09\x20\x60\xbf\xef\xf7\x40\xe1\xec\xef\xff\xf6\xf8\x89\xc2\xe3\x32\x27\x79\xd7\xd1\x2c\xea\xde\xdc\x7e\x79\x0b\xff\xfd\x6f\x7e\x3b\x76\xbd\x1a\xaf\x94\x23\xbe\x45\xc2\x25\x12\xf8\x6d\xe0\xb7\x81\xdf\xee\x9e\xc2\xbb\x97\xce\x7e\x4f\x89\x98\x37\xcc\x6a\x84\x13\x79\xd0\xd7\x48\x7e\x87\xd8\x0b\xa4\xed\xb5\x01\xab\x5f\xbc\x31\xa4\xde\x78\x9b\x5e\x18\xba\xdd\xf2\x8d\x21\x8f\xeb\xca\xd0\x53\xd8\xf5\xb5\xb1\xc9\x9d\x81\x15\x1c\x66\x4c\x99\x39\xfb\x19\x2b\x10\x52\x1f\x7f\xb7\x7d\x0f\x84\x53\x6e\x72\x85\x78\x33\xf3\x6e\x11\x77\x39\x78\x54\x39\xc0\x79\x27\x74\x4a\x97\xad\x6f\x8f\xc5\x34\xc2\xca\xf2\x70\x96\x4e\x87\x44\x68\x32\x38\xae\x05\xb3\x1d\x6a\x2e\xa6\x52\xc1\x48\xdc\x62\x9a\x9b\x70\x34\xca\x14\x19\x13\x51\xfe\x7a\xc4\xc5\x14\x2b\xfb\xc2\x7f\xfc\x75\x55\x42\x28\xfe\x44\x96\xad\x7f\xcf\xac\x66\x84\x25\x6c\x83\x69\x9a\x28\x3a\x4b\x08\x9a\xe1\x31\x91\x96\x22\x69\xa2\xe4\x09\xbc\x26\x89\x78\x26\xe2\x34\xbb\x58\xa1\x07\x27\x50\xa4\xd2\x70\xff\x51\x26\x17\x33\xf2\x55\x41\x4b\x7d\x06\x22\x05\x90\xc8\xbf\x28\xf7\x73\x39\xb4\x20\x95\xe4\x42\x0d\x86\xf3\xb3\x27\xb2\xd0\x6f\xed\xce\xc1\x0c\x61\xa5\x04\x1d\xa6\x8a\xe8\x79\xeb\x36\xdc\xd5\x07\xec\xd1\xc8\x1d\x6d\x58\xc3\xeb\x4d\x38\xa6\x82\x44\x30\xb7\x55\x0e\x4c\xf6\x95\x9e\xb7\xbe\xf8\xe7\x66\xf6\x5a\x0e\xd0\x62\x56\x05\x05\xb2\x25\xef\xb3\x3e\x43\xa7\xe8\xb2\x7b\x7f\xd1\xbd\xbe\xec\x5d\x7f\x3a\x47\x3f\xce\x51\x4c\x46\x38\x4d\xd4\x09\x1a\x51\x92\xc4\x12\x61\x41\xa0\x49\x12\x6b\x51\x4a\x0f\x86\xb0\x98\xb2\x31\xe2\x22\x26\x62\x77\x64\x2c\x3d\x25\x2c\x9d\x96\xee\x15\xf8\x3d\x1f\x7d\xe9\x0b\x2d\x62\x64\x8f\x0a\x4f\xfe\x7b\x81\xc0\x30\x63\xdd\xb7\xd7\xda\x8a\xcb\x18\x04\x35\x5f\x50\x8b\x26\x34\x89\x05\x61\x1f\x14\x96\x4f\x03\xf2\x95\x44\xa9\x91\x33\xc0\x8e\x5c\xfc\x71\xa0\x15\x09\x1e\x93\xe2\x2f\x85\x7f\x18\xab\xf3\xca\x9f\xe5\x92\xe1\xca\x9f\x66\xb6\x88\x95\xbf\x04\xcb\x45\xbb\xef\xe0\x17\x1a\x57\xbe\x0d\xbf\x2c\x99\x83\x7b\xa7\x61\xb0\xee\x95\xda\x51\xb9\x17\xac\x00\x5c\xf9\x8e\x20\x4a\xcc\x07\x58\x29\x32\x9d\xa9\x15\xad\x32\x18\x25\x5a\xcc\x6e\x12\xab\xaf\x79\x4c\xba\xae\xbf\xdf\x90\x91\xee\x49\x8c\x86\x73\x7b\x2c\x46\x44\x10\x16\x91\xfa\x16\x1e\xb0\x7c\xca\x5b\x58\x26\x9b\x17\xfa\x93\x1f\xb9\xd0\x9f\x1f\x85\x63\xa0\x30\xf2\x7d\xc8\xe8\xeb\x9c\xd4\x37\xe6\x4d\x58\x97\xeb\xbc\x39\x5b\xd8\x9a\x3c\x34\x58\xce\x36\xa7\x64\x5b\x3b\x1b\x17\x48\xce\xa5\x22\xd3\xa5\x16\xb7\xe3\x21\x84\xbd\x24\x0f\x75\xc0\xa5\x7b\xfa\x1b\x38\xf5\x45\xa9\x23\x1c\xef\x15\x48\xb6\x2d\x7b\xf9\xa1\xcf\xd3\x05\xc0\x34\x4f\xf5\xde\x2d\x9f\xe7\xae\x3b\x8a\x69\x16\xe4\xe1\x6d\x0f\x72\x47\x16\xa8\xda\xb5\x72\xd4\x1e\xc0\x00\x96\xd8\x1e\x8a\x1e\x97\xec\xfc\xe9\x4f\x7d\xa3\x9d\xb1\xd0\xaa\x09\x95\x9e\xfd\x12\x45\x5c\x18\x71\x38\xb6\xe7\xdd\x98\x1f\x3a\x0f\x9d\xfb\xee\xc3\x39\xea\xa0\x18\x2b\xac\x0f\xb8\x20\x33\x41\x24\x61\x0a\x4c\x3b\xfa\x7b\x35\x47\x53\x1e\x93\xc4\x18\x21\x3e\x6a\xe9\x1f\x5d\x62\x85\x2f\xb0\xc2\x09\x1f\x9f\xa1\x0e\xfc\x53\x7f\x4c\x25\xc2\x89\xe4\x08\xbb\x6d\x45\x62\xd7\x04\x66\xb1\x63\x2d\x18\x45\x7c\x3a\xa3\x49\xe6\x6d\xca\xec\x6d\x94\xc5\xf4\x99\xc6\x29\x4e\x10\x1f\x6a\xae\x22\xcf\xfa\xac\xfb\x4c\x98\x4a\x71\x92\xcc\x11\x4e\x12\x64\xbb\x75\x2f\x20\x39\xe1\x69\x12\xeb\x76\xdd\x28\x25\x9d\xd2\x04\x0b\x2d\xd3\x9a\xd1\xde\xd8\xb6\xd0\xc3\x84\x64\x63\x85\x71\x69\x6a\x4e\xf1\x13\x91\x88\x2a\x34\xe3\x52\xd2\x61\x92\x9f\xf9\xc7\x1e\x82\x71\x5f\x5c\xf5\xc0\xc4\x13\x29\xc4\x0d\x0f\x75\x9d\x5b\x93\x9e\xeb\x71\x8a\x19\x23\xd0\x31\x57\x13\x22\x6c\xf7\xf6\xe5\xd7\xb6\xd6\x3c\x5e\xdf\xdf\x76\x2f\x7a\x1f\x7b\xdd\xcb\x45\x73\xcd\x43\xe7\xfe\xe7\xc5\x5f\xbf\xdc\xdc\xfd\xfc\xf1\xea\xe6\xcb\xe2\x93\xab\xce\xe3\xf5\xc5\x4f\x83\xdb\xab\xce\xf5\xe2\x43\xbb\xad\x5a\x5b\x7e\xfc\x91\x6d\xed\x6c\x1d\x9d\x51\x28\x18\xf5\x57\x58\xf6\x6d\x1b\xf5\x4f\xde\xae\x55\x7f\x44\x13\x30\x3a\xb4\xb6\xe8\x67\x56\x23\xfb\x25\x9a\x61\x29\x8d\x1c\x68\x46\x70\xd6\x67\x9f\xb9\xd0\xec\x7a\xc4\x35\x47\xd4\xb2\xa2\x12\x69\xa4\x28\x1b\x67\x1f\x9d\xa3\x7e\xfa\xc3\x0f\x7f\x89\xae\x28\x7b\x82\xbf\xc8\x21\x12\x27\xb8\x3c\x82\xcb\xe3\xe0\x5c\x1e\xff\x56\xf1\xe9\xee\xdd\x03\xc1\xc6\x1f\x6c\xfc\xbb\xb3\xf1\x07\x13\xbf\x37\x86\x60\xdf\xde\x94\x10\xc1\x00\x16\xec\xdb\x9b\x13\x22\xd8\xb7\x0f\x74\xc6\xe1\x78\x07\xfb\x76\xb0\x6f\x07\xfb\x76\xb0\x6f\x07\xfb\x76\xb0\x6f\x7f\x33\xf6\xed\x03\x0c\x79\x0a\x46\xfe\x60\xe4\x0f\x46\xfe\x60\xe4\x0f\x46\xfe\x60\xe4\x3f\x1e\x23\xbf\x96\x76\x3f\x94\x43\xff\x77\x04\x21\xa3\x85\x4b\x36\x4b\x15\x88\x92\x3c\x55\xfa\x4f\xdd\x3f\xec\x95\x06\x08\x80\x76\x06\xe5\x4f\x44\x65\x2f\x6a\xd1\xf6\x28\x62\xc5\xbf\x70\xf1\x34\x4a\xf8\x4b\x36\xf2\x4f\x44\xe9\xc1\xdf\xd9\x5e\x02\xb4\x4c\x80\x96\x41\x01\xea\x60\xdb\x50\x07\x07\x65\xa2\xde\x16\x7f\x77\x5f\xbf\xd3\xca\xbf\x22\xb5\xbc\xf8\x81\x88\x29\x65\x4e\x76\xa1\x4c\x0b\xb9\x63\x41\xa4\xdc\x94\x03\x67\x0d\x67\xaf\x1f\x05\x0f\xce\x46\x9b\x8d\x3f\x70\xdf\xc0\x7d\x6b\xa6\x16\xb8\xef\x1b\xe3\xbe\x2d\xa6\x36\xe4\xf1\x82\x3a\x61\x46\x52\xf5\xa4\x79\x24\x5b\xe3\x50\xbf\xa7\xa4\x5d\xd8\xc1\x3e\xb4\x86\xa3\x56\x14\x8e\xe1\x8e\x3a\x00\x3d\x21\x30\xf5\xc0\xd4\xab\x29\x73\x94\x4c\xfd\x18\x7d\x02\xbb\xe7\xe9\x45\x2f\x4a\x6e\x0e\xaa\x00\x7a\xa8\x8f\xf1\xac\x0d\xe1\xac\x89\xd0\xf4\x02\x30\xf7\x72\x4d\x14\xc3\x1c\x97\x5c\x15\x85\x97\x8f\xc6\xae\x54\x18\xf5\xfe\xef\x8a\x37\x8e\x36\xf0\xad\x04\x5b\x86\x58\xca\x35\x09\xf5\x86\x2f\xcd\xfd\x45\x42\xee\xff\xb6\xfb\x66\xef\xb4\x70\xa5\xd9\xff\x04\x86\x1f\x18\x7e\x60\xf8\xaf\xc4\xf0\xd7\xa0\x7b\x50\xe1\x16\x2e\xb5\x4a\x30\xbf\xb6\xe8\x7d\xab\xa4\xf2\xad\x90\xbb\xd7\x3a\x59\x6f\x49\x76\x5e\x65\x3a\x5e\x55\xfe\xdd\x62\xc2\x5d\x65\x86\xdd\x66\x29\x75\xeb\xde\xd5\xed\x93\xe4\x3e\x11\x55\x78\xf9\x68\xf4\xcf\xc2\xa8\xf7\x7f\x59\xbf\x7a\x30\xe8\x6b\xf1\xe9\x6f\x2f\x21\x30\x64\x00\xee\x90\x74\x6f\x5d\xac\x39\xdc\x1c\xbf\x6f\x20\xa9\x2f\x64\xf1\xad\x44\xa3\xb7\x95\xb6\xf7\x56\xf3\xf4\x8e\x33\x31\x2f\x64\xe2\x85\x4c\xbc\xad\xaa\xbc\xa5\xa7\xdf\x54\x26\xde\x31\xa7\xde\xed\xdf\x3c\x11\x4c\x0e\x87\x6f\x72\x08\x16\x07\xfb\x9f\xa0\x7d\xaf\x3c\xf3\x20\xda\x07\xed\xbb\xcd\xcc\x83\xf6\x1d\xb4\xef\x03\x3c\xa2\x41\xfb\x0e\xda\x77\xd0\xbe\x83\xf6\x1d\xb4\x6f\x14\xb4\x6f\xaf\xa1\xd7\x02\x6c\x38\x04\xe7\xe6\x51\xd9\x1c\xf2\xa9\x0f\xdc\x01\x5f\x04\x39\x28\xb0\xdd\x36\xb8\x07\xf0\x97\x53\xea\x57\xc5\xe1\xad\xd5\xd2\x2f\xf3\xc1\x76\x81\x49\xfe\x66\x59\xc5\x12\x85\x7d\xe1\xbb\xa3\x88\x11\x58\x18\x75\x48\xb7\x5d\x57\xe4\x79\x25\xa1\x61\x47\x14\x38\x92\xeb\x6b\xf5\x85\x7a\xc3\xba\x64\xd0\x21\x37\x4f\xa1\x3b\x1a\xdd\xf1\x78\x74\xc6\xfd\xcb\x16\x6f\x51\x9c\x08\xd2\x84\x37\x86\x70\xf1\x86\x8b\x37\x5c\xbc\xe1\xe2\x0d\x17\x6f\xc8\xc0\xb7\xef\xef\x54\x9e\x28\x09\x13\xad\x00\x1a\xb7\x5e\x19\xa8\x42\x94\xf0\x6e\xe0\x65\x75\x7e\xca\x5f\x53\x22\xff\x7a\x94\x32\xc5\x3e\x4a\xfd\x04\xa1\xe2\x48\x84\x8a\x37\x69\x4b\x0a\x92\x52\x90\x94\xaa\x29\xd3\x4a\x52\xea\xb3\x87\x89\xa6\xc3\x74\x48\x59\xe6\xcd\x73\x3b\xe4\x8f\x8e\x5c\x7f\x44\xba\x3f\x94\x32\xfa\x7b\x4a\x92\x79\xce\x93\x64\xb9\xb5\x0c\x2f\x1a\x9d\x22\x4d\x67\x22\x14\xd0\x9b\x33\x45\xbe\x2a\x89\x4e\x51\x42\x9f\x08\x7a\xaf\x19\x33\xea\xdc\xf6\xde\x9f\xa0\xf7\x57\x50\xb6\x0e\xcd\x12\xcc\xe4\xfb\x83\x71\xdc\x04\xb0\xfe\x5d\x81\xf5\x07\xac\xfe\x80\xd5\xdf\x96\x40\x01\xab\x3f\x60\xf5\x1f\x2f\x56\xff\xd6\xf4\xc3\x35\x71\x39\x5f\x45\x53\x3c\x4e\x5f\x76\xd0\x14\x51\xd0\x14\x83\xa6\x18\x34\xc5\xa0\x29\x1e\x89\xa6\x78\x18\x14\x0e\x6a\x62\x50\x13\x83\x9a\xb8\x45\xe2\x04\x35\x31\xa8\x89\x41\x4d\x5c\x50\x13\x8f\xd7\x73\xf8\x97\xa0\x0f\x06\x7d\xd0\xff\xfd\xf8\xf4\xc1\xa0\x3a\x05\xd5\xa9\x9a\x32\xc7\xa9\x3a\x1d\x8c\xec\x73\x8c\x21\x45\x41\x29\x6c\x4f\x88\xa0\x14\xb6\x26\x55\x50\x0a\x1b\x88\x13\x94\xc2\xa0\x14\x06\xa5\xb0\xb5\x52\x78\x4c\xee\xc2\xa0\x1d\x06\xed\xd0\xff\x3d\x68\x87\x41\x3b\x0c\xda\x61\x70\xac\x05\xd5\x30\xa8\x86\x41\x35\x0c\xaa\xe1\x32\xe2\x04\xd5\x30\xa8\x86\xdf\x96\x6a\x48\x9e\x09\x53\x12\x8a\x21\xfa\x8a\xd2\xbb\x19\x97\xf5\x0a\x9e\xcf\x1d\x2a\x94\x3b\x68\xb3\x58\x94\x10\x50\xdb\x7e\x43\x13\x2c\x11\x8f\xa2\x54\x94\xce\x40\x59\xbd\xbb\x10\x04\x2b\x02\x2d\xe8\x0f\x8f\x41\xad\x5b\x9c\xee\xbe\x00\x88\x87\x3c\x5e\xd8\xed\xe6\x20\x54\x3d\x69\x16\xb3\xb6\x36\xf5\xdf\x53\xd2\x4e\xab\xdd\xe1\xa6\x56\x58\x3e\x6d\x79\x53\x17\x80\xa6\xd7\xda\xd4\xd0\xc2\xb1\x6c\xea\xc5\xe9\x7e\x33\x9b\xba\x6a\xea\x87\xb0\xa9\x5f\xb8\x78\x1a\x25\xfc\x65\xcb\x1b\xfb\x8b\x6d\x76\xb3\xcd\x9d\xb5\x72\x2c\x1b\xbc\x7a\xda\xdf\xcc\x26\xaf\x9b\xfe\xeb\x6e\xf4\xac\x3e\x44\xeb\x2d\xfe\x20\xe8\x78\xac\xd5\x0c\xd0\xf0\xf4\x56\xb4\xa6\x8f\x06\x80\xa4\xbc\x22\xc2\xd2\x6d\x9d\xbd\x7a\x0c\x5b\x3a\x1b\xac\x19\xfb\x37\xb3\x97\x17\xe6\x7d\x20\x9b\xf8\x95\x40\x3b\xda\x15\xfc\xb8\xa2\x52\x65\x6f\x1e\x47\xb6\x55\x36\xdc\x7d\xf8\x4d\x42\xfe\x4e\x70\x33\x04\x37\xc3\xe1\xbb\x19\x0e\xc6\xa0\x16\x4c\xf2\x3b\x32\xc9\x53\x19\x6c\xf2\xc1\x26\xdf\x96\x40\xc1\x26\x1f\x6c\xf2\xc7\x6b\x93\x5f\x51\x77\x58\x33\x42\xab\xce\x20\xb4\x8a\xfe\xf0\x89\xe4\xea\xc3\x71\x69\x0f\x41\x73\x08\x9a\x43\xd0\x1c\xb6\xae\x39\x1c\x54\x39\xc2\x6d\x71\x69\xf7\xf5\xbb\x59\x5a\xcf\x53\x1f\x67\x31\x56\x04\x65\xcc\xdb\xee\x04\x7d\x31\x2a\x9e\x1d\x02\xbb\x1f\x36\x64\xbb\xa6\xaf\x23\xe5\xbc\x66\xf0\x7b\x2c\xcf\x1a\xf8\x70\xe0\xc3\x81\x0f\x1f\x36\xbe\xf9\xe1\xb8\x0f\x1c\x7b\x3a\x14\xf7\x81\x20\x11\x7f\x26\xa2\xb5\x2f\xec\x8e\x80\x03\x0c\xa4\xfb\x99\x20\xcf\x94\xa7\x32\x99\x9f\x8a\x94\x21\xe7\x3b\xf6\x2e\x29\x88\xe1\x7f\xa1\x49\x82\x38\xd3\xaa\xa2\xc2\x42\xb9\xc7\x6c\x8c\x46\x82\x4f\x61\xbb\x24\x58\x2a\xf4\xc4\xf8\x0b\x43\x23\x4c\x93\x54\x10\x34\xe3\x94\xa9\xb3\x3e\xeb\x31\x74\x67\xc6\x08\x35\x17\x4f\x50\x2a\x89\x90\xfa\xa8\x31\xae\x50\x34\xc1\x6c\x4c\x10\x66\x73\x5b\xbc\x3c\x67\xe0\x7a\x93\xa6\xe6\xd6\xd4\x5d\x94\x00\xeb\xb3\x31\x82\xb5\x91\x4a\x44\x25\x22\x5f\x95\x20\x53\x92\xcc\x75\x1f\xfa\x8a\x52\x1c\x59\xfa\x98\xa1\xda\x3d\x4f\x84\xe0\x42\x42\xb5\xc6\xe1\xfc\x9f\x98\x29\xca\x08\x02\x9d\x4e\x1a\x4b\xe2\x29\xba\xe2\x12\x4c\x4c\x3f\xff\x4d\xa2\x28\x49\xa5\x22\xe2\x04\x0d\xd3\xb1\xd4\x4a\xed\x2c\xc1\x6a\xc4\xc5\x54\x8f\x90\x32\xa9\xf0\x90\x26\x54\xcd\x4f\xd0\x14\x47\x13\xd3\x16\xd0\x40\x9e\xf4\x59\xcc\x5f\x98\x54\x82\xe0\xac\x77\xf7\x10\x7d\xe7\x3f\x33\x1b\x40\x7e\x7f\x02\x67\x93\x4e\xb5\x66\xee\x0d\x3f\x5f\x71\xb3\x26\xba\x11\x12\xa3\x21\x89\x70\x2a\x6d\xde\x85\x12\x73\x44\xbe\x4e\x70\x2a\x61\xed\xf4\xf4\x6c\xbd\xcb\x88\x4f\x67\x09\x51\x04\xd1\x11\x52\x42\x5f\x5c\x78\x8c\xa9\x26\xdd\x3d\x21\x2d\xa4\x0d\xbb\x80\x76\xd7\xff\x06\x5c\x62\xca\x05\x41\x31\x51\x98\x26\x8d\xb9\x38\xf6\xdb\xe0\x24\x3d\x26\x2e\x57\x5c\xf0\x83\x60\x73\x09\x18\xf4\xb7\xe0\xf3\x67\xd6\xd3\x10\xe1\x64\x43\xf7\xff\x9d\x1d\x54\xd8\xdb\xc7\xb5\xb7\xcd\xaa\x1d\xce\xe6\x3e\x68\xaf\xff\x51\xed\xe9\x3d\x39\xfd\x83\x76\x15\xb4\xab\x6a\xca\x04\xff\x78\xc8\xc4\x5b\x9c\x56\x70\xfb\x07\xb7\x7f\x70\xfb\x6f\x93\x38\xc1\xed\x1f\xdc\xfe\xdf\xac\xdb\xff\xc0\x3d\xfd\x47\xa5\x31\x04\x6d\x21\x68\x0b\xc1\x17\xb3\xe2\xd4\x8e\x4e\x46\xdf\x16\x67\xce\x5c\xfd\x31\x49\x88\x22\xf5\xd6\x47\x22\xa6\x5a\xb7\x33\x52\x07\x65\x5a\x3c\x1d\x0b\x22\xe5\xa6\x7c\x36\x6b\xf8\x38\xb9\x6d\x36\xfc\x3d\xfa\xf7\x03\xfb\x0d\xec\xb7\x9a\x32\x47\xc9\x7e\x0f\xc7\x90\xee\x1d\xe6\x7d\x59\xd2\x33\xfe\x7b\xa0\xa1\x56\x47\xc5\x8c\xf7\x1e\x69\x15\x38\x71\xe0\xc4\xd5\x94\x09\x9c\xf8\xf8\x83\x92\x8c\x57\x75\x30\x4b\x30\x1b\xd0\xd8\x26\x27\x98\xcc\x84\xdc\x58\xb1\x2b\xcf\xa6\x3e\x5a\xb1\x01\x4c\xcd\x00\x4a\xc5\x6f\xfa\x93\x24\x77\x74\x20\x3e\xd4\xc3\x58\x0a\x1d\x6b\x7c\x23\xb7\x09\x66\xbd\xf8\x38\xb2\x9e\x2b\xa7\xbf\x0f\x67\xe8\xdb\x0b\x9e\xdd\xe4\x92\xc2\x0a\x9c\x6e\x98\x32\x63\x76\xcd\x81\x6f\x0b\x46\xe5\xc3\x98\xe8\x26\x57\x96\x37\x31\xef\xd6\x72\x97\x91\x47\x94\xc3\x9b\x76\xf0\xc5\x05\x54\xcc\xe0\x6d\x6a\x39\xe1\xe0\x6d\x3a\x5c\x6f\x53\x8b\x65\xdc\x89\x0b\x79\xcf\xc7\x73\xaf\x32\xeb\x51\x4b\xaa\x41\x50\x45\x41\xac\x0b\x62\x5d\xfd\xac\x83\x58\x17\xc4\xba\x20\xd6\x05\xb1\x2e\x88\x75\xaf\x2f\xd6\xb5\x98\xe6\x37\x1b\x65\xb0\x4c\x54\x6d\x8f\x7c\x6a\x72\x7c\x20\x15\x30\x9d\x25\x1c\xc7\x4d\x91\x5e\xb9\x30\xe9\x17\xda\x6a\x90\x40\x4d\xeb\xf9\x67\xc7\x20\x80\xe6\xa3\xfd\xc6\xf2\x9f\x16\x27\x7e\x28\xde\x82\xd7\xc2\x40\xad\xde\xef\x2b\xe8\x5c\xf2\xaf\xc7\xb5\xe3\x03\x24\x6a\x00\xd4\xa8\x98\x5a\xf0\x5d\x87\x94\xaf\x90\x1b\xf5\xe6\x14\xf7\x90\x1b\x15\x72\xa3\x82\x59\xa3\x79\xda\xc1\xac\xf1\x26\x72\xa3\x56\x57\x26\x76\x58\xb6\x7a\x73\xb5\xe2\x28\x42\x8e\x82\x5a\x11\xd4\x8a\xa0\x56\x04\xb5\xe2\x10\x0b\x3a\x07\x9d\x22\xe8\x14\x41\xa7\x08\x3a\x45\xd0\x29\xb6\x4e\xc6\xa0\x53\xb4\xd0\x29\xe0\x2f\x0b\x58\xba\xb2\x82\xb1\xa2\x62\xb1\x04\x95\x21\xff\xe8\xc8\xb4\x8a\xa0\x51\x04\x8d\x22\x68\x14\x7b\xd7\x28\x0e\x66\x42\x96\x7d\x2e\x99\xd3\xbd\x5b\x90\x12\x3c\xf4\xe1\xcd\xc7\x8d\x68\x00\x2d\x2d\x11\x26\x8a\x0a\x5a\xb6\xeb\xf4\xa7\xbe\x8e\x62\x62\x53\x41\x2c\xcf\x43\x37\x51\xc4\x85\x61\xca\xb1\xdd\xe5\x46\x9e\xe8\x3c\x74\xee\xbb\x0f\xe7\xa8\x83\x62\xac\xb0\xde\xd6\x82\xcc\x04\x91\x84\x29\x90\xd5\x08\x44\xe5\x02\x48\x77\x62\xa4\x8a\x8f\xfa\xfe\x41\x97\x58\xe1\x0b\xac\x70\xc2\xc7\x67\xa8\x03\xff\xd4\x1f\x53\x89\x70\x22\x39\xc2\x8e\xf4\x24\x76\x4d\x60\x16\xbb\x03\x85\x01\x7b\x9a\x26\x99\x72\x9a\xa9\x17\x94\xc5\xf4\x99\xc6\x29\x4e\xb2\x60\xe7\xbe\x29\x30\x9c\xe2\x24\x99\x23\x9c\x24\xc8\x76\xeb\x5e\x70\x70\xd6\x43\x92\x8d\x52\xd2\x29\x4d\xb0\xd0\xec\xd8\x8c\xf6\xc6\xb6\x85\xb4\x62\xec\xc6\x0a\xe3\xd2\xd4\x9c\xe2\x27\x22\x11\x55\x68\xc6\xa5\xa4\xc3\x24\x3f\x00\x8f\x3d\x04\xe3\xbe\xb8\xea\x81\xcc\x16\x29\xc4\x0d\xe7\x70\x9d\x5b\x05\xc6\xf5\x38\xc5\x8c\x11\xe8\x98\xab\x09\x11\xb6\x7b\xfb\xf2\x6b\x8b\x5f\x8f\xd7\xf7\xb7\xdd\x8b\xde\xc7\x5e\xf7\x72\x51\xfe\x7a\xe8\xdc\xff\xbc\xf8\xeb\x97\x9b\xbb\x9f\x3f\x5e\xdd\x7c\x59\x7c\x72\xd5\x79\xbc\xbe\xf8\x69\x70\x7b\xd5\xb9\x5e\x7c\x68\xb7\x55\x6b\x51\xce\x1f\xd9\x2e\x64\x39\xf7\x75\x0b\x84\x00\x7b\xb8\x14\x56\xa9\x34\xd5\xa0\x05\x19\x53\xa9\x80\xfd\xb7\x91\xc2\x96\x03\x03\x1c\xad\xf4\x15\xaa\xb0\x04\x59\x2c\xc8\x62\x41\x16\x3b\x36\x59\x6c\x7f\x26\x81\x23\x0a\x53\xfc\xcb\x71\xdd\x3d\x01\xc4\x3d\x30\xe7\xc3\x67\xce\x07\xe7\x7a\x3b\x18\xd3\xf9\x31\x02\x44\x06\xa7\x62\x7b\x42\x04\xa7\x62\x7b\x5a\x05\xa7\x62\x03\x71\x82\x53\x31\x38\x15\xbf\x61\xa7\xe2\x51\xc6\x26\x06\x55\xc2\xbd\x17\x54\x89\xa0\x4a\xbc\x51\x55\xe2\x60\x28\x1c\xf4\x88\xa0\x47\x04\x3d\x22\xe8\x11\xcd\xc4\x09\x7a\x44\xd0\x23\x82\x1e\x71\x6c\xf1\x88\xc7\xa5\x49\x04\x2d\x22\x68\x11\x87\xad\x45\x1c\xcc\x84\x8e\xc7\x5b\xdc\x6e\x3e\x21\x72\x2f\x44\xee\x85\xc8\xbd\xda\xc8\xbd\x37\xaa\xc9\x6f\x4b\x7e\x73\x5f\x1f\x5a\x40\xe2\x71\x89\x5f\xa1\x56\x51\xf6\x34\x08\x63\x41\x18\xfb\x46\x85\xb1\x03\x02\x51\x3c\x88\x92\x4b\x53\xac\xa2\x09\x1e\x26\x64\x90\xd9\xb2\x64\x5b\xf5\xfe\x8a\x4a\x25\x51\x94\x4a\xc5\xa7\xf5\x97\xcb\x67\xd7\x43\x27\xeb\xe0\x82\xb3\x11\x1d\xa7\xe6\x6e\xf9\x0d\xb6\xbe\x77\xa2\x73\x01\x77\x3e\x23\xcb\xfc\x8a\x15\xad\x1f\xc5\xb5\x54\x3d\xf4\x7d\xdd\x4e\xab\xe8\x23\xb9\xed\xd2\x2a\x13\x5a\x84\x1c\xdc\x75\xef\x6f\x1e\xef\x2e\xba\xe7\xa8\x03\x22\x16\xb8\x13\xcc\x56\xa0\xff\xd4\x93\x42\x0a\xcb\xa7\x7c\x2d\x85\xd9\xe6\x12\xe4\x6c\xf0\x5f\x68\x91\x1f\x9d\xa2\x8b\xab\xc7\xfb\x87\xee\x5d\x4d\x83\x76\xa3\x40\xe1\x45\x32\x9d\x25\x58\x91\x18\x3d\xa5\x43\x22\x18\xd1\xd2\x4e\x94\xa4\x5a\xb8\xc9\xbd\x1a\xa6\xd1\xee\x7f\x75\x2f\x1e\x1f\x7a\x37\xd7\x83\xbf\x3f\x76\x1f\xbb\xe7\xc8\xed\x38\xdd\xac\x1e\x97\x1e\x45\x3c\x67\x78\xaa\x15\x2b\xfd\x43\x5e\xea\xf1\xf7\x94\xa4\x04\x61\x29\xe9\x98\x4d\x09\x53\xe5\x16\xdd\x80\xaf\x3a\x3f\x76\xaf\x8a\x2d\x4f\x08\xfa\xf9\x6f\xf9\xa0\x12\x3c\x24\x89\x75\xb3\x80\xe7\x40\x6f\xf4\xbc\x23\xeb\x7f\x49\x0d\x55\xff\xfe\xd8\xb9\xea\x3d\xfc\x3a\xb8\xf9\x38\xb8\xef\xde\xfd\xd2\xbb\xe8\x0e\xac\xb0\x7c\xd1\xd1\xfd\x16\x7a\xb2\x32\x35\xfa\x3d\xc5\x89\x56\xba\xf8\x08\xfc\x16\x34\x22\xe8\x65\x42\x18\x4a\x19\xec\x38\xa3\xc9\x69\xf5\x2e\xeb\x54\x9f\x32\x33\xa3\xdb\xab\xc7\x4f\xbd\xeb\xc1\xcd\x2f\xdd\xbb\xbb\xde\x65\xf7\x1c\xdd\x93\x04\x74\x1d\x47\x74\x58\xc5\x59\x92\x8e\x29\x43\x74\x3a\x4b\x88\xa6\x86\xd1\xe5\x86\x64\x82\x9f\x29\x17\xf6\xe8\x8e\xe9\x33\x61\x86\x8e\x70\x66\xa1\x7d\xa7\x53\x0c\x3c\xd2\xdd\x5c\x7f\xec\x7d\x3a\x47\x9d\x38\xce\xe6\x20\xa1\x8d\xc2\xce\x79\xe1\xe2\x69\x94\xf0\x97\xd3\xe2\xb0\x35\x73\x80\xee\xcd\x26\xe2\xcf\x44\x08\x1a\x93\xd2\x3e\xea\xdc\xdf\xf7\x3e\x5d\x7f\xee\x5e\x3f\x00\xc5\x94\xe0\x89\x44\x13\xfe\x02\x16\x7a\x98\x21\x18\xee\x9f\x31\x4d\xa0\x33\xb7\x58\x9c\xa1\x97\x09\x05\xaf\x0e\x95\x3e\xc1\x8c\xda\x29\x52\xf6\xea\x46\xe7\xc2\xc1\x5b\xd4\xc6\xca\x27\x69\xf1\x8d\xd2\xb1\x68\x7a\xa1\xb0\xcb\x17\x5f\x5c\xb6\x5b\x17\xbf\x28\x6d\xb7\x7a\x1d\x74\x61\xbf\xd4\xcf\x34\x5f\xeb\xd6\x2a\x68\x91\x86\xfb\xbb\x66\x89\x12\x34\x92\x1f\xb2\x7d\xb5\x5b\x90\x31\x22\xf5\x86\x55\x74\x4a\x90\xed\xd9\x9e\xd4\x0d\x6b\xd5\x7e\x22\x2a\x7b\xf1\xb3\x69\xf8\x28\xb2\xd2\xbe\x58\x8e\x92\x0d\xfe\x13\x51\x76\xfc\x21\x41\x2d\x24\xa8\xd5\x4c\x2d\x68\xb9\x9b\x6b\xb9\xc7\x56\x91\x37\x26\xb3\xc5\x0e\x4b\x13\x83\x77\x8c\xbf\x72\x21\xbc\xc6\x58\x82\xad\x2d\x3c\x21\xcf\x24\x01\x41\x56\x09\xac\xf5\x62\x2b\x9e\x0d\x05\xc1\x4f\x5a\xa6\x8d\xf9\x8b\x2f\x9c\xc5\x44\x61\x9a\xc8\x57\x0a\xbf\xf9\xcb\x9f\x5f\xf5\x3e\x3c\xde\x2b\x30\xdc\x80\xc1\x24\x1a\x2e\x8b\x6f\xf0\xb2\x38\x46\xa7\x54\xb8\x03\x0f\xe5\x0e\xd4\xe4\x8e\x07\xce\x3d\xfd\xe1\x7f\x0a\x46\xb9\x7f\xed\x4a\x3f\xbc\x83\x78\x5f\xd9\x74\x11\x7a\x15\x36\x7f\xb3\x4e\xed\x25\x37\xa2\xf7\xc5\x51\xe8\x83\xde\x78\x0f\xc9\xd4\x7a\xe7\x5b\xbe\xdd\x3d\x31\x25\x0a\xc7\x58\x61\x7d\x84\xc6\x44\x9d\xa1\x1b\x06\xcf\x1e\xb0\x7c\x3a\x41\xee\x5e\xd7\xbc\x33\x77\x2d\xec\xa1\xb8\x66\x4b\x9b\xd5\x6b\x07\x23\x1c\x22\x47\x0f\x5a\xfa\x36\xa7\x16\x04\xaf\x90\x5e\x74\xc8\x38\x30\xee\xeb\x56\xd1\x3b\xdb\xbb\x95\x4d\x8b\x47\x7c\x31\xef\x37\x5e\x67\xab\xd7\x74\x0a\x43\x0f\x77\xb0\xf9\x4f\xb8\x83\xc3\x1d\x1c\xee\xe0\x26\xca\x84\x3b\xf8\x88\x03\xba\x2a\xae\xac\x57\x8d\xe8\x6a\x63\x56\x30\x36\x85\xdc\xa0\xb0\x22\xf0\x5c\x6e\x43\x58\x0a\x17\x51\x21\xb5\x2c\xc5\x8a\xc8\xbf\xa1\xe4\x38\xfc\xcb\xde\x2c\xf7\x81\x17\xb1\x55\x61\xc5\x64\x2c\x07\xab\xc2\x0e\x25\x9a\xb7\x27\xce\x6c\x22\xcb\x60\x05\x97\x0c\xa6\xcc\xdc\x49\x79\xf6\x92\xdc\xc3\x0e\x5b\x71\xa2\x9b\x48\x36\xde\xc4\x3c\xe1\xc6\xc9\x2c\x1e\x51\x0e\x64\x51\x77\x02\x2b\xf1\x3a\x76\xfc\xd7\x87\x92\x20\x6f\x17\x49\x22\x80\x25\xac\x74\x48\x02\x58\xc2\x3e\xc0\x12\x5a\x2c\xe3\x4e\x10\x50\xf6\x7c\x3c\x5f\x53\x75\x38\x1e\x27\xe4\x91\xe9\x0c\x47\xa5\x2f\x04\x1f\xe4\xee\xed\x9f\xc1\x54\x18\x4c\x85\xd5\x94\x09\xa6\xc2\x6f\x2b\x5c\x6b\x5b\xf7\xbd\xfb\xfa\xb5\xbd\x90\x47\x76\x33\x07\x27\x64\xb8\x84\xc3\x25\x1c\x2e\xe1\x70\x09\x6f\x8b\xc2\xc1\x5f\xb7\xa2\xd2\x7d\x14\x5e\xba\x23\xbb\xd6\x83\x93\x2e\xdc\xf8\xee\xe3\xe0\xd2\x5a\x36\xcf\xe0\xd2\x0a\x2e\xad\xe0\xd2\x0a\x2e\xad\xe0\xd2\xca\x7e\x0f\x2e\xad\xbd\xee\xd6\x6f\xd6\x6c\x57\xad\x31\xf0\x98\x0c\x2a\x90\x64\xb2\x9f\x06\x7e\xda\x60\xe1\xd7\x82\xfb\xae\xf0\xc4\xf7\xe5\x15\x1e\xe4\xf0\xef\xd0\x2f\x8d\x57\xce\xc3\x6f\x32\x27\xf2\x98\xb4\xce\xbb\x2f\xbc\x7c\xe8\x71\x81\x6e\xa2\x46\xf5\xf0\x47\xbe\x87\x3c\xfb\xf2\x4e\x78\x63\xd1\x67\x35\xbb\xfa\x2d\x5a\xea\x2a\xce\x68\x30\xdb\x2d\x25\xd4\x1b\x06\x1c\xb0\x4c\x78\x0f\xe3\xd9\xff\x1d\xe6\x80\xff\x06\x15\x37\x59\xf5\xb3\xfc\x3e\xab\x7e\x9e\xdd\x6a\xd5\x8f\x77\x53\x22\xb1\xfd\xa5\x06\x76\x34\xff\xed\x23\x09\x77\xf7\x87\xbc\x0f\x5b\x5a\xed\xc6\x78\x63\x17\x5b\xe3\x26\x7f\x73\xd7\x5b\xd3\x91\x0d\x97\x5c\x4b\x72\xbd\xd5\xab\x2e\xd4\x38\x6c\xb2\xe2\x85\x22\x82\x07\x68\xa5\x08\x46\xc4\x60\x44\x3c\x46\x23\xa2\x09\x3e\x18\xcc\xb0\x20\x4c\x55\xe8\x16\xe5\xeb\x04\x5e\xf7\x8b\x4e\x39\xa9\x03\x1a\x40\x5a\xb4\x47\xf6\x42\xce\xae\xaa\x37\x16\x28\x5f\xd2\x5e\xde\xb0\x9d\xed\xc0\xf5\x91\xc3\x31\xb3\xbd\x55\x29\x3d\x18\xa1\x82\x11\xaa\x3c\xcf\xfd\x19\xa1\xd6\xa0\x7b\x70\x16\x35\x5e\x55\xdf\x88\x21\xed\xc0\xef\xad\x43\xb2\xa3\xbd\xd5\x9b\x2b\xd8\x97\xb6\x40\xae\xb7\x7a\x8b\xbd\x96\x49\x79\xff\x5a\x7a\xb0\xa4\x05\x4b\x5a\xb0\xa4\x05\x4b\x5a\xb0\xa4\xf9\xbf\x07\x4b\x5a\x13\xdd\xf7\xa6\x9e\x58\x11\xc8\xab\x3e\xfa\xe1\x7f\xf2\xbf\x33\xb5\xc4\x57\x2d\x9a\x32\x58\x2f\x04\x81\x53\xc1\x85\xcd\x7f\xdc\x46\x7d\x52\xac\x0a\x42\x2f\x54\x34\x68\xd0\x45\x4c\x56\xd1\xad\x79\xfb\xb8\xca\x92\x2e\x0c\x7a\xbf\xf9\xaf\x8b\x0b\xdf\xee\x00\xb9\x95\xa1\xa6\xc4\xa6\x57\xc7\x51\xcb\xdd\x7c\x94\x5f\x0c\x12\xbd\xd0\x24\xd1\x92\x8c\x95\xda\x0e\x44\x1a\x7d\xf5\xac\xb8\xda\x95\x7f\xd5\xdc\xb8\x2a\xee\x50\xc5\x12\xda\x58\xc7\xb7\x55\xa7\xd8\x6d\x36\x28\x21\x0b\x7a\xdf\x12\x73\xfa\xdb\xe0\x04\x9f\x88\xda\x17\x1b\x58\xf7\xec\x37\x9e\x7b\x41\x46\x44\x10\x16\x91\x03\xcc\xc8\x5a\x25\x55\xf0\x8b\x99\xa4\xcd\x13\xcc\xca\x77\xfb\x53\x55\xdc\xea\x69\x05\x51\x37\x54\x6f\x0e\xd5\x9b\x43\xf5\xe6\xf2\x51\x0f\xd5\x9b\xdf\x46\xf5\xe6\x16\x5c\x76\x0b\xb6\xbd\x66\x83\xed\x81\xea\x5d\xee\xeb\x77\x31\x49\x88\x22\xb5\x82\xd2\x25\x3c\x7e\x2d\x41\xc9\xf4\xfe\x36\x64\x25\x33\x97\x20\x2e\x7d\x33\xca\x92\x5b\xf0\x83\x50\x96\xcc\x59\xf3\x75\x26\x48\xae\xf0\x94\x6b\x93\x51\xf1\x36\xcd\x2c\x47\x91\x40\x71\x38\x76\x96\x9d\x5f\x8a\xfb\x66\x0e\xc1\x86\xb4\x38\x92\x60\x43\xda\x8c\x2d\x16\x7e\xac\x40\x61\xda\x3b\xab\x5c\x47\xc0\x2a\xf0\xcb\x4b\x78\xfd\x38\xb9\x66\x79\xec\xc7\xcc\x3b\xbd\xd6\x0e\x83\x89\x7c\xbb\xec\x73\xe1\x88\xb7\x9b\xb8\x0d\xfd\x39\xde\x79\x1f\xca\xb5\x51\x77\xac\x0f\xf9\xf2\x28\xd6\xd1\x3a\x5e\x8f\xc4\x31\xb1\xff\x57\x71\x49\xbc\x39\x31\xf9\x9b\x33\x1a\x04\x1f\x4b\xf0\xb1\x04\x1f\x4b\xf0\xb1\x04\x1f\x0b\x5a\xd7\xc7\xb2\x2d\x49\xeb\xa8\x1d\x12\xc7\x29\x2a\xed\xd7\x23\x11\xa4\xa5\x63\x97\x96\x0e\x45\x29\x3c\x2e\x17\xcb\x86\x65\x95\x0f\x45\x2f\x7c\x4b\xc6\xc1\xe3\xd2\x11\x0f\xce\x1c\xf8\xcd\x31\xbe\xf5\x4c\x7f\x47\x3b\xdd\xa0\x15\x07\xad\x38\x68\xc5\x41\x2b\x0e\x5a\x31\x0a\x5a\xf1\xca\x5a\xf1\x5b\x12\x14\x8f\x4e\x43\x0e\xb2\xe2\x6b\x4f\xf8\x1b\x93\x15\x0f\xc5\x26\x50\x77\x72\x0f\xd4\x32\xf0\x6d\x06\x14\x1d\xf1\x4d\x10\x72\x5e\x91\xb7\x74\x21\xe0\xe6\x5b\xe1\xa3\x07\x1e\x70\xf3\xf6\xec\xaa\x47\xcc\x23\x43\x36\x70\x10\x2b\xb7\x34\xdd\x60\x82\x0c\x26\xc8\x60\x82\x0c\x26\xc8\x60\x82\x44\x87\x9d\xfc\xbc\xd4\xe0\x14\xf2\x9f\x77\x65\x58\x3d\x62\x49\x31\xe4\x42\x07\x61\x71\x7b\xd3\x3d\x54\xdd\xf9\x90\x6c\x90\x72\xf5\xba\x11\x4b\x91\xb8\xed\xb4\x7f\x6b\x60\x60\x57\x54\x3a\x45\xf7\x98\xf8\x95\xdc\x35\x4b\xda\x04\x7e\xd7\xad\xe8\x9b\x45\xdf\xdd\xa0\x1a\x3d\xf0\xae\x37\x5a\x8e\x3e\x80\x03\x37\x10\x27\x80\x03\xaf\xc4\x4d\x02\x38\xf0\x3e\xc0\x81\xb7\xae\xac\xcc\xb8\xac\xbf\xb9\xef\xc8\x98\x4a\x38\xb2\x0d\x35\x9f\xdc\x9d\x0d\x85\x07\x60\x2b\x7c\xd4\x2f\xa0\x98\xcc\x12\x3e\x07\xfb\x50\xc3\x75\xee\xba\xb8\x5d\x90\xa8\x0f\xfd\x46\x77\x23\xdf\x97\xce\x71\x28\x32\x69\x3e\xef\x83\x90\x42\xfd\x90\xf8\x52\x31\xb3\x26\xf7\xf6\xa3\xf5\x69\x83\xe9\x8f\x4a\xb8\x9f\x96\x6e\xf1\x3e\xab\x7e\xe0\x4c\x60\x43\xe2\x2e\xc4\x61\xaa\xbc\xa2\x1e\x52\x4b\x58\x33\x22\xd4\xdc\x7b\x93\x4c\x67\x6a\xfe\x9f\x7d\x46\x55\xe6\x40\xa4\x63\xc6\x85\x61\x6f\xfa\xe3\x09\x66\x71\x42\x84\xbe\x5d\x5d\x3b\x11\x66\x8c\x2b\x90\x3b\x60\x02\x31\x7a\xa6\xd8\x48\x29\x9d\xdb\x5e\x6b\x37\xfa\x5f\x8f\xe8\x9c\xed\xd7\x4f\xfe\xf6\x8a\x3d\x2f\x85\x87\xff\x94\xf0\x21\x4e\x92\x39\x4a\x8b\xf6\x0a\xdd\xc0\x81\xcc\xe1\x50\x78\xdf\xab\x33\xbb\xc0\xe2\xda\xb2\xb8\x63\x0a\x12\xdd\x2f\x8b\x0b\x0c\xe1\xf8\x19\x82\xc2\xf2\xc9\x2f\xb7\x07\x42\x90\xab\x98\x58\x28\x35\x55\xae\x3b\xf5\xaf\x36\xef\x15\xea\xca\x2e\x79\xd7\xaf\x34\xbb\xe4\xd5\x52\xed\xd9\xe2\x33\x5b\x8d\x16\x1e\xc3\xf4\xca\xe3\x70\x3f\xfa\x1d\xba\xdf\xf2\x96\xdd\x2f\xcf\x44\x48\xca\xed\x6b\x82\x28\x31\x1f\x60\xa5\x34\x47\xda\x66\xc1\xdb\x07\x2c\x9f\x5a\x17\xbc\x2d\xbc\x7c\xe8\xfc\xa9\x50\xf1\xb6\x30\xf2\x3d\x54\xbc\x5d\xbe\x8d\xdf\x9c\x90\xd6\xf2\x48\x2e\x99\xf7\xf1\x55\x4f\x6c\xcb\x60\x56\x98\xf8\xb7\x52\x49\xb1\x1d\xc3\x5d\xe6\xb4\x3b\xc6\xaa\x8a\x4d\x37\xc8\xc1\x8c\xb0\x74\x89\xbd\xc5\x93\x5b\xbc\x92\xc3\x11\x6d\xa2\x51\xdb\xb3\x78\x34\x27\xb0\x24\x69\x2d\x99\xdb\xbd\x5b\x20\xfb\xba\xdb\x09\x87\x37\xaf\x82\xb0\xb8\xed\x51\xed\xc6\xe9\xe9\xad\xc6\x2a\x71\xae\x3d\x57\x11\xd0\xb8\x70\xb2\x33\xe4\x22\x5f\xb3\xa3\xa9\x26\x80\x9a\x4e\xa5\x5f\x44\x30\xe2\xc2\x48\x9b\xb1\x3d\xb3\xc6\x89\xd3\x79\xe8\xdc\x77\x1f\xce\x51\x07\xc5\x58\x61\x7d\x48\x05\x99\x09\x22\x09\x53\xc6\x16\xc1\x14\x55\x73\x34\xe5\x31\x49\x8c\x21\xc0\xf8\x0b\x2e\xb1\xc2\x17\x58\xe1\x84\x8f\xcf\x50\x07\xfe\xa9\x3f\xa6\x12\xe1\x44\x72\x84\xdd\xc6\x21\xb1\x6b\x02\xb3\xd8\xb1\x07\x8c\x22\x3e\x9d\xd1\xc4\x04\x5f\xfa\x3e\x5d\xca\x62\xfa\x4c\xe3\x14\x27\x88\x0f\xc1\x88\x72\xd6\x67\xdd\x67\xc2\x54\x0a\x3a\x2e\x4e\x12\x64\xbb\x75\x2f\x78\x16\x0c\x37\x4a\x49\xa7\x34\xc1\x42\x4b\x8f\x66\xb4\x37\xb6\x2d\xf4\x30\x21\xd9\x58\x61\x5c\x9a\x9a\x53\xfc\x44\x24\xa2\x0a\xcd\xb8\x94\x74\x98\xe4\xc7\xf8\xb1\x87\x60\xdc\x17\x57\x3d\x70\x94\x45\x0a\x71\xc3\x07\x5d\xe7\xd6\x6b\xec\x7a\x9c\x62\xc6\x08\x74\xcc\xd5\x84\x08\xdb\xbd\x7d\xf9\xb5\x7d\x5e\x8f\xd7\x36\xa6\xb1\x7b\xb9\xe8\xf4\x7a\xe8\xdc\xff\x5c\x1f\xc4\xb8\xf8\xe4\xaa\xf3\x78\x7d\xf1\xd3\xe0\xf6\xaa\x53\x11\x1c\x69\xb7\x55\x6b\xff\x99\x3f\xb2\xf5\x0f\xd3\xd1\xd5\x69\xde\xbf\xd1\xa1\x95\xc5\xa1\xb5\xb9\xa1\xad\xad\xa1\x9d\xa1\xa1\xde\xca\xb0\x83\xd8\xa5\xf6\xa6\x80\x2b\x2a\x8b\xb6\x80\xe3\xc8\x68\x2f\x0c\x59\xcf\x61\xd7\x86\x80\x6f\xce\x0a\xf0\x8d\x9a\x00\x82\xfe\xbf\x13\xba\xbd\x55\xe5\xff\xc0\x35\xff\x4d\x02\x31\xb3\x24\xad\x10\x89\xb9\x18\x89\x49\x42\x20\x66\x08\xc4\x6c\x4b\xa0\x10\x88\x19\x02\x31\x8f\x21\x10\xb3\x95\xa2\x15\x3c\xb6\x87\xe0\xb1\x3d\x70\x1d\xed\x90\x1d\xb6\x6f\x55\x73\x09\xce\xcb\xe0\xbc\x0c\xce\xcb\x23\x3d\xb9\xc1\x79\xd9\x9e\x46\xc1\x79\x19\x9c\x97\xc1\x79\x19\x9c\x97\xc1\x79\x19\x9c\x97\xaf\x69\x1a\x39\x84\xd8\xd0\x63\x76\xd9\x06\x4f\xec\x12\x4f\xec\x81\x2b\xf9\x07\xe9\x88\x7d\xab\x3a\x42\x50\xed\x83\x5f\x72\xa3\x69\x1f\x94\x52\xff\xd6\xee\xcd\xe0\x8a\x6d\x4f\x88\xe0\x8a\x6d\x4d\xaa\xe0\x8a\x6d\x20\x4e\x70\xc5\x06\x57\xec\x37\xe8\x8a\xa5\xf1\xc6\xb8\xf0\x6d\xf4\x16\x2d\x2b\xc6\x5d\x30\x0f\x65\xc6\x2d\xf1\x1b\x48\x8f\x58\x3e\x65\x16\xa0\x16\xfa\x4c\x2f\x3e\x0a\x45\xa6\x72\xc2\xfb\x50\x68\x36\xd1\x58\xb0\xd2\x1c\x5c\x01\x56\x81\x7e\x92\x1b\x15\x0f\x10\xc8\x72\x13\x1d\xc5\x9b\x98\xa7\xa6\x38\xed\xc3\xaf\x9e\x7c\x70\xd3\x0e\x82\x5f\x10\xfc\x82\x6c\xd3\x72\xc2\x41\xb6\x39\x5c\xd9\xe6\xb5\x14\x96\xc3\x3b\x9e\x47\x67\x9f\xd8\xb9\x58\x5a\x00\x60\x6e\xc4\x71\x34\xb5\xdc\xc0\x75\x97\xce\x12\x8e\xe3\x65\x01\x72\xbf\xa1\x5c\x56\x6b\x10\x37\x4d\xbb\xfa\x83\x03\x97\x36\x17\x62\xe3\xcc\xc8\xbf\x05\xe8\xc6\xda\xa9\xbf\x2a\x7a\x23\xec\xdf\x0c\xb5\x28\x83\x25\x2a\x44\x8f\xee\x4a\xcd\x2a\x6f\xf0\x56\x1a\x95\x3c\x0a\xc8\x44\x3d\xd2\x7d\xe8\x4f\x6f\x32\xfb\xee\x0d\x7b\xb2\x82\xb7\xaa\x39\xa4\x60\x4b\xd1\x6d\x7d\xf6\xa0\x15\x29\x3e\x1d\x52\x96\x05\xf3\xb8\x1d\xf2\x47\x47\xae\x3f\x02\x90\x9e\x05\xd7\x4b\xe6\xb9\x9e\x2d\xcb\xad\x65\x52\x18\x3a\xd5\x22\x70\x44\x84\x02\x7a\x73\xa6\xc8\x57\x25\xd1\x29\x4a\xe8\x13\x41\xef\xf5\x91\x47\x9d\xdb\xde\xfb\x13\xf4\xfe\x0a\xa7\x2c\x9a\xa0\x59\x82\x99\x7c\x7f\x30\xd2\x5b\x50\xc8\x43\x79\x82\xe0\x8a\xd9\x85\xf6\x1e\xcc\x15\x4b\xa7\x1d\xcc\x15\x6f\xc6\x15\xd3\x52\x67\x30\x19\x6b\x78\x4a\x0e\x45\x7b\x38\x1a\x80\x8f\xa0\x3d\x04\xed\xa1\x62\x6a\x41\x7b\xf8\x06\xb5\x87\xc3\xa0\x70\x50\x1d\x82\xea\x10\x54\x87\xa0\x3a\x04\xd5\x61\xeb\x64\x0c\xaa\x43\x93\xea\x00\x7f\x39\x50\x8a\x55\xf5\x88\xd6\xfa\x43\x0b\x04\x8a\xa3\x51\x1e\x82\xe2\x10\x14\x87\xa0\x38\xec\x5d\x71\x38\x98\x09\xbd\xbd\x64\xfa\x90\x8e\x1e\xd2\xd1\x43\x3a\x7a\x4d\x3a\xfa\xbe\x44\x36\x23\xaf\x1d\x59\xfc\xfd\x51\x08\x6d\xaf\x16\x80\xff\xf6\xc4\xb8\x90\x52\x10\x52\x0a\x82\x19\x32\xa4\x14\x04\x43\x5b\x30\xb4\x1d\xb4\xa1\xed\xb5\xac\xe7\x7b\x3e\x9e\x7b\x10\x4e\x0f\x3c\x62\xf9\x2f\xc7\x20\x81\xee\x31\xe6\x20\x58\xd9\x82\x95\xad\x9a\x32\xc7\xe9\x9e\x3f\x98\x5b\x3f\xa0\xc7\x04\x89\x3f\x04\x1e\x84\xc0\x83\xa5\xc4\x09\xfa\x50\xd0\x87\x0e\x4e\x1f\x7a\x45\x45\xe1\xe0\xc2\x94\x83\xc6\x10\x34\x86\xa0\x31\xbc\x59\x8d\xe1\x60\x28\x1c\xd4\x85\xa0\x2e\x04\x75\x21\xa8\x0b\xcd\xc4\x09\xea\x42\x50\x17\x82\xba\x70\xd0\xa1\xc9\xc7\xa2\x30\x04\x65\x21\x28\x0b\x87\xad\x2c\x1c\xcc\x84\x42\x10\x6f\x08\xe2\x0d\x41\xbc\xdf\x4c\x10\xef\x1b\x55\xd8\x77\x2a\xa6\x39\x16\xd9\x24\x78\x2d\xca\x4b\xbf\x2c\x30\xd6\x83\x15\x99\xf2\xd1\xae\x0b\x91\xb8\x2d\x52\xbf\x70\xf1\x34\x4a\xf8\xcb\x20\xd3\xea\x6c\x50\x78\xfe\x6f\x9b\xcf\xe7\xfd\x90\x0b\xcf\xde\x8f\x99\x10\xed\xfd\xe6\x5a\x2f\xc8\xd0\xb3\x74\x19\x92\xa6\x44\x5c\xa0\x74\x16\xc3\x9f\x51\x2a\x15\x9f\xd6\x4b\xd5\x9f\xb1\x8a\x26\x78\x98\x90\x4e\xd6\xef\x05\x67\x23\x3a\x4e\xcd\xfe\xf8\x0d\x58\x21\x76\x92\xcd\x89\x93\x8c\x34\x53\x74\xe3\x6b\x92\xc4\x1f\x61\x1c\x5f\xec\x9b\x79\x27\x47\x11\x80\xbe\x38\x6c\x33\x9d\x7d\x21\x73\x16\x77\xd1\xa6\x2c\xce\x6b\xed\x30\xc4\x9f\xc5\x33\xb1\x4c\x54\x05\x2b\x74\xa6\x99\xd0\x18\x36\xe7\xcb\x84\x82\x65\x0d\x2c\x71\x60\x7d\xca\x1b\x46\x2f\x34\x49\x40\xe2\x30\xb4\x38\xbc\x99\xb7\xd2\x5e\xec\xc4\xed\xd9\x7b\x13\xf3\x76\xcc\x63\xc9\xcc\xdd\x11\x34\x6e\x88\x23\x9d\xf6\x6b\x22\xec\x2e\x61\x64\xaf\x8a\xb3\x5b\x7b\x7d\xd6\xe4\x54\x7d\xf8\x9f\xca\x2b\xb1\x4d\x61\xc6\xd7\xbe\x07\x3f\x11\xf5\x66\x2e\xc1\x4f\x44\xed\xeb\x06\x7c\x8b\xd7\xde\xba\x77\x5d\x23\xe3\x13\x64\x44\x04\x61\x11\x39\xd6\x9c\xac\x85\x2b\xee\x68\xa7\xbb\xd6\xcd\x76\xb4\xb3\x5d\xc5\x80\xf5\xc5\x4c\xd2\x9a\xab\xa6\x8e\xe5\xfa\x53\x55\xdc\xba\x97\x0b\x2e\x30\x6b\xac\x7a\xe8\xdc\xff\x3c\xb8\xeb\xde\xdf\x3c\xde\x5d\x74\xcf\x51\x07\x0e\x3a\x7c\x63\xd8\x3b\xfd\x27\x34\x07\xf9\xb0\x99\x31\x4c\x98\x3b\x4e\x02\xab\x06\x37\xb8\xa6\x22\x3a\x45\x17\x57\x8f\xf7\x0f\xdd\xbb\x9a\x06\x2d\xf3\xa7\x6c\x8c\x14\x99\xce\x12\xac\x48\x8c\x9e\xd2\x21\x11\x8c\x80\x62\x95\xa4\x52\x11\x91\x3b\xc7\x4d\xa3\xdd\xff\xea\x5e\x3c\x3e\xf4\x6e\xae\x07\x7f\x7f\xec\x3e\x76\xcf\x91\xbb\x45\x74\xb3\x7a\x5c\x7a\x14\xf1\x9c\xe1\x29\x8d\xcc\x0f\x59\x9d\x4b\xf4\x7b\x4a\x52\x82\xb0\x94\x74\xcc\xa6\x84\xa9\x72\x8b\x6e\xc0\x57\x9d\x1f\xbb\x57\xc5\x96\x27\x04\xfd\xfc\xb7\x7c\x50\x09\x1e\x92\xc4\x7a\xeb\xc1\x01\xad\x2f\xaf\xbc\x23\xeb\xc6\x4f\x0d\x55\xff\xfe\xd8\xb9\xea\x3d\xfc\x3a\xb8\xf9\x38\xb8\xef\xde\xfd\xd2\xbb\xe8\x0e\xac\x31\xe6\xa2\xa3\xfb\x2d\xf4\x64\x6d\x36\xe8\xf7\x14\x27\x54\xcd\xf5\x3a\x4a\x73\xe9\xa3\x97\x09\x61\x28\x65\x70\x81\x18\x4b\x21\x66\x5e\xa7\x72\x46\x22\x33\xa3\xdb\xab\xc7\x4f\xbd\xeb\xc1\xcd\x2f\xdd\xbb\xbb\xde\x65\xf7\x1c\xdd\x93\x04\x6c\x69\x8e\xe8\xb0\x8a\xb3\x24\x1d\x6b\x4e\x30\x9d\x25\x44\x53\xc3\xd8\x0a\x87\x64\x82\x9f\x29\x17\xf6\x3a\x1e\xd3\x67\xc2\x0c\x1d\xf5\xb6\x32\xed\x3b\x9b\xd5\xc0\x23\xdd\xcd\xf5\xc7\xde\xa7\x73\xd4\x89\xe3\x6c\x0e\x12\xda\x28\xec\x1c\x77\x74\x4f\x8b\xc3\xa6\x23\x1a\x41\xf7\x66\x13\xf1\x67\x22\x04\x8d\x49\x69\x1f\x75\xee\xef\x7b\x9f\xae\x3f\x77\xaf\x1f\x80\x62\x4a\xf0\x44\xa2\x09\x7f\x01\x47\x2f\xcc\x10\xfc\xbf\xcf\x98\x26\xd0\x99\x5b\x2c\xce\xfc\xd3\xef\xf5\x6c\xcc\x9a\x22\x65\xaf\xee\xbb\x2c\x1c\xbc\x45\x6b\x5f\xf9\x24\x2d\xbe\x51\x3a\x16\x4d\x2f\x14\x76\xf9\xe2\x8b\xcb\x76\xeb\xe2\x17\xa5\xed\x56\x6f\xe3\x5c\xd8\x2f\xf5\x33\xcd\xd7\xba\xb5\x89\xb3\x48\xc3\x5d\xc8\xd8\xee\xeb\x77\x31\x49\x88\x22\xb5\x32\xf1\x25\x3c\x7e\x7d\x99\xd8\x8c\xe3\xcd\x88\xc5\x66\x3a\x41\x32\x0e\x92\x71\xeb\x09\x07\xc9\xb8\x6a\xc2\x6f\x44\x32\x3e\x40\xab\x8f\x63\x51\x07\x67\xf5\x09\xfe\x91\xd2\x4a\x1d\xe7\x15\xf8\x6a\xee\x91\xe0\x3f\x58\xed\x0a\x39\xfe\x79\x07\xff\x41\xf0\x1f\x54\xde\x24\x6f\xde\x6b\x70\x9c\x57\xc3\x1e\x9d\x06\x41\x8d\x68\x98\x6f\x50\x23\x8e\x6c\xb6\xc1\xc0\x1e\x0c\xec\xc1\xc0\x1e\x0c\xec\xc1\xc0\x8e\xd6\x35\xb0\xb7\xe0\xb2\xfb\x30\xa7\x1e\x68\x10\xf1\x5b\x71\x1b\x1c\xa7\x5c\xbc\x5f\xaf\x41\x10\x8d\x1b\xe6\x1b\x44\xe3\x23\x9b\xed\x01\xda\x45\x0e\xcb\xc2\x4e\xe3\x2a\x83\xc8\x1e\xa1\xe9\xdd\x48\xda\xc2\xd3\x3b\x82\xf6\xe2\xa3\x60\xe7\xaf\x86\x50\x1f\xf0\xdc\x03\x9e\x7b\x80\x6b\x09\x78\xee\x28\x00\x92\x04\x40\x92\x43\x06\x24\x69\xb1\x8c\x6f\x01\xcf\x7d\x3f\x16\x86\x37\x94\xa4\xec\x04\x43\x59\x88\xdd\xe0\x72\x59\xf0\x06\x58\x09\xd2\x59\xc2\x71\xdc\x04\x16\xe3\xe4\x48\x1f\x30\xa6\x41\xf4\x34\x6d\x7f\x59\x54\x9e\x0e\x56\xf2\x74\x63\x35\x23\xdf\x97\xf9\xe0\x60\x14\x2e\x37\xed\x83\x50\xb3\x5a\xd6\x6e\xdd\xba\xda\x55\xb5\xc9\x5b\x6b\x58\xf2\xaf\xc7\xb4\xcd\xf7\x04\xa9\xfa\xf6\x0a\x7f\x05\xe8\xa7\x00\xfd\x54\x4b\x99\xe3\xc4\x89\x3d\x18\x89\x2e\x28\xe9\x01\x53\x35\x60\xaa\xee\x42\xa3\x0f\x26\x8c\xa5\xd3\x0e\x26\x8c\x37\x81\xa9\xba\xa2\x0e\xb1\xc3\x9a\x0c\x9b\x69\x13\x47\x95\xb3\x17\xb4\x89\xa0\x4d\x54\x4c\x2d\x68\x13\xdf\xa0\x36\x71\x18\x14\x0e\xaa\x44\x50\x25\x82\x2a\x11\x54\x89\xa0\x4a\x6c\x9d\x8c\x41\x95\x78\x9d\x7a\x0d\x55\xfa\x44\xcb\x5c\xb7\xa3\x52\x26\x82\x22\x11\x14\x89\xa0\x48\x84\x8a\x14\xcd\x73\x0a\x15\x29\x42\x45\x8a\x50\x91\xe2\x0d\x54\xa4\xd8\xa7\x08\x57\x03\x83\x7c\x1c\xf1\xfb\x47\x21\xc4\xbd\x5a\x00\xff\xdb\x13\xe9\x42\x4a\x42\x48\x49\x08\x26\xca\x90\x92\x10\x8c\x70\xc1\x08\x77\xd0\x46\xb8\xd7\xb2\xac\xef\xf9\x78\xee\x49\x50\x3d\x92\x68\xe7\xbf\x1c\x83\x34\xba\xe7\xf8\x84\x60\x81\x0b\x16\xb8\x6a\xca\x1c\xa7\x2b\xff\x60\xa4\x80\x63\x2c\x49\x19\x34\x80\xf6\x84\x08\x41\x0a\xed\x69\x15\x82\x14\x1a\x88\x13\xf4\xa3\xa0\x1f\x1d\x9c\x7e\xf4\xca\x8a\xc3\xc1\x86\x38\x07\x0d\xc2\xbc\x17\x34\x88\xa0\x41\xbc\x51\x0d\xe2\x60\x28\x1c\xd4\x87\xa0\x3e\x04\xf5\x21\xa8\x0f\xcd\xc4\x09\xea\x43\x50\x1f\x82\xfa\x70\x34\x61\xcd\xc7\xa4\x40\x04\xe5\x21\x28\x0f\x87\xad\x3c\x1c\xcc\x84\x42\x00\x70\x08\x00\x0e\x01\xc0\xdf\x4c\x00\xf0\x1b\x55\xe0\xb7\x2b\xb6\xfd\x9b\x25\xd4\x3b\x4f\xc0\xc8\x24\x91\x77\x3f\x26\x7c\xf8\x30\x9f\x11\xfd\xff\x97\x74\x4a\x98\x04\x4a\x50\x35\xf7\xc5\xb4\x9a\x0d\xb5\xb8\x95\xde\xdd\xf7\xae\x3f\x5d\xf9\x75\x47\xde\x7d\x7e\xbc\x7a\xe8\xdd\x76\xee\xb2\xe5\xce\x66\xe5\x2f\xb1\xfd\xae\x20\x69\xda\x93\x7c\x47\xb4\x4a\x0d\xcc\xe0\x5e\x61\x95\xca\xf5\x46\x76\xd7\xbd\xef\xde\xfd\x02\x75\x53\x06\x97\xbd\xfb\xce\x8f\x57\x85\x7d\x5e\x78\xde\xb9\xf8\xfb\x63\xef\xae\xfe\x79\xf7\xbf\x7a\xf7\x0f\xf7\x75\x4f\xef\xba\x57\xdd\xce\x7d\xfd\xd7\x1f\x3b\xbd\xab\xc7\xbb\x6e\x23\x3d\x1a\x47\xdb\xac\x5b\x49\x20\x12\xd4\x0e\x40\x91\x65\x86\x22\xa7\x21\xca\xa4\x62\xc7\xe5\xab\xfa\x3a\x47\x8f\xd6\x54\x41\x6d\xe3\xe6\xde\xf0\x1a\x32\x3a\x56\x4c\x25\x1e\x26\x24\x5e\x68\xc9\xd1\xb0\xae\x25\x5c\x18\xd4\x0b\x96\x9e\x24\xad\x59\x79\x64\x8e\x0f\x82\x6a\x4e\x8a\xb0\xb8\xa2\x0f\xb3\x0e\xb5\x3d\x30\xcd\x92\xe9\x33\x29\xf4\x14\xa5\x42\x10\xa6\x92\x39\x22\x5f\xa9\x54\x72\xa1\x51\xb7\x7c\x75\xcd\x5a\x86\x90\x35\x38\xc1\x12\x0d\x09\x61\xc5\xf1\x0b\x92\x10\x2c\x2b\xc6\x6c\x57\xbf\x1d\x59\xb2\xb5\xb2\x46\x26\x73\xc7\x8e\x30\x4d\x52\x41\x4a\xa7\x85\x4f\x67\x58\x50\xc9\x59\xf7\xab\xbe\xa2\xf5\x41\xbe\x81\xcf\xb9\x58\xef\xc4\x74\xff\xee\xef\xe0\xeb\xe2\x3f\x3f\x3d\x14\xff\x55\x38\xf3\x57\x0f\xc5\x7f\x35\xef\x75\xaf\xe1\xf2\xce\x3e\x45\x9f\x1e\xce\xd1\x27\x80\x18\x15\xe8\x61\x82\xcd\x8e\xbd\x7a\x38\x47\x57\x44\x4a\xf8\x25\xff\x58\x51\x95\xc0\xdc\x7e\xa4\x0c\x8b\x39\x72\xd3\x37\x25\xc1\x70\x34\x41\x24\x23\x4d\x99\x78\xec\x1f\x29\x03\x8b\x44\x4e\xbd\x2b\x3e\xa6\x11\x4e\x36\x23\x62\xe7\xba\xc0\x07\x6e\xee\x1a\x49\xe1\xbf\xbd\x48\x8b\xce\xf5\x25\x94\xdb\x72\x43\xad\x98\xf9\x35\x91\x7a\x93\x44\x9c\xc5\xd6\xa7\xa6\x85\x9a\xb9\xa7\xab\xfc\x83\x43\xc9\xb2\x54\x52\x36\xd6\x2d\xa2\x0f\xe8\xe6\xae\xcf\x6e\x44\x6c\xec\xbb\x44\x0b\xf9\x66\xcf\x51\x89\x18\x57\x88\x4e\x67\x5c\x28\xcc\x94\xd6\x6f\x40\xba\xb1\x14\x31\x1c\xe0\x82\x4f\xa7\xa9\xc2\xfa\xa0\x2d\x10\x95\x19\x2b\xcf\x3d\x51\xbd\x18\x1c\x61\x15\x34\x34\xe2\x4f\x3e\x97\x99\xd0\xed\x6b\xd1\xab\x68\x1a\xa0\xf1\x82\x86\xee\x9a\xc0\x42\xe0\xe2\x05\xfc\x8e\x2a\x32\x2d\xbf\xdf\xf2\xda\xfd\x57\xa5\xdd\xe3\xc2\x64\x45\x10\xd1\x11\xd1\x84\x2a\x12\x29\x7d\x04\xd7\xda\x13\x8f\xd7\x3f\x5f\xdf\x7c\xf1\x05\xa3\x77\x9d\xcf\x97\xff\x51\x80\x81\xed\xdc\x7d\x5e\xf8\x61\xf0\xcb\x7f\x2c\xfc\xf2\xff\x6f\xdc\x4f\xe5\x9e\x16\xcc\x17\xde\x5c\x4e\x41\x53\x00\x53\xb7\x9b\x2a\xa2\x53\x3c\x26\x48\xa6\x33\xbd\x03\xe4\x59\x71\x7d\xb5\xa4\x7c\xc5\x71\x4c\xd9\xd8\x54\x95\xba\xa2\x8a\x08\x9c\x7c\xc6\xb3\x8f\xce\x2c\xbf\x06\x75\xfe\xcf\x7d\xa1\xb2\xd9\xbb\x5f\x3b\x9f\xfd\xda\x68\xef\x6e\xef\x6e\x1e\x6e\x1a\x67\x5d\x68\x61\xf1\x18\xe9\xc7\xe7\xf0\xbf\xe8\x03\xd2\xad\x67\x02\xfd\x94\x28\xac\x15\x1d\xf4\x9d\x29\xc4\x93\x65\xc2\x50\x96\xc0\xa9\x99\x09\x3a\xa5\x70\xa5\x18\xc3\xe4\xf7\x46\x67\xc8\x94\xa2\xec\xdc\x98\x0f\xc0\x08\xe0\x2e\x65\x16\x63\x11\xa3\x7f\xc8\x72\xa1\x3d\xb0\x87\x9b\x1f\x48\x8c\x4e\xd1\x44\xa9\x99\x3c\xff\xf0\xe1\xe5\xe5\xe5\x4c\xbf\xad\x05\xd8\x0f\xfa\x8f\x53\xc2\xce\x26\x6a\x9a\x98\xc2\x82\x9a\x0a\xe7\xe8\x56\x70\x7d\x85\x80\xdd\x81\x08\x8a\x13\xfa\x4f\x12\xa3\xa1\xe1\x7f\x7c\x84\x7e\x8b\xb8\x20\x67\xf9\xc2\x58\x5b\x99\xbd\x47\xac\x3d\xed\x83\x7e\xa9\x82\x99\x94\xd7\x13\xc5\x24\xa2\xb1\x15\x33\x08\x8b\x38\x18\x54\x8d\x0b\x46\xb7\xe7\xaa\x17\x69\x45\x6d\x96\xaa\x9c\x9c\x9e\x0e\x86\x63\xe2\xd5\x05\xb4\xf2\x75\xb6\xe1\xb4\x3e\xd7\x33\xda\x78\x2a\x89\x80\xbb\x15\xc3\xad\xea\x5e\x9d\xe9\x09\x47\x3c\x41\xc3\x74\x34\x22\xc2\x0f\x1f\x38\xd1\x4a\x1a\x95\x48\x90\x88\x4f\xa7\x20\x31\xe8\xaf\x52\x69\x76\x35\x50\xcc\x8e\xf6\xac\xcf\x60\xfd\xb5\xf6\x06\x3b\x20\xe6\xc0\xea\x18\x21\x31\xc2\x6c\x6e\xba\x19\xa6\x23\xbf\x7d\x53\xb0\x13\xc7\x88\xaa\x3e\xeb\x24\x09\x12\x64\xca\x15\xf1\xea\x32\x81\xab\xb3\x48\x70\x60\x91\x82\xcc\x12\x1c\x91\xd8\xec\x87\x84\x47\x38\x41\x23\x9a\x10\x39\x97\x8a\x4c\xfd\x06\xbe\x03\x13\x94\xa6\x19\x95\x28\xe6\x2f\x2c\xe1\xd8\xce\xa3\xfc\xd9\xf7\xc5\xd3\xd8\x75\xc5\x14\xbb\x42\x70\x01\xff\xf3\x33\x65\xf1\xd6\x38\xd4\xe3\x7d\xf7\xce\xff\xf7\xfd\xaf\xf7\x0f\xdd\xcf\xab\x71\x9f\x6c\x67\xc1\xf0\xc0\x34\x71\x8e\xee\x0d\x11\xb8\xd0\x12\x91\xa8\x99\xd4\x67\xbb\x95\xf2\x1f\x78\xbc\x26\xf7\xfd\xdc\xb9\x7e\xec\x14\x38\xca\xfd\xc5\x4f\xdd\xcb\xc7\x92\x3e\x60\xe7\x57\x90\xe1\x8d\x56\xeb\xff\x76\xf1\x53\xef\xea\x72\x50\xa1\x07\xbf\xbb\xeb\x5e\xdc\xfc\xd2\xbd\xcb\x55\xd6\x4a\x12\x95\x06\x53\x66\x56\x0f\x86\x29\x4d\x78\x8c\x86\xf3\xea\xd2\x99\x5a\x72\x4e\xc0\x73\x9e\x17\x8f\x35\xad\x9e\x03\x6f\x72\x55\x4c\xf3\x2f\xa6\x3c\x26\x27\xf6\x1d\xa8\x39\x6a\x6c\x46\x46\x62\xae\x6e\x58\xf7\x8e\x99\x67\x7f\x31\xe5\x40\x33\xc2\x9d\xa3\x0e\x92\xfa\xc5\x54\x1f\x6a\x41\xc7\x63\xb0\x87\x96\x86\x6a\x5a\xb3\x9f\x02\x79\xe1\x3b\xb3\xfe\x33\xc1\xe1\x9c\xeb\x6e\xad\x21\x3d\x33\xb6\x98\x0f\xa1\x3e\x6d\xb1\x45\x81\xc1\x8e\x52\x31\x34\xb7\x58\x9a\x08\xb5\xf4\x32\xe7\xd1\x98\xc1\xf4\xe1\x02\xb6\x25\x8d\x19\x77\x26\xc8\x33\xe5\xa9\xf7\xa9\x2d\x81\x5a\x58\xf1\xca\xe6\x73\x02\x00\xd9\x8c\xad\xa7\xd4\x4c\xb6\x3d\x2a\x5b\xd0\x2c\xec\x19\x5a\x18\x09\x3e\xad\x68\xa3\x78\x4c\x7a\x37\xf7\x4a\x60\x45\xc6\xf3\x4b\xcb\x32\xd6\x3f\x1e\x97\x37\x5f\xae\xaf\x6e\x3a\x97\x83\x6e\xe7\x53\xf1\xc4\x67\x4f\xee\x1f\xee\xba\x9d\xcf\xc5\x47\x83\xeb\x9b\x87\x81\x7b\xa3\x71\xcb\xd7\x74\xb0\x78\x4f\x17\x5f\x3c\x47\x9a\xe5\x02\x6b\x7c\xa1\x49\xa2\x2f\x13\x8f\x3f\x0e\xc9\x88\x0b\xc3\xe7\xa7\x2e\xd0\xc4\x8a\x30\x8e\xb6\x56\x17\x2b\xcd\xe2\x1c\x0c\x7e\x55\x4d\x1a\x63\xbe\x12\x04\x4f\xe1\x9e\xc0\x0c\x75\x59\x7c\x7a\x33\x3a\xbd\x37\x3f\x4e\xb1\x78\x22\x22\xfb\xf4\x45\x50\xa5\x08\x2b\xa8\x74\xd8\x0d\x39\x53\x12\xf3\x0e\xce\xd0\x9d\xe6\xfb\xfa\xfd\xec\x52\xd3\x9b\x3d\x26\x0a\xd3\x44\xda\xc1\x16\xe8\x7a\x8e\xae\xb0\x18\xe7\xe6\xc5\xef\xf8\x68\x64\x1a\xfb\xde\x0c\x43\xdf\x61\x85\x59\x54\xf0\x5e\xbd\x35\xdc\xbd\x08\xfd\xd9\x97\x33\x79\x78\x71\x57\x3d\xce\x36\xdb\x53\x8f\xb7\x40\x71\xa3\xb1\x17\x74\x43\xfb\xa4\x62\xaf\xc1\xc4\xcd\xe3\xe6\x4b\xa6\xba\xed\xc5\xed\x54\x7c\xb1\x62\x3b\x99\x5a\x26\x7a\xe5\x47\x5a\xdb\xac\xd8\x4b\xe4\x2b\xb5\x06\x03\x7f\xdc\xa5\x2d\x94\x37\x03\x56\x63\x3c\x9b\x11\x2c\x64\xd5\x6a\x17\xc5\xc0\x9a\xb5\x37\x3d\xf9\x7d\xd8\x45\x76\xfd\x9c\x20\xce\xc0\xe0\x90\x09\x11\xa5\x1d\xd9\x62\x0f\x98\xb6\x16\x76\xc0\x2d\xd4\xa5\xbe\xb1\x35\xa0\x3f\x53\xa9\x95\x46\xf3\xe3\x8f\xb6\x38\xf5\x7a\x1b\xe2\x63\xa7\x77\x55\x12\x2e\x06\x97\xdd\x8f\x9d\xc7\xab\x66\x33\x61\xe1\xbb\xf2\x12\xa3\x53\xa4\x9f\x17\xc3\x01\xe8\xc8\xdc\x19\xae\xc4\xb6\x51\x69\x09\x03\xa3\x95\x2d\x7f\x6b\xcc\xf0\x31\x99\x25\x7c\x3e\x25\x0c\x4c\x3c\x85\x9b\x50\xd3\x73\x84\xa9\xbd\x5a\xbc\xc1\x82\x15\xc7\x9a\xdd\xe0\x1a\x3b\x75\x75\xbd\x49\x9c\xdd\xbc\xc5\xb2\xde\x25\xd6\x7d\x6b\x9c\x82\xf6\xff\xee\x15\x56\x6b\x9e\xb1\xce\xc5\x43\xef\x97\x6e\x51\x3f\xbc\xf8\xa9\xf7\x4b\x95\x54\x33\xf8\xd4\xbd\xee\xde\x75\x1e\x96\x08\x27\xa5\x26\xab\x84\x13\xa9\x07\x5c\x76\x0a\x53\x99\x05\x3a\x45\xa6\x38\x38\xa2\x4a\xa2\x67\x2a\xe9\x90\x42\x29\x75\xeb\x60\x7d\xec\x01\x67\x7d\xc6\x09\x8d\xa9\x9a\x3b\xf1\xc5\xf4\x5b\x5c\x47\xcd\x49\x6d\xfb\xc6\xec\xe0\xbb\x5d\xc1\xca\x67\x16\xc7\x4d\xfa\x1c\x81\x6e\xfb\x0c\x4a\x9b\xf7\x19\xd3\x82\x34\x1b\x13\x61\x86\x03\x4e\x25\x7f\x2c\xde\x73\x3d\x2a\x5f\x58\xc9\xa9\x96\x09\xad\x63\xc2\x88\x80\x72\xf9\x59\x27\x46\x90\x12\x84\xbd\xd7\x32\xd7\x2c\xa1\x11\x55\xc9\x1c\x45\x60\xc3\x02\x73\xe6\x14\x33\x3c\xb6\xc2\x01\xa8\x39\xa5\x2d\xf1\x77\x53\x6f\xfe\x66\x64\x4d\xfb\x0f\x94\xac\x79\xcc\x1e\xaf\x2f\xbb\x1f\x7b\xd7\xc5\x2d\xf0\x53\xef\x53\x41\x84\xfd\xdc\xbd\xec\x3d\x16\x6e\x73\x2d\xc9\x36\xcb\xf5\xe5\x66\x2b\x8e\x62\xf6\xd2\x39\xba\x34\x9f\x9e\x6b\xe2\x56\x14\xd3\xcf\x94\xdf\x12\x1d\xee\x5c\xa4\xa1\xfb\xa3\xcb\x94\xa8\xf4\x4b\xb4\x35\x21\x59\xaf\x50\xc1\x86\x54\x1d\x81\xb1\xd0\xf7\x75\xd9\x57\x5e\x9e\xb2\x7b\x11\x42\x64\xcf\x72\xcb\x92\x1f\x9a\x01\x46\x83\x3a\x23\x56\x85\xb7\x2e\x67\xd8\xbf\x80\xe7\x7d\x9a\x4a\x65\x3c\xa4\xb0\x39\xd1\xd3\xdf\xa4\x26\x28\x78\x50\xcf\xd0\x3d\x21\x7d\xe6\xac\x07\x63\xaa\x26\xe9\xf0\x2c\xe2\xd3\x0f\x4f\xe9\x90\x08\x46\x14\x91\x1f\xf0\x8c\x4e\xb1\x96\xa4\x89\x98\x7f\x18\x26\x7c\xf8\x61\x8a\xa5\x22\xe2\xc3\xec\x69\x0c\x81\x3d\xce\xd3\xf5\x21\x6b\x76\xcc\xff\xfd\xea\x2f\x3f\x9c\x5e\xfd\xed\x87\x77\x8b\x16\xb2\xba\xf5\xef\xb2\x08\xcf\x64\x9a\xd8\x40\x40\xe1\xd3\xc6\x1d\xf9\x94\x2c\x5b\xef\xeb\xe2\x72\x6d\xa6\xbf\x5e\xdc\x3e\x16\x2c\xd6\xc5\x7f\x7e\xee\x7e\xbe\xb9\xfb\xb5\xc0\x29\x1f\x6e\xee\x3a\x9f\x0a\x0c\xb5\x7b\xfb\x53\xf7\x73\xf7\xae\x73\x35\x70\x0f\x37\xb1\xbd\xfd\xcc\xf8\x0b\x2b\x92\x46\x3a\x0e\xb8\xd0\xd3\x39\xfa\xc8\x05\xfa\x39\x5b\xc9\xd3\x21\x96\x70\xc5\xb8\x3b\x4b\x9e\xa0\x19\x8f\x81\xf1\x22\x32\x9b\x90\x29\x11\x38\xb1\x36\x03\xa9\xb8\xc0\x63\x73\xd3\xcb\x48\x60\x15\x4d\x90\x9c\xe1\x88\x9c\xa0\x08\x76\xc3\xf8\x04\x16\x05\x54\x2d\x3e\x2e\xdb\xf9\xee\x52\xa6\xe8\x94\x38\x15\xdc\xfe\xf3\xc1\x2c\xc6\x1a\x8b\x73\xf3\xf0\x53\x51\xd8\xfb\x78\xf5\xeb\x43\x77\x70\x7f\xf9\x73\x23\x3d\xcd\x67\x85\x91\xdd\x43\x5c\xd5\x05\x4f\xd2\x29\xf3\xff\x5e\x7f\x6c\xbd\xeb\x87\xee\xa7\xf2\xe8\x6e\x3a\x0f\xc5\x9d\x71\x57\x8c\xdb\x7b\xf7\xe3\xcd\xcd\x55\xb7\xe0\xe9\x7e\x77\xd9\x79\xe8\x3e\xf4\x3e\x17\xf6\xcf\xe5\xe3\x1d\xf8\x80\x1a\xa7\xe9\x46\x50\x31\x51\x3d\x2d\x7f\x9a\xdb\x66\x85\xad\x38\x51\xc7\x86\xff\x9b\xb3\x7c\xea\xe1\xe5\x98\x28\x37\xb0\xea\x9c\x66\x26\xd5\xc8\x8c\xb4\x92\x1d\xaa\xe2\x32\xa1\x7a\x76\xdc\xb8\xd0\x4d\x5c\xf9\x21\x1b\x02\x8c\xeb\xcc\x28\xdb\x38\x49\xf8\x8b\x89\x50\x9e\x52\x7d\x2b\xdb\x62\xeb\xfa\x15\x99\x7b\x08\xcf\x2a\x38\x5e\x71\x59\x48\x24\x88\xfa\xcc\x53\xa6\xd6\xdf\x72\x9d\xeb\x02\xdf\xe9\x5e\xff\x32\xf8\xa5\x53\xdc\x81\xbd\xab\x66\x56\xe3\x37\x51\x71\x15\x77\xae\x7f\xcd\x2e\x61\x88\x63\x3f\xc9\x34\x54\x23\xbb\x46\x09\xd5\x62\x6f\x84\xb5\xf6\x9a\x80\x44\x83\x08\x05\x93\xc3\x54\x4f\x0e\xe2\x66\x67\xc6\x9f\x64\xf8\x93\x19\xe4\xb9\xfb\xa3\xd4\x9e\x04\xba\x80\x35\xd5\xa5\x09\x40\x3b\x56\xab\x66\x88\xb0\x67\x2a\x38\x03\x61\xfb\x19\x0b\xaa\xa5\x71\xd3\xb2\x9e\xeb\x39\xfc\xef\x6a\x6d\x82\x61\xb4\xc4\xb8\xee\xb9\x50\x97\x59\x7c\xf2\x7a\xd6\x90\xaa\x38\xdd\xc5\x08\xdd\x6a\x43\xc7\xe2\xb7\x15\x8b\xb3\x61\x1c\x73\x71\xc2\xbf\x27\x97\x14\x27\x9a\x01\x6c\x4f\x5e\xec\x5c\xdf\xf7\x8a\xf2\x63\x51\xcd\xf0\xf8\xf2\xda\xf2\x22\x18\x2a\xcd\xc8\x9d\x32\x71\xff\xf7\x2b\xa3\x5d\xe8\x4d\x62\xcf\xad\xa7\x58\x80\x00\xe4\xaa\x90\xce\xb0\x90\xa5\x2f\x24\x02\x24\xb3\x3c\x8e\x4c\xdf\x59\x10\xa5\xf5\xcc\x69\xdc\x67\xe4\xeb\x8c\x30\x09\xc1\x01\xe6\x3e\xcb\x7d\xed\xf2\x0c\xf5\x46\xc0\x12\xf4\xeb\x0c\xa5\xcc\x3a\xc0\xf4\x85\x6b\x06\x79\xa2\x45\x59\x3b\x84\x4c\x43\x04\xc3\x0b\x23\x2e\x06\x2c\x1f\x7c\x9f\x7d\xc9\x9c\x68\xf0\x68\xc4\x35\x03\xd2\xab\x68\xdb\x3b\x47\x98\x49\x7a\x82\xb4\xc2\x52\x5e\x53\xc8\x88\xd0\x0a\xa5\x8d\x4c\xd3\x9c\xc6\xfe\xb9\xff\x6b\x60\x21\xfc\xd9\xbf\x0c\xaa\xef\x82\xd2\x55\x50\x23\x1a\x27\xc6\x63\x32\x68\x7f\x27\x44\x5c\x10\xeb\x67\x59\xf9\x1a\x58\xc6\xd8\x1f\xb0\x7c\x5a\xf0\x3d\xf4\x98\x54\x98\x45\xe4\x22\xc1\x72\xcd\x20\x24\x67\xe3\x38\x29\x4a\x1c\x77\x77\x8f\xb7\x0f\xbd\x1f\x97\x70\xf9\xf2\xc7\x8b\x61\x40\x51\x92\x3a\xf7\xdc\x50\x70\x1c\x23\xcd\x3e\xc7\xdc\xb8\x02\xad\xe0\x6f\x4e\x90\x59\x13\x2a\xbd\x38\x51\x2c\x9f\x0a\x46\x6a\x9b\x65\x61\xed\x1c\xbe\x2b\x81\x5a\x42\xa0\x48\x53\x02\x79\x26\x0f\xb7\xd4\xe0\x59\x34\x51\x74\xd6\xba\x35\x4b\xb0\x1a\x71\x31\x35\x5c\xbe\x30\x69\xd3\x78\x73\xa3\x94\x29\x22\x44\x3a\x53\xa0\xb2\xeb\xb1\x96\xa5\x54\xbd\x64\x57\x7c\xfc\x99\x48\x89\xc7\x64\x13\x07\x74\x95\xf2\x70\xff\x8b\xff\x4f\x70\x30\xb7\x91\xfd\x0b\x23\x74\x01\xfd\x6e\x3f\xdd\xb0\x8f\x26\x90\xe7\x96\x27\x34\x5a\x33\xe0\xee\x63\xa7\x77\x35\xe8\x7d\xd6\x4a\x7c\xe7\xa1\x7b\x55\x10\x25\xe0\x59\xe7\xe3\x43\xf7\x6e\xd0\xfd\xaf\xee\xc5\xe3\x43\xe7\xc7\xab\xee\xe0\xfa\xe6\xb2\x7b\x3f\xb8\xb8\xf9\x7c\x7b\xd5\x5d\x12\x99\x53\xdb\xf8\xa2\x75\xb5\xfc\xea\xf9\xc2\x2f\xb0\xc2\x9a\x97\xf9\xf6\x32\x48\x86\xc3\x34\x01\x27\x38\x37\xce\x70\x8c\x18\x8f\x09\xfc\x2c\x9d\x75\xc6\x65\x9b\x9c\xa1\x9e\x7a\x9f\x24\x08\xa7\x8a\x4f\x31\x78\x6d\x92\x79\x9f\xe1\xa1\x66\xad\x38\x49\xbc\xf0\x2e\x91\x32\xa6\x59\xac\x6e\x4c\x9a\xf8\xe2\x84\x68\x76\x3e\xf3\x72\x18\xad\xdf\x60\x44\x19\x04\x10\x4f\xb1\x78\x32\x6e\xa6\xbc\xcb\xfc\x50\x48\x84\x65\x9f\xe9\x71\x11\x6b\x18\x6a\x43\xe1\xf3\x56\x6f\xd5\x52\x67\x8a\x9f\x88\xa6\xca\x34\x8d\x26\x68\x26\xf8\x58\x10\x29\xad\x6d\x39\xc2\xcc\x04\x20\xd8\xd7\xf5\x35\xd4\x67\x8c\x6b\x52\x38\x13\x76\x4c\x66\x84\xc5\x84\x45\xd4\x64\x2b\x82\xef\x3e\x33\x6d\x8e\x05\x9e\x4d\x90\xe4\xe0\xf4\x06\xb2\x83\xfd\xca\x7c\xe4\x6e\x32\x33\x63\xf3\xd8\xb7\x40\x8b\x54\xf3\x89\x1b\x90\x13\x0d\x95\xe1\x63\x77\x19\x3a\xb7\x8b\xb1\x03\x4e\x67\x09\x81\x2e\x2d\xc9\x61\x31\x34\xad\x0b\xeb\xa1\x97\xa9\x6a\x11\xf4\x85\xed\xc6\x8c\xa5\x1d\xd1\x59\x85\x65\xdb\x1e\x29\xf4\x13\x66\x71\xa2\x5b\x71\x3e\x8c\xe2\x59\x84\x0c\x9b\x8e\xde\x35\xee\x34\x6e\x72\x8b\x46\x38\x95\x9b\x5c\xa3\xa5\x14\x53\x63\x15\x3c\xcd\x83\x42\x60\x7b\xdb\xfc\x52\xa0\xee\x4c\xb3\x48\x9c\x70\x4b\x25\xf3\x7a\x6a\x83\x96\x61\x34\x35\xd7\xec\x4c\x50\x16\xd1\x19\x4e\xd6\xd2\xfd\x4a\x39\x06\x36\x74\xff\x3b\x3a\xd2\xdb\xe7\xfb\x05\xb7\xad\x22\x62\x0a\xe9\xe4\x76\x98\xd9\x12\xae\x60\x49\xb2\xc9\x1a\x44\xe6\xd1\x24\x58\xf0\xd4\xf8\xe3\x80\x2e\x24\xae\x38\xaa\x67\x55\xcb\xad\x4f\x06\x2e\x06\x40\xaf\xb1\xd8\x26\xf2\xa7\x8e\x7e\xa5\x56\x6c\xef\x26\x18\x0f\x27\xb7\xd5\x6d\x56\xad\x80\xf7\xf0\x5f\x4d\x7b\xe7\x33\x9e\xe9\x3d\x13\xa5\x52\x81\xa7\x38\x9b\xa3\x55\x92\x4a\xa1\xec\x9e\xef\x3c\x0b\x6a\x6f\xbf\x1a\x39\x09\x6d\x00\xd4\x62\x27\x85\x18\x02\x0f\x11\xc0\xee\xf1\x51\xaa\x65\x59\x84\x21\x0a\x01\x7d\x47\xce\xc6\x67\xe8\xe6\x97\xee\xdd\x5d\xef\xb2\x7b\x82\x3a\xb7\xb7\xdd\xeb\xcb\x13\x44\x54\xf4\xbd\x8b\x59\xb4\x01\x4b\x7d\xa6\xb8\x95\x56\xe6\x68\xc2\x5f\x80\x37\x12\x31\x26\x85\x39\xbb\xe8\x26\x08\x55\x1e\x53\xa9\x6c\xf8\xac\xe6\x2b\xf9\xb0\xb4\xbc\x5f\xb9\x43\x52\x35\xd9\x64\x6b\x60\x29\xd3\xa9\xd6\x65\x07\x14\x4f\x07\x82\x27\x9b\x30\x85\x4b\x98\x0a\xa8\xcb\x19\x98\x02\xc5\x53\xa4\x9b\xb5\xa1\x20\x99\xcb\x31\x13\xe9\xb4\x60\xa4\xf9\xb2\xbe\x37\xbd\x7b\xcb\x79\x1f\x6c\x3c\x1a\x75\x21\x10\x00\xb6\x50\xc3\x2a\x72\xb3\xf1\xc0\x5a\xea\x07\x38\x8a\xb4\xca\xbd\xe5\x49\xe5\x1d\x65\x2e\x01\xdb\xd1\xce\xa6\xb9\x6c\x9f\xbb\x61\xce\x34\x07\x83\x60\x60\x7d\xe5\x4a\x1e\xd1\xbc\xfd\x8a\x7e\x87\xf3\x85\x5e\x61\xcb\x9e\xf5\xd9\xa3\xcc\x4c\x2a\xe6\x12\x96\x04\x56\x52\xa2\x97\x09\x81\xa3\x31\x47\x13\xfc\x4c\x0a\x5d\xba\x1c\x12\xdd\xf0\x9c\xa7\xa2\x8a\xd1\xf5\xd9\x25\x99\x09\xa2\x25\xfd\xb2\x03\x25\xdb\xd3\x77\xc5\x9d\x18\xf6\x75\xd8\xd7\x47\xbf\xaf\x2f\x92\x54\x2a\x22\x3a\x52\xd2\x31\x18\x12\x37\x12\xe0\x4c\x63\x83\x19\xe7\xc9\xa0\x85\x4d\xa4\x3d\xc5\x0b\x9e\xb0\x42\xc0\x87\x34\x48\x07\x3c\x05\xf9\xa8\x70\x6d\x72\x7d\xd7\x79\x99\xc3\x76\x78\x0d\x64\x70\x2e\xb3\x8e\x03\x94\xd8\x48\xc4\xc1\x55\xad\x34\xb5\x84\x76\x2e\xe6\x5c\x18\xf9\x26\x73\x97\xe5\x43\x2c\x1d\x26\x27\x8a\x50\xe6\xc8\x96\x7f\x04\xfb\x59\x13\xd8\xc8\x1d\xbf\xa7\x5c\x61\xf9\xfd\x59\x9f\x69\x21\xea\x89\xcc\x8d\xb9\x55\x8b\x29\x7f\xd0\xb2\xf8\xa9\x24\x4c\x42\xb8\xf7\x1f\x8c\x7b\x4e\x6f\x71\x67\xae\x36\xaa\x29\x99\xce\x12\xac\x20\xe8\x3a\xeb\x05\x42\x74\x6d\xa3\x56\x4a\xca\x03\xa0\x41\xce\x37\x73\xb1\xcf\xcc\xf0\xc7\x44\x41\xe6\xb8\xa2\x0a\x74\xa6\x38\xd5\xe4\x59\x1c\xfa\x52\xd3\x95\xd9\x15\x82\x83\x9f\x24\x4e\x37\x63\xfc\x72\xb1\x8d\xa5\x9c\x31\xd3\x16\xee\x6d\xcc\xfb\x07\x67\x37\x8a\x04\x67\xa5\x68\x18\xad\xcc\x99\x95\x1e\x1a\x76\xe0\xfc\xd7\x84\x9d\xbd\xd0\x27\x3a\x23\x31\xc5\x10\x01\xaf\xff\xf5\x41\xcf\xeb\xdf\x2f\xee\x6e\xae\x07\x79\x26\xcf\x7f\xf6\x59\x27\x91\x3c\xcb\x52\x40\x8c\xb3\x2c\xdc\x7e\x26\x88\x13\x09\xed\x5c\xc0\xea\x9a\x9b\x11\xfb\xac\x6e\x04\x31\x8f\xe4\x19\x7e\x91\x67\x78\x8a\xff\xc9\x19\xb8\xd2\x3b\xf0\xe7\x45\xc2\xd3\xf8\x0b\x56\xd1\xe4\x03\x9c\x6b\xf5\x81\x3c\x13\xa6\x8c\x9b\x4a\x93\x2b\x86\x9c\x64\x09\xd1\xfa\xff\xae\xc7\x9c\x27\x15\x49\xad\xc9\x46\x64\xa6\xd0\xff\x2b\xc8\x90\x73\x55\x7d\x49\xf1\xd1\x48\x92\x95\x2e\xa4\x5c\x49\xbb\xbf\x41\x7f\xfb\x8f\x1f\xfe\xa4\xb7\xd0\x3a\x34\xee\xdd\xdf\x0c\xf4\xf7\xff\x7e\x69\xbf\x97\x2b\xb0\x3b\x93\x4a\x2b\xad\xab\xd9\x50\xc3\x04\xce\xa7\x0c\x6e\x3f\x01\xce\x0b\x60\x6f\xb0\x1d\xf2\x75\xac\xe2\x6e\x97\x85\xd6\x37\x53\xd9\xd6\x22\x26\xa8\xd8\xde\x1c\xd1\x29\x62\x1c\x4d\x4d\xac\x29\x66\xe8\xaf\x3f\xff\x58\xbd\x80\xa9\xa0\x6b\x75\x48\x2d\x0a\x85\xd7\xa5\xa4\xff\x24\x12\xe9\x5d\xa3\x77\x31\x9f\xea\xae\x05\x91\x13\x9e\xc4\xe8\x85\x80\x9a\x64\xe3\x40\x33\xad\x5c\x90\x3e\xf3\x9b\x80\x90\x43\x84\x13\xc5\xc7\x04\xee\x6a\xa7\xa8\x29\x22\xb4\xa8\x62\xb2\x34\x14\x17\xe4\xc4\x00\xb3\xdd\xff\xc5\xc5\x56\xc3\x34\xe1\x91\x4b\x6a\xb1\x26\xb9\x78\x58\x3d\xf3\x51\xd9\xf4\x8a\xea\x6d\xf8\xe5\x45\xb6\x66\xdb\x6a\xd2\xd8\x24\x14\x6b\xc3\x2a\xaf\x4c\xf5\x60\x68\xc4\xd9\x20\xa1\xec\x69\xad\xc5\x70\x89\xe1\x48\xb7\x60\x69\xa6\x5b\xcc\xec\xdc\xc6\x02\xb2\xc2\xf9\xf8\x98\x26\x89\x49\x6d\xf1\x97\x07\xe4\x2e\x43\x37\x10\x06\x66\x26\x07\x94\xc4\xd6\xef\x65\x35\x61\x41\x18\x04\xbc\xf5\xd9\x70\x6e\x7d\xb6\xf2\x04\xc9\x34\x9a\xb8\xcc\xbc\x88\x33\xa9\xc5\x68\x2e\x50\xc4\xa7\x53\xad\xf5\xc2\x92\x29\xce\x13\x69\xa3\xdd\xd9\xa9\xc2\x91\xea\xb3\xbc\xbf\x25\x27\xcf\x14\x65\xda\x2c\x75\xaf\xbd\x4b\x27\x2f\xfe\xd4\x28\x70\xd3\xd8\x87\xa2\x00\x23\x98\xf1\x44\x79\xa0\x16\x7c\xf1\x2c\x99\x05\xab\xd1\x0c\xe4\x84\x0b\x35\x88\x2b\x79\xce\xd2\x4d\x53\x66\x84\x8c\x9c\x26\x10\x34\xcc\x9f\xb5\xf0\x4f\x5e\x32\xe3\x6b\xd3\x10\xf4\xae\x6e\x1a\x41\xbb\x63\xd4\x38\xb2\x55\xb7\x60\x0d\xad\x0c\x30\x49\x54\x8c\x09\x5f\x36\xc6\x7b\xf8\xea\x42\x7f\xd4\x48\xbc\xf2\xb9\x73\x42\x10\x8f\x73\x0c\x3d\x73\xaf\xdb\x8c\x90\x26\x9a\x5a\xe8\x84\xdd\x65\x8e\x36\x4d\xe5\xb1\x68\xc9\xd5\x63\x01\x93\xbd\x24\x20\x6b\x62\x31\xa4\x4a\x60\x51\x00\x40\xc9\xf4\x41\x49\xb0\x80\xf8\xac\x3e\x33\x70\x78\x46\x53\x88\x51\x4c\x25\x24\x88\xc0\x5d\xea\x39\xc3\x50\x3b\x25\xb0\x74\xb4\xf3\x3c\x47\x13\x7f\x0e\x81\x65\xf9\xd6\x70\xcc\x4e\x77\x94\xc1\x7e\x69\xfd\x8c\x47\x69\x2e\xc8\x45\x20\xe1\x5a\xa8\x20\x44\x99\xa4\xe3\x89\x42\x94\x59\xbb\x23\x4e\xc6\x5c\x50\x35\x99\xca\x13\x34\x4c\xa5\xd6\x42\x4d\xb0\x9a\x89\x47\x21\x2a\x6a\xc5\x85\x36\x4d\x22\x8e\x4b\x0d\x2e\xaa\x28\x6b\x6c\x8d\x76\x87\xb2\x5b\xba\x2b\x96\x6c\x9c\x4e\x06\x9f\x58\x6e\x83\x12\x99\xa1\x6e\x22\x13\x07\xc8\x1d\x60\xd5\xef\x29\x91\xaa\xee\x1c\x00\xd8\xe5\xd6\xbc\x14\xfb\xa8\xa4\x85\x4c\x32\xa8\x20\x2e\x76\x1b\x24\xaf\x22\xe0\xa6\x01\xa5\xca\x9c\x4e\xd3\x99\xaa\x0c\xdc\x5a\x74\x15\xdd\x79\x50\x46\xed\x88\x0d\xc9\x58\xb0\x9b\x01\x80\xae\xcf\xee\x09\xa9\xc7\xa7\x5b\x58\xfb\xdf\xe0\x28\xc1\x14\x6c\xa2\x47\xf3\x96\xdf\xc4\x89\x7d\xd9\xbd\xbf\xb8\xeb\xdd\x1a\xc8\x89\x9b\xbb\xcf\x9d\x87\x41\x85\x5f\xbb\xe2\xad\xcf\x9d\xbb\x9f\x2f\x97\xbf\xf6\xd3\x43\x31\x2b\xbb\xe2\x95\xbb\xfb\xe6\x64\x8e\x16\x43\xac\x48\x0a\xab\xec\xe7\x1c\xcd\xe6\x6a\xc2\x59\x16\xa2\x10\x17\x78\xd3\x29\x32\x19\xc1\x0a\x42\x88\x84\x54\x15\x8e\xc3\x07\x88\xcb\x59\x2e\x61\x16\x17\xcb\xa0\xcb\x6d\x55\x34\x5a\xe1\x44\x7e\x4a\xf8\x10\xfc\xd6\x56\xf6\xb1\xc0\x74\x0d\x11\xe8\x1b\xc6\xfb\x5c\x52\x39\x4b\xf0\x7c\xa1\x87\x65\x57\xce\x35\x9e\x12\x88\x38\xce\x61\xf1\x5c\xb2\x88\x5e\x19\x48\x60\xca\xee\x75\x3a\x82\x4c\x26\x45\xb1\x22\x68\x48\xd4\x0b\xe4\xcd\xb9\x5f\x33\x5b\xaa\x0b\x18\x91\x67\x7d\x06\xe6\x9c\xbe\x26\x72\x9c\x42\xb4\x5f\xff\xdd\x09\xea\xbf\x8b\xc9\x33\x49\xf8\x4c\xaf\xbc\xfe\xa1\xe6\x92\xe9\x4e\x31\x4d\xae\xb9\xca\x2c\x73\x9b\xac\xa7\x20\x11\x9d\x81\x64\x3e\x20\xba\xdd\xfd\x09\x1e\x85\x9d\xec\xd8\x19\x8c\x01\xe1\x38\xd6\x4a\x36\xb0\x32\x37\xbc\x3c\x04\x88\x79\x53\x2f\x14\xbb\x5c\x45\xa4\xc8\xcc\xdf\xa6\x47\xbf\xcd\xa2\xd9\xb3\x72\x05\xd8\xf3\x0e\x5d\xb2\x9b\x5e\xe4\x5a\x2b\xf9\x99\xcc\x21\x05\xe3\x16\x53\xb1\xa6\x6b\xb6\x2a\xe6\x75\x27\x4e\xda\x6e\x45\x47\x07\xe4\xae\xad\xa6\xc3\x66\x8e\xdb\x2c\x56\x6f\x5f\x5a\xaa\x8b\xe5\xca\x3a\x6e\xa9\xb6\x3e\xd6\x29\xa9\xb5\x21\x0c\xa8\xac\x78\xcd\x48\xb4\x82\xc6\x95\x0d\xf0\x5e\x7f\xb7\x54\x53\xc9\xc4\x35\x17\x7f\x97\xaf\x82\x4d\x8e\x2f\xe7\xe3\x93\xa5\x23\x8e\x12\x2e\x8b\x58\x39\xad\x07\x7d\x61\x3f\x6d\x1a\x77\xd7\xdf\xbe\x5a\x2e\x5c\x29\xa0\xa1\x82\xf0\x25\x8c\x4b\x73\xcf\x28\xeb\x21\xb3\x6f\x9f\x20\x0a\xd1\x96\xa0\x90\x25\x39\x72\x00\x8b\x51\xee\x06\xe9\xb3\x3c\x66\x45\xa2\x17\x92\x40\x98\x5b\xc4\xa7\x33\x30\xf1\xdb\xe1\xda\x96\x48\x6c\x22\x86\x4f\x10\x4f\x95\x6e\xcc\xe4\xe4\x38\x23\xae\x4d\xf8\xc9\xdd\x1e\xc6\xf7\x66\x83\xdf\x33\xbc\x6c\xb3\xd7\xcd\x5d\x4a\x19\xfa\x44\x14\xb4\x02\x65\x16\xfc\x09\x82\x9e\x50\x0e\xa1\xac\xa6\xfd\x06\x27\xca\xce\x64\x85\x95\xcf\x81\x53\x7e\x4c\xf8\xb0\xd9\x48\x00\x8d\xa3\xc7\xbb\x9e\xb3\x48\xe6\xf1\x53\x1e\x28\x73\xc1\xa3\xd8\xbd\xbd\xeb\x5e\x74\x1e\xba\x97\x67\xe8\x51\x12\x4d\x9e\x6c\xba\x90\x5f\x9d\xa9\x24\x66\xe4\x16\x89\x85\x49\x45\x70\x9d\x21\x84\x08\x51\xc8\x82\x5e\xc2\x38\x8a\x30\x2d\xcd\x1b\x1b\x40\x52\xa8\x35\xd4\x01\xb0\x50\x79\x9e\x36\x32\x6f\xd9\x09\x84\x38\xa9\xc1\xf1\x44\xa9\x99\xf1\x4e\x17\x23\xf3\x96\x6d\x9f\x62\x44\xdf\xae\x27\x03\x47\x4b\x4d\x08\x15\xa8\xd5\xb4\xcc\xa6\x1a\xb4\x9f\x93\x17\xe2\xfe\x19\xcf\x9a\xd3\x4f\xf1\x4b\x61\xd3\x1a\x51\xd8\xf3\xdd\xef\xfa\x1c\x38\xb6\x36\x30\xac\x70\xf3\x09\xe6\x0e\x2d\xc3\x5b\x33\xbe\x69\x32\x3e\xa4\x33\x92\xf9\x13\x2b\x0d\xc2\xc6\xb1\x4a\x04\x67\x07\x7e\xa1\x0c\x15\xae\xc4\x13\x34\xa2\x5f\x6d\xa3\x79\x7c\xbb\x7b\xd5\x0b\x78\xa8\x89\xa7\x9c\xe0\xc5\x33\xb5\x82\xd8\x70\x0b\xdf\x37\x0a\x91\x5c\x6a\x91\x28\xd2\xe2\x92\x20\x11\x17\xfa\xa6\x80\x6e\x73\x2f\xc4\x32\x91\x41\x61\xa1\x89\xb2\xe8\x95\x69\x3a\xfd\x79\x69\x95\x18\x2b\x72\xaa\x45\xaf\x25\x09\xd0\x36\x47\x06\xb2\x69\xb0\xf2\xe0\xc0\xf2\x9b\x67\x48\xc6\x98\xb9\xd0\xec\x9a\xe1\xba\x2b\x6f\x03\x56\xa5\x55\x20\x0c\xe9\x61\x20\x5f\x41\xea\x4f\x61\x1c\x72\x06\xf4\x6c\x1c\x87\x8d\x7e\x39\x04\xb2\xbd\xe0\x2c\x18\xa7\x66\xb0\xe9\x2c\x3e\xa4\xc1\x26\x58\x2a\x64\xc7\x54\x67\x8a\xf0\x54\xc4\xdd\x1a\x61\x0b\xba\x7d\x5b\xe5\x4d\x6f\xa1\xa2\x16\x4b\xc0\x33\x22\x1d\x6e\x8a\x41\x89\xd1\x3a\x8d\x13\x84\x2f\x60\x85\xb2\xb3\x7d\x67\xa4\x2c\x77\x4b\xf8\xcc\x04\x82\xf4\x17\x9b\x3e\x43\x1d\xb6\x80\x97\xe5\xe2\xb2\x0a\xf4\x32\x77\x12\x4e\x5e\xf0\x5c\xa2\x99\x30\xd0\x32\x26\x72\xdf\x4d\x1e\x34\xb0\xe2\x47\x59\x28\x84\x72\xa9\x13\x08\x6c\x31\xcb\x83\xe6\x9c\xdc\x3b\xd8\x81\x2b\xaf\x14\x55\x9e\x09\xe4\x79\x73\xb9\xad\xa2\x05\xab\x53\x64\x10\x4d\x30\x1b\x93\x81\x33\xb2\xae\xa3\x2d\xe9\x76\x2e\xa0\x99\x4b\xdb\x4a\xf5\xe5\x74\x6b\x14\x26\x5b\xd6\xc6\xbc\x9a\x19\x10\xf5\x21\x90\x0a\x8f\x09\x32\x23\x6a\x65\x96\x2e\x44\x8c\x59\xb0\x61\xd0\x13\x6c\xab\xdd\x62\x14\x7d\x9d\xf0\x0e\xa1\x4f\x57\x78\x48\x92\xd7\x89\x9c\x80\xae\xad\x71\x1e\xbc\x75\x26\x1b\x80\xa0\x17\xb0\xe7\x97\x58\x86\xb5\xde\x8b\xb4\x2a\x37\xa0\x69\x9e\x70\xe4\xec\x49\xdb\x64\xa2\xae\x04\xca\x3a\x53\xad\x2b\x8c\xe2\x5f\x7b\x5e\x01\x91\x2a\x03\x9b\x7f\xfd\x95\x6d\xca\xeb\x0d\xc4\xab\x63\x52\x33\x8e\x8d\x0b\x99\x2c\x9d\xca\xda\x20\x03\x2d\x6b\x16\xf6\x46\x88\x71\x46\x10\x95\xf9\xcb\xaa\x98\x0e\x95\x41\xf4\x68\x11\xdf\x18\x5f\xb2\xe2\x63\x59\x4d\xa9\x5d\x5b\x5a\x72\xf0\x84\xcc\x36\xe0\xf2\xbb\x19\xd1\x8a\x2a\x16\x73\x80\xf8\x34\x7c\xb8\x28\xd3\x2d\x1d\xe7\xd6\x05\xee\x07\x87\xe0\xea\x45\xea\x2a\x8e\x40\x8c\x2c\x0d\x0e\x19\x1c\x54\xfb\x92\xfd\xc8\xc2\xd4\xf4\x59\x66\xd9\x80\x8d\x48\x25\x9a\xe2\x19\xf8\xf4\x18\x57\xf9\x57\x06\x76\x49\x65\x4b\x78\xe2\x04\x71\x69\x4a\x83\x2d\xa7\x00\x17\xe3\x4d\x42\x35\xda\x97\x7f\x68\x6f\x58\x72\x97\x7f\xbe\xaa\x45\x70\x4d\x07\x0c\x3c\xa6\xcf\x84\xb9\x13\x75\xe2\x4e\xa4\x26\x89\x9b\x72\x32\x3f\xc5\x10\xe4\x4c\x62\xdf\xef\xd2\xcc\x0f\x8d\x39\xe8\x10\xac\xa1\xed\x49\xf6\x50\x19\xc4\x63\x20\xda\x0a\xd8\xfa\x2e\x2c\xdd\x3f\x23\x16\x35\xd8\xe4\xa1\x63\x89\xfe\xc0\xb8\xfa\x83\x87\xab\xec\x4c\x27\xf0\xa9\x33\x80\x9d\x2c\xd4\xc1\x01\x96\x61\xb7\x2d\xc2\x1e\xbe\xd7\x52\xca\x6f\x1a\x99\x90\x87\xdd\xef\x54\x16\xee\x2e\xe6\xe0\xd5\x15\x12\x0b\xf1\x02\xa8\x7c\x29\x95\xcd\xad\xa6\x56\x61\x7e\xd2\x0b\x66\x56\xb9\x2c\x40\x20\x5b\x8b\x56\x81\x01\x0b\x78\x04\x9b\xec\xb6\x69\xeb\xb8\xad\x25\x10\xcc\xd5\x56\x91\x75\xb2\x4c\xeb\xb4\x02\x51\x0c\x9c\xb3\x45\x38\x6a\x30\x86\xcf\xfa\xec\x23\x17\x56\x00\x90\xb6\xca\xc1\x10\x47\x4f\xa7\x84\xc5\x08\xa7\x6a\x62\xb0\x7e\xad\x57\x63\x6e\x77\x83\x96\x73\x60\xdb\x64\x40\x1e\x54\x46\x58\xc4\xae\xde\xc6\x33\x77\xa3\xe8\x33\xaf\x11\xa8\xa3\x00\xd5\xb3\xa0\xac\x71\x9d\xa2\x4b\xa4\xd6\xee\xea\x68\x51\x55\xd9\x76\xa1\xae\x6d\xf3\x39\x2b\x54\xea\x85\x0a\x10\x10\x5e\xc5\x47\x8b\xd4\xe9\x39\x5b\xa7\xd3\x2e\xf5\x7e\x5e\xf4\x81\x9c\x58\x7d\xc6\x18\xc4\xec\x0c\xb4\x9c\xf5\x83\xe3\xb5\x05\xcc\xe2\x51\x2a\x20\x58\xb8\xaa\xcd\xef\xa2\x09\x4d\x72\xcf\xc9\xf7\x27\xd9\x30\x75\x93\x09\x79\x26\x89\x41\xcc\x8f\x04\xe4\x05\x18\x9b\xe5\x0f\xe8\x7f\x9b\x6a\xaf\xe8\x4f\x7d\xf6\x09\xd8\x70\x92\xcc\x01\xcf\x33\x6b\x19\xab\x52\x33\x4f\x95\x03\x50\x36\x11\x09\x15\x07\x62\xd6\x7a\x82\x9f\x49\x9f\xb9\x66\xfe\x37\x7a\x42\x7f\x44\x7f\xaa\x53\x2e\x5d\x78\xff\x8e\xad\x2c\x1f\xbd\xe0\x79\xef\x96\xb3\x8c\xd2\xf2\x1b\x67\x84\x29\x98\x40\x2b\x70\x3d\x32\x58\x6e\xca\x9e\x79\xb4\x90\x43\xe2\x9f\x5a\x2c\x08\x53\x03\xc6\x63\x32\x20\x15\x0e\xd5\x06\x26\xa1\x85\x80\x6b\x1e\x93\xa5\xee\xd0\x8c\x99\x7e\x01\xc3\x91\x4c\x87\xd9\x72\x00\xbc\x40\x96\x4b\x9e\xd9\x3e\x8a\x3b\xad\x7a\xe4\x19\xf6\xed\x3a\xe3\x5e\xd7\x95\x9b\x8b\x8d\x38\x07\xdf\xad\x76\x27\x26\x58\x39\x69\xb2\x7c\x1c\xcb\x6e\x08\xfd\xb2\x9e\xb9\xbd\xac\x3c\x54\x5f\xa8\xbc\x22\xe8\x98\x6a\xed\xa1\xbd\xbb\x18\x38\xe1\x3a\xbe\x14\x03\x71\xda\xca\x99\x92\x93\xc2\xc1\xbc\x9c\x66\xfb\x2f\x77\x81\x0e\x79\x5a\x56\x1f\x2c\x01\xa8\xf4\x83\x0d\xac\xa6\x30\xd7\x7c\x78\x6c\xf2\x0f\xc9\x84\x9a\x8c\xff\xce\xc5\x15\xd2\xa7\x83\x4f\x0d\x2c\x16\x10\x2d\x55\x13\x2e\xe8\x3f\x9b\xf6\x36\x16\x8a\x8e\x70\xa4\x06\x5b\xa9\x22\x53\xbf\x99\x3a\xb6\x9f\x5e\x7d\xa5\xba\x05\x84\x03\xfc\x4c\xbc\x00\x44\x08\x2f\xb4\xad\xc8\xcc\x91\x5b\xe6\xb7\x5c\x20\xc6\x5f\x72\x58\x2c\xf7\x3d\x20\x41\x7b\x89\x1b\x58\xab\x5c\x33\x88\x20\x96\x14\xf6\x27\x80\x54\xbd\x57\x26\x29\x13\x00\xce\x0d\xbc\x94\xde\x9e\x13\xcc\xe2\xc4\x5d\x21\x88\x9b\x88\x9e\xf9\x0b\x9e\xaf\xe4\x53\xf7\xe3\x2a\xf3\x2c\x3d\xb3\xfc\x45\x25\x08\x78\x80\x91\xd4\x54\x41\xd5\xac\x52\x84\xd1\x30\x05\x60\x5d\x4d\x93\x51\x9a\x98\x6a\x1c\x11\x17\xf1\x59\x9f\xd9\x80\x6a\xaf\x37\x2d\x02\x3a\xad\x09\xab\xac\x41\x6a\xf1\x47\x6d\xbd\x0f\x63\x96\x6b\x94\xeb\xff\x9e\x92\x74\x4b\x69\x95\xaf\x1a\x88\xfe\x80\xc7\x32\x8f\x2c\x37\xb4\xd1\x57\x5e\x4e\xdf\xdf\xf5\x4c\xa5\x97\x88\xec\xcc\xc5\x19\xae\x97\xb1\xb3\x98\x22\xb6\x2b\x99\xe9\xee\x4c\x3d\x83\x2d\xd8\xe9\xf6\x11\xa4\xb3\x28\x7a\x56\x70\x75\xbb\xfd\x9e\xb3\xb4\x5c\xb4\x1f\xe3\x97\x2b\x0c\x51\x12\xea\x76\x68\x07\x5b\xe3\xee\x58\xd4\x55\x1a\x43\xdd\x73\xab\x58\x76\x5b\x54\x64\xc8\x2b\x0e\xb9\x34\x2f\x82\x02\xec\xdf\x3c\x7f\x39\xab\xd7\xec\x6e\x61\x9f\xc7\x68\xe1\xcf\x68\x0b\x10\xac\xe3\x48\x38\xaf\xbe\x3a\x57\xb0\xeb\xd8\x86\x8a\x5d\x2f\x06\x63\xd4\x9d\x08\xc3\x92\x0e\xf5\x48\x2c\x62\xfe\x2c\x3d\x0c\x59\x79\x97\xd7\xb1\x0a\x67\x12\xe3\xfe\x4e\x46\xb6\x1d\x07\x11\x8e\x26\xb5\x93\x1a\x72\x9e\x10\xcc\xea\x94\x82\xca\xc7\xe5\x23\x62\x10\x6b\x81\x75\x27\x09\xc0\x36\x3b\x12\xd8\x52\x9f\xb9\x56\xc4\x62\x80\xdb\x37\x3c\xdc\x04\x7c\xba\x81\x2a\xc2\x9c\x41\x8d\xb2\x71\x42\xca\xb4\xb2\x75\x11\x4e\x6c\x27\x49\x94\x26\x5e\xad\xcf\x19\x11\x7a\xd4\x9a\xc4\xcf\x84\x69\x55\xcc\x8e\xc3\x79\xa8\x5e\x5c\x96\x7b\x56\xe1\xeb\x24\xeb\xda\x39\x49\x21\x95\x34\xee\x33\x38\xb8\xbc\x78\x58\xf5\x5e\x95\x5a\x7b\xf3\xcd\x7d\x6b\x9f\x4e\x4f\x88\x58\xf9\x78\xde\x17\x6d\xff\x2b\x9f\x49\xd3\xf7\x00\x02\x47\x36\xf6\x97\x7a\x3e\xb5\x1c\x7f\xc3\x2c\xac\xc3\x58\xdb\x93\x67\x00\x42\x71\x8a\xb1\xc4\x5e\x24\x4e\x1d\xc6\xd7\x4e\xef\x92\xbc\xa6\x89\xbb\x0d\x5a\x0e\xa5\x31\xfe\xa0\x65\x34\x01\x18\x7d\x9b\xce\xed\x95\x95\xea\x8b\x7e\xf8\x2c\x69\x2b\x8f\x5d\xb5\x55\x7b\x95\xc0\x00\x39\x01\x40\x01\x5f\x8c\xe1\x82\x4a\x23\xdc\xbb\xda\x25\xd3\x99\x9a\xdb\x52\x77\x70\x2f\x16\xe4\x7d\x80\xf1\xab\xf2\xf9\x97\xef\xc8\xb8\xe0\xf5\xaf\xea\x0c\x3a\xb2\xd6\x9a\xca\x26\x1d\xa1\x7d\x58\x98\x12\x0c\x47\x5d\x88\x8f\xa9\x1a\x3c\xc0\x49\xad\x89\x70\x0b\x4c\x13\x94\xa3\x1c\x7a\xc3\x22\xfa\x2a\x91\x12\xcd\xbb\x70\x92\x94\xe6\x85\x21\xc7\x5d\x65\x95\x03\x87\x79\x79\xe3\xf6\x11\x08\x09\x1e\x92\x95\x62\x0e\xae\xcc\x07\x8d\xbb\x08\x5e\x81\x70\xfd\xd9\x2c\x99\xb7\x4b\x13\xf0\xb5\xdf\x4a\xe4\xbb\x65\x03\xf3\xf1\xf2\x1a\xef\xa6\x22\xe6\xdc\x7a\x43\x94\x24\x4a\x05\x55\xf3\x81\xb5\xa5\xb6\x67\x5a\xf7\xf6\xcb\x0b\xfb\x61\x1b\x43\xc5\x39\x72\xfd\x39\xdb\x2d\xdc\x53\x82\x9a\xb2\x48\x76\x0a\x6d\x96\x1b\xa7\x6a\x52\x89\x88\xd5\x44\x58\x07\xc9\xd5\x6e\xa8\xba\x8b\x75\x87\x67\xcb\xad\x0c\xf8\xc8\x81\x5d\xb5\x27\x6c\xb9\x0e\xcd\x0a\x46\x68\x87\xa9\x3d\x13\x94\x0b\x5b\xee\xa5\x4d\xa4\xe2\x14\x7f\x1d\xcc\xb0\xc0\x49\x42\x12\x2a\xa7\xeb\x9b\xcc\xff\xf2\xe7\xc6\xd1\x5e\x98\xb2\x44\x66\xb0\x53\xfc\x95\x4e\xd3\x29\x62\xe9\x74\x68\xa5\x5c\x2c\x9f\x7c\x44\x53\x87\xbf\x60\x80\xb9\xdc\x00\x0b\x28\x10\xc2\xc3\xa8\xed\x33\x0f\xad\xdc\x9a\x2a\x70\x34\xa1\xe4\x19\xb0\x54\x05\x23\x52\x9e\xa1\x6b\xae\xc8\x39\xfa\x8c\x67\x0f\x20\xa8\x99\x3a\xa1\x63\xe3\x74\xc0\x12\x69\xa9\x35\x65\x54\x9d\xf4\x99\x85\x38\x77\x54\xf9\x10\x71\x66\x60\x6e\x23\x20\x6c\xd6\x04\x58\xd1\x1d\xde\xab\x72\xd9\xaa\x54\xd6\x10\x5b\xe0\x97\x81\x17\x92\x3c\x30\x29\x1f\x2b\xec\xe3\x3b\xfc\x62\x82\xf0\x2f\xb1\xc2\xa6\x04\x70\x93\xe4\x6e\xa3\xdc\x6c\x59\x28\x83\xee\xec\xa2\x81\xb8\x85\x18\xc9\x0a\xda\x99\x90\xe3\xef\xe8\x19\x39\x43\x3f\x26\x7c\x28\x4f\x72\x53\x95\x79\x28\x89\x92\x27\xc6\xef\x07\xff\x36\xf9\x7d\xdf\x3b\xea\xe7\x7c\x1f\x6a\x39\x8e\xe8\x57\x83\x6c\x22\xff\x72\xfe\xe1\xc3\x74\x7e\x3a\x4c\xa3\x27\xa2\xf4\x5f\x20\x53\x54\x52\xc8\xc1\x82\xe1\x2a\x90\xb1\x65\xd4\x59\x04\x28\x6b\xb5\x23\x6d\xae\x94\x24\x00\x86\xaf\xaf\xf4\xac\x5a\xae\xc3\xb3\xe2\xac\xba\x14\xa8\x9d\xb2\x48\xeb\x8e\x57\x01\x45\x7b\x3f\xda\x8a\xa9\x06\xec\x83\x77\x8f\x12\x3c\x2e\xa9\x2c\x2b\x28\x29\x37\x53\x6a\x77\x91\x9e\x3b\x04\xd1\xe8\x53\x56\x0c\x1d\x7c\xef\xbc\xbc\xe0\xad\xb5\x5e\xac\xb3\x3e\xeb\x48\xf4\x42\x4c\x91\x5f\x48\x34\x05\xa7\x4f\x4a\xe5\x24\x4b\x33\x05\x33\x34\x34\x6a\x30\x8e\x0d\x14\x86\x55\x1c\x9d\x66\xe5\xdc\x62\x56\x03\xc5\x89\x24\x27\xba\x61\x30\xa9\xba\xe8\x50\xf4\x22\xf0\x6c\x46\x44\x9f\x59\xbc\x5a\x40\x65\xe7\xdc\x46\xfe\xd4\xa5\x08\x04\x8d\x72\xbf\x1a\xa5\x47\x7b\x52\xcc\x42\x5d\x76\xbe\x21\x69\xb5\x89\xc2\x55\x79\x98\x8e\x7c\x5a\x16\x6d\x1b\xbe\xff\xfa\x66\xe3\x96\x63\x5e\xa6\x9d\x77\x4a\xb9\x17\x50\x43\x7c\x0a\x0a\xa4\xcc\x4b\xa5\x3a\x5b\x5f\xa6\xbe\x17\xc4\x1c\x80\x3b\x87\x8f\x63\x4e\xa4\x67\xc4\x47\x99\x2d\x2e\xa1\x23\xa2\xa5\x8f\x3e\xd3\xdb\xd8\x77\x38\x18\xd4\x74\x07\xa2\xae\x3b\x8d\x04\x97\xd2\xa6\x53\x98\x76\x9a\x93\xe2\x36\x28\xd0\x68\xa0\xdf\x7b\x37\xd7\x83\xc5\x52\x8d\xde\x33\x57\xb4\xd1\x3e\xac\x44\x4e\xa8\x6d\x6a\x69\x89\xc6\x9c\x16\x2b\x14\x69\xfc\x70\x71\xd5\xcb\x2a\x93\x95\xba\x5e\xac\xd2\xe8\xc3\xe5\xd7\xd7\x69\x5c\x9c\xb1\x57\xb1\xb1\xd4\x44\x43\xcd\xc6\xe5\x8b\x55\x0c\xe2\xde\x04\x0b\xb1\xb4\xf4\x4b\xf9\x43\x71\xcf\x2c\xcb\x35\xd8\xd2\x32\xd5\x5c\x2b\x11\x08\x8c\xbb\x0e\x5c\x00\xc1\x4b\xbf\x25\x15\x9e\xce\xfc\x3c\x5a\x07\x06\x6b\xa7\x69\x8e\x5a\xdd\x25\xb8\x57\x90\xfa\x08\x9b\x20\xa1\xf2\xe0\x16\x96\x62\x35\x8f\xd7\x83\xc5\xbe\xdf\x46\x6c\xfa\xfe\x12\xd3\x93\x79\x1e\x0c\x29\xad\xec\xe6\xea\xaa\xd7\xd8\xfd\x87\x24\xc3\xf9\xaf\x5d\xd0\x4d\x33\x4f\x33\x3c\x30\x41\xb0\xb4\xee\x6f\x48\xd0\x2c\x25\x6f\xad\x60\x1e\xce\xc6\x6c\x52\xbc\x4f\xb3\xca\x1a\xde\x55\x63\x8b\xc5\x45\xee\x20\x52\x21\xc8\x33\x11\xb0\x77\x6c\x28\x15\x2b\x1e\x55\x9c\x08\x82\xe3\xb9\x47\x91\x2c\x8e\xc3\xf4\x0c\xe6\x31\x49\xa7\x5a\x81\x07\xd5\x84\xf1\x53\x3e\x73\x3a\x4b\xe1\x2d\x28\x8b\x42\x47\xfa\xc6\xf2\xa2\x40\xf4\x17\xec\x94\x7c\xa5\x52\x69\xb9\xa2\x22\x04\xd6\x35\x02\x12\x0f\x14\x4b\x9b\x10\x7b\xc3\xf5\xdf\x75\x7e\xbc\xb9\x7b\xe8\x5e\xf6\xdf\xe5\x29\x17\x2e\xa7\x30\x83\xf9\x72\x55\x1b\x38\xeb\xb3\x2c\x4e\x39\x43\xb5\x86\xb5\x44\x38\x8e\xf3\xf8\x68\xab\x44\x1a\x99\xad\x91\x23\x7b\xa7\x62\x69\x84\x72\x43\x33\x8f\x90\x58\x76\xa8\x27\xab\xc1\x75\x56\x38\x39\x26\x3d\xae\x21\x8f\x69\x4b\x97\x8d\x0f\xc8\xab\x8c\xae\x4d\x94\x43\x8c\x64\xe4\xc5\xe9\x4a\x70\x3b\x7f\xc0\xe6\x12\x5e\x8d\xdb\xb9\x05\x59\x63\x51\x3f\xd2\xaf\x24\xbe\xab\x91\xaa\xb6\x92\xa6\xd4\x2a\xc0\xb2\x72\x15\x52\x46\x57\xd1\xf8\xb3\xa9\x3c\xea\xef\xda\xb3\xa5\x9b\x1c\x67\x2f\xc7\xcc\x05\xc0\x5c\x85\x30\x8a\x88\x50\x98\x32\x34\x82\x83\xcd\xa2\x39\x02\x14\x16\x02\x3e\xec\x3f\xa3\x29\x65\x00\x07\xd1\x44\xda\xc7\xe2\x3c\x56\x10\x5a\x3f\xf7\xae\x1f\x1f\x0a\xa2\xea\x4f\x37\x8f\xc5\x4a\xfd\x9d\x5f\x1b\x65\xd5\x52\x0b\x4d\xc1\x42\xde\x14\xf3\xd4\x52\x0b\x1d\x9c\x51\xa6\x72\xa2\xc9\x5c\x91\xc7\xbb\xab\x8d\xe4\xbb\x6a\x67\x59\x2d\xf0\xbb\x2f\x5d\x55\xc3\x5c\xb4\xf9\x34\x26\xd1\x32\x68\xda\xf6\xfb\xc8\x44\x41\x69\x3a\x58\x6b\xa2\x85\xad\xc3\x12\xcd\xb0\xb0\x7e\xa8\xd8\x04\x40\x15\xcb\xbd\x19\xcd\xab\x09\x16\xe4\x13\x51\xbf\xe8\xab\x8f\xb3\x6d\x24\x97\x58\x51\x16\xfc\xa3\x64\xf0\x6c\x1a\x5e\xe1\xa4\xd9\xa1\x34\xe4\x2f\x39\x61\x19\x7a\x40\xb6\x07\x1f\x4c\xe3\xcc\x94\xfd\xef\xe8\xe6\x80\x22\x2e\x4c\x53\xab\xa4\x9c\xe9\x1d\x69\x30\x72\x1d\xb0\xae\xd7\x1c\x1f\x99\x8f\x5b\xc2\x0c\x7a\xc9\x02\xba\xad\x9c\x94\xa8\x73\xdb\xab\xa0\xf5\x55\xd9\x85\xf4\xb6\x6a\x14\x25\x99\x37\x6b\xdb\xc8\x57\x5e\xce\xe9\x41\x40\x5d\xd9\x99\x6e\x86\x6d\x65\x9c\xfe\xb7\xc5\x48\x82\x43\x80\x60\xae\x52\x19\x0a\xb9\xe4\x4b\xd0\x96\x57\x4b\xaf\xcc\xc9\xb0\x22\x92\x95\x3f\x20\x9b\x5d\xe3\xa3\x37\x2d\x86\x6e\x9f\xf8\x68\x4e\xdc\x54\x41\xb6\xb1\x05\x5b\x43\xb8\xca\x67\xd3\x06\xe2\xea\x17\xb3\xa3\x33\x04\x14\xc0\x74\x71\x55\x36\x5d\xc8\xb5\x05\x24\xf0\xa7\xeb\xef\xb6\xd5\x50\xb1\xf2\xf1\x39\xf3\xb7\x05\x18\xc7\x33\x6c\xed\x0e\xa0\x44\xb9\xf2\x17\x55\xd5\x12\xcf\xfa\xcc\x0b\x58\x91\x46\xed\xd1\x67\xc4\x55\x9c\x81\x32\xc6\x0c\xd0\xca\x21\xf7\x29\x13\x7e\x0a\x2b\x50\xc6\x3d\x50\x93\x62\xcd\x98\x85\x7e\xec\xe9\x94\x13\xec\xb2\x4b\x9d\x05\xc5\xc6\x01\xfa\xf6\x25\x68\xcf\xab\x12\x61\x3b\x06\x73\x34\x18\x2d\xb0\x57\x83\xd0\x43\x24\x88\x39\x91\xec\xbd\xca\xf2\x77\x69\x32\x77\x21\xd5\x25\xf7\x80\x96\xea\x30\xb5\x2d\x37\x1f\xf0\x2d\x40\x6e\xad\xaa\x38\x78\xc7\x6a\xa9\x99\xca\xf9\x78\x61\x27\xf8\xb1\x48\xd0\x69\x9d\x55\xfd\xeb\x8c\x44\xeb\xe0\x02\xdd\x62\x81\xa7\x44\x11\xd1\x14\x8e\x54\xac\x10\x0e\x22\x8e\x5b\x41\xdb\xaf\x59\x45\x53\x3e\xa5\x5c\x67\x27\xd3\x6e\xaf\x96\xe1\xfc\x64\xb3\x58\x09\xd2\x4c\x4f\xe3\x17\x6b\xf9\x5f\x71\x16\xb6\x9f\x7c\x1a\x36\xda\xca\x83\x75\xda\x74\x4e\xfb\xc1\xb7\x79\x58\x40\x8a\x29\x84\x0b\x1d\x08\xb0\xcd\xf2\x51\xd6\x21\xda\x2c\xe3\xa5\x5b\xe1\xdd\x2e\xc3\xc1\x65\x26\x97\x0e\x55\x21\x77\x02\x76\x09\xa8\x54\x06\xdc\xa5\x1a\x95\x06\x84\x96\xaa\x08\x49\xcf\xed\x67\x31\x0b\x73\x83\xae\x95\xac\xca\x15\xc3\x4a\xe4\x5a\xc2\xe3\xb6\x85\xd8\x11\x24\x9a\x6d\x4b\x34\xcb\xb6\x72\x21\xba\x56\xef\x4e\x22\x4a\xe0\x41\xb6\x92\xb7\x45\x7d\x28\x4e\x10\x52\xba\xec\x15\x69\xcb\x01\xc3\xd5\x4f\x59\xf6\xaf\x22\x07\x77\x9b\xda\xdf\xaa\x55\xb9\xaa\x67\x9e\x0b\x0a\x3c\x50\x89\x2f\x0d\xd8\xb8\x1a\x18\xad\x09\x83\x34\x56\xfe\xde\xb5\x71\x60\x41\xce\xf8\x9c\xa7\xe8\x85\xca\x09\x52\xbc\xcf\x20\x4e\x30\xf3\x06\x28\x8e\xcc\x8b\x27\xf0\x16\x60\x5b\xc8\x74\x38\xa5\x0a\x61\x6f\x86\x05\x93\xe4\x89\x3d\xcf\xfa\x03\x98\x71\x25\x7c\x41\x15\xee\xd2\x92\x43\xb3\x86\x7d\x2d\x6f\x64\x53\x84\x02\x2f\xa6\x79\xb7\x18\x05\x9e\xc6\xe3\x6b\x98\x95\x67\x2e\x80\x14\xa0\x6a\x6b\x83\x45\x82\x05\xb8\x5e\x2a\x55\xe9\x6e\xb1\x86\x9e\x25\x00\x05\xf9\x42\xb4\x42\x28\xc8\x5f\xdf\x06\x44\x41\x5d\xed\xb9\xa6\x94\x55\xf7\x49\x8d\xfd\xdb\xa5\x42\x2b\xee\x02\xe7\x7d\x49\xe9\xb6\x56\x52\x3a\x34\xa8\xba\x3c\x21\x60\xfd\xf0\xf2\xba\xe8\x65\x38\xe3\x11\x67\x31\x5d\x21\x5e\x18\xea\x8b\x0d\xd3\x51\x87\xcd\x97\x23\x1f\x4d\xfd\x40\x7d\x6b\x2f\xf1\x24\x91\x6a\xcc\xcd\xa5\x2a\x6b\xde\xbe\xbf\xd3\xbd\x94\xd0\x22\x18\x11\x29\xdf\x4e\x8c\x2b\xc8\xfb\x89\x54\x32\xaf\xc8\x45\xed\xb3\x6a\x29\xa9\x99\x6f\x6f\x9a\x46\xb2\x55\xd8\x3d\x8f\x47\xb8\x59\x58\xab\xdb\x97\x2c\x10\xcf\x28\xf4\xc4\x82\x6c\x94\xc4\xe0\xdc\x0d\x59\x17\x40\xa5\x85\xa3\x75\x72\xcd\x2b\x38\x47\xf5\xd0\x17\x92\x3c\x96\x9e\x5d\x2b\x18\x6c\x51\xfd\x5c\xb8\x41\x5a\xe7\xc4\x64\x72\xbc\xbd\x31\x6c\x50\x77\x9c\xd9\x1a\x4a\xee\xe4\x75\xca\x1b\x03\x9c\xed\xd6\x40\x78\xcb\xc8\x14\xba\xf1\x13\x70\x41\xdb\xb1\x63\x13\x8e\x93\x41\xc3\x97\xd6\xa4\x30\x63\x13\x52\xb9\x93\x59\xaf\x5a\x93\xda\xf3\x89\x0a\x1b\x93\x4c\x7d\xeb\x06\x14\xa3\xb6\xa1\x9c\xa5\xdb\x22\x13\x40\x53\x16\x13\xc1\x08\x56\x93\xfd\x65\x82\x5c\x6c\x6a\x42\xf7\xc6\xb7\xdb\xac\x10\x3b\x52\x5c\x4c\x0e\xd9\x64\xb8\xc5\xe2\xfc\x4b\xc7\xa9\x5f\x6f\x63\xcd\xb2\x01\x12\x59\x79\xea\x05\xf5\xb6\xc2\xb4\xe9\xe1\x0f\xad\xb2\x4b\x37\x4a\x16\xa9\x56\x39\x77\x93\x36\x53\x61\x9b\x5a\x48\x98\xd1\xa7\xdd\x2f\xea\xbd\x84\x24\x6f\x22\x3f\x65\xf7\x29\x13\x4d\xe5\xc3\x53\x2f\x8b\x02\x6a\xb8\x2b\x4c\x99\xe5\x5e\x4d\x89\x13\x5a\xee\x9d\xe2\xaa\x5c\x89\x83\xcf\xc2\x79\xf3\x49\x38\x21\x25\x23\xa4\x64\x54\xac\x51\x48\xc9\x40\xe8\xd0\x52\x32\x96\xa9\xa0\x4d\x46\xda\xcc\x6f\x08\x65\x5e\x0b\xb5\x95\xcc\xfa\x2e\xd1\x23\xd7\x4f\x3b\x70\x76\x4e\x3f\x66\xcb\xfe\x62\x7f\xa8\x0c\xdb\x5a\xf8\xac\x3c\x5b\xdf\xe6\xca\xe6\x65\xd7\x05\x16\x71\x62\x21\x08\x6d\x50\x75\xd1\x46\xd6\x64\xce\xed\xb3\x9f\xf8\x0b\x79\x26\xe2\x04\x61\x85\xa6\x1c\x70\xad\xf2\x18\x1e\x38\x08\x05\x2c\x7d\x13\xab\x81\xd1\x35\x9e\x92\xd8\x94\xda\xf4\x42\x2f\xad\x51\xd9\xba\x83\xab\x90\x76\x01\x34\xd6\x2c\x83\x8b\xed\xe8\x33\x13\x0e\x69\x42\xf0\x40\x56\xa0\x6e\x62\xb0\x61\xfe\x90\x39\xab\xff\x70\x86\x1e\xf4\xfd\x44\x65\x71\xbc\x1e\xf0\x5e\xdd\xd8\xfa\x6c\x2c\x78\x3a\xcb\xec\x7c\x7c\x68\x6a\x2e\x9b\x08\xad\x45\x67\x35\x0c\xc6\x79\xaa\x23\x1c\x6b\x5d\xbc\x79\xe3\xbc\x4a\xa4\xec\x5a\x30\x4b\xfe\x06\xd2\xc7\x30\x0b\xff\xb3\xe1\xf8\xc6\xc7\xec\x81\xcb\x34\x55\x00\xd8\x91\x03\xfc\x92\x48\xb0\x0a\x65\x9e\x81\x42\xae\x7b\x11\x4f\xa1\x72\x9c\x4d\x76\xdb\xcc\xb7\xe2\xfc\x0f\xd5\x50\x0d\x79\xe7\x36\x2e\xcd\x24\xd2\xda\x7b\x62\x67\x16\xdd\xd6\x11\xbe\x75\xfc\xe2\x36\x15\x33\x0e\x92\x58\x32\x77\xd0\x12\x16\xe4\x6f\xc6\x67\xa9\x89\xbd\xa3\x7e\x28\x56\xe5\xce\xa6\x52\x7d\xc6\x2a\x9a\x68\xce\x9d\xa3\xb2\x6d\x29\x26\x31\xe7\xca\xbb\xb5\xf2\x56\xcc\xe0\xc2\xef\xbd\xc6\xed\xd1\xb4\x7b\xbc\x18\xc3\x2c\x90\x33\x93\x24\xa6\xba\x3f\xe3\x1a\xb4\x95\xd4\x3d\xbb\xa8\xfb\xc4\x3e\xd1\x13\x5d\xb6\x8b\x96\x8d\xbf\xdd\xde\x2a\x96\x7a\xdb\x7a\xb4\xe3\x06\x30\x37\x97\x16\x54\x2c\x7f\xd1\x96\x06\xae\x09\x51\x10\x74\xbd\x4c\x25\x5b\x9e\xe1\x59\x8b\x23\x99\xc5\x75\x8a\x67\x5a\x89\x50\x5c\xdf\x92\x62\x6c\xe4\x58\x13\xcb\x8b\x30\x4a\x05\x75\x67\xbf\x94\xb7\x5e\xbf\x3b\xc0\x42\xf9\xc1\x2f\xe5\x15\x61\xaf\xca\xa1\x09\x4a\xc0\x91\x4a\x71\x16\x3c\x09\x7b\xc2\x55\xdf\x37\x39\xfa\xce\xf9\x2f\x9c\x78\x57\xb1\xa6\x4b\x37\xf6\x06\xab\x8c\xab\x30\x18\x5b\x9d\x34\xca\xc6\x1e\x80\x63\xb5\x95\xb8\x4d\xd1\x8d\xca\x2f\xdb\x15\x0e\xa9\xfc\xd4\xc9\x3e\xeb\x7c\xdb\x00\x30\xd5\x2a\x64\xfd\x10\x2b\x26\x78\x99\x00\x36\x54\xd8\xca\x6e\x3e\xb0\xa7\xed\x08\x60\x8f\x29\x84\x32\x60\x27\xcb\x7d\xe7\x97\x4d\xd0\x43\xfb\xfe\x3f\xf3\x87\xa0\xbf\xdb\xe2\x2c\x15\x2f\xf6\x19\x17\xf6\xd5\x93\xec\x3d\xfd\x5a\x8e\x4f\xac\xa5\xc4\xc5\x2f\x73\xf4\x51\x51\xc4\x29\x04\xb4\x16\x8b\x33\x67\xe0\xa9\xb3\xb2\x16\x7a\xf0\x4f\xe9\x90\x08\x46\xf4\x9c\x1c\xae\x43\xc6\x83\xa7\x98\xe1\x31\x80\x61\x9f\x40\xd0\x21\x48\xd9\xb9\x06\x65\x4e\xa2\xa9\x0f\x0a\x4c\x56\xf3\x78\x9b\xca\x9c\xd7\xc9\x86\x3e\x8d\x04\x6e\xb1\x78\xf3\xc8\x95\xea\x43\x7b\x67\xfb\x5f\x4f\xd1\x78\xe8\xdc\xff\x3c\xb8\xeb\xde\xdf\x3c\xde\x5d\x14\xb4\x8d\x8b\xab\xc7\xfb\x87\xee\x5d\xe5\xb3\x3c\x0d\xf8\xef\x8f\xdd\xc7\x9a\x47\xae\x81\xab\xce\x8f\xdd\x42\xd1\xf9\xbf\x3f\x76\xae\x7a\x0f\xbf\x0e\x6e\x3e\x0e\xee\xbb\x77\xbf\xf4\x2e\xba\x83\xfb\xdb\xee\x45\xef\x63\xef\xa2\xa3\xbf\xf4\xdf\xbd\xbd\x7a\xfc\xd4\xbb\x1e\xb8\x88\x6e\xff\xd1\x97\x9b\xbb\x9f\x3f\x5e\xdd\x7c\x19\x78\x5d\xde\x5c\x7f\xec\x7d\xaa\x9a\x45\xe7\xfe\xbe\xf7\xe9\xfa\x73\xf7\xba\xb9\xb8\x7d\x35\x35\x6a\xeb\x66\x7b\xf7\xaf\x67\xeb\xf2\xa4\xbb\xe1\xdc\x9e\x09\xfa\x4f\x70\xb9\xdc\x9a\x2d\x7a\x7a\xe2\xfe\x32\xa5\xe8\x4f\x35\xe7\x76\xee\xbc\x9c\xe9\xf5\x59\xe6\x13\xce\x64\x01\x85\xc7\xd2\x65\x75\x17\x46\x7b\x8e\x3a\x70\xc8\x40\xcf\x29\x74\x0a\x49\x23\xd9\x48\x5d\x14\x01\xec\xc3\x84\x4e\x29\x04\x14\xa0\x53\x54\x5e\xf0\x62\x83\x76\x4e\x30\x04\xeb\x6e\x8c\x9b\x4e\x83\x2c\x27\x8c\xc3\x4e\x39\x47\xee\x62\x21\xc6\x0a\x62\x60\x7d\xe7\x0c\x4f\x69\x54\xce\x6e\x01\x64\x5b\x94\xa3\xb8\x94\x5b\x2c\x6c\xb0\x62\xcb\x13\x82\x7e\xfe\x5b\x3e\x28\x70\xbc\x58\x83\x41\xba\x50\x81\xd2\x3e\x10\xa9\xa1\xea\xb2\xed\x59\xe8\xc9\x1d\x73\x6b\x11\x87\x73\x6b\x2b\xdd\x83\x97\x2c\x65\x1e\x92\x5b\xc1\x65\xa6\x8f\xb7\x99\x51\x69\x8f\x9f\xa3\x7b\x40\x91\x91\xb9\xc5\x41\xaf\xe2\x2c\x49\xc7\x94\x21\x3a\x9d\x25\xc0\x63\x8c\x19\x62\x48\x26\xf8\x99\x72\x57\x70\xc5\xd4\xa5\x01\x3a\x5a\x89\x10\x9d\xa2\xda\x83\x72\x8e\x3a\x71\x2c\x8b\x0c\xae\xb0\x73\x1c\x17\x3d\x2d\x0e\xdb\x07\x5f\xd3\x8c\xd5\xb2\xcd\xd2\x3e\xca\x8f\x1c\x50\x6c\xfb\x38\x39\x8b\xec\xb0\x28\x32\x6c\x20\xb5\x68\x0a\x0e\xdc\x56\x1e\xac\x25\xc3\x3c\x60\xf9\xe4\x58\xf3\x32\x39\xc6\x21\x16\x6d\xd6\xa3\x85\x2e\x6a\xdb\x69\x46\xd9\x01\x1c\xb4\xf5\xfa\xac\x05\xdc\x5e\xd2\xa5\x9b\x71\x52\x2a\x75\xd7\xba\xbf\x42\xa9\xbc\xca\xce\xb6\xea\xa4\xaa\x16\x22\xe1\x48\x0e\xb2\xfd\xbf\xc2\x3c\x6e\xe1\xd3\x9b\xec\xcb\x46\x49\x73\xe0\xd1\x6d\x55\xd7\xd5\x42\xfe\xb3\x75\x5f\x35\xee\xc3\x2d\x21\x67\xb5\x97\x22\xa1\x54\x08\x8d\xc0\x4b\x89\x29\xb3\x05\xa4\x48\xe6\x46\x73\x05\xdb\xf5\x39\xce\x4a\x2a\xe2\x21\x7f\x2e\xe8\xc4\x53\x22\x25\xae\xc1\x82\xf1\x2c\x79\x9b\x30\x86\xec\x84\xda\x0f\x5b\xee\x27\x77\x26\x1f\xf4\x57\x4d\x32\xfa\x9d\xaf\xd0\xbb\x89\x6a\x19\x36\x76\x41\xcc\xe8\xc6\xa4\x32\x6a\xfe\x72\x92\xc7\x00\x71\xe1\x85\x46\xd5\x79\xad\x5a\x5a\x03\xcb\x04\xab\xac\x0b\xe6\x7b\x1e\x57\x0f\x1d\xf2\x5a\x5f\x1b\x6c\xdc\xba\x83\x70\x91\x3e\x2b\xec\xba\x82\x9b\xd6\xaf\xd8\x1e\xf1\xe9\xd4\xc8\x05\x05\x13\xf0\x09\xc2\x26\x83\x34\x97\xa6\x64\x1a\x4d\x8c\x73\x4c\x5f\x19\x27\x7d\xf6\xe2\x2d\x48\x21\xc6\xba\xe3\xb7\x04\x40\xad\x5f\xf5\x71\xa3\xcf\x85\xc8\x75\x10\x19\x29\x84\x51\x7b\x1b\xc1\xf8\x31\xf3\x82\x67\x4b\x36\xb8\xb7\x5e\x1b\x6c\xf5\x35\x6a\x6b\x96\xe8\x5b\x57\x61\x33\x9b\x9b\x57\xd8\x72\x03\x05\xbf\xed\x10\xbc\xda\x9a\x55\x23\xd8\x42\x69\xcd\xbd\x22\xa7\x67\x99\xb0\x26\x71\x7a\x3a\xb4\xf0\x1f\x7a\xba\x8e\xda\x7f\x74\x33\xfa\xa3\x51\x84\xd3\x1a\xbc\x18\xaf\xb5\x0c\x3c\x1d\x9d\x6a\x99\xd5\xe1\x18\xd8\xf8\x11\x89\x4e\x0d\x20\xe3\x7b\x08\x62\xed\xdc\xf6\xde\x9f\xa0\xf7\x7e\x22\xdf\xfb\xa3\x31\x5d\xe4\xc7\xdf\x52\xcd\x16\xf7\x04\x5d\xae\x90\x4b\x52\x3c\xf4\xb0\x53\x4a\x7c\xc0\xee\x18\xcb\x06\x50\x1d\x17\xd0\x5f\x16\xbe\x01\x8f\x3e\x94\x8b\x34\x4e\xef\x2c\x92\xdd\xfa\xcd\x8c\x84\x4d\x65\xc5\xca\xc5\x7d\x36\x9c\x97\x3d\x63\x27\x99\x6b\xac\x35\x8f\xd8\xb8\x04\xa2\x6e\x6f\x31\xef\x7c\xcb\x11\xd6\xcd\xb7\xd1\x92\x4c\xf6\x4e\x56\xa7\x27\xe7\xa1\x75\xa1\x1d\x21\x35\xa1\x6a\x56\x05\x33\x9f\x23\x66\xe5\xa2\x2c\x93\xbe\x8e\x6d\xbb\xb5\x88\xe7\xef\x54\x51\xc4\xa6\x72\xd4\x88\xf6\x61\x97\xed\x76\x97\x6d\x23\x95\xa5\x38\xb8\xd5\xaf\xef\x0b\x23\x45\x7a\xcd\x38\x73\xaf\x56\x65\x32\x06\x5f\xa8\x93\xb9\xbc\xbc\xf5\x8a\x8e\x72\x8f\x26\xcb\x3d\xe5\xf7\x26\xda\xc2\xf8\xaa\x17\xc7\x5a\x1e\x6a\x47\xd9\xea\x52\x9c\x9a\xb4\x55\x45\xa7\xe4\xc4\x94\x33\xcb\x23\x44\xec\x79\x85\xed\x66\x02\xbb\x26\x84\x0a\xd7\x89\x05\x8f\x5c\x09\xe7\x60\x45\x5d\xa0\x6e\x8f\x6c\x10\x9e\x73\xdd\xf9\xdc\xbd\x1c\x74\xaf\x1f\x7a\x0f\xbf\x56\x00\x83\x16\x1f\x3b\x6c\x50\xef\x85\xfb\x5f\xef\x1f\xba\x9f\x07\x9f\xba\xd7\xdd\xbb\xce\xc3\x12\xdc\xd0\xa6\xce\xea\x30\x29\x53\x59\xa5\x3c\xae\x82\x4b\xe9\x8c\xcc\x15\xbd\x2f\xa2\x87\x7a\x9d\x50\x52\x83\x20\x6a\x30\x1d\x58\x4c\x04\x8a\xc9\x33\x49\xf8\x2c\x37\xea\x56\x12\xcc\x83\x16\xad\x68\xbf\x09\x5e\x14\xda\x2c\xd3\xf8\x1c\x99\xda\x88\x5e\x79\xe8\xac\x41\x10\xf9\xb0\x20\xec\xbd\x42\xe4\xeb\x2c\xa1\x11\x55\x5e\xce\x27\x17\xd6\xb9\x63\x7c\xae\x10\xd2\xbb\x64\x73\x6d\x2d\x84\x67\xeb\x16\x07\x3f\xfc\x60\xd1\xd6\x90\x9d\xa8\x0c\xea\x6e\x69\x65\xa8\x2d\x98\x15\x6a\x3c\xed\x0b\x48\x7c\x6b\x8c\x6e\x17\xc6\x89\xc5\xc4\x26\x9b\xb7\x59\x83\xd2\x57\x3d\xc8\xe5\xb7\x61\x53\x70\x51\xe1\x5c\x37\x47\x17\xb5\xdb\xa9\xaf\x1c\x23\x54\x28\x44\xbb\x05\x48\x15\x1b\xf0\xbf\x62\x94\xc7\x42\x21\x20\x66\x02\x75\x31\x12\x64\xca\x95\x56\xc0\x4c\x18\xc5\x89\x16\xaa\x28\x4e\xe8\x3f\x01\x7c\x4c\x90\x33\x2f\xec\xc4\x41\xb6\xe5\xce\x0b\x0b\x0c\x72\xd6\x67\x97\xdd\xdb\xbb\xee\x85\x66\x48\x67\xe8\x51\x02\xae\x58\x61\xea\x97\x76\x7b\x1b\x71\xcc\x0f\xff\xa0\x4c\x2a\x82\xeb\x22\xe8\x88\x10\x5c\xb4\xe7\x0f\x59\x7f\x5d\xf8\xae\x7a\x7b\xc3\xb3\x82\x65\xcc\x99\x1f\xae\x6b\xab\x88\x7b\x89\x16\x5b\x4f\x64\xbb\xc3\x2f\x05\x8a\xf8\xb8\x2a\x20\x89\x14\xa9\xbe\x43\x6a\x03\x32\x6b\xfb\xf9\x15\xfa\xbc\x85\x6f\x9b\xe6\xf9\x00\x71\x89\x52\xe5\x30\xaf\x06\x09\x36\x2b\x67\x54\x9a\x67\xad\xa8\x28\x5e\x03\x83\xa5\xb4\xf5\x87\x64\x8c\x19\x12\x29\x63\x25\xdc\x5f\xdf\xce\xb7\x18\x69\xb4\xea\x51\xd5\x34\xc3\x53\x9e\x32\x53\x8f\x57\x8f\xaa\x62\x30\x72\x46\x98\x5a\x32\x98\xd7\x42\xd8\x29\x0d\xf5\x70\x41\x76\x2a\x06\x5a\x87\xb3\x53\xe5\xcd\x82\x52\xe5\xab\x5d\xcb\x2e\x92\xb1\xe0\xd2\xd2\x87\x2a\xbb\x9f\xab\xb5\x6c\x2c\x9f\x36\xee\xee\x01\xcb\xa7\xe5\x5d\xc5\x24\x7a\x5a\xf5\xb2\x29\xa7\xb3\x26\xb6\xd2\xfb\x82\xb1\x6f\xae\x9f\xda\x9a\x3b\x50\xe0\x3f\x7a\x42\x3f\x3d\x7c\xbe\x42\x23\xaa\xe5\x5e\x7d\xad\x5c\x63\x2d\x63\x3f\x8a\xc4\x59\xa5\xad\x65\x37\x15\x49\x76\xf7\xc2\xc2\x3b\x51\xca\x93\x12\xf4\x8d\x86\xc7\xc4\x99\x9a\x85\x85\x51\x2c\xd5\xdc\x11\x98\xc5\x7c\x6a\xe6\xf1\x41\xa6\xa3\x11\xfd\x7a\xa6\xb0\xf8\xbe\x86\x1e\x26\xa6\x63\xf0\x0f\x3e\x1c\xe8\x11\x6d\x78\x11\x57\x35\x87\x6c\x01\xf2\x8c\x6c\x76\x66\x97\xe6\xdd\xff\xc3\x87\x00\x11\x00\x28\x07\xce\x37\x68\xe3\x24\xec\x2b\x6e\x27\xe5\x15\xb9\x0b\xe8\x35\x11\x17\x82\x58\x64\x01\x53\x34\x76\x86\x85\xa2\x60\xad\x75\xe8\x37\x85\xb2\x07\xf9\x12\xf9\x25\xf2\x27\x38\x87\x18\x1f\x12\x02\xee\xa5\x19\x4d\x56\x53\x7a\x2f\x0a\x9e\xd1\xd2\x09\xb4\xe1\xba\x16\x10\x15\x0c\x32\x4b\x45\xac\xee\x33\x61\x6a\x2b\xfa\x09\x34\x51\x81\x75\xd0\xce\xc7\x61\x6a\xb7\xf6\x2e\xf3\xcb\xcd\xc5\x41\xfb\x31\x55\x4a\x60\xb8\xe7\x6d\x76\x99\x75\xe8\xd7\x85\x19\x3c\xb7\xf6\x5c\xc3\xab\x8b\x74\x59\x92\x4f\x60\xa9\x9d\x97\xc6\xcf\x63\x81\x5d\xcd\x86\x35\x11\x9a\x24\x31\x56\x0c\x0f\x19\xc4\x2a\xa7\xe5\x35\x37\x7d\xea\xbd\x55\xea\x72\xe9\x92\xaf\x01\x47\x54\x68\xe6\x13\x81\x3c\xd8\x6d\x44\xef\xaf\x02\x78\x00\x03\x79\x14\x09\xc4\x9d\x37\x5a\xb1\x4c\xfd\x78\xcd\xf9\x32\xc9\x0e\xb7\x90\xd1\xcd\x60\xb4\xd0\x48\x66\x82\x44\xfa\x2a\x3b\x47\xb7\x09\xd1\x92\x57\xaa\xa5\xaf\x34\x49\x1c\x74\x5b\xb3\x74\xb8\x12\xdc\xe0\xce\xe7\xe5\xe9\x1e\x0d\x13\x73\xd0\x85\xcd\x33\xf3\x68\xb0\x7d\x98\x0a\x8f\xbe\x60\x42\x06\x43\x62\x51\x8b\x04\x0e\x3f\x37\x51\xbb\x60\x4a\xc2\x85\x8b\x8c\xfe\x53\xb3\x5f\x41\xe4\x84\xd7\x66\x86\xfa\xb3\xdd\xcd\x1c\x1c\x29\x77\x38\x09\x77\x1f\xd6\x05\xa3\xb7\x90\x6b\x4a\x77\x60\x41\xc4\x69\xe3\x8b\xcd\x63\x4f\x2c\x90\xae\xbd\x5b\xed\xd0\xe0\x96\xcc\x4d\x6d\x3e\xa8\x5d\xee\xba\xc8\x95\x99\xb9\xf1\xbd\x66\x9f\xe7\x06\xe4\x3c\x8f\x82\x2a\x99\x97\x13\x44\xfa\xae\xad\x5b\x62\x3d\xcf\x41\x2a\x56\xc2\xf1\xc8\xe1\xe8\x57\xe1\xdc\x36\x83\x27\x1f\x96\x26\x42\x35\xbb\xb4\x55\x42\x40\x8c\xb6\x81\x4e\xb2\x00\xf1\x67\xb7\x8d\x21\x63\xa5\x8a\x57\xcf\x94\x37\x75\xab\x81\x94\x9c\x8b\x32\xbb\xf2\xae\x15\x76\x60\x61\x02\x01\x34\x6e\x75\xd0\x38\x5b\x32\x26\xdb\x7b\x00\xf1\xa8\x04\xa0\x25\xe4\x0e\xb4\xb2\xe0\x60\x8d\xde\xcb\xd2\xc5\x0a\xab\xd3\x2a\x37\xac\xf0\x85\xe6\x25\x97\x1b\x7a\xe0\xf4\x64\xe6\x03\xc8\xb6\xdd\x24\x06\xa8\x30\x7f\xe3\x3d\x80\x36\x49\x8c\x0c\xe4\x83\x81\xb4\xb6\xb4\xcb\x3c\x27\x33\x2c\x08\x53\x7d\x76\xa7\x47\x61\xbe\xc8\x23\x31\x5c\x14\x90\x2b\x33\x00\xc5\x88\x47\x08\xdb\xaf\x80\xe8\x75\x61\x78\x72\x60\x5e\x02\xd5\x74\x87\xc8\x04\x3f\x9a\x77\x0c\x50\x84\x05\x4a\xd2\x53\xa5\xa3\x5c\x8d\xd7\x02\x64\x34\xa1\x80\xd3\x10\x13\x69\x2f\x24\xaa\x2c\x10\x47\x26\x7e\xa7\xc4\x01\x6b\xc3\x67\x19\xff\xaa\x62\xd8\xce\x50\xc0\x9c\x81\x4e\xf6\x99\xd7\x47\x03\x0e\xab\x51\xd6\xd7\x54\x25\x60\x9d\x69\x9c\x39\xbe\xe0\x9f\x66\x85\xb8\xa0\x63\xca\xbc\x6a\x58\x76\x7a\x53\x3c\x03\xf3\xae\x39\x83\x7c\x94\xdd\x69\x0f\x36\xc7\xe1\x0c\x46\xfc\x7f\xff\xeb\xbf\xcf\x68\x9d\xf7\x43\x0e\x2c\x05\x0e\x61\x25\x57\x5b\x16\x7f\xe5\x3d\xe8\x95\x1a\x48\x0f\x4f\xa7\x95\x85\xbc\x8d\xfc\x57\x7b\xb9\xe9\x4d\xc3\xd5\xc4\xb8\x7b\x8b\xdb\x1d\x7c\x23\x22\x6d\x38\x1b\xe6\x8a\x79\x5d\x5a\x52\x09\xb9\x09\x7a\x24\xe6\x24\x67\x06\x02\xbf\xd2\xfc\x82\x99\xa6\xcf\xf2\x4f\xa4\x01\x91\x31\xb8\xbd\xe6\x87\x9c\x3a\x2d\x09\xd3\xc4\xfb\xf3\x48\x89\xdc\x1d\xee\xc5\x42\xbb\xba\x28\x26\x86\x55\xb7\x5f\xba\x69\x4b\x9c\xdb\x03\xb0\xdc\x24\x66\x74\x82\xe5\xee\x42\x73\x2a\xeb\x79\x19\x6b\xba\x2f\x3c\x2c\x0b\xd2\x31\x83\x34\x29\xb2\x7a\x41\x52\x49\x84\xe1\x74\x19\x86\x98\xdd\x09\x3e\x3c\x27\x44\x88\x2e\xf1\x35\x92\x29\xa6\x2b\x65\x33\xe8\xf7\xab\xc1\x43\x0b\xce\x06\x3c\x26\x62\x10\xa7\x6a\xe1\x58\x34\x65\x18\xe8\x8f\x2e\x53\x35\x5f\xde\xbe\x4c\xf0\x62\x3d\xa3\x26\xc0\x56\xfd\x7e\x4d\xb3\xcb\x25\x66\x2f\xc4\xa7\x28\x35\xd7\xc0\xa1\x92\x12\x1c\xaa\x8d\x78\x2d\x98\x48\xe0\x06\x66\x0a\x70\x08\x73\x4d\xca\x5e\xd1\x06\xb4\x1d\x46\x8e\x86\x69\x6e\x52\xca\xca\x60\xc4\x67\x7d\xf6\xd1\xd4\x91\x01\x2d\xcf\x0c\x20\x82\x74\x23\xf2\x75\xc6\x25\x29\xe4\xbf\x55\x94\xb6\xb0\x89\xaf\x76\x18\xd5\xc2\x7a\xfe\xd1\xe6\xb2\xfa\xab\x03\xdb\x2e\x2e\xf8\xe2\x94\xab\x77\xe0\x46\xe2\x60\x44\x67\x54\xef\x9d\x41\xe5\x49\xdb\x5d\x79\xe5\x3c\xa6\x0b\xc0\xc3\x54\x32\x3f\x41\xd9\xf4\x4a\x1b\x22\x21\xcf\x04\xcc\xe9\x30\x46\xbf\x80\x49\xd1\xae\x57\xc3\x4e\x96\x1d\xa0\x3c\xf9\x14\xd8\x02\x8a\xcb\x23\x28\xa6\xe8\x55\xed\xc5\x62\xf2\xd1\xc6\x79\x72\x55\x81\x29\x2b\x88\xe7\x1d\xbf\x90\xcb\x9c\x28\x44\xbe\x2a\x62\x4b\xbd\x3e\xb8\x4c\xc6\xc5\xe4\x07\x54\x9d\x8c\x55\x2f\x3b\xee\xbc\xe8\x76\xc7\x25\xbe\xbb\x54\xcd\xd8\x5d\xf9\x36\x75\x71\x82\x59\x6c\xf3\x71\xad\x92\xa1\x85\x2d\x98\x9d\x31\xba\x65\x99\x0a\x36\xab\xd4\x43\xc0\x37\x6d\x1a\xa8\x7e\xb8\xc8\x9c\xc2\xa8\x55\x16\x08\xaf\xe0\x42\x4b\xee\x29\x53\x34\xd1\x9b\xc3\x8e\x41\xa2\x11\x44\xc6\x59\x74\x47\x88\x6c\xaf\x03\x10\xa4\x52\x52\x36\x1e\x58\x4a\xba\xd4\xd2\x76\x17\x43\x71\x4f\x7d\x36\x4d\x99\x1f\x7f\x74\x0d\x35\x1b\xd5\xcd\xb6\x06\x70\x37\x97\xd4\x0a\x1a\x07\xe3\x6e\x32\x16\x95\xcf\xe5\xc2\x0e\x68\x6c\x48\x41\x4d\x45\x71\x98\xe8\x2a\x76\x77\x90\xe9\x16\xc1\x2f\xf2\x2b\x44\xda\x44\x55\x93\x7e\x06\x91\xfa\xaa\x26\x13\x57\xd6\x66\xe0\xf6\x58\x26\xa2\xd9\x7a\x66\x19\xce\x40\x29\x99\x17\xbb\xee\x6c\x3a\x02\x4e\x92\x21\x8e\x9e\x32\x2d\x2c\xb3\x45\x70\xe1\xea\x41\x68\xb9\x12\x0a\xde\x99\xcd\xa5\x07\x1a\x81\x74\xe3\x7b\x0b\x0d\xfc\x91\x1d\x76\xde\xb9\xa1\x9a\xc5\x95\x33\x78\x57\x66\xf4\x26\xb7\x21\x26\xb3\x84\xcf\xa7\x35\xf7\x59\x39\x81\x71\x93\x48\x9d\xba\xfc\xc9\xad\x5e\x65\x25\xa6\xb7\xf2\x65\xb6\x90\x0d\xb5\x05\x30\xae\x15\xb8\xe4\xa7\x84\x0f\xc1\xa4\x6a\xcd\x0f\x2e\xc3\xc7\x4b\xf5\x28\x9f\xe7\x55\xf3\x8e\xca\x27\x92\xca\x59\xa2\x95\x99\xfa\x1e\x4c\xce\xc9\x6e\xd7\xcd\x20\x24\x2c\xb7\x0e\xb6\x8f\xd6\xae\xfc\x7c\x17\xb0\xcf\x57\x4e\x12\x30\xef\x1a\xfe\x55\xb2\xb2\x99\x54\xc3\x33\xe3\xa4\x56\xbc\xcf\x14\x1e\xbb\xc5\xb5\xc2\x25\x7f\x61\x44\xc8\x09\x9d\x15\x0a\x61\x6e\x1c\x1e\x6e\x77\xb4\xfd\x3f\x13\x0c\x5d\xd9\xe6\x01\xa6\x6e\x3d\xf0\xd9\xa9\x41\x67\xd1\xbb\x53\xce\x70\x94\xdb\x64\xa3\x04\x4b\x49\x47\x73\x0f\x54\x25\x8b\xf3\x85\xd4\xb5\xa2\x11\xc3\xab\x7c\x57\xc5\xe6\x0c\x75\xb6\x83\x2a\xb0\x79\x46\xe5\x63\xf1\xf0\xd3\xd8\x07\xdd\xd3\xb7\xd9\x22\xf4\x8e\x93\x13\x2c\xd5\x6b\xc1\x83\x0d\x7c\xc2\x7a\x28\x00\x6d\xf1\x9a\x76\xbc\x93\x2a\xd2\x30\x17\x36\x52\x8e\x16\x96\xc9\xd1\x96\x66\x56\x87\xcb\x90\x56\x7c\xf8\x22\x55\xc8\x61\x85\x9d\xa7\x75\x46\x67\x12\xd7\xe7\x32\x43\x69\x01\x30\x8b\xfc\xe3\x13\x24\x37\x02\x65\x6b\xb3\x29\x2f\x49\x42\xb6\x12\x6c\xbe\xc6\x0e\x2d\x47\x72\x78\x7b\xb3\x71\x5f\xe6\x65\x29\x96\xdb\x55\xd6\x88\x81\xaf\xc1\x48\xaa\x1e\xfa\x17\x33\x50\x1b\x06\x5f\xb5\x8a\x60\x13\x05\x2a\x2f\x1f\xed\x21\xed\x72\x2f\xb4\xc4\x0c\xdf\xee\xf7\x7c\x8e\x85\x4d\x9d\xcf\x38\x93\x13\x0f\x71\x9f\xbf\x72\xa8\xfa\xc2\xb8\x3e\x91\x36\x61\x35\x4b\x4f\xdf\x5a\xbc\x77\xf1\x86\x6a\xb7\x2f\xac\xe3\x5a\x71\x34\x26\x80\xc4\x43\x59\x4c\x9f\x69\x9c\xe2\xe4\xa8\xf6\xc4\xd6\x12\x6d\xb6\x44\xfd\x6a\x0e\xd3\xca\xd2\x93\xc7\x83\x12\x25\xdd\x7d\xb4\x80\xf9\x69\x17\xe7\x00\x97\xe0\x30\x8e\xa5\x51\x18\xde\xbc\xc4\xb6\x31\x34\x86\x1d\x99\x05\x88\x08\xa2\x64\xe1\x92\xcd\xc7\xbe\x7d\x69\xd2\xd0\x38\xb6\x5f\x64\x70\x10\x05\x18\x36\x5c\x40\xb3\x34\x6b\xf4\xfa\x5c\xb7\x7c\xb4\xde\xba\xdc\xb9\xfa\x19\x2b\x8f\x2a\x3f\x5d\x41\x18\x3e\x84\x73\xda\x5e\x1e\x76\x00\xb4\x07\x28\xfc\xd4\x1d\xc3\xc3\xbc\x7f\x0f\x40\x38\x5e\x10\x09\xb6\x27\x22\x1f\xd1\x36\x39\x08\x49\x79\x61\x29\xf6\x25\x2f\x9f\x3a\x6c\xaf\x1c\x29\xeb\x70\x97\xe8\x30\x4e\xf2\x9d\x75\x3f\xee\xee\x82\x5f\xbe\x5f\xb6\xb2\x3f\x00\xe6\x16\x43\x3e\x7e\x6a\xcb\xfd\xc0\xe1\xf5\x62\x38\x17\x7c\x5e\x4b\xa2\x63\xed\xf0\x5a\xc5\xc5\x2e\x90\x73\x17\xcb\x6b\x93\x2f\x5b\x2f\xee\x2e\xb7\xda\xaa\x63\xd9\x86\x8e\xb6\x63\xef\xa1\xdd\x8d\xde\x07\x21\x48\xbd\xdd\x2d\x5a\x01\xe9\xe4\x96\x6c\x9b\x87\xac\xaa\x46\xe3\xe6\xf0\x11\x2e\xb7\x74\x30\x13\x64\x44\xbf\xae\xa5\x0a\xdc\xc2\xa7\x56\xbd\xd6\x64\x2e\x55\x7d\x04\xb7\x20\x54\x89\xf4\x02\x69\x2d\xa5\x6d\x65\xb8\x3e\xcb\x33\x72\x6d\x3a\xae\x16\x86\xb9\x28\xfc\xb4\x2e\xf4\xe9\xf6\x2b\x54\x9a\x75\x9d\x28\x35\x93\xe7\x1f\x3e\x8c\xa9\x9a\xa4\xc3\xb3\x88\x4f\x4d\xfe\x07\x17\x63\xf3\xc7\x07\x2a\x65\x4a\xe4\x87\x3f\xff\xe9\x4f\xf9\x12\x0f\x71\xf4\x34\x36\x70\x4e\x8b\xfe\xce\xe2\x92\x13\x2c\x37\x8b\x28\x73\xa9\x93\x3b\x4e\xa1\xf7\xba\x71\x49\xcb\xfa\x1b\xa9\xf0\x74\xe6\x87\x20\x9b\x1a\x8f\x52\xe1\xbc\xb2\x0c\xe4\xc3\xea\x69\xa2\x09\x9e\xcd\x08\xab\x37\xbb\x98\x04\xe7\x0d\x58\x8f\x4b\x91\xb6\x23\x24\x5f\x67\x09\x66\x45\xd8\x0f\x28\x93\x26\x48\x44\x98\xb2\x90\x14\x79\x6d\x7a\xd8\x8d\x06\x7a\xca\xf0\xff\xd5\x52\x60\x61\x8e\x54\xe6\xf5\x0f\xdd\x70\x6c\x2d\x62\x57\xa1\x16\x7b\xa4\x2b\xd7\x7f\xce\x69\x47\x1c\xd5\x9a\x92\x63\xef\x6d\xad\xb7\x4d\x76\x50\x24\x38\x1b\x90\xaf\x9a\xc9\xc9\x75\x81\xe2\x1e\x25\x91\xa8\xf3\xe5\x1e\xc9\x39\x53\xf8\xeb\x39\xfa\x4c\x19\x08\xb0\x3f\xf1\x54\x48\x74\x89\xe7\xa7\x7c\x74\x3a\xe5\x4c\x4d\xd0\x67\xf8\x5f\xfb\xd3\x0b\x21\x4f\xe8\x57\x82\x85\xe5\x0f\xb6\x7e\xa4\x2b\x61\x07\x5b\x48\xa4\x4c\x22\xf2\xac\x4f\xe8\x9f\xfe\x17\x9a\x9a\x96\xcf\xd1\x0f\x1f\xfe\xf4\xbf\xd0\x1f\xe0\xbf\xff\x0f\xfa\x43\x8d\xa5\x61\x35\xa8\x39\x28\x33\x7e\x57\x1b\x46\x00\x94\x92\x8b\x24\x5f\xd6\xec\x85\xe0\xf9\x4a\x55\xb6\xfc\x44\xa3\x27\x3e\x1a\x0d\xf4\xc6\x30\x09\xa4\x03\xbc\x91\xd9\xc1\x47\x0d\xa6\xb6\x50\xbc\x29\x3b\x99\x17\x7c\xb2\x9d\x1a\xa4\x11\xc7\xae\x65\x9a\x9b\x27\x20\x78\xad\x50\x7a\x9c\x4a\xf8\x8a\xc4\x9a\xab\xae\x72\x3a\x9c\x75\xd1\x81\x0e\x38\x0b\x92\x8f\xcc\xe3\x04\xe2\x42\xc0\xa9\x1f\x3d\x6d\x02\xcc\x2c\x21\x2b\x8f\xc3\x42\x58\xf7\x9b\x89\xd5\x85\xa9\xbd\x56\x9c\xae\x5c\xe8\x7c\x79\x88\xee\x3d\x17\x1b\xe9\x5b\x4f\xa4\x36\x85\x66\x49\x71\x33\x57\x70\x1b\xfb\x46\x0d\xc5\x91\xe4\x22\x43\xef\x36\x76\x11\x5b\x02\x75\xb9\x15\x95\x0a\x13\xd4\xd8\xee\xd0\xeb\xa9\x5f\x66\x9f\x2c\x1b\x26\x44\x38\xba\xb7\xf3\xe2\x8e\x30\x5a\x2d\x22\x69\x96\x58\x31\xe2\x0a\x90\xcd\x65\x0b\x7a\x9f\xe1\xaa\x40\xe3\x10\x6e\x0b\x79\x43\xcc\x49\xb6\x16\xb8\xa2\x7a\x3d\x53\x11\x91\x0b\xbe\x59\xb8\x75\x42\xd9\x42\x9e\x46\x6d\x70\x5b\xbd\x4c\x7e\x65\x2b\xc4\x39\x1c\x6a\x1e\xe7\xca\x82\x71\x4b\xd8\xda\x2b\x1e\x00\x6e\x71\x36\x00\xa4\xb8\x0d\x8c\xd5\x85\x8a\x20\x1b\x70\x6d\x63\xb8\xce\x19\x9e\x2b\x28\x53\xaa\x23\x23\xb0\xe6\x85\x0d\x31\x93\x10\x4e\xb6\xf1\x38\xbc\xda\x48\x79\x8c\x5a\xa1\x4a\x31\x8c\x04\xf2\x2d\xd7\xc4\xc8\x35\x65\xca\x4e\x90\xc0\x10\x0c\xac\x26\xba\x3d\x49\xc4\xe9\x08\x47\x94\x8d\x4f\x3c\x78\x54\x80\x2a\xf1\xaf\x83\xaa\x4d\xfa\x80\xe5\xd3\x76\x03\x5c\x37\xae\x36\x4b\xe3\xbc\xe2\xa1\x05\x34\x32\x8e\x15\xba\x80\x0d\xa9\xb0\x7c\xaa\x43\xf4\x5a\x80\x13\x6c\x18\x5d\x46\x0a\x07\x42\xd8\x34\x3e\x07\x7d\x40\x7c\x7d\x0a\x2a\x95\xb8\xfa\xe7\x16\x5c\xd4\x65\x9a\xe2\x0c\xfd\xa7\x8c\xaa\xdb\x30\x7e\x39\xe1\x42\x0d\xd6\xc4\x23\x2e\xbb\x54\x18\x39\x4d\x00\x48\x88\x3f\x13\xf1\x4c\xc9\x4b\x11\xd6\x77\x95\xbd\x68\x8c\x66\x5e\x3c\x25\xe0\xbe\x4e\x67\x1c\x52\xb7\x46\x68\x8a\xd9\xdc\x30\x4a\xcd\x5c\xb0\x7c\x92\x59\xd5\x65\x24\xa7\x38\x49\x4e\x90\x20\xa9\x34\xd5\xc8\x25\x49\x46\xa7\xae\x00\x4c\x8c\x12\x3e\xa6\x11\x4e\xd0\x30\xe1\xd1\x93\x34\x99\x95\x6c\x6c\x98\xd4\x4c\xf0\x88\x48\xe9\x49\x56\x39\x8a\x82\xcd\x6d\x85\x92\xcb\x8a\x88\x29\x65\x54\x2a\x1a\x39\x91\x29\x07\x43\x31\x85\xff\x23\x0c\x26\x61\xc8\x14\x86\xe1\x6a\x49\x8f\x18\x50\xd8\x94\xd9\x52\x61\x70\x5d\x5b\xac\x47\x97\x9c\x50\x77\x80\xb6\x00\x5d\xe9\x76\xc8\x40\x15\x0f\xe4\x92\x23\x75\x61\x3f\x83\x63\xdc\xb4\x05\xee\x8a\x27\x2a\xdb\x90\xd9\x49\x2b\xc0\x69\x41\x2e\x43\x96\x7a\x51\x90\x5c\xb2\x8c\x84\x03\x43\xd2\x83\x21\xd7\xe0\xe7\x2d\xdb\xd3\x9a\x8a\x20\xf2\x40\x75\xba\xb2\xd7\x9e\xb2\x28\x49\xe3\xac\xac\xaa\x16\x01\x9e\xf5\x26\x71\xe4\xd1\xb4\xd7\x82\xc2\x09\xc2\x12\xbd\x90\x24\xd1\xff\x6f\x32\x2f\x4e\xb3\x72\x21\x9a\x25\x9b\x92\x2e\xd0\x89\xe3\xd2\x75\x3b\xea\xe0\x50\x51\x6f\xb1\x9a\x18\xac\x89\x29\x57\xa6\xa2\xad\x41\x45\x75\xf6\x2d\x03\xa3\x39\x4c\xf8\x10\x4e\x3a\x00\xa6\xba\xfc\x6a\x2f\x9d\x33\x8d\x22\x42\x62\x12\x9b\xfa\x9c\x19\x98\xa7\x3d\xa2\xdf\x57\xc3\x77\x16\x28\x72\x00\x60\xa9\x65\xc3\x5a\x2d\x64\x6a\xb1\xba\xe1\x19\xba\x2d\x01\x02\x79\x94\x19\xe1\x32\x3c\xdc\xc9\xc2\x12\xbe\x0e\xc0\x6a\x69\x12\xbb\x5b\xa1\x15\x01\x56\x0b\x7d\x6e\x01\x60\xb5\x34\xcf\x9a\x9c\x11\x3e\xde\x69\xae\xbb\x9e\xd4\x15\x6f\x9f\x80\x68\x80\xe9\xcc\xdd\x59\xd8\x82\xee\x40\xce\xab\x36\xe2\x61\x81\xc7\x96\x6a\x80\xbe\x2e\x78\x6c\x69\x30\x87\x0c\x1e\x5b\x1a\xea\xe1\x82\xc7\x56\x0c\xb4\x05\x78\xac\x71\xee\x0f\xf4\xa6\x6e\xc7\x14\x20\xa1\x6a\x98\x8e\xee\x01\x62\xa0\x71\x8c\x17\x26\x70\xc0\x5c\x63\xee\x8e\xb6\xf1\x45\x30\x5a\x9b\x7b\x5b\x17\x8e\x55\x72\x42\xac\xba\xf7\x32\xef\x9b\x01\x1d\x59\xd5\xec\x7e\xe2\x5b\xbb\xc1\x0e\x19\xe1\x99\xc5\x32\xa8\x2b\x71\x74\x38\x59\xdb\xeb\xe1\xf2\x02\xf6\x65\x81\xe5\xb7\x42\xae\xfb\x5c\xaa\x16\x32\xe1\x2f\xb6\x62\x17\x6c\x43\xb3\x29\x6b\xb7\x20\x74\x3a\xb0\x4a\x5b\x1d\xe5\x28\x53\x64\x5c\xd6\x69\xf3\x43\x43\x99\xfa\xcb\x9f\x97\x72\x22\x03\xed\xe9\xd4\x43\xaf\x66\x47\xe6\xec\xb0\xcf\x48\x8c\xa2\x89\xd6\x8a\xa4\x56\x5f\xf4\x74\xcc\xcd\x2a\xd1\x14\x53\xa7\x48\xa5\xd2\xb8\x96\xa8\xec\xb3\x02\x16\xee\x19\xfa\x08\x65\x90\xf1\x74\xa6\xf5\xaf\x6c\x7e\x54\xef\xa4\x7e\xfa\xc3\x0f\x7f\x21\xe8\x07\x34\x25\x98\x15\x74\x58\x50\x9b\xf4\xd5\x07\xd8\x91\x6a\x42\xfa\xac\x72\x29\x50\xf7\xab\xa9\x6d\xe6\xe2\x0d\x7b\x6c\xc4\x9d\x4e\x0c\xe5\x3d\x71\x34\x41\x32\x1d\x9a\xfa\xd4\x9e\x0d\xc3\x09\xd2\x57\x7c\x0c\x8e\x6a\xb8\x91\xdd\xa0\x9b\x4e\xe1\x6e\x63\x00\xac\xbb\xb1\xed\x6d\xdc\x81\x7b\xe4\x54\x92\x02\xa6\x58\x85\xd3\xcc\x70\x3e\xff\xe0\x4b\x83\x37\x74\x62\x7c\x08\x5a\x3f\xc3\xd6\xb2\xaf\x65\x69\x08\x27\x06\x2f\x59\x9a\x60\x61\x8f\x7e\x9f\x69\x45\x43\x90\x67\xca\x53\x99\xcc\x51\xcc\x19\x39\x81\x9d\x90\x46\x13\xe3\x58\xd5\x3a\x0b\xb6\x85\x52\x9e\xa9\x4c\xb5\x42\x0b\x6d\xb9\xba\x2c\x52\x61\x83\x85\x36\xa1\xd0\x8f\x56\xbf\x09\x7c\xa5\xbc\xfc\x48\xd4\x4e\x8b\xf2\xe1\x8a\x4b\x3c\xbf\x25\x5c\x71\x61\x57\x05\xb8\xe2\x0c\xae\x78\x91\x2e\x87\x08\x57\x5c\x5a\xf3\x76\x70\xc5\x55\x4b\xbe\x06\x5c\x71\xa1\x99\x37\x03\x57\x5c\xa2\xe8\x9b\x81\x2b\x2e\xcd\x2b\xc0\x15\xbf\x3d\xb8\xe2\x0d\x01\x79\xab\x79\xb1\xc1\xf5\x52\x94\xcd\x57\xde\x64\xef\x25\xea\xdd\xe8\x0d\x16\x3d\x15\x83\xda\xb2\xeb\x6a\x73\x10\xe0\x6a\x26\xb4\x1a\x08\x70\xa5\xaa\x5e\xcf\xea\x36\x05\x16\x03\xc5\x60\xcf\x20\xc0\x85\x09\x84\xf8\xca\xd5\xe3\x2b\x2b\x37\x9f\xed\x5b\x0f\xcf\x05\x5d\x96\x2f\xe4\x96\x30\xc0\x85\xf5\x69\x15\x89\x09\xa2\xfb\x16\x76\xe2\x6e\xa5\xf9\x87\xc2\x21\x5f\x2a\xcb\xfb\x54\x94\x16\x90\x5c\x4b\x78\x0e\xa5\xd0\x28\xe1\xbe\xff\x3f\xec\xdc\x35\x22\x83\x4b\xe4\xcd\xfc\x2a\x66\x2f\xb6\xd8\xaa\xad\x77\xa8\xd3\x4a\xb7\x93\x28\xec\x92\x37\x57\x74\x31\xbb\x41\xdc\xcf\x48\x54\x63\x63\xa6\x53\xba\xad\x66\x97\x5d\x64\x19\x06\x1b\x28\xe4\x0b\x79\xa9\xfa\x7a\x32\xc3\x31\x32\x7e\x29\x1d\x18\x50\x52\xcc\x97\x63\x2a\x95\xa8\x8d\x6d\x5a\x18\xe1\x26\xae\xd2\x59\xda\x3a\x20\xc6\xa3\xea\x78\xbd\xcf\xa6\x64\xca\xc5\xb2\xc0\xaa\xca\x2f\x6d\x89\xa5\x75\x3e\x25\xb3\x09\x99\x6a\x49\x66\xb0\x6a\x23\x6d\xd7\x3b\x4b\x5a\xb6\xb9\x6b\x26\xd0\xb1\xb0\x09\x3c\x47\xa8\x7e\x37\x36\x48\xa8\xad\x97\x7b\xd3\x65\xb6\x58\xad\x2b\x3a\x84\x1c\x88\x77\xb3\xc1\xcd\xbe\x54\x70\x77\xc3\xfe\xae\x8c\xe9\xc8\x42\x6a\x96\x47\x6d\x34\xc4\x6b\x34\xe1\x9d\xe5\x5f\xd9\x02\xe4\x2b\xb8\xf2\x8b\xde\x79\xcd\x09\xfd\xea\xd3\xab\x07\x78\xd4\xa0\xf5\x2e\x92\x07\x22\x73\x24\x11\xa7\xbe\x66\x50\x18\xcc\x22\xbd\x0a\xbb\xc4\x69\x94\x1b\x6c\x92\x54\xd4\x46\x99\xb6\x31\x68\x47\x2a\xc5\x09\x68\x12\x7e\xd5\xd4\xf2\xa2\x0e\xe7\x15\x69\x8f\xed\x3c\x26\x94\xa9\xff\xf8\xeb\x4a\xab\xa9\x55\x2b\x4b\x37\xa8\xf4\x86\xa3\x88\x48\x63\x63\xb7\x51\xc8\x78\xc8\x9f\xa1\xc8\xdb\x26\xab\xaa\x8f\xb2\x9e\xb7\x66\xf0\x19\x04\x76\x9c\x6f\x75\x23\x2e\x4c\x04\x4f\xc7\x13\x67\x43\xd2\x67\x46\x4f\xad\x6a\x2d\x7f\x59\xb0\x91\xaf\xbc\x96\x3f\xa6\x34\x59\xcf\x42\x77\x5f\x28\x7f\xf7\xa9\xf7\x80\xe4\x24\x3b\xad\x43\x68\xb6\x72\x61\x17\x07\xdd\xbe\x4f\xfb\x6d\xe6\xaf\x81\x6e\x4e\x1c\xec\xeb\x88\x27\x09\x78\x1a\x24\x99\x3e\x13\x51\xdd\x3d\x4c\xf8\x81\xae\x86\xd8\x98\x0d\x00\xbe\xce\x13\x23\x5a\xc9\x5f\xb7\x46\x34\x94\xc8\x8d\xbe\x1c\xb4\x60\x42\xd5\x38\x23\xac\xca\xc6\xf6\x65\xb1\xf2\xd0\x91\x05\x0c\xba\xe8\xb1\xad\x05\x0d\x3a\x92\xec\x39\x70\x70\xc9\x3c\x0e\x35\x78\xb0\xc4\xec\xb2\x58\xbe\xfc\x9a\x71\x81\x43\x46\xf1\xe9\x68\x12\xf7\x59\xa7\x90\x4f\xe1\x2a\xb4\x0f\xe7\x79\x40\xb6\xd1\x21\x7c\x66\x06\xf5\x5d\xac\x61\x05\xdc\x68\xfa\x2f\xd0\x74\x0c\x68\xb2\x09\x29\x74\x61\x83\x10\x4d\x4e\xe2\x53\x1c\xcd\xa3\x84\x46\x9e\xce\x3c\x16\x78\x36\xa9\xe2\x78\x6e\xe5\x03\xea\xd0\x6b\xa1\x0e\xd5\x15\x42\x5b\x25\x6e\xdb\xed\x2b\x86\xa7\x24\xa0\x21\x1d\x22\x1a\xd2\x49\x86\xb7\xc1\xf2\x92\x72\xaf\x08\xe3\xb0\x78\xee\x03\x24\xd2\x2b\x40\x22\xad\x73\xf8\x73\xbc\xa3\xc2\xb1\x0f\x30\x4d\x6d\x88\xf7\xfa\x30\x4d\x99\x10\x70\x50\xc8\x3b\xf5\xfc\xe0\x95\x11\x5d\x16\x07\xf6\x9a\xb0\x4c\x15\xe2\xd2\x2a\x72\x63\x13\x2e\x53\xd3\xbe\x68\x45\x97\xd7\x45\x49\x5a\x8d\x32\x2b\x01\x20\x55\xde\x9d\x07\x02\x87\x54\xbf\x0c\x07\x72\x6e\xb6\x99\xd5\xb3\x5a\xcd\x5e\x3f\xb3\x67\x15\x05\x73\xb5\x24\x9f\x6c\x3f\x1c\x57\xa2\x4f\x5e\xdc\x70\xbd\x64\x9f\x8e\xf3\xc1\x13\x81\x26\x3c\x89\x1d\x08\x47\x46\xad\xac\x83\x2c\x13\x22\x23\x90\x5b\x8c\xfb\x19\x89\x8c\xb6\x99\x17\xe2\x6b\x4a\xe9\xc9\x16\x11\x86\xbb\x05\x46\xb3\x0d\x2b\x4a\xc6\x49\xd6\xb1\x9f\x2c\x95\x2e\x64\xd1\xfc\xdf\x30\xc6\x02\x85\xc0\x6b\x50\x3d\xcc\xa5\x76\xef\x25\x83\x6b\x12\x3d\x3c\xe3\xa8\xa8\x2a\xb1\x6b\xf6\x19\x3c\x7d\xa6\xce\x10\x83\xfd\x1e\x1b\xbd\x94\x6e\x76\xad\x3c\x95\xe5\xcd\xb2\x46\x30\xdc\x42\xc5\xc4\xcd\xc1\x91\xa6\xf8\xeb\x60\x86\x05\x4e\x12\x92\x50\x39\xdd\x59\x30\xf4\x45\xd1\x5d\xad\xcf\xaa\xe0\xc6\x44\xc6\xd2\xe9\xd0\x6c\x45\x37\x10\x5b\x64\x53\x71\x24\x52\xe6\x43\xbb\x65\x0b\x93\x15\xf1\x4c\xe1\x5e\x00\xab\x5a\x34\x81\x6a\xc9\x23\x4c\x05\x23\xb2\xb6\x36\x2d\x89\x52\x41\xd5\x7c\x60\x4b\xfd\xb6\x3f\x70\xf7\xf6\xcb\x0b\xfb\x61\xb3\x87\xdf\xa1\x1a\xb8\xfe\xb2\xd2\xc2\x33\x22\xa0\x3c\x97\x2b\x34\xe5\x95\x33\xb6\xa8\x15\x24\xab\xf1\x05\xe1\xdf\x0b\xd7\x76\x5d\xe0\x34\x7e\x19\x78\x19\x65\x83\xa8\xbc\x39\x96\x1d\xd6\x2a\xdc\xad\xa6\x49\xee\x18\x79\xaa\xc6\x8b\xbe\x83\xea\x3e\x36\x6d\xc4\x34\xad\x07\xec\xb9\xc2\xc1\x5e\x9b\x2f\x8c\x97\xf2\x5f\x51\xec\xc6\x1b\xa7\xc5\x3a\xaa\x0a\xbe\x6a\x18\x6c\xc7\xfb\xaa\xc5\x88\xbd\x4e\xb6\x34\x6c\x7d\xd0\x85\x48\x67\x8a\x0e\x17\xa1\x7d\x1c\x37\xd8\x42\xe9\xde\x4e\x02\x69\xe6\xce\xcd\x52\xe8\xd6\xd4\xf3\x2d\x70\x62\x3b\x3b\x2d\xff\x5b\x1c\x35\x87\x90\x64\x10\xa6\xfc\x3c\xc6\x9b\x29\x55\xca\x25\x4a\x18\x03\xbc\xde\x9d\x45\xdb\xf4\x7b\x17\xee\x82\xa1\xc2\xb2\x31\x51\x9d\xf5\x59\x47\xa2\x17\x82\x18\xb1\x10\x1a\x15\xb5\x93\x33\xab\x3e\xd4\x5c\x1b\x12\xdd\x53\x16\x9b\xa3\x85\x07\xaa\x64\x56\xf6\xcf\xf4\x31\xc2\x89\x24\x27\xba\x61\xa8\x16\xac\x38\x04\xbf\x62\xf4\x22\xf0\x6c\x46\x44\x9f\xd9\x2c\x16\x70\x38\x71\x9e\x98\xf6\xeb\x42\x7c\x2d\x0d\xc8\x20\xc2\xd1\x64\x4f\x6b\x84\x21\x19\x29\x9a\x90\xd8\xe5\x4b\x17\x97\xc7\xcd\xdb\x18\xec\x57\x58\xac\xde\xc8\x95\xad\x3b\xb1\x9d\x24\x91\xe6\x28\x59\x79\xf7\x19\x11\x7a\xd4\x7a\x0f\x3f\x13\x86\xe8\xc8\x8d\xc3\xc6\x2e\xa1\x17\xf0\xcc\xe9\xad\xff\x8c\x69\x62\x00\x08\x5c\xd7\x4e\x08\x34\xee\x87\x3e\x33\xee\x7e\x16\x15\x32\x74\x29\xa3\x72\xa2\x39\x75\x0a\x3e\x59\x50\x33\xea\x12\x87\xd8\xf3\x2a\xa7\xb9\xab\x5f\x6f\xe6\xa0\xcf\x54\x70\x36\x85\x24\x21\x8b\x4b\xe5\xc8\x27\x89\xca\x8e\x47\x65\x8a\xe7\x52\x89\x38\x8e\x65\xd1\xf8\x6a\xd4\x4a\xfa\xcf\x82\xd9\xe5\xb4\x90\x15\x19\x79\xb0\x4a\x10\xc4\xea\x2a\xfa\x35\xc9\xbf\x21\xb5\x63\x31\xb5\xa3\x9a\x36\x87\x98\xde\x91\x1d\xe2\x55\x53\x3c\xea\x96\x7f\x1b\x92\xed\x16\x53\x3d\x5e\x39\x27\x62\x37\xe9\x10\xaf\x9b\xbf\xb2\x8b\xd4\x95\x90\xe0\xf1\x8a\x09\x1e\xad\x2d\xb5\xc5\xd8\xf4\xfa\x63\xbb\x52\x72\xc4\x12\x30\xab\xaa\x5e\x3e\x13\x25\x68\x24\xb7\xc1\x1f\xe4\x0c\xb7\x8c\xea\x03\x2d\x70\xb6\x44\x6a\xd2\x2f\x64\x4e\x50\x88\x93\xcb\x2a\x5c\x0e\x05\xc1\x4f\x31\x7f\x59\xb0\xd5\x49\x1f\x4d\xe4\x33\xd7\x62\x8f\x20\x11\x95\xa4\x10\xc9\x43\x25\x62\x44\x5a\x63\x27\xee\xb3\x09\x25\x02\x8b\x68\x02\xd9\x9d\xf9\xc2\x98\x2c\x61\x03\xe8\x64\x62\x39\x7c\x6f\xd7\x0a\x8b\xde\x82\xee\x65\x0b\x53\x86\xcf\x67\xd7\x5c\x8f\x64\x6a\x3e\xc9\x84\x19\x2b\x65\xf8\x26\xb9\x56\xcb\xbf\x69\x22\x42\x46\xec\x9d\x26\x23\x64\xc1\x54\xde\x17\x2d\x13\x12\xf2\xdd\x10\x92\x12\x76\x94\x94\x50\x41\xe2\xd5\x12\x13\xd6\x32\xf9\xed\x3f\x66\xda\xf5\xbc\x8f\xb8\xe9\x65\x41\x6b\xe9\x70\xb0\xf3\xa3\x57\x39\xe7\xb6\x27\xf0\x4b\xb6\x29\x8c\x44\x2c\xf4\x3e\x1b\x92\x38\x06\x4e\xab\xb8\xad\xd0\x9e\xef\x1d\x67\x1e\xd0\x77\x2f\x96\x7a\xb3\xe3\x84\xb3\xb1\xa4\xb1\x01\x9b\x99\x61\xa8\x55\xec\x1b\x2f\x00\x5c\x01\xd6\x37\x49\x88\x70\x5e\x09\x81\xbe\x93\x94\x59\x34\xc9\xec\xb7\x98\x13\xc9\xde\x2b\x63\x2c\xc0\x6c\x8e\x9e\x18\x7f\x49\x48\x3c\x86\x15\x2a\x0f\xe6\x14\x51\x72\x82\xa8\xca\x3e\x13\x80\xc6\xc0\x53\xd5\xd7\x63\x87\x58\x3b\xa3\x01\x10\xfb\xad\xb0\xd5\x2b\x3c\x0e\x2c\xbf\x3f\x43\xa8\xc7\xd0\x08\x47\xea\x04\xc9\x74\x98\xb7\x1f\x73\x53\x5c\x5e\x6b\xdf\xde\xc4\xf3\x46\x42\xcc\x7c\x45\xe7\xd5\x67\xc3\x71\x07\xbd\x5d\x3b\x09\xc5\x1b\xc5\x16\x3e\xe3\x4d\x20\x56\x3f\xa7\xd2\x06\x61\x20\xce\xb2\xa3\x6f\xe1\xa5\x32\x8c\x6c\xc0\x3b\x35\x78\xd3\x8c\xc7\xb5\xb6\xce\xd2\x54\x56\x1d\x4b\x1e\x08\x6a\x05\x25\xeb\xa8\x82\x76\x0d\xb9\xb5\xd4\x24\x95\x20\x78\x6a\x9d\x03\xfa\xaa\x01\xb1\xc6\x84\x81\xea\xd1\x53\x61\x24\xcc\x55\x96\xf8\x8a\xb2\x27\xbd\xba\x39\x2a\x38\x07\xbc\x64\xdd\x73\xd5\xa2\xcd\xf4\x8d\x47\x2e\x38\x33\x0e\xc2\x8d\xe4\x4e\x3a\x66\x38\x59\xd1\xc6\xb1\x40\xb9\x45\x9f\x9e\x93\xb3\xac\xb8\xa0\xa5\x08\x63\xec\x43\xa6\xc7\x95\x6c\x48\xa5\xf9\xfa\xf2\x1e\x46\x31\x99\x11\x16\x13\x16\xcd\x61\x8b\x30\x40\x0e\x12\x0c\x27\x08\xc3\x77\x38\x39\x43\x97\x26\xbf\x28\x93\xf0\xec\xb5\x0e\x17\xfa\x14\x33\x3a\xd2\x7a\x02\x18\x61\xed\x28\xfb\xcc\x0c\xd3\xf9\x40\x48\x6e\x5d\xcd\x28\x56\xb5\x32\xfa\x06\xb9\xde\x10\x95\x99\x15\xbf\x47\xcd\x17\x0e\xf4\xd6\xb4\x3a\xba\x39\x57\x83\x41\xa6\xc3\x53\xf8\x77\x21\xe1\xce\x01\x15\xe5\x28\x3a\x24\x21\x60\x0e\xb4\x1e\x2f\xb8\x18\xeb\x80\xf5\xb6\xe1\xb7\x5b\x92\xc7\xe2\xf5\x51\x50\x6a\xa6\x94\xd1\x69\x3a\xf5\x9c\x77\xa6\x62\x43\x64\xed\x97\x26\x13\x65\xa6\xf5\x80\xc8\x81\xb7\x23\x7d\xb9\xb2\x39\x1a\xd3\x67\xc2\xfa\x6c\xc6\x29\x53\x67\xe8\x9a\x2b\xe2\x95\xc8\x30\xd0\x59\x7c\xa6\xe8\xd4\xa0\xbd\x0a\xa2\xcf\x81\x01\x05\x07\xa0\xcd\x09\x56\x27\x28\x4e\xe1\xa8\x32\xa2\x34\xeb\xd0\x37\xae\x82\x95\x81\xf8\x70\xd1\x67\xe6\xa6\x1b\x61\x9a\xa4\x82\x58\x99\x15\x9b\xbc\xa0\x7c\xc8\xf9\xc8\x2c\x12\x9c\x37\x89\x29\x1d\x4f\x94\x5e\x22\x2d\xe3\x59\x7f\xe3\x44\x73\x23\xde\x67\x43\x82\x30\x9a\x71\x49\x15\x7d\xce\xfc\x97\x74\x84\xb0\x94\x60\x41\x39\x43\x97\x05\xfb\x3f\x95\xa0\x7a\xd7\xc5\x15\x53\x36\xb0\xb6\xe7\xfa\x7c\xa4\x8d\x17\xb2\xd0\x8b\xa5\x32\x1e\x4a\x9e\xa4\xca\x77\xc1\x56\xaf\x6d\x6e\x1a\x77\x85\x0b\xc0\x40\xcc\x47\x7d\xe6\xf6\xb5\x3c\x43\x1d\x89\x24\xd7\xab\x24\xcd\x52\x46\x82\x2a\x22\xa8\x41\xb1\x22\xca\x2c\x42\x76\x4e\xb3\x33\x30\xc5\xe2\x49\x8b\x50\xbe\x05\xde\x60\xaa\x16\xac\x1d\x43\x23\x21\x01\xac\x97\xbf\x1c\x60\xfa\x47\x8c\xb3\x53\x46\xc6\x78\xd9\x8a\xf4\x59\x61\x49\xd0\x77\x74\x94\x2b\xa4\x75\x3e\x47\x8f\x76\x03\x88\x7c\xaa\x5b\x25\xd3\x71\xdd\x22\x8d\x12\x8e\x97\xb8\x8d\x47\xf9\xa1\x47\xff\xe0\x43\x33\x46\xad\xf7\x73\x05\x52\xa0\x56\xaf\x46\x5c\x90\x09\x66\xf1\x89\x5b\xac\xe2\xd8\xe0\x66\xb4\xa6\x36\xa7\x8c\x81\x24\xe8\x40\x94\x89\xc1\xa2\xc2\xcc\x5b\x0b\xab\xb8\xd9\xa5\xc8\xd7\x61\xa5\xbb\x22\x6b\x0d\x6a\xbf\x18\x03\x84\x61\x79\xf3\x99\x3d\xe2\x92\x4e\x67\x49\x9e\xd3\xe5\xd9\x46\x47\x5a\xc4\x72\x3c\x92\x3f\x83\xe9\xca\x69\x6d\x70\xab\xdb\x95\xd3\xfb\xac\x62\xe4\x19\x23\x85\x5b\xc3\xd9\xbc\x4c\x19\x50\x8f\x85\x7d\x27\x89\xfe\xa7\x22\xb9\xda\x67\x84\xf5\x3e\x73\x22\xc8\xf7\xc0\x65\x6c\xb3\x9e\xf1\x4c\x8b\xd0\x06\xe6\xd6\xd2\x0f\x45\xc6\xc9\x5d\x38\x27\xf6\x30\xb8\x57\x2b\x2f\x2a\x45\xb5\x98\xfd\x23\x05\x84\xae\xcb\x0d\x61\xf7\x29\x8b\x49\x6d\x31\xab\x56\x5c\xa3\xee\x6e\x31\x0c\x75\xb0\x6e\xfd\x89\x87\x09\x91\x04\xa9\x97\x0c\x28\x4e\xeb\x55\x60\xb2\x14\x24\x21\xcf\x38\xbf\xe3\xb2\xbe\x2c\xbb\x8c\xb0\xac\x29\x0f\x03\x68\x6b\x7a\xfc\xeb\x27\x4e\x67\xe3\xbb\xd1\x43\x79\xc6\x89\x4d\x5c\xb1\xbe\x72\x59\xbf\x60\xbd\xcb\x8d\x62\x48\x6d\x2b\x55\xf4\xac\x17\x31\x5c\xdf\x3f\x93\x79\x35\x45\x96\x80\x18\x36\x65\xa3\x67\x64\x5f\xc1\x56\x7d\x9b\x7f\xb3\x48\xe3\x5a\xca\xfd\x5c\x98\xf2\x2b\x24\x51\xdd\x2e\x54\xe0\x86\x3f\x65\x3a\x1a\xd1\xaf\xa0\xd5\xba\x9b\xc4\x69\x1e\x91\xe0\x52\x73\x31\x90\x55\x90\x5b\x3c\xe3\x48\xde\x24\xa1\xaa\xf2\x4b\xad\x65\xad\xbc\xa3\x6b\xa9\xfd\xf7\x94\x88\x8d\xe8\x9d\x6d\xd5\x55\xc2\x11\xbd\x53\x52\xad\x23\xba\x46\x15\x6e\x19\x93\xe4\xb7\xfa\x80\x6b\x48\xb7\x1c\xfe\xbc\xf2\xb3\xa1\x61\xbe\xab\x0f\xc4\xe7\xda\x8d\x36\xb5\x3c\x3e\x2d\x8b\x4d\x76\x45\x89\x34\x7f\x3b\xb1\x00\xeb\xd8\x06\x4e\x65\xa9\xce\xd8\xc5\x8c\x18\xc7\x88\xa9\x59\xa5\x6c\xa5\x05\x4f\x53\xb7\x8d\x51\x36\xee\x33\x47\x5b\x79\x82\x4c\x98\x78\x89\xa1\x16\xb0\xed\xb1\xf7\x69\xb6\xb1\xdb\x99\x54\x8d\x5f\x9d\x11\x29\xf5\xc5\x28\x95\xc0\x94\x59\x1f\x8e\xa3\x8f\xec\x33\x74\x5a\x8e\x53\x3f\x01\x3b\xc2\x89\xcb\x76\x3d\xc9\x07\x28\xfb\xcc\x64\x9c\xa0\x3f\xa3\xef\x14\x1e\x9b\x5b\x02\xd0\x2b\x71\x02\xb8\x97\xa0\x25\x58\xad\xdc\x4b\x0e\xc8\x4e\x24\x8d\xbf\x3f\x6f\xea\xd3\xd8\x10\xbe\x83\x66\xe0\x90\x6b\x1a\xe6\x04\xa2\xa3\xfc\x1f\x24\xfe\xbe\xa9\xa5\xfc\xa3\x27\x32\x3f\x29\x13\xb9\xfe\xde\x78\xc0\x1b\x45\x68\xee\xea\xe2\x80\x41\xb7\x77\x52\xe2\x21\x49\x7e\xc9\x27\x8a\x1a\x59\xd1\x8f\x94\xe1\xcd\x78\x50\xe5\xf0\xda\x45\xa0\x0f\xe7\x75\x75\xeb\x2a\x58\xcf\xda\x88\x2b\x1d\x23\xcb\x12\xa4\xbb\xb3\x12\xbb\xab\x6a\x88\x21\xea\x71\x42\x92\x19\x8a\xe9\x08\x5c\x6f\x0a\xf6\x4b\x06\x1e\x6b\xea\xfd\x68\x85\x66\x9a\x32\x03\x04\x6c\xa2\x3e\x5e\xec\x49\xb7\x2c\x23\x6f\xfc\xac\xcf\x7a\xea\xbd\x44\x52\x09\xce\xc6\x5a\x99\x8e\x9f\xa9\xcc\x0b\xd9\xe9\x03\x99\x4e\x89\xb0\x5d\x50\x69\xa4\x6e\x5b\x04\x0a\xbb\x8b\x4d\x8f\x4d\x5f\x7d\x20\xf8\xb8\x62\x8b\xfa\x47\xa3\x57\xe8\x51\x4a\x17\x35\x55\x11\xf6\x6e\x17\xb7\xc4\x3b\xf7\x6c\xba\xfc\xc5\xb7\x4e\xa2\x69\x6e\xc8\x74\xfc\xf2\x43\xd9\x8c\x69\xa9\xde\x60\xc2\x5c\xf9\x42\x68\x7b\x11\xb8\xaa\x09\xa9\x49\x73\xd2\xfd\x38\xc7\x96\x19\xdc\x4a\x2a\x56\x69\x82\x76\xd4\x46\x7b\xf2\x4d\x98\x84\x82\xfd\x43\x2a\xac\x68\x64\x6f\x01\x2e\xac\x15\xd7\xea\xd5\xf5\x4b\xbb\xa9\x4e\x22\x23\x9c\x2c\xae\x70\x83\x4f\xdd\xbc\xdf\x6c\xe8\xb4\xc7\xcd\xb4\xdd\x08\xec\x12\xf1\x24\x59\xa5\x4c\x5d\x69\xe6\x17\xf9\xe7\xcd\x23\xca\xfb\xd1\x0b\xe0\xd6\x02\x4e\x8d\x31\x50\xe0\xc4\xba\x8b\xa4\xb2\xab\xe4\xbf\x64\x2e\xb5\xb9\x55\x1f\xfb\x8c\x8f\xa0\x90\x61\x52\x17\xb9\x3e\x13\x7c\x4a\x57\xa9\xa4\x61\x82\xb9\xef\x9c\xef\x7f\x89\x27\xc5\x45\x08\x80\xf9\xcd\x6c\x2f\xdb\x23\x60\x32\x60\x6b\x52\x6b\x38\x43\x53\x3c\x5b\x8b\xe0\xcb\x22\x5f\x3a\x68\x6a\xc2\x8e\x2c\xf5\x00\x53\x9b\x40\x72\x2a\x10\xf9\x05\xcf\x73\xf8\x9b\xba\x1a\x09\x6c\xa5\xed\xf0\xa8\x5f\xef\xb1\x11\x5f\xe1\x70\xe6\x70\x35\xf6\xf4\x61\xb7\x67\xbd\xf3\x97\x45\x62\x98\xd5\x37\x34\x6d\x73\x1e\x2f\xaa\x36\xf5\xca\x27\xd3\x51\x70\x97\x7e\x58\x9f\x89\x78\xdf\xfc\x6b\x95\xbb\xb5\x78\xb4\xbc\x16\x11\x0c\xa7\x99\x54\x9f\x0b\xfb\x70\xeb\x34\x2a\xb5\x03\xcf\xf2\x84\xb1\xdb\xea\x56\xf7\x40\x33\x7b\x48\x5a\x11\x6b\x43\x7c\xae\xd5\x6a\x3d\xb8\x1e\xb3\xca\x0e\x1b\x6b\x72\xcb\x88\x01\xdc\x4c\x5a\xad\x21\xcf\x3e\xb1\x30\x00\x23\x9a\x10\x79\x86\x7a\x15\x4e\x5c\x97\x84\x9f\x05\x8d\x9b\x74\x40\x27\x3d\xa5\x82\x7a\xc5\xdf\x9d\x8c\x84\x28\x14\xa1\xf3\x03\x59\x3c\xa7\x05\xb8\x4f\x27\xfc\xc5\x64\xe0\x09\xaa\x79\x96\x11\x56\x15\xb8\xb4\x34\x2f\xa0\xd6\x23\x64\x1c\x6a\xd9\x07\xdc\xe4\x45\x68\x35\x27\x73\x86\xf9\x16\x88\xf2\x92\x6e\xa3\x8c\x67\x7b\x8c\x03\xd7\xeb\x83\xfe\xa2\x8d\x52\xe0\xde\xdd\x60\x74\x99\x94\xbf\xba\x3d\xf2\x23\x7c\xea\x0c\xbb\x18\x8d\x04\x01\x2d\xfb\xff\x63\xef\x5d\x9b\x1b\x37\x92\x74\xe1\xef\xfb\x2b\x6a\xbd\x6f\x44\x77\x9f\xa5\x28\xb7\x7d\x66\xc2\xab\x0d\x47\xbc\xb4\x5a\x6d\x73\xac\x96\x34\xba\xd8\xb3\x67\x38\xc1\x2e\x02\x45\x12\x23\xb0\x0a\x46\x01\x52\x73\x76\xe7\xbf\x9f\xa8\xcc\xac\x0b\x6e\x24\x20\x4a\x6d\xef\x9e\xf9\x30\xe3\x16\x01\xd4\xbd\xb2\xb2\x32\x9f\x7c\x72\xe3\x78\xd3\x30\x71\x82\x52\x70\xde\xdd\xbc\xfb\xf1\xf8\x6e\xca\x44\x11\xb1\x34\xb9\x17\x33\x19\xe9\x07\xb8\xf4\xfd\x52\x8a\xc2\xfc\xdc\x61\x04\x4a\x36\x42\x6a\x90\x04\x49\xd1\xf3\xbe\x66\x07\xc6\xfc\xf7\x5d\xf5\xfb\x3e\xb7\x72\xc7\xf5\x69\xd6\xae\xcd\x69\x08\xcb\x14\xd2\xb6\xe1\xd0\xb6\xd8\x35\xbf\x43\x7f\xeb\x59\x5b\xc6\xf3\x27\x84\x44\xcb\xbf\x96\x72\xa0\xd2\x75\xea\x3f\x0a\x5a\xd1\xa1\xd3\x6d\x32\x0e\xf9\x4c\x86\xc5\x5a\xe3\x37\xad\xa5\xef\x13\x22\x9e\xfa\xc6\xfa\xcf\x7d\x72\x78\x56\xe4\x42\x80\x08\x71\xeb\x89\xce\x7a\x62\x5b\x73\x1d\x0b\x3e\x1a\xcf\xe4\x07\x8b\xaa\xf3\xbf\x6a\xef\x6b\xd8\x2c\x82\x34\x2f\xd5\x52\xa0\xd8\x38\xd1\xee\x07\x48\xda\xa7\xcb\xb4\xc0\xac\xc5\xcb\x44\xf2\xd4\x35\x14\x9f\xb4\x49\x89\x9c\xcb\x68\x7d\xa8\x9b\x3c\x59\xce\x45\x3a\x44\x13\x9d\x2e\xcf\x52\x6d\xd6\x77\x74\xdf\xb1\x3b\x9f\x92\x97\xdb\x77\x06\x3d\x4e\x94\xdb\x93\x79\x37\x3b\x4f\x31\x6b\xb0\x60\x80\xc3\xaa\x47\xc8\x23\x09\x98\x99\x45\xd2\xd4\x11\x86\x85\xa1\xa9\x2e\xec\x0c\x6a\x61\xbc\x98\xc9\xbc\x94\x90\x50\xcc\xa1\x32\x39\xf3\x39\x61\x22\x8b\x91\x20\xc4\xca\xca\x88\x09\x4c\xb9\x82\x2f\x9b\xfb\x99\x2a\x35\xf8\xa3\x36\xa2\x30\x07\xd4\x6b\xc8\xf5\x8f\xb0\xe8\x11\xcb\xf2\x64\x03\x2e\x65\xfd\xa6\x65\xea\x4e\x79\xc1\x53\xb5\x7a\x6e\xab\xd2\x13\x43\x6c\x6c\x33\xd8\xf4\x9d\x19\xfc\x95\x90\x22\x87\x8e\x82\x2d\xbb\x75\x0b\xf7\xb0\x72\x77\x48\x6e\xf0\x24\x92\xf3\x57\x3b\x8b\x05\x2f\x0b\xb5\x31\xf7\x5b\x9e\xa6\xdb\x11\x7a\x9d\x05\x5b\x73\xbd\xb6\x13\x8d\x0e\xc3\x3e\x67\x13\x0d\xee\x29\x8f\xd6\xe2\xa6\xe0\x45\xd9\x8a\xcc\xaa\xb5\xf2\x0b\x21\xcb\xcd\x17\x27\xec\xcf\xbe\x8f\xa7\x93\xd3\x1f\xce\xe6\xef\xa6\x37\x93\xef\xce\xcf\xde\x05\xfd\xa1\x27\x1f\xa6\x37\x37\xcd\x5f\x7f\x98\xde\x36\x7f\xbc\xba\xbc\xba\x3b\x9f\xdc\xb6\x95\x72\x7e\x79\xf9\xe3\xdd\xd5\xfc\xfd\x64\x7a\x7e\x77\x7d\xd6\xf2\xe9\xdd\x6d\xf7\xc3\x9b\x1f\xa7\x57\x57\x67\xce\x4a\xff\x97\x60\x77\x81\x87\xdc\x74\xb4\xa3\x1b\xf5\x0d\x78\xc4\xaa\x2f\x9e\xb0\xbb\x7a\x7a\x2b\x8a\xb7\x42\xae\xb0\x47\xae\x8d\x0c\x83\x70\x3f\xb0\xb4\xfa\x41\xe9\xfa\x14\x21\xc9\xd1\x5a\xb0\x54\xa9\xfb\x32\x23\xd1\x86\x46\x75\xa9\xd0\xf0\x23\x74\x50\xda\x0f\xd3\xdb\x93\x66\x9a\x2d\x57\x58\xc0\x8a\xea\x6c\xc8\x8f\x1c\x19\x02\x40\x9c\x82\x2d\xc5\xa6\x5f\xf2\x1e\xea\xa0\x06\x37\x33\xbb\xea\xc1\xd2\xb8\x2c\x6a\xd5\xc4\xb1\xe7\x52\x82\x8e\x05\x05\x57\xe7\x75\xd7\x68\xba\xe1\xc0\xfc\xa2\x6c\x21\x22\x5e\x22\x70\xdb\x9c\x53\x79\xae\xf2\xb0\xc1\x7e\x3d\x3c\x5f\xa1\xb4\x8e\x5a\x0b\xac\xcd\x99\xe9\xb8\xbe\x4f\xb2\x4c\xc4\x5f\x34\xf5\x17\x1f\x2b\x8f\xfa\xad\xd9\x7d\xa6\xce\x60\x4f\x9a\x7b\x3d\xdc\xf9\x6d\x72\xbc\xf5\xd6\xa1\x85\x00\x9c\xea\xe1\xba\x90\xac\xc3\x9c\x09\x2e\x79\x59\x02\xf0\x1f\x5e\xb0\x47\x01\xb4\x31\x25\x65\x07\xc5\xbb\xb7\xd9\xdb\x50\x1d\xfa\xed\x6d\xae\xdf\x0a\x9d\x4c\xa7\x30\x7e\x0e\x85\xdb\x7c\xaf\xc5\x30\x67\xdb\x5e\xee\x8f\x77\x58\x28\x48\x67\x8b\xeb\x87\x16\x3f\xa7\x73\xae\xe5\x44\xda\x73\x58\x18\xb1\xdd\xa7\x3d\x96\x6f\xad\x92\xc4\xa4\x7f\xc3\x2a\x89\x2e\xf6\x8e\xd5\xad\x8a\xf9\xd6\x2c\x0e\x00\x27\xe8\x32\xcb\x54\x5e\xb0\x8e\x32\x10\xaa\x88\xed\x83\x33\x87\xfa\xe1\x64\x1c\x14\x62\x34\x0c\xdd\x92\x2f\xad\x1f\x05\x14\x8d\x6b\xe0\xe3\x0a\x82\x80\xe0\x22\xe8\x72\x5b\x6e\x2a\x57\xea\xca\x0a\x6d\x53\x7e\x0f\x89\xa2\xcc\xcc\x01\xdf\x37\xd5\x72\x5b\xed\x97\xb6\x84\xd6\x29\x4f\xc5\xb2\x98\x0f\x74\x4a\x41\x89\xb2\x8b\xb5\x2f\x59\xad\x9f\xa1\xc4\xfe\xb7\x84\xaf\x08\xbc\x6c\xae\x06\x81\x85\x20\x57\xaa\x40\xfd\xd4\xdf\x61\x98\x1d\x4d\x30\x2f\x50\xa5\x14\xef\xee\x94\x40\xa3\xf3\x23\xe6\xcb\x85\x86\x8f\x67\xf2\x0c\x40\xa2\xfe\x22\x62\xc3\xe0\xe1\x16\xb0\x57\xff\xaf\x24\x96\xff\xac\x11\x29\xdd\x2c\xfe\x7e\xdd\x23\xb4\x50\xa4\x5b\xc7\xe5\x14\xb3\xca\x77\x7d\x76\x0f\x5a\xbd\xad\x0a\x88\x1d\xc6\xad\xa3\x0b\x91\x91\x65\x1e\xfb\xe9\xd1\xcc\xe0\x15\x36\x55\x8d\xd9\xcf\xd6\xf2\x03\xc1\x3d\x2e\xd8\xc5\xe2\x53\x53\xbe\xb5\xc4\xdf\x6d\x03\xfb\x1c\x5c\xda\xcf\x1d\xee\xb3\x7b\x80\x1d\x69\x66\xcb\x28\x57\x2e\xe0\x52\xa2\x45\x76\x00\x5c\xe8\xd4\x7d\x74\x23\x76\x23\x1f\xdf\x43\xaa\x75\x42\x8f\x83\xd2\x21\xd3\xed\x3f\xe3\x64\x21\xdb\x86\x05\x53\x50\xea\x6b\xf2\xa0\x9a\xfd\x03\x1e\x40\x24\xe3\x60\xcb\x24\x4d\x41\x0f\x18\xb3\x89\xdc\x5a\xb2\x0a\x73\x14\x5a\x10\x69\xb2\x92\x6a\x5f\x1c\x7d\xc7\x62\x8a\x82\xc5\x74\xd3\xbd\x98\x10\xa7\xe1\xb9\x8a\x9e\x67\x45\x3d\x03\x6f\x9d\x91\x2d\xbc\x99\xf5\xa4\x3f\x5b\xdd\x80\xcb\x7b\x78\x9a\x7f\xae\x08\xb0\x46\x73\x83\x0f\xff\xde\xde\xf4\xef\x4b\x9e\x73\x59\x40\x5c\x13\xa9\xee\xb9\x08\xc2\xab\xc5\x27\xc0\xa0\x4a\x34\x04\xc3\x4f\xe1\xe4\x5a\x97\x3f\xc2\xc4\x92\x78\xc4\x92\xb1\x18\x43\x06\xde\xdc\xe8\x12\x0b\xff\xe6\xda\x68\x0e\x33\xd9\x88\xd7\x18\xb3\x49\xaa\x15\x7d\x21\x64\x94\x2a\x0d\x10\xdc\x45\x48\x8e\x0e\x2b\x9f\xdc\x4a\x8b\x2d\x5c\x50\x60\x2a\x7d\xf1\x8a\x1e\x04\x1f\x42\x22\x59\xf0\x89\xa7\xb0\xd3\xfd\xef\xff\xaa\x88\xe6\xb5\x0b\x27\xf1\x82\x29\xbb\x1a\xc7\xd0\x8b\x4d\x12\xa6\x83\xde\x35\x41\xf0\x06\x4c\x8c\x8f\xa3\x09\x58\xe6\xd8\x6b\x5e\xb0\x54\x70\x5d\xb0\xb7\x6f\x06\x61\x43\x6c\x07\xbd\x74\xa5\xed\xeb\x83\xe1\x6d\x38\x65\xa8\xdc\xb9\x8a\x21\x3f\x30\xcf\x0b\xc6\x99\x14\x8f\x61\xf4\x8c\x82\x80\x27\x9b\xf4\x57\x04\xfc\x1d\x88\x99\x47\xf6\x21\x88\x48\xc5\x2b\x53\x87\x1c\xb1\x29\x2d\xc8\x7d\x4a\xcd\x6a\x59\x59\x23\x87\x3e\x03\xb8\xb9\x79\xc9\x07\x36\xae\x79\x31\x93\x24\x59\x2d\x6c\x24\x08\x65\x9f\xa4\x69\x35\x98\x90\x43\xbc\xac\x34\x1d\x36\xad\x8f\xc7\x6e\x80\x2e\xe0\xfa\xe5\x22\xba\x2a\x76\x3a\xbf\x59\x30\xe6\xc0\x71\x3a\x86\x65\xb7\x6a\x3b\x6d\xf6\xe5\xcf\xa8\x04\xb7\x54\x7f\xae\x56\x49\xc4\xd3\x1e\xca\xb0\x68\x6b\xf2\x9e\x8d\xd5\xb4\xe9\xef\xd0\x8d\x9f\xbb\x82\xfe\xaa\x72\xbb\x7d\x1c\x8e\xd9\x47\xd5\x62\x6e\xef\x98\xdc\x40\xb7\x38\xe4\x02\xee\x42\x0b\x3f\x97\xc7\xb7\xd2\xf4\x69\x0c\xc4\x06\xfb\xa5\xa0\x27\x0a\xb0\xa2\x03\xe3\xcb\xe2\x20\x6e\x39\x08\x93\x24\xb0\x27\x0a\x3e\x7a\xb3\xc3\xf3\x9a\xfd\xf7\xee\xfe\xc8\xf7\xdf\x76\xc5\x81\xe0\x9a\x1d\xef\x56\xf6\x26\xf1\x5f\x79\x04\xd1\x8c\x50\x93\x8d\xa3\x6c\x92\x4e\xda\x54\x25\x1c\x8c\xf9\xad\xea\x61\x96\xab\x48\x68\x3d\x66\x67\x70\xd0\xd0\x9f\x8c\x2f\xad\x43\x22\x78\x79\x26\xcd\xcd\xc4\x72\xd4\x05\xe5\x57\x97\x78\xdb\x0e\x40\xc2\xdb\x83\x7c\x39\x9b\xfd\x79\xe8\xba\x6e\x13\x96\x6f\x17\xca\x80\xd4\x55\xec\x6c\x75\xc2\x62\x15\xdd\x8b\xfc\x38\x17\x71\xa2\x4f\xc0\xb7\x5e\x74\x3a\xf5\x36\xe6\xb6\x7d\xb0\xa6\xd1\x05\x14\xd8\x13\xf8\x7f\x8a\xf5\x13\xf4\xdf\x86\x10\x8d\x58\xb2\x84\xeb\x84\x8d\x3b\xc5\x40\x2b\x4b\xe9\x27\x64\x91\x6f\x11\x95\x6c\x4d\x59\xb5\x81\xb0\x37\x0d\xa3\xb4\x75\x45\x4c\xe7\xcf\x81\xc1\x79\x62\xb7\x31\x32\x87\x00\x07\xd8\xa9\x42\x51\xbc\x16\x8a\x8b\x8c\x17\x6b\x0d\xf4\x1c\xd5\x31\xa0\x4b\x17\x7c\x6a\x46\x88\x67\x80\x57\x40\x2b\x85\xff\xc8\x91\x48\xe8\x22\x49\xd3\x99\xc4\x00\x0b\x60\xd2\x78\xd5\xca\x02\x64\x3e\x1d\x31\x1e\xc7\xec\xff\x7b\xfd\xfe\xfc\x3f\x6e\xcf\xe6\xd3\x0b\x30\x5a\x4f\xcf\xcf\xde\x8c\xdc\x8f\x97\x77\xb7\xee\x57\xb4\xb0\x3c\x88\x9c\x6d\xf8\x3d\x5c\xf1\xa4\x16\x14\x20\x2a\x66\x32\x6c\xa9\xe5\x47\x32\x4f\xb4\xb0\x48\x57\x52\x53\x1c\x4d\x34\xcd\x61\x17\xb9\x2a\xd1\x66\x0e\xb8\xfc\x5e\xbb\x4f\x76\xaf\x41\xbb\x78\x5c\x15\x56\x0d\x84\x38\x60\xae\x03\xc2\x1c\xba\xfb\xfa\x05\x27\xe4\x2a\x91\x5d\x78\x3c\x21\x1f\x5e\x52\x89\xff\x51\x6c\x01\x10\x7e\xc5\x93\xbc\xf7\xda\x6b\x67\x3c\xb4\x3b\xc6\xdc\xd3\xb9\xae\x6f\x2a\x8d\xba\x30\x46\x14\x77\x62\x3e\xdb\xc8\x6e\x7f\xf5\xee\x12\x85\xa6\xf8\x54\xe4\x96\x89\xcb\xc5\xac\x5a\xba\x4a\x77\xd0\xf8\x35\x38\x93\xb7\x97\xef\x2e\x4f\x98\x48\xf9\x42\x41\xb8\x22\x41\x82\x6c\x11\x34\x60\x91\xda\x04\x05\x55\x58\xd8\x46\x2c\xf3\x2c\x6c\xa1\x11\x6d\x8c\x65\xec\x61\x63\xcb\x54\xde\xe4\x30\x7b\xde\x2b\x20\x75\xf6\x4a\xe5\x7d\x8e\x7f\xf3\x1a\xc6\x6f\x64\xe6\x22\x57\x93\xbc\x74\x36\x2f\x05\x07\x86\x0e\x72\x0b\x91\x2d\x9f\x00\xac\x69\x5a\xc9\x99\x6d\x36\x8e\x1e\x93\x0b\xde\xbf\xa9\x24\xfb\xf1\x1b\xcd\x16\x65\x31\x93\xd5\x32\x94\x64\x93\x9f\x6f\xd8\x77\xbc\x88\xd6\x6f\x66\x12\xe2\x07\x7f\xfc\xa6\x83\x2e\x72\x30\x03\xb3\x19\x93\x77\xbc\xe0\xe7\x8a\xc7\x89\x5c\xb5\xd1\x2f\xfb\x1c\x81\x67\xb7\x93\x13\x66\x53\xb5\xf8\x68\xd7\xc2\xd2\x9e\x04\x05\x81\x40\x86\x8e\x58\x29\x02\xa2\x5c\x56\x29\x6a\xf1\x66\x06\x07\xd6\x4c\xde\x22\xef\xb4\x91\xaa\x49\xc1\x32\x45\x79\x2a\xcd\xad\x0c\x19\xb9\xb9\x8d\x02\x17\xe9\x96\x99\xd1\x81\x65\xec\x26\x83\xf4\x31\xd0\x67\x9a\xc2\x7e\x26\xe1\x82\xee\xe2\x6f\x53\x15\xf1\x14\x30\x79\x47\x81\x4d\xcf\x5c\xdb\x55\x09\x1c\x38\x00\x86\x91\xdb\x2a\x74\xd6\xd1\x32\x39\xa5\x2c\x9c\x28\x30\x00\xc0\x3c\x92\x37\x76\xa3\x8c\xc4\x41\xbe\x59\x30\xbe\xa5\x38\x3a\xe6\x43\xc7\x3f\x8b\xc3\x62\x9e\xba\xd0\x74\x55\x4a\xcb\xb7\x16\x81\xf9\x5e\x6e\x01\xbe\x0d\x89\xe5\x14\x40\x3f\xbc\x74\xa6\x45\xd9\x98\x45\x77\x26\x06\x9f\xcd\x24\x22\x05\x2b\xf3\x12\x32\x14\x06\xb5\x2b\x09\x40\xc6\x66\x3c\x7c\x99\x11\xb0\x91\x74\xfd\x2c\x17\x47\x2e\xca\x3b\xae\x8c\xa9\x39\x61\xc7\xec\x3a\xbc\x5e\xc7\x2a\x2a\x37\x36\x7b\x04\x44\x88\x13\x02\x8e\x0e\x51\xb7\x42\xf0\x60\xdf\xb7\xe2\x81\x89\xae\x10\x40\x91\xd3\xfb\x7e\x8c\x0b\x66\x12\x7e\xda\xd4\xd4\xbb\x15\x5f\x90\x1d\x87\xa1\xd6\xb0\xa0\x79\x56\x2d\xa9\x52\xda\xc1\xdc\x0b\x17\x9e\xe1\x5e\xe5\xa0\x6c\x89\x4f\x99\x02\x23\x37\x06\x40\xab\xf8\x95\x66\xd3\x2b\xa3\x01\x99\x1b\xaf\xdb\x83\xa5\x2e\x10\x5c\x86\x71\xca\xf0\x35\x86\x0b\x8c\xd8\x97\x6c\x56\x7e\xf9\xe5\xd7\x11\xfb\x64\xff\xf1\xfb\xdf\xfd\xee\xeb\xdf\x0f\x09\x27\xb1\x17\x72\x28\xd7\x8f\x91\x4b\x19\x5a\x55\x89\xc2\x19\x68\x4a\xaa\x03\x66\x81\x36\x60\xd7\xf0\x3f\x85\xc9\x3a\xc0\x0e\xf1\x15\xed\x70\x1d\xee\x4c\x56\xd9\x9a\x1e\x49\xa0\x45\x31\xaa\x4a\x08\xa7\xec\x92\x46\xff\xcf\x3b\x08\x59\xe7\x66\xab\x3c\x0d\xe3\x94\xa4\x4e\xbd\x36\x85\xb0\xd7\x64\xff\x2b\xc0\x81\xf8\xc6\x1e\x70\x2a\x8d\x45\x8e\x6d\x72\x26\x3b\x67\x48\x04\xe1\x20\x3e\x65\xa9\x8a\x2d\x05\xbc\xe7\x3b\x48\x40\x41\x38\xfb\xc4\x8d\xe4\x1e\x11\x55\x28\xc5\x97\x82\xe7\x65\xc9\x23\x41\xb1\xd0\xaf\x3f\x9d\x98\xdf\x46\x6c\x7b\x02\x20\xd2\x11\xfb\xdb\x09\x31\x02\xf2\xbc\x98\x9b\x9f\xde\x58\x5d\x9b\x8a\x80\x46\x27\x9a\xbd\x3a\x7e\xe0\xf9\x31\x88\xe7\x63\x6c\xd1\x2b\x92\xac\x2e\xf7\x71\xa8\x9b\xa7\x4a\xdd\x13\xc0\xb6\xf1\xe1\xb1\x25\x97\x85\xe5\xed\xfc\x26\x38\xf5\x8e\x7c\xa8\x60\x47\xf0\x82\x60\xe3\x6c\xc1\xc6\x7f\xd5\x4a\xb2\xf1\x96\x6f\x52\xfa\xd5\x3e\x25\xfc\x2f\xd7\x14\x13\x17\x3b\x90\x4f\xba\x45\x4b\xe9\x77\xa9\x5a\x40\xaf\x3e\xd8\x9e\x22\x82\x16\x1a\xea\x4f\x1f\x7f\x60\x51\x47\x2c\xd9\x06\x70\x24\x6e\x54\x81\xaf\x50\x78\x6b\xb3\x57\x9f\x5c\x93\xfe\x84\x7e\x61\x18\x14\x1b\xc4\x87\xc6\x61\x87\x5e\x33\x85\x7e\x62\xaf\x49\x04\xbd\x31\x67\x0c\xc1\x95\x71\x18\xda\x2a\xd8\xba\x0a\xfe\x23\xa8\x20\x91\x0c\xc3\x32\x77\x7c\xf9\xb7\xe3\xf1\x78\xec\xbe\x06\x66\x9e\xff\xc3\x92\x42\x8b\x74\x89\x25\xd9\x13\x6c\x3b\x93\x1f\x6c\x72\x29\x6b\xbc\xf6\xb4\xd5\x59\xae\x0a\x15\xa9\x94\x1d\x79\x83\x6e\xac\x22\xcd\xfe\xc5\xa8\xb5\xc1\x50\xc2\x8f\xe6\x1e\xd7\x41\x75\x8f\xd9\x2c\x3e\xd3\xa6\x22\x83\x78\x7d\x5b\x85\x4c\xb5\xee\x62\xcb\x75\x18\x8c\x0c\x6b\xc1\xac\x9c\x63\x62\xb3\xcd\x73\xf3\xb2\xf8\x54\xc0\xa3\x0e\xb2\xe0\x56\x28\x7b\xfb\x49\xd9\x10\xb7\x9e\x33\x18\x97\x75\xc7\x00\x10\xa7\x27\x49\x06\xec\xe7\x28\x74\x9f\x98\xc3\x45\x86\xe9\x8e\x74\xb9\xd9\xf0\x7c\x7b\xec\x77\x5b\x73\x71\x7a\x36\x59\x90\x31\xa9\x1d\x00\x70\xe1\xa6\xb4\xb5\x08\xc5\x40\xea\xa5\x3d\xd1\xdc\xde\x8d\x20\x5f\x75\xc0\xca\x24\x64\xa4\x62\x5a\xd7\x3e\xfa\xb4\xaa\xb1\xb8\x77\x9a\xba\x8a\x45\xc4\x68\x6f\x8c\x93\x05\xd2\x94\xd1\x1b\xf6\xe3\x0e\xf1\xad\xe6\xba\x30\x82\x72\x35\xc0\x3d\x3a\xbd\xbc\xb1\xdf\xf4\x3f\x74\x61\x1c\xaa\x2a\x3b\x4f\x43\x0e\x60\xb9\x62\x39\x7f\xf4\xc7\x2f\x60\x3b\xd0\x3a\x53\xba\xd8\x5c\xfc\xfb\x54\x5d\x25\xa9\x39\xb5\x60\x8d\x8f\x67\xb2\xf2\xf3\x88\x89\x34\xd9\x24\xd2\x61\xeb\x50\xb8\xab\x25\x6a\xcf\xf7\x49\x61\xa6\x4c\xc7\xf7\x46\x82\x59\xee\xca\xe0\x4a\x35\x91\x5b\xbb\x74\x9c\x63\x8a\x2c\x10\xa5\x36\xed\xf2\x77\x74\x88\xda\x4f\x62\x71\x44\x0a\x69\x12\x2c\x3c\xd8\xbf\x33\x69\x4a\xb3\x7b\xc9\xc3\x85\x83\xf2\x82\xe2\x8e\x6c\xd2\x9f\x40\x02\x40\x1d\x15\xcc\xaf\xd3\x7f\x5b\x14\x94\x33\x59\x6e\x0e\x0d\x36\x21\xf8\xf0\xaf\x65\xa6\xbb\xca\x85\x3d\xa9\x28\x70\x49\xc8\x72\x63\x37\xd4\x80\x15\x77\x46\xea\x4f\x2c\xa2\x94\x23\x1b\x9f\x29\x08\x90\x8f\x23\x74\x90\x66\x41\x5d\x78\xbc\x60\x35\x98\x47\x30\x15\xf2\x35\xfe\xfd\x86\xd1\xd9\xf0\xe5\x88\xce\xf3\x5c\x3b\x96\x33\x9c\x73\xc8\xc3\x2d\x62\xb4\xa1\x43\xe6\x85\x15\xcf\x63\xb4\x96\x87\xb7\x0a\x8c\xe0\x35\xfa\xd7\x56\x95\xec\x31\xd1\xeb\x99\xbc\x55\xd6\xe0\xc8\xa4\x72\xb9\x2b\x46\x70\x19\x6d\xd4\xc7\x35\x08\x01\x68\x75\xdb\x0a\x30\x42\xf8\xa0\x58\x23\x40\xc1\xce\xa5\x8a\xc5\x61\x24\x8d\xb7\xde\x57\x61\xfd\xd7\xb9\xc0\x78\x30\x38\x29\xba\xc2\x69\x85\xd6\x03\x6d\xf3\xf5\x89\x87\x73\x88\xca\x31\xb5\xaa\xc7\x41\x19\x44\x42\xfe\x53\x77\xaa\x41\x29\xf6\xc6\x19\x44\x03\x57\xc6\xde\x65\x84\x38\x74\x12\xa2\x16\x46\xc6\x5e\x67\x3f\xf6\x3d\x82\x61\x77\x00\x63\xce\x56\xb9\x2a\x33\x17\x32\x6f\xc3\xfd\x70\x1a\x48\xa7\x99\xca\xa5\x3a\xa1\x3b\xd5\x79\x22\xef\x71\xc5\xbf\xd4\x1c\x61\xd2\x0f\x11\x57\xa8\x6a\x6d\x26\x7e\xe8\xc3\x11\x4b\x64\x94\x96\x70\xf0\xe9\x82\x47\xf7\x98\xb8\xa4\xcb\xe8\x6b\xbe\x99\xef\x0f\xa6\xec\xd0\x98\xca\x34\xa5\x6a\xfd\x01\x0a\x64\x70\x60\x02\x7a\x48\x38\xe3\xec\xee\x7a\xda\x5e\xf7\x7d\xd2\x74\xe6\xb4\x9f\x9e\xd5\x05\x02\xff\xf7\x63\x32\x08\x77\x59\xa3\xfe\x15\x95\xa5\xee\x8c\x4b\x5d\xc4\xf2\xb8\x48\x0b\x73\x81\x88\xaf\x5b\x4c\xfb\x83\xd7\xe9\x2a\x2b\xe7\x66\xa0\xd2\x21\x00\x01\xd3\x8a\xef\xaf\xee\x26\xc1\x77\xbb\x96\xca\xf7\x57\x77\x2c\xa8\x03\x49\x9d\x53\x11\x15\x0e\x69\x3c\x66\xa7\x3e\xd7\x42\x5d\x33\x8f\xc5\x43\x12\x61\x88\xeb\xc8\x68\x45\x33\x09\x14\xe6\xe6\xae\x73\x64\x79\x2f\xd9\xf7\x57\x77\xc4\x96\xe9\xf9\x6d\x30\x6d\x04\x50\x58\x0c\x3b\x76\x6a\xe4\xe1\x52\xc9\x23\xa4\xf6\xc9\x63\xef\xed\x18\xc1\xe5\x3a\xe2\x59\x51\x92\x82\xf1\xf0\x76\x6c\xe7\xe4\xda\x7b\x42\x4c\xb3\xd4\x4c\x1a\x5d\x09\xa3\x0c\x20\xc3\x99\xe9\x74\x73\x6a\x6b\x83\x7a\x08\x38\x00\x06\xed\x20\xe1\x9f\xb8\x08\x3f\x2e\xb7\x8c\xe7\x8b\xa4\xc8\xcd\x35\x0c\x3f\x1e\x21\x13\xd9\xda\x66\xb1\xc2\x79\xf3\x9a\x11\x25\xa5\x83\x09\x4e\x64\xa1\x67\x32\x88\x60\x71\x51\xc1\x18\xbc\x90\x48\x06\x94\xbf\x80\xbd\xb1\x14\xa4\x51\xaa\xca\xd8\x1e\xab\xb9\x4b\x72\xb7\xcd\x50\x89\x9a\x49\x60\x26\x31\x67\xab\x32\x6a\xa8\x3f\xfb\x4f\xd8\x47\xf9\x90\xc4\x09\x3f\x2a\x84\x4e\xf9\x51\xf1\xbf\x3f\x8e\x6a\x3f\xf1\xb7\x5f\x7e\xf9\x11\xf3\xf5\x75\xd1\x2e\x04\xec\x4a\x07\x1a\x78\xda\xfd\x14\x8e\xa7\xd0\xac\xd2\x03\xe6\xe9\x3c\xb9\x17\xec\x23\x4e\xf7\x47\x22\x29\x7e\xda\xb4\xcd\x64\xdb\xbc\xb1\xa7\x4c\x1b\x50\xc6\xb7\xcf\x1b\xdb\x31\x6d\x6f\x57\xe3\xdf\xad\x16\x66\xb6\xbe\x5a\x8d\xdf\x7e\x09\xff\xac\xcd\xd1\xbe\xcd\xeb\xa2\x67\xda\x9a\xdd\x22\x88\x5a\xb6\xa5\x93\x45\x33\xb9\x5f\x18\xb1\x61\xb2\x08\x56\x6d\xdb\xc6\xe7\x85\x38\x34\xba\x15\xb9\xab\x07\xa0\xaf\x1b\xa4\xe0\x3b\x3d\x82\x07\x32\x6a\x7b\x36\x6c\x80\x7b\x76\x53\x7b\x87\x00\x5c\x78\x38\x80\x8f\x07\xde\xef\xd7\x9f\xda\xbb\x7b\xba\xb3\xbb\x99\xa9\x10\x03\x18\x64\x6e\xcc\xeb\x3d\x1b\x59\x79\x75\x57\x1b\x1f\x39\x66\x0d\x6c\x26\xab\x89\xe9\xb6\x3e\x64\x17\xd9\xe5\x88\x26\x13\xed\xe2\xfe\x5c\x4b\x2c\xb4\xd2\xdd\xaf\x6d\xbd\x2b\xda\x4b\x61\x52\x42\xe7\x75\x6b\x59\xf8\x81\x29\xe2\x40\x28\x9c\xb9\x52\xcf\x37\xbd\x89\xd0\x7d\xc5\xef\xe8\xe3\x0f\x0d\x5a\x74\xa7\x5e\x7e\x80\xc8\x6c\x47\x86\xb5\xe1\xd2\x68\x6b\xb6\xd6\x0e\xc7\x12\xde\xf2\x9f\xd4\xa4\xbb\xec\x49\x0d\xc2\x1a\x7b\xe6\xeb\xa7\xaa\x6c\x29\x8f\xe8\x5b\xe5\x29\xfa\x0e\x8a\x35\x98\x95\x7d\x9e\x5b\x2b\xe6\xbc\x79\x19\x73\xe2\xa6\x3c\x5f\xa1\xd1\x4b\x8b\x42\xbf\x69\x99\x61\x1f\xc7\x76\xc0\x0c\x5b\xb5\x6b\x3e\x8c\xe7\xc3\xea\x63\x60\x52\xd9\xb5\xd3\x5c\x2b\xab\x49\x31\xdc\x4d\xcb\xd6\x1f\x32\xbe\xfb\xe0\xba\x48\xe5\x98\x41\x0a\xf8\x58\xbb\x79\xb0\x0e\xa4\x83\xbd\xe0\x1b\xc7\xf2\x42\xa5\xd9\x98\x5d\x6c\xdc\x42\x40\x3e\x97\xee\x36\xf4\xe2\x7a\xed\xdb\x04\x62\xa4\xed\x6a\xc1\x4c\x4e\xec\x2b\x9e\x95\x5a\x27\x68\x65\xc1\x70\xc4\x72\x81\x11\x2e\x60\x33\xe3\x7e\xd4\xa9\x73\x1d\x9d\x18\x1a\x90\x5f\xeb\xc2\x9d\x16\xb9\x3f\x8d\x3c\x6b\x69\xd8\x8f\x8e\x9a\xfb\xb1\x16\xef\x94\xe8\xb6\x8b\x54\x94\x1d\xcb\x3d\x15\xab\x7c\x1f\x03\xe4\xae\x4a\x2d\xe2\xc2\xec\xe2\x15\xf0\x8f\x05\xe9\x96\xbb\x6a\xef\x7f\x4d\xa2\x6e\x10\x5d\x36\x62\x28\x20\x2a\x21\xdd\xfa\x4d\xe2\xa9\xd5\x6b\x95\x35\x65\x45\x71\xd0\x59\x90\xf0\xcd\x3c\x57\xdd\x49\xa0\x7b\x8c\x97\x2d\xa2\xe2\x31\x58\x63\x52\xc8\x2d\xfb\xa5\xe4\x29\x1e\xad\x92\x36\x83\x6d\x36\x18\x5f\xbe\xfa\x3d\x9b\xc0\xd9\xc7\x3e\x80\x54\x06\xc8\x18\x94\x56\x28\x96\x6c\x32\x91\x6b\x25\x79\x67\x36\xf4\xfb\x6f\xf4\x9c\x32\xba\x9a\x8b\xb9\x2a\x9b\xd9\x5b\x07\xf4\xa4\xa5\xb4\xb0\x53\x9c\xdd\x97\x0b\x91\x4b\x81\x19\xdf\xe1\x3d\x66\xdf\xeb\xd5\x5c\xc5\xcb\x62\xfd\xd5\x3c\x4a\x93\xde\x69\x66\x21\x5e\x75\x62\x3e\x3b\xc5\xaf\x76\x75\xa0\x52\x7e\xa5\xe9\x92\xe1\x33\x86\xcf\xc6\xec\x3b\x1e\xdd\x0b\x19\xb3\x2c\x2d\x57\x09\xd1\xd3\xe0\x65\x23\xa9\x9a\x15\xaa\x1d\x43\xcd\x06\xcb\x37\x87\xe0\x4c\x6e\xf8\x3d\xa6\x7e\x21\x15\xd6\xdc\x5b\xba\xc8\x0d\x9d\xa1\x66\x9e\x34\xd7\xee\xde\xd9\x72\xa7\x71\xb3\x98\xfa\xda\xd3\x25\x46\xeb\x3d\xae\x15\x61\x9c\x2a\x76\xa2\x01\x1b\xd7\xad\xd6\x06\x8b\x98\x65\x7a\x71\xb9\xff\xa9\x31\xb8\x7b\xc1\x81\x08\xe9\x8b\x4a\xc9\x38\x10\x91\xbd\xd2\xac\xcc\xac\x10\x01\xcf\x56\x0a\x38\x23\x9c\x02\xf3\x20\x4b\xa2\x7b\x44\xb6\x42\xec\x06\x73\xdd\x6b\xa4\x88\x66\xc2\x43\x2c\xdb\x44\xc3\x12\x69\x78\x0e\x43\xcd\x34\xb2\x1f\xed\x59\xa7\x3d\xe3\x52\x8a\xb5\x90\xf3\x27\x24\xe1\xe9\x3f\x69\x95\x18\x14\x52\xc2\x9d\x87\xd0\x0d\x61\x29\x13\x22\xdd\xf6\x37\x7c\x97\x61\x22\x59\xd6\x94\xf8\x44\x33\xcd\x8b\x44\x1b\x59\xd6\x3a\xe2\x9e\xfc\xe8\x90\x51\xe7\xc3\x18\x97\x5a\xd8\x96\x6a\x63\xe1\xe2\xdc\xc6\xec\x3d\xf8\x55\x82\x7b\x89\x72\xdc\x45\x5d\x02\xab\x58\x8b\x4e\x12\xdf\xe7\x00\x88\xda\x1e\x04\xef\xef\x74\x97\xb9\x98\xc6\x31\x9b\x78\x7f\x36\xb2\x37\xa1\xa7\x7a\x4f\x8f\x44\xaa\xc5\x53\x16\x5f\x2f\xd7\x0f\x60\xbe\x60\x01\x31\xd0\xe3\xb4\xf9\xdd\xb3\xb9\xbb\x66\x3e\x02\x6d\x00\xbf\x17\x72\x97\x7d\xbf\x7f\x0b\xd1\x01\xb3\xd3\x20\xe1\x3c\x3b\x0a\x9d\x3b\x4f\x69\x60\xff\x6d\xe7\x09\xb3\x92\xe5\xb1\x19\x72\x73\x09\x8a\xee\x29\x58\x11\xfd\x7b\x44\xb9\xf5\xb8\x56\x3a\xdc\x67\x76\xfe\xf0\x1e\x9d\x97\x2e\xb7\x16\x04\x7b\xba\x01\x46\x94\xa7\x54\x21\x23\x17\xb4\xda\x6d\x52\x34\x2a\xb9\xf9\x66\x56\x84\xc2\x30\x00\x2e\xc2\x16\xd5\xb2\x9b\x65\x56\x3e\x57\xee\x96\xfd\x34\xd8\xcd\x11\x6e\x34\xe8\xc7\x6f\xf4\x25\xd4\xf7\x1c\x64\x34\x68\x65\x7c\xfe\x40\xb0\x27\xba\xc0\x1d\xc4\xd9\x5a\x3f\x15\x04\x89\xd0\x41\x99\xa9\x98\xf9\xf5\xde\x15\x69\x23\xa5\x42\x88\xeb\x6f\xb0\x5b\x41\xe3\x7a\xf7\x6d\xdf\x56\xfb\x10\xe0\xe4\xd8\xa2\x4c\xd2\x18\xd9\x04\x03\x0d\x55\x59\x15\x08\xd2\x18\x81\x3e\x92\x68\x77\xc0\xb5\x2c\xfa\x1f\xbf\xd1\x57\x2a\x3e\x64\x61\x0d\x67\x8c\x6d\xae\xeb\x1e\x61\x34\x3a\xc4\x32\x6d\xf6\x8f\x44\xa6\xba\x03\x20\xe2\xb9\xae\xe6\xed\xdd\xd1\x60\x40\xbc\x2d\xca\xe5\x0d\x24\x09\xed\x22\x65\x0a\xf2\xe7\xd9\x28\x6b\x33\xcf\xa6\x1a\x17\xf3\xd7\x35\x29\x04\xa0\xf2\xfa\x08\x67\x7f\xb8\xb9\xbc\x38\xda\xf0\x5c\xaf\x39\x90\x5e\xd8\xb2\x46\x36\xef\x3a\x5a\x0b\x2c\xb0\x23\x91\x33\x79\xc4\x56\x6a\x84\x30\xa2\x13\xb6\x2e\x8a\x4c\x9f\x1c\x1f\xaf\x92\x62\x5d\x2e\xc6\x91\xda\x1c\xfb\xa1\x39\xe6\x59\x72\xbc\x48\xd5\xe2\x38\x17\x10\x48\x72\xf4\x76\xfc\xd5\x5b\x98\x99\xe3\x87\xb7\xc7\x00\x1e\x19\xaf\xd4\xbf\x9c\x7f\xf5\x6f\x5f\xff\xde\x14\x9c\x6d\x8b\xb5\x92\x27\x84\x51\xda\x59\xf6\x11\x5e\x13\x8e\xf1\x93\x5a\x2d\xff\x36\xfe\x32\x6c\x06\xbd\xba\x51\xb1\x48\xf5\xf1\xc3\xdb\xb9\x9d\x98\x71\xd6\x91\xd9\xe2\x1f\xa1\x17\x9f\x21\xf4\xe2\x3e\x29\xfe\x11\x7a\xf1\xab\x86\x5e\xf4\x57\xb9\x9c\x8c\x01\x2e\x6b\x2f\x1f\xcd\xef\x4e\x46\x5a\x4f\xc4\x3e\x39\xd4\x72\x38\x84\x81\x71\x07\x1c\x11\x03\x13\xcd\xd5\xba\xeb\xee\x32\x1d\x16\xc7\xa1\xf9\x64\x3a\x6f\x17\x83\x78\x40\x00\xe8\x98\x44\x60\x2b\x44\x0b\x69\xc6\x93\xb6\x80\x8a\x20\xbf\xce\x01\x43\x88\xf9\x3e\xda\x49\xcf\xfa\xa4\xc5\xa2\xcc\x50\x22\x9e\x3f\x4b\x82\xac\xd6\x3a\x10\x13\x3a\xb8\xfc\x86\xde\xdd\x43\x35\x26\x94\xf4\x41\x23\xfa\x82\xa9\x4c\x9e\x3b\x87\x09\x75\xf7\x89\xf9\x4b\x52\xfc\xda\x62\xba\xd5\xa3\xcd\x5b\xf2\x1c\xd9\x3e\x3c\x5e\xbd\x5f\xa6\x0f\x5c\xa4\xd0\x16\xdb\xae\x8e\x66\xac\xb9\x7e\x5a\x70\xc0\x04\xa9\x82\x9d\x2f\x18\x91\xd5\x89\xb6\x15\xda\xd3\xd8\xb2\x2f\x99\xc3\xdd\x92\x3c\x66\x65\x9e\x29\x2d\xf4\x98\xbd\x57\x39\xd2\x7a\x11\xe7\x8e\x0f\x78\xb8\x7e\x7f\xca\xde\x7e\xf3\x6f\x5f\xcf\xe4\xeb\x16\x65\x08\x0e\x51\x95\xaf\x28\xfe\x02\x54\xa0\x0d\xd7\x85\xc8\x8f\xf3\x65\x74\x8c\x47\xc7\xb1\xf9\xfe\x88\x2a\x3d\x52\xcb\x23\x97\xca\xe0\x88\x58\xdd\xc7\x9b\xf8\x4d\x17\x32\xb1\x5d\xe1\xfe\xd5\x2e\x3d\x93\x0e\xc5\xbc\x6d\x7e\xf7\x0b\xd6\xca\x16\x42\x45\x84\xb4\x10\x0d\x1a\x0b\x52\x31\xaa\xa5\x4b\xbe\x83\x71\xbe\x98\xa7\x4b\x2d\x5b\xfe\xf1\x5d\xaa\x16\xfa\x8d\x23\x80\xe5\xda\xd6\xe1\x19\x19\xdb\xe4\x76\x63\xcf\x1d\x72\xfb\xa6\xa1\x78\x49\xb3\x9a\x95\x89\xe1\xb4\x0d\x19\xf8\x76\xa1\xe1\x75\x41\xe4\xa3\xe2\xb9\x2a\xa5\xcd\x6e\xa1\xa4\x50\x4b\x80\x39\xc1\x35\xc9\xa2\x34\xc1\xb3\x00\xd8\x3f\xc7\x3d\x95\x8b\x0c\xb5\x0f\xf0\x81\x75\x0f\xf7\x81\x19\x5e\xf6\x8d\xf3\x4b\x64\x78\x39\x74\xdc\x49\x30\xfe\x4a\x03\x7e\x68\x28\x05\x6e\xa5\x21\x08\x24\xf3\xfe\x5e\xb4\x81\x93\x03\x3e\xc3\xb4\x4f\xa6\x90\xf1\x1c\x34\x78\x71\x54\xa8\x23\x20\xed\x03\x2a\x38\xcc\xb9\xd4\x05\x41\x02\x94\xc6\x90\xe3\xde\xbc\xdf\xa3\x9d\x78\x6b\xfb\x14\x34\x94\x14\x56\x8d\x14\xe6\x04\x49\x4f\xa4\x14\x39\x79\x80\xf7\x6a\x06\x03\x31\x1c\xe1\x54\xee\x46\xa4\x7b\x33\x45\x98\x0f\xc7\xc5\x23\xf2\x40\x08\x8c\x19\x5c\x4d\xd6\x6a\xa3\x8c\xae\xab\x4a\x1d\x3c\xc4\xab\x2d\x28\x13\x9d\x8a\xf9\x86\x67\xa8\xaf\xfe\x7a\xbd\x31\x5b\xcb\x3c\x42\x13\x74\xf8\xd2\xa0\x14\x63\x8b\x6a\x52\xa5\x3d\xed\x77\xd9\x70\x76\xaf\x1b\x40\x08\x6d\xc0\xe5\xb7\xe6\x0f\xc2\xe6\xb8\x48\xfe\x66\x2e\xbd\x66\x49\xb9\x6b\xa4\xd3\x40\x10\xd0\x86\x5c\xd4\x21\x7c\xd3\x9e\xba\x9d\x6c\x31\xe5\x66\xe0\x1c\xb8\x20\xab\x3e\x13\xc0\x25\x86\x1d\xd9\x78\xa3\xa3\xd6\x80\xa3\xae\x7d\x09\x76\xb5\xd2\xdc\x4c\x2c\x5f\xfa\xb0\xa6\xde\xb8\x02\x88\x1a\xbd\xd9\x6e\x4f\x37\x09\xd1\x69\x38\xc6\x28\x10\xac\x6e\xd1\x05\x72\x1e\xbe\x19\x21\xc1\xdc\x90\xb1\x83\x4a\x70\x71\x36\x46\x30\xd8\x0b\x5d\x03\x38\xcc\xfe\xba\xcb\x9c\xd9\x86\x6f\x47\x86\x5e\x1f\xbd\x6c\x5a\xd9\xb0\x2c\xb8\x0f\x1f\x7c\x12\x63\x80\xff\x2e\x4a\x78\x7e\x71\x79\x1b\x22\x9b\x12\xec\xed\x51\xb4\x16\xd1\x3d\x58\xd3\xf0\xc8\xc3\xcd\x40\xc1\xf8\x00\xb7\xf6\xa9\x4f\x0b\x65\x81\x32\x5b\x97\x0d\xc6\x65\x44\x52\x39\x8b\x13\x9d\xa5\x7c\x0b\x90\x04\x89\x71\x8a\x1e\xce\xe0\x02\x7c\x8d\x28\xd8\xe7\x4c\xe8\x3f\xd3\x66\x56\x26\xfe\xbb\xa1\x63\xe9\x81\xe7\x7e\x30\x9b\xf2\x80\x69\xb1\xe1\xb2\x48\xa2\x99\xdc\x08\x2e\x43\x04\x2b\x41\x32\xcc\x20\xc7\x4a\x50\xbe\x84\xe5\x52\x44\x85\x27\x5c\x86\x4b\x88\x1b\xa9\x7d\x7b\x70\x58\xdf\xdd\xce\xdb\xd9\xf5\x1f\x6c\x7a\xe6\x64\x03\xf8\x68\x5a\x43\x74\x34\x3e\xd1\xd5\x08\xa9\x72\xe9\xc8\xb5\x97\x5a\xf8\xcb\xae\x29\xb6\x10\xc5\xa3\x00\x3e\x21\x22\x40\x68\xd3\xf1\x0f\x4e\x97\x74\x48\xf0\xe0\xc4\xf1\x0f\x12\xbd\x7c\x83\x40\x98\x36\x58\x08\xbc\x74\xc4\x87\xb2\xc6\x60\xf8\x8a\x28\x19\xc0\x14\xf8\x8a\x8c\x9a\xaf\xe0\x98\x36\xb7\xe0\xfc\x41\xc4\x33\x59\xa5\x95\x24\x9d\xd1\x6f\x38\xe6\x13\x81\x3e\x8f\xb4\xb1\x63\xdc\xcb\xd1\x73\x06\x54\x5a\x9e\x44\xdb\x91\x0e\xec\x48\x4c\x8a\x9d\x7e\xc9\x5b\x95\xcd\x89\xdc\xf7\x32\xec\x73\x85\x52\xa2\x3f\xca\x0b\x5c\x41\xff\xb8\x45\xe9\x48\xf3\x90\x51\xd7\x81\xc5\xc9\x68\xdd\x30\x83\xb7\x95\x31\x93\x96\x4d\x66\x59\xa6\xc8\x92\xde\x15\xb3\x43\x1c\x9a\x36\xf2\xf5\xd7\x8b\x80\x76\x46\x57\x16\xe4\x56\x75\x20\x9d\x00\xb8\x8f\xb2\xce\xae\x7a\x21\x75\x09\x2a\x85\x4d\xab\x08\x5e\x89\x95\x28\xe0\x34\x8f\xcb\x14\x01\x9b\xe0\x4e\x01\x3e\x4e\x9e\xa6\x2c\x29\xf4\x4c\x3a\xfa\x50\x0c\xcc\x01\x09\x6b\xfd\x2d\x31\x5d\xb9\xa0\x0a\x28\x16\x1e\x73\x09\x7a\x58\x12\x25\x45\x23\xdc\x61\x1b\xa6\x22\xcb\x32\xc1\x31\x96\x1f\xa7\x6d\x26\xc3\x3b\x57\x7d\x12\x28\xf0\x1d\xb2\xd7\x3f\x47\x0c\xfa\x0e\xc3\xad\xa9\xe2\x49\x28\x1b\xec\x9d\xb9\x70\xd9\x2c\xe3\xd8\x5a\xe2\x0f\x22\x54\xb2\xb9\xd5\x14\xda\x3a\x50\xfc\xbd\x15\x62\x7a\xa2\x32\xe5\x39\x06\x33\x2d\xcb\x94\x25\xcb\x20\x61\x3a\xcc\x01\x92\x47\x9a\xe9\x8a\x14\x9c\xd5\xd6\x85\xa2\xf9\x46\x04\xbc\x35\x64\xde\x49\x03\xc4\x0f\x66\xc4\x40\x28\x89\x29\xeb\xcd\x98\xbd\xf3\xf4\xb8\x38\xc3\xb0\x27\x02\xd2\xe9\x44\xa3\xf8\x73\xed\x0d\x28\x17\xa0\x77\xa6\x89\x4a\x9a\x1d\xe9\x76\x5d\xc7\x0c\x42\xf2\x9a\x61\x70\x22\x9b\xba\x68\x37\xc2\xbe\x95\x72\xc5\x7c\x5a\x03\x19\xb9\x0d\xd1\xd1\x40\x7b\x2a\x0c\x6c\x64\x48\xd8\xfd\x84\x86\x3a\x42\xf4\x96\xc6\x6e\x76\xe4\x67\x87\x79\x1c\xd8\xd4\x20\xdb\xe1\xf0\x86\x06\x2b\x27\x04\x8f\xf5\x19\xd9\x15\x2f\x86\x22\xc9\x5c\xe0\xda\xf0\x86\xb6\xa2\xf6\xfa\x34\x13\xa4\xc7\xc0\x76\x4e\xcc\x37\x4f\x6c\xa8\x2e\x17\x47\x28\xa0\x5d\x3e\x24\x10\x15\x82\x47\xeb\x2a\x87\x84\x65\x7a\x76\x3d\x80\x18\x42\xd8\x8f\xc3\xe9\x2f\x26\x7e\xcd\x41\xc2\x47\x66\x9a\x3f\x66\x97\x52\x20\xce\x53\x2d\x83\x43\x85\x1a\x40\x99\x21\x21\xd9\x8e\x93\x72\x0b\xd3\x30\x79\x6f\xa9\xb5\xcc\x96\x1b\x31\xee\x4b\x07\xa9\x87\xcb\x06\xa5\x48\x87\x2e\xd9\x96\x9a\xea\x00\xf5\xb2\x1f\x41\x45\xfb\x9d\x3f\x80\x4b\x0f\x97\x00\x6d\xfd\xe8\x3f\x2d\x3b\xe3\x1e\xdc\x2d\xce\x06\x3b\x54\xd7\x0d\x43\xf0\xf3\xbe\xf1\xbd\x5a\x57\x31\xb3\x03\x12\x39\xde\x5d\xbc\x3b\x7b\x3f\xbd\xa8\x66\x5f\xfc\xe3\xdd\xd9\x5d\xf5\x97\xeb\xbb\x8b\x8b\xe9\xc5\xf7\xe1\x4f\x37\x77\xa7\xa7\x67\x67\xef\xaa\xef\xbd\x9f\x4c\xcf\x6b\xef\x99\x9f\xaa\x2f\x4d\xbe\xbb\xbc\xae\xe5\x7b\xb4\xc9\x1a\x83\x9f\x6e\xa7\x1f\xce\xde\xcd\x2f\xef\x2a\x29\x23\xdf\xfd\xc7\xc5\xe4\xc3\xf4\x74\xde\xd2\x9e\xeb\xb3\xd3\xcb\x9f\xce\xae\xf7\x64\x7c\xf4\xfd\x6d\x1d\xd2\xe7\xc0\x16\x3e\x39\xff\xe7\x84\x2d\xf3\x44\xc8\x38\xdd\x62\xa4\x88\xbd\xd9\xd6\xa0\xdf\xe1\xd9\x9b\x6c\x84\x2a\x0f\x09\xf8\xb8\x5d\x0b\xa6\x1e\x44\x0e\x2c\x60\x58\x1a\x51\x86\x78\xc6\x81\x7a\xad\xb9\x28\xf2\xa6\x57\x60\x67\x54\x5d\x91\x6f\x5d\xdc\xe6\xae\xe6\x78\x06\x49\xaa\x84\x65\x22\xdf\xd5\x16\xd0\x8c\xf2\x32\x2b\x92\x45\x77\x08\xcf\xe0\xc0\xfb\xbe\x77\x6f\xe4\x3b\x6e\x27\x87\xbb\x68\x17\x8c\x95\x48\x96\x43\x60\xf2\x50\xc2\x53\xd3\xda\xba\xaf\x2d\xb4\x38\x2b\x17\x69\x12\xb1\x24\xae\xdb\x53\x88\x0f\x03\x4c\xc6\x75\x5a\xf4\x4c\xe4\xa0\xaa\x9a\x1b\x40\x96\x8b\x23\x5e\x16\x6b\xa4\xf0\xa4\xc0\x19\x4a\x62\x33\x93\x5a\x44\xb9\x40\x5f\x80\xd0\x60\xa4\xc5\x7c\xa6\x41\x4d\xd0\x18\x62\xb0\x89\x81\x2c\x6f\x1c\xa4\xa8\xe9\xf0\x11\xe0\x97\x58\xfa\x00\x23\x29\xbe\xbf\x73\x68\xa8\xc5\x09\x66\x4c\x0d\x60\x61\x70\xc2\xe3\x43\x9b\x15\xd5\xf4\xdb\x48\x6a\x97\x15\x14\x27\xd9\x46\x1a\xb5\x77\x63\xdf\x1a\x0b\x17\x4a\x35\xf4\x86\x4a\xa7\x47\xa7\xb9\x80\x43\x84\x20\x0d\xd6\x7e\x01\xb8\x26\x8a\x4c\x82\x80\x24\x73\x55\x5b\x88\x35\x4f\x97\xa8\x71\x98\xa9\x69\x67\x15\xc1\xf2\x6f\xd5\xbd\x90\xd7\x38\x61\xbf\x8a\x38\x94\x78\xf3\xf1\x9c\x46\xce\x22\xe4\x4d\x98\xa6\x8d\x76\x55\xd9\xb8\x50\x50\xa6\x0a\xbc\x27\x04\x8f\x31\x00\xc9\x67\x2c\xb0\x21\xa5\xcb\x65\xf2\xc9\x14\x38\x93\xa2\x95\xb3\x1d\xc0\x64\x96\x5d\xd2\xc9\x65\x00\xce\x21\x45\xdf\xbd\x90\x90\x4f\x15\xc8\x01\xf7\xaf\xd9\x61\xf6\xf3\xe6\x5c\xec\x30\xe8\x83\xcd\x2f\xa9\xa4\x99\x0d\xbd\x3c\x76\x9c\x0a\x8c\x08\x73\x1c\x1c\xb0\x6e\x4e\xcf\xa7\x67\x17\xb7\xf3\xd3\xeb\xb3\x77\x67\x17\xb7\xd3\xc9\xf9\x4d\xdf\xed\xf7\x1c\x51\x7c\xb5\xdd\x57\x0f\x66\x73\x12\xe2\x98\x76\x9e\x0f\x65\x77\x9d\xf2\xdb\x0e\xa6\x64\x7f\xeb\x93\x38\x9b\xc7\x89\x8e\xcc\xf1\xb7\x9d\x0b\x19\x43\xb2\x8b\x27\x2d\xd5\xf6\xa2\xea\xbd\x70\x6f\x30\xf7\x86\x95\x20\x78\xda\x3d\xd8\x15\xed\x9e\x03\x24\x13\xcc\x90\xb9\x30\x9b\x3f\xae\x70\x8c\x8c\xf7\x67\x38\x33\xc5\x1d\xd6\xb7\x6a\x11\xf5\x3e\x61\x7b\x13\xad\x4b\xa0\x32\xb1\xaf\x01\x1e\xb5\x63\x54\x88\x81\x38\xcc\xb8\x91\x04\xd9\xe2\x59\xa2\x67\x72\xc3\x65\xcc\x0b\x95\x6f\x3b\xba\xd8\x4f\x78\x86\xdb\xa6\x2a\x42\xc3\x23\x5b\x0a\x11\xdb\x59\xc0\x57\xb9\xac\x2f\x25\xcc\xcb\x71\x7b\xf9\xe3\xd9\xc5\xcd\xfc\xec\xe2\xa7\xf9\xd5\xf5\xd9\xfb\xe9\x9f\x1c\x4c\x36\xe3\xba\x2d\x3b\x74\x96\x0b\x23\x5d\x2c\xcd\x59\xab\x7c\xc1\x94\xcd\xb6\x1c\x4a\xd3\x99\x2c\x67\xd2\x4a\x96\xdc\x17\xbf\xce\x55\xb9\x5a\xb7\x17\x54\x6f\xe5\xd5\xe4\xf6\x87\x27\x35\x13\x48\x28\x31\xaf\x2b\xee\xb6\x26\x5c\x38\x59\x92\xdc\x43\x8c\x71\xad\x79\x40\xa5\x0a\xaf\xb6\x79\x19\x3a\x24\xda\x93\x6e\x2f\x4d\xa1\xb5\x53\xf9\x6f\x79\xbd\x6b\x01\xdd\x06\x72\xb3\x72\x8c\x00\x7c\x1d\xd3\x83\x37\x4a\x3b\x69\xf9\xad\x72\x82\x7d\x75\x94\x8a\xd5\x4a\xc4\xb8\xbc\xea\x05\x93\x0d\x8e\x44\x60\xe4\xcf\xf5\xb6\x51\xa4\x04\xbe\x07\x1c\xcc\x0e\xef\xd5\x5f\x80\x5f\xb9\x4f\xda\x65\xc5\x29\x11\x49\x81\x7f\xb3\xe0\xb2\xc3\x91\xbc\x3f\x1e\xac\xbd\xf8\xcb\x9c\xb9\x50\x3d\x32\x98\x58\x97\x81\xdf\x07\x5d\x80\x97\xc3\xf1\xad\xae\x1d\xd7\x22\x4b\x79\x24\x5c\x80\x0b\x32\x00\xc3\xbd\xfe\x29\x0e\x3c\x4a\x93\x2c\xc9\xde\x12\xa4\x4f\xf6\x99\xe1\xda\x96\x00\x58\x6e\xaf\xad\x3c\x7e\x79\xd3\xca\xce\x8b\x1b\xf1\x7e\x82\xa1\x19\xf3\x54\x52\x5c\x04\xda\xa2\x20\xf9\x6b\x27\x66\x7d\xd0\x72\xa8\xd5\xfc\x13\x4d\x3c\xde\x99\xab\x86\x6e\x6e\x99\x75\xdd\xf2\x70\xaa\xe3\x2e\x7b\x61\x51\xe4\x3b\xc9\xb8\x9f\xc3\x1d\x71\x95\xab\x4d\xa2\xc5\xa4\x28\xf2\x64\x51\x86\xd9\x88\x07\x02\xe6\x2a\x97\x13\xdf\xe1\x2c\x57\x71\x19\x59\xfa\x2c\xe8\xad\x87\xfd\x90\x95\xcf\x6a\x1d\x31\x3b\x32\xab\x8f\x6e\x6e\x22\x3e\x82\x68\x0f\xe4\x77\x6b\xf3\xb1\x59\xc1\xd8\x61\xfb\xbb\xb2\x47\xf9\x33\xc7\x8c\x76\x0f\xa6\x5d\x03\xfd\xc2\xc0\x99\x7d\x1d\x34\xe0\x0e\xd4\x14\x2d\x97\x05\x47\x07\x7a\x55\x47\xe9\x62\xcb\x71\x47\xcd\x30\x70\x57\x3f\x6c\x4c\x35\x9c\x0a\xf5\x86\x35\xd7\xa8\xce\x17\xd1\xba\xda\x70\xe8\x4d\x95\x35\xb8\xde\x5c\xa7\x1e\x1f\x66\x36\xe9\xe5\x46\x1b\xa1\xa1\x21\x21\xc3\x76\x25\x03\xac\x4b\x67\xdd\x69\xbf\xc7\x90\x8b\xf9\x2f\xa5\x18\x92\xd5\xd9\x86\x6a\xfc\x11\x3e\xdb\x0b\x48\x49\x10\xbb\xe5\x6c\xaf\x45\xb2\x31\x1a\x10\xcf\xa3\x35\x5b\x70\x4d\x74\x84\x21\x5b\x02\xa6\x9f\x67\x89\xf9\x8a\x47\x05\xa5\xe3\xb5\xd5\xda\x94\xbc\xb7\x16\x0a\x69\xd4\x5a\x6f\xf5\x68\x5b\x6e\xfb\x06\x60\x88\xf5\xda\x36\x63\xfa\x6e\x90\x0f\x21\xd4\xc3\xdd\x3d\x19\x8f\x58\x38\x9d\x52\x5e\xca\x68\xcd\xb2\x94\x23\xa1\xc4\x9a\x6b\x14\x14\x16\xa1\xc3\x17\x49\x9a\x14\xc0\x13\x86\x8e\xe3\xda\xba\x35\x97\x67\x9e\xdf\xdb\x74\x0b\xdc\x93\xc2\xed\x12\x25\x07\x22\xa1\x5d\xaf\x3e\x2b\x16\xda\x0b\xc2\x50\xb8\xf7\xdb\xec\x84\x83\xf6\xd3\x61\x8e\x37\xd8\xec\xbe\x2f\xc3\xbc\x43\x54\xe2\x55\xfd\xf3\xda\x78\x23\x01\xe5\x41\x24\xc1\x3b\xe3\xb2\x5e\x04\x74\xee\xa3\xca\x76\x1f\xa3\xcd\x0e\xb7\x28\xc1\xc3\x81\x4f\x94\x38\x69\x80\x12\x53\x4f\xab\xd4\xba\xef\x97\xa9\xe2\xc5\xee\x28\x37\xcc\x92\xd4\x55\x76\xac\xca\x45\x57\x5e\x0e\x6c\xd5\xd3\x63\xe8\xac\xf8\x7f\x2e\x9b\x7b\x78\x8e\xf2\x42\x18\xe9\xfb\xb4\x01\x35\x5f\x1f\xc1\xe7\xed\x85\x53\x14\xf3\x60\x46\x0a\xb7\x0c\x7c\xae\x3e\xa7\xfb\x03\x24\xb5\x65\x3b\xd5\x95\xbc\x83\x62\x1e\x0f\x9b\xaf\x44\xee\x59\x4a\xfb\xd3\x7f\x7d\xfd\x55\x9f\x68\xc4\x3f\x96\xdc\x1c\x00\x97\xcb\x1b\x24\x08\x3b\xa4\xd3\x45\xd2\xdc\x56\xed\x62\xa0\x5e\xeb\x6d\xd5\x4b\x1b\x2e\xfc\xde\x6c\x07\x6d\xbd\xb9\x31\x5f\xf7\x17\xbb\xd3\x8a\x35\x36\xcb\x13\x05\x44\x59\x6a\x59\xd1\x35\x5a\x24\x71\x6b\xbd\x07\x8c\xe4\x2f\xa5\x28\x85\x59\x40\x8b\x32\x5e\x35\x9d\x25\x03\x2e\x5c\xbe\x4b\x6b\xf5\xc8\x36\x65\xb4\x66\xb6\x70\x16\x8b\x94\x6f\xab\x6a\x94\xb9\x6b\x14\x0a\x28\x94\x07\xf1\x05\x06\xc4\xf7\x51\xa9\x0b\xb5\x01\x9c\xba\x2f\x37\x2f\x25\xec\x72\xc6\xed\xee\x6a\x3b\xd0\x2a\x84\x9e\x4f\xf4\x90\xdf\x5c\x9d\x9d\x4e\xdf\x4f\x6b\xee\xe9\xc9\xcd\x8f\xe1\xdf\x3f\x5f\x5e\xff\xf8\xfe\xfc\xf2\xe7\xf0\xb7\xf3\xc9\xdd\xc5\xe9\x0f\xf3\xab\xf3\xc9\x45\xc5\x89\x3d\xb9\x9d\xdc\x9c\xdd\xee\xf1\x53\x37\x6b\xed\x9e\x08\x1e\xf0\x8d\x5a\xe4\xbc\x4d\xa6\x63\xcd\x55\x54\xeb\x09\x9b\x58\xf6\xd5\x0a\x3f\xb0\xc5\x1a\x00\x38\x29\x45\x8c\x25\x42\x12\xde\xf1\x82\x9f\xf2\x82\xa7\x6a\x35\x66\x13\x46\x71\x05\x18\x2f\xa2\x8d\x4a\x48\xd4\x94\x66\x76\xb0\x08\xa3\x17\x46\xde\x14\xe4\xb3\x85\xab\x25\x91\xc2\xa6\x22\xcc\x2b\x65\x83\x3c\x67\xf2\xec\x41\xc8\xa2\x04\x45\x9b\xa7\x29\xa3\x6a\xed\x0b\x01\x2b\x88\x6d\xa5\x4e\x36\x49\xca\x73\x9f\xd8\xf9\x92\xca\x82\xcb\xae\x6d\xab\x63\xa5\x6b\x52\x4e\x58\x7b\xc0\xdd\x94\x41\xbb\x4f\xcf\xa7\xa0\xe8\x46\x85\xcd\x5a\x68\x2b\x9f\x49\x24\x1d\xa5\x1a\x37\x1c\x62\x98\x0a\x45\x06\x7a\xac\x9e\x5e\xee\x5e\x88\x07\x29\x56\xd6\x95\xf5\x52\x86\x09\xd7\x48\xfb\x8f\x33\x59\xe4\xdb\xde\xda\xeb\x2d\x30\x3a\x68\xb8\xd7\x11\x24\xb2\x9a\xec\x19\xed\xa7\xcc\x96\x7e\x01\x2a\xad\xc5\xeb\x92\x7b\xcf\x79\xf1\x10\x1e\xd5\x71\x25\x4a\xcd\xc9\xfb\x5b\x1d\x87\x90\x05\x0c\x46\x61\xa1\x4a\x19\x6b\x02\x6f\x6e\x12\x79\xbc\xe1\x9f\xde\xd8\x9e\x22\x89\x8d\x4b\xb9\x06\x8c\x89\x22\x35\xf7\xc1\xad\x11\x72\xbb\x87\x6b\x26\x77\x8c\xd7\xfe\x3b\x81\x95\xac\x60\x32\xf0\xf6\x1d\x84\xa1\x3e\x88\x6d\xdb\xfc\x35\xd2\x66\xb2\x30\xf7\x03\x14\x92\xe5\xc2\xbc\xe8\x30\xae\x29\x42\x97\xdd\xdf\x10\xcb\x52\x49\xed\xdd\x2e\xbb\x43\xd8\xc8\x41\xdb\xa6\x15\xb0\xd2\x5f\xf1\xe9\x9d\xf7\x94\x6a\x32\x73\x86\xf0\x15\xeb\x39\xa1\xd8\x1d\xf2\xcb\x9b\xc9\xfa\xab\x5a\xb0\x25\x04\xb2\x91\x9d\x20\x17\xe0\x29\x83\xa9\xb0\x89\x7a\x80\x57\xaf\x81\x89\xb1\x4b\x20\x15\x1a\xfc\x47\xd2\x5c\xaa\xc5\x2f\x25\x41\x00\xde\x7e\x39\xec\x9c\x2d\x30\xdb\x03\xd2\x7b\xd7\xf3\x20\xb8\xb3\x1c\xda\x55\xca\xa4\x8d\x6c\xf3\xba\x94\xe6\x28\x7e\x0e\xf4\x54\x7f\xf7\x78\xad\x52\xfa\x73\x6f\xac\x99\xf5\xec\xe4\xf8\xfe\x8b\x31\x37\xff\x54\x23\x6c\xa6\xea\x20\xb2\x81\x4a\x0f\x0f\xb4\x05\x8f\xee\x1f\x79\x1e\xa3\xf9\x1f\xe0\x4c\x63\xf6\x83\x7a\x14\x0f\x22\x1f\xb1\x48\xe4\x05\x27\xbe\x42\x0d\x78\x0e\xd8\x50\x54\xce\x4c\x42\xa0\x0f\x92\x3f\x4a\x5d\xe6\x82\x15\xc9\x6a\x5d\x88\x3c\x44\xe3\xa8\xdc\x88\xa3\x02\xa9\x6a\x33\x11\x11\x21\x5b\xc7\x00\x2c\x53\xfe\xd0\x24\x60\x7c\x0a\x93\x0c\x9b\xba\x68\x65\xeb\xee\xb6\xc9\xcf\x76\xe1\xa7\x68\xc0\x48\x68\x22\x85\xd6\x88\xad\x54\xca\xe5\x6a\x3c\x1e\x43\xa2\x8f\x37\x83\x16\x3a\x15\x18\x3a\xd0\x1d\x4a\x3f\x55\x4a\x8b\x74\xeb\x48\xc4\x5c\x1c\x15\x00\x77\x3f\x15\x42\xea\x04\x0d\x5b\x2d\xcb\xff\xa6\xee\x5c\xfa\xbc\xbe\xb8\xf6\xeb\xf9\xe0\x28\xdd\x8e\x72\x20\x97\xea\x80\x92\xf0\xfd\xf6\x9b\xd7\x93\xa2\xce\xdb\xcb\x92\x4a\x0e\x0d\xa5\xfe\x49\x25\x1d\x50\x90\x27\x91\x8d\xb6\x96\x44\x44\x48\x4f\x0a\x3f\x6d\x1f\xb3\x46\x44\xf0\x01\xc1\xc0\x3b\xe2\x7a\x07\x86\xf4\xf6\x31\x04\xdc\xd4\xa7\x7b\xf0\xb6\xd8\x9f\xde\xad\xb5\x43\x03\x43\xa6\x3d\xb7\xc1\x10\xd5\x09\xa3\x2e\xd3\x2d\xdc\xb8\x5c\x00\x35\xb8\x07\xe2\xc0\xab\x54\x71\x9a\x41\x28\x9f\xf7\xba\x39\x82\xba\xc0\xc9\xa6\x0b\x95\xf3\x95\x60\x1b\x11\x27\xe5\xa6\x55\xd8\xb8\xe6\x1e\x02\x1f\x55\x69\xb9\xe9\xa6\x0a\x3d\x54\x81\xf6\x8d\xc4\x7f\x9d\x42\x75\xfd\x39\x74\x5c\x64\x84\xcd\xb2\x49\xed\x45\x17\x12\x8d\xb5\x39\x29\xf3\x44\x03\xcb\xee\x53\x22\x67\x5d\x31\x58\x34\x38\xe0\xb7\x19\x1a\xd9\x2b\xb3\x7b\x64\x3d\xa3\xf4\x89\xc6\x59\x05\xaf\x7d\xf7\xa1\x50\x07\xa5\x0e\xcf\xb5\x97\xab\xb2\xc1\x3d\xd5\x0b\x28\x01\x6a\x63\x90\x79\x83\x50\x73\x50\x20\x41\x7b\x0a\xc5\x96\x36\x16\xf3\x5e\x04\xd4\x87\x31\xe4\xe4\x78\x44\xca\xa7\x1f\xbf\xd1\x16\x04\x44\x38\x2d\xaf\xb1\x14\xbe\x12\xf4\x00\x3d\xbc\xb5\xf0\x3c\xec\x21\x16\x01\x04\x85\x31\x97\x45\x6b\x01\x1e\xbd\x0a\x65\xe1\x27\x3f\xf1\x32\x6d\x7f\x9d\xca\x87\x57\x31\x67\xeb\xe4\xe7\x1b\x86\x43\x4d\xf9\x13\xf2\x5d\x0d\x0d\x0a\xd9\x0f\x10\x84\xe1\x9a\x3f\x41\x13\xac\xcc\x03\x0e\xba\x4d\xdf\x61\x86\x5d\x14\xd1\xda\x6b\x1e\x40\xd0\xe8\x88\x25\x29\x21\x37\xf5\x73\xe3\x33\x42\x20\xf6\x3a\x04\xb1\x26\x2b\xa9\xc2\x54\x4a\x4a\x0a\x70\xc5\x19\x01\xa4\xc2\x62\x59\x52\xec\x47\x0a\x0e\x64\x25\xdc\xb7\xd4\x0a\x85\x08\x30\xea\x67\xc5\x4f\x0d\x57\x8a\x04\xe9\xaa\x2c\xcc\x1a\xef\x44\x94\xdf\xb9\x9e\x29\xa0\x4a\x00\x32\x93\xd5\xaa\x1a\x83\x64\xa1\x7c\x49\x2e\x90\xe0\x5b\x1b\xed\xad\x48\x1e\xcc\x46\x6d\x2e\x6b\xb7\x40\x41\x02\x34\xd7\x1e\xb9\x6d\x59\xc0\x12\x7e\x2f\xb6\x3a\x4c\x26\x4d\x2b\x8a\x75\x2d\xc8\xc4\xf4\x87\xe6\x6b\xff\x54\xc0\xc0\xcd\x73\x9f\x12\xb2\xdf\x59\x86\x95\x7e\x30\x1f\xef\xc0\x08\x37\x0a\x37\x6b\xd0\x07\xbb\x7a\x9b\x22\x89\x09\x3f\xce\x34\x87\x1e\x06\x08\x20\xcf\x10\xc6\x19\x46\x2e\xc1\xc5\xd7\xdc\x6f\x67\x92\x12\x09\x04\x87\x9c\x11\x38\xcd\x69\xa3\x08\x7c\xa4\x2f\xdf\x56\xd8\x83\x80\x5a\xd5\xd2\xcc\x56\xab\xb4\xde\x65\xc8\xcb\x07\xcb\x03\xaa\xc6\x18\x65\x6b\xc3\x6b\xad\xf0\x89\xd8\x52\x9a\xdc\x4e\x3c\x69\x10\x08\x88\x6f\x12\xbb\x28\x66\x25\xc7\xdb\x4f\x24\xcc\xf0\x4d\x64\x2b\x94\xd3\x02\x39\x6f\xce\x4e\xaf\xcf\x6e\x3f\x1b\xde\xd4\x82\x3d\x07\x03\x4e\x6d\x3b\xdf\x9d\xbd\x9f\xdc\x9d\xdf\xce\xdf\x4d\xaf\x5f\x02\x71\x4a\x8f\x9e\x00\x39\xbd\xa1\xfc\x24\xa7\x4a\x16\xe2\xd3\x41\x67\x72\x5e\xca\x39\x1f\x10\xfa\xe4\x32\x14\xed\x52\x77\xb0\xd0\x66\x7e\x15\x97\xfc\x84\xb8\x6d\x09\x75\x62\xd3\xa9\x2c\xbd\xd1\x70\x99\xa4\x29\x44\x82\x3b\xf3\x3a\x45\x19\x9a\x41\x05\xf9\x63\xe9\x7c\x49\xa6\xce\xe4\xa2\x92\xfe\x06\x4c\x7e\x6b\x73\x09\xc6\x18\xf0\xcc\x0c\x40\x9e\x40\x84\xed\xae\x14\x2c\xab\x44\x0a\xdf\x0c\x98\x35\xd3\xbe\x4e\x9a\x7a\x9a\xc4\x97\x44\xd6\x91\xe2\xd5\x57\xd7\xb4\x2b\xae\xb2\x3e\xad\xfa\x69\x1f\xba\x1e\xe2\x26\x4e\x24\x2a\xa6\x95\xdd\x7c\xd3\xbe\x74\x8f\xfd\x16\x80\x71\x37\x33\xc9\xc1\x07\xa1\x0b\x9e\x17\x7e\x22\x69\x22\x30\x31\x9c\x77\x4e\xdc\x27\x88\x40\x53\xcb\xda\x38\x1b\x51\x68\xc6\x3a\x01\x4f\x05\x27\x72\x9b\x28\x2d\x75\x21\x72\x32\x9b\x4c\x7e\xbe\x99\xc9\xef\xcc\xf1\xf5\x86\x4e\x21\x4a\xdf\x85\x55\x20\x52\x47\x55\xea\xb7\x1a\x4a\x28\xc1\x5e\xa3\x8d\x7a\x23\xb8\xd4\x0c\xb6\x46\x9a\x8a\xdc\xaf\x0c\x6c\x8f\x10\x31\x25\xd1\x06\xaa\x67\xff\xfd\x1b\x46\xe0\x56\x33\x14\xa6\xbd\x2e\x8d\xd8\x46\x15\xcd\xf5\xd4\x45\x34\x00\x88\xf3\x97\x5c\x39\x2d\x81\x4f\x7d\x57\x11\x81\xf5\x5b\x17\x51\x35\x0c\xa9\xd7\x5a\xba\xc5\xe2\xfe\xb1\x94\x9e\x71\x29\xf5\x38\xd7\xc3\x53\x82\xad\x95\x11\xa0\x2e\xb7\x95\x77\x33\x3b\xa2\x93\x14\x50\x6e\x66\x18\x5b\x4f\x9d\x5a\x76\xd9\x43\xb0\x1f\x50\xd4\x61\x08\xed\x49\x0b\xa3\x92\x4f\x63\x68\x7d\x3b\x3b\x13\xd7\xbe\x0c\x73\xe1\xc4\x62\x55\xa5\x2a\x2c\x07\x89\x83\x87\x12\xd6\xd5\xbc\xe0\xc8\x6f\x76\xb6\x91\x08\x65\xac\x96\x32\x3f\x30\xf9\xe3\x6d\x88\xa9\xad\x44\x65\x63\x2b\x42\x3e\x07\xcb\xe1\xe0\x38\x60\x86\x2c\xbe\xa7\xa7\x17\xae\xae\x39\xc7\x27\xfa\x24\xb0\xc3\xc5\xe5\xc5\x59\x08\x55\x98\x5e\xdc\x9e\x7d\x7f\x76\x5d\x89\xe7\x3f\xbf\x9c\x54\x62\xf2\x6f\x6e\xaf\x6b\xa1\xf8\xdf\x5d\x5e\x9e\x9f\x35\x30\x0f\x67\xb7\xd3\x0f\x95\xc2\xdf\xdd\x5d\x4f\x6e\xa7\x97\x95\xf7\xbe\x9b\x5e\x4c\xae\xff\x23\xfc\xe5\xec\xfa\xfa\xf2\xba\x56\xdf\xdd\xe9\x6e\xf4\x44\xa5\x1b\xed\xe6\x1f\xef\x9c\x0d\xa8\x55\x5b\xb7\x71\x35\xfd\xf2\x01\xbb\xb8\x27\xf2\x6c\xdf\x72\xb4\xe1\xfa\x71\x98\x8e\x03\x37\x86\x69\xea\xa0\x55\xf7\xfc\xf9\xa2\x2b\x43\x97\xf1\xc3\xc4\x9e\x39\xd5\xe6\xcf\x81\x04\xdc\xa9\x00\xba\x5a\x6a\x86\x5b\x4a\xcf\x8e\x43\x9b\x81\x07\x6b\xc5\x3b\xf3\x95\xc9\xf8\xc5\x5b\x6a\xeb\xd8\xd7\x4e\x4f\xe5\xb5\x87\x11\xe9\xb9\xd8\x50\x76\x35\x3a\xa8\xcc\x92\x0d\x24\xb1\x55\x14\xec\xc3\x10\x76\x6f\xba\x61\x56\x4e\xb0\x1c\xbb\x12\xfb\xb6\x87\x2d\xed\x66\xdf\x1b\xda\x7e\xaa\xa4\xd9\xf6\x1a\x55\xcb\x80\x76\x03\x65\xd6\x90\x76\xdf\x72\x7d\x3f\xb4\xdd\x54\x49\xb3\xdd\xa0\xf6\x3d\xa9\xdd\x60\xf0\x2e\xda\x69\x74\x06\x08\xb1\xb0\x98\x6a\xf3\x5c\x8c\xbf\x7b\x25\xc8\x9f\xdd\xaf\x8d\x66\x03\xbc\xec\xf5\x32\xe3\xfd\x1d\x19\xd0\x1a\xb7\x5d\x79\x8d\x55\xfe\x06\x9e\x42\x0f\x17\xb9\xe0\xf7\xb1\x7a\xa4\xf9\xa8\x23\x43\x59\x2f\x69\x5e\x1d\x20\x23\xc3\xed\x11\x51\xe4\xe4\x81\x42\x94\x9a\x2f\x1e\x60\x72\x09\xf1\xa2\xa3\x0e\x16\xa4\x5e\xae\x13\x11\x01\xf5\x93\xf4\xb3\x33\x93\xa8\xcd\xb7\xa5\x6f\x36\xb3\x6a\x5a\x44\xd4\x21\xd0\x55\xa7\x43\xa3\x73\x5d\x07\x13\x4b\x71\x40\x65\x0e\x60\xba\x45\x0e\x77\x26\x18\x90\x44\x82\x31\x39\x37\x17\x9e\x5c\x44\x89\x16\x41\xc6\xb8\xd6\x13\xfb\x97\xc3\x52\xa1\x14\xbc\x68\x35\xbb\xf6\xb6\x87\xf3\xa8\x28\x79\xca\x20\x5c\x89\x18\x18\xd1\x56\x89\xbf\x44\x5c\x62\x68\x4c\x21\x36\x19\x44\xf5\x87\x31\x1d\x33\xf9\x33\x00\x25\x70\x0a\x5e\x69\xf6\x3d\x40\x1e\xec\xcb\x74\x08\x6f\x78\x01\x67\xf1\x1f\xb1\x0e\xf7\x6c\x3c\x93\x95\x0c\x4c\xc1\x57\x95\x64\x4c\xe3\x99\xb4\xd9\x3a\x62\x15\xe9\x31\xdc\xf8\xc6\x2a\x5f\x1d\x53\x2e\x75\xb3\xd8\xd5\xfd\x42\xa9\xfb\x63\x21\x8f\xc1\x26\x55\x1c\xf3\xb2\x50\xc7\x00\x97\xc2\xf9\xd7\xc7\x36\xe9\xb1\xcd\x1a\xad\x8f\xd7\xc9\x83\x80\xff\x1b\xaf\x8b\x4d\xfa\x2f\x3a\x5b\x7f\x3a\x5a\xa5\xf9\x91\xf9\xf6\x28\xfc\xf6\xc8\x7e\x7b\x64\xbf\x3d\x32\x9f\xe1\xff\x65\x5b\x74\xef\x88\x4f\xdc\x9c\x65\xa3\x99\x4c\xa4\x16\x79\x01\xda\xcf\x63\x9e\x14\x3e\xd5\xd5\x96\xbd\xfa\xcf\xff\x64\xe3\x9c\x3f\x62\x44\xec\x3b\x5e\xf0\x2b\xb4\x2f\xfe\xfd\xef\xaf\xc0\xa1\x8a\x51\x4c\x19\xcf\x7f\x29\x45\x31\x93\x5a\x98\x4d\xc8\xfe\xd7\x4c\x82\x07\x76\xb3\x9d\x17\x68\x77\x45\x1b\x64\xac\xd9\xb7\x58\xe6\x14\xd9\x48\x63\x6d\x4a\xea\x08\x27\x48\x78\xda\x92\xa5\xbf\xc3\x44\xff\x4b\xfa\x8e\xde\x1f\xb0\xad\x7f\x49\xab\xbb\xda\x26\x5b\xd2\xbf\xa4\x70\x80\xa6\x8a\x5b\xb0\x16\x73\x8b\x17\xee\xc9\xd4\xb8\xb6\x3d\xd2\x80\x06\xbc\xa8\x9b\xbe\x7d\xaf\xdc\x20\x23\xba\xb5\xdc\x37\xc4\x08\xf8\x0a\xbc\x1f\x02\xbc\xe7\x89\xd9\x21\x37\x68\x09\x05\xcd\x0d\x7b\x0e\x3a\x29\xb9\xce\x5d\x79\x68\xb8\xd0\x5f\x9f\x1c\x1f\x8f\xd8\x4a\xc3\x7f\x16\xbf\xc0\x7f\x00\x3d\xf4\x5c\xa4\xbe\x8d\xc1\x74\x40\xb8\xe6\x2c\xef\x9f\x89\xe7\x40\xd1\x7d\x0e\x1e\xf9\xda\x32\xfd\xae\x94\x71\x2a\x7c\x68\x63\xc5\x25\x92\x2a\x33\x93\x76\xa2\x9a\x99\x87\x60\x8e\x17\x22\xe2\x46\xf0\x35\xea\x46\x70\xa9\x5a\x16\x42\xa2\x35\x2c\xf7\xd9\x1e\x39\x5a\xae\x40\x2d\x06\x28\x24\x2f\x08\x72\x2e\xe0\x47\xa8\x04\x88\xd9\x47\xf5\x47\x6c\xab\x4a\xe2\x18\x07\xe6\xdc\x58\x44\x29\x24\x72\xb0\xec\x41\x2c\x17\x45\x99\x4b\xc6\x59\xc6\x65\xcc\x35\xac\xc0\x65\x0e\xde\xce\x9c\xf1\x66\x43\x47\x08\xc7\x55\x65\x01\x9c\x58\x88\x2c\x08\x47\x02\x49\xe0\x83\x36\x8f\x82\x46\xe0\x99\x00\x5c\xd4\x8d\x0f\xc7\x33\x69\xf3\x11\x12\x16\x0e\x2d\x65\x91\xca\xb6\xc4\x78\x54\x1f\xf4\xc4\x5a\xce\x68\xb8\x47\x1e\x6f\x52\x7f\x77\xc4\x92\xaa\x6b\x0d\xf8\xe6\x8b\x20\xc5\xbb\x4d\x92\xff\x5a\xc8\x48\xc5\x22\xd7\x6f\xcc\x36\x4c\xdc\xbd\x03\xf5\x87\x44\xfb\xc9\x00\x29\x65\x0e\x37\xb2\x16\x9a\xe2\x5d\x82\x29\x33\x3a\x15\x86\xf2\x36\x3d\x67\xff\x56\xf9\xad\xa3\x60\xda\xda\x4b\xff\xfc\xac\x88\x98\x10\xd7\x69\xef\x9c\x4f\x37\x41\xe0\x96\x0d\x25\x2e\x16\x8a\x3a\x0e\x29\x27\x36\x9f\x76\x52\x40\x86\xcc\x5c\xe8\x62\x26\xe9\x04\x1e\xb1\xa5\xe0\x46\xcf\x1b\xb1\x48\x3f\xa0\x30\xc6\xe3\xbe\x78\x54\x1e\x83\x63\xd3\xdb\x00\x18\xb6\x52\xb8\x37\x12\xe3\x6b\x9c\x22\xb0\x11\x60\xd0\x75\x43\x77\xaa\x0a\x0c\x56\xab\x40\x7c\xc2\x38\xd8\x6c\x29\xf5\x0c\x6b\x61\xb2\x1e\x18\x89\x2d\x3a\x8a\x59\xbd\x1d\xf8\xc0\x08\x1e\xec\x1d\xc2\x40\x02\xe1\x08\x1a\x37\x61\x69\x71\x9f\x79\x1f\x6e\x48\x59\x0f\xb6\x99\xae\x4d\xb5\x63\x20\xa0\x01\x4f\xb3\x5b\x98\x4f\xf7\x1a\xac\xb4\xc8\x6d\x2a\x17\xec\x2b\x12\x4c\xae\x93\x3c\x3e\xca\x78\x5e\x6c\xed\xf2\x4d\x93\x05\x64\x80\x48\x93\x7b\xc1\x26\x79\xae\x1e\x9f\x7b\x14\x3a\x45\x4b\xd7\x0d\xfb\x10\x24\xfb\xd0\x5b\x7e\x2b\xbd\x6c\xdd\xdc\xf1\x34\x2a\xdb\x2e\xc3\x47\x6b\x3d\xb9\x28\xf2\xed\xdc\x2c\xc4\x4d\xd6\x29\x29\x7a\x05\x4d\xf4\x57\x72\x87\xb1\xe4\xd6\x4c\x18\x9d\x2c\xb9\x95\x59\xfd\xed\xb0\xe4\xb6\x10\xe0\x36\x59\x72\xa7\x17\xd3\xdb\xe9\xe4\x7c\xfa\x7f\x6a\x25\xfe\x3c\x99\xde\x4e\x2f\xbe\x9f\xbf\xbf\xbc\x9e\x5f\x9f\xdd\x5c\xde\x5d\x9f\x9e\xed\xa6\xbd\x6a\xb6\xde\xab\xe0\x47\x2c\xac\xe7\x84\xdd\x06\x40\x0d\x0c\x36\x20\xfd\x9b\xf2\xe3\xc2\xaa\x32\x9b\x39\x91\xab\x11\x6c\xd4\x13\x76\x96\xe7\xd3\x0d\x5f\x89\xab\x32\x4d\x01\x4e\x85\x91\x3d\xa7\xb9\x80\x8b\xe7\x88\x5d\xa9\x78\x1a\x7c\x07\xe1\x88\xad\xdd\x80\xfa\x79\x1c\xe7\x42\x6b\xac\x7e\x44\xf5\x07\xe0\x21\x17\xea\x48\xe0\x39\xfe\xc0\x93\xd4\xdc\xdf\x4e\xd8\x77\x3c\xba\x57\xcb\x25\x86\xcf\x8c\x5c\xe0\x14\xfb\xa5\x54\x05\x67\xe2\x53\x04\x54\x6f\xed\xeb\xe4\x5c\xad\x7e\x05\xa8\x72\x0f\xf7\x54\xc7\x25\x05\x52\xdd\xcd\xdb\x8f\xf3\x76\x41\x40\xbd\xfc\x80\x9f\xbe\xc7\x2f\xdb\x0d\x94\x45\xfa\x0c\xe1\xf1\xe7\x6a\xd5\x9e\x78\x08\xb4\x6b\xca\x96\x44\x8e\x84\x88\xd8\x45\xd4\x8a\xe9\x44\xde\xcf\xe4\xcf\x6b\x21\x99\x2a\x73\xfc\x09\xae\xf9\x46\xcd\x4c\x4b\xbd\x16\x90\xa6\x7a\xc4\x1e\x05\xdb\xf0\x2d\xaa\xcd\x70\x27\x70\xd9\x52\x60\xc9\xc0\x29\x62\xbe\x4e\x13\x69\xa4\x45\x96\xd8\xb8\x84\xfa\xd4\x3f\xc7\x8d\xcb\x12\x1d\xf2\xc3\x79\x88\x77\x9d\xa7\x15\x7c\x1e\x98\xca\x3c\x6e\xd2\x02\x84\x48\x72\x43\x52\x59\xa5\xee\xcb\xcc\x53\xa2\xbe\xb2\xce\x49\x18\xee\x07\x95\xc4\x2c\x2e\xb3\x34\x89\x9c\xdc\x7d\x54\x79\x27\xef\x33\x06\xd0\xf4\x3f\x75\xea\x61\x61\xbb\x3a\xd6\x12\x9d\x13\x20\xe9\x76\x30\x40\xbf\x30\x07\x36\x4b\x64\x94\x96\x90\x66\xae\xd4\x22\x3f\x72\xa9\xa3\x5d\xac\xdf\x6f\x9f\x24\xdb\x93\x70\x1e\x1e\xd6\x16\x06\x9d\xa7\x6a\x95\x44\x3c\x0d\xc1\xcd\x1e\x15\xe1\x58\x78\xed\xb6\xa7\x64\xc2\x10\x07\x61\x1b\xd4\x49\xa4\x95\xe5\x02\x88\xa0\xe7\x20\xca\xe7\x24\xee\x0e\x69\xf7\x92\x99\x0b\x3a\xb6\x2b\xe4\xc8\xb5\xee\x05\x7b\xc2\xf9\xba\x6d\x26\x36\x50\x31\x31\x85\x3f\x53\x8f\x52\xe4\xa0\xc1\x02\xec\xc3\xf4\x54\x2a\xd0\x4d\x5c\x76\x36\x87\x4f\xb6\xd9\x09\x97\x0e\x88\x8d\x91\xb3\xab\xe4\x41\xc8\xcf\x4f\x6a\x1e\x54\x10\xf1\x68\x2d\xe6\x56\x2f\x7f\x6e\x91\xe5\x0e\x80\x81\xc2\xca\xa6\x49\x09\x45\xa9\x73\x6f\xc2\xd5\x09\x5b\xdc\x94\x5d\xe8\x48\xdc\x11\x91\x65\x1a\x31\x8f\x45\x74\xff\xd9\x45\xb3\x07\x59\xd9\x86\x30\xce\xde\x89\xe8\x9e\xdd\x5d\x4f\x31\x1a\x38\x29\x98\x11\x05\x7a\xed\xd3\x3e\x75\xde\xdd\x0a\xbe\x7a\x01\x0a\xab\xbe\x79\xab\x7c\xaa\x02\x97\xad\xcf\x34\x88\x00\x51\x10\x2f\x69\x84\x24\xc5\xd2\x00\x10\x8c\x17\x36\x9b\x11\x18\xe2\x99\xde\x40\xf2\xa2\xb2\x08\x32\xfe\xa5\x7c\x21\xd2\x0e\xe2\xce\x4c\xc5\x73\xeb\x27\x39\x14\xcc\xd3\x28\xcb\xda\x31\xc8\xeb\x68\xe3\x18\xb8\xd1\x58\x6f\xe9\x45\x76\xff\x8d\x0e\xe8\x35\x54\xc8\x1f\x0e\xf7\x7a\xae\x21\xbc\x7b\x99\xac\xac\xb7\x2d\x59\x52\x8a\x25\x0c\xe8\x37\x7a\x30\xc8\x4b\x53\xd2\x95\x8a\x09\xa6\xe7\xb8\xf0\x8c\x16\x24\xc8\x7a\xe2\x71\x15\x61\x13\x2c\x0e\x10\xea\x35\x3b\x42\xf0\x98\xa9\x25\x59\x13\xb3\x2c\x4d\x80\x19\x3a\x46\x12\x7a\x60\xcf\xd0\x55\x74\x7c\x58\x9a\x6d\x6c\x40\xf2\x71\x65\x81\x78\x5d\xc9\x78\x41\x60\x60\x04\xc3\x1c\xd8\xe0\xe6\x0f\xbc\x9b\x4c\xed\xc5\x33\xa6\x75\xb4\xc7\x79\x93\xab\x94\xb0\x15\xd2\x3e\xb2\x15\xe0\xb1\x6e\x03\xf2\x23\x9e\x46\x25\xf9\xc9\x20\x5d\xbe\xcd\x82\xbf\x1b\x41\xe8\xbd\x7e\x66\xa2\xab\x56\xff\xba\x92\x79\x68\x76\x45\x17\xa0\xf5\x54\x9b\xc2\x6e\xf3\xe2\x2a\x55\x0b\x58\x39\xdd\x28\xc1\x1d\x27\x96\x11\xd7\x79\x12\x0f\xd1\x77\xec\x98\x5c\xba\x4f\x77\x35\xf0\xd2\x9a\x7e\x5c\x4d\x76\xdd\x33\x4a\x64\x50\x63\x6e\x1c\x46\x81\xb0\xa4\xac\xaa\xd5\xeb\x49\x41\x69\x3c\x60\x59\xb9\xf3\xa9\xc3\xce\x50\xed\xcb\x41\x13\xdd\x64\x8a\xd9\x33\x96\x9e\x5c\x66\xf7\x24\x1f\x40\xf7\x81\xa2\xcc\x71\x7e\x74\x5b\x16\x65\x2c\xe2\xf9\x13\xfa\x70\x46\xdf\xf6\xeb\x8b\x1b\x69\x6c\x1e\xd8\x00\xe5\x91\x51\x15\x62\x9e\xc7\xbe\x1f\x23\xd8\xef\x11\xcf\xc0\x0c\x0f\x6e\x8d\x87\xb7\x63\x5b\xc7\xb5\x8f\x2e\x32\xf2\x12\x63\xfe\x11\xbf\xad\x5a\x72\xe0\xec\x5b\x47\x6e\x91\x22\xbc\xdb\xac\x1c\xbf\x5c\x2b\x71\x37\xbd\xd6\x6e\x7d\x85\x59\x01\x7e\xc8\xe2\x7a\x09\xd9\x51\x16\xca\x7b\x7b\xa0\x3f\x53\xa0\x1d\x0e\x23\xfa\x40\x40\x4e\xe3\x0e\xa4\x88\x55\xbf\xad\x10\x1a\x80\x3f\x1e\x84\x80\xce\x72\x61\xfd\x86\x5b\x51\x38\x5e\x87\xd4\xe6\x15\x04\xb7\x98\xeb\x75\x95\xd8\xc6\x72\x57\x38\x32\x32\x70\x62\x91\xaa\x1f\xa9\x4d\xa6\x24\xc0\x92\x30\x4a\x6d\x26\xa9\x70\x9b\x1d\xde\x79\xd6\x2a\xa1\x8e\x23\x32\x68\x62\xe0\x8c\xd0\x2a\x7d\x20\x17\x6a\x90\xc4\x04\xf2\x4a\x9a\x06\x9e\x9a\xbb\xa1\xca\x91\x60\xcb\x9e\xec\x10\x09\x50\x4b\x91\x9e\x8b\x55\xa2\x0b\x11\x46\x87\x86\xdf\x3f\x5b\x36\xdb\x8a\xf1\x64\xd7\xd0\x77\x66\xb3\xdd\x77\x0b\x32\xf2\x69\x40\x7b\xb6\x99\x88\xa7\xee\xbb\xdd\x8b\xa1\x16\xc0\xef\xc5\x61\xe5\xbc\xc3\x35\x80\xb7\x3f\x8d\x54\x5f\xda\xa5\x1f\x71\x93\x44\x24\x4c\xdc\x03\x1a\xcd\x14\xad\x4a\x9e\x73\x59\x08\xa1\x67\x92\x1c\xcf\x48\x59\x17\xb2\xb2\xd4\x80\x90\xee\x6e\x13\x29\x5d\x20\x03\x14\x7c\xb2\xe4\x49\x5a\xe6\x9d\xe6\x06\x5c\x95\x4f\xa2\x9d\xd8\x35\x4a\xa7\x50\x2c\x6b\x9b\x34\x17\xc0\x1c\xec\x22\xc7\x9a\x52\x77\x1b\x57\xe3\x7b\x3b\xba\x60\x0f\x97\xfe\xf3\xed\x6c\xcd\x1d\x31\xcd\xdf\xe8\x79\xa6\x06\x48\xbc\x1f\xbf\xd1\x57\xaa\x23\x1a\x5c\xff\xd2\xb0\x89\xee\x80\x4f\xfc\xd2\x95\x90\x85\xeb\x7b\xf0\x3c\xee\x33\xc5\xf4\x62\xe3\xdc\xeb\x9f\xec\x94\x5d\xb0\x6a\xd7\x5c\xc6\xa9\x51\x79\x79\x51\xe7\xbd\x76\x38\x6f\x73\x25\x2a\xac\x70\xec\x0e\xea\x83\x18\x99\x79\xd4\x08\xb0\xdc\x37\x4e\xb5\xc8\xcc\x9d\x58\xca\x5a\x2d\xd5\x78\xc9\xb6\x38\x1d\xaf\xc3\x50\x1a\x64\xb7\x61\x7f\x75\xfd\xe5\x2c\x6c\xfb\x67\x52\x5f\xaa\x7b\x6d\x99\xac\x7e\x03\x86\x84\x0f\xcd\x23\x21\x22\x99\x43\x07\xb5\x8b\x6e\x38\x50\xea\x40\x20\x99\x91\xda\x21\xe3\xf8\x4c\x52\x3a\x78\x44\x17\x80\x5b\x19\xf9\xd6\x34\x7b\xeb\xa2\x8b\xdf\xfe\xce\xb2\x6d\x6d\xd9\x12\x16\x15\x50\xda\xa9\x28\x2a\x73\x70\xfd\x93\x79\x92\x09\x3c\x84\xf5\x20\x22\x19\x50\x3d\x1c\x60\x0b\xf5\xc4\x36\x35\xc9\xd9\xa3\x2b\x9d\xba\x05\x33\x24\x26\xb6\x77\x87\x3e\xe5\x2b\xcb\x75\xc1\x74\x21\xb2\x56\xf1\x5b\xd1\x2e\xb7\x99\x98\x48\xa9\x8a\x7a\x7c\xca\x60\xfd\x92\xbb\x52\x7a\x6e\x9d\x01\x87\xd1\x24\x30\x19\xfd\xe1\xe6\xf2\x82\x65\x7c\x0b\xd8\xc7\x42\x31\x7c\x15\x08\x47\xeb\x82\x6a\xdf\x0c\x54\x3b\x5f\x95\x2a\x38\xa6\x16\x44\xdd\xee\x9f\xa0\x1a\x9b\xca\x22\xac\x19\x5a\x92\x46\x66\xe5\x2a\x3d\xca\x52\x2e\x03\x78\xbb\x1e\xb3\x5a\xf5\x21\x9e\xc1\x79\x36\x09\x31\x06\x0d\x00\x7b\x05\xad\x85\xbc\x6c\x05\x40\x03\xef\x8e\x5d\x50\x87\x41\x18\x3a\x65\xc4\x4e\x60\xe7\x07\xcc\x02\x83\x39\x11\x90\x3d\xc3\xc2\x32\x1c\xb2\x87\x6b\x00\xdd\x76\x32\x80\xf3\x28\xe5\x5a\xef\x44\xe9\xbc\x08\x95\x7c\x10\xb5\xb8\x5f\x7c\x55\xdb\x89\x30\x42\xe0\x36\xc1\x7b\xa9\x7b\x0c\x6c\x09\x56\x74\xf9\xa4\x6f\x81\xbe\x1f\x64\x83\x20\xe8\x03\xf1\x45\xc1\xf7\xc8\x04\x79\x2f\xb6\xd6\xc2\x45\xa2\x8a\x6f\xc4\xc8\x19\x5b\x9d\x35\x31\x00\xfd\x35\x0b\x9e\x49\x40\xc5\xbe\x0f\x9b\xc7\xde\x2b\x35\x42\x7c\x26\x55\xce\xb1\x58\x1e\x22\x9c\x66\xf2\xbd\x52\x63\xee\x2e\xb1\xd4\x7e\x12\x37\xf5\x0a\x09\x15\x05\x98\xc3\xda\x74\xf6\xdf\x9b\x3f\x24\x12\xd3\x13\x26\x1b\x73\x81\xa2\x71\x82\x15\x05\x0d\xb2\xd9\xf0\xd5\xa3\x66\x31\x52\xca\x94\x89\x5e\x83\xdb\x05\xfd\x9c\x50\x3f\x1d\x29\x08\xc8\xca\xb9\xd4\x66\x0f\x83\xab\x46\x3c\x08\xb2\xd7\x56\x30\x06\xd3\x77\xe7\x0e\xb6\x84\xfb\x92\x52\x77\x74\xec\xb6\xe0\xd2\x71\xc8\xe5\x1c\xe0\xe6\x03\x08\xed\xc8\xc0\xf9\x81\x67\xbb\x82\x61\x0f\x2e\x71\xdf\x2c\x39\x42\xad\xfa\x8d\x0a\x32\x99\x43\x0e\xc3\x4a\x44\x6c\x38\x7a\x77\xf2\xc0\x13\xa7\x95\xd3\x7e\x7f\xca\x9d\xde\x06\x86\x81\xa2\x62\xff\x71\x13\x70\x5b\x3a\xc8\xa0\xbb\x0b\x1a\xc1\x0e\x19\xe2\x80\x94\x0f\xb7\xf4\x98\xdd\x08\xc1\x3e\xc2\x48\x99\xca\x3e\x52\x06\x52\x40\x41\x17\x3c\x69\x4d\x10\x07\x6f\x4f\xe5\x52\x1d\x26\xff\xf3\x55\x03\x65\x7b\xd0\xa8\xb4\xb7\xf3\x50\x1c\x2f\x58\xfa\xe5\xcb\xd2\x8a\xf4\x3a\x18\x6a\x73\x7d\xe5\xed\x4d\x14\x6c\x6c\x5b\x6a\x54\x32\x98\xe2\xa7\x10\xd7\xd5\x16\x89\xe9\xe5\x08\xc9\xd8\xef\xa5\x7a\x94\x28\x8f\xa9\x26\xf6\xda\xec\x3f\xd0\x59\xd0\x2f\x84\x9a\x60\x89\xd2\xf0\x0d\xb0\xc3\x4f\xdc\xdf\xec\x06\x5d\xe0\xd8\x66\x48\x1d\xa6\x41\xdf\xa5\xa4\x5f\x70\x80\xbf\x9e\x8c\xd8\x77\x23\x76\x3a\x62\xe3\xf1\xf8\xcd\x88\x09\x1e\xad\x6d\x8b\xf0\x13\x14\xfd\x05\x5f\x99\xb2\x29\xed\xcf\x32\xa8\x00\xd2\x03\x1a\xfd\xc4\x92\x20\x72\xff\x56\x60\x55\xb3\x5d\xc0\xd0\x6c\x8a\x23\x23\xb8\x50\xb4\x56\x89\x6f\x14\x20\xcf\x45\xa4\x72\x8b\x5d\xd7\x85\xca\x2d\x0e\xf7\x81\xe7\x3c\x91\xc0\x58\xc1\x9b\x51\x08\x54\x73\xc0\x59\x2f\x3e\xf1\x0d\xf4\x3f\x91\x8e\xb6\xd7\x0c\xd3\xad\x6b\x7f\xb1\xcd\xc8\xcf\xf6\x98\x27\x45\x61\x14\x32\x3d\x93\x37\xec\xe4\x5b\x36\xc9\xb2\x54\xb0\x09\xfb\x2f\xf6\x1d\x97\x5c\x72\xf6\x1d\xfb\x2f\x76\xca\x65\xc1\x53\x55\x66\x82\x9d\xb2\xff\x32\xc3\x66\xca\xbb\x50\x46\x03\xda\x8e\x18\x67\xb2\x4c\x51\xd1\x7b\x6d\x31\xae\x6f\x5c\xbf\xb8\x9f\x9d\x85\x28\x1e\x85\x90\x4c\xab\x0d\x1d\x85\x7f\x72\xa7\xbf\x4e\xe4\x2a\x15\x05\xad\x87\x2a\x1a\x19\x2b\x38\x82\x9e\x9e\xcc\xa4\xb3\x53\xff\xc9\xb4\xf8\x4f\xec\xbf\xd8\x45\x99\xa6\xa6\x49\x46\xd0\x98\x85\x74\xc2\x6c\x74\x98\x90\xe3\xc7\xe4\x3e\xc9\x44\x9c\x70\x88\x0f\x33\x7f\x1d\xdf\xc2\x6c\xcf\x4b\x4f\x05\x1a\xee\x69\x97\x8e\xed\x10\xd1\xf3\x22\x5c\x13\x2e\x59\x60\xa8\xad\x74\x82\x50\xc2\x4f\x87\x2b\xc1\x9e\x00\x99\xf6\x03\xdd\x51\x30\x95\x5e\xe8\xa0\x6c\xaf\xdf\x65\xfd\xca\xcc\xbf\x5a\xe9\x3f\x7a\x65\xff\xda\x35\x1e\xbe\x8d\xa0\x9c\xe2\xe4\xf8\xe0\x4c\xb8\xc8\x40\x2c\x21\xee\xbb\x2d\xa4\xfc\xb0\x65\xe3\xb5\x13\xdd\xdb\xe6\x2a\x8d\xda\x68\xc1\x57\x23\x96\xb9\x3c\x52\x76\x53\x39\xc7\x36\xee\x63\xcc\x99\x40\xca\xe6\x6b\x0b\x20\x32\x6b\x99\xe2\x0f\x8f\x63\xb5\xe1\x89\x7c\x03\x75\x58\xea\xbc\x3d\x03\xd5\x72\x5d\xd9\x3f\x42\xb7\x7c\x27\x9a\xb1\x9b\xda\xbf\xaa\xec\xd4\x52\xb8\xb5\x6d\x87\x03\x73\x98\xf9\x0c\xa7\x9f\xf1\x3a\xf4\x53\x63\x89\xf6\xce\x7d\x40\xf9\xc6\x2a\xec\x29\xa0\xcb\x7b\x06\xb9\x5e\xbe\x75\x97\xb9\xec\xa7\x6a\x8a\xd7\xca\x10\xab\xa4\x57\x2e\xdc\x5a\x63\xef\xe8\x26\x86\x71\xcf\x46\x4c\x26\xe9\xb1\x11\x95\xc7\x17\x4a\x0a\xc6\xb5\x4e\x56\xc8\x7a\x07\x06\x35\x4c\x22\x6b\x95\xb2\xdb\xea\x95\x21\x10\x41\xa0\x9f\x99\x26\x21\x62\xba\x30\x52\xd8\x4c\x41\xba\x9d\x49\xf3\x05\x69\x04\x10\x3d\x95\x38\x72\x74\xac\x8d\xb8\xc7\x6d\x5d\x74\x20\x06\x85\xb7\x2c\xb0\x5d\xd4\x0c\x07\x2c\x38\xda\x89\x07\x78\xdc\x2e\x02\x62\x50\x2a\xcd\xb2\x46\x21\x9c\x66\x21\x52\x25\x57\x66\x55\x74\x09\x61\x90\x02\xcf\xd4\x04\x2c\xac\xb3\x05\x46\x59\xa1\x57\x68\x4a\x8c\x9e\x92\xc4\xde\xa4\xa6\xcb\x85\xd1\xe3\x9c\xb7\xc7\x69\x23\xd4\xb9\x2e\x9e\x8a\xc3\x60\x4b\x77\x46\x06\xab\xdc\x02\xe7\x9c\x27\x11\x15\x17\xcf\xe1\x84\x3d\xea\x42\x68\xe4\x83\x4c\x39\x1d\x9e\xed\x11\x53\x39\xd2\x77\x5a\x0f\xb6\xe3\xdf\x6a\xd6\xde\xbd\xa5\x77\x46\x7b\xb4\xdb\x3e\xc9\x4f\xda\xe0\x0b\xe9\xb1\x1b\x7e\xcd\xc0\x8f\x3e\xe1\x20\xef\x27\xd3\xf3\xda\x7b\xcd\x70\x90\x96\x98\x91\xdb\xe9\x87\xb3\x77\xf3\xcb\xbb\xdb\xc6\x7b\xa6\x34\xfa\x69\x4f\x44\x48\xe7\xe8\x3d\x07\x26\xfe\x17\xcc\x61\x36\x57\x4b\x4b\x0f\xd0\xff\x78\x6e\x64\x91\xeb\x07\xbd\x2c\x82\xdb\x75\x98\x6d\xad\xb9\x70\x3a\x49\x4e\xe4\x9c\x7c\xad\xfd\x1a\x5b\x1f\xb0\x4b\xf9\x1e\x3f\xbf\x52\x69\x12\xed\x46\x72\xdb\xc3\xd2\x68\x55\x4d\x68\xec\x42\x40\x68\x03\x19\x7c\xa9\x51\x78\x3f\x2b\x44\x54\x78\x2c\x41\xb3\x73\xff\x4f\xa3\x47\xf7\x5b\x60\xd0\x0e\xeb\x86\x0d\x92\x93\x3b\x74\x02\x9c\xec\xc0\x1a\x0d\xc9\x52\x50\xcb\x05\xcb\x2e\xc8\xbc\x88\x93\xcf\xa9\x32\xf2\x70\x3c\x3c\xae\x55\x4a\xf6\x58\x64\xe0\x9e\xc9\x4c\xe4\x91\x02\xd4\x25\x92\xbb\x28\x16\xad\x93\x34\xf6\x19\xc9\x5e\x43\x98\x0a\x80\xc9\xdf\x50\x72\x5d\xe1\xd0\x33\xb6\xf8\x1d\x67\xbe\x5d\x76\xef\x70\x77\x1f\x84\x3c\x7b\x4e\xdc\xf9\xae\x65\xff\x33\xe1\xa3\x71\x28\x88\x33\xaf\x86\x83\x00\xb5\x3f\x6c\xcf\x20\x97\x8e\x39\xec\x29\xd9\x54\xe4\xaf\xcd\x45\x6d\x5e\x69\x99\xd5\x87\x12\x98\xd4\xd1\x8e\x8e\x20\x40\x2d\xa0\x39\x1b\xc1\x51\x13\xf4\xbc\xc6\x34\xa9\x33\xe9\x91\x1f\xaf\x74\xa8\x15\xb6\xce\x33\x5a\xdf\x2d\xb2\x7d\xc4\x5e\x55\x3a\xfa\x0a\x98\xb6\xa5\x82\xfa\xc8\x3b\x5f\x19\x1a\x58\xae\x23\x96\x14\x33\x69\xee\x6c\x66\x65\xe6\x22\x15\x0f\xa6\x75\xa1\x77\x88\xf0\x8a\xd6\x72\x62\xbb\x0d\xc1\x51\xdc\x72\x6a\xd0\xb2\xa1\x4d\x98\x87\x8c\xcd\xe8\x96\x8e\x85\x36\x5a\x2b\xe4\x9a\x12\x9f\xcc\x06\x48\xc0\xf9\x89\xc0\xb6\x58\x48\xdb\x3e\xc0\xbb\x61\x9e\xff\x99\x9c\x2e\x81\xd8\x00\xe8\x14\xe2\x18\x6d\x10\x36\xfb\x90\xa3\xcf\x4c\xc8\x1b\xa4\xc8\x22\x63\x27\x82\x72\x43\xe3\x4e\x12\x0f\x22\xdf\x16\x60\xd2\x87\x71\x95\x82\x17\x6b\x96\x14\x23\xe0\x3d\xb5\x92\x72\x26\x79\x1c\x53\x3c\x38\x16\x17\x5c\x67\x3b\xe7\x99\x9e\x2f\xd4\xc3\x2e\xb5\xfa\x50\xe4\x2e\xee\xea\x2c\xe5\x72\x8e\x27\xc8\xaf\x80\xdd\x0d\xd2\x76\x77\x81\x38\xca\xc5\xdc\x71\xb5\x3d\x4b\x3b\x9d\xbc\xbf\xb6\xd0\x65\xba\xda\x94\x0b\x5b\xd1\xa8\x02\xcd\x5e\x78\x5a\x0f\x67\xa5\x23\xdc\x54\xce\x2c\xb6\xa4\xbf\x14\xf0\xb0\x5e\x5e\xc3\x58\xd9\xd5\xba\x0f\xd7\x6b\x57\xc0\x6f\x15\x79\xd9\x67\xe6\x6b\x67\x48\x7d\xda\x87\x83\xfe\x1a\x1a\xe2\x93\x80\x7f\x7b\x9a\xf5\xb2\xe0\xbf\x4e\x2b\x4e\x13\x04\x68\x7b\x1b\xf8\xf7\x29\x74\x00\xad\xb0\xce\x80\xd6\x9e\x96\x3d\xbc\x05\xaa\x16\x7c\xfc\x73\x7a\x28\x40\x4e\xf5\xb5\xd3\x78\x42\x11\x68\xd7\x98\x4d\x25\xb3\xea\xde\x88\xbd\xc2\x85\xa5\x5f\x91\x01\x9a\x72\xfb\x13\x58\x26\xa6\xdd\x43\x14\x0c\x75\x90\x19\x06\xc2\xf9\xed\x86\x7e\xc0\x9d\x7c\xbd\x2f\x3a\x2e\xdf\x25\x10\x88\xf7\x14\xae\x15\xf4\x21\x2f\xb0\x00\x1b\x47\x12\x98\x42\xa9\xbb\xe0\xcb\xf0\x1d\xb6\xde\x4e\xf6\x9d\xfd\xd0\x0c\x51\x56\xd2\x79\x6a\x9f\x33\x95\xcf\xa4\x2d\x8d\x0c\xd2\x1a\x13\x04\xd6\x8b\x0a\xe2\x82\x48\xe7\x0f\x56\x2a\x40\x01\x6c\x4e\x48\x48\x35\xea\x49\xc5\xeb\x52\x00\x50\x50\x0b\x87\x40\x85\x2c\x14\xbe\x36\xa3\x78\x98\x05\xbe\xc1\x63\xbe\x4e\x3c\x9c\xa6\x66\x50\x92\xc2\xf2\x1c\x07\x31\x7b\xba\x04\xb6\xee\x65\x69\x84\x51\x40\x69\x3e\x93\x66\xf0\xd8\x32\x81\xd8\x0d\x1a\x97\x99\xfc\xa0\xb4\xa5\x88\xd1\x7e\x3c\x2c\xb0\x80\x86\xed\x95\x4b\x8d\x49\x3f\xbc\x83\x43\x9b\x3c\x3e\x48\xf6\xe6\x8e\x16\x08\xd6\x24\x9e\xa7\xad\x2a\x73\xdf\xa9\x88\xcb\x99\xfc\xab\x19\x1e\xb8\x4e\x71\x69\xa7\x55\x2d\x71\x0b\xc3\x0c\x82\xab\xec\x23\x16\xfa\xfa\x77\x6f\x3e\xbe\xc1\xe0\xaa\x52\x43\x36\xe2\x51\xf5\x00\x71\xd9\x2d\xca\x34\x05\x1c\x82\xed\x81\x63\x58\xf2\x55\xec\xc4\xe1\xd1\xa5\x6e\x2e\xab\x2a\x46\x9f\x8d\xde\xcf\xac\x3f\x61\x11\x2f\xa2\xf5\x91\xd5\xe5\x48\x8c\xd9\xd3\x8f\xa6\x0f\xa3\xa0\x8c\xa6\xc5\x5a\x13\x3c\x98\x0b\x67\xbe\x71\x94\xb3\x95\xf5\x62\xba\x00\xe6\xff\xdb\x7a\xb6\x33\xc7\x88\x8d\x8b\x13\x71\x40\x55\x3d\xcf\xbd\x6e\x73\x8d\xfa\x1b\x27\xf9\x48\x24\xdf\x88\x98\xbd\x82\x30\xe0\x57\x76\xf2\x67\x32\x5b\x8c\xd3\xed\xb2\x20\xde\x42\x33\x28\x63\xc8\xca\xb7\xe7\x94\x9b\xc7\xcd\x6b\xd2\x9e\xc1\xee\xbc\x68\xb5\xeb\x3a\x6e\x6c\x5c\x4d\xfd\x15\x16\xb4\x71\xb9\xd1\xb9\xa9\x62\x02\xab\xe9\x41\xb8\xbe\x1f\xb1\x45\xce\x25\x24\x54\x8a\x43\xa5\xca\xef\x4e\xb8\x3c\x23\x29\xa0\x8d\x0b\x94\x3c\xdd\x42\xfc\xcf\x68\x26\x91\x41\x11\xa8\xf6\xb7\x51\x9a\x44\x6c\x95\xf3\x6c\x5d\xd3\x83\xc4\x83\x90\x05\xe4\xe5\xbe\x16\x5c\x1f\x86\xd5\xc8\xeb\x25\xb0\xde\xde\xb4\x89\x84\xdb\x07\x97\x35\xce\x6b\x68\x5e\xc7\xd1\x02\xf8\x4c\x11\xcf\x87\xf1\x5d\xed\x65\x65\xae\x70\x7d\x12\xf1\x1c\xf8\x9f\x4d\xe7\x98\xad\x75\x1f\xf8\x01\xc7\x95\xa8\x98\x2c\xa2\xf7\x50\xc0\x86\xa3\x76\x3a\x88\xa0\x77\x5a\xd5\x22\xb9\xe7\xac\xf2\x76\x73\x72\xfb\xa1\xa5\xc2\x86\x41\x38\xc1\x31\xa2\xbc\xa9\x40\xde\xc9\xfe\x58\x2e\x54\x6a\xd9\x4f\xa7\xef\x98\xca\x21\xf1\x50\xa1\xe8\xa7\x24\xee\xd2\x0e\x12\x19\x8b\x4f\x07\x51\x10\xed\x3e\xe8\xad\xda\x6c\xaa\x09\xf2\xdb\xd4\x3b\x0b\xd2\x29\x17\xe6\x10\x2e\xec\xcd\xb8\xf1\x96\xae\x43\x95\x27\x69\xb1\x06\xfc\x30\x86\xe8\xf8\x41\xdd\xf0\x2d\x8b\xd6\x5c\xae\x02\xd3\x04\xc0\x39\x45\xa6\x72\x4c\xd0\xfb\x00\x5c\x9f\x2a\xb7\x14\x0f\x44\x5c\x40\x71\x42\xce\x8d\x81\xf0\x7c\x65\xd9\x09\xf8\x6a\x95\x8b\x15\x84\xb1\xce\x64\x85\x7a\x05\x78\x4e\x6d\x6e\x20\xac\x67\x17\x73\xc5\xf3\xd0\x3f\x75\xdd\x06\x8b\x7c\xeb\xe2\xfe\x29\xbb\xb5\xdf\xcf\xf5\x61\x1d\xb1\x44\x8c\x47\xec\x2b\x1f\x92\x20\x22\x25\x1d\x71\x40\x47\xd4\x78\xcd\xe4\xcf\xf6\x5c\x1d\x9a\x3c\x51\xed\x6d\x87\x67\x8d\x1c\xd9\xad\x8b\x66\x27\xf3\x42\xc1\x8b\x72\xc0\x19\x74\xca\x0b\x9e\xaa\xd5\xa9\xf9\xf8\x06\xbf\xdd\xb5\xae\x4f\x31\x5e\xc0\x72\xf4\x99\xf7\xcd\xc9\x69\xea\xf6\x1c\xfe\x6d\x63\xbd\xd7\x80\x9c\xaa\x6e\x03\xf2\x73\xa8\xea\x96\x88\x69\xbf\x0d\x39\xed\x20\x17\xda\xd1\xa7\xa1\x26\x62\x8b\xea\xa7\xc0\x24\x5d\xbf\xc6\xb6\x48\x80\x2c\x57\x71\x19\x89\xd8\xec\x5c\xb8\x0f\x21\x1e\xca\x71\x1c\x55\x84\x64\xdb\x41\x5b\x21\x6a\x83\x53\xf7\x73\xd9\x1c\x7a\x71\xe3\xbb\xe1\xbf\xeb\xb0\x37\x58\x8d\xaf\x6d\xd0\xc3\xfd\x89\xe3\x94\x0f\x3c\xa7\x5c\xf5\x55\x46\x7b\x95\x27\xab\x44\xf2\x42\xe5\xec\xb5\x63\x32\x78\xe3\xd2\xe0\x75\x6b\x08\x03\xc5\x44\x65\x88\x50\x4c\x7c\x56\xc5\xa3\x6d\x91\x9a\xb7\x74\xc1\x37\x59\xc8\x11\x0d\x56\xe0\x60\x64\x52\x1c\x04\xa7\x9b\x80\xed\x34\xd1\x3e\x6a\x77\x26\xc9\xe3\x80\xf3\xa6\xf2\x30\xc9\x41\xe7\xd9\x9c\x95\xc5\xfc\x89\xbc\x67\xf8\xf1\x30\xc3\x13\x81\x20\x3e\xf0\x6c\x37\x93\x14\x27\x93\x03\x86\x2d\x92\x39\xc2\x6b\x2a\xd5\xf5\xb9\x3b\x8d\xd0\x40\x66\xeb\xba\xe3\xfe\xfa\xdc\x3a\x8a\xfc\x7d\xb0\x72\xc1\x82\x89\x40\x4a\x5d\x0c\x03\xc3\xab\xbd\x13\x6b\xe6\x14\xb7\xf4\x53\xa7\xa9\x2a\x63\x46\x42\x8d\x40\x00\xf9\x18\x4f\x47\xe0\xb8\x1e\x8f\xbb\xc2\xda\x06\xa6\x37\x77\xf2\x07\xbe\x6b\xdf\x81\xf0\xac\x43\x02\xef\xdc\xfa\x34\xb2\x2f\x36\xf5\x34\xd2\x30\xf7\x4e\x1c\x0f\x9a\x7b\x67\x05\x07\xc2\xcd\x61\x06\x52\xb8\x8f\x26\x71\x0a\xfb\x2d\x74\x20\xb4\x50\x82\x57\x1c\xb3\xfa\xfe\xe0\xea\x2c\x0b\xc5\xee\xaa\x32\x9e\x0b\x59\xcc\xa1\xc6\x61\x95\x41\x25\x57\xf0\x79\x45\x61\xea\x65\x08\xfe\xf3\xad\x42\xfb\xbe\x65\xd7\xfa\x0b\xbb\x21\x9b\x96\x91\x57\x09\x40\x88\xf5\x3d\x7b\x9d\x00\xe2\x29\xf0\x85\xba\x89\xeb\x98\x2e\xea\xd0\x13\x46\x2f\xe8\x50\x45\xb4\xf7\xea\x90\x6f\x3d\xb8\xaa\xa1\x14\x32\xef\x11\x27\x80\x11\xb5\xf6\xb7\x20\xe3\xc6\x45\xe5\x6f\x60\x47\x36\xf3\x97\xb2\xbf\x89\x5c\xf9\xf8\x2f\x34\x56\x85\x05\xef\xd4\xd7\x9f\x9e\x2c\x1c\xf5\x71\x4c\x53\x1d\xe6\x69\x85\x5f\x88\xc0\x0c\x2d\x0a\x8b\xad\xbd\x8e\x74\xb8\x90\x32\x11\xcd\x3b\x92\xf2\xf4\x6a\x4a\x70\xf1\x0c\x93\xec\x24\xb5\xc3\xcc\x6e\xd0\x63\xb0\x57\x50\x60\xd5\x86\x67\x84\x2e\x24\x20\x79\xdd\x79\x33\x86\x4e\xfc\xf9\x4f\x7f\x19\x27\x1d\x21\xde\xd0\xf4\xa1\x60\x2d\xd7\xf8\xf7\x79\x22\x64\x0c\xce\x58\x1e\x37\xf3\xc5\xc9\x8a\x75\xbe\x22\x9e\xcd\x32\x7c\x96\x78\xf0\xf6\xa3\x56\xcf\x71\x11\x7d\x06\x8f\xbe\x17\xb2\x6e\xfb\x56\xfc\x7d\x5d\xaa\x84\x9e\xc7\x5b\xc9\x37\x49\xf4\x59\xdb\xb8\x4d\x44\x1a\x43\x13\xa9\xf6\x7d\x5e\xa9\x58\x44\xf7\x43\x75\x82\x27\x67\xbb\x10\xd1\x3d\xfb\xe1\xf6\xc3\x39\x26\x37\x4e\xf4\x4c\x5e\xf0\x22\x79\x10\x77\x79\xea\xdc\x01\x04\xd2\xce\x53\xbb\x47\xaa\xec\xeb\x01\xd3\x97\xa5\x6a\xb7\x8a\x43\x98\x1c\x63\xb3\x3d\x5a\x94\xd1\xbd\x28\x8e\x73\x2e\x63\xb5\xc1\x6e\x1c\xeb\x72\xb9\x4c\x3e\x8d\x0b\x9e\x77\x64\xca\x40\x3b\xc2\xaf\xa8\xe7\xfa\xfc\x67\x85\xd7\x79\x51\xd5\x7d\x84\x30\x6f\xca\xaa\x5f\x51\x6e\x31\x2a\x91\x6f\x04\x50\x9d\xb2\x6a\x96\x19\x28\x05\x23\xa7\x21\x19\xab\xd6\x14\x3f\xa1\x28\xd5\xfb\xc7\x40\xb9\xff\x18\xb4\xca\xbb\xb0\xc3\x46\xf9\x04\xa7\x1b\x7e\x8f\xf7\xc3\x55\x2e\xb4\x1e\x31\xad\xa0\xc5\x33\x69\x23\x11\x6c\xb4\x1c\xe0\x5e\x80\x2c\x39\xdd\xb2\x48\x65\x0e\x32\x8f\xfd\x5a\xab\x47\xb0\xd3\x87\x71\xc2\x90\xc2\xbb\x94\x45\x92\x32\xbe\x2c\xc8\x88\x0f\x99\x21\x6c\x26\x38\x3d\x9e\x49\x70\xc5\x46\xd0\x7d\x80\x48\x38\xf7\x8b\xeb\x84\x66\x4b\x1e\x25\x69\x52\x10\x5f\x1d\x84\x98\x71\xd3\x5f\x73\x1e\x98\xb1\xcc\xf9\x96\xa7\xfe\x62\xc5\xd3\xd2\x87\x46\x1f\x69\xb1\x83\x0f\x35\xd1\x73\x34\x10\xbc\xdc\x06\xf7\x28\xc0\x24\x74\x3e\x20\x77\xfc\xc4\x54\x7e\x51\x3b\x45\xff\x29\xfc\x6f\xe5\x1e\xbe\x4b\x2b\x38\xe0\x42\x7e\xc8\xe1\xd8\xbc\x72\xbb\xf4\xe9\x5e\xcf\x48\x62\x8b\x4e\xae\xa8\xe2\x3e\xf8\xd8\x1d\x8f\xe0\x33\xe9\xb8\xf4\x8f\x6d\xd2\xbb\x66\x0d\x03\x46\xaf\x5d\x49\xfc\x4c\xe6\x8c\x2e\x42\xff\x3e\xcd\xb7\xd6\xf8\x2b\xa5\xd2\x43\x2d\xf2\x44\xc9\x91\x28\x39\x87\x3c\xd0\x87\x5c\x27\x71\x01\x38\xc3\xd6\xf4\x9d\xf3\xb9\x3b\x86\xfc\x6a\xf6\x38\x82\x83\x51\x13\x40\x90\x41\x23\x76\xe0\xd4\x75\xd6\x02\xba\x18\x88\xb7\x87\x32\x10\xad\x65\x55\xfb\xa6\x8b\x20\x60\x67\xe1\xbe\x8d\xc0\x22\x5c\x6b\xe1\x20\x63\x1d\x66\x6d\xae\x55\xe5\x0c\x77\x21\xdb\xb8\x1b\xc7\xa0\x6e\x3b\x9e\x1b\x2e\xc9\xf2\x47\x5a\xfc\x4c\x06\x1a\x3b\x32\xe2\xd9\x80\x06\x37\x6a\x6d\xf6\xbc\xca\x32\x3c\xd8\x9e\x77\x48\x4a\x89\x9d\x92\xf3\x5d\x98\x1c\x12\xb0\x20\x91\xda\x2c\x12\x69\x39\x29\xc8\xc8\x0d\x57\x8d\x89\x65\xec\x75\x0e\x09\x7b\x65\xc0\x94\x41\xb5\xb1\x77\x6a\x4e\x48\x7e\x1c\x8a\xac\x7d\xd7\xf1\xf0\x7e\xf7\xbc\xd9\x2f\x3a\x3c\x8d\xf5\x1e\x98\x03\x24\x7d\xe4\x5b\x0d\x09\xd4\x85\x91\x8a\x4b\x34\xec\x56\xdb\x3f\x0a\xd4\x0f\xcb\x06\x3d\x93\x30\x42\xc8\x16\x66\x05\xa9\x91\xac\xb0\x00\x53\x9b\x2a\xde\x33\xbd\xbd\xd2\xed\x83\xf3\xeb\xf8\x6a\xf2\x9d\xbe\x1a\x74\x42\xff\xf7\x70\xcf\xec\x30\x02\x1f\x68\x8b\x0e\x8e\x49\xd4\x18\x09\x26\x04\x61\x63\xce\x45\x3d\x62\x1b\x9e\x48\xda\x06\x98\x8e\x33\x16\x8b\x72\xb5\xea\x34\x91\xfe\xf6\x7d\x2d\xd5\x7d\xf2\x3f\xde\x16\xbe\x93\xab\xf0\x39\xac\xc5\x53\x5b\x13\x9a\xaf\xcd\xbd\xef\xf3\x18\x88\x7f\x45\x6b\x7c\xab\x4b\xac\xb1\x88\x9e\xc7\x1a\x3f\xed\x63\x8d\xb7\xd8\x2e\x08\xf0\xa3\xeb\xb4\xc5\xdf\xfc\xc3\x4c\xff\x79\xcc\xf4\xbd\x16\x05\x92\xfa\xcc\x93\xaa\x82\xbe\xa3\x85\x4f\xe4\xbd\x74\x54\xd0\xd0\x2a\xe4\x96\x33\xd2\x3d\xd6\x6c\xc1\xa3\x17\x20\xc2\x84\xd3\xf1\x70\x7b\xe0\x1e\xf0\xcb\x8d\xda\x08\x06\x55\x69\x4c\xe4\xc4\x28\x8a\x71\x04\x68\x55\xd3\x41\x8f\x18\x21\x3c\x0a\x1c\xa7\x88\x5c\x89\xbd\x52\xfd\x5a\x8a\x47\x66\x4e\xab\x51\x08\xdf\x0b\xa6\x07\x32\xfc\xbd\x31\xda\x61\x05\xeb\xef\x08\x3b\x72\xb1\xe2\x79\x0c\x11\x26\xb4\x25\x53\x1e\xdd\x9b\x7f\x43\xfb\xa8\x46\x82\x18\x5a\xae\x00\x84\xbd\xfa\xd2\x12\x19\x21\x15\xa2\xe5\x74\x77\xed\xc3\xcf\x35\xe3\x51\xae\x34\x1a\x8d\x5c\x62\x6c\x88\xaf\x06\x05\xf6\x21\x89\x4b\x9e\x62\x8d\x9d\x96\xf6\xa1\xf0\xb5\x3a\xe0\x28\xc8\x61\xd7\x44\xb3\xd1\x74\x20\x43\x15\x0c\xe3\x78\x26\xdf\x39\x87\xc9\x09\xbb\xd3\x82\x50\x66\xda\x66\x01\xd8\xd9\xd2\x17\x53\x1f\x1a\x98\xc0\x4e\x1d\x62\xc7\x00\x58\x90\x75\x30\x10\xba\x7b\x24\xf6\xd0\xa9\x1e\x32\x29\x83\x69\xa1\xa7\x41\x22\x7d\x3f\x2c\x78\x4f\xc8\x05\x8f\xb7\x21\x17\x63\x22\x19\x78\xe9\x18\x8f\x37\x89\x34\x9b\xc0\x26\x6b\x75\x27\x8d\xcd\xdb\x80\x90\x63\xc8\x69\x96\xa6\x35\x21\xa8\x99\x14\x46\xb9\xe4\x79\x92\x6e\xe1\x3e\x91\xe5\xe2\x28\xa8\x27\x98\x1f\x8a\x78\x82\x0c\x14\x44\x22\x53\x6a\xb1\x2c\x53\xbc\x75\xc0\xbd\xdc\x75\x80\x24\xd2\xdd\x74\x64\x14\x8e\x82\x32\x09\x05\x15\x63\x7e\xce\xe7\x88\x1e\x69\x78\x2b\x87\x79\xdc\x3c\x57\x68\x0e\x20\xf7\xb5\x7a\xb4\xa1\x6e\x8f\xdc\x63\x99\xbb\x4e\xd7\x67\xf3\xb2\xec\xd6\x43\xed\x0d\xd0\xca\xa9\x80\xf0\xcf\xb9\xd6\xe8\x99\x88\x9d\x6c\x4a\x24\x74\x87\x52\x5c\x7b\xcb\x75\xa9\x31\x62\xce\xcc\x25\x9c\x5f\xd6\xd0\x51\x35\x5c\x33\xd7\xbb\x44\x2b\xc9\x66\xe5\x97\x5f\x7e\x2d\xd8\x97\x10\x42\x48\xf7\x11\xf4\x8f\x01\x5b\x28\x96\x0e\x22\xdb\x55\x20\x90\x4a\xb4\x31\x23\xac\x0d\xa2\x6a\xe3\xf5\x01\xe4\xc9\xa3\x35\xd3\xe5\x02\x11\x8c\x9c\x5c\x2c\x5c\x3a\xd6\xf1\x73\x05\x60\x44\x3c\xd9\x6d\xeb\xff\x1f\x71\x28\x60\xd2\x97\x99\xcc\x14\x12\xe3\x03\xf4\x73\x21\xd8\x86\xe7\xf7\x90\xc3\x17\xcd\xf3\x90\x08\xe0\x75\x22\xc6\x55\xf7\xc2\x9b\x4a\x7b\xc8\xa1\x83\x84\xd7\x2c\x2f\xa5\xb4\x49\xc9\x98\x51\x4c\xbd\xad\x7f\x34\x93\x8b\x32\xbc\x7b\x56\x9c\x05\x7e\x69\x81\xc3\x00\x84\xad\x02\xa6\x12\x6a\x14\xd7\xbe\x5d\x63\xd6\xc3\x6b\x30\x93\xcf\xec\x36\xd8\x67\xf0\xbb\x22\x1d\xcc\x1a\xf3\x82\x78\x05\xe8\x6e\x98\x37\x1b\xa6\x03\x97\x3d\x28\x39\x57\x90\x3c\x7b\xc4\x7e\x48\x1e\xc4\x88\xdd\x64\x3c\xbf\x1f\xb1\x77\xe8\xfe\xfb\x83\x5a\xb4\xd9\xf0\x1a\x84\x12\x07\xdb\xf1\x9e\x66\xc6\xda\x45\xf3\xd2\xae\xfd\xff\xdc\x20\x06\x60\x5d\xbe\xef\xff\x9e\x88\xbc\x0e\xae\x8f\xff\xe9\x96\x88\x3d\x6e\xea\x7f\x80\xd7\xfe\x47\xde\x8a\x77\xd3\x7c\xfc\x53\xf8\x5f\x2b\xbf\xac\xc6\x05\xba\x27\x49\xb9\x56\x54\xda\x6f\x2b\xb0\x39\x89\xeb\x87\x72\x33\xbe\xb9\xdf\x56\xa0\xf0\xf1\xd8\x85\xb6\x0f\x00\xdd\xd3\xa7\x76\xbc\x4e\x53\xa5\xcb\x7c\xf7\xe6\xbf\xae\xb6\xda\xd6\xde\x42\xf4\x0a\x8b\x6d\xb3\x10\xc0\x5a\xd0\x17\x7e\x82\xaf\xcd\xff\xaa\x16\x73\xc0\x5a\x1d\xb6\xc3\xdb\x8a\x73\xf4\xd1\x2a\xaa\x34\xd5\x9f\x90\x37\x99\x00\xbe\x2b\xaf\x8a\x7a\x87\x40\x6d\x85\x39\xd3\xc8\x4c\x5a\xc6\x7d\x8c\x98\xcd\x73\x01\xd4\xe0\xb9\x80\x44\x8f\x8c\x18\x0e\xd3\x6d\xa0\x11\x05\x37\x1f\x0f\x8a\x09\xa3\xdc\x20\x58\x95\xee\x5b\x0b\x21\xa4\x1b\xed\x21\xaa\x04\xd0\x60\xd7\x46\x9f\xd0\x6e\x8f\xc2\x26\x5e\xe8\x48\x4a\xdb\xf8\x2e\xb8\x0b\x82\xca\xbd\x12\x45\x20\xcd\x6b\xaa\x45\x65\x6b\x56\x3c\x54\xbf\x29\xc4\x7f\xab\x0f\xba\x46\xce\x55\x31\xa0\xf4\xf2\xe9\x3d\x87\xbd\xfc\x8a\x17\x6b\xbc\xd0\x6e\x54\x21\x50\x66\x22\x4b\x10\xae\x17\xb4\x3a\x2f\x52\xb5\x80\x0c\x8b\xc5\x0e\x06\xc9\x88\xb6\x76\xaf\xa1\x6b\x4e\x58\x1f\xc9\x60\xa4\x09\x44\xda\xe6\x42\x03\xe1\x4a\xd3\x4b\xd5\x17\x9f\x3c\xec\xd2\xdd\x6c\xae\x11\xfa\xef\x1a\x97\xed\x66\x4a\x0e\xb3\xad\x01\xac\x7a\xf6\x84\x08\x9a\x46\x82\x13\xa2\xaa\x26\x37\x30\xb2\xd5\xd6\xfa\x6b\x13\xf9\xcf\xe4\x04\x9f\x04\x87\x00\xf7\x39\xb6\x1c\x1e\x94\x72\x36\xbb\xfd\x87\xe1\xab\x6c\x12\x22\x10\xc9\x42\x30\xf2\xb6\x4c\xb8\x0c\x8c\x20\xaa\x51\x16\x49\x2e\x98\x04\x14\xc2\x4c\xea\x72\x71\xe4\x89\x49\xcc\x2d\xee\x01\xc8\x74\xb4\xc8\x38\x5c\x65\x80\xaf\xe8\xa8\xe5\x18\x46\xcb\xa4\xcf\x95\x63\xe9\x03\x79\x4a\xc2\x1f\x62\x25\x31\x32\xde\xf5\xdd\x95\x63\x2e\x6b\x70\x8b\xb6\x70\x25\x3c\xec\x76\xc9\x0b\xc8\xe6\x05\x11\x98\xd7\x88\xa2\xf8\xb5\x0f\xf0\xd0\x1b\xda\xf7\xe8\x06\x7f\xda\x4c\xfe\xab\x3d\x1b\xba\x41\xc5\x03\x56\xba\x19\x19\x73\x44\x75\x82\x9d\x2b\x6d\xb3\x57\xc8\x40\x09\xec\x6e\x54\x63\xc9\xb7\x95\xca\x2d\xae\x25\x4c\xe9\xa2\x28\x5c\x16\x9e\x3e\x24\x3a\x20\x7b\x87\xda\x6e\x84\x60\x27\xb9\x58\x9e\x7c\xcc\xc5\x72\x6e\x67\x7a\x0c\x1d\x1a\x9b\x1e\x35\x29\xdf\x7b\x2e\x0e\x9d\x29\xd9\x4e\x7e\xb8\x87\x1a\xb5\xd6\x25\x2c\x27\xe8\x53\xb2\x64\x3e\xbb\xad\xe9\x0f\x30\x40\x88\xb8\xce\x45\xdf\x68\xd9\x67\x3f\xe6\xba\x90\x60\x3d\xa0\x56\x1d\x49\x50\xff\xe7\x1f\x6f\x95\x31\xeb\x73\xbc\xdd\x56\x21\x33\x56\xd8\x73\xe9\x0e\xbc\x6e\x5c\xe8\xe7\x45\xa7\xc3\x04\xea\x8c\x3f\x4a\xe2\xb1\x19\x64\x7a\xea\x77\xac\xd5\x00\x44\xc1\xb1\xd6\xc0\xc0\xf9\x5d\x26\xad\xa5\x2f\x71\x79\x34\x47\xcc\xdf\xa0\x79\x9a\x86\x19\x35\xbc\xa7\x6d\x26\x7d\x5c\xaa\xd1\x5a\xd3\xd4\x9a\xf0\x2a\xfa\x86\x4b\x78\xac\x0b\x5e\x88\x91\x25\x5d\x21\xba\x42\xf2\x87\x1d\x2d\x38\xa4\xb6\x76\x39\xd4\xf6\xed\xe6\xe7\xba\x44\xfe\xc6\xe2\xa2\xf7\x78\x9e\xb1\xda\xf9\xbd\x68\xc0\x99\xf7\xb6\xb5\xdd\xd3\x11\x50\x4a\xc0\x66\xb6\x52\x36\xe2\x79\x6e\x51\xfe\x54\x2b\xb3\x74\xe7\xe1\xad\xa4\xa3\x9d\x6b\x11\xdd\x67\x2a\x91\x83\x65\x51\x85\xe2\x02\x16\x7b\xc1\x7c\x69\xee\x76\xd8\xeb\x70\xac\xe8\x93\xd8\x11\x0d\xf0\x0a\x0b\x0d\xf5\x64\x6c\x9c\xb9\x4c\xd9\xdd\xcb\xee\xb9\xed\x17\xc2\x9f\x0d\x2f\x60\x8b\x6d\xf1\x0f\xd5\x4e\x15\xde\x62\xd8\xa9\x30\x81\xf2\x46\xf4\x57\xcf\xc1\xe6\xac\x42\x61\xd8\x3a\xa4\x60\x82\xfc\x87\x65\xe8\x1f\x96\xa1\xff\xe6\x96\xa1\xcf\x69\x16\x02\x6c\xcc\x4b\xda\x84\x76\x38\xc8\x0f\xd8\x8e\xae\xd6\xc1\x31\x8e\xad\xda\xf1\x28\x48\xfa\x1d\x44\x3a\x36\x81\xfe\x96\x08\xc3\x8c\xcf\x82\x47\xf7\x42\x76\xfa\xe8\x2d\x7d\x51\x67\xfe\xd5\xe7\x45\xb0\xb4\xb1\x2f\x05\x5f\xef\x86\xb2\x78\xa8\x13\x91\x06\xb7\x11\x82\x98\x7d\x02\xba\xa7\xe9\xf8\x11\x80\xc6\x54\xee\x88\xad\x35\x45\xe1\xa1\x33\x12\x69\x92\x10\x2c\x55\xa3\x82\xee\x8b\x89\xb3\x15\xcf\x33\xa5\xd2\x56\x68\xdc\xb3\x0e\x60\x23\x50\xa6\xef\xe0\x4d\x51\x19\xd5\x21\x60\xcc\x8e\xa2\x0f\xba\xf0\x21\x1a\x18\x8f\x01\x99\x38\x60\x35\xc5\x25\xc4\x52\xfa\xe1\x08\xd2\x2b\x72\x67\x70\x21\x8c\xd8\x42\x44\x1c\x12\xbf\x5a\xf0\x5e\xc4\x5d\xf4\x49\x48\x8a\xd4\x08\x07\xd1\xcd\x7a\x3a\xbc\x96\x50\xee\x3c\x69\x4b\xbb\x31\x74\x73\xd5\x34\x04\x0b\x2d\xc7\x96\x5b\x24\x89\xa5\x5d\xdc\x97\xd0\xd8\x72\x4c\xcf\x21\xfb\x62\xbf\x13\xae\x55\xee\x4c\xa9\xa0\x53\x28\xa7\xbf\x20\xfd\x01\xc2\x71\x36\x3d\x91\x3b\x33\x39\x71\x79\x6e\x3d\xf6\xcb\x21\xf7\xd0\x5d\x8a\x98\xc5\xc6\xd4\x20\x97\xa3\xbf\xb9\x8c\x98\x2e\xa3\x35\xb0\x55\x56\xe5\x54\x28\xb7\x9a\x3b\x76\x34\x93\xe6\x42\x04\xa6\x96\x0d\x87\xb8\xf8\x47\xa3\xac\xea\xe4\x6f\xc2\xc1\xb3\x88\xbc\x2b\x44\x64\xe1\xc5\x49\xc9\x56\xf4\x9a\x25\x0e\x45\x80\x85\xc7\x94\x94\x59\xcc\x0b\x31\x9e\x79\xb4\x4d\x82\x96\x4e\x8b\xf2\x20\x95\x59\x87\x1d\x0b\x71\x8c\x35\x49\x9b\x26\x4b\x11\x6d\xa3\x46\x16\xa2\xdd\x34\x11\xff\xb8\xb6\xfd\xb6\xae\x6d\xc8\xb2\x8b\x31\x83\x43\x86\x96\x9a\x7a\xed\x3f\x3f\x6c\x70\x05\x0b\x5a\xa2\x07\x8c\xf3\x67\xbc\x76\xb6\xe8\xc0\xc3\xf4\xf9\xde\xf7\xa0\xdd\xc7\x99\xbf\xd8\xfa\xc3\x3a\xa0\x40\x68\xa8\x85\xa1\x73\xb1\x08\x97\x8e\x51\x68\x7b\xbb\xf5\xbb\x59\x66\x7e\x53\xe0\xa4\x3e\x17\x57\xa3\x71\x3b\xb8\xd2\x85\xd5\xb4\xa5\xc0\xf3\x6e\x87\xc6\x1d\xb0\xba\xf3\xe2\x95\x76\xa3\x5e\x95\x80\x16\xfb\x3f\x91\xdb\x83\x02\x30\xb7\x99\x98\x97\x79\x7a\x10\xdc\xf8\xee\xfa\xfc\xd8\x69\x1b\xa0\x39\x77\xe6\x3d\x2a\x6a\xa9\xa1\x6d\x4e\x62\x11\x13\x1c\x34\x52\x29\x5b\x94\xcb\x25\xe4\x2f\x21\x60\xa8\x15\x46\x90\x99\xbe\xd4\x85\x3d\x4f\x90\x69\x86\xeb\x62\x26\x95\x14\x6c\xf6\xc5\xf1\xec\x0b\x73\x94\xe5\x3c\x2a\x44\x8e\x24\x03\x29\xd7\x05\xd3\x62\x05\xaa\x16\x55\x7a\x77\x7d\x0e\x51\x89\xc5\x1a\x8b\x73\x57\x56\x8c\xf7\x44\xce\x67\xc8\xf5\x03\x04\xd5\x32\xc8\xb8\x05\x6d\x7f\xcd\x35\x4b\xe4\x4c\x7e\x34\x45\x1c\xaf\x94\x5a\xa5\x62\x6c\x27\x64\xfc\x8e\x4c\x8f\x1f\xdf\x60\x0b\xe0\xf3\x10\xd6\x6f\x0e\x44\x2e\x95\x4c\x22\x9e\x42\x40\xce\x4c\x82\xd6\x3c\x32\x9d\x01\xd3\xe8\xec\x8b\xf1\xec\x0b\x06\xee\xd3\x82\xf1\x28\x12\x59\x21\x62\x4c\x6d\x3a\x95\x2c\x03\xfc\x62\x24\x46\xac\x10\x7c\xa3\x2d\xa5\x33\xcb\xcc\x1d\x13\xae\x86\x2c\x91\x84\x74\x5a\x24\x92\xe7\x5b\x04\x33\x61\xb2\x72\x0a\xfe\xd8\xce\xa4\xf8\x04\xf4\x9f\x09\x30\x80\x96\xda\xd1\xd2\x50\x62\x02\xd3\xe5\x89\xdc\x8e\xd9\x0f\xc8\xd0\x80\x14\xa8\x77\xd7\xe7\x96\xde\x88\x62\x40\x67\x52\x47\x6b\xb1\x11\xec\xe3\xba\x28\xb2\x8f\x23\xfc\xaf\xfe\x08\x1e\x47\xa9\x18\x3e\x1d\x31\x33\x45\x46\x51\xb5\x78\xf9\x74\x0b\x39\x64\xcb\x8c\x12\xce\xcf\x24\x70\xb1\xe7\x21\xba\xd7\x8c\x36\xd4\x18\x5c\xc1\x2b\xb8\x70\x23\xc5\x21\xb9\xe3\x89\x19\x9c\xff\xc5\xa6\x4b\x5f\xa5\x19\x40\x9b\x5b\xcc\xb5\x0a\x14\x12\x0d\x21\x5b\x63\xf3\xc1\x44\xb2\x1f\x6e\x6f\xaf\xd8\xf7\x67\xb7\x56\xd9\xb9\xbb\x3e\xc7\x75\x01\x74\x2a\x8c\xb3\x3f\xd7\xa7\xf8\x76\x9b\x89\xbf\xfc\xf9\x2f\x33\xc9\x6c\x8e\x72\x69\x47\x1a\x77\xf4\x08\x29\x61\x01\xef\x04\x8e\x59\xa0\x72\x86\xfa\x30\xe5\x0e\x35\x3f\x47\xed\xfc\x91\xac\x05\x70\x46\xa5\x4a\xdd\x97\x99\x33\x73\x87\x7a\x98\xa9\xf0\xee\xfa\x1c\x4a\x07\x3a\xa5\x62\x0d\xf9\xd3\x84\xb3\xbe\xc0\xc4\x73\xdb\x18\xf3\xef\x07\x95\xc4\x8c\xcb\xad\xf9\x16\x8b\x86\x65\x99\x8b\xa5\xca\xc5\xc8\xbe\x69\x0a\xe0\x45\xb2\x48\xd2\xa4\xd8\x82\x94\xb2\x79\xed\x33\xcb\x91\x6f\x0a\x30\xb7\x19\x02\x78\x9b\x05\x86\x69\x6c\x5f\xdf\xe9\x10\x01\x0e\x93\xe6\x72\x23\xe2\x45\xc7\x7c\xbb\xc8\x05\xbf\x37\xab\x9b\x4a\x18\xbf\xa1\x9c\xb1\xe2\x04\xcf\x98\x65\x29\x23\x5c\x1a\xa6\x0d\xb4\xfa\xe9\xe6\x94\x6e\x19\x7f\xe0\x09\xe6\x94\xb5\xee\xf2\xe5\x32\x89\x12\x9e\x92\xe4\x58\x94\x4b\x48\x1b\xc3\x35\xa5\x2c\x42\xf0\xa1\x29\x04\x6e\x19\x36\x61\x3f\x2e\xa8\x85\x58\x25\x08\x38\x7e\x4c\x8a\x35\xc6\x15\x8c\x71\x9e\x79\x96\xe8\x71\xa4\x36\xb0\xdf\x6e\x60\x29\x69\xba\xf4\x02\x0e\xbc\xb6\xce\xd9\x6b\x0b\xb5\xdb\x64\xc5\x96\xd6\xde\x1b\xb6\x49\x56\xeb\x02\x12\xb9\x40\xed\x00\x89\x48\x36\x59\x0a\x97\x3e\xf2\x30\x5a\xbc\xaf\x16\x1b\x2e\x8b\x24\xea\xf2\x29\xb5\xa6\x04\xef\x87\xf1\x5c\x6c\x8b\xdd\x76\xbc\x0f\xc4\xb3\xcf\x91\x42\x3f\x90\xc8\xac\x2e\x90\x49\x06\x42\x7a\x99\x80\xc0\xbf\x9e\x72\x76\xdf\x15\xea\xe3\x44\x6e\x3f\x7a\x12\x52\x2e\x83\xdc\x57\x3b\x6a\xb7\xfb\x9f\xa7\x8a\x66\x8d\xf1\x99\x04\x54\xa7\x11\x18\x94\x8c\x76\xe7\x19\xe3\x8e\x14\x33\xb3\x57\x76\xd1\xa4\xc9\x02\xea\x26\x59\xa1\x99\x2e\x33\x88\x27\x28\x14\xcb\x78\x74\x7f\x5c\x4a\xf3\x1f\x23\x0c\x71\xbb\xeb\x90\x9c\x68\x26\xd5\x92\x95\x05\x6e\x1c\xbb\x84\xc1\x28\x12\x98\x02\xfc\x05\x6d\x23\x8a\xb5\x8a\x5d\x5c\x98\x29\x13\xc6\xcf\xb4\xe8\x8c\xe8\xa5\xdf\x9e\xb0\x2b\x53\xa1\x59\xc4\x54\x37\x77\xdd\x4f\x24\x3b\xfd\xd7\x7f\x85\xf7\xcd\xe0\xbe\x57\x8a\x2d\x95\x62\xdf\xb2\xf1\x78\xfc\xef\xf8\x9b\x29\x94\xcb\x2d\xfd\xc5\xe5\x76\x6c\x8a\x7b\x9f\xab\xcd\xeb\xa5\x52\x6f\xe8\x77\x48\xda\x6c\xfe\x91\x2c\xd9\x6b\xf3\xd2\x1d\x54\x75\xab\x5e\xcf\xca\x2f\xbf\xfc\xea\xf7\xe6\xd5\x37\xec\x3f\xf1\x9d\xe0\xf5\xbf\x87\x4d\xfd\x6a\x4f\x53\xff\xc0\x1f\x78\x9f\xb6\xb2\x6f\xe1\xac\x31\x05\xec\x6c\x63\xa2\x5f\xbf\x57\x6a\x0c\xb7\xff\xb0\x75\x58\xac\x79\x03\x5b\x11\xbc\xf5\xef\x41\xb3\x99\x6d\xf7\xd7\x7b\xda\x8d\xa8\x7a\xd7\x72\x2c\xfe\xbd\x52\xaf\xc7\x63\x23\xb7\x68\x5c\xb1\xd5\xaf\xdf\x54\x07\x1a\x3a\xd0\x6c\xbf\x79\x3c\xc5\xe6\xbf\x3b\xbb\x39\xbd\x9e\x5e\xdd\x5e\x5e\xbf\x39\xb1\x3d\xf0\x33\x10\x7c\xcf\x6c\x6a\x6d\xd7\xf0\xff\xbd\xa7\xe1\xdf\x2b\xdb\x66\x68\xf4\xc9\xb7\x0c\x67\x33\x5b\x8c\xdf\x2b\xf5\x9f\xe3\xf1\xf8\xef\xf4\x98\xcb\xed\xc8\x1c\x4c\xe6\x9d\x0c\x45\xf9\x07\x9e\xeb\x35\x4f\x4d\x9f\x82\x36\xb8\x4e\xb4\x96\x68\x8b\x4b\x96\xb5\xc2\xee\xe4\xc6\x17\x07\x95\xc1\xc4\xc2\x5b\xff\xfc\x2d\x93\x49\xea\xa7\x2f\xa8\x03\xe6\xe9\x16\xa8\x25\xa2\x7b\xb7\x5d\x5c\x8e\xd0\xc5\x96\x65\xf5\x8d\x8b\x71\x67\x5b\x9b\xa1\xc0\x88\xfb\x99\x7c\xd5\x22\xd1\x8f\x8d\x6a\x37\x86\x07\xe6\x80\x7a\x65\xb3\xc7\xdb\x63\xc1\x65\xd6\xc2\x91\x05\x47\x34\xee\x56\x49\x31\x6a\x6d\xfa\xa1\x3b\xf0\x02\xb2\x2a\x50\x3b\x5f\x1d\xbf\xa2\x40\x21\x5f\x45\x95\x48\x7e\xf6\xc5\x52\xa9\xf1\x82\xe7\xd0\xba\x4f\xc7\xdb\xf1\xdf\x66\x5f\x60\x7f\x50\xf9\x40\xc5\x08\x0a\x9f\x7d\x01\x4f\x61\x39\xcc\xe4\x1f\x6e\x2e\x2f\x66\xf2\xdb\x6f\xbf\xfd\x16\x47\xcb\xfc\xdd\xe2\x7b\x31\xc7\x15\x88\x5b\xd4\x53\x4a\x6d\x53\x4a\x8a\x55\x99\xf2\x7c\x26\xdb\xdd\x35\xb1\xf0\x42\x73\xe4\x9d\x37\xb4\xce\x46\x36\xbb\x05\x24\x29\xb3\x32\x0e\x6d\x93\x1f\xff\x7f\xd3\xe4\x8f\xa4\x22\x3a\x21\x1f\x0e\xc1\xd8\x2e\xe6\x13\xbb\x54\xcd\x60\x9b\xf5\xeb\xf5\xac\x65\x92\x0a\xda\xb8\x76\x71\x5f\x89\x5c\x2b\xe9\xd7\x0c\x5d\x08\x80\xdb\x0c\x1c\x00\xec\x5b\xf6\xf6\xdf\x6b\x4f\xcd\x3c\xd8\x87\x5f\x55\x24\x01\x63\xbe\xa8\xd9\x17\xd0\xea\xd9\x17\x27\x6c\xf6\x45\xdb\xba\xa9\x36\x6c\x8c\x4d\x99\x7d\x31\xf2\x05\x40\x33\x2e\xf8\x06\x0b\x29\xbf\xfc\xf2\xeb\x08\x9b\x80\xa1\x6b\xc1\x9b\xa6\x49\xdd\x2f\x06\x4d\x9c\xd6\x5c\x67\x76\x20\x6c\x08\xe4\xa3\x48\xd3\xa3\x7b\xa9\x1e\x31\xcf\x38\xf8\x89\x28\x4a\x99\xe1\xf2\xa8\x4e\x2e\xe5\x26\xab\xcd\xb8\x0d\xda\x74\xd5\xb8\xf4\x76\x30\xa1\x33\xf9\x11\x96\x8e\x9d\x51\xa2\x23\x02\x3a\x50\x57\x13\x5c\x6a\x68\x25\xd8\x18\x0b\x5a\x08\x33\x09\xc5\xb8\x39\x67\xaf\x01\xf8\x45\x5d\x69\x68\xd6\xf6\xf2\xf4\x97\x3f\xff\xe5\xcd\xc9\x21\xf3\x54\x2d\xae\x32\x55\xd0\x1f\x2c\xe3\xed\xf8\xab\xb7\x5f\xe9\xd9\x17\x34\xea\xed\x57\xec\xf3\x44\x17\x3f\xd5\x34\xb0\x27\x24\x3b\x37\x8a\xc3\x4b\x39\x2f\x6c\x53\xb1\x99\x7d\x9d\x16\xd7\x55\xb7\x82\x5a\x5a\xb3\x0e\x5c\xce\x6c\x1a\x78\xd3\xee\x41\xea\x9d\x1b\x2f\xbc\x6c\xb1\xc7\x9c\x67\x99\xc8\xad\xad\xbc\xe1\xce\x80\x9c\xea\x50\x8b\x15\xfd\x6d\xc2\xcc\x2c\x9b\x5a\xd1\xf0\x1a\x0c\xdd\xb8\x7d\xe6\x2e\xca\x34\xed\x9c\xb9\xfd\xc9\x92\x2f\xee\xce\xcf\xe7\x3f\x4d\xce\xef\xce\x6c\xf7\x5b\x93\x0f\x07\xaf\x75\x8e\x89\x6b\x09\x8d\x09\xe2\xaa\x0a\xc0\x52\x95\x1b\x91\x5b\xa6\x30\xdf\x6b\xc4\x91\x94\x69\x5a\x4d\x8b\x3d\x93\x1f\xa9\x1c\x10\x03\xa5\x4c\xac\x9a\xb2\x73\xe0\xaa\xf5\xc3\x6b\x1f\x4d\xe1\x1f\xf1\xdb\x23\xe6\x3b\x71\xc2\x2e\x5c\xad\x1d\xe3\x4a\x84\x13\x07\x6c\x07\x8c\xb7\xed\xda\x0e\xcf\x9d\xf8\xff\x69\xdb\xe3\x4e\x42\xd2\x2f\x23\x79\x31\x5f\xff\xb3\xec\x0e\x1c\xbb\x8f\x55\x28\xb8\x33\x97\xc6\xe8\x35\x84\x72\x47\x98\xae\x5d\x17\xc4\x59\x8c\x63\x36\x93\x28\x88\x4d\x9b\x0a\xd5\xdd\x26\x36\x25\x0f\x52\xca\xe5\xaa\xe4\x2b\xa1\x47\xcc\x56\x3e\x93\xf6\x76\x6a\xef\x3a\x0e\x98\x03\x8c\xac\xb5\x25\x54\x0b\x01\x4e\xe4\x4c\x52\x9f\xe0\x84\xa5\xe2\x31\x1c\xf5\x0f\x37\xae\x3b\x14\xf7\x8d\x05\x51\xc6\x79\x39\x93\x38\xb9\x68\x1b\xb3\x60\x43\x50\x3b\x9a\x67\x13\x07\x78\x30\xde\xeb\x62\x56\xa8\x15\xc0\x1e\x67\xd2\xb1\x60\x21\x38\xc3\xde\xd7\x7c\x6e\x50\x6c\xd2\x7e\x79\x62\x27\xc3\xee\x09\x6a\x5b\xfb\xaa\x3f\xf8\x0c\x30\x1b\x6e\xde\x7a\x97\xdf\xbd\x6c\xbd\x18\xeb\x09\xc8\xe1\x81\xe0\xe8\xa2\x46\x04\xea\xb3\xf6\xd6\xd8\x7e\xe1\x3b\x9d\xd1\xa3\xaa\x5c\xa4\x03\x9a\x84\xef\xef\x6c\x14\x8a\xe4\xdd\x8d\xea\x61\x91\xbe\xae\x6d\x2d\xb3\x4c\x77\x55\xbb\x50\xaa\x63\x5e\x9e\x11\xb3\x5b\x69\x14\x7d\xb0\x6f\x30\xca\xa8\x78\xca\x7a\xe9\xc1\x07\x54\x1f\x22\x2b\x7d\x76\x35\x28\x4d\xf4\x93\x9a\xe3\xf5\xa7\xde\x2d\x72\x1a\x02\x1d\x76\x83\x24\x2c\x9d\x73\x15\x01\xdb\x21\x26\xed\x35\x05\xc3\x5b\x44\x82\xe2\xc5\x6c\x9e\x11\x6c\x22\xb3\xfe\x47\x6e\x11\x8d\xfc\xcc\x8d\xa0\x91\x51\x99\x6b\x23\x2e\x49\xde\x91\xd4\x56\x39\xe3\x33\x69\xd9\x60\xac\x38\x9e\x58\x7b\x70\xee\x7e\x45\x8e\xa5\x0c\x53\xd6\x81\x53\xa8\x00\x2b\x39\x49\xc3\x99\x7c\xe0\x79\xc2\x25\x60\x9a\x17\x1a\xf2\x0d\xc3\x95\x6e\xcb\xe8\x81\x23\xe0\xd0\xa1\x91\x79\x8f\xcc\xab\xa9\x01\x95\x73\xfe\x9f\xcc\xff\xfe\xfe\x4f\xff\x37\x00\x00\xff\xff\xd3\xb6\xa9\xb3\x49\xa7\x06\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: 436146, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 436041, 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/ProjectOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java index 46bbaebc56..ccae7fde2c 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java @@ -788,7 +788,6 @@ public interface ProjectOrBuilder extends /** *
-     * Deprecated, use identifier instead.
      * Globally unique project name.
      * 
* @@ -797,7 +796,6 @@ public interface ProjectOrBuilder extends java.lang.String getId(); /** *
-     * Deprecated, use identifier instead.
      * Globally unique project name.
      * 
* @@ -1189,7 +1187,6 @@ private ProjectState(int value) { private volatile java.lang.Object id_; /** *
-     * Deprecated, use identifier instead.
      * Globally unique project name.
      * 
* @@ -1209,7 +1206,6 @@ public java.lang.String getId() { } /** *
-     * Deprecated, use identifier instead.
      * Globally unique project name.
      * 
* @@ -1900,7 +1896,6 @@ public Builder mergeFrom( private java.lang.Object id_ = ""; /** *
-       * Deprecated, use identifier instead.
        * Globally unique project name.
        * 
* @@ -1920,7 +1915,6 @@ public java.lang.String getId() { } /** *
-       * Deprecated, use identifier instead.
        * Globally unique project name.
        * 
* @@ -1941,7 +1935,6 @@ public java.lang.String getId() { } /** *
-       * Deprecated, use identifier instead.
        * Globally unique project name.
        * 
* @@ -1959,7 +1952,6 @@ public Builder setId( } /** *
-       * Deprecated, use identifier instead.
        * Globally unique project name.
        * 
* @@ -1973,7 +1965,6 @@ public Builder clearId() { } /** *
-       * Deprecated, use identifier instead.
        * Globally unique project name.
        * 
* diff --git a/flyteidl/gen/pb-java/flyteidl/core/Workflow.java b/flyteidl/gen/pb-java/flyteidl/core/Workflow.java index 3c75f3d22a..554cbe2b61 100644 --- a/flyteidl/gen/pb-java/flyteidl/core/Workflow.java +++ b/flyteidl/gen/pb-java/flyteidl/core/Workflow.java @@ -8981,7 +8981,7 @@ public interface ArrayNodeOrBuilder extends /** *
      * parallelism defines the minimum number of instances to bring up concurrently at any given
-     * point. Note that this is an optimistic restriction and that, due to network orging or
+     * point. Note that this is an optimistic restriction and that, due to network partitioning or
      * other failures, the actual number of currently running instances might be more. This has to
      * be a positive number if assigned. Default value is size.
      * 
@@ -9195,7 +9195,7 @@ public flyteidl.core.Workflow.NodeOrBuilder getNodeOrBuilder() { /** *
      * parallelism defines the minimum number of instances to bring up concurrently at any given
-     * point. Note that this is an optimistic restriction and that, due to network orging or
+     * point. Note that this is an optimistic restriction and that, due to network partitioning or
      * other failures, the actual number of currently running instances might be more. This has to
      * be a positive number if assigned. Default value is size.
      * 
@@ -9817,7 +9817,7 @@ public flyteidl.core.Workflow.NodeOrBuilder getNodeOrBuilder() { /** *
        * parallelism defines the minimum number of instances to bring up concurrently at any given
-       * point. Note that this is an optimistic restriction and that, due to network orging or
+       * point. Note that this is an optimistic restriction and that, due to network partitioning or
        * other failures, the actual number of currently running instances might be more. This has to
        * be a positive number if assigned. Default value is size.
        * 
@@ -9830,7 +9830,7 @@ public int getParallelism() { /** *
        * parallelism defines the minimum number of instances to bring up concurrently at any given
-       * point. Note that this is an optimistic restriction and that, due to network orging or
+       * point. Note that this is an optimistic restriction and that, due to network partitioning or
        * other failures, the actual number of currently running instances might be more. This has to
        * be a positive number if assigned. Default value is size.
        * 
@@ -9846,7 +9846,7 @@ public Builder setParallelism(int value) { /** *
        * parallelism defines the minimum number of instances to bring up concurrently at any given
-       * point. Note that this is an optimistic restriction and that, due to network orging or
+       * point. Note that this is an optimistic restriction and that, due to network partitioning or
        * other failures, the actual number of currently running instances might be more. This has to
        * be a positive number if assigned. Default value is size.
        * 
diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py index f2014e377e..8765c7497e 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py @@ -11850,7 +11850,7 @@ def update_project2(self, id, body, **kwargs): # noqa: E501 >>> result = thread.get() :param async_req bool - :param str id: Deprecated, use identifier instead. Globally unique project name. (required) + :param str id: Globally unique project name. (required) :param AdminProject body: (required) :return: AdminProjectUpdateResponse If the method is called asynchronously, @@ -11872,7 +11872,7 @@ def update_project2_with_http_info(self, id, body, **kwargs): # noqa: E501 >>> result = thread.get() :param async_req bool - :param str id: Deprecated, use identifier instead. Globally unique project name. (required) + :param str id: Globally unique project name. (required) :param AdminProject body: (required) :return: AdminProjectUpdateResponse If the method is called asynchronously, @@ -11956,7 +11956,7 @@ def update_project4(self, org, id, body, **kwargs): # noqa: E501 :param async_req bool :param str org: Optional, org key applied to the resource. (required) - :param str id: Deprecated, use identifier instead. Globally unique project name. (required) + :param str id: Globally unique project name. (required) :param AdminProject body: (required) :return: AdminProjectUpdateResponse If the method is called asynchronously, @@ -11979,7 +11979,7 @@ def update_project4_with_http_info(self, org, id, body, **kwargs): # noqa: E501 :param async_req bool :param str org: Optional, org key applied to the resource. (required) - :param str id: Deprecated, use identifier instead. Globally unique project name. (required) + :param str id: Globally unique project name. (required) :param AdminProject body: (required) :return: AdminProjectUpdateResponse If the method is called asynchronously, diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py index 798f4ce8db..7e62124a77 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py @@ -85,7 +85,7 @@ def __init__(self, id=None, name=None, domains=None, description=None, labels=No def id(self): """Gets the id of this AdminProject. # noqa: E501 - Deprecated, use identifier instead. Globally unique project name. # noqa: E501 + Globally unique project name. # noqa: E501 :return: The id of this AdminProject. # noqa: E501 :rtype: str @@ -96,7 +96,7 @@ def id(self): def id(self, id): """Sets the id of this AdminProject. - Deprecated, use identifier instead. Globally unique project name. # noqa: E501 + Globally unique project name. # noqa: E501 :param id: The id of this AdminProject. # noqa: E501 :type: str diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_array_node.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_array_node.py index 0755745b42..7922966896 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_array_node.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_array_node.py @@ -91,7 +91,7 @@ def node(self, node): def parallelism(self): """Gets the parallelism of this CoreArrayNode. # noqa: E501 - parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network orging or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. # noqa: E501 + parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network partitioning or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. # noqa: E501 :return: The parallelism of this CoreArrayNode. # noqa: E501 :rtype: int @@ -102,7 +102,7 @@ def parallelism(self): def parallelism(self, parallelism): """Sets the parallelism of this CoreArrayNode. - parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network orging or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. # noqa: E501 + parallelism defines the minimum number of instances to bring up concurrently at any given point. Note that this is an optimistic restriction and that, due to network partitioning or other failures, the actual number of currently running instances might be more. This has to be a positive number if assigned. Default value is size. # noqa: E501 :param parallelism: The parallelism of this CoreArrayNode. # noqa: E501 :type: int diff --git a/flyteidl/gen/pb_rust/flyteidl.admin.rs b/flyteidl/gen/pb_rust/flyteidl.admin.rs index c500abe884..47984a2750 100644 --- a/flyteidl/gen/pb_rust/flyteidl.admin.rs +++ b/flyteidl/gen/pb_rust/flyteidl.admin.rs @@ -2251,7 +2251,6 @@ pub struct Domain { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Project { - /// Deprecated, use identifier instead. /// Globally unique project name. #[prost(string, tag="1")] pub id: ::prost::alloc::string::String, diff --git a/flyteidl/gen/pb_rust/flyteidl.core.rs b/flyteidl/gen/pb_rust/flyteidl.core.rs index 0566b94910..44df5fe10e 100644 --- a/flyteidl/gen/pb_rust/flyteidl.core.rs +++ b/flyteidl/gen/pb_rust/flyteidl.core.rs @@ -2326,7 +2326,7 @@ pub struct ArrayNode { #[prost(message, optional, boxed, tag="1")] pub node: ::core::option::Option<::prost::alloc::boxed::Box>, /// parallelism defines the minimum number of instances to bring up concurrently at any given - /// point. Note that this is an optimistic restriction and that, due to network orging or + /// point. Note that this is an optimistic restriction and that, due to network partitioning or /// other failures, the actual number of currently running instances might be more. This has to /// be a positive number if assigned. Default value is size. #[prost(uint32, tag="2")] diff --git a/flyteidl/protos/flyteidl/admin/project.proto b/flyteidl/protos/flyteidl/admin/project.proto index 88ce071380..907b7d2cae 100644 --- a/flyteidl/protos/flyteidl/admin/project.proto +++ b/flyteidl/protos/flyteidl/admin/project.proto @@ -19,7 +19,6 @@ message Domain { // Top-level namespace used to classify different entities like workflows and executions. message Project { - // Deprecated, use identifier instead. // Globally unique project name. string id = 1; diff --git a/flyteidl/protos/flyteidl/core/workflow.proto b/flyteidl/protos/flyteidl/core/workflow.proto index 976559286d..8c74094b5b 100644 --- a/flyteidl/protos/flyteidl/core/workflow.proto +++ b/flyteidl/protos/flyteidl/core/workflow.proto @@ -115,7 +115,7 @@ message ArrayNode { Node node = 1; // parallelism defines the minimum number of instances to bring up concurrently at any given - // point. Note that this is an optimistic restriction and that, due to network orging or + // point. Note that this is an optimistic restriction and that, due to network partitioning or // other failures, the actual number of currently running instances might be more. This has to // be a positive number if assigned. Default value is size. uint32 parallelism = 2; From 9f29243d97edf709fbaa152d8ad9ac25f75e72d1 Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Wed, 3 Jan 2024 16:29:10 -0800 Subject: [PATCH 4/7] review comments Signed-off-by: Katrina Rogan --- .../flyteidl/datacatalog/datacatalog.pb.cc | 251 +++++------- .../flyteidl/datacatalog/datacatalog.pb.h | 74 +--- .../gen/pb-cpp/flyteidl/service/admin.pb.cc | 372 +++++++++--------- .../flyteidl/datacatalog/datacatalog.pb.go | 227 +++++------ .../gen/pb-go/flyteidl/service/admin.pb.go | 330 ++++++++-------- .../gen/pb-go/flyteidl/service/admin.pb.gw.go | 131 +----- .../pb-go/flyteidl/service/admin.swagger.json | 4 +- .../flyteidl/service/flyteadmin/README.md | 4 +- .../service/flyteadmin/api/swagger.yaml | 4 +- .../service/flyteadmin/api_admin_service.go | 4 +- .../gen/pb-go/flyteidl/service/openapi.go | 4 +- .../gen/pb-java/datacatalog/Datacatalog.java | 334 ++++------------ .../gen/pb-java/flyteidl/service/Admin.java | 370 +++++++++-------- .../flyteidl/datacatalog/datacatalog_pb2.py | 72 ++-- .../flyteidl/datacatalog/datacatalog_pb2.pyi | 6 +- .../pb_python/flyteidl/service/admin_pb2.py | 6 +- .../flyteidl/service/flyteadmin/README.md | 4 +- .../flyteadmin/api/admin_service_api.py | 38 +- .../flyteadmin/test/test_admin_service_api.py | 8 +- flyteidl/gen/pb_rust/datacatalog.rs | 5 +- flyteidl/protos/flyteidl/admin/common.proto | 1 - .../flyteidl/datacatalog/datacatalog.proto | 4 +- flyteidl/protos/flyteidl/service/admin.proto | 8 - 23 files changed, 893 insertions(+), 1368 deletions(-) diff --git a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc index 98eff8cf24..d38ae9e8c3 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc @@ -1001,7 +1001,6 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fdatacatalog_2fdatacatalo PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetID, domain_), PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetID, version_), PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetID, uuid_), - PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetID, partition_), PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetID, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::datacatalog::Artifact, _internal_metadata_), @@ -1137,19 +1136,19 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SE { 149, -1, sizeof(::datacatalog::Dataset)}, { 157, -1, sizeof(::datacatalog::Partition)}, { 164, -1, sizeof(::datacatalog::DatasetID)}, - { 176, -1, sizeof(::datacatalog::Artifact)}, - { 188, -1, sizeof(::datacatalog::ArtifactData)}, - { 195, -1, sizeof(::datacatalog::Tag)}, - { 203, 210, sizeof(::datacatalog::Metadata_KeyMapEntry_DoNotUse)}, - { 212, -1, sizeof(::datacatalog::Metadata)}, - { 218, -1, sizeof(::datacatalog::FilterExpression)}, - { 224, -1, sizeof(::datacatalog::SinglePropertyFilter)}, - { 235, -1, sizeof(::datacatalog::ArtifactPropertyFilter)}, - { 242, -1, sizeof(::datacatalog::TagPropertyFilter)}, - { 249, -1, sizeof(::datacatalog::PartitionPropertyFilter)}, - { 256, -1, sizeof(::datacatalog::KeyValuePair)}, - { 263, -1, sizeof(::datacatalog::DatasetPropertyFilter)}, - { 274, -1, sizeof(::datacatalog::PaginationOptions)}, + { 175, -1, sizeof(::datacatalog::Artifact)}, + { 187, -1, sizeof(::datacatalog::ArtifactData)}, + { 194, -1, sizeof(::datacatalog::Tag)}, + { 202, 209, sizeof(::datacatalog::Metadata_KeyMapEntry_DoNotUse)}, + { 211, -1, sizeof(::datacatalog::Metadata)}, + { 217, -1, sizeof(::datacatalog::FilterExpression)}, + { 223, -1, sizeof(::datacatalog::SinglePropertyFilter)}, + { 234, -1, sizeof(::datacatalog::ArtifactPropertyFilter)}, + { 241, -1, sizeof(::datacatalog::TagPropertyFilter)}, + { 248, -1, sizeof(::datacatalog::PartitionPropertyFilter)}, + { 255, -1, sizeof(::datacatalog::KeyValuePair)}, + { 262, -1, sizeof(::datacatalog::DatasetPropertyFilter)}, + { 273, -1, sizeof(::datacatalog::PaginationOptions)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -1256,80 +1255,79 @@ const char descriptor_table_protodef_flyteidl_2fdatacatalog_2fdatacatalog_2eprot "datacatalog.DatasetID\022\'\n\010metadata\030\002 \001(\0132" "\025.datacatalog.Metadata\022\025\n\rpartitionKeys\030" "\003 \003(\t\"\'\n\tPartition\022\013\n\003key\030\001 \001(\t\022\r\n\005value" - "\030\002 \001(\t\"y\n\tDatasetID\022\017\n\007project\030\001 \001(\t\022\014\n\004" + "\030\002 \001(\t\"f\n\tDatasetID\022\017\n\007project\030\001 \001(\t\022\014\n\004" "name\030\002 \001(\t\022\016\n\006domain\030\003 \001(\t\022\017\n\007version\030\004 " - "\001(\t\022\014\n\004UUID\030\005 \001(\t\022\021\n\tpartition\030\006 \001(\t\022\013\n\003" - "org\030\007 \001(\t\"\215\002\n\010Artifact\022\n\n\002id\030\001 \001(\t\022\'\n\007da" - "taset\030\002 \001(\0132\026.datacatalog.DatasetID\022\'\n\004d" - "ata\030\003 \003(\0132\031.datacatalog.ArtifactData\022\'\n\010" - "metadata\030\004 \001(\0132\025.datacatalog.Metadata\022*\n" - "\npartitions\030\005 \003(\0132\026.datacatalog.Partitio" - "n\022\036\n\004tags\030\006 \003(\0132\020.datacatalog.Tag\022.\n\ncre" - "ated_at\030\007 \001(\0132\032.google.protobuf.Timestam" - "p\"C\n\014ArtifactData\022\014\n\004name\030\001 \001(\t\022%\n\005value" - "\030\002 \001(\0132\026.flyteidl.core.Literal\"Q\n\003Tag\022\014\n" - "\004name\030\001 \001(\t\022\023\n\013artifact_id\030\002 \001(\t\022\'\n\007data" - "set\030\003 \001(\0132\026.datacatalog.DatasetID\"m\n\010Met" - "adata\0222\n\007key_map\030\001 \003(\0132!.datacatalog.Met" - "adata.KeyMapEntry\032-\n\013KeyMapEntry\022\013\n\003key\030" - "\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"F\n\020FilterExpres" - "sion\0222\n\007filters\030\001 \003(\0132!.datacatalog.Sing" - "lePropertyFilter\"\211\003\n\024SinglePropertyFilte" - "r\0224\n\ntag_filter\030\001 \001(\0132\036.datacatalog.TagP" - "ropertyFilterH\000\022@\n\020partition_filter\030\002 \001(" - "\0132$.datacatalog.PartitionPropertyFilterH" - "\000\022>\n\017artifact_filter\030\003 \001(\0132#.datacatalog" - ".ArtifactPropertyFilterH\000\022<\n\016dataset_fil" - "ter\030\004 \001(\0132\".datacatalog.DatasetPropertyF" - "ilterH\000\022F\n\010operator\030\n \001(\01624.datacatalog." - "SinglePropertyFilter.ComparisonOperator\"" - " \n\022ComparisonOperator\022\n\n\006EQUALS\020\000B\021\n\017pro" - "perty_filter\";\n\026ArtifactPropertyFilter\022\025" - "\n\013artifact_id\030\001 \001(\tH\000B\n\n\010property\"3\n\021Tag" - "PropertyFilter\022\022\n\010tag_name\030\001 \001(\tH\000B\n\n\010pr" - "operty\"S\n\027PartitionPropertyFilter\022,\n\007key" - "_val\030\001 \001(\0132\031.datacatalog.KeyValuePairH\000B" - "\n\n\010property\"*\n\014KeyValuePair\022\013\n\003key\030\001 \001(\t" - "\022\r\n\005value\030\002 \001(\t\"\200\001\n\025DatasetPropertyFilte" - "r\022\021\n\007project\030\001 \001(\tH\000\022\016\n\004name\030\002 \001(\tH\000\022\020\n\006" - "domain\030\003 \001(\tH\000\022\021\n\007version\030\004 \001(\tH\000\022\023\n\tpar" - "tition\030\005 \001(\tH\000B\n\n\010property\"\361\001\n\021Paginatio" - "nOptions\022\r\n\005limit\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\0227" - "\n\007sortKey\030\003 \001(\0162&.datacatalog.Pagination" - "Options.SortKey\022;\n\tsortOrder\030\004 \001(\0162(.dat" - "acatalog.PaginationOptions.SortOrder\"*\n\t" - "SortOrder\022\016\n\nDESCENDING\020\000\022\r\n\tASCENDING\020\001" - "\"\034\n\007SortKey\022\021\n\rCREATION_TIME\020\0002\206\007\n\013DataC" - "atalog\022V\n\rCreateDataset\022!.datacatalog.Cr" - "eateDatasetRequest\032\".datacatalog.CreateD" - "atasetResponse\022M\n\nGetDataset\022\036.datacatal" - "og.GetDatasetRequest\032\037.datacatalog.GetDa" - "tasetResponse\022Y\n\016CreateArtifact\022\".dataca" - "talog.CreateArtifactRequest\032#.datacatalo" - "g.CreateArtifactResponse\022P\n\013GetArtifact\022" - "\037.datacatalog.GetArtifactRequest\032 .datac" - "atalog.GetArtifactResponse\022A\n\006AddTag\022\032.d" - "atacatalog.AddTagRequest\032\033.datacatalog.A" - "ddTagResponse\022V\n\rListArtifacts\022!.datacat" - "alog.ListArtifactsRequest\032\".datacatalog." - "ListArtifactsResponse\022S\n\014ListDatasets\022 ." - "datacatalog.ListDatasetsRequest\032!.dataca" - "talog.ListDatasetsResponse\022Y\n\016UpdateArti" - "fact\022\".datacatalog.UpdateArtifactRequest" - "\032#.datacatalog.UpdateArtifactResponse\022q\n" - "\026GetOrExtendReservation\022*.datacatalog.Ge" - "tOrExtendReservationRequest\032+.datacatalo" - "g.GetOrExtendReservationResponse\022e\n\022Rele" - "aseReservation\022&.datacatalog.ReleaseRese" - "rvationRequest\032\'.datacatalog.ReleaseRese" - "rvationResponseBCZAgithub.com/flyteorg/f" - "lyte/flyteidl/gen/pb-go/flyteidl/datacat" - "alogb\006proto3" + "\001(\t\022\014\n\004UUID\030\005 \001(\t\022\013\n\003org\030\006 \001(\t\"\215\002\n\010Artif" + "act\022\n\n\002id\030\001 \001(\t\022\'\n\007dataset\030\002 \001(\0132\026.datac" + "atalog.DatasetID\022\'\n\004data\030\003 \003(\0132\031.datacat" + "alog.ArtifactData\022\'\n\010metadata\030\004 \001(\0132\025.da" + "tacatalog.Metadata\022*\n\npartitions\030\005 \003(\0132\026" + ".datacatalog.Partition\022\036\n\004tags\030\006 \003(\0132\020.d" + "atacatalog.Tag\022.\n\ncreated_at\030\007 \001(\0132\032.goo" + "gle.protobuf.Timestamp\"C\n\014ArtifactData\022\014" + "\n\004name\030\001 \001(\t\022%\n\005value\030\002 \001(\0132\026.flyteidl.c" + "ore.Literal\"Q\n\003Tag\022\014\n\004name\030\001 \001(\t\022\023\n\013arti" + "fact_id\030\002 \001(\t\022\'\n\007dataset\030\003 \001(\0132\026.datacat" + "alog.DatasetID\"m\n\010Metadata\0222\n\007key_map\030\001 " + "\003(\0132!.datacatalog.Metadata.KeyMapEntry\032-" + "\n\013KeyMapEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(" + "\t:\0028\001\"F\n\020FilterExpression\0222\n\007filters\030\001 \003" + "(\0132!.datacatalog.SinglePropertyFilter\"\211\003" + "\n\024SinglePropertyFilter\0224\n\ntag_filter\030\001 \001" + "(\0132\036.datacatalog.TagPropertyFilterH\000\022@\n\020" + "partition_filter\030\002 \001(\0132$.datacatalog.Par" + "titionPropertyFilterH\000\022>\n\017artifact_filte" + "r\030\003 \001(\0132#.datacatalog.ArtifactPropertyFi" + "lterH\000\022<\n\016dataset_filter\030\004 \001(\0132\".datacat" + "alog.DatasetPropertyFilterH\000\022F\n\010operator" + "\030\n \001(\01624.datacatalog.SinglePropertyFilte" + "r.ComparisonOperator\" \n\022ComparisonOperat" + "or\022\n\n\006EQUALS\020\000B\021\n\017property_filter\";\n\026Art" + "ifactPropertyFilter\022\025\n\013artifact_id\030\001 \001(\t" + "H\000B\n\n\010property\"3\n\021TagPropertyFilter\022\022\n\010t" + "ag_name\030\001 \001(\tH\000B\n\n\010property\"S\n\027Partition" + "PropertyFilter\022,\n\007key_val\030\001 \001(\0132\031.dataca" + "talog.KeyValuePairH\000B\n\n\010property\"*\n\014KeyV" + "aluePair\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\200\001\n" + "\025DatasetPropertyFilter\022\021\n\007project\030\001 \001(\tH" + "\000\022\016\n\004name\030\002 \001(\tH\000\022\020\n\006domain\030\003 \001(\tH\000\022\021\n\007v" + "ersion\030\004 \001(\tH\000\022\023\n\tpartition\030\005 \001(\tH\000B\n\n\010p" + "roperty\"\361\001\n\021PaginationOptions\022\r\n\005limit\030\001" + " \001(\r\022\r\n\005token\030\002 \001(\t\0227\n\007sortKey\030\003 \001(\0162&.d" + "atacatalog.PaginationOptions.SortKey\022;\n\t" + "sortOrder\030\004 \001(\0162(.datacatalog.Pagination" + "Options.SortOrder\"*\n\tSortOrder\022\016\n\nDESCEN" + "DING\020\000\022\r\n\tASCENDING\020\001\"\034\n\007SortKey\022\021\n\rCREA" + "TION_TIME\020\0002\206\007\n\013DataCatalog\022V\n\rCreateDat" + "aset\022!.datacatalog.CreateDatasetRequest\032" + "\".datacatalog.CreateDatasetResponse\022M\n\nG" + "etDataset\022\036.datacatalog.GetDatasetReques" + "t\032\037.datacatalog.GetDatasetResponse\022Y\n\016Cr" + "eateArtifact\022\".datacatalog.CreateArtifac" + "tRequest\032#.datacatalog.CreateArtifactRes" + "ponse\022P\n\013GetArtifact\022\037.datacatalog.GetAr" + "tifactRequest\032 .datacatalog.GetArtifactR" + "esponse\022A\n\006AddTag\022\032.datacatalog.AddTagRe" + "quest\032\033.datacatalog.AddTagResponse\022V\n\rLi" + "stArtifacts\022!.datacatalog.ListArtifactsR" + "equest\032\".datacatalog.ListArtifactsRespon" + "se\022S\n\014ListDatasets\022 .datacatalog.ListDat" + "asetsRequest\032!.datacatalog.ListDatasetsR" + "esponse\022Y\n\016UpdateArtifact\022\".datacatalog." + "UpdateArtifactRequest\032#.datacatalog.Upda" + "teArtifactResponse\022q\n\026GetOrExtendReserva" + "tion\022*.datacatalog.GetOrExtendReservatio" + "nRequest\032+.datacatalog.GetOrExtendReserv" + "ationResponse\022e\n\022ReleaseReservation\022&.da" + "tacatalog.ReleaseReservationRequest\032\'.da" + "tacatalog.ReleaseReservationResponseBCZA" + "github.com/flyteorg/flyte/flyteidl/gen/p" + "b-go/flyteidl/datacatalogb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fdatacatalog_2fdatacatalog_2eproto = { false, InitDefaults_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, descriptor_table_protodef_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, - "flyteidl/datacatalog/datacatalog.proto", &assign_descriptors_table_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, 4972, + "flyteidl/datacatalog/datacatalog.proto", &assign_descriptors_table_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, 4953, }; void AddDescriptors_flyteidl_2fdatacatalog_2fdatacatalog_2eproto() { @@ -9664,7 +9662,6 @@ const int DatasetID::kNameFieldNumber; const int DatasetID::kDomainFieldNumber; const int DatasetID::kVersionFieldNumber; const int DatasetID::kUUIDFieldNumber; -const int DatasetID::kPartitionFieldNumber; const int DatasetID::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 @@ -9697,10 +9694,6 @@ DatasetID::DatasetID(const DatasetID& from) if (from.uuid().size() > 0) { uuid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.uuid_); } - partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - if (from.partition().size() > 0) { - partition_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.partition_); - } org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (from.org().size() > 0) { org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); @@ -9716,7 +9709,6 @@ void DatasetID::SharedCtor() { domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); version_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); uuid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } @@ -9731,7 +9723,6 @@ void DatasetID::SharedDtor() { domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); version_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); uuid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - partition_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } @@ -9755,7 +9746,6 @@ void DatasetID::Clear() { domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); uuid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - partition_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); _internal_metadata_.Clear(); } @@ -9853,27 +9843,11 @@ const char* DatasetID::_InternalParse(const char* begin, const char* end, void* ptr += size; break; } - // string partition = 6; + // string org = 6; case 6: { if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual; ptr = ::google::protobuf::io::ReadSize(ptr, &size); GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); - ctx->extra_parse_data().SetFieldName("datacatalog.DatasetID.partition"); - object = msg->mutable_partition(); - 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; - } - // string org = 7; - case 7: { - if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual; - ptr = ::google::protobuf::io::ReadSize(ptr, &size); - GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); ctx->extra_parse_data().SetFieldName("datacatalog.DatasetID.org"); object = msg->mutable_org(); if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { @@ -9994,24 +9968,9 @@ bool DatasetID::MergePartialFromCodedStream( break; } - // string partition = 6; + // string org = 6; case 6: { if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) { - DO_(::google::protobuf::internal::WireFormatLite::ReadString( - input, this->mutable_partition())); - DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->partition().data(), static_cast(this->partition().length()), - ::google::protobuf::internal::WireFormatLite::PARSE, - "datacatalog.DatasetID.partition")); - } else { - goto handle_unusual; - } - break; - } - - // string org = 7; - case 7: { - if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) { DO_(::google::protobuf::internal::WireFormatLite::ReadString( input, this->mutable_org())); DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( @@ -10101,24 +10060,14 @@ void DatasetID::SerializeWithCachedSizes( 5, this->uuid(), output); } - // string partition = 6; - if (this->partition().size() > 0) { - ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->partition().data(), static_cast(this->partition().length()), - ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "datacatalog.DatasetID.partition"); - ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( - 6, this->partition(), output); - } - - // string org = 7; + // string org = 6; if (this->org().size() > 0) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->org().data(), static_cast(this->org().length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "datacatalog.DatasetID.org"); ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( - 7, this->org(), output); + 6, this->org(), output); } if (_internal_metadata_.have_unknown_fields()) { @@ -10189,18 +10138,7 @@ ::google::protobuf::uint8* DatasetID::InternalSerializeWithCachedSizesToArray( 5, this->uuid(), target); } - // string partition = 6; - if (this->partition().size() > 0) { - ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->partition().data(), static_cast(this->partition().length()), - ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "datacatalog.DatasetID.partition"); - target = - ::google::protobuf::internal::WireFormatLite::WriteStringToArray( - 6, this->partition(), target); - } - - // string org = 7; + // string org = 6; if (this->org().size() > 0) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->org().data(), static_cast(this->org().length()), @@ -10208,7 +10146,7 @@ ::google::protobuf::uint8* DatasetID::InternalSerializeWithCachedSizesToArray( "datacatalog.DatasetID.org"); target = ::google::protobuf::internal::WireFormatLite::WriteStringToArray( - 7, this->org(), target); + 6, this->org(), target); } if (_internal_metadata_.have_unknown_fields()) { @@ -10267,14 +10205,7 @@ size_t DatasetID::ByteSizeLong() const { this->uuid()); } - // string partition = 6; - if (this->partition().size() > 0) { - total_size += 1 + - ::google::protobuf::internal::WireFormatLite::StringSize( - this->partition()); - } - - // string org = 7; + // string org = 6; if (this->org().size() > 0) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize( @@ -10328,10 +10259,6 @@ void DatasetID::MergeFrom(const DatasetID& from) { uuid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.uuid_); } - if (from.partition().size() > 0) { - - partition_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.partition_); - } if (from.org().size() > 0) { org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); @@ -10373,8 +10300,6 @@ void DatasetID::InternalSwap(DatasetID* other) { GetArenaNoVirtual()); uuid_.Swap(&other->uuid_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - partition_.Swap(&other->partition_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h index c5167c11ba..10f5aa1b8a 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h @@ -3518,23 +3518,9 @@ class DatasetID final : ::std::string* release_uuid(); void set_allocated_uuid(::std::string* uuid); - // string partition = 6; - void clear_partition(); - static const int kPartitionFieldNumber = 6; - const ::std::string& partition() const; - void set_partition(const ::std::string& value); - #if LANG_CXX11 - void set_partition(::std::string&& value); - #endif - void set_partition(const char* value); - void set_partition(const char* value, size_t size); - ::std::string* mutable_partition(); - ::std::string* release_partition(); - void set_allocated_partition(::std::string* partition); - - // string org = 7; + // string org = 6; void clear_org(); - static const int kOrgFieldNumber = 7; + static const int kOrgFieldNumber = 6; const ::std::string& org() const; void set_org(const ::std::string& value); #if LANG_CXX11 @@ -3556,7 +3542,6 @@ class DatasetID final : ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr version_; ::google::protobuf::internal::ArenaStringPtr uuid_; - ::google::protobuf::internal::ArenaStringPtr partition_; ::google::protobuf::internal::ArenaStringPtr org_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fdatacatalog_2fdatacatalog_2eproto; @@ -8094,60 +8079,7 @@ inline void DatasetID::set_allocated_uuid(::std::string* uuid) { // @@protoc_insertion_point(field_set_allocated:datacatalog.DatasetID.UUID) } -// string partition = 6; -inline void DatasetID::clear_partition() { - partition_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline const ::std::string& DatasetID::partition() const { - // @@protoc_insertion_point(field_get:datacatalog.DatasetID.partition) - return partition_.GetNoArena(); -} -inline void DatasetID::set_partition(const ::std::string& value) { - - partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:datacatalog.DatasetID.partition) -} -#if LANG_CXX11 -inline void DatasetID::set_partition(::std::string&& value) { - - partition_.SetNoArena( - &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); - // @@protoc_insertion_point(field_set_rvalue:datacatalog.DatasetID.partition) -} -#endif -inline void DatasetID::set_partition(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:datacatalog.DatasetID.partition) -} -inline void DatasetID::set_partition(const char* value, size_t size) { - - partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), - ::std::string(reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:datacatalog.DatasetID.partition) -} -inline ::std::string* DatasetID::mutable_partition() { - - // @@protoc_insertion_point(field_mutable:datacatalog.DatasetID.partition) - return partition_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline ::std::string* DatasetID::release_partition() { - // @@protoc_insertion_point(field_release:datacatalog.DatasetID.partition) - - return partition_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline void DatasetID::set_allocated_partition(::std::string* partition) { - if (partition != nullptr) { - - } else { - - } - partition_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), partition); - // @@protoc_insertion_point(field_set_allocated:datacatalog.DatasetID.partition) -} - -// string org = 7; +// string org = 6; inline void DatasetID::clear_org() { org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc index 3c831a1101..54b3861c05 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc @@ -52,7 +52,7 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "admin/task_execution.proto\032\034flyteidl/adm" "in/version.proto\032\033flyteidl/admin/common." "proto\032\'flyteidl/admin/description_entity" - ".proto2\371q\n\014AdminService\022m\n\nCreateTask\022!." + ".proto2\265q\n\014AdminService\022m\n\nCreateTask\022!." "flyteidl.admin.TaskCreateRequest\032\".flyte" "idl.admin.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/a" "pi/v1/tasks:\001*\022\330\001\n\007GetTask\022 .flyteidl.ad" @@ -233,197 +233,195 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "on_id.name}/{id.node_id}\022\177\n\017RegisterProj" "ect\022&.flyteidl.admin.ProjectRegisterRequ" "est\032\'.flyteidl.admin.ProjectRegisterResp" - "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\333\001\n\rUp" + "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\227\001\n\rUp" "dateProject\022\027.flyteidl.admin.Project\032%.f" - "lyteidl.admin.ProjectUpdateResponse\"\211\001\202\323" - "\344\223\002\202\001\032\025/api/v1/projects/{id}:\001*Z\032\032\025/api/" - "v1/projects/{id}:\001*Z$\032\037/api/v1/projects/" - "org/{org}/{id}:\001*Z$\032\037/api/v1/projects/or" - "g/{org}/{id}:\001*\022f\n\014ListProjects\022\".flytei" - "dl.admin.ProjectListRequest\032\030.flyteidl.a" - "dmin.Projects\"\030\202\323\344\223\002\022\022\020/api/v1/projects\022" - "\231\001\n\023CreateWorkflowEvent\022-.flyteidl.admin" - ".WorkflowExecutionEventRequest\032..flyteid" - "l.admin.WorkflowExecutionEventResponse\"#" - "\202\323\344\223\002\035\"\030/api/v1/events/workflows:\001*\022\211\001\n\017" - "CreateNodeEvent\022).flyteidl.admin.NodeExe" - "cutionEventRequest\032*.flyteidl.admin.Node" - "ExecutionEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/" - "events/nodes:\001*\022\211\001\n\017CreateTaskEvent\022).fl" - "yteidl.admin.TaskExecutionEventRequest\032*" - ".flyteidl.admin.TaskExecutionEventRespon" - "se\"\037\202\323\344\223\002\031\"\024/api/v1/events/tasks:\001*\022\313\005\n\020" - "GetTaskExecution\022\'.flyteidl.admin.TaskEx" - "ecutionGetRequest\032\035.flyteidl.admin.TaskE" - "xecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1/task_execut" - "ions/{id.node_execution_id.execution_id." - "project}/{id.node_execution_id.execution" - "_id.domain}/{id.node_execution_id.execut" - "ion_id.name}/{id.node_execution_id.node_" - "id}/{id.task_id.project}/{id.task_id.dom" - "ain}/{id.task_id.name}/{id.task_id.versi" - "on}/{id.retry_attempt}Z\310\002\022\305\002/api/v1/task" - "_executions/org/{id.node_execution_id.ex" - "ecution_id.org}/{id.node_execution_id.ex" - "ecution_id.project}/{id.node_execution_i" - "d.execution_id.domain}/{id.node_executio" - "n_id.execution_id.name}/{id.node_executi" - "on_id.node_id}/{id.task_id.project}/{id." - "task_id.domain}/{id.task_id.name}/{id.ta" - "sk_id.version}/{id.retry_attempt}\022\361\003\n\022Li" - "stTaskExecutions\022(.flyteidl.admin.TaskEx" - "ecutionListRequest\032!.flyteidl.admin.Task" - "ExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/api/v1/task_e" - "xecutions/{node_execution_id.execution_i" - "d.project}/{node_execution_id.execution_" - "id.domain}/{node_execution_id.execution_" - "id.name}/{node_execution_id.node_id}Z\326\001\022" - "\323\001/api/v1/task_executions/org/{node_exec" - "ution_id.execution_id.org}/{node_executi" - "on_id.execution_id.project}/{node_execut" - "ion_id.execution_id.domain}/{node_execut" - "ion_id.execution_id.name}/{node_executio" - "n_id.node_id}\022\354\005\n\024GetTaskExecutionData\022+" - ".flyteidl.admin.TaskExecutionGetDataRequ" - "est\032,.flyteidl.admin.TaskExecutionGetDat" - "aResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v1/data/task_" - "executions/{id.node_execution_id.executi" - "on_id.project}/{id.node_execution_id.exe" - "cution_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}Z\315\002\022\312\002/api/v" - "1/data/task_executions/org/{id.node_exec" - "ution_id.execution_id.org}/{id.node_exec" - "ution_id.execution_id.project}/{id.node_" - "execution_id.execution_id.domain}/{id.no" - "de_execution_id.execution_id.name}/{id.n" - "ode_execution_id.node_id}/{id.task_id.pr" - "oject}/{id.task_id.domain}/{id.task_id.n" - "ame}/{id.task_id.version}/{id.retry_atte" - "mpt}\022\313\002\n\035UpdateProjectDomainAttributes\0224" - ".flyteidl.admin.ProjectDomainAttributesU" - "pdateRequest\0325.flyteidl.admin.ProjectDom" - "ainAttributesUpdateResponse\"\274\001\202\323\344\223\002\265\001\032J/" - "api/v1/project_domain_attributes/{attrib" - "utes.project}/{attributes.domain}:\001*Zd\032_" - "/api/v1/project_domain_attributes/org/{a" - "ttributes.org}/{attributes.project}/{att" - "ributes.domain}:\001*\022\203\002\n\032GetProjectDomainA" - "ttributes\0221.flyteidl.admin.ProjectDomain" - "AttributesGetRequest\0322.flyteidl.admin.Pr" - "ojectDomainAttributesGetResponse\"~\202\323\344\223\002x" - "\0224/api/v1/project_domain_attributes/{pro" - "ject}/{domain}Z@\022>/api/v1/project_domain" - "_attributes/org/{org}/{project}/{domain}" - "\022\223\002\n\035DeleteProjectDomainAttributes\0224.fly" - "teidl.admin.ProjectDomainAttributesDelet" - "eRequest\0325.flyteidl.admin.ProjectDomainA" - "ttributesDeleteResponse\"\204\001\202\323\344\223\002~*4/api/v" - "1/project_domain_attributes/{project}/{d" - "omain}:\001*ZC*>/api/v1/project_domain_attr" - "ibutes/org/{org}/{project}/{domain}:\001*\022\212" - "\002\n\027UpdateProjectAttributes\022..flyteidl.ad" - "min.ProjectAttributesUpdateRequest\032/.fly" - "teidl.admin.ProjectAttributesUpdateRespo" - "nse\"\215\001\202\323\344\223\002\206\001\032//api/v1/project_attribute" - "s/{attributes.project}:\001*ZP\032K/api/v1/pro" - "ject_domain_attributes/org/{attributes.o" - "rg}/{attributes.project}:\001*\022\330\001\n\024GetProje" - "ctAttributes\022+.flyteidl.admin.ProjectAtt" - "ributesGetRequest\032,.flyteidl.admin.Proje" - "ctAttributesGetResponse\"e\202\323\344\223\002_\022$/api/v1" - "/project_attributes/{project}Z7\0225/api/v1" - "/project_domain_attributes/org/{org}/{pr" - "oject}\022\347\001\n\027DeleteProjectAttributes\022..fly" - "teidl.admin.ProjectAttributesDeleteReque" - "st\032/.flyteidl.admin.ProjectAttributesDel" - "eteResponse\"k\202\323\344\223\002e*$/api/v1/project_att" - "ributes/{project}:\001*Z:*5/api/v1/project_" - "domain_attributes/org/{org}/{project}:\001*" - "\022\334\002\n\030UpdateWorkflowAttributes\022/.flyteidl" - ".admin.WorkflowAttributesUpdateRequest\0320" - ".flyteidl.admin.WorkflowAttributesUpdate" - "Response\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/workflow_att" - "ributes/{attributes.project}/{attributes" - ".domain}/{attributes.workflow}:\001*Zt\032o/ap" - "i/v1/workflow_attributes/org/{attributes" - ".org}/{attributes.project}/{attributes.d" - "omain}/{attributes.workflow}:\001*\022\200\002\n\025GetW" - "orkflowAttributes\022,.flyteidl.admin.Workf" - "lowAttributesGetRequest\032-.flyteidl.admin" - ".WorkflowAttributesGetResponse\"\211\001\202\323\344\223\002\202\001" - "\0229/api/v1/workflow_attributes/{project}/" - "{domain}/{workflow}ZE\022C/api/v1/workflow_" - "attributes/org/{org}/{project}/{domain}/" - "{workflow}\022\217\002\n\030DeleteWorkflowAttributes\022" - "/.flyteidl.admin.WorkflowAttributesDelet" - "eRequest\0320.flyteidl.admin.WorkflowAttrib" - "utesDeleteResponse\"\217\001\202\323\344\223\002\210\001*9/api/v1/wo" - "rkflow_attributes/{project}/{domain}/{wo" - "rkflow}:\001*ZH*C/api/v1/workflow_attribute" - "s/org/{org}/{project}/{domain}/{workflow" - "}:\001*\022\240\001\n\027ListMatchableAttributes\022..flyte" - "idl.admin.ListMatchableAttributesRequest" - "\032/.flyteidl.admin.ListMatchableAttribute" - "sResponse\"$\202\323\344\223\002\036\022\034/api/v1/matchable_att" - "ributes\022\350\001\n\021ListNamedEntities\022&.flyteidl" - ".admin.NamedEntityListRequest\032\037.flyteidl" - ".admin.NamedEntityList\"\211\001\202\323\344\223\002\202\001\0229/api/v" - "1/named_entities/{resource_type}/{projec" - "t}/{domain}ZE\022C/api/v1/named_entities/{r" - "esource_type}/org/{org}/{project}/{domai" - "n}\022\203\002\n\016GetNamedEntity\022%.flyteidl.admin.N" - "amedEntityGetRequest\032\033.flyteidl.admin.Na" - "medEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1/named_entit" - "ies/{resource_type}/{id.project}/{id.dom" - "ain}/{id.name}ZX\022V/api/v1/named_entities" - "/{resource_type}/org/{id.org}/{id.projec" - "t}/{id.domain}/{id.name}\022\235\002\n\021UpdateNamed" - "Entity\022(.flyteidl.admin.NamedEntityUpdat" - "eRequest\032).flyteidl.admin.NamedEntityUpd" - "ateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/v1/named_ent" - "ities/{resource_type}/{id.project}/{id.d" - "omain}/{id.name}:\001*Z[\032V/api/v1/named_ent" - "ities/{resource_type}/org/{id.org}/{id.p" - "roject}/{id.domain}/{id.name}:\001*\022l\n\nGetV" - "ersion\022!.flyteidl.admin.GetVersionReques" - "t\032\".flyteidl.admin.GetVersionResponse\"\027\202" - "\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024GetDescriptio" - "nEntity\022 .flyteidl.admin.ObjectGetReques" - "t\032!.flyteidl.admin.DescriptionEntity\"\330\001\202" - "\323\344\223\002\321\001\022_/api/v1/description_entities/{id" - ".resource_type}/{id.project}/{id.domain}" - "/{id.name}/{id.version}Zn\022l/api/v1/descr" - "iption_entities/org/{id.org}/{id.resourc" - "e_type}/{id.project}/{id.domain}/{id.nam" - "e}/{id.version}\022\310\003\n\027ListDescriptionEntit" - "ies\022,.flyteidl.admin.DescriptionEntityLi" - "stRequest\032%.flyteidl.admin.DescriptionEn" - "tityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/description_" - "entities/{resource_type}/{id.project}/{i" - "d.domain}/{id.name}Z^\022\\/api/v1/descripti" - "on_entities/{resource_type}/org/{id.org}" - "/{id.project}/{id.domain}/{id.name}ZG\022E/" - "api/v1/description_entities/{resource_ty" - "pe}/{id.project}/{id.domain}ZT\022R/api/v1/" - "description_entities/{resource_type}/org" - "/{id.org}/{id.project}/{id.domain}\022\225\002\n\023G" - "etExecutionMetrics\0222.flyteidl.admin.Work" - "flowExecutionGetMetricsRequest\0323.flyteid" - "l.admin.WorkflowExecutionGetMetricsRespo" - "nse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metrics/execution" - "s/{id.project}/{id.domain}/{id.name}ZL\022J" - "/api/v1/metrics/executions/org/{id.org}/" - "{id.project}/{id.domain}/{id.name}B\?Z=gi" - "thub.com/flyteorg/flyte/flyteidl/gen/pb-" - "go/flyteidl/serviceb\006proto3" + "lyteidl.admin.ProjectUpdateResponse\"F\202\323\344" + "\223\002@\032\025/api/v1/projects/{id}:\001*Z$\032\037/api/v1" + "/projects/org/{org}/{id}:\001*\022f\n\014ListProje" + "cts\022\".flyteidl.admin.ProjectListRequest\032" + "\030.flyteidl.admin.Projects\"\030\202\323\344\223\002\022\022\020/api/" + "v1/projects\022\231\001\n\023CreateWorkflowEvent\022-.fl" + "yteidl.admin.WorkflowExecutionEventReque" + "st\032..flyteidl.admin.WorkflowExecutionEve" + "ntResponse\"#\202\323\344\223\002\035\"\030/api/v1/events/workf" + "lows:\001*\022\211\001\n\017CreateNodeEvent\022).flyteidl.a" + "dmin.NodeExecutionEventRequest\032*.flyteid" + "l.admin.NodeExecutionEventResponse\"\037\202\323\344\223" + "\002\031\"\024/api/v1/events/nodes:\001*\022\211\001\n\017CreateTa" + "skEvent\022).flyteidl.admin.TaskExecutionEv" + "entRequest\032*.flyteidl.admin.TaskExecutio" + "nEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/t" + "asks:\001*\022\313\005\n\020GetTaskExecution\022\'.flyteidl." + "admin.TaskExecutionGetRequest\032\035.flyteidl" + ".admin.TaskExecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1" + "/task_executions/{id.node_execution_id.e" + "xecution_id.project}/{id.node_execution_" + "id.execution_id.domain}/{id.node_executi" + "on_id.execution_id.name}/{id.node_execut" + "ion_id.node_id}/{id.task_id.project}/{id" + ".task_id.domain}/{id.task_id.name}/{id.t" + "ask_id.version}/{id.retry_attempt}Z\310\002\022\305\002" + "/api/v1/task_executions/org/{id.node_exe" + "cution_id.execution_id.org}/{id.node_exe" + "cution_id.execution_id.project}/{id.node" + "_execution_id.execution_id.domain}/{id.n" + "ode_execution_id.execution_id.name}/{id." + "node_execution_id.node_id}/{id.task_id.p" + "roject}/{id.task_id.domain}/{id.task_id." + "name}/{id.task_id.version}/{id.retry_att" + "empt}\022\361\003\n\022ListTaskExecutions\022(.flyteidl." + "admin.TaskExecutionListRequest\032!.flyteid" + "l.admin.TaskExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/a" + "pi/v1/task_executions/{node_execution_id" + ".execution_id.project}/{node_execution_i" + "d.execution_id.domain}/{node_execution_i" + "d.execution_id.name}/{node_execution_id." + "node_id}Z\326\001\022\323\001/api/v1/task_executions/or" + "g/{node_execution_id.execution_id.org}/{" + "node_execution_id.execution_id.project}/" + "{node_execution_id.execution_id.domain}/" + "{node_execution_id.execution_id.name}/{n" + "ode_execution_id.node_id}\022\354\005\n\024GetTaskExe" + "cutionData\022+.flyteidl.admin.TaskExecutio" + "nGetDataRequest\032,.flyteidl.admin.TaskExe" + "cutionGetDataResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v" + "1/data/task_executions/{id.node_executio" + "n_id.execution_id.project}/{id.node_exec" + "ution_id.execution_id.domain}/{id.node_e" + "xecution_id.execution_id.name}/{id.node_" + "execution_id.node_id}/{id.task_id.projec" + "t}/{id.task_id.domain}/{id.task_id.name}" + "/{id.task_id.version}/{id.retry_attempt}" + "Z\315\002\022\312\002/api/v1/data/task_executions/org/{" + "id.node_execution_id.execution_id.org}/{" + "id.node_execution_id.execution_id.projec" + "t}/{id.node_execution_id.execution_id.do" + "main}/{id.node_execution_id.execution_id" + ".name}/{id.node_execution_id.node_id}/{i" + "d.task_id.project}/{id.task_id.domain}/{" + "id.task_id.name}/{id.task_id.version}/{i" + "d.retry_attempt}\022\313\002\n\035UpdateProjectDomain" + "Attributes\0224.flyteidl.admin.ProjectDomai" + "nAttributesUpdateRequest\0325.flyteidl.admi" + "n.ProjectDomainAttributesUpdateResponse\"" + "\274\001\202\323\344\223\002\265\001\032J/api/v1/project_domain_attrib" + "utes/{attributes.project}/{attributes.do" + "main}:\001*Zd\032_/api/v1/project_domain_attri" + "butes/org/{attributes.org}/{attributes.p" + "roject}/{attributes.domain}:\001*\022\203\002\n\032GetPr" + "ojectDomainAttributes\0221.flyteidl.admin.P" + "rojectDomainAttributesGetRequest\0322.flyte" + "idl.admin.ProjectDomainAttributesGetResp" + "onse\"~\202\323\344\223\002x\0224/api/v1/project_domain_att" + "ributes/{project}/{domain}Z@\022>/api/v1/pr" + "oject_domain_attributes/org/{org}/{proje" + "ct}/{domain}\022\223\002\n\035DeleteProjectDomainAttr" + "ibutes\0224.flyteidl.admin.ProjectDomainAtt" + "ributesDeleteRequest\0325.flyteidl.admin.Pr" + "ojectDomainAttributesDeleteResponse\"\204\001\202\323" + "\344\223\002~*4/api/v1/project_domain_attributes/" + "{project}/{domain}:\001*ZC*>/api/v1/project" + "_domain_attributes/org/{org}/{project}/{" + "domain}:\001*\022\212\002\n\027UpdateProjectAttributes\022." + ".flyteidl.admin.ProjectAttributesUpdateR" + "equest\032/.flyteidl.admin.ProjectAttribute" + "sUpdateResponse\"\215\001\202\323\344\223\002\206\001\032//api/v1/proje" + "ct_attributes/{attributes.project}:\001*ZP\032" + "K/api/v1/project_domain_attributes/org/{" + "attributes.org}/{attributes.project}:\001*\022" + "\330\001\n\024GetProjectAttributes\022+.flyteidl.admi" + "n.ProjectAttributesGetRequest\032,.flyteidl" + ".admin.ProjectAttributesGetResponse\"e\202\323\344" + "\223\002_\022$/api/v1/project_attributes/{project" + "}Z7\0225/api/v1/project_domain_attributes/o" + "rg/{org}/{project}\022\347\001\n\027DeleteProjectAttr" + "ibutes\022..flyteidl.admin.ProjectAttribute" + "sDeleteRequest\032/.flyteidl.admin.ProjectA" + "ttributesDeleteResponse\"k\202\323\344\223\002e*$/api/v1" + "/project_attributes/{project}:\001*Z:*5/api" + "/v1/project_domain_attributes/org/{org}/" + "{project}:\001*\022\334\002\n\030UpdateWorkflowAttribute" + "s\022/.flyteidl.admin.WorkflowAttributesUpd" + "ateRequest\0320.flyteidl.admin.WorkflowAttr" + "ibutesUpdateResponse\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/" + "workflow_attributes/{attributes.project}" + "/{attributes.domain}/{attributes.workflo" + "w}:\001*Zt\032o/api/v1/workflow_attributes/org" + "/{attributes.org}/{attributes.project}/{" + "attributes.domain}/{attributes.workflow}" + ":\001*\022\200\002\n\025GetWorkflowAttributes\022,.flyteidl" + ".admin.WorkflowAttributesGetRequest\032-.fl" + "yteidl.admin.WorkflowAttributesGetRespon" + "se\"\211\001\202\323\344\223\002\202\001\0229/api/v1/workflow_attribute" + "s/{project}/{domain}/{workflow}ZE\022C/api/" + "v1/workflow_attributes/org/{org}/{projec" + "t}/{domain}/{workflow}\022\217\002\n\030DeleteWorkflo" + "wAttributes\022/.flyteidl.admin.WorkflowAtt" + "ributesDeleteRequest\0320.flyteidl.admin.Wo" + "rkflowAttributesDeleteResponse\"\217\001\202\323\344\223\002\210\001" + "*9/api/v1/workflow_attributes/{project}/" + "{domain}/{workflow}:\001*ZH*C/api/v1/workfl" + "ow_attributes/org/{org}/{project}/{domai" + "n}/{workflow}:\001*\022\240\001\n\027ListMatchableAttrib" + "utes\022..flyteidl.admin.ListMatchableAttri" + "butesRequest\032/.flyteidl.admin.ListMatcha" + "bleAttributesResponse\"$\202\323\344\223\002\036\022\034/api/v1/m" + "atchable_attributes\022\350\001\n\021ListNamedEntitie" + "s\022&.flyteidl.admin.NamedEntityListReques" + "t\032\037.flyteidl.admin.NamedEntityList\"\211\001\202\323\344" + "\223\002\202\001\0229/api/v1/named_entities/{resource_t" + "ype}/{project}/{domain}ZE\022C/api/v1/named" + "_entities/{resource_type}/org/{org}/{pro" + "ject}/{domain}\022\203\002\n\016GetNamedEntity\022%.flyt" + "eidl.admin.NamedEntityGetRequest\032\033.flyte" + "idl.admin.NamedEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1" + "/named_entities/{resource_type}/{id.proj" + "ect}/{id.domain}/{id.name}ZX\022V/api/v1/na" + "med_entities/{resource_type}/org/{id.org" + "}/{id.project}/{id.domain}/{id.name}\022\235\002\n" + "\021UpdateNamedEntity\022(.flyteidl.admin.Name" + "dEntityUpdateRequest\032).flyteidl.admin.Na" + "medEntityUpdateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/" + "v1/named_entities/{resource_type}/{id.pr" + "oject}/{id.domain}/{id.name}:\001*Z[\032V/api/" + "v1/named_entities/{resource_type}/org/{i" + "d.org}/{id.project}/{id.domain}/{id.name" + "}:\001*\022l\n\nGetVersion\022!.flyteidl.admin.GetV" + "ersionRequest\032\".flyteidl.admin.GetVersio" + "nResponse\"\027\202\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024G" + "etDescriptionEntity\022 .flyteidl.admin.Obj" + "ectGetRequest\032!.flyteidl.admin.Descripti" + "onEntity\"\330\001\202\323\344\223\002\321\001\022_/api/v1/description_" + "entities/{id.resource_type}/{id.project}" + "/{id.domain}/{id.name}/{id.version}Zn\022l/" + "api/v1/description_entities/org/{id.org}" + "/{id.resource_type}/{id.project}/{id.dom" + "ain}/{id.name}/{id.version}\022\310\003\n\027ListDesc" + "riptionEntities\022,.flyteidl.admin.Descrip" + "tionEntityListRequest\032%.flyteidl.admin.D" + "escriptionEntityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/" + "description_entities/{resource_type}/{id" + ".project}/{id.domain}/{id.name}Z^\022\\/api/" + "v1/description_entities/{resource_type}/" + "org/{id.org}/{id.project}/{id.domain}/{i" + "d.name}ZG\022E/api/v1/description_entities/" + "{resource_type}/{id.project}/{id.domain}" + "ZT\022R/api/v1/description_entities/{resour" + "ce_type}/org/{id.org}/{id.project}/{id.d" + "omain}\022\225\002\n\023GetExecutionMetrics\0222.flyteid" + "l.admin.WorkflowExecutionGetMetricsReque" + "st\0323.flyteidl.admin.WorkflowExecutionGet" + "MetricsResponse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metri" + "cs/executions/{id.project}/{id.domain}/{" + "id.name}ZL\022J/api/v1/metrics/executions/o" + "rg/{id.org}/{id.project}/{id.domain}/{id" + ".name}B\?Z=github.com/flyteorg/flyte/flyt" + "eidl/gen/pb-go/flyteidl/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fadmin_2eproto = { false, InitDefaults_flyteidl_2fservice_2fadmin_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto, - "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 15267, + "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 15199, }; void AddDescriptors_flyteidl_2fservice_2fadmin_2eproto() { diff --git a/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go b/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go index e1225ffa0a..d8671f8b1a 100644 --- a/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go @@ -1324,10 +1324,8 @@ type DatasetID struct { Domain string `protobuf:"bytes,3,opt,name=domain,proto3" json:"domain,omitempty"` Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` UUID string `protobuf:"bytes,5,opt,name=UUID,proto3" json:"UUID,omitempty"` - // Optional, partition key applied to the dataset. - Partition string `protobuf:"bytes,6,opt,name=partition,proto3" json:"partition,omitempty"` // Optional, org key applied to the resource. - Org string `protobuf:"bytes,7,opt,name=org,proto3" json:"org,omitempty"` + Org string `protobuf:"bytes,6,opt,name=org,proto3" json:"org,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1393,13 +1391,6 @@ func (m *DatasetID) GetUUID() string { return "" } -func (m *DatasetID) GetPartition() string { - if m != nil { - return m.Partition - } - return "" -} - func (m *DatasetID) GetOrg() string { if m != nil { return m.Org @@ -2293,114 +2284,114 @@ func init() { } var fileDescriptor_275951237ff4368a = []byte{ - // 1709 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x6f, 0xdb, 0x46, - 0x16, 0x37, 0x25, 0x5b, 0x32, 0x9f, 0x2c, 0x45, 0x9e, 0xd8, 0x8e, 0xac, 0x38, 0xb6, 0xc2, 0x04, - 0x5e, 0x23, 0xbb, 0x91, 0xb2, 0x76, 0x12, 0x6c, 0xb2, 0x8b, 0xdd, 0x95, 0x2d, 0xc5, 0x56, 0x1d, - 0x7f, 0x84, 0xfe, 0x00, 0xfa, 0x01, 0x08, 0x63, 0x73, 0xcc, 0xb0, 0xa6, 0x44, 0x86, 0x1c, 0xa7, - 0xd6, 0xb1, 0x97, 0x1e, 0x8a, 0xde, 0x0a, 0xf4, 0x1f, 0xe8, 0xb1, 0x87, 0xfe, 0x09, 0x3d, 0xe6, - 0xd6, 0x7f, 0xa8, 0x97, 0x62, 0xc8, 0x19, 0x8a, 0xa4, 0x28, 0x5b, 0xf1, 0x21, 0x40, 0x2f, 0x04, - 0x67, 0xe6, 0xbd, 0xdf, 0xbc, 0x8f, 0x79, 0xf3, 0xde, 0x1b, 0x58, 0x3e, 0x33, 0x7b, 0x94, 0x18, - 0x9a, 0x59, 0xd3, 0x30, 0xc5, 0xa7, 0x98, 0x62, 0xd3, 0xd2, 0xc3, 0xff, 0x55, 0xdb, 0xb1, 0xa8, - 0x85, 0x72, 0xa1, 0xa9, 0xf2, 0x42, 0xc0, 0x74, 0x6a, 0x39, 0xa4, 0x66, 0x1a, 0x94, 0x38, 0xd8, - 0x74, 0x7d, 0xd2, 0xf2, 0xa2, 0x6e, 0x59, 0xba, 0x49, 0x6a, 0xde, 0xe8, 0xe4, 0xe2, 0xac, 0xa6, - 0x5d, 0x38, 0x98, 0x1a, 0x56, 0x97, 0xaf, 0x2f, 0xc5, 0xd7, 0xa9, 0xd1, 0x21, 0x2e, 0xc5, 0x1d, - 0xdb, 0x27, 0x50, 0x5e, 0xc1, 0xcc, 0x86, 0x43, 0x30, 0x25, 0x0d, 0x4c, 0xb1, 0x4b, 0xa8, 0x4a, - 0xde, 0x5d, 0x10, 0x97, 0xa2, 0x2a, 0x64, 0x35, 0x7f, 0xa6, 0x24, 0x55, 0xa4, 0x95, 0xdc, 0xea, - 0x4c, 0x35, 0x2c, 0xa8, 0xa0, 0x16, 0x44, 0xca, 0x1d, 0x98, 0x8d, 0xe1, 0xb8, 0xb6, 0xd5, 0x75, - 0x89, 0xd2, 0x84, 0xe9, 0x4d, 0x42, 0x63, 0xe8, 0x4f, 0xe2, 0xe8, 0x73, 0x49, 0xe8, 0xad, 0x46, - 0x1f, 0xbf, 0x01, 0x28, 0x0c, 0xe3, 0x83, 0x7f, 0xb4, 0x94, 0x3f, 0x49, 0x1e, 0x4c, 0xdd, 0xa1, - 0xc6, 0x19, 0x3e, 0xbd, 0xb9, 0x38, 0xe8, 0x3e, 0xe4, 0x30, 0x07, 0x69, 0x1b, 0x5a, 0x29, 0x55, - 0x91, 0x56, 0xe4, 0xad, 0x31, 0x15, 0xc4, 0x64, 0x4b, 0x43, 0x77, 0x61, 0x92, 0x62, 0xbd, 0xdd, - 0xc5, 0x1d, 0x52, 0x4a, 0xf3, 0xf5, 0x2c, 0xc5, 0xfa, 0x2e, 0xee, 0x90, 0xf5, 0x02, 0x4c, 0xbd, - 0xbb, 0x20, 0x4e, 0xaf, 0xfd, 0x16, 0x77, 0x35, 0x93, 0x28, 0x5b, 0x70, 0x3b, 0x22, 0x17, 0xd7, - 0xef, 0x9f, 0x30, 0x29, 0x10, 0xb9, 0x64, 0xb3, 0x11, 0xc9, 0x02, 0x86, 0x80, 0x4c, 0xf9, 0x4c, - 0x38, 0x22, 0xae, 0xe4, 0x0d, 0xb0, 0x4a, 0x30, 0x17, 0xc7, 0xe2, 0x5e, 0x5d, 0x83, 0x7c, 0x5d, - 0xd3, 0x0e, 0xb1, 0x2e, 0xd0, 0x15, 0x48, 0x53, 0xac, 0x73, 0xe0, 0x62, 0x04, 0x98, 0x51, 0xb1, - 0x45, 0xa5, 0x08, 0x05, 0xc1, 0xc4, 0x61, 0x7e, 0x93, 0x60, 0xe6, 0xb5, 0xe1, 0x06, 0x8a, 0xbb, - 0x37, 0xf7, 0xc8, 0x33, 0xc8, 0x9c, 0x19, 0x26, 0x25, 0x8e, 0xe7, 0x8c, 0xdc, 0xea, 0xbd, 0x08, - 0xc3, 0x2b, 0x6f, 0xa9, 0x79, 0x69, 0x3b, 0xc4, 0x75, 0x0d, 0xab, 0xab, 0x72, 0x62, 0xf4, 0x5f, - 0x00, 0x1b, 0xeb, 0x46, 0xd7, 0x0b, 0x1a, 0xcf, 0x4f, 0xb9, 0xd5, 0xc5, 0x08, 0xeb, 0x7e, 0xb0, - 0xbc, 0x67, 0xb3, 0xaf, 0xab, 0x86, 0x38, 0x94, 0x73, 0x98, 0x8d, 0x29, 0xc0, 0x5d, 0xb7, 0x06, - 0xb2, 0xb0, 0xa3, 0x5b, 0x92, 0x2a, 0xe9, 0xe1, 0xf6, 0xee, 0xd3, 0xa1, 0x7b, 0x00, 0x5d, 0x72, - 0x49, 0xdb, 0xd4, 0x3a, 0x27, 0x5d, 0xff, 0x54, 0xa9, 0x32, 0x9b, 0x39, 0x64, 0x13, 0xca, 0x0f, - 0x12, 0xdc, 0x66, 0xbb, 0x71, 0xf5, 0x03, 0x6b, 0xf5, 0x75, 0x97, 0x6e, 0xae, 0x7b, 0xea, 0xa3, - 0x75, 0xd7, 0x7d, 0xe7, 0xf5, 0xa5, 0xe1, 0xaa, 0x3f, 0x81, 0x49, 0xee, 0x15, 0xa1, 0x79, 0x72, - 0x58, 0x06, 0x54, 0xd7, 0xe9, 0xfd, 0x87, 0x04, 0xb3, 0x47, 0xb6, 0x96, 0x70, 0xa8, 0x3f, 0x79, - 0xe4, 0xa2, 0xc7, 0x30, 0xce, 0xa0, 0x4a, 0xe3, 0x9e, 0x62, 0xf3, 0x89, 0x2e, 0x65, 0xdb, 0xaa, - 0x1e, 0x19, 0x8b, 0xba, 0x0e, 0xa1, 0xd8, 0x63, 0x99, 0x48, 0x88, 0xba, 0x1d, 0xbe, 0xa8, 0x06, - 0x64, 0x03, 0x77, 0xc3, 0x0b, 0x98, 0x8b, 0x2b, 0xcf, 0x0d, 0xbd, 0x14, 0xd5, 0x45, 0xf2, 0xec, - 0x16, 0xd2, 0x44, 0xc1, 0x90, 0x57, 0x89, 0x4b, 0x9c, 0xf7, 0x9e, 0xc3, 0x5a, 0x0d, 0xf4, 0x0c, - 0x80, 0x1b, 0x42, 0x30, 0x0c, 0x37, 0x99, 0xcc, 0x29, 0x5b, 0x1a, 0x9a, 0x0f, 0x59, 0xc4, 0xf7, - 0x8e, 0xb0, 0x87, 0xf2, 0x41, 0x82, 0x7b, 0x9b, 0x84, 0xee, 0x39, 0xcd, 0x4b, 0x4a, 0xba, 0x5a, - 0x68, 0x3b, 0xe1, 0xa3, 0x3a, 0x14, 0x9c, 0xfe, 0x6c, 0x7f, 0xdf, 0x72, 0x64, 0xdf, 0x88, 0x9c, - 0x6a, 0x3e, 0xc4, 0xe1, 0xef, 0x6f, 0x7d, 0xd3, 0x25, 0x4e, 0xe0, 0x31, 0x35, 0xeb, 0x8d, 0x5b, - 0x1a, 0xda, 0x02, 0xf4, 0x96, 0x60, 0x87, 0x9e, 0x10, 0x4c, 0xdb, 0x46, 0x97, 0x32, 0x2e, 0x93, - 0x07, 0xf2, 0x7c, 0xd5, 0x4f, 0x7f, 0x55, 0x91, 0xfe, 0xaa, 0x0d, 0x9e, 0x1e, 0xd5, 0xe9, 0x80, - 0xa9, 0xc5, 0x79, 0x94, 0x9f, 0x53, 0x90, 0x0b, 0x49, 0xf1, 0x57, 0x91, 0x1b, 0xbd, 0x00, 0x20, - 0x97, 0xb6, 0xe1, 0x10, 0xb7, 0x8d, 0x69, 0x69, 0x9c, 0xcb, 0x18, 0x47, 0x38, 0x14, 0x89, 0x5f, - 0x95, 0x39, 0x75, 0x9d, 0x46, 0x4e, 0x67, 0x66, 0xa4, 0xd3, 0xa9, 0x7c, 0x05, 0x8b, 0xc3, 0xdc, - 0xcd, 0x4f, 0xe5, 0x4b, 0xc8, 0x85, 0xac, 0xc0, 0x8d, 0x56, 0x1a, 0x66, 0x34, 0x35, 0x4c, 0xac, - 0xf4, 0x60, 0x5e, 0x25, 0x26, 0xc1, 0x2e, 0xf9, 0xd4, 0x07, 0x49, 0x59, 0x80, 0x72, 0xd2, 0xd6, - 0x3c, 0x53, 0x7d, 0x2f, 0x41, 0x96, 0x87, 0x06, 0x5a, 0x86, 0xd4, 0xb5, 0xc1, 0x93, 0x32, 0xb4, - 0x88, 0x75, 0x53, 0x23, 0x59, 0x17, 0x3d, 0x84, 0xbc, 0xcd, 0xe2, 0x97, 0xed, 0xbd, 0x4d, 0x7a, - 0x6e, 0x29, 0x5d, 0x49, 0xaf, 0xc8, 0x6a, 0x74, 0x52, 0x59, 0x03, 0x79, 0x5f, 0x4c, 0xa0, 0x22, - 0xa4, 0xcf, 0x49, 0x8f, 0x07, 0x3f, 0xfb, 0x45, 0x33, 0x30, 0xf1, 0x1e, 0x9b, 0x17, 0x22, 0x54, - 0xfd, 0x81, 0xf2, 0xab, 0x04, 0x72, 0x20, 0x1f, 0x2a, 0x41, 0xd6, 0x76, 0xac, 0xaf, 0x09, 0x2f, - 0x06, 0x64, 0x55, 0x0c, 0x11, 0x82, 0xf1, 0x50, 0x9c, 0x7b, 0xff, 0x68, 0x0e, 0x32, 0x9a, 0xd5, - 0xc1, 0x86, 0x9f, 0x21, 0x65, 0x95, 0x8f, 0x18, 0xca, 0x7b, 0xe2, 0xb0, 0xa4, 0xe2, 0x9d, 0x3b, - 0x59, 0x15, 0x43, 0x86, 0x72, 0x74, 0xd4, 0x6a, 0x78, 0x77, 0x9e, 0xac, 0x7a, 0xff, 0x68, 0x01, - 0xe4, 0x40, 0x0f, 0xef, 0xb8, 0xc9, 0x6a, 0x7f, 0x82, 0xe9, 0x61, 0x39, 0x7a, 0x29, 0xeb, 0xeb, - 0x61, 0x39, 0xba, 0xf2, 0x21, 0x05, 0x93, 0xe2, 0xce, 0x43, 0x85, 0xc0, 0xe8, 0xb2, 0x67, 0xdc, - 0xd0, 0xcd, 0x9f, 0x1a, 0xed, 0xe6, 0x17, 0x37, 0x77, 0xfa, 0xe3, 0x6f, 0xee, 0xf1, 0xd1, 0xbc, - 0xf7, 0x9c, 0x25, 0x54, 0xae, 0x8f, 0x5b, 0x9a, 0xf0, 0xf6, 0x99, 0x8b, 0x25, 0x54, 0xbe, 0xac, - 0x86, 0x28, 0xd1, 0x43, 0x18, 0xa7, 0x58, 0x77, 0x4b, 0x19, 0x8f, 0x63, 0xb0, 0x7a, 0xf2, 0x56, - 0x59, 0x9c, 0x9f, 0x7a, 0xd5, 0x98, 0xc6, 0xe2, 0x3c, 0x7b, 0x7d, 0x9c, 0x73, 0xea, 0x3a, 0x55, - 0xf6, 0x61, 0x2a, 0xac, 0x61, 0xe0, 0x63, 0x29, 0xe4, 0xe3, 0x7f, 0x84, 0x4f, 0x0d, 0x93, 0x5b, - 0x34, 0x1e, 0x55, 0xd6, 0x78, 0x54, 0x5f, 0xfb, 0x8d, 0x87, 0x38, 0x4d, 0x26, 0xa4, 0x0f, 0xb1, - 0x9e, 0x08, 0xb4, 0x94, 0x90, 0x61, 0x23, 0xf9, 0x35, 0xe4, 0xba, 0xf4, 0x68, 0xd5, 0xff, 0xb7, - 0x12, 0x4c, 0x0a, 0x7b, 0xa3, 0x97, 0x90, 0x3d, 0x27, 0xbd, 0x76, 0x07, 0xdb, 0xbc, 0xba, 0xb8, - 0x9f, 0xe8, 0x97, 0xea, 0x36, 0xe9, 0xed, 0x60, 0xbb, 0xd9, 0xa5, 0x4e, 0x4f, 0xcd, 0x9c, 0x7b, - 0x83, 0xf2, 0x0b, 0xc8, 0x85, 0xa6, 0x47, 0x8d, 0x9d, 0x97, 0xa9, 0x7f, 0x49, 0xca, 0x1e, 0x14, - 0xe3, 0x95, 0x14, 0xfa, 0x37, 0x64, 0xfd, 0x5a, 0xca, 0x4d, 0x14, 0xe5, 0xc0, 0xe8, 0xea, 0x26, - 0xd9, 0x77, 0x2c, 0x9b, 0x38, 0xb4, 0xe7, 0x73, 0xab, 0x82, 0x43, 0xf9, 0x3d, 0x0d, 0x33, 0x49, - 0x14, 0xe8, 0x7f, 0x00, 0x2c, 0xdb, 0x46, 0x4a, 0xba, 0xc5, 0xf8, 0xa1, 0x88, 0xf2, 0x6c, 0x8d, - 0xa9, 0x32, 0xc5, 0x3a, 0x07, 0x78, 0x03, 0xc5, 0xe0, 0x74, 0xb5, 0x23, 0x55, 0xf1, 0xc3, 0xe4, - 0xd3, 0x38, 0x00, 0x76, 0x2b, 0xe0, 0xe7, 0x90, 0xbb, 0x70, 0x2b, 0x70, 0x2a, 0x47, 0xf4, 0x7d, - 0xf7, 0x20, 0x31, 0x8e, 0x06, 0x00, 0x0b, 0x82, 0x9b, 0xe3, 0x6d, 0x43, 0x41, 0x14, 0x22, 0x1c, - 0xce, 0x8f, 0x31, 0x25, 0xe9, 0x28, 0x0c, 0xa0, 0xe5, 0x39, 0x2f, 0x07, 0xdb, 0x87, 0x49, 0x46, - 0x80, 0xa9, 0xe5, 0x94, 0xa0, 0x22, 0xad, 0x14, 0x56, 0x9f, 0x5e, 0xeb, 0x87, 0xea, 0x86, 0xd5, - 0xb1, 0xb1, 0x63, 0xb8, 0xac, 0xb6, 0xf5, 0x79, 0xd5, 0x00, 0x45, 0xa9, 0x00, 0x1a, 0x5c, 0x47, - 0x00, 0x99, 0xe6, 0x9b, 0xa3, 0xfa, 0xeb, 0x83, 0xe2, 0xd8, 0xfa, 0x34, 0xdc, 0xb2, 0x39, 0x20, - 0xd7, 0x40, 0xd9, 0x84, 0xb9, 0x64, 0xfd, 0xe3, 0x45, 0xa7, 0x34, 0x58, 0x74, 0xae, 0x03, 0x4c, - 0x0a, 0x3c, 0xe5, 0x3f, 0x30, 0x3d, 0xe0, 0xe1, 0x48, 0x55, 0x2a, 0xc5, 0xfb, 0xc9, 0x30, 0xf7, - 0x97, 0x70, 0x67, 0x88, 0x63, 0xd1, 0x53, 0x3f, 0x74, 0x58, 0xa5, 0x21, 0xf1, 0x4a, 0x23, 0x6c, - 0xa7, 0x6d, 0xd2, 0x3b, 0x66, 0xe7, 0x7d, 0x1f, 0x1b, 0xcc, 0xca, 0x2c, 0x68, 0x8e, 0xb1, 0x19, - 0x01, 0x7f, 0x0e, 0x53, 0x61, 0xaa, 0x91, 0xb3, 0xcf, 0x2f, 0x12, 0xcc, 0x26, 0x7a, 0x13, 0x95, - 0x63, 0x99, 0x88, 0xa9, 0x25, 0x72, 0xd1, 0x4c, 0x38, 0x17, 0x6d, 0x8d, 0xf1, 0x0b, 0xa6, 0x14, - 0xcd, 0x46, 0x4c, 0x52, 0x9e, 0x8f, 0xca, 0xb1, 0x7c, 0xc4, 0xb0, 0x44, 0x46, 0x5a, 0x0c, 0x67, - 0x9f, 0x09, 0xbe, 0xda, 0x9f, 0x8a, 0x68, 0xf9, 0x63, 0x0a, 0xa6, 0x07, 0x7a, 0x1f, 0xa6, 0x99, - 0x69, 0x74, 0x0c, 0x5f, 0xce, 0xbc, 0xea, 0x0f, 0xd8, 0x6c, 0xb8, 0x6d, 0xf1, 0x07, 0xe8, 0xff, - 0x90, 0x75, 0x2d, 0x87, 0x6e, 0x93, 0x9e, 0x27, 0x64, 0x61, 0x75, 0xf9, 0xea, 0xc6, 0xaa, 0x7a, - 0xe0, 0x53, 0xab, 0x82, 0x0d, 0xbd, 0x02, 0x99, 0xfd, 0xee, 0x39, 0x1a, 0x0f, 0x8e, 0xc2, 0xea, - 0xca, 0x08, 0x18, 0x1e, 0xbd, 0xda, 0x67, 0x55, 0x1e, 0x81, 0x1c, 0xcc, 0xa3, 0x02, 0x40, 0xa3, - 0x79, 0xb0, 0xd1, 0xdc, 0x6d, 0xb4, 0x76, 0x37, 0x8b, 0x63, 0x28, 0x0f, 0x72, 0x3d, 0x18, 0x4a, - 0xca, 0x02, 0x64, 0xb9, 0x1c, 0x68, 0x1a, 0xf2, 0x1b, 0x6a, 0xb3, 0x7e, 0xd8, 0xda, 0xdb, 0x6d, - 0x1f, 0xb6, 0x76, 0x9a, 0xc5, 0xb1, 0xd5, 0xef, 0xb2, 0x90, 0x63, 0x3e, 0xdc, 0xf0, 0x05, 0x40, - 0xc7, 0x90, 0x8f, 0xbc, 0xf9, 0xa0, 0xe8, 0xed, 0x97, 0xf4, 0xae, 0x54, 0x56, 0xae, 0x22, 0xe1, - 0x05, 0xe4, 0x0e, 0x40, 0xff, 0xad, 0x07, 0x45, 0x6f, 0xbe, 0x81, 0xb7, 0xa4, 0xf2, 0xd2, 0xd0, - 0x75, 0x0e, 0xf7, 0x39, 0x14, 0xa2, 0xaf, 0x18, 0x28, 0x49, 0x88, 0x58, 0x67, 0x59, 0x7e, 0x70, - 0x25, 0x0d, 0x87, 0xde, 0x87, 0x5c, 0xe8, 0xd9, 0x06, 0x0d, 0x88, 0x12, 0x07, 0xad, 0x0c, 0x27, - 0xe0, 0x88, 0x75, 0xc8, 0xf8, 0x6f, 0x24, 0x28, 0x5a, 0xd5, 0x46, 0x5e, 0x5b, 0xca, 0x77, 0x13, - 0xd7, 0x38, 0xc4, 0x31, 0xe4, 0x23, 0x4f, 0x12, 0x31, 0xb7, 0x24, 0xbd, 0xb7, 0xc4, 0xdc, 0x92, - 0xfc, 0xa2, 0x71, 0x00, 0x53, 0xe1, 0x76, 0x1f, 0x55, 0x06, 0x78, 0x62, 0xef, 0x12, 0xe5, 0xfb, - 0x57, 0x50, 0xf4, 0x9d, 0x13, 0x6d, 0x6e, 0x63, 0xce, 0x49, 0x6c, 0xfb, 0x63, 0xce, 0x19, 0xd2, - 0x1d, 0xbf, 0x83, 0xb9, 0xe4, 0x4e, 0x05, 0x3d, 0x8a, 0xbb, 0x61, 0x78, 0xf7, 0x5a, 0xfe, 0xfb, - 0x48, 0xb4, 0x7c, 0x4b, 0x02, 0x68, 0xb0, 0x87, 0x40, 0xcb, 0xb1, 0xfe, 0x64, 0x48, 0x7f, 0x53, - 0xfe, 0xdb, 0xb5, 0x74, 0xfe, 0x36, 0xeb, 0x1b, 0x5f, 0xd4, 0x75, 0x83, 0xbe, 0xbd, 0x38, 0xa9, - 0x9e, 0x5a, 0x9d, 0x9a, 0x57, 0xa7, 0x59, 0x8e, 0xee, 0xff, 0xd4, 0x82, 0xf7, 0x62, 0x9d, 0x74, - 0x6b, 0xf6, 0xc9, 0x63, 0xdd, 0xaa, 0x25, 0xbd, 0x3b, 0x9f, 0x64, 0xbc, 0x92, 0x71, 0xed, 0xcf, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x23, 0xbf, 0xe7, 0xc8, 0x96, 0x16, 0x00, 0x00, + // 1698 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0x4b, 0x6f, 0xdb, 0xc6, + 0x13, 0x37, 0x25, 0x47, 0x32, 0x47, 0x96, 0x22, 0x6f, 0x6c, 0x47, 0x56, 0x12, 0x5b, 0x61, 0x02, + 0xff, 0x8d, 0xfc, 0x1b, 0x29, 0xb5, 0x93, 0xa0, 0x49, 0x8b, 0xb6, 0xb2, 0xa5, 0xd8, 0xaa, 0xe3, + 0x47, 0xe8, 0x07, 0xd0, 0x07, 0x20, 0xac, 0xcd, 0x35, 0xc3, 0x9a, 0x12, 0x19, 0x72, 0x9d, 0x5a, + 0xc7, 0x5e, 0x7a, 0x28, 0x7a, 0x29, 0x0a, 0xf4, 0x0b, 0xf4, 0xd8, 0x0f, 0xd1, 0x63, 0x6e, 0xfd, + 0x42, 0xbd, 0x14, 0x4b, 0xee, 0x52, 0x24, 0x45, 0xd9, 0x8a, 0x0f, 0x01, 0x7a, 0x21, 0xb8, 0xbb, + 0x33, 0xbf, 0x9d, 0xc7, 0xce, 0xce, 0xcc, 0xc2, 0xe2, 0x89, 0xd9, 0xa3, 0xc4, 0xd0, 0xcc, 0x9a, + 0x86, 0x29, 0x3e, 0xc6, 0x14, 0x9b, 0x96, 0x1e, 0xfe, 0xaf, 0xda, 0x8e, 0x45, 0x2d, 0x94, 0x0b, + 0x4d, 0x95, 0x6f, 0x07, 0x4c, 0xc7, 0x96, 0x43, 0x6a, 0xa6, 0x41, 0x89, 0x83, 0x4d, 0xd7, 0x27, + 0x2d, 0xcf, 0xeb, 0x96, 0xa5, 0x9b, 0xa4, 0xe6, 0x8d, 0x8e, 0xce, 0x4e, 0x6a, 0xda, 0x99, 0x83, + 0xa9, 0x61, 0x75, 0xf9, 0xfa, 0x42, 0x7c, 0x9d, 0x1a, 0x1d, 0xe2, 0x52, 0xdc, 0xb1, 0x7d, 0x02, + 0xe5, 0x05, 0x4c, 0xaf, 0x39, 0x04, 0x53, 0xd2, 0xc0, 0x14, 0xbb, 0x84, 0xaa, 0xe4, 0xcd, 0x19, + 0x71, 0x29, 0xaa, 0x42, 0x56, 0xf3, 0x67, 0x4a, 0x52, 0x45, 0x5a, 0xca, 0x2d, 0x4f, 0x57, 0xc3, + 0x82, 0x0a, 0x6a, 0x41, 0xa4, 0xdc, 0x84, 0x99, 0x18, 0x8e, 0x6b, 0x5b, 0x5d, 0x97, 0x28, 0x4d, + 0x98, 0x5a, 0x27, 0x34, 0x86, 0xfe, 0x28, 0x8e, 0x3e, 0x9b, 0x84, 0xde, 0x6a, 0xf4, 0xf1, 0x1b, + 0x80, 0xc2, 0x30, 0x3e, 0xf8, 0x7b, 0x4b, 0xf9, 0xbb, 0xe4, 0xc1, 0xd4, 0x1d, 0x6a, 0x9c, 0xe0, + 0xe3, 0xab, 0x8b, 0x83, 0xee, 0x42, 0x0e, 0x73, 0x90, 0xb6, 0xa1, 0x95, 0x52, 0x15, 0x69, 0x49, + 0xde, 0x18, 0x53, 0x41, 0x4c, 0xb6, 0x34, 0x74, 0x0b, 0x26, 0x28, 0xd6, 0xdb, 0x5d, 0xdc, 0x21, + 0xa5, 0x34, 0x5f, 0xcf, 0x52, 0xac, 0x6f, 0xe3, 0x0e, 0x59, 0x2d, 0xc0, 0xe4, 0x9b, 0x33, 0xe2, + 0xf4, 0xda, 0xaf, 0x71, 0x57, 0x33, 0x89, 0xb2, 0x01, 0x37, 0x22, 0x72, 0x71, 0xfd, 0x3e, 0x86, + 0x09, 0x81, 0xc8, 0x25, 0x9b, 0x89, 0x48, 0x16, 0x30, 0x04, 0x64, 0xca, 0x57, 0xc2, 0x11, 0x71, + 0x25, 0xaf, 0x80, 0x55, 0x82, 0xd9, 0x38, 0x16, 0xf7, 0xea, 0x0a, 0xe4, 0xeb, 0x9a, 0xb6, 0x8f, + 0x75, 0x81, 0xae, 0x40, 0x9a, 0x62, 0x9d, 0x03, 0x17, 0x23, 0xc0, 0x8c, 0x8a, 0x2d, 0x2a, 0x45, + 0x28, 0x08, 0x26, 0x0e, 0xf3, 0x97, 0x04, 0xd3, 0x2f, 0x0d, 0x37, 0x50, 0xdc, 0xbd, 0xba, 0x47, + 0x9e, 0x40, 0xe6, 0xc4, 0x30, 0x29, 0x71, 0x3c, 0x67, 0xe4, 0x96, 0xef, 0x44, 0x18, 0x5e, 0x78, + 0x4b, 0xcd, 0x73, 0xdb, 0x21, 0xae, 0x6b, 0x58, 0x5d, 0x95, 0x13, 0xa3, 0xcf, 0x01, 0x6c, 0xac, + 0x1b, 0x5d, 0x2f, 0x68, 0x3c, 0x3f, 0xe5, 0x96, 0xe7, 0x23, 0xac, 0xbb, 0xc1, 0xf2, 0x8e, 0xcd, + 0xbe, 0xae, 0x1a, 0xe2, 0x50, 0x4e, 0x61, 0x26, 0xa6, 0x00, 0x77, 0xdd, 0x0a, 0xc8, 0xc2, 0x8e, + 0x6e, 0x49, 0xaa, 0xa4, 0x87, 0xdb, 0xbb, 0x4f, 0x87, 0xee, 0x00, 0x74, 0xc9, 0x39, 0x6d, 0x53, + 0xeb, 0x94, 0x74, 0xfd, 0x53, 0xa5, 0xca, 0x6c, 0x66, 0x9f, 0x4d, 0x28, 0xbf, 0x48, 0x70, 0x83, + 0xed, 0xc6, 0xd5, 0x0f, 0xac, 0xd5, 0xd7, 0x5d, 0xba, 0xba, 0xee, 0xa9, 0xf7, 0xd6, 0x5d, 0xf7, + 0x9d, 0xd7, 0x97, 0x86, 0xab, 0xfe, 0x08, 0x26, 0xb8, 0x57, 0x84, 0xe6, 0xc9, 0x61, 0x19, 0x50, + 0x5d, 0xa6, 0xf7, 0x3f, 0x12, 0xcc, 0x1c, 0xd8, 0x5a, 0xc2, 0xa1, 0xfe, 0xe0, 0x91, 0x8b, 0x1e, + 0xc2, 0x38, 0x83, 0x2a, 0x8d, 0x7b, 0x8a, 0xcd, 0x25, 0xba, 0x94, 0x6d, 0xab, 0x7a, 0x64, 0x2c, + 0xea, 0x3a, 0x84, 0x62, 0x8f, 0xe5, 0x5a, 0x42, 0xd4, 0x6d, 0xf1, 0x45, 0x35, 0x20, 0x1b, 0xb8, + 0x1b, 0x9e, 0xc1, 0x6c, 0x5c, 0x79, 0x6e, 0xe8, 0x85, 0xa8, 0x2e, 0x92, 0x67, 0xb7, 0x90, 0x26, + 0x0a, 0x86, 0xbc, 0x4a, 0x5c, 0xe2, 0xbc, 0xf5, 0x1c, 0xd6, 0x6a, 0xa0, 0x27, 0x00, 0xdc, 0x10, + 0x82, 0x61, 0xb8, 0xc9, 0x64, 0x4e, 0xd9, 0xd2, 0xd0, 0x5c, 0xc8, 0x22, 0xbe, 0x77, 0x84, 0x3d, + 0x94, 0x77, 0x12, 0xdc, 0x59, 0x27, 0x74, 0xc7, 0x69, 0x9e, 0x53, 0xd2, 0xd5, 0x42, 0xdb, 0x09, + 0x1f, 0xd5, 0xa1, 0xe0, 0xf4, 0x67, 0xfb, 0xfb, 0x96, 0x23, 0xfb, 0x46, 0xe4, 0x54, 0xf3, 0x21, + 0x0e, 0x7f, 0x7f, 0xeb, 0x87, 0x2e, 0x71, 0x02, 0x8f, 0xa9, 0x59, 0x6f, 0xdc, 0xd2, 0xd0, 0x06, + 0xa0, 0xd7, 0x04, 0x3b, 0xf4, 0x88, 0x60, 0xda, 0x36, 0xba, 0x94, 0x71, 0x99, 0x3c, 0x90, 0xe7, + 0xaa, 0x7e, 0xfa, 0xab, 0x8a, 0xf4, 0x57, 0x6d, 0xf0, 0xf4, 0xa8, 0x4e, 0x05, 0x4c, 0x2d, 0xce, + 0xa3, 0xfc, 0x91, 0x82, 0x5c, 0x48, 0x8a, 0xff, 0x8a, 0xdc, 0xe8, 0x19, 0x00, 0x39, 0xb7, 0x0d, + 0x87, 0xb8, 0x6d, 0x4c, 0x4b, 0xe3, 0x5c, 0xc6, 0x38, 0xc2, 0xbe, 0x48, 0xfc, 0xaa, 0xcc, 0xa9, + 0xeb, 0x34, 0x72, 0x3a, 0x33, 0x23, 0x9d, 0x4e, 0xe5, 0x3b, 0x98, 0x1f, 0xe6, 0x6e, 0x7e, 0x2a, + 0x9f, 0x43, 0x2e, 0x64, 0x05, 0x6e, 0xb4, 0xd2, 0x30, 0xa3, 0xa9, 0x61, 0x62, 0xa5, 0x07, 0x73, + 0x2a, 0x31, 0x09, 0x76, 0xc9, 0x87, 0x3e, 0x48, 0xca, 0x6d, 0x28, 0x27, 0x6d, 0xcd, 0x33, 0xd5, + 0xcf, 0x12, 0x64, 0x79, 0x68, 0xa0, 0x45, 0x48, 0x5d, 0x1a, 0x3c, 0x29, 0x43, 0x8b, 0x58, 0x37, + 0x35, 0x92, 0x75, 0xd1, 0x7d, 0xc8, 0xdb, 0x2c, 0x7e, 0xd9, 0xde, 0x9b, 0xa4, 0xe7, 0x96, 0xd2, + 0x95, 0xf4, 0x92, 0xac, 0x46, 0x27, 0x95, 0x15, 0x90, 0x77, 0xc5, 0x04, 0x2a, 0x42, 0xfa, 0x94, + 0xf4, 0x78, 0xf0, 0xb3, 0x5f, 0x34, 0x0d, 0xd7, 0xde, 0x62, 0xf3, 0x4c, 0x84, 0xaa, 0x3f, 0x50, + 0x7e, 0x95, 0x40, 0x0e, 0xe4, 0x43, 0x25, 0xc8, 0xda, 0x8e, 0xf5, 0x3d, 0xe1, 0xc5, 0x80, 0xac, + 0x8a, 0x21, 0x42, 0x30, 0x1e, 0x8a, 0x73, 0xef, 0x1f, 0xcd, 0x42, 0x46, 0xb3, 0x3a, 0xd8, 0xf0, + 0x33, 0xa4, 0xac, 0xf2, 0x11, 0x43, 0x79, 0x4b, 0x1c, 0x96, 0x54, 0xbc, 0x73, 0x27, 0xab, 0x62, + 0xc8, 0x50, 0x0e, 0x0e, 0x5a, 0x0d, 0xef, 0xce, 0x93, 0x55, 0xef, 0x9f, 0x49, 0x6a, 0x39, 0xba, + 0x77, 0xd0, 0x64, 0x95, 0xfd, 0x2a, 0xef, 0x52, 0x30, 0x21, 0x6e, 0x35, 0x54, 0x08, 0xcc, 0x2a, + 0x7b, 0xe6, 0x0b, 0xdd, 0xed, 0xa9, 0xd1, 0xee, 0x76, 0x71, 0x37, 0xa7, 0xdf, 0xff, 0x6e, 0x1e, + 0x1f, 0xcd, 0x3f, 0x4f, 0x59, 0xca, 0xe4, 0x96, 0x77, 0x4b, 0xd7, 0xbc, 0x7d, 0x66, 0x63, 0x29, + 0x93, 0x2f, 0xab, 0x21, 0x4a, 0x74, 0x1f, 0xc6, 0x29, 0xd6, 0xdd, 0x52, 0xc6, 0xe3, 0x18, 0xac, + 0x8f, 0xbc, 0x55, 0x16, 0xc9, 0xc7, 0x5e, 0xbd, 0xa5, 0xb1, 0x48, 0xce, 0x5e, 0x1e, 0xc9, 0x9c, + 0xba, 0x4e, 0x95, 0x5d, 0x98, 0x0c, 0x6b, 0x18, 0x78, 0x51, 0x0a, 0x79, 0xf1, 0xa3, 0xf0, 0xb9, + 0x60, 0x72, 0x8b, 0xd6, 0xa2, 0xca, 0x5a, 0x8b, 0xea, 0x4b, 0xbf, 0xb5, 0x10, 0xe7, 0xc5, 0x84, + 0xf4, 0x3e, 0xd6, 0x13, 0x81, 0x16, 0x12, 0x72, 0x68, 0x24, 0x83, 0x86, 0x5c, 0x97, 0x1e, 0xad, + 0xbe, 0xff, 0x51, 0x82, 0x09, 0x61, 0x6f, 0xf4, 0x1c, 0xb2, 0xa7, 0xa4, 0xd7, 0xee, 0x60, 0x9b, + 0xd7, 0x0f, 0x77, 0x13, 0xfd, 0x52, 0xdd, 0x24, 0xbd, 0x2d, 0x6c, 0x37, 0xbb, 0xd4, 0xe9, 0xa9, + 0x99, 0x53, 0x6f, 0x50, 0x7e, 0x06, 0xb9, 0xd0, 0xf4, 0xa8, 0xd1, 0xf1, 0x3c, 0xf5, 0x89, 0xa4, + 0xec, 0x40, 0x31, 0x5e, 0x2b, 0xa1, 0x4f, 0x21, 0xeb, 0x57, 0x4b, 0x6e, 0xa2, 0x28, 0x7b, 0x46, + 0x57, 0x37, 0xc9, 0xae, 0x63, 0xd9, 0xc4, 0xa1, 0x3d, 0x9f, 0x5b, 0x15, 0x1c, 0xca, 0xdf, 0x69, + 0x98, 0x4e, 0xa2, 0x40, 0x5f, 0x00, 0xb0, 0x7c, 0x1a, 0x29, 0xda, 0xe6, 0xe3, 0x87, 0x22, 0xca, + 0xb3, 0x31, 0xa6, 0xca, 0x14, 0xeb, 0x1c, 0xe0, 0x15, 0x14, 0x83, 0xd3, 0xd5, 0x8e, 0xd4, 0xbd, + 0xf7, 0x93, 0x4f, 0xe3, 0x00, 0xd8, 0xf5, 0x80, 0x9f, 0x43, 0x6e, 0xc3, 0xf5, 0xc0, 0xa9, 0x1c, + 0xd1, 0xf7, 0xdd, 0xbd, 0xc4, 0x38, 0x1a, 0x00, 0x2c, 0x08, 0x6e, 0x8e, 0xb7, 0x09, 0x05, 0x51, + 0x6a, 0x70, 0x38, 0x3f, 0xc6, 0x94, 0xa4, 0xa3, 0x30, 0x80, 0x96, 0xe7, 0xbc, 0x1c, 0x6c, 0x17, + 0x26, 0x18, 0x01, 0xa6, 0x96, 0x53, 0x82, 0x8a, 0xb4, 0x54, 0x58, 0x7e, 0x7c, 0xa9, 0x1f, 0xaa, + 0x6b, 0x56, 0xc7, 0xc6, 0x8e, 0xe1, 0xb2, 0xea, 0xd5, 0xe7, 0x55, 0x03, 0x14, 0xa5, 0x02, 0x68, + 0x70, 0x1d, 0x01, 0x64, 0x9a, 0xaf, 0x0e, 0xea, 0x2f, 0xf7, 0x8a, 0x63, 0xab, 0x53, 0x70, 0xdd, + 0xe6, 0x80, 0x5c, 0x03, 0x65, 0x1d, 0x66, 0x93, 0xf5, 0x8f, 0x97, 0x95, 0xd2, 0x60, 0x59, 0xb9, + 0x0a, 0x30, 0x21, 0xf0, 0x94, 0xcf, 0x60, 0x6a, 0xc0, 0xc3, 0x91, 0xba, 0x53, 0x8a, 0x77, 0x8c, + 0x61, 0xee, 0x6f, 0xe1, 0xe6, 0x10, 0xc7, 0xa2, 0xc7, 0x7e, 0xe8, 0xb0, 0x5a, 0x42, 0xe2, 0xb5, + 0x44, 0xd8, 0x4e, 0x9b, 0xa4, 0x77, 0xc8, 0xce, 0xfb, 0x2e, 0x36, 0x98, 0x95, 0x59, 0xd0, 0x1c, + 0x62, 0x33, 0x02, 0xfe, 0x14, 0x26, 0xc3, 0x54, 0x23, 0xe7, 0x97, 0x3f, 0x25, 0x98, 0x49, 0xf4, + 0x26, 0x2a, 0xc7, 0x72, 0x0d, 0x53, 0x4b, 0x64, 0x9b, 0xe9, 0x70, 0xb6, 0xd9, 0x18, 0xe3, 0x17, + 0x4c, 0x29, 0x9a, 0x6f, 0x98, 0xa4, 0x3c, 0xe3, 0x94, 0x63, 0x19, 0x87, 0x61, 0x89, 0x9c, 0x33, + 0x0f, 0x72, 0x70, 0xa8, 0xfd, 0xc4, 0xc3, 0x82, 0x26, 0x98, 0x8a, 0x68, 0xf9, 0x5b, 0x0a, 0xa6, + 0x06, 0xba, 0x1b, 0xa6, 0x99, 0x69, 0x74, 0x0c, 0x5f, 0xce, 0xbc, 0xea, 0x0f, 0xd8, 0x6c, 0xb8, + 0x31, 0xf1, 0x07, 0xe8, 0x4b, 0xc8, 0xba, 0x96, 0x43, 0x37, 0x49, 0xcf, 0x13, 0xb2, 0xb0, 0xbc, + 0x78, 0x71, 0xeb, 0x54, 0xdd, 0xf3, 0xa9, 0x55, 0xc1, 0x86, 0x5e, 0x80, 0xcc, 0x7e, 0x77, 0x1c, + 0x8d, 0x07, 0x47, 0x61, 0x79, 0x69, 0x04, 0x0c, 0x8f, 0x5e, 0xed, 0xb3, 0x2a, 0x0f, 0x40, 0x0e, + 0xe6, 0x51, 0x01, 0xa0, 0xd1, 0xdc, 0x5b, 0x6b, 0x6e, 0x37, 0x5a, 0xdb, 0xeb, 0xc5, 0x31, 0x94, + 0x07, 0xb9, 0x1e, 0x0c, 0x25, 0xe5, 0x36, 0x64, 0xb9, 0x1c, 0x68, 0x0a, 0xf2, 0x6b, 0x6a, 0xb3, + 0xbe, 0xdf, 0xda, 0xd9, 0x6e, 0xef, 0xb7, 0xb6, 0x9a, 0xc5, 0xb1, 0xe5, 0x9f, 0xb2, 0x90, 0x63, + 0x3e, 0x5c, 0xf3, 0x05, 0x40, 0x87, 0x90, 0x8f, 0xbc, 0xea, 0xa0, 0xe8, 0xed, 0x97, 0xf4, 0x72, + 0x54, 0x56, 0x2e, 0x22, 0xe1, 0x25, 0xe2, 0x16, 0x40, 0xff, 0x35, 0x07, 0x45, 0x6f, 0xbe, 0x81, + 0xd7, 0xa2, 0xf2, 0xc2, 0xd0, 0x75, 0x0e, 0xf7, 0x35, 0x14, 0xa2, 0xef, 0x14, 0x28, 0x49, 0x88, + 0x58, 0xef, 0x58, 0xbe, 0x77, 0x21, 0x0d, 0x87, 0xde, 0x85, 0x5c, 0xe8, 0x61, 0x06, 0x0d, 0x88, + 0x12, 0x07, 0xad, 0x0c, 0x27, 0xe0, 0x88, 0x75, 0xc8, 0xf8, 0xaf, 0x20, 0x28, 0x5a, 0xb7, 0x46, + 0xde, 0x53, 0xca, 0xb7, 0x12, 0xd7, 0x38, 0xc4, 0x21, 0xe4, 0x23, 0x8f, 0x0e, 0x31, 0xb7, 0x24, + 0xbd, 0xa8, 0xc4, 0xdc, 0x92, 0xfc, 0x66, 0xb1, 0x07, 0x93, 0xe1, 0x86, 0x1e, 0x55, 0x06, 0x78, + 0x62, 0x2f, 0x0f, 0xe5, 0xbb, 0x17, 0x50, 0xf4, 0x9d, 0x13, 0x6d, 0x5f, 0x63, 0xce, 0x49, 0x6c, + 0xec, 0x63, 0xce, 0x19, 0xd2, 0xff, 0xbe, 0x81, 0xd9, 0xe4, 0x5e, 0x04, 0x3d, 0x88, 0xbb, 0x61, + 0x78, 0x7f, 0x5a, 0xfe, 0xff, 0x48, 0xb4, 0x7c, 0x4b, 0x02, 0x68, 0xb0, 0x4b, 0x40, 0x8b, 0xb1, + 0x0e, 0x64, 0x48, 0x07, 0x53, 0xfe, 0xdf, 0xa5, 0x74, 0xfe, 0x36, 0xab, 0x6b, 0xdf, 0xd4, 0x75, + 0x83, 0xbe, 0x3e, 0x3b, 0xaa, 0x1e, 0x5b, 0x9d, 0x9a, 0x57, 0xa7, 0x59, 0x8e, 0xee, 0xff, 0xd4, + 0x82, 0x17, 0x61, 0x9d, 0x74, 0x6b, 0xf6, 0xd1, 0x43, 0xdd, 0xaa, 0x25, 0xbd, 0x2c, 0x1f, 0x65, + 0xbc, 0x92, 0x71, 0xe5, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x9b, 0xf3, 0x0d, 0x78, 0x16, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go index f8aa255e01..6b0eaa86a8 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go @@ -29,172 +29,172 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("flyteidl/service/admin.proto", fileDescriptor_5cfa31da1d67295d) } var fileDescriptor_5cfa31da1d67295d = []byte{ - // 2634 bytes of a gzipped FileDescriptorProto + // 2633 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x5b, 0x6c, 0x1c, 0x57, - 0xf9, 0xd7, 0x19, 0xa7, 0xff, 0xfc, 0x39, 0xcd, 0xc5, 0xf9, 0x9a, 0x60, 0x67, 0x12, 0x27, 0xe9, - 0xe4, 0x62, 0x67, 0x9d, 0x78, 0xdc, 0xa4, 0x69, 0xa9, 0x45, 0x29, 0x69, 0xec, 0x2e, 0x69, 0x93, - 0x34, 0x38, 0xa1, 0xc0, 0x16, 0xb1, 0x1a, 0xef, 0x9e, 0x38, 0xd3, 0xec, 0xee, 0x6c, 0x67, 0xc6, - 0x6e, 0xad, 0xc8, 0x05, 0x6a, 0x08, 0x69, 0x2b, 0x27, 0x48, 0x21, 0x91, 0x2a, 0xda, 0x0a, 0x21, - 0x55, 0xe2, 0xf6, 0x84, 0x04, 0x4f, 0x3c, 0xf0, 0x12, 0xa9, 0xa2, 0x42, 0x6a, 0x55, 0x2e, 0x95, - 0x9a, 0x27, 0x14, 0x29, 0x95, 0x40, 0x40, 0xe1, 0x01, 0xfa, 0x00, 0x42, 0x73, 0x2e, 0x3b, 0xd7, - 0x33, 0x97, 0xb5, 0x5d, 0x55, 0x22, 0x6f, 0xf6, 0x7e, 0xbf, 0xf3, 0x9d, 0xef, 0xfb, 0x7d, 0x97, - 0x73, 0xce, 0xcc, 0x19, 0xbc, 0xf5, 0x4c, 0x63, 0xce, 0x25, 0x66, 0xbd, 0xa1, 0x3b, 0xc4, 0x9e, - 0x35, 0x6b, 0x44, 0x37, 0xea, 0x4d, 0xb3, 0x35, 0xd2, 0xb6, 0x2d, 0xd7, 0x82, 0x5e, 0x21, 0x1d, - 0xe1, 0x52, 0x75, 0xeb, 0xb4, 0x65, 0x4d, 0x37, 0x88, 0x6e, 0xb4, 0x4d, 0xdd, 0x68, 0xb5, 0x2c, - 0xd7, 0x70, 0x4d, 0xab, 0xe5, 0x30, 0xbc, 0xea, 0x6b, 0xa3, 0x5a, 0xf4, 0xb6, 0x6d, 0x3d, 0x45, - 0x6a, 0x2e, 0x97, 0x8e, 0x24, 0x4b, 0xab, 0x75, 0xab, 0x69, 0x98, 0xad, 0xaa, 0xe1, 0xba, 0xb6, - 0x39, 0x35, 0xe3, 0x12, 0xa1, 0x6d, 0x50, 0x82, 0x8f, 0x01, 0x37, 0x47, 0x80, 0xae, 0xe1, 0x9c, - 0xe3, 0xa2, 0x81, 0x88, 0xe8, 0x19, 0xcb, 0x3e, 0x77, 0xa6, 0x61, 0x3d, 0xc3, 0xc5, 0x43, 0x12, - 0x71, 0x7c, 0x8e, 0x1d, 0x11, 0x64, 0xc3, 0x98, 0x69, 0xd5, 0xce, 0x56, 0xdb, 0x0d, 0x83, 0x93, - 0xa5, 0xaa, 0x11, 0x04, 0x99, 0x25, 0x2d, 0xe1, 0xfa, 0xb6, 0xa8, 0xec, 0x59, 0x52, 0x9b, 0xf1, - 0x98, 0x93, 0xb8, 0xda, 0x34, 0xdc, 0xda, 0x59, 0x63, 0xaa, 0x41, 0xaa, 0x36, 0x71, 0xac, 0x19, - 0xbb, 0x46, 0x38, 0x70, 0x67, 0x04, 0xd8, 0xb2, 0xea, 0xa4, 0x1a, 0xd5, 0xb6, 0x33, 0x81, 0x8f, - 0x18, 0x28, 0x1a, 0xab, 0x59, 0x62, 0x3b, 0xbe, 0x74, 0x4b, 0x44, 0x5a, 0xb3, 0x9a, 0x4d, 0xa9, - 0xb5, 0x75, 0xe2, 0xd4, 0x6c, 0xb3, 0xed, 0x29, 0xaf, 0x92, 0x96, 0x6b, 0xba, 0x73, 0x0c, 0x78, - 0xe0, 0xc3, 0xa7, 0xf1, 0x9a, 0xc3, 0x1e, 0xe4, 0x14, 0x4b, 0x1f, 0x68, 0x62, 0x7c, 0xc4, 0x26, - 0x86, 0x4b, 0x4e, 0x1b, 0xce, 0x39, 0xb8, 0xbb, 0x93, 0x11, 0x23, 0x2c, 0xeb, 0xbc, 0x5f, 0x99, - 0x7c, 0x92, 0x3c, 0x3d, 0x43, 0x1c, 0x57, 0xd5, 0xd2, 0x20, 0x4e, 0xdb, 0x6a, 0x39, 0x44, 0xeb, - 0x7f, 0xfe, 0x9d, 0x9b, 0x57, 0x14, 0xd0, 0xd6, 0xd2, 0xac, 0x9c, 0xbd, 0x87, 0xfa, 0xeb, 0x8c, - 0xa1, 0x12, 0xbc, 0x8b, 0xf0, 0xea, 0x32, 0x71, 0xe9, 0x64, 0x3b, 0xa2, 0x9a, 0x1e, 0x9f, 0xf2, - 0xb2, 0xa9, 0x4c, 0x5c, 0x31, 0xd7, 0xc6, 0xa4, 0xb9, 0xb4, 0xef, 0x22, 0xaa, 0x7e, 0x11, 0xc1, - 0x83, 0x21, 0xfd, 0xfa, 0x79, 0xb3, 0x3e, 0xc2, 0x53, 0x72, 0x9e, 0xfe, 0xc3, 0xf2, 0x98, 0xfd, - 0xdd, 0x32, 0x9a, 0x84, 0xfd, 0xc5, 0x79, 0x9d, 0xaf, 0x1c, 0x83, 0x47, 0xc3, 0x0a, 0x2c, 0x7b, - 0x9a, 0x22, 0x2c, 0x7b, 0x7a, 0xbe, 0xa8, 0x36, 0xb8, 0x8e, 0xf0, 0x9d, 0xc7, 0x4c, 0x87, 0xfa, - 0x76, 0xb4, 0xee, 0xc0, 0x68, 0xd4, 0xf8, 0x13, 0x46, 0x93, 0xd4, 0x27, 0x68, 0x34, 0x8e, 0xd6, - 0xbd, 0xa8, 0x9c, 0x31, 0x89, 0xed, 0x8d, 0x10, 0xee, 0xee, 0xcd, 0x3d, 0x42, 0xfb, 0x32, 0xa5, - 0xe0, 0x14, 0xec, 0x0c, 0x3a, 0x50, 0x35, 0xeb, 0x8e, 0x7e, 0xde, 0xb7, 0x99, 0x1b, 0x5c, 0xd9, - 0x07, 0xa5, 0x04, 0x3f, 0x99, 0x93, 0x31, 0x34, 0xfc, 0x50, 0xc1, 0x9f, 0x10, 0x7e, 0x38, 0xb0, - 0x33, 0x6a, 0xd3, 0x24, 0x4f, 0xff, 0xa0, 0xe1, 0xfd, 0x49, 0x71, 0xa2, 0x76, 0xbe, 0xc7, 0x62, - 0xf5, 0x5b, 0x04, 0xa3, 0x45, 0x63, 0x55, 0x79, 0x28, 0x1a, 0xdf, 0x82, 0xe1, 0xa9, 0x0c, 0xc1, - 0x9e, 0x7c, 0x93, 0x56, 0x0e, 0xc1, 0xc1, 0x2e, 0xa6, 0x82, 0x79, 0xbc, 0x8e, 0x65, 0xfe, 0x17, - 0x79, 0x97, 0x82, 0xdd, 0x51, 0x26, 0x84, 0x24, 0x5c, 0x44, 0x7b, 0xb2, 0x60, 0xbc, 0x90, 0xb6, - 0x52, 0xf6, 0x3e, 0xa9, 0x6d, 0x10, 0xd6, 0x89, 0x76, 0x48, 0x8b, 0xe9, 0x7d, 0x84, 0xef, 0x2c, - 0x13, 0xb7, 0x33, 0x79, 0x76, 0x41, 0xf5, 0xcb, 0xe6, 0xd5, 0x5e, 0x61, 0x81, 0xba, 0x8a, 0xe0, - 0x70, 0x6c, 0xae, 0xc2, 0x85, 0x75, 0x12, 0x4e, 0xc4, 0x95, 0x2c, 0xa9, 0xb8, 0xde, 0x46, 0x78, - 0xbd, 0x97, 0x50, 0xc2, 0xde, 0x15, 0x2f, 0x30, 0x83, 0xd2, 0xf1, 0x24, 0x0c, 0x46, 0x1d, 0x91, - 0x15, 0xd9, 0x28, 0x8c, 0x48, 0x7c, 0x96, 0x15, 0xda, 0xaf, 0x14, 0xbc, 0x36, 0xe8, 0x53, 0xce, - 0x62, 0xdb, 0x2a, 0x8b, 0x21, 0xb5, 0xfb, 0x4f, 0x2c, 0x8e, 0x37, 0x11, 0xdc, 0xdb, 0x4d, 0x1c, - 0x2b, 0x47, 0x92, 0xe2, 0x5f, 0xb4, 0xf0, 0x02, 0x0d, 0x27, 0x7b, 0xf2, 0xca, 0x03, 0x70, 0x7f, - 0x97, 0x53, 0xc2, 0x05, 0x84, 0x7b, 0x59, 0xc9, 0x1c, 0xa3, 0xab, 0xff, 0xc9, 0x86, 0xd1, 0x82, - 0xc1, 0x28, 0x41, 0xbe, 0x2c, 0x5c, 0x85, 0x43, 0xd9, 0x40, 0x5e, 0x87, 0xdb, 0x29, 0xa9, 0x9b, - 0xb5, 0x8d, 0xc2, 0xd0, 0xc0, 0x66, 0x83, 0x96, 0xe2, 0xdf, 0x11, 0x5e, 0x5b, 0x26, 0x6e, 0xc0, - 0x8a, 0xec, 0x62, 0x54, 0xe5, 0xd3, 0x6b, 0x3f, 0x60, 0x61, 0xfc, 0x1e, 0x82, 0xf1, 0xa4, 0x29, - 0x0b, 0x57, 0xe4, 0x29, 0xf8, 0x7c, 0xa2, 0x9e, 0x25, 0x15, 0xe5, 0x3f, 0x10, 0xbe, 0xab, 0x4c, - 0xdc, 0xc3, 0x35, 0xd7, 0x9c, 0x4d, 0x0d, 0x40, 0x14, 0x91, 0x87, 0x81, 0x6b, 0x8c, 0x81, 0xcb, - 0x08, 0x3e, 0x23, 0x2c, 0x37, 0xa8, 0x9a, 0x6a, 0x41, 0x22, 0x2a, 0xc7, 0xe1, 0xb1, 0x34, 0x0d, - 0x05, 0x29, 0x80, 0x57, 0x10, 0xde, 0xe4, 0x95, 0x5a, 0xd4, 0x29, 0x07, 0x86, 0xb3, 0xfc, 0x0e, - 0x96, 0xf1, 0x36, 0xb9, 0xef, 0xb4, 0x90, 0xef, 0xa3, 0xee, 0x07, 0xba, 0x4a, 0xa2, 0xf7, 0xf1, - 0xae, 0x72, 0x03, 0xe1, 0x0d, 0x9e, 0x02, 0x5f, 0xdd, 0x8a, 0xf7, 0xca, 0xa7, 0xa8, 0xa9, 0x75, - 0xbf, 0xe8, 0x03, 0x36, 0xca, 0xda, 0xe5, 0x7d, 0x7e, 0x7f, 0x8a, 0xa2, 0x53, 0x9b, 0xe6, 0x5b, - 0x0a, 0x5b, 0x08, 0x82, 0xbc, 0xe7, 0x6a, 0x9b, 0x59, 0x7c, 0xff, 0x93, 0xe5, 0xdb, 0xdf, 0x90, - 0xdf, 0x8d, 0x8a, 0x26, 0xda, 0x23, 0x92, 0x62, 0x2d, 0xda, 0x3e, 0x75, 0xd8, 0x5f, 0xc8, 0x84, - 0xca, 0xa7, 0x61, 0xac, 0xfb, 0x89, 0x61, 0x51, 0xc1, 0xbd, 0x5f, 0x68, 0xd7, 0x73, 0x37, 0x51, - 0x86, 0xcd, 0xd1, 0x44, 0x05, 0x90, 0x37, 0xd1, 0xd7, 0x19, 0xc3, 0xaf, 0x21, 0x75, 0x59, 0x7a, - 0xda, 0x18, 0x2a, 0x55, 0x4e, 0xa9, 0x2b, 0xd0, 0xd6, 0xbe, 0x81, 0xf0, 0x7a, 0xd6, 0xff, 0x27, - 0xc4, 0x09, 0x0d, 0x62, 0x1b, 0xb6, 0x8e, 0x28, 0xbc, 0xa4, 0x0c, 0x66, 0xe2, 0x38, 0x19, 0x03, - 0x94, 0x8b, 0x3e, 0x0d, 0x84, 0xfd, 0x9d, 0xd3, 0x20, 0x5d, 0x4f, 0x2e, 0x21, 0xbc, 0x61, 0x92, - 0x30, 0x9f, 0x7c, 0x2b, 0x86, 0xa4, 0xda, 0x05, 0xb6, 0xb0, 0x1d, 0x7b, 0xa8, 0x1d, 0x3b, 0xb4, - 0x2d, 0x71, 0x3b, 0x74, 0x9b, 0x2b, 0xf5, 0x0c, 0x7a, 0x09, 0xe1, 0xde, 0x49, 0x52, 0xb3, 0x66, - 0x89, 0xed, 0xdb, 0x33, 0x98, 0x62, 0x0f, 0x85, 0x16, 0x36, 0x67, 0x37, 0x35, 0x67, 0xbb, 0xa6, - 0x26, 0x9a, 0x43, 0x75, 0x7a, 0xd6, 0xdc, 0x40, 0x78, 0x4d, 0x99, 0xb8, 0xbe, 0x25, 0xc3, 0xb2, - 0x4d, 0x51, 0x07, 0x12, 0x58, 0x78, 0x37, 0x4b, 0xad, 0xd1, 0x16, 0x58, 0x8e, 0xce, 0xc3, 0xa1, - 0x04, 0x03, 0x72, 0x94, 0xee, 0x38, 0x3c, 0x9c, 0x30, 0xb0, 0xe8, 0x12, 0xf3, 0x57, 0x84, 0xd7, - 0xb3, 0xe2, 0xc9, 0x93, 0x81, 0xe1, 0x7a, 0x1c, 0xcc, 0xc4, 0x71, 0xaa, 0x5f, 0x64, 0xae, 0x2e, - 0x20, 0xb5, 0x3b, 0x5f, 0xbd, 0xfa, 0x2b, 0xab, 0xcb, 0xe0, 0xae, 0x17, 0xd0, 0x0b, 0x0a, 0xee, - 0x0d, 0x06, 0x74, 0xdc, 0x70, 0x0d, 0xd0, 0xf3, 0x04, 0xd5, 0x43, 0x0a, 0xdf, 0x47, 0xf3, 0x0f, - 0xe0, 0x24, 0x5c, 0x62, 0x24, 0x7c, 0x1b, 0xf9, 0x1d, 0xb4, 0x6e, 0xb8, 0x46, 0xc1, 0xa8, 0x1f, - 0x85, 0xb2, 0x6c, 0x74, 0xd1, 0xd0, 0x5f, 0x47, 0x78, 0x9d, 0xb7, 0x1e, 0x75, 0x2c, 0xce, 0xb9, - 0xbc, 0x0d, 0x48, 0xc3, 0x4e, 0x57, 0x37, 0x8b, 0xba, 0x69, 0xc2, 0x70, 0x81, 0x50, 0x57, 0xc6, - 0xe0, 0x53, 0xdd, 0x46, 0x17, 0xfe, 0x8d, 0x30, 0x9c, 0x26, 0x76, 0xd3, 0x6c, 0x85, 0xb2, 0x78, - 0xaf, 0xd4, 0xcc, 0x0e, 0x58, 0x78, 0x54, 0xca, 0x03, 0xe5, 0x61, 0xbc, 0xcc, 0xc2, 0x78, 0x11, - 0x95, 0xba, 0xcf, 0xe5, 0x63, 0xa5, 0xe5, 0x0a, 0xa2, 0x97, 0xd0, 0x7f, 0x64, 0x09, 0x7d, 0xc2, - 0xaa, 0x93, 0x94, 0x7e, 0x19, 0x12, 0x07, 0x3a, 0xd4, 0x40, 0x2a, 0x50, 0xfb, 0x96, 0x42, 0xdd, - 0xfd, 0x0f, 0x82, 0x96, 0x30, 0x39, 0xfc, 0xd8, 0x91, 0xf9, 0xdc, 0xf9, 0xb7, 0x1a, 0x35, 0x39, - 0x24, 0x09, 0xda, 0x1f, 0x12, 0xf8, 0x6b, 0x23, 0xd5, 0x6e, 0xd6, 0xe7, 0x2b, 0x2f, 0x21, 0xb8, - 0x88, 0x64, 0x73, 0x0a, 0x9a, 0x42, 0x4a, 0x3a, 0x9c, 0x2d, 0xbf, 0x35, 0xf0, 0xa1, 0x82, 0xc1, - 0x4b, 0xef, 0x10, 0x3b, 0x4e, 0x7c, 0x99, 0x0c, 0xc9, 0x83, 0x55, 0x73, 0x77, 0x26, 0x52, 0xbb, - 0xca, 0xb8, 0xbe, 0xa4, 0x80, 0x23, 0xe5, 0xba, 0xf3, 0x6c, 0x40, 0xe2, 0x63, 0xb2, 0xbc, 0xe3, - 0x69, 0xb2, 0x98, 0xb5, 0x96, 0x6b, 0x08, 0xae, 0xa4, 0x13, 0x9e, 0x3c, 0x9a, 0xd1, 0xbe, 0x72, - 0x86, 0xc1, 0xe5, 0xff, 0xc7, 0x9b, 0xe3, 0xdc, 0x3f, 0x62, 0xd9, 0xf4, 0xd9, 0xae, 0x9e, 0x4a, - 0x2c, 0x47, 0x15, 0x8c, 0xc4, 0xab, 0xab, 0x69, 0x24, 0xae, 0xad, 0x86, 0x1f, 0xf5, 0x08, 0x46, - 0x6a, 0x67, 0xcd, 0x46, 0xdd, 0x26, 0xd1, 0x27, 0xea, 0x8e, 0x7e, 0x3e, 0xfc, 0x43, 0x55, 0xa4, - 0x4d, 0xe8, 0x17, 0x09, 0x2b, 0x85, 0x87, 0x76, 0x08, 0x2b, 0x3c, 0x92, 0x27, 0x75, 0x9e, 0x71, - 0x22, 0xeb, 0x93, 0xd0, 0xfc, 0xe9, 0x6f, 0xaa, 0x0f, 0x02, 0x93, 0x62, 0xac, 0x80, 0x48, 0xad, - 0x12, 0x00, 0xb1, 0x57, 0x4e, 0xc2, 0xd8, 0xc4, 0xb5, 0xe7, 0xaa, 0x86, 0xeb, 0x92, 0x66, 0xdb, - 0x9d, 0xaf, 0xdc, 0xea, 0x81, 0x9b, 0xd9, 0xe1, 0xa2, 0x99, 0x5c, 0x98, 0x3d, 0x96, 0xe4, 0xb7, - 0x23, 0xfd, 0xb1, 0x88, 0x34, 0x2c, 0xf4, 0xe0, 0x8d, 0xd1, 0x25, 0x8f, 0xee, 0xe3, 0x86, 0xb3, - 0x96, 0xbd, 0xe0, 0x1e, 0x6e, 0x5f, 0x3e, 0xb0, 0x58, 0xf8, 0x59, 0x77, 0xbe, 0x18, 0xe8, 0xce, - 0x74, 0xf1, 0xfe, 0x88, 0x96, 0xc3, 0xef, 0x20, 0x58, 0x44, 0xa9, 0x13, 0x7f, 0xe4, 0x6b, 0xe2, - 0xd7, 0xf0, 0xfa, 0x49, 0x32, 0x6d, 0x3a, 0x2e, 0xb1, 0x4f, 0x32, 0x85, 0xf1, 0xa3, 0x03, 0x17, - 0x08, 0x9c, 0xf4, 0xe8, 0x10, 0xc3, 0x71, 0xd6, 0xb7, 0x50, 0xd2, 0x37, 0x69, 0xbd, 0xc2, 0x75, - 0x6e, 0x3a, 0x3d, 0xba, 0xbe, 0x87, 0xf0, 0x5a, 0x76, 0xd4, 0x10, 0xf3, 0xf7, 0x49, 0xf4, 0xaa, - 0xbb, 0x25, 0x82, 0xc8, 0x49, 0xe5, 0x05, 0xb6, 0xbb, 0x7b, 0x1e, 0xa9, 0x9b, 0xa2, 0x13, 0x7a, - 0xbe, 0xd3, 0xdd, 0x9b, 0x9a, 0x22, 0xdb, 0xa5, 0x6e, 0x8f, 0xc9, 0x02, 0x0f, 0x99, 0x8a, 0xa0, - 0xe0, 0x0c, 0x5e, 0xe3, 0x2d, 0x46, 0xdc, 0x50, 0x07, 0x34, 0x89, 0x0b, 0xa9, 0xaf, 0xc7, 0xc4, - 0x68, 0xf1, 0xa2, 0x14, 0x62, 0x44, 0xc2, 0xcb, 0x08, 0xdf, 0x15, 0x7e, 0xb7, 0x34, 0x31, 0x4b, - 0x5a, 0x2e, 0xec, 0xcf, 0x3c, 0xe2, 0x50, 0x9c, 0x98, 0x7a, 0x24, 0x2f, 0x9c, 0x53, 0xbd, 0x93, - 0x1a, 0x34, 0xa0, 0xf5, 0x77, 0xb6, 0xd1, 0x9e, 0xd8, 0x09, 0xbf, 0x77, 0x7a, 0xa1, 0xf3, 0x80, - 0x84, 0xd6, 0x26, 0xb5, 0x6b, 0x6f, 0x6a, 0xd9, 0x86, 0x6c, 0x2a, 0xe5, 0x81, 0xca, 0x1e, 0xbc, - 0x73, 0x7b, 0xbc, 0x74, 0x8f, 0xd8, 0xe2, 0xed, 0x28, 0x24, 0xb6, 0x50, 0x51, 0x3e, 0x5b, 0x92, - 0xa0, 0x19, 0xb6, 0x74, 0x5e, 0x6e, 0xbf, 0x79, 0x07, 0xdd, 0xf3, 0x87, 0x54, 0xc4, 0xf7, 0xfc, - 0x21, 0x71, 0xda, 0x9e, 0x3f, 0x04, 0xd4, 0xfe, 0xb2, 0x8a, 0x4e, 0x7f, 0x6b, 0x15, 0xbc, 0xac, - 0x84, 0x5e, 0xfa, 0x46, 0xba, 0x5c, 0xee, 0xb5, 0xaf, 0xc0, 0x62, 0x97, 0x7b, 0x75, 0xcb, 0x58, - 0xce, 0x12, 0xd7, 0xaf, 0xa4, 0x05, 0x2b, 0xbe, 0x42, 0x25, 0x2e, 0x49, 0xf1, 0xdd, 0xc6, 0x1b, - 0x0a, 0x5c, 0x97, 0xd2, 0x23, 0x7a, 0x71, 0xae, 0x5d, 0xc5, 0xff, 0x3a, 0x95, 0xf0, 0x41, 0x0f, - 0x3b, 0x5c, 0x85, 0xd2, 0x30, 0xe1, 0x70, 0x15, 0x92, 0xa7, 0x6e, 0xe9, 0x63, 0x48, 0x6d, 0xb1, - 0x87, 0x26, 0xf5, 0x85, 0x1e, 0xf8, 0x31, 0x92, 0x26, 0x75, 0xee, 0x30, 0xe4, 0x8d, 0x41, 0xbe, - 0x00, 0xc8, 0xd9, 0xaf, 0xfc, 0x1e, 0xc1, 0x3b, 0x28, 0x35, 0xcb, 0x72, 0xa5, 0xd8, 0xc7, 0xce, - 0x31, 0xf8, 0xf3, 0x1d, 0x74, 0x0b, 0x17, 0x0a, 0x54, 0xf2, 0x16, 0x2e, 0xda, 0xc5, 0x52, 0xb7, - 0x70, 0xc9, 0x60, 0xde, 0x56, 0xff, 0xc5, 0x1a, 0xdb, 0x07, 0xab, 0xe0, 0x35, 0x25, 0xb4, 0x95, - 0xba, 0xdd, 0xdd, 0xa2, 0xdd, 0xed, 0x37, 0x0a, 0xfc, 0x3a, 0x9d, 0xa3, 0xdb, 0x2d, 0xae, 0x48, - 0x8b, 0x7b, 0x53, 0xc1, 0x03, 0xa1, 0xad, 0xea, 0x38, 0x55, 0x79, 0xb8, 0x73, 0xd5, 0x10, 0xee, - 0x95, 0x6c, 0xdd, 0xa2, 0xc0, 0xf0, 0x33, 0xf8, 0x43, 0x05, 0x47, 0xf1, 0x4a, 0xf8, 0x25, 0xdb, - 0xe7, 0xfe, 0x1c, 0xa9, 0x8f, 0x46, 0xf6, 0x83, 0xf1, 0x1b, 0x99, 0xfa, 0xf9, 0xf0, 0x85, 0x48, - 0x4e, 0x4f, 0xe0, 0x47, 0x4e, 0x8f, 0xb7, 0xb5, 0xad, 0xab, 0xd5, 0x6c, 0x85, 0x34, 0x75, 0x02, - 0xe3, 0x59, 0x8e, 0xe4, 0x9f, 0x05, 0x16, 0x14, 0xac, 0x96, 0x89, 0x2b, 0xa3, 0xf2, 0x9e, 0x9c, - 0xa4, 0x04, 0xb6, 0x44, 0x07, 0x8a, 0x0c, 0xe1, 0x24, 0x3e, 0x47, 0x39, 0x7c, 0xd6, 0x7f, 0xbd, - 0x9c, 0x42, 0x61, 0xfc, 0xb5, 0xf4, 0x67, 0xfd, 0xdb, 0x06, 0x19, 0x4c, 0xc9, 0x5e, 0x50, 0x5f, - 0x51, 0xf0, 0xc0, 0x38, 0x69, 0x90, 0xa5, 0xe7, 0x14, 0xd3, 0x52, 0x34, 0xa7, 0xc4, 0x28, 0x4e, - 0xc7, 0x37, 0x59, 0x4e, 0x3d, 0x57, 0xea, 0x8a, 0x0f, 0x2f, 0x79, 0x8e, 0x94, 0x96, 0x48, 0x89, - 0x97, 0x1b, 0x2f, 0x2a, 0xb8, 0x2f, 0x54, 0x69, 0x01, 0x3e, 0x46, 0x24, 0x9e, 0xc9, 0xaa, 0x4b, - 0xcf, 0x8d, 0xe7, 0x1c, 0x2c, 0x32, 0x0e, 0x2e, 0x20, 0x55, 0x8f, 0x7a, 0x92, 0x51, 0x50, 0x9e, - 0xff, 0x27, 0xd5, 0xc7, 0x96, 0xb1, 0x78, 0xf8, 0x25, 0xd8, 0x8d, 0x7e, 0xa1, 0x04, 0x98, 0x18, - 0xce, 0xf4, 0x2c, 0x50, 0x1c, 0xfb, 0xf2, 0x81, 0x39, 0x07, 0x84, 0x52, 0x50, 0x85, 0x5d, 0x69, - 0x0c, 0x08, 0x23, 0x2b, 0xf7, 0xfb, 0xef, 0x3f, 0x0b, 0xc5, 0x1c, 0x6e, 0x21, 0xdc, 0x17, 0xca, - 0xfe, 0x42, 0x71, 0x0e, 0x67, 0xbc, 0x9e, 0x1b, 0xcf, 0x7d, 0x3c, 0x47, 0x7d, 0x24, 0xa5, 0x5c, - 0x3e, 0x7a, 0xa1, 0x1d, 0x2b, 0x75, 0xe7, 0x26, 0x7d, 0x05, 0xad, 0xe0, 0x7e, 0x96, 0x67, 0xe2, - 0x48, 0x1d, 0x70, 0x55, 0xfa, 0xe6, 0x52, 0x96, 0xd3, 0xa3, 0xf9, 0x07, 0x70, 0x67, 0x6f, 0xb0, - 0xa4, 0xfe, 0x1d, 0x52, 0x2b, 0xb1, 0x2b, 0x8a, 0x5d, 0x2c, 0x13, 0xa1, 0xdf, 0x84, 0x22, 0x4a, - 0x92, 0xab, 0x5a, 0x69, 0x13, 0x2c, 0x69, 0xd9, 0x90, 0xce, 0x0a, 0x5f, 0x57, 0xf0, 0xa6, 0xc0, - 0xdd, 0xd6, 0x00, 0xb7, 0xfb, 0xb2, 0xa9, 0x0a, 0x54, 0xc9, 0xfe, 0x9c, 0xe8, 0xe8, 0xa3, 0x26, - 0x78, 0x20, 0x95, 0xd5, 0x58, 0x93, 0xf3, 0x5f, 0x96, 0xcc, 0x57, 0x26, 0xe0, 0x48, 0x26, 0x63, - 0x92, 0x5e, 0x19, 0x50, 0x03, 0x97, 0x15, 0xdc, 0xcf, 0x32, 0xbc, 0xbb, 0x0c, 0x0b, 0x57, 0xd3, - 0x68, 0xfe, 0x01, 0xb1, 0x97, 0xaa, 0xdd, 0x73, 0xe1, 0x25, 0xd0, 0xe7, 0x4a, 0xcb, 0x41, 0x87, - 0x97, 0x14, 0xdf, 0x47, 0xb8, 0xcf, 0x3b, 0x37, 0x1e, 0x17, 0x1f, 0x63, 0xa4, 0x75, 0x17, 0x09, - 0x50, 0xda, 0x5d, 0xa4, 0x78, 0x4e, 0xc7, 0x2e, 0xca, 0xc6, 0x36, 0xd8, 0x2a, 0x9c, 0xf1, 0x3f, - 0x09, 0xf1, 0xbd, 0x81, 0xf7, 0xf9, 0xf5, 0x3b, 0xff, 0xb6, 0x9c, 0x49, 0x9c, 0xf8, 0x13, 0xd8, - 0xc0, 0x65, 0xba, 0xe0, 0x91, 0x79, 0x7b, 0x06, 0x2e, 0x29, 0x3f, 0xbd, 0x2d, 0x6f, 0x9d, 0x7d, - 0xe5, 0x61, 0x7a, 0xe1, 0x10, 0xdf, 0xa7, 0x54, 0xdd, 0xb9, 0x36, 0x49, 0x22, 0x35, 0x98, 0x9f, - 0x19, 0x83, 0x53, 0x77, 0x3a, 0x0b, 0x0a, 0x5e, 0x57, 0x26, 0x01, 0x4f, 0xe7, 0xe2, 0xd7, 0xdf, - 0x03, 0xc2, 0x40, 0x51, 0x6e, 0x49, 0x81, 0x69, 0x3f, 0x65, 0x2e, 0xbe, 0x8e, 0xe0, 0x68, 0x5e, - 0x17, 0xb3, 0x6f, 0x68, 0x7c, 0x09, 0x9e, 0x28, 0xe2, 0x72, 0x81, 0x0b, 0x1b, 0xaf, 0x2a, 0x78, - 0x03, 0x6b, 0xcd, 0x41, 0x22, 0x86, 0x52, 0x3c, 0x0c, 0x77, 0xfe, 0xbd, 0x39, 0x90, 0x3c, 0x03, - 0x7f, 0xc6, 0x98, 0xf9, 0x09, 0x52, 0x97, 0x8f, 0x19, 0xaf, 0x40, 0x9f, 0x54, 0x57, 0x88, 0x1c, - 0xaf, 0x66, 0x1b, 0x18, 0x97, 0x89, 0xfb, 0x04, 0x3b, 0x85, 0xc5, 0x3f, 0x30, 0xf2, 0x65, 0xd2, - 0x0f, 0x8c, 0x82, 0x10, 0xce, 0x44, 0x1f, 0x25, 0x62, 0x03, 0xac, 0x17, 0x76, 0xf3, 0x53, 0x1e, - 0xfc, 0x42, 0xa1, 0x5b, 0xab, 0x71, 0xff, 0xfb, 0x27, 0x1e, 0x90, 0xec, 0xeb, 0xd8, 0x31, 0xd3, - 0x62, 0x4a, 0xb4, 0x77, 0x59, 0x00, 0xde, 0x46, 0xd0, 0x39, 0x4f, 0xc5, 0xbe, 0xb4, 0xa2, 0xb4, - 0xd1, 0xa3, 0x66, 0xc1, 0x48, 0x84, 0x2f, 0x6c, 0xb7, 0xa0, 0x91, 0x3a, 0x45, 0x2c, 0x12, 0x4b, - 0x9b, 0x0f, 0xde, 0xe8, 0x61, 0xad, 0x35, 0xea, 0xb4, 0x99, 0xb4, 0xe2, 0xc6, 0x98, 0x09, 0xf6, - 0xb0, 0xdd, 0xb9, 0xd0, 0xda, 0x1f, 0xd8, 0x9b, 0xbb, 0xb7, 0x14, 0x78, 0x3c, 0x9d, 0xcb, 0xe2, - 0xc5, 0xfe, 0x55, 0xf8, 0x4a, 0x21, 0x95, 0x45, 0xef, 0xe7, 0x96, 0x61, 0x62, 0x59, 0x4c, 0xae, - 0x9c, 0x86, 0xc9, 0xe5, 0x37, 0x14, 0xae, 0x2a, 0xf4, 0x5a, 0x7e, 0xe7, 0x81, 0xdb, 0x71, 0xe2, - 0xda, 0x66, 0xcd, 0x81, 0x03, 0x79, 0x6e, 0xc7, 0x71, 0xb0, 0x08, 0xe6, 0xc1, 0x42, 0x63, 0x78, - 0x75, 0x26, 0x7c, 0xa0, 0xd7, 0x64, 0x90, 0x82, 0xf7, 0xea, 0x02, 0x1f, 0xe8, 0x25, 0x28, 0x28, - 0x18, 0xb6, 0x87, 0x1f, 0xaa, 0x3c, 0x38, 0x6d, 0xba, 0x67, 0x67, 0xa6, 0x46, 0x6a, 0x56, 0x53, - 0xa7, 0x7e, 0x79, 0x2a, 0xe8, 0x1f, 0x7a, 0xe7, 0x03, 0xca, 0x69, 0xd2, 0xd2, 0xdb, 0x53, 0xfb, - 0xa7, 0x2d, 0x3d, 0xfa, 0x21, 0xee, 0xd4, 0xff, 0xd1, 0x6f, 0x28, 0x0f, 0xfe, 0x37, 0x00, 0x00, - 0xff, 0xff, 0x44, 0x5a, 0xcf, 0x7c, 0xa3, 0x3b, 0x00, 0x00, + 0x19, 0xd6, 0x19, 0xa7, 0x04, 0x4e, 0x73, 0x71, 0xfe, 0x26, 0xd8, 0x99, 0xc4, 0x49, 0x3a, 0xb9, + 0x38, 0x59, 0x27, 0x1e, 0x37, 0x69, 0x5a, 0x6a, 0x51, 0xda, 0x34, 0x76, 0x96, 0xb4, 0x49, 0x1a, + 0x9c, 0x50, 0x60, 0x8b, 0x58, 0x8d, 0x77, 0x4f, 0x9c, 0x69, 0x76, 0x77, 0xb6, 0x33, 0x63, 0xb7, + 0x56, 0xe4, 0x02, 0x35, 0x84, 0xb4, 0x95, 0x13, 0xa4, 0x90, 0xa0, 0x8a, 0xb6, 0x42, 0x48, 0x95, + 0xb8, 0x3d, 0x21, 0x95, 0x27, 0x1e, 0x78, 0x89, 0x54, 0x51, 0x21, 0xb5, 0x2a, 0x97, 0x4a, 0xe4, + 0x09, 0x45, 0x4a, 0x25, 0x10, 0x50, 0x78, 0x00, 0x1e, 0x40, 0x68, 0xce, 0x65, 0xe7, 0x7a, 0xe6, + 0xb2, 0xb6, 0xab, 0x4a, 0xe4, 0xcd, 0xde, 0xff, 0x3b, 0xff, 0xf9, 0xff, 0xef, 0xbf, 0x9c, 0x73, + 0x66, 0xce, 0xe0, 0xcd, 0x67, 0x1a, 0xb3, 0x2e, 0x31, 0xeb, 0x0d, 0xdd, 0x21, 0xf6, 0x8c, 0x59, + 0x23, 0xba, 0x51, 0x6f, 0x9a, 0xad, 0xe1, 0xb6, 0x6d, 0xb9, 0x16, 0xf4, 0x0a, 0xe9, 0x30, 0x97, + 0xaa, 0x9b, 0xa7, 0x2c, 0x6b, 0xaa, 0x41, 0x74, 0xa3, 0x6d, 0xea, 0x46, 0xab, 0x65, 0xb9, 0x86, + 0x6b, 0x5a, 0x2d, 0x87, 0xe1, 0x55, 0x5f, 0x1b, 0xd5, 0xa2, 0xb7, 0x6d, 0xeb, 0x29, 0x52, 0x73, + 0xb9, 0x74, 0x38, 0x59, 0x5a, 0xad, 0x5b, 0x4d, 0xc3, 0x6c, 0x55, 0x0d, 0xd7, 0xb5, 0xcd, 0xc9, + 0x69, 0x97, 0x08, 0x6d, 0x83, 0x12, 0x7c, 0x0c, 0xb8, 0x31, 0x02, 0x74, 0x0d, 0xe7, 0x1c, 0x17, + 0x0d, 0x44, 0x44, 0xcf, 0x58, 0xf6, 0xb9, 0x33, 0x0d, 0xeb, 0x19, 0x2e, 0xde, 0x2d, 0x11, 0xc7, + 0xe7, 0xd8, 0x16, 0x41, 0x36, 0x8c, 0xe9, 0x56, 0xed, 0x6c, 0xb5, 0xdd, 0x30, 0x38, 0x59, 0xaa, + 0x1a, 0x41, 0x90, 0x19, 0xd2, 0x12, 0xae, 0x6f, 0x89, 0xca, 0x9e, 0x25, 0xb5, 0x69, 0x8f, 0x39, + 0x89, 0xab, 0x4d, 0xc3, 0xad, 0x9d, 0x35, 0x26, 0x1b, 0xa4, 0x6a, 0x13, 0xc7, 0x9a, 0xb6, 0x6b, + 0x84, 0x03, 0xb7, 0x47, 0x80, 0x2d, 0xab, 0x4e, 0xaa, 0x51, 0x6d, 0xdb, 0x13, 0xf8, 0x88, 0x81, + 0xa2, 0xb1, 0x9a, 0x21, 0xb6, 0xe3, 0x4b, 0x37, 0x45, 0xa4, 0x35, 0xab, 0xd9, 0x94, 0x5a, 0x5b, + 0x27, 0x4e, 0xcd, 0x36, 0xdb, 0x9e, 0xf2, 0x2a, 0x69, 0xb9, 0xa6, 0x3b, 0xcb, 0x80, 0xfb, 0xdf, + 0x78, 0x1a, 0xaf, 0x3a, 0xe4, 0x41, 0x4e, 0xb1, 0xf4, 0x81, 0x26, 0xc6, 0x87, 0x6d, 0x62, 0xb8, + 0xe4, 0xb4, 0xe1, 0x9c, 0x83, 0xbb, 0x3b, 0x19, 0x31, 0xcc, 0xb2, 0xce, 0xfb, 0x95, 0xc9, 0x27, + 0xc8, 0xd3, 0xd3, 0xc4, 0x71, 0x55, 0x2d, 0x0d, 0xe2, 0xb4, 0xad, 0x96, 0x43, 0xb4, 0xfe, 0xe7, + 0xdf, 0xbd, 0x79, 0x45, 0x01, 0x6d, 0x35, 0xcd, 0xca, 0x99, 0x7b, 0xa8, 0xbf, 0xce, 0x28, 0x2a, + 0xc1, 0x7b, 0x08, 0xaf, 0x2c, 0x13, 0x97, 0x4e, 0xb6, 0x2d, 0xaa, 0xe9, 0xf1, 0x49, 0x2f, 0x9b, + 0xca, 0xc4, 0x15, 0x73, 0xad, 0x4f, 0x9a, 0x4b, 0xfb, 0x0e, 0xa2, 0xea, 0x17, 0x10, 0x3c, 0x18, + 0xd2, 0xaf, 0x9f, 0x37, 0xeb, 0xc3, 0x3c, 0x25, 0xe7, 0xe8, 0x3f, 0x2c, 0x8f, 0xd9, 0xdf, 0x2d, + 0xa3, 0x49, 0xd8, 0x5f, 0x9c, 0xd7, 0xb9, 0xca, 0x31, 0x78, 0x34, 0xac, 0xc0, 0xb2, 0xa7, 0x28, + 0xc2, 0xb2, 0xa7, 0xe6, 0x8a, 0x6a, 0x83, 0xeb, 0x08, 0xdf, 0x79, 0xcc, 0x74, 0xa8, 0x6f, 0x47, + 0xeb, 0x0e, 0x8c, 0x44, 0x8d, 0x3f, 0x61, 0x34, 0x49, 0x7d, 0x9c, 0x46, 0xe3, 0x68, 0xdd, 0x8b, + 0xca, 0x19, 0x93, 0xd8, 0xde, 0x08, 0xe1, 0xee, 0x9e, 0xdc, 0x23, 0xb4, 0x2f, 0x51, 0x0a, 0x4e, + 0xc1, 0xf6, 0xa0, 0x03, 0x55, 0xb3, 0xee, 0xe8, 0xe7, 0x7d, 0x9b, 0xb9, 0xc1, 0x95, 0xbd, 0x50, + 0x4a, 0xf0, 0x93, 0x39, 0x19, 0x43, 0xc3, 0x0f, 0x15, 0xfc, 0x09, 0xe1, 0x87, 0x03, 0xdb, 0xa3, + 0x36, 0x4d, 0xf0, 0xf4, 0x0f, 0x1a, 0xde, 0x9f, 0x14, 0x27, 0x6a, 0xe7, 0x1f, 0x58, 0xac, 0x7e, + 0x83, 0x60, 0xa4, 0x68, 0xac, 0x2a, 0x0f, 0x45, 0xe3, 0x5b, 0x30, 0x3c, 0x95, 0xdd, 0xb0, 0x2b, + 0xdf, 0xa4, 0x95, 0x83, 0x70, 0xa0, 0x8b, 0xa9, 0x60, 0x0e, 0xaf, 0x61, 0x99, 0xff, 0x05, 0xde, + 0xa5, 0x60, 0x67, 0x94, 0x09, 0x21, 0x09, 0x17, 0xd1, 0xae, 0x2c, 0x18, 0x2f, 0xa4, 0xcd, 0x94, + 0xbd, 0x4f, 0x6a, 0xeb, 0x84, 0x75, 0xa2, 0x1d, 0xd2, 0x62, 0x7a, 0x1f, 0xe1, 0x3b, 0xcb, 0xc4, + 0xed, 0x4c, 0x9e, 0x5d, 0x50, 0xfd, 0xb2, 0x79, 0xb5, 0x57, 0x58, 0xa0, 0xae, 0x22, 0x38, 0x14, + 0x9b, 0xab, 0x70, 0x61, 0x9d, 0x84, 0x13, 0x71, 0x25, 0x8b, 0x2a, 0xae, 0x77, 0x10, 0x5e, 0xeb, + 0x25, 0x94, 0xb0, 0x77, 0xd9, 0x0b, 0xcc, 0xa0, 0x74, 0x3c, 0x09, 0x83, 0x51, 0x47, 0x64, 0x45, + 0x36, 0x02, 0xc3, 0x12, 0x9f, 0x65, 0x85, 0xf6, 0x4b, 0x05, 0xaf, 0x0e, 0xfa, 0x94, 0xb3, 0xd8, + 0x36, 0xcb, 0x62, 0x48, 0xed, 0xfe, 0x13, 0x8b, 0xe3, 0x4d, 0x04, 0xf7, 0x76, 0x13, 0xc7, 0xca, + 0xe1, 0xa4, 0xf8, 0x17, 0x2d, 0xbc, 0x40, 0xc3, 0xc9, 0x9e, 0xbc, 0xf2, 0x00, 0xdc, 0xdf, 0xe5, + 0x94, 0x70, 0x01, 0xe1, 0x5e, 0x56, 0x32, 0xc7, 0xe8, 0xea, 0x7f, 0xb2, 0x61, 0xb4, 0x60, 0x30, + 0x4a, 0x90, 0x2f, 0x0b, 0x57, 0xe1, 0xee, 0x6c, 0x20, 0xaf, 0xc3, 0xad, 0x94, 0xd4, 0x8d, 0xda, + 0x7a, 0x61, 0x68, 0x60, 0xb3, 0x41, 0x4b, 0xf1, 0xef, 0x08, 0xaf, 0x2e, 0x13, 0x37, 0x60, 0x45, + 0x76, 0x31, 0xaa, 0xf2, 0xe9, 0xb5, 0x1f, 0xb0, 0x30, 0x7e, 0x0f, 0xc1, 0x58, 0xd2, 0x94, 0x85, + 0x2b, 0xf2, 0x14, 0x7c, 0x2e, 0x51, 0xcf, 0xa2, 0x8a, 0xf2, 0x1f, 0x08, 0xdf, 0x55, 0x26, 0xee, + 0xa1, 0x9a, 0x6b, 0xce, 0xa4, 0x06, 0x20, 0x8a, 0xc8, 0xc3, 0xc0, 0x35, 0xc6, 0xc0, 0x65, 0x04, + 0x9f, 0x11, 0x96, 0x1b, 0x54, 0x4d, 0xb5, 0x20, 0x11, 0x95, 0xe3, 0xf0, 0x58, 0x9a, 0x86, 0x82, + 0x14, 0xc0, 0x2b, 0x08, 0x6f, 0xf0, 0x4a, 0x2d, 0xea, 0x94, 0x03, 0x43, 0x59, 0x7e, 0x07, 0xcb, + 0x78, 0x8b, 0xdc, 0x77, 0x5a, 0xc8, 0xf7, 0x51, 0xf7, 0x03, 0x5d, 0x25, 0xd1, 0xfb, 0x78, 0x57, + 0xb9, 0x81, 0xf0, 0x3a, 0x4f, 0x81, 0xaf, 0x6e, 0xd9, 0x7b, 0xe5, 0x53, 0xd4, 0xd4, 0xba, 0x5f, + 0xf4, 0x01, 0x1b, 0x65, 0xed, 0xf2, 0x3e, 0xbf, 0x3f, 0x45, 0xd1, 0xa9, 0x4d, 0xf3, 0x6d, 0x85, + 0x2d, 0x04, 0x41, 0xde, 0x73, 0xb5, 0xcd, 0x2c, 0xbe, 0xff, 0xc9, 0xf2, 0xed, 0x6f, 0xc8, 0xef, + 0x46, 0x45, 0x13, 0xed, 0x88, 0xa4, 0x58, 0x8b, 0xb6, 0x4f, 0x1d, 0xf6, 0x15, 0x32, 0xa1, 0xf2, + 0x69, 0x18, 0xed, 0x7e, 0x62, 0x58, 0x50, 0x70, 0xef, 0xe7, 0xdb, 0xf5, 0xdc, 0x4d, 0x94, 0x61, + 0x73, 0x34, 0x51, 0x01, 0xe4, 0x4d, 0xf4, 0x75, 0xc6, 0xf0, 0x6b, 0x48, 0x5d, 0x92, 0x9e, 0x36, + 0x8a, 0x4a, 0x95, 0x53, 0xea, 0x32, 0xb4, 0xb5, 0xaf, 0x23, 0xbc, 0x96, 0xf5, 0xff, 0x71, 0x71, + 0x42, 0x83, 0xd8, 0x86, 0xad, 0x23, 0x0a, 0x2f, 0x29, 0x83, 0x99, 0x38, 0x4e, 0xc6, 0x00, 0xe5, + 0xa2, 0x4f, 0x03, 0x61, 0x7f, 0xe7, 0x34, 0x48, 0xd7, 0x93, 0x4b, 0x08, 0xaf, 0x9b, 0x20, 0xcc, + 0x27, 0xdf, 0x8a, 0xdd, 0x52, 0xed, 0x02, 0x5b, 0xd8, 0x8e, 0x5d, 0xd4, 0x8e, 0x6d, 0xda, 0xa6, + 0xb8, 0x1d, 0xba, 0xcd, 0x95, 0x7a, 0x06, 0xbd, 0x84, 0x70, 0xef, 0x04, 0xa9, 0x59, 0x33, 0xc4, + 0xf6, 0xed, 0x19, 0x4c, 0xb1, 0x87, 0x42, 0x0b, 0x9b, 0xb3, 0x93, 0x9a, 0xb3, 0x55, 0x53, 0x13, + 0xcd, 0xa1, 0x3a, 0x3d, 0x6b, 0x6e, 0x20, 0xbc, 0xaa, 0x4c, 0x5c, 0xdf, 0x92, 0x21, 0xd9, 0xa6, + 0xa8, 0x03, 0x09, 0x2c, 0xbc, 0x1b, 0xa5, 0xd6, 0x68, 0xf3, 0x2c, 0x47, 0xe7, 0xe0, 0x60, 0x82, + 0x01, 0x39, 0x4a, 0x77, 0x0c, 0x1e, 0x49, 0x18, 0x58, 0x74, 0x89, 0xf9, 0x2b, 0xc2, 0x6b, 0x59, + 0xf1, 0xe4, 0xc9, 0xc0, 0x70, 0x3d, 0x0e, 0x66, 0xe2, 0x38, 0xd5, 0x2f, 0x32, 0x57, 0xe7, 0x91, + 0xda, 0x9d, 0xaf, 0x5e, 0xfd, 0x95, 0xd5, 0x25, 0x70, 0xd7, 0x0b, 0xe8, 0x05, 0x05, 0xf7, 0x06, + 0x03, 0x3a, 0x66, 0xb8, 0x06, 0xe8, 0x79, 0x82, 0xea, 0x21, 0x85, 0xef, 0x23, 0xf9, 0x07, 0x70, + 0x12, 0x2e, 0x31, 0x12, 0xbe, 0x85, 0xfc, 0x0e, 0x5a, 0x37, 0x5c, 0xa3, 0x60, 0xd4, 0x8f, 0x42, + 0x59, 0x36, 0xba, 0x68, 0xe8, 0xaf, 0x23, 0xbc, 0xc6, 0x5b, 0x8f, 0x3a, 0x16, 0xe7, 0x5c, 0xde, + 0x06, 0xa4, 0x61, 0xa7, 0xab, 0x9b, 0x45, 0xdd, 0x34, 0x61, 0xa8, 0x40, 0xa8, 0x2b, 0xa3, 0xf0, + 0xa9, 0x6e, 0xa3, 0x0b, 0xff, 0x41, 0x18, 0x4e, 0x13, 0xbb, 0x69, 0xb6, 0x42, 0x59, 0xbc, 0x47, + 0x6a, 0x66, 0x07, 0x2c, 0x3c, 0x2a, 0xe5, 0x81, 0xf2, 0x30, 0x5e, 0x66, 0x61, 0xbc, 0x88, 0x4a, + 0xdd, 0xe7, 0xf2, 0xb1, 0xd2, 0x52, 0x05, 0xd1, 0x4b, 0xe8, 0x3f, 0xb2, 0x84, 0x3e, 0x61, 0xd5, + 0x49, 0x4a, 0xbf, 0x0c, 0x89, 0x03, 0x1d, 0x6a, 0x20, 0x15, 0xa8, 0x7d, 0x53, 0xa1, 0xee, 0xfe, + 0x17, 0x41, 0x4b, 0x98, 0x1c, 0x7e, 0xec, 0xc8, 0x7c, 0xee, 0xfc, 0x5b, 0x8d, 0x9a, 0x1c, 0x92, + 0x04, 0xed, 0x0f, 0x09, 0xfc, 0xb5, 0x91, 0x6a, 0x37, 0xeb, 0x73, 0x95, 0x97, 0x10, 0x5c, 0x44, + 0xb2, 0x39, 0x05, 0x4d, 0x21, 0x25, 0x1d, 0xce, 0x96, 0xde, 0x1a, 0xf8, 0xb7, 0x82, 0xc1, 0x4b, + 0xef, 0x10, 0x3b, 0x4e, 0x7c, 0x99, 0x0c, 0xc9, 0x83, 0x55, 0x73, 0x77, 0x26, 0x52, 0xbb, 0xca, + 0xb8, 0xbe, 0xa4, 0x80, 0x23, 0xe5, 0xba, 0xf3, 0x6c, 0x40, 0xe2, 0x63, 0xb2, 0xbc, 0xe3, 0x69, + 0xb2, 0x98, 0xb5, 0x96, 0x6b, 0x08, 0xae, 0xa4, 0x13, 0x9e, 0x3c, 0x9a, 0xd1, 0xbe, 0x7c, 0x86, + 0xc1, 0xe5, 0x8f, 0xe3, 0x8d, 0x71, 0xee, 0x8f, 0x58, 0x36, 0x7d, 0xb6, 0xab, 0xa7, 0x12, 0xcb, + 0x51, 0x05, 0x23, 0xf1, 0xea, 0x4a, 0x1a, 0x89, 0x6b, 0x2b, 0xe1, 0x47, 0x3d, 0x82, 0x91, 0xda, + 0x59, 0xb3, 0x51, 0xb7, 0x49, 0xf4, 0x89, 0xba, 0xa3, 0x9f, 0x0f, 0xff, 0x50, 0x15, 0x69, 0x13, + 0xfa, 0x45, 0xc2, 0x4a, 0xe1, 0xa1, 0x1d, 0xc2, 0x0a, 0x8f, 0xe4, 0x49, 0x9d, 0x67, 0x9c, 0xc8, + 0xfa, 0x24, 0x34, 0x7f, 0xfa, 0x9b, 0xea, 0x83, 0xc0, 0xa4, 0x18, 0x2b, 0x20, 0x52, 0xab, 0x04, + 0x40, 0xec, 0x95, 0x93, 0x30, 0x36, 0x71, 0xed, 0xd9, 0xaa, 0xe1, 0xba, 0xa4, 0xd9, 0x76, 0xe7, + 0x2a, 0xb7, 0x7a, 0xe0, 0x66, 0x76, 0xb8, 0x68, 0x26, 0x17, 0x66, 0x8f, 0x25, 0xf9, 0xed, 0x48, + 0x7f, 0x24, 0x22, 0x0d, 0xf3, 0x3d, 0x78, 0x7d, 0x74, 0xc9, 0xa3, 0xfb, 0xb8, 0xa1, 0xac, 0x65, + 0x2f, 0xb8, 0x87, 0xdb, 0x9b, 0x0f, 0x2c, 0x16, 0x7e, 0xd6, 0x9d, 0x2f, 0x06, 0xba, 0x33, 0x5d, + 0xbc, 0x3f, 0xa4, 0xe5, 0xf0, 0xdb, 0x08, 0x16, 0x50, 0xea, 0xc4, 0x1f, 0xfa, 0x9a, 0xf8, 0x55, + 0xbc, 0x76, 0x82, 0x4c, 0x99, 0x8e, 0x4b, 0xec, 0x93, 0x4c, 0x61, 0xfc, 0xe8, 0xc0, 0x05, 0x02, + 0x27, 0x3d, 0x3a, 0xc4, 0x70, 0x9c, 0xf5, 0x4d, 0x94, 0xf4, 0x0d, 0x5a, 0xaf, 0x70, 0x9d, 0x9b, + 0x4e, 0x8f, 0xae, 0xdf, 0x45, 0x78, 0x35, 0x3b, 0x6a, 0x88, 0xf9, 0xfb, 0x24, 0x7a, 0xd5, 0x9d, + 0x12, 0x41, 0xe4, 0xa4, 0x72, 0x84, 0x4e, 0xf7, 0xb0, 0xba, 0x21, 0x3a, 0x9d, 0xe7, 0x39, 0xdd, + 0xbb, 0xed, 0x50, 0xb7, 0xc6, 0x64, 0x81, 0xc7, 0x48, 0x0c, 0x05, 0x67, 0xf0, 0x2a, 0x6f, 0x21, + 0xe1, 0x93, 0x38, 0xa0, 0x49, 0xa6, 0x4f, 0x7d, 0xb5, 0x25, 0x46, 0x8b, 0x97, 0x9c, 0x10, 0x23, + 0x01, 0x5e, 0x46, 0xf8, 0xae, 0xf0, 0x7b, 0xa1, 0xf1, 0x19, 0xd2, 0x72, 0x61, 0x5f, 0xe6, 0xf1, + 0x84, 0xe2, 0xc4, 0xd4, 0xc3, 0x79, 0xe1, 0x9c, 0xa6, 0xed, 0xd4, 0xa0, 0x01, 0xad, 0xbf, 0xb3, + 0x05, 0xf6, 0xc4, 0x4e, 0xf8, 0x9d, 0xd1, 0x0b, 0x9d, 0x87, 0x1b, 0xb4, 0xae, 0xa8, 0x5d, 0x7b, + 0x52, 0x4b, 0x2e, 0x64, 0x53, 0x29, 0x0f, 0x54, 0xf6, 0xd0, 0x9c, 0xdb, 0xe3, 0xa5, 0x6a, 0xc4, + 0x16, 0x6f, 0x37, 0x20, 0xb1, 0x85, 0x8a, 0xf2, 0xd9, 0x92, 0x04, 0xcd, 0xb0, 0xa5, 0xf3, 0x62, + 0xfa, 0xad, 0x3b, 0xe8, 0x7e, 0x3d, 0xa4, 0x22, 0xbe, 0x5f, 0x0f, 0x89, 0xd3, 0xf6, 0xeb, 0x21, + 0xa0, 0xf6, 0x97, 0x15, 0x74, 0xfa, 0x5b, 0x2b, 0xe0, 0x65, 0x25, 0xf4, 0xc2, 0x36, 0xd2, 0xa1, + 0x72, 0xaf, 0x5b, 0x05, 0x16, 0xaa, 0xdc, 0x2b, 0x53, 0xc6, 0x52, 0x94, 0xb8, 0xf6, 0x24, 0x2d, + 0x36, 0xf1, 0xd5, 0x25, 0x71, 0x39, 0x89, 0xef, 0x14, 0xde, 0x54, 0xe0, 0xba, 0x94, 0x1e, 0xd1, + 0x47, 0x73, 0xed, 0x08, 0xfe, 0xdf, 0xa9, 0x84, 0x0f, 0x7a, 0xd8, 0xc1, 0x28, 0x94, 0x86, 0x09, + 0x07, 0xa3, 0x90, 0x3c, 0x75, 0x3b, 0x1e, 0x43, 0x6a, 0x0b, 0x3d, 0x34, 0xa9, 0x2f, 0xf4, 0xc0, + 0x8f, 0x91, 0x34, 0xa9, 0x73, 0x87, 0x21, 0x6f, 0x0c, 0xf2, 0x05, 0x40, 0xce, 0x7e, 0xe5, 0x77, + 0x08, 0xde, 0x45, 0xa9, 0x59, 0x96, 0x2b, 0xc5, 0x3e, 0x72, 0x8e, 0xc1, 0x9f, 0xef, 0xa0, 0xdb, + 0xaf, 0x50, 0xa0, 0x92, 0xb7, 0x5f, 0xd1, 0x2e, 0x96, 0xba, 0xfd, 0x4a, 0x06, 0xf3, 0xb6, 0xfa, + 0x2f, 0xd6, 0xd8, 0x3e, 0x58, 0x01, 0xaf, 0x29, 0xa1, 0x6d, 0xd0, 0xed, 0xee, 0x16, 0xed, 0x6e, + 0xbf, 0x56, 0xe0, 0x57, 0xe9, 0x1c, 0xdd, 0x6e, 0x71, 0x45, 0x5a, 0xdc, 0x5b, 0x0a, 0x1e, 0x08, + 0x6d, 0x33, 0xc7, 0xa8, 0xca, 0x43, 0x9d, 0x6b, 0x82, 0x70, 0xaf, 0x64, 0xeb, 0x16, 0x05, 0x86, + 0x9f, 0x9f, 0x1f, 0x2c, 0x38, 0x8a, 0x57, 0xc2, 0x2f, 0xd8, 0x13, 0xc8, 0x37, 0x90, 0xfa, 0x68, + 0x64, 0x3f, 0x18, 0xbf, 0x4d, 0xa9, 0x9f, 0x0f, 0x5f, 0x66, 0xe4, 0xf4, 0x04, 0x7e, 0xe4, 0xf4, + 0x78, 0x5b, 0xdb, 0xba, 0x5a, 0xcd, 0x56, 0x48, 0x53, 0x27, 0x30, 0x9e, 0xe5, 0x48, 0xfe, 0x59, + 0x60, 0x5e, 0xc1, 0x6a, 0x99, 0xb8, 0x32, 0x2a, 0xef, 0xc9, 0x49, 0x4a, 0x60, 0x4b, 0xb4, 0xbf, + 0xc8, 0x10, 0x4e, 0xe2, 0x73, 0x94, 0xc3, 0x67, 0xfd, 0x57, 0xc3, 0x29, 0x14, 0xc6, 0x5f, 0x29, + 0x3f, 0xec, 0xdf, 0x14, 0xc8, 0x60, 0x4a, 0xf6, 0x72, 0xf9, 0x8a, 0x82, 0x07, 0xc6, 0x48, 0x83, + 0x2c, 0x3e, 0xa7, 0x98, 0x96, 0xa2, 0x39, 0x25, 0x46, 0x71, 0x3a, 0xbe, 0xc1, 0x72, 0xea, 0xb9, + 0x52, 0x57, 0x7c, 0x78, 0xc9, 0x73, 0xb8, 0xb4, 0x48, 0x4a, 0xbc, 0xdc, 0x78, 0x51, 0xc1, 0x7d, + 0xa1, 0x4a, 0x0b, 0xf0, 0x31, 0x2c, 0xf1, 0x4c, 0x56, 0x5d, 0x7a, 0x6e, 0x3c, 0xe7, 0x60, 0x81, + 0x71, 0x70, 0x01, 0xa9, 0x7a, 0xd4, 0x93, 0x8c, 0x82, 0xf2, 0xfc, 0x3f, 0xa9, 0x3e, 0xb6, 0x84, + 0xc5, 0xc3, 0x2f, 0xb0, 0xae, 0xf7, 0x0b, 0x25, 0xc0, 0xc4, 0x50, 0xa6, 0x67, 0x81, 0xe2, 0xd8, + 0x9b, 0x0f, 0xcc, 0x39, 0x20, 0x94, 0x82, 0x2a, 0xec, 0x48, 0x63, 0x40, 0x18, 0x59, 0xb9, 0xdf, + 0x7f, 0x77, 0x59, 0x28, 0xe6, 0x70, 0x0b, 0xe1, 0xbe, 0x50, 0xf6, 0x17, 0x8a, 0x73, 0x38, 0xe3, + 0xf5, 0xdc, 0x78, 0xee, 0xe3, 0x39, 0xea, 0x23, 0x29, 0xe5, 0xf2, 0xd1, 0x0b, 0xed, 0x68, 0xa9, + 0x3b, 0x37, 0xe9, 0xeb, 0x63, 0x05, 0xf7, 0xb3, 0x3c, 0x13, 0x47, 0xea, 0x80, 0xab, 0xd2, 0xb7, + 0x8e, 0xb2, 0x9c, 0x1e, 0xc9, 0x3f, 0x80, 0x3b, 0x7b, 0x83, 0x25, 0xf5, 0x6f, 0x91, 0x5a, 0x89, + 0x5d, 0x2f, 0xec, 0x62, 0x99, 0x08, 0xfd, 0x26, 0x14, 0x51, 0x92, 0x5c, 0xd5, 0x4a, 0x9b, 0x60, + 0x51, 0xcb, 0x86, 0x74, 0x56, 0xf8, 0x9a, 0x82, 0x37, 0x04, 0xee, 0xa5, 0x06, 0xb8, 0xdd, 0x9b, + 0x4d, 0x55, 0xa0, 0x4a, 0xf6, 0xe5, 0x44, 0x73, 0x56, 0x5f, 0x60, 0xac, 0x3e, 0x8f, 0xe0, 0x81, + 0x54, 0x56, 0x63, 0x4d, 0xce, 0x7f, 0xd1, 0x31, 0x57, 0x19, 0x87, 0xc3, 0x99, 0x8c, 0x49, 0x7a, + 0x65, 0x40, 0x0d, 0x5c, 0x56, 0x70, 0x3f, 0xcb, 0xf0, 0xee, 0x32, 0x2c, 0x5c, 0x4d, 0x23, 0xf9, + 0x07, 0xc4, 0x5e, 0x88, 0x76, 0xcf, 0x85, 0x97, 0x40, 0x9f, 0x2d, 0x2d, 0x05, 0x1d, 0x5e, 0x52, + 0x7c, 0x1f, 0xe1, 0x3e, 0xef, 0xdc, 0x78, 0x5c, 0x7c, 0x48, 0x91, 0xd6, 0x5d, 0x24, 0x40, 0x69, + 0x77, 0x91, 0xe2, 0x39, 0x1d, 0x3b, 0x28, 0x1b, 0x5b, 0x60, 0xb3, 0x70, 0xc6, 0xff, 0x9c, 0xc3, + 0xf7, 0x06, 0xde, 0xe7, 0x57, 0xe7, 0xfc, 0x9b, 0x6e, 0x26, 0x71, 0xe2, 0x4f, 0x4f, 0x03, 0x17, + 0xe1, 0x82, 0x47, 0xe6, 0xad, 0x19, 0xb8, 0xa4, 0xfc, 0xf4, 0xb6, 0xbc, 0x75, 0xf6, 0x85, 0x86, + 0xe9, 0x85, 0x43, 0x7c, 0x5b, 0x52, 0x75, 0x67, 0xdb, 0x24, 0x89, 0xd4, 0x60, 0x7e, 0x66, 0x0c, + 0x4e, 0xdd, 0xe9, 0xcc, 0x2b, 0x78, 0x4d, 0x99, 0x04, 0x3c, 0x9d, 0x8d, 0x5f, 0x5d, 0x0f, 0x08, + 0x03, 0x45, 0xb9, 0x29, 0x05, 0xa6, 0xfd, 0x94, 0xb9, 0xf8, 0x3a, 0x82, 0xa3, 0x79, 0x5d, 0xcc, + 0xbe, 0x5d, 0xf1, 0x45, 0x78, 0xa2, 0x88, 0xcb, 0x05, 0x2e, 0x5b, 0xbc, 0xaa, 0xe0, 0x75, 0xac, + 0x35, 0x07, 0x89, 0xd8, 0x9d, 0xe2, 0x61, 0xb8, 0xf3, 0xef, 0xc9, 0x81, 0xe4, 0x19, 0xf8, 0x33, + 0xc6, 0xcc, 0x4f, 0x90, 0xba, 0x74, 0xcc, 0x78, 0x05, 0xfa, 0xa4, 0xba, 0x4c, 0xe4, 0x78, 0x35, + 0xdb, 0xc0, 0xb8, 0x4c, 0xdc, 0x27, 0xd8, 0x29, 0x2c, 0xfe, 0x71, 0x90, 0x2f, 0x93, 0x7e, 0x1c, + 0x14, 0x84, 0x70, 0x26, 0xfa, 0x28, 0x11, 0xeb, 0x60, 0xad, 0xb0, 0x9b, 0x9f, 0xf2, 0xe0, 0xe7, + 0x0a, 0xdd, 0x5a, 0x8d, 0xf9, 0xdf, 0x2e, 0xf1, 0x80, 0x64, 0x5f, 0xa5, 0x8e, 0x99, 0x16, 0x53, + 0xa2, 0xbd, 0xc7, 0x02, 0xf0, 0x0e, 0x82, 0xce, 0x79, 0x2a, 0xf6, 0x95, 0x14, 0xa5, 0x8d, 0x1e, + 0x35, 0x0b, 0x46, 0x22, 0x7c, 0xd9, 0xba, 0x05, 0x8d, 0xd4, 0x29, 0x62, 0x91, 0x58, 0xdc, 0x7c, + 0xf0, 0x66, 0x0f, 0x6b, 0xad, 0x51, 0xa7, 0xcd, 0xa4, 0x15, 0x37, 0xc6, 0x4c, 0xb0, 0x87, 0xed, + 0xcc, 0x85, 0xd6, 0x7e, 0xcf, 0xde, 0xba, 0xbd, 0xad, 0xc0, 0xe3, 0xe9, 0x5c, 0x16, 0x2f, 0xf6, + 0xaf, 0xc0, 0x97, 0x0b, 0xa9, 0x2c, 0x7a, 0xb7, 0xb6, 0x0c, 0xe3, 0x4b, 0x62, 0x72, 0xe5, 0x34, + 0x4c, 0x2c, 0xbd, 0xa1, 0x70, 0x55, 0xa1, 0x57, 0xea, 0x3b, 0x0f, 0xdc, 0x8e, 0x13, 0xd7, 0x36, + 0x6b, 0x0e, 0xec, 0xcf, 0x73, 0xb3, 0x8d, 0x83, 0x45, 0x30, 0x0f, 0x14, 0x1a, 0xc3, 0xab, 0x33, + 0xe1, 0xe3, 0xba, 0x26, 0x83, 0x14, 0xbc, 0x13, 0x17, 0xf8, 0xb8, 0x2e, 0x41, 0x41, 0xc1, 0xb0, + 0x3d, 0xf2, 0x50, 0xe5, 0xc1, 0x29, 0xd3, 0x3d, 0x3b, 0x3d, 0x39, 0x5c, 0xb3, 0x9a, 0x3a, 0xf5, + 0xcb, 0x53, 0x41, 0xff, 0xd0, 0x3b, 0x1f, 0x3f, 0x4e, 0x91, 0x96, 0xde, 0x9e, 0xdc, 0x37, 0x65, + 0xe9, 0xd1, 0x8f, 0x68, 0x27, 0x3f, 0x46, 0xbf, 0x7f, 0x3c, 0xf0, 0xbf, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xfe, 0xfe, 0x7b, 0xca, 0x5f, 0x3b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go index 08e7f32269..fcdbb30992 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go @@ -3360,87 +3360,6 @@ func request_AdminService_UpdateProject_1(ctx context.Context, marshaler runtime _ = err ) - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := client.UpdateProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func request_AdminService_UpdateProject_2(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.Project - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["org"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") - } - - protoReq.Org, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := client.UpdateProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func request_AdminService_UpdateProject_3(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.Project - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - var ( - val string - ok bool - err error - _ = err - ) - val, ok = pathParams["org"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") @@ -7407,46 +7326,6 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) - mux.Handle("PUT", pattern_AdminService_UpdateProject_2, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AdminService_UpdateProject_2(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AdminService_UpdateProject_2(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_AdminService_UpdateProject_3, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AdminService_UpdateProject_3(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AdminService_UpdateProject_3(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("GET", pattern_AdminService_ListProjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -8441,11 +8320,7 @@ var ( pattern_AdminService_UpdateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "id"}, "")) - pattern_AdminService_UpdateProject_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "id"}, "")) - - pattern_AdminService_UpdateProject_2 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "projects", "org", "id"}, "")) - - pattern_AdminService_UpdateProject_3 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "projects", "org", "id"}, "")) + pattern_AdminService_UpdateProject_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "projects", "org", "id"}, "")) pattern_AdminService_ListProjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "projects"}, "")) @@ -8649,10 +8524,6 @@ var ( forward_AdminService_UpdateProject_1 = runtime.ForwardResponseMessage - forward_AdminService_UpdateProject_2 = runtime.ForwardResponseMessage - - forward_AdminService_UpdateProject_3 = runtime.ForwardResponseMessage - forward_AdminService_ListProjects_0 = runtime.ForwardResponseMessage forward_AdminService_CreateWorkflowEvent_0 = runtime.ForwardResponseMessage diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json index ca2e116531..4987c4b370 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json @@ -4369,7 +4369,7 @@ "/api/v1/projects/org/{org}/{id}": { "put": { "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", - "operationId": "UpdateProject4", + "operationId": "UpdateProject2", "responses": { "200": { "description": "A successful response.", @@ -4410,7 +4410,7 @@ "/api/v1/projects/{id}": { "put": { "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", - "operationId": "UpdateProject2", + "operationId": "UpdateProject", "responses": { "200": { "description": "A successful response.", diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md index 5cafea708e..11a3a648af 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md @@ -113,8 +113,8 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**UpdateLaunchPlan2**](docs/AdminServiceApi.md#updatelaunchplan2) | **Put** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**UpdateNamedEntity**](docs/AdminServiceApi.md#updatenamedentity) | **Put** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. *AdminServiceApi* | [**UpdateNamedEntity2**](docs/AdminServiceApi.md#updatenamedentity2) | **Put** /api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. -*AdminServiceApi* | [**UpdateProject2**](docs/AdminServiceApi.md#updateproject2) | **Put** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -*AdminServiceApi* | [**UpdateProject4**](docs/AdminServiceApi.md#updateproject4) | **Put** /api/v1/projects/org/{org}/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**UpdateProject**](docs/AdminServiceApi.md#updateproject) | **Put** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**UpdateProject2**](docs/AdminServiceApi.md#updateproject2) | **Put** /api/v1/projects/org/{org}/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. *AdminServiceApi* | [**UpdateProjectAttributes**](docs/AdminServiceApi.md#updateprojectattributes) | **Put** /api/v1/project_attributes/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level *AdminServiceApi* | [**UpdateProjectAttributes2**](docs/AdminServiceApi.md#updateprojectattributes2) | **Put** /api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level *AdminServiceApi* | [**UpdateProjectDomainAttributes**](docs/AdminServiceApi.md#updateprojectdomainattributes) | **Put** /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index e1bb82d227..78b4fa2709 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -3879,7 +3879,7 @@ paths: summary: "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project\ \ should be passed but the domains property should be empty;\nit will be ignored\ \ in the handler as domains cannot be updated via this API." - operationId: "UpdateProject4" + operationId: "UpdateProject2" parameters: - name: "org" in: "path" @@ -3911,7 +3911,7 @@ paths: summary: "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project\ \ should be passed but the domains property should be empty;\nit will be ignored\ \ in the handler as domains cannot be updated via this API." - operationId: "UpdateProject2" + operationId: "UpdateProject" parameters: - name: "id" in: "path" diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go index a496f55dd0..e106763b6c 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go @@ -10138,7 +10138,7 @@ AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project @return AdminProjectUpdateResponse */ -func (a *AdminServiceApiService) UpdateProject2(ctx context.Context, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProject(ctx context.Context, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} @@ -10230,7 +10230,7 @@ AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project @return AdminProjectUpdateResponse */ -func (a *AdminServiceApiService) UpdateProject4(ctx context.Context, org string, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { +func (a *AdminServiceApiService) UpdateProject2(ctx context.Context, org string, id string, body AdminProject) (AdminProjectUpdateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index 09feb3bd00..9fe3c25c46 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\x7b\x73\xe3\xb8\xb5\x2f\x0c\xff\xbf\x3f\x05\xaa\xf7\x5b\xd5\x33\x89\xed\x9e\x5c\xce\x7e\x53\xde\x75\xea\x79\x34\xb6\xba\x47\x67\xdc\xb6\xe3\xcb\xf4\x9e\x3a\xda\xa5\x81\x48\x48\x42\x4c\x01\x1a\x00\xb4\x5b\xd9\x95\xef\xfe\x14\x16\x00\x12\xa4\x48\x8a\xba\x5a\x72\x23\xa9\x4a\xdc\x22\x89\xcb\x02\xb0\xb0\xae\xbf\xf5\x3f\xff\x86\xd0\x3b\xf9\x82\xc7\x63\x22\xde\x9d\xa3\x77\x7f\x3e\xfb\xe1\xdd\x89\xfe\x8d\xb2\x11\x7f\x77\x8e\xf4\x73\x84\xde\x29\xaa\x12\xa2\x9f\x8f\x92\xb9\x22\x34\x4e\x3e\x48\x22\x9e\x69\x44\x3e\xe0\x78\x4a\xd9\xd9\x4c\x70\xc5\xe1\x43\x84\xde\x3d\x13\x21\x29\x67\xfa\x75\xfb\x27\x62\x5c\x21\x49\xd4\xbb\x7f\x43\xe8\x5f\xd0\xbc\x8c\x26\x64\x4a\xe4\xbb\x73\xf4\x7f\xcd\x47\x13\xa5\x66\xae\x01\xfd\xb7\xd4\xef\xfe\x37\xbc\x1b\x71\x26\xd3\xc2\xcb\x78\x36\x4b\x68\x84\x15\xe5\xec\xc3\x3f\x24\x67\xf9\xbb\x33\xc1\xe3\x34\x6a\xf9\x2e\x56\x13\x99\xcf\xf1\x03\x9e\xd1\x0f\xcf\x7f\xfa\x80\x23\x45\x9f\xc9\x20\xc1\x29\x8b\x26\x83\x59\x82\x99\xfc\xc0\xc5\xf8\xc3\xff\xd0\xf8\x8c\x8b\xf1\xbf\xe0\x8f\x99\xe0\xff\x20\x91\x32\xff\x88\xf9\x14\x53\x66\xfe\x66\x78\x4a\xfe\x95\x35\x8a\xd0\xbb\x31\x51\xde\x3f\xf5\xd4\xd3\xe9\x14\x8b\xb9\x26\xcf\x47\xa2\xa2\x09\x52\x13\x82\x4c\xa7\xc8\xd1\x8b\x8f\x10\x46\xe7\x82\x8c\xce\x7f\x13\x64\x34\x70\x54\x3f\x33\xd4\xbe\x82\xa1\xdd\x26\x98\xfd\x76\x66\x69\x06\x2d\xf3\x19\x11\x30\xd1\x5e\xac\x5b\xff\x44\x54\x07\x9a\xcd\xdf\xff\xb3\xff\xba\x20\x72\xc6\x99\x24\xb2\x30\x3e\x84\xde\xfd\xf9\x87\x1f\x4a\x3f\x21\xf4\x2e\x26\x32\x12\x74\xa6\xec\xca\x76\x90\x4c\xa3\x88\x48\x39\x4a\x13\xe4\x5a\xf2\x47\x63\xe6\xaa\x97\x19\x2f\x34\x86\xd0\xbb\xff\x9f\x20\x23\xdd\xce\xbf\x7f\x88\xc9\x88\x32\xaa\xdb\x95\x66\x37\xe5\xc3\x7d\x57\xf8\xea\x5f\xff\x56\xf5\xf7\xbf\xbc\x19\xcd\xb0\xc0\x53\xa2\x88\xc8\xd7\xdf\xfc\xa7\x34\x17\xbd\x48\xba\x73\xb3\xa2\xe5\x41\x97\x66\x7a\x03\x7f\xe1\xe4\x04\x71\x31\x46\x4f\x64\x8e\x60\x4b\x91\x18\x29\x0e\x6b\x27\x88\xe4\xa9\x88\x16\x67\x4f\xe1\x7b\xbd\xcd\xca\x4f\x04\xf9\x3d\xa5\x82\xe8\x65\x52\x22\x25\xa5\xa7\x6a\x3e\x83\xe1\x49\x25\x28\x1b\xfb\x44\xf8\xd7\x49\xab\x49\xd9\xdd\xb9\x64\x62\xd7\x78\x4a\xf4\x4e\xd3\x73\xb0\x5f\x14\xe6\x83\x86\x24\xe1\x6c\x2c\x91\xe2\x87\x33\x35\x73\xd6\x56\x98\x99\xf9\xa0\x76\x62\x7d\xd6\x71\xaf\x44\x98\xa1\x21\x41\x9a\xdd\xd0\x98\x08\x12\x23\x2c\x11\x46\x32\x1d\x4a\xa2\xd0\x0b\x55\x13\xca\xf4\xbf\x67\x24\xa2\x23\x1a\x39\x9a\x1d\x0e\x6d\xe0\xcf\x66\xca\x3c\x4a\x22\xf4\xc0\x9f\x69\x4c\x62\xf4\x8c\x93\x94\xa0\x11\x17\xc5\x7d\xdc\x67\x0f\x13\x4d\x87\xe9\x90\x32\xe0\x27\x9a\x96\x6e\x87\xfc\xd1\x91\xeb\x8f\x48\xf7\x87\x52\x46\x7f\x4f\x49\x32\x47\x34\x26\x4c\xd1\x11\x25\xb2\xdc\xda\x1f\xb9\x3d\x42\xe8\x14\x69\x3a\x13\xa1\x80\xde\x9c\x29\xf2\x55\x49\x74\x8a\x12\xfa\x44\xd0\xfb\x2b\x2a\x15\xea\xdc\xf6\xde\x9f\xa0\xf7\x86\x09\x20\x60\xbf\xef\xf7\x40\xe1\xec\xef\xff\xf6\xf8\x89\xc2\xe3\x32\x27\x79\xd7\xd1\x2c\xea\xde\xdc\x7e\x79\x0b\xff\xfd\x6f\x7e\x3b\x76\xbd\x1a\xaf\x94\x23\xbe\x45\xc2\x25\x12\xf8\x6d\xe0\xb7\x81\xdf\xee\x9e\xc2\xbb\x97\xce\x7e\x4f\x89\x98\x37\xcc\x6a\x84\x13\x79\xd0\xd7\x48\x7e\x87\xd8\x0b\xa4\xed\xb5\x01\xab\x5f\xbc\x31\xa4\xde\x78\x9b\x5e\x18\xba\xdd\xf2\x8d\x21\x8f\xeb\xca\xd0\x53\xd8\xf5\xb5\xb1\xc9\x9d\x81\x15\x1c\x66\x4c\x99\x39\xfb\x19\x2b\x10\x52\x1f\x7f\xb7\x7d\x0f\x84\x53\x6e\x72\x85\x78\x33\xf3\x6e\x11\x77\x39\x78\x54\x39\xc0\x79\x27\x74\x4a\x97\xad\x6f\x8f\xc5\x34\xc2\xca\xf2\x70\x96\x4e\x87\x44\x68\x32\x38\xae\x05\xb3\x1d\x6a\x2e\xa6\x52\xc1\x48\xdc\x62\x9a\x9b\x70\x34\xca\x14\x19\x13\x51\xfe\x7a\xc4\xc5\x14\x2b\xfb\xc2\x7f\xfc\x75\x55\x42\x28\xfe\x44\x96\xad\x7f\xcf\xac\x66\x84\x25\x6c\x83\x69\x9a\x28\x3a\x4b\x08\x9a\xe1\x31\x91\x96\x22\x69\xa2\xe4\x09\xbc\x26\x89\x78\x26\xe2\x34\xbb\x58\xa1\x07\x27\x50\xa4\xd2\x70\xff\x51\x26\x17\x33\xf2\x55\x41\x4b\x7d\x06\x22\x05\x90\xc8\xbf\x28\xf7\x73\x39\xb4\x20\x95\xe4\x42\x0d\x86\xf3\xb3\x27\xb2\xd0\x6f\xed\xce\xc1\x0c\x61\xa5\x04\x1d\xa6\x8a\xe8\x79\xeb\x36\xdc\xd5\x07\xec\xd1\xc8\x1d\x6d\x58\xc3\xeb\x4d\x38\xa6\x82\x44\x30\xb7\x55\x0e\x4c\xf6\x95\x9e\xb7\xbe\xf8\xe7\x66\xf6\x5a\x0e\xd0\x62\x56\x05\x05\xb2\x25\xef\xb3\x3e\x43\xa7\xe8\xb2\x7b\x7f\xd1\xbd\xbe\xec\x5d\x7f\x3a\x47\x3f\xce\x51\x4c\x46\x38\x4d\xd4\x09\x1a\x51\x92\xc4\x12\x61\x41\xa0\x49\x12\x6b\x51\x4a\x0f\x86\xb0\x98\xb2\x31\xe2\x22\x26\x62\x77\x64\x2c\x3d\x25\x2c\x9d\x96\xee\x15\xf8\x3d\x1f\x7d\xe9\x0b\x2d\x62\x64\x8f\x0a\x4f\xfe\x7b\x81\xc0\x30\x63\xdd\xb7\xd7\xda\x8a\xcb\x18\x04\x35\x5f\x50\x8b\x26\x34\x89\x05\x61\x1f\x14\x96\x4f\x03\xf2\x95\x44\xa9\x91\x33\xc0\x8e\x5c\xfc\x71\xa0\x15\x09\x1e\x93\xe2\x2f\x85\x7f\x18\xab\xf3\xca\x9f\xe5\x92\xe1\xca\x9f\x66\xb6\x88\x95\xbf\x04\xcb\x45\xbb\xef\xe0\x17\x1a\x57\xbe\x0d\xbf\x2c\x99\x83\x7b\xa7\x61\xb0\xee\x95\xda\x51\xb9\x17\xac\x00\x5c\xf9\x8e\x20\x4a\xcc\x07\x58\x29\x32\x9d\xa9\x15\xad\x32\x18\x25\x5a\xcc\x6e\x12\xab\xaf\x79\x4c\xba\xae\xbf\xdf\x90\x91\xee\x49\x8c\x86\x73\x7b\x2c\x46\x44\x10\x16\x91\xfa\x16\x1e\xb0\x7c\xca\x5b\x58\x26\x9b\x17\xfa\x93\x1f\xb9\xd0\x9f\x1f\x85\x63\xa0\x30\xf2\x7d\xc8\xe8\xeb\x9c\xd4\x37\xe6\x4d\x58\x97\xeb\xbc\x39\x5b\xd8\x9a\x3c\x34\x58\xce\x36\xa7\x64\x5b\x3b\x1b\x17\x48\xce\xa5\x22\xd3\xa5\x16\xb7\xe3\x21\x84\xbd\x24\x0f\x75\xc0\xa5\x7b\xfa\x1b\x38\xf5\x45\xa9\x23\x1c\xef\x15\x48\xb6\x2d\x7b\xf9\xa1\xcf\xd3\x05\xc0\x34\x4f\xf5\xde\x2d\x9f\xe7\xae\x3b\x8a\x69\x16\xe4\xe1\x6d\x0f\x72\x47\x16\xa8\xda\xb5\x72\xd4\x1e\xc0\x00\x96\xd8\x1e\x8a\x1e\x97\xec\xfc\xe9\x4f\x7d\xa3\x9d\xb1\xd0\xaa\x09\x95\x9e\xfd\x12\x45\x5c\x18\x71\x38\xb6\xe7\xdd\x98\x1f\x3a\x0f\x9d\xfb\xee\xc3\x39\xea\xa0\x18\x2b\xac\x0f\xb8\x20\x33\x41\x24\x61\x0a\x4c\x3b\xfa\x7b\x35\x47\x53\x1e\x93\xc4\x18\x21\x3e\x6a\xe9\x1f\x5d\x62\x85\x2f\xb0\xc2\x09\x1f\x9f\xa1\x0e\xfc\x53\x7f\x4c\x25\xc2\x89\xe4\x08\xbb\x6d\x45\x62\xd7\x04\x66\xb1\x63\x2d\x18\x45\x7c\x3a\xa3\x49\xe6\x6d\xca\xec\x6d\x94\xc5\xf4\x99\xc6\x29\x4e\x10\x1f\x6a\xae\x22\xcf\xfa\xac\xfb\x4c\x98\x4a\x71\x92\xcc\x11\x4e\x12\x64\xbb\x75\x2f\x20\x39\xe1\x69\x12\xeb\x76\xdd\x28\x25\x9d\xd2\x04\x0b\x2d\xd3\x9a\xd1\xde\xd8\xb6\xd0\xc3\x84\x64\x63\x85\x71\x69\x6a\x4e\xf1\x13\x91\x88\x2a\x34\xe3\x52\xd2\x61\x92\x9f\xf9\xc7\x1e\x82\x71\x5f\x5c\xf5\xc0\xc4\x13\x29\xc4\x0d\x0f\x75\x9d\x5b\x93\x9e\xeb\x71\x8a\x19\x23\xd0\x31\x57\x13\x22\x6c\xf7\xf6\xe5\xd7\xb6\xd6\x3c\x5e\xdf\xdf\x76\x2f\x7a\x1f\x7b\xdd\xcb\x45\x73\xcd\x43\xe7\xfe\xe7\xc5\x5f\xbf\xdc\xdc\xfd\xfc\xf1\xea\xe6\xcb\xe2\x93\xab\xce\xe3\xf5\xc5\x4f\x83\xdb\xab\xce\xf5\xe2\x43\xbb\xad\x5a\x5b\x7e\xfc\x91\x6d\xed\x6c\x1d\x9d\x51\x28\x18\xf5\x57\x58\xf6\x6d\x1b\xf5\x4f\xde\xae\x55\x7f\x44\x13\x30\x3a\xb4\xb6\xe8\x67\x56\x23\xfb\x25\x9a\x61\x29\x8d\x1c\x68\x46\x70\xd6\x67\x9f\xb9\xd0\xec\x7a\xc4\x35\x47\xd4\xb2\xa2\x12\x69\xa4\x28\x1b\x67\x1f\x9d\xa3\x7e\xfa\xc3\x0f\x7f\x89\xae\x28\x7b\x82\xbf\xc8\x21\x12\x27\xb8\x3c\x82\xcb\xe3\xe0\x5c\x1e\xff\x56\xf1\xe9\xee\xdd\x03\xc1\xc6\x1f\x6c\xfc\xbb\xb3\xf1\x07\x13\xbf\x37\x86\x60\xdf\xde\x94\x10\xc1\x00\x16\xec\xdb\x9b\x13\x22\xd8\xb7\x0f\x74\xc6\xe1\x78\x07\xfb\x76\xb0\x6f\x07\xfb\x76\xb0\x6f\x07\xfb\x76\xb0\x6f\x7f\x33\xf6\xed\x03\x0c\x79\x0a\x46\xfe\x60\xe4\x0f\x46\xfe\x60\xe4\x0f\x46\xfe\x60\xe4\x3f\x1e\x23\xbf\x96\x76\x3f\x94\x43\xff\x77\x04\x21\xa3\x85\x4b\x36\x4b\x15\x88\x92\x3c\x55\xfa\x4f\xdd\x3f\xec\x95\x06\x08\x80\x76\x06\xe5\x4f\x44\x65\x2f\x6a\xd1\xf6\x28\x62\xc5\xbf\x70\xf1\x34\x4a\xf8\x4b\x36\xf2\x4f\x44\xe9\xc1\xdf\xd9\x5e\x02\xb4\x4c\x80\x96\x41\x01\xea\x60\xdb\x50\x07\x07\x65\xa2\xde\x16\x7f\x77\x5f\xbf\xd3\xca\xbf\x22\xb5\xbc\xf8\x81\x88\x29\x65\x4e\x76\xa1\x4c\x0b\xb9\x63\x41\xa4\xdc\x94\x03\x67\x0d\x67\xaf\x1f\x05\x0f\xce\x46\x9b\x8d\x3f\x70\xdf\xc0\x7d\x6b\xa6\x16\xb8\xef\x1b\xe3\xbe\x2d\xa6\x36\xe4\xf1\x82\x3a\x61\x46\x52\xf5\xa4\x79\x24\x5b\xe3\x50\xbf\xa7\xa4\x5d\xd8\xc1\x3e\xb4\x86\xa3\x56\x14\x8e\xe1\x8e\x3a\x00\x3d\x21\x30\xf5\xc0\xd4\xab\x29\x73\x94\x4c\xfd\x18\x7d\x02\xbb\xe7\xe9\x45\x2f\x4a\x6e\x0e\xaa\x00\x7a\xa8\x8f\xf1\xac\x0d\xe1\xac\x89\xd0\xf4\x02\x30\xf7\x72\x4d\x14\xc3\x1c\x97\x5c\x15\x85\x97\x8f\xc6\xae\x54\x18\xf5\xfe\xef\x8a\x37\x8e\x36\xf0\xad\x04\x5b\x86\x58\xca\x35\x09\xf5\x86\x2f\xcd\xfd\x45\x42\xee\xff\xb6\xfb\x66\xef\xb4\x70\xa5\xd9\xff\x04\x86\x1f\x18\x7e\x60\xf8\xaf\xc4\xf0\xd7\xa0\x7b\x50\xe1\x16\x2e\xb5\x4a\x30\xbf\xb6\xe8\x7d\xab\xa4\xf2\xad\x90\xbb\xd7\x3a\x59\x6f\x49\x76\x5e\x65\x3a\x5e\x55\xfe\xdd\x62\xc2\x5d\x65\x86\xdd\x66\x29\x75\xeb\xde\xd5\xed\x93\xe4\x3e\x11\x55\x78\xf9\x68\xf4\xcf\xc2\xa8\xf7\x7f\x59\xbf\x7a\x30\xe8\x6b\xf1\xe9\x6f\x2f\x21\x30\x64\x00\xee\x90\x74\x6f\x5d\xac\x39\xdc\x1c\xbf\x6f\x20\xa9\x2f\x64\xf1\xad\x44\xa3\xb7\x95\xb6\xf7\x56\xf3\xf4\x8e\x33\x31\x2f\x64\xe2\x85\x4c\xbc\xad\xaa\xbc\xa5\xa7\xdf\x54\x26\xde\x31\xa7\xde\xed\xdf\x3c\x11\x4c\x0e\x87\x6f\x72\x08\x16\x07\xfb\x9f\xa0\x7d\xaf\x3c\xf3\x20\xda\x07\xed\xbb\xcd\xcc\x83\xf6\x1d\xb4\xef\x03\x3c\xa2\x41\xfb\x0e\xda\x77\xd0\xbe\x83\xf6\x1d\xb4\x6f\x14\xb4\x6f\xaf\xa1\xd7\x02\x6c\x38\x04\xe7\xe6\x51\xd9\x1c\xf2\xa9\x0f\xdc\x01\x5f\x04\x39\x28\xb0\xdd\x36\xb8\x07\xf0\x97\x53\xea\x57\xc5\xe1\xad\xd5\xd2\x2f\xf3\xc1\x76\x81\x49\xfe\x66\x59\xc5\x12\x85\x7d\xe1\xbb\xa3\x88\x11\x58\x18\x75\x48\xb7\x5d\x57\xe4\x79\x25\xa1\x61\x47\x14\x38\x92\xeb\x6b\xf5\x85\x7a\xc3\xba\x64\xd0\x21\x37\x4f\xa1\x3b\x1a\xdd\xf1\x78\x74\xc6\xfd\xcb\x16\x6f\x51\x9c\x08\xd2\x84\x37\x86\x70\xf1\x86\x8b\x37\x5c\xbc\xe1\xe2\x0d\x17\x6f\xc8\xc0\xb7\xef\xef\x54\x9e\x28\x09\x13\xad\x00\x1a\xb7\x5e\x19\xa8\x42\x94\xf0\x6e\xe0\x65\x75\x7e\xca\x5f\x53\x22\xff\x7a\x94\x32\xc5\x3e\x4a\xfd\x04\xa1\xe2\x48\x84\x8a\x37\x69\x4b\x0a\x92\x52\x90\x94\xaa\x29\xd3\x4a\x52\xea\xb3\x87\x89\xa6\xc3\x74\x48\x59\xe6\xcd\x73\x3b\xe4\x8f\x8e\x5c\x7f\x44\xba\x3f\x94\x32\xfa\x7b\x4a\x92\x79\xce\x93\x64\xb9\xb5\x0c\x2f\x1a\x9d\x22\x4d\x67\x22\x14\xd0\x9b\x33\x45\xbe\x2a\x89\x4e\x51\x42\x9f\x08\x7a\xaf\x19\x33\xea\xdc\xf6\xde\x9f\xa0\xf7\x57\x50\xb6\x0e\xcd\x12\xcc\xe4\xfb\x83\x71\xdc\x04\xb0\xfe\x5d\x81\xf5\x07\xac\xfe\x80\xd5\xdf\x96\x40\x01\xab\x3f\x60\xf5\x1f\x2f\x56\xff\xd6\xf4\xc3\x35\x71\x39\x5f\x45\x53\x3c\x4e\x5f\x76\xd0\x14\x51\xd0\x14\x83\xa6\x18\x34\xc5\xa0\x29\x1e\x89\xa6\x78\x18\x14\x0e\x6a\x62\x50\x13\x83\x9a\xb8\x45\xe2\x04\x35\x31\xa8\x89\x41\x4d\x5c\x50\x13\x8f\xd7\x73\xf8\x97\xa0\x0f\x06\x7d\xd0\xff\xfd\xf8\xf4\xc1\xa0\x3a\x05\xd5\xa9\x9a\x32\xc7\xa9\x3a\x1d\x8c\xec\x73\x8c\x21\x45\x41\x29\x6c\x4f\x88\xa0\x14\xb6\x26\x55\x50\x0a\x1b\x88\x13\x94\xc2\xa0\x14\x06\xa5\xb0\xb5\x52\x78\x4c\xee\xc2\xa0\x1d\x06\xed\xd0\xff\x3d\x68\x87\x41\x3b\x0c\xda\x61\x70\xac\x05\xd5\x30\xa8\x86\x41\x35\x0c\xaa\xe1\x32\xe2\x04\xd5\x30\xa8\x86\xdf\x96\x6a\x48\x9e\x09\x53\x12\x8a\x21\xfa\x8a\xd2\xbb\x19\x97\xf5\x0a\x9e\xcf\x1d\x2a\x94\x3b\x68\xb3\x58\x94\x10\x50\xdb\x7e\x43\x13\x2c\x11\x8f\xa2\x54\x94\xce\x40\x59\xbd\xbb\x10\x04\x2b\x02\x2d\xe8\x0f\x8f\x41\xad\x5b\x9c\xee\xbe\x00\x88\x87\x3c\x5e\xd8\xed\xe6\x20\x54\x3d\x69\x16\xb3\xb6\x36\xf5\xdf\x53\xd2\x4e\xab\xdd\xe1\xa6\x56\x58\x3e\x6d\x79\x53\x17\x80\xa6\xd7\xda\xd4\xd0\xc2\xb1\x6c\xea\xc5\xe9\x7e\x33\x9b\xba\x6a\xea\x87\xb0\xa9\x5f\xb8\x78\x1a\x25\xfc\x65\xcb\x1b\xfb\x8b\x6d\x76\xb3\xcd\x9d\xb5\x72\x2c\x1b\xbc\x7a\xda\xdf\xcc\x26\xaf\x9b\xfe\xeb\x6e\xf4\xac\x3e\x44\xeb\x2d\xfe\x20\xe8\x78\xac\xd5\x0c\xd0\xf0\xf4\x56\xb4\xa6\x8f\x06\x80\xa4\xbc\x22\xc2\xd2\x6d\x9d\xbd\x7a\x0c\x5b\x3a\x1b\xac\x19\xfb\x37\xb3\x97\x17\xe6\x7d\x20\x9b\xf8\x95\x40\x3b\xda\x15\xfc\xb8\xa2\x52\x65\x6f\x1e\x47\xb6\x55\x36\xdc\x7d\xf8\x4d\x42\xfe\x4e\x70\x33\x04\x37\xc3\xe1\xbb\x19\x0e\xc6\xa0\x16\x4c\xf2\x3b\x32\xc9\x53\x19\x6c\xf2\xc1\x26\xdf\x96\x40\xc1\x26\x1f\x6c\xf2\xc7\x6b\x93\x5f\x51\x77\x58\x33\x42\xab\xce\x20\xb4\x8a\xfe\xf0\x89\xe4\xea\xc3\x71\x69\x0f\x41\x73\x08\x9a\x43\xd0\x1c\xb6\xae\x39\x1c\x54\x39\xc2\x6d\x71\x69\xf7\xf5\xbb\x59\x5a\xcf\x53\x1f\x67\x31\x56\x04\x65\xcc\xdb\xee\x04\x7d\x31\x2a\x9e\x1d\x02\xbb\x1f\x36\x64\xbb\xa6\xaf\x23\xe5\xbc\x66\xf0\x7b\x2c\xcf\x1a\xf8\x70\xe0\xc3\x81\x0f\x1f\x36\xbe\xf9\xe1\xb8\x0f\x1c\x7b\x3a\x14\xf7\x81\x20\x11\x7f\x26\xa2\xb5\x2f\xec\x8e\x80\x03\x0c\xa4\xfb\x99\x20\xcf\x94\xa7\x32\x99\x9f\x8a\x94\x21\xe7\x3b\xf6\x2e\x29\x88\xe1\x7f\xa1\x49\x82\x38\xd3\xaa\xa2\xc2\x42\xb9\xc7\x6c\x8c\x46\x82\x4f\x61\xbb\x24\x58\x2a\xf4\xc4\xf8\x0b\x43\x23\x4c\x93\x54\x10\x34\xe3\x94\xa9\xb3\x3e\xeb\x31\x74\x67\xc6\x08\x35\x17\x4f\x50\x2a\x89\x90\xfa\xa8\x31\xae\x50\x34\xc1\x6c\x4c\x10\x66\x73\x5b\xbc\x3c\x67\xe0\x7a\x93\xa6\xe6\xd6\xd4\x5d\x94\x00\xeb\xb3\x31\x82\xb5\x91\x4a\x44\x25\x22\x5f\x95\x20\x53\x92\xcc\x75\x1f\xfa\x8a\x52\x1c\x59\xfa\x98\xa1\xda\x3d\x4f\x84\xe0\x42\x42\xb5\xc6\xe1\xfc\x9f\x98\x29\xca\x08\x02\x9d\x4e\x1a\x4b\xe2\x29\xba\xe2\x12\x4c\x4c\x3f\xff\x4d\xa2\x28\x49\xa5\x22\xe2\x04\x0d\xd3\xb1\xd4\x4a\xed\x2c\xc1\x6a\xc4\xc5\x54\x8f\x90\x32\xa9\xf0\x90\x26\x54\xcd\x4f\xd0\x14\x47\x13\xd3\x16\xd0\x40\x9e\xf4\x59\xcc\x5f\x98\x54\x82\xe0\xac\x77\xf7\x10\x7d\xe7\x3f\x33\x1b\x40\x7e\x7f\x02\x67\x93\x4e\xb5\x66\xee\x0d\x3f\x5f\x71\xb3\x26\xba\x11\x12\xa3\x21\x89\x70\x2a\x6d\xde\x85\x12\x73\x44\xbe\x4e\x70\x2a\x61\xed\xf4\xf4\x6c\xbd\xcb\x88\x4f\x67\x09\x51\x04\xd1\x11\x52\x42\x5f\x5c\x78\x8c\xa9\x26\xdd\x3d\x21\x2d\xa4\x0d\xbb\x80\x76\xd7\xff\x06\x5c\x62\xca\x05\x41\x31\x51\x98\x26\x8d\xb9\x38\xf6\xdb\xe0\x24\x3d\x26\x2e\x57\x5c\xf0\x83\x60\x73\x09\x18\xf4\xb7\xe0\xf3\x67\xd6\xd3\x10\xe1\x64\x43\xf7\xff\x9d\x1d\x54\xd8\xdb\xc7\xb5\xb7\xcd\xaa\x1d\xce\xe6\x3e\x68\xaf\xff\x51\xed\xe9\x3d\x39\xfd\x83\x76\x15\xb4\xab\x6a\xca\x04\xff\x78\xc8\xc4\x5b\x9c\x56\x70\xfb\x07\xb7\x7f\x70\xfb\x6f\x93\x38\xc1\xed\x1f\xdc\xfe\xdf\xac\xdb\xff\xc0\x3d\xfd\x47\xa5\x31\x04\x6d\x21\x68\x0b\xc1\x17\xb3\xe2\xd4\x8e\x4e\x46\xdf\x16\x67\xce\x5c\xfd\x31\x49\x88\x22\xf5\xd6\x47\x22\xa6\x5a\xb7\x33\x52\x07\x65\x5a\x3c\x1d\x0b\x22\xe5\xa6\x7c\x36\x6b\xf8\x38\xb9\x6d\x36\xfc\x3d\xfa\xf7\x03\xfb\x0d\xec\xb7\x9a\x32\x47\xc9\x7e\x0f\xc7\x90\xee\x1d\xe6\x7d\x59\xd2\x33\xfe\x7b\xa0\xa1\x56\x47\xc5\x8c\xf7\x1e\x69\x15\x38\x71\xe0\xc4\xd5\x94\x09\x9c\xf8\xf8\x83\x92\x8c\x57\x75\x30\x4b\x30\x1b\xd0\xd8\x26\x27\x98\xcc\x84\xdc\x58\xb1\x2b\xcf\xa6\x3e\x5a\xb1\x01\x4c\xcd\x00\x4a\xc5\x6f\xfa\x93\x24\x77\x74\x20\x3e\xd4\xc3\x58\x0a\x1d\x6b\x7c\x23\xb7\x09\x66\xbd\xf8\x38\xb2\x9e\x2b\xa7\xbf\x0f\x67\xe8\xdb\x0b\x9e\xdd\xe4\x92\xc2\x0a\x9c\x6e\x98\x32\x63\x76\xcd\x81\x6f\x0b\x46\xe5\xc3\x98\xe8\x26\x57\x96\x37\x31\xef\xd6\x72\x97\x91\x47\x94\xc3\x9b\x76\xf0\xc5\x05\x54\xcc\xe0\x6d\x6a\x39\xe1\xe0\x6d\x3a\x5c\x6f\x53\x8b\x65\xdc\x89\x0b\x79\xcf\xc7\x73\xaf\x32\xeb\x51\x4b\xaa\x41\x50\x45\x41\xac\x0b\x62\x5d\xfd\xac\x83\x58\x17\xc4\xba\x20\xd6\x05\xb1\x2e\x88\x75\xaf\x2f\xd6\xb5\x98\xe6\x37\x1b\x65\xb0\x4c\x54\x6d\x8f\x7c\x6a\x72\x7c\x20\x15\x30\x9d\x25\x1c\xc7\x4d\x91\x5e\xb9\x30\xe9\x17\xda\x6a\x90\x40\x4d\xeb\xf9\x67\xc7\x20\x80\xe6\xa3\xfd\xc6\xf2\x9f\x16\x27\x7e\x28\xde\x82\xd7\xc2\x40\xad\xde\xef\x2b\xe8\x5c\xf2\xaf\xc7\xb5\xe3\x03\x24\x6a\x00\xd4\xa8\x98\x5a\xf0\x5d\x87\x94\xaf\x90\x1b\xf5\xe6\x14\xf7\x90\x1b\x15\x72\xa3\x82\x59\xa3\x79\xda\xc1\xac\xf1\x26\x72\xa3\x56\x57\x26\x76\x58\xb6\x7a\x73\xb5\xe2\x28\x42\x8e\x82\x5a\x11\xd4\x8a\xa0\x56\x04\xb5\xe2\x10\x0b\x3a\x07\x9d\x22\xe8\x14\x41\xa7\x08\x3a\x45\xd0\x29\xb6\x4e\xc6\xa0\x53\xb4\xd0\x29\xe0\x2f\x0b\x58\xba\xb2\x82\xb1\xa2\x62\xb1\x04\x95\x21\xff\xe8\xc8\xb4\x8a\xa0\x51\x04\x8d\x22\x68\x14\x7b\xd7\x28\x0e\x66\x42\x96\x7d\x2e\x99\xd3\xbd\x5b\x90\x12\x3c\xf4\xe1\xcd\xc7\x8d\x68\x00\x2d\x2d\x11\x26\x8a\x0a\x5a\xb6\xeb\xf4\xa7\xbe\x8e\x62\x62\x53\x41\x2c\xcf\x43\x37\x51\xc4\x85\x61\xca\xb1\xdd\xe5\x46\x9e\xe8\x3c\x74\xee\xbb\x0f\xe7\xa8\x83\x62\xac\xb0\xde\xd6\x82\xcc\x04\x91\x84\x29\x90\xd5\x08\x44\xe5\x02\x48\x77\x62\xa4\x8a\x8f\xfa\xfe\x41\x97\x58\xe1\x0b\xac\x70\xc2\xc7\x67\xa8\x03\xff\xd4\x1f\x53\x89\x70\x22\x39\xc2\x8e\xf4\x24\x76\x4d\x60\x16\xbb\x03\x85\x01\x7b\x9a\x26\x99\x72\x9a\xa9\x17\x94\xc5\xf4\x99\xc6\x29\x4e\xb2\x60\xe7\xbe\x29\x30\x9c\xe2\x24\x99\x23\x9c\x24\xc8\x76\xeb\x5e\x70\x70\xd6\x43\x92\x8d\x52\xd2\x29\x4d\xb0\xd0\xec\xd8\x8c\xf6\xc6\xb6\x85\xb4\x62\xec\xc6\x0a\xe3\xd2\xd4\x9c\xe2\x27\x22\x11\x55\x68\xc6\xa5\xa4\xc3\x24\x3f\x00\x8f\x3d\x04\xe3\xbe\xb8\xea\x81\xcc\x16\x29\xc4\x0d\xe7\x70\x9d\x5b\x05\xc6\xf5\x38\xc5\x8c\x11\xe8\x98\xab\x09\x11\xb6\x7b\xfb\xf2\x6b\x8b\x5f\x8f\xd7\xf7\xb7\xdd\x8b\xde\xc7\x5e\xf7\x72\x51\xfe\x7a\xe8\xdc\xff\xbc\xf8\xeb\x97\x9b\xbb\x9f\x3f\x5e\xdd\x7c\x59\x7c\x72\xd5\x79\xbc\xbe\xf8\x69\x70\x7b\xd5\xb9\x5e\x7c\x68\xb7\x55\x6b\x51\xce\x1f\xd9\x2e\x64\x39\xf7\x75\x0b\x84\x00\x7b\xb8\x14\x56\xa9\x34\xd5\xa0\x05\x19\x53\xa9\x80\xfd\xb7\x91\xc2\x96\x03\x03\x1c\xad\xf4\x15\xaa\xb0\x04\x59\x2c\xc8\x62\x41\x16\x3b\x36\x59\x6c\x7f\x26\x81\x23\x0a\x53\xfc\xcb\x71\xdd\x3d\x01\xc4\x3d\x30\xe7\xc3\x67\xce\x07\xe7\x7a\x3b\x18\xd3\xf9\x31\x02\x44\x06\xa7\x62\x7b\x42\x04\xa7\x62\x7b\x5a\x05\xa7\x62\x03\x71\x82\x53\x31\x38\x15\xbf\x61\xa7\xe2\x51\xc6\x26\x06\x55\xc2\xbd\x17\x54\x89\xa0\x4a\xbc\x51\x55\xe2\x60\x28\x1c\xf4\x88\xa0\x47\x04\x3d\x22\xe8\x11\xcd\xc4\x09\x7a\x44\xd0\x23\x82\x1e\x71\x6c\xf1\x88\xc7\xa5\x49\x04\x2d\x22\x68\x11\x87\xad\x45\x1c\xcc\x84\x8e\xc7\x5b\xdc\x6e\x3e\x21\x72\x2f\x44\xee\x85\xc8\xbd\xda\xc8\xbd\x37\xaa\xc9\x6f\x4b\x7e\x73\x5f\x1f\x5a\x40\xe2\x71\x89\x5f\xa1\x56\x51\xf6\x34\x08\x63\x41\x18\xfb\x46\x85\xb1\x03\x02\x51\x3c\x88\x92\x4b\x53\xac\xa2\x09\x1e\x26\x64\x90\xd9\xb2\x64\x5b\xf5\xfe\x8a\x4a\x25\x51\x94\x4a\xc5\xa7\xf5\x97\xcb\x67\xd7\x43\x27\xeb\xe0\x82\xb3\x11\x1d\xa7\xe6\x6e\xf9\x0d\xb6\xbe\x77\xa2\x73\x01\x77\x3e\x23\xcb\xfc\x8a\x15\xad\x1f\xc5\xb5\x54\x3d\xf4\x7d\xdd\x4e\xab\xe8\x23\xb9\xed\xd2\x2a\x13\x5a\x84\x1c\xdc\x75\xef\x6f\x1e\xef\x2e\xba\xe7\xa8\x03\x22\x16\xb8\x13\xcc\x56\xa0\xff\xd4\x93\x42\x0a\xcb\xa7\x7c\x2d\x85\xd9\xe6\x12\xe4\x6c\xf0\x5f\x68\x91\x1f\x9d\xa2\x8b\xab\xc7\xfb\x87\xee\x5d\x4d\x83\x76\xa3\x40\xe1\x45\x32\x9d\x25\x58\x91\x18\x3d\xa5\x43\x22\x18\xd1\xd2\x4e\x94\xa4\x5a\xb8\xc9\xbd\x1a\xa6\xd1\xee\x7f\x75\x2f\x1e\x1f\x7a\x37\xd7\x83\xbf\x3f\x76\x1f\xbb\xe7\xc8\xed\x38\xdd\xac\x1e\x97\x1e\x45\x3c\x67\x78\xaa\x15\x2b\xfd\x43\x5e\xea\xf1\xf7\x94\xa4\x04\x61\x29\xe9\x98\x4d\x09\x53\xe5\x16\xdd\x80\xaf\x3a\x3f\x76\xaf\x8a\x2d\x4f\x08\xfa\xf9\x6f\xf9\xa0\x12\x3c\x24\x89\x75\xb3\x80\xe7\x40\x6f\xf4\xbc\x23\xeb\x7f\x49\x0d\x55\xff\xfe\xd8\xb9\xea\x3d\xfc\x3a\xb8\xf9\x38\xb8\xef\xde\xfd\xd2\xbb\xe8\x0e\xac\xb0\x7c\xd1\xd1\xfd\x16\x7a\xb2\x32\x35\xfa\x3d\xc5\x89\x56\xba\xf8\x08\xfc\x16\x34\x22\xe8\x65\x42\x18\x4a\x19\xec\x38\xa3\xc9\x69\xf5\x2e\xeb\x54\x9f\x32\x33\xa3\xdb\xab\xc7\x4f\xbd\xeb\xc1\xcd\x2f\xdd\xbb\xbb\xde\x65\xf7\x1c\xdd\x93\x04\x74\x1d\x47\x74\x58\xc5\x59\x92\x8e\x29\x43\x74\x3a\x4b\x88\xa6\x86\xd1\xe5\x86\x64\x82\x9f\x29\x17\xf6\xe8\x8e\xe9\x33\x61\x86\x8e\x70\x66\xa1\x7d\xa7\x53\x0c\x3c\xd2\xdd\x5c\x7f\xec\x7d\x3a\x47\x9d\x38\xce\xe6\x20\xa1\x8d\xc2\xce\x79\xe1\xe2\x69\x94\xf0\x97\xd3\xe2\xb0\x35\x73\x80\xee\xcd\x26\xe2\xcf\x44\x08\x1a\x93\xd2\x3e\xea\xdc\xdf\xf7\x3e\x5d\x7f\xee\x5e\x3f\x00\xc5\x94\xe0\x89\x44\x13\xfe\x02\x16\x7a\x98\x21\x18\xee\x9f\x31\x4d\xa0\x33\xb7\x58\x9c\xa1\x97\x09\x05\xaf\x0e\x95\x3e\xc1\x8c\xda\x29\x52\xf6\xea\x46\xe7\xc2\xc1\x5b\xd4\xc6\xca\x27\x69\xf1\x8d\xd2\xb1\x68\x7a\xa1\xb0\xcb\x17\x5f\x5c\xb6\x5b\x17\xbf\x28\x6d\xb7\x7a\x1d\x74\x61\xbf\xd4\xcf\x34\x5f\xeb\xd6\x2a\x68\x91\x86\xfb\xbb\x66\x89\x12\x34\x92\x1f\xb2\x7d\xb5\x5b\x90\x31\x22\xf5\x86\x55\x74\x4a\x90\xed\xd9\x9e\xd4\x0d\x6b\xd5\x7e\x22\x2a\x7b\xf1\xb3\x69\xf8\x28\xb2\xd2\xbe\x58\x8e\x92\x0d\xfe\x13\x51\x76\xfc\x21\x41\x2d\x24\xa8\xd5\x4c\x2d\x68\xb9\x9b\x6b\xb9\xc7\x56\x91\x37\x26\xb3\xc5\x0e\x4b\x13\x83\x77\x8c\xbf\x72\x21\xbc\xc6\x58\x82\xad\x2d\x3c\x21\xcf\x24\x01\x41\x56\x09\xac\xf5\x62\x2b\x9e\x0d\x05\xc1\x4f\x5a\xa6\x8d\xf9\x8b\x2f\x9c\xc5\x44\x61\x9a\xc8\x57\x0a\xbf\xf9\xcb\x9f\x5f\xf5\x3e\x3c\xde\x2b\x30\xdc\x80\xc1\x24\x1a\x2e\x8b\x6f\xf0\xb2\x38\x46\xa7\x54\xb8\x03\x0f\xe5\x0e\xd4\xe4\x8e\x07\xce\x3d\xfd\xe1\x7f\x0a\x46\xb9\x7f\xed\x4a\x3f\xbc\x83\x78\x5f\xd9\x74\x11\x7a\x15\x36\x7f\xb3\x4e\xed\x25\x37\xa2\xf7\xc5\x51\xe8\x83\xde\x78\x0f\xc9\xd4\x7a\xe7\x5b\xbe\xdd\x3d\x31\x25\x0a\xc7\x58\x61\x7d\x84\xc6\x44\x9d\xa1\x1b\x06\xcf\x1e\xb0\x7c\x3a\x41\xee\x5e\xd7\xbc\x33\x77\x2d\xec\xa1\xb8\x66\x4b\x9b\xd5\x6b\x07\x23\x1c\x22\x47\x0f\x5a\xfa\x36\xa7\x16\x04\xaf\x90\x5e\x74\xc8\x38\x30\xee\xeb\x56\xd1\x3b\xdb\xbb\x95\x4d\x8b\x47\x7c\x31\xef\x37\x5e\x67\xab\xd7\x74\x0a\x43\x0f\x77\xb0\xf9\x4f\xb8\x83\xc3\x1d\x1c\xee\xe0\x26\xca\x84\x3b\xf8\x88\x03\xba\x2a\xae\xac\x57\x8d\xe8\x6a\x63\x56\x30\x36\x85\xdc\xa0\xb0\x22\xf0\x5c\x6e\x43\x58\x0a\x17\x51\x21\xb5\x2c\xc5\x8a\xc8\xbf\xa1\xe4\x38\xfc\xcb\xde\x2c\xf7\x81\x17\xb1\x55\x61\xc5\x64\x2c\x07\xab\xc2\x0e\x25\x9a\xb7\x27\xce\x6c\x22\xcb\x60\x05\x97\x0c\xa6\xcc\xdc\x49\x79\xf6\x92\xdc\xc3\x0e\x5b\x71\xa2\x9b\x48\x36\xde\xc4\x3c\xe1\xc6\xc9\x2c\x1e\x51\x0e\x64\x51\x77\x02\x2b\xf1\x3a\x76\xfc\xd7\x87\x92\x20\x6f\x17\x49\x22\x80\x25\xac\x74\x48\x02\x58\xc2\x3e\xc0\x12\x5a\x2c\xe3\x4e\x10\x50\xf6\x7c\x3c\x5f\x53\x75\x38\x1e\x27\xe4\x91\xe9\x0c\x47\xa5\x2f\x04\x1f\xe4\xee\xed\x9f\xc1\x54\x18\x4c\x85\xd5\x94\x09\xa6\xc2\x6f\x2b\x5c\x6b\x5b\xf7\xbd\xfb\xfa\xb5\xbd\x90\x47\x76\x33\x07\x27\x64\xb8\x84\xc3\x25\x1c\x2e\xe1\x70\x09\x6f\x8b\xc2\xc1\x5f\xb7\xa2\xd2\x7d\x14\x5e\xba\x23\xbb\xd6\x83\x93\x2e\xdc\xf8\xee\xe3\xe0\xd2\x5a\x36\xcf\xe0\xd2\x0a\x2e\xad\xe0\xd2\x0a\x2e\xad\xe0\xd2\xca\x7e\x0f\x2e\xad\xbd\xee\xd6\x6f\xd6\x6c\x57\xad\x31\xf0\x98\x0c\x2a\x90\x64\xb2\x9f\x06\x7e\xda\x60\xe1\xd7\x82\xfb\xae\xf0\xc4\xf7\xe5\x15\x1e\xe4\xf0\xef\xd0\x2f\x8d\x57\xce\xc3\x6f\x32\x27\xf2\x98\xb4\xce\xbb\x2f\xbc\x7c\xe8\x71\x81\x6e\xa2\x46\xf5\xf0\x47\xbe\x87\x3c\xfb\xf2\x4e\x78\x63\xd1\x67\x35\xbb\xfa\x2d\x5a\xea\x2a\xce\x68\x30\xdb\x2d\x25\xd4\x1b\x06\x1c\xb0\x4c\x78\x0f\xe3\xd9\xff\x1d\xe6\x80\xff\x06\x15\x37\x59\xf5\xb3\xfc\x3e\xab\x7e\x9e\xdd\x6a\xd5\x8f\x77\x53\x22\xb1\xfd\xa5\x06\x76\x34\xff\xed\x23\x09\x77\xf7\x87\xbc\x0f\x5b\x5a\xed\xc6\x78\x63\x17\x5b\xe3\x26\x7f\x73\xd7\x5b\xd3\x91\x0d\x97\x5c\x4b\x72\xbd\xd5\xab\x2e\xd4\x38\x6c\xb2\xe2\x85\x22\x82\x07\x68\xa5\x08\x46\xc4\x60\x44\x3c\x46\x23\xa2\x09\x3e\x18\xcc\xb0\x20\x4c\x55\xe8\x16\xe5\xeb\x04\x5e\xf7\x8b\x4e\x39\xa9\x03\x1a\x40\x5a\xb4\x47\xf6\x42\xce\xae\xaa\x37\x16\x28\x5f\xd2\x5e\xde\xb0\x9d\xed\xc0\xf5\x91\xc3\x31\xb3\xbd\x55\x29\x3d\x18\xa1\x82\x11\xaa\x3c\xcf\xfd\x19\xa1\xd6\xa0\x7b\x70\x16\x35\x5e\x55\xdf\x88\x21\xed\xc0\xef\xad\x43\xb2\xa3\xbd\xd5\x9b\x2b\xd8\x97\xb6\x40\xae\xb7\x7a\x8b\xbd\x96\x49\x79\xff\x5a\x7a\xb0\xa4\x05\x4b\x5a\xb0\xa4\x05\x4b\x5a\xb0\xa4\xf9\xbf\x07\x4b\x5a\x13\xdd\xf7\xa6\x9e\x58\x11\xc8\xab\x3e\xfa\xe1\x7f\xf2\xbf\x33\xb5\xc4\x57\x2d\x9a\x32\x58\x2f\x04\x81\x53\xc1\x85\xcd\x7f\xdc\x46\x7d\x52\xac\x0a\x42\x2f\x54\x34\x68\xd0\x45\x4c\x56\xd1\xad\x79\xfb\xb8\xca\x92\x2e\x0c\x7a\xbf\xf9\xaf\x8b\x0b\xdf\xee\x00\xb9\x95\xa1\xa6\xc4\xa6\x57\xc7\x51\xcb\xdd\x7c\x94\x5f\x0c\x12\xbd\xd0\x24\xd1\x92\x8c\x95\xda\x0e\x44\x1a\x7d\xf5\xac\xb8\xda\x95\x7f\xd5\xdc\xb8\x2a\xee\x50\xc5\x12\xda\x58\xc7\xb7\x55\xa7\xd8\x6d\x36\x28\x21\x0b\x7a\xdf\x12\x73\xfa\xdb\xe0\x04\x9f\x88\xda\x17\x1b\x58\xf7\xec\x37\x9e\x7b\x41\x46\x44\x10\x16\x91\x03\xcc\xc8\x5a\x25\x55\xf0\x8b\x99\xa4\xcd\x13\xcc\xca\x77\xfb\x53\x55\xdc\xea\x69\x05\x51\x37\x54\x6f\x0e\xd5\x9b\x43\xf5\xe6\xf2\x51\x0f\xd5\x9b\xdf\x46\xf5\xe6\x16\x5c\x76\x0b\xb6\xbd\x66\x83\xed\x81\xea\x5d\xee\xeb\x77\x31\x49\x88\x22\xb5\x82\xd2\x25\x3c\x7e\x2d\x41\xc9\xf4\xfe\x36\x64\x25\x33\x97\x20\x2e\x7d\x33\xca\x92\x5b\xf0\x83\x50\x96\xcc\x59\xf3\x75\x26\x48\xae\xf0\x94\x6b\x93\x51\xf1\x36\xcd\x2c\x47\x91\x40\x71\x38\x76\x96\x9d\x5f\x8a\xfb\x66\x0e\xc1\x86\xb4\x38\x92\x60\x43\xda\x8c\x2d\x16\x7e\xac\x40\x61\xda\x3b\xab\x5c\x47\xc0\x2a\xf0\xcb\x4b\x78\xfd\x38\xb9\x66\x79\xec\xc7\xcc\x3b\xbd\xd6\x0e\x83\x89\x7c\xbb\xec\x73\xe1\x88\xb7\x9b\xb8\x0d\xfd\x39\xde\x79\x1f\xca\xb5\x51\x77\xac\x0f\xf9\xf2\x28\xd6\xd1\x3a\x5e\x8f\xc4\x31\xb1\xff\x57\x71\x49\xbc\x39\x31\xf9\x9b\x33\x1a\x04\x1f\x4b\xf0\xb1\x04\x1f\x4b\xf0\xb1\x04\x1f\x0b\x5a\xd7\xc7\xb2\x2d\x49\xeb\xa8\x1d\x12\xc7\x29\x2a\xed\xd7\x23\x11\xa4\xa5\x63\x97\x96\x0e\x45\x29\x3c\x2e\x17\xcb\x86\x65\x95\x0f\x45\x2f\x7c\x4b\xc6\xc1\xe3\xd2\x11\x0f\xce\x1c\xf8\xcd\x31\xbe\xf5\x4c\x7f\x47\x3b\xdd\xa0\x15\x07\xad\x38\x68\xc5\x41\x2b\x0e\x5a\x31\x0a\x5a\xf1\xca\x5a\xf1\x5b\x12\x14\x8f\x4e\x43\x0e\xb2\xe2\x6b\x4f\xf8\x1b\x93\x15\x0f\xc5\x26\x50\x77\x72\x0f\xd4\x32\xf0\x6d\x06\x14\x1d\xf1\x4d\x10\x72\x5e\x91\xb7\x74\x21\xe0\xe6\x5b\xe1\xa3\x07\x1e\x70\xf3\xf6\xec\xaa\x47\xcc\x23\x43\x36\x70\x10\x2b\xb7\x34\xdd\x60\x82\x0c\x26\xc8\x60\x82\x0c\x26\xc8\x60\x82\x44\x87\x9d\xfc\xbc\xd4\xe0\x14\xf2\x9f\x77\x65\x58\x3d\x62\x49\x31\xe4\x42\x07\x61\x71\x7b\xd3\x3d\x54\xdd\xf9\x90\x6c\x90\x72\xf5\xba\x11\x4b\x91\xb8\xed\xb4\x7f\x6b\x60\x60\x57\x54\x3a\x45\xf7\x98\xf8\x95\xdc\x35\x4b\xda\x04\x7e\xd7\xad\xe8\x9b\x45\xdf\xdd\xa0\x1a\x3d\xf0\xae\x37\x5a\x8e\x3e\x80\x03\x37\x10\x27\x80\x03\xaf\xc4\x4d\x02\x38\xf0\x3e\xc0\x81\xb7\xae\xac\xcc\xb8\xac\xbf\xb9\xef\xc8\x98\x4a\x38\xb2\x0d\x35\x9f\xdc\x9d\x0d\x85\x07\x60\x2b\x7c\xd4\x2f\xa0\x98\xcc\x12\x3e\x07\xfb\x50\xc3\x75\xee\xba\xb8\x5d\x90\xa8\x0f\xfd\x46\x77\x23\xdf\x97\xce\x71\x28\x32\x69\x3e\xef\x83\x90\x42\xfd\x90\xf8\x52\x31\xb3\x26\xf7\xf6\xa3\xf5\x69\x83\xe9\x8f\x4a\xb8\x9f\x96\x6e\xf1\x3e\xab\x7e\xe0\x4c\x60\x43\xe2\x2e\xc4\x61\xaa\xbc\xa2\x1e\x52\x4b\x58\x33\x22\xd4\xdc\x7b\x93\x4c\x67\x6a\xfe\x9f\x7d\x46\x55\xe6\x40\xa4\x63\xc6\x85\x61\x6f\xfa\xe3\x09\x66\x71\x42\x84\xbe\x5d\x5d\x3b\x11\x66\x8c\x2b\x90\x3b\x60\x02\x31\x7a\xa6\xd8\x48\x29\x9d\xdb\x5e\x6b\x37\xfa\x5f\x8f\xe8\x9c\xed\xd7\x4f\xfe\xf6\x8a\x3d\x2f\x85\x87\xff\x94\xf0\x21\x4e\x92\x39\x4a\x8b\xf6\x0a\xdd\xc0\x81\xcc\xe1\x50\x78\xdf\xab\x33\xbb\xc0\xe2\xda\xb2\xb8\x63\x0a\x12\xdd\x2f\x8b\x0b\x0c\xe1\xf8\x19\x82\xc2\xf2\xc9\x2f\xb7\x07\x42\x90\xab\x98\x58\x28\x35\x55\xae\x3b\xf5\xaf\x36\xef\x15\xea\xca\x2e\x79\xd7\xaf\x34\xbb\xe4\xd5\x52\xed\xd9\xe2\x33\x5b\x8d\x16\x1e\xc3\xf4\xca\xe3\x70\x3f\xfa\x1d\xba\xdf\xf2\x96\xdd\x2f\xcf\x44\x48\xca\xed\x6b\x82\x28\x31\x1f\x60\xa5\x34\x47\xda\x66\xc1\xdb\x07\x2c\x9f\x5a\x17\xbc\x2d\xbc\x7c\xe8\xfc\xa9\x50\xf1\xb6\x30\xf2\x3d\x54\xbc\x5d\xbe\x8d\xdf\x9c\x90\xd6\xf2\x48\x2e\x99\xf7\xf1\x55\x4f\x6c\xcb\x60\x56\x98\xf8\xb7\x52\x49\xb1\x1d\xc3\x5d\xe6\xb4\x3b\xc6\xaa\x8a\x4d\x37\xc8\xc1\x8c\xb0\x74\x89\xbd\xc5\x93\x5b\xbc\x92\xc3\x11\x6d\xa2\x51\xdb\xb3\x78\x34\x27\xb0\x24\x69\x2d\x99\xdb\xbd\x5b\x20\xfb\xba\xdb\x09\x87\x37\xaf\x82\xb0\xb8\xed\x51\xed\xc6\xe9\xe9\xad\xc6\x2a\x71\xae\x3d\x57\x11\xd0\xb8\x70\xb2\x33\xe4\x22\x5f\xb3\xa3\xa9\x26\x80\x9a\x4e\xa5\x5f\x44\x30\xe2\xc2\x48\x9b\xb1\x3d\xb3\xc6\x89\xd3\x79\xe8\xdc\x77\x1f\xce\x51\x07\xc5\x58\x61\x7d\x48\x05\x99\x09\x22\x09\x53\xc6\x16\xc1\x14\x55\x73\x34\xe5\x31\x49\x8c\x21\xc0\xf8\x0b\x2e\xb1\xc2\x17\x58\xe1\x84\x8f\xcf\x50\x07\xfe\xa9\x3f\xa6\x12\xe1\x44\x72\x84\xdd\xc6\x21\xb1\x6b\x02\xb3\xd8\xb1\x07\x8c\x22\x3e\x9d\xd1\xc4\x04\x5f\xfa\x3e\x5d\xca\x62\xfa\x4c\xe3\x14\x27\x88\x0f\xc1\x88\x72\xd6\x67\xdd\x67\xc2\x54\x0a\x3a\x2e\x4e\x12\x64\xbb\x75\x2f\x78\x16\x0c\x37\x4a\x49\xa7\x34\xc1\x42\x4b\x8f\x66\xb4\x37\xb6\x2d\xf4\x30\x21\xd9\x58\x61\x5c\x9a\x9a\x53\xfc\x44\x24\xa2\x0a\xcd\xb8\x94\x74\x98\xe4\xc7\xf8\xb1\x87\x60\xdc\x17\x57\x3d\x70\x94\x45\x0a\x71\xc3\x07\x5d\xe7\xd6\x6b\xec\x7a\x9c\x62\xc6\x08\x74\xcc\xd5\x84\x08\xdb\xbd\x7d\xf9\xb5\x7d\x5e\x8f\xd7\x36\xa6\xb1\x7b\xb9\xe8\xf4\x7a\xe8\xdc\xff\x5c\x1f\xc4\xb8\xf8\xe4\xaa\xf3\x78\x7d\xf1\xd3\xe0\xf6\xaa\x53\x11\x1c\x69\xb7\x55\x6b\xff\x99\x3f\xb2\xf5\x0f\xd3\xd1\xd5\x69\xde\xbf\xd1\xa1\x95\xc5\xa1\xb5\xb9\xa1\xad\xad\xa1\x9d\xa1\xa1\xde\xca\xb0\x83\xd8\xa5\xf6\xa6\x80\x2b\x2a\x8b\xb6\x80\xe3\xc8\x68\x2f\x0c\x59\xcf\x61\xd7\x86\x80\x6f\xce\x0a\xf0\x8d\x9a\x00\x82\xfe\xbf\x13\xba\xbd\x55\xe5\xff\xc0\x35\xff\x4d\x02\x31\xb3\x24\xad\x10\x89\xb9\x18\x89\x49\x42\x20\x66\x08\xc4\x6c\x4b\xa0\x10\x88\x19\x02\x31\x8f\x21\x10\xb3\x95\xa2\x15\x3c\xb6\x87\xe0\xb1\x3d\x70\x1d\xed\x90\x1d\xb6\x6f\x55\x73\x09\xce\xcb\xe0\xbc\x0c\xce\xcb\x23\x3d\xb9\xc1\x79\xd9\x9e\x46\xc1\x79\x19\x9c\x97\xc1\x79\x19\x9c\x97\xc1\x79\x19\x9c\x97\xaf\x69\x1a\x39\x84\xd8\xd0\x63\x76\xd9\x06\x4f\xec\x12\x4f\xec\x81\x2b\xf9\x07\xe9\x88\x7d\xab\x3a\x42\x50\xed\x83\x5f\x72\xa3\x69\x1f\x94\x52\xff\xd6\xee\xcd\xe0\x8a\x6d\x4f\x88\xe0\x8a\x6d\x4d\xaa\xe0\x8a\x6d\x20\x4e\x70\xc5\x06\x57\xec\x37\xe8\x8a\xa5\xf1\xc6\xb8\xf0\x6d\xf4\x16\x2d\x2b\xc6\x5d\x30\x0f\x65\xc6\x2d\xf1\x1b\x48\x8f\x58\x3e\x65\x16\xa0\x16\xfa\x4c\x2f\x3e\x0a\x45\xa6\x72\xc2\xfb\x50\x68\x36\xd1\x58\xb0\xd2\x1c\x5c\x01\x56\x81\x7e\x92\x1b\x15\x0f\x10\xc8\x72\x13\x1d\xc5\x9b\x98\xa7\xa6\x38\xed\xc3\xaf\x9e\x7c\x70\xd3\x0e\x82\x5f\x10\xfc\x82\x6c\xd3\x72\xc2\x41\xb6\x39\x5c\xd9\xe6\xb5\x14\x96\xc3\x3b\x9e\x47\x67\x9f\xd8\xb9\x58\x5a\x00\x60\x6e\xc4\x71\x34\xb5\xdc\xc0\x75\x97\xce\x12\x8e\xe3\x65\x01\x72\xbf\xa1\x5c\x56\x6b\x10\x37\x4d\xbb\xfa\x83\x03\x97\x36\x17\x62\xe3\xcc\xc8\xbf\x05\xe8\xc6\xda\xa9\xbf\x2a\x7a\x23\xec\xdf\x0c\xb5\x28\x83\x25\x2a\x44\x8f\xee\x4a\xcd\x2a\x6f\xf0\x56\x1a\x95\x3c\x0a\xc8\x44\x3d\xd2\x7d\xe8\x4f\x6f\x32\xfb\xee\x0d\x7b\xb2\x82\xb7\xaa\x39\xa4\x60\x4b\xd1\x6d\x7d\xf6\xa0\x15\x29\x3e\x1d\x52\x96\x05\xf3\xb8\x1d\xf2\x47\x47\xae\x3f\x02\x90\x9e\x05\xd7\x4b\xe6\xb9\x9e\x2d\xcb\xad\x65\x52\x18\x3a\xd5\x22\x70\x44\x84\x02\x7a\x73\xa6\xc8\x57\x25\xd1\x29\x4a\xe8\x13\x41\xef\xf5\x91\x47\x9d\xdb\xde\xfb\x13\xf4\xfe\x0a\xa7\x2c\x9a\xa0\x59\x82\x99\x7c\x7f\x30\xd2\x5b\x50\xc8\x43\x79\x82\xe0\x8a\xd9\x85\xf6\x1e\xcc\x15\x4b\xa7\x1d\xcc\x15\x6f\xc6\x15\xd3\x52\x67\x30\x19\x6b\x78\x4a\x0e\x45\x7b\x38\x1a\x80\x8f\xa0\x3d\x04\xed\xa1\x62\x6a\x41\x7b\xf8\x06\xb5\x87\xc3\xa0\x70\x50\x1d\x82\xea\x10\x54\x87\xa0\x3a\x04\xd5\x61\xeb\x64\x0c\xaa\x43\x93\xea\x00\x7f\x39\x50\x8a\x55\xf5\x88\xd6\xfa\x43\x0b\x04\x8a\xa3\x51\x1e\x82\xe2\x10\x14\x87\xa0\x38\xec\x5d\x71\x38\x98\x09\xbd\xbd\x64\xfa\x90\x8e\x1e\xd2\xd1\x43\x3a\x7a\x4d\x3a\xfa\xbe\x44\x36\x23\xaf\x1d\x59\xfc\xfd\x51\x08\x6d\xaf\x16\x80\xff\xf6\xc4\xb8\x90\x52\x10\x52\x0a\x82\x19\x32\xa4\x14\x04\x43\x5b\x30\xb4\x1d\xb4\xa1\xed\xb5\xac\xe7\x7b\x3e\x9e\x7b\x10\x4e\x0f\x3c\x62\xf9\x2f\xc7\x20\x81\xee\x31\xe6\x20\x58\xd9\x82\x95\xad\x9a\x32\xc7\xe9\x9e\x3f\x98\x5b\x3f\xa0\xc7\x04\x89\x3f\x04\x1e\x84\xc0\x83\xa5\xc4\x09\xfa\x50\xd0\x87\x0e\x4e\x1f\x7a\x45\x45\xe1\xe0\xc2\x94\x83\xc6\x10\x34\x86\xa0\x31\xbc\x59\x8d\xe1\x60\x28\x1c\xd4\x85\xa0\x2e\x04\x75\x21\xa8\x0b\xcd\xc4\x09\xea\x42\x50\x17\x82\xba\x70\xd0\xa1\xc9\xc7\xa2\x30\x04\x65\x21\x28\x0b\x87\xad\x2c\x1c\xcc\x84\x42\x10\x6f\x08\xe2\x0d\x41\xbc\xdf\x4c\x10\xef\x1b\x55\xd8\x77\x2a\xa6\x39\x16\xd9\x24\x78\x2d\xca\x4b\xbf\x2c\x30\xd6\x83\x15\x99\xf2\xd1\xae\x0b\x91\xb8\x2d\x52\xbf\x70\xf1\x34\x4a\xf8\xcb\x20\xd3\xea\x6c\x50\x78\xfe\x6f\x9b\xcf\xe7\xfd\x90\x0b\xcf\xde\x8f\x99\x10\xed\xfd\xe6\x5a\x2f\xc8\xd0\xb3\x74\x19\x92\xa6\x44\x5c\xa0\x74\x16\xc3\x9f\x51\x2a\x15\x9f\xd6\x4b\xd5\x9f\xb1\x8a\x26\x78\x98\x90\x4e\xd6\xef\x05\x67\x23\x3a\x4e\xcd\xfe\xf8\x0d\x58\x21\x76\x92\xcd\x89\x93\x8c\x34\x53\x74\xe3\x6b\x92\xc4\x1f\x61\x1c\x5f\xec\x9b\x79\x27\x47\x11\x80\xbe\x38\x6c\x33\x9d\x7d\x21\x73\x16\x77\xd1\xa6\x2c\xce\x6b\xed\x30\xc4\x9f\xc5\x33\xb1\x4c\x54\x05\x2b\x74\xa6\x99\xd0\x18\x36\xe7\xcb\x84\x82\x65\x0d\x2c\x71\x60\x7d\xca\x1b\x46\x2f\x34\x49\x40\xe2\x30\xb4\x38\xbc\x99\xb7\xd2\x5e\xec\xc4\xed\xd9\x7b\x13\xf3\x76\xcc\x63\xc9\xcc\xdd\x11\x34\x6e\x88\x23\x9d\xf6\x6b\x22\xec\x2e\x61\x64\xaf\x8a\xb3\x5b\x7b\x7d\xd6\xe4\x54\x7d\xf8\x9f\xca\x2b\xb1\x4d\x61\xc6\xd7\xbe\x07\x3f\x11\xf5\x66\x2e\xc1\x4f\x44\xed\xeb\x06\x7c\x8b\xd7\xde\xba\x77\x5d\x23\xe3\x13\x64\x44\x04\x61\x11\x39\xd6\x9c\xac\x85\x2b\xee\x68\xa7\xbb\xd6\xcd\x76\xb4\xb3\x5d\xc5\x80\xf5\xc5\x4c\xd2\x9a\xab\xa6\x8e\xe5\xfa\x53\x55\xdc\xba\x97\x0b\x2e\x30\x6b\xac\x7a\xe8\xdc\xff\x3c\xb8\xeb\xde\xdf\x3c\xde\x5d\x74\xcf\x51\x07\x0e\x3a\x7c\x63\xd8\x3b\xfd\x27\x34\x07\xf9\xb0\x99\x31\x4c\x98\x3b\x4e\x02\xab\x06\x37\xb8\xa6\x22\x3a\x45\x17\x57\x8f\xf7\x0f\xdd\xbb\x9a\x06\x2d\xf3\xa7\x6c\x8c\x14\x99\xce\x12\xac\x48\x8c\x9e\xd2\x21\x11\x8c\x80\x62\x95\xa4\x52\x11\x91\x3b\xc7\x4d\xa3\xdd\xff\xea\x5e\x3c\x3e\xf4\x6e\xae\x07\x7f\x7f\xec\x3e\x76\xcf\x91\xbb\x45\x74\xb3\x7a\x5c\x7a\x14\xf1\x9c\xe1\x29\x8d\xcc\x0f\x59\x9d\x4b\xf4\x7b\x4a\x52\x82\xb0\x94\x74\xcc\xa6\x84\xa9\x72\x8b\x6e\xc0\x57\x9d\x1f\xbb\x57\xc5\x96\x27\x04\xfd\xfc\xb7\x7c\x50\x09\x1e\x92\xc4\x7a\xeb\xc1\x01\xad\x2f\xaf\xbc\x23\xeb\xc6\x4f\x0d\x55\xff\xfe\xd8\xb9\xea\x3d\xfc\x3a\xb8\xf9\x38\xb8\xef\xde\xfd\xd2\xbb\xe8\x0e\xac\x31\xe6\xa2\xa3\xfb\x2d\xf4\x64\x6d\x36\xe8\xf7\x14\x27\x54\xcd\xf5\x3a\x4a\x73\xe9\xa3\x97\x09\x61\x28\x65\x70\x81\x18\x4b\x21\x66\x5e\xa7\x72\x46\x22\x33\xa3\xdb\xab\xc7\x4f\xbd\xeb\xc1\xcd\x2f\xdd\xbb\xbb\xde\x65\xf7\x1c\xdd\x93\x04\x6c\x69\x8e\xe8\xb0\x8a\xb3\x24\x1d\x6b\x4e\x30\x9d\x25\x44\x53\xc3\xd8\x0a\x87\x64\x82\x9f\x29\x17\xf6\x3a\x1e\xd3\x67\xc2\x0c\x1d\xf5\xb6\x32\xed\x3b\x9b\xd5\xc0\x23\xdd\xcd\xf5\xc7\xde\xa7\x73\xd4\x89\xe3\x6c\x0e\x12\xda\x28\xec\x1c\x77\x74\x4f\x8b\xc3\xa6\x23\x1a\x41\xf7\x66\x13\xf1\x67\x22\x04\x8d\x49\x69\x1f\x75\xee\xef\x7b\x9f\xae\x3f\x77\xaf\x1f\x80\x62\x4a\xf0\x44\xa2\x09\x7f\x01\x47\x2f\xcc\x10\xfc\xbf\xcf\x98\x26\xd0\x99\x5b\x2c\xce\xfc\xd3\xef\xf5\x6c\xcc\x9a\x22\x65\xaf\xee\xbb\x2c\x1c\xbc\x45\x6b\x5f\xf9\x24\x2d\xbe\x51\x3a\x16\x4d\x2f\x14\x76\xf9\xe2\x8b\xcb\x76\xeb\xe2\x17\xa5\xed\x56\x6f\xe3\x5c\xd8\x2f\xf5\x33\xcd\xd7\xba\xb5\x89\xb3\x48\xc3\x5d\xc8\xd8\xee\xeb\x77\x31\x49\x88\x22\xb5\x32\xf1\x25\x3c\x7e\x7d\x99\xd8\x8c\xe3\xcd\x88\xc5\x66\x3a\x41\x32\x0e\x92\x71\xeb\x09\x07\xc9\xb8\x6a\xc2\x6f\x44\x32\x3e\x40\xab\x8f\x63\x51\x07\x67\xf5\x09\xfe\x91\xd2\x4a\x1d\xe7\x15\xf8\x6a\xee\x91\xe0\x3f\x58\xed\x0a\x39\xfe\x79\x07\xff\x41\xf0\x1f\x54\xde\x24\x6f\xde\x6b\x70\x9c\x57\xc3\x1e\x9d\x06\x41\x8d\x68\x98\x6f\x50\x23\x8e\x6c\xb6\xc1\xc0\x1e\x0c\xec\xc1\xc0\x1e\x0c\xec\xc1\xc0\x8e\xd6\x35\xb0\xb7\xe0\xb2\xfb\x30\xa7\x1e\x68\x10\xf1\x5b\x71\x1b\x1c\xa7\x5c\xbc\x5f\xaf\x41\x10\x8d\x1b\xe6\x1b\x44\xe3\x23\x9b\xed\x01\xda\x45\x0e\xcb\xc2\x4e\xe3\x2a\x83\xc8\x1e\xa1\xe9\xdd\x48\xda\xc2\xd3\x3b\x82\xf6\xe2\xa3\x60\xe7\xaf\x86\x50\x1f\xf0\xdc\x03\x9e\x7b\x80\x6b\x09\x78\xee\x28\x00\x92\x04\x40\x92\x43\x06\x24\x69\xb1\x8c\x6f\x01\xcf\x7d\x3f\x16\x86\x37\x94\xa4\xec\x04\x43\x59\x88\xdd\xe0\x72\x59\xf0\x06\x58\x09\xd2\x59\xc2\x71\xdc\x04\x16\xe3\xe4\x48\x1f\x30\xa6\x41\xf4\x34\x6d\x7f\x59\x54\x9e\x0e\x56\xf2\x74\x63\x35\x23\xdf\x97\xf9\xe0\x60\x14\x2e\x37\xed\x83\x50\xb3\x5a\xd6\x6e\xdd\xba\xda\x55\xb5\xc9\x5b\x6b\x58\xf2\xaf\xc7\xb4\xcd\xf7\x04\xa9\xfa\xf6\x0a\x7f\x05\xe8\xa7\x00\xfd\x54\x4b\x99\xe3\xc4\x89\x3d\x18\x89\x2e\x28\xe9\x01\x53\x35\x60\xaa\xee\x42\xa3\x0f\x26\x8c\xa5\xd3\x0e\x26\x8c\x37\x81\xa9\xba\xa2\x0e\xb1\xc3\x9a\x0c\x9b\x69\x13\x47\x95\xb3\x17\xb4\x89\xa0\x4d\x54\x4c\x2d\x68\x13\xdf\xa0\x36\x71\x18\x14\x0e\xaa\x44\x50\x25\x82\x2a\x11\x54\x89\xa0\x4a\x6c\x9d\x8c\x41\x95\x78\x9d\x7a\x0d\x55\xfa\x44\xcb\x5c\xb7\xa3\x52\x26\x82\x22\x11\x14\x89\xa0\x48\x84\x8a\x14\xcd\x73\x0a\x15\x29\x42\x45\x8a\x50\x91\xe2\x0d\x54\xa4\xd8\xa7\x08\x57\x03\x83\x7c\x1c\xf1\xfb\x47\x21\xc4\xbd\x5a\x00\xff\xdb\x13\xe9\x42\x4a\x42\x48\x49\x08\x26\xca\x90\x92\x10\x8c\x70\xc1\x08\x77\xd0\x46\xb8\xd7\xb2\xac\xef\xf9\x78\xee\x49\x50\x3d\x92\x68\xe7\xbf\x1c\x83\x34\xba\xe7\xf8\x84\x60\x81\x0b\x16\xb8\x6a\xca\x1c\xa7\x2b\xff\x60\xa4\x80\x63\x2c\x49\x19\x34\x80\xf6\x84\x08\x41\x0a\xed\x69\x15\x82\x14\x1a\x88\x13\xf4\xa3\xa0\x1f\x1d\x9c\x7e\xf4\xca\x8a\xc3\xc1\x86\x38\x07\x0d\xc2\xbc\x17\x34\x88\xa0\x41\xbc\x51\x0d\xe2\x60\x28\x1c\xd4\x87\xa0\x3e\x04\xf5\x21\xa8\x0f\xcd\xc4\x09\xea\x43\x50\x1f\x82\xfa\x70\x34\x61\xcd\xc7\xa4\x40\x04\xe5\x21\x28\x0f\x87\xad\x3c\x1c\xcc\x84\x42\x00\x70\x08\x00\x0e\x01\xc0\xdf\x4c\x00\xf0\x1b\x55\xe0\xb7\x2b\xb6\xfd\x9b\x25\xd4\x3b\x4f\xc0\xc8\x24\x91\x77\x3f\x26\x7c\xf8\x30\x9f\x11\xfd\xff\x97\x74\x4a\x98\x04\x4a\x50\x35\xf7\xc5\xb4\x9a\x0d\xb5\xb8\x95\xde\xdd\xf7\xae\x3f\x5d\xf9\x75\x47\xde\x7d\x7e\xbc\x7a\xe8\xdd\x76\xee\xb2\xe5\xce\x66\xe5\x2f\xb1\xfd\xae\x20\x69\xda\x93\x7c\x47\xb4\x4a\x0d\xcc\xe0\x5e\x61\x95\xca\xf5\x46\x76\xd7\xbd\xef\xde\xfd\x02\x75\x53\x06\x97\xbd\xfb\xce\x8f\x57\x85\x7d\x5e\x78\xde\xb9\xf8\xfb\x63\xef\xae\xfe\x79\xf7\xbf\x7a\xf7\x0f\xf7\x75\x4f\xef\xba\x57\xdd\xce\x7d\xfd\xd7\x1f\x3b\xbd\xab\xc7\xbb\x6e\x23\x3d\x1a\x47\xdb\xac\x5b\x49\x20\x12\xd4\x0e\x40\x91\x65\x86\x22\xa7\x21\xca\xa4\x62\xc7\xe5\xab\xfa\x3a\x47\x8f\xd6\x54\x41\x6d\xe3\xe6\xde\xf0\x1a\x32\x3a\x56\x4c\x25\x1e\x26\x24\x5e\x68\xc9\xd1\xb0\xae\x25\x5c\x18\xd4\x0b\x96\x9e\x24\xad\x59\x79\x64\x8e\x0f\x82\x6a\x4e\x8a\xb0\xb8\xa2\x0f\xb3\x0e\xb5\x3d\x30\xcd\x92\xe9\x33\x29\xf4\x14\xa5\x42\x10\xa6\x92\x39\x22\x5f\xa9\x54\x72\xa1\x51\xb7\x7c\x75\xcd\x5a\x86\x90\x35\x38\xc1\x12\x0d\x09\x61\xc5\xf1\x0b\x92\x10\x2c\x2b\xc6\x6c\x57\xbf\x1d\x59\xb2\xb5\xb2\x46\x26\x73\xc7\x8e\x30\x4d\x52\x41\x4a\xa7\x85\x4f\x67\x58\x50\xc9\x59\xf7\xab\xbe\xa2\xf5\x41\xbe\x81\xcf\xb9\x58\xef\xc4\x74\xff\xee\xef\xe0\xeb\xe2\x3f\x3f\x3d\x14\xff\x55\x38\xf3\x57\x0f\xc5\x7f\x35\xef\x75\xaf\xe1\xf2\xce\x3e\x45\x9f\x1e\xce\xd1\x27\x80\x18\x15\xe8\x61\x82\xcd\x8e\xbd\x7a\x38\x47\x57\x44\x4a\xf8\x25\xff\x58\x51\x95\xc0\xdc\x7e\xa4\x0c\x8b\x39\x72\xd3\x37\x25\xc1\x70\x34\x41\x24\x23\x4d\x99\x78\xec\x1f\x29\x03\x8b\x44\x4e\xbd\x2b\x3e\xa6\x11\x4e\x36\x23\x62\xe7\xba\xc0\x07\x6e\xee\x1a\x49\xe1\xbf\xbd\x48\x8b\xce\xf5\x25\x94\xdb\x72\x43\xad\x98\xf9\x35\x91\x7a\x93\x44\x9c\xc5\xd6\xa7\xa6\x85\x9a\xb9\xa7\xab\xfc\x83\x43\xc9\xb2\x54\x52\x36\xd6\x2d\xa2\x0f\xe8\xe6\xae\xcf\x6e\x44\x6c\xec\xbb\x44\x0b\xf9\x66\xcf\x51\x89\x18\x57\x88\x4e\x67\x5c\x28\xcc\x94\xd6\x6f\x40\xba\xb1\x14\x31\x1c\xe0\x82\x4f\xa7\xa9\xc2\xfa\xa0\x2d\x10\x95\x19\x2b\xcf\x3d\x51\xbd\x18\x1c\x61\x15\x34\x34\xe2\x4f\x3e\x97\x99\xd0\xed\x6b\xd1\xab\x68\x1a\xa0\xf1\x82\x86\xee\x9a\xc0\x42\xe0\xe2\x05\xfc\x8e\x2a\x32\x2d\xbf\xdf\xf2\xda\xfd\x57\xa5\xdd\xe3\xc2\x64\x45\x10\xd1\x11\xd1\x84\x2a\x12\x29\x7d\x04\xd7\xda\x13\x8f\xd7\x3f\x5f\xdf\x7c\xf1\x05\xa3\x77\x9d\xcf\x97\xff\x51\x80\x81\xed\xdc\x7d\x5e\xf8\x61\xf0\xcb\x7f\x2c\xfc\xf2\xff\x6f\xdc\x4f\xe5\x9e\x16\xcc\x17\xde\x5c\x4e\x41\x53\x00\x53\xb7\x9b\x2a\xa2\x53\x3c\x26\x48\xa6\x33\xbd\x03\xe4\x59\x71\x7d\xb5\xa4\x7c\xc5\x71\x4c\xd9\xd8\x54\x95\xba\xa2\x8a\x08\x9c\x7c\xc6\xb3\x8f\xce\x2c\xbf\x06\x75\xfe\xcf\x7d\xa1\xb2\xd9\xbb\x5f\x3b\x9f\xfd\xda\x68\xef\x6e\xef\x6e\x1e\x6e\x1a\x67\x5d\x68\x61\xf1\x18\xe9\xc7\xe7\xf0\xbf\xe8\x03\xd2\xad\x67\x02\xfd\x94\x28\xac\x15\x1d\xf4\x9d\x29\xc4\x93\x65\xc2\x50\x96\xc0\xa9\x99\x09\x3a\xa5\x70\xa5\x18\xc3\xe4\xf7\x46\x67\xc8\x94\xa2\xec\xdc\x98\x0f\xc0\x08\xe0\x2e\x65\x16\x63\x11\xa3\x7f\xc8\x72\xa1\x3d\xb0\x87\x9b\x1f\x48\x8c\x4e\xd1\x44\xa9\x99\x3c\xff\xf0\xe1\xe5\xe5\xe5\x4c\xbf\xad\x05\xd8\x0f\xfa\x8f\x53\xc2\xce\x26\x6a\x9a\x98\xc2\x82\x9a\x0a\xe7\xe8\x56\x70\x7d\x85\x80\xdd\x81\x08\x8a\x13\xfa\x4f\x12\xa3\xa1\xe1\x7f\x7c\x84\x7e\x8b\xb8\x20\x67\xf9\xc2\x58\x5b\x99\xbd\x47\xac\x3d\xed\x83\x7e\xa9\x82\x99\x94\xd7\x13\xc5\x24\xa2\xb1\x15\x33\x08\x8b\x38\x18\x54\x8d\x0b\x46\xb7\xe7\xaa\x17\x69\x45\x6d\x96\xaa\x9c\x9c\x9e\x0e\x86\x63\xe2\xd5\x05\xb4\xf2\x75\xb6\xe1\xb4\x3e\xd7\x33\xda\x78\x2a\x89\x80\xbb\x15\xc3\xad\xea\x5e\x9d\xe9\x09\x47\x3c\x41\xc3\x74\x34\x22\xc2\x0f\x1f\x38\xd1\x4a\x1a\x95\x48\x90\x88\x4f\xa7\x20\x31\xe8\xaf\x52\x69\x76\x35\x50\xcc\x8e\xf6\xac\xcf\x60\xfd\xb5\xf6\x06\x3b\x20\xe6\xc0\xea\x18\x21\x31\xc2\x6c\x6e\xba\x19\xa6\x23\xbf\x7d\x53\xb0\x13\xc7\x88\xaa\x3e\xeb\x24\x09\x12\x64\xca\x15\xf1\xea\x32\x81\xab\xb3\x48\x70\x60\x91\x82\xcc\x12\x1c\x91\xd8\xec\x87\x84\x47\x38\x41\x23\x9a\x10\x39\x97\x8a\x4c\xfd\x06\xbe\x03\x13\x94\xa6\x19\x95\x28\xe6\x2f\x2c\xe1\xd8\xce\xa3\xfc\xd9\xf7\xc5\xd3\xd8\x75\xc5\x14\xbb\x42\x70\x01\xff\xf3\x33\x65\xf1\xd6\x38\xd4\xe3\x7d\xf7\xce\xff\xf7\xfd\xaf\xf7\x0f\xdd\xcf\xab\x71\x9f\x6c\x67\xc1\xf0\xc0\x34\x71\x8e\xee\x0d\x11\xb8\xd0\x12\x91\xa8\x99\xd4\x67\xbb\x95\xf2\x1f\x78\xbc\x26\xf7\xfd\xdc\xb9\x7e\xec\x14\x38\xca\xfd\xc5\x4f\xdd\xcb\xc7\x92\x3e\x60\xe7\x57\x90\xe1\x8d\x56\xeb\xff\x76\xf1\x53\xef\xea\x72\x50\xa1\x07\xbf\xbb\xeb\x5e\xdc\xfc\xd2\xbd\xcb\x55\xd6\x4a\x12\x95\x06\x53\x66\x56\x0f\x86\x29\x4d\x78\x8c\x86\xf3\xea\xd2\x99\x5a\x72\x4e\xc0\x73\x9e\x17\x8f\x35\xad\x9e\x03\x6f\x72\x55\x4c\xf3\x2f\xa6\x3c\x26\x27\xf6\x1d\xa8\x39\x6a\x6c\x46\x46\x62\xae\x6e\x58\xf7\x8e\x99\x67\x7f\x31\xe5\x40\x33\xc2\x9d\xa3\x0e\x92\xfa\xc5\x54\x1f\x6a\x41\xc7\x63\xb0\x87\x96\x86\x6a\x5a\xb3\x9f\x02\x79\xe1\x3b\xb3\xfe\x33\xc1\xe1\x9c\xeb\x6e\xad\x21\x3d\x33\xb6\x98\x0f\xa1\x3e\x6d\xb1\x45\x81\xc1\x8e\x52\x31\x34\xb7\x58\x9a\x08\xb5\xf4\x32\xe7\xd1\x98\xc1\xf4\xe1\x02\xb6\x25\x8d\x19\x77\x26\xc8\x33\xe5\xa9\xf7\xa9\x2d\x81\x5a\x58\xf1\xca\xe6\x73\x02\x00\xd9\x8c\xad\xa7\xd4\x4c\xb6\x3d\x2a\x5b\xd0\x2c\xec\x19\x5a\x18\x09\x3e\xad\x68\xa3\x78\x4c\x7a\x37\xf7\x4a\x60\x45\xc6\xf3\x4b\xcb\x32\xd6\x3f\x1e\x97\x37\x5f\xae\xaf\x6e\x3a\x97\x83\x6e\xe7\x53\xf1\xc4\x67\x4f\xee\x1f\xee\xba\x9d\xcf\xc5\x47\x83\xeb\x9b\x87\x81\x7b\xa3\x71\xcb\xd7\x74\xb0\x78\x4f\x17\x5f\x3c\x47\x9a\xe5\x02\x6b\x7c\xa1\x49\xa2\x2f\x13\x8f\x3f\x0e\xc9\x88\x0b\xc3\xe7\xa7\x2e\xd0\xc4\x8a\x30\x8e\xb6\x56\x17\x2b\xcd\xe2\x1c\x0c\x7e\x55\x4d\x1a\x63\xbe\x12\x04\x4f\xe1\x9e\xc0\x0c\x75\x59\x7c\x7a\x33\x3a\xbd\x37\x3f\x4e\xb1\x78\x22\x22\xfb\xf4\x45\x50\xa5\x08\x2b\xa8\x74\xd8\x0d\x39\x53\x12\xf3\x0e\xce\xd0\x9d\xe6\xfb\xfa\xfd\xec\x52\xd3\x9b\x3d\x26\x0a\xd3\x44\xda\xc1\x16\xe8\x7a\x8e\xae\xb0\x18\xe7\xe6\xc5\xef\xf8\x68\x64\x1a\xfb\xde\x0c\x43\xdf\x61\x85\x59\x54\xf0\x5e\xbd\x35\xdc\xbd\x08\xfd\xd9\x97\x33\x79\x78\x71\x57\x3d\xce\x36\xdb\x53\x8f\xb7\x40\x71\xa3\xb1\x17\x74\x43\xfb\xa4\x62\xaf\xc1\xc4\xcd\xe3\xe6\x4b\xa6\xba\xed\xc5\xed\x54\x7c\xb1\x62\x3b\x99\x5a\x26\x7a\xe5\x47\x5a\xdb\xac\xd8\x4b\xe4\x2b\xb5\x06\x03\x7f\xdc\xa5\x2d\x94\x37\x03\x56\x63\x3c\x9b\x11\x2c\x64\xd5\x6a\x17\xc5\xc0\x9a\xb5\x37\x3d\xf9\x7d\xd8\x45\x76\xfd\x9c\x20\xce\xc0\xe0\x90\x09\x11\xa5\x1d\xd9\x62\x0f\x98\xb6\x16\x76\xc0\x2d\xd4\xa5\xbe\xb1\x35\xa0\x3f\x53\xa9\x95\x46\xf3\xe3\x8f\xb6\x38\xf5\x7a\x1b\xe2\x63\xa7\x77\x55\x12\x2e\x06\x97\xdd\x8f\x9d\xc7\xab\x66\x33\x61\xe1\xbb\xf2\x12\xa3\x53\xa4\x9f\x17\xc3\x01\xe8\xc8\xdc\x19\xae\xc4\xb6\x51\x69\x09\x03\xa3\x95\x2d\x7f\x6b\xcc\xf0\x31\x99\x25\x7c\x3e\x25\x0c\x4c\x3c\x85\x9b\x50\xd3\x73\x84\xa9\xbd\x5a\xbc\xc1\x82\x15\xc7\x9a\xdd\xe0\x1a\x3b\x75\x75\xbd\x49\x9c\xdd\xbc\xc5\xb2\xde\x25\xd6\x7d\x6b\x9c\x82\xf6\xff\xee\x15\x56\x6b\x9e\xb1\xce\xc5\x43\xef\x97\x6e\x51\x3f\xbc\xf8\xa9\xf7\x4b\x95\x54\x33\xf8\xd4\xbd\xee\xde\x75\x1e\x96\x08\x27\xa5\x26\xab\x84\x13\xa9\x07\x5c\x76\x0a\x53\x99\x05\x3a\x45\xa6\x38\x38\xa2\x4a\xa2\x67\x2a\xe9\x90\x42\x29\x75\xeb\x60\x7d\xec\x01\x67\x7d\xc6\x09\x8d\xa9\x9a\x3b\xf1\xc5\xf4\x5b\x5c\x47\xcd\x49\x6d\xfb\xc6\xec\xe0\xbb\x5d\xc1\xca\x67\x16\xc7\x4d\xfa\x1c\x81\x6e\xfb\x0c\x4a\x9b\xf7\x19\xd3\x82\x34\x1b\x13\x61\x86\x03\x4e\x25\x7f\x2c\xde\x73\x3d\x2a\x5f\x58\xc9\xa9\x96\x09\xad\x63\xc2\x88\x80\x72\xf9\x59\x27\x46\x90\x12\x84\xbd\xd7\x32\xd7\x2c\xa1\x11\x55\xc9\x1c\x45\x60\xc3\x02\x73\xe6\x14\x33\x3c\xb6\xc2\x01\xa8\x39\xa5\x2d\xf1\x77\x53\x6f\xfe\x66\x64\x4d\xfb\x0f\x94\xac\x79\xcc\x1e\xaf\x2f\xbb\x1f\x7b\xd7\xc5\x2d\xf0\x53\xef\x53\x41\x84\xfd\xdc\xbd\xec\x3d\x16\x6e\x73\x2d\xc9\x36\xcb\xf5\xe5\x66\x2b\x8e\x62\xf6\xd2\x39\xba\x34\x9f\x9e\x6b\xe2\x56\x14\xd3\xcf\x94\xdf\x12\x1d\xee\x5c\xa4\xa1\xfb\xa3\xcb\x94\xa8\xf4\x4b\xb4\x35\x21\x59\xaf\x50\xc1\x86\x54\x1d\x81\xb1\xd0\xf7\x75\xd9\x57\x5e\x9e\xb2\x7b\x11\x42\x64\xcf\x72\xcb\x92\x1f\x9a\x01\x46\x83\x3a\x23\x56\x85\xb7\x2e\x67\xd8\xbf\x80\xe7\x7d\x9a\x4a\x65\x3c\xa4\xb0\x39\xd1\xd3\xdf\xa4\x26\x28\x78\x50\xcf\xd0\x3d\x21\x7d\xe6\xac\x07\x63\xaa\x26\xe9\xf0\x2c\xe2\xd3\x0f\x4f\xe9\x90\x08\x46\x14\x91\x1f\xf0\x8c\x4e\xb1\x96\xa4\x89\x98\x7f\x18\x26\x7c\xf8\x61\x8a\xa5\x22\xe2\xc3\xec\x69\x0c\x81\x3d\xce\xd3\xf5\x21\x6b\x76\xcc\xff\xfd\xea\x2f\x3f\x9c\x5e\xfd\xed\x87\x77\x8b\x16\xb2\xba\xf5\xef\xb2\x08\xcf\x64\x9a\xd8\x40\x40\xe1\xd3\xc6\x1d\xf9\x94\x2c\x5b\xef\xeb\xe2\x72\x6d\xa6\xbf\x5e\xdc\x3e\x16\x2c\xd6\xc5\x7f\x7e\xee\x7e\xbe\xb9\xfb\xb5\xc0\x29\x1f\x6e\xee\x3a\x9f\x0a\x0c\xb5\x7b\xfb\x53\xf7\x73\xf7\xae\x73\x35\x70\x0f\x37\xb1\xbd\xfd\xcc\xf8\x0b\x2b\x92\x46\x3a\x0e\xb8\xd0\xd3\x39\xfa\xc8\x05\xfa\x39\x5b\xc9\xd3\x21\x96\x70\xc5\xb8\x3b\x4b\x9e\xa0\x19\x8f\x81\xf1\x22\x32\x9b\x90\x29\x11\x38\xb1\x36\x03\xa9\xb8\xc0\x63\x73\xd3\xcb\x48\x60\x15\x4d\x90\x9c\xe1\x88\x9c\xa0\x08\x76\xc3\xf8\x04\x16\x05\x54\x2d\x3e\x2e\xdb\xf9\xee\x52\xa6\xe8\x94\x38\x15\xdc\xfe\xf3\xc1\x2c\xc6\x1a\x8b\x73\xf3\xf0\x53\x51\xd8\xfb\x78\xf5\xeb\x43\x77\x70\x7f\xf9\x73\x23\x3d\xcd\x67\x85\x91\xdd\x43\x5c\xd5\x05\x4f\xd2\x29\xf3\xff\x5e\x7f\x6c\xbd\xeb\x87\xee\xa7\xf2\xe8\x6e\x3a\x0f\xc5\x9d\x71\x57\x8c\xdb\x7b\xf7\xe3\xcd\xcd\x55\xb7\xe0\xe9\x7e\x77\xd9\x79\xe8\x3e\xf4\x3e\x17\xf6\xcf\xe5\xe3\x1d\xf8\x80\x1a\xa7\xe9\x46\x50\x31\x51\x3d\x2d\x7f\x9a\xdb\x66\x85\xad\x38\x51\xc7\x86\xff\x9b\xb3\x7c\xea\xe1\xe5\x98\x28\x37\xb0\xea\x9c\x66\x26\xd5\xc8\x8c\xb4\x92\x1d\xaa\xe2\x32\xa1\x7a\x76\xdc\xb8\xd0\x4d\x5c\xf9\x21\x1b\x02\x8c\xeb\xcc\x28\xdb\x38\x49\xf8\x8b\x89\x50\x9e\x52\x7d\x2b\xdb\x62\xeb\xfa\x15\x99\x7b\x08\xcf\x2a\x38\x5e\x71\x59\x48\x24\x88\xfa\xcc\x53\xa6\xd6\xdf\x72\x9d\xeb\x02\xdf\xe9\x5e\xff\x32\xf8\xa5\x53\xdc\x81\xbd\xab\x66\x56\xe3\x37\x51\x71\x15\x77\xae\x7f\xcd\x2e\x61\x88\x63\x3f\xc9\x34\x54\x23\xbb\x46\x09\xd5\x62\x6f\x84\xb5\xf6\x9a\x80\x44\x83\x08\x05\x93\xc3\x54\x4f\x0e\xe2\x66\x67\xc6\x9f\x64\xf8\x93\x19\xe4\xb9\xfb\xa3\xd4\x9e\x04\xba\x80\x35\xd5\xa5\x09\x40\x3b\x56\xab\x66\x88\xb0\x67\x2a\x38\x03\x61\xfb\x19\x0b\xaa\xa5\x71\xd3\xb2\x9e\xeb\x39\xfc\xef\x6a\x6d\x82\x61\xb4\xc4\xb8\xee\xb9\x50\x97\x59\x7c\xf2\x7a\xd6\x90\xaa\x38\xdd\xc5\x08\xdd\x6a\x43\xc7\xe2\xb7\x15\x8b\xb3\x61\x1c\x73\x71\xc2\xbf\x27\x97\x14\x27\x9a\x01\x6c\x4f\x5e\xec\x5c\xdf\xf7\x8a\xf2\x63\x51\xcd\xf0\xf8\xf2\xda\xf2\x22\x18\x2a\xcd\xc8\x9d\x32\x71\xff\xf7\x2b\xa3\x5d\xe8\x4d\x62\xcf\xad\xa7\x58\x80\x00\xe4\xaa\x90\xce\xb0\x90\xa5\x2f\x24\x02\x24\xb3\x3c\x8e\x4c\xdf\x59\x10\xa5\xf5\xcc\x69\xdc\x67\xe4\xeb\x8c\x30\x09\xc1\x01\xe6\x3e\xcb\x7d\xed\xf2\x0c\xf5\x46\xc0\x12\xf4\xeb\x0c\xa5\xcc\x3a\xc0\xf4\x85\x6b\x06\x79\xa2\x45\x59\x3b\x84\x4c\x43\x04\xc3\x0b\x23\x2e\x06\x2c\x1f\x7c\x9f\x7d\xc9\x9c\x68\xf0\x68\xc4\x35\x03\xd2\xab\x68\xdb\x3b\x47\x98\x49\x7a\x82\xb4\xc2\x52\x5e\x53\xc8\x88\xd0\x0a\xa5\x8d\x4c\xd3\x9c\xc6\xfe\xb9\xff\x6b\x60\x21\xfc\xd9\xbf\x0c\xaa\xef\x82\xd2\x55\x50\x23\x1a\x27\xc6\x63\x32\x68\x7f\x27\x44\x5c\x10\xeb\x67\x59\xf9\x1a\x58\xc6\xd8\x1f\xb0\x7c\x5a\xf0\x3d\xf4\x98\x54\x98\x45\xe4\x22\xc1\x72\xcd\x20\x24\x67\xe3\x38\x29\x4a\x1c\x77\x77\x8f\xb7\x0f\xbd\x1f\x97\x70\xf9\xf2\xc7\x8b\x61\x40\x51\x92\x3a\xf7\xdc\x50\x70\x1c\x23\xcd\x3e\xc7\xdc\xb8\x02\xad\xe0\x6f\x4e\x90\x59\x13\x2a\xbd\x38\x51\x2c\x9f\x0a\x46\x6a\x9b\x65\x61\xed\x1c\xbe\x2b\x81\x5a\x42\xa0\x48\x53\x02\x79\x26\x0f\xb7\xd4\xe0\x59\x34\x51\x74\xd6\xba\x35\x4b\xb0\x1a\x71\x31\x35\x5c\xbe\x30\x69\xd3\x78\x73\xa3\x94\x29\x22\x44\x3a\x53\xa0\xb2\xeb\xb1\x96\xa5\x54\xbd\x64\x57\x7c\xfc\x99\x48\x89\xc7\x64\x13\x07\x74\x95\xf2\x70\xff\x8b\xff\x4f\x70\x30\xb7\x91\xfd\x0b\x23\x74\x01\xfd\x6e\x3f\xdd\xb0\x8f\x26\x90\xe7\x96\x27\x34\x5a\x33\xe0\xee\x63\xa7\x77\x35\xe8\x7d\xd6\x4a\x7c\xe7\xa1\x7b\x55\x10\x25\xe0\x59\xe7\xe3\x43\xf7\x6e\xd0\xfd\xaf\xee\xc5\xe3\x43\xe7\xc7\xab\xee\xe0\xfa\xe6\xb2\x7b\x3f\xb8\xb8\xf9\x7c\x7b\xd5\x5d\x12\x99\x53\xdb\xf8\xa2\x75\xb5\xfc\xea\xf9\xc2\x2f\xb0\xc2\x9a\x97\xf9\xf6\x32\x48\x86\xc3\x34\x01\x27\x38\x37\xce\x70\x8c\x18\x8f\x09\xfc\x2c\x9d\x75\xc6\x65\x9b\x9c\xa1\x9e\x7a\x9f\x24\x08\xa7\x8a\x4f\x31\x78\x6d\x92\x79\x9f\xe1\xa1\x66\xad\x38\x49\xbc\xf0\x2e\x91\x32\xa6\x59\xac\x6e\x4c\x9a\xf8\xe2\x84\x68\x76\x3e\xf3\x72\x18\xad\xdf\x60\x44\x19\x04\x10\x4f\xb1\x78\x32\x6e\xa6\xbc\xcb\xfc\x50\x48\x84\x65\x9f\xe9\x71\x11\x6b\x18\x6a\x43\xe1\xf3\x56\x6f\xd5\x52\x67\x8a\x9f\x88\xa6\xca\x34\x8d\x26\x68\x26\xf8\x58\x10\x29\xad\x6d\x39\xc2\xcc\x04\x20\xd8\xd7\xf5\x35\xd4\x67\x8c\x6b\x52\x38\x13\x76\x4c\x66\x84\xc5\x84\x45\xd4\x64\x2b\x82\xef\x3e\x33\x6d\x8e\x05\x9e\x4d\x90\xe4\xe0\xf4\x06\xb2\x83\xfd\xca\x7c\xe4\x6e\x32\x33\x63\xf3\xd8\xb7\x40\x8b\x54\xf3\x89\x1b\x90\x13\x0d\x95\xe1\x63\x77\x19\x3a\xb7\x8b\xb1\x03\x4e\x67\x09\x81\x2e\x2d\xc9\x61\x31\x34\xad\x0b\xeb\xa1\x97\xa9\x6a\x11\xf4\x85\xed\xc6\x8c\xa5\x1d\xd1\x59\x85\x65\xdb\x1e\x29\xf4\x13\x66\x71\xa2\x5b\x71\x3e\x8c\xe2\x59\x84\x0c\x9b\x8e\xde\x35\xee\x34\x6e\x72\x8b\x46\x38\x95\x9b\x5c\xa3\xa5\x14\x53\x63\x15\x3c\xcd\x83\x42\x60\x7b\xdb\xfc\x52\xa0\xee\x4c\xb3\x48\x9c\x70\x4b\x25\xf3\x7a\x6a\x83\x96\x61\x34\x35\xd7\xec\x4c\x50\x16\xd1\x19\x4e\xd6\xd2\xfd\x4a\x39\x06\x36\x74\xff\x3b\x3a\xd2\xdb\xe7\xfb\x05\xb7\xad\x22\x62\x0a\xe9\xe4\x76\x98\xd9\x12\xae\x60\x49\xb2\xc9\x1a\x44\xe6\xd1\x24\x58\xf0\xd4\xf8\xe3\x80\x2e\x24\xae\x38\xaa\x67\x55\xcb\xad\x4f\x06\x2e\x06\x40\xaf\xb1\xd8\x26\xf2\xa7\x8e\x7e\xa5\x56\x6c\xef\x26\x18\x0f\x27\xb7\xd5\x6d\x56\xad\x80\xf7\xf0\x5f\x4d\x7b\xe7\x33\x9e\xe9\x3d\x13\xa5\x52\x81\xa7\x38\x9b\xa3\x55\x92\x4a\xa1\xec\x9e\xef\x3c\x0b\x6a\x6f\xbf\x1a\x39\x09\x6d\x00\xd4\x62\x27\x85\x18\x02\x0f\x11\xc0\xee\xf1\x51\xaa\x65\x59\x84\x21\x0a\x01\x7d\x47\xce\xc6\x67\xe8\xe6\x97\xee\xdd\x5d\xef\xb2\x7b\x82\x3a\xb7\xb7\xdd\xeb\xcb\x13\x44\x54\xf4\xbd\x8b\x59\xb4\x01\x4b\x7d\xa6\xb8\x95\x56\xe6\x68\xc2\x5f\x80\x37\x12\x31\x26\x85\x39\xbb\xe8\x26\x08\x55\x1e\x53\xa9\x6c\xf8\xac\xe6\x2b\xf9\xb0\xb4\xbc\x5f\xb9\x43\x52\x35\xd9\x64\x6b\x60\x29\xd3\xa9\xd6\x65\x07\x14\x4f\x07\x82\x27\x9b\x30\x85\x4b\x98\x0a\xa8\xcb\x19\x98\x02\xc5\x53\xa4\x9b\xb5\xa1\x20\x99\xcb\x31\x13\xe9\xb4\x60\xa4\xf9\xb2\xbe\x37\xbd\x7b\xcb\x79\x1f\x6c\x3c\x1a\x75\x21\x10\x00\xb6\x50\xc3\x2a\x72\xb3\xf1\xc0\x5a\xea\x07\x38\x8a\xb4\xca\xbd\xe5\x49\xe5\x1d\x65\x2e\x01\xdb\xd1\xce\xa6\xb9\x6c\x9f\xbb\x61\xce\x34\x07\x83\x60\x60\x7d\xe5\x4a\x1e\xd1\xbc\xfd\x8a\x7e\x87\xf3\x85\x5e\x61\xcb\x9e\xf5\xd9\xa3\xcc\x4c\x2a\xe6\x12\x96\x04\x56\x52\xa2\x97\x09\x81\xa3\x31\x47\x13\xfc\x4c\x0a\x5d\xba\x1c\x12\xdd\xf0\x9c\xa7\xa2\x8a\xd1\xf5\xd9\x25\x99\x09\xa2\x25\xfd\xb2\x03\x25\xdb\xd3\x77\xc5\x9d\x18\xf6\x75\xd8\xd7\x47\xbf\xaf\x2f\x92\x54\x2a\x22\x3a\x52\xd2\x31\x18\x12\x37\x12\xe0\x4c\x63\x83\x19\xe7\xc9\xa0\x85\x4d\xa4\x3d\xc5\x0b\x9e\xb0\x42\xc0\x87\x34\x48\x07\x3c\x05\xf9\xa8\x70\x6d\x72\x7d\xd7\x79\x99\xc3\x76\x78\x0d\x64\x70\x2e\xb3\x8e\x03\x94\xd8\x48\xc4\xc1\x55\xad\x34\xb5\x84\x76\x2e\xe6\x5c\x18\xf9\x26\x73\x97\xe5\x43\x2c\x1d\x26\x27\x8a\x50\xe6\xc8\x96\x7f\x04\xfb\x59\x13\xd8\xc8\x1d\xbf\xa7\x5c\x61\xf9\xfd\x59\x9f\x69\x21\xea\x89\xcc\x8d\xb9\x55\x8b\x29\x7f\xd0\xb2\xf8\xa9\x24\x4c\x42\xb8\xf7\x1f\x8c\x7b\x4e\x6f\x71\x67\xae\x36\xaa\x29\x99\xce\x12\xac\x20\xe8\x3a\xeb\x05\x42\x74\x6d\xa3\x56\x4a\xca\x03\xa0\x41\xce\x37\x73\xb1\xcf\xcc\xf0\xc7\x44\x41\xe6\xb8\xa2\x0a\x74\xa6\x38\xd5\xe4\x59\x1c\xfa\x52\xd3\x95\xd9\x15\x82\x83\x9f\x24\x4e\x37\x63\xfc\x72\xb1\x8d\xa5\x9c\x31\xd3\x16\xee\x6d\xcc\xfb\x07\x67\x37\x8a\x04\x67\xa5\x68\x18\xad\xcc\x99\x95\x1e\x1a\x76\xe0\xfc\xd7\x84\x9d\xbd\xd0\x27\x3a\x23\x31\xc5\x10\x01\xaf\xff\xf5\x41\xcf\xeb\xdf\x2f\xee\x6e\xae\x07\x79\x26\xcf\x7f\xf6\x59\x27\x91\x3c\xcb\x52\x40\x8c\xb3\x2c\xdc\x7e\x26\x88\x13\x09\xed\x5c\xc0\xea\x9a\x9b\x11\xfb\xac\x6e\x04\x31\x8f\xe4\x19\x7e\x91\x67\x78\x8a\xff\xc9\x19\xb8\xd2\x3b\xf0\xe7\x45\xc2\xd3\xf8\x0b\x56\xd1\xe4\x03\x9c\x6b\xf5\x81\x3c\x13\xa6\x8c\x9b\x4a\x93\x2b\x86\x9c\x64\x09\xd1\xfa\xff\xae\xc7\x9c\x27\x15\x49\xad\xc9\x46\x64\xa6\xd0\xff\x2b\xc8\x90\x73\x55\x7d\x49\xf1\xd1\x48\x92\x95\x2e\xa4\x5c\x49\xbb\xbf\x41\x7f\xfb\x8f\x1f\xfe\xa4\xb7\xd0\x3a\x34\xee\xdd\xdf\x0c\xf4\xf7\xff\x7e\x69\xbf\x97\x2b\xb0\x3b\x93\x4a\x2b\xad\xab\xd9\x50\xc3\x04\xce\xa7\x0c\x6e\x3f\x01\xce\x0b\x60\x6f\xb0\x1d\xf2\x75\xac\xe2\x6e\x97\x85\xd6\x37\x53\xd9\xd6\x22\x26\xa8\xd8\xde\x1c\xd1\x29\x62\x1c\x4d\x4d\xac\x29\x66\xe8\xaf\x3f\xff\x58\xbd\x80\xa9\xa0\x6b\x75\x48\x2d\x0a\x85\xd7\xa5\xa4\xff\x24\x12\xe9\x5d\xa3\x77\x31\x9f\xea\xae\x05\x91\x13\x9e\xc4\xe8\x85\x80\x9a\x64\xe3\x40\x33\xad\x5c\x90\x3e\xf3\x9b\x80\x90\x43\x84\x13\xc5\xc7\x04\xee\x6a\xa7\xa8\x29\x22\xb4\xa8\x62\xb2\x34\x14\x17\xe4\xc4\x00\xb3\xdd\xff\xc5\xc5\x56\xc3\x34\xe1\x91\x4b\x6a\xb1\x26\xb9\x78\x58\x3d\xf3\x51\xd9\xf4\x8a\xea\x6d\xf8\xe5\x45\xb6\x66\xdb\x6a\xd2\xd8\x24\x14\x6b\xc3\x2a\xaf\x4c\xf5\x60\x68\xc4\xd9\x20\xa1\xec\x69\xad\xc5\x70\x89\xe1\x48\xb7\x60\x69\xa6\x5b\xcc\xec\xdc\xc6\x02\xb2\xc2\xf9\xf8\x98\x26\x89\x49\x6d\xf1\x97\x07\xe4\x2e\x43\x37\x10\x06\x66\x26\x07\x94\xc4\xd6\xef\x65\x35\x61\x41\x18\x04\xbc\xf5\xd9\x70\x6e\x7d\xb6\xf2\x04\xc9\x34\x9a\xb8\xcc\xbc\x88\x33\xa9\xc5\x68\x2e\x50\xc4\xa7\x53\xad\xf5\xc2\x92\x29\xce\x13\x69\xa3\xdd\xd9\xa9\xc2\x91\xea\xb3\xbc\xbf\x25\x27\xcf\x14\x65\xda\x2c\x75\xaf\xbd\x4b\x27\x2f\xfe\xd4\x28\x70\xd3\xd8\x87\xa2\x00\x23\x98\xf1\x44\x79\xa0\x16\x7c\xf1\x2c\x99\x05\xab\xd1\x0c\xe4\x84\x0b\x35\x88\x2b\x79\xce\xd2\x4d\x53\x66\x84\x8c\x9c\x26\x10\x34\xcc\x9f\xb5\xf0\x4f\x5e\x32\xe3\x6b\xd3\x10\xf4\xae\x6e\x1a\x41\xbb\x63\xd4\x38\xb2\x55\xb7\x60\x0d\xad\x0c\x30\x49\x54\x8c\x09\x5f\x36\xc6\x7b\xf8\xea\x42\x7f\xd4\x48\xbc\xf2\xb9\x73\x42\x10\x8f\x73\x0c\x3d\x73\xaf\xdb\x8c\x90\x26\x9a\x5a\xe8\x84\xdd\x65\x8e\x36\x4d\xe5\xb1\x68\xc9\xd5\x63\x01\x93\xbd\x24\x20\x6b\x62\x31\xa4\x4a\x60\x51\x00\x40\xc9\xf4\x41\x49\xb0\x80\xf8\xac\x3e\x33\x70\x78\x46\x53\x88\x51\x4c\x25\x24\x88\xc0\x5d\xea\x39\xc3\x50\x3b\x25\xb0\x74\xb4\xf3\x3c\x47\x13\x7f\x0e\x81\x65\xf9\xd6\x70\xcc\x4e\x77\x94\xc1\x7e\x69\xfd\x8c\x47\x69\x2e\xc8\x45\x20\xe1\x5a\xa8\x20\x44\x99\xa4\xe3\x89\x42\x94\x59\xbb\x23\x4e\xc6\x5c\x50\x35\x99\xca\x13\x34\x4c\xa5\xd6\x42\x4d\xb0\x9a\x89\x47\x21\x2a\x6a\xc5\x85\x36\x4d\x22\x8e\x4b\x0d\x2e\xaa\x28\x6b\x6c\x8d\x76\x87\xb2\x5b\xba\x2b\x96\x6c\x9c\x4e\x06\x9f\x58\x6e\x83\x12\x99\xa1\x6e\x22\x13\x07\xc8\x1d\x60\xd5\xef\x29\x91\xaa\xee\x1c\x00\xd8\xe5\xd6\xbc\x14\xfb\xa8\xa4\x85\x4c\x32\xa8\x20\x2e\x76\x1b\x24\xaf\x22\xe0\xa6\x01\xa5\xca\x9c\x4e\xd3\x99\xaa\x0c\xdc\x5a\x74\x15\xdd\x79\x50\x46\xed\x88\x0d\xc9\x58\xb0\x9b\x01\x80\xae\xcf\xee\x09\xa9\xc7\xa7\x5b\x58\xfb\xdf\xe0\x28\xc1\x14\x6c\xa2\x47\xf3\x96\xdf\xc4\x89\x7d\xd9\xbd\xbf\xb8\xeb\xdd\x1a\xc8\x89\x9b\xbb\xcf\x9d\x87\x41\x85\x5f\xbb\xe2\xad\xcf\x9d\xbb\x9f\x2f\x97\xbf\xf6\xd3\x43\x31\x2b\xbb\xe2\x95\xbb\xfb\xe6\x64\x8e\x16\x43\xac\x48\x0a\xab\xec\xe7\x1c\xcd\xe6\x6a\xc2\x59\x16\xa2\x10\x17\x78\xd3\x29\x32\x19\xc1\x0a\x42\x88\x84\x54\x15\x8e\xc3\x07\x88\xcb\x59\x2e\x61\x16\x17\xcb\xa0\xcb\x6d\x55\x34\x5a\xe1\x44\x7e\x4a\xf8\x10\xfc\xd6\x56\xf6\xb1\xc0\x74\x0d\x11\xe8\x1b\xc6\xfb\x5c\x52\x39\x4b\xf0\x7c\xa1\x87\x65\x57\xce\x35\x9e\x12\x88\x38\xce\x61\xf1\x5c\xb2\x88\x5e\x19\x48\x60\xca\xee\x75\x3a\x82\x4c\x26\x45\xb1\x22\x68\x48\xd4\x0b\xe4\xcd\xb9\x5f\x33\x5b\xaa\x0b\x18\x91\x67\x7d\x06\xe6\x9c\xbe\x26\x72\x9c\x42\xb4\x5f\xff\xdd\x09\xea\xbf\x8b\xc9\x33\x49\xf8\x4c\xaf\xbc\xfe\xa1\xe6\x92\xe9\x4e\x31\x4d\xae\xb9\xca\x2c\x73\x9b\xac\xa7\x20\x11\x9d\x81\x64\x3e\x20\xba\xdd\xfd\x09\x1e\x85\x9d\xec\xd8\x19\x8c\x01\xe1\x38\xd6\x4a\x36\xb0\x32\x37\xbc\x3c\x04\x88\x79\x53\x2f\x14\xbb\x5c\x45\xa4\xc8\xcc\xdf\xa6\x47\xbf\xcd\xa2\xd9\xb3\x72\x05\xd8\xf3\x0e\x5d\xb2\x9b\x5e\xe4\x5a\x2b\xf9\x99\xcc\x21\x05\xe3\x16\x53\xb1\xa6\x6b\xb6\x2a\xe6\x75\x27\x4e\xda\x6e\x45\x47\x07\xe4\xae\xad\xa6\xc3\x66\x8e\xdb\x2c\x56\x6f\x5f\x5a\xaa\x8b\xe5\xca\x3a\x6e\xa9\xb6\x3e\xd6\x29\xa9\xb5\x21\x0c\xa8\xac\x78\xcd\x48\xb4\x82\xc6\x95\x0d\xf0\x5e\x7f\xb7\x54\x53\xc9\xc4\x35\x17\x7f\x97\xaf\x82\x4d\x8e\x2f\xe7\xe3\x93\xa5\x23\x8e\x12\x2e\x8b\x58\x39\xad\x07\x7d\x61\x3f\x6d\x1a\x77\xd7\xdf\xbe\x5a\x2e\x5c\x29\xa0\xa1\x82\xf0\x25\x8c\x4b\x73\xcf\x28\xeb\x21\xb3\x6f\x9f\x20\x0a\xd1\x96\xa0\x90\x25\x39\x72\x00\x8b\x51\xee\x06\xe9\xb3\x3c\x66\x45\xa2\x17\x92\x40\x98\x5b\xc4\xa7\x33\x30\xf1\xdb\xe1\xda\x96\x48\x6c\x22\x86\x4f\x10\x4f\x95\x6e\xcc\xe4\xe4\x38\x23\xae\x4d\xf8\xc9\xdd\x1e\xc6\xf7\x66\x83\xdf\x33\xbc\x6c\xb3\xd7\xcd\x5d\x4a\x19\xfa\x44\x14\xb4\x02\x65\x16\xfc\x09\x82\x9e\x50\x0e\xa1\xac\xa6\xfd\x06\x27\xca\xce\x64\x85\x95\xcf\x81\x53\x7e\x4c\xf8\xb0\xd9\x48\x00\x8d\xa3\xc7\xbb\x9e\xb3\x48\xe6\xf1\x53\x1e\x28\x73\xc1\xa3\xd8\xbd\xbd\xeb\x5e\x74\x1e\xba\x97\x67\xe8\x51\x12\x4d\x9e\x6c\xba\x90\x5f\x9d\xa9\x24\x66\xe4\x16\x89\x85\x49\x45\x70\x9d\x21\x84\x08\x51\xc8\x82\x5e\xc2\x38\x8a\x30\x2d\xcd\x1b\x1b\x40\x52\xa8\x35\xd4\x01\xb0\x50\x79\x9e\x36\x32\x6f\xd9\x09\x84\x38\xa9\xc1\xf1\x44\xa9\x99\xf1\x4e\x17\x23\xf3\x96\x6d\x9f\x62\x44\xdf\xae\x27\x03\x47\x4b\x4d\x08\x15\xa8\xd5\xb4\xcc\xa6\x1a\xb4\x9f\x93\x17\xe2\xfe\x19\xcf\x9a\xd3\x4f\xf1\x4b\x61\xd3\x1a\x51\xd8\xf3\xdd\xef\xfa\x1c\x38\xb6\x36\x30\xac\x70\xf3\x09\xe6\x0e\x2d\xc3\x5b\x33\xbe\x69\x32\x3e\xa4\x33\x92\xf9\x13\x2b\x0d\xc2\xc6\xb1\x4a\x04\x67\x07\x7e\xa1\x0c\x15\xae\xc4\x13\x34\xa2\x5f\x6d\xa3\x79\x7c\xbb\x7b\xd5\x0b\x78\xa8\x89\xa7\x9c\xe0\xc5\x33\xb5\x82\xd8\x70\x0b\xdf\x37\x0a\x91\x5c\x6a\x91\x28\xd2\xe2\x92\x20\x11\x17\xfa\xa6\x80\x6e\x73\x2f\xc4\x32\x91\x41\x61\xa1\x89\xb2\xe8\x95\x69\x3a\xfd\x79\x69\x95\x18\x2b\x72\xaa\x45\xaf\x25\x09\xd0\x36\x47\x06\xb2\x69\xb0\xf2\xe0\xc0\xf2\x9b\x67\x48\xc6\x98\xb9\xd0\xec\x9a\xe1\xba\x2b\x6f\x03\x56\xa5\x55\x20\x0c\xe9\x61\x20\x5f\x41\xea\x4f\x61\x1c\x72\x06\xf4\x6c\x1c\x87\x8d\x7e\x39\x04\xb2\xbd\xe0\x2c\x18\xa7\x66\xb0\xe9\x2c\x3e\xa4\xc1\x26\x58\x2a\x64\xc7\x54\x67\x8a\xf0\x54\xc4\xdd\x1a\x61\x0b\xba\x7d\x5b\xe5\x4d\x6f\xa1\xa2\x16\x4b\xc0\x33\x22\x1d\x6e\x8a\x41\x89\xd1\x3a\x8d\x13\x84\x2f\x60\x85\xb2\xb3\x7d\x67\xa4\x2c\x77\x4b\xf8\xcc\x04\x82\xf4\x17\x9b\x3e\x43\x1d\xb6\x80\x97\xe5\xe2\xb2\x0a\xf4\x32\x77\x12\x4e\x5e\xf0\x5c\xa2\x99\x30\xd0\x32\x26\x72\xdf\x4d\x1e\x34\xb0\xe2\x47\x59\x28\x84\x72\xa9\x13\x08\x6c\x31\xcb\x83\xe6\x9c\xdc\x3b\xd8\x81\x2b\xaf\x14\x55\x9e\x09\xe4\x79\x73\xb9\xad\xa2\x05\xab\x53\x64\x10\x4d\x30\x1b\x93\x81\x33\xb2\xae\xa3\x2d\xe9\x76\x2e\xa0\x99\x4b\xdb\x4a\xf5\xe5\x74\x6b\x14\x26\x5b\xd6\xc6\xbc\x9a\x19\x10\xf5\x21\x90\x0a\x8f\x09\x32\x23\x6a\x65\x96\x2e\x44\x8c\x59\xb0\x61\xd0\x13\x6c\xab\xdd\x62\x14\x7d\x9d\xf0\x0e\xa1\x4f\x57\x78\x48\x92\xd7\x89\x9c\x80\xae\xad\x71\x1e\xbc\x75\x26\x1b\x80\xa0\x17\xb0\xe7\x97\x58\x86\xb5\xde\x8b\xb4\x2a\x37\xa0\x69\x9e\x70\xe4\xec\x49\xdb\x64\xa2\xae\x04\xca\x3a\x53\xad\x2b\x8c\xe2\x5f\x7b\x5e\x01\x91\x2a\x03\x9b\x7f\xfd\x95\x6d\xca\xeb\x0d\xc4\xab\x63\x52\x33\x8e\x8d\x0b\x99\x2c\x9d\xca\xda\x20\x03\x2d\x6b\x16\xf6\x46\x88\x71\x46\x10\x95\xf9\xcb\xaa\x98\x0e\x95\x41\xf4\x68\x11\xdf\x18\x5f\xb2\xe2\x63\x59\x4d\xa9\x5d\x5b\x5a\x72\xf0\x84\xcc\x36\xe0\xf2\xbb\x19\xd1\x8a\x2a\x16\x73\x80\xf8\x34\x7c\xb8\x28\xd3\x2d\x1d\xe7\xd6\x05\xee\x07\x87\xe0\xea\x45\xea\x2a\x8e\x40\x8c\x2c\x0d\x0e\x19\x1c\x54\xfb\x92\xfd\xc8\xc2\xd4\xf4\x59\x66\xd9\x80\x8d\x48\x25\x9a\xe2\x19\xf8\xf4\x18\x57\xf9\x57\x06\x76\x49\x65\x4b\x78\xe2\x04\x71\x69\x4a\x83\x2d\xa7\x00\x17\xe3\x4d\x42\x35\xda\x97\x7f\x68\x6f\x58\x72\x97\x7f\xbe\xaa\x45\x70\x4d\x07\x0c\x3c\xa6\xcf\x84\xb9\x13\x75\xe2\x4e\xa4\x26\x89\x9b\x72\x32\x3f\xc5\x10\xe4\x4c\x62\xdf\xef\xd2\xcc\x0f\x8d\x39\xe8\x10\xac\xa1\xed\x49\xf6\x50\x19\xc4\x63\x20\xda\x0a\xd8\xfa\x2e\x2c\xdd\x3f\x23\x16\x35\xd8\xe4\xa1\x63\x89\xfe\xc0\xb8\xfa\x83\x87\xab\xec\x4c\x27\xf0\xa9\x33\x80\x9d\x2c\xd4\xc1\x01\x96\x61\xb7\x2d\xc2\x1e\xbe\xd7\x52\xca\x6f\x1a\x99\x90\x87\xdd\xef\x54\x16\xee\x2e\xe6\xe0\xd5\x15\x12\x0b\xf1\x02\xa8\x7c\x29\x95\xcd\xad\xa6\x56\x61\x7e\xd2\x0b\x66\x56\xb9\x2c\x40\x20\x5b\x8b\x56\x81\x01\x0b\x78\x04\x9b\xec\xb6\x69\xeb\xb8\xad\x25\x10\xcc\xd5\x56\x91\x75\xb2\x4c\xeb\xb4\x02\x51\x0c\x9c\xb3\x45\x38\x6a\x30\x86\xcf\xfa\xec\x23\x17\x56\x00\x90\xb6\xca\xc1\x10\x47\x4f\xa7\x84\xc5\x08\xa7\x6a\x62\xb0\x7e\xad\x57\x63\x6e\x77\x83\x96\x73\x60\xdb\x64\x40\x1e\x54\x46\x58\xc4\xae\xde\xc6\x33\x77\xa3\xe8\x33\xaf\x11\xa8\xa3\x00\xd5\xb3\xa0\xac\x71\x9d\xa2\x4b\xa4\xd6\xee\xea\x68\x51\x55\xd9\x76\xa1\xae\x6d\xf3\x39\x2b\x54\xea\x85\x0a\x10\x10\x5e\xc5\x47\x8b\xd4\xe9\x39\x5b\xa7\xd3\x2e\xf5\x7e\x5e\xf4\x81\x9c\x58\x7d\xc6\x18\xc4\xec\x0c\xb4\x9c\xf5\x83\xe3\xb5\x05\xcc\xe2\x51\x2a\x20\x58\xb8\xaa\xcd\xef\xa2\x09\x4d\x72\xcf\xc9\xf7\x27\xd9\x30\x75\x93\x09\x79\x26\x89\x41\xcc\x8f\x04\xe4\x05\x18\x9b\xe5\x0f\xe8\x7f\x9b\x6a\xaf\xe8\x4f\x7d\xf6\x09\xd8\x70\x92\xcc\x01\xcf\x33\x6b\x19\xab\x52\x33\x4f\x95\x03\x50\x36\x11\x09\x15\x07\x62\xd6\x7a\x82\x9f\x49\x9f\xb9\x66\xfe\x37\x7a\x42\x7f\x44\x7f\xaa\x53\x2e\x5d\x78\xff\x8e\xad\x2c\x1f\xbd\xe0\x79\xef\x96\xb3\x8c\xd2\xf2\x1b\x67\x84\x29\x98\x40\x2b\x70\x3d\x32\x58\x6e\xca\x9e\x79\xb4\x90\x43\xe2\x9f\x5a\x2c\x08\x53\x03\xc6\x63\x32\x20\x15\x0e\xd5\x06\x26\xa1\x85\x80\x6b\x1e\x93\xa5\xee\xd0\x8c\x99\x7e\x01\xc3\x91\x4c\x87\xd9\x72\x00\xbc\x40\x96\x4b\x9e\xd9\x3e\x8a\x3b\xad\x7a\xe4\x19\xf6\xed\x3a\xe3\x5e\xd7\x95\x9b\x8b\x8d\x38\x07\xdf\xad\x76\x27\x26\x58\x39\x69\xb2\x7c\x1c\xcb\x6e\x08\xfd\xb2\x9e\xb9\xbd\xac\x3c\x54\x5f\xa8\xbc\x22\xe8\x98\x6a\xed\xa1\xbd\xbb\x18\x38\xe1\x3a\xbe\x14\x03\x71\xda\xca\x99\x92\x93\xc2\xc1\xbc\x9c\x66\xfb\x2f\x77\x81\x0e\x79\x5a\x56\x1f\x2c\x01\xa8\xf4\x83\x0d\xac\xa6\x30\xd7\x7c\x78\x6c\xf2\x0f\xc9\x84\x9a\x8c\xff\xce\xc5\x15\xd2\xa7\x83\x4f\x0d\x2c\x16\x10\x2d\x55\x13\x2e\xe8\x3f\x9b\xf6\x36\x16\x8a\x8e\x70\xa4\x06\x5b\xa9\x22\x53\xbf\x99\x3a\xb6\x9f\x5e\x7d\xa5\xba\x05\x84\x03\xfc\x4c\xbc\x00\x44\x08\x2f\xb4\xad\xc8\xcc\x91\x5b\xe6\xb7\x5c\x20\xc6\x5f\x72\x58\x2c\xf7\x3d\x20\x41\x7b\x89\x1b\x58\xab\x5c\x33\x88\x20\x96\x14\xf6\x27\x80\x54\xbd\x57\x26\x29\x13\x00\xce\x0d\xbc\x94\xde\x9e\x13\xcc\xe2\xc4\x5d\x21\x88\x9b\x88\x9e\xf9\x0b\x9e\xaf\xe4\x53\xf7\xe3\x2a\xf3\x2c\x3d\xb3\xfc\x45\x25\x08\x78\x80\x91\xd4\x54\x41\xd5\xac\x52\x84\xd1\x30\x05\x60\x5d\x4d\x93\x51\x9a\x98\x6a\x1c\x11\x17\xf1\x59\x9f\xd9\x80\x6a\xaf\x37\x2d\x02\x3a\xad\x09\xab\xac\x41\x6a\xf1\x47\x6d\xbd\x0f\x63\x96\x6b\x94\xeb\xff\x9e\x92\x74\x4b\x69\x95\xaf\x1a\x88\xfe\x80\xc7\x32\x8f\x2c\x37\xb4\xd1\x57\x5e\x4e\xdf\xdf\xf5\x4c\xa5\x97\x88\xec\xcc\xc5\x19\xae\x97\xb1\xb3\x98\x22\xb6\x2b\x99\xe9\xee\x4c\x3d\x83\x2d\xd8\xe9\xf6\x11\xa4\xb3\x28\x7a\x56\x70\x75\xbb\xfd\x9e\xb3\xb4\x5c\xb4\x1f\xe3\x97\x2b\x0c\x51\x12\xea\x76\x68\x07\x5b\xe3\xee\x58\xd4\x55\x1a\x43\xdd\x73\xab\x58\x76\x5b\x54\x64\xc8\x2b\x0e\xb9\x34\x2f\x82\x02\xec\xdf\x3c\x7f\x39\xab\xd7\xec\x6e\x61\x9f\xc7\x68\xe1\xcf\x68\x0b\x10\xac\xe3\x48\x38\xaf\xbe\x3a\x57\xb0\xeb\xd8\x86\x8a\x5d\x2f\x06\x63\xd4\x9d\x08\xc3\x92\x0e\xf5\x48\x2c\x62\xfe\x2c\x3d\x0c\x59\x79\x97\xd7\xb1\x0a\x67\x12\xe3\xfe\x4e\x46\xb6\x1d\x07\x11\x8e\x26\xb5\x93\x1a\x72\x9e\x10\xcc\xea\x94\x82\xca\xc7\xe5\x23\x62\x10\x6b\x81\x75\x27\x09\xc0\x36\x3b\x12\xd8\x52\x9f\xb9\x56\xc4\x62\x80\xdb\x37\x3c\xdc\x04\x7c\xba\x81\x2a\xc2\x9c\x41\x8d\xb2\x71\x42\xca\xb4\xb2\x75\x11\x4e\x6c\x27\x49\x94\x26\x5e\xad\xcf\x19\x11\x7a\xd4\x9a\xc4\xcf\x84\x69\x55\xcc\x8e\xc3\x79\xa8\x5e\x5c\x96\x7b\x56\xe1\xeb\x24\xeb\xda\x39\x49\x21\x95\x34\xee\x33\x38\xb8\xbc\x78\x58\xf5\x5e\x95\x5a\x7b\xf3\xcd\x7d\x6b\x9f\x4e\x4f\x88\x58\xf9\x78\xde\x17\x6d\xff\x2b\x9f\x49\xd3\xf7\x00\x02\x47\x36\xf6\x97\x7a\x3e\xb5\x1c\x7f\xc3\x2c\xac\xc3\x58\xdb\x93\x67\x00\x42\x71\x8a\xb1\xc4\x5e\x24\x4e\x1d\xc6\xd7\x4e\xef\x92\xbc\xa6\x89\xbb\x0d\x5a\x0e\xa5\x31\xfe\xa0\x65\x34\x01\x18\x7d\x9b\xce\xed\x95\x95\xea\x8b\x7e\xf8\x2c\x69\x2b\x8f\x5d\xb5\x55\x7b\x95\xc0\x00\x39\x01\x40\x01\x5f\x8c\xe1\x82\x4a\x23\xdc\xbb\xda\x25\xd3\x99\x9a\xdb\x52\x77\x70\x2f\x16\xe4\x7d\x80\xf1\xab\xf2\xf9\x97\xef\xc8\xb8\xe0\xf5\xaf\xea\x0c\x3a\xb2\xd6\x9a\xca\x26\x1d\xa1\x7d\x58\x98\x12\x0c\x47\x5d\x88\x8f\xa9\x1a\x3c\xc0\x49\xad\x89\x70\x0b\x4c\x13\x94\xa3\x1c\x7a\xc3\x22\xfa\x2a\x91\x12\xcd\xbb\x70\x92\x94\xe6\x85\x21\xc7\x5d\x65\x95\x03\x87\x79\x79\xe3\xf6\x11\x08\x09\x1e\x92\x95\x62\x0e\xae\xcc\x07\x8d\xbb\x08\x5e\x81\x70\xfd\xd9\x2c\x99\xb7\x4b\x13\xf0\xb5\xdf\x4a\xe4\xbb\x65\x03\xf3\xf1\xf2\x1a\xef\xa6\x22\xe6\xdc\x7a\x43\x94\x24\x4a\x05\x55\xf3\x81\xb5\xa5\xb6\x67\x5a\xf7\xf6\xcb\x0b\xfb\x61\x1b\x43\xc5\x39\x72\xfd\x39\xdb\x2d\xdc\x53\x82\x9a\xb2\x48\x76\x0a\x6d\x96\x1b\xa7\x6a\x52\x89\x88\xd5\x44\x58\x07\xc9\xd5\x6e\xa8\xba\x8b\x75\x87\x67\xcb\xad\x0c\xf8\xc8\x81\x5d\xb5\x27\x6c\xb9\x0e\xcd\x0a\x46\x68\x87\xa9\x3d\x13\x94\x0b\x5b\xee\xa5\x4d\xa4\xe2\x14\x7f\x1d\xcc\xb0\xc0\x49\x42\x12\x2a\xa7\xeb\x9b\xcc\xff\xf2\xe7\xc6\xd1\x5e\x98\xb2\x44\x66\xb0\x53\xfc\x95\x4e\xd3\x29\x62\xe9\x74\x68\xa5\x5c\x2c\x9f\x7c\x44\x53\x87\xbf\x60\x80\xb9\xdc\x00\x0b\x28\x10\xc2\xc3\xa8\xed\x33\x0f\xad\xdc\x9a\x2a\x70\x34\xa1\xe4\x19\xb0\x54\x05\x23\x52\x9e\xa1\x6b\xae\xc8\x39\xfa\x8c\x67\x0f\x20\xa8\x99\x3a\xa1\x63\xe3\x74\xc0\x12\x69\xa9\x35\x65\x54\x9d\xf4\x99\x85\x38\x77\x54\xf9\x10\x71\x66\x60\x6e\x23\x20\x6c\xd6\x04\x58\xd1\x1d\xde\xab\x72\xd9\xaa\x54\xd6\x10\x5b\xe0\x97\x81\x17\x92\x3c\x30\x29\x1f\x2b\xec\xe3\x3b\xfc\x62\x82\xf0\x2f\xb1\xc2\xa6\x04\x70\x93\xe4\x6e\xa3\xdc\x6c\x59\x28\x83\xee\xec\xa2\x81\xb8\x85\x18\xc9\x0a\xda\x99\x90\xe3\xef\xe8\x19\x39\x43\x3f\x26\x7c\x28\x4f\x72\x53\x95\x79\x28\x89\x92\x27\xc6\xef\x07\xff\x36\xf9\x7d\xdf\x3b\xea\xe7\x7c\x1f\x6a\x39\x8e\xe8\x57\x83\x6c\x22\xff\x72\xfe\xe1\xc3\x74\x7e\x3a\x4c\xa3\x27\xa2\xf4\x5f\x20\x53\x54\x52\xc8\xc1\x82\xe1\x2a\x90\xb1\x65\xd4\x59\x04\x28\x6b\xb5\x23\x6d\xae\x94\x24\x00\x86\xaf\xaf\xf4\xac\x5a\xae\xc3\xb3\xe2\xac\xba\x14\xa8\x9d\xb2\x48\xeb\x8e\x57\x01\x45\x7b\x3f\xda\x8a\xa9\x06\xec\x83\x77\x8f\x12\x3c\x2e\xa9\x2c\x2b\x28\x29\x37\x53\x6a\x77\x91\x9e\x3b\x04\xd1\xe8\x53\x56\x0c\x1d\x7c\xef\xbc\xbc\xe0\xad\xb5\x5e\xac\xb3\x3e\xeb\x48\xf4\x42\x4c\x91\x5f\x48\x34\x05\xa7\x4f\x4a\xe5\x24\x4b\x33\x05\x33\x34\x34\x6a\x30\x8e\x0d\x14\x86\x55\x1c\x9d\x66\xe5\xdc\x62\x56\x03\xc5\x89\x24\x27\xba\x61\x30\xa9\xba\xe8\x50\xf4\x22\xf0\x6c\x46\x44\x9f\x59\xbc\x5a\x40\x65\xe7\xdc\x46\xfe\xd4\xa5\x08\x04\x8d\x72\xbf\x1a\xa5\x47\x7b\x52\xcc\x42\x5d\x76\xbe\x21\x69\xb5\x89\xc2\x55\x79\x98\x8e\x7c\x5a\x16\x6d\x1b\xbe\xff\xfa\x66\xe3\x96\x63\x5e\xa6\x9d\x77\x4a\xb9\x17\x50\x43\x7c\x0a\x0a\xa4\xcc\x4b\xa5\x3a\x5b\x5f\xa6\xbe\x17\xc4\x1c\x80\x3b\x87\x8f\x63\x4e\xa4\x67\xc4\x47\x99\x2d\x2e\xa1\x23\xa2\xa5\x8f\x3e\xd3\xdb\xd8\x77\x38\x18\xd4\x74\x07\xa2\xae\x3b\x8d\x04\x97\xd2\xa6\x53\x98\x76\x9a\x93\xe2\x36\x28\xd0\x68\xa0\xdf\x7b\x37\xd7\x83\xc5\x52\x8d\xde\x33\x57\xb4\xd1\x3e\xac\x44\x4e\xa8\x6d\x6a\x69\x89\xc6\x9c\x16\x2b\x14\x69\xfc\x70\x71\xd5\xcb\x2a\x93\x95\xba\x5e\xac\xd2\xe8\xc3\xe5\xd7\xd7\x69\x5c\x9c\xb1\x57\xb1\xb1\xd4\x44\x43\xcd\xc6\xe5\x8b\x55\x0c\xe2\xde\x04\x0b\xb1\xb4\xf4\x4b\xf9\x43\x71\xcf\x2c\xcb\x35\xd8\xd2\x32\xd5\x5c\x2b\x11\x08\x8c\xbb\x0e\x5c\x00\xc1\x4b\xbf\x25\x15\x9e\xce\xfc\x3c\x5a\x07\x06\x6b\xa7\x69\x8e\x5a\xdd\x25\xb8\x57\x90\xfa\x08\x9b\x20\xa1\xf2\xe0\x16\x96\x62\x35\x8f\xd7\x83\xc5\xbe\xdf\x46\x6c\xfa\xfe\x12\xd3\x93\x79\x1e\x0c\x29\xad\xec\xe6\xea\xaa\xd7\xd8\xfd\x87\x24\xc3\xf9\xaf\x5d\xd0\x4d\x33\x4f\x33\x3c\x30\x41\xb0\xb4\xee\x6f\x48\xd0\x2c\x25\x6f\xad\x60\x1e\xce\xc6\x6c\x52\xbc\x4f\xb3\xca\x1a\xde\x55\x63\x8b\xc5\x45\xee\x20\x52\x21\xc8\x33\x11\xb0\x77\x6c\x28\x15\x2b\x1e\x55\x9c\x08\x82\xe3\xb9\x47\x91\x2c\x8e\xc3\xf4\x0c\xe6\x31\x49\xa7\x5a\x81\x07\xd5\x84\xf1\x53\x3e\x73\x3a\x4b\xe1\x2d\x28\x8b\x42\x47\xfa\xc6\xf2\xa2\x40\xf4\x17\xec\x94\x7c\xa5\x52\x69\xb9\xa2\x22\x04\xd6\x35\x02\x12\x0f\x14\x4b\x9b\x10\x7b\xc3\xf5\xdf\x75\x7e\xbc\xb9\x7b\xe8\x5e\xf6\xdf\xe5\x29\x17\x2e\xa7\x30\x83\xf9\x72\x55\x1b\x38\xeb\xb3\x2c\x4e\x39\x43\xb5\x86\xb5\x44\x38\x8e\xf3\xf8\x68\xab\x44\x1a\x99\xad\x91\x23\x7b\xa7\x62\x69\x84\x72\x43\x33\x8f\x90\x58\x76\xa8\x27\xab\xc1\x75\x56\x38\x39\x26\x3d\xae\x21\x8f\x69\x4b\x97\x8d\x0f\xc8\xab\x8c\xae\x4d\x94\x43\x8c\x64\xe4\xc5\xe9\x4a\x70\x3b\x7f\xc0\xe6\x12\x5e\x8d\xdb\xb9\x05\x59\x63\x51\x3f\xd2\xaf\x24\xbe\xab\x91\xaa\xb6\x92\xa6\xd4\x2a\xc0\xb2\x72\x15\x52\x46\x57\xd1\xf8\xb3\xa9\x3c\xea\xef\xda\xb3\xa5\x9b\x1c\x67\x2f\xc7\xcc\x05\xc0\x5c\x85\x30\x8a\x88\x50\x98\x32\x34\x82\x83\xcd\xa2\x39\x02\x14\x16\x02\x3e\xec\x3f\xa3\x29\x65\x00\x07\xd1\x44\xda\xc7\xe2\x3c\x56\x10\x5a\x3f\xf7\xae\x1f\x1f\x0a\xa2\xea\x4f\x37\x8f\xc5\x4a\xfd\x9d\x5f\x1b\x65\xd5\x52\x0b\x4d\xc1\x42\xde\x14\xf3\xd4\x52\x0b\x1d\x9c\x51\xa6\x72\xa2\xc9\x5c\x91\xc7\xbb\xab\x8d\xe4\xbb\x6a\x67\x59\x2d\xf0\xbb\x2f\x5d\x55\xc3\x5c\xb4\xf9\x34\x26\xd1\x32\x68\xda\xf6\xfb\xc8\x44\x41\x69\x3a\x58\x6b\xa2\x85\xad\xc3\x12\xcd\xb0\xb0\x7e\xa8\xd8\x04\x40\x15\xcb\xbd\x19\xcd\xab\x09\x16\xe4\x13\x51\xbf\xe8\xab\x8f\xb3\x6d\x24\x97\x58\x51\x16\xfc\xa3\x64\xf0\x6c\x1a\x5e\xe1\xa4\xd9\xa1\x34\xe4\x2f\x39\x61\x19\x7a\x40\xb6\x07\x1f\x4c\xe3\xcc\x94\xfd\xef\xe8\xe6\x80\x22\x2e\x4c\x53\xab\xa4\x9c\xe9\x1d\x69\x30\x72\x1d\xb0\xae\xd7\x1c\x1f\x99\x8f\x5b\xc2\x0c\x7a\xc9\x02\xba\xad\x9c\x94\xa8\x73\xdb\xab\xa0\xf5\x55\xd9\x85\xf4\xb6\x6a\x14\x25\x99\x37\x6b\xdb\xc8\x57\x5e\xce\xe9\x41\x40\x5d\xd9\x99\x6e\x86\x6d\x65\x9c\xfe\xb7\xc5\x48\x82\x43\x80\x60\xae\x52\x19\x0a\xb9\xe4\x4b\xd0\x96\x57\x4b\xaf\xcc\xc9\xb0\x22\x92\x95\x3f\x20\x9b\x5d\xe3\xa3\x37\x2d\x86\x6e\x9f\xf8\x68\x4e\xdc\x54\x41\xb6\xb1\x05\x5b\x43\xb8\xca\x67\xd3\x06\xe2\xea\x17\xb3\xa3\x33\x04\x14\xc0\x74\x71\x55\x36\x5d\xc8\xb5\x05\x24\xf0\xa7\xeb\xef\xb6\xd5\x50\xb1\xf2\xf1\x39\xf3\xb7\x05\x18\xc7\x33\x6c\xed\x0e\xa0\x44\xb9\xf2\x17\x55\xd5\x12\xcf\xfa\xcc\x0b\x58\x91\x46\xed\xd1\x67\xc4\x55\x9c\x81\x32\xc6\x0c\xd0\xca\x21\xf7\x29\x13\x7e\x0a\x2b\x50\xc6\x3d\x50\x93\x62\xcd\x98\x85\x7e\xec\xe9\x94\x13\xec\xb2\x4b\x9d\x05\xc5\xc6\x01\xfa\xf6\x25\x68\xcf\xab\x12\x61\x3b\x06\x73\x34\x18\x2d\xb0\x57\x83\xd0\x43\x24\x88\x39\x91\xec\xbd\xca\xf2\x77\x69\x32\x77\x21\xd5\x25\xf7\x80\x96\xea\x30\xb5\x2d\x37\x1f\xf0\x2d\x40\x6e\xad\xaa\x38\x78\xc7\x6a\xa9\x99\xca\xf9\x78\x61\x27\xf8\xb1\x48\xd0\x69\x9d\x55\xfd\xeb\x8c\x44\xeb\xe0\x02\xdd\x62\x81\xa7\x44\x11\xd1\x14\x8e\x54\xac\x10\x0e\x22\x8e\x5b\x41\xdb\xaf\x59\x45\x53\x3e\xa5\x5c\x67\x27\xd3\x6e\xaf\x96\xe1\xfc\x64\xb3\x58\x09\xd2\x4c\x4f\xe3\x17\x6b\xf9\x5f\x71\x16\xb6\x9f\x7c\x1a\x36\xda\xca\x83\x75\xda\x74\x4e\xfb\xc1\xb7\x79\x58\x40\x8a\x29\x84\x0b\x1d\x08\xb0\xcd\xf2\x51\xd6\x21\xda\x2c\xe3\xa5\x5b\xe1\xdd\x2e\xc3\xc1\x65\x26\x97\x0e\x55\x21\x77\x02\x76\x09\xa8\x54\x06\xdc\xa5\x1a\x95\x06\x84\x96\xaa\x08\x49\xcf\xed\x67\x31\x0b\x73\x83\xae\x95\xac\xca\x15\xc3\x4a\xe4\x5a\xc2\xe3\xb6\x85\xd8\x11\x24\x9a\x6d\x4b\x34\xcb\xb6\x72\x21\xba\x56\xef\x4e\x22\x4a\xe0\x41\xb6\x92\xb7\x45\x7d\x28\x4e\x10\x52\xba\xec\x15\x69\xcb\x01\xc3\xd5\x4f\x59\xf6\xaf\x22\x07\x77\x9b\xda\xdf\xaa\x55\xb9\xaa\x67\x9e\x0b\x0a\x3c\x50\x89\x2f\x0d\xd8\xb8\x1a\x18\xad\x09\x83\x34\x56\xfe\xde\xb5\x71\x60\x41\xce\xf8\x9c\xa7\xe8\x85\xca\x09\x52\xbc\xcf\x20\x4e\x30\xf3\x06\x28\x8e\xcc\x8b\x27\xf0\x16\x60\x5b\xc8\x74\x38\xa5\x0a\x61\x6f\x86\x05\x93\xe4\x89\x3d\xcf\xfa\x03\x98\x71\x25\x7c\x41\x15\xee\xd2\x92\x43\xb3\x86\x7d\x2d\x6f\x64\x53\x84\x02\x2f\xa6\x79\xb7\x18\x05\x9e\xc6\xe3\x6b\x98\x95\x67\x2e\x80\x14\xa0\x6a\x6b\x83\x45\x82\x05\xb8\x5e\x2a\x55\xe9\x6e\xb1\x86\x9e\x25\x00\x05\xf9\x42\xb4\x42\x28\xc8\x5f\xdf\x06\x44\x41\x5d\xed\xb9\xa6\x94\x55\xf7\x49\x8d\xfd\xdb\xa5\x42\x2b\xee\x02\xe7\x7d\x49\xe9\xb6\x56\x52\x3a\x34\xa8\xba\x3c\x21\x60\xfd\xf0\xf2\xba\xe8\x65\x38\xe3\x11\x67\x31\x5d\x21\x5e\x18\xea\x8b\x0d\xd3\x51\x87\xcd\x97\x23\x1f\x4d\xfd\x40\x7d\x6b\x2f\xf1\x24\x91\x6a\xcc\xcd\xa5\x2a\x6b\xde\xbe\xbf\xd3\xbd\x94\xd0\x22\x18\x11\x29\xdf\x4e\x8c\x2b\xc8\xfb\x89\x54\x32\xaf\xc8\x45\xed\xb3\x6a\x29\xa9\x99\x6f\x6f\x9a\x46\xb2\x55\xd8\x3d\x8f\x47\xb8\x59\x58\xab\xdb\x97\x2c\x10\xcf\x28\xf4\xc4\x82\x6c\x94\xc4\xe0\xdc\x0d\x59\x17\x40\xa5\x85\xa3\x75\x72\xcd\x2b\x38\x47\xf5\xd0\x17\x92\x3c\x96\x9e\x5d\x2b\x18\x6c\x51\xfd\x5c\xb8\x41\x5a\xe7\xc4\x64\x72\xbc\xbd\x31\x6c\x50\x77\x9c\xd9\x1a\x4a\xee\xe4\x75\xca\x1b\x03\x9c\xed\xd6\x40\x78\xcb\xc8\x14\xba\xf1\x13\x70\x41\xdb\xb1\x63\x13\x8e\x93\x41\xc3\x97\xd6\xa4\x30\x63\x13\x52\xb9\x93\x59\xaf\x5a\x93\xda\xf3\x89\x0a\x1b\x93\x4c\x7d\xeb\x06\x14\xa3\xb6\xa1\x9c\xa5\xdb\x22\x13\x40\x53\x16\x13\xc1\x08\x56\x93\xfd\x65\x82\x5c\x6c\x6a\x42\xf7\xc6\xb7\xdb\xac\x10\x3b\x52\x5c\x4c\x0e\xd9\x64\xb8\xc5\xe2\xfc\x4b\xc7\xa9\x5f\x6f\x63\xcd\xb2\x01\x12\x59\x79\xea\x05\xf5\xb6\xc2\xb4\xe9\xe1\x0f\xad\xb2\x4b\x37\x4a\x16\xa9\x56\x39\x77\x93\x36\x53\x61\x9b\x5a\x48\x98\xd1\xa7\xdd\x2f\xea\xbd\x84\x24\x6f\x22\x3f\x65\xf7\x29\x13\x4d\xe5\xc3\x53\x2f\x8b\x02\x6a\xb8\x2b\x4c\x99\xe5\x5e\x4d\x89\x13\x5a\xee\x9d\xe2\xaa\x5c\x89\x83\xcf\xc2\x79\xf3\x49\x38\x21\x25\x23\xa4\x64\x54\xac\x51\x48\xc9\x40\xe8\xd0\x52\x32\x96\xa9\xa0\x4d\x46\xda\xcc\x6f\x08\x65\x5e\x0b\xb5\x95\xcc\xfa\x2e\xd1\x23\xd7\x4f\x3b\x70\x76\x4e\x3f\x66\xcb\xfe\x62\x7f\xa8\x0c\xdb\x5a\xf8\xac\x3c\x5b\xdf\xe6\xca\xe6\x65\xd7\x05\x16\x71\x62\x21\x08\x6d\x50\x75\xd1\x46\xd6\x64\xce\xed\xb3\x9f\xf8\x0b\x79\x26\xe2\x04\x61\x85\xa6\x1c\x70\xad\xf2\x18\x1e\x38\x08\x05\x2c\x7d\x13\xab\x81\xd1\x35\x9e\x92\xd8\x94\xda\xf4\x42\x2f\xad\x51\xd9\xba\x83\xab\x90\x76\x01\x34\xd6\x2c\x83\x8b\xed\xe8\x33\x13\x0e\x69\x42\xf0\x40\x56\xa0\x6e\x62\xb0\x61\xfe\x90\x39\xab\xff\x70\x86\x1e\xf4\xfd\x44\x65\x71\xbc\x1e\xf0\x5e\xdd\xd8\xfa\x6c\x2c\x78\x3a\xcb\xec\x7c\x7c\x68\x6a\x2e\x9b\x08\xad\x45\x67\x35\x0c\xc6\x79\xaa\x23\x1c\x6b\x5d\xbc\x79\xe3\xbc\x4a\xa4\xec\x5a\x30\x4b\xfe\x06\xd2\xc7\x30\x0b\xff\xb3\xe1\xf8\xc6\xc7\xec\x81\xcb\x34\x55\x00\xd8\x91\x03\xfc\x92\x48\xb0\x0a\x65\x9e\x81\x42\xae\x7b\x11\x4f\xa1\x72\x9c\x4d\x76\xdb\xcc\xb7\xe2\xfc\x0f\xd5\x50\x0d\x79\xe7\x36\x2e\xcd\x24\xd2\xda\x7b\x62\x67\x16\xdd\xd6\x11\xbe\x75\xfc\xe2\x36\x15\x33\x0e\x92\x58\x32\x77\xd0\x12\x16\xe4\x6f\xc6\x67\xa9\x89\xbd\xa3\x7e\x28\x56\xe5\xce\xa6\x52\x7d\xc6\x2a\x9a\x68\xce\x9d\xa3\xb2\x6d\x29\x26\x31\xe7\xca\xbb\xb5\xf2\x56\xcc\xe0\xc2\xef\xbd\xc6\xed\xd1\xb4\x7b\xbc\x18\xc3\x2c\x90\x33\x93\x24\xa6\xba\x3f\xe3\x1a\xb4\x95\xd4\x3d\xbb\xa8\xfb\xc4\x3e\xd1\x13\x5d\xb6\x8b\x96\x8d\xbf\xdd\xde\x2a\x96\x7a\xdb\x7a\xb4\xe3\x06\x30\x37\x97\x16\x54\x2c\x7f\xd1\x96\x06\xae\x09\x51\x10\x74\xbd\x4c\x25\x5b\x9e\xe1\x59\x8b\x23\x99\xc5\x75\x8a\x67\x5a\x89\x50\x5c\xdf\x92\x62\x6c\xe4\x58\x13\xcb\x8b\x30\x4a\x05\x75\x67\xbf\x94\xb7\x5e\xbf\x3b\xc0\x42\xf9\xc1\x2f\xe5\x15\x61\xaf\xca\xa1\x09\x4a\xc0\x91\x4a\x71\x16\x3c\x09\x7b\xc2\x55\xdf\x37\x39\xfa\xce\xf9\x2f\x9c\x78\x57\xb1\xa6\x4b\x37\xf6\x06\xab\x8c\xab\x30\x18\x5b\x9d\x34\xca\xc6\x1e\x80\x63\xb5\x95\xb8\x4d\xd1\x8d\xca\x2f\xdb\x15\x0e\xa9\xfc\xd4\xc9\x3e\xeb\x7c\xdb\x00\x30\xd5\x2a\x64\xfd\x10\x2b\x26\x78\x99\x00\x36\x54\xd8\xca\x6e\x3e\xb0\xa7\xed\x08\x60\x8f\x29\x84\x32\x60\x27\xcb\x7d\xe7\x97\x4d\xd0\x43\xfb\xfe\x3f\xf3\x87\xa0\xbf\xdb\xe2\x2c\x15\x2f\xf6\x19\x17\xf6\xd5\x93\xec\x3d\xfd\x5a\x8e\x4f\xac\xa5\xc4\xc5\x2f\x73\xf4\x51\x51\xc4\x29\x04\xb4\x16\x8b\x33\x67\xe0\xa9\xb3\xb2\x16\x7a\xf0\x4f\xe9\x90\x08\x46\xf4\x9c\x1c\xae\x43\xc6\x83\xa7\x98\xe1\x31\x80\x61\x9f\x40\xd0\x21\x48\xd9\xb9\x06\x65\x4e\xa2\xa9\x0f\x0a\x4c\x56\xf3\x78\x9b\xca\x9c\xd7\xc9\x86\x3e\x8d\x04\x6e\xb1\x78\xf3\xc8\x95\xea\x43\x7b\x67\xfb\x5f\x4f\xd1\x78\xe8\xdc\xff\x3c\xb8\xeb\xde\xdf\x3c\xde\x5d\x14\xb4\x8d\x8b\xab\xc7\xfb\x87\xee\x5d\xe5\xb3\x3c\x0d\xf8\xef\x8f\xdd\xc7\x9a\x47\xae\x81\xab\xce\x8f\xdd\x42\xd1\xf9\xbf\x3f\x76\xae\x7a\x0f\xbf\x0e\x6e\x3e\x0e\xee\xbb\x77\xbf\xf4\x2e\xba\x83\xfb\xdb\xee\x45\xef\x63\xef\xa2\xa3\xbf\xf4\xdf\xbd\xbd\x7a\xfc\xd4\xbb\x1e\xb8\x88\x6e\xff\xd1\x97\x9b\xbb\x9f\x3f\x5e\xdd\x7c\x19\x78\x5d\xde\x5c\x7f\xec\x7d\xaa\x9a\x45\xe7\xfe\xbe\xf7\xe9\xfa\x73\xf7\xba\xb9\xb8\x7d\x35\x35\x6a\xeb\x66\x7b\xf7\xaf\x67\xeb\xf2\xa4\xbb\xe1\xdc\x9e\x09\xfa\x4f\x70\xb9\xdc\x9a\x2d\x7a\x7a\xe2\xfe\x32\xa5\xe8\x4f\x35\xe7\x76\xee\xbc\x9c\xe9\xf5\x59\xe6\x13\xce\x64\x01\x85\xc7\xd2\x65\x75\x17\x46\x7b\x8e\x3a\x70\xc8\x40\xcf\x29\x74\x0a\x49\x23\xd9\x48\x5d\x14\x01\xec\xc3\x84\x4e\x29\x04\x14\xa0\x53\x54\x5e\xf0\x62\x83\x76\x4e\x30\x04\xeb\x6e\x8c\x9b\x4e\x83\x2c\x27\x8c\xc3\x4e\x39\x47\xee\x62\x21\xc6\x0a\x62\x60\x7d\xe7\x0c\x4f\x69\x54\xce\x6e\x01\x64\x5b\x94\xa3\xb8\x94\x5b\x2c\x6c\xb0\x62\xcb\x13\x82\x7e\xfe\x5b\x3e\x28\x70\xbc\x58\x83\x41\xba\x50\x81\xd2\x3e\x10\xa9\xa1\xea\xb2\xed\x59\xe8\xc9\x1d\x73\x6b\x11\x87\x73\x6b\x2b\xdd\x83\x97\x2c\x65\x1e\x92\x5b\xc1\x65\xa6\x8f\xb7\x99\x51\x69\x8f\x9f\xa3\x7b\x40\x91\x91\xb9\xc5\x41\xaf\xe2\x2c\x49\xc7\x94\x21\x3a\x9d\x25\xc0\x63\x8c\x19\x62\x48\x26\xf8\x99\x72\x57\x70\xc5\xd4\xa5\x01\x3a\x5a\x89\x10\x9d\xa2\xda\x83\x72\x8e\x3a\x71\x2c\x8b\x0c\xae\xb0\x73\x1c\x17\x3d\x2d\x0e\xdb\x07\x5f\xd3\x8c\xd5\xb2\xcd\xd2\x3e\xca\x8f\x1c\x50\x6c\xfb\x38\x39\x8b\xec\xb0\x28\x32\x6c\x20\xb5\x68\x0a\x0e\xdc\x56\x1e\xac\x25\xc3\x3c\x60\xf9\xe4\x58\xf3\x32\x39\xc6\x21\x16\x6d\xd6\xa3\x85\x2e\x6a\xdb\x69\x46\xd9\x01\x1c\xb4\xf5\xfa\xac\x05\xdc\x5e\xd2\xa5\x9b\x71\x52\x2a\x75\xd7\xba\xbf\x42\xa9\xbc\xca\xce\xb6\xea\xa4\xaa\x16\x22\xe1\x48\x0e\xb2\xfd\xbf\xc2\x3c\x6e\xe1\xd3\x9b\xec\xcb\x46\x49\x73\xe0\xd1\x6d\x55\xd7\xd5\x42\xfe\xb3\x75\x5f\x35\xee\xc3\x2d\x21\x67\xb5\x97\x22\xa1\x54\x08\x8d\xc0\x4b\x89\x29\xb3\x05\xa4\x48\xe6\x46\x73\x05\xdb\xf5\x39\xce\x4a\x2a\xe2\x21\x7f\x2e\xe8\xc4\x53\x22\x25\xae\xc1\x82\xf1\x2c\x79\x9b\x30\x86\xec\x84\xda\x0f\x5b\xee\x27\x77\x26\x1f\xf4\x57\x4d\x32\xfa\x9d\xaf\xd0\xbb\x89\x6a\x19\x36\x76\x41\xcc\xe8\xc6\xa4\x32\x6a\xfe\x72\x92\xc7\x00\x71\xe1\x85\x46\xd5\x79\xad\x5a\x5a\x03\xcb\x04\xab\xac\x0b\xe6\x7b\x1e\x57\x0f\x1d\xf2\x5a\x5f\x1b\x6c\xdc\xba\x83\x70\x91\x3e\x2b\xec\xba\x82\x9b\xd6\xaf\xd8\x1e\xf1\xe9\xd4\xc8\x05\x05\x13\xf0\x09\xc2\x26\x83\x34\x97\xa6\x64\x1a\x4d\x8c\x73\x4c\x5f\x19\x27\x7d\xf6\xe2\x2d\x48\x21\xc6\xba\xe3\xb7\x04\x40\xad\x5f\xf5\x71\xa3\xcf\x85\xc8\x75\x10\x19\x29\x84\x51\x7b\x1b\xc1\xf8\x31\xf3\x82\x67\x4b\x36\xb8\xb7\x5e\x1b\x6c\xf5\x35\x6a\x6b\x96\xe8\x5b\x57\x61\x33\x9b\x9b\x57\xd8\x72\x03\x05\xbf\xed\x10\xbc\xda\x9a\x55\x23\xd8\x42\x69\xcd\xbd\x22\xa7\x67\x99\xb0\x26\x71\x7a\x3a\xb4\xf0\x1f\x7a\xba\x8e\xda\x7f\x74\x33\xfa\xa3\x51\x84\xd3\x1a\xbc\x18\xaf\xb5\x0c\x3c\x1d\x9d\x6a\x99\xd5\xe1\x18\xd8\xf8\x11\x89\x4e\x0d\x20\xe3\x7b\x08\x62\xed\xdc\xf6\xde\x9f\xa0\xf7\x7e\x22\xdf\xfb\xa3\x31\x5d\xe4\xc7\xdf\x52\xcd\x16\xf7\x04\x5d\xae\x90\x4b\x52\x3c\xf4\xb0\x53\x4a\x7c\xc0\xee\x18\xcb\x06\x50\x1d\x17\xd0\x5f\x16\xbe\x01\x8f\x3e\x94\x8b\x34\x4e\xef\x2c\x92\xdd\xfa\xcd\x8c\x84\x4d\x65\xc5\xca\xc5\x7d\x36\x9c\x97\x3d\x63\x27\x99\x6b\xac\x35\x8f\xd8\xb8\x04\xa2\x6e\x6f\x31\xef\x7c\xcb\x11\xd6\xcd\xb7\xd1\x92\x4c\xf6\x4e\x56\xa7\x27\xe7\xa1\x75\xa1\x1d\x21\x35\xa1\x6a\x56\x05\x33\x9f\x23\x66\xe5\xa2\x2c\x93\xbe\x8e\x6d\xbb\xb5\x88\xe7\xef\x54\x51\xc4\xa6\x72\xd4\x88\xf6\x61\x97\xed\x76\x97\x6d\x23\x95\xa5\x38\xb8\xd5\xaf\xef\x0b\x23\x45\x7a\xcd\x38\x73\xaf\x56\x65\x32\x06\x5f\xa8\x93\xb9\xbc\xbc\xf5\x8a\x8e\x72\x8f\x26\xcb\x3d\xe5\xf7\x26\xda\xc2\xf8\xaa\x17\xc7\x5a\x1e\x6a\x47\xd9\xea\x52\x9c\x9a\xb4\x55\x45\xa7\xe4\xc4\x94\x33\xcb\x23\x44\xec\x79\x85\xed\x66\x02\xbb\x26\x84\x0a\xd7\x89\x05\x8f\x5c\x09\xe7\x60\x45\x5d\xa0\x6e\x8f\x6c\x10\x9e\x73\xdd\xf9\xdc\xbd\x1c\x74\xaf\x1f\x7a\x0f\xbf\x56\x00\x83\x16\x1f\x3b\x6c\x50\xef\x85\xfb\x5f\xef\x1f\xba\x9f\x07\x9f\xba\xd7\xdd\xbb\xce\xc3\x12\xdc\xd0\xa6\xce\xea\x30\x29\x53\x59\xa5\x3c\xae\x82\x4b\xe9\x8c\xcc\x15\xbd\x2f\xa2\x87\x7a\x9d\x50\x52\x83\x20\x6a\x30\x1d\x58\x4c\x04\x8a\xc9\x33\x49\xf8\x2c\x37\xea\x56\x12\xcc\x83\x16\xad\x68\xbf\x09\x5e\x14\xda\x2c\xd3\xf8\x1c\x99\xda\x88\x5e\x79\xe8\xac\x41\x10\xf9\xb0\x20\xec\xbd\x42\xe4\xeb\x2c\xa1\x11\x55\x5e\xce\x27\x17\xd6\xb9\x63\x7c\xae\x10\xd2\xbb\x64\x73\x6d\x2d\x84\x67\xeb\x16\x07\x3f\xfc\x60\xd1\xd6\x90\x9d\xa8\x0c\xea\x6e\x69\x65\xa8\x2d\x98\x15\x6a\x3c\xed\x0b\x48\x7c\x6b\x8c\x6e\x17\xc6\x89\xc5\xc4\x26\x9b\xb7\x59\x83\xd2\x57\x3d\xc8\xe5\xb7\x61\x53\x70\x51\xe1\x5c\x37\x47\x17\xb5\xdb\xa9\xaf\x1c\x23\x54\x28\x44\xbb\x05\x48\x15\x1b\xf0\xbf\x62\x94\xc7\x42\x21\x20\x66\x02\x75\x31\x12\x64\xca\x95\x56\xc0\x4c\x18\xc5\x89\x16\xaa\x28\x4e\xe8\x3f\x01\x7c\x4c\x90\x33\x2f\xec\xc4\x41\xb6\xe5\xce\x0b\x0b\x0c\x72\xd6\x67\x97\xdd\xdb\xbb\xee\x85\x66\x48\x67\xe8\x51\x02\xae\x58\x61\xea\x97\x76\x7b\x1b\x71\xcc\x0f\xff\xa0\x4c\x2a\x82\xeb\x22\xe8\x88\x10\x5c\xb4\xe7\x0f\x59\x7f\x5d\xf8\xae\x7a\x7b\xc3\xb3\x82\x65\xcc\x99\x1f\xae\x6b\xab\x88\x7b\x89\x16\x5b\x4f\x64\xbb\xc3\x2f\x05\x8a\xf8\xb8\x2a\x20\x89\x14\xa9\xbe\x43\x6a\x03\x32\x6b\xfb\xf9\x15\xfa\xbc\x85\x6f\x9b\xe6\xf9\x00\x71\x89\x52\xe5\x30\xaf\x06\x09\x36\x2b\x67\x54\x9a\x67\xad\xa8\x28\x5e\x03\x83\xa5\xb4\xf5\x87\x64\x8c\x19\x12\x29\x63\x25\xdc\x5f\xdf\xce\xb7\x18\x69\xb4\xea\x51\xd5\x34\xc3\x53\x9e\x32\x53\x8f\x57\x8f\xaa\x62\x30\x72\x46\x98\x5a\x32\x98\xd7\x42\xd8\x29\x0d\xf5\x70\x41\x76\x2a\x06\x5a\x87\xb3\x53\xe5\xcd\x82\x52\xe5\xab\x5d\xcb\x2e\x92\xb1\xe0\xd2\xd2\x87\x2a\xbb\x9f\xab\xb5\x6c\x2c\x9f\x36\xee\xee\x01\xcb\xa7\xe5\x5d\xc5\x24\x7a\x5a\xf5\xb2\x29\xa7\xb3\x26\xb6\xd2\xfb\x82\xb1\x6f\xae\x9f\xda\x9a\x3b\x50\xe0\x3f\x7a\x42\x3f\x3d\x7c\xbe\x42\x23\xaa\xe5\x5e\x7d\xad\x5c\x63\x2d\x63\x3f\x8a\xc4\x59\xa5\xad\x65\x37\x15\x49\x76\xf7\xc2\xc2\x3b\x51\xca\x93\x12\xf4\x8d\x86\xc7\xc4\x99\x9a\x85\x85\x51\x2c\xd5\xdc\x11\x98\xc5\x7c\x6a\xe6\xf1\x41\xa6\xa3\x11\xfd\x7a\xa6\xb0\xf8\xbe\x86\x1e\x26\xa6\x63\xf0\x0f\x3e\x1c\xe8\x11\x6d\x78\x11\x57\x35\x87\x6c\x01\xf2\x8c\x6c\x76\x66\x97\xe6\xdd\xff\xc3\x87\x00\x11\x00\x28\x07\xce\x37\x68\xe3\x24\xec\x2b\x6e\x27\xe5\x15\xb9\x0b\xe8\x35\x11\x17\x82\x58\x64\x01\x53\x34\x76\x86\x85\xa2\x60\xad\x75\xe8\x37\x85\xb2\x07\xf9\x12\xf9\x25\xf2\x27\x38\x87\x18\x1f\x12\x02\xee\xa5\x19\x4d\x56\x53\x7a\x2f\x0a\x9e\xd1\xd2\x09\xb4\xe1\xba\x16\x10\x15\x0c\x32\x4b\x45\xac\xee\x33\x61\x6a\x2b\xfa\x09\x34\x51\x81\x75\xd0\xce\xc7\x61\x6a\xb7\xf6\x2e\xf3\xcb\xcd\xc5\x41\xfb\x31\x55\x4a\x60\xb8\xe7\x6d\x76\x99\x75\xe8\xd7\x85\x19\x3c\xb7\xf6\x5c\xc3\xab\x8b\x74\x59\x92\x4f\x60\xa9\x9d\x97\xc6\xcf\x63\x81\x5d\xcd\x86\x35\x11\x9a\x24\x31\x56\x0c\x0f\x19\xc4\x2a\xa7\xe5\x35\x37\x7d\xea\xbd\x55\xea\x72\xe9\x92\xaf\x01\x47\x54\x68\xe6\x13\x81\x3c\xd8\x6d\x44\xef\xaf\x02\x78\x00\x03\x79\x14\x09\xc4\x9d\x37\x5a\xb1\x4c\xfd\x78\xcd\xf9\x32\xc9\x0e\xb7\x90\xd1\xcd\x60\xb4\xd0\x48\x66\x82\x44\xfa\x2a\x3b\x47\xb7\x09\xd1\x92\x57\xaa\xa5\xaf\x34\x49\x1c\x74\x5b\xb3\x74\xb8\x12\xdc\xe0\xce\xe7\xe5\xe9\x1e\x0d\x13\x73\xd0\x85\xcd\x33\xf3\x68\xb0\x7d\x98\x0a\x8f\xbe\x60\x42\x06\x43\x62\x51\x8b\x04\x0e\x3f\x37\x51\xbb\x60\x4a\xc2\x85\x8b\x8c\xfe\x53\xb3\x5f\x41\xe4\x84\xd7\x66\x86\xfa\xb3\xdd\xcd\x1c\x1c\x29\x77\x38\x09\x77\x1f\xd6\x05\xa3\xb7\x90\x6b\x4a\x77\x60\x41\xc4\x69\xe3\x8b\xcd\x63\x4f\x2c\x90\xae\xbd\x5b\xed\xd0\xe0\x96\xcc\x4d\x6d\x3e\xa8\x5d\xee\xba\xc8\x95\x99\xb9\xf1\xbd\x66\x9f\xe7\x06\xe4\x3c\x8f\x82\x2a\x99\x97\x13\x44\xfa\xae\xad\x5b\x62\x3d\xcf\x41\x2a\x56\xc2\xf1\xc8\xe1\xe8\x57\xe1\xdc\x36\x83\x27\x1f\x96\x26\x42\x35\xbb\xb4\x55\x42\x40\x8c\xb6\x81\x4e\xb2\x00\xf1\x67\xb7\x8d\x21\x63\xa5\x8a\x57\xcf\x94\x37\x75\xab\x81\x94\x9c\x8b\x32\xbb\xf2\xae\x15\x76\x60\x61\x02\x01\x34\x6e\x75\xd0\x38\x5b\x32\x26\xdb\x7b\x00\xf1\xa8\x04\xa0\x25\xe4\x0e\xb4\xb2\xe0\x60\x8d\xde\xcb\xd2\xc5\x0a\xab\xd3\x2a\x37\xac\xf0\x85\xe6\x25\x97\x1b\x7a\xe0\xf4\x64\xe6\x03\xc8\xb6\xdd\x24\x06\xa8\x30\x7f\xe3\x3d\x80\x36\x49\x8c\x0c\xe4\x83\x81\xb4\xb6\xb4\xcb\x3c\x27\x33\x2c\x08\x53\x7d\x76\xa7\x47\x61\xbe\xc8\x23\x31\x5c\x14\x90\x2b\x33\x00\xc5\x88\x47\x08\xdb\xaf\x80\xe8\x75\x61\x78\x72\x60\x5e\x02\xd5\x74\x87\xc8\x04\x3f\x9a\x77\x0c\x50\x84\x05\x4a\xd2\x53\xa5\xa3\x5c\x8d\xd7\x02\x64\x34\xa1\x80\xd3\x10\x13\x69\x2f\x24\xaa\x2c\x10\x47\x26\x7e\xa7\xc4\x01\x6b\xc3\x67\x19\xff\xaa\x62\xd8\xce\x50\xc0\x9c\x81\x4e\xf6\x99\xd7\x47\x03\x0e\xab\x51\xd6\xd7\x54\x25\x60\x9d\x69\x9c\x39\xbe\xe0\x9f\x66\x85\xb8\xa0\x63\xca\xbc\x6a\x58\x76\x7a\x53\x3c\x03\xf3\xae\x39\x83\x7c\x94\xdd\x69\x0f\x36\xc7\xe1\x0c\x46\xfc\x7f\xff\xeb\xbf\xcf\x68\x9d\xf7\x43\x0e\x2c\x05\x0e\x61\x25\x57\x5b\x16\x7f\xe5\x3d\xe8\x95\x1a\x48\x0f\x4f\xa7\x95\x85\xbc\x8d\xfc\x57\x7b\xb9\xe9\x4d\xc3\xd5\xc4\xb8\x7b\x8b\xdb\x1d\x7c\x23\x22\x6d\x38\x1b\xe6\x8a\x79\x5d\x5a\x52\x09\xb9\x09\x7a\x24\xe6\x24\x67\x06\x02\xbf\xd2\xfc\x82\x99\xa6\xcf\xf2\x4f\xa4\x01\x91\x31\xb8\xbd\xe6\x87\x9c\x3a\x2d\x09\xd3\xc4\xfb\xf3\x48\x89\xdc\x1d\xee\xc5\x42\xbb\xba\x28\x26\x86\x55\xb7\x5f\xba\x69\x4b\x9c\xdb\x03\xb0\xdc\x24\x66\x74\x82\xe5\xee\x42\x73\x2a\xeb\x79\x19\x6b\xba\x2f\x3c\x2c\x0b\xd2\x31\x83\x34\x29\xb2\x7a\x41\x52\x49\x84\xe1\x74\x19\x86\x98\xdd\x09\x3e\x3c\x27\x44\x88\x2e\xf1\x35\x92\x29\xa6\x2b\x65\x33\xe8\xf7\xab\xc1\x43\x0b\xce\x06\x3c\x26\x62\x10\xa7\x6a\xe1\x58\x34\x65\x18\xe8\x8f\x2e\x53\x35\x5f\xde\xbe\x4c\xf0\x62\x3d\xa3\x26\xc0\x56\xfd\x7e\x4d\xb3\xcb\x25\x66\x2f\xc4\xa7\x28\x35\xd7\xc0\xa1\x92\x12\x1c\xaa\x8d\x78\x2d\x98\x48\xe0\x06\x66\x0a\x70\x08\x73\x4d\xca\x5e\xd1\x06\xb4\x1d\x46\x8e\x86\x69\x6e\x52\xca\xca\x60\xc4\x67\x7d\xf6\xd1\xd4\x91\x01\x2d\xcf\x0c\x20\x82\x74\x23\xf2\x75\xc6\x25\x29\xe4\xbf\x55\x94\xb6\xb0\x89\xaf\x76\x18\xd5\xc2\x7a\xfe\xd1\xe6\xb2\xfa\xab\x03\xdb\x2e\x2e\xf8\xe2\x94\xab\x77\xe0\x46\xe2\x60\x44\x67\x54\xef\x9d\x41\xe5\x49\xdb\x5d\x79\xe5\x3c\xa6\x0b\xc0\xc3\x54\x32\x3f\x41\xd9\xf4\x4a\x1b\x22\x21\xcf\x04\xcc\xe9\x30\x46\xbf\x80\x49\xd1\xae\x57\xc3\x4e\x96\x1d\xa0\x3c\xf9\x14\xd8\x02\x8a\xcb\x23\x28\xa6\xe8\x55\xed\xc5\x62\xf2\xd1\xc6\x79\x72\x55\x81\x29\x2b\x88\xe7\x1d\xbf\x90\xcb\x9c\x28\x44\xbe\x2a\x62\x4b\xbd\x3e\xb8\x4c\xc6\xc5\xe4\x07\x54\x9d\x8c\x55\x2f\x3b\xee\xbc\xe8\x76\xc7\x25\xbe\xbb\x54\xcd\xd8\x5d\xf9\x36\x75\x71\x82\x59\x6c\xf3\x71\xad\x92\xa1\x85\x2d\x98\x9d\x31\xba\x65\x99\x0a\x36\xab\xd4\x43\xc0\x37\x6d\x1a\xa8\x7e\xb8\xc8\x9c\xc2\xa8\x55\x16\x08\xaf\xe0\x42\x4b\xee\x29\x53\x34\xd1\x9b\xc3\x8e\x41\xa2\x11\x44\xc6\x59\x74\x47\x88\x6c\xaf\x03\x10\xa4\x52\x52\x36\x1e\x58\x4a\xba\xd4\xd2\x76\x17\x43\x71\x4f\x7d\x36\x4d\x99\x1f\x7f\x74\x0d\x35\x1b\xd5\xcd\xb6\x06\x70\x37\x97\xd4\x0a\x1a\x07\xe3\x6e\x32\x16\x95\xcf\xe5\xc2\x0e\x68\x6c\x48\x41\x4d\x45\x71\x98\xe8\x2a\x76\x77\x90\xe9\x16\xc1\x2f\xf2\x2b\x44\xda\x44\x55\x93\x7e\x06\x91\xfa\xaa\x26\x13\x57\xd6\x66\xe0\xf6\x58\x26\xa2\xd9\x7a\x66\x19\xce\x40\x29\x99\x17\xbb\xee\x6c\x3a\x02\x4e\x92\x21\x8e\x9e\x32\x2d\x2c\xb3\x45\x70\xe1\xea\x41\x68\xb9\x12\x0a\xde\x99\xcd\xa5\x07\x1a\x81\x74\xe3\x7b\x0b\x0d\xfc\x91\x1d\x76\xde\xb9\xa1\x9a\xc5\x95\x33\x78\x57\x66\xf4\x26\xb7\x21\x26\xb3\x84\xcf\xa7\x35\xf7\x59\x39\x81\x71\x93\x48\x9d\xba\xfc\xc9\xad\x5e\x65\x25\xa6\xb7\xf2\x65\xb6\x90\x0d\xb5\x05\x30\xae\x15\xb8\xe4\xa7\x84\x0f\xc1\xa4\x6a\xcd\x0f\x2e\xc3\xc7\x4b\xf5\x28\x9f\xe7\x55\xf3\x8e\xca\x27\x92\xca\x59\xa2\x95\x99\xfa\x1e\x4c\xce\xc9\x6e\xd7\xcd\x20\x24\x2c\xb7\x0e\xb6\x8f\xd6\xae\xfc\x7c\x17\xb0\xcf\x57\x4e\x12\x30\xef\x1a\xfe\x55\xb2\xb2\x99\x54\xc3\x33\xe3\xa4\x56\xbc\xcf\x14\x1e\xbb\xc5\xb5\xc2\x25\x7f\x61\x44\xc8\x09\x9d\x15\x0a\x61\x6e\x1c\x1e\x6e\x77\xb4\xfd\x3f\x13\x0c\x5d\xd9\xe6\x01\xa6\x6e\x3d\xf0\xd9\xa9\x41\x67\xd1\xbb\x53\xce\x70\x94\xdb\x64\xa3\x04\x4b\x49\x47\x73\x0f\x54\x25\x8b\xf3\x85\xd4\xb5\xa2\x11\xc3\xab\x7c\x57\xc5\xe6\x0c\x75\xb6\x83\x2a\xb0\x79\x46\xe5\x63\xf1\xf0\xd3\xd8\x07\xdd\xd3\xb7\xd9\x22\xf4\x8e\x93\x13\x2c\xd5\x6b\xc1\x83\x0d\x7c\xc2\x7a\x28\x00\x6d\xf1\x9a\x76\xbc\x93\x2a\xd2\x30\x17\x36\x52\x8e\x16\x96\xc9\xd1\x96\x66\x56\x87\xcb\x90\x56\x7c\xf8\x22\x55\xc8\x61\x85\x9d\xa7\x75\x46\x67\x12\xd7\xe7\x32\x43\x69\x01\x30\x8b\xfc\xe3\x13\x24\x37\x02\x65\x6b\xb3\x29\x2f\x49\x42\xb6\x12\x6c\xbe\xc6\x0e\x2d\x47\x72\x78\x7b\xb3\x71\x5f\xe6\x65\x29\x96\xdb\x55\xd6\x88\x81\xaf\xc1\x48\xaa\x1e\xfa\x17\x33\x50\x1b\x06\x5f\xb5\x8a\x60\x13\x05\x2a\x2f\x1f\xed\x21\xed\x72\x2f\xb4\xc4\x0c\xdf\xee\xf7\x7c\x8e\x85\x4d\x9d\xcf\x38\x93\x13\x0f\x71\x9f\xbf\x72\xa8\xfa\xc2\xb8\x3e\x91\x36\x61\x35\x4b\x4f\xdf\x5a\xbc\x77\xf1\x86\x6a\xb7\x2f\xac\xe3\x5a\x71\x34\x26\x80\xc4\x43\x59\x4c\x9f\x69\x9c\xe2\xe4\xa8\xf6\xc4\xd6\x12\x6d\xb6\x44\xfd\x6a\x0e\xd3\xca\xd2\x93\xc7\x83\x12\x25\xdd\x7d\xb4\x80\xf9\x69\x17\xe7\x00\x97\xe0\x30\x8e\xa5\x51\x18\xde\xbc\xc4\xb6\x31\x34\x86\x1d\x99\x05\x88\x08\xa2\x64\xe1\x92\xcd\xc7\xbe\x7d\x69\xd2\xd0\x38\xb6\x5f\x64\x70\x10\x05\x18\x36\x5c\x40\xb3\x34\x6b\xf4\xfa\x5c\xb7\x7c\xb4\xde\xba\xdc\xb9\xfa\x19\x2b\x8f\x2a\x3f\x5d\x41\x18\x3e\x84\x73\xda\x5e\x1e\x76\x00\xb4\x07\x28\xfc\xd4\x1d\xc3\xc3\xbc\x7f\x0f\x40\x38\x5e\x10\x09\xb6\x27\x22\x1f\xd1\x36\x39\x08\x49\x79\x61\x29\xf6\x25\x2f\x9f\x3a\x6c\xaf\x1c\x29\xeb\x70\x97\xe8\x30\x4e\xf2\x9d\x75\x3f\xee\xee\x82\x5f\xbe\x5f\xb6\xb2\x3f\x00\xe6\x16\x43\x3e\x7e\x6a\xcb\xfd\xc0\xe1\xf5\x62\x38\x17\x7c\x5e\x4b\xa2\x63\xed\xf0\x5a\xc5\xc5\x2e\x90\x73\x17\xcb\x6b\x93\x2f\x5b\x2f\xee\x2e\xb7\xda\xaa\x63\xd9\x86\x8e\xb6\x63\xef\xa1\xdd\x8d\xde\x07\x21\x48\xbd\xdd\x2d\x5a\x01\xe9\xe4\x96\x6c\x9b\x87\xac\xaa\x46\xe3\xe6\xf0\x11\x2e\xb7\x74\x30\x13\x64\x44\xbf\xae\xa5\x0a\xdc\xc2\xa7\x56\xbd\xd6\x64\x2e\x55\x7d\x04\xb7\x20\x54\x89\xf4\x02\x69\x2d\xa5\x6d\x65\xb8\x3e\xcb\x33\x72\x6d\x3a\xae\x16\x86\xb9\x28\xfc\xb4\x2e\xf4\xe9\xf6\x2b\x54\x9a\x75\x9d\x28\x35\x93\xe7\x1f\x3e\x8c\xa9\x9a\xa4\xc3\xb3\x88\x4f\x4d\xfe\x07\x17\x63\xf3\xc7\x07\x2a\x65\x4a\xe4\x87\x3f\xff\xe9\x4f\xf9\x12\x0f\x71\xf4\x34\x36\x70\x4e\x8b\xfe\xce\xe2\x92\x13\x2c\x37\x8b\x28\x73\xa9\x93\x3b\x4e\xa1\xf7\xba\x71\x49\xcb\xfa\x1b\xa9\xf0\x74\xe6\x87\x20\x9b\x1a\x8f\x52\xe1\xbc\xb2\x0c\xe4\xc3\xea\x69\xa2\x09\x9e\xcd\x08\xab\x37\xbb\x98\x04\xe7\x0d\x58\x8f\x4b\x91\xb6\x23\x24\x5f\x67\x09\x66\x45\xd8\x0f\x28\x93\x26\x48\x44\x98\xb2\x90\x14\x79\x6d\x7a\xd8\x8d\x06\x7a\xca\xf0\xff\xd5\x52\x60\x61\x8e\x54\xe6\xf5\x0f\xdd\x70\x6c\x2d\x62\x57\xa1\x16\x7b\xa4\x2b\xd7\x7f\xce\x69\x47\x1c\xd5\x9a\x92\x63\xef\x6d\xad\xb7\x4d\x76\x50\x24\x38\x1b\x90\xaf\x9a\xc9\xc9\x75\x81\xe2\x1e\x25\x91\xa8\xf3\xe5\x1e\xc9\x39\x53\xf8\xeb\x39\xfa\x4c\x19\x08\xb0\x3f\xf1\x54\x48\x74\x89\xe7\xa7\x7c\x74\x3a\xe5\x4c\x4d\xd0\x67\xf8\x5f\xfb\xd3\x0b\x21\x4f\xe8\x57\x82\x85\xe5\x0f\xb6\x7e\xa4\x2b\x61\x07\x5b\x48\xa4\x4c\x22\xf2\xac\x4f\xe8\x9f\xfe\x17\x9a\x9a\x96\xcf\xd1\x0f\x1f\xfe\xf4\xbf\xd0\x1f\xe0\xbf\xff\x0f\xfa\x43\x8d\xa5\x61\x35\xa8\x39\x28\x33\x7e\x57\x1b\x46\x00\x94\x92\x8b\x24\x5f\xd6\xec\x85\xe0\xf9\x4a\x55\xb6\xfc\x44\xa3\x27\x3e\x1a\x0d\xf4\xc6\x30\x09\xa4\x03\xbc\x91\xd9\xc1\x47\x0d\xa6\xb6\x50\xbc\x29\x3b\x99\x17\x7c\xb2\x9d\x1a\xa4\x11\xc7\xae\x65\x9a\x9b\x27\x20\x78\xad\x50\x7a\x9c\x4a\xf8\x8a\xc4\x9a\xab\xae\x72\x3a\x9c\x75\xd1\x81\x0e\x38\x0b\x92\x8f\xcc\xe3\x04\xe2\x42\xc0\xa9\x1f\x3d\x6d\x02\xcc\x2c\x21\x2b\x8f\xc3\x42\x58\xf7\x9b\x89\xd5\x85\xa9\xbd\x56\x9c\xae\x5c\xe8\x7c\x79\x88\xee\x3d\x17\x1b\xe9\x5b\x4f\xa4\x36\x85\x66\x49\x71\x33\x57\x70\x1b\xfb\x46\x0d\xc5\x91\xe4\x22\x43\xef\x36\x76\x11\x5b\x02\x75\xb9\x15\x95\x0a\x13\xd4\xd8\xee\xd0\xeb\xa9\x5f\x66\x9f\x2c\x1b\x26\x44\x38\xba\xb7\xf3\xe2\x8e\x30\x5a\x2d\x22\x69\x96\x58\x31\xe2\x0a\x90\xcd\x65\x0b\x7a\x9f\xe1\xaa\x40\xe3\x10\x6e\x0b\x79\x43\xcc\x49\xb6\x16\xb8\xa2\x7a\x3d\x53\x11\x91\x0b\xbe\x59\xb8\x75\x42\xd9\x42\x9e\x46\x6d\x70\x5b\xbd\x4c\x7e\x65\x2b\xc4\x39\x1c\x6a\x1e\xe7\xca\x82\x71\x4b\xd8\xda\x2b\x1e\x00\x6e\x71\x36\x00\xa4\xb8\x0d\x8c\xd5\x85\x8a\x20\x1b\x70\x6d\x63\xb8\xce\x19\x9e\x2b\x28\x53\xaa\x23\x23\xb0\xe6\x85\x0d\x31\x93\x10\x4e\xb6\xf1\x38\xbc\xda\x48\x79\x8c\x5a\xa1\x4a\x31\x8c\x04\xf2\x2d\xd7\xc4\xc8\x35\x65\xca\x4e\x90\xc0\x10\x0c\xac\x26\xba\x3d\x49\xc4\xe9\x08\x47\x94\x8d\x4f\x3c\x78\x54\x80\x2a\xf1\xaf\x83\xaa\x4d\xfa\x80\xe5\xd3\x76\x03\x5c\x37\xae\x36\x4b\xe3\xbc\xe2\xa1\x05\x34\x32\x8e\x15\xba\x80\x0d\xa9\xb0\x7c\xaa\x43\xf4\x5a\x80\x13\x6c\x18\x5d\x46\x0a\x07\x42\xd8\x34\x3e\x07\x7d\x40\x7c\x7d\x0a\x2a\x95\xb8\xfa\xe7\x16\x5c\xd4\x65\x9a\xe2\x0c\xfd\xa7\x8c\xaa\xdb\x30\x7e\x39\xe1\x42\x0d\xd6\xc4\x23\x2e\xbb\x54\x18\x39\x4d\x00\x48\x88\x3f\x13\xf1\x4c\xc9\x4b\x11\xd6\x77\x95\xbd\x68\x8c\x66\x5e\x3c\x25\xe0\xbe\x4e\x67\x1c\x52\xb7\x46\x68\x8a\xd9\xdc\x30\x4a\xcd\x5c\xb0\x7c\x92\x59\xd5\x65\x24\xa7\x38\x49\x4e\x90\x20\xa9\x34\xd5\xc8\x25\x49\x46\xa7\xae\x00\x4c\x8c\x12\x3e\xa6\x11\x4e\xd0\x30\xe1\xd1\x93\x34\x99\x95\x6c\x6c\x98\xd4\x4c\xf0\x88\x48\xe9\x49\x56\x39\x8a\x82\xcd\x6d\x85\x92\xcb\x8a\x88\x29\x65\x54\x2a\x1a\x39\x91\x29\x07\x43\x31\x85\xff\x23\x0c\x26\x61\xc8\x14\x86\xe1\x6a\x49\x8f\x18\x50\xd8\x94\xd9\x52\x61\x70\x5d\x5b\xac\x47\x97\x9c\x50\x77\x80\xb6\x00\x5d\xe9\x76\xc8\x40\x15\x0f\xe4\x92\x23\x75\x61\x3f\x83\x63\xdc\xb4\x05\xee\x8a\x27\x2a\xdb\x90\xd9\x49\x2b\xc0\x69\x41\x2e\x43\x96\x7a\x51\x90\x5c\xb2\x8c\x84\x03\x43\xd2\x83\x21\xd7\xe0\xe7\x2d\xdb\xd3\x9a\x8a\x20\xf2\x40\x75\xba\xb2\xd7\x9e\xb2\x28\x49\xe3\xac\xac\xaa\x16\x01\x9e\xf5\x26\x71\xe4\xd1\xb4\xd7\x82\xc2\x09\xc2\x12\xbd\x90\x24\xd1\xff\x6f\x32\x2f\x4e\xb3\x72\x21\x9a\x25\x9b\x92\x2e\xd0\x89\xe3\xd2\x75\x3b\xea\xe0\x50\x51\x6f\xb1\x9a\x18\xac\x89\x29\x57\xa6\xa2\xad\x41\x45\x75\xf6\x2d\x03\xa3\x39\x4c\xf8\x10\x4e\x3a\x00\xa6\xba\xfc\x6a\x2f\x9d\x33\x8d\x22\x42\x62\x12\x9b\xfa\x9c\x19\x98\xa7\x3d\xa2\xdf\x57\xc3\x77\x16\x28\x72\x00\x60\xa9\x65\xc3\x5a\x2d\x64\x6a\xb1\xba\xe1\x19\xba\x2d\x01\x02\x79\x94\x19\xe1\x32\x3c\xdc\xc9\xc2\x12\xbe\x0e\xc0\x6a\x69\x12\xbb\x5b\xa1\x15\x01\x56\x0b\x7d\x6e\x01\x60\xb5\x34\xcf\x9a\x9c\x11\x3e\xde\x69\xae\xbb\x9e\xd4\x15\x6f\x9f\x80\x68\x80\xe9\xcc\xdd\x59\xd8\x82\xee\x40\xce\xab\x36\xe2\x61\x81\xc7\x96\x6a\x80\xbe\x2e\x78\x6c\x69\x30\x87\x0c\x1e\x5b\x1a\xea\xe1\x82\xc7\x56\x0c\xb4\x05\x78\xac\x71\xee\x0f\xf4\xa6\x6e\xc7\x14\x20\xa1\x6a\x98\x8e\xee\x01\x62\xa0\x71\x8c\x17\x26\x70\xc0\x5c\x63\xee\x8e\xb6\xf1\x45\x30\x5a\x9b\x7b\x5b\x17\x8e\x55\x72\x42\xac\xba\xf7\x32\xef\x9b\x01\x1d\x59\xd5\xec\x7e\xe2\x5b\xbb\xc1\x0e\x19\xe1\x99\xc5\x32\xa8\x2b\x71\x74\x38\x59\xdb\xeb\xe1\xf2\x02\xf6\x65\x81\xe5\xb7\x42\xae\xfb\x5c\xaa\x16\x32\xe1\x2f\xb6\x62\x17\x6c\x43\xb3\x29\x6b\xb7\x20\x74\x3a\xb0\x4a\x5b\x1d\xe5\x28\x53\x64\x5c\xd6\x69\xf3\x43\x43\x99\xfa\xcb\x9f\x97\x72\x22\x03\xed\xe9\xd4\x43\xaf\x66\x47\xe6\xec\xb0\xcf\x48\x8c\xa2\x89\xd6\x8a\xa4\x56\x5f\xf4\x74\xcc\xcd\x2a\xd1\x14\x53\xa7\x48\xa5\xd2\xb8\x96\xa8\xec\xb3\x02\x16\xee\x19\xfa\x08\x65\x90\xf1\x74\xa6\xf5\xaf\x6c\x7e\x54\xef\xa4\x7e\xfa\xc3\x0f\x7f\x21\xe8\x07\x34\x25\x98\x15\x74\x58\x50\x9b\xf4\xd5\x07\xd8\x91\x6a\x42\xfa\xac\x72\x29\x50\xf7\xab\xa9\x6d\xe6\xe2\x0d\x7b\x6c\xc4\x9d\x4e\x0c\xe5\x3d\x71\x34\x41\x32\x1d\x9a\xfa\xd4\x9e\x0d\xc3\x09\xd2\x57\x7c\x0c\x8e\x6a\xb8\x91\xdd\xa0\x9b\x4e\xe1\x6e\x63\x00\xac\xbb\xb1\xed\x6d\xdc\x81\x7b\xe4\x54\x92\x02\xa6\x58\x85\xd3\xcc\x70\x3e\xff\xe0\x4b\x83\x37\x74\x62\x7c\x08\x5a\x3f\xc3\xd6\xb2\xaf\x65\x69\x08\x27\x06\x2f\x59\x9a\x60\x61\x8f\x7e\x9f\x69\x45\x43\x90\x67\xca\x53\x99\xcc\x51\xcc\x19\x39\x81\x9d\x90\x46\x13\xe3\x58\xd5\x3a\x0b\xb6\x85\x52\x9e\xa9\x4c\xb5\x42\x0b\x6d\xb9\xba\x2c\x52\x61\x83\x85\x36\xa1\xd0\x8f\x56\xbf\x09\x7c\xa5\xbc\xfc\x48\xd4\x4e\x8b\xf2\xe1\x8a\x4b\x3c\xbf\x25\x5c\x71\x61\x57\x05\xb8\xe2\x0c\xae\x78\x91\x2e\x87\x08\x57\x5c\x5a\xf3\x76\x70\xc5\x55\x4b\xbe\x06\x5c\x71\xa1\x99\x37\x03\x57\x5c\xa2\xe8\x9b\x81\x2b\x2e\xcd\x2b\xc0\x15\xbf\x3d\xb8\xe2\x0d\x01\x79\xab\x79\xb1\xc1\xf5\x52\x94\xcd\x57\xde\x64\xef\x25\xea\xdd\xe8\x0d\x16\x3d\x15\x83\xda\xb2\xeb\x6a\x73\x10\xe0\x6a\x26\xb4\x1a\x08\x70\xa5\xaa\x5e\xcf\xea\x36\x05\x16\x03\xc5\x60\xcf\x20\xc0\x85\x09\x84\xf8\xca\xd5\xe3\x2b\x2b\x37\x9f\xed\x5b\x0f\xcf\x05\x5d\x96\x2f\xe4\x96\x30\xc0\x85\xf5\x69\x15\x89\x09\xa2\xfb\x16\x76\xe2\x6e\xa5\xf9\x87\xc2\x21\x5f\x2a\xcb\xfb\x54\x94\x16\x90\x5c\x4b\x78\x0e\xa5\xd0\x28\xe1\xbe\xff\x3f\xec\xdc\x35\x22\x83\x4b\xe4\xcd\xfc\x2a\x66\x2f\xb6\xd8\xaa\xad\x77\xa8\xd3\x4a\xb7\x93\x28\xec\x92\x37\x57\x74\x31\xbb\x41\xdc\xcf\x48\x54\x63\x63\xa6\x53\xba\xad\x66\x97\x5d\x64\x19\x06\x1b\x28\xe4\x0b\x79\xa9\xfa\x7a\x32\xc3\x31\x32\x7e\x29\x1d\x18\x50\x52\xcc\x97\x63\x2a\x95\xa8\x8d\x6d\x5a\x18\xe1\x26\xae\xd2\x59\xda\x3a\x20\xc6\xa3\xea\x78\xbd\xcf\xa6\x64\xca\xc5\xb2\xc0\xaa\xca\x2f\x6d\x89\xa5\x75\x3e\x25\xb3\x09\x99\x6a\x49\x66\xb0\x6a\x23\x6d\xd7\x3b\x4b\x5a\xb6\xb9\x6b\x26\xd0\xb1\xb0\x09\x3c\x47\xa8\x7e\x37\x36\x48\xa8\xad\x97\x7b\xd3\x65\xb6\x58\xad\x2b\x3a\x84\x1c\x88\x77\xb3\xc1\xcd\xbe\x54\x70\x77\xc3\xfe\xae\x8c\xe9\xc8\x42\x6a\x96\x47\x6d\x34\xc4\x6b\x34\xe1\x9d\xe5\x5f\xd9\x02\xe4\x2b\xb8\xf2\x8b\xde\x79\xcd\x09\xfd\xea\xd3\xab\x07\x78\xd4\xa0\xf5\x2e\x92\x07\x22\x73\x24\x11\xa7\xbe\x66\x50\x18\xcc\x22\xbd\x0a\xbb\xc4\x69\x94\x1b\x6c\x92\x54\xd4\x46\x99\xb6\x31\x68\x47\x2a\xc5\x09\x68\x12\x7e\xd5\xd4\xf2\xa2\x0e\xe7\x15\x69\x8f\xed\x3c\x26\x94\xa9\xff\xf8\xeb\x4a\xab\xa9\x55\x2b\x4b\x37\xa8\xf4\x86\xa3\x88\x48\x63\x63\xb7\x51\xc8\x78\xc8\x9f\xa1\xc8\xdb\x26\xab\xaa\x8f\xb2\x9e\xb7\x66\xf0\x19\x04\x76\x9c\x6f\x75\x23\x2e\x4c\x04\x4f\xc7\x13\x67\x43\xd2\x67\x46\x4f\xad\x6a\x2d\x7f\x59\xb0\x91\xaf\xbc\x96\x3f\xa6\x34\x59\xcf\x42\x77\x5f\x28\x7f\xf7\xa9\xf7\x80\xe4\x24\x3b\xad\x43\x68\xb6\x72\x61\x17\x07\xdd\xbe\x4f\xfb\x6d\xe6\xaf\x81\x6e\x4e\x1c\xec\xeb\x88\x27\x09\x78\x1a\x24\x99\x3e\x13\x51\xdd\x3d\x4c\xf8\x81\xae\x86\xd8\x98\x0d\x00\xbe\xce\x13\x23\x5a\xc9\x5f\xb7\x46\x34\x94\xc8\x8d\xbe\x1c\xb4\x60\x42\xd5\x38\x23\xac\xca\xc6\xf6\x65\xb1\xf2\xd0\x91\x05\x0c\xba\xe8\xb1\xad\x05\x0d\x3a\x92\xec\x39\x70\x70\xc9\x3c\x0e\x35\x78\xb0\xc4\xec\xb2\x58\xbe\xfc\x9a\x71\x81\x43\x46\xf1\xe9\x68\x12\xf7\x59\xa7\x90\x4f\xe1\x2a\xb4\x0f\xe7\x79\x40\xb6\xd1\x21\x7c\x66\x06\xf5\x5d\xac\x61\x05\xdc\x68\xfa\x2f\xd0\x74\x0c\x68\xb2\x09\x29\x74\x61\x83\x10\x4d\x4e\xe2\x53\x1c\xcd\xa3\x84\x46\x9e\xce\x3c\x16\x78\x36\xa9\xe2\x78\x6e\xe5\x03\xea\xd0\x6b\xa1\x0e\xd5\x15\x42\x5b\x25\x6e\xdb\xed\x2b\x86\xa7\x24\xa0\x21\x1d\x22\x1a\xd2\x49\x86\xb7\xc1\xf2\x92\x72\xaf\x08\xe3\xb0\x78\xee\x03\x24\xd2\x2b\x40\x22\xad\x73\xf8\x73\xbc\xa3\xc2\xb1\x0f\x30\x4d\x6d\x88\xf7\xfa\x30\x4d\x99\x10\x70\x50\xc8\x3b\xf5\xfc\xe0\x95\x11\x5d\x16\x07\xf6\x9a\xb0\x4c\x15\xe2\xd2\x2a\x72\x63\x13\x2e\x53\xd3\xbe\x68\x45\x97\xd7\x45\x49\x5a\x8d\x32\x2b\x01\x20\x55\xde\x9d\x07\x02\x87\x54\xbf\x0c\x07\x72\x6e\xb6\x99\xd5\xb3\x5a\xcd\x5e\x3f\xb3\x67\x15\x05\x73\xb5\x24\x9f\x6c\x3f\x1c\x57\xa2\x4f\x5e\xdc\x70\xbd\x64\x9f\x8e\xf3\xc1\x13\x81\x26\x3c\x89\x1d\x08\x47\x46\xad\xac\x83\x2c\x13\x22\x23\x90\x5b\x8c\xfb\x19\x89\x8c\xb6\x99\x17\xe2\x6b\x4a\xe9\xc9\x16\x11\x86\xbb\x05\x46\xb3\x0d\x2b\x4a\xc6\x49\xd6\xb1\x9f\x2c\x95\x2e\x64\xd1\xfc\xdf\x30\xc6\x02\x85\xc0\x6b\x50\x3d\xcc\xa5\x76\xef\x25\x83\x6b\x12\x3d\x3c\xe3\xa8\xa8\x2a\xb1\x6b\xf6\x19\x3c\x7d\xa6\xce\x10\x83\xfd\x1e\x1b\xbd\x94\x6e\x76\xad\x3c\x95\xe5\xcd\xb2\x46\x30\xdc\x42\xc5\xc4\xcd\xc1\x91\xa6\xf8\xeb\x60\x86\x05\x4e\x12\x92\x50\x39\xdd\x59\x30\xf4\x45\xd1\x5d\xad\xcf\xaa\xe0\xc6\x44\xc6\xd2\xe9\xd0\x6c\x45\x37\x10\x5b\x64\x53\x71\x24\x52\xe6\x43\xbb\x65\x0b\x93\x15\xf1\x4c\xe1\x5e\x00\xab\x5a\x34\x81\x6a\xc9\x23\x4c\x05\x23\xb2\xb6\x36\x2d\x89\x52\x41\xd5\x7c\x60\x4b\xfd\xb6\x3f\x70\xf7\xf6\xcb\x0b\xfb\x61\xb3\x87\xdf\xa1\x1a\xb8\xfe\xb2\xd2\xc2\x33\x22\xa0\x3c\x97\x2b\x34\xe5\x95\x33\xb6\xa8\x15\x24\xab\xf1\x05\xe1\xdf\x0b\xd7\x76\x5d\xe0\x34\x7e\x19\x78\x19\x65\x83\xa8\xbc\x39\x96\x1d\xd6\x2a\xdc\xad\xa6\x49\xee\x18\x79\xaa\xc6\x8b\xbe\x83\xea\x3e\x36\x6d\xc4\x34\xad\x07\xec\xb9\xc2\xc1\x5e\x9b\x2f\x8c\x97\xf2\x5f\x51\xec\xc6\x1b\xa7\xc5\x3a\xaa\x0a\xbe\x6a\x18\x6c\xc7\xfb\xaa\xc5\x88\xbd\x4e\xb6\x34\x6c\x7d\xd0\x85\x48\x67\x8a\x0e\x17\xa1\x7d\x1c\x37\xd8\x42\xe9\xde\x4e\x02\x69\xe6\xce\xcd\x52\xe8\xd6\xd4\xf3\x2d\x70\x62\x3b\x3b\x2d\xff\x5b\x1c\x35\x87\x90\x64\x10\xa6\xfc\x3c\xc6\x9b\x29\x55\xca\x25\x4a\x18\x03\xbc\xde\x9d\x45\xdb\xf4\x7b\x17\xee\x82\xa1\xc2\xb2\x31\x51\x9d\xf5\x59\x47\xa2\x17\x82\x18\xb1\x10\x1a\x15\xb5\x93\x33\xab\x3e\xd4\x5c\x1b\x12\xdd\x53\x16\x9b\xa3\x85\x07\xaa\x64\x56\xf6\xcf\xf4\x31\xc2\x89\x24\x27\xba\x61\xa8\x16\xac\x38\x04\xbf\x62\xf4\x22\xf0\x6c\x46\x44\x9f\xd9\x2c\x16\x70\x38\x71\x9e\x98\xf6\xeb\x42\x7c\x2d\x0d\xc8\x20\xc2\xd1\x64\x4f\x6b\x84\x21\x19\x29\x9a\x90\xd8\xe5\x4b\x17\x97\xc7\xcd\xdb\x18\xec\x57\x58\xac\xde\xc8\x95\xad\x3b\xb1\x9d\x24\x91\xe6\x28\x59\x79\xf7\x19\x11\x7a\xd4\x7a\x0f\x3f\x13\x86\xe8\xc8\x8d\xc3\xc6\x2e\xa1\x17\xf0\xcc\xe9\xad\xff\x8c\x69\x62\x00\x08\x5c\xd7\x4e\x08\x34\xee\x87\x3e\x33\xee\x7e\x16\x15\x32\x74\x29\xa3\x72\xa2\x39\x75\x0a\x3e\x59\x50\x33\xea\x12\x87\xd8\xf3\x2a\xa7\xb9\xab\x5f\x6f\xe6\xa0\xcf\x54\x70\x36\x85\x24\x21\x8b\x4b\xe5\xc8\x27\x89\xca\x8e\x47\x65\x8a\xe7\x52\x89\x38\x8e\x65\xd1\xf8\x6a\xd4\x4a\xfa\xcf\x82\xd9\xe5\xb4\x90\x15\x19\x79\xb0\x4a\x10\xc4\xea\x2a\xfa\x35\xc9\xbf\x21\xb5\x63\x31\xb5\xa3\x9a\x36\x87\x98\xde\x91\x1d\xe2\x55\x53\x3c\xea\x96\x7f\x1b\x92\xed\x16\x53\x3d\x5e\x39\x27\x62\x37\xe9\x10\xaf\x9b\xbf\xb2\x8b\xd4\x95\x90\xe0\xf1\x8a\x09\x1e\xad\x2d\xb5\xc5\xd8\xf4\xfa\x63\xbb\x52\x72\xc4\x12\x30\xab\xaa\x5e\x3e\x13\x25\x68\x24\xb7\xc1\x1f\xe4\x0c\xb7\x8c\xea\x03\x2d\x70\xb6\x44\x6a\xd2\x2f\x64\x4e\x50\x88\x93\xcb\x2a\x5c\x0e\x05\xc1\x4f\x31\x7f\x59\xb0\xd5\x49\x1f\x4d\xe4\x33\xd7\x62\x8f\x20\x11\x95\xa4\x10\xc9\x43\x25\x62\x44\x5a\x63\x27\xee\xb3\x09\x25\x02\x8b\x68\x02\xd9\x9d\xf9\xc2\x98\x2c\x61\x03\xe8\x64\x62\x39\x7c\x6f\xd7\x0a\x8b\xde\x82\xee\x65\x0b\x53\x86\xcf\x67\xd7\x5c\x8f\x64\x6a\x3e\xc9\x84\x19\x2b\x65\xf8\x26\xb9\x56\xcb\xbf\x69\x22\x42\x46\xec\x9d\x26\x23\x64\xc1\x54\xde\x17\x2d\x13\x12\xf2\xdd\x10\x92\x12\x76\x94\x94\x50\x41\xe2\xd5\x12\x13\xd6\x32\xf9\xed\x3f\x66\xda\xf5\xbc\x8f\xb8\xe9\x65\x41\x6b\xe9\x70\xb0\xf3\xa3\x57\x39\xe7\xb6\x27\xf0\x4b\xb6\x29\x8c\x44\x2c\xf4\x3e\x1b\x92\x38\x06\x4e\xab\xb8\xad\xd0\x9e\xef\x1d\x67\x1e\xd0\x77\x2f\x96\x7a\xb3\xe3\x84\xb3\xb1\xa4\xb1\x01\x9b\x99\x61\xa8\x55\xec\x1b\x2f\x00\x5c\x01\xd6\x37\x49\x88\x70\x5e\x09\x81\xbe\x93\x94\x59\x34\xc9\xec\xb7\x98\x13\xc9\xde\x2b\x63\x2c\xc0\x6c\x8e\x9e\x18\x7f\x49\x48\x3c\x86\x15\x2a\x0f\xe6\x14\x51\x72\x82\xa8\xca\x3e\x13\x80\xc6\xc0\x53\xd5\xd7\x63\x87\x58\x3b\xa3\x01\x10\xfb\xad\xb0\xd5\x2b\x3c\x0e\x2c\xbf\x3f\x43\xa8\xc7\xd0\x08\x47\xea\x04\xc9\x74\x98\xb7\x1f\x73\x53\x5c\x5e\x6b\xdf\xde\xc4\xf3\x46\x42\xcc\x7c\x45\xe7\xd5\x67\xc3\x71\x07\xbd\x5d\x3b\x09\xc5\x1b\xc5\x16\x3e\xe3\x4d\x20\x56\x3f\xa7\xd2\x06\x61\x20\xce\xb2\xa3\x6f\xe1\xa5\x32\x8c\x6c\xc0\x3b\x35\x78\xd3\x8c\xc7\xb5\xb6\xce\xd2\x54\x56\x1d\x4b\x1e\x08\x6a\x05\x25\xeb\xa8\x82\x76\x0d\xb9\xb5\xd4\x24\x95\x20\x78\x6a\x9d\x03\xfa\xaa\x01\xb1\xc6\x84\x81\xea\xd1\x53\x61\x24\xcc\x55\x96\xf8\x8a\xb2\x27\xbd\xba\x39\x2a\x38\x07\xbc\x64\xdd\x73\xd5\xa2\xcd\xf4\x8d\x47\x2e\x38\x33\x0e\xc2\x8d\xe4\x4e\x3a\x66\x38\x59\xd1\xc6\xb1\x40\xb9\x45\x9f\x9e\x93\xb3\xac\xb8\xa0\xa5\x08\x63\xec\x43\xa6\xc7\x95\x6c\x48\xa5\xf9\xfa\xf2\x1e\x46\x31\x99\x11\x16\x13\x16\xcd\x61\x8b\x30\x40\x0e\x12\x0c\x27\x08\xc3\x77\x38\x39\x43\x97\x26\xbf\x28\x93\xf0\xec\xb5\x0e\x17\xfa\x14\x33\x3a\xd2\x7a\x02\x18\x61\xed\x28\xfb\xcc\x0c\xd3\xf9\x40\x48\x6e\x5d\xcd\x28\x56\xb5\x32\xfa\x06\xb9\xde\x10\x95\x99\x15\xbf\x47\xcd\x17\x0e\xf4\xd6\xb4\x3a\xba\x39\x57\x83\x41\xa6\xc3\x53\xf8\x77\x21\xe1\xce\x01\x15\xe5\x28\x3a\x24\x21\x60\x0e\xb4\x1e\x2f\xb8\x18\xeb\x80\xf5\xb6\xe1\xb7\x5b\x92\xc7\xe2\xf5\x51\x50\x6a\xa6\x94\xd1\x69\x3a\xf5\x9c\x77\xa6\x62\x43\x64\xed\x97\x26\x13\x65\xa6\xf5\x80\xc8\x81\xb7\x23\x7d\xb9\xb2\x39\x1a\xd3\x67\xc2\xfa\x6c\xc6\x29\x53\x67\xe8\x9a\x2b\xe2\x95\xc8\x30\xd0\x59\x7c\xa6\xe8\xd4\xa0\xbd\x0a\xa2\xcf\x81\x01\x05\x07\xa0\xcd\x09\x56\x27\x28\x4e\xe1\xa8\x32\xa2\x34\xeb\xd0\x37\xae\x82\x95\x81\xf8\x70\xd1\x67\xe6\xa6\x1b\x61\x9a\xa4\x82\x58\x99\x15\x9b\xbc\xa0\x7c\xc8\xf9\xc8\x2c\x12\x9c\x37\x89\x29\x1d\x4f\x94\x5e\x22\x2d\xe3\x59\x7f\xe3\x44\x73\x23\xde\x67\x43\x82\x30\x9a\x71\x49\x15\x7d\xce\xfc\x97\x74\x84\xb0\x94\x60\x41\x39\x43\x97\x05\xfb\x3f\x95\xa0\x7a\xd7\xc5\x15\x53\x36\xb0\xb6\xe7\xfa\x7c\xa4\x8d\x17\xb2\xd0\x8b\xa5\x32\x1e\x4a\x9e\xa4\xca\x77\xc1\x56\xaf\x6d\x6e\x1a\x77\x85\x0b\xc0\x40\xcc\x47\x7d\xe6\xf6\xb5\x3c\x43\x1d\x89\x24\xd7\xab\x24\xcd\x52\x46\x82\x2a\x22\xa8\x41\xb1\x22\xca\x2c\x42\x76\x4e\xb3\x33\x30\xc5\xe2\x49\x8b\x50\xbe\x05\xde\x60\xaa\x16\xac\x1d\x43\x23\x21\x01\xac\x97\xbf\x1c\x60\xfa\x47\x8c\xb3\x53\x46\xc6\x78\xd9\x8a\xf4\x59\x61\x49\xd0\x77\x74\x94\x2b\xa4\x75\x3e\x47\x8f\x76\x03\x88\x7c\xaa\x5b\x25\xd3\x71\xdd\x22\x8d\x12\x8e\x97\xb8\x8d\x47\xf9\xa1\x47\xff\xe0\x43\x33\x46\xad\xf7\x73\x05\x52\xa0\x56\xaf\x46\x5c\x90\x09\x66\xf1\x89\x5b\xac\xe2\xd8\xe0\x66\xb4\xa6\x36\xa7\x8c\x81\x24\xe8\x40\x94\x89\xc1\xa2\xc2\xcc\x5b\x0b\xab\xb8\xd9\xa5\xc8\xd7\x61\xa5\xbb\x22\x6b\x0d\x6a\xbf\x18\x03\x84\x61\x79\xf3\x99\x3d\xe2\x92\x4e\x67\x49\x9e\xd3\xe5\xd9\x46\x47\x5a\xc4\x72\x3c\x92\x3f\x83\xe9\xca\x69\x6d\x70\xab\xdb\x95\xd3\xfb\xac\x62\xe4\x19\x23\x85\x5b\xc3\xd9\xbc\x4c\x19\x50\x8f\x85\x7d\x27\x89\xfe\xa7\x22\xb9\xda\x67\x84\xf5\x3e\x73\x22\xc8\xf7\xc0\x65\x6c\xb3\x9e\xf1\x4c\x8b\xd0\x06\xe6\xd6\xd2\x0f\x45\xc6\xc9\x5d\x38\x27\xf6\x30\xb8\x57\x2b\x2f\x2a\x45\xb5\x98\xfd\x23\x05\x84\xae\xcb\x0d\x61\xf7\x29\x8b\x49\x6d\x31\xab\x56\x5c\xa3\xee\x6e\x31\x0c\x75\xb0\x6e\xfd\x89\x87\x09\x91\x04\xa9\x97\x0c\x28\x4e\xeb\x55\x60\xb2\x14\x24\x21\xcf\x38\xbf\xe3\xb2\xbe\x2c\xbb\x8c\xb0\xac\x29\x0f\x03\x68\x6b\x7a\xfc\xeb\x27\x4e\x67\xe3\xbb\xd1\x43\x79\xc6\x89\x4d\x5c\xb1\xbe\x72\x59\xbf\x60\xbd\xcb\x8d\x62\x48\x6d\x2b\x55\xf4\xac\x17\x31\x5c\xdf\x3f\x93\x79\x35\x45\x96\x80\x18\x36\x65\xa3\x67\x64\x5f\xc1\x56\x7d\x9b\x7f\xb3\x48\xe3\x5a\xca\xfd\x5c\x98\xf2\x2b\x24\x51\xdd\x2e\x54\xe0\x86\x3f\x65\x3a\x1a\xd1\xaf\xa0\xd5\xba\x9b\xc4\x69\x1e\x91\xe0\x52\x73\x31\x90\x55\x90\x5b\x3c\xe3\x48\xde\x24\xa1\xaa\xf2\x4b\xad\x65\xad\xbc\xa3\x6b\xa9\xfd\xf7\x94\x88\x8d\xe8\x9d\x6d\xd5\x55\xc2\x11\xbd\x53\x52\xad\x23\xba\x46\x15\x6e\x19\x93\xe4\xb7\xfa\x80\x6b\x48\xb7\x1c\xfe\xbc\xf2\xb3\xa1\x61\xbe\xab\x0f\xc4\xe7\xda\x8d\x36\xb5\x3c\x3e\x2d\x8b\x4d\x76\x45\x89\x34\x7f\x3b\xb1\x00\xeb\xd8\x06\x4e\x65\xa9\xce\xd8\xc5\x8c\x18\xc7\x88\xa9\x59\xa5\x6c\xa5\x05\x4f\x53\xb7\x8d\x51\x36\xee\x33\x47\x5b\x79\x82\x4c\x98\x78\x89\xa1\x16\xb0\xed\xb1\xf7\x69\xb6\xb1\xdb\x99\x54\x8d\x5f\x9d\x11\x29\xf5\xc5\x28\x95\xc0\x94\x59\x1f\x8e\xa3\x8f\xec\x33\x74\x5a\x8e\x53\x3f\x01\x3b\xc2\x89\xcb\x76\x3d\xc9\x07\x28\xfb\xcc\x64\x9c\xa0\x3f\xa3\xef\x14\x1e\x9b\x5b\x02\xd0\x2b\x71\x02\xb8\x97\xa0\x25\x58\xad\xdc\x4b\x0e\xc8\x4e\x24\x8d\xbf\x3f\x6f\xea\xd3\xd8\x10\xbe\x83\x66\xe0\x90\x6b\x1a\xe6\x04\xa2\xa3\xfc\x1f\x24\xfe\xbe\xa9\xa5\xfc\xa3\x27\x32\x3f\x29\x13\xb9\xfe\xde\x78\xc0\x1b\x45\x68\xee\xea\xe2\x80\x41\xb7\x77\x52\xe2\x21\x49\x7e\xc9\x27\x8a\x1a\x59\xd1\x8f\x94\xe1\xcd\x78\x50\xe5\xf0\xda\x45\xa0\x0f\xe7\x75\x75\xeb\x2a\x58\xcf\xda\x88\x2b\x1d\x23\xcb\x12\xa4\xbb\xb3\x12\xbb\xab\x6a\x88\x21\xea\x71\x42\x92\x19\x8a\xe9\x08\x5c\x6f\x0a\xf6\x4b\x06\x1e\x6b\xea\xfd\x68\x85\x66\x9a\x32\x03\x04\x6c\xa2\x3e\x5e\xec\x49\xb7\x2c\x23\x6f\xfc\xac\xcf\x7a\xea\xbd\x44\x52\x09\xce\xc6\x5a\x99\x8e\x9f\xa9\xcc\x0b\xd9\xe9\x03\x99\x4e\x89\xb0\x5d\x50\x69\xa4\x6e\x5b\x04\x0a\xbb\x8b\x4d\x8f\x4d\x5f\x7d\x20\xf8\xb8\x62\x8b\xfa\x47\xa3\x57\xe8\x51\x4a\x17\x35\x55\x11\xf6\x6e\x17\xb7\xc4\x3b\xf7\x6c\xba\xfc\xc5\xb7\x4e\xa2\x69\x6e\xc8\x74\xfc\xf2\x43\xd9\x8c\x69\xa9\xde\x60\xc2\x5c\xf9\x42\x68\x7b\x11\xb8\xaa\x09\xa9\x49\x73\xd2\xfd\x38\xc7\x96\x19\xdc\x4a\x2a\x56\x69\x82\x76\xd4\x46\x7b\xf2\x4d\x98\x84\x82\xfd\x43\x2a\xac\x68\x64\x6f\x01\x2e\xac\x15\xd7\xea\xd5\xf5\x4b\xbb\xa9\x4e\x22\x23\x9c\x2c\xae\x70\x83\x4f\xdd\xbc\xdf\x6c\xe8\xb4\xc7\xcd\xb4\xdd\x08\xec\x12\xf1\x24\x59\xa5\x4c\x5d\x69\xe6\x17\xf9\xe7\xcd\x23\xca\xfb\xd1\x0b\xe0\xd6\x02\x4e\x8d\x31\x50\xe0\xc4\xba\x8b\xa4\xb2\xab\xe4\xbf\x64\x2e\xb5\xb9\x55\x1f\xfb\x8c\x8f\xa0\x90\x61\x52\x17\xb9\x3e\x13\x7c\x4a\x57\xa9\xa4\x61\x82\xb9\xef\x9c\xef\x7f\x89\x27\xc5\x45\x08\x80\xf9\xcd\x6c\x2f\xdb\x23\x60\x32\x60\x6b\x52\x6b\x38\x43\x53\x3c\x5b\x8b\xe0\xcb\x22\x5f\x3a\x68\x6a\xc2\x8e\x2c\xf5\x00\x53\x9b\x40\x72\x2a\x10\xf9\x05\xcf\x73\xf8\x9b\xba\x1a\x09\x6c\xa5\xed\xf0\xa8\x5f\xef\xb1\x11\x5f\xe1\x70\xe6\x70\x35\xf6\xf4\x61\xb7\x67\xbd\xf3\x97\x45\x62\x98\xd5\x37\x34\x6d\x73\x1e\x2f\xaa\x36\xf5\xca\x27\xd3\x51\x70\x97\x7e\x58\x9f\x89\x78\xdf\xfc\x6b\x95\xbb\xb5\x78\xb4\xbc\x16\x11\x0c\xa7\x99\x54\x9f\x0b\xfb\x70\xeb\x34\x2a\xb5\x03\xcf\xf2\x84\xb1\xdb\xea\x56\xf7\x40\x33\x7b\x48\x5a\x11\x6b\x43\x7c\xae\xd5\x6a\x3d\xb8\x1e\xb3\xca\x0e\x1b\x6b\x72\xcb\x88\x01\xdc\x4c\x5a\xad\x21\xcf\x3e\xb1\x30\x00\x23\x9a\x10\x79\x86\x7a\x15\x4e\x5c\x97\x84\x9f\x05\x8d\x9b\x74\x40\x27\x3d\xa5\x82\x7a\xc5\xdf\x9d\x8c\x84\x28\x14\xa1\xf3\x03\x59\x3c\xa7\x05\xb8\x4f\x27\xfc\xc5\x64\xe0\x09\xaa\x79\x96\x11\x56\x15\xb8\xb4\x34\x2f\xa0\xd6\x23\x64\x1c\x6a\xd9\x07\xdc\xe4\x45\x68\x35\x27\x73\x86\xf9\x16\x88\xf2\x92\x6e\xa3\x8c\x67\x7b\x8c\x03\xd7\xeb\x83\xfe\xa2\x8d\x52\xe0\xde\xdd\x60\x74\x99\x94\xbf\xba\x3d\xf2\x23\x7c\xea\x0c\xbb\x18\x8d\x04\x01\x2d\xfb\xff\x63\xef\x5d\x9b\x1b\x37\x92\x74\xe1\xef\xfb\x2b\x6a\xbd\x6f\x44\x77\x9f\xa5\x28\xb7\x7d\x66\xc2\xab\x0d\x47\xbc\xb4\x5a\x6d\x73\xac\x96\x34\xba\xd8\xb3\x67\x38\xc1\x2e\x02\x45\x12\x23\xb0\x0a\x46\x01\x52\x73\x76\xe7\xbf\x9f\xa8\xcc\xac\x0b\x6e\x24\x20\x4a\x6d\xef\x9e\xf9\x30\xe3\x16\x01\xd4\xbd\xb2\xb2\x32\x9f\x7c\x72\xe3\x78\xd3\x30\x71\x82\x52\x70\xde\xdd\xbc\xfb\xf1\xf8\x6e\xca\x44\x11\xb1\x34\xb9\x17\x33\x19\xe9\x07\xb8\xf4\xfd\x52\x8a\xc2\xfc\xdc\x61\x04\x4a\x36\x42\x6a\x90\x04\x49\xd1\xf3\xbe\x66\x07\xc6\xfc\xf7\x5d\xf5\xfb\x3e\xb7\x72\xc7\xf5\x69\xd6\xae\xcd\x69\x08\xcb\x14\xd2\xb6\xe1\xd0\xb6\xd8\x35\xbf\x43\x7f\xeb\x59\x5b\xc6\xf3\x27\x84\x44\xcb\xbf\x96\x72\xa0\xd2\x75\xea\x3f\x0a\x5a\xd1\xa1\xd3\x6d\x32\x0e\xf9\x4c\x86\xc5\x5a\xe3\x37\xad\xa5\xef\x13\x22\x9e\xfa\xc6\xfa\xcf\x7d\x72\x78\x56\xe4\x42\x80\x08\x71\xeb\x89\xce\x7a\x62\x5b\x73\x1d\x0b\x3e\x1a\xcf\xe4\x07\x8b\xaa\xf3\xbf\x6a\xef\x6b\xd8\x2c\x82\x34\x2f\xd5\x52\xa0\xd8\x38\xd1\xee\x07\x48\xda\xa7\xcb\xb4\xc0\xac\xc5\xcb\x44\xf2\xd4\x35\x14\x9f\xb4\x49\x89\x9c\xcb\x68\x7d\xa8\x9b\x3c\x59\xce\x45\x3a\x44\x13\x9d\x2e\xcf\x52\x6d\xd6\x77\x74\xdf\xb1\x3b\x9f\x92\x97\xdb\x77\x06\x3d\x4e\x94\xdb\x93\x79\x37\x3b\x4f\x31\x6b\xb0\x60\x80\xc3\xaa\x47\xc8\x23\x09\x98\x99\x45\xd2\xd4\x11\x86\x85\xa1\xa9\x2e\xec\x0c\x6a\x61\xbc\x98\xc9\xbc\x94\x90\x50\xcc\xa1\x32\x39\xf3\x39\x61\x22\x8b\x91\x20\xc4\xca\xca\x88\x09\x4c\xb9\x82\x2f\x9b\xfb\x99\x2a\x35\xf8\xa3\x36\xa2\x30\x07\xd4\x6b\xc8\xf5\x8f\xb0\xe8\x11\xcb\xf2\x64\x03\x2e\x65\xfd\xa6\x65\xea\x4e\x79\xc1\x53\xb5\x7a\x6e\xab\xd2\x13\x43\x6c\x6c\x33\xd8\xf4\x9d\x19\xfc\x95\x90\x22\x87\x8e\x82\x2d\xbb\x75\x0b\xf7\xb0\x72\x77\x48\x6e\xf0\x24\x92\xf3\x57\x3b\x8b\x05\x2f\x0b\xb5\x31\xf7\x5b\x9e\xa6\xdb\x11\x7a\x9d\x05\x5b\x73\xbd\xb6\x13\x8d\x0e\xc3\x3e\x67\x13\x0d\xee\x29\x8f\xd6\xe2\xa6\xe0\x45\xd9\x8a\xcc\xaa\xb5\xf2\x0b\x21\xcb\xcd\x17\x27\xec\xcf\xbe\x8f\xa7\x93\xd3\x1f\xce\xe6\xef\xa6\x37\x93\xef\xce\xcf\xde\x05\xfd\xa1\x27\x1f\xa6\x37\x37\xcd\x5f\x7f\x98\xde\x36\x7f\xbc\xba\xbc\xba\x3b\x9f\xdc\xb6\x95\x72\x7e\x79\xf9\xe3\xdd\xd5\xfc\xfd\x64\x7a\x7e\x77\x7d\xd6\xf2\xe9\xdd\x6d\xf7\xc3\x9b\x1f\xa7\x57\x57\x67\xce\x4a\xff\x97\x60\x77\x81\x87\xdc\x74\xb4\xa3\x1b\xf5\x0d\x78\xc4\xaa\x2f\x9e\xb0\xbb\x7a\x7a\x2b\x8a\xb7\x42\xae\xb0\x47\xae\x8d\x0c\x83\x70\x3f\xb0\xb4\xfa\x41\xe9\xfa\x14\x21\xc9\xd1\x5a\xb0\x54\xa9\xfb\x32\x23\xd1\x86\x46\x75\xa9\xd0\xf0\x23\x74\x50\xda\x0f\xd3\xdb\x93\x66\x9a\x2d\x57\x58\xc0\x8a\xea\x6c\xc8\x8f\x1c\x19\x02\x40\x9c\x82\x2d\xc5\xa6\x5f\xf2\x1e\xea\xa0\x06\x37\x33\xbb\xea\xc1\xd2\xb8\x2c\x6a\xd5\xc4\xb1\xe7\x52\x82\x8e\x05\x05\x57\xe7\x75\xd7\x68\xba\xe1\xc0\xfc\xa2\x6c\x21\x22\x5e\x22\x70\xdb\x9c\x53\x79\xae\xf2\xb0\xc1\x7e\x3d\x3c\x5f\xa1\xb4\x8e\x5a\x0b\xac\xcd\x99\xe9\xb8\xbe\x4f\xb2\x4c\xc4\x5f\x34\xf5\x17\x1f\x2b\x8f\xfa\xad\xd9\x7d\xa6\xce\x60\x4f\x9a\x7b\x3d\xdc\xf9\x6d\x72\xbc\xf5\xd6\xa1\x85\x00\x9c\xea\xe1\xba\x90\xac\xc3\x9c\x09\x2e\x79\x59\x02\xf0\x1f\x5e\xb0\x47\x01\xb4\x31\x25\x65\x07\xc5\xbb\xb7\xd9\xdb\x50\x1d\xfa\xed\x6d\xae\xdf\x0a\x9d\x4c\xa7\x30\x7e\x0e\x85\xdb\x7c\xaf\xc5\x30\x67\xdb\x5e\xee\x8f\x77\x58\x28\x48\x67\x8b\xeb\x87\x16\x3f\xa7\x73\xae\xe5\x44\xda\x73\x58\x18\xb1\xdd\xa7\x3d\x96\x6f\xad\x92\xc4\xa4\x7f\xc3\x2a\x89\x2e\xf6\x8e\xd5\xad\x8a\xf9\xd6\x2c\x0e\x00\x27\xe8\x32\xcb\x54\x5e\xb0\x8e\x32\x10\xaa\x88\xed\x83\x33\x87\xfa\xe1\x64\x1c\x14\x62\x34\x0c\xdd\x92\x2f\xad\x1f\x05\x14\x8d\x6b\xe0\xe3\x0a\x82\x80\xe0\x22\xe8\x72\x5b\x6e\x2a\x57\xea\xca\x0a\x6d\x53\x7e\x0f\x89\xa2\xcc\xcc\x01\xdf\x37\xd5\x72\x5b\xed\x97\xb6\x84\xd6\x29\x4f\xc5\xb2\x98\x0f\x74\x4a\x41\x89\xb2\x8b\xb5\x2f\x59\xad\x9f\xa1\xc4\xfe\xb7\x84\xaf\x08\xbc\x6c\xae\x06\x81\x85\x20\x57\xaa\x40\xfd\xd4\xdf\x61\x98\x1d\x4d\x30\x2f\x50\xa5\x14\xef\xee\x94\x40\xa3\xf3\x23\xe6\xcb\x85\x86\x8f\x67\xf2\x0c\x40\xa2\xfe\x22\x62\xc3\xe0\xe1\x16\xb0\x57\xff\xaf\x24\x96\xff\xac\x11\x29\xdd\x2c\xfe\x7e\xdd\x23\xb4\x50\xa4\x5b\xc7\xe5\x14\xb3\xca\x77\x7d\x76\x0f\x5a\xbd\xad\x0a\x88\x1d\xc6\xad\xa3\x0b\x91\x91\x65\x1e\xfb\xe9\xd1\xcc\xe0\x15\x36\x55\x8d\xd9\xcf\xd6\xf2\x03\xc1\x3d\x2e\xd8\xc5\xe2\x53\x53\xbe\xb5\xc4\xdf\x6d\x03\xfb\x1c\x5c\xda\xcf\x1d\xee\xb3\x7b\x80\x1d\x69\x66\xcb\x28\x57\x2e\xe0\x52\xa2\x45\x76\x00\x5c\xe8\xd4\x7d\x74\x23\x76\x23\x1f\xdf\x43\xaa\x75\x42\x8f\x83\xd2\x21\xd3\xed\x3f\xe3\x64\x21\xdb\x86\x05\x53\x50\xea\x6b\xf2\xa0\x9a\xfd\x03\x1e\x40\x24\xe3\x60\xcb\x24\x4d\x41\x0f\x18\xb3\x89\xdc\x5a\xb2\x0a\x73\x14\x5a\x10\x69\xb2\x92\x6a\x5f\x1c\x7d\xc7\x62\x8a\x82\xc5\x74\xd3\xbd\x98\x10\xa7\xe1\xb9\x8a\x9e\x67\x45\x3d\x03\x6f\x9d\x91\x2d\xbc\x99\xf5\xa4\x3f\x5b\xdd\x80\xcb\x7b\x78\x9a\x7f\xae\x08\xb0\x46\x73\x83\x0f\xff\xde\xde\xf4\xef\x4b\x9e\x73\x59\x40\x5c\x13\xa9\xee\xb9\x08\xc2\xab\xc5\x27\xc0\xa0\x4a\x34\x04\xc3\x4f\xe1\xe4\x5a\x97\x3f\xc2\xc4\x92\x78\xc4\x92\xb1\x18\x43\x06\xde\xdc\xe8\x12\x0b\xff\xe6\xda\x68\x0e\x33\xd9\x88\xd7\x18\xb3\x49\xaa\x15\x7d\x21\x64\x94\x2a\x0d\x10\xdc\x45\x48\x8e\x0e\x2b\x9f\xdc\x4a\x8b\x2d\x5c\x50\x60\x2a\x7d\xf1\x8a\x1e\x04\x1f\x42\x22\x59\xf0\x89\xa7\xb0\xd3\xfd\xef\xff\xaa\x88\xe6\xb5\x0b\x27\xf1\x82\x29\xbb\x1a\xc7\xd0\x8b\x4d\x12\xa6\x83\xde\x35\x41\xf0\x06\x4c\x8c\x8f\xa3\x09\x58\xe6\xd8\x6b\x5e\xb0\x54\x70\x5d\xb0\xb7\x6f\x06\x61\x43\x6c\x07\xbd\x74\xa5\xed\xeb\x83\xe1\x6d\x38\x65\xa8\xdc\xb9\x8a\x21\x3f\x30\xcf\x0b\xc6\x99\x14\x8f\x61\xf4\x8c\x82\x80\x27\x9b\xf4\x57\x04\xfc\x1d\x88\x99\x47\xf6\x21\x88\x48\xc5\x2b\x53\x87\x1c\xb1\x29\x2d\xc8\x7d\x4a\xcd\x6a\x59\x59\x23\x87\x3e\x03\xb8\xb9\x79\xc9\x07\x36\xae\x79\x31\x93\x24\x59\x2d\x6c\x24\x08\x65\x9f\xa4\x69\x35\x98\x90\x43\xbc\xac\x34\x1d\x36\xad\x8f\xc7\x6e\x80\x2e\xe0\xfa\xe5\x22\xba\x2a\x76\x3a\xbf\x59\x30\xe6\xc0\x71\x3a\x86\x65\xb7\x6a\x3b\x6d\xf6\xe5\xcf\xa8\x04\xb7\x54\x7f\xae\x56\x49\xc4\xd3\x1e\xca\xb0\x68\x6b\xf2\x9e\x8d\xd5\xb4\xe9\xef\xd0\x8d\x9f\xbb\x82\xfe\xaa\x72\xbb\x7d\x1c\x8e\xd9\x47\xd5\x62\x6e\xef\x98\xdc\x40\xb7\x38\xe4\x02\xee\x42\x0b\x3f\x97\xc7\xb7\xd2\xf4\x69\x0c\xc4\x06\xfb\xa5\xa0\x27\x0a\xb0\xa2\x03\xe3\xcb\xe2\x20\x6e\x39\x08\x93\x24\xb0\x27\x0a\x3e\x7a\xb3\xc3\xf3\x9a\xfd\xf7\xee\xfe\xc8\xf7\xdf\x76\xc5\x81\xe0\x9a\x1d\xef\x56\xf6\x26\xf1\x5f\x79\x04\xd1\x8c\x50\x93\x8d\xa3\x6c\x92\x4e\xda\x54\x25\x1c\x8c\xf9\xad\xea\x61\x96\xab\x48\x68\x3d\x66\x67\x70\xd0\xd0\x9f\x8c\x2f\xad\x43\x22\x78\x79\x26\xcd\xcd\xc4\x72\xd4\x05\xe5\x57\x97\x78\xdb\x0e\x40\xc2\xdb\x83\x7c\x39\x9b\xfd\x79\xe8\xba\x6e\x13\x96\x6f\x17\xca\x80\xd4\x55\xec\x6c\x75\xc2\x62\x15\xdd\x8b\xfc\x38\x17\x71\xa2\x4f\xc0\xb7\x5e\x74\x3a\xf5\x36\xe6\xb6\x7d\xb0\xa6\xd1\x05\x14\xd8\x13\xf8\x7f\x8a\xf5\x13\xf4\xdf\x86\x10\x8d\x58\xb2\x84\xeb\x84\x8d\x3b\xc5\x40\x2b\x4b\xe9\x27\x64\x91\x6f\x11\x95\x6c\x4d\x59\xb5\x81\xb0\x37\x0d\xa3\xb4\x75\x45\x4c\xe7\xcf\x81\xc1\x79\x62\xb7\x31\x32\x87\x00\x07\xd8\xa9\x42\x51\xbc\x16\x8a\x8b\x8c\x17\x6b\x0d\xf4\x1c\xd5\x31\xa0\x4b\x17\x7c\x6a\x46\x88\x67\x80\x57\x40\x2b\x85\xff\xc8\x91\x48\xe8\x22\x49\xd3\x99\xc4\x00\x0b\x60\xd2\x78\xd5\xca\x02\x64\x3e\x1d\x31\x1e\xc7\xec\xff\x7b\xfd\xfe\xfc\x3f\x6e\xcf\xe6\xd3\x0b\x30\x5a\x4f\xcf\xcf\xde\x8c\xdc\x8f\x97\x77\xb7\xee\x57\xb4\xb0\x3c\x88\x9c\x6d\xf8\x3d\x5c\xf1\xa4\x16\x14\x20\x2a\x66\x32\x6c\xa9\xe5\x47\x32\x4f\xb4\xb0\x48\x57\x52\x53\x1c\x4d\x34\xcd\x61\x17\xb9\x2a\xd1\x66\x0e\xb8\xfc\x5e\xbb\x4f\x76\xaf\x41\xbb\x78\x5c\x15\x56\x0d\x84\x38\x60\xae\x03\xc2\x1c\xba\xfb\xfa\x05\x27\xe4\x2a\x91\x5d\x78\x3c\x21\x1f\x5e\x52\x89\xff\x51\x6c\x01\x10\x7e\xc5\x93\xbc\xf7\xda\x6b\x67\x3c\xb4\x3b\xc6\xdc\xd3\xb9\xae\x6f\x2a\x8d\xba\x30\x46\x14\x77\x62\x3e\xdb\xc8\x6e\x7f\xf5\xee\x12\x85\xa6\xf8\x54\xe4\x96\x89\xcb\xc5\xac\x5a\xba\x4a\x77\xd0\xf8\x35\x38\x93\xb7\x97\xef\x2e\x4f\x98\x48\xf9\x42\x41\xb8\x22\x41\x82\x6c\x11\x34\x60\x91\xda\x04\x05\x55\x58\xd8\x46\x2c\xf3\x2c\x6c\xa1\x11\x6d\x8c\x65\xec\x61\x63\xcb\x54\xde\xe4\x30\x7b\xde\x2b\x20\x75\xf6\x4a\xe5\x7d\x8e\x7f\xf3\x1a\xc6\x6f\x64\xe6\x22\x57\x93\xbc\x74\x36\x2f\x05\x07\x86\x0e\x72\x0b\x91\x2d\x9f\x00\xac\x69\x5a\xc9\x99\x6d\x36\x8e\x1e\x93\x0b\xde\xbf\xa9\x24\xfb\xf1\x1b\xcd\x16\x65\x31\x93\xd5\x32\x94\x64\x93\x9f\x6f\xd8\x77\xbc\x88\xd6\x6f\x66\x12\xe2\x07\x7f\xfc\xa6\x83\x2e\x72\x30\x03\xb3\x19\x93\x77\xbc\xe0\xe7\x8a\xc7\x89\x5c\xb5\xd1\x2f\xfb\x1c\x81\x67\xb7\x93\x13\x66\x53\xb5\xf8\x68\xd7\xc2\xd2\x9e\x04\x05\x81\x40\x86\x8e\x58\x29\x02\xa2\x5c\x56\x29\x6a\xf1\x66\x06\x07\xd6\x4c\xde\x22\xef\xb4\x91\xaa\x49\xc1\x32\x45\x79\x2a\xcd\xad\x0c\x19\xb9\xb9\x8d\x02\x17\xe9\x96\x99\xd1\x81\x65\xec\x26\x83\xf4\x31\xd0\x67\x9a\xc2\x7e\x26\xe1\x82\xee\xe2\x6f\x53\x15\xf1\x14\x30\x79\x47\x81\x4d\xcf\x5c\xdb\x55\x09\x1c\x38\x00\x86\x91\xdb\x2a\x74\xd6\xd1\x32\x39\xa5\x2c\x9c\x28\x30\x00\xc0\x3c\x92\x37\x76\xa3\x8c\xc4\x41\xbe\x59\x30\xbe\xa5\x38\x3a\xe6\x43\xc7\x3f\x8b\xc3\x62\x9e\xba\xd0\x74\x55\x4a\xcb\xb7\x16\x81\xf9\x5e\x6e\x01\xbe\x0d\x89\xe5\x14\x40\x3f\xbc\x74\xa6\x45\xd9\x98\x45\x77\x26\x06\x9f\xcd\x24\x22\x05\x2b\xf3\x12\x32\x14\x06\xb5\x2b\x09\x40\xc6\x66\x3c\x7c\x99\x11\xb0\x91\x74\xfd\x2c\x17\x47\x2e\xca\x3b\xae\x8c\xa9\x39\x61\xc7\xec\x3a\xbc\x5e\xc7\x2a\x2a\x37\x36\x7b\x04\x44\x88\x13\x02\x8e\x0e\x51\xb7\x42\xf0\x60\xdf\xb7\xe2\x81\x89\xae\x10\x40\x91\xd3\xfb\x7e\x8c\x0b\x66\x12\x7e\xda\xd4\xd4\xbb\x15\x5f\x90\x1d\x87\xa1\xd6\xb0\xa0\x79\x56\x2d\xa9\x52\xda\xc1\xdc\x0b\x17\x9e\xe1\x5e\xe5\xa0\x6c\x89\x4f\x99\x02\x23\x37\x06\x40\xab\xf8\x95\x66\xd3\x2b\xa3\x01\x99\x1b\xaf\xdb\x83\xa5\x2e\x10\x5c\x86\x71\xca\xf0\x35\x86\x0b\x8c\xd8\x97\x6c\x56\x7e\xf9\xe5\xd7\x11\xfb\x64\xff\xf1\xfb\xdf\xfd\xee\xeb\xdf\x0f\x09\x27\xb1\x17\x72\x28\xd7\x8f\x91\x4b\x19\x5a\x55\x89\xc2\x19\x68\x4a\xaa\x03\x66\x81\x36\x60\xd7\xf0\x3f\x85\xc9\x3a\xc0\x0e\xf1\x15\xed\x70\x1d\xee\x4c\x56\xd9\x9a\x1e\x49\xa0\x45\x31\xaa\x4a\x08\xa7\xec\x92\x46\xff\xcf\x3b\x08\x59\xe7\x66\xab\x3c\x0d\xe3\x94\xa4\x4e\xbd\x36\x85\xb0\xd7\x64\xff\x2b\xc0\x81\xf8\xc6\x1e\x70\x2a\x8d\x45\x8e\x6d\x72\x26\x3b\x67\x48\x04\xe1\x20\x3e\x65\xa9\x8a\x2d\x05\xbc\xe7\x3b\x48\x40\x41\x38\xfb\xc4\x8d\xe4\x1e\x11\x55\x28\xc5\x97\x82\xe7\x65\xc9\x23\x41\xb1\xd0\xaf\x3f\x9d\x98\xdf\x46\x6c\x7b\x02\x20\xd2\x11\xfb\xdb\x09\x31\x02\xf2\xbc\x98\x9b\x9f\xde\x58\x5d\x9b\x8a\x80\x46\x27\x9a\xbd\x3a\x7e\xe0\xf9\x31\x88\xe7\x63\x6c\xd1\x2b\x92\xac\x2e\xf7\x71\xa8\x9b\xa7\x4a\xdd\x13\xc0\xb6\xf1\xe1\xb1\x25\x97\x85\xe5\xed\xfc\x26\x38\xf5\x8e\x7c\xa8\x60\x47\xf0\x82\x60\xe3\x6c\xc1\xc6\x7f\xd5\x4a\xb2\xf1\x96\x6f\x52\xfa\xd5\x3e\x25\xfc\x2f\xd7\x14\x13\x17\x3b\x90\x4f\xba\x45\x4b\xe9\x77\xa9\x5a\x40\xaf\x3e\xd8\x9e\x22\x82\x16\x1a\xea\x4f\x1f\x7f\x60\x51\x47\x2c\xd9\x06\x70\x24\x6e\x54\x81\xaf\x50\x78\x6b\xb3\x57\x9f\x5c\x93\xfe\x84\x7e\x61\x18\x14\x1b\xc4\x87\xc6\x61\x87\x5e\x33\x85\x7e\x62\xaf\x49\x04\xbd\x31\x67\x0c\xc1\x95\x71\x18\xda\x2a\xd8\xba\x0a\xfe\x23\xa8\x20\x91\x0c\xc3\x32\x77\x7c\xf9\xb7\xe3\xf1\x78\xec\xbe\x06\x66\x9e\xff\xc3\x92\x42\x8b\x74\x89\x25\xd9\x13\x6c\x3b\x93\x1f\x6c\x72\x29\x6b\xbc\xf6\xb4\xd5\x59\xae\x0a\x15\xa9\x94\x1d\x79\x83\x6e\xac\x22\xcd\xfe\xc5\xa8\xb5\xc1\x50\xc2\x8f\xe6\x1e\xd7\x41\x75\x8f\xd9\x2c\x3e\xd3\xa6\x22\x83\x78\x7d\x5b\x85\x4c\xb5\xee\x62\xcb\x75\x18\x8c\x0c\x6b\xc1\xac\x9c\x63\x62\xb3\xcd\x73\xf3\xb2\xf8\x54\xc0\xa3\x0e\xb2\xe0\x56\x28\x7b\xfb\x49\xd9\x10\xb7\x9e\x33\x18\x97\x75\xc7\x00\x10\xa7\x27\x49\x06\xec\xe7\x28\x74\x9f\x98\xc3\x45\x86\xe9\x8e\x74\xb9\xd9\xf0\x7c\x7b\xec\x77\x5b\x73\x71\x7a\x36\x59\x90\x31\xa9\x1d\x00\x70\xe1\xa6\xb4\xb5\x08\xc5\x40\xea\xa5\x3d\xd1\xdc\xde\x8d\x20\x5f\x75\xc0\xca\x24\x64\xa4\x62\x5a\xd7\x3e\xfa\xb4\xaa\xb1\xb8\x77\x9a\xba\x8a\x45\xc4\x68\x6f\x8c\x93\x05\xd2\x94\xd1\x1b\xf6\xe3\x0e\xf1\xad\xe6\xba\x30\x82\x72\x35\xc0\x3d\x3a\xbd\xbc\xb1\xdf\xf4\x3f\x74\x61\x1c\xaa\x2a\x3b\x4f\x43\x0e\x60\xb9\x62\x39\x7f\xf4\xc7\x2f\x60\x3b\xd0\x3a\x53\xba\xd8\x5c\xfc\xfb\x54\x5d\x25\xa9\x39\xb5\x60\x8d\x8f\x67\xb2\xf2\xf3\x88\x89\x34\xd9\x24\xd2\x61\xeb\x50\xb8\xab\x25\x6a\xcf\xf7\x49\x61\xa6\x4c\xc7\xf7\x46\x82\x59\xee\xca\xe0\x4a\x35\x91\x5b\xbb\x74\x9c\x63\x8a\x2c\x10\xa5\x36\xed\xf2\x77\x74\x88\xda\x4f\x62\x71\x44\x0a\x69\x12\x2c\x3c\xd8\xbf\x33\x69\x4a\xb3\x7b\xc9\xc3\x85\x83\xf2\x82\xe2\x8e\x6c\xd2\x9f\x40\x02\x40\x1d\x15\xcc\xaf\xd3\x7f\x5b\x14\x94\x33\x59\x6e\x0e\x0d\x36\x21\xf8\xf0\xaf\x65\xa6\xbb\xca\x85\x3d\xa9\x28\x70\x49\xc8\x72\x63\x37\xd4\x80\x15\x77\x46\xea\x4f\x2c\xa2\x94\x23\x1b\x9f\x29\x08\x90\x8f\x23\x74\x90\x66\x41\x5d\x78\xbc\x60\x35\x98\x47\x30\x15\xf2\x35\xfe\xfd\x86\xd1\xd9\xf0\xe5\x88\xce\xf3\x5c\x3b\x96\x33\x9c\x73\xc8\xc3\x2d\x62\xb4\xa1\x43\xe6\x85\x15\xcf\x63\xb4\x96\x87\xb7\x0a\x8c\xe0\x35\xfa\xd7\x56\x95\xec\x31\xd1\xeb\x99\xbc\x55\xd6\xe0\xc8\xa4\x72\xb9\x2b\x46\x70\x19\x6d\xd4\xc7\x35\x08\x01\x68\x75\xdb\x0a\x30\x42\xf8\xa0\x58\x23\x40\xc1\xce\xa5\x8a\xc5\x61\x24\x8d\xb7\xde\x57\x61\xfd\xd7\xb9\xc0\x78\x30\x38\x29\xba\xc2\x69\x85\xd6\x03\x6d\xf3\xf5\x89\x87\x73\x88\xca\x31\xb5\xaa\xc7\x41\x19\x44\x42\xfe\x53\x77\xaa\x41\x29\xf6\xc6\x19\x44\x03\x57\xc6\xde\x65\x84\x38\x74\x12\xa2\x16\x46\xc6\x5e\x67\x3f\xf6\x3d\x82\x61\x77\x00\x63\xce\x56\xb9\x2a\x33\x17\x32\x6f\xc3\xfd\x70\x1a\x48\xa7\x99\xca\xa5\x3a\xa1\x3b\xd5\x79\x22\xef\x71\xc5\xbf\xd4\x1c\x61\xd2\x0f\x11\x57\xa8\x6a\x6d\x26\x7e\xe8\xc3\x11\x4b\x64\x94\x96\x70\xf0\xe9\x82\x47\xf7\x98\xb8\xa4\xcb\xe8\x6b\xbe\x99\xef\x0f\xa6\xec\xd0\x98\xca\x34\xa5\x6a\xfd\x01\x0a\x64\x70\x60\x02\x7a\x48\x38\xe3\xec\xee\x7a\xda\x5e\xf7\x7d\xd2\x74\xe6\xb4\x9f\x9e\xd5\x05\x02\xff\xf7\x63\x32\x08\x77\x59\xa3\xfe\x15\x95\xa5\xee\x8c\x4b\x5d\xc4\xf2\xb8\x48\x0b\x73\x81\x88\xaf\x5b\x4c\xfb\x83\xd7\xe9\x2a\x2b\xe7\x66\xa0\xd2\x21\x00\x01\xd3\x8a\xef\xaf\xee\x26\xc1\x77\xbb\x96\xca\xf7\x57\x77\x2c\xa8\x03\x49\x9d\x53\x11\x15\x0e\x69\x3c\x66\xa7\x3e\xd7\x42\x5d\x33\x8f\xc5\x43\x12\x61\x88\xeb\xc8\x68\x45\x33\x09\x14\xe6\xe6\xae\x73\x64\x79\x2f\xd9\xf7\x57\x77\xc4\x96\xe9\xf9\x6d\x30\x6d\x04\x50\x58\x0c\x3b\x76\x6a\xe4\xe1\x52\xc9\x23\xa4\xf6\xc9\x63\xef\xed\x18\xc1\xe5\x3a\xe2\x59\x51\x92\x82\xf1\xf0\x76\x6c\xe7\xe4\xda\x7b\x42\x4c\xb3\xd4\x4c\x1a\x5d\x09\xa3\x0c\x20\xc3\x99\xe9\x74\x73\x6a\x6b\x83\x7a\x08\x38\x00\x06\xed\x20\xe1\x9f\xb8\x08\x3f\x2e\xb7\x8c\xe7\x8b\xa4\xc8\xcd\x35\x0c\x3f\x1e\x21\x13\xd9\xda\x66\xb1\xc2\x79\xf3\x9a\x11\x25\xa5\x83\x09\x4e\x64\xa1\x67\x32\x88\x60\x71\x51\xc1\x18\xbc\x90\x48\x06\x94\xbf\x80\xbd\xb1\x14\xa4\x51\xaa\xca\xd8\x1e\xab\xb9\x4b\x72\xb7\xcd\x50\x89\x9a\x49\x60\x26\x31\x67\xab\x32\x6a\xa8\x3f\xfb\x4f\xd8\x47\xf9\x90\xc4\x09\x3f\x2a\x84\x4e\xf9\x51\xf1\xbf\x3f\x8e\x6a\x3f\xf1\xb7\x5f\x7e\xf9\x11\xf3\xf5\x75\xd1\x2e\x04\xec\x4a\x07\x1a\x78\xda\xfd\x14\x8e\xa7\xd0\xac\xd2\x03\xe6\xe9\x3c\xb9\x17\xec\x23\x4e\xf7\x47\x22\x29\x7e\xda\xb4\xcd\x64\xdb\xbc\xb1\xa7\x4c\x1b\x50\xc6\xb7\xcf\x1b\xdb\x31\x6d\x6f\x57\xe3\xdf\xad\x16\x66\xb6\xbe\x5a\x8d\xdf\x7e\x09\xff\xac\xcd\xd1\xbe\xcd\xeb\xa2\x67\xda\x9a\xdd\x22\x88\x5a\xb6\xa5\x93\x45\x33\xb9\x5f\x18\xb1\x61\xb2\x08\x56\x6d\xdb\xc6\xe7\x85\x38\x34\xba\x15\xb9\xab\x07\xa0\xaf\x1b\xa4\xe0\x3b\x3d\x82\x07\x32\x6a\x7b\x36\x6c\x80\x7b\x76\x53\x7b\x87\x00\x5c\x78\x38\x80\x8f\x07\xde\xef\xd7\x9f\xda\xbb\x7b\xba\xb3\xbb\x99\xa9\x10\x03\x18\x64\x6e\xcc\xeb\x3d\x1b\x59\x79\x75\x57\x1b\x1f\x39\x66\x0d\x6c\x26\xab\x89\xe9\xb6\x3e\x64\x17\xd9\xe5\x88\x26\x13\xed\xe2\xfe\x5c\x4b\x2c\xb4\xd2\xdd\xaf\x6d\xbd\x2b\xda\x4b\x61\x52\x42\xe7\x75\x6b\x59\xf8\x81\x29\xe2\x40\x28\x9c\xb9\x52\xcf\x37\xbd\x89\xd0\x7d\xc5\xef\xe8\xe3\x0f\x0d\x5a\x74\xa7\x5e\x7e\x80\xc8\x6c\x47\x86\xb5\xe1\xd2\x68\x6b\xb6\xd6\x0e\xc7\x12\xde\xf2\x9f\xd4\xa4\xbb\xec\x49\x0d\xc2\x1a\x7b\xe6\xeb\xa7\xaa\x6c\x29\x8f\xe8\x5b\xe5\x29\xfa\x0e\x8a\x35\x98\x95\x7d\x9e\x5b\x2b\xe6\xbc\x79\x19\x73\xe2\xa6\x3c\x5f\xa1\xd1\x4b\x8b\x42\xbf\x69\x99\x61\x1f\xc7\x76\xc0\x0c\x5b\xb5\x6b\x3e\x8c\xe7\xc3\xea\x63\x60\x52\xd9\xb5\xd3\x5c\x2b\xab\x49\x31\xdc\x4d\xcb\xd6\x1f\x32\xbe\xfb\xe0\xba\x48\xe5\x98\x41\x0a\xf8\x58\xbb\x79\xb0\x0e\xa4\x83\xbd\xe0\x1b\xc7\xf2\x42\xa5\xd9\x98\x5d\x6c\xdc\x42\x40\x3e\x97\xee\x36\xf4\xe2\x7a\xed\xdb\x04\x62\xa4\xed\x6a\xc1\x4c\x4e\xec\x2b\x9e\x95\x5a\x27\x68\x65\xc1\x70\xc4\x72\x81\x11\x2e\x60\x33\xe3\x7e\xd4\xa9\x73\x1d\x9d\x18\x1a\x90\x5f\xeb\xc2\x9d\x16\xb9\x3f\x8d\x3c\x6b\x69\xd8\x8f\x8e\x9a\xfb\xb1\x16\xef\x94\xe8\xb6\x8b\x54\x94\x1d\xcb\x3d\x15\xab\x7c\x1f\x03\xe4\xae\x4a\x2d\xe2\xc2\xec\xe2\x15\xf0\x8f\x05\xe9\x96\xbb\x6a\xef\x7f\x4d\xa2\x6e\x10\x5d\x36\x62\x28\x20\x2a\x21\xdd\xfa\x4d\xe2\xa9\xd5\x6b\x95\x35\x65\x45\x71\xd0\x59\x90\xf0\xcd\x3c\x57\xdd\x49\xa0\x7b\x8c\x97\x2d\xa2\xe2\x31\x58\x63\x52\xc8\x2d\xfb\xa5\xe4\x29\x1e\xad\x92\x36\x83\x6d\x36\x18\x5f\xbe\xfa\x3d\x9b\xc0\xd9\xc7\x3e\x80\x54\x06\xc8\x18\x94\x56\x28\x96\x6c\x32\x91\x6b\x25\x79\x67\x36\xf4\xfb\x6f\xf4\x9c\x32\xba\x9a\x8b\xb9\x2a\x9b\xd9\x5b\x07\xf4\xa4\xa5\xb4\xb0\x53\x9c\xdd\x97\x0b\x91\x4b\x81\x19\xdf\xe1\x3d\x66\xdf\xeb\xd5\x5c\xc5\xcb\x62\xfd\xd5\x3c\x4a\x93\xde\x69\x66\x21\x5e\x75\x62\x3e\x3b\xc5\xaf\x76\x75\xa0\x52\x7e\xa5\xe9\x92\xe1\x33\x86\xcf\xc6\xec\x3b\x1e\xdd\x0b\x19\xb3\x2c\x2d\x57\x09\xd1\xd3\xe0\x65\x23\xa9\x9a\x15\xaa\x1d\x43\xcd\x06\xcb\x37\x87\xe0\x4c\x6e\xf8\x3d\xa6\x7e\x21\x15\xd6\xdc\x5b\xba\xc8\x0d\x9d\xa1\x66\x9e\x34\xd7\xee\xde\xd9\x72\xa7\x71\xb3\x98\xfa\xda\xd3\x25\x46\xeb\x3d\xae\x15\x61\x9c\x2a\x76\xa2\x01\x1b\xd7\xad\xd6\x06\x8b\x98\x65\x7a\x71\xb9\xff\xa9\x31\xb8\x7b\xc1\x81\x08\xe9\x8b\x4a\xc9\x38\x10\x91\xbd\xd2\xac\xcc\xac\x10\x01\xcf\x56\x0a\x38\x23\x9c\x02\xf3\x20\x4b\xa2\x7b\x44\xb6\x42\xec\x06\x73\xdd\x6b\xa4\x88\x66\xc2\x43\x2c\xdb\x44\xc3\x12\x69\x78\x0e\x43\xcd\x34\xb2\x1f\xed\x59\xa7\x3d\xe3\x52\x8a\xb5\x90\xf3\x27\x24\xe1\xe9\x3f\x69\x95\x18\x14\x52\xc2\x9d\x87\xd0\x0d\x61\x29\x13\x22\xdd\xf6\x37\x7c\x97\x61\x22\x59\xd6\x94\xf8\x44\x33\xcd\x8b\x44\x1b\x59\xd6\x3a\xe2\x9e\xfc\xe8\x90\x51\xe7\xc3\x18\x97\x5a\xd8\x96\x6a\x63\xe1\xe2\xdc\xc6\xec\x3d\xf8\x55\x82\x7b\x89\x72\xdc\x45\x5d\x02\xab\x58\x8b\x4e\x12\xdf\xe7\x00\x88\xda\x1e\x04\xef\xef\x74\x97\xb9\x98\xc6\x31\x9b\x78\x7f\x36\xb2\x37\xa1\xa7\x7a\x4f\x8f\x44\xaa\xc5\x53\x16\x5f\x2f\xd7\x0f\x60\xbe\x60\x01\x31\xd0\xe3\xb4\xf9\xdd\xb3\xb9\xbb\x66\x3e\x02\x6d\x00\xbf\x17\x72\x97\x7d\xbf\x7f\x0b\xd1\x01\xb3\xd3\x20\xe1\x3c\x3b\x0a\x9d\x3b\x4f\x69\x60\xff\x6d\xe7\x09\xb3\x92\xe5\xb1\x19\x72\x73\x09\x8a\xee\x29\x58\x11\xfd\x7b\x44\xb9\xf5\xb8\x56\x3a\xdc\x67\x76\xfe\xf0\x1e\x9d\x97\x2e\xb7\x16\x04\x7b\xba\x01\x46\x94\xa7\x54\x21\x23\x17\xb4\xda\x6d\x52\x34\x2a\xb9\xf9\x66\x56\x84\xc2\x30\x00\x2e\xc2\x16\xd5\xb2\x9b\x65\x56\x3e\x57\xee\x96\xfd\x34\xd8\xcd\x11\x6e\x34\xe8\xc7\x6f\xf4\x25\xd4\xf7\x1c\x64\x34\x68\x65\x7c\xfe\x40\xb0\x27\xba\xc0\x1d\xc4\xd9\x5a\x3f\x15\x04\x89\xd0\x41\x99\xa9\x98\xf9\xf5\xde\x15\x69\x23\xa5\x42\x88\xeb\x6f\xb0\x5b\x41\xe3\x7a\xf7\x6d\xdf\x56\xfb\x10\xe0\xe4\xd8\xa2\x4c\xd2\x18\xd9\x04\x03\x0d\x55\x59\x15\x08\xd2\x18\x81\x3e\x92\x68\x77\xc0\xb5\x2c\xfa\x1f\xbf\xd1\x57\x2a\x3e\x64\x61\x0d\x67\x8c\x6d\xae\xeb\x1e\x61\x34\x3a\xc4\x32\x6d\xf6\x8f\x44\xa6\xba\x03\x20\xe2\xb9\xae\xe6\xed\xdd\xd1\x60\x40\xbc\x2d\xca\xe5\x0d\x24\x09\xed\x22\x65\x0a\xf2\xe7\xd9\x28\x6b\x33\xcf\xa6\x1a\x17\xf3\xd7\x35\x29\x04\xa0\xf2\xfa\x08\x67\x7f\xb8\xb9\xbc\x38\xda\xf0\x5c\xaf\x39\x90\x5e\xd8\xb2\x46\x36\xef\x3a\x5a\x0b\x2c\xb0\x23\x91\x33\x79\xc4\x56\x6a\x84\x30\xa2\x13\xb6\x2e\x8a\x4c\x9f\x1c\x1f\xaf\x92\x62\x5d\x2e\xc6\x91\xda\x1c\xfb\xa1\x39\xe6\x59\x72\xbc\x48\xd5\xe2\x38\x17\x10\x48\x72\xf4\x76\xfc\xd5\x5b\x98\x99\xe3\x87\xb7\xc7\x00\x1e\x19\xaf\xd4\xbf\x9c\x7f\xf5\x6f\x5f\xff\xde\x14\x9c\x6d\x8b\xb5\x92\x27\x84\x51\xda\x59\xf6\x11\x5e\x13\x8e\xf1\x93\x5a\x2d\xff\x36\xfe\x32\x6c\x06\xbd\xba\x51\xb1\x48\xf5\xf1\xc3\xdb\xb9\x9d\x98\x71\xd6\x91\xd9\xe2\x1f\xa1\x17\x9f\x21\xf4\xe2\x3e\x29\xfe\x11\x7a\xf1\xab\x86\x5e\xf4\x57\xb9\x9c\x8c\x01\x2e\x6b\x2f\x1f\xcd\xef\x4e\x46\x5a\x4f\xc4\x3e\x39\xd4\x72\x38\x84\x81\x71\x07\x1c\x11\x03\x13\xcd\xd5\xba\xeb\xee\x32\x1d\x16\xc7\xa1\xf9\x64\x3a\x6f\x17\x83\x78\x40\x00\xe8\x98\x44\x60\x2b\x44\x0b\x69\xc6\x93\xb6\x80\x8a\x20\xbf\xce\x01\x43\x88\xf9\x3e\xda\x49\xcf\xfa\xa4\xc5\xa2\xcc\x50\x22\x9e\x3f\x4b\x82\xac\xd6\x3a\x10\x13\x3a\xb8\xfc\x86\xde\xdd\x43\x35\x26\x94\xf4\x41\x23\xfa\x82\xa9\x4c\x9e\x3b\x87\x09\x75\xf7\x89\xf9\x4b\x52\xfc\xda\x62\xba\xd5\xa3\xcd\x5b\xf2\x1c\xd9\x3e\x3c\x5e\xbd\x5f\xa6\x0f\x5c\xa4\xd0\x16\xdb\xae\x8e\x66\xac\xb9\x7e\x5a\x70\xc0\x04\xa9\x82\x9d\x2f\x18\x91\xd5\x89\xb6\x15\xda\xd3\xd8\xb2\x2f\x99\xc3\xdd\x92\x3c\x66\x65\x9e\x29\x2d\xf4\x98\xbd\x57\x39\xd2\x7a\x11\xe7\x8e\x0f\x78\xb8\x7e\x7f\xca\xde\x7e\xf3\x6f\x5f\xcf\xe4\xeb\x16\x65\x08\x0e\x51\x95\xaf\x28\xfe\x02\x54\xa0\x0d\xd7\x85\xc8\x8f\xf3\x65\x74\x8c\x47\xc7\xb1\xf9\xfe\x88\x2a\x3d\x52\xcb\x23\x97\xca\xe0\x88\x58\xdd\xc7\x9b\xf8\x4d\x17\x32\xb1\x5d\xe1\xfe\xd5\x2e\x3d\x93\x0e\xc5\xbc\x6d\x7e\xf7\x0b\xd6\xca\x16\x42\x45\x84\xb4\x10\x0d\x1a\x0b\x52\x31\xaa\xa5\x4b\xbe\x83\x71\xbe\x98\xa7\x4b\x2d\x5b\xfe\xf1\x5d\xaa\x16\xfa\x8d\x23\x80\xe5\xda\xd6\xe1\x19\x19\xdb\xe4\x76\x63\xcf\x1d\x72\xfb\xa6\xa1\x78\x49\xb3\x9a\x95\x89\xe1\xb4\x0d\x19\xf8\x76\xa1\xe1\x75\x41\xe4\xa3\xe2\xb9\x2a\xa5\xcd\x6e\xa1\xa4\x50\x4b\x80\x39\xc1\x35\xc9\xa2\x34\xc1\xb3\x00\xd8\x3f\xc7\x3d\x95\x8b\x0c\xb5\x0f\xf0\x81\x75\x0f\xf7\x81\x19\x5e\xf6\x8d\xf3\x4b\x64\x78\x39\x74\xdc\x49\x30\xfe\x4a\x03\x7e\x68\x28\x05\x6e\xa5\x21\x08\x24\xf3\xfe\x5e\xb4\x81\x93\x03\x3e\xc3\xb4\x4f\xa6\x90\xf1\x1c\x34\x78\x71\x54\xa8\x23\x20\xed\x03\x2a\x38\xcc\xb9\xd4\x05\x41\x02\x94\xc6\x90\xe3\xde\xbc\xdf\xa3\x9d\x78\x6b\xfb\x14\x34\x94\x14\x56\x8d\x14\xe6\x04\x49\x4f\xa4\x14\x39\x79\x80\xf7\x6a\x06\x03\x31\x1c\xe1\x54\xee\x46\xa4\x7b\x33\x45\x98\x0f\xc7\xc5\x23\xf2\x40\x08\x8c\x19\x5c\x4d\xd6\x6a\xa3\x8c\xae\xab\x4a\x1d\x3c\xc4\xab\x2d\x28\x13\x9d\x8a\xf9\x86\x67\xa8\xaf\xfe\x7a\xbd\x31\x5b\xcb\x3c\x42\x13\x74\xf8\xd2\xa0\x14\x63\x8b\x6a\x52\xa5\x3d\xed\x77\xd9\x70\x76\xaf\x1b\x40\x08\x6d\xc0\xe5\xb7\xe6\x0f\xc2\xe6\xb8\x48\xfe\x66\x2e\xbd\x66\x49\xb9\x6b\xa4\xd3\x40\x10\xd0\x86\x5c\xd4\x21\x7c\xd3\x9e\xba\x9d\x6c\x31\xe5\x66\xe0\x1c\xb8\x20\xab\x3e\x13\xc0\x25\x86\x1d\xd9\x78\xa3\xa3\xd6\x80\xa3\xae\x7d\x09\x76\xb5\xd2\xdc\x4c\x2c\x5f\xfa\xb0\xa6\xde\xb8\x02\x88\x1a\xbd\xd9\x6e\x4f\x37\x09\xd1\x69\x38\xc6\x28\x10\xac\x6e\xd1\x05\x72\x1e\xbe\x19\x21\xc1\xdc\x90\xb1\x83\x4a\x70\x71\x36\x46\x30\xd8\x0b\x5d\x03\x38\xcc\xfe\xba\xcb\x9c\xd9\x86\x6f\x47\x86\x5e\x1f\xbd\x6c\x5a\xd9\xb0\x2c\xb8\x0f\x1f\x7c\x12\x63\x80\xff\x2e\x4a\x78\x7e\x71\x79\x1b\x22\x9b\x12\xec\xed\x51\xb4\x16\xd1\x3d\x58\xd3\xf0\xc8\xc3\xcd\x40\xc1\xf8\x00\xb7\xf6\xa9\x4f\x0b\x65\x81\x32\x5b\x97\x0d\xc6\x65\x44\x52\x39\x8b\x13\x9d\xa5\x7c\x0b\x90\x04\x89\x71\x8a\x1e\xce\xe0\x02\x7c\x8d\x28\xd8\xe7\x4c\xe8\x3f\xd3\x66\x56\x26\xfe\xbb\xa1\x63\xe9\x81\xe7\x7e\x30\x9b\xf2\x80\x69\xb1\xe1\xb2\x48\xa2\x99\xdc\x08\x2e\x43\x04\x2b\x41\x32\xcc\x20\xc7\x4a\x50\xbe\x84\xe5\x52\x44\x85\x27\x5c\x86\x4b\x88\x1b\xa9\x7d\x7b\x70\x58\xdf\xdd\xce\xdb\xd9\xf5\x1f\x6c\x7a\xe6\x64\x03\xf8\x68\x5a\x43\x74\x34\x3e\xd1\xd5\x08\xa9\x72\xe9\xc8\xb5\x97\x5a\xf8\xcb\xae\x29\xb6\x10\xc5\xa3\x00\x3e\x21\x22\x40\x68\xd3\xf1\x0f\x4e\x97\x74\x48\xf0\xe0\xc4\xf1\x0f\x12\xbd\x7c\x83\x40\x98\x36\x58\x08\xbc\x74\xc4\x87\xb2\xc6\x60\xf8\x8a\x28\x19\xc0\x14\xf8\x8a\x8c\x9a\xaf\xe0\x98\x36\xb7\xe0\xfc\x41\xc4\x33\x59\xa5\x95\x24\x9d\xd1\x6f\x38\xe6\x13\x81\x3e\x8f\xb4\xb1\x63\xdc\xcb\xd1\x73\x06\x54\x5a\x9e\x44\xdb\x91\x0e\xec\x48\x4c\x8a\x9d\x7e\xc9\x5b\x95\xcd\x89\xdc\xf7\x32\xec\x73\x85\x52\xa2\x3f\xca\x0b\x5c\x41\xff\xb8\x45\xe9\x48\xf3\x90\x51\xd7\x81\xc5\xc9\x68\xdd\x30\x83\xb7\x95\x31\x93\x96\x4d\x66\x59\xa6\xc8\x92\xde\x15\xb3\x43\x1c\x9a\x36\xf2\xf5\xd7\x8b\x80\x76\x46\x57\x16\xe4\x56\x75\x20\x9d\x00\xb8\x8f\xb2\xce\xae\x7a\x21\x75\x09\x2a\x85\x4d\xab\x08\x5e\x89\x95\x28\xe0\x34\x8f\xcb\x14\x01\x9b\xe0\x4e\x01\x3e\x4e\x9e\xa6\x2c\x29\xf4\x4c\x3a\xfa\x50\x0c\xcc\x01\x09\x6b\xfd\x2d\x31\x5d\xb9\xa0\x0a\x28\x16\x1e\x73\x09\x7a\x58\x12\x25\x45\x23\xdc\x61\x1b\xa6\x22\xcb\x32\xc1\x31\x96\x1f\xa7\x6d\x26\xc3\x3b\x57\x7d\x12\x28\xf0\x1d\xb2\xd7\x3f\x47\x0c\xfa\x0e\xc3\xad\xa9\xe2\x49\x28\x1b\xec\x9d\xb9\x70\xd9\x2c\xe3\xd8\x5a\xe2\x0f\x22\x54\xb2\xb9\xd5\x14\xda\x3a\x50\xfc\xbd\x15\x62\x7a\xa2\x32\xe5\x39\x06\x33\x2d\xcb\x94\x25\xcb\x20\x61\x3a\xcc\x01\x92\x47\x9a\xe9\x8a\x14\x9c\xd5\xd6\x85\xa2\xf9\x46\x04\xbc\x35\x64\xde\x49\x03\xc4\x0f\x66\xc4\x40\x28\x89\x29\xeb\xcd\x98\xbd\xf3\xf4\xb8\x38\xc3\xb0\x27\x02\xd2\xe9\x44\xa3\xf8\x73\xed\x0d\x28\x17\xa0\x77\xa6\x89\x4a\x9a\x1d\xe9\x76\x5d\xc7\x0c\x42\xf2\x9a\x61\x70\x22\x9b\xba\x68\x37\xc2\xbe\x95\x72\xc5\x7c\x5a\x03\x19\xb9\x0d\xd1\xd1\x40\x7b\x2a\x0c\x6c\x64\x48\xd8\xfd\x84\x86\x3a\x42\xf4\x96\xc6\x6e\x76\xe4\x67\x87\x79\x1c\xd8\xd4\x20\xdb\xe1\xf0\x86\x06\x2b\x27\x04\x8f\xf5\x19\xd9\x15\x2f\x86\x22\xc9\x5c\xe0\xda\xf0\x86\xb6\xa2\xf6\xfa\x34\x13\xa4\xc7\xc0\x76\x4e\xcc\x37\x4f\x6c\xa8\x2e\x17\x47\x28\xa0\x5d\x3e\x24\x10\x15\x82\x47\xeb\x2a\x87\x84\x65\x7a\x76\x3d\x80\x18\x42\xd8\x8f\xc3\xe9\x2f\x26\x7e\xcd\x41\xc2\x47\x66\x9a\x3f\x66\x97\x52\x20\xce\x53\x2d\x83\x43\x85\x1a\x40\x99\x21\x21\xd9\x8e\x93\x72\x0b\xd3\x30\x79\x6f\xa9\xb5\xcc\x96\x1b\x31\xee\x4b\x07\xa9\x87\xcb\x06\xa5\x48\x87\x2e\xd9\x96\x9a\xea\x00\xf5\xb2\x1f\x41\x45\xfb\x9d\x3f\x80\x4b\x0f\x97\x00\x6d\xfd\xe8\x3f\x2d\x3b\xe3\x1e\xdc\x2d\xce\x06\x3b\x54\xd7\x0d\x43\xf0\xf3\xbe\xf1\xbd\x5a\x57\x31\xb3\x03\x12\x39\xde\x5d\xbc\x3b\x7b\x3f\xbd\xa8\x66\x5f\xfc\xe3\xdd\xd9\x5d\xf5\x97\xeb\xbb\x8b\x8b\xe9\xc5\xf7\xe1\x4f\x37\x77\xa7\xa7\x67\x67\xef\xaa\xef\xbd\x9f\x4c\xcf\x6b\xef\x99\x9f\xaa\x2f\x4d\xbe\xbb\xbc\xae\xe5\x7b\xb4\xc9\x1a\x83\x9f\x6e\xa7\x1f\xce\xde\xcd\x2f\xef\x2a\x29\x23\xdf\xfd\xc7\xc5\xe4\xc3\xf4\x74\xde\xd2\x9e\xeb\xb3\xd3\xcb\x9f\xce\xae\xf7\x64\x7c\xf4\xfd\x6d\x1d\xd2\xe7\xc0\x16\x3e\x39\xff\xe7\x84\x2d\xf3\x44\xc8\x38\xdd\x62\xa4\x88\xbd\xd9\xd6\xa0\xdf\xe1\xd9\x9b\x6c\x84\x2a\x0f\x09\xf8\xb8\x5d\x0b\xa6\x1e\x44\x0e\x2c\x60\x58\x1a\x51\x86\x78\xc6\x81\x7a\xad\xb9\x28\xf2\xa6\x57\x60\x67\x54\x5d\x91\x6f\x5d\xdc\xe6\xae\xe6\x78\x06\x49\xaa\x84\x65\x22\xdf\xd5\x16\xd0\x8c\xf2\x32\x2b\x92\x45\x77\x08\xcf\xe0\xc0\xfb\xbe\x77\x6f\xe4\x3b\x6e\x27\x87\xbb\x68\x17\x8c\x95\x48\x96\x43\x60\xf2\x50\xc2\x53\xd3\xda\xba\xaf\x2d\xb4\x38\x2b\x17\x69\x12\xb1\x24\xae\xdb\x53\x88\x0f\x03\x4c\xc6\x75\x5a\xf4\x4c\xe4\xa0\xaa\x9a\x1b\x40\x96\x8b\x23\x5e\x16\x6b\xa4\xf0\xa4\xc0\x19\x4a\x62\x33\x93\x5a\x44\xb9\x40\x5f\x80\xd0\x60\xa4\xc5\x7c\xa6\x41\x4d\xd0\x18\x62\xb0\x89\x81\x2c\x6f\x1c\xa4\xa8\xe9\xf0\x11\xe0\x97\x58\xfa\x00\x23\x29\xbe\xbf\x73\x68\xa8\xc5\x09\x66\x4c\x0d\x60\x61\x70\xc2\xe3\x43\x9b\x15\xd5\xf4\xdb\x48\x6a\x97\x15\x14\x27\xd9\x46\x1a\xb5\x77\x63\xdf\x1a\x0b\x17\x4a\x35\xf4\x86\x4a\xa7\x47\xa7\xb9\x80\x43\x84\x20\x0d\xd6\x7e\x01\xb8\x26\x8a\x4c\x82\x80\x24\x73\x55\x5b\x88\x35\x4f\x97\xa8\x71\x98\xa9\x69\x67\x15\xc1\xf2\x6f\xd5\xbd\x90\xd7\x38\x61\xbf\x8a\x38\x94\x78\xf3\xf1\x9c\x46\xce\x22\xe4\x4d\x98\xa6\x8d\x76\x55\xd9\xb8\x50\x50\xa6\x0a\xbc\x27\x04\x8f\x31\x00\xc9\x67\x2c\xb0\x21\xa5\xcb\x65\xf2\xc9\x14\x38\x93\xa2\x95\xb3\x1d\xc0\x64\x96\x5d\xd2\xc9\x65\x00\xce\x21\x45\xdf\xbd\x90\x90\x4f\x15\xc8\x01\xf7\xaf\xd9\x61\xf6\xf3\xe6\x5c\xec\x30\xe8\x83\xcd\x2f\xa9\xa4\x99\x0d\xbd\x3c\x76\x9c\x0a\x8c\x08\x73\x1c\x1c\xb0\x6e\x4e\xcf\xa7\x67\x17\xb7\xf3\xd3\xeb\xb3\x77\x67\x17\xb7\xd3\xc9\xf9\x4d\xdf\xed\xf7\x1c\x51\x7c\xb5\xdd\x57\x0f\x66\x73\x12\xe2\x98\x76\x9e\x0f\x65\x77\x9d\xf2\xdb\x0e\xa6\x64\x7f\xeb\x93\x38\x9b\xc7\x89\x8e\xcc\xf1\xb7\x9d\x0b\x19\x43\xb2\x8b\x27\x2d\xd5\xf6\xa2\xea\xbd\x70\x6f\x30\xf7\x86\x95\x20\x78\xda\x3d\xd8\x15\xed\x9e\x03\x24\x13\xcc\x90\xb9\x30\x9b\x3f\xae\x70\x8c\x8c\xf7\x67\x38\x33\xc5\x1d\xd6\xb7\x6a\x11\xf5\x3e\x61\x7b\x13\xad\x4b\xa0\x32\xb1\xaf\x01\x1e\xb5\x63\x54\x88\x81\x38\xcc\xb8\x91\x04\xd9\xe2\x59\xa2\x67\x72\xc3\x65\xcc\x0b\x95\x6f\x3b\xba\xd8\x4f\x78\x86\xdb\xa6\x2a\x42\xc3\x23\x5b\x0a\x11\xdb\x59\xc0\x57\xb9\xac\x2f\x25\xcc\xcb\x71\x7b\xf9\xe3\xd9\xc5\xcd\xfc\xec\xe2\xa7\xf9\xd5\xf5\xd9\xfb\xe9\x9f\x1c\x4c\x36\xe3\xba\x2d\x3b\x74\x96\x0b\x23\x5d\x2c\xcd\x59\xab\x7c\xc1\x94\xcd\xb6\x1c\x4a\xd3\x99\x2c\x67\xd2\x4a\x96\xdc\x17\xbf\xce\x55\xb9\x5a\xb7\x17\x54\x6f\xe5\xd5\xe4\xf6\x87\x27\x35\x13\x48\x28\x31\xaf\x2b\xee\xb6\x26\x5c\x38\x59\x92\xdc\x43\x8c\x71\xad\x79\x40\xa5\x0a\xaf\xb6\x79\x19\x3a\x24\xda\x93\x6e\x2f\x4d\xa1\xb5\x53\xf9\x6f\x79\xbd\x6b\x01\xdd\x06\x72\xb3\x72\x8c\x00\x7c\x1d\xd3\x83\x37\x4a\x3b\x69\xf9\xad\x72\x82\x7d\x75\x94\x8a\xd5\x4a\xc4\xb8\xbc\xea\x05\x93\x0d\x8e\x44\x60\xe4\xcf\xf5\xb6\x51\xa4\x04\xbe\x07\x1c\xcc\x0e\xef\xd5\x5f\x80\x5f\xb9\x4f\xda\x65\xc5\x29\x11\x49\x81\x7f\xb3\xe0\xb2\xc3\x91\xbc\x3f\x1e\xac\xbd\xf8\xcb\x9c\xb9\x50\x3d\x32\x98\x58\x97\x81\xdf\x07\x5d\x80\x97\xc3\xf1\xad\xae\x1d\xd7\x22\x4b\x79\x24\x5c\x80\x0b\x32\x00\xc3\xbd\xfe\x29\x0e\x3c\x4a\x93\x2c\xc9\xde\x12\xa4\x4f\xf6\x99\xe1\xda\x96\x00\x58\x6e\xaf\xad\x3c\x7e\x79\xd3\xca\xce\x8b\x1b\xf1\x7e\x82\xa1\x19\xf3\x54\x52\x5c\x04\xda\xa2\x20\xf9\x6b\x27\x66\x7d\xd0\x72\xa8\xd5\xfc\x13\x4d\x3c\xde\x99\xab\x86\x6e\x6e\x99\x75\xdd\xf2\x70\xaa\xe3\x2e\x7b\x61\x51\xe4\x3b\xc9\xb8\x9f\xc3\x1d\x71\x95\xab\x4d\xa2\xc5\xa4\x28\xf2\x64\x51\x86\xd9\x88\x07\x02\xe6\x2a\x97\x13\xdf\xe1\x2c\x57\x71\x19\x59\xfa\x2c\xe8\xad\x87\xfd\x90\x95\xcf\x6a\x1d\x31\x3b\x32\xab\x8f\x6e\x6e\x22\x3e\x82\x68\x0f\xe4\x77\x6b\xf3\xb1\x59\xc1\xd8\x61\xfb\xbb\xb2\x47\xf9\x33\xc7\x8c\x76\x0f\xa6\x5d\x03\xfd\xc2\xc0\x99\x7d\x1d\x34\xe0\x0e\xd4\x14\x2d\x97\x05\x47\x07\x7a\x55\x47\xe9\x62\xcb\x71\x47\xcd\x30\x70\x57\x3f\x6c\x4c\x35\x9c\x0a\xf5\x86\x35\xd7\xa8\xce\x17\xd1\xba\xda\x70\xe8\x4d\x95\x35\xb8\xde\x5c\xa7\x1e\x1f\x66\x36\xe9\xe5\x46\x1b\xa1\xa1\x21\x21\xc3\x76\x25\x03\xac\x4b\x67\xdd\x69\xbf\xc7\x90\x8b\xf9\x2f\xa5\x18\x92\xd5\xd9\x86\x6a\xfc\x11\x3e\xdb\x0b\x48\x49\x10\xbb\xe5\x6c\xaf\x45\xb2\x31\x1a\x10\xcf\xa3\x35\x5b\x70\x4d\x74\x84\x21\x5b\x02\xa6\x9f\x67\x89\xf9\x8a\x47\x05\xa5\xe3\xb5\xd5\xda\x94\xbc\xb7\x16\x0a\x69\xd4\x5a\x6f\xf5\x68\x5b\x6e\xfb\x06\x60\x88\xf5\xda\x36\x63\xfa\x6e\x90\x0f\x21\xd4\xc3\xdd\x3d\x19\x8f\x58\x38\x9d\x52\x5e\xca\x68\xcd\xb2\x94\x23\xa1\xc4\x9a\x6b\x14\x14\x16\xa1\xc3\x17\x49\x9a\x14\xc0\x13\x86\x8e\xe3\xda\xba\x35\x97\x67\x9e\xdf\xdb\x74\x0b\xdc\x93\xc2\xed\x12\x25\x07\x22\xa1\x5d\xaf\x3e\x2b\x16\xda\x0b\xc2\x50\xb8\xf7\xdb\xec\x84\x83\xf6\xd3\x61\x8e\x37\xd8\xec\xbe\x2f\xc3\xbc\x43\x54\xe2\x55\xfd\xf3\xda\x78\x23\x01\xe5\x41\x24\xc1\x3b\xe3\xb2\x5e\x04\x74\xee\xa3\xca\x76\x1f\xa3\xcd\x0e\xb7\x28\xc1\xc3\x81\x4f\x94\x38\x69\x80\x12\x53\x4f\xab\xd4\xba\xef\x97\xa9\xe2\xc5\xee\x28\x37\xcc\x92\xd4\x55\x76\xac\xca\x45\x57\x5e\x0e\x6c\xd5\xd3\x63\xe8\xac\xf8\x7f\x2e\x9b\x7b\x78\x8e\xf2\x42\x18\xe9\xfb\xb4\x01\x35\x5f\x1f\xc1\xe7\xed\x85\x53\x14\xf3\x60\x46\x0a\xb7\x0c\x7c\xae\x3e\xa7\xfb\x03\x24\xb5\x65\x3b\xd5\x95\xbc\x83\x62\x1e\x0f\x9b\xaf\x44\xee\x59\x4a\xfb\xd3\x7f\x7d\xfd\x55\x9f\x68\xc4\x3f\x96\xdc\x1c\x00\x97\xcb\x1b\x24\x08\x3b\xa4\xd3\x45\xd2\xdc\x56\xed\x62\xa0\x5e\xeb\x6d\xd5\x4b\x1b\x2e\xfc\xde\x6c\x07\x6d\xbd\xb9\x31\x5f\xf7\x17\xbb\xd3\x8a\x35\x36\xcb\x13\x05\x44\x59\x6a\x59\xd1\x35\x5a\x24\x71\x6b\xbd\x07\x8c\xe4\x2f\xa5\x28\x85\x59\x40\x8b\x32\x5e\x35\x9d\x25\x03\x2e\x5c\xbe\x4b\x6b\xf5\xc8\x36\x65\xb4\x66\xb6\x70\x16\x8b\x94\x6f\xab\x6a\x94\xb9\x6b\x14\x0a\x28\x94\x07\xf1\x05\x06\xc4\xf7\x51\xa9\x0b\xb5\x01\x9c\xba\x2f\x37\x2f\x25\xec\x72\xc6\xed\xee\x6a\x3b\xd0\x2a\x84\x9e\x4f\xf4\x90\xdf\x5c\x9d\x9d\x4e\xdf\x4f\x6b\xee\xe9\xc9\xcd\x8f\xe1\xdf\x3f\x5f\x5e\xff\xf8\xfe\xfc\xf2\xe7\xf0\xb7\xf3\xc9\xdd\xc5\xe9\x0f\xf3\xab\xf3\xc9\x45\xc5\x89\x3d\xb9\x9d\xdc\x9c\xdd\xee\xf1\x53\x37\x6b\xed\x9e\x08\x1e\xf0\x8d\x5a\xe4\xbc\x4d\xa6\x63\xcd\x55\x54\xeb\x09\x9b\x58\xf6\xd5\x0a\x3f\xb0\xc5\x1a\x00\x38\x29\x45\x8c\x25\x42\x12\xde\xf1\x82\x9f\xf2\x82\xa7\x6a\x35\x66\x13\x46\x71\x05\x18\x2f\xa2\x8d\x4a\x48\xd4\x94\x66\x76\xb0\x08\xa3\x17\x46\xde\x14\xe4\xb3\x85\xab\x25\x91\xc2\xa6\x22\xcc\x2b\x65\x83\x3c\x67\xf2\xec\x41\xc8\xa2\x04\x45\x9b\xa7\x29\xa3\x6a\xed\x0b\x01\x2b\x88\x6d\xa5\x4e\x36\x49\xca\x73\x9f\xd8\xf9\x92\xca\x82\xcb\xae\x6d\xab\x63\xa5\x6b\x52\x4e\x58\x7b\xc0\xdd\x94\x41\xbb\x4f\xcf\xa7\xa0\xe8\x46\x85\xcd\x5a\x68\x2b\x9f\x49\x24\x1d\xa5\x1a\x37\x1c\x62\x98\x0a\x45\x06\x7a\xac\x9e\x5e\xee\x5e\x88\x07\x29\x56\xd6\x95\xf5\x52\x86\x09\xd7\x48\xfb\x8f\x33\x59\xe4\xdb\xde\xda\xeb\x2d\x30\x3a\x68\xb8\xd7\x11\x24\xb2\x9a\xec\x19\xed\xa7\xcc\x96\x7e\x01\x2a\xad\xc5\xeb\x92\x7b\xcf\x79\xf1\x10\x1e\xd5\x71\x25\x4a\xcd\xc9\xfb\x5b\x1d\x87\x90\x05\x0c\x46\x61\xa1\x4a\x19\x6b\x02\x6f\x6e\x12\x79\xbc\xe1\x9f\xde\xd8\x9e\x22\x89\x8d\x4b\xb9\x06\x8c\x89\x22\x35\xf7\xc1\xad\x11\x72\xbb\x87\x6b\x26\x77\x8c\xd7\xfe\x3b\x81\x95\xac\x60\x32\xf0\xf6\x1d\x84\xa1\x3e\x88\x6d\xdb\xfc\x35\xd2\x66\xb2\x30\xf7\x03\x14\x92\xe5\xc2\xbc\xe8\x30\xae\x29\x42\x97\xdd\xdf\x10\xcb\x52\x49\xed\xdd\x2e\xbb\x43\xd8\xc8\x41\xdb\xa6\x15\xb0\xd2\x5f\xf1\xe9\x9d\xf7\x94\x6a\x32\x73\x86\xf0\x15\xeb\x39\xa1\xd8\x1d\xf2\xcb\x9b\xc9\xfa\xab\x5a\xb0\x25\x04\xb2\x91\x9d\x20\x17\xe0\x29\x83\xa9\xb0\x89\x7a\x80\x57\xaf\x81\x89\xb1\x4b\x20\x15\x1a\xfc\x47\xd2\x5c\xaa\xc5\x2f\x25\x41\x00\xde\x7e\x39\xec\x9c\x2d\x30\xdb\x03\xd2\x7b\xd7\xf3\x20\xb8\xb3\x1c\xda\x55\xca\xa4\x8d\x6c\xf3\xba\x94\xe6\x28\x7e\x0e\xf4\x54\x7f\xf7\x78\xad\x52\xfa\x73\x6f\xac\x99\xf5\xec\xe4\xf8\xfe\x8b\x31\x37\xff\x54\x23\x6c\xa6\xea\x20\xb2\x81\x4a\x0f\x0f\xb4\x05\x8f\xee\x1f\x79\x1e\xa3\xf9\x1f\xe0\x4c\x63\xf6\x83\x7a\x14\x0f\x22\x1f\xb1\x48\xe4\x05\x27\xbe\x42\x0d\x78\x0e\xd8\x50\x54\xce\x4c\x42\xa0\x0f\x92\x3f\x4a\x5d\xe6\x82\x15\xc9\x6a\x5d\x88\x3c\x44\xe3\xa8\xdc\x88\xa3\x02\xa9\x6a\x33\x11\x11\x21\x5b\xc7\x00\x2c\x53\xfe\xd0\x24\x60\x7c\x0a\x93\x0c\x9b\xba\x68\x65\xeb\xee\xb6\xc9\xcf\x76\xe1\xa7\x68\xc0\x48\x68\x22\x85\xd6\x88\xad\x54\xca\xe5\x6a\x3c\x1e\x43\xa2\x8f\x37\x83\x16\x3a\x15\x18\x3a\xd0\x1d\x4a\x3f\x55\x4a\x8b\x74\xeb\x48\xc4\x5c\x1c\x15\x00\x77\x3f\x15\x42\xea\x04\x0d\x5b\x2d\xcb\xff\xa6\xee\x5c\xfa\xbc\xbe\xb8\xf6\xeb\xf9\xe0\x28\xdd\x8e\x72\x20\x97\xea\x80\x92\xf0\xfd\xf6\x9b\xd7\x93\xa2\xce\xdb\xcb\x92\x4a\x0e\x0d\xa5\xfe\x49\x25\x1d\x50\x90\x27\x91\x8d\xb6\x96\x44\x44\x48\x4f\x0a\x3f\x6d\x1f\xb3\x46\x44\xf0\x01\xc1\xc0\x3b\xe2\x7a\x07\x86\xf4\xf6\x31\x04\xdc\xd4\xa7\x7b\xf0\xb6\xd8\x9f\xde\xad\xb5\x43\x03\x43\xa6\x3d\xb7\xc1\x10\xd5\x09\xa3\x2e\xd3\x2d\xdc\xb8\x5c\x00\x35\xb8\x07\xe2\xc0\xab\x54\x71\x9a\x41\x28\x9f\xf7\xba\x39\x82\xba\xc0\xc9\xa6\x0b\x95\xf3\x95\x60\x1b\x11\x27\xe5\xa6\x55\xd8\xb8\xe6\x1e\x02\x1f\x55\x69\xb9\xe9\xa6\x0a\x3d\x54\x81\xf6\x8d\xc4\x7f\x9d\x42\x75\xfd\x39\x74\x5c\x64\x84\xcd\xb2\x49\xed\x45\x17\x12\x8d\xb5\x39\x29\xf3\x44\x03\xcb\xee\x53\x22\x67\x5d\x31\x58\x34\x38\xe0\xb7\x19\x1a\xd9\x2b\xb3\x7b\x64\x3d\xa3\xf4\x89\xc6\x59\x05\xaf\x7d\xf7\xa1\x50\x07\xa5\x0e\xcf\xb5\x97\xab\xb2\xc1\x3d\xd5\x0b\x28\x01\x6a\x63\x90\x79\x83\x50\x73\x50\x20\x41\x7b\x0a\xc5\x96\x36\x16\xf3\x5e\x04\xd4\x87\x31\xe4\xe4\x78\x44\xca\xa7\x1f\xbf\xd1\x16\x04\x44\x38\x2d\xaf\xb1\x14\xbe\x12\xf4\x00\x3d\xbc\xb5\xf0\x3c\xec\x21\x16\x01\x04\x85\x31\x97\x45\x6b\x01\x1e\xbd\x0a\x65\xe1\x27\x3f\xf1\x32\x6d\x7f\x9d\xca\x87\x57\x31\x67\xeb\xe4\xe7\x1b\x86\x43\x4d\xf9\x13\xf2\x5d\x0d\x0d\x0a\xd9\x0f\x10\x84\xe1\x9a\x3f\x41\x13\xac\xcc\x03\x0e\xba\x4d\xdf\x61\x86\x5d\x14\xd1\xda\x6b\x1e\x40\xd0\xe8\x88\x25\x29\x21\x37\xf5\x73\xe3\x33\x42\x20\xf6\x3a\x04\xb1\x26\x2b\xa9\xc2\x54\x4a\x4a\x0a\x70\xc5\x19\x01\xa4\xc2\x62\x59\x52\xec\x47\x0a\x0e\x64\x25\xdc\xb7\xd4\x0a\x85\x08\x30\xea\x67\xc5\x4f\x0d\x57\x8a\x04\xe9\xaa\x2c\xcc\x1a\xef\x44\x94\xdf\xb9\x9e\x29\xa0\x4a\x00\x32\x93\xd5\xaa\x1a\x83\x64\xa1\x7c\x49\x2e\x90\xe0\x5b\x1b\xed\xad\x48\x1e\xcc\x46\x6d\x2e\x6b\xb7\x40\x41\x02\x34\xd7\x1e\xb9\x6d\x59\xc0\x12\x7e\x2f\xb6\x3a\x4c\x26\x4d\x2b\x8a\x75\x2d\xc8\xc4\xf4\x87\xe6\x6b\xff\x54\xc0\xc0\xcd\x73\x9f\x12\xb2\xdf\x59\x86\x95\x7e\x30\x1f\xef\xc0\x08\x37\x0a\x37\x6b\xd0\x07\xbb\x7a\x9b\x22\x89\x09\x3f\xce\x34\x87\x1e\x06\x08\x20\xcf\x10\xc6\x19\x46\x2e\xc1\xc5\xd7\xdc\x6f\x67\x92\x12\x09\x04\x87\x9c\x11\x38\xcd\x69\xa3\x08\x7c\xa4\x2f\xdf\x56\xd8\x83\x80\x5a\xd5\xd2\xcc\x56\xab\xb4\xde\x65\xc8\xcb\x07\xcb\x03\xaa\xc6\x18\x65\x6b\xc3\x6b\xad\xf0\x89\xd8\x52\x9a\xdc\x4e\x3c\x69\x10\x08\x88\x6f\x12\xbb\x28\x66\x25\xc7\xdb\x4f\x24\xcc\xf0\x4d\x64\x2b\x94\xd3\x02\x39\x6f\xce\x4e\xaf\xcf\x6e\x3f\x1b\xde\xd4\x82\x3d\x07\x03\x4e\x6d\x3b\xdf\x9d\xbd\x9f\xdc\x9d\xdf\xce\xdf\x4d\xaf\x5f\x02\x71\x4a\x8f\x9e\x00\x39\xbd\xa1\xfc\x24\xa7\x4a\x16\xe2\xd3\x41\x67\x72\x5e\xca\x39\x1f\x10\xfa\xe4\x32\x14\xed\x52\x77\xb0\xd0\x66\x7e\x15\x97\xfc\x84\xb8\x6d\x09\x75\x62\xd3\xa9\x2c\xbd\xd1\x70\x99\xa4\x29\x44\x82\x3b\xf3\x3a\x45\x19\x9a\x41\x05\xf9\x63\xe9\x7c\x49\xa6\xce\xe4\xa2\x92\xfe\x06\x4c\x7e\x6b\x73\x09\xc6\x18\xf0\xcc\x0c\x40\x9e\x40\x84\xed\xae\x14\x2c\xab\x44\x0a\xdf\x0c\x98\x35\xd3\xbe\x4e\x9a\x7a\x9a\xc4\x97\x44\xd6\x91\xe2\xd5\x57\xd7\xb4\x2b\xae\xb2\x3e\xad\xfa\x69\x1f\xba\x1e\xe2\x26\x4e\x24\x2a\xa6\x95\xdd\x7c\xd3\xbe\x74\x8f\xfd\x16\x80\x71\x37\x33\xc9\xc1\x07\xa1\x0b\x9e\x17\x7e\x22\x69\x22\x30\x31\x9c\x77\x4e\xdc\x27\x88\x40\x53\xcb\xda\x38\x1b\x51\x68\xc6\x3a\x01\x4f\x05\x27\x72\x9b\x28\x2d\x75\x21\x72\x32\x9b\x4c\x7e\xbe\x99\xc9\xef\xcc\xf1\xf5\x86\x4e\x21\x4a\xdf\x85\x55\x20\x52\x47\x55\xea\xb7\x1a\x4a\x28\xc1\x5e\xa3\x8d\x7a\x23\xb8\xd4\x0c\xb6\x46\x9a\x8a\xdc\xaf\x0c\x6c\x8f\x10\x31\x25\xd1\x06\xaa\x67\xff\xfd\x1b\x46\xe0\x56\x33\x14\xa6\xbd\x2e\x8d\xd8\x46\x15\xcd\xf5\xd4\x45\x34\x00\x88\xf3\x97\x5c\x39\x2d\x81\x4f\x7d\x57\x11\x81\xf5\x5b\x17\x51\x35\x0c\xa9\xd7\x5a\xba\xc5\xe2\xfe\xb1\x94\x9e\x71\x29\xf5\x38\xd7\xc3\x53\x82\xad\x95\x11\xa0\x2e\xb7\x95\x77\x33\x3b\xa2\x93\x14\x50\x6e\x66\x18\x5b\x4f\x9d\x5a\x76\xd9\x43\xb0\x1f\x50\xd4\x61\x08\xed\x49\x0b\xa3\x92\x4f\x63\x68\x7d\x3b\x3b\x13\xd7\xbe\x0c\x73\xe1\xc4\x62\x55\xa5\x2a\x2c\x07\x89\x83\x87\x12\xd6\xd5\xbc\xe0\xc8\x6f\x76\xb6\x91\x08\x65\xac\x96\x32\x3f\x30\xf9\xe3\x6d\x88\xa9\xad\x44\x65\x63\x2b\x42\x3e\x07\xcb\xe1\xe0\x38\x60\x86\x2c\xbe\xa7\xa7\x17\xae\xae\x39\xc7\x27\xfa\x24\xb0\xc3\xc5\xe5\xc5\x59\x08\x55\x98\x5e\xdc\x9e\x7d\x7f\x76\x5d\x89\xe7\x3f\xbf\x9c\x54\x62\xf2\x6f\x6e\xaf\x6b\xa1\xf8\xdf\x5d\x5e\x9e\x9f\x35\x30\x0f\x67\xb7\xd3\x0f\x95\xc2\xdf\xdd\x5d\x4f\x6e\xa7\x97\x95\xf7\xbe\x9b\x5e\x4c\xae\xff\x23\xfc\xe5\xec\xfa\xfa\xf2\xba\x56\xdf\xdd\xe9\x6e\xf4\x44\xa5\x1b\xed\xe6\x1f\xef\x9c\x0d\xa8\x55\x5b\xb7\x71\x35\xfd\xf2\x01\xbb\xb8\x27\xf2\x6c\xdf\x72\xb4\xe1\xfa\x71\x98\x8e\x03\x37\x86\x69\xea\xa0\x55\xf7\xfc\xf9\xa2\x2b\x43\x97\xf1\xc3\xc4\x9e\x39\xd5\xe6\xcf\x81\x04\xdc\xa9\x00\xba\x5a\x6a\x86\x5b\x4a\xcf\x8e\x43\x9b\x81\x07\x6b\xc5\x3b\xf3\x95\xc9\xf8\xc5\x5b\x6a\xeb\xd8\xd7\x4e\x4f\xe5\xb5\x87\x11\xe9\xb9\xd8\x50\x76\x35\x3a\xa8\xcc\x92\x0d\x24\xb1\x55\x14\xec\xc3\x10\x76\x6f\xba\x61\x56\x4e\xb0\x1c\xbb\x12\xfb\xb6\x87\x2d\xed\x66\xdf\x1b\xda\x7e\xaa\xa4\xd9\xf6\x1a\x55\xcb\x80\x76\x03\x65\xd6\x90\x76\xdf\x72\x7d\x3f\xb4\xdd\x54\x49\xb3\xdd\xa0\xf6\x3d\xa9\xdd\x60\xf0\x2e\xda\x69\x74\x06\x08\xb1\xb0\x98\x6a\xf3\x5c\x8c\xbf\x7b\x25\xc8\x9f\xdd\xaf\x8d\x66\x03\xbc\xec\xf5\x32\xe3\xfd\x1d\x19\xd0\x1a\xb7\x5d\x79\x8d\x55\xfe\x06\x9e\x42\x0f\x17\xb9\xe0\xf7\xb1\x7a\xa4\xf9\xa8\x23\x43\x59\x2f\x69\x5e\x1d\x20\x23\xc3\xed\x11\x51\xe4\xe4\x81\x42\x94\x9a\x2f\x1e\x60\x72\x09\xf1\xa2\xa3\x0e\x16\xa4\x5e\xae\x13\x11\x01\xf5\x93\xf4\xb3\x33\x93\xa8\xcd\xb7\xa5\x6f\x36\xb3\x6a\x5a\x44\xd4\x21\xd0\x55\xa7\x43\xa3\x73\x5d\x07\x13\x4b\x71\x40\x65\x0e\x60\xba\x45\x0e\x77\x26\x18\x90\x44\x82\x31\x39\x37\x17\x9e\x5c\x44\x89\x16\x41\xc6\xb8\xd6\x13\xfb\x97\xc3\x52\xa1\x14\xbc\x68\x35\xbb\xf6\xb6\x87\xf3\xa8\x28\x79\xca\x20\x5c\x89\x18\x18\xd1\x56\x89\xbf\x44\x5c\x62\x68\x4c\x21\x36\x19\x44\xf5\x87\x31\x1d\x33\xf9\x33\x00\x25\x70\x0a\x5e\x69\xf6\x3d\x40\x1e\xec\xcb\x74\x08\x6f\x78\x01\x67\xf1\x1f\xb1\x0e\xf7\x6c\x3c\x93\x95\x0c\x4c\xc1\x57\x95\x64\x4c\xe3\x99\xb4\xd9\x3a\x62\x15\xe9\x31\xdc\xf8\xc6\x2a\x5f\x1d\x53\x2e\x75\xb3\xd8\xd5\xfd\x42\xa9\xfb\x63\x21\x8f\xc1\x26\x55\x1c\xf3\xb2\x50\xc7\x00\x97\xc2\xf9\xd7\xc7\x36\xe9\xb1\xcd\x1a\xad\x8f\xd7\xc9\x83\x80\xff\x1b\xaf\x8b\x4d\xfa\x2f\x3a\x5b\x7f\x3a\x5a\xa5\xf9\x91\xf9\xf6\x28\xfc\xf6\xc8\x7e\x7b\x64\xbf\x3d\x32\x9f\xe1\xff\x65\x5b\x74\xef\x88\x4f\xdc\x9c\x65\xa3\x99\x4c\xa4\x16\x79\x01\xda\xcf\x63\x9e\x14\x3e\xd5\xd5\x96\xbd\xfa\xcf\xff\x64\xe3\x9c\x3f\x62\x44\xec\x3b\x5e\xf0\x2b\xb4\x2f\xfe\xfd\xef\xaf\xc0\xa1\x8a\x51\x4c\x19\xcf\x7f\x29\x45\x31\x93\x5a\x98\x4d\xc8\xfe\xd7\x4c\x82\x07\x76\xb3\x9d\x17\x68\x77\x45\x1b\x64\xac\xd9\xb7\x58\xe6\x14\xd9\x48\x63\x6d\x4a\xea\x08\x27\x48\x78\xda\x92\xa5\xbf\xc3\x44\xff\x4b\xfa\x8e\xde\x1f\xb0\xad\x7f\x49\xab\xbb\xda\x26\x5b\xd2\xbf\xa4\x70\x80\xa6\x8a\x5b\xb0\x16\x73\x8b\x17\xee\xc9\xd4\xb8\xb6\x3d\xd2\x80\x06\xbc\xa8\x9b\xbe\x7d\xaf\xdc\x20\x23\xba\xb5\xdc\x37\xc4\x08\xf8\x0a\xbc\x1f\x02\xbc\xe7\x89\xd9\x21\x37\x68\x09\x05\xcd\x0d\x7b\x0e\x3a\x29\xb9\xce\x5d\x79\x68\xb8\xd0\x5f\x9f\x1c\x1f\x8f\xd8\x4a\xc3\x7f\x16\xbf\xc0\x7f\x00\x3d\xf4\x5c\xa4\xbe\x8d\xc1\x74\x40\xb8\xe6\x2c\xef\x9f\x89\xe7\x40\xd1\x7d\x0e\x1e\xf9\xda\x32\xfd\xae\x94\x71\x2a\x7c\x68\x63\xc5\x25\x92\x2a\x33\x93\x76\xa2\x9a\x99\x87\x60\x8e\x17\x22\xe2\x46\xf0\x35\xea\x46\x70\xa9\x5a\x16\x42\xa2\x35\x2c\xf7\xd9\x1e\x39\x5a\xae\x40\x2d\x06\x28\x24\x2f\x08\x72\x2e\xe0\x47\xa8\x04\x88\xd9\x47\xf5\x47\x6c\xab\x4a\xe2\x18\x07\xe6\xdc\x58\x44\x29\x24\x72\xb0\xec\x41\x2c\x17\x45\x99\x4b\xc6\x59\xc6\x65\xcc\x35\xac\xc0\x65\x0e\xde\xce\x9c\xf1\x66\x43\x47\x08\xc7\x55\x65\x01\x9c\x58\x88\x2c\x08\x47\x02\x49\xe0\x83\x36\x8f\x82\x46\xe0\x99\x00\x5c\xd4\x8d\x0f\xc7\x33\x69\xf3\x11\x12\x16\x0e\x2d\x65\x91\xca\xb6\xc4\x78\x54\x1f\xf4\xc4\x5a\xce\x68\xb8\x47\x1e\x6f\x52\x7f\x77\xc4\x92\xaa\x6b\x0d\xf8\xe6\x8b\x20\xc5\xbb\x4d\x92\xff\x5a\xc8\x48\xc5\x22\xd7\x6f\xcc\x36\x4c\xdc\xbd\x03\xf5\x87\x44\xfb\xc9\x00\x29\x65\x0e\x37\xb2\x16\x9a\xe2\x5d\x82\x29\x33\x3a\x15\x86\xf2\x36\x3d\x67\xff\x56\xf9\xad\xa3\x60\xda\xda\x4b\xff\xfc\xac\x88\x98\x10\xd7\x69\xef\x9c\x4f\x37\x41\xe0\x96\x0d\x25\x2e\x16\x8a\x3a\x0e\x29\x27\x36\x9f\x76\x52\x40\x86\xcc\x5c\xe8\x62\x26\xe9\x04\x1e\xb1\xa5\xe0\x46\xcf\x1b\xb1\x48\x3f\xa0\x30\xc6\xe3\xbe\x78\x54\x1e\x83\x63\xd3\xdb\x00\x18\xb6\x52\xb8\x37\x12\xe3\x6b\x9c\x22\xb0\x11\x60\xd0\x75\x43\x77\xaa\x0a\x0c\x56\xab\x40\x7c\xc2\x38\xd8\x6c\x29\xf5\x0c\x6b\x61\xb2\x1e\x18\x89\x2d\x3a\x8a\x59\xbd\x1d\xf8\xc0\x08\x1e\xec\x1d\xc2\x40\x02\xe1\x08\x1a\x37\x61\x69\x71\x9f\x79\x1f\x6e\x48\x59\x0f\xb6\x99\xae\x4d\xb5\x63\x20\xa0\x01\x4f\xb3\x5b\x98\x4f\xf7\x1a\xac\xb4\xc8\x6d\x2a\x17\xec\x2b\x12\x4c\xae\x93\x3c\x3e\xca\x78\x5e\x6c\xed\xf2\x4d\x93\x05\x64\x80\x48\x93\x7b\xc1\x26\x79\xae\x1e\x9f\x7b\x14\x3a\x45\x4b\xd7\x0d\xfb\x10\x24\xfb\xd0\x5b\x7e\x2b\xbd\x6c\xdd\xdc\xf1\x34\x2a\xdb\x2e\xc3\x47\x6b\x3d\xb9\x28\xf2\xed\xdc\x2c\xc4\x4d\xd6\x29\x29\x7a\x05\x4d\xf4\x57\x72\x87\xb1\xe4\xd6\x4c\x18\x9d\x2c\xb9\x95\x59\xfd\xed\xb0\xe4\xb6\x10\xe0\x36\x59\x72\xa7\x17\xd3\xdb\xe9\xe4\x7c\xfa\x7f\x6a\x25\xfe\x3c\x99\xde\x4e\x2f\xbe\x9f\xbf\xbf\xbc\x9e\x5f\x9f\xdd\x5c\xde\x5d\x9f\x9e\xed\xa6\xbd\x6a\xb6\xde\xab\xe0\x47\x2c\xac\xe7\x84\xdd\x06\x40\x0d\x0c\x36\x20\xfd\x9b\xf2\xe3\xc2\xaa\x32\x9b\x39\x91\xab\x11\x6c\xd4\x13\x76\x96\xe7\xd3\x0d\x5f\x89\xab\x32\x4d\x01\x4e\x85\x91\x3d\xa7\xb9\x80\x8b\xe7\x88\x5d\xa9\x78\x1a\x7c\x07\xe1\x88\xad\xdd\x80\xfa\x79\x1c\xe7\x42\x6b\xac\x7e\x44\xf5\x07\xe0\x21\x17\xea\x48\xe0\x39\xfe\xc0\x93\xd4\xdc\xdf\x4e\xd8\x77\x3c\xba\x57\xcb\x25\x86\xcf\x8c\x5c\xe0\x14\xfb\xa5\x54\x05\x67\xe2\x53\x04\x54\x6f\xed\xeb\xe4\x5c\xad\x7e\x05\xa8\x72\x0f\xf7\x54\xc7\x25\x05\x52\xdd\xcd\xdb\x8f\xf3\x76\x41\x40\xbd\xfc\x80\x9f\xbe\xc7\x2f\xdb\x0d\x94\x45\xfa\x0c\xe1\xf1\xe7\x6a\xd5\x9e\x78\x08\xb4\x6b\xca\x96\x44\x8e\x84\x88\xd8\x45\xd4\x8a\xe9\x44\xde\xcf\xe4\xcf\x6b\x21\x99\x2a\x73\xfc\x09\xae\xf9\x46\xcd\x4c\x4b\xbd\x16\x90\xa6\x7a\xc4\x1e\x05\xdb\xf0\x2d\xaa\xcd\x70\x27\x70\xd9\x52\x60\xc9\xc0\x29\x62\xbe\x4e\x13\x69\xa4\x45\x96\xd8\xb8\x84\xfa\xd4\x3f\xc7\x8d\xcb\x12\x1d\xf2\xc3\x79\x88\x77\x9d\xa7\x15\x7c\x1e\x98\xca\x3c\x6e\xd2\x02\x84\x48\x72\x43\x52\x59\xa5\xee\xcb\xcc\x53\xa2\xbe\xb2\xce\x49\x18\xee\x07\x95\xc4\x2c\x2e\xb3\x34\x89\x9c\xdc\x7d\x54\x79\x27\xef\x33\x06\xd0\xf4\x3f\x75\xea\x61\x61\xbb\x3a\xd6\x12\x9d\x13\x20\xe9\x76\x30\x40\xbf\x30\x07\x36\x4b\x64\x94\x96\x90\x66\xae\xd4\x22\x3f\x72\xa9\xa3\x5d\xac\xdf\x6f\x9f\x24\xdb\x93\x70\x1e\x1e\xd6\x16\x06\x9d\xa7\x6a\x95\x44\x3c\x0d\xc1\xcd\x1e\x15\xe1\x58\x78\xed\xb6\xa7\x64\xc2\x10\x07\x61\x1b\xd4\x49\xa4\x95\xe5\x02\x88\xa0\xe7\x20\xca\xe7\x24\xee\x0e\x69\xf7\x92\x99\x0b\x3a\xb6\x2b\xe4\xc8\xb5\xee\x05\x7b\xc2\xf9\xba\x6d\x26\x36\x50\x31\x31\x85\x3f\x53\x8f\x52\xe4\xa0\xc1\x02\xec\xc3\xf4\x54\x2a\xd0\x4d\x5c\x76\x36\x87\x4f\xb6\xd9\x09\x97\x0e\x88\x8d\x91\xb3\xab\xe4\x41\xc8\xcf\x4f\x6a\x1e\x54\x10\xf1\x68\x2d\xe6\x56\x2f\x7f\x6e\x91\xe5\x0e\x80\x81\xc2\xca\xa6\x49\x09\x45\xa9\x73\x6f\xc2\xd5\x09\x5b\xdc\x94\x5d\xe8\x48\xdc\x11\x91\x65\x1a\x31\x8f\x45\x74\xff\xd9\x45\xb3\x07\x59\xd9\x86\x30\xce\xde\x89\xe8\x9e\xdd\x5d\x4f\x31\x1a\x38\x29\x98\x11\x05\x7a\xed\xd3\x3e\x75\xde\xdd\x0a\xbe\x7a\x01\x0a\xab\xbe\x79\xab\x7c\xaa\x02\x97\xad\xcf\x34\x88\x00\x51\x10\x2f\x69\x84\x24\xc5\xd2\x00\x10\x8c\x17\x36\x9b\x11\x18\xe2\x99\xde\x40\xf2\xa2\xb2\x08\x32\xfe\xa5\x7c\x21\xd2\x0e\xe2\xce\x4c\xc5\x73\xeb\x27\x39\x14\xcc\xd3\x28\xcb\xda\x31\xc8\xeb\x68\xe3\x18\xb8\xd1\x58\x6f\xe9\x45\x76\xff\x8d\x0e\xe8\x35\x54\xc8\x1f\x0e\xf7\x7a\xae\x21\xbc\x7b\x99\xac\xac\xb7\x2d\x59\x52\x8a\x25\x0c\xe8\x37\x7a\x30\xc8\x4b\x53\xd2\x95\x8a\x09\xa6\xe7\xb8\xf0\x8c\x16\x24\xc8\x7a\xe2\x71\x15\x61\x13\x2c\x0e\x10\xea\x35\x3b\x42\xf0\x98\xa9\x25\x59\x13\xb3\x2c\x4d\x80\x19\x3a\x46\x12\x7a\x60\xcf\xd0\x55\x74\x7c\x58\x9a\x6d\x6c\x40\xf2\x71\x65\x81\x78\x5d\xc9\x78\x41\x60\x60\x04\xc3\x1c\xd8\xe0\xe6\x0f\xbc\x9b\x4c\xed\xc5\x33\xa6\x75\xb4\xc7\x79\x93\xab\x94\xb0\x15\xd2\x3e\xb2\x15\xe0\xb1\x6e\x03\xf2\x23\x9e\x46\x25\xf9\xc9\x20\x5d\xbe\xcd\x82\xbf\x1b\x41\xe8\xbd\x7e\x66\xa2\xab\x56\xff\xba\x92\x79\x68\x76\x45\x17\xa0\xf5\x54\x9b\xc2\x6e\xf3\xe2\x2a\x55\x0b\x58\x39\xdd\x28\xc1\x1d\x27\x96\x11\xd7\x79\x12\x0f\xd1\x77\xec\x98\x5c\xba\x4f\x77\x35\xf0\xd2\x9a\x7e\x5c\x4d\x76\xdd\x33\x4a\x64\x50\x63\x6e\x1c\x46\x81\xb0\xa4\xac\xaa\xd5\xeb\x49\x41\x69\x3c\x60\x59\xb9\xf3\xa9\xc3\xce\x50\xed\xcb\x41\x13\xdd\x64\x8a\xd9\x33\x96\x9e\x5c\x66\xf7\x24\x1f\x40\xf7\x81\xa2\xcc\x71\x7e\x74\x5b\x16\x65\x2c\xe2\xf9\x13\xfa\x70\x46\xdf\xf6\xeb\x8b\x1b\x69\x6c\x1e\xd8\x00\xe5\x91\x51\x15\x62\x9e\xc7\xbe\x1f\x23\xd8\xef\x11\xcf\xc0\x0c\x0f\x6e\x8d\x87\xb7\x63\x5b\xc7\xb5\x8f\x2e\x32\xf2\x12\x63\xfe\x11\xbf\xad\x5a\x72\xe0\xec\x5b\x47\x6e\x91\x22\xbc\xdb\xac\x1c\xbf\x5c\x2b\x71\x37\xbd\xd6\x6e\x7d\x85\x59\x01\x7e\xc8\xe2\x7a\x09\xd9\x51\x16\xca\x7b\x7b\xa0\x3f\x53\xa0\x1d\x0e\x23\xfa\x40\x40\x4e\xe3\x0e\xa4\x88\x55\xbf\xad\x10\x1a\x80\x3f\x1e\x84\x80\xce\x72\x61\xfd\x86\x5b\x51\x38\x5e\x87\xd4\xe6\x15\x04\xb7\x98\xeb\x75\x95\xd8\xc6\x72\x57\x38\x32\x32\x70\x62\x91\xaa\x1f\xa9\x4d\xa6\x24\xc0\x92\x30\x4a\x6d\x26\xa9\x70\x9b\x1d\xde\x79\xd6\x2a\xa1\x8e\x23\x32\x68\x62\xe0\x8c\xd0\x2a\x7d\x20\x17\x6a\x90\xc4\x04\xf2\x4a\x9a\x06\x9e\x9a\xbb\xa1\xca\x91\x60\xcb\x9e\xec\x10\x09\x50\x4b\x91\x9e\x8b\x55\xa2\x0b\x11\x46\x87\x86\xdf\x3f\x5b\x36\xdb\x8a\xf1\x64\xd7\xd0\x77\x66\xb3\xdd\x77\x0b\x32\xf2\x69\x40\x7b\xb6\x99\x88\xa7\xee\xbb\xdd\x8b\xa1\x16\xc0\xef\xc5\x61\xe5\xbc\xc3\x35\x80\xb7\x3f\x8d\x54\x5f\xda\xa5\x1f\x71\x93\x44\x24\x4c\xdc\x03\x1a\xcd\x14\xad\x4a\x9e\x73\x59\x08\xa1\x67\x92\x1c\xcf\x48\x59\x17\xb2\xb2\xd4\x80\x90\xee\x6e\x13\x29\x5d\x20\x03\x14\x7c\xb2\xe4\x49\x5a\xe6\x9d\xe6\x06\x5c\x95\x4f\xa2\x9d\xd8\x35\x4a\xa7\x50\x2c\x6b\x9b\x34\x17\xc0\x1c\xec\x22\xc7\x9a\x52\x77\x1b\x57\xe3\x7b\x3b\xba\x60\x0f\x97\xfe\xf3\xed\x6c\xcd\x1d\x31\xcd\xdf\xe8\x79\xa6\x06\x48\xbc\x1f\xbf\xd1\x57\xaa\x23\x1a\x5c\xff\xd2\xb0\x89\xee\x80\x4f\xfc\xd2\x95\x90\x85\xeb\x7b\xf0\x3c\xee\x33\xc5\xf4\x62\xe3\xdc\xeb\x9f\xec\x94\x5d\xb0\x6a\xd7\x5c\xc6\xa9\x51\x79\x79\x51\xe7\xbd\x76\x38\x6f\x73\x25\x2a\xac\x70\xec\x0e\xea\x83\x18\x99\x79\xd4\x08\xb0\xdc\x37\x4e\xb5\xc8\xcc\x9d\x58\xca\x5a\x2d\xd5\x78\xc9\xb6\x38\x1d\xaf\xc3\x50\x1a\x64\xb7\x61\x7f\x75\xfd\xe5\x2c\x6c\xfb\x67\x52\x5f\xaa\x7b\x6d\x99\xac\x7e\x03\x86\x84\x0f\xcd\x23\x21\x22\x99\x43\x07\xb5\x8b\x6e\x38\x50\xea\x40\x20\x99\x91\xda\x21\xe3\xf8\x4c\x52\x3a\x78\x44\x17\x80\x5b\x19\xf9\xd6\x34\x7b\xeb\xa2\x8b\xdf\xfe\xce\xb2\x6d\x6d\xd9\x12\x16\x15\x50\xda\xa9\x28\x2a\x73\x70\xfd\x93\x79\x92\x09\x3c\x84\xf5\x20\x22\x19\x50\x3d\x1c\x60\x0b\xf5\xc4\x36\x35\xc9\xd9\xa3\x2b\x9d\xba\x05\x33\x24\x26\xb6\x77\x87\x3e\xe5\x2b\xcb\x75\xc1\x74\x21\xb2\x56\xf1\x5b\xd1\x2e\xb7\x99\x98\x48\xa9\x8a\x7a\x7c\xca\x60\xfd\x92\xbb\x52\x7a\x6e\x9d\x01\x87\xd1\x24\x30\x19\xfd\xe1\xe6\xf2\x82\x65\x7c\x0b\xd8\xc7\x42\x31\x7c\x15\x08\x47\xeb\x82\x6a\xdf\x0c\x54\x3b\x5f\x95\x2a\x38\xa6\x16\x44\xdd\xee\x9f\xa0\x1a\x9b\xca\x22\xac\x19\x5a\x92\x46\x66\xe5\x2a\x3d\xca\x52\x2e\x03\x78\xbb\x1e\xb3\x5a\xf5\x21\x9e\xc1\x79\x36\x09\x31\x06\x0d\x00\x7b\x05\xad\x85\xbc\x6c\x05\x40\x03\xef\x8e\x5d\x50\x87\x41\x18\x3a\x65\xc4\x4e\x60\xe7\x07\xcc\x02\x83\x39\x11\x90\x3d\xc3\xc2\x32\x1c\xb2\x87\x6b\x00\xdd\x76\x32\x80\xf3\x28\xe5\x5a\xef\x44\xe9\xbc\x08\x95\x7c\x10\xb5\xb8\x5f\x7c\x55\xdb\x89\x30\x42\xe0\x36\xc1\x7b\xa9\x7b\x0c\x6c\x09\x56\x74\xf9\xa4\x6f\x81\xbe\x1f\x64\x83\x20\xe8\x03\xf1\x45\xc1\xf7\xc8\x04\x79\x2f\xb6\xd6\xc2\x45\xa2\x8a\x6f\xc4\xc8\x19\x5b\x9d\x35\x31\x00\xfd\x35\x0b\x9e\x49\x40\xc5\xbe\x0f\x9b\xc7\xde\x2b\x35\x42\x7c\x26\x55\xce\xb1\x58\x1e\x22\x9c\x66\xf2\xbd\x52\x63\xee\x2e\xb1\xd4\x7e\x12\x37\xf5\x0a\x09\x15\x05\x98\xc3\xda\x74\xf6\xdf\x9b\x3f\x24\x12\xd3\x13\x26\x1b\x73\x81\xa2\x71\x82\x15\x05\x0d\xb2\xd9\xf0\xd5\xa3\x66\x31\x52\xca\x94\x89\x5e\x83\xdb\x05\xfd\x9c\x50\x3f\x1d\x29\x08\xc8\xca\xb9\xd4\x66\x0f\x83\xab\x46\x3c\x08\xb2\xd7\x56\x30\x06\xd3\x77\xe7\x0e\xb6\x84\xfb\x92\x52\x77\x74\xec\xb6\xe0\xd2\x71\xc8\xe5\x1c\xe0\xe6\x03\x08\xed\xc8\xc0\xf9\x81\x67\xbb\x82\x61\x0f\x2e\x71\xdf\x2c\x39\x42\xad\xfa\x8d\x0a\x32\x99\x43\x0e\xc3\x4a\x44\x6c\x38\x7a\x77\xf2\xc0\x13\xa7\x95\xd3\x7e\x7f\xca\x9d\xde\x06\x86\x81\xa2\x62\xff\x71\x13\x70\x5b\x3a\xc8\xa0\xbb\x0b\x1a\xc1\x0e\x19\xe2\x80\x94\x0f\xb7\xf4\x98\xdd\x08\xc1\x3e\xc2\x48\x99\xca\x3e\x52\x06\x52\x40\x41\x17\x3c\x69\x4d\x10\x07\x6f\x4f\xe5\x52\x1d\x26\xff\xf3\x55\x03\x65\x7b\xd0\xa8\xb4\xb7\xf3\x50\x1c\x2f\x58\xfa\xe5\xcb\xd2\x8a\xf4\x3a\x18\x6a\x73\x7d\xe5\xed\x4d\x14\x6c\x6c\x5b\x6a\x54\x32\x98\xe2\xa7\x10\xd7\xd5\x16\x89\xe9\xe5\x08\xc9\xd8\xef\xa5\x7a\x94\x28\x8f\xa9\x26\xf6\xda\xec\x3f\xd0\x59\xd0\x2f\x84\x9a\x60\x89\xd2\xf0\x0d\xb0\xc3\x4f\xdc\xdf\xec\x06\x5d\xe0\xd8\x66\x48\x1d\xa6\x41\xdf\xa5\xa4\x5f\x70\x80\xbf\x9e\x8c\xd8\x77\x23\x76\x3a\x62\xe3\xf1\xf8\xcd\x88\x09\x1e\xad\x6d\x8b\xf0\x13\x14\xfd\x05\x5f\x99\xb2\x29\xed\xcf\x32\xa8\x00\xd2\x03\x1a\xfd\xc4\x92\x20\x72\xff\x56\x60\x55\xb3\x5d\xc0\xd0\x6c\x8a\x23\x23\xb8\x50\xb4\x56\x89\x6f\x14\x20\xcf\x45\xa4\x72\x8b\x5d\xd7\x85\xca\x2d\x0e\xf7\x81\xe7\x3c\x91\xc0\x58\xc1\x9b\x51\x08\x54\x73\xc0\x59\x2f\x3e\xf1\x0d\xf4\x3f\x91\x8e\xb6\xd7\x0c\xd3\xad\x6b\x7f\xb1\xcd\xc8\xcf\xf6\x98\x27\x45\x61\x14\x32\x3d\x93\x37\xec\xe4\x5b\x36\xc9\xb2\x54\xb0\x09\xfb\x2f\xf6\x1d\x97\x5c\x72\xf6\x1d\xfb\x2f\x76\xca\x65\xc1\x53\x55\x66\x82\x9d\xb2\xff\x32\xc3\x66\xca\xbb\x50\x46\x03\xda\x8e\x18\x67\xb2\x4c\x51\xd1\x7b\x6d\x31\xae\x6f\x5c\xbf\xb8\x9f\x9d\x85\x28\x1e\x85\x90\x4c\xab\x0d\x1d\x85\x7f\x72\xa7\xbf\x4e\xe4\x2a\x15\x05\xad\x87\x2a\x1a\x19\x2b\x38\x82\x9e\x9e\xcc\xa4\xb3\x53\xff\xc9\xb4\xf8\x4f\xec\xbf\xd8\x45\x99\xa6\xa6\x49\x46\xd0\x98\x85\x74\xc2\x6c\x74\x98\x90\xe3\xc7\xe4\x3e\xc9\x44\x9c\x70\x88\x0f\x33\x7f\x1d\xdf\xc2\x6c\xcf\x4b\x4f\x05\x1a\xee\x69\x97\x8e\xed\x10\xd1\xf3\x22\x5c\x13\x2e\x59\x60\xa8\xad\x74\x82\x50\xc2\x4f\x87\x2b\xc1\x9e\x00\x99\xf6\x03\xdd\x51\x30\x95\x5e\xe8\xa0\x6c\xaf\xdf\x65\xfd\xca\xcc\xbf\x5a\xe9\x3f\x7a\x65\xff\xda\x35\x1e\xbe\x8d\xa0\x9c\xe2\xe4\xf8\xe0\x4c\xb8\xc8\x40\x2c\x21\xee\xbb\x2d\xa4\xfc\xb0\x65\xe3\xb5\x13\xdd\xdb\xe6\x2a\x8d\xda\x68\xc1\x57\x23\x96\xb9\x3c\x52\x76\x53\x39\xc7\x36\xee\x63\xcc\x99\x40\xca\xe6\x6b\x0b\x20\x32\x6b\x99\xe2\x0f\x8f\x63\xb5\xe1\x89\x7c\x03\x75\x58\xea\xbc\x3d\x03\xd5\x72\x5d\xd9\x3f\x42\xb7\x7c\x27\x9a\xb1\x9b\xda\xbf\xaa\xec\xd4\x52\xb8\xb5\x6d\x87\x03\x73\x98\xf9\x0c\xa7\x9f\xf1\x3a\xf4\x53\x63\x89\xf6\xce\x7d\x40\xf9\xc6\x2a\xec\x29\xa0\xcb\x7b\x06\xb9\x5e\xbe\x75\x97\xb9\xec\xa7\x6a\x8a\xd7\xca\x10\xab\xa4\x57\x2e\xdc\x5a\x63\xef\xe8\x26\x86\x71\xcf\x46\x4c\x26\xe9\xb1\x11\x95\xc7\x17\x4a\x0a\xc6\xb5\x4e\x56\xc8\x7a\x07\x06\x35\x4c\x22\x6b\x95\xb2\xdb\xea\x95\x21\x10\x41\xa0\x9f\x99\x26\x21\x62\xba\x30\x52\xd8\x4c\x41\xba\x9d\x49\xf3\x05\x69\x04\x10\x3d\x95\x38\x72\x74\xac\x8d\xb8\xc7\x6d\x5d\x74\x20\x06\x85\xb7\x2c\xb0\x5d\xd4\x0c\x07\x2c\x38\xda\x89\x07\x78\xdc\x2e\x02\x62\x50\x2a\xcd\xb2\x46\x21\x9c\x66\x21\x52\x25\x57\x66\x55\x74\x09\x61\x90\x02\xcf\xd4\x04\x2c\xac\xb3\x05\x46\x59\xa1\x57\x68\x4a\x8c\x9e\x92\xc4\xde\xa4\xa6\xcb\x85\xd1\xe3\x9c\xb7\xc7\x69\x23\xd4\xb9\x2e\x9e\x8a\xc3\x60\x4b\x77\x46\x06\xab\xdc\x02\xe7\x9c\x27\x11\x15\x17\xcf\xe1\x84\x3d\xea\x42\x68\xe4\x83\x4c\x39\x1d\x9e\xed\x11\x53\x39\xd2\x77\x5a\x0f\xb6\xe3\xdf\x6a\xd6\xde\xbd\xa5\x77\x46\x7b\xb4\xdb\x3e\xc9\x4f\xda\xe0\x0b\xe9\xb1\x1b\x7e\xcd\xc0\x8f\x3e\xe1\x20\xef\x27\xd3\xf3\xda\x7b\xcd\x70\x90\x96\x98\x91\xdb\xe9\x87\xb3\x77\xf3\xcb\xbb\xdb\xc6\x7b\xa6\x34\xfa\x69\x4f\x44\x48\xe7\xe8\x3d\x07\x26\xfe\x17\xcc\x61\x36\x57\x4b\x4b\x0f\xd0\xff\x78\x6e\x64\x91\xeb\x07\xbd\x2c\x82\xdb\x75\x98\x6d\xad\xb9\x70\x3a\x49\x4e\xe4\x9c\x7c\xad\xfd\x1a\x5b\x1f\xb0\x4b\xf9\x1e\x3f\xbf\x52\x69\x12\xed\x46\x72\xdb\xc3\xd2\x68\x55\x4d\x68\xec\x42\x40\x68\x03\x19\x7c\xa9\x51\x78\x3f\x2b\x44\x54\x78\x2c\x41\xb3\x73\xff\x4f\xa3\x47\xf7\x5b\x60\xd0\x0e\xeb\x86\x0d\x92\x93\x3b\x74\x02\x9c\xec\xc0\x1a\x0d\xc9\x52\x50\xcb\x05\xcb\x2e\xc8\xbc\x88\x93\xcf\xa9\x32\xf2\x70\x3c\x3c\xae\x55\x4a\xf6\x58\x64\xe0\x9e\xc9\x4c\xe4\x91\x02\xd4\x25\x92\xbb\x28\x16\xad\x93\x34\xf6\x19\xc9\x5e\x43\x98\x0a\x80\xc9\xdf\x50\x72\x5d\xe1\xd0\x33\xb6\xf8\x1d\x67\xbe\x5d\x76\xef\x70\x77\x1f\x84\x3c\x7b\x4e\xdc\xf9\xae\x65\xff\x33\xe1\xa3\x71\x28\x88\x33\xaf\x86\x83\x00\xb5\x3f\x6c\xcf\x20\x97\x8e\x39\xec\x29\xd9\x54\xe4\xaf\xcd\x45\x6d\x5e\x69\x99\xd5\x87\x12\x98\xd4\xd1\x8e\x8e\x20\x40\x2d\xa0\x39\x1b\xc1\x51\x13\xf4\xbc\xc6\x34\xa9\x33\xe9\x91\x1f\xaf\x74\xa8\x15\xb6\xce\x33\x5a\xdf\x2d\xb2\x7d\xc4\x5e\x55\x3a\xfa\x0a\x98\xb6\xa5\x82\xfa\xc8\x3b\x5f\x19\x1a\x58\xae\x23\x96\x14\x33\x69\xee\x6c\x66\x65\xe6\x22\x15\x0f\xa6\x75\xa1\x77\x88\xf0\x8a\xd6\x72\x62\xbb\x0d\xc1\x51\xdc\x72\x6a\xd0\xb2\xa1\x4d\x98\x87\x8c\xcd\xe8\x96\x8e\x85\x36\x5a\x2b\xe4\x9a\x12\x9f\xcc\x06\x48\xc0\xf9\x89\xc0\xb6\x58\x48\xdb\x3e\xc0\xbb\x61\x9e\xff\x99\x9c\x2e\x81\xd8\x00\xe8\x14\xe2\x18\x6d\x10\x36\xfb\x90\xa3\xcf\x4c\xc8\x1b\xa4\xc8\x22\x63\x27\x82\x72\x43\xe3\x4e\x12\x0f\x22\xdf\x16\x60\xd2\x87\x71\x95\x82\x17\x6b\x96\x14\x23\xe0\x3d\xb5\x92\x72\x26\x79\x1c\x53\x3c\x38\x16\x17\x5c\x67\x3b\xe7\x99\x9e\x2f\xd4\xc3\x2e\xb5\xfa\x50\xe4\x2e\xee\xea\x2c\xe5\x72\x8e\x27\xc8\xaf\x80\xdd\x0d\xd2\x76\x77\x81\x38\xca\xc5\xdc\x71\xb5\x3d\x4b\x3b\x9d\xbc\xbf\xb6\xd0\x65\xba\xda\x94\x0b\x5b\xd1\xa8\x02\xcd\x5e\x78\x5a\x0f\x67\xa5\x23\xdc\x54\xce\x2c\xb6\xa4\xbf\x14\xf0\xb0\x5e\x5e\xc3\x58\xd9\xd5\xba\x0f\xd7\x6b\x57\xc0\x6f\x15\x79\xd9\x67\xe6\x6b\x67\x48\x7d\xda\x87\x83\xfe\x1a\x1a\xe2\x93\x80\x7f\x7b\x9a\xf5\xb2\xe0\xbf\x4e\x2b\x4e\x13\x04\x68\x7b\x1b\xf8\xf7\x29\x74\x00\xad\xb0\xce\x80\xd6\x9e\x96\x3d\xbc\x05\xaa\x16\x7c\xfc\x73\x7a\x28\x40\x4e\xf5\xb5\xd3\x78\x42\x11\x68\xd7\x98\x4d\x25\xb3\xea\xde\x88\xbd\xc2\x85\xa5\x5f\x91\x01\x9a\x72\xfb\x13\x58\x26\xa6\xdd\x43\x14\x0c\x75\x90\x19\x06\xc2\xf9\xed\x86\x7e\xc0\x9d\x7c\xbd\x2f\x3a\x2e\xdf\x25\x10\x88\xf7\x14\xae\x15\xf4\x21\x2f\xb0\x00\x1b\x47\x12\x98\x42\xa9\xbb\xe0\xcb\xf0\x1d\xb6\xde\x4e\xf6\x9d\xfd\xd0\x0c\x51\x56\xd2\x79\x6a\x9f\x33\x95\xcf\xa4\x2d\x8d\x0c\xd2\x1a\x13\x04\xd6\x8b\x0a\xe2\x82\x48\xe7\x0f\x56\x2a\x40\x01\x6c\x4e\x48\x48\x35\xea\x49\xc5\xeb\x52\x00\x50\x50\x0b\x87\x40\x85\x2c\x14\xbe\x36\xa3\x78\x98\x05\xbe\xc1\x63\xbe\x4e\x3c\x9c\xa6\x66\x50\x92\xc2\xf2\x1c\x07\x31\x7b\xba\x04\xb6\xee\x65\x69\x84\x51\x40\x69\x3e\x93\x66\xf0\xd8\x32\x81\xd8\x0d\x1a\x97\x99\xfc\xa0\xb4\xa5\x88\xd1\x7e\x3c\x2c\xb0\x80\x86\xed\x95\x4b\x8d\x49\x3f\xbc\x83\x43\x9b\x3c\x3e\x48\xf6\xe6\x8e\x16\x08\xd6\x24\x9e\xa7\xad\x2a\x73\xdf\xa9\x88\xcb\x99\xfc\xab\x19\x1e\xb8\x4e\x71\x69\xa7\x55\x2d\x71\x0b\xc3\x0c\x82\xab\xec\x23\x16\xfa\xfa\x77\x6f\x3e\xbe\xc1\xe0\xaa\x52\x43\x36\xe2\x51\xf5\x00\x71\xd9\x2d\xca\x34\x05\x1c\x82\xed\x81\x63\x58\xf2\x55\xec\xc4\xe1\xd1\xa5\x6e\x2e\xab\x2a\x46\x9f\x8d\xde\xcf\xac\x3f\x61\x11\x2f\xa2\xf5\x91\xd5\xe5\x48\x8c\xd9\xd3\x8f\xa6\x0f\xa3\xa0\x8c\xa6\xc5\x5a\x13\x3c\x98\x0b\x67\xbe\x71\x94\xb3\x95\xf5\x62\xba\x00\xe6\xff\xdb\x7a\xb6\x33\xc7\x88\x8d\x8b\x13\x71\x40\x55\x3d\xcf\xbd\x6e\x73\x8d\xfa\x1b\x27\xf9\x48\x24\xdf\x88\x98\xbd\x82\x30\xe0\x57\x76\xf2\x67\x32\x5b\x8c\xd3\xed\xb2\x20\xde\x42\x33\x28\x63\xc8\xca\xb7\xe7\x94\x9b\xc7\xcd\x6b\xd2\x9e\xc1\xee\xbc\x68\xb5\xeb\x3a\x6e\x6c\x5c\x4d\xfd\x15\x16\xb4\x71\xb9\xd1\xb9\xa9\x62\x02\xab\xe9\x41\xb8\xbe\x1f\xb1\x45\xce\x25\x24\x54\x8a\x43\xa5\xca\xef\x4e\xb8\x3c\x23\x29\xa0\x8d\x0b\x94\x3c\xdd\x42\xfc\xcf\x68\x26\x91\x41\x11\xa8\xf6\xb7\x51\x9a\x44\x6c\x95\xf3\x6c\x5d\xd3\x83\xc4\x83\x90\x05\xe4\xe5\xbe\x16\x5c\x1f\x86\xd5\xc8\xeb\x25\xb0\xde\xde\xb4\x89\x84\xdb\x07\x97\x35\xce\x6b\x68\x5e\xc7\xd1\x02\xf8\x4c\x11\xcf\x87\xf1\x5d\xed\x65\x65\xae\x70\x7d\x12\xf1\x1c\xf8\x9f\x4d\xe7\x98\xad\x75\x1f\xf8\x01\xc7\x95\xa8\x98\x2c\xa2\xf7\x50\xc0\x86\xa3\x76\x3a\x88\xa0\x77\x5a\xd5\x22\xb9\xe7\xac\xf2\x76\x73\x72\xfb\xa1\xa5\xc2\x86\x41\x38\xc1\x31\xa2\xbc\xa9\x40\xde\xc9\xfe\x58\x2e\x54\x6a\xd9\x4f\xa7\xef\x98\xca\x21\xf1\x50\xa1\xe8\xa7\x24\xee\xd2\x0e\x12\x19\x8b\x4f\x07\x51\x10\xed\x3e\xe8\xad\xda\x6c\xaa\x09\xf2\xdb\xd4\x3b\x0b\xd2\x29\x17\xe6\x10\x2e\xec\xcd\xb8\xf1\x96\xae\x43\x95\x27\x69\xb1\x06\xfc\x30\x86\xe8\xf8\x41\xdd\xf0\x2d\x8b\xd6\x5c\xae\x02\xd3\x04\xc0\x39\x45\xa6\x72\x4c\xd0\xfb\x00\x5c\x9f\x2a\xb7\x14\x0f\x44\x5c\x40\x71\x42\xce\x8d\x81\xf0\x7c\x65\xd9\x09\xf8\x6a\x95\x8b\x15\x84\xb1\xce\x64\x85\x7a\x05\x78\x4e\x6d\x6e\x20\xac\x67\x17\x73\xc5\xf3\xd0\x3f\x75\xdd\x06\x8b\x7c\xeb\xe2\xfe\x29\xbb\xb5\xdf\xcf\xf5\x61\x1d\xb1\x44\x8c\x47\xec\x2b\x1f\x92\x20\x22\x25\x1d\x71\x40\x47\xd4\x78\xcd\xe4\xcf\xf6\x5c\x1d\x9a\x3c\x51\xed\x6d\x87\x67\x8d\x1c\xd9\xad\x8b\x66\x27\xf3\x42\xc1\x8b\x72\xc0\x19\x74\xca\x0b\x9e\xaa\xd5\xa9\xf9\xf8\x06\xbf\xdd\xb5\xae\x4f\x31\x5e\xc0\x72\xf4\x99\xf7\xcd\xc9\x69\xea\xf6\x1c\xfe\x6d\x63\xbd\xd7\x80\x9c\xaa\x6e\x03\xf2\x73\xa8\xea\x96\x88\x69\xbf\x0d\x39\xed\x20\x17\xda\xd1\xa7\xa1\x26\x62\x8b\xea\xa7\xc0\x24\x5d\xbf\xc6\xb6\x48\x80\x2c\x57\x71\x19\x89\xd8\xec\x5c\xb8\x0f\x21\x1e\xca\x71\x1c\x55\x84\x64\xdb\x41\x5b\x21\x6a\x83\x53\xf7\x73\xd9\x1c\x7a\x71\xe3\xbb\xe1\xbf\xeb\xb0\x37\x58\x8d\xaf\x6d\xd0\xc3\xfd\x89\xe3\x94\x0f\x3c\xa7\x5c\xf5\x55\x46\x7b\x95\x27\xab\x44\xf2\x42\xe5\xec\xb5\x63\x32\x78\xe3\xd2\xe0\x75\x6b\x08\x03\xc5\x44\x65\x88\x50\x4c\x7c\x56\xc5\xa3\x6d\x91\x9a\xb7\x74\xc1\x37\x59\xc8\x11\x0d\x56\xe0\x60\x64\x52\x1c\x04\xa7\x9b\x80\xed\x34\xd1\x3e\x6a\x77\x26\xc9\xe3\x80\xf3\xa6\xf2\x30\xc9\x41\xe7\xd9\x9c\x95\xc5\xfc\x89\xbc\x67\xf8\xf1\x30\xc3\x13\x81\x20\x3e\xf0\x6c\x37\x93\x14\x27\x93\x03\x86\x2d\x92\x39\xc2\x6b\x2a\xd5\xf5\xb9\x3b\x8d\xd0\x40\x66\xeb\xba\xe3\xfe\xfa\xdc\x3a\x8a\xfc\x7d\xb0\x72\xc1\x82\x89\x40\x4a\x5d\x0c\x03\xc3\xab\xbd\x13\x6b\xe6\x14\xb7\xf4\x53\xa7\xa9\x2a\x63\x46\x42\x8d\x40\x00\xf9\x18\x4f\x47\xe0\xb8\x1e\x8f\xbb\xc2\xda\x06\xa6\x37\x77\xf2\x07\xbe\x6b\xdf\x81\xf0\xac\x43\x02\xef\xdc\xfa\x34\xb2\x2f\x36\xf5\x34\xd2\x30\xf7\x4e\x1c\x0f\x9a\x7b\x67\x05\x07\xc2\xcd\x61\x06\x52\xb8\x8f\x26\x71\x0a\xfb\x2d\x74\x20\xb4\x50\x82\x57\x1c\xb3\xfa\xfe\xe0\xea\x2c\x0b\xc5\xee\xaa\x32\x9e\x0b\x59\xcc\xa1\xc6\x61\x95\x41\x25\x57\xf0\x79\x45\x61\xea\x65\x08\xfe\xf3\xad\x42\xfb\xbe\x65\xd7\xfa\x0b\xbb\x21\x9b\x96\x91\x57\x09\x40\x88\xf5\x3d\x7b\x9d\x00\xe2\x29\xf0\x85\xba\x89\xeb\x98\x2e\xea\xd0\x13\x46\x2f\xe8\x50\x45\xb4\xf7\xea\x90\x6f\x3d\xb8\xaa\xa1\x14\x32\xef\x11\x27\x80\x11\xb5\xf6\xb7\x20\xe3\xc6\x45\xe5\x6f\x60\x47\x36\xf3\x97\xb2\xbf\x89\x5c\xf9\xf8\x2f\x34\x56\x85\x05\xef\xd4\xd7\x9f\x9e\x2c\x1c\xf5\x71\x4c\x53\x1d\xe6\x69\x85\x5f\x88\xc0\x0c\x2d\x0a\x8b\xad\xbd\x8e\x74\xb8\x90\x32\x11\xcd\x3b\x92\xf2\xf4\x6a\x4a\x70\xf1\x0c\x93\xec\x24\xb5\xc3\xcc\x6e\xd0\x63\xb0\x57\x50\x60\xd5\x86\x67\x84\x2e\x24\x20\x79\xdd\x79\x33\x86\x4e\xfc\xf9\x4f\x7f\x19\x27\x1d\x21\xde\xd0\xf4\xa1\x60\x2d\xd7\xf8\xf7\x79\x22\x64\x0c\xce\x58\x1e\x37\xf3\xc5\xc9\x8a\x75\xbe\x22\x9e\xcd\x32\x7c\x96\x78\xf0\xf6\xa3\x56\xcf\x71\x11\x7d\x06\x8f\xbe\x17\xb2\x6e\xfb\x56\xfc\x7d\x5d\xaa\x84\x9e\xc7\x5b\xc9\x37\x49\xf4\x59\xdb\xb8\x4d\x44\x1a\x43\x13\xa9\xf6\x7d\x5e\xa9\x58\x44\xf7\x43\x75\x82\x27\x67\xbb\x10\xd1\x3d\xfb\xe1\xf6\xc3\x39\x26\x37\x4e\xf4\x4c\x5e\xf0\x22\x79\x10\x77\x79\xea\xdc\x01\x04\xd2\xce\x53\xbb\x47\xaa\xec\xeb\x01\xd3\x97\xa5\x6a\xb7\x8a\x43\x98\x1c\x63\xb3\x3d\x5a\x94\xd1\xbd\x28\x8e\x73\x2e\x63\xb5\xc1\x6e\x1c\xeb\x72\xb9\x4c\x3e\x8d\x0b\x9e\x77\x64\xca\x40\x3b\xc2\xaf\xa8\xe7\xfa\xfc\x67\x85\xd7\x79\x51\xd5\x7d\x84\x30\x6f\xca\xaa\x5f\x51\x6e\x31\x2a\x91\x6f\x04\x50\x9d\xb2\x6a\x96\x19\x28\x05\x23\xa7\x21\x19\xab\xd6\x14\x3f\xa1\x28\xd5\xfb\xc7\x40\xb9\xff\x18\xb4\xca\xbb\xb0\xc3\x46\xf9\x04\xa7\x1b\x7e\x8f\xf7\xc3\x55\x2e\xb4\x1e\x31\xad\xa0\xc5\x33\x69\x23\x11\x6c\xb4\x1c\xe0\x5e\x80\x2c\x39\xdd\xb2\x48\x65\x0e\x32\x8f\xfd\x5a\xab\x47\xb0\xd3\x87\x71\xc2\x90\xc2\xbb\x94\x45\x92\x32\xbe\x2c\xc8\x88\x0f\x99\x21\x6c\x26\x38\x3d\x9e\x49\x70\xc5\x46\xd0\x7d\x80\x48\x38\xf7\x8b\xeb\x84\x66\x4b\x1e\x25\x69\x52\x10\x5f\x1d\x84\x98\x71\xd3\x5f\x73\x1e\x98\xb1\xcc\xf9\x96\xa7\xfe\x62\xc5\xd3\xd2\x87\x46\x1f\x69\xb1\x83\x0f\x35\xd1\x73\x34\x10\xbc\xdc\x06\xf7\x28\xc0\x24\x74\x3e\x20\x77\xfc\xc4\x54\x7e\x51\x3b\x45\xff\x29\xfc\x6f\xe5\x1e\xbe\x4b\x2b\x38\xe0\x42\x7e\xc8\xe1\xd8\xbc\x72\xbb\xf4\xe9\x5e\xcf\x48\x62\x8b\x4e\xae\xa8\xe2\x3e\xf8\xd8\x1d\x8f\xe0\x33\xe9\xb8\xf4\x8f\x6d\xd2\xbb\x66\x0d\x03\x46\xaf\x5d\x49\xfc\x4c\xe6\x8c\x2e\x42\xff\x3e\xcd\xb7\xd6\xf8\x2b\xa5\xd2\x43\x2d\xf2\x44\xc9\x91\x28\x39\x87\x3c\xd0\x87\x5c\x27\x71\x01\x38\xc3\xd6\xf4\x9d\xf3\xb9\x3b\x86\xfc\x6a\xf6\x38\x82\x83\x51\x13\x40\x90\x41\x23\x76\xe0\xd4\x75\xd6\x02\xba\x18\x88\xb7\x87\x32\x10\xad\x65\x55\xfb\xa6\x8b\x20\x60\x67\xe1\xbe\x8d\xc0\x22\x5c\x6b\xe1\x20\x63\x1d\x66\x6d\xae\x55\xe5\x0c\x77\x21\xdb\xb8\x1b\xc7\xa0\x6e\x3b\x9e\x1b\x2e\xc9\xf2\x47\x5a\xfc\x4c\x06\x1a\x3b\x32\xe2\xd9\x80\x06\x37\x6a\x6d\xf6\xbc\xca\x32\x3c\xd8\x9e\x77\x48\x4a\x89\x9d\x92\xf3\x5d\x98\x1c\x12\xb0\x20\x91\xda\x2c\x12\x69\x39\x29\xc8\xc8\x0d\x57\x8d\x89\x65\xec\x75\x0e\x09\x7b\x65\xc0\x94\x41\xb5\xb1\x77\x6a\x4e\x48\x7e\x1c\x8a\xac\x7d\xd7\xf1\xf0\x7e\xf7\xbc\xd9\x2f\x3a\x3c\x8d\xf5\x1e\x98\x03\x24\x7d\xe4\x5b\x0d\x09\xd4\x85\x91\x8a\x4b\x34\xec\x56\xdb\x3f\x0a\xd4\x0f\xcb\x06\x3d\x93\x30\x42\xc8\x16\x66\x05\xa9\x91\xac\xb0\x00\x53\x9b\x2a\xde\x33\xbd\xbd\xd2\xed\x83\xf3\xeb\xf8\x6a\xf2\x9d\xbe\x1a\x74\x42\xff\xf7\x70\xcf\xec\x30\x02\x1f\x68\x8b\x0e\x8e\x49\xd4\x18\x09\x26\x04\x61\x63\xce\x45\x3d\x62\x1b\x9e\x48\xda\x06\x98\x8e\x33\x16\x8b\x72\xb5\xea\x34\x91\xfe\xf6\x7d\x2d\xd5\x7d\xf2\x3f\xde\x16\xbe\x93\xab\xf0\x39\xac\xc5\x53\x5b\x13\x9a\xaf\xcd\xbd\xef\xf3\x18\x88\x7f\x45\x6b\x7c\xab\x4b\xac\xb1\x88\x9e\xc7\x1a\x3f\xed\x63\x8d\xb7\xd8\x2e\x08\xf0\xa3\xeb\xb4\xc5\xdf\xfc\xc3\x4c\xff\x79\xcc\xf4\xbd\x16\x05\x92\xfa\xcc\x93\xaa\x82\xbe\xa3\x85\x4f\xe4\xbd\x74\x54\xd0\xd0\x2a\xe4\x96\x33\xd2\x3d\xd6\x6c\xc1\xa3\x17\x20\xc2\x84\xd3\xf1\x70\x7b\xe0\x1e\xf0\xcb\x8d\xda\x08\x06\x55\x69\x4c\xe4\xc4\x28\x8a\x71\x04\x68\x55\xd3\x41\x8f\x18\x21\x3c\x0a\x1c\xa7\x88\x5c\x89\xbd\x52\xfd\x5a\x8a\x47\x66\x4e\xab\x51\x08\xdf\x0b\xa6\x07\x32\xfc\xbd\x31\xda\x61\x05\xeb\xef\x08\x3b\x72\xb1\xe2\x79\x0c\x11\x26\xb4\x25\x53\x1e\xdd\x9b\x7f\x43\xfb\xa8\x46\x82\x18\x5a\xae\x00\x84\xbd\xfa\xd2\x12\x19\x21\x15\xa2\xe5\x74\x77\xed\xc3\xcf\x35\xe3\x51\xae\x34\x1a\x8d\x5c\x62\x6c\x88\xaf\x06\x05\xf6\x21\x89\x4b\x9e\x62\x8d\x9d\x96\xf6\xa1\xf0\xb5\x3a\xe0\x28\xc8\x61\xd7\x44\xb3\xd1\x74\x20\x43\x15\x0c\xe3\x78\x26\xdf\x39\x87\xc9\x09\xbb\xd3\x82\x50\x66\xda\x66\x01\xd8\xd9\xd2\x17\x53\x1f\x1a\x98\xc0\x4e\x1d\x62\xc7\x00\x58\x90\x75\x30\x10\xba\x7b\x24\xf6\xd0\xa9\x1e\x32\x29\x83\x69\xa1\xa7\x41\x22\x7d\x3f\x2c\x78\x4f\xc8\x05\x8f\xb7\x21\x17\x63\x22\x19\x78\xe9\x18\x8f\x37\x89\x34\x9b\xc0\x26\x6b\x75\x27\x8d\xcd\xdb\x80\x90\x63\xc8\x69\x96\xa6\x35\x21\xa8\x99\x14\x46\xb9\xe4\x79\x92\x6e\xe1\x3e\x91\xe5\xe2\x28\xa8\x27\x98\x1f\x8a\x78\x82\x0c\x14\x44\x22\x53\x6a\xb1\x2c\x53\xbc\x75\xc0\xbd\xdc\x75\x80\x24\xd2\xdd\x74\x64\x14\x8e\x82\x32\x09\x05\x15\x63\x7e\xce\xe7\x88\x1e\x69\x78\x2b\x87\x79\xdc\x3c\x57\x68\x0e\x20\xf7\xb5\x7a\xb4\xa1\x6e\x8f\xdc\x63\x99\xbb\x4e\xd7\x67\xf3\xb2\xec\xd6\x43\xed\x0d\xd0\xca\xa9\x80\xf0\xcf\xb9\xd6\xe8\x99\x88\x9d\x6c\x4a\x24\x74\x87\x52\x5c\x7b\xcb\x75\xa9\x31\x62\xce\xcc\x25\x9c\x5f\xd6\xd0\x51\x35\x5c\x33\xd7\xbb\x44\x2b\xc9\x66\xe5\x97\x5f\x7e\x2d\xd8\x97\x10\x42\x48\xf7\x11\xf4\x8f\x01\x5b\x28\x96\x0e\x22\xdb\x55\x20\x90\x4a\xb4\x31\x23\xac\x0d\xa2\x6a\xe3\xf5\x01\xe4\xc9\xa3\x35\xd3\xe5\x02\x11\x8c\x9c\x5c\x2c\x5c\x3a\xd6\xf1\x73\x05\x60\x44\x3c\xd9\x6d\xeb\xff\x1f\x71\x28\x60\xd2\x97\x99\xcc\x14\x12\xe3\x03\xf4\x73\x21\xd8\x86\xe7\xf7\x90\xc3\x17\xcd\xf3\x90\x08\xe0\x75\x22\xc6\x55\xf7\xc2\x9b\x4a\x7b\xc8\xa1\x83\x84\xd7\x2c\x2f\xa5\xb4\x49\xc9\x98\x51\x4c\xbd\xad\x7f\x34\x93\x8b\x32\xbc\x7b\x56\x9c\x05\x7e\x69\x81\xc3\x00\x84\xad\x02\xa6\x12\x6a\x14\xd7\xbe\x5d\x63\xd6\xc3\x6b\x30\x93\xcf\xec\x36\xd8\x67\xf0\xbb\x22\x1d\xcc\x1a\xf3\x82\x78\x05\xe8\x6e\x98\x37\x1b\xa6\x03\x97\x3d\x28\x39\x57\x90\x3c\x7b\xc4\x7e\x48\x1e\xc4\x88\xdd\x64\x3c\xbf\x1f\xb1\x77\xe8\xfe\xfb\x83\x5a\xb4\xd9\xf0\x1a\x84\x12\x07\xdb\xf1\x9e\x66\xc6\xda\x45\xf3\xd2\xae\xfd\xff\xdc\x20\x06\x60\x5d\xbe\xef\xff\x9e\x88\xbc\x0e\xae\x8f\xff\xe9\x96\x88\x3d\x6e\xea\x7f\x80\xd7\xfe\x47\xde\x8a\x77\xd3\x7c\xfc\x53\xf8\x5f\x2b\xbf\xac\xc6\x05\xba\x27\x49\xb9\x56\x54\xda\x6f\x2b\xb0\x39\x89\xeb\x87\x72\x33\xbe\xb9\xdf\x56\xa0\xf0\xf1\xd8\x85\xb6\x0f\x00\xdd\xd3\xa7\x76\xbc\x4e\x53\xa5\xcb\x7c\xf7\xe6\xbf\xae\xb6\xda\xd6\xde\x42\xf4\x0a\x8b\x6d\xb3\x10\xc0\x5a\xd0\x17\x7e\x82\xaf\xcd\xff\xaa\x16\x73\xc0\x5a\x1d\xb6\xc3\xdb\x8a\x73\xf4\xd1\x2a\xaa\x34\xd5\x9f\x90\x37\x99\x00\xbe\x2b\xaf\x8a\x7a\x87\x40\x6d\x85\x39\xd3\xc8\x4c\x5a\xc6\x7d\x8c\x98\xcd\x73\x01\xd4\xe0\xb9\x80\x44\x8f\x8c\x18\x0e\xd3\x6d\xa0\x11\x05\x37\x1f\x0f\x8a\x09\xa3\xdc\x20\x58\x95\xee\x5b\x0b\x21\xa4\x1b\xed\x21\xaa\x04\xd0\x60\xd7\x46\x9f\xd0\x6e\x8f\xc2\x26\x5e\xe8\x48\x4a\xdb\xf8\x2e\xb8\x0b\x82\xca\xbd\x12\x45\x20\xcd\x6b\xaa\x45\x65\x6b\x56\x3c\x54\xbf\x29\xc4\x7f\xab\x0f\xba\x46\xce\x55\x31\xa0\xf4\xf2\xe9\x3d\x87\xbd\xfc\x8a\x17\x6b\xbc\xd0\x6e\x54\x21\x50\x66\x22\x4b\x10\xae\x17\xb4\x3a\x2f\x52\xb5\x80\x0c\x8b\xc5\x0e\x06\xc9\x88\xb6\x76\xaf\xa1\x6b\x4e\x58\x1f\xc9\x60\xa4\x09\x44\xda\xe6\x42\x03\xe1\x4a\xd3\x4b\xd5\x17\x9f\x3c\xec\xd2\xdd\x6c\xae\x11\xfa\xef\x1a\x97\xed\x66\x4a\x0e\xb3\xad\x01\xac\x7a\xf6\x84\x08\x9a\x46\x82\x13\xa2\xaa\x26\x37\x30\xb2\xd5\xd6\xfa\x6b\x13\xf9\xcf\xe4\x04\x9f\x04\x87\x00\xf7\x39\xb6\x1c\x1e\x94\x72\x36\xbb\xfd\x87\xe1\xab\x6c\x12\x22\x10\xc9\x42\x30\xf2\xb6\x4c\xb8\x0c\x8c\x20\xaa\x51\x16\x49\x2e\x98\x04\x14\xc2\x4c\xea\x72\x71\xe4\x89\x49\xcc\x2d\xee\x01\xc8\x74\xb4\xc8\x38\x5c\x65\x80\xaf\xe8\xa8\xe5\x18\x46\xcb\xa4\xcf\x95\x63\xe9\x03\x79\x4a\xc2\x1f\x62\x25\x31\x32\xde\xf5\xdd\x95\x63\x2e\x6b\x70\x8b\xb6\x70\x25\x3c\xec\x76\xc9\x0b\xc8\xe6\x05\x11\x98\xd7\x88\xa2\xf8\xb5\x0f\xf0\xd0\x1b\xda\xf7\xe8\x06\x7f\xda\x4c\xfe\xab\x3d\x1b\xba\x41\xc5\x03\x56\xba\x19\x19\x73\x44\x75\x82\x9d\x2b\x6d\xb3\x57\xc8\x40\x09\xec\x6e\x54\x63\xc9\xb7\x95\xca\x2d\xae\x25\x4c\xe9\xa2\x28\x5c\x16\x9e\x3e\x24\x3a\x20\x7b\x87\xda\x6e\x84\x60\x27\xb9\x58\x9e\x7c\xcc\xc5\x72\x6e\x67\x7a\x0c\x1d\x1a\x9b\x1e\x35\x29\xdf\x7b\x2e\x0e\x9d\x29\xd9\x4e\x7e\xb8\x87\x1a\xb5\xd6\x25\x2c\x27\xe8\x53\xb2\x64\x3e\xbb\xad\xe9\x0f\x30\x40\x88\xb8\xce\x45\xdf\x68\xd9\x67\x3f\xe6\xba\x90\x60\x3d\xa0\x56\x1d\x49\x50\xff\xe7\x1f\x6f\x95\x31\xeb\x73\xbc\xdd\x56\x21\x33\x56\xd8\x73\xe9\x0e\xbc\x6e\x5c\xe8\xe7\x45\xa7\xc3\x04\xea\x8c\x3f\x4a\xe2\xb1\x19\x64\x7a\xea\x77\xac\xd5\x00\x44\xc1\xb1\xd6\xc0\xc0\xf9\x5d\x26\xad\xa5\x2f\x71\x79\x34\x47\xcc\xdf\xa0\x79\x9a\x86\x19\x35\xbc\xa7\x6d\x26\x7d\x5c\xaa\xd1\x5a\xd3\xd4\x9a\xf0\x2a\xfa\x86\x4b\x78\xac\x0b\x5e\x88\x91\x25\x5d\x21\xba\x42\xf2\x87\x1d\x2d\x38\xa4\xb6\x76\x39\xd4\xf6\xed\xe6\xe7\xba\x44\xfe\xc6\xe2\xa2\xf7\x78\x9e\xb1\xda\xf9\xbd\x68\xc0\x99\xf7\xb6\xb5\xdd\xd3\x11\x50\x4a\xc0\x66\xb6\x52\x36\xe2\x79\x6e\x51\xfe\x54\x2b\xb3\x74\xe7\xe1\xad\xa4\xa3\x9d\x6b\x11\xdd\x67\x2a\x91\x83\x65\x51\x85\xe2\x02\x16\x7b\xc1\x7c\x69\xee\x76\xd8\xeb\x70\xac\xe8\x93\xd8\x11\x0d\xf0\x0a\x0b\x0d\xf5\x64\x6c\x9c\xb9\x4c\xd9\xdd\xcb\xee\xb9\xed\x17\xc2\x9f\x0d\x2f\x60\x8b\x6d\xf1\x0f\xd5\x4e\x15\xde\x62\xd8\xa9\x30\x81\xf2\x46\xf4\x57\xcf\xc1\xe6\xac\x42\x61\xd8\x3a\xa4\x60\x82\xfc\x87\x65\xe8\x1f\x96\xa1\xff\xe6\x96\xa1\xcf\x69\x16\x02\x6c\xcc\x4b\xda\x84\x76\x38\xc8\x0f\xd8\x8e\xae\xd6\xc1\x31\x8e\xad\xda\xf1\x28\x48\xfa\x1d\x44\x3a\x36\x81\xfe\x96\x08\xc3\x8c\xcf\x82\x47\xf7\x42\x76\xfa\xe8\x2d\x7d\x51\x67\xfe\xd5\xe7\x45\xb0\xb4\xb1\x2f\x05\x5f\xef\x86\xb2\x78\xa8\x13\x91\x06\xb7\x11\x82\x98\x7d\x02\xba\xa7\xe9\xf8\x11\x80\xc6\x54\xee\x88\xad\x35\x45\xe1\xa1\x33\x12\x69\x92\x10\x2c\x55\xa3\x82\xee\x8b\x89\xb3\x15\xcf\x33\xa5\xd2\x56\x68\xdc\xb3\x0e\x60\x23\x50\xa6\xef\xe0\x4d\x51\x19\xd5\x21\x60\xcc\x8e\xa2\x0f\xba\xf0\x21\x1a\x18\x8f\x01\x99\x38\x60\x35\xc5\x25\xc4\x52\xfa\xe1\x08\xd2\x2b\x72\x67\x70\x21\x8c\xd8\x42\x44\x1c\x12\xbf\x5a\xf0\x5e\xc4\x5d\xf4\x49\x48\x8a\xd4\x08\x07\xd1\xcd\x7a\x3a\xbc\x96\x50\xee\x3c\x69\x4b\xbb\x31\x74\x73\xd5\x34\x04\x0b\x2d\xc7\x96\x5b\x24\x89\xa5\x5d\xdc\x97\xd0\xd8\x72\x4c\xcf\x21\xfb\x62\xbf\x13\xae\x55\xee\x4c\xa9\xa0\x53\x28\xa7\xbf\x20\xfd\x01\xc2\x71\x36\x3d\x91\x3b\x33\x39\x71\x79\x6e\x3d\xf6\xcb\x21\xf7\xd0\x5d\x8a\x98\xc5\xc6\xd4\x20\x97\xa3\xbf\xb9\x8c\x98\x2e\xa3\x35\xb0\x55\x56\xe5\x54\x28\xb7\x9a\x3b\x76\x34\x93\xe6\x42\x04\xa6\x96\x0d\x87\xb8\xf8\x47\xa3\xac\xea\xe4\x6f\xc2\xc1\xb3\x88\xbc\x2b\x44\x64\xe1\xc5\x49\xc9\x56\xf4\x9a\x25\x0e\x45\x80\x85\xc7\x94\x94\x59\xcc\x0b\x31\x9e\x79\xb4\x4d\x82\x96\x4e\x8b\xf2\x20\x95\x59\x87\x1d\x0b\x71\x8c\x35\x49\x9b\x26\x4b\x11\x6d\xa3\x46\x16\xa2\xdd\x34\x11\xff\xb8\xb6\xfd\xb6\xae\x6d\xc8\xb2\x8b\x31\x83\x43\x86\x96\x9a\x7a\xed\x3f\x3f\x6c\x70\x05\x0b\x5a\xa2\x07\x8c\xf3\x67\xbc\x76\xb6\xe8\xc0\xc3\xf4\xf9\xde\xf7\xa0\xdd\xc7\x99\xbf\xd8\xfa\xc3\x3a\xa0\x40\x68\xa8\x85\xa1\x73\xb1\x08\x97\x8e\x51\x68\x7b\xbb\xf5\xbb\x59\x66\x7e\x53\xe0\xa4\x3e\x17\x57\xa3\x71\x3b\xb8\xd2\x85\xd5\xb4\xa5\xc0\xf3\x6e\x87\xc6\x1d\xb0\xba\xf3\xe2\x95\x76\xa3\x5e\x95\x80\x16\xfb\x3f\x91\xdb\x83\x02\x30\xb7\x99\x98\x97\x79\x7a\x10\xdc\xf8\xee\xfa\xfc\xd8\x69\x1b\xa0\x39\x77\xe6\x3d\x2a\x6a\xa9\xa1\x6d\x4e\x62\x11\x13\x1c\x34\x52\x29\x5b\x94\xcb\x25\xe4\x2f\x21\x60\xa8\x15\x46\x90\x99\xbe\xd4\x85\x3d\x4f\x90\x69\x86\xeb\x62\x26\x95\x14\x6c\xf6\xc5\xf1\xec\x0b\x73\x94\xe5\x3c\x2a\x44\x8e\x24\x03\x29\xd7\x05\xd3\x62\x05\xaa\x16\x55\x7a\x77\x7d\x0e\x51\x89\xc5\x1a\x8b\x73\x57\x56\x8c\xf7\x44\xce\x67\xc8\xf5\x03\x04\xd5\x32\xc8\xb8\x05\x6d\x7f\xcd\x35\x4b\xe4\x4c\x7e\x34\x45\x1c\xaf\x94\x5a\xa5\x62\x6c\x27\x64\xfc\x8e\x4c\x8f\x1f\xdf\x60\x0b\xe0\xf3\x10\xd6\x6f\x0e\x44\x2e\x95\x4c\x22\x9e\x42\x40\xce\x4c\x82\xd6\x3c\x32\x9d\x01\xd3\xe8\xec\x8b\xf1\xec\x0b\x06\xee\xd3\x82\xf1\x28\x12\x59\x21\x62\x4c\x6d\x3a\x95\x2c\x03\xfc\x62\x24\x46\xac\x10\x7c\xa3\x2d\xa5\x33\xcb\xcc\x1d\x13\xae\x86\x2c\x91\x84\x74\x5a\x24\x92\xe7\x5b\x04\x33\x61\xb2\x72\x0a\xfe\xd8\xce\xa4\xf8\x04\xf4\x9f\x09\x30\x80\x96\xda\xd1\xd2\x50\x62\x02\xd3\xe5\x89\xdc\x8e\xd9\x0f\xc8\xd0\x80\x14\xa8\x77\xd7\xe7\x96\xde\x88\x62\x40\x67\x52\x47\x6b\xb1\x11\xec\xe3\xba\x28\xb2\x8f\x23\xfc\xaf\xfe\x08\x1e\x47\xa9\x18\x3e\x1d\x31\x33\x45\x46\x51\xb5\x78\xf9\x74\x0b\x39\x64\xcb\x8c\x12\xce\xcf\x24\x70\xb1\xe7\x21\xba\xd7\x8c\x36\xd4\x18\x5c\xc1\x2b\xb8\x70\x23\xc5\x21\xb9\xe3\x89\x19\x9c\xff\xc5\xa6\x4b\x5f\xa5\x19\x40\x9b\x5b\xcc\xb5\x0a\x14\x12\x0d\x21\x5b\x63\xf3\xc1\x44\xb2\x1f\x6e\x6f\xaf\xd8\xf7\x67\xb7\x56\xd9\xb9\xbb\x3e\xc7\x75\x01\x74\x2a\x8c\xb3\x3f\xd7\xa7\xf8\x76\x9b\x89\xbf\xfc\xf9\x2f\x33\xc9\x6c\x8e\x72\x69\x47\x1a\x77\xf4\x08\x29\x61\x01\xef\x04\x8e\x59\xa0\x72\x86\xfa\x30\xe5\x0e\x35\x3f\x47\xed\xfc\x91\xac\x05\x70\x46\xa5\x4a\xdd\x97\x99\x33\x73\x87\x7a\x98\xa9\xf0\xee\xfa\x1c\x4a\x07\x3a\xa5\x62\x0d\xf9\xd3\x84\xb3\xbe\xc0\xc4\x73\xdb\x18\xf3\xef\x07\x95\xc4\x8c\xcb\xad\xf9\x16\x8b\x86\x65\x99\x8b\xa5\xca\xc5\xc8\xbe\x69\x0a\xe0\x45\xb2\x48\xd2\xa4\xd8\x82\x94\xb2\x79\xed\x33\xcb\x91\x6f\x0a\x30\xb7\x19\x02\x78\x9b\x05\x86\x69\x6c\x5f\xdf\xe9\x10\x01\x0e\x93\xe6\x72\x23\xe2\x45\xc7\x7c\xbb\xc8\x05\xbf\x37\xab\x9b\x4a\x18\xbf\xa1\x9c\xb1\xe2\x04\xcf\x98\x65\x29\x23\x5c\x1a\xa6\x0d\xb4\xfa\xe9\xe6\x94\x6e\x19\x7f\xe0\x09\xe6\x94\xb5\xee\xf2\xe5\x32\x89\x12\x9e\x92\xe4\x58\x94\x4b\x48\x1b\xc3\x35\xa5\x2c\x42\xf0\xa1\x29\x04\x6e\x19\x36\x61\x3f\x2e\xa8\x85\x58\x25\x08\x38\x7e\x4c\x8a\x35\xc6\x15\x8c\x71\x9e\x79\x96\xe8\x71\xa4\x36\xb0\xdf\x6e\x60\x29\x69\xba\xf4\x02\x0e\xbc\xb6\xce\xd9\x6b\x0b\xb5\xdb\x64\xc5\x96\xd6\xde\x1b\xb6\x49\x56\xeb\x02\x12\xb9\x40\xed\x00\x89\x48\x36\x59\x0a\x97\x3e\xf2\x30\x5a\xbc\xaf\x16\x1b\x2e\x8b\x24\xea\xf2\x29\xb5\xa6\x04\xef\x87\xf1\x5c\x6c\x8b\xdd\x76\xbc\x0f\xc4\xb3\xcf\x91\x42\x3f\x90\xc8\xac\x2e\x90\x49\x06\x42\x7a\x99\x80\xc0\xbf\x9e\x72\x76\xdf\x15\xea\xe3\x44\x6e\x3f\x7a\x12\x52\x2e\x83\xdc\x57\x3b\x6a\xb7\xfb\x9f\xa7\x8a\x66\x8d\xf1\x99\x04\x54\xa7\x11\x18\x94\x8c\x76\xe7\x19\xe3\x8e\x14\x33\xb3\x57\x76\xd1\xa4\xc9\x02\xea\x26\x59\xa1\x99\x2e\x33\x88\x27\x28\x14\xcb\x78\x74\x7f\x5c\x4a\xf3\x1f\x23\x0c\x71\xbb\xeb\x90\x9c\x68\x26\xd5\x92\x95\x05\x6e\x1c\xbb\x84\xc1\x28\x12\x98\x02\xfc\x05\x6d\x23\x8a\xb5\x8a\x5d\x5c\x98\x29\x13\xc6\xcf\xb4\xe8\x8c\xe8\xa5\xdf\x9e\xb0\x2b\x53\xa1\x59\xc4\x54\x37\x77\xdd\x4f\x24\x3b\xfd\xd7\x7f\x85\xf7\xcd\xe0\xbe\x57\x8a\x2d\x95\x62\xdf\xb2\xf1\x78\xfc\xef\xf8\x9b\x29\x94\xcb\x2d\xfd\xc5\xe5\x76\x6c\x8a\x7b\x9f\xab\xcd\xeb\xa5\x52\x6f\xe8\x77\x48\xda\x6c\xfe\x91\x2c\xd9\x6b\xf3\xd2\x1d\x54\x75\xab\x5e\xcf\xca\x2f\xbf\xfc\xea\xf7\xe6\xd5\x37\xec\x3f\xf1\x9d\xe0\xf5\xbf\x87\x4d\xfd\x6a\x4f\x53\xff\xc0\x1f\x78\x9f\xb6\xb2\x6f\xe1\xac\x31\x05\xec\x6c\x63\xa2\x5f\xbf\x57\x6a\x0c\xb7\xff\xb0\x75\x58\xac\x79\x03\x5b\x11\xbc\xf5\xef\x41\xb3\x99\x6d\xf7\xd7\x7b\xda\x8d\xa8\x7a\xd7\x72\x2c\xfe\xbd\x52\xaf\xc7\x63\x23\xb7\x68\x5c\xb1\xd5\xaf\xdf\x54\x07\x1a\x3a\xd0\x6c\xbf\x79\x3c\xc5\xe6\xbf\x3b\xbb\x39\xbd\x9e\x5e\xdd\x5e\x5e\xbf\x39\xb1\x3d\xf0\x33\x10\x7c\xcf\x6c\x6a\x6d\xd7\xf0\xff\xbd\xa7\xe1\xdf\x2b\xdb\x66\x68\xf4\xc9\xb7\x0c\x67\x33\x5b\x8c\xdf\x2b\xf5\x9f\xe3\xf1\xf8\xef\xf4\x98\xcb\xed\xc8\x1c\x4c\xe6\x9d\x0c\x45\xf9\x07\x9e\xeb\x35\x4f\x4d\x9f\x82\x36\xb8\x4e\xb4\x96\x68\x8b\x4b\x96\xb5\xc2\xee\xe4\xc6\x17\x07\x95\xc1\xc4\xc2\x5b\xff\xfc\x2d\x93\x49\xea\xa7\x2f\xa8\x03\xe6\xe9\x16\xa8\x25\xa2\x7b\xb7\x5d\x5c\x8e\xd0\xc5\x96\x65\xf5\x8d\x8b\x71\x67\x5b\x9b\xa1\xc0\x88\xfb\x99\x7c\xd5\x22\xd1\x8f\x8d\x6a\x37\x86\x07\xe6\x80\x7a\x65\xb3\xc7\xdb\x63\xc1\x65\xd6\xc2\x91\x05\x47\x34\xee\x56\x49\x31\x6a\x6d\xfa\xa1\x3b\xf0\x02\xb2\x2a\x50\x3b\x5f\x1d\xbf\xa2\x40\x21\x5f\x45\x95\x48\x7e\xf6\xc5\x52\xa9\xf1\x82\xe7\xd0\xba\x4f\xc7\xdb\xf1\xdf\x66\x5f\x60\x7f\x50\xf9\x40\xc5\x08\x0a\x9f\x7d\x01\x4f\x61\x39\xcc\xe4\x1f\x6e\x2e\x2f\x66\xf2\xdb\x6f\xbf\xfd\x16\x47\xcb\xfc\xdd\xe2\x7b\x31\xc7\x15\x88\x5b\xd4\x53\x4a\x6d\x53\x4a\x8a\x55\x99\xf2\x7c\x26\xdb\xdd\x35\xb1\xf0\x42\x73\xe4\x9d\x37\xb4\xce\x46\x36\xbb\x05\x24\x29\xb3\x32\x0e\x6d\x93\x1f\xff\x7f\xd3\xe4\x8f\xa4\x22\x3a\x21\x1f\x0e\xc1\xd8\x2e\xe6\x13\xbb\x54\xcd\x60\x9b\xf5\xeb\xf5\xac\x65\x92\x0a\xda\xb8\x76\x71\x5f\x89\x5c\x2b\xe9\xd7\x0c\x5d\x08\x80\xdb\x0c\x1c\x00\xec\x5b\xf6\xf6\xdf\x6b\x4f\xcd\x3c\xd8\x87\x5f\x55\x24\x01\x63\xbe\xa8\xd9\x17\xd0\xea\xd9\x17\x27\x6c\xf6\x45\xdb\xba\xa9\x36\x6c\x8c\x4d\x99\x7d\x31\xf2\x05\x40\x33\x2e\xf8\x06\x0b\x29\xbf\xfc\xf2\xeb\x08\x9b\x80\xa1\x6b\xc1\x9b\xa6\x49\xdd\x2f\x06\x4d\x9c\xd6\x5c\x67\x76\x20\x6c\x08\xe4\xa3\x48\xd3\xa3\x7b\xa9\x1e\x31\xcf\x38\xf8\x89\x28\x4a\x99\xe1\xf2\xa8\x4e\x2e\xe5\x26\xab\xcd\xb8\x0d\xda\x74\xd5\xb8\xf4\x76\x30\xa1\x33\xf9\x11\x96\x8e\x9d\x51\xa2\x23\x02\x3a\x50\x57\x13\x5c\x6a\x68\x25\xd8\x18\x0b\x5a\x08\x33\x09\xc5\xb8\x39\x67\xaf\x01\xf8\x45\x5d\x69\x68\xd6\xf6\xf2\xf4\x97\x3f\xff\xe5\xcd\xc9\x21\xf3\x54\x2d\xae\x32\x55\xd0\x1f\x2c\xe3\xed\xf8\xab\xb7\x5f\xe9\xd9\x17\x34\xea\xed\x57\xec\xf3\x44\x17\x3f\xd5\x34\xb0\x27\x24\x3b\x37\x8a\xc3\x4b\x39\x2f\x6c\x53\xb1\x99\x7d\x9d\x16\xd7\x55\xb7\x82\x5a\x5a\xb3\x0e\x5c\xce\x6c\x1a\x78\xd3\xee\x41\xea\x9d\x1b\x2f\xbc\x6c\xb1\xc7\x9c\x67\x99\xc8\xad\xad\xbc\xe1\xce\x80\x9c\xea\x50\x8b\x15\xfd\x6d\xc2\xcc\x2c\x9b\x5a\xd1\xf0\x1a\x0c\xdd\xb8\x7d\xe6\x2e\xca\x34\xed\x9c\xb9\xfd\xc9\x92\x2f\xee\xce\xcf\xe7\x3f\x4d\xce\xef\xce\x6c\xf7\x5b\x93\x0f\x07\xaf\x75\x8e\x89\x6b\x09\x8d\x09\xe2\xaa\x0a\xc0\x52\x95\x1b\x91\x5b\xa6\x30\xdf\x6b\xc4\x91\x94\x69\x5a\x4d\x8b\x3d\x93\x1f\xa9\x1c\x10\x03\xa5\x4c\xac\x9a\xb2\x73\xe0\xaa\xf5\xc3\x6b\x1f\x4d\xe1\x1f\xf1\xdb\x23\xe6\x3b\x71\xc2\x2e\x5c\xad\x1d\xe3\x4a\x84\x13\x07\x6c\x07\x8c\xb7\xed\xda\x0e\xcf\x9d\xf8\xff\x69\xdb\xe3\x4e\x42\xd2\x2f\x23\x79\x31\x5f\xff\xb3\xec\x0e\x1c\xbb\x8f\x55\x28\xb8\x33\x97\xc6\xe8\x35\x84\x72\x47\x98\xae\x5d\x17\xc4\x59\x8c\x63\x36\x93\x28\x88\x4d\x9b\x0a\xd5\xdd\x26\x36\x25\x0f\x52\xca\xe5\xaa\xe4\x2b\xa1\x47\xcc\x56\x3e\x93\xf6\x76\x6a\xef\x3a\x0e\x98\x03\x8c\xac\xb5\x25\x54\x0b\x01\x4e\xe4\x4c\x52\x9f\xe0\x84\xa5\xe2\x31\x1c\xf5\x0f\x37\xae\x3b\x14\xf7\x8d\x05\x51\xc6\x79\x39\x93\x38\xb9\x68\x1b\xb3\x60\x43\x50\x3b\x9a\x67\x13\x07\x78\x30\xde\xeb\x62\x56\xa8\x15\xc0\x1e\x67\xd2\xb1\x60\x21\x38\xc3\xde\xd7\x7c\x6e\x50\x6c\xd2\x7e\x79\x62\x27\xc3\xee\x09\x6a\x5b\xfb\xaa\x3f\xf8\x0c\x30\x1b\x6e\xde\x7a\x97\xdf\xbd\x6c\xbd\x18\xeb\x09\xc8\xe1\x81\xe0\xe8\xa2\x46\x04\xea\xb3\xf6\xd6\xd8\x7e\xe1\x3b\x9d\xd1\xa3\xaa\x5c\xa4\x03\x9a\x84\xef\xef\x6c\x14\x8a\xe4\xdd\x8d\xea\x61\x91\xbe\xae\x6d\x2d\xb3\x4c\x77\x55\xbb\x50\xaa\x63\x5e\x9e\x11\xb3\x5b\x69\x14\x7d\xb0\x6f\x30\xca\xa8\x78\xca\x7a\xe9\xc1\x07\x54\x1f\x22\x2b\x7d\x76\x35\x28\x4d\xf4\x93\x9a\xe3\xf5\xa7\xde\x2d\x72\x1a\x02\x1d\x76\x83\x24\x2c\x9d\x73\x15\x01\xdb\x21\x26\xed\x35\x05\xc3\x5b\x44\x82\xe2\xc5\x6c\x9e\x11\x6c\x22\xb3\xfe\x47\x6e\x11\x8d\xfc\xcc\x8d\xa0\x91\x51\x99\x6b\x23\x2e\x49\xde\x91\xd4\x56\x39\xe3\x33\x69\xd9\x60\xac\x38\x9e\x58\x7b\x70\xee\x7e\x45\x8e\xa5\x0c\x53\xd6\x81\x53\xa8\x00\x2b\x39\x49\xc3\x99\x7c\xe0\x79\xc2\x25\x60\x9a\x17\x1a\xf2\x0d\xc3\x95\x6e\xcb\xe8\x81\x23\xe0\xd0\xa1\x91\x79\x8f\xcc\xab\xa9\x01\x95\x73\xfe\x9f\xcc\xff\xfe\xfe\x4f\xff\x37\x00\x00\xff\xff\xd3\xb6\xa9\xb3\x49\xa7\x06\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\xe3\xb8\xb5\x2f\x0c\xff\xbf\x3f\x05\xaa\xf7\x5b\xd5\x33\x89\xed\x9e\x5c\xce\x7e\x53\xde\x75\xea\x79\x34\xb6\xba\x47\x67\xdc\xb6\x63\xcb\xd3\x7b\xea\x68\x97\x06\x22\x21\x09\x31\x05\x68\x00\xd0\x6e\x65\x57\xbe\xfb\x53\x58\x00\x48\x90\x22\x29\xea\x66\x4b\x6e\x24\x55\x89\x5b\x24\x71\x59\x00\x16\xd6\xf5\xb7\xfe\xe7\xdf\x10\x7a\x27\x9f\xf1\x64\x42\xc4\xbb\x73\xf4\xee\xcf\x67\x3f\xbc\x3b\xd1\xbf\x51\x36\xe6\xef\xce\x91\x7e\x8e\xd0\x3b\x45\x55\x42\xf4\xf3\x71\xb2\x50\x84\xc6\xc9\x07\x49\xc4\x13\x8d\xc8\x07\x1c\xcf\x28\x3b\x9b\x0b\xae\x38\x7c\x88\xd0\xbb\x27\x22\x24\xe5\x4c\xbf\x6e\xff\x44\x8c\x2b\x24\x89\x7a\xf7\x6f\x08\xfd\x0b\x9a\x97\xd1\x94\xcc\x88\x7c\x77\x8e\xfe\xaf\xf9\x68\xaa\xd4\xdc\x35\xa0\xff\x96\xfa\xdd\xff\x86\x77\x23\xce\x64\x5a\x78\x19\xcf\xe7\x09\x8d\xb0\xa2\x9c\x7d\xf8\x87\xe4\x2c\x7f\x77\x2e\x78\x9c\x46\x2d\xdf\xc5\x6a\x2a\xf3\x39\x7e\xc0\x73\xfa\xe1\xe9\x4f\x1f\x70\xa4\xe8\x13\x19\x26\x38\x65\xd1\x74\x38\x4f\x30\x93\x1f\xb8\x98\x7c\xf8\x1f\x1a\x9f\x71\x31\xf9\x17\xfc\x31\x17\xfc\x1f\x24\x52\xe6\x1f\x31\x9f\x61\xca\xcc\xdf\x0c\xcf\xc8\xbf\xb2\x46\x11\x7a\x37\x21\xca\xfb\xa7\x9e\x7a\x3a\x9b\x61\xb1\xd0\xe4\xf9\x48\x54\x34\x45\x6a\x4a\x90\xe9\x14\x39\x7a\xf1\x31\xc2\xe8\x5c\x90\xf1\xf9\x6f\x82\x8c\x87\x8e\xea\x67\x86\xda\x57\x30\xb4\xdb\x04\xb3\xdf\xce\x2c\xcd\xa0\x65\x3e\x27\x02\x26\xda\x8b\x75\xeb\x9f\x88\xea\x40\xb3\xf9\xfb\x7f\xf6\x5f\x17\x44\xce\x39\x93\x44\x16\xc6\x87\xd0\xbb\x3f\xff\xf0\x43\xe9\x27\x84\xde\xc5\x44\x46\x82\xce\x95\x5d\xd9\x0e\x92\x69\x14\x11\x29\xc7\x69\x82\x5c\x4b\xfe\x68\xcc\x5c\xf5\x32\xe3\xa5\xc6\x10\x7a\xf7\xff\x13\x64\xac\xdb\xf9\xf7\x0f\x31\x19\x53\x46\x75\xbb\xd2\xec\xa6\x7c\xb8\xef\x0a\x5f\xfd\xeb\xdf\xaa\xfe\xfe\x97\x37\xa3\x39\x16\x78\x46\x14\x11\xf9\xfa\x9b\xff\x94\xe6\xa2\x17\x49\x77\x6e\x56\xb4\x3c\xe8\xd2\x4c\x6f\xe0\x2f\x9c\x9c\x20\x2e\x26\xe8\x91\x2c\x10\x6c\x29\x12\x23\xc5\x61\xed\x04\x91\x3c\x15\xd1\xf2\xec\x29\x7c\xaf\xb7\x59\xf9\x89\x20\xbf\xa7\x54\x10\xbd\x4c\x4a\xa4\xa4\xf4\x54\x2d\xe6\x30\x3c\xa9\x04\x65\x13\x9f\x08\xff\x3a\x69\x35\x29\xbb\x3b\x57\x4c\xec\x1a\xcf\x88\xde\x69\x7a\x0e\xf6\x8b\xc2\x7c\xd0\x88\x24\x9c\x4d\x24\x52\xfc\x70\xa6\x66\xce\xda\x1a\x33\x33\x1f\xd4\x4e\x6c\xc0\x3a\xee\x95\x08\x33\x34\x22\x48\xb3\x1b\x1a\x13\x41\x62\x84\x25\xc2\x48\xa6\x23\x49\x14\x7a\xa6\x6a\x4a\x99\xfe\xf7\x9c\x44\x74\x4c\x23\x47\xb3\xc3\xa1\x0d\xfc\xd9\x4c\x99\x07\x49\x84\x1e\xf8\x13\x8d\x49\x8c\x9e\x70\x92\x12\x34\xe6\xa2\xb8\x8f\x07\xac\x3f\xd5\x74\x98\x8d\x28\x03\x7e\xa2\x69\xe9\x76\xc8\x1f\x1d\xb9\xfe\x88\x74\x7f\x28\x65\xf4\xf7\x94\x24\x0b\x44\x63\xc2\x14\x1d\x53\x22\xcb\xad\xfd\x91\xdb\x23\x84\x4e\x91\xa6\x33\x11\x0a\xe8\xcd\x99\x22\x5f\x95\x44\xa7\x28\xa1\x8f\x04\xbd\xbf\xa2\x52\xa1\xce\x6d\xef\xfd\x09\x7a\x6f\x98\x00\x02\xf6\xfb\xfe\x05\x28\x9c\xfd\xfd\xdf\x1e\x3f\x51\x78\x52\xe6\x24\xef\x3a\x9a\x45\xdd\x9b\xdb\x2f\x6f\xe1\xbf\xff\xcd\x6f\xc7\xae\x57\xe3\x95\x72\xc4\xb7\x48\xb8\x44\x02\xbf\x0d\xfc\x36\xf0\xdb\xfd\x53\x78\xff\xd2\xd9\xef\x29\x11\x8b\x86\x59\x8d\x71\x22\x0f\xfa\x1a\xc9\xef\x10\x7b\x81\xb4\xbd\x36\x60\xf5\x8b\x37\x86\xd4\x1b\x6f\xdb\x0b\x43\xb7\x5b\xbe\x31\xe4\x71\x5d\x19\x7a\x0a\xfb\xbe\x36\xb6\xb9\x33\xb0\x82\xc3\x8c\x29\x33\x67\x3f\x63\x05\x42\xea\xe3\xef\xb6\xef\x81\x70\xca\x6d\xae\x10\x6f\x66\xde\x2d\xe2\x2e\x07\x8f\x2a\x07\x38\xef\x84\xce\xe8\xaa\xf5\xed\xb1\x98\x46\x58\x59\x1e\xce\xd2\xd9\x88\x08\x4d\x06\xc7\xb5\x60\xb6\x23\xcd\xc5\x54\x2a\x18\x89\x5b\x4c\x73\x1b\x8e\x46\x99\x22\x13\x22\xca\x5f\x8f\xb9\x98\x61\x65\x5f\xf8\x8f\xbf\xae\x4b\x08\xc5\x1f\xc9\xaa\xf5\xef\x99\xd5\x8c\xb0\x84\x6d\x30\x4b\x13\x45\xe7\x09\x41\x73\x3c\x21\xd2\x52\x24\x4d\x94\x3c\x81\xd7\x24\x11\x4f\x44\x9c\x66\x17\x2b\xf4\xe0\x04\x8a\x54\x1a\xee\x3f\xce\xe4\x62\x46\xbe\x2a\x68\x69\xc0\x40\xa4\x00\x12\xf9\x17\xe5\xcb\x5c\x0e\x2d\x48\x25\xb9\x50\xc3\xd1\xe2\xec\x91\x2c\xf5\x5b\xbb\x73\x30\x43\x58\x29\x41\x47\xa9\x22\x7a\xde\xba\x0d\x77\xf5\x01\x7b\x34\x72\x47\x1b\xd6\xf0\x7a\x13\x8e\xa9\x20\x11\xcc\x6d\x9d\x03\x93\x7d\xa5\xe7\xad\x2f\xfe\x85\x99\xbd\x96\x03\xb4\x98\x55\x41\x81\x6c\xc9\x07\x6c\xc0\xd0\x29\xba\xec\xde\x5f\x74\xaf\x2f\x7b\xd7\x9f\xce\xd1\x8f\x0b\x14\x93\x31\x4e\x13\x75\x82\xc6\x94\x24\xb1\x44\x58\x10\x68\x92\xc4\x5a\x94\xd2\x83\x21\x2c\xa6\x6c\x82\xb8\x88\x89\xd8\x1f\x19\x4b\x4f\x09\x4b\x67\xa5\x7b\x05\x7e\xcf\x47\x5f\xfa\x42\x8b\x18\xd9\xa3\xc2\x93\xff\x5e\x22\x30\xcc\x58\xf7\xed\xb5\xb6\xe6\x32\x06\x41\xcd\x17\xd4\xa2\x29\x4d\x62\x41\xd8\x07\x85\xe5\xe3\x90\x7c\x25\x51\x6a\xe4\x0c\xb0\x23\x17\x7f\x1c\x6a\x45\x82\xc7\xa4\xf8\x4b\xe1\x1f\xc6\xea\xbc\xf6\x67\xb9\x64\xb8\xf6\xa7\x99\x2d\x62\xed\x2f\xc1\x72\xd1\xee\x3b\xf8\x85\xc6\x95\x6f\xc3\x2f\x2b\xe6\xe0\xde\x69\x18\xac\x7b\xa5\x76\x54\xee\x05\x2b\x00\x57\xbe\x23\x88\x12\x8b\x21\x56\x8a\xcc\xe6\x6a\x4d\xab\x0c\x46\x89\x16\xb3\x9b\xc4\xea\x6b\x1e\x93\xae\xeb\xef\x37\x64\xa4\x7b\x12\xa3\xd1\xc2\x1e\x8b\x31\x11\x84\x45\xa4\xbe\x85\x3e\x96\x8f\x79\x0b\xab\x64\xf3\x42\x7f\xf2\x23\x17\xfa\xf3\xa3\x70\x0c\x14\x46\xfe\x12\x32\xfa\x26\x27\xf5\x8d\x79\x13\x36\xe5\x3a\x6f\xce\x16\xb6\x21\x0f\x0d\x96\xb3\xed\x29\xd9\xd6\xce\xc6\x05\x92\x0b\xa9\xc8\x6c\xa5\xc5\xed\x78\x08\x61\x2f\xc9\x43\x1d\x70\xe9\x9e\xfe\x06\x4e\x7d\x51\xea\x08\xc7\x7b\x0d\x92\xed\xca\x5e\x7e\xe8\xf3\x74\x01\x30\xcd\x53\xbd\x77\xcb\xe7\xb9\xeb\x8e\x62\x9a\x05\x79\x78\xd7\x83\xdc\x93\x05\xaa\x76\xad\x1c\xb5\x87\x30\x80\x15\xb6\x87\xa2\xc7\x25\x3b\x7f\xfa\x53\xdf\x68\x67\x2c\xb4\x6a\x4a\xa5\x67\xbf\x44\x11\x17\x46\x1c\x8e\xed\x79\x37\xe6\x87\x4e\xbf\x73\xdf\xed\x9f\xa3\x0e\x8a\xb1\xc2\xfa\x80\x0b\x32\x17\x44\x12\xa6\xc0\xb4\xa3\xbf\x57\x0b\x34\xe3\x31\x49\x8c\x11\xe2\xa3\x96\xfe\xd1\x25\x56\xf8\x02\x2b\x9c\xf0\xc9\x19\xea\xc0\x3f\xf5\xc7\x54\x22\x9c\x48\x8e\xb0\xdb\x56\x24\x76\x4d\x60\x16\x3b\xd6\x82\x51\xc4\x67\x73\x9a\x64\xde\xa6\xcc\xde\x46\x59\x4c\x9f\x68\x9c\xe2\x04\xf1\x91\xe6\x2a\xf2\x6c\xc0\xba\x4f\x84\xa9\x14\x27\xc9\x02\xe1\x24\x41\xb6\x5b\xf7\x02\x92\x53\x9e\x26\xb1\x6e\xd7\x8d\x52\xd2\x19\x4d\xb0\xd0\x32\xad\x19\xed\x8d\x6d\x0b\xf5\xa7\x24\x1b\x2b\x8c\x4b\x53\x73\x86\x1f\x89\x44\x54\xa1\x39\x97\x92\x8e\x92\xfc\xcc\x3f\xf4\x10\x8c\xfb\xe2\xaa\x07\x26\x9e\x48\x21\x6e\x78\xa8\xeb\xdc\x9a\xf4\x5c\x8f\x33\xcc\x18\x81\x8e\xb9\x9a\x12\x61\xbb\xb7\x2f\xbf\xb6\xb5\xe6\xe1\xfa\xfe\xb6\x7b\xd1\xfb\xd8\xeb\x5e\x2e\x9b\x6b\xfa\x9d\xfb\x9f\x97\x7f\xfd\x72\x73\xf7\xf3\xc7\xab\x9b\x2f\xcb\x4f\xae\x3a\x0f\xd7\x17\x3f\x0d\x6f\xaf\x3a\xd7\xcb\x0f\xed\xb6\x6a\x6d\xf9\xf1\x47\xb6\xb3\xb3\x75\x74\x46\xa1\x60\xd4\x5f\x63\xd9\x77\x6d\xd4\x3f\x79\xbb\x56\xfd\x31\x4d\xc0\xe8\xd0\xda\xa2\x9f\x59\x8d\xec\x97\x68\x8e\xa5\x34\x72\xa0\x19\xc1\xd9\x80\x7d\xe6\x42\xb3\xeb\x31\xd7\x1c\x51\xcb\x8a\x4a\xa4\x91\xa2\x6c\x92\x7d\x74\x8e\x06\xe9\x0f\x3f\xfc\x25\xba\xa2\xec\x11\xfe\x22\x87\x48\x9c\xe0\xf2\x08\x2e\x8f\x83\x73\x79\xfc\x5b\xc5\xa7\xfb\x77\x0f\x04\x1b\x7f\xb0\xf1\xef\xcf\xc6\x1f\x4c\xfc\xde\x18\x82\x7d\x7b\x5b\x42\x04\x03\x58\xb0\x6f\x6f\x4f\x88\x60\xdf\x3e\xd0\x19\x87\xe3\x1d\xec\xdb\xc1\xbe\x1d\xec\xdb\xc1\xbe\x1d\xec\xdb\xc1\xbe\xfd\xcd\xd8\xb7\x0f\x30\xe4\x29\x18\xf9\x83\x91\x3f\x18\xf9\x83\x91\x3f\x18\xf9\x83\x91\xff\x78\x8c\xfc\x5a\xda\xfd\x50\x0e\xfd\xdf\x13\x84\x8c\x16\x2e\xd9\x3c\x55\x20\x4a\xf2\x54\xe9\x3f\x75\xff\xb0\x57\x1a\x20\x00\xda\x19\x94\x3f\x11\x95\xbd\xa8\x45\xdb\xa3\x88\x15\xff\xc2\xc5\xe3\x38\xe1\xcf\xd9\xc8\x3f\x11\xa5\x07\x7f\x67\x7b\x09\xd0\x32\x01\x5a\x06\x05\xa8\x83\x5d\x43\x1d\x1c\x94\x89\x7a\x57\xfc\xdd\x7d\xfd\x4e\x2b\xff\x8a\xd4\xf2\xe2\x3e\x11\x33\xca\x9c\xec\x42\x99\x16\x72\x27\x82\x48\xb9\x2d\x07\xce\x1a\xce\x5e\x3f\x0a\x1e\x9c\x8d\x36\x1b\x7f\xe0\xbe\x81\xfb\xd6\x4c\x2d\x70\xdf\x37\xc6\x7d\x5b\x4c\x6d\xc4\xe3\x25\x75\xc2\x8c\xa4\xea\x49\xf3\x48\x76\xc6\xa1\x7e\x4f\x49\xbb\xb0\x83\x97\xd0\x1a\x8e\x5a\x51\x38\x86\x3b\xea\x00\xf4\x84\xc0\xd4\x03\x53\xaf\xa6\xcc\x51\x32\xf5\x63\xf4\x09\xec\x9f\xa7\x17\xbd\x28\xb9\x39\xa8\x02\xe8\xa1\x3e\xc6\xb3\x36\x84\xb3\x26\x42\xd3\x0b\xc0\x7c\x91\x6b\xa2\x18\xe6\xb8\xe2\xaa\x28\xbc\x7c\x34\x76\xa5\xc2\xa8\x5f\xfe\xae\x78\xe3\x68\x03\xdf\x4a\xb0\x65\x88\xa5\xdc\x90\x50\x6f\xf8\xd2\x7c\xb9\x48\xc8\x97\xbf\xed\xbe\xd9\x3b\x2d\x5c\x69\xf6\x3f\x81\xe1\x07\x86\x1f\x18\xfe\x2b\x31\xfc\x0d\xe8\x1e\x54\xb8\xa5\x4b\xad\x12\xcc\xaf\x2d\x7a\xdf\x3a\xa9\x7c\x6b\xe4\xee\xb5\x4e\xd6\x5b\x91\x9d\x57\x99\x8e\x57\x95\x7f\xb7\x9c\x70\x57\x99\x61\xb7\x5d\x4a\xdd\xa6\x77\x75\xfb\x24\xb9\x4f\x44\x15\x5e\x3e\x1a\xfd\xb3\x30\xea\x97\xbf\xac\x5f\x3d\x18\xf4\xb5\xf8\xf4\xb7\x97\x10\x18\x32\x00\xf7\x48\xba\xb7\x2e\xd6\x1c\x6e\x8e\xdf\x37\x90\xd4\x17\xb2\xf8\xd6\xa2\xd1\xdb\x4a\xdb\x7b\xab\x79\x7a\xc7\x99\x98\x17\x32\xf1\x42\x26\xde\x4e\x55\xde\xd2\xd3\x6f\x2a\x13\xef\x98\x53\xef\x5e\xde\x3c\x11\x4c\x0e\x87\x6f\x72\x08\x16\x07\xfb\x9f\xa0\x7d\xaf\x3d\xf3\x20\xda\x07\xed\xbb\xcd\xcc\x83\xf6\x1d\xb4\xef\x03\x3c\xa2\x41\xfb\x0e\xda\x77\xd0\xbe\x83\xf6\x1d\xb4\x6f\x14\xb4\x6f\xaf\xa1\xd7\x02\x6c\x38\x04\xe7\xe6\x51\xd9\x1c\xf2\xa9\x0f\xdd\x01\x5f\x06\x39\x28\xb0\xdd\x36\xb8\x07\xf0\x97\x53\xea\xd7\xc5\xe1\xad\xd5\xd2\x2f\xf3\xc1\x76\x81\x49\xfe\x66\x59\xc5\x0a\x85\x7d\xe9\xbb\xa3\x88\x11\x58\x1a\x75\x48\xb7\xdd\x54\xe4\x79\x25\xa1\x61\x4f\x14\x38\x92\xeb\x6b\xfd\x85\x7a\xc3\xba\x64\xd0\x21\xb7\x4f\xa1\x3b\x1a\xdd\xf1\x78\x74\xc6\x97\x97\x2d\xde\xa2\x38\x11\xa4\x09\x6f\x0c\xe1\xe2\x0d\x17\x6f\xb8\x78\xc3\xc5\x1b\x2e\xde\x90\x81\x6f\xdf\xdf\xab\x3c\x51\x12\x26\x5a\x01\x34\xee\xbc\x32\x50\x85\x28\xe1\xdd\xc0\xab\xea\xfc\x94\xbf\xa6\x44\xfe\xf5\x28\x65\x8a\x97\x28\xf5\x13\x84\x8a\x23\x11\x2a\xde\xa4\x2d\x29\x48\x4a\x41\x52\xaa\xa6\x4c\x2b\x49\x69\xc0\xfa\x53\x4d\x87\xd9\x88\xb2\xcc\x9b\xe7\x76\xc8\x1f\x1d\xb9\xfe\x88\x74\x7f\x28\x65\xf4\xf7\x94\x24\x8b\x9c\x27\xc9\x72\x6b\x19\x5e\x34\x3a\x45\x9a\xce\x44\x28\xa0\x37\x67\x8a\x7c\x55\x12\x9d\xa2\x84\x3e\x12\xf4\x5e\x33\x66\xd4\xb9\xed\xbd\x3f\x41\xef\xaf\xa0\x6c\x1d\x9a\x27\x98\xc9\xf7\x07\xe3\xb8\x09\x60\xfd\xfb\x02\xeb\x0f\x58\xfd\x01\xab\xbf\x2d\x81\x02\x56\x7f\xc0\xea\x3f\x5e\xac\xfe\x9d\xe9\x87\x1b\xe2\x72\xbe\x8a\xa6\x78\x9c\xbe\xec\xa0\x29\xa2\xa0\x29\x06\x4d\x31\x68\x8a\x41\x53\x3c\x12\x4d\xf1\x30\x28\x1c\xd4\xc4\xa0\x26\x06\x35\x71\x87\xc4\x09\x6a\x62\x50\x13\x83\x9a\xb8\xa4\x26\x1e\xaf\xe7\xf0\x2f\x41\x1f\x0c\xfa\xa0\xff\xfb\xf1\xe9\x83\x41\x75\x0a\xaa\x53\x35\x65\x8e\x53\x75\x3a\x18\xd9\xe7\x18\x43\x8a\x82\x52\xd8\x9e\x10\x41\x29\x6c\x4d\xaa\xa0\x14\x36\x10\x27\x28\x85\x41\x29\x0c\x4a\x61\x6b\xa5\xf0\x98\xdc\x85\x41\x3b\x0c\xda\xa1\xff\x7b\xd0\x0e\x83\x76\x18\xb4\xc3\xe0\x58\x0b\xaa\x61\x50\x0d\x83\x6a\x18\x54\xc3\x55\xc4\x09\xaa\x61\x50\x0d\xbf\x2d\xd5\x90\x3c\x11\xa6\x24\x14\x43\xf4\x15\xa5\x77\x73\x2e\xeb\x15\x3c\x9f\x3b\x54\x28\x77\xd0\x66\xb1\x28\x21\xa0\xb6\xfd\x86\xa6\x58\x22\x1e\x45\xa9\x28\x9d\x81\xb2\x7a\x77\x21\x08\x56\x04\x5a\xd0\x1f\x1e\x83\x5a\xb7\x3c\xdd\x97\x02\x20\x1e\xf1\x78\x69\xb7\x9b\x83\x50\xf5\xa4\x59\xcc\xda\xd9\xd4\x7f\x4f\x49\x3b\xad\x76\x8f\x9b\x5a\x61\xf9\xb8\xe3\x4d\x5d\x00\x9a\xde\x68\x53\x43\x0b\xc7\xb2\xa9\x97\xa7\xfb\xcd\x6c\xea\xaa\xa9\x1f\xc2\xa6\x7e\xe6\xe2\x71\x9c\xf0\xe7\x1d\x6f\xec\x2f\xb6\xd9\xed\x36\x77\xd6\xca\xb1\x6c\xf0\xea\x69\x7f\x33\x9b\xbc\x6e\xfa\xaf\xbb\xd1\xb3\xfa\x10\xad\xb7\x78\x5f\xd0\xc9\x44\xab\x19\xa0\xe1\xe9\xad\x68\x4d\x1f\x0d\x00\x49\x79\x45\x84\x95\xdb\x3a\x7b\xf5\x18\xb6\x74\x36\x58\x33\xf6\x6f\x66\x2f\x2f\xcd\xfb\x40\x36\xf1\x2b\x81\x76\xb4\x2b\xf8\x71\x45\xa5\xca\xde\x3c\x8e\x6c\xab\x6c\xb8\x2f\xe1\x37\x09\xf9\x3b\xc1\xcd\x10\xdc\x0c\x87\xef\x66\x38\x18\x83\x5a\x30\xc9\xef\xc9\x24\x4f\x65\xb0\xc9\x07\x9b\x7c\x5b\x02\x05\x9b\x7c\xb0\xc9\x1f\xaf\x4d\x7e\x4d\xdd\x61\xc3\x08\xad\x3a\x83\xd0\x3a\xfa\xc3\x27\x92\xab\x0f\xc7\xa5\x3d\x04\xcd\x21\x68\x0e\x41\x73\xd8\xb9\xe6\x70\x50\xe5\x08\x77\xc5\xa5\xdd\xd7\xef\xe6\x69\x3d\x4f\x7d\x98\xc7\x58\x11\x94\x31\x6f\xbb\x13\xf4\xc5\xa8\x78\x76\x08\xec\x7e\xd8\x92\xed\x9a\xbe\x8e\x94\xf3\x9a\xc1\xbf\x60\x79\xd6\xc0\x87\x03\x1f\x0e\x7c\xf8\xb0\xf1\xcd\x0f\xc7\x7d\xe0\xd8\xd3\xa1\xb8\x0f\x04\x89\xf8\x13\x11\xad\x7d\x61\x77\x04\x1c\x60\x20\xdd\xcf\x05\x79\xa2\x3c\x95\xc9\xe2\x54\xa4\x0c\x39\xdf\xb1\x77\x49\x41\x0c\xff\x33\x4d\x12\xc4\x99\x56\x15\x15\x16\xca\x3d\x66\x13\x34\x16\x7c\x06\xdb\x25\xc1\x52\xa1\x47\xc6\x9f\x19\x1a\x63\x9a\xa4\x82\xa0\x39\xa7\x4c\x9d\x0d\x58\x8f\xa1\x3b\x33\x46\xa8\xb9\x78\x82\x52\x49\x84\xd4\x47\x8d\x71\x85\xa2\x29\x66\x13\x82\x30\x5b\xd8\xe2\xe5\x39\x03\xd7\x9b\x34\x35\xb7\xa6\xee\xa2\x04\x58\x9f\x8d\x11\xac\x8d\x54\x22\x2a\x11\xf9\xaa\x04\x99\x91\x64\xa1\xfb\xd0\x57\x94\xe2\xc8\xd2\xc7\x0c\xd5\xee\x79\x22\x04\x17\x12\xaa\x35\x8e\x16\xff\xc4\x4c\x51\x46\x10\xe8\x74\xd2\x58\x12\x4f\xd1\x15\x97\x60\x62\xfa\xf9\x6f\x12\x45\x49\x2a\x15\x11\x27\x68\x94\x4e\xa4\x56\x6a\xe7\x09\x56\x63\x2e\x66\x7a\x84\x94\x49\x85\x47\x34\xa1\x6a\x71\x82\x66\x38\x9a\x9a\xb6\x80\x06\xf2\x64\xc0\x62\xfe\xcc\xa4\x12\x04\x67\xbd\xbb\x87\xe8\x3b\xff\x99\xd9\x00\xf2\xfb\x13\x38\x9b\x74\xa6\x35\x73\x6f\xf8\xf9\x8a\x9b\x35\xd1\x8d\x90\x18\x8d\x48\x84\x53\x69\xf3\x2e\x94\x58\x20\xf2\x75\x8a\x53\x09\x6b\xa7\xa7\x67\xeb\x5d\x46\x7c\x36\x4f\x88\x22\x88\x8e\x91\x12\xfa\xe2\xc2\x13\x4c\x35\xe9\xee\x09\x69\x21\x6d\xd8\x05\xb4\xbb\xfe\x37\xe0\x12\x33\x2e\x08\x8a\x89\xc2\x34\x69\xcc\xc5\xb1\xdf\x06\x27\xe9\x31\x71\xb9\xe2\x82\x1f\x04\x9b\x4b\xc0\xa0\xbf\x03\x9f\x3f\xb3\x9e\x86\x08\x27\x5b\xba\xff\xef\xec\xa0\xc2\xde\x3e\xae\xbd\x6d\x56\xed\x70\x36\xf7\x41\x7b\xfd\x8f\x6a\x4f\xbf\x90\xd3\x3f\x68\x57\x41\xbb\xaa\xa6\x4c\xf0\x8f\x87\x4c\xbc\xe5\x69\x05\xb7\x7f\x70\xfb\x07\xb7\xff\x2e\x89\x13\xdc\xfe\xc1\xed\xff\xcd\xba\xfd\x0f\xdc\xd3\x7f\x54\x1a\x43\xd0\x16\x82\xb6\x10\x7c\x31\x6b\x4e\xed\xe8\x64\xf4\x5d\x71\xe6\xcc\xd5\x1f\x93\x84\x28\x52\x6f\x7d\x24\x62\xa6\x75\x3b\x23\x75\x50\xa6\xc5\xd3\x89\x20\x52\x6e\xcb\x67\xb3\x86\x8f\x93\xdb\x66\xc3\x7f\x41\xff\x7e\x60\xbf\x81\xfd\x56\x53\xe6\x28\xd9\xef\xe1\x18\xd2\xbd\xc3\xfc\x52\x96\xf4\x8c\xff\x1e\x68\xa8\xd5\x51\x31\xe3\x17\x8f\xb4\x0a\x9c\x38\x70\xe2\x6a\xca\x04\x4e\x7c\xfc\x41\x49\xc6\xab\x3a\x9c\x27\x98\x0d\x69\x6c\x93\x13\x4c\x66\x42\x6e\xac\xd8\x97\x67\x53\x1f\xad\xd8\x00\xa6\x66\x00\xa5\xe2\x37\xfd\x49\x92\x3b\x3a\x10\x1f\xe9\x61\xac\x84\x8e\x35\xbe\x91\xdb\x04\xb3\x5e\x7c\x1c\x59\xcf\x95\xd3\x7f\x09\x67\xe8\xdb\x0b\x9e\xdd\xe6\x92\xc2\x0a\x9c\x6e\x98\x32\x63\x76\xcd\x81\x6f\x0b\x46\xe5\xc3\x98\xe8\x36\x57\x96\x37\x31\xef\xd6\x72\x97\x91\x47\x94\xc3\x9b\x76\xf0\xc5\x05\x54\xcc\xe0\x6d\x6a\x39\xe1\xe0\x6d\x3a\x5c\x6f\x53\x8b\x65\xdc\x8b\x0b\xf9\x85\x8f\xe7\x8b\xca\xac\x47\x2d\xa9\x06\x41\x15\x05\xb1\x2e\x88\x75\xf5\xb3\x0e\x62\x5d\x10\xeb\x82\x58\x17\xc4\xba\x20\xd6\xbd\xbe\x58\xd7\x62\x9a\xdf\x6c\x94\xc1\x2a\x51\xb5\x3d\xf2\xa9\xc9\xf1\x81\x54\xc0\x74\x9e\x70\x1c\x37\x45\x7a\xe5\xc2\xa4\x5f\x68\xab\x41\x02\x35\xad\xe7\x9f\x1d\x83\x00\x9a\x8f\xf6\x1b\xcb\x7f\x5a\x9e\xf8\xa1\x78\x0b\x5e\x0b\x03\xb5\x7a\xbf\xaf\xa1\x73\xc9\xbf\x1e\xd7\x8e\x0f\x90\xa8\x01\x50\xa3\x62\x6a\xc1\x77\x1d\x52\xbe\x42\x6e\xd4\x9b\x53\xdc\x43\x6e\x54\xc8\x8d\x0a\x66\x8d\xe6\x69\x07\xb3\xc6\x9b\xc8\x8d\x5a\x5f\x99\xd8\x63\xd9\xea\xed\xd5\x8a\xa3\x08\x39\x0a\x6a\x45\x50\x2b\x82\x5a\x11\xd4\x8a\x43\x2c\xe8\x1c\x74\x8a\xa0\x53\x04\x9d\x22\xe8\x14\x41\xa7\xd8\x39\x19\x83\x4e\xd1\x42\xa7\x80\xbf\x2c\x60\xe9\xda\x0a\xc6\x9a\x8a\xc5\x0a\x54\x86\xfc\xa3\x23\xd3\x2a\x82\x46\x11\x34\x8a\xa0\x51\xbc\xb8\x46\x71\x30\x13\xb2\xec\x73\xc5\x9c\xee\xdd\x82\x94\xe0\xa1\x0f\x6f\x3e\x6e\x44\x43\x68\x69\x85\x30\x51\x54\xd0\xb2\x5d\xa7\x3f\xf5\x75\x14\x13\x9b\x0a\x62\x79\x1e\xba\x89\x22\x2e\x0c\x53\x8e\xed\x2e\x37\xf2\x44\xa7\xdf\xb9\xef\xf6\xcf\x51\x07\xc5\x58\x61\xbd\xad\x05\x99\x0b\x22\x09\x53\x20\xab\x11\x88\xca\x05\x90\xee\xc4\x48\x15\x1f\xf5\xfd\x83\x2e\xb1\xc2\x17\x58\xe1\x84\x4f\xce\x50\x07\xfe\xa9\x3f\xa6\x12\xe1\x44\x72\x84\x1d\xe9\x49\xec\x9a\xc0\x2c\x76\x07\x0a\x03\xf6\x34\x4d\x32\xe5\x34\x53\x2f\x28\x8b\xe9\x13\x8d\x53\x9c\x64\xc1\xce\x03\x53\x60\x38\xc5\x49\xb2\x40\x38\x49\x90\xed\xd6\xbd\xe0\xe0\xac\x47\x24\x1b\xa5\xa4\x33\x9a\x60\xa1\xd9\xb1\x19\xed\x8d\x6d\x0b\x69\xc5\xd8\x8d\x15\xc6\xa5\xa9\x39\xc3\x8f\x44\x22\xaa\xd0\x9c\x4b\x49\x47\x49\x7e\x00\x1e\x7a\x08\xc6\x7d\x71\xd5\x03\x99\x2d\x52\x88\x1b\xce\xe1\x3a\xb7\x0a\x8c\xeb\x71\x86\x19\x23\xd0\x31\x57\x53\x22\x6c\xf7\xf6\xe5\xd7\x16\xbf\x1e\xae\xef\x6f\xbb\x17\xbd\x8f\xbd\xee\xe5\xb2\xfc\xd5\xef\xdc\xff\xbc\xfc\xeb\x97\x9b\xbb\x9f\x3f\x5e\xdd\x7c\x59\x7e\x72\xd5\x79\xb8\xbe\xf8\x69\x78\x7b\xd5\xb9\x5e\x7e\x68\xb7\x55\x6b\x51\xce\x1f\xd9\x3e\x64\x39\xf7\x75\x0b\x84\x00\x7b\xb8\x14\x56\xa9\x34\xd5\xa0\x05\x99\x50\xa9\x80\xfd\xb7\x91\xc2\x56\x03\x03\x1c\xad\xf4\x15\xaa\xb0\x04\x59\x2c\xc8\x62\x41\x16\x3b\x36\x59\xec\xe5\x4c\x02\x47\x14\xa6\xf8\x97\xe3\xba\x7b\x02\x88\x7b\x60\xce\x87\xcf\x9c\x0f\xce\xf5\x76\x30\xa6\xf3\x63\x04\x88\x0c\x4e\xc5\xf6\x84\x08\x4e\xc5\xf6\xb4\x0a\x4e\xc5\x06\xe2\x04\xa7\x62\x70\x2a\x7e\xc3\x4e\xc5\xa3\x8c\x4d\x0c\xaa\x84\x7b\x2f\xa8\x12\x41\x95\x78\xa3\xaa\xc4\xc1\x50\x38\xe8\x11\x41\x8f\x08\x7a\x44\xd0\x23\x9a\x89\x13\xf4\x88\xa0\x47\x04\x3d\xe2\xd8\xe2\x11\x8f\x4b\x93\x08\x5a\x44\xd0\x22\x0e\x5b\x8b\x38\x98\x09\x1d\x8f\xb7\xb8\xdd\x7c\x42\xe4\x5e\x88\xdc\x0b\x91\x7b\xb5\x91\x7b\x6f\x54\x93\xdf\x95\xfc\xe6\xbe\x3e\xb4\x80\xc4\xe3\x12\xbf\x42\xad\xa2\xec\x69\x10\xc6\x82\x30\xf6\x8d\x0a\x63\x07\x04\xa2\x78\x10\x25\x97\x66\x58\x45\x53\x3c\x4a\xc8\x30\xb3\x65\xc9\xb6\xea\xfd\x15\x95\x4a\xa2\x28\x95\x8a\xcf\xea\x2f\x97\xcf\xae\x87\x4e\xd6\xc1\x05\x67\x63\x3a\x49\xcd\xdd\xf2\x1b\x6c\x7d\xef\x44\xe7\x02\xee\x62\x4e\x56\xf9\x15\x2b\x5a\x3f\x8a\x6b\xa9\x7a\xe8\x2f\x75\x3b\xad\xa3\x8f\xe4\xb6\x4b\xab\x4c\x68\x11\x72\x78\xd7\xbd\xbf\x79\xb8\xbb\xe8\x9e\xa3\x0e\x88\x58\xe0\x4e\x30\x5b\x81\xfe\x53\x4f\x0a\x29\x2c\x1f\xf3\xb5\x14\x66\x9b\x4b\x90\xb3\xc1\x7f\xa1\x45\x7e\x74\x8a\x2e\xae\x1e\xee\xfb\xdd\xbb\x9a\x06\xed\x46\x81\xc2\x8b\x64\x36\x4f\xb0\x22\x31\x7a\x4c\x47\x44\x30\xa2\xa5\x9d\x28\x49\xb5\x70\x93\x7b\x35\x4c\xa3\xdd\xff\xea\x5e\x3c\xf4\x7b\x37\xd7\xc3\xbf\x3f\x74\x1f\xba\xe7\xc8\xed\x38\xdd\xac\x1e\x97\x1e\x45\xbc\x60\x78\xa6\x15\x2b\xfd\x43\x5e\xea\xf1\xf7\x94\xa4\x04\x61\x29\xe9\x84\xcd\x08\x53\xe5\x16\xdd\x80\xaf\x3a\x3f\x76\xaf\x8a\x2d\x4f\x09\xfa\xf9\x6f\xf9\xa0\x12\x3c\x22\x89\x75\xb3\x80\xe7\x40\x6f\xf4\xbc\x23\xeb\x7f\x49\x0d\x55\xff\xfe\xd0\xb9\xea\xf5\x7f\x1d\xde\x7c\x1c\xde\x77\xef\x7e\xe9\x5d\x74\x87\x56\x58\xbe\xe8\xe8\x7e\x0b\x3d\x59\x99\x1a\xfd\x9e\xe2\x44\x2b\x5d\x7c\x0c\x7e\x0b\x1a\x11\xf4\x3c\x25\x0c\xa5\x0c\x76\x9c\xd1\xe4\xb4\x7a\x97\x75\xaa\x4f\x99\x99\xd1\xed\xd5\xc3\xa7\xde\xf5\xf0\xe6\x97\xee\xdd\x5d\xef\xb2\x7b\x8e\xee\x49\x02\xba\x8e\x23\x3a\xac\xe2\x3c\x49\x27\x94\x21\x3a\x9b\x27\x44\x53\xc3\xe8\x72\x23\x32\xc5\x4f\x94\x0b\x7b\x74\x27\xf4\x89\x30\x43\x47\x38\xb3\xd0\xbe\xd3\x29\x86\x1e\xe9\x6e\xae\x3f\xf6\x3e\x9d\xa3\x4e\x1c\x67\x73\x90\xd0\x46\x61\xe7\x3c\x73\xf1\x38\x4e\xf8\xf3\x69\x71\xd8\x9a\x39\x40\xf7\x66\x13\xf1\x27\x22\x04\x8d\x49\x69\x1f\x75\xee\xef\x7b\x9f\xae\x3f\x77\xaf\xfb\x40\x31\x25\x78\x22\xd1\x94\x3f\x83\x85\x1e\x66\x08\x86\xfb\x27\x4c\x13\xe8\xcc\x2d\x16\x67\xe8\x79\x4a\xc1\xab\x43\xa5\x4f\x30\xa3\x76\x8a\x94\xbd\xba\xd1\xb9\x70\xf0\x96\xb5\xb1\xf2\x49\x5a\x7e\xa3\x74\x2c\x9a\x5e\x28\xec\xf2\xe5\x17\x57\xed\xd6\xe5\x2f\x4a\xdb\xad\x5e\x07\x5d\xda\x2f\xf5\x33\xcd\xd7\xba\xb5\x0a\x5a\xa4\xe1\xcb\x5d\xb3\x44\x09\x1a\xc9\x0f\xd9\xbe\xda\x2f\xc8\x18\x91\x7a\xc3\x2a\x3a\x23\xc8\xf6\x6c\x4f\xea\x96\xb5\x6a\x3f\x11\x95\xbd\xf8\xd9\x34\x7c\x14\x59\x69\x5f\x2c\x47\xc9\x06\xff\x89\x28\x3b\xfe\x90\xa0\x16\x12\xd4\x6a\xa6\x16\xb4\xdc\xed\xb5\xdc\x63\xab\xc8\x1b\x93\xf9\x72\x87\xa5\x89\xc1\x3b\xc6\x5f\xb9\x14\x5e\x63\x2c\xc1\xd6\x16\x9e\x90\x27\x92\x80\x20\xab\x04\xd6\x7a\xb1\x15\xcf\x46\x82\xe0\x47\x2d\xd3\xc6\xfc\xd9\x17\xce\x62\xa2\x30\x4d\xe4\x2b\x85\xdf\xfc\xe5\xcf\xaf\x7a\x1f\x1e\xef\x15\x18\x6e\xc0\x60\x12\x0d\x97\xc5\x37\x78\x59\x1c\xa3\x53\x2a\xdc\x81\x87\x72\x07\x6a\x72\xc7\x43\xe7\x9e\xfe\xf0\x3f\x05\xa3\xdc\xbf\xf6\xa5\x1f\xde\x41\xbc\xaf\x6c\xba\x08\xbd\x0a\x9b\xbf\x59\xa7\xf6\x8a\x1b\xd1\xfb\xe2\x28\xf4\x41\x6f\xbc\x87\x64\x6a\xbd\xf3\x2d\xdf\xee\x9e\x98\x11\x85\x63\xac\xb0\x3e\x42\x13\xa2\xce\xd0\x0d\x83\x67\x7d\x2c\x1f\x4f\x90\xbb\xd7\x35\xef\xcc\x5d\x0b\x2f\x50\x5c\xb3\xa5\xcd\xea\xb5\x83\x11\x0e\x91\xa3\x07\x2d\x7d\x97\x53\x0b\x82\x57\x48\x2f\x3a\x64\x1c\x18\xf7\x75\xab\xe8\x9d\xdd\xdd\xca\xa6\xc5\x23\xbe\x98\x5f\x36\x5e\x67\xa7\xd7\x74\x0a\x43\x0f\x77\xb0\xf9\x4f\xb8\x83\xc3\x1d\x1c\xee\xe0\x26\xca\x84\x3b\xf8\x88\x03\xba\x2a\xae\xac\x57\x8d\xe8\x6a\x63\x56\x30\x36\x85\xdc\xa0\xb0\x26\xf0\x5c\x6e\x43\x58\x09\x17\x51\x21\xb5\xac\xc4\x8a\xc8\xbf\xa1\xe4\x38\xfc\xcb\xde\x2c\x5f\x02\x2f\x62\xa7\xc2\x8a\xc9\x58\x0e\x56\x85\x3d\x4a\x34\x6f\x4f\x9c\xd9\x46\x96\xc1\x0a\x2e\x19\x4c\x99\xb9\x93\xf2\xec\x25\xf9\x02\x3b\x6c\xcd\x89\x6e\x23\xd9\x78\x13\xf3\x84\x1b\x27\xb3\x78\x44\x39\x90\x45\xdd\x0b\xac\xc4\xeb\xd8\xf1\x5f\x1f\x4a\x82\xbc\x5d\x24\x89\x00\x96\xb0\xd6\x21\x09\x60\x09\x2f\x01\x96\xd0\x62\x19\xf7\x82\x80\xf2\xc2\xc7\xf3\x35\x55\x87\xe3\x71\x42\x1e\x99\xce\x70\x54\xfa\x42\xf0\x41\xee\xdf\xfe\x19\x4c\x85\xc1\x54\x58\x4d\x99\x60\x2a\xfc\xb6\xc2\xb5\x76\x75\xdf\xbb\xaf\x5f\xdb\x0b\x79\x64\x37\x73\x70\x42\x86\x4b\x38\x5c\xc2\xe1\x12\x0e\x97\xf0\xae\x28\x1c\xfc\x75\x6b\x2a\xdd\x47\xe1\xa5\x3b\xb2\x6b\x3d\x38\xe9\xc2\x8d\xef\x3e\x0e\x2e\xad\x55\xf3\x0c\x2e\xad\xe0\xd2\x0a\x2e\xad\xe0\xd2\x0a\x2e\xad\xec\xf7\xe0\xd2\x7a\xd1\xdd\xfa\xcd\x9a\xed\xaa\x35\x06\x1e\x93\x61\x05\x92\x4c\xf6\xd3\xd0\x4f\x1b\x2c\xfc\x5a\x70\xdf\x15\x9e\xf8\xbe\xbc\xc2\x83\x1c\xfe\x1d\xfa\xa5\xf1\xda\x79\xf8\x4d\xe6\x44\x1e\x93\xd6\x79\xf7\x85\x97\x0f\x3d\x2e\xd0\x4d\xd4\xa8\x1e\xfe\xc8\x5f\x20\xcf\xbe\xbc\x13\xde\x58\xf4\x59\xcd\xae\x7e\x8b\x96\xba\x8a\x33\x1a\xcc\x76\x2b\x09\xf5\x86\x01\x07\x2c\x13\x7e\x81\xf1\xbc\xfc\x1d\xe6\x80\xff\x86\x15\x37\x59\xf5\xb3\xfc\x3e\xab\x7e\x9e\xdd\x6a\xd5\x8f\xf7\x53\x22\xb1\xfd\xa5\x06\x76\x34\xff\xed\x23\x09\x77\xf7\x87\xfc\x12\xb6\xb4\xda\x8d\xf1\xc6\x2e\xb6\xc6\x4d\xfe\xe6\xae\xb7\xa6\x23\x1b\x2e\xb9\x96\xe4\x7a\xab\x57\x5d\xa8\x71\xd8\x64\xc5\x0b\x45\x04\x0f\xd0\x4a\x11\x8c\x88\xc1\x88\x78\x8c\x46\x44\x13\x7c\x30\x9c\x63\x41\x98\xaa\xd0\x2d\xca\xd7\x09\xbc\xee\x17\x9d\x72\x52\x07\x34\x80\xb4\x68\x8f\xec\x85\x9c\x5d\x55\x6f\x2c\x50\xbe\xa4\xbd\xbc\x61\x3b\xdb\x81\xeb\x23\x87\x63\x66\x7b\xab\x52\x7a\x30\x42\x05\x23\x54\x79\x9e\x2f\x67\x84\xda\x80\xee\xc1\x59\xd4\x78\x55\x7d\x23\x86\xb4\x03\xbf\xb7\x0e\xc9\x8e\xf6\x56\x6f\xae\x60\x5f\xda\x01\xb9\xde\xea\x2d\xf6\x5a\x26\xe5\x97\xd7\xd2\x83\x25\x2d\x58\xd2\x82\x25\x2d\x58\xd2\x82\x25\xcd\xff\x3d\x58\xd2\x9a\xe8\xfe\x62\xea\x89\x15\x81\xbc\xea\xa3\x1f\xfe\x27\xff\x3b\x53\x4b\x7c\xd5\xa2\x29\x83\xf5\x42\x10\x38\x15\x5c\xd8\xfc\xc7\x5d\xd4\x27\xc5\xaa\x20\xf4\x42\x45\x83\x06\x5d\xc4\x64\x15\xdd\x9a\xb7\x8f\xab\x2c\xe9\xd2\xa0\x5f\x36\xff\x75\x79\xe1\xdb\x1d\x20\xb7\x32\xd4\x94\xd8\xf4\xea\x38\x6a\xb9\x9b\x8f\xf3\x8b\x41\xa2\x67\x9a\x24\x5a\x92\xb1\x52\xdb\x81\x48\xa3\xaf\x9e\x15\x57\xbb\xf2\xaf\x9a\x1b\x57\xc5\x1d\xaa\x58\x42\x1b\xeb\xf8\xae\xea\x14\xbb\xcd\x06\x25\x64\x41\xef\x5b\x61\x4e\x7f\x1b\x9c\xe0\x13\x51\x2f\xc5\x06\x36\x3d\xfb\x8d\xe7\x5e\x90\x31\x11\x84\x45\xe4\x00\x33\xb2\xd6\x49\x15\xfc\x62\x26\x69\xf3\x04\xb3\xf2\xdd\xfe\x54\x15\xb7\x7a\x5a\x41\xd4\x0d\xd5\x9b\x43\xf5\xe6\x50\xbd\xb9\x7c\xd4\x43\xf5\xe6\xb7\x51\xbd\xb9\x05\x97\xdd\x81\x6d\xaf\xd9\x60\x7b\xa0\x7a\x97\xfb\xfa\x5d\x4c\x12\xa2\x48\xad\xa0\x74\x09\x8f\x5f\x4b\x50\x32\xbd\xbf\x0d\x59\xc9\xcc\x25\x88\x4b\xdf\x8c\xb2\xe4\x16\xfc\x20\x94\x25\x73\xd6\x7c\x9d\x09\x92\x2b\x3c\xe5\xda\x64\x54\xbc\x4d\x33\xcb\x51\x24\x50\x1c\x8e\x9d\x65\xef\x97\xe2\x4b\x33\x87\x60\x43\x5a\x1e\x49\xb0\x21\x6d\xc7\x16\x0b\x3f\x56\xa0\x30\xbd\x38\xab\xdc\x44\xc0\x2a\xf0\xcb\x4b\x78\xfd\x38\xb9\x66\x79\xec\xc7\xcc\x3b\xbd\xd6\x0e\x83\x89\x7c\xbb\xec\x73\xe9\x88\xb7\x9b\xb8\x0d\xfd\x39\xde\x79\x1f\xca\xb5\x51\x77\xac\x0f\xf9\xf2\x28\xd6\xd1\x3a\x5e\x8f\xc4\x31\xb1\xff\x57\x71\x49\xbc\x39\x31\xf9\x9b\x33\x1a\x04\x1f\x4b\xf0\xb1\x04\x1f\x4b\xf0\xb1\x04\x1f\x0b\xda\xd4\xc7\xb2\x2b\x49\xeb\xa8\x1d\x12\xc7\x29\x2a\xbd\xac\x47\x22\x48\x4b\xc7\x2e\x2d\x1d\x8a\x52\x78\x5c\x2e\x96\x2d\xcb\x2a\x1f\x8a\x5e\xf8\x96\x8c\x83\xc7\xa5\x23\x1e\x9c\x39\xf0\x9b\x63\x7c\x9b\x99\xfe\x8e\x76\xba\x41\x2b\x0e\x5a\x71\xd0\x8a\x83\x56\x1c\xb4\x62\x14\xb4\xe2\xb5\xb5\xe2\xb7\x24\x28\x1e\x9d\x86\x1c\x64\xc5\xd7\x9e\xf0\x37\x26\x2b\x1e\x8a\x4d\xa0\xee\xe4\x1e\xa8\x65\xe0\xdb\x0c\x28\x3a\xe2\x9b\x20\xe4\xbc\x22\x6f\xe9\x42\xc0\xcd\xb7\xc2\x47\x0f\x3c\xe0\xe6\xed\xd9\x55\x8f\x98\x47\x86\x6c\xe0\x20\x56\xee\x68\xba\xc1\x04\x19\x4c\x90\xc1\x04\x19\x4c\x90\xc1\x04\x89\x0e\x3b\xf9\x79\xa5\xc1\x29\xe4\x3f\xef\xcb\xb0\x7a\xc4\x92\x62\xc8\x85\x0e\xc2\xe2\xee\xa6\x7b\xa8\xba\xf3\x21\xd9\x20\xe5\xfa\x75\x23\x56\x22\x71\xdb\x69\xff\xd6\xc0\xc0\xae\xa8\x74\x8a\xee\x31\xf1\x2b\xb9\x6f\x96\xb4\x0d\xfc\xae\x5b\xd1\x37\x8b\xbe\xbb\x45\x35\x7a\xe0\x5d\x6f\xb4\x1c\x7d\x00\x07\x6e\x20\x4e\x00\x07\x5e\x8b\x9b\x04\x70\xe0\x97\x00\x07\xde\xb9\xb2\x32\xe7\xb2\xfe\xe6\xbe\x23\x13\x2a\xe1\xc8\x36\xd4\x7c\x72\x77\x36\x14\x1e\x80\xad\xf0\x51\xbf\x80\x62\x32\x4f\xf8\x02\xec\x43\x0d\xd7\xb9\xeb\xe2\x76\x49\xa2\x3e\xf4\x1b\xdd\x8d\xfc\xa5\x74\x8e\x43\x91\x49\xf3\x79\x1f\x84\x14\xea\x87\xc4\x97\x8a\x99\x35\xb9\xb7\x1f\xac\x4f\x1b\x4c\x7f\x54\xc2\xfd\xb4\x72\x8b\x0f\x58\xf5\x03\x67\x02\x1b\x11\x77\x21\x8e\x52\xe5\x15\xf5\x90\x5a\xc2\x9a\x13\xa1\x16\xde\x9b\x64\x36\x57\x8b\xff\x1c\x30\xaa\x32\x07\x22\x9d\x30\x2e\x0c\x7b\xd3\x1f\x4f\x31\x8b\x13\x22\xf4\xed\xea\xda\x89\x30\x63\x5c\x81\xdc\x01\x13\x88\xd1\x13\xc5\x46\x4a\xe9\xdc\xf6\x5a\xbb\xd1\x8f\x29\x82\xea\x65\xfd\xe4\x6f\xaf\xd8\xf3\x4a\x78\xf8\x4f\x09\x1f\xe1\x24\x59\xa0\xb4\x68\xaf\xd0\x0d\x1c\xc8\x1c\x0e\x85\xf7\xbd\x3a\xb3\x0b\x2c\xae\x2d\x8b\x0b\x1c\x2e\xf0\x83\x56\x23\x39\x46\x7e\xa0\xb0\x7c\xf4\xab\xed\x81\x0c\xe4\x0a\x26\x16\x2a\x4d\x95\xcb\x4e\xfd\xab\xcd\x7b\x85\xb2\xb2\x2b\xde\xf5\x0b\xcd\xae\x78\xb5\x54\x7a\xb6\xf8\xcc\x16\xa3\x85\xc7\x30\xbd\xf2\x38\xdc\x8f\x7e\x87\xee\xb7\xbc\x65\xf7\xcb\x13\x11\x92\x72\xfb\x9a\x20\x4a\x2c\x86\x58\x29\xcd\x90\x76\x59\xef\xb6\x8f\xe5\x63\xeb\x7a\xb7\x85\x97\x0f\x5d\x02\x2b\x14\xbc\x2d\x8c\xfc\x05\x0a\xde\xae\xde\xc6\x6f\x4e\x46\x6b\x79\x24\x57\xcc\xfb\xf8\x8a\x27\xb6\x65\x30\x6b\x4c\xfc\x5b\x29\xa4\xd8\x8e\xe1\xae\xf2\xd9\x1d\x63\x51\xc5\xa6\x1b\xe4\x60\x46\x58\xba\xc4\xde\xe2\xc9\x2d\x5e\xc9\xe1\x88\x36\xd1\xa8\xed\x59\x3c\x9a\x13\x58\x92\xb4\x56\xcc\xed\xde\x2d\x90\x7d\xdd\xed\x84\xc3\x9b\x57\x41\x58\xdc\xf5\xa8\xf6\xe3\xf3\xf4\x56\x63\x9d\x30\xd7\x9e\x2b\x08\x68\x3c\x38\xd9\x19\x72\x81\xaf\xd9\xd1\x54\x53\x00\x4d\xa7\xd2\xaf\x21\x18\x71\x61\xa4\xcd\xd8\x9e\x59\xe3\xc3\xe9\xf4\x3b\xf7\xdd\xfe\x39\xea\xa0\x18\x2b\xac\x0f\xa9\x20\x73\x41\x24\x61\xca\x98\x22\x98\xa2\x6a\x81\x66\x3c\x26\x89\xb1\x03\x18\x77\xc1\x25\x56\xf8\x02\x2b\x9c\xf0\xc9\x19\xea\xc0\x3f\xf5\xc7\x54\x22\x9c\x48\x8e\xb0\xdb\x38\x24\x76\x4d\x60\x16\x3b\xf6\x80\x51\xc4\x67\x73\x9a\x98\xd8\x4b\xdf\xa5\x4b\x59\x4c\x9f\x68\x9c\xe2\x04\xf1\x11\xd8\x50\xce\x06\xac\xfb\x44\x98\x4a\x41\xc7\xc5\x49\x82\x6c\xb7\xee\x05\xcf\x80\xe1\x46\x29\xe9\x8c\x26\x58\x68\xe9\xd1\x8c\xf6\xc6\xb6\x85\xfa\x53\x92\x8d\x15\xc6\xa5\xa9\x39\xc3\x8f\x44\x22\xaa\xd0\x9c\x4b\x49\x47\x49\x7e\x8c\x1f\x7a\x08\xc6\x7d\x71\xd5\x03\x3f\x59\xa4\x10\x37\x7c\xd0\x75\x6e\x9d\xc6\xae\xc7\x19\x66\x8c\x40\xc7\x5c\x4d\x89\xb0\xdd\xdb\x97\x5f\xdb\xe5\xf5\x70\x6d\x43\x1a\xbb\x97\xcb\x3e\xaf\x7e\xe7\xfe\xe7\xfa\x18\xc6\xe5\x27\x57\x9d\x87\xeb\x8b\x9f\x86\xb7\x57\x9d\x8a\xd8\x48\xbb\xad\x5a\xbb\xcf\xfc\x91\x6d\x7e\x98\x8e\xae\x4c\xf3\xcb\x1b\x1d\x5a\x59\x1c\x5a\x9b\x1b\xda\xda\x1a\xda\x19\x1a\xea\xad\x0c\x7b\x08\x5d\x6a\x6f\x0a\xb8\xa2\xb2\x68\x0b\x38\x8e\x84\xf6\xc2\x90\xf5\x1c\xf6\x6d\x08\xf8\xe6\xac\x00\xdf\xa8\x09\x20\xe8\xff\x7b\xa1\xdb\x5b\x55\xfe\x0f\x5c\xf3\xdf\x26\x0e\x33\xcb\xd1\x0a\x81\x98\xcb\x81\x98\x24\xc4\x61\x86\x38\xcc\xb6\x04\x0a\x71\x98\x21\x0e\xf3\x18\xe2\x30\x5b\x29\x5a\xc1\x63\x7b\x08\x1e\xdb\x03\xd7\xd1\x0e\xd9\x61\xfb\x56\x35\x97\xe0\xbc\x0c\xce\xcb\xe0\xbc\x3c\xd2\x93\x1b\x9c\x97\xed\x69\x14\x9c\x97\xc1\x79\x19\x9c\x97\xc1\x79\x19\x9c\x97\xc1\x79\xf9\x9a\xa6\x91\x43\x88\x0d\x3d\x66\x97\x6d\xf0\xc4\xae\xf0\xc4\x1e\xb8\x92\x7f\x90\x8e\xd8\xb7\xaa\x23\x04\xd5\x3e\xf8\x25\xb7\x9a\xf6\x41\x29\xf5\x6f\xed\xde\x0c\xae\xd8\xf6\x84\x08\xae\xd8\xd6\xa4\x0a\xae\xd8\x06\xe2\x04\x57\x6c\x70\xc5\x7e\x83\xae\x58\x1a\x6f\x0d\x0b\xdf\x46\x6f\xd1\xb2\x62\xdc\x05\xf3\x50\x66\xdc\x12\xbf\x81\xf4\x88\xe5\x63\x66\x01\x6a\xa1\xcf\xf4\xe2\xa3\x50\x64\x2a\x27\xfc\x12\x0a\xcd\x36\x1a\x0b\x56\x9a\x83\x2b\x80\x2a\xd0\x4f\x72\xa3\xe2\x01\xe2\x58\x6e\xa3\xa3\x78\x13\xf3\xd4\x14\xa7\x7d\xf8\xc5\x93\x0f\x6e\xda\x41\xf0\x0b\x82\x5f\x90\x6d\x5a\x4e\x38\xc8\x36\x87\x2b\xdb\xbc\x96\xc2\x72\x78\xc7\xf3\xe8\xec\x13\x7b\x17\x4b\x0b\xf8\xcb\x8d\x30\x8e\xa6\x94\x1b\xb8\xee\xd2\x79\xc2\x71\xbc\x2a\x40\xee\x37\x94\xcb\x6a\x0d\xe2\xa6\x69\x57\x7f\x70\xe0\xd2\xe6\x52\x6c\x9c\x19\xf9\xb7\x80\xdc\x58\x3b\xf5\x57\x05\x6f\x84\xfd\x9b\xa1\x16\x65\xb0\x44\x85\xe8\xd1\x7d\xa9\x59\xe5\x0d\xde\x4a\xa3\x92\x7f\x3d\xf0\x2d\x9e\xad\xef\x4b\xe8\x4f\x6f\x32\xfb\xee\x0d\x7b\xb2\x82\xb7\xaa\x39\xa4\x60\x47\xd1\x6d\x03\xd6\xd7\x8a\x14\x9f\x8d\x28\xcb\x82\x79\xdc\x0e\xf9\xa3\x23\xd7\x1f\x01\x48\xcf\x82\xeb\x25\x8b\x5c\xcf\x96\xe5\xd6\x32\x29\x0c\x9d\x6a\x11\x38\x22\x42\x01\xbd\x39\x53\xe4\xab\x92\xe8\x14\x25\xf4\x91\xa0\xf7\xfa\xc8\xa3\xce\x6d\xef\xfd\x09\x7a\x7f\x85\x53\x16\x4d\xd1\x3c\xc1\x4c\xbe\x3f\x18\xe9\x2d\x28\xe4\xa1\x3a\x41\x70\xc5\xec\x43\x7b\x0f\xe6\x8a\x95\xd3\x0e\xe6\x8a\x37\xe3\x8a\x69\xa9\x33\x98\x8c\x35\x3c\x23\x87\xa2\x3d\x1c\x0d\xc0\x47\xd0\x1e\x82\xf6\x50\x31\xb5\xa0\x3d\x7c\x83\xda\xc3\x61\x50\x38\xa8\x0e\x41\x75\x08\xaa\x43\x50\x1d\x82\xea\xb0\x73\x32\x06\xd5\xa1\x49\x75\x80\xbf\x1c\x28\xc5\xba\x7a\x44\x6b\xfd\xa1\x05\x02\xc5\xd1\x28\x0f\x41\x71\x08\x8a\x43\x50\x1c\x5e\x5c\x71\x38\x98\x09\xbd\xbd\x64\xfa\x90\x8e\x1e\xd2\xd1\x43\x3a\x7a\x4d\x3a\xfa\x4b\x89\x6c\x46\x5e\x3b\xb2\xf8\xfb\xa3\x10\xda\x5e\x2d\x00\xff\xed\x89\x71\x21\xa5\x20\xa4\x14\x04\x33\x64\x48\x29\x08\x86\xb6\x60\x68\x3b\x68\x43\xdb\x6b\x59\xcf\x5f\xf8\x78\xbe\x80\x70\x7a\xe0\x11\xcb\x7f\x39\x06\x09\xf4\x05\x63\x0e\x82\x95\x2d\x58\xd9\xaa\x29\x73\x9c\xee\xf9\x83\xb9\xf5\x03\x7a\x4c\x90\xf8\x43\xe0\x41\x08\x3c\x58\x49\x9c\xa0\x0f\x05\x7d\xe8\xe0\xf4\xa1\x57\x54\x14\x0e\x2e\x4c\x39\x68\x0c\x41\x63\x08\x1a\xc3\x9b\xd5\x18\x0e\x86\xc2\x41\x5d\x08\xea\x42\x50\x17\x82\xba\xd0\x4c\x9c\xa0\x2e\x04\x75\x21\xa8\x0b\x07\x1d\x9a\x7c\x2c\x0a\x43\x50\x16\x82\xb2\x70\xd8\xca\xc2\xc1\x4c\x28\x04\xf1\x86\x20\xde\x10\xc4\xfb\xcd\x04\xf1\xbe\x51\x85\x7d\xaf\x62\x9a\x63\x91\x4d\x82\xd7\xb2\xbc\xf4\xcb\x12\x63\x3d\x58\x91\x29\x1f\xed\xa6\x10\x89\xbb\x22\xf5\x33\x17\x8f\xe3\x84\x3f\x0f\x33\xad\xce\x06\x85\xe7\xff\xb6\xf9\x7c\xde\x0f\xb9\xf0\xec\xfd\x98\x09\xd1\xde\x6f\xae\xf5\x82\x0c\x3d\x4f\x57\x21\x69\x4a\xc4\x05\x4a\xe7\x31\xfc\x19\xa5\x52\xf1\x59\xbd\x54\xfd\x19\xab\x68\x8a\x47\x09\xe9\x64\xfd\x5e\x70\x36\xa6\x93\xd4\xec\x8f\xdf\x80\x15\x62\x27\xd9\x9c\x38\xc9\x48\x33\x45\x37\xbe\x26\x49\xfc\x01\xc6\xf1\xc5\xbe\x99\x77\x72\x14\x01\xe8\xcb\xc3\x36\xd3\x79\x29\x64\xce\xe2\x2e\xda\x96\xc5\x79\xad\x1d\x86\xf8\xb3\x7c\x26\x56\x89\xaa\x60\x85\xce\x34\x13\x1a\xc3\xe6\x7c\x9e\x52\xb0\xac\x81\x25\x0e\xac\x4f\x79\xc3\xe8\x99\x26\x09\x48\x1c\x86\x16\x87\x37\xf3\x56\xda\x8b\x9d\xb8\x3d\x7b\x6f\x62\xde\x8e\x79\xac\x98\xb9\x3b\x82\xc6\x0d\x71\xa4\xd3\x7e\x4d\x84\xdd\x15\x8c\xec\x55\x71\x76\x6b\xaf\xcf\x9a\x9c\xaa\x0f\xff\x53\x79\x25\xb6\x29\xcc\xf8\xda\xf7\xe0\x27\xa2\xde\xcc\x25\xf8\x89\xa8\x97\xba\x01\xdf\xe2\xb5\xb7\xe9\x5d\xd7\xc8\xf8\x04\x19\x13\x41\x58\x44\x8e\x35\x27\x6b\xe9\x8a\x3b\xda\xe9\x6e\x74\xb3\x1d\xed\x6c\xd7\x31\x60\x7d\x31\x93\xb4\xe6\xaa\x99\x63\xb9\xfe\x54\x15\xb7\xee\xe5\x82\x0b\xcc\x1a\xab\xfa\x9d\xfb\x9f\x87\x77\xdd\xfb\x9b\x87\xbb\x8b\xee\x39\xea\xc0\x41\x87\x6f\x0c\x7b\xa7\xff\x84\xe6\x20\x1f\x36\x33\x86\x09\x73\xc7\x49\x60\xd5\xe0\x06\xd7\x54\x44\xa7\xe8\xe2\xea\xe1\xbe\xdf\xbd\xab\x69\xd0\x32\x7f\xca\x26\x48\x91\xd9\x3c\xc1\x8a\xc4\xe8\x31\x1d\x11\xc1\x08\x28\x56\x49\x2a\x15\x11\xb9\x73\xdc\x34\xda\xfd\xaf\xee\xc5\x43\xbf\x77\x73\x3d\xfc\xfb\x43\xf7\xa1\x7b\x8e\xdc\x2d\xa2\x9b\xd5\xe3\xd2\xa3\x88\x17\x0c\xcf\x68\x64\x7e\xc8\xea\x5c\xa2\xdf\x53\x92\x12\x84\xa5\xa4\x13\x36\x23\x4c\x95\x5b\x74\x03\xbe\xea\xfc\xd8\xbd\x2a\xb6\x3c\x25\xe8\xe7\xbf\xe5\x83\x4a\xf0\x88\x24\xd6\x5b\x0f\x0e\x68\x7d\x79\xe5\x1d\x59\x37\x7e\x6a\xa8\xfa\xf7\x87\xce\x55\xaf\xff\xeb\xf0\xe6\xe3\xf0\xbe\x7b\xf7\x4b\xef\xa2\x3b\xb4\xc6\x98\x8b\x8e\xee\xb7\xd0\x93\xb5\xd9\xa0\xdf\x53\x9c\x50\xb5\xd0\xeb\x28\xcd\xa5\x8f\x9e\xa7\x84\xa1\x94\xc1\x05\x62\x2c\x85\x98\x79\x9d\xca\x39\x89\xcc\x8c\x6e\xaf\x1e\x3e\xf5\xae\x87\x37\xbf\x74\xef\xee\x7a\x97\xdd\x73\x74\x4f\x12\xb0\xa5\x39\xa2\xc3\x2a\xce\x93\x74\xa2\x39\xc1\x6c\x9e\x10\x4d\x0d\x63\x2b\x1c\x91\x29\x7e\xa2\x5c\xd8\xeb\x78\x42\x9f\x08\x33\x74\xd4\xdb\xca\xb4\xef\x6c\x56\x43\x8f\x74\x37\xd7\x1f\x7b\x9f\xce\x51\x27\x8e\xb3\x39\x48\x68\xa3\xb0\x73\xdc\xd1\x3d\x2d\x0e\x9b\x8e\x69\x04\xdd\x9b\x4d\xc4\x9f\x88\x10\x34\x26\xa5\x7d\xd4\xb9\xbf\xef\x7d\xba\xfe\xdc\xbd\xee\x03\xc5\x94\xe0\x89\x44\x53\xfe\x0c\x8e\x5e\x98\x21\xf8\x7f\x9f\x30\x4d\xa0\x33\xb7\x58\x9c\xf9\xa7\xdf\xeb\xd9\x98\x35\x45\xca\x5e\xdd\x77\x59\x38\x78\xcb\xd6\xbe\xf2\x49\x5a\x7e\xa3\x74\x2c\x9a\x5e\x28\xec\xf2\xe5\x17\x57\xed\xd6\xe5\x2f\x4a\xdb\xad\xde\xc6\xb9\xb4\x5f\xea\x67\x9a\xaf\x75\x6b\x13\x67\x91\x86\xfb\x90\xb1\xdd\xd7\xef\x62\x92\x10\x45\x6a\x65\xe2\x4b\x78\xfc\xfa\x32\xb1\x19\xc7\x9b\x11\x8b\xcd\x74\x82\x64\x1c\x24\xe3\xd6\x13\x0e\x92\x71\xd5\x84\xdf\x88\x64\x7c\x80\x56\x1f\xc7\xa2\x0e\xce\xea\x13\xfc\x23\xa5\x95\x3a\xce\x2b\xf0\xd5\xdc\x23\xc1\x7f\xb0\xde\x15\x72\xfc\xf3\x0e\xfe\x83\xe0\x3f\xa8\xbc\x49\xde\xbc\xd7\xe0\x38\xaf\x86\x17\x74\x1a\x04\x35\xa2\x61\xbe\x41\x8d\x38\xb2\xd9\x06\x03\x7b\x30\xb0\x07\x03\x7b\x30\xb0\x07\x03\x3b\xda\xd4\xc0\xde\x82\xcb\xbe\x84\x39\xf5\x40\x83\x88\xdf\x8a\xdb\xe0\x38\xe5\xe2\x97\xf5\x1a\x04\xd1\xb8\x61\xbe\x41\x34\x3e\xb2\xd9\x1e\xa0\x5d\xe4\xb0\x2c\xec\x34\xae\x32\x88\xbc\x20\x34\xbd\x1b\x49\x5b\x78\x7a\x47\xd0\x5e\x7c\x14\xec\xfc\xd5\x10\xea\x03\x9e\x7b\xc0\x73\x0f\x70\x2d\x01\xcf\x1d\x05\x40\x92\x00\x48\x72\xc8\x80\x24\x2d\x96\xf1\x2d\xe0\xb9\xbf\x8c\x85\xe1\x0d\x25\x29\x3b\xc1\x50\x16\x62\x37\xb8\x5c\x15\xbc\x01\x56\x82\x74\x9e\x70\x1c\x37\x81\xc5\x38\x39\xd2\x07\x8c\x69\x10\x3d\x4d\xdb\x5f\x96\x95\xa7\x83\x95\x3c\xdd\x58\xcd\xc8\x5f\xca\x7c\x70\x30\x0a\x97\x9b\xf6\x41\xa8\x59\x2d\x6b\xb7\xee\x5c\xed\xaa\xda\xe4\xad\x35\x2c\xf9\xd7\x63\xda\xe6\x2f\x04\xa9\xfa\xf6\x0a\x7f\x05\xe8\xa7\x00\xfd\x54\x4b\x99\xe3\xc4\x89\x3d\x18\x89\x2e\x28\xe9\x01\x53\x35\x60\xaa\xee\x43\xa3\x0f\x26\x8c\x95\xd3\x0e\x26\x8c\x37\x81\xa9\xba\xa6\x0e\xb1\xc7\x9a\x0c\xdb\x69\x13\x47\x95\xb3\x17\xb4\x89\xa0\x4d\x54\x4c\x2d\x68\x13\xdf\xa0\x36\x71\x18\x14\x0e\xaa\x44\x50\x25\x82\x2a\x11\x54\x89\xa0\x4a\xec\x9c\x8c\x41\x95\x78\x9d\x7a\x0d\x55\xfa\x44\xcb\x5c\xb7\xa3\x52\x26\x82\x22\x11\x14\x89\xa0\x48\x84\x8a\x14\xcd\x73\x0a\x15\x29\x42\x45\x8a\x50\x91\xe2\x0d\x54\xa4\x78\x49\x11\xae\x06\x06\xf9\x38\xe2\xf7\x8f\x42\x88\x7b\xb5\x00\xfe\xb7\x27\xd2\x85\x94\x84\x90\x92\x10\x4c\x94\x21\x25\x21\x18\xe1\x82\x11\xee\xa0\x8d\x70\xaf\x65\x59\x7f\xe1\xe3\xf9\x42\x82\xea\x91\x44\x3b\xff\xe5\x18\xa4\xd1\x17\x8e\x4f\x08\x16\xb8\x60\x81\xab\xa6\xcc\x71\xba\xf2\x0f\x46\x0a\x38\xc6\x92\x94\x41\x03\x68\x4f\x88\x10\xa4\xd0\x9e\x56\x21\x48\xa1\x81\x38\x41\x3f\x0a\xfa\xd1\xc1\xe9\x47\xaf\xac\x38\x1c\x6c\x88\x73\xd0\x20\xcc\x7b\x41\x83\x08\x1a\xc4\x1b\xd5\x20\x0e\x86\xc2\x41\x7d\x08\xea\x43\x50\x1f\x82\xfa\xd0\x4c\x9c\xa0\x3e\x04\xf5\x21\xa8\x0f\x47\x13\xd6\x7c\x4c\x0a\x44\x50\x1e\x82\xf2\x70\xd8\xca\xc3\xc1\x4c\x28\x04\x00\x87\x00\xe0\x10\x00\xfc\xcd\x04\x00\xbf\x51\x05\x7e\xb7\x62\xdb\xbf\x59\x42\xbd\xf3\x04\x8c\x4c\x12\x79\xf7\x63\xc2\x47\xfd\xc5\x9c\xe8\xff\xbf\xa4\x33\xc2\x24\x50\x82\xaa\x85\x2f\xa6\xd5\x6c\xa8\xe5\xad\xf4\xee\xbe\x77\xfd\xe9\xca\xaf\x3b\xf2\xee\xf3\xc3\x55\xbf\x77\xdb\xb9\xcb\x96\x3b\x9b\x95\xbf\xc4\xf6\xbb\x82\xa4\x69\x4f\xf2\x1d\xd1\x2a\x35\x30\x83\x7b\x85\x55\x2a\x37\x1b\xd9\x5d\xf7\xbe\x7b\xf7\x0b\xd4\x4d\x19\x5e\xf6\xee\x3b\x3f\x5e\x15\xf6\x79\xe1\x79\xe7\xe2\xef\x0f\xbd\xbb\xfa\xe7\xdd\xff\xea\xdd\xf7\xef\xeb\x9e\xde\x75\xaf\xba\x9d\xfb\xfa\xaf\x3f\x76\x7a\x57\x0f\x77\xdd\x46\x7a\x34\x8e\xb6\x59\xb7\x92\x40\x24\xa8\x1d\x80\x22\xcb\x0c\x45\x4e\x43\x94\x49\xc5\x8e\xcb\x57\xf5\x75\x8e\x1e\xac\xa9\x82\xda\xc6\xcd\xbd\xe1\x35\x64\x74\xac\x98\x4a\x3c\x4a\x48\xbc\xd4\x92\xa3\x61\x5d\x4b\xb8\x30\xa8\x67\x2c\x3d\x49\x5a\xb3\xf2\xc8\x1c\x1f\x04\xd5\x9c\x14\x61\x71\x45\x1f\x66\x1d\x6a\x7b\x60\x9a\x25\xd3\x27\x52\xe8\x29\x4a\x85\x20\x4c\x25\x0b\x44\xbe\x52\xa9\xe4\x52\xa3\x6e\xf9\xea\x9a\xb5\x0c\x21\x6b\x70\x8a\x25\x1a\x11\xc2\x8a\xe3\x17\x24\x21\x58\x56\x8c\xd9\xae\x7e\x3b\xb2\x64\x6b\x65\x8d\x4c\xe6\x8e\x1d\x63\x9a\xa4\x82\x94\x4e\x0b\x9f\xcd\xb1\xa0\x92\xb3\xee\x57\x7d\x45\xeb\x83\x7c\x03\x9f\x73\xb1\xd9\x89\xe9\xfe\xdd\xdf\xc1\xd7\xc5\x7f\x7e\xea\x17\xff\x55\x38\xf3\x57\xfd\xe2\xbf\x9a\xf7\xba\xd7\x70\x79\x67\x9f\xa2\x4f\xfd\x73\xf4\x09\x20\x46\x05\xea\x4f\xb1\xd9\xb1\x57\xfd\x73\x74\x45\xa4\x84\x5f\xf2\x8f\x15\x55\x09\xcc\xed\x47\xca\xb0\x58\x20\x37\x7d\x53\x12\x0c\x47\x53\x44\x32\xd2\x94\x89\xc7\xfe\x91\x32\xb0\x48\xe4\xd4\xbb\xe2\x13\x1a\xe1\x64\x3b\x22\x76\xae\x0b\x7c\xe0\xe6\xae\x91\x14\xfe\xdb\xcb\xb4\xe8\x5c\x5f\x42\xb9\x2d\x37\xd4\x8a\x99\x5f\x13\xa9\x37\x49\xc4\x59\x6c\x7d\x6a\x5a\xa8\x59\x78\xba\xca\x3f\x38\x94\x2c\x4b\x25\x65\x13\xdd\x22\xfa\x80\x6e\xee\x06\xec\x46\xc4\xc6\xbe\x4b\xb4\x90\x6f\xf6\x1c\x95\x88\x71\x85\xe8\x6c\xce\x85\xc2\x4c\x69\xfd\x06\xa4\x1b\x4b\x11\xc3\x01\x2e\xf8\x6c\x96\x2a\xac\x0f\xda\x12\x51\x99\xb1\xf2\xdc\x13\xd5\x8b\xc1\x11\x56\x41\x43\x23\xfe\xe4\x73\x99\x0b\xdd\xbe\x16\xbd\x8a\xa6\x01\x1a\x2f\x69\xe8\xae\x09\x2c\x04\x2e\x5e\xc0\xef\xa8\x22\xb3\xf2\xfb\x2d\xaf\xdd\x7f\x55\xda\x3d\x2e\x4c\x56\x04\x11\x1d\x11\x4d\xa9\x22\x91\xd2\x47\x70\xa3\x3d\xf1\x70\xfd\xf3\xf5\xcd\x17\x5f\x30\x7a\xd7\xf9\x7c\xf9\x1f\x05\x18\xd8\xce\xdd\xe7\xa5\x1f\x86\xbf\xfc\xc7\xd2\x2f\xff\xff\xc6\xfd\x54\xee\x69\xc9\x7c\xe1\xcd\xe5\x14\x34\x05\x30\x75\xbb\xa9\x22\x3a\xc3\x13\x82\x64\x3a\xd7\x3b\x40\x9e\x15\xd7\x57\x4b\xca\x57\x1c\xc7\x94\x4d\x4c\x55\xa9\x2b\xaa\x88\xc0\xc9\x67\x3c\xff\xe8\xcc\xf2\x1b\x50\xe7\xff\xdc\x17\x2a\x9b\xbd\xfb\xb5\xf3\xd9\xaf\x8d\xf6\xee\xf6\xee\xa6\x7f\xd3\x38\xeb\x42\x0b\xcb\xc7\x48\x3f\x3e\x87\xff\x45\x1f\x90\x6e\x3d\x13\xe8\x67\x44\x61\xad\xe8\xa0\xef\x4c\x21\x9e\x2c\x13\x86\xb2\x04\x4e\xcd\x5c\xd0\x19\x85\x2b\xc5\x18\x26\xbf\x37\x3a\x43\xa6\x14\x65\xe7\xc6\x7c\x00\x46\x00\x77\x29\xb3\x18\x8b\x18\xfd\x43\x96\x0b\xed\x81\x3d\xdc\xfc\x40\x62\x74\x8a\xa6\x4a\xcd\xe5\xf9\x87\x0f\xcf\xcf\xcf\x67\xfa\x6d\x2d\xc0\x7e\xd0\x7f\x9c\x12\x76\x36\x55\xb3\xc4\x14\x16\xd4\x54\x38\x47\xb7\x82\xeb\x2b\x04\xec\x0e\x44\x50\x9c\xd0\x7f\x92\x18\x8d\x0c\xff\xe3\x63\xf4\x5b\xc4\x05\x39\xcb\x17\xc6\xda\xca\xec\x3d\x62\xed\x69\x1f\xf4\x4b\x15\xcc\xa4\xbc\x9e\x28\x26\x11\x8d\xad\x98\x41\x58\xc4\xc1\xa0\x6a\x5c\x30\xba\x3d\x57\xbd\x48\x2b\x6a\xf3\x54\xe5\xe4\xf4\x74\x30\x1c\x13\xaf\x2e\xa0\x95\xaf\xb3\x0d\xa7\xf5\xb9\x9e\xd1\xc6\x53\x49\x04\xdc\xad\x18\x6e\x55\xf7\xea\x5c\x4f\x38\xe2\x09\x1a\xa5\xe3\x31\x11\x7e\xf8\xc0\x89\x56\xd2\xa8\x44\x82\x44\x7c\x36\x03\x89\x41\x7f\x95\x4a\xb3\xab\x81\x62\x76\xb4\x67\x03\x06\xeb\xaf\xb5\x37\xd8\x01\x31\x07\x56\xc7\x08\x89\x11\x66\x0b\xd3\xcd\x28\x1d\xfb\xed\x9b\x82\x9d\x38\x46\x54\x0d\x58\x27\x49\x90\x20\x33\xae\x88\x57\x97\x09\x5c\x9d\x45\x82\x03\x8b\x14\x64\x9e\xe0\x88\xc4\x66\x3f\x24\x3c\xc2\x09\x1a\xd3\x84\xc8\x85\x54\x64\xe6\x37\xf0\x1d\x98\xa0\x34\xcd\xa8\x44\x31\x7f\x66\x09\xc7\x76\x1e\xe5\xcf\xbe\x2f\x9e\xc6\xae\x2b\xa6\xd8\x15\x82\x0b\xf8\x9f\x9f\x29\x8b\x77\xc6\xa1\x1e\xee\xbb\x77\xfe\xbf\xef\x7f\xbd\xef\x77\x3f\xaf\xc7\x7d\xb2\x9d\x05\xc3\x03\xd3\xc4\x39\xba\x37\x44\xe0\x42\x4b\x44\xa2\x66\x52\x9f\xed\x56\xca\x7f\xe0\xf1\x86\xdc\xf7\x73\xe7\xfa\xa1\x53\xe0\x28\xf7\x17\x3f\x75\x2f\x1f\x4a\xfa\x80\x9d\x5f\x41\x86\x37\x5a\xad\xff\xdb\xc5\x4f\xbd\xab\xcb\x61\x85\x1e\xfc\xee\xae\x7b\x71\xf3\x4b\xf7\x2e\x57\x59\x2b\x49\x54\x1a\x4c\x99\x59\xf5\x0d\x53\x9a\xf2\x18\x8d\x16\xd5\xa5\x33\xb5\xe4\x9c\x80\xe7\x3c\x2f\x1e\x6b\x5a\x3d\x07\xde\xe4\xaa\x98\xe6\x5f\xcc\x78\x4c\x4e\xec\x3b\x50\x73\xd4\xd8\x8c\x8c\xc4\x5c\xdd\xb0\xee\x1d\x33\xcf\xfe\x62\xca\x81\x66\x84\x3b\x47\x1d\x24\xf5\x8b\xa9\x3e\xd4\x82\x4e\x26\x60\x0f\x2d\x0d\xd5\xb4\x66\x3f\x05\xf2\xc2\x77\x66\xfd\xe7\x82\xc3\x39\xd7\xdd\x5a\x43\x7a\x66\x6c\x31\x1f\x42\x7d\xda\x62\x8b\x02\x83\x1d\xa5\x62\x68\x6e\xb1\x34\x11\x6a\xe9\x65\xce\xa3\x31\x83\xe9\xc3\x05\x6c\x4b\x1a\x33\xee\x5c\x90\x27\xca\x53\xef\x53\x5b\x02\xb5\xb0\xe2\x95\xcd\xe7\x04\x00\xb2\x19\x5b\x4f\xa9\x99\x6c\x7b\x54\xb6\xa0\x59\xd8\x13\xb4\x30\x16\x7c\x56\xd1\x46\xf1\x98\xf4\x6e\xee\x95\xc0\x8a\x4c\x16\x97\x96\x65\x6c\x7e\x3c\x2e\x6f\xbe\x5c\x5f\xdd\x74\x2e\x87\xdd\xce\xa7\xe2\x89\xcf\x9e\xdc\xf7\xef\xba\x9d\xcf\xc5\x47\xc3\xeb\x9b\xfe\xd0\xbd\xd1\xb8\xe5\x6b\x3a\x58\xbe\xa7\x8b\x2f\x9e\x23\xcd\x72\x81\x35\x3e\xd3\x24\xd1\x97\x89\xc7\x1f\x47\x64\xcc\x85\xe1\xf3\x33\x17\x68\x62\x45\x18\x47\x5b\xab\x8b\x95\x66\x71\x0e\x06\xbf\xaa\x26\x8d\x31\x5f\x09\x82\x67\x70\x4f\x60\x86\xba\x2c\x3e\xbd\x19\x9f\xde\x9b\x1f\x67\x58\x3c\x12\x91\x7d\xfa\x2c\xa8\x52\x84\x15\x54\x3a\xec\x86\x9c\x29\x89\x79\x07\x67\xe8\x4e\xf3\x7d\xfd\x7e\x76\xa9\xe9\xcd\x1e\x13\x85\x69\x22\xed\x60\x0b\x74\x3d\x47\x57\x58\x4c\x72\xf3\xe2\x77\x7c\x3c\x36\x8d\x7d\x6f\x86\xa1\xef\xb0\xc2\x2c\x2a\x78\xaf\xde\x1a\xee\x5e\x84\xfe\xec\xcb\x99\x3c\xbc\xbc\xab\x1e\xe6\xdb\xed\xa9\x87\x5b\xa0\xb8\xd1\xd8\x0b\xba\xa1\x7d\x52\xb1\xd7\x60\xe2\xe6\x71\xf3\x25\x53\xdd\xf6\xf2\x76\x2a\xbe\x58\xb1\x9d\x4c\x2d\x13\xbd\xf2\x63\xad\x6d\x56\xec\x25\xf2\x95\x5a\x83\x81\x3f\xee\xd2\x16\xca\x9b\x01\xab\x31\x9e\xcf\x09\x16\xb2\x6a\xb5\x8b\x62\x60\xcd\xda\x9b\x9e\xfc\x3e\xec\x22\xbb\x7e\x4e\x10\x67\x60\x70\xc8\x84\x88\xd2\x8e\x6c\xb1\x07\x4c\x5b\x4b\x3b\xe0\x16\xea\x52\xdf\xd8\x1a\xd0\x9f\xa9\xd4\x4a\xa3\xf9\xf1\x47\x5b\x9c\x7a\xb3\x0d\xf1\xb1\xd3\xbb\x2a\x09\x17\xc3\xcb\xee\xc7\xce\xc3\x55\xb3\x99\xb0\xf0\x5d\x79\x89\xd1\x29\xd2\xcf\x8b\xe1\x00\x74\x6c\xee\x0c\x57\x62\xdb\xa8\xb4\x84\x81\xd1\xca\x96\xbf\x35\x66\xf8\x98\xcc\x13\xbe\x98\x11\x06\x26\x9e\xc2\x4d\xa8\xe9\x39\xc6\xd4\x5e\x2d\xde\x60\xc1\x8a\x63\xcd\x6e\x70\x8d\x9d\xba\xba\xde\x24\xce\x6e\xde\x62\x59\xef\x12\xeb\xbe\x35\x4e\x41\xfb\x7f\xf7\x0a\xab\x0d\xcf\x58\xe7\xa2\xdf\xfb\xa5\x5b\xd4\x0f\x2f\x7e\xea\xfd\x52\x25\xd5\x0c\x3f\x75\xaf\xbb\x77\x9d\xfe\x0a\xe1\xa4\xd4\x64\x95\x70\x22\xf5\x80\xcb\x4e\x61\x2a\xb3\x40\xa7\xc8\x14\x07\x47\x54\x49\xf4\x44\x25\x1d\x51\x28\xa5\x6e\x1d\xac\x0f\x3d\xe0\xac\x4f\x38\xa1\x31\x55\x0b\x27\xbe\x98\x7e\x8b\xeb\xa8\x39\xa9\x6d\xdf\x98\x1d\x7c\xb7\x2b\x58\xf9\xcc\xe2\xb8\x49\x9f\x23\xd0\x6d\x9f\x40\x69\xf3\x3e\x63\x5a\x90\x66\x13\x22\xcc\x70\xc0\xa9\xe4\x8f\xc5\x7b\xae\x47\xe5\x0b\x2b\x39\xd5\x32\xa1\x75\x42\x18\x11\x50\x2e\x3f\xeb\xc4\x08\x52\x82\xb0\xf7\x5a\xe6\x9a\x27\x34\xa2\x2a\x59\xa0\x08\x6c\x58\x60\xce\x9c\x61\x86\x27\x56\x38\x00\x35\xa7\xb4\x25\xfe\x6e\xea\xcd\xdf\x8c\xad\x69\xbf\x4f\xc9\x86\xc7\xec\xe1\xfa\xb2\xfb\xb1\x77\x5d\xdc\x02\x3f\xf5\x3e\x15\x44\xd8\xcf\xdd\xcb\xde\x43\xe1\x36\xd7\x92\x6c\xb3\x5c\x5f\x6e\xb6\xe2\x28\x66\x2f\x9d\xa3\x4b\xf3\xe9\xb9\x26\x6e\x45\x31\xfd\x4c\xf9\x2d\xd1\xe1\xce\x45\x1a\xba\x3f\xba\x4c\x89\x4a\xbf\x44\x5b\x13\x92\xf5\x0a\x15\x6c\x48\xd5\x11\x18\x4b\x7d\x5f\x97\x7d\xe5\xe5\x29\xbb\x17\x21\x44\xf6\x2c\xb7\x2c\xf9\xa1\x19\x60\x34\xa8\x33\x62\x55\x78\xeb\x72\x86\xfd\x0b\x78\xde\x67\xa9\x54\xc6\x43\x0a\x9b\x13\x3d\xfe\x4d\x6a\x82\x82\x07\xf5\x0c\xdd\x13\x32\x60\xce\x7a\x30\xa1\x6a\x9a\x8e\xce\x22\x3e\xfb\xf0\x98\x8e\x88\x60\x44\x11\xf9\x01\xcf\xe9\x0c\x6b\x49\x9a\x88\xc5\x87\x51\xc2\x47\x1f\x66\x58\x2a\x22\x3e\xcc\x1f\x27\x10\xd8\xe3\x3c\x5d\x1f\xb2\x66\x27\xfc\xdf\xaf\xfe\xf2\xc3\xe9\xd5\xdf\x7e\x78\xb7\x6c\x21\xab\x5b\xff\x2e\x8b\xf0\x5c\xa6\x89\x0d\x04\x14\x3e\x6d\xdc\x91\x4f\xc9\xaa\xf5\xbe\x2e\x2e\xd7\x76\xfa\xeb\xc5\xed\x43\xc1\x62\x5d\xfc\xe7\xe7\xee\xe7\x9b\xbb\x5f\x0b\x9c\xb2\x7f\x73\xd7\xf9\x54\x60\xa8\xdd\xdb\x9f\xba\x9f\xbb\x77\x9d\xab\xa1\x7b\xb8\x8d\xed\xed\x67\xc6\x9f\x59\x91\x34\xd2\x71\xc0\xa5\x9e\xce\xd1\x47\x2e\xd0\xcf\xd9\x4a\x9e\x8e\xb0\x84\x2b\xc6\xdd\x59\xf2\x04\xcd\x79\x0c\x8c\x17\x91\xf9\x94\xcc\x88\xc0\x89\xb5\x19\x48\xc5\x05\x9e\x98\x9b\x5e\x46\x02\xab\x68\x8a\xe4\x1c\x47\xe4\x04\x45\xb0\x1b\x26\x27\xb0\x28\xa0\x6a\xf1\x49\xd9\xce\x77\x97\x32\x45\x67\xc4\xa9\xe0\xf6\x9f\x7d\xb3\x18\x1b\x2c\xce\x4d\xff\xa7\xa2\xb0\xf7\xf1\xea\xd7\x7e\x77\x78\x7f\xf9\x73\x23\x3d\xcd\x67\x85\x91\xdd\x43\x5c\xd5\x05\x4f\xd2\x19\xf3\xff\xde\x7c\x6c\xbd\xeb\x7e\xf7\x53\x79\x74\x37\x9d\x7e\x71\x67\xdc\x15\xe3\xf6\xde\xfd\x78\x73\x73\xd5\x2d\x78\xba\xdf\x5d\x76\xfa\xdd\x7e\xef\x73\x61\xff\x5c\x3e\xdc\x81\x0f\xa8\x71\x9a\x6e\x04\x15\x13\xd5\xd3\xf2\xa7\xb9\x6b\x56\xd8\x8a\x13\x75\x6c\xf8\xbf\x39\xcb\xa7\x1e\x5e\x8e\x89\x72\x03\xab\xce\x69\x66\x52\x8d\xcc\x48\x2b\xd9\xa1\x2a\x2e\x13\xaa\x67\xc7\x8d\x0b\xdd\xc4\x95\xfb\xd9\x10\x60\x5c\x67\x46\xd9\xc6\x49\xc2\x9f\x4d\x84\xf2\x8c\xea\x5b\xd9\x16\x5b\xd7\xaf\xc8\xdc\x43\x78\x56\xc1\xf1\x8a\xcb\x42\x22\x41\xd4\x67\x9e\x32\xb5\xf9\x96\xeb\x5c\x17\xf8\x4e\xf7\xfa\x97\xe1\x2f\x9d\xe2\x0e\xec\x5d\x35\xb3\x1a\xbf\x89\x8a\xab\xb8\x73\xfd\x6b\x76\x09\x43\x1c\xfb\x49\xa6\xa1\x1a\xd9\x35\x4a\xa8\x16\x7b\x23\xac\xb5\xd7\x04\x24\x1a\x44\x28\x98\x1c\x66\x7a\x72\x10\x37\x3b\x37\xfe\x24\xc3\x9f\xcc\x20\xcf\xdd\x1f\xa5\xf6\x24\xd0\x05\xac\xa9\x2e\x4d\x00\xda\xb1\x5a\x35\x43\x84\x3d\x51\xc1\x19\x08\xdb\x4f\x58\x50\x2d\x8d\x9b\x96\xf5\x5c\xcf\xe1\x7f\xd7\x6b\x13\x0c\xa3\x25\xc6\x75\xcf\x85\xba\xcc\xe2\x93\x37\xb3\x86\x54\xc5\xe9\x2e\x47\xe8\x56\x1b\x3a\x96\xbf\xad\x58\x9c\x2d\xe3\x98\x8b\x13\xfe\x3d\xb9\xa4\x38\xd1\x0c\x60\x77\xf2\x62\xe7\xfa\xbe\x57\x94\x1f\x8b\x6a\x86\xc7\x97\x37\x96\x17\xc1\x50\x69\x46\xee\x94\x89\xfb\xbf\x5f\x19\xed\x42\x6f\x12\x7b\x6e\x3d\xc5\x02\x04\x20\x57\x85\x74\x8e\x85\x2c\x7d\x21\x11\x20\x99\xe5\x71\x64\xfa\xce\x82\x28\xad\x27\x4e\xe3\x01\x23\x5f\xe7\x84\x49\x08\x0e\x30\xf7\x59\xee\x6b\x97\x67\xa8\x37\x06\x96\xa0\x5f\x67\x28\x65\xd6\x01\xa6\x2f\x5c\x33\xc8\x13\x2d\xca\xda\x21\x64\x1a\x22\x18\x5e\x18\x71\x31\x60\xf9\xe0\x07\xec\x4b\xe6\x44\x83\x47\x63\xae\x19\x90\x5e\x45\xdb\xde\x39\xc2\x4c\xd2\x13\xa4\x15\x96\xf2\x9a\x42\x46\x84\x56\x28\x6d\x64\x9a\xe6\x34\xf6\xcf\x97\xbf\x06\x96\xc2\x9f\xfd\xcb\xa0\xfa\x2e\x28\x5d\x05\x35\xa2\x71\x62\x3c\x26\xc3\xf6\x77\x42\xc4\x05\xb1\x7e\x96\xb5\xaf\x81\x55\x8c\xbd\x8f\xe5\xe3\x92\xef\xa1\xc7\xa4\xc2\x2c\x22\x17\x09\x96\x1b\x06\x21\x39\x1b\xc7\x49\x51\xe2\xb8\xbb\x7b\xb8\xed\xf7\x7e\x5c\xc1\xe5\xcb\x1f\x2f\x87\x01\x45\x49\xea\xdc\x73\x23\xc1\x71\x8c\x34\xfb\x9c\x70\xe3\x0a\xb4\x82\xbf\x39\x41\x66\x4d\xa8\xf4\xe2\x44\xb1\x7c\x2c\x18\xa9\x6d\x96\x85\xb5\x73\xf8\xae\x04\x6a\x09\x81\x22\x4d\x09\xe4\x99\x3c\xdc\x52\x83\x67\xd1\x44\xd1\x59\xeb\xd6\x3c\xc1\x6a\xcc\xc5\xcc\x70\xf9\xc2\xa4\x4d\xe3\xcd\x8d\x52\xa6\x88\x10\xe9\x5c\x81\xca\xae\xc7\x5a\x96\x52\xf5\x92\x5d\xf1\xc9\x67\x22\x25\x9e\x90\x6d\x1c\xd0\x55\xca\xc3\xfd\x2f\xfe\x3f\xc1\xc1\xdc\x46\xf6\x2f\x8c\xd0\x05\xf4\xbb\xfd\x74\xc3\x3e\x9a\x40\x9e\x5b\x9e\xd0\x68\xc3\x80\xbb\x8f\x9d\xde\xd5\xb0\xf7\x59\x2b\xf1\x9d\x7e\xf7\xaa\x20\x4a\xc0\xb3\xce\xc7\x7e\xf7\x6e\xd8\xfd\xaf\xee\xc5\x43\xbf\xf3\xe3\x55\x77\x78\x7d\x73\xd9\xbd\x1f\x5e\xdc\x7c\xbe\xbd\xea\xae\x88\xcc\xa9\x6d\x7c\xd9\xba\x5a\x7e\xf5\x7c\xe9\x17\x58\x61\xcd\xcb\x7c\x7b\x19\x24\xc3\x61\x9a\x80\x13\x9c\x1b\x67\x38\x46\x8c\xc7\x04\x7e\x96\xce\x3a\xe3\xb2\x4d\xce\x50\x4f\xbd\x4f\x12\x84\x53\xc5\x67\x18\xbc\x36\xc9\x62\xc0\xf0\x48\xb3\x56\x9c\x24\x5e\x78\x97\x48\x19\xd3\x2c\x56\x37\x26\x4d\x7c\x71\x42\x34\x3b\x9f\x7b\x39\x8c\xd6\x6f\x30\xa6\x0c\x02\x88\x67\x58\x3c\x1a\x37\x53\xde\x65\x7e\x28\x24\xc2\x72\xc0\xf4\xb8\x88\x35\x0c\xb5\xa1\xf0\x79\xab\xb7\x6a\xa9\x33\xc3\x8f\x44\x53\x65\x96\x46\x53\x34\x17\x7c\x22\x88\x94\xd6\xb6\x1c\x61\x66\x02\x10\xec\xeb\xfa\x1a\x1a\x30\xc6\x35\x29\x9c\x09\x3b\x26\x73\xc2\x62\xc2\x22\x6a\xb2\x15\xc1\x77\x9f\x99\x36\x27\x02\xcf\xa7\x48\x72\x70\x7a\x03\xd9\xc1\x7e\x65\x3e\x72\x37\x99\x99\xb1\x79\xec\x5b\xa0\x45\xaa\xf9\xc4\x0d\xc8\x89\x86\xca\xf0\xb1\xbb\x0c\x9d\xdb\xc5\xd8\x01\x67\xf3\x84\x40\x97\x96\xe4\xb0\x18\x9a\xd6\x85\xf5\xd0\xcb\x54\xb5\x08\xfa\xc2\x76\x63\xc6\xd2\x8e\xe8\xac\xc2\xb2\x6d\x8f\x14\xfa\x09\xb3\x38\xd1\xad\x38\x1f\x46\xf1\x2c\x42\x86\x4d\x47\xef\x1a\x77\x1a\xb7\xb9\x45\x23\x9c\xca\x6d\xae\xd1\x52\x8a\xa9\xb1\x0a\x9e\xe6\x41\x21\xb0\xbd\x6d\x7e\x29\x50\x77\xae\x59\x24\x4e\xb8\xa5\x92\x79\x3d\xb5\x41\xcb\x30\x9a\x9a\x6b\x76\x2e\x28\x8b\xe8\x1c\x27\x1b\xe9\x7e\xa5\x1c\x03\x1b\xba\xff\x1d\x1d\xeb\xed\xf3\xfd\x92\xdb\x56\x11\x31\x83\x74\x72\x3b\xcc\x6c\x09\xd7\xb0\x24\xd9\x64\x0d\x22\xf3\x68\x12\x2c\x78\x6a\xfc\x71\x40\x17\x12\x57\x1c\xd5\xb3\xaa\xe5\xd6\x27\x03\x17\x03\xa0\x37\x58\x6c\x13\xf9\x53\x47\xbf\x52\x2b\xb6\x77\x13\x8c\x87\x93\xdb\xea\x36\xab\x56\xc0\x7b\xf8\xaf\xa6\xbd\xf3\x19\xcf\xf5\x9e\x89\x52\xa9\xc0\x53\x9c\xcd\xd1\x2a\x49\xa5\x50\x76\xcf\x77\x9e\x05\xb5\xb7\x5f\x8d\x9c\x84\x36\x00\x6a\xb9\x93\x42\x0c\x81\x87\x08\x60\xf7\xf8\x38\xd5\xb2\x2c\xc2\x10\x85\x80\xbe\x23\x67\x93\x33\x74\xf3\x4b\xf7\xee\xae\x77\xd9\x3d\x41\x9d\xdb\xdb\xee\xf5\xe5\x09\x22\x2a\xfa\xde\xc5\x2c\xda\x80\xa5\x01\x53\xdc\x4a\x2b\x0b\x34\xe5\xcf\xc0\x1b\x89\x98\x90\xc2\x9c\x5d\x74\x13\x84\x2a\x4f\xa8\x54\x36\x7c\x56\xf3\x95\x7c\x58\x5a\xde\xaf\xdc\x21\xa9\x9a\x6e\xb3\x35\xb0\x94\xe9\x4c\xeb\xb2\x43\x8a\x67\x43\xc1\x93\x6d\x98\xc2\x25\x4c\x05\xd4\xe5\x0c\x4c\x81\xe2\x19\xd2\xcd\xda\x50\x90\xcc\xe5\x98\x89\x74\x5a\x30\xd2\x7c\x59\xdf\x9b\xde\xbd\xe5\xbc\x0f\x36\x1e\x8d\xba\x10\x08\x00\x5b\xa8\x61\x15\xb9\xd9\x78\x68\x2d\xf5\x43\x1c\x45\x5a\xe5\xde\xf1\xa4\xf2\x8e\x32\x97\x80\xed\x68\x6f\xd3\x5c\xb5\xcf\xdd\x30\xe7\x9a\x83\x41\x30\xb0\xbe\x72\x25\x8f\x68\xde\x7e\x45\xbf\xa3\xc5\x52\xaf\xb0\x65\xcf\x06\xec\x41\x66\x26\x15\x73\x09\x4b\x02\x2b\x29\xd1\xf3\x94\xc0\xd1\x58\xa0\x29\x7e\x22\x85\x2e\x5d\x0e\x89\x6e\x78\xc1\x53\x51\xc5\xe8\x06\xec\x92\xcc\x05\xd1\x92\x7e\xd9\x81\x92\xed\xe9\xbb\xe2\x4e\x0c\xfb\x3a\xec\xeb\xa3\xdf\xd7\x17\x49\x2a\x15\x11\x1d\x29\xe9\x04\x0c\x89\x5b\x09\x70\xa6\xb1\xe1\x9c\xf3\x64\xd8\xc2\x26\xd2\x9e\xe2\x05\x4f\x58\x21\xe0\x43\x1a\xa4\x03\x9e\x82\x7c\x54\xb8\x36\xb9\xbe\xeb\xbc\xcc\x61\x3b\xbc\x06\x32\x38\x97\x59\xc7\x01\x4a\x6c\x25\xe2\xe0\xaa\x56\x9a\x5a\x42\x7b\x17\x73\x2e\x8c\x7c\x93\xb9\xcb\xf2\x21\x96\x0e\x93\x13\x45\x28\x73\x64\xcb\x3f\x82\xfd\xac\x09\x6c\xe4\x8e\xdf\x53\xae\xb0\xfc\xfe\x6c\xc0\xb4\x10\xf5\x48\x16\xc6\xdc\xaa\xc5\x94\x3f\x68\x59\xfc\x54\x12\x26\x21\xdc\xfb\x0f\xc6\x3d\xa7\xb7\xb8\x33\x57\x1b\xd5\x94\xcc\xe6\x09\x56\x10\x74\x9d\xf5\x02\x21\xba\xb6\x51\x2b\x25\xe5\x01\xd0\x20\xe7\x9b\xb9\xd8\x67\x66\xf8\x13\xa2\x20\x73\x5c\x51\x05\x3a\x53\x9c\x6a\xf2\x2c\x0f\x7d\xa5\xe9\xca\xec\x0a\xc1\xc1\x4f\x12\xa7\xdb\x31\x7e\xb9\xdc\xc6\x4a\xce\x98\x69\x0b\xf7\x36\xe6\xfd\x83\xb3\x1b\x45\x82\xb3\x52\x34\x8c\x56\xe6\xcc\x4a\x8f\x0c\x3b\x70\xfe\x6b\xc2\xce\x9e\xe9\x23\x9d\x93\x98\x62\x88\x80\xd7\xff\xfa\xa0\xe7\xf5\xef\x17\x77\x37\xd7\xc3\x3c\x93\xe7\x3f\x07\xac\x93\x48\x9e\x65\x29\x20\xc6\x59\x16\x6e\x3f\x17\xc4\x89\x84\x76\x2e\x60\x75\xcd\xcd\x88\x03\x56\x37\x82\x98\x47\xf2\x0c\x3f\xcb\x33\x3c\xc3\xff\xe4\x0c\x5c\xe9\x1d\xf8\xf3\x22\xe1\x69\xfc\x05\xab\x68\xfa\x01\xce\xb5\xfa\x40\x9e\x08\x53\xc6\x4d\xa5\xc9\x15\x43\x4e\xb2\x84\x68\xfd\x7f\xd7\x63\xce\x93\x8a\xa4\xd6\x64\x23\x32\x57\xe8\xff\x15\x64\xc4\xb9\xaa\xbe\xa4\xf8\x78\x2c\xc9\x5a\x17\x52\xae\xa4\xdd\xdf\xa0\xbf\xfd\xc7\x0f\x7f\xd2\x5b\x68\x13\x1a\xf7\xee\x6f\x86\xfa\xfb\x7f\xbf\xb4\xdf\xcb\x35\xd8\x9d\x49\xa5\x95\xd6\xd5\x6c\xa8\x61\x02\xe7\x53\x06\xb7\x9f\x00\xe7\x05\xb0\x37\xd8\x0e\xf9\x3a\x56\x71\xb7\xcb\x42\xeb\xdb\xa9\x6c\x1b\x11\x13\x54\x6c\x6f\x8e\xe8\x14\x31\x8e\x66\x26\xd6\x14\x33\xf4\xd7\x9f\x7f\xac\x5e\xc0\x54\xd0\x8d\x3a\xa4\x16\x85\xc2\xeb\x52\xd2\x7f\x12\x89\xf4\xae\xd1\xbb\x98\xcf\x74\xd7\x82\xc8\x29\x4f\x62\xf4\x4c\x40\x4d\xb2\x71\xa0\x99\x56\x2e\xc8\x80\xf9\x4d\x40\xc8\x21\xc2\x89\xe2\x13\x02\x77\xb5\x53\xd4\x14\x11\x5a\x54\x31\x59\x1a\x8a\x0b\x72\x62\x80\xd9\xee\xff\xe2\x62\xab\x61\x9a\xf0\xc8\x25\xb5\x58\x93\x5c\x3c\xaa\x9e\xf9\xb8\x6c\x7a\x45\xf5\x36\xfc\xf2\x22\x5b\xb3\x6d\x35\x69\x6c\x12\x8a\xb5\x61\x95\x57\xa6\x7a\x30\x34\xe2\x6c\x98\x50\xf6\xb8\xd1\x62\xb8\xc4\x70\xa4\x5b\xb0\x34\xd3\x2d\x66\x76\x6e\x63\x01\x59\xe3\x7c\x7c\x4c\x93\xc4\xa4\xb6\xf8\xcb\x03\x72\x97\xa1\x1b\x08\x03\x73\x93\x03\x4a\x62\xeb\xf7\xb2\x9a\xb0\x20\x0c\x02\xde\x06\x6c\xb4\xb0\x3e\x5b\x79\x82\x64\x1a\x4d\x5d\x66\x5e\xc4\x99\xd4\x62\x34\x17\x28\xe2\xb3\x99\xd6\x7a\x61\xc9\x14\xe7\x89\xb4\xd1\xee\xec\x54\xe1\x48\x0d\x58\xde\xdf\x8a\x93\x67\x8a\x32\x6d\x97\xba\xd7\xde\xa5\x93\x17\x7f\x6a\x14\xb8\x69\xec\x43\x51\x80\x11\xcc\x78\xa2\x3c\x50\x0b\xbe\x7c\x96\xcc\x82\xd5\x68\x06\x72\xca\x85\x1a\xc6\x95\x3c\x67\xe5\xa6\x29\x33\x42\x46\x4e\x13\x08\x1a\xe6\x4f\x5a\xf8\x27\xcf\x99\xf1\xb5\x69\x08\x7a\x57\x37\x8d\xa0\xdd\x31\x6a\x1c\xd9\xba\x5b\xb0\x86\x56\x06\x98\x24\x2a\xc6\x84\xaf\x1a\xe3\x3d\x7c\x75\xa1\x3f\x6a\x24\x5e\xf9\xdc\x39\x21\x88\xc7\x39\x86\x9e\xb9\xd7\x6d\x46\x48\x13\x4d\x2d\x74\xc2\xfe\x32\x47\x9b\xa6\xf2\x50\xb4\xe4\xea\xb1\x80\xc9\x5e\x12\x90\x35\xb1\x18\x51\x25\xb0\x28\x00\xa0\x64\xfa\xa0\x24\x58\x40\x7c\xd6\x80\x19\x38\x3c\xa3\x29\xc4\x28\xa6\x12\x12\x44\xe0\x2e\xf5\x9c\x61\xa8\x9d\x12\x58\x3a\xda\x79\x9e\xa3\x89\x3f\x87\xc0\xb2\x7c\x6b\x38\x66\xa7\x3b\xca\x60\xbf\xb4\x7e\xc6\xa3\x34\x17\xe4\x22\x90\x70\x2d\x54\x10\xa2\x4c\xd2\xc9\x54\x21\xca\xac\xdd\x11\x27\x13\x2e\xa8\x9a\xce\xe4\x09\x1a\xa5\x52\x6b\xa1\x26\x58\xcd\xc4\xa3\x10\x15\xb5\xe2\x42\xdb\x26\x11\xc7\xa5\x06\x97\x55\x94\x0d\xb6\x46\xbb\x43\xd9\x2d\xdd\x15\x2b\x36\x4e\x27\x83\x4f\x2c\xb7\x41\x89\xcc\x50\x37\x91\x89\x03\xe4\x0e\xb0\xea\xf7\x94\x48\x55\x77\x0e\x00\xec\x72\x67\x5e\x8a\x97\xa8\xa4\x85\x4c\x32\xa8\x20\x2e\x76\x1b\x24\xaf\x22\xe0\xa6\x01\xa5\xca\x9c\x4e\xb3\xb9\xaa\x0c\xdc\x5a\x76\x15\xdd\x79\x50\x46\xed\x88\x0d\xc9\x58\xb0\x9b\x01\x80\x6e\xc0\xee\x09\xa9\xc7\xa7\x5b\x5a\xfb\xdf\xe0\x28\xc1\x14\x6c\xa2\x47\xf3\x96\xdf\xc6\x89\x7d\xd9\xbd\xbf\xb8\xeb\xdd\x1a\xc8\x89\x9b\xbb\xcf\x9d\xfe\xb0\xc2\xaf\x5d\xf1\xd6\xe7\xce\xdd\xcf\x97\xab\x5f\xfb\xa9\x5f\xcc\xca\xae\x78\xe5\xee\xbe\x39\x99\xa3\xc5\x10\x2b\x92\xc2\x2a\xfb\x39\x47\xf3\x85\x9a\x72\x96\x85\x28\xc4\x05\xde\x74\x8a\x4c\x46\xb0\x82\x10\x22\x21\x55\x85\xe3\xb0\x0f\x71\x39\xab\x25\xcc\xe2\x62\x19\x74\xb9\x9d\x8a\x46\x6b\x9c\xc8\x4f\x09\x1f\x81\xdf\xda\xca\x3e\x16\x98\xae\x21\x02\x7d\xcb\x78\x9f\x4b\x2a\xe7\x09\x5e\x2c\xf5\xb0\xea\xca\xb9\xc6\x33\x02\x11\xc7\x39\x2c\x9e\x4b\x16\xd1\x2b\x03\x09\x4c\xd9\xbd\x4e\xc7\x90\xc9\xa4\x28\x56\x04\x8d\x88\x7a\x86\xbc\x39\xf7\x6b\x66\x4b\x75\x01\x23\xf2\x6c\xc0\xc0\x9c\x33\xd0\x44\x8e\x53\x88\xf6\x1b\xbc\x3b\x41\x83\x77\x31\x79\x22\x09\x9f\xeb\x95\xd7\x3f\xd4\x5c\x32\xdd\x19\xa6\xc9\x35\x57\x99\x65\x6e\x9b\xf5\x14\x24\xa2\x73\x90\xcc\x87\x44\xb7\xfb\x72\x82\x47\x61\x27\x3b\x76\x06\x63\x40\x38\x8e\xb5\x92\x0d\xac\xcc\x0d\x2f\x0f\x01\x62\xde\xd4\x0b\xc5\x2e\xd7\x11\x29\x32\xf3\xb7\xe9\xd1\x6f\xb3\x68\xf6\xac\x5c\x01\xf6\xb4\x47\x97\xec\xb6\x17\xb9\xd6\x4a\x7e\x26\x0b\x48\xc1\xb8\xc5\x54\x6c\xe8\x9a\xad\x8a\x79\xdd\x8b\x93\xb6\x5b\xd1\xd1\x01\xb9\x6b\xab\xe9\xb0\x9d\xe3\x36\x8b\xd5\x7b\x29\x2d\xd5\xc5\x72\x65\x1d\xb7\x54\x5b\x1f\xea\x94\xd4\xda\x10\x06\x54\x56\xbc\xe6\x24\x5a\x43\xe3\xca\x06\x78\xaf\xbf\x5b\xa9\xa9\x64\xe2\x9a\x8b\xbf\xcb\x57\xc1\x26\xc7\x97\xf3\xf1\xc9\xca\x11\x47\x09\x97\x45\xac\x9c\xd6\x83\xbe\xb0\x9f\x36\x8d\xbb\xeb\x6f\x5f\x2d\x17\xae\x15\xd0\x50\x41\xf8\x12\xc6\xa5\xb9\x67\x94\xf5\x90\xd9\xb7\x4f\x10\x85\x68\x4b\x50\xc8\x92\x1c\x39\x80\xc5\x28\x77\x83\x0c\x58\x1e\xb3\x22\xd1\x33\x49\x20\xcc\x2d\xe2\xb3\x39\x98\xf8\xed\x70\x6d\x4b\x24\x36\x11\xc3\x27\x88\xa7\x4a\x37\x66\x72\x72\x9c\x11\xd7\x26\xfc\xe4\x6e\x0f\xe3\x7b\xb3\xc1\xef\x19\x5e\xb6\xd9\xeb\xe6\x2e\xa5\x0c\x7d\x22\x0a\x5a\x81\x32\x0b\xfe\x04\x41\x4f\x28\x87\x50\x56\xd3\x7e\x8b\x13\x65\x67\xb2\xc6\xca\xe7\xc0\x29\x3f\x26\x7c\xd4\x6c\x24\x80\xc6\xd1\xc3\x5d\xcf\x59\x24\xf3\xf8\x29\x0f\x94\xb9\xe0\x51\xec\xde\xde\x75\x2f\x3a\xfd\xee\xe5\x19\x7a\x90\x44\x93\x27\x9b\x2e\xe4\x57\x67\x2a\x89\x19\xb9\x45\x62\x61\x52\x11\x5c\x67\x08\x21\x42\x14\xb2\xa0\x57\x30\x8e\x22\x4c\x4b\xf3\xc6\x06\x90\x14\x6a\x0d\x75\x00\x2c\x54\x9e\xa7\x8d\xcc\x5b\x75\x02\x21\x4e\x6a\x78\x3c\x51\x6a\x66\xbc\xb3\xe5\xc8\xbc\x55\xdb\xa7\x18\xd1\xb7\xef\xc9\xc0\xd1\x52\x53\x42\x05\x6a\x35\x2d\xb3\xa9\x86\xed\xe7\xe4\x85\xb8\x7f\xc6\xf3\xe6\xf4\x53\xfc\x5c\xd8\xb4\x46\x14\xf6\x7c\xf7\xfb\x3e\x07\x8e\xad\x0d\x0d\x2b\xdc\x7e\x82\xb9\x43\xcb\xf0\xd6\x8c\x6f\x9a\x8c\x0f\xe9\x8c\x64\xfe\xc4\x4a\x83\xb0\x71\xac\x12\xc1\xd9\x81\x5f\x28\x43\x85\x2b\xf1\x04\x8d\xe9\x57\xdb\x68\x1e\xdf\xee\x5e\xf5\x02\x1e\x6a\xe2\x29\xa7\x78\xf9\x4c\xad\x21\x36\xdc\xc2\xf7\x8d\x42\x24\x97\x5a\x24\x8a\xb4\xb8\x24\x48\xc4\x85\xbe\x29\xa0\xdb\xdc\x0b\xb1\x4a\x64\x50\x58\x68\xa2\x2c\x7b\x65\x9a\x4e\x7f\x5e\x5a\x25\xc6\x8a\x9c\x6a\xd1\x6b\x45\x02\xb4\xcd\x91\x81\x6c\x1a\xac\x3c\x38\xb0\xfc\xe6\x19\x91\x09\x66\x2e\x34\xbb\x66\xb8\xee\xca\xdb\x82\x55\x69\x15\x08\x43\x7a\x18\xc8\x57\x90\xfa\x53\x18\x87\x9c\x03\x3d\x1b\xc7\x61\xa3\x5f\x0e\x81\x6c\xcf\x38\x0b\xc6\xa9\x19\x6c\x3a\x8f\x0f\x69\xb0\x09\x96\x0a\xd9\x31\xd5\x99\x22\x3c\x15\x71\xbf\x46\xd8\x82\x6e\xdf\x56\x79\xd3\x5b\xa8\xa8\xc5\x12\xf0\x8c\x48\x87\x9b\x62\x50\x62\xb4\x4e\xe3\x04\xe1\x0b\x58\xa1\xec\x6c\xdf\x19\x29\xcb\xdd\x12\x3e\x33\x81\x20\xfd\xe5\xa6\xcf\x50\x87\x2d\xe1\x65\xb9\xb8\xac\x02\xbd\xcc\x9d\x84\x93\x67\xbc\x90\x68\x2e\x0c\xb4\x8c\x89\xdc\x77\x93\x07\x0d\xac\xf8\x51\x16\x0a\xa1\x5c\xea\x04\x02\x5b\xcc\xea\xa0\x39\x27\xf7\x0e\xf7\xe0\xca\x2b\x45\x95\x67\x02\x79\xde\x5c\x6e\xab\x68\xc1\xea\x14\x19\x46\x53\xcc\x26\x64\xe8\x8c\xac\x9b\x68\x4b\xba\x9d\x0b\x68\xe6\xd2\xb6\x52\x7d\x39\xdd\x1a\x85\xc9\x96\xb5\x31\xaf\x66\x06\x44\x7d\x08\xa4\xc2\x13\x82\xcc\x88\x5a\x99\xa5\x0b\x11\x63\x16\x6c\x18\xf4\x04\xdb\x6a\xb7\x18\x45\x5f\x27\xbc\x43\xe8\xd3\x15\x1e\x91\xe4\x75\x22\x27\xa0\x6b\x6b\x9c\x07\x6f\x9d\xc9\x06\x20\xe8\x19\xec\xf9\x25\x96\x61\xad\xf7\x22\xad\xca\x0d\x68\x9a\x27\x1c\x39\x7b\xd2\xb6\x99\xa8\x2b\x81\xb2\xc9\x54\xeb\x0a\xa3\xf8\xd7\x9e\x57\x40\xa4\xca\xc0\xe6\x5f\x7f\x65\x9b\xf2\x66\x03\xf1\xea\x98\xd4\x8c\x63\xeb\x42\x26\x2b\xa7\xb2\x31\xc8\x40\xcb\x9a\x85\xbd\x31\x62\x9c\x11\x44\x65\xfe\xb2\x2a\xa6\x43\x65\x10\x3d\x5a\xc4\x37\xc6\x97\xac\xf8\x58\x56\x53\x6a\xdf\x96\x96\x1c\x3c\x21\xb3\x0d\xb8\xfc\x6e\x46\xb4\xa2\x8a\xc5\x02\x20\x3e\x0d\x1f\x2e\xca\x74\x2b\xc7\xb9\x73\x81\xbb\xef\x10\x5c\xbd\x48\x5d\xc5\x11\x88\x91\xa5\xc1\x21\x83\x83\x6a\x5f\xb2\x1f\x59\x98\x9a\x01\xcb\x2c\x1b\xb0\x11\xa9\x44\x33\x3c\x07\x9f\x1e\xe3\x2a\xff\xca\xc0\x2e\xa9\x6c\x09\x4f\x9c\x20\x2e\x4d\x69\xb0\xd5\x14\xe0\x62\xb2\x4d\xa8\x46\xfb\xf2\x0f\xed\x0d\x4b\xee\xf2\xcf\x57\xb5\x08\xae\xe9\x80\x81\x27\xf4\x89\x30\x77\xa2\x4e\xdc\x89\xd4\x24\x71\x53\x4e\x16\xa7\x18\x82\x9c\x49\xec\xfb\x5d\x9a\xf9\xa1\x31\x07\x1d\x82\x35\xb4\x3d\xc9\xfa\x95\x41\x3c\x06\xa2\xad\x80\xad\xef\xc2\xd2\xfd\x33\x62\x51\x83\x4d\x1e\x3a\x96\xe8\x0f\x8c\xab\x3f\x78\xb8\xca\xce\x74\x02\x9f\x3a\x03\xd8\xc9\x52\x1d\x1c\x60\x19\x76\xdb\x22\xec\xe1\x7b\xad\xa4\xfc\xb6\x91\x09\x79\xd8\xfd\x5e\x65\xe1\xee\x72\x0e\x5e\x5d\x21\xb1\x10\x2f\x80\xca\x97\x52\xd9\xdc\x6a\x6a\x15\xe6\x27\xbd\x60\x66\x95\xab\x02\x04\xb2\xb5\x68\x15\x18\xb0\x84\x47\xb0\xcd\x6e\x9b\xb5\x8e\xdb\x5a\x01\xc1\x5c\x6d\x15\xd9\x24\xcb\xb4\x4e\x2b\x10\xc5\xc0\x39\x5b\x84\xa3\x06\x63\xf8\x6c\xc0\x3e\x72\x61\x05\x00\x69\xab\x1c\x8c\x70\xf4\x78\x4a\x58\x8c\x70\xaa\xa6\x06\xeb\xd7\x7a\x35\x16\x76\x37\x68\x39\x07\xb6\x4d\x06\xe4\x41\x65\x84\x45\xec\xea\x6d\x3c\x71\x37\x8a\x01\xf3\x1a\x81\x3a\x0a\x50\x3d\x0b\xca\x1a\xd7\x29\xba\x44\x6a\xed\xae\x8e\x16\x55\x95\x6d\x97\xea\xda\x36\x9f\xb3\x42\xa5\x5e\xa8\x00\x01\xe1\x55\x7c\xbc\x4c\x9d\x9e\xb3\x75\x3a\xed\x52\xef\xe7\x65\x1f\xc8\x89\xd5\x67\x8c\x41\xcc\xce\x40\xcb\x59\x3f\x38\x5e\x5b\xc0\x2c\x1e\xa7\x02\x82\x85\xab\xda\xfc\x2e\x9a\xd2\x24\xf7\x9c\x7c\x7f\x92\x0d\x53\x37\x99\x90\x27\x92\x18\xc4\xfc\x48\x40\x5e\x80\xb1\x59\xfe\x80\xfe\xb7\xa9\xf6\x8a\xfe\x34\x60\x9f\x80\x0d\x27\xc9\x02\xf0\x3c\xb3\x96\xb1\x2a\x35\xf3\x58\x39\x00\x65\x13\x91\x50\x71\x20\x66\xad\xa7\xf8\x89\x0c\x98\x6b\xe6\x7f\xa3\x47\xf4\x47\xf4\xa7\x3a\xe5\xd2\x85\xf7\xef\xd9\xca\xf2\xd1\x0b\x9e\xf7\x6e\x39\xcb\x28\x2d\xbf\x71\x46\x98\x82\x09\xb4\x02\xd7\x23\x83\xe5\xa6\xec\x89\x47\x4b\x39\x24\xfe\xa9\xc5\x82\x30\x35\x64\x3c\x26\x43\x52\xe1\x50\x6d\x60\x12\x5a\x08\xb8\xe6\x31\x59\xe9\x0e\xcd\x98\xe9\x17\x30\x1c\xc9\x74\x94\x2d\x07\xc0\x0b\x64\xb9\xe4\x99\xed\xa3\xb8\xd3\xaa\x47\x9e\x61\xdf\x6e\x32\xee\x4d\x5d\xb9\xb9\xd8\x88\x73\xf0\xdd\x6a\x77\x62\x82\x95\x93\x26\xcb\xc7\xb1\xec\x86\xd0\x2f\xeb\x99\xdb\xcb\xca\x43\xf5\x85\xca\x2b\x82\x4e\xa8\xd6\x1e\xda\xbb\x8b\x81\x13\x6e\xe2\x4b\x31\x10\xa7\xad\x9c\x29\x39\x29\x1c\xcc\xcb\x69\xb6\xff\x72\x17\xe8\x88\xa7\x65\xf5\xc1\x12\x80\x4a\x3f\xd8\xc0\x6a\x0a\x0b\xcd\x87\x27\x26\xff\x90\x4c\xa9\xc9\xf8\xef\x5c\x5c\x21\x7d\x3a\xf8\xcc\xc0\x62\x01\xd1\x52\x35\xe5\x82\xfe\xb3\x69\x6f\x63\xa1\xe8\x18\x47\x6a\xb8\x93\x2a\x32\xf5\x9b\xa9\x63\xfb\xe9\xd5\x57\xaa\x5b\x42\x38\xc0\x4f\xc4\x0b\x40\x84\xf0\x42\xdb\x8a\xcc\x1c\xb9\x65\x7e\xcb\x05\x62\xfc\x39\x87\xc5\x72\xdf\x03\x12\xb4\x97\xb8\x81\xb5\xca\x35\x87\x08\x62\x49\x61\x7f\x02\x48\xd5\x7b\x65\x92\x32\x01\xe0\xdc\xc0\x4b\xe9\xed\x39\xc5\x2c\x4e\xdc\x15\x82\xb8\x89\xe8\x59\x3c\xe3\xc5\x5a\x3e\x75\x3f\xae\x32\xcf\xd2\x33\xcb\x5f\x54\x82\x80\x07\x18\x49\x4d\x15\x54\xcd\x2a\x45\x18\x8d\x52\x00\xd6\xd5\x34\x19\xa7\x89\xa9\xc6\x11\x71\x11\x9f\x0d\x98\x0d\xa8\xf6\x7a\xd3\x22\xa0\xd3\x9a\xb0\xca\x1a\xa4\x16\x7f\xd4\xd6\xfb\x30\x66\xb9\x46\xb9\xfe\xef\x29\x49\x77\x94\x56\xf9\xaa\x81\xe8\x7d\x3c\x91\x79\x64\xb9\xa1\x8d\xbe\xf2\x72\xfa\xfe\xae\x67\x2a\xbd\x44\x64\x67\x2e\xce\x70\xbd\x8c\x9d\xc5\x14\xb1\x5d\xcb\x4c\x77\x67\xea\x19\xec\xc0\x4e\xf7\x12\x41\x3a\xcb\xa2\x67\x05\x57\xb7\xdb\xef\x29\x4b\xcb\x45\x2f\x63\xfc\x72\x85\x21\x4a\x42\xdd\x1e\xed\x60\x1b\xdc\x1d\xcb\xba\x4a\x63\xa8\x7b\x6e\x15\xcb\x6e\x8b\x8a\x0c\x79\xc5\x21\x97\xe6\x59\x50\x80\xfd\x5b\xe4\x2f\x67\xf5\x9a\xdd\x2d\xec\xf3\x18\x2d\xfc\x19\x6d\x01\x82\x75\x1c\x09\x17\xd5\x57\xe7\x1a\x76\x1d\xdb\x50\xb1\xeb\xe5\x60\x8c\xba\x13\x61\x58\xd2\xa1\x1e\x89\x65\xcc\x9f\x95\x87\x21\x2b\xef\xf2\x3a\x56\xe1\x4c\x62\x7c\xb9\x93\x91\x6d\xc7\x61\x84\xa3\x69\xed\xa4\x46\x9c\x27\x04\xb3\x3a\xa5\xa0\xf2\x71\xf9\x88\x18\xc4\x5a\x60\xdd\x49\x02\xb0\xcd\x8e\x04\xb6\xd4\x67\xae\x15\xb1\x18\xe0\xf6\x0d\x0f\x37\x01\x9f\x6e\xa0\x8a\x30\x67\x50\xa3\x6c\x92\x90\x32\xad\x6c\x5d\x84\x13\xdb\x49\x12\xa5\x89\x57\xeb\x73\x4e\x84\x1e\xb5\x26\xf1\x13\x61\x5a\x15\xb3\xe3\x70\x1e\xaa\x67\x97\xe5\x9e\x55\xf8\x3a\xc9\xba\x76\x4e\x52\x48\x25\x8d\x07\x0c\x0e\x2e\x2f\x1e\x56\xbd\x57\xa5\xd6\xde\x7c\x73\xdf\xc6\xa7\xd3\x13\x22\xd6\x3e\x9e\xf7\x45\xdb\xff\xda\x67\xd2\xf4\x3d\x84\xc0\x91\xad\xfd\xa5\x9e\x4f\x2d\xc7\xdf\x30\x0b\xeb\x30\xd6\x5e\xc8\x33\x00\xa1\x38\xc5\x58\x62\x2f\x12\xa7\x0e\xe3\x6b\xaf\x77\x49\x5e\xd3\xc4\xdd\x06\x2d\x87\xd2\x18\x7f\xd0\x32\x9a\x00\x8c\xbe\x4d\xe7\xf6\xca\x4a\xf5\x45\x3f\x7c\x96\xb4\x95\xc7\xae\xda\xaa\xbd\x4a\x60\x80\x9c\x00\xa0\x80\x2f\xc6\x70\x41\xa5\x11\xee\x5d\xed\x92\xd9\x5c\x2d\x6c\xa9\x3b\xb8\x17\x0b\xf2\x3e\xc0\xf8\x55\xf9\xfc\xcb\x77\x64\x5c\xf0\xfa\x57\x75\x06\x1d\x59\x6b\x4d\x65\x93\x8e\xd0\x3e\x2c\x4c\x09\x86\xa3\x2e\xc4\xc7\x54\x0d\x1e\xe2\xa4\xd6\x44\xb8\x03\xa6\x09\xca\x51\x0e\xbd\x61\x11\x7d\x95\x48\x89\xe6\x5d\x38\x49\x4a\xf3\xc2\x90\xe3\xae\xb2\xca\x81\xa3\xbc\xbc\x71\xfb\x08\x84\x04\x8f\xc8\x5a\x31\x07\x57\xe6\x83\xc6\x5d\x04\xaf\x40\xb8\xfe\x7c\x9e\x2c\xda\xa5\x09\xf8\xda\x6f\x25\xf2\xdd\xaa\x81\xf9\x78\x79\x8d\x77\x53\x11\x73\x6e\xb3\x21\x4a\x12\xa5\x82\xaa\xc5\xd0\xda\x52\xdb\x33\xad\x7b\xfb\xe5\x85\xfd\xb0\x8d\xa1\xe2\x1c\xb9\xfe\x9c\xed\x16\xee\x29\x41\x4d\x59\x24\x3b\x85\x36\xcb\x8d\x53\x35\xad\x44\xc4\x6a\x22\xac\x83\xe4\x6a\x37\x54\xdd\xc5\xa6\xc3\xb3\xe5\x56\x86\x7c\xec\xc0\xae\xda\x13\xb6\x5c\x87\x66\x0d\x23\xb4\xc3\xd4\x9e\x0b\xca\x85\x2d\xf7\xd2\x26\x52\x71\x86\xbf\x0e\xe7\x58\xe0\x24\x21\x09\x95\xb3\xcd\x4d\xe6\x7f\xf9\x73\xe3\x68\x2f\x4c\x59\x22\x33\xd8\x19\xfe\x4a\x67\xe9\x0c\xb1\x74\x36\xb2\x52\x2e\x96\x8f\x3e\xa2\xa9\xc3\x5f\x30\xc0\x5c\x6e\x80\x05\x14\x08\xe1\x61\xd4\x0e\x98\x87\x56\x6e\x4d\x15\x38\x9a\x52\xf2\x04\x58\xaa\x82\x11\x29\xcf\xd0\x35\x57\xe4\x1c\x7d\xc6\xf3\x3e\x08\x6a\xa6\x4e\xe8\xc4\x38\x1d\xb0\x44\x5a\x6a\x4d\x19\x55\x27\x03\x66\x21\xce\x1d\x55\x3e\x44\x9c\x19\x98\xdb\x08\x08\x9b\x35\x01\x56\x74\x87\xf7\xaa\x5c\xb6\x2a\x95\x35\xc4\x16\xf8\x79\xe8\x85\x24\x0f\x4d\xca\xc7\x1a\xfb\xf8\x0e\x3f\x9b\x20\xfc\x4b\xac\xb0\x29\x01\xdc\x24\xb9\xdb\x28\x37\x5b\x16\xca\xa0\x3b\xbb\x68\x20\x6e\x21\x46\xb2\x82\x76\x26\xe4\xf8\x3b\x7a\x46\xce\xd0\x8f\x09\x1f\xc9\x93\xdc\x54\x65\x1e\x4a\xa2\xe4\x89\xf1\xfb\xc1\xbf\x4d\x7e\xdf\xf7\x8e\xfa\x39\xdf\x87\x5a\x8e\x63\xfa\xd5\x20\x9b\xc8\xbf\x9c\x7f\xf8\x30\x5b\x9c\x8e\xd2\xe8\x91\x28\xfd\x17\xc8\x14\x95\x14\x72\xb0\x60\xb8\x0a\x64\x6c\x15\x75\x96\x01\xca\x5a\xed\x48\x9b\x2b\x25\x09\x80\xe1\xeb\x2b\x3d\xab\x96\xeb\xf0\xac\x38\xab\x2e\x05\x6a\xa7\x2c\xd2\xba\xe3\x55\x40\xd1\x7e\x19\x6d\xc5\x54\x03\xf6\xc1\xbb\xc7\x09\x9e\x94\x54\x96\x35\x94\x94\x9b\x19\xb5\xbb\x48\xcf\x1d\x82\x68\xf4\x29\x2b\x86\x0e\xbe\x77\x5e\x5e\xf0\xd6\x5a\x2f\xd6\xd9\x80\x75\x24\x7a\x26\xa6\xc8\x2f\x24\x9a\x82\xd3\x27\xa5\x72\x9a\xa5\x99\x82\x19\x1a\x1a\x35\x18\xc7\x06\x0a\xc3\x2a\x8e\x4e\xb3\x72\x6e\x31\xab\x81\xe2\x44\x92\x13\xdd\x30\x98\x54\x5d\x74\x28\x7a\x16\x78\x3e\x27\x62\xc0\x2c\x5e\x2d\xa0\xb2\x73\x6e\x23\x7f\xea\x52\x04\x82\x46\xf9\xb2\x1a\xa5\x47\x7b\x52\xcc\x42\x5d\x75\xbe\x21\x69\xb5\x89\xc2\x55\x79\x98\x8e\x7c\x5a\x16\x6d\x1b\xbe\xff\xfa\x66\xe3\x96\x63\x5e\xa5\x9d\x77\x4a\xb9\x17\x50\x43\x7c\x06\x0a\xa4\xcc\x4b\xa5\x3a\x5b\x5f\xa6\xbe\x17\xc4\x1c\x80\x3b\x87\x8f\x63\x4e\xa4\x67\xc4\x47\x99\x2d\x2e\xa1\x63\xa2\xa5\x8f\x01\xd3\xdb\xd8\x77\x38\x18\xd4\x74\x07\xa2\xae\x3b\x8d\x04\x97\xd2\xa6\x53\x98\x76\x9a\x93\xe2\xb6\x28\xd0\x68\xa0\xdf\x7b\x37\xd7\xc3\xe5\x52\x8d\xde\x33\x57\xb4\xd1\x3e\xac\x44\x4e\xa8\x6d\x6a\x65\x89\xc6\x9c\x16\x6b\x14\x69\xfc\x70\x71\xd5\xcb\x2a\x93\x95\xba\x5e\xae\xd2\xe8\xc3\xe5\xd7\xd7\x69\x5c\x9e\xb1\x57\xb1\xb1\xd4\x44\x43\xcd\xc6\xd5\x8b\x55\x0c\xe2\xde\x06\x0b\xb1\xb4\xf4\x2b\xf9\x43\x71\xcf\xac\xca\x35\xd8\xd1\x32\xd5\x5c\x2b\x11\x08\x8c\xfb\x0e\x5c\x00\xc1\x4b\xbf\x25\x15\x9e\xcd\xfd\x3c\x5a\x07\x06\x6b\xa7\x69\x8e\x5a\xdd\x25\xf8\xa2\x20\xf5\x11\x36\x41\x42\xe5\xc1\x2d\x2d\xc5\x7a\x1e\xaf\xbe\xc5\xbe\xdf\x45\x6c\xfa\xcb\x25\xa6\x27\x8b\x3c\x18\x52\x5a\xd9\xcd\xd5\x55\xaf\xb1\xfb\x8f\x48\x86\xf3\x5f\xbb\xa0\xdb\x66\x9e\x66\x78\x60\x82\x60\x69\xdd\xdf\x90\xa0\x59\x4a\xde\x5a\xc3\x3c\x9c\x8d\xd9\xa4\x78\x9f\x66\x95\x35\xbc\xab\xc6\x16\x8b\x8b\xdc\x41\xa4\x42\x90\x27\x22\x60\xef\xd8\x50\x2a\x56\x3c\xaa\x38\x11\x04\xc7\x0b\x8f\x22\x59\x1c\x87\xe9\x19\xcc\x63\x92\xce\xb4\x02\x0f\xaa\x09\xe3\xa7\x7c\xee\x74\x96\xc2\x5b\x50\x16\x85\x8e\xf5\x8d\xe5\x45\x81\xe8\x2f\xd8\x29\xf9\x4a\xa5\xd2\x72\x45\x45\x08\xac\x6b\x04\x24\x1e\x28\x96\x36\x25\xf6\x86\x1b\xbc\xeb\xfc\x78\x73\xd7\xef\x5e\x0e\xde\xe5\x29\x17\x2e\xa7\x30\x83\xf9\x72\x55\x1b\x38\x1b\xb0\x2c\x4e\x39\x43\xb5\x86\xb5\x44\x38\x8e\xf3\xf8\x68\xab\x44\x1a\x99\xad\x91\x23\x7b\xa7\x62\x65\x84\x72\x43\x33\x0f\x90\x58\x76\xa8\x27\xab\xc1\x75\x56\x38\x39\x26\x3d\xae\x21\x8f\x69\x47\x97\x8d\x0f\xc8\xab\x8c\xae\x4d\x94\x43\x8c\x64\xe4\xd9\xe9\x4a\x70\x3b\x7f\xc0\xe6\x12\x5e\x8f\xdb\xb9\x05\xd9\x60\x51\x3f\xd2\xaf\x24\xbe\xab\x91\xaa\x76\x92\xa6\xd4\x2a\xc0\xb2\x72\x15\x52\x46\xd7\xd1\xf8\xb3\xa9\x3c\xe8\xef\xda\xb3\xa5\x9b\x1c\x67\x2f\xc7\xcc\x05\xc0\x5c\x85\x30\x8a\x88\x50\x98\x32\x34\x86\x83\xcd\xa2\x05\x02\x14\x16\x02\x3e\xec\x3f\xa3\x19\x65\x00\x07\xd1\x44\xda\x87\xe2\x3c\xd6\x10\x5a\x3f\xf7\xae\x1f\xfa\x05\x51\xf5\xa7\x9b\x87\x62\xa5\xfe\xce\xaf\x8d\xb2\x6a\xa9\x85\xa6\x60\x21\x6f\x8a\x79\x6a\xa9\x85\x0e\xce\x28\x53\x39\xd1\x64\xa1\xc8\xc3\xdd\xd5\x56\xf2\x5d\xb5\xb3\xac\x16\xf8\xdd\x97\xae\xaa\x61\x2e\xda\x7c\x1a\x93\x68\x15\x34\x6d\xfb\x7d\x64\xa2\xa0\x34\x1d\xac\x35\xd1\xc2\xd6\x61\x89\xe6\x58\x58\x3f\x54\x6c\x02\xa0\x8a\xe5\xde\x8c\xe6\xd5\x04\x0b\xf2\x89\xa8\x5f\xf4\xd5\xc7\xd9\x2e\x92\x4b\xac\x28\x0b\xfe\x51\x32\x7c\x32\x0d\xaf\x71\xd2\xec\x50\x1a\xf2\x97\x9c\xb0\x0c\x3d\x20\xdb\x83\x0f\xa6\x71\x66\xca\xfe\x77\x74\x73\x40\x11\x17\xa6\xa9\x55\x52\xce\xf4\x8e\x34\x18\xb9\x0e\x58\xd7\x6b\x8e\x8f\xcd\xc7\x2d\x61\x06\xbd\x64\x01\xdd\x56\x4e\x4a\xd4\xb9\xed\x55\xd0\xfa\xaa\xec\x42\x7a\x5b\x35\x8a\x92\xcc\x9b\xb5\x6b\xe4\x2b\x2f\xe7\xf4\x20\xa0\xae\xec\x4c\xb7\xc3\xb6\x32\x4e\xff\xdb\x62\x24\xc1\x21\x40\x30\x57\xa9\x0c\x85\x5c\xf2\x15\x68\xcb\xeb\xa5\x57\xe6\x64\x58\x13\xc9\xca\x1f\x90\xcd\xae\xf1\xd1\x9b\x96\x43\xb7\x4f\x7c\x34\x27\x6e\xaa\x20\xdb\xd8\x82\x9d\x21\x5c\xe5\xb3\x69\x03\x71\xf5\x8b\xd9\xd1\x19\x02\x0a\x60\xba\xb8\x2a\x9b\x2e\xe4\xda\x02\x12\xf8\xd3\xf5\x77\xdb\x7a\xa8\x58\xf9\xf8\x9c\xf9\xdb\x02\x8c\xe3\x39\xb6\x76\x07\x50\xa2\x5c\xf9\x8b\xaa\x6a\x89\x67\x03\xe6\x05\xac\x48\xa3\xf6\xe8\x33\xe2\x2a\xce\x40\x19\x63\x06\x68\xe5\x90\xfb\x94\x09\x3f\x85\x15\x28\xe3\x1e\xa8\x69\xb1\x66\xcc\x52\x3f\xf6\x74\xca\x29\x76\xd9\xa5\xce\x82\x62\xe3\x00\x7d\xfb\x12\xb4\xe7\x55\x89\xb0\x1d\x83\x39\x1a\x8c\x16\xd8\xab\x41\xe8\x21\x12\xc4\x9c\x48\xf6\x5e\x65\xf9\xbb\x34\x59\xb8\x90\xea\x92\x7b\x40\x4b\x75\x98\xda\x96\x9b\x0f\xf8\x0e\x20\xb7\xd6\x55\x1c\xbc\x63\xb5\xd2\x4c\xe5\x7c\xbc\xb0\x13\xfc\x58\x24\xe8\xb4\xce\xaa\xfe\x75\x4e\xa2\x4d\x70\x81\x6e\xb1\xc0\x33\xa2\x88\x68\x0a\x47\x2a\x56\x08\x07\x11\xc7\xad\xa0\xed\xd7\xac\xa2\x29\x9f\x52\xae\xb3\x93\x69\xb7\x57\xab\x70\x7e\xb2\x59\xac\x05\x69\xa6\xa7\xf1\x8b\xb5\xfc\xaf\x39\x0b\xdb\x4f\x3e\x0d\x1b\x6d\xe5\xc1\x3a\x6d\x3b\xa7\x97\xc1\xb7\xe9\x2f\x21\xc5\x14\xc2\x85\x0e\x04\xd8\x66\xf5\x28\xeb\x10\x6d\x56\xf1\xd2\x9d\xf0\x6e\x97\xe1\xe0\x32\x93\x4b\x87\xaa\x90\x3b\x01\xbb\x04\x54\x2a\x03\xee\x52\x8d\x4a\x03\x42\x4b\x55\x84\xa4\xe7\xf6\xb3\x98\x85\xb9\x41\xd7\x4a\x56\xe5\x8a\x61\x25\x72\xad\xe0\x71\xbb\x42\xec\x08\x12\xcd\xae\x25\x9a\x55\x5b\xb9\x10\x5d\xab\x77\x27\x11\x25\xf0\x20\x5b\xc9\xdb\xa2\x3e\x14\x27\x08\x29\x5d\xf6\x8a\xb4\xe5\x80\xe1\xea\xa7\x2c\xfb\x57\x91\x83\xbb\x4d\xed\x6f\xd5\xaa\x5c\xd5\x33\xcf\x05\x05\x1e\xa8\xc4\x97\x06\x6c\x5c\x0d\x8c\xd6\x84\x41\x1a\x2b\x7f\xef\xda\x38\xb0\x20\x67\x7c\xc1\x53\xf4\x4c\xe5\x14\x29\x3e\x60\x10\x27\x98\x79\x03\x14\x47\xe6\xc5\x13\x78\x0b\xb0\x2d\x64\x3a\x9a\x51\x85\xb0\x37\xc3\x82\x49\xf2\xc4\x9e\x67\xfd\x01\xcc\xb8\x12\xbe\xa0\x0a\x77\x69\xc5\xa1\xd9\xc0\xbe\x96\x37\xb2\x2d\x42\x81\x17\xd3\xbc\x5f\x8c\x02\x4f\xe3\xf1\x35\xcc\xca\x33\x17\x40\x0a\x50\xb5\xb5\xc1\x22\xc1\x02\x5c\x2f\x95\xaa\x74\xb7\x58\x43\xcf\x0a\x80\x82\x7c\x21\x5a\x21\x14\xe4\xaf\xef\x02\xa2\xa0\xae\xf6\x5c\x53\xca\xaa\xfb\xa4\xc6\xfe\xed\x52\xa1\x15\x77\x81\xf3\xbe\xa4\x74\x5b\x2b\x29\x1d\x1a\x54\x5d\x9e\x10\xb0\x79\x78\x79\x5d\xf4\x32\x9c\xf1\x88\xb3\x98\xae\x11\x2f\x0c\xf5\xc5\x46\xe9\xb8\xc3\x16\xab\x91\x8f\x66\x7e\xa0\xbe\xb5\x97\x78\x92\x48\x35\xe6\xe6\x4a\x95\x35\x6f\xdf\xdf\xe9\x5e\x4a\x68\x11\x8c\x88\x94\x6f\x27\xc6\x15\xe4\xfd\x44\x2a\x59\x54\xe4\xa2\x0e\x58\xb5\x94\xd4\xcc\xb7\xb7\x4d\x23\xd9\x29\xec\x9e\xc7\x23\xdc\x2c\xac\xd5\xed\x4b\x16\x88\x67\x14\x7a\x62\x41\x36\x4a\x62\x70\xee\x86\xac\x0b\xa0\xd2\xc2\xd1\x26\xb9\xe6\x15\x9c\xa3\x7a\xe8\x4b\x49\x1e\x2b\xcf\xae\x15\x0c\x76\xa8\x7e\x2e\xdd\x20\xad\x73\x62\x32\x39\xde\xde\x18\x36\xa8\x3b\xce\x6c\x0d\x25\x77\xf2\x26\xe5\x8d\x01\xce\x76\x67\x20\xbc\x65\x64\x0a\xdd\xf8\x09\xb8\xa0\xed\xd8\xb1\x09\xc7\xc9\xa0\xe1\x4b\x6b\x52\x98\xb1\x09\xa9\xdc\xcb\xac\xd7\xad\x49\xed\xf9\x44\x85\x8d\x49\xa6\xbe\x75\x03\x8a\x51\xdb\x50\xce\xd2\x6d\x91\x09\xa0\x29\x8b\x89\x60\x04\xab\xe9\xcb\x65\x82\x5c\x6c\x6b\x42\xf7\xc6\xb7\xdf\xac\x10\x3b\x52\x5c\x4c\x0e\xd9\x66\xb8\xc5\xe2\xfc\x2b\xc7\xa9\x5f\x6f\x63\xcd\xb2\x01\x12\x59\x79\xea\x25\xf5\xb6\xc2\xb4\xe9\xe1\x0f\xad\xb3\x4b\xb7\x4a\x16\xa9\x56\x39\xf7\x93\x36\x53\x61\x9b\x5a\x4a\x98\xd1\xa7\xdd\x2f\xea\xbd\x82\x24\x6f\x22\x3f\x65\xff\x29\x13\x4d\xe5\xc3\x53\x2f\x8b\x02\x6a\xb8\x2b\x4c\x99\xe5\x5e\x4d\x89\x13\x5a\xee\x9d\xe1\xaa\x5c\x89\x83\xcf\xc2\x79\xf3\x49\x38\x21\x25\x23\xa4\x64\x54\xac\x51\x48\xc9\x40\xe8\xd0\x52\x32\x56\xa9\xa0\x4d\x46\xda\xcc\x6f\x08\x65\x5e\x0b\xb5\x95\xcc\xfa\xae\xd0\x23\x37\x4f\x3b\x70\x76\x4e\x3f\x66\xcb\xfe\x62\x7f\xa8\x0c\xdb\x5a\xfa\xac\x3c\x5b\xdf\xe6\xca\x16\x65\xd7\x05\x16\x71\x62\x21\x08\x6d\x50\x75\xd1\x46\xd6\x64\xce\x1d\xb0\x9f\xf8\x33\x79\x22\xe2\x04\x61\x85\x66\x1c\x70\xad\xf2\x18\x1e\x38\x08\x05\x2c\x7d\x13\xab\x81\xd1\x35\x9e\x91\xd8\x94\xda\xf4\x42\x2f\xad\x51\xd9\xba\x83\xab\x90\x76\x01\x34\xd6\x2c\x83\x8b\xed\x18\x30\x13\x0e\x69\x42\xf0\x40\x56\xa0\x6e\x62\xb0\x61\xfe\x90\x39\xab\xff\x70\x86\xfa\xfa\x7e\xa2\xb2\x38\x5e\x0f\x78\xaf\x6e\x6c\x03\x36\x11\x3c\x9d\x67\x76\x3e\x3e\x32\x35\x97\x4d\x84\xd6\xb2\xb3\x1a\x06\xe3\x3c\xd5\x11\x8e\xb5\x2e\xde\xbc\x71\x5e\x25\x52\x76\x23\x98\x25\x7f\x03\xe9\x63\x98\x85\xff\xd9\x70\x7c\xe3\x63\xf6\xc0\x65\x9a\x2a\x00\xec\xc9\x01\x7e\x49\x24\x58\x85\x32\xcf\x40\x21\xd7\xbd\x88\xa7\x50\x39\xce\x26\xbb\x6d\xe6\x5b\x71\xfe\x87\x6a\xa8\x86\xbc\x73\x1b\x97\x66\x12\x69\xed\x3d\xb1\x37\x8b\x6e\xeb\x08\xdf\x3a\x7e\x71\x9b\x8a\x39\x07\x49\x2c\x59\x38\x68\x09\x0b\xf2\x37\xe7\xf3\xd4\xc4\xde\x51\x3f\x14\xab\x72\x67\x53\xa9\x3e\x63\x15\x4d\x35\xe7\xce\x51\xd9\x76\x14\x93\x98\x73\xe5\xfd\x5a\x79\x2b\x66\x70\xe1\xf7\x5e\xe3\xf6\x68\xda\x3d\x5e\x8c\x61\x16\xc8\x99\x49\x12\x33\xdd\x9f\x71\x0d\xda\x4a\xea\x9e\x5d\xd4\x7d\x62\x9f\xe8\x89\xae\xda\x45\xab\xc6\xdf\x6e\x6f\x15\x4b\xbd\xed\x3c\xda\x71\x0b\x98\x9b\x4b\x0b\x2a\x96\xbf\x68\x4b\x03\xd7\x84\x28\x08\xba\x59\xa6\x92\x2d\xcf\xf0\xa4\xc5\x91\xcc\xe2\x3a\xc3\x73\xad\x44\x28\xae\x6f\x49\x31\x31\x72\xac\x89\xe5\x45\x18\xa5\x82\xba\xb3\x5f\xca\x5b\xaf\xdf\x1d\x60\xa1\xfc\xe0\x97\xf2\x8a\xb0\x57\xe5\xd0\x04\x25\xe0\x48\xa5\x38\x0b\x9e\x84\x3d\xe1\xaa\xef\x9b\x1c\x7d\xe7\xfc\x17\x4e\xbc\xab\x58\xd3\x95\x1b\x7b\x8b\x55\xc6\x55\x18\x8c\xad\x4e\x1a\x65\x13\x0f\xc0\xb1\xda\x4a\xdc\xa6\xe8\x46\xe5\x97\xed\x0a\x87\x54\x7e\xea\x64\x9f\x4d\xbe\x6d\x00\x98\x6a\x15\xb2\x7e\x88\x15\x13\xbc\x4c\x00\x1b\x2a\x6c\x65\x37\x1f\xd8\xd3\x76\x04\xb0\xc7\x14\x42\x19\xb0\x93\xe5\xbe\xf3\xcb\x26\xe8\xa1\x7d\xff\x9f\xf9\x43\xd0\xdf\x6d\x71\x96\x8a\x17\x07\x8c\x0b\xfb\xea\x49\xf6\x9e\x7e\x2d\xc7\x27\xd6\x52\xe2\xf2\x97\x39\xfa\xa8\x28\xe2\x14\x02\x5a\x8b\xc5\x99\x33\xf0\xd4\x59\x59\x0b\x3d\xf8\xc7\x74\x44\x04\x23\x7a\x4e\x0e\xd7\x21\xe3\xc1\x33\xcc\xf0\x04\xc0\xb0\x4f\x20\xe8\x10\xa4\xec\x5c\x83\x32\x27\xd1\xd4\x07\x05\x26\xab\x79\xbc\x4d\x65\xce\xeb\x64\x43\x9f\x46\x02\xb7\x58\xbc\x79\xe4\x4a\xf5\xa1\xbd\xb3\xfd\x6f\xa6\x68\xf4\x3b\xf7\x3f\x0f\xef\xba\xf7\x37\x0f\x77\x17\x05\x6d\xe3\xe2\xea\xe1\xbe\xdf\xbd\xab\x7c\x96\xa7\x01\xff\xfd\xa1\xfb\x50\xf3\xc8\x35\x70\xd5\xf9\xb1\x5b\x28\x3a\xff\xf7\x87\xce\x55\xaf\xff\xeb\xf0\xe6\xe3\xf0\xbe\x7b\xf7\x4b\xef\xa2\x3b\xbc\xbf\xed\x5e\xf4\x3e\xf6\x2e\x3a\xfa\x4b\xff\xdd\xdb\xab\x87\x4f\xbd\xeb\xa1\x8b\xe8\xf6\x1f\x7d\xb9\xb9\xfb\xf9\xe3\xd5\xcd\x97\xa1\xd7\xe5\xcd\xf5\xc7\xde\xa7\xaa\x59\x74\xee\xef\x7b\x9f\xae\x3f\x77\xaf\x9b\x8b\xdb\x57\x53\xa3\xb6\x6e\xb6\x77\xff\x7a\xb6\x2e\x4f\xba\x1b\x2d\xec\x99\xa0\xff\x04\x97\xcb\xad\xd9\xa2\xa7\x27\xee\x2f\x53\x8a\xfe\x54\x73\x6e\xe7\xce\xcb\x99\xde\x80\x65\x3e\xe1\x4c\x16\x50\x78\x22\x5d\x56\x77\x61\xb4\xe7\xa8\x03\x87\x0c\xf4\x9c\x42\xa7\x90\x34\x92\x8d\xd4\x45\x11\xc0\x3e\x4c\xe8\x8c\x42\x40\x01\x3a\x45\xe5\x05\x2f\x36\x68\xe7\x04\x43\xb0\xee\xc6\xb8\xe9\x34\xc8\x72\xc2\x38\xec\x94\x73\xe4\x2e\x16\x62\xac\x20\x06\xd6\x77\xc1\xf0\x8c\x46\xe5\xec\x16\x40\xb6\x45\x39\x8a\x4b\xb9\xc5\xc2\x06\x2b\xb6\x3c\x25\xe8\xe7\xbf\xe5\x83\x02\xc7\x8b\x35\x18\xa4\x4b\x15\x28\xed\x03\x91\x1a\xaa\xae\xda\x9e\x85\x9e\xdc\x31\xb7\x16\x71\x38\xb7\xb6\xd2\x3d\x78\xc9\x52\xe6\x21\xb9\x15\x5c\x66\xfa\x78\x9b\x19\x95\xf6\xf8\x39\xba\x07\x14\x19\x99\x5b\x1c\xf4\x2a\xce\x93\x74\x42\x19\xa2\xb3\x79\x02\x3c\xc6\x98\x21\x46\x64\x8a\x9f\x28\x77\x05\x57\x4c\x5d\x1a\xa0\xa3\x95\x08\xd1\x29\xaa\x3d\x28\xe7\xa8\x13\xc7\xb2\xc8\xe0\x0a\x3b\xc7\x71\xd1\xd3\xe2\xb0\x7d\xf0\x35\xcd\x58\x2d\xdb\x2c\xed\xa3\xfc\xc8\x01\xc5\x76\x8f\x93\xb3\xcc\x0e\x8b\x22\xc3\x16\x52\x8b\xa6\xe0\xd0\x6d\xe5\xe1\x46\x32\x4c\x1f\xcb\x47\xc7\x9a\x57\xc9\x31\x0e\xb1\x68\xbb\x1e\x2d\x74\x51\xdb\x4e\x33\xca\x0e\xe1\xa0\x6d\xd6\x67\x2d\xe0\xf6\x8a\x2e\xdd\x8c\x93\x52\xa9\xbb\xd6\xfd\x15\x4a\xe5\x55\x76\xb6\x53\x27\x55\xb5\x10\x09\x47\x72\x98\xed\xff\x35\xe6\x71\x0b\x9f\xde\x64\x5f\x36\x4a\x9a\x43\x8f\x6e\xeb\xba\xae\x96\xf2\x9f\xad\xfb\xaa\x71\x1f\xee\x08\x39\xab\xbd\x14\x09\xa5\x42\x68\x04\x5e\x4a\x4c\x99\x2d\x20\x45\x32\x37\x9a\x2b\xd8\xae\xcf\x71\x56\x52\x11\x8f\xf8\x53\x41\x27\x9e\x11\x29\x71\x0d\x16\x8c\x67\xc9\xdb\x86\x31\x64\x27\xd4\x7e\xd8\x72\x3f\xb9\x33\xd9\xd7\x5f\x35\xc9\xe8\x77\xbe\x42\xef\x26\xaa\x65\xd8\xd8\x05\x31\xa3\x1b\x93\xca\xa8\xf9\xcb\x49\x1e\x03\xc4\x85\x17\x1a\x55\xe7\xb5\x6a\x69\x0d\x2c\x13\xac\xb2\x2e\x98\xef\x79\x5c\x3f\x74\xc8\x6b\x7d\x63\xb0\x71\xeb\x0e\xc2\x45\xfa\xac\xb1\xeb\x0a\x6e\x5a\xbf\x62\x7b\xc4\x67\x33\x23\x17\x14\x4c\xc0\x27\x08\x9b\x0c\xd2\x5c\x9a\x92\x69\x34\x35\xce\x31\x7d\x65\x9c\x0c\xd8\xb3\xb7\x20\x85\x18\xeb\x8e\xdf\x12\x00\xb5\x7e\xd5\xc7\x8d\x3e\x15\x22\xd7\x41\x64\xa4\x10\x46\xed\x6d\x04\xe3\xc7\xcc\x0b\x9e\xad\xd8\xe0\xde\x7a\x6d\xb1\xd5\x37\xa8\xad\x59\xa2\x6f\x5d\x85\xcd\x6c\x6e\x5e\x61\xcb\x2d\x14\xfc\xb6\x43\xf0\x6a\x6b\x56\x8d\x60\x07\xa5\x35\x5f\x14\x39\x3d\xcb\x84\x35\x89\xd3\xb3\x91\x85\xff\xd0\xd3\x75\xd4\xfe\xa3\x9b\xd1\x1f\x8d\x22\x9c\xd6\xe0\xc5\x78\xad\x65\xe0\xe9\xe8\x54\xcb\xac\x0e\xc7\xc0\xc6\x8f\x48\x74\x6a\x00\x19\xdf\x43\x10\x6b\xe7\xb6\xf7\xfe\x04\xbd\xf7\x13\xf9\xde\x1f\x8d\xe9\x22\x3f\xfe\x96\x6a\xb6\xb8\x27\xe8\x72\x85\x5c\x92\xe2\xa1\x87\x9d\x52\xe2\x03\x76\xc7\x58\x36\x80\xea\xb8\x80\xfe\xb2\xf0\x0d\x78\xf4\xa1\x5c\xa4\x71\x7a\x67\x91\xec\xd6\x6f\x66\x24\x6c\x2a\x2b\x56\x2e\x1e\xb0\xd1\xa2\xec\x19\x3b\xc9\x5c\x63\xad\x79\xc4\xd6\x25\x10\x75\x7b\xcb\x79\xe7\x3b\x8e\xb0\x6e\xbe\x8d\x56\x64\xb2\x77\xb2\x3a\x3d\x39\x0f\xad\x0b\xed\x08\xa9\x09\x55\xb3\x2a\x98\xf9\x1c\x31\x2b\x17\x65\x95\xf4\x75\x6c\xdb\xad\x45\x3c\x7f\xa7\x8a\x22\x36\x95\xa3\x46\xb4\x0f\xbb\x6c\xbf\xbb\x6c\x17\xa9\x2c\xc5\xc1\xad\x7f\x7d\x5f\x18\x29\xd2\x6b\xc6\x99\x7b\xb5\x2a\x93\x31\xf8\x42\x9d\xcc\xd5\xe5\xad\xd7\x74\x94\x7b\x34\x59\xed\x29\xbf\x37\xd1\x16\xc6\x57\xbd\x3c\xd6\xf2\x50\x3b\xca\x56\x97\xe2\xd4\xa4\xad\x2a\x3a\x23\x27\xa6\x9c\x59\x1e\x21\x62\xcf\x2b\x6c\x37\x13\xd8\x35\x25\x54\xb8\x4e\x2c\x78\xe4\x5a\x38\x07\x6b\xea\x02\x75\x7b\x64\x8b\xf0\x9c\xeb\xce\xe7\xee\xe5\xb0\x7b\xdd\xef\xf5\x7f\xad\x00\x06\x2d\x3e\x76\xd8\xa0\xde\x0b\xf7\xbf\xde\xf7\xbb\x9f\x87\x9f\xba\xd7\xdd\xbb\x4e\x7f\x05\x6e\x68\x53\x67\x75\x98\x94\xa9\xac\x52\x1e\xd7\xc1\xa5\x74\x46\xe6\x8a\xde\x97\xd1\x43\xbd\x4e\x28\xa9\x41\x10\x35\x98\x0e\x2c\x26\x02\xc5\xe4\x89\x24\x7c\x9e\x1b\x75\x2b\x09\xe6\x41\x8b\x56\xb4\xdf\x04\x2f\x0a\x6d\x96\x69\x7c\x8e\x4c\x6d\x44\xaf\x3c\x74\xd6\x20\x88\x7c\x58\x10\xf6\x5e\x21\xf2\x75\x9e\xd0\x88\x2a\x2f\xe7\x93\x0b\xeb\xdc\x31\x3e\x57\x08\xe9\x5d\xb1\xb9\x76\x16\xc2\xb3\x73\x8b\x83\x1f\x7e\xb0\x6c\x6b\xc8\x4e\x54\x06\x75\xb7\xb2\x32\xd4\x0e\xcc\x0a\x35\x9e\xf6\x25\x24\xbe\x0d\x46\xb7\x0f\xe3\xc4\x72\x62\x93\xcd\xdb\xac\x41\xe9\xab\x1e\xe4\xea\xdb\xb0\x29\xb8\xa8\x70\xae\x9b\xa3\x8b\xda\xed\xd4\x57\x8e\x11\x2a\x14\xa2\xdd\x01\xa4\x8a\x0d\xf8\x5f\x33\xca\x63\xa9\x10\x10\x33\x81\xba\x18\x09\x32\xe3\x4a\x2b\x60\x26\x8c\xe2\x44\x0b\x55\x14\x27\xf4\x9f\x00\x3e\x26\xc8\x99\x17\x76\xe2\x20\xdb\x72\xe7\x85\x05\x06\x39\x1b\xb0\xcb\xee\xed\x5d\xf7\x42\x33\xa4\x33\xf4\x20\x01\x57\xac\x30\xf5\x4b\xbb\xbd\x8d\x38\xe6\x87\x7f\x50\x26\x15\xc1\x75\x11\x74\x44\x08\x2e\xda\xf3\x87\xac\xbf\x2e\x7c\x57\xbd\xbd\xe1\x59\xc1\x32\xe6\xcc\x0f\xd7\xb5\x55\xc4\xbd\x44\x8b\x9d\x27\xb2\xdd\xe1\xe7\x02\x45\x7c\x5c\x15\x90\x44\x8a\x54\xdf\x23\xb5\x01\x99\xb5\xfd\xfc\x0a\x7d\xde\xc2\xb7\x4d\xf3\xec\x43\x5c\xa2\x54\x39\xcc\xab\x41\x82\xcd\xca\x19\x95\xe6\x59\x2b\x2a\x8a\xd7\xc0\x60\x29\x6d\xfd\x11\x99\x60\x86\x44\xca\x58\x09\xf7\xd7\xb7\xf3\x2d\x47\x1a\xad\x7b\x54\x35\xcd\xf0\x8c\xa7\xcc\xd4\xe3\xd5\xa3\xaa\x18\x8c\x9c\x13\xa6\x56\x0c\xe6\xb5\x10\x76\x4a\x43\x3d\x5c\x90\x9d\x8a\x81\xd6\xe1\xec\x54\x79\xb3\xa0\x54\xf9\x7a\xd7\xb2\x8b\x64\x2c\xb8\xb4\xf4\xa1\xca\xee\xe7\x6a\x2d\x1b\xcb\xc7\xad\xbb\xeb\x63\xf9\xb8\xba\xab\x98\x44\x8f\xeb\x5e\x36\xe5\x74\xd6\xc4\x56\x7a\x5f\x32\xf6\x2d\xf4\x53\x5b\x73\x07\x0a\xfc\x47\x8f\xe8\xa7\xfe\xe7\x2b\x34\xa6\x5a\xee\xd5\xd7\xca\x35\xd6\x32\xf6\x83\x48\x9c\x55\xda\x5a\x76\x53\x91\x64\x77\x2f\x2c\xbc\x13\xa5\x3c\x29\x41\xdf\x68\x78\x42\x9c\xa9\x59\x58\x18\xc5\x52\xcd\x1d\x81\x59\xcc\x67\x66\x1e\x1f\x64\x3a\x1e\xd3\xaf\x67\x0a\x8b\xef\x6b\xe8\x61\x62\x3a\x86\xff\xe0\xa3\xa1\x1e\xd1\x96\x17\x71\x55\x73\xc8\x16\x20\xcf\xc8\x66\x67\x76\x69\xde\xfd\x3f\x7c\x04\x10\x01\x80\x72\xe0\x7c\x83\x36\x4e\xc2\xbe\xe2\x76\x52\x5e\x91\xbb\x80\x5e\x13\x71\x21\x88\x45\x16\x30\x45\x63\xe7\x58\x28\x0a\xd6\x5a\x87\x7e\x53\x28\x7b\x90\x2f\x91\x5f\x22\x7f\x8a\x73\x88\xf1\x11\x21\xe0\x5e\x9a\xd3\x64\x3d\xa5\xf7\xa2\xe0\x19\x2d\x9d\x40\x1b\xae\x6b\x01\x51\xc1\x20\xb3\x52\xc4\xea\x3e\x11\xa6\x76\xa2\x9f\x40\x13\x15\x58\x07\xed\x7c\x1c\xa6\x76\x6b\xef\x32\xbf\xdc\x5c\x1c\xb4\x1f\x53\xa5\x04\x86\x7b\xde\x66\x97\x59\x87\x7e\x5d\x98\xc1\x53\x6b\xcf\x35\xbc\xba\x4c\x97\x15\xf9\x04\x96\xda\x79\x69\xfc\x3c\x16\xd8\xd5\x6c\xd8\x10\xa1\x49\x12\x63\xc5\xf0\x90\x41\xac\x72\x5a\x5e\x73\xd3\xa7\xde\x5b\xa5\x2e\x57\x2e\xf9\x06\x70\x44\x85\x66\x3e\x11\xc8\x83\xdd\x45\xf4\xfe\x3a\x80\x07\x30\x90\x07\x91\x40\xdc\x79\xa3\x15\xcb\xd4\x8f\xd7\x9c\x2f\x93\xec\x70\x0b\x19\xdd\x0c\x46\x0b\x8d\x64\x2e\x48\xa4\xaf\xb2\x73\x74\x9b\x10\x2d\x79\xa5\x5a\xfa\x4a\x93\xc4\x41\xb7\x35\x4b\x87\x6b\xc1\x0d\xee\x7d\x5e\x9e\xee\xd1\x30\x31\x07\x5d\xd8\x3c\x33\x8f\x06\xbb\x87\xa9\xf0\xe8\x0b\x26\x64\x30\x24\x16\xb5\x48\xe0\xf0\x0b\x13\xb5\x0b\xa6\x24\x5c\xb8\xc8\xe8\x3f\x35\xfb\x15\x44\x4e\x79\x6d\x66\xa8\x3f\xdb\xfd\xcc\xc1\x91\x72\x8f\x93\x70\xf7\x61\x5d\x30\x7a\x0b\xb9\xa6\x74\x07\x16\x44\x9c\x36\xbe\xd8\x3c\xf6\xc4\x02\xe9\xda\xbb\xd5\x0e\x0d\x6e\xc9\xdc\xd4\xe6\x83\xda\xe5\xae\x8b\x5c\x99\x59\x18\xdf\x6b\xf6\x79\x6e\x40\xce\xf3\x28\xa8\x92\x79\x39\x41\xa4\xef\xda\xba\x25\xd6\xf3\x1c\xa6\x62\x2d\x1c\x8f\x1c\x8e\x7e\x1d\xce\x6d\x33\x78\xf2\x61\x69\x22\x54\xb3\x4b\x5b\x25\x04\xc4\x68\x1b\xe8\x24\x0b\x10\x7f\x76\xdb\x18\x32\x56\xaa\x78\xf5\x4c\x79\x5b\xb7\x1a\x48\xc9\xb9\x28\xb3\x2f\xef\x5a\x61\x07\x16\x26\x10\x40\xe3\xd6\x07\x8d\xb3\x25\x63\xb2\xbd\x07\x10\x8f\x4a\x00\x5a\x42\xee\x40\x2b\x0b\x0e\xd6\xe8\xbd\x2a\x5d\xac\xb0\x3a\xad\x72\xc3\x0a\x5f\x68\x5e\x72\xb9\xa5\x07\x4e\x4f\x66\x31\x84\x6c\xdb\x6d\x62\x80\x0a\xf3\x37\xde\x03\x68\x93\xc4\xc8\x40\x3e\x18\x48\x6b\x4b\xbb\xcc\x73\x32\xc7\x82\x30\x35\x60\x77\x7a\x14\xe6\x8b\x3c\x12\xc3\x45\x01\xb9\x32\x03\x50\x8c\x78\x8c\xb0\xfd\x0a\x88\x5e\x17\x86\x27\x87\xe6\x25\x50\x4d\xf7\x88\x4c\xf0\xa3\x79\xc7\x00\x45\x58\xa0\x24\x3d\x55\x3a\xce\xd5\x78\x2d\x40\x46\x53\x0a\x38\x0d\x31\x91\xf6\x42\xa2\xca\x02\x71\x64\xe2\x77\x4a\x1c\xb0\x36\x7c\x96\xf1\xaf\x2a\x86\xed\x0c\x05\xcc\x19\xe8\xe4\x80\x79\x7d\x34\xe0\xb0\x1a\x65\x7d\x43\x55\x02\xd6\x99\xc6\x99\xe3\x0b\xfe\x69\x56\x88\x0b\x3a\xa1\xcc\xab\x86\x65\xa7\x37\xc3\x73\x30\xef\x9a\x33\xc8\xc7\xd9\x9d\xd6\xb7\x39\x0e\x67\x30\xe2\xff\xfb\x5f\xff\x7d\x46\xeb\xbc\x1f\x72\x68\x29\x70\x08\x2b\xb9\xde\xb2\xf8\x2b\xef\x41\xaf\xd4\x40\x7a\x78\x3a\xad\x2c\xe4\x6d\xe4\xbf\xda\xcb\x4d\x6f\x1a\xae\xa6\xc6\xdd\x5b\xdc\xee\xe0\x1b\x11\x69\xc3\xd9\x30\x57\xcc\xeb\xd2\x92\x4a\xc8\x4d\xd0\x23\x31\x27\x39\x33\x10\xf8\x95\xe6\x97\xcc\x34\x03\x96\x7f\x22\x0d\x88\x8c\xc1\xed\x35\x3f\xe4\xd4\x69\x49\x98\x26\xde\x9f\x47\x4a\xe4\xee\x70\x2f\x16\xda\xd5\x45\x31\x31\xac\xba\xfd\xd2\x4d\x5b\xe2\xdc\x1e\x80\xe5\x36\x31\xa3\x53\x2c\xf7\x17\x9a\x53\x59\xcf\xcb\x58\xd3\x7d\xe1\x61\x55\x90\x8e\x19\xa4\x49\x91\xd5\x0b\x92\x4a\x22\x0c\xa7\xcb\x30\xc4\xec\x4e\xf0\xe1\x39\x21\x42\x74\x85\xaf\x91\xcc\x30\x5d\x2b\x9b\x41\xbf\x5f\x0d\x1e\x5a\x70\x36\xe0\x09\x11\xc3\x38\x55\x4b\xc7\xa2\x29\xc3\x40\x7f\x74\x99\xaa\xc5\xea\xf6\x65\x82\x97\xeb\x19\x35\x01\xb6\xea\xf7\x6b\x9a\x5d\x2d\x31\x7b\x21\x3e\x45\xa9\xb9\x06\x0e\x95\x94\xe0\x50\x6d\xc4\x6b\xc1\x44\x02\x37\x30\x53\x80\x43\x98\x6b\x52\xf6\x8a\x36\xa0\xed\x30\x72\x34\x4a\x73\x93\x52\x56\x06\x23\x3e\x1b\xb0\x8f\xa6\x8e\x0c\x68\x79\x66\x00\x11\xa4\x1b\x91\xaf\x73\x2e\x49\x21\xff\xad\xa2\xb4\x85\x4d\x7c\xb5\xc3\xa8\x16\xd6\xf3\x8f\xb6\x97\xd5\x5f\x1d\xd8\x76\x79\xc1\x97\xa7\x5c\xbd\x03\xb7\x12\x07\x23\x3a\xa7\x7a\xef\x0c\x2b\x4f\xda\xfe\xca\x2b\xe7\x31\x5d\x00\x1e\xa6\x92\xc5\x09\xca\xa6\x57\xda\x10\x09\x79\x22\x60\x4e\x87\x31\xfa\x05\x4c\x8a\x76\xbd\x1a\x76\xb2\xea\x00\xe5\xc9\xa7\xc0\x16\x50\x5c\x1e\x41\x31\x45\xaf\x6a\x2f\x16\x93\x8f\xb6\xce\x93\xab\x0a\x4c\x59\x43\x3c\xef\xf8\x85\x5c\x16\x44\x21\xf2\x55\x11\x5b\xea\xb5\xef\x32\x19\x97\x93\x1f\x50\x75\x32\x56\xbd\xec\xb8\xf7\xa2\xdb\x1d\x97\xf8\xee\x52\x35\x63\x77\xe5\xdb\xd4\xc5\x29\x66\xb1\xcd\xc7\xb5\x4a\x86\x16\xb6\x60\x76\xc6\xe8\x96\x65\x2a\xd8\xac\x52\x0f\x01\xdf\xb4\x69\xa0\xfa\xe1\x22\x73\x0a\xa3\x56\x59\x20\xbc\x82\x0b\x2d\xb9\xa7\x4c\xd1\x44\x6f\x0e\x3b\x06\x89\xc6\x10\x19\x67\xd1\x1d\x21\xb2\xbd\x0e\x40\x90\x4a\x49\xd9\x64\x68\x29\xe9\x52\x4b\xdb\x5d\x0c\xc5\x3d\xf5\xd9\x34\x65\x7e\xfc\xd1\x35\xd4\x6c\x54\x37\xdb\x1a\xc0\xdd\x5c\x52\x2b\x68\x1c\x8c\xbb\xc9\x58\x54\x3e\x97\x0b\x3b\xa4\xb1\x21\x05\x35\x15\xc5\x61\xa2\xeb\xd8\xdd\x41\xa6\x5b\x06\xbf\xc8\xaf\x10\x69\x13\x55\x4d\xfa\x19\x44\xea\xab\x9a\x4c\x5c\x59\x9b\x81\xdb\x63\x99\x88\x66\xeb\x99\x65\x38\x03\xa5\x64\x5e\xec\xba\xb3\xe9\x08\x38\x49\x46\x38\x7a\xcc\xb4\xb0\xcc\x16\xc1\x85\xab\x07\xa1\xe5\x4a\x28\x78\x67\x36\x97\x1e\x68\x04\xd2\x8d\xef\x2d\x34\xf0\x47\x76\xd8\x79\xe7\x86\x6a\x16\x57\xce\xe0\x5d\x99\xd1\x9b\xdc\x86\x98\xcc\x13\xbe\x98\xd5\xdc\x67\xe5\x04\xc6\x6d\x22\x75\xea\xf2\x27\x77\x7a\x95\x95\x98\xde\xda\x97\xd9\x52\x36\xd4\x0e\xc0\xb8\xd6\xe0\x92\x9f\x12\x3e\x02\x93\xaa\x35\x3f\xb8\x0c\x1f\x2f\xd5\xa3\x7c\x9e\xd7\xcd\x3b\x2a\x9f\x48\x2a\xe7\x89\x56\x66\xea\x7b\x30\x39\x27\xfb\x5d\x37\x83\x90\xb0\xda\x3a\xd8\x3e\x5a\xbb\xf2\xf3\x7d\xc0\x3e\x5f\x39\x49\xc0\xbc\x6b\xf8\x57\xc9\xca\x66\x52\x0d\xcf\x8c\x93\x5a\xf1\x01\x53\x78\xe2\x16\xd7\x0a\x97\xfc\x99\x11\x21\xa7\x74\x5e\x28\x84\xb9\x75\x78\xb8\xdd\xd1\xf6\xff\x4c\x30\x74\x65\x9b\x07\x98\xba\xd5\xe7\xf3\x53\x83\xce\xa2\x77\xa7\x9c\xe3\x28\xb7\xc9\x46\x09\x96\x92\x8e\x17\x1e\xa8\x4a\x16\xe7\x0b\xa9\x6b\x45\x23\x86\x57\xf9\xae\x8a\xcd\x19\xea\xec\x06\x55\x60\xfb\x8c\xca\x87\xe2\xe1\xa7\xb1\x0f\xba\xa7\x6f\xb3\x65\xe8\x1d\x27\x27\x58\xaa\xd7\x82\x07\x1b\xf8\x84\xcd\x50\x00\xda\xe2\x35\xed\x79\x27\x55\xa4\x61\x2e\x6d\xa4\x1c\x2d\x2c\x93\xa3\x2d\xcd\xac\x0e\x97\x21\xad\xf8\xf0\x45\xaa\x90\xc3\x0a\x3b\x4f\xeb\x8c\xce\x24\xae\xcf\x65\x86\xd2\x02\x60\x16\xf9\xc7\x27\x48\x6e\x05\xca\xd6\x66\x53\x5e\x92\x84\xec\x24\xd8\x7c\x83\x1d\x5a\x8e\xe4\xf0\xf6\x66\xe3\xbe\xcc\xcb\x52\xac\xb6\xab\x6c\x10\x03\x5f\x83\x91\x54\x3d\xf4\x2f\x66\xa0\x36\x0c\xbe\x6a\x15\xc1\x26\x0a\x54\x5e\x3d\xda\x43\xda\xe5\x5e\x68\x89\x19\xbe\xdd\xef\xf9\x1c\x0b\x9b\x3a\x9f\x71\x26\x27\x1e\xe2\x3e\x7f\xe5\x50\xf5\xa5\x71\x7d\x22\x6d\xc2\x6a\x56\x9e\xbe\x8d\x78\xef\xf2\x0d\xd5\x6e\x5f\x58\xc7\xb5\xe2\x68\x42\x00\x89\x87\xb2\x98\x3e\xd1\x38\xc5\xc9\x51\xed\x89\x9d\x25\xda\xec\x88\xfa\xd5\x1c\xa6\x95\xa5\x27\x8f\x07\x25\x4a\xba\xfb\x68\x09\xf3\xd3\x2e\xce\x01\x2e\xc1\x61\x1c\x4b\xa3\x30\xbc\x79\x89\x6d\x6b\x68\x0c\x3b\x32\x0b\x10\x11\x44\xc9\xc2\x25\x9b\x8f\x7d\xf7\xd2\xa4\xa1\x71\x6c\xbf\xc8\xe0\x20\x0a\x30\x6c\xb8\x80\x66\x69\xd6\xe8\xf5\xb9\x6e\xf9\x68\xbd\x75\xb9\x73\xfd\x33\x56\x1e\x55\x7e\xba\x82\x30\x7c\x08\xe7\xb4\xbd\x3c\xec\x00\x68\x0f\x50\xf8\xa9\x3b\x86\x87\x79\xff\x1e\x80\x70\xbc\x24\x12\xec\x4e\x44\x3e\xa2\x6d\x72\x10\x92\xf2\xd2\x52\xbc\x94\xbc\x7c\xea\xb0\xbd\x72\xa4\xac\xc3\x5d\xa2\xc3\x38\xc9\x77\xd6\xfd\xb8\xbf\x0b\x7e\xf5\x7e\xd9\xc9\xfe\x00\x98\x5b\x0c\xf9\xf8\xa9\x2d\xf7\x03\x87\xd7\x8b\xe1\x5c\xf2\x79\xad\x88\x8e\xb5\xc3\x6b\x15\x17\xbb\x44\xce\x7d\x2c\xaf\x4d\xbe\x6c\xbd\xb8\xfb\xdc\x6a\xeb\x8e\x65\x17\x3a\xda\x9e\xbd\x87\x76\x37\x7a\x1f\x84\x20\xf5\x76\xb7\x68\x05\xa4\x93\x5b\xb2\x5d\x1e\xb2\xaa\x1a\x8d\xdb\xc3\x47\xb8\xdc\xd2\xe1\x5c\x90\x31\xfd\xba\x91\x2a\x70\x0b\x9f\x5a\xf5\x5a\x93\xb9\x54\xf5\x11\xdc\x82\x50\x25\xd2\x0b\xa4\xb5\x94\xb6\x95\xe1\x06\x2c\xcf\xc8\xb5\xe9\xb8\x5a\x18\xe6\xa2\xf0\xd3\xa6\xd0\xa7\xbb\xaf\x50\x69\xd6\x75\xaa\xd4\x5c\x9e\x7f\xf8\x30\xa1\x6a\x9a\x8e\xce\x22\x3e\x33\xf9\x1f\x5c\x4c\xcc\x1f\x1f\xa8\x94\x29\x91\x1f\xfe\xfc\xa7\x3f\xe5\x4b\x3c\xc2\xd1\xe3\xc4\xc0\x39\x2d\xfb\x3b\x8b\x4b\x4e\xb0\xdc\x2e\xa2\xcc\xa5\x4e\xee\x39\x85\xde\xeb\xc6\x25\x2d\xeb\x6f\xa4\xc2\xb3\xb9\x1f\x82\x6c\x6a\x3c\x4a\x85\xf3\xca\x32\x90\x0f\xab\xa7\x89\xa6\x78\x3e\x27\xac\xde\xec\x62\x12\x9c\xb7\x60\x3d\x2e\x45\xda\x8e\x90\x7c\x9d\x27\x98\x15\x61\x3f\xa0\x4c\x9a\x20\x11\x61\xca\x42\x52\xe4\xb5\xe9\x61\x37\x1a\xe8\x29\xc3\xff\xd7\x4b\x81\x85\x39\x52\x99\xd7\x3f\x74\xc3\xb1\xb5\x88\x5d\x85\x5a\xec\x91\xae\x5c\xff\x39\xa7\x1d\x71\x54\x6b\x4a\x8e\xbd\xb7\xb5\xde\xb6\xd9\x41\x91\xe0\x6c\x48\xbe\x6a\x26\x27\x37\x05\x8a\x7b\x90\x44\xa2\xce\x97\x7b\x24\x17\x4c\xe1\xaf\xe7\xe8\x33\x65\x20\xc0\xfe\xc4\x53\x21\xd1\x25\x5e\x9c\xf2\xf1\xe9\x8c\x33\x35\x45\x9f\xe1\x7f\xed\x4f\xcf\x84\x3c\xa2\x5f\x09\x16\x96\x3f\xd8\xfa\x91\xae\x84\x1d\x6c\x21\x91\x32\x89\xc8\x93\x3e\xa1\x7f\xfa\x5f\x68\x66\x5a\x3e\x47\x3f\x7c\xf8\xd3\xff\x42\x7f\x80\xff\xfe\x3f\xe8\x0f\x35\x96\x86\xf5\xa0\xe6\xa0\xcc\xf8\x5d\x6d\x18\x01\x50\x4a\x2e\x93\x7c\x55\xb3\x17\x82\xe7\x2b\x55\xd9\xf2\x23\x8d\x1e\xf9\x78\x3c\xd4\x1b\xc3\x24\x90\x0e\xf1\x56\x66\x07\x1f\x35\x98\xda\x42\xf1\xa6\xec\x64\x5e\xf0\xc9\x76\x6a\x90\x46\x1c\xbb\x96\x69\x6e\x9e\x80\xe0\xb5\x42\xe9\x71\x2a\xe1\x2b\x12\x6b\xae\xba\xce\xe9\x70\xd6\x45\x07\x3a\xe0\x2c\x48\x3e\x32\x8f\x13\x88\x0b\x01\xa7\x7e\xf4\xb4\x09\x30\xb3\x84\xac\x3c\x0e\x4b\x61\xdd\x6f\x26\x56\x17\xa6\xf6\x5a\x71\xba\x72\xa9\xf3\xd5\x21\xba\xf7\x5c\x6c\xa5\x6f\x3d\x92\xda\x14\x9a\x15\xc5\xcd\x5c\xc1\x6d\xec\x1b\x35\x14\x47\x92\x8b\x0c\xbd\xdb\xd8\x45\x6c\x09\xd4\xd5\x56\x54\x2a\x4c\x50\x63\xbb\x43\xaf\xa7\x7e\x99\x7d\xb2\x6a\x98\x10\xe1\xe8\xde\xce\x8b\x3b\xc2\x68\xb5\x88\xa4\x59\x62\xc5\x88\x2b\x40\x36\x57\x2d\xe8\x7d\x86\xab\x02\x8d\x43\xb8\x2d\xe4\x0d\x31\x27\xd9\x5a\xe0\x8a\xea\xf5\x4c\x45\x44\x2e\xf8\x76\xe1\xd6\x09\x65\x4b\x79\x1a\xb5\xc1\x6d\xf5\x32\xf9\x95\xad\x10\xe7\x70\xa8\x79\x9c\x2b\x0b\xc6\x2d\x61\x6b\xaf\x78\x00\xb8\xc5\xd9\x00\x90\xe2\x2e\x30\x56\x97\x2a\x82\x6c\xc1\xb5\x8d\xe1\x3a\x67\x78\xae\xa0\x4c\xa9\x8e\x8c\xc0\x9a\x17\x36\xc4\x4c\x42\x38\xd9\xd6\xe3\xf0\x6a\x23\xe5\x31\x6a\x85\x2a\xc5\x30\x12\xc8\xb7\xdc\x10\x23\xd7\x94\x29\x3b\x41\x02\x43\x30\xb0\x9a\xea\xf6\x24\x11\xa7\x63\x1c\x51\x36\x39\xf1\xe0\x51\x01\xaa\xc4\xbf\x0e\xaa\x36\x69\x1f\xcb\xc7\xdd\x06\xb8\x6e\x5d\x6d\x96\xc6\x79\xc5\x43\x0b\x68\x64\x1c\x2b\x74\x09\x1b\x52\x61\xf9\x58\x87\xe8\xb5\x04\x27\xd8\x30\xba\x8c\x14\x0e\x84\xb0\x69\x7c\x0e\xfa\x80\xf8\xfa\x14\x54\x2a\x71\xf5\xcf\x2d\xb8\xa8\xcb\x34\xc5\x19\xfa\x4f\x19\x55\xb7\x61\xfc\x72\xca\x85\x1a\x6e\x88\x47\x5c\x76\xa9\x30\x72\x9a\x00\x90\x10\x7f\x22\xe2\x89\x92\xe7\x22\xac\xef\x3a\x7b\xd1\x18\xcd\xbc\x78\x4a\xc0\x7d\x9d\xcd\x39\xa4\x6e\x8d\xd1\x0c\xb3\x85\x61\x94\x9a\xb9\x60\xf9\x28\xb3\xaa\xcb\x48\xce\x70\x92\x9c\x20\x41\x52\x69\xaa\x91\x4b\x92\x8c\x4f\x5d\x01\x98\x18\x25\x7c\x42\x23\x9c\xa0\x51\xc2\xa3\x47\x69\x32\x2b\xd9\xc4\x30\xa9\xb9\xe0\x11\x91\xd2\x93\xac\x72\x14\x05\x9b\xdb\x0a\x25\x97\x15\x11\x33\xca\xa8\x54\x34\x72\x22\x53\x0e\x86\x62\x0a\xff\x47\x18\x4c\xc2\x90\x29\x0c\xc3\xd5\x92\x1e\x31\xa0\xb0\x29\xb3\xa5\xc2\xe0\xba\xb6\x58\x8f\x2e\x39\xa1\xee\x00\xed\x00\xba\xd2\xed\x90\xa1\x2a\x1e\xc8\x15\x47\xea\xc2\x7e\x06\xc7\xb8\x69\x0b\xdc\x15\x4f\x54\xb6\x21\xb3\x93\x56\x80\xd3\x82\x5c\x86\x2c\xf5\xa2\x20\xb9\x64\x19\x09\x07\x86\xa4\x07\x43\xae\xc1\xcf\x5b\xb5\xa7\x35\x15\x41\xe4\x81\xea\x74\x65\xaf\x3d\x65\x51\x92\xc6\x59\x59\x55\x2d\x02\x3c\xe9\x4d\xe2\xc8\xa3\x69\xaf\x05\x85\x13\x84\x25\x7a\x26\x49\xa2\xff\xdf\x64\x5e\x9c\x66\xe5\x42\x34\x4b\x36\x25\x5d\xa0\x13\xc7\xa5\xeb\x76\xd4\xc1\xa1\xa2\xde\x62\x35\x35\x58\x13\x33\xae\x4c\x45\x5b\x83\x8a\xea\xec\x5b\x06\x46\x73\x94\xf0\x11\x9c\x74\x00\x4c\x75\xf9\xd5\x5e\x3a\x67\x1a\x45\x84\xc4\x24\x36\xf5\x39\x33\x30\x4f\x7b\x44\xbf\xaf\x86\xef\x2c\x50\xe4\x00\xc0\x52\xcb\x86\xb5\x5a\xc8\xd4\x62\x75\xc3\x33\x74\x5b\x02\x04\xf2\x28\x33\xc6\x65\x78\xb8\x93\xa5\x25\x7c\x1d\x80\xd5\xd2\x24\xf6\xb7\x42\x6b\x02\xac\x16\xfa\xdc\x01\xc0\x6a\x69\x9e\x35\x39\x23\x7c\xb2\xd7\x5c\x77\x3d\xa9\x2b\xde\x3e\x01\xd1\x00\xd3\x99\xbb\xb3\xb0\x05\xdd\x81\x5c\x54\x6d\xc4\xc3\x02\x8f\x2d\xd5\x00\x7d\x5d\xf0\xd8\xd2\x60\x0e\x19\x3c\xb6\x34\xd4\xc3\x05\x8f\xad\x18\x68\x0b\xf0\x58\xe3\xdc\x1f\xea\x4d\xdd\x8e\x29\x40\x42\xd5\x28\x1d\xdf\x03\xc4\x40\xe3\x18\x2f\x4c\xe0\x80\xb9\xc6\xdc\x1d\x6d\xe3\x8b\x60\xb4\x36\xf7\xb6\x2e\x1c\xab\xe4\x84\x58\x77\xef\x65\xde\x37\x03\x3a\xb2\xae\xd9\xfd\xc4\xb7\x76\x83\x1d\x32\xc2\x73\x8b\x65\x50\x57\xe2\xe8\x70\xb2\xb6\x37\xc3\xe5\x05\xec\xcb\x02\xcb\x6f\x85\x5c\xf7\xb9\x54\x2d\x64\xca\x9f\x6d\xc5\x2e\xd8\x86\x66\x53\xd6\x6e\x41\xe8\x74\x68\x95\xb6\x3a\xca\x51\xa6\xc8\xa4\xac\xd3\xe6\x87\x86\x32\xf5\x97\x3f\xaf\xe4\x44\x06\xda\xd3\xa9\x87\x5e\xcd\x8e\xcc\xd9\x61\x9f\x91\x18\x45\x53\xad\x15\x49\xad\xbe\xe8\xe9\x98\x9b\x55\xa2\x19\xa6\x4e\x91\x4a\xa5\x71\x2d\x51\x39\x60\x05\x2c\xdc\x33\xf4\x11\xca\x20\xe3\xd9\x5c\xeb\x5f\xd9\xfc\xa8\xde\x49\x83\xf4\x87\x1f\xfe\x42\xd0\x0f\x68\x46\x30\x2b\xe8\xb0\xa0\x36\xe9\xab\x0f\xb0\x23\xd5\x94\x0c\x58\xe5\x52\xa0\xee\x57\x53\xdb\xcc\xc5\x1b\xf6\xd8\x98\x3b\x9d\x18\xca\x7b\xe2\x68\x8a\x64\x3a\x32\xf5\xa9\x3d\x1b\x86\x13\xa4\xaf\xf8\x04\x1c\xd5\x70\x23\xbb\x41\x37\x9d\xc2\xfd\xc6\x00\x58\x77\x63\xdb\xdb\xb8\x03\xf7\xc8\xa9\x24\x05\x4c\xb1\x0a\xa7\x99\xe1\x7c\xfe\xc1\x97\x06\x6f\xe8\xc4\xf8\x10\xb4\x7e\x86\xad\x65\x5f\xcb\xd2\x10\x4e\x0c\x5e\xb2\x34\xc1\xc2\x1e\xfd\x01\xd3\x8a\x86\x20\x4f\x94\xa7\x32\x59\xa0\x98\x33\x72\x02\x3b\x21\x8d\xa6\xc6\xb1\xaa\x75\x16\x6c\x0b\xa5\x3c\x51\x99\x6a\x85\x16\xda\x72\x75\x59\xa4\xc2\x06\x0b\x6d\x4a\xa1\x1f\xad\x7e\x13\xf8\x4a\x79\xf9\x91\xa8\x9d\x16\xe5\xc3\x15\x97\x78\x7e\x4b\xb8\xe2\xc2\xae\x0a\x70\xc5\x19\x5c\xf1\x32\x5d\x0e\x11\xae\xb8\xb4\xe6\xed\xe0\x8a\xab\x96\x7c\x03\xb8\xe2\x42\x33\x6f\x06\xae\xb8\x44\xd1\x37\x03\x57\x5c\x9a\x57\x80\x2b\x7e\x7b\x70\xc5\x5b\x02\xf2\x56\xf3\x62\x83\xeb\xa5\x28\x5b\xac\xbd\xc9\xde\x4b\xd4\xbb\xd1\x1b\x2c\x7a\x2c\x06\xb5\x65\xd7\xd5\xf6\x20\xc0\xd5\x4c\x68\x3d\x10\xe0\x4a\x55\xbd\x9e\xd5\x6d\x0b\x2c\x06\x8a\xc1\x0b\x83\x00\x17\x26\x10\xe2\x2b\xd7\x8f\xaf\xac\xdc\x7c\xb6\x6f\x3d\x3c\x17\x74\x59\xbe\x90\x5b\xc2\x00\x17\xd6\xa7\x55\x24\x26\x88\xee\x3b\xd8\x89\xfb\x95\xe6\xfb\x85\x43\xbe\x52\x96\xf7\xa9\x28\x2d\x20\xb9\x96\xf0\x1c\x4a\xa1\x51\xc2\x7d\xff\x7f\xd8\xb9\x1b\x44\x06\x97\xc8\x9b\xf9\x55\xcc\x5e\x6c\xb1\x55\x5b\xef\x50\xa7\x95\xee\x26\x51\xd8\x25\x6f\xae\xe9\x62\x76\x83\xb8\x9f\x93\xa8\xc6\xc6\x4c\x67\x74\x57\xcd\xae\xba\xc8\x32\x0c\x36\x50\xc8\x97\xf2\x52\xf5\xf5\x64\x86\x63\x64\xfc\x52\x3a\x30\xa0\xa4\x98\x2f\x27\x54\x2a\x51\x1b\xdb\xb4\x34\xc2\x6d\x5c\xa5\xf3\xb4\x75\x40\x8c\x47\xd5\xc9\x66\x9f\xcd\xc8\x8c\x8b\x55\x81\x55\x95\x5f\xda\x12\x4b\x9b\x7c\x4a\xe6\x53\x32\xd3\x92\xcc\x70\xdd\x46\xda\xae\x77\x96\xb4\x6c\x73\xd7\x4c\xa0\x63\x61\x13\x78\x8e\x50\xfd\x6e\x6c\x90\x50\x5b\x2f\xf7\xb6\xcb\x6c\xb1\x5a\xd7\x74\x08\x39\x10\xef\x66\x83\x9b\x7d\xa9\xe0\xee\x86\xfd\x5d\x19\xd3\x91\x85\xd4\xac\x8e\xda\x68\x88\xd7\x68\xc2\x3b\xcb\xbf\xb2\x05\xc8\xd7\x70\xe5\x17\xbd\xf3\x9a\x13\xfa\xd5\xa7\xd7\x0f\xf0\xa8\x41\xeb\x5d\x26\x0f\x44\xe6\x48\x22\x4e\x7d\xcd\xa0\x30\x98\x65\x7a\x15\x76\x89\xd3\x28\xb7\xd8\x24\xa9\xa8\x8d\x32\x6d\x63\xd0\x8e\x54\x8a\x13\xd0\x24\xfc\xaa\xa9\xe5\x45\x1d\x2d\x2a\xd2\x1e\xdb\x79\x4c\x28\x53\xff\xf1\xd7\xb5\x56\x53\xab\x56\x96\x6e\x50\xe9\x0d\x47\x11\x91\xc6\xc6\x6e\xa3\x90\xf1\x88\x3f\x41\x91\xb7\x6d\x56\x55\x1f\x65\x3d\x6f\xcd\xe0\x33\x08\xec\x38\xdf\xea\x46\x5c\x98\x0a\x9e\x4e\xa6\xce\x86\xa4\xcf\x8c\x9e\x5a\xd5\x5a\xfe\xb2\x64\x23\x5f\x7b\x2d\x7f\x4c\x69\xb2\x99\x85\xee\xbe\x50\xfe\xee\x53\xaf\x8f\xe4\x34\x3b\xad\x23\x68\xb6\x72\x61\x97\x07\xdd\xbe\x4f\xfb\x6d\xe6\xaf\x81\x6e\x4e\x1c\xec\xeb\x98\x27\x09\x78\x1a\x24\x99\x3d\x11\x51\xdd\x3d\x4c\xb8\x4f\xd7\x43\x6c\xcc\x06\x00\x5f\xe7\x89\x11\xad\xe4\xaf\x5b\x23\x1a\x4a\xe4\x46\x5f\x0e\x5a\x30\xa1\x6a\x9c\x11\x56\x65\x63\xfb\xb2\x5c\x79\xe8\xc8\x02\x06\x5d\xf4\xd8\xce\x82\x06\x1d\x49\x5e\x38\x70\x70\xc5\x3c\x0e\x35\x78\xb0\xc4\xec\xb2\x58\xbe\xfc\x9a\x71\x81\x43\x46\xf1\xe9\x68\x12\x0f\x58\xa7\x90\x4f\xe1\x2a\xb4\x8f\x16\x79\x40\xb6\xd1\x21\x7c\x66\x06\xf5\x5d\xac\x61\x05\xdc\x68\xfa\x2f\xd0\x74\x0c\x68\xb2\x09\x29\x74\x61\x83\x10\x4d\x4e\xe2\x53\x1c\x2d\xa2\x84\x46\x9e\xce\x3c\x11\x78\x3e\xad\xe2\x78\x6e\xe5\x03\xea\xd0\x6b\xa1\x0e\xd5\x15\x42\x5b\x27\x6e\xdb\xed\x2b\x86\x67\x24\xa0\x21\x1d\x22\x1a\xd2\x49\x86\xb7\xc1\xf2\x92\x72\xaf\x08\xe3\xb0\x7c\xee\x03\x24\xd2\x2b\x40\x22\x6d\x72\xf8\x73\xbc\xa3\xc2\xb1\x0f\x30\x4d\x6d\x88\xf7\xfa\x30\x4d\x99\x10\x70\x50\xc8\x3b\xf5\xfc\xe0\x95\x11\x5d\x96\x07\xf6\x9a\xb0\x4c\x15\xe2\xd2\x3a\x72\x63\x13\x2e\x53\xd3\xbe\x68\x45\x97\xd7\x45\x49\x5a\x8f\x32\x6b\x01\x20\x55\xde\x9d\x07\x02\x87\x54\xbf\x0c\x07\x72\x6e\x76\x99\xd5\xb3\x5e\xcd\x5e\x3f\xb3\x67\x1d\x05\x73\xbd\x24\x9f\x6c\x3f\x1c\x57\xa2\x4f\x5e\xdc\x70\xb3\x64\x9f\x8e\xf3\xc1\x13\x81\xa6\x3c\x89\x1d\x08\x47\x46\xad\xac\x83\x2c\x13\x22\x23\x90\x5b\x8c\xfb\x39\x89\x8c\xb6\x99\x17\xe2\x6b\x4a\xe9\xc9\x16\x11\x86\xbb\x03\x46\xb3\x0b\x2b\x4a\xc6\x49\x36\xb1\x9f\xac\x94\x2e\x64\xd1\xfc\xdf\x30\xc6\x02\x85\xc0\x6b\x50\x3d\xcc\x95\x76\xef\x15\x83\x6b\x12\x3d\x3c\xe3\xa8\xa8\x2a\xb1\x6b\xf6\x19\x3c\x7d\xa2\xce\x10\x83\xfd\x1e\x1b\xbd\x94\x6e\x76\xad\x3c\x95\xe5\xcd\xb2\x41\x30\xdc\x52\xc5\xc4\xed\xc1\x91\x66\xf8\xeb\x70\x8e\x05\x4e\x12\x92\x50\x39\xdb\x5b\x30\xf4\x45\xd1\x5d\xad\xcf\xaa\xe0\xc6\x44\xc6\xd2\xd9\xc8\x6c\x45\x37\x10\x5b\x64\x53\x71\x24\x52\xe6\x43\xbb\x65\x0b\x93\x15\xf1\x4c\xe1\x5e\x00\xab\x5a\x34\x85\x6a\xc9\x63\x4c\x05\x23\xb2\xb6\x36\x2d\x89\x52\x41\xd5\x62\x68\x4b\xfd\xb6\x3f\x70\xf7\xf6\xcb\x0b\xfb\x61\xb3\x87\xdf\xa1\x1a\xb8\xfe\xb2\xd2\xc2\x73\x22\xa0\x3c\x97\x2b\x34\xe5\x95\x33\xb6\xa8\x15\x24\xab\xf1\x05\xe1\xdf\x4b\xd7\x76\x5d\xe0\x34\x7e\x1e\x7a\x19\x65\xc3\xa8\xbc\x39\x56\x1d\xd6\x2a\xdc\xad\xa6\x49\xee\x19\x79\xaa\xc6\x8b\xbe\x87\xea\x3e\x36\x6d\xc4\x34\xad\x07\xec\xb9\xc2\xc1\x5e\x9b\x2f\x8c\x97\xf2\x5f\x51\xec\xc6\x1b\xa7\xc5\x3a\xaa\x0a\xbe\x6a\x18\x6c\xc7\xfb\xaa\xc5\x88\xbd\x4e\x76\x34\x6c\x7d\xd0\x85\x48\xe7\x8a\x8e\x96\xa1\x7d\x1c\x37\xd8\x41\xe9\xde\x4e\x02\x69\xe6\xce\xcd\x52\xe8\xd6\xd4\xf3\x2d\x70\x62\x3b\x3b\x2d\xff\x5b\x1c\x35\x87\x90\x64\x10\xa6\xfc\x3c\xc6\x9b\x19\x55\xca\x25\x4a\x18\x03\xbc\xde\x9d\x45\xdb\xf4\x7b\x17\xee\x82\xa1\xc2\xb2\x31\x51\x9d\x0d\x58\x47\xa2\x67\x82\x18\xb1\x10\x1a\x15\xb5\x93\x33\xab\x3e\xd4\x5c\x1b\x11\xdd\x53\x16\x9b\xa3\x85\x07\xaa\x64\x56\xf6\xcf\xf4\x31\xc6\x89\x24\x27\xba\x61\xa8\x16\xac\x38\x04\xbf\x62\xf4\x2c\xf0\x7c\x4e\xc4\x80\xd9\x2c\x16\x70\x38\x71\x9e\x98\xf6\xeb\x42\x7c\x2d\x0d\xc8\x30\xc2\xd1\xf4\x85\xd6\x08\x43\x32\x52\x34\x25\xb1\xcb\x97\x2e\x2e\x8f\x9b\xb7\x31\xd8\xaf\xb1\x58\xbd\xb1\x2b\x5b\x77\x62\x3b\x49\x22\xcd\x51\xb2\xf2\xee\x73\x22\xf4\xa8\xf5\x1e\x7e\x22\x0c\xd1\xb1\x1b\x87\x8d\x5d\x42\xcf\xe0\x99\xd3\x5b\xff\x09\xd3\xc4\x00\x10\xb8\xae\x9d\x10\x68\xdc\x0f\x03\x66\xdc\xfd\x2c\x2a\x64\xe8\x52\x46\xe5\x54\x73\xea\x14\x7c\xb2\xa0\x66\xd4\x25\x0e\xb1\xa7\x75\x4e\x73\x57\xbf\xde\xcc\x41\x9f\xa8\xe0\x6c\x06\x49\x42\x16\x97\xca\x91\x4f\x12\x95\x1d\x8f\xca\x14\xcf\x95\x12\x71\x1c\xcb\xa2\xf1\xd5\xa8\x95\xf4\x9f\x05\xb3\xcb\x69\x21\x2b\x32\xf2\x60\x95\x20\x88\xd5\x55\xf4\x6b\x92\x7f\x43\x6a\xc7\x72\x6a\x47\x35\x6d\x0e\x31\xbd\x23\x3b\xc4\xeb\xa6\x78\xd4\x2d\xff\x2e\x24\xdb\x1d\xa6\x7a\xbc\x72\x4e\xc4\x7e\xd2\x21\x5e\x37\x7f\x65\x1f\xa9\x2b\x21\xc1\xe3\x15\x13\x3c\x5a\x5b\x6a\x8b\xb1\xe9\xf5\xc7\x76\xad\xe4\x88\x15\x60\x56\x55\xbd\x7c\x26\x4a\xd0\x48\xee\x82\x3f\xc8\x39\x6e\x19\xd5\x07\x5a\xe0\x7c\x85\xd4\xa4\x5f\xc8\x9c\xa0\x10\x27\x97\x55\xb8\x1c\x09\x82\x1f\x63\xfe\xbc\x64\xab\x93\x3e\x9a\xc8\x67\xae\xc5\x1e\x41\x22\x2a\x49\x21\x92\x87\x4a\xc4\x88\xb4\xc6\x4e\x3c\x60\x53\x4a\x04\x16\xd1\x14\xb2\x3b\xf3\x85\x31\x59\xc2\x06\xd0\xc9\xc4\x72\xf8\xde\xae\x35\x16\xbd\x05\xdd\xcb\x16\xa6\x0c\x9f\xcf\xae\xb9\x1e\xc9\xcc\x7c\x92\x09\x33\x56\xca\xf0\x4d\x72\xad\x96\x7f\xdb\x44\x84\x8c\xd8\x7b\x4d\x46\xc8\x82\xa9\xbc\x2f\x5a\x26\x24\xe4\xbb\x21\x24\x25\xec\x29\x29\xa1\x82\xc4\xeb\x25\x26\x6c\x64\xf2\x7b\xf9\x98\x69\xd7\xf3\x4b\xc4\x4d\xaf\x0a\x5a\x4b\x47\xc3\xbd\x1f\xbd\xca\x39\xb7\x3d\x81\x5f\xb2\x4d\x61\x24\x62\xa1\xf7\xd9\x88\xc4\x31\x70\x5a\xc5\x6d\x85\xf6\x7c\xef\x38\xf3\x80\xbe\x7b\xb1\xd4\x9b\x1d\x27\x9c\x4d\x24\x8d\x0d\xd8\xcc\x1c\x43\xad\x62\xdf\x78\x01\xe0\x0a\xb0\xbe\x49\x42\x84\xf3\x4a\x08\xf4\x9d\xa4\xcc\xa2\x49\x66\xbf\xc5\x9c\x48\xf6\x5e\x19\x63\x01\x66\x0b\xf4\xc8\xf8\x73\x42\xe2\x09\xac\x50\x79\x30\xa7\x88\x92\x13\x44\x55\xf6\x99\x00\x34\x06\x9e\xaa\x81\x1e\x3b\xc4\xda\x19\x0d\x80\xd8\x6f\x85\xad\x5e\xe1\x71\x60\xf9\xfd\x19\x42\x3d\x86\xc6\x38\x52\x27\x48\xa6\xa3\xbc\xfd\x98\x9b\xe2\xf2\x5a\xfb\xf6\x26\x9e\x37\x12\x62\xe6\x2b\x3a\xaf\x3e\x1b\x8e\x3b\xe8\xed\xda\x49\x28\xde\x2a\xb6\xf0\x09\x6f\x03\xb1\xfa\x39\x95\x36\x08\x03\x71\x96\x1d\x7d\x0b\x2f\x95\x61\x64\x03\xde\xa9\xc1\x9b\x66\x3c\xae\xb5\x75\x96\xa6\xb2\xee\x58\xf2\x40\x50\x2b\x28\x59\x47\x15\xb4\x6b\xc8\xad\xa5\x26\xa9\x04\xc1\x33\xeb\x1c\xd0\x57\x0d\x88\x35\x26\x0c\x54\x8f\x9e\x0a\x23\x61\xae\xb3\xc4\x57\x94\x3d\xea\xd5\xcd\x51\xc1\x39\xe0\x25\xeb\x9e\xab\x16\x6d\xae\x6f\x3c\x72\xc1\x99\x71\x10\x6e\x25\x77\xd2\x09\xc3\xc9\x9a\x36\x8e\x25\xca\x2d\xfb\xf4\x9c\x9c\x65\xc5\x05\x2d\x45\x18\x63\x1f\x32\x3d\xae\x65\x43\x2a\xcd\xd7\x97\xf7\x30\x8a\xc9\x9c\xb0\x98\xb0\x68\x01\x5b\x84\x01\x72\x90\x60\x38\x41\x18\xbe\xc3\xc9\x19\xba\x34\xf9\x45\x99\x84\x67\xaf\x75\xb8\xd0\x67\x98\xd1\xb1\xd6\x13\xc0\x08\x6b\x47\x39\x60\x66\x98\xce\x07\x42\x72\xeb\x6a\x46\xb1\xaa\x95\xd1\x37\xc8\xf5\x96\xa8\xcc\xac\xf8\x3d\x6a\xbe\x70\xa0\xb7\xa6\xd5\xd1\xcd\xb9\x1a\x0c\x32\x1d\x9d\xc2\xbf\x0b\x09\x77\x0e\xa8\x28\x47\xd1\x21\x09\x01\x73\xa0\xf5\x78\xc1\xc5\x58\x07\xac\xb7\x0b\xbf\xdd\x8a\x3c\x16\xaf\x8f\x82\x52\x33\xa3\x8c\xce\xd2\x99\xe7\xbc\x33\x15\x1b\x22\x6b\xbf\x34\x99\x28\x73\xad\x07\x44\x0e\xbc\x1d\xe9\xcb\x95\x2d\xd0\x84\x3e\x11\x36\x60\x73\x4e\x99\x3a\x43\xd7\x5c\x11\xaf\x44\x86\x81\xce\xe2\x73\x45\x67\x06\xed\x55\x10\x7d\x0e\x0c\x28\x38\x00\x6d\x4e\xb1\x3a\x41\x71\x0a\x47\x95\x11\xa5\x59\x87\xbe\x71\x15\xac\x0c\xc4\x87\x8b\x01\x33\x37\xdd\x18\xd3\x24\x15\xc4\xca\xac\xd8\xe4\x05\xe5\x43\xce\x47\x66\x91\xe0\xbc\x49\xcc\xe8\x64\xaa\xf4\x12\x69\x19\xcf\xfa\x1b\xa7\x9a\x1b\xf1\x01\x1b\x11\x84\xd1\x9c\x4b\xaa\xe8\x53\xe6\xbf\xa4\x63\x84\xa5\x04\x0b\xca\x19\xba\x2c\xd8\xff\xa9\x04\xd5\xbb\x2e\xae\x98\xb2\xa1\xb5\x3d\xd7\xe7\x23\x6d\xbd\x90\x85\x5e\x2c\x95\xf1\x48\xf2\x24\x55\xbe\x0b\xb6\x7a\x6d\x73\xd3\xb8\x2b\x5c\x00\x06\x62\x3e\x1e\x30\xb7\xaf\xe5\x19\xea\x48\x24\xb9\x5e\x25\x69\x96\x32\x12\x54\x11\x41\x0d\x8a\x15\x51\x66\x11\xb2\x73\x9a\x9d\x81\x19\x16\x8f\x5a\x84\xf2\x2d\xf0\x06\x53\xb5\x60\xed\x18\x19\x09\x09\x60\xbd\xfc\xe5\x00\xd3\x3f\x62\x9c\x9d\x32\x32\xc1\xab\x56\x64\xc0\x0a\x4b\x82\xbe\xa3\xe3\x5c\x21\xad\xf3\x39\x7a\xb4\x1b\x42\xe4\x53\xdd\x2a\x99\x8e\xeb\x16\x69\x9c\x70\xbc\xc2\x6d\x3c\xce\x0f\x3d\xfa\x07\x1f\x99\x31\x6a\xbd\x9f\x2b\x90\x02\xb5\x7a\x35\xe6\x82\x4c\x31\x8b\x4f\xdc\x62\x15\xc7\x06\x37\xa3\x35\xb5\x39\x65\x0c\x24\x41\x07\xa2\x4c\x0c\x16\x15\x66\xde\x5a\x58\xc5\xcd\x2e\x45\xbe\x0e\x6b\xdd\x15\x59\x6b\x50\xfb\xc5\x18\x20\x0c\xcb\x5b\xcc\xed\x11\x97\x74\x36\x4f\xf2\x9c\x2e\xcf\x36\x3a\xd6\x22\x96\xe3\x91\xfc\x09\x4c\x57\x4e\x6b\x83\x5b\xdd\xae\x9c\xde\x67\x15\x23\xcf\x18\x29\xdc\x1a\xce\xe6\x65\xca\x80\x7a\x2c\xec\x3b\x49\xf4\x3f\x15\xc9\xd5\x3e\x23\xac\x0f\x98\x13\x41\xbe\x07\x2e\x63\x9b\xf5\x8c\x67\x5a\x84\x36\x30\xb7\x96\x7e\x28\x32\x4e\xee\xc2\x39\xb1\x87\xc1\xbd\x5a\x79\x51\x29\xaa\xc5\xec\x1f\x29\x20\x74\x5d\x6e\x09\xbb\x4f\x59\x4c\x6a\x8b\x59\xb5\xe2\x1a\x75\x77\x8b\x61\xa8\xc3\x4d\xeb\x4f\xf4\xa7\x44\x12\xa4\x9e\x33\xa0\x38\xad\x57\x81\xc9\x52\x90\x84\x3c\xe1\xfc\x8e\xcb\xfa\xb2\xec\x32\xc2\xb2\xa6\x3c\x0c\xa0\xad\xe9\xf1\x6f\x9e\x38\x9d\x8d\xef\x46\x0f\xe5\x09\x27\x36\x71\xc5\xfa\xca\x65\xfd\x82\xf5\x2e\xb7\x8a\x21\xb5\xad\x54\xd1\xb3\x5e\xc4\x70\x7d\xff\x4c\x16\xd5\x14\x59\x01\x62\xd8\x94\x8d\x9e\x91\x7d\x0d\x5b\xf5\x6d\xfe\xcd\x32\x8d\x6b\x29\xf7\x73\x61\xca\xaf\x90\x44\x75\xbb\x54\x81\x1b\xfe\x94\xe9\x78\x4c\xbf\x82\x56\xeb\x6e\x12\xa7\x79\x44\x82\x4b\xcd\xc5\x40\x56\x41\x6e\xf1\x8c\x23\x79\x9b\x84\xaa\xca\x2f\xb5\x96\xb5\xf6\x8e\xae\xa5\xf6\xdf\x53\x22\xb6\xa2\x77\xb6\x55\xd7\x09\x47\xf4\x4e\x49\xb5\x8e\xe8\x1a\x55\xb8\x65\x4c\x92\xdf\x6a\x1f\xd7\x90\x6e\x35\xfc\x79\xe5\x67\x23\xc3\x7c\xd7\x1f\x88\xcf\xb5\x1b\x6d\x6a\x79\x7c\x5a\x16\x9b\xec\x8a\x12\x69\xfe\x76\x62\x01\xd6\xb1\x0d\x9c\xca\x52\x9d\xb1\x8b\x19\x31\x8e\x11\x53\xb3\x4a\xd9\x4a\x0b\x9e\xa6\x6e\x1b\xa3\x6c\x32\x60\x8e\xb6\xf2\x04\x99\x30\xf1\x12\x43\x2d\x60\xdb\x63\xef\xd3\x6c\x63\xb7\x33\xa9\x1a\xbf\x3a\x23\x52\xea\x8b\x51\x2a\x81\x29\xb3\x3e\x1c\x47\x1f\x39\x60\xe8\xb4\x1c\xa7\x7e\x02\x76\x84\x13\x97\xed\x7a\x92\x0f\x50\x0e\x98\xc9\x38\x41\x7f\x46\xdf\x29\x3c\x31\xb7\x04\xa0\x57\xe2\x04\x70\x2f\x41\x4b\xb0\x5a\xb9\x97\x1c\x90\x9d\x48\x1a\x7f\x7f\xde\xd4\xa7\xb1\x21\x7c\x07\xcd\xc0\x21\xd7\x34\xcc\x09\x44\xc7\xf9\x3f\x48\xfc\x7d\x53\x4b\xf9\x47\x8f\x64\x71\x52\x26\x72\xfd\xbd\xd1\xc7\x5b\x45\x68\xee\xeb\xe2\x80\x41\xb7\x77\x52\xe2\x11\x49\x7e\xc9\x27\x8a\x1a\x59\xd1\x8f\x94\xe1\xed\x78\x50\xe5\xf0\xda\x45\xa0\x8f\x16\x75\x75\xeb\x2a\x58\xcf\xc6\x88\x2b\x1d\x23\xcb\x12\xa4\xbb\xb3\x12\xbb\xab\x6a\x88\x21\xea\x71\x4a\x92\x39\x8a\xe9\x18\x5c\x6f\x0a\xf6\x4b\x06\x1e\x6b\xea\xfd\x68\x85\x66\x96\x32\x03\x04\x6c\xa2\x3e\x9e\xed\x49\xb7\x2c\x23\x6f\xfc\x6c\xc0\x7a\xea\xbd\x44\x52\x09\xce\x26\x5a\x99\x8e\x9f\xa8\xcc\x0b\xd9\xe9\x03\x99\xce\x88\xb0\x5d\x50\x69\xa4\x6e\x5b\x04\x0a\xbb\x8b\x4d\x8f\x4d\x5f\x7d\x20\xf8\xb8\x62\x8b\xfa\x47\xa3\x57\xe8\x51\x4a\x17\x35\x55\x11\xf6\x6e\x17\xb7\xc4\x3b\x5f\xd8\x74\xf9\x8b\x6f\x9d\x44\xb3\xdc\x90\xe9\xf8\xe5\x87\xb2\x19\xd3\x52\xbd\xc1\x84\xb9\xf6\x85\xd0\xf6\x22\x70\x55\x13\x52\x93\xe6\xa4\xfb\x71\x8e\x2d\x33\xb8\xb5\x54\xac\xd2\x04\xed\xa8\x8d\xf6\xe4\x9b\x30\x09\x05\xfb\x87\x54\x58\xd1\xc8\xde\x02\x5c\x58\x2b\xae\xd5\xab\xeb\x97\x76\x5b\x9d\x44\x46\x38\x59\x5e\xe1\x06\x9f\xba\x79\xbf\xd9\xd0\x69\x8f\x9b\x69\xbb\x11\xd8\x25\xe2\x49\xb2\x4e\x99\xba\xd2\xcc\x2f\xf2\xcf\x9b\x47\x94\xf7\xa3\x17\xc0\xad\x05\x9c\x1a\x63\xa0\xc0\x89\x75\x17\x49\x65\x57\xc9\x7f\xc9\x5c\x6a\x0b\xab\x3e\x0e\x18\x1f\x43\x21\xc3\xa4\x2e\x72\x7d\x2e\xf8\x8c\xae\x53\x49\xc3\x04\x73\xdf\x39\xdf\xff\x0a\x4f\x8a\x8b\x10\x00\xf3\x9b\xd9\x5e\xb6\x47\xc0\x64\xc0\xd6\xa4\xd6\x70\x86\x66\x78\xbe\x11\xc1\x57\x45\xbe\x74\xd0\xcc\x84\x1d\x59\xea\x01\xa6\x36\x81\xe4\x54\x20\xf2\x33\x5e\xe4\xf0\x37\x75\x35\x12\xd8\x5a\xdb\xe1\x41\xbf\xde\x63\x63\xbe\xc6\xe1\xcc\xe1\x6a\xec\xe9\xc3\x6e\xcf\x7a\xe7\x2f\x8b\xc4\x30\xab\x6f\x68\xda\xe6\x3c\x5e\x54\x6d\xea\xb5\x4f\xa6\xa3\xe0\x3e\xfd\xb0\x3e\x13\xf1\xbe\xf9\xd7\x3a\x77\x6b\xf1\x68\x79\x2d\x22\x18\x4e\x33\xa9\x3e\x17\xf6\xe1\xce\x69\x54\x6a\x07\x9e\xe5\x09\x63\xb7\xd5\xad\xbe\x00\xcd\xec\x21\x69\x45\xac\x2d\xf1\xb9\xd6\xab\xf5\xe0\x7a\xcc\x2a\x3b\x6c\xad\xc9\xad\x22\x06\x70\x33\x69\xb5\x86\x3c\xfb\xc4\xc2\x00\x8c\x69\x42\xe4\x19\xea\x55\x38\x71\x5d\x12\x7e\x16\x34\x6e\xd2\x01\x9d\xf4\x94\x0a\xea\x15\x7f\x77\x32\x12\xa2\x50\x84\xce\x0f\x64\xf1\x9c\x16\xe0\x3e\x9d\xf2\x67\x93\x81\x27\xa8\xe6\x59\x46\x58\x55\xe0\xd2\xd2\xbc\x80\x5a\x8f\x90\x71\xa8\x65\x1f\x70\x93\x17\xa1\xd5\x9c\xcc\x19\xe6\x5b\x20\xca\x4b\xba\x8b\x32\x9e\xed\x31\x0e\x5c\xaf\x7d\xfd\x45\x1b\xa5\xc0\xbd\xbb\xc5\xe8\x32\x29\x7f\x7d\x7b\xe4\x47\xf8\xd4\x19\x76\x31\x1a\x0b\x02\x5a\xf6\xff\xc7\xde\xbb\x36\x37\x6e\x24\xe9\xc2\xdf\xf7\x57\xd4\x7a\xdf\x88\xee\x3e\x4b\x51\x6e\xfb\xcc\x84\x57\x1b\x8e\x78\x69\xb5\xda\xe6\x58\x2d\x69\x74\xb1\x67\xcf\x70\x82\x5d\x04\x8a\x24\x46\x60\x15\x8c\x02\xa4\xe6\xec\xce\x7f\x3f\x51\x99\x59\x17\xdc\x48\x40\x94\xda\xde\x3d\xf3\x61\xc6\x2d\x02\xa8\x7b\x65\x65\x65\x3e\xf9\xe4\xc6\xf1\xa6\x61\xe2\x04\xa5\xe0\xbc\xbb\x79\xf7\xe3\xf1\xdd\x94\x89\x22\x62\x69\x72\x2f\x66\x32\xd2\x0f\x70\xe9\xfb\xa5\x14\x85\xf9\xb9\xc3\x08\x94\x6c\x84\xd4\x20\x09\x92\xa2\xe7\x7d\xcd\x0e\x8c\xf9\xef\xbb\xea\xf7\x7d\x6e\xe5\x8e\xeb\xd3\xac\x5d\x9b\xd3\x10\x96\x29\xa4\x6d\xc3\xa1\x6d\xb1\x6b\x7e\x87\xfe\xd6\xb3\xb6\x8c\xe7\x4f\x08\x89\x96\x7f\x2d\xe5\x40\xa5\xeb\xd4\x7f\x14\xb4\xa2\x43\xa7\xdb\x64\x1c\xf2\x99\x0c\x8b\xb5\xc6\x6f\x5a\x4b\xdf\x27\x44\x3c\xf5\x8d\xf5\x9f\xfb\xe4\xf0\xac\xc8\x85\x00\x11\xe2\xd6\x13\x9d\xf5\xc4\xb6\xe6\x3a\x16\x7c\x34\x9e\xc9\x0f\x16\x55\xe7\x7f\xd5\xde\xd7\xb0\x59\x04\x69\x5e\xaa\xa5\x40\xb1\x71\xa2\xdd\x0f\x90\xb4\x4f\x97\x69\x81\x59\x8b\x97\x89\xe4\xa9\x6b\x28\x3e\x69\x93\x12\x39\x97\xd1\xfa\x50\x37\x79\xb2\x9c\x8b\x74\x88\x26\x3a\x5d\x9e\xa5\xda\xac\xef\xe8\xbe\x63\x77\x3e\x25\x2f\xb7\xef\x0c\x7a\x9c\x28\xb7\x27\xf3\x6e\x76\x9e\x62\xd6\x60\xc1\x00\x87\x55\x8f\x90\x47\x12\x30\x33\x8b\xa4\xa9\x23\x0c\x0b\x43\x53\x5d\xd8\x19\xd4\xc2\x78\x31\x93\x79\x29\x21\xa1\x98\x43\x65\x72\xe6\x73\xc2\x44\x16\x23\x41\x88\x95\x95\x11\x13\x98\x72\x05\x5f\x36\xf7\x33\x55\x6a\xf0\x47\x6d\x44\x61\x0e\xa8\xd7\x90\xeb\x1f\x61\xd1\x23\x96\xe5\xc9\x06\x5c\xca\xfa\x4d\xcb\xd4\x9d\xf2\x82\xa7\x6a\xf5\xdc\x56\xa5\x27\x86\xd8\xd8\x66\xb0\xe9\x3b\x33\xf8\x2b\x21\x45\x0e\x1d\x05\x5b\x76\xeb\x16\xee\x61\xe5\xee\x90\xdc\xe0\x49\x24\xe7\xaf\x76\x16\x0b\x5e\x16\x6a\x63\xee\xb7\x3c\x4d\xb7\x23\xf4\x3a\x0b\xb6\xe6\x7a\x6d\x27\x1a\x1d\x86\x7d\xce\x26\x1a\xdc\x53\x1e\xad\xc5\x4d\xc1\x8b\xb2\x15\x99\x55\x6b\xe5\x17\x42\x96\x9b\x2f\x4e\xd8\x9f\x7d\x1f\x4f\x27\xa7\x3f\x9c\xcd\xdf\x4d\x6f\x26\xdf\x9d\x9f\xbd\x0b\xfa\x43\x4f\x3e\x4c\x6f\x6e\x9a\xbf\xfe\x30\xbd\x6d\xfe\x78\x75\x79\x75\x77\x3e\xb9\x6d\x2b\xe5\xfc\xf2\xf2\xc7\xbb\xab\xf9\xfb\xc9\xf4\xfc\xee\xfa\xac\xe5\xd3\xbb\xdb\xee\x87\x37\x3f\x4e\xaf\xae\xce\x9c\x95\xfe\x2f\xc1\xee\x02\x0f\xb9\xe9\x68\x47\x37\xea\x1b\xf0\x88\x55\x5f\x3c\x61\x77\xf5\xf4\x56\x14\x6f\x85\x5c\x61\x8f\x5c\x1b\x19\x06\xe1\x7e\x60\x69\xf5\x83\xd2\xf5\x29\x42\x92\xa3\xb5\x60\xa9\x52\xf7\x65\x46\xa2\x0d\x8d\xea\x52\xa1\xe1\x47\xe8\xa0\xb4\x1f\xa6\xb7\x27\xcd\x34\x5b\xae\xb0\x80\x15\xd5\xd9\x90\x1f\x39\x32\x04\x80\x38\x05\x5b\x8a\x4d\xbf\xe4\x3d\xd4\x41\x0d\x6e\x66\x76\xd5\x83\xa5\x71\x59\xd4\xaa\x89\x63\xcf\xa5\x04\x1d\x0b\x0a\xae\xce\xeb\xae\xd1\x74\xc3\x81\xf9\x45\xd9\x42\x44\xbc\x44\xe0\xb6\x39\xa7\xf2\x5c\xe5\x61\x83\xfd\x7a\x78\xbe\x42\x69\x1d\xb5\x16\x58\x9b\x33\xd3\x71\x7d\x9f\x64\x99\x88\xbf\x68\xea\x2f\x3e\x56\x1e\xf5\x5b\xb3\xfb\x4c\x9d\xc1\x9e\x34\xf7\x7a\xb8\xf3\xdb\xe4\x78\xeb\xad\x43\x0b\x01\x38\xd5\xc3\x75\x21\x59\x87\x39\x13\x5c\xf2\xb2\x04\xe0\x3f\xbc\x60\x8f\x02\x68\x63\x4a\xca\x0e\x8a\x77\x6f\xb3\xb7\xa1\x3a\xf4\xdb\xdb\x5c\xbf\x15\x3a\x99\x4e\x61\xfc\x1c\x0a\xb7\xf9\x5e\x8b\x61\xce\xb6\xbd\xdc\x1f\xef\xb0\x50\x90\xce\x16\xd7\x0f\x2d\x7e\x4e\xe7\x5c\xcb\x89\xb4\xe7\xb0\x30\x62\xbb\x4f\x7b\x2c\xdf\x5a\x25\x89\x49\xff\x86\x55\x12\x5d\xec\x1d\xab\x5b\x15\xf3\xad\x59\x1c\x00\x4e\xd0\x65\x96\xa9\xbc\x60\x1d\x65\x20\x54\x11\xdb\x07\x67\x0e\xf5\xc3\xc9\x38\x28\xc4\x68\x18\xba\x25\x5f\x5a\x3f\x0a\x28\x1a\xd7\xc0\xc7\x15\x04\x01\xc1\x45\xd0\xe5\xb6\xdc\x54\xae\xd4\x95\x15\xda\xa6\xfc\x1e\x12\x45\x99\x99\x03\xbe\x6f\xaa\xe5\xb6\xda\x2f\x6d\x09\xad\x53\x9e\x8a\x65\x31\x1f\xe8\x94\x82\x12\x65\x17\x6b\x5f\xb2\x5a\x3f\x43\x89\xfd\x6f\x09\x5f\x11\x78\xd9\x5c\x0d\x02\x0b\x41\xae\x54\x81\xfa\xa9\xbf\xc3\x30\x3b\x9a\x60\x5e\xa0\x4a\x29\xde\xdd\x29\x81\x46\xe7\x47\xcc\x97\x0b\x0d\x1f\xcf\xe4\x19\x80\x44\xfd\x45\xc4\x86\xc1\xc3\x2d\x60\xaf\xfe\x5f\x49\x2c\xff\x59\x23\x52\xba\x59\xfc\xfd\xba\x47\x68\xa1\x48\xb7\x8e\xcb\x29\x66\x95\xef\xfa\xec\x1e\xb4\x7a\x5b\x15\x10\x3b\x8c\x5b\x47\x17\x22\x23\xcb\x3c\xf6\xd3\xa3\x99\xc1\x2b\x6c\xaa\x1a\xb3\x9f\xad\xe5\x07\x82\x7b\x5c\xb0\x8b\xc5\xa7\xa6\x7c\x6b\x89\xbf\xdb\x06\xf6\x39\xb8\xb4\x9f\x3b\xdc\x67\xf7\x00\x3b\xd2\xcc\x96\x51\xae\x5c\xc0\xa5\x44\x8b\xec\x00\xb8\xd0\xa9\xfb\xe8\x46\xec\x46\x3e\xbe\x87\x54\xeb\x84\x1e\x07\xa5\x43\xa6\xdb\x7f\xc6\xc9\x42\xb6\x0d\x0b\xa6\xa0\xd4\xd7\xe4\x41\x35\xfb\x07\x3c\x80\x48\xc6\xc1\x96\x49\x9a\x82\x1e\x30\x66\x13\xb9\xb5\x64\x15\xe6\x28\xb4\x20\xd2\x64\x25\xd5\xbe\x38\xfa\x8e\xc5\x14\x05\x8b\xe9\xa6\x7b\x31\x21\x4e\xc3\x73\x15\x3d\xcf\x8a\x7a\x06\xde\x3a\x23\x5b\x78\x33\xeb\x49\x7f\xb6\xba\x01\x97\xf7\xf0\x34\xff\x5c\x11\x60\x8d\xe6\x06\x1f\xfe\xbd\xbd\xe9\xdf\x97\x3c\xe7\xb2\x80\xb8\x26\x52\xdd\x73\x11\x84\x57\x8b\x4f\x80\x41\x95\x68\x08\x86\x9f\xc2\xc9\xb5\x2e\x7f\x84\x89\x25\xf1\x88\x25\x63\x31\x86\x0c\xbc\xb9\xd1\x25\x16\xfe\xcd\xb5\xd1\x1c\x66\xb2\x11\xaf\x31\x66\x93\x54\x2b\xfa\x42\xc8\x28\x55\x1a\x20\xb8\x8b\x90\x1c\x1d\x56\x3e\xb9\x95\x16\x5b\xb8\xa0\xc0\x54\xfa\xe2\x15\x3d\x08\x3e\x84\x44\xb2\xe0\x13\x4f\x61\xa7\xfb\xdf\xff\x55\x11\xcd\x6b\x17\x4e\xe2\x05\x53\x76\x35\x8e\xa1\x17\x9b\x24\x4c\x07\xbd\x6b\x82\xe0\x0d\x98\x18\x1f\x47\x13\xb0\xcc\xb1\xd7\xbc\x60\xa9\xe0\xba\x60\x6f\xdf\x0c\xc2\x86\xd8\x0e\x7a\xe9\x4a\xdb\xd7\x07\xc3\xdb\x70\xca\x50\xb9\x73\x15\x43\x7e\x60\x9e\x17\x8c\x33\x29\x1e\xc3\xe8\x19\x05\x01\x4f\x36\xe9\xaf\x08\xf8\x3b\x10\x33\x8f\xec\x43\x10\x91\x8a\x57\xa6\x0e\x39\x62\x53\x5a\x90\xfb\x94\x9a\xd5\xb2\xb2\x46\x0e\x7d\x06\x70\x73\xf3\x92\x0f\x6c\x5c\xf3\x62\x26\x49\xb2\x5a\xd8\x48\x10\xca\x3e\x49\xd3\x6a\x30\x21\x87\x78\x59\x69\x3a\x6c\x5a\x1f\x8f\xdd\x00\x5d\xc0\xf5\xcb\x45\x74\x55\xec\x74\x7e\xb3\x60\xcc\x81\xe3\x74\x0c\xcb\x6e\xd5\x76\xda\xec\xcb\x9f\x51\x09\x6e\xa9\xfe\x5c\xad\x92\x88\xa7\x3d\x94\x61\xd1\xd6\xe4\x3d\x1b\xab\x69\xd3\xdf\xa1\x1b\x3f\x77\x05\xfd\x55\xe5\x76\xfb\x38\x1c\xb3\x8f\xaa\xc5\xdc\xde\x31\xb9\x81\x6e\x71\xc8\x05\xdc\x85\x16\x7e\x2e\x8f\x6f\xa5\xe9\xd3\x18\x88\x0d\xf6\x4b\x41\x4f\x14\x60\x45\x07\xc6\x97\xc5\x41\xdc\x72\x10\x26\x49\x60\x4f\x14\x7c\xf4\x66\x87\xe7\x35\xfb\xef\xdd\xfd\x91\xef\xbf\xed\x8a\x03\xc1\x35\x3b\xde\xad\xec\x4d\xe2\xbf\xf2\x08\xa2\x19\xa1\x26\x1b\x47\xd9\x24\x9d\xb4\xa9\x4a\x38\x18\xf3\x5b\xd5\xc3\x2c\x57\x91\xd0\x7a\xcc\xce\xe0\xa0\xa1\x3f\x19\x5f\x5a\x87\x44\xf0\xf2\x4c\x9a\x9b\x89\xe5\xa8\x0b\xca\xaf\x2e\xf1\xb6\x1d\x80\x84\xb7\x07\xf9\x72\x36\xfb\xf3\xd0\x75\xdd\x26\x2c\xdf\x2e\x94\x01\xa9\xab\xd8\xd9\xea\x84\xc5\x2a\xba\x17\xf9\x71\x2e\xe2\x44\x9f\x80\x6f\xbd\xe8\x74\xea\x6d\xcc\x6d\xfb\x60\x4d\xa3\x0b\x28\xb0\x27\xf0\xff\x14\xeb\x27\xe8\xbf\x0d\x21\x1a\xb1\x64\x09\xd7\x09\x1b\x77\x8a\x81\x56\x96\xd2\x4f\xc8\x22\xdf\x22\x2a\xd9\x9a\xb2\x6a\x03\x61\x6f\x1a\x46\x69\xeb\x8a\x98\xce\x9f\x03\x83\xf3\xc4\x6e\x63\x64\x0e\x01\x0e\xb0\x53\x85\xa2\x78\x2d\x14\x17\x19\x2f\xd6\x1a\xe8\x39\xaa\x63\x40\x97\x2e\xf8\xd4\x8c\x10\xcf\x00\xaf\x80\x56\x0a\xff\x91\x23\x91\xd0\x45\x92\xa6\x33\x89\x01\x16\xc0\xa4\xf1\xaa\x95\x05\xc8\x7c\x3a\x62\x3c\x8e\xd9\xff\xf7\xfa\xfd\xf9\x7f\xdc\x9e\xcd\xa7\x17\x60\xb4\x9e\x9e\x9f\xbd\x19\xb9\x1f\x2f\xef\x6e\xdd\xaf\x68\x61\x79\x10\x39\xdb\xf0\x7b\xb8\xe2\x49\x2d\x28\x40\x54\xcc\x64\xd8\x52\xcb\x8f\x64\x9e\x68\x61\x91\xae\xa4\xa6\x38\x9a\x68\x9a\xc3\x2e\x72\x55\xa2\xcd\x1c\x70\xf9\xbd\x76\x9f\xec\x5e\x83\x76\xf1\xb8\x2a\xac\x1a\x08\x71\xc0\x5c\x07\x84\x39\x74\xf7\xf5\x0b\x4e\xc8\x55\x22\xbb\xf0\x78\x42\x3e\xbc\xa4\x12\xff\xa3\xd8\x02\x20\xfc\x8a\x27\x79\xef\xb5\xd7\xce\x78\x68\x77\x8c\xb9\xa7\x73\x5d\xdf\x54\x1a\x75\x61\x8c\x28\xee\xc4\x7c\xb6\x91\xdd\xfe\xea\xdd\x25\x0a\x4d\xf1\xa9\xc8\x2d\x13\x97\x8b\x59\xb5\x74\x95\xee\xa0\xf1\x6b\x70\x26\x6f\x2f\xdf\x5d\x9e\x30\x91\xf2\x85\x82\x70\x45\x82\x04\xd9\x22\x68\xc0\x22\xb5\x09\x0a\xaa\xb0\xb0\x8d\x58\xe6\x59\xd8\x42\x23\xda\x18\xcb\xd8\xc3\xc6\x96\xa9\xbc\xc9\x61\xf6\xbc\x57\x40\xea\xec\x95\xca\xfb\x1c\xff\xe6\x35\x8c\xdf\xc8\xcc\x45\xae\x26\x79\xe9\x6c\x5e\x0a\x0e\x0c\x1d\xe4\x16\x22\x5b\x3e\x01\x58\xd3\xb4\x92\x33\xdb\x6c\x1c\x3d\x26\x17\xbc\x7f\x53\x49\xf6\xe3\x37\x9a\x2d\xca\x62\x26\xab\x65\x28\xc9\x26\x3f\xdf\xb0\xef\x78\x11\xad\xdf\xcc\x24\xc4\x0f\xfe\xf8\x4d\x07\x5d\xe4\x60\x06\x66\x33\x26\xef\x78\xc1\xcf\x15\x8f\x13\xb9\x6a\xa3\x5f\xf6\x39\x02\xcf\x6e\x27\x27\xcc\xa6\x6a\xf1\xd1\xae\x85\xa5\x3d\x09\x0a\x02\x81\x0c\x1d\xb1\x52\x04\x44\xb9\xac\x52\xd4\xe2\xcd\x0c\x0e\xac\x99\xbc\x45\xde\x69\x23\x55\x93\x82\x65\x8a\xf2\x54\x9a\x5b\x19\x32\x72\x73\x1b\x05\x2e\xd2\x2d\x33\xa3\x03\xcb\xd8\x4d\x06\xe9\x63\xa0\xcf\x34\x85\xfd\x4c\xc2\x05\xdd\xc5\xdf\xa6\x2a\xe2\x29\x60\xf2\x8e\x02\x9b\x9e\xb9\xb6\xab\x12\x38\x70\x00\x0c\x23\xb7\x55\xe8\xac\xa3\x65\x72\x4a\x59\x38\x51\x60\x00\x80\x79\x24\x6f\xec\x46\x19\x89\x83\x7c\xb3\x60\x7c\x4b\x71\x74\xcc\x87\x8e\x7f\x16\x87\xc5\x3c\x75\xa1\xe9\xaa\x94\x96\x6f\x2d\x02\xf3\xbd\xdc\x02\x7c\x1b\x12\xcb\x29\x80\x7e\x78\xe9\x4c\x8b\xb2\x31\x8b\xee\x4c\x0c\x3e\x9b\x49\x44\x0a\x56\xe6\x25\x64\x28\x0c\x6a\x57\x12\x80\x8c\xcd\x78\xf8\x32\x23\x60\x23\xe9\xfa\x59\x2e\x8e\x5c\x94\x77\x5c\x19\x53\x73\xc2\x8e\xd9\x75\x78\xbd\x8e\x55\x54\x6e\x6c\xf6\x08\x88\x10\x27\x04\x1c\x1d\xa2\x6e\x85\xe0\xc1\xbe\x6f\xc5\x03\x13\x5d\x21\x80\x22\xa7\xf7\xfd\x18\x17\xcc\x24\xfc\xb4\xa9\xa9\x77\x2b\xbe\x20\x3b\x0e\x43\xad\x61\x41\xf3\xac\x5a\x52\xa5\xb4\x83\xb9\x17\x2e\x3c\xc3\xbd\xca\x41\xd9\x12\x9f\x32\x05\x46\x6e\x0c\x80\x56\xf1\x2b\xcd\xa6\x57\x46\x03\x32\x37\x5e\xb7\x07\x4b\x5d\x20\xb8\x0c\xe3\x94\xe1\x6b\x0c\x17\x18\xb1\x2f\xd9\xac\xfc\xf2\xcb\xaf\x23\xf6\xc9\xfe\xe3\xf7\xbf\xfb\xdd\xd7\xbf\x1f\x12\x4e\x62\x2f\xe4\x50\xae\x1f\x23\x97\x32\xb4\xaa\x12\x85\x33\xd0\x94\x54\x07\xcc\x02\x6d\xc0\xae\xe1\x7f\x0a\x93\x75\x80\x1d\xe2\x2b\xda\xe1\x3a\xdc\x99\xac\xb2\x35\x3d\x92\x40\x8b\x62\x54\x95\x10\x4e\xd9\x25\x8d\xfe\x9f\x77\x10\xb2\xce\xcd\x56\x79\x1a\xc6\x29\x49\x9d\x7a\x6d\x0a\x61\xaf\xc9\xfe\x57\x80\x03\xf1\x8d\x3d\xe0\x54\x1a\x8b\x1c\xdb\xe4\x4c\x76\xce\x90\x08\xc2\x41\x7c\xca\x52\x15\x5b\x0a\x78\xcf\x77\x90\x80\x82\x70\xf6\x89\x1b\xc9\x3d\x22\xaa\x50\x8a\x2f\x05\xcf\xcb\x92\x47\x82\x62\xa1\x5f\x7f\x3a\x31\xbf\x8d\xd8\xf6\x04\x40\xa4\x23\xf6\xb7\x13\x62\x04\xe4\x79\x31\x37\x3f\xbd\xb1\xba\x36\x15\x01\x8d\x4e\x34\x7b\x75\xfc\xc0\xf3\x63\x10\xcf\xc7\xd8\xa2\x57\x24\x59\x5d\xee\xe3\x50\x37\x4f\x95\xba\x27\x80\x6d\xe3\xc3\x63\x4b\x2e\x0b\xcb\xdb\xf9\x4d\x70\xea\x1d\xf9\x50\xc1\x8e\xe0\x05\xc1\xc6\xd9\x82\x8d\xff\xaa\x95\x64\xe3\x2d\xdf\xa4\xf4\xab\x7d\x4a\xf8\x5f\xae\x29\x26\x2e\x76\x20\x9f\x74\x8b\x96\xd2\xef\x52\xb5\x80\x5e\x7d\xb0\x3d\x45\x04\x2d\x34\xd4\x9f\x3e\xfe\xc0\xa2\x8e\x58\xb2\x0d\xe0\x48\xdc\xa8\x02\x5f\xa1\xf0\xd6\x66\xaf\x3e\xb9\x26\xfd\x09\xfd\xc2\x30\x28\x36\x88\x0f\x8d\xc3\x0e\xbd\x66\x0a\xfd\xc4\x5e\x93\x08\x7a\x63\xce\x18\x82\x2b\xe3\x30\xb4\x55\xb0\x75\x15\xfc\x47\x50\x41\x22\x19\x86\x65\xee\xf8\xf2\x6f\xc7\xe3\xf1\xd8\x7d\x0d\xcc\x3c\xff\x87\x25\x85\x16\xe9\x12\x4b\xb2\x27\xd8\x76\x26\x3f\xd8\xe4\x52\xd6\x78\xed\x69\xab\xb3\x5c\x15\x2a\x52\x29\x3b\xf2\x06\xdd\x58\x45\x9a\xfd\x8b\x51\x6b\x83\xa1\x84\x1f\xcd\x3d\xae\x83\xea\x1e\xb3\x59\x7c\xa6\x4d\x45\x06\xf1\xfa\xb6\x0a\x99\x6a\xdd\xc5\x96\xeb\x30\x18\x19\xd6\x82\x59\x39\xc7\xc4\x66\x9b\xe7\xe6\x65\xf1\xa9\x80\x47\x1d\x64\xc1\xad\x50\xf6\xf6\x93\xb2\x21\x6e\x3d\x67\x30\x2e\xeb\x8e\x01\x20\x4e\x4f\x92\x0c\xd8\xcf\x51\xe8\x3e\x31\x87\x8b\x0c\xd3\x1d\xe9\x72\xb3\xe1\xf9\xf6\xd8\xef\xb6\xe6\xe2\xf4\x6c\xb2\x20\x63\x52\x3b\x00\xe0\xc2\x4d\x69\x6b\x11\x8a\x81\xd4\x4b\x7b\xa2\xb9\xbd\x1b\x41\xbe\xea\x80\x95\x49\xc8\x48\xc5\xb4\xae\x7d\xf4\x69\x55\x63\x71\xef\x34\x75\x15\x8b\x88\xd1\xde\x18\x27\x0b\xa4\x29\xa3\x37\xec\xc7\x1d\xe2\x5b\xcd\x75\x61\x04\xe5\x6a\x80\x7b\x74\x7a\x79\x63\xbf\xe9\x7f\xe8\xc2\x38\x54\x55\x76\x9e\x86\x1c\xc0\x72\xc5\x72\xfe\xe8\x8f\x5f\xc0\x76\xa0\x75\xa6\x74\xb1\xb9\xf8\xf7\xa9\xba\x4a\x52\x73\x6a\xc1\x1a\x1f\xcf\x64\xe5\xe7\x11\x13\x69\xb2\x49\xa4\xc3\xd6\xa1\x70\x57\x4b\xd4\x9e\xef\x93\xc2\x4c\x99\x8e\xef\x8d\x04\xb3\xdc\x95\xc1\x95\x6a\x22\xb7\x76\xe9\x38\xc7\x14\x59\x20\x4a\x6d\xda\xe5\xef\xe8\x10\xb5\x9f\xc4\xe2\x88\x14\xd2\x24\x58\x78\xb0\x7f\x67\xd2\x94\x66\xf7\x92\x87\x0b\x07\xe5\x05\xc5\x1d\xd9\xa4\x3f\x81\x04\x80\x3a\x2a\x98\x5f\xa7\xff\xb6\x28\x28\x67\xb2\xdc\x1c\x1a\x6c\x42\xf0\xe1\x5f\xcb\x4c\x77\x95\x0b\x7b\x52\x51\xe0\x92\x90\xe5\xc6\x6e\xa8\x01\x2b\xee\x8c\xd4\x9f\x58\x44\x29\x47\x36\x3e\x53\x10\x20\x1f\x47\xe8\x20\xcd\x82\xba\xf0\x78\xc1\x6a\x30\x8f\x60\x2a\xe4\x6b\xfc\xfb\x0d\xa3\xb3\xe1\xcb\x11\x9d\xe7\xb9\x76\x2c\x67\x38\xe7\x90\x87\x5b\xc4\x68\x43\x87\xcc\x0b\x2b\x9e\xc7\x68\x2d\x0f\x6f\x15\x18\xc1\x6b\xf4\xaf\xad\x2a\xd9\x63\xa2\xd7\x33\x79\xab\xac\xc1\x91\x49\xe5\x72\x57\x8c\xe0\x32\xda\xa8\x8f\x6b\x10\x02\xd0\xea\xb6\x15\x60\x84\xf0\x41\xb1\x46\x80\x82\x9d\x4b\x15\x8b\xc3\x48\x1a\x6f\xbd\xaf\xc2\xfa\xaf\x73\x81\xf1\x60\x70\x52\x74\x85\xd3\x0a\xad\x07\xda\xe6\xeb\x13\x0f\xe7\x10\x95\x63\x6a\x55\x8f\x83\x32\x88\x84\xfc\xa7\xee\x54\x83\x52\xec\x8d\x33\x88\x06\xae\x8c\xbd\xcb\x08\x71\xe8\x24\x44\x2d\x8c\x8c\xbd\xce\x7e\xec\x7b\x04\xc3\xee\x00\xc6\x9c\xad\x72\x55\x66\x2e\x64\xde\x86\xfb\xe1\x34\x90\x4e\x33\x95\x4b\x75\x42\x77\xaa\xf3\x44\xde\xe3\x8a\x7f\xa9\x39\xc2\xa4\x1f\x22\xae\x50\xd5\xda\x4c\xfc\xd0\x87\x23\x96\xc8\x28\x2d\xe1\xe0\xd3\x05\x8f\xee\x31\x71\x49\x97\xd1\xd7\x7c\x33\xdf\x1f\x4c\xd9\xa1\x31\x95\x69\x4a\xd5\xfa\x03\x14\xc8\xe0\xc0\x04\xf4\x90\x70\xc6\xd9\xdd\xf5\xb4\xbd\xee\xfb\xa4\xe9\xcc\x69\x3f\x3d\xab\x0b\x04\xfe\xef\xc7\x64\x10\xee\xb2\x46\xfd\x2b\x2a\x4b\xdd\x19\x97\xba\x88\xe5\x71\x91\x16\xe6\x02\x11\x5f\xb7\x98\xf6\x07\xaf\xd3\x55\x56\xce\xcd\x40\xa5\x43\x00\x02\xa6\x15\xdf\x5f\xdd\x4d\x82\xef\x76\x2d\x95\xef\xaf\xee\x58\x50\x07\x92\x3a\xa7\x22\x2a\x1c\xd2\x78\xcc\x4e\x7d\xae\x85\xba\x66\x1e\x8b\x87\x24\xc2\x10\xd7\x91\xd1\x8a\x66\x12\x28\xcc\xcd\x5d\xe7\xc8\xf2\x5e\xb2\xef\xaf\xee\x88\x2d\xd3\xf3\xdb\x60\xda\x08\xa0\xb0\x18\x76\xec\xd4\xc8\xc3\xa5\x92\x47\x48\xed\x93\xc7\xde\xdb\x31\x82\xcb\x75\xc4\xb3\xa2\x24\x05\xe3\xe1\xed\xd8\xce\xc9\xb5\xf7\x84\x98\x66\xa9\x99\x34\xba\x12\x46\x19\x40\x86\x33\xd3\xe9\xe6\xd4\xd6\x06\xf5\x10\x70\x00\x0c\xda\x41\xc2\x3f\x71\x11\x7e\x5c\x6e\x19\xcf\x17\x49\x91\x9b\x6b\x18\x7e\x3c\x42\x26\xb2\xb5\xcd\x62\x85\xf3\xe6\x35\x23\x4a\x4a\x07\x13\x9c\xc8\x42\xcf\x64\x10\xc1\xe2\xa2\x82\x31\x78\x21\x91\x0c\x28\x7f\x01\x7b\x63\x29\x48\xa3\x54\x95\xb1\x3d\x56\x73\x97\xe4\x6e\x9b\xa1\x12\x35\x93\xc0\x4c\x62\xce\x56\x65\xd4\x50\x7f\xf6\x9f\xb0\x8f\xf2\x21\x89\x13\x7e\x54\x08\x9d\xf2\xa3\xe2\x7f\x7f\x1c\xd5\x7e\xe2\x6f\xbf\xfc\xf2\x23\xe6\xeb\xeb\xa2\x5d\x08\xd8\x95\x0e\x34\xf0\xb4\xfb\x29\x1c\x4f\xa1\x59\xa5\x07\xcc\xd3\x79\x72\x2f\xd8\x47\x9c\xee\x8f\x44\x52\xfc\xb4\x69\x9b\xc9\xb6\x79\x63\x4f\x99\x36\xa0\x8c\x6f\x9f\x37\xb6\x63\xda\xde\xae\xc6\xbf\x5b\x2d\xcc\x6c\x7d\xb5\x1a\xbf\xfd\x12\xfe\x59\x9b\xa3\x7d\x9b\xd7\x45\xcf\xb4\x35\xbb\x45\x10\xb5\x6c\x4b\x27\x8b\x66\x72\xbf\x30\x62\xc3\x64\x11\xac\xda\xb6\x8d\xcf\x0b\x71\x68\x74\x2b\x72\x57\x0f\x40\x5f\x37\x48\xc1\x77\x7a\x04\x0f\x64\xd4\xf6\x6c\xd8\x00\xf7\xec\xa6\xf6\x0e\x01\xb8\xf0\x70\x00\x1f\x0f\xbc\xdf\xaf\x3f\xb5\x77\xf7\x74\x67\x77\x33\x53\x21\x06\x30\xc8\xdc\x98\xd7\x7b\x36\xb2\xf2\xea\xae\x36\x3e\x72\xcc\x1a\xd8\x4c\x56\x13\xd3\x6d\x7d\xc8\x2e\xb2\xcb\x11\x4d\x26\xda\xc5\xfd\xb9\x96\x58\x68\xa5\xbb\x5f\xdb\x7a\x57\xb4\x97\xc2\xa4\x84\xce\xeb\xd6\xb2\xf0\x03\x53\xc4\x81\x50\x38\x73\xa5\x9e\x6f\x7a\x13\xa1\xfb\x8a\xdf\xd1\xc7\x1f\x1a\xb4\xe8\x4e\xbd\xfc\x00\x91\xd9\x8e\x0c\x6b\xc3\xa5\xd1\xd6\x6c\xad\x1d\x8e\x25\xbc\xe5\x3f\xa9\x49\x77\xd9\x93\x1a\x84\x35\xf6\xcc\xd7\x4f\x55\xd9\x52\x1e\xd1\xb7\xca\x53\xf4\x1d\x14\x6b\x30\x2b\xfb\x3c\xb7\x56\xcc\x79\xf3\x32\xe6\xc4\x4d\x79\xbe\x42\xa3\x97\x16\x85\x7e\xd3\x32\xc3\x3e\x8e\xed\x80\x19\xb6\x6a\xd7\x7c\x18\xcf\x87\xd5\xc7\xc0\xa4\xb2\x6b\xa7\xb9\x56\x56\x93\x62\xb8\x9b\x96\xad\x3f\x64\x7c\xf7\xc1\x75\x91\xca\x31\x83\x14\xf0\xb1\x76\xf3\x60\x1d\x48\x07\x7b\xc1\x37\x8e\xe5\x85\x4a\xb3\x31\xbb\xd8\xb8\x85\x80\x7c\x2e\xdd\x6d\xe8\xc5\xf5\xda\xb7\x09\xc4\x48\xdb\xd5\x82\x99\x9c\xd8\x57\x3c\x2b\xb5\x4e\xd0\xca\x82\xe1\x88\xe5\x02\x23\x5c\xc0\x66\xc6\xfd\xa8\x53\xe7\x3a\x3a\x31\x34\x20\xbf\xd6\x85\x3b\x2d\x72\x7f\x1a\x79\xd6\xd2\xb0\x1f\x1d\x35\xf7\x63\x2d\xde\x29\xd1\x6d\x17\xa9\x28\x3b\x96\x7b\x2a\x56\xf9\x3e\x06\xc8\x5d\x95\x5a\xc4\x85\xd9\xc5\x2b\xe0\x1f\x0b\xd2\x2d\x77\xd5\xde\xff\x9a\x44\xdd\x20\xba\x6c\xc4\x50\x40\x54\x42\xba\xf5\x9b\xc4\x53\xab\xd7\x2a\x6b\xca\x8a\xe2\xa0\xb3\x20\xe1\x9b\x79\xae\xba\x93\x40\xf7\x18\x2f\x5b\x44\xc5\x63\xb0\xc6\xa4\x90\x5b\xf6\x4b\xc9\x53\x3c\x5a\x25\x6d\x06\xdb\x6c\x30\xbe\x7c\xf5\x7b\x36\x81\xb3\x8f\x7d\x00\xa9\x0c\x90\x31\x28\xad\x50\x2c\xd9\x64\x22\xd7\x4a\xf2\xce\x6c\xe8\xf7\xdf\xe8\x39\x65\x74\x35\x17\x73\x55\x36\xb3\xb7\x0e\xe8\x49\x4b\x69\x61\xa7\x38\xbb\x2f\x17\x22\x97\x02\x33\xbe\xc3\x7b\xcc\xbe\xd7\xab\xb9\x8a\x97\xc5\xfa\xab\x79\x94\x26\xbd\xd3\xcc\x42\xbc\xea\xc4\x7c\x76\x8a\x5f\xed\xea\x40\xa5\xfc\x4a\xd3\x25\xc3\x67\x0c\x9f\x8d\xd9\x77\x3c\xba\x17\x32\x66\x59\x5a\xae\x12\xa2\xa7\xc1\xcb\x46\x52\x35\x2b\x54\x3b\x86\x9a\x0d\x96\x6f\x0e\xc1\x99\xdc\xf0\x7b\x4c\xfd\x42\x2a\xac\xb9\xb7\x74\x91\x1b\x3a\x43\xcd\x3c\x69\xae\xdd\xbd\xb3\xe5\x4e\xe3\x66\x31\xf5\xb5\xa7\x4b\x8c\xd6\x7b\x5c\x2b\xc2\x38\x55\xec\x44\x03\x36\xae\x5b\xad\x0d\x16\x31\xcb\xf4\xe2\x72\xff\x53\x63\x70\xf7\x82\x03\x11\xd2\x17\x95\x92\x71\x20\x22\x7b\xa5\x59\x99\x59\x21\x02\x9e\xad\x14\x70\x46\x38\x05\xe6\x41\x96\x44\xf7\x88\x6c\x85\xd8\x0d\xe6\xba\xd7\x48\x11\xcd\x84\x87\x58\xb6\x89\x86\x25\xd2\xf0\x1c\x86\x9a\x69\x64\x3f\xda\xb3\x4e\x7b\xc6\xa5\x14\x6b\x21\xe7\x4f\x48\xc2\xd3\x7f\xd2\x2a\x31\x28\xa4\x84\x3b\x0f\xa1\x1b\xc2\x52\x26\x44\xba\xed\x6f\xf8\x2e\xc3\x44\xb2\xac\x29\xf1\x89\x66\x9a\x17\x89\x36\xb2\xac\x75\xc4\x3d\xf9\xd1\x21\xa3\xce\x87\x31\x2e\xb5\xb0\x2d\xd5\xc6\xc2\xc5\xb9\x8d\xd9\x7b\xf0\xab\x04\xf7\x12\xe5\xb8\x8b\xba\x04\x56\xb1\x16\x9d\x24\xbe\xcf\x01\x10\xb5\x3d\x08\xde\xdf\xe9\x2e\x73\x31\x8d\x63\x36\xf1\xfe\x6c\x64\x6f\x42\x4f\xf5\x9e\x1e\x89\x54\x8b\xa7\x2c\xbe\x5e\xae\x1f\xc0\x7c\xc1\x02\x62\xa0\xc7\x69\xf3\xbb\x67\x73\x77\xcd\x7c\x04\xda\x00\x7e\x2f\xe4\x2e\xfb\x7e\xff\x16\xa2\x03\x66\xa7\x41\xc2\x79\x76\x14\x3a\x77\x9e\xd2\xc0\xfe\xdb\xce\x13\x66\x25\xcb\x63\x33\xe4\xe6\x12\x14\xdd\x53\xb0\x22\xfa\xf7\x88\x72\xeb\x71\xad\x74\xb8\xcf\xec\xfc\xe1\x3d\x3a\x2f\x5d\x6e\x2d\x08\xf6\x74\x03\x8c\x28\x4f\xa9\x42\x46\x2e\x68\xb5\xdb\xa4\x68\x54\x72\xf3\xcd\xac\x08\x85\x61\x00\x5c\x84\x2d\xaa\x65\x37\xcb\xac\x7c\xae\xdc\x2d\xfb\x69\xb0\x9b\x23\xdc\x68\xd0\x8f\xdf\xe8\x4b\xa8\xef\x39\xc8\x68\xd0\xca\xf8\xfc\x81\x60\x4f\x74\x81\x3b\x88\xb3\xb5\x7e\x2a\x08\x12\xa1\x83\x32\x53\x31\xf3\xeb\xbd\x2b\xd2\x46\x4a\x85\x10\xd7\xdf\x60\xb7\x82\xc6\xf5\xee\xdb\xbe\xad\xf6\x21\xc0\xc9\xb1\x45\x99\xa4\x31\xb2\x09\x06\x1a\xaa\xb2\x2a\x10\xa4\x31\x02\x7d\x24\xd1\xee\x80\x6b\x59\xf4\x3f\x7e\xa3\xaf\x54\x7c\xc8\xc2\x1a\xce\x18\xdb\x5c\xd7\x3d\xc2\x68\x74\x88\x65\xda\xec\x1f\x89\x4c\x75\x07\x40\xc4\x73\x5d\xcd\xdb\xbb\xa3\xc1\x80\x78\x5b\x94\xcb\x1b\x48\x12\xda\x45\xca\x14\xe4\xcf\xb3\x51\xd6\x66\x9e\x4d\x35\x2e\xe6\xaf\x6b\x52\x08\x40\xe5\xf5\x11\xce\xfe\x70\x73\x79\x71\xb4\xe1\xb9\x5e\x73\x20\xbd\xb0\x65\x8d\x6c\xde\x75\xb4\x16\x58\x60\x47\x22\x67\xf2\x88\xad\xd4\x08\x61\x44\x27\x6c\x5d\x14\x99\x3e\x39\x3e\x5e\x25\xc5\xba\x5c\x8c\x23\xb5\x39\xf6\x43\x73\xcc\xb3\xe4\x78\x91\xaa\xc5\x71\x2e\x20\x90\xe4\xe8\xed\xf8\xab\xb7\x30\x33\xc7\x0f\x6f\x8f\x01\x3c\x32\x5e\xa9\x7f\x39\xff\xea\xdf\xbe\xfe\xbd\x29\x38\xdb\x16\x6b\x25\x4f\x08\xa3\xb4\xb3\xec\x23\xbc\x26\x1c\xe3\x27\xb5\x5a\xfe\x6d\xfc\x65\xd8\x0c\x7a\x75\xa3\x62\x91\xea\xe3\x87\xb7\x73\x3b\x31\xe3\xac\x23\xb3\xc5\x3f\x42\x2f\x3e\x43\xe8\xc5\x7d\x52\xfc\x23\xf4\xe2\x57\x0d\xbd\xe8\xaf\x72\x39\x19\x03\x5c\xd6\x5e\x3e\x9a\xdf\x9d\x8c\xb4\x9e\x88\x7d\x72\xa8\xe5\x70\x08\x03\xe3\x0e\x38\x22\x06\x26\x9a\xab\x75\xd7\xdd\x65\x3a\x2c\x8e\x43\xf3\xc9\x74\xde\x2e\x06\xf1\x80\x00\xd0\x31\x89\xc0\x56\x88\x16\xd2\x8c\x27\x6d\x01\x15\x41\x7e\x9d\x03\x86\x10\xf3\x7d\xb4\x93\x9e\xf5\x49\x8b\x45\x99\xa1\x44\x3c\x7f\x96\x04\x59\xad\x75\x20\x26\x74\x70\xf9\x0d\xbd\xbb\x87\x6a\x4c\x28\xe9\x83\x46\xf4\x05\x53\x99\x3c\x77\x0e\x13\xea\xee\x13\xf3\x97\xa4\xf8\xb5\xc5\x74\xab\x47\x9b\xb7\xe4\x39\xb2\x7d\x78\xbc\x7a\xbf\x4c\x1f\xb8\x48\xa1\x2d\xb6\x5d\x1d\xcd\x58\x73\xfd\xb4\xe0\x80\x09\x52\x05\x3b\x5f\x30\x22\xab\x13\x6d\x2b\xb4\xa7\xb1\x65\x5f\x32\x87\xbb\x25\x79\xcc\xca\x3c\x53\x5a\xe8\x31\x7b\xaf\x72\xa4\xf5\x22\xce\x1d\x1f\xf0\x70\xfd\xfe\x94\xbd\xfd\xe6\xdf\xbe\x9e\xc9\xd7\x2d\xca\x10\x1c\xa2\x2a\x5f\x51\xfc\x05\xa8\x40\x1b\xae\x0b\x91\x1f\xe7\xcb\xe8\x18\x8f\x8e\x63\xf3\xfd\x11\x55\x7a\xa4\x96\x47\x2e\x95\xc1\x11\xb1\xba\x8f\x37\xf1\x9b\x2e\x64\x62\xbb\xc2\xfd\xab\x5d\x7a\x26\x1d\x8a\x79\xdb\xfc\xee\x17\xac\x95\x2d\x84\x8a\x08\x69\x21\x1a\x34\x16\xa4\x62\x54\x4b\x97\x7c\x07\xe3\x7c\x31\x4f\x97\x5a\xb6\xfc\xe3\xbb\x54\x2d\xf4\x1b\x47\x00\xcb\xb5\xad\xc3\x33\x32\xb6\xc9\xed\xc6\x9e\x3b\xe4\xf6\x4d\x43\xf1\x92\x66\x35\x2b\x13\xc3\x69\x1b\x32\xf0\xed\x42\xc3\xeb\x82\xc8\x47\xc5\x73\x55\x4a\x9b\xdd\x42\x49\xa1\x96\x00\x73\x82\x6b\x92\x45\x69\x82\x67\x01\xb0\x7f\x8e\x7b\x2a\x17\x19\x6a\x1f\xe0\x03\xeb\x1e\xee\x03\x33\xbc\xec\x1b\xe7\x97\xc8\xf0\x72\xe8\xb8\x93\x60\xfc\x95\x06\xfc\xd0\x50\x0a\xdc\x4a\x43\x10\x48\xe6\xfd\xbd\x68\x03\x27\x07\x7c\x86\x69\x9f\x4c\x21\xe3\x39\x68\xf0\xe2\xa8\x50\x47\x40\xda\x07\x54\x70\x98\x73\xa9\x0b\x82\x04\x28\x8d\x21\xc7\xbd\x79\xbf\x47\x3b\xf1\xd6\xf6\x29\x68\x28\x29\xac\x1a\x29\xcc\x09\x92\x9e\x48\x29\x72\xf2\x00\xef\xd5\x0c\x06\x62\x38\xc2\xa9\xdc\x8d\x48\xf7\x66\x8a\x30\x1f\x8e\x8b\x47\xe4\x81\x10\x18\x33\xb8\x9a\xac\xd5\x46\x19\x5d\x57\x95\x3a\x78\x88\x57\x5b\x50\x26\x3a\x15\xf3\x0d\xcf\x50\x5f\xfd\xf5\x7a\x63\xb6\x96\x79\x84\x26\xe8\xf0\xa5\x41\x29\xc6\x16\xd5\xa4\x4a\x7b\xda\xef\xb2\xe1\xec\x5e\x37\x80\x10\xda\x80\xcb\x6f\xcd\x1f\x84\xcd\x71\x91\xfc\xcd\x5c\x7a\xcd\x92\x72\xd7\x48\xa7\x81\x20\xa0\x0d\xb9\xa8\x43\xf8\xa6\x3d\x75\x3b\xd9\x62\xca\xcd\xc0\x39\x70\x41\x56\x7d\x26\x80\x4b\x0c\x3b\xb2\xf1\x46\x47\xad\x01\x47\x5d\xfb\x12\xec\x6a\xa5\xb9\x99\x58\xbe\xf4\x61\x4d\xbd\x71\x05\x10\x35\x7a\xb3\xdd\x9e\x6e\x12\xa2\xd3\x70\x8c\x51\x20\x58\xdd\xa2\x0b\xe4\x3c\x7c\x33\x42\x82\xb9\x21\x63\x07\x95\xe0\xe2\x6c\x8c\x60\xb0\x17\xba\x06\x70\x98\xfd\x75\x97\x39\xb3\x0d\xdf\x8e\x0c\xbd\x3e\x7a\xd9\xb4\xb2\x61\x59\x70\x1f\x3e\xf8\x24\xc6\x00\xff\x5d\x94\xf0\xfc\xe2\xf2\x36\x44\x36\x25\xd8\xdb\xa3\x68\x2d\xa2\x7b\xb0\xa6\xe1\x91\x87\x9b\x81\x82\xf1\x01\x6e\xed\x53\x9f\x16\xca\x02\x65\xb6\x2e\x1b\x8c\xcb\x88\xa4\x72\x16\x27\x3a\x4b\xf9\x16\x20\x09\x12\xe3\x14\x3d\x9c\xc1\x05\xf8\x1a\x51\xb0\xcf\x99\xd0\x7f\xa6\xcd\xac\x4c\xfc\x77\x43\xc7\xd2\x03\xcf\xfd\x60\x36\xe5\x01\xd3\x62\xc3\x65\x91\x44\x33\xb9\x11\x5c\x86\x08\x56\x82\x64\x98\x41\x8e\x95\xa0\x7c\x09\xcb\xa5\x88\x0a\x4f\xb8\x0c\x97\x10\x37\x52\xfb\xf6\xe0\xb0\xbe\xbb\x9d\xb7\xb3\xeb\x3f\xd8\xf4\xcc\xc9\x06\xf0\xd1\xb4\x86\xe8\x68\x7c\xa2\xab\x11\x52\xe5\xd2\x91\x6b\x2f\xb5\xf0\x97\x5d\x53\x6c\x21\x8a\x47\x01\x7c\x42\x44\x80\xd0\xa6\xe3\x1f\x9c\x2e\xe9\x90\xe0\xc1\x89\xe3\x1f\x24\x7a\xf9\x06\x81\x30\x6d\xb0\x10\x78\xe9\x88\x0f\x65\x8d\xc1\xf0\x15\x51\x32\x80\x29\xf0\x15\x19\x35\x5f\xc1\x31\x6d\x6e\xc1\xf9\x83\x88\x67\xb2\x4a\x2b\x49\x3a\xa3\xdf\x70\xcc\x27\x02\x7d\x1e\x69\x63\xc7\xb8\x97\xa3\xe7\x0c\xa8\xb4\x3c\x89\xb6\x23\x1d\xd8\x91\x98\x14\x3b\xfd\x92\xb7\x2a\x9b\x13\xb9\xef\x65\xd8\xe7\x0a\xa5\x44\x7f\x94\x17\xb8\x82\xfe\x71\x8b\xd2\x91\xe6\x21\xa3\xae\x03\x8b\x93\xd1\xba\x61\x06\x6f\x2b\x63\x26\x2d\x9b\xcc\xb2\x4c\x91\x25\xbd\x2b\x66\x87\x38\x34\x6d\xe4\xeb\xaf\x17\x01\xed\x8c\xae\x2c\xc8\xad\xea\x40\x3a\x01\x70\x1f\x65\x9d\x5d\xf5\x42\xea\x12\x54\x0a\x9b\x56\x11\xbc\x12\x2b\x51\xc0\x69\x1e\x97\x29\x02\x36\xc1\x9d\x02\x7c\x9c\x3c\x4d\x59\x52\xe8\x99\x74\xf4\xa1\x18\x98\x03\x12\xd6\xfa\x5b\x62\xba\x72\x41\x15\x50\x2c\x3c\xe6\x12\xf4\xb0\x24\x4a\x8a\x46\xb8\xc3\x36\x4c\x45\x96\x65\x82\x63\x2c\x3f\x4e\xdb\x4c\x86\x77\xae\xfa\x24\x50\xe0\x3b\x64\xaf\x7f\x8e\x18\xf4\x1d\x86\x5b\x53\xc5\x93\x50\x36\xd8\x3b\x73\xe1\xb2\x59\xc6\xb1\xb5\xc4\x1f\x44\xa8\x64\x73\xab\x29\xb4\x75\xa0\xf8\x7b\x2b\xc4\xf4\x44\x65\xca\x73\x0c\x66\x5a\x96\x29\x4b\x96\x41\xc2\x74\x98\x03\x24\x8f\x34\xd3\x15\x29\x38\xab\xad\x0b\x45\xf3\x8d\x08\x78\x6b\xc8\xbc\x93\x06\x88\x1f\xcc\x88\x81\x50\x12\x53\xd6\x9b\x31\x7b\xe7\xe9\x71\x71\x86\x61\x4f\x04\xa4\xd3\x89\x46\xf1\xe7\xda\x1b\x50\x2e\x40\xef\x4c\x13\x95\x34\x3b\xd2\xed\xba\x8e\x19\x84\xe4\x35\xc3\xe0\x44\x36\x75\xd1\x6e\x84\x7d\x2b\xe5\x8a\xf9\xb4\x06\x32\x72\x1b\xa2\xa3\x81\xf6\x54\x18\xd8\xc8\x90\xb0\xfb\x09\x0d\x75\x84\xe8\x2d\x8d\xdd\xec\xc8\xcf\x0e\xf3\x38\xb0\xa9\x41\xb6\xc3\xe1\x0d\x0d\x56\x4e\x08\x1e\xeb\x33\xb2\x2b\x5e\x0c\x45\x92\xb9\xc0\xb5\xe1\x0d\x6d\x45\xed\xf5\x69\x26\x48\x8f\x81\xed\x9c\x98\x6f\x9e\xd8\x50\x5d\x2e\x8e\x50\x40\xbb\x7c\x48\x20\x2a\x04\x8f\xd6\x55\x0e\x09\xcb\xf4\xec\x7a\x00\x31\x84\xb0\x1f\x87\xd3\x5f\x4c\xfc\x9a\x83\x84\x8f\xcc\x34\x7f\xcc\x2e\xa5\x40\x9c\xa7\x5a\x06\x87\x0a\x35\x80\x32\x43\x42\xb2\x1d\x27\xe5\x16\xa6\x61\xf2\xde\x52\x6b\x99\x2d\x37\x62\xdc\x97\x0e\x52\x0f\x97\x0d\x4a\x91\x0e\x5d\xb2\x2d\x35\xd5\x01\xea\x65\x3f\x82\x8a\xf6\x3b\x7f\x00\x97\x1e\x2e\x01\xda\xfa\xd1\x7f\x5a\x76\xc6\x3d\xb8\x5b\x9c\x0d\x76\xa8\xae\x1b\x86\xe0\xe7\x7d\xe3\x7b\xb5\xae\x62\x66\x07\x24\x72\xbc\xbb\x78\x77\xf6\x7e\x7a\x51\xcd\xbe\xf8\xc7\xbb\xb3\xbb\xea\x2f\xd7\x77\x17\x17\xd3\x8b\xef\xc3\x9f\x6e\xee\x4e\x4f\xcf\xce\xde\x55\xdf\x7b\x3f\x99\x9e\xd7\xde\x33\x3f\x55\x5f\x9a\x7c\x77\x79\x5d\xcb\xf7\x68\x93\x35\x06\x3f\xdd\x4e\x3f\x9c\xbd\x9b\x5f\xde\x55\x52\x46\xbe\xfb\x8f\x8b\xc9\x87\xe9\xe9\xbc\xa5\x3d\xd7\x67\xa7\x97\x3f\x9d\x5d\xef\xc9\xf8\xe8\xfb\xdb\x3a\xa4\xcf\x81\x2d\x7c\x72\xfe\xcf\x09\x5b\xe6\x89\x90\x71\xba\xc5\x48\x11\x7b\xb3\xad\x41\xbf\xc3\xb3\x37\xd9\x08\x55\x1e\x12\xf0\x71\xbb\x16\x4c\x3d\x88\x1c\x58\xc0\xb0\x34\xa2\x0c\xf1\x8c\x03\xf5\x5a\x73\x51\xe4\x4d\xaf\xc0\xce\xa8\xba\x22\xdf\xba\xb8\xcd\x5d\xcd\xf1\x0c\x92\x54\x09\xcb\x44\xbe\xab\x2d\xa0\x19\xe5\x65\x56\x24\x8b\xee\x10\x9e\xc1\x81\xf7\x7d\xef\xde\xc8\x77\xdc\x4e\x0e\x77\xd1\x2e\x18\x2b\x91\x2c\x87\xc0\xe4\xa1\x84\xa7\xa6\xb5\x75\x5f\x5b\x68\x71\x56\x2e\xd2\x24\x62\x49\x5c\xb7\xa7\x10\x1f\x06\x98\x8c\xeb\xb4\xe8\x99\xc8\x41\x55\x35\x37\x80\x2c\x17\x47\xbc\x2c\xd6\x48\xe1\x49\x81\x33\x94\xc4\x66\x26\xb5\x88\x72\x81\xbe\x00\xa1\xc1\x48\x8b\xf9\x4c\x83\x9a\xa0\x31\xc4\x60\x13\x03\x59\xde\x38\x48\x51\xd3\xe1\x23\xc0\x2f\xb1\xf4\x01\x46\x52\x7c\x7f\xe7\xd0\x50\x8b\x13\xcc\x98\x1a\xc0\xc2\xe0\x84\xc7\x87\x36\x2b\xaa\xe9\xb7\x91\xd4\x2e\x2b\x28\x4e\xb2\x8d\x34\x6a\xef\xc6\xbe\x35\x16\x2e\x94\x6a\xe8\x0d\x95\x4e\x8f\x4e\x73\x01\x87\x08\x41\x1a\xac\xfd\x02\x70\x4d\x14\x99\x04\x01\x49\xe6\xaa\xb6\x10\x6b\x9e\x2e\x51\xe3\x30\x53\xd3\xce\x2a\x82\xe5\xdf\xaa\x7b\x21\xaf\x71\xc2\x7e\x15\x71\x28\xf1\xe6\xe3\x39\x8d\x9c\x45\xc8\x9b\x30\x4d\x1b\xed\xaa\xb2\x71\xa1\xa0\x4c\x15\x78\x4f\x08\x1e\x63\x00\x92\xcf\x58\x60\x43\x4a\x97\xcb\xe4\x93\x29\x70\x26\x45\x2b\x67\x3b\x80\xc9\x2c\xbb\xa4\x93\xcb\x00\x9c\x43\x8a\xbe\x7b\x21\x21\x9f\x2a\x90\x03\xee\x5f\xb3\xc3\xec\xe7\xcd\xb9\xd8\x61\xd0\x07\x9b\x5f\x52\x49\x33\x1b\x7a\x79\xec\x38\x15\x18\x11\xe6\x38\x38\x60\xdd\x9c\x9e\x4f\xcf\x2e\x6e\xe7\xa7\xd7\x67\xef\xce\x2e\x6e\xa7\x93\xf3\x9b\xbe\xdb\xef\x39\xa2\xf8\x6a\xbb\xaf\x1e\xcc\xe6\x24\xc4\x31\xed\x3c\x1f\xca\xee\x3a\xe5\xb7\x1d\x4c\xc9\xfe\xd6\x27\x71\x36\x8f\x13\x1d\x99\xe3\x6f\x3b\x17\x32\x86\x64\x17\x4f\x5a\xaa\xed\x45\xd5\x7b\xe1\xde\x60\xee\x0d\x2b\x41\xf0\xb4\x7b\xb0\x2b\xda\x3d\x07\x48\x26\x98\x21\x73\x61\x36\x7f\x5c\xe1\x18\x19\xef\xcf\x70\x66\x8a\x3b\xac\x6f\xd5\x22\xea\x7d\xc2\xf6\x26\x5a\x97\x40\x65\x62\x5f\x03\x3c\x6a\xc7\xa8\x10\x03\x71\x98\x71\x23\x09\xb2\xc5\xb3\x44\xcf\xe4\x86\xcb\x98\x17\x2a\xdf\x76\x74\xb1\x9f\xf0\x0c\xb7\x4d\x55\x84\x86\x47\xb6\x14\x22\xb6\xb3\x80\xaf\x72\x59\x5f\x4a\x98\x97\xe3\xf6\xf2\xc7\xb3\x8b\x9b\xf9\xd9\xc5\x4f\xf3\xab\xeb\xb3\xf7\xd3\x3f\x39\x98\x6c\xc6\x75\x5b\x76\xe8\x2c\x17\x46\xba\x58\x9a\xb3\x56\xf9\x82\x29\x9b\x6d\x39\x94\xa6\x33\x59\xce\xa4\x95\x2c\xb9\x2f\x7e\x9d\xab\x72\xb5\x6e\x2f\xa8\xde\xca\xab\xc9\xed\x0f\x4f\x6a\x26\x90\x50\x62\x5e\x57\xdc\x6d\x4d\xb8\x70\xb2\x24\xb9\x87\x18\xe3\x5a\xf3\x80\x4a\x15\x5e\x6d\xf3\x32\x74\x48\xb4\x27\xdd\x5e\x9a\x42\x6b\xa7\xf2\xdf\xf2\x7a\xd7\x02\xba\x0d\xe4\x66\xe5\x18\x01\xf8\x3a\xa6\x07\x6f\x94\x76\xd2\xf2\x5b\xe5\x04\xfb\xea\x28\x15\xab\x95\x88\x71\x79\xd5\x0b\x26\x1b\x1c\x89\xc0\xc8\x9f\xeb\x6d\xa3\x48\x09\x7c\x0f\x38\x98\x1d\xde\xab\xbf\x00\xbf\x72\x9f\xb4\xcb\x8a\x53\x22\x92\x02\xff\x66\xc1\x65\x87\x23\x79\x7f\x3c\x58\x7b\xf1\x97\x39\x73\xa1\x7a\x64\x30\xb1\x2e\x03\xbf\x0f\xba\x00\x2f\x87\xe3\x5b\x5d\x3b\xae\x45\x96\xf2\x48\xb8\x00\x17\x64\x00\x86\x7b\xfd\x53\x1c\x78\x94\x26\x59\x92\xbd\x25\x48\x9f\xec\x33\xc3\xb5\x2d\x01\xb0\xdc\x5e\x5b\x79\xfc\xf2\xa6\x95\x9d\x17\x37\xe2\xfd\x04\x43\x33\xe6\xa9\xa4\xb8\x08\xb4\x45\x41\xf2\xd7\x4e\xcc\xfa\xa0\xe5\x50\xab\xf9\x27\x9a\x78\xbc\x33\x57\x0d\xdd\xdc\x32\xeb\xba\xe5\xe1\x54\xc7\x5d\xf6\xc2\xa2\xc8\x77\x92\x71\x3f\x87\x3b\xe2\x2a\x57\x9b\x44\x8b\x49\x51\xe4\xc9\xa2\x0c\xb3\x11\x0f\x04\xcc\x55\x2e\x27\xbe\xc3\x59\xae\xe2\x32\xb2\xf4\x59\xd0\x5b\x0f\xfb\x21\x2b\x9f\xd5\x3a\x62\x76\x64\x56\x1f\xdd\xdc\x44\x7c\x04\xd1\x1e\xc8\xef\xd6\xe6\x63\xb3\x82\xb1\xc3\xf6\x77\x65\x8f\xf2\x67\x8e\x19\xed\x1e\x4c\xbb\x06\xfa\x85\x81\x33\xfb\x3a\x68\xc0\x1d\xa8\x29\x5a\x2e\x0b\x8e\x0e\xf4\xaa\x8e\xd2\xc5\x96\xe3\x8e\x9a\x61\xe0\xae\x7e\xd8\x98\x6a\x38\x15\xea\x0d\x6b\xae\x51\x9d\x2f\xa2\x75\xb5\xe1\xd0\x9b\x2a\x6b\x70\xbd\xb9\x4e\x3d\x3e\xcc\x6c\xd2\xcb\x8d\x36\x42\x43\x43\x42\x86\xed\x4a\x06\x58\x97\xce\xba\xd3\x7e\x8f\x21\x17\xf3\x5f\x4a\x31\x24\xab\xb3\x0d\xd5\xf8\x23\x7c\xb6\x17\x90\x92\x20\x76\xcb\xd9\x5e\x8b\x64\x63\x34\x20\x9e\x47\x6b\xb6\xe0\x9a\xe8\x08\x43\xb6\x04\x4c\x3f\xcf\x12\xf3\x15\x8f\x0a\x4a\xc7\x6b\xab\xb5\x29\x79\x6f\x2d\x14\xd2\xa8\xb5\xde\xea\xd1\xb6\xdc\xf6\x0d\xc0\x10\xeb\xb5\x6d\xc6\xf4\xdd\x20\x1f\x42\xa8\x87\xbb\x7b\x32\x1e\xb1\x70\x3a\xa5\xbc\x94\xd1\x9a\x65\x29\x47\x42\x89\x35\xd7\x28\x28\x2c\x42\x87\x2f\x92\x34\x29\x80\x27\x0c\x1d\xc7\xb5\x75\x6b\x2e\xcf\x3c\xbf\xb7\xe9\x16\xb8\x27\x85\xdb\x25\x4a\x0e\x44\x42\xbb\x5e\x7d\x56\x2c\xb4\x17\x84\xa1\x70\xef\xb7\xd9\x09\x07\xed\xa7\xc3\x1c\x6f\xb0\xd9\x7d\x5f\x86\x79\x87\xa8\xc4\xab\xfa\xe7\xb5\xf1\x46\x02\xca\x83\x48\x82\x77\xc6\x65\xbd\x08\xe8\xdc\x47\x95\xed\x3e\x46\x9b\x1d\x6e\x51\x82\x87\x03\x9f\x28\x71\xd2\x00\x25\xa6\x9e\x56\xa9\x75\xdf\x2f\x53\xc5\x8b\xdd\x51\x6e\x98\x25\xa9\xab\xec\x58\x95\x8b\xae\xbc\x1c\xd8\xaa\xa7\xc7\xd0\x59\xf1\xff\x5c\x36\xf7\xf0\x1c\xe5\x85\x30\xd2\xf7\x69\x03\x6a\xbe\x3e\x82\xcf\xdb\x0b\xa7\x28\xe6\xc1\x8c\x14\x6e\x19\xf8\x5c\x7d\x4e\xf7\x07\x48\x6a\xcb\x76\xaa\x2b\x79\x07\xc5\x3c\x1e\x36\x5f\x89\xdc\xb3\x94\xf6\xa7\xff\xfa\xfa\xab\x3e\xd1\x88\x7f\x2c\xb9\x39\x00\x2e\x97\x37\x48\x10\x76\x48\xa7\x8b\xa4\xb9\xad\xda\xc5\x40\xbd\xd6\xdb\xaa\x97\x36\x5c\xf8\xbd\xd9\x0e\xda\x7a\x73\x63\xbe\xee\x2f\x76\xa7\x15\x6b\x6c\x96\x27\x0a\x88\xb2\xd4\xb2\xa2\x6b\xb4\x48\xe2\xd6\x7a\x0f\x18\xc9\x5f\x4a\x51\x0a\xb3\x80\x16\x65\xbc\x6a\x3a\x4b\x06\x5c\xb8\x7c\x97\xd6\xea\x91\x6d\xca\x68\xcd\x6c\xe1\x2c\x16\x29\xdf\x56\xd5\x28\x73\xd7\x28\x14\x50\x28\x0f\xe2\x0b\x0c\x88\xef\xa3\x52\x17\x6a\x03\x38\x75\x5f\x6e\x5e\x4a\xd8\xe5\x8c\xdb\xdd\xd5\x76\xa0\x55\x08\x3d\x9f\xe8\x21\xbf\xb9\x3a\x3b\x9d\xbe\x9f\xd6\xdc\xd3\x93\x9b\x1f\xc3\xbf\x7f\xbe\xbc\xfe\xf1\xfd\xf9\xe5\xcf\xe1\x6f\xe7\x93\xbb\x8b\xd3\x1f\xe6\x57\xe7\x93\x8b\x8a\x13\x7b\x72\x3b\xb9\x39\xbb\xdd\xe3\xa7\x6e\xd6\xda\x3d\x11\x3c\xe0\x1b\xb5\xc8\x79\x9b\x4c\xc7\x9a\xab\xa8\xd6\x13\x36\xb1\xec\xab\x15\x7e\x60\x8b\x35\x00\x70\x52\x8a\x18\x4b\x84\x24\xbc\xe3\x05\x3f\xe5\x05\x4f\xd5\x6a\xcc\x26\x8c\xe2\x0a\x30\x5e\x44\x1b\x95\x90\xa8\x29\xcd\xec\x60\x11\x46\x2f\x8c\xbc\x29\xc8\x67\x0b\x57\x4b\x22\x85\x4d\x45\x98\x57\xca\x06\x79\xce\xe4\xd9\x83\x90\x45\x09\x8a\x36\x4f\x53\x46\xd5\xda\x17\x02\x56\x10\xdb\x4a\x9d\x6c\x92\x94\xe7\x3e\xb1\xf3\x25\x95\x05\x97\x5d\xdb\x56\xc7\x4a\xd7\xa4\x9c\xb0\xf6\x80\xbb\x29\x83\x76\x9f\x9e\x4f\x41\xd1\x8d\x0a\x9b\xb5\xd0\x56\x3e\x93\x48\x3a\x4a\x35\x6e\x38\xc4\x30\x15\x8a\x0c\xf4\x58\x3d\xbd\xdc\xbd\x10\x0f\x52\xac\xac\x2b\xeb\xa5\x0c\x13\xae\x91\xf6\x1f\x67\xb2\xc8\xb7\xbd\xb5\xd7\x5b\x60\x74\xd0\x70\xaf\x23\x48\x64\x35\xd9\x33\xda\x4f\x99\x2d\xfd\x02\x54\x5a\x8b\xd7\x25\xf7\x9e\xf3\xe2\x21\x3c\xaa\xe3\x4a\x94\x9a\x93\xf7\xb7\x3a\x0e\x21\x0b\x18\x8c\xc2\x42\x95\x32\xd6\x04\xde\xdc\x24\xf2\x78\xc3\x3f\xbd\xb1\x3d\x45\x12\x1b\x97\x72\x0d\x18\x13\x45\x6a\xee\x83\x5b\x23\xe4\x76\x0f\xd7\x4c\xee\x18\xaf\xfd\x77\x02\x2b\x59\xc1\x64\xe0\xed\x3b\x08\x43\x7d\x10\xdb\xb6\xf9\x6b\xa4\xcd\x64\x61\xee\x07\x28\x24\xcb\x85\x79\xd1\x61\x5c\x53\x84\x2e\xbb\xbf\x21\x96\xa5\x92\xda\xbb\x5d\x76\x87\xb0\x91\x83\xb6\x4d\x2b\x60\xa5\xbf\xe2\xd3\x3b\xef\x29\xd5\x64\xe6\x0c\xe1\x2b\xd6\x73\x42\xb1\x3b\xe4\x97\x37\x93\xf5\x57\xb5\x60\x4b\x08\x64\x23\x3b\x41\x2e\xc0\x53\x06\x53\x61\x13\xf5\x00\xaf\x5e\x03\x13\x63\x97\x40\x2a\x34\xf8\x8f\xa4\xb9\x54\x8b\x5f\x4a\x82\x00\xbc\xfd\x72\xd8\x39\x5b\x60\xb6\x07\xa4\xf7\xae\xe7\x41\x70\x67\x39\xb4\xab\x94\x49\x1b\xd9\xe6\x75\x29\xcd\x51\xfc\x1c\xe8\xa9\xfe\xee\xf1\x5a\xa5\xf4\xe7\xde\x58\x33\xeb\xd9\xc9\xf1\xfd\x17\x63\x6e\xfe\xa9\x46\xd8\x4c\xd5\x41\x64\x03\x95\x1e\x1e\x68\x0b\x1e\xdd\x3f\xf2\x3c\x46\xf3\x3f\xc0\x99\xc6\xec\x07\xf5\x28\x1e\x44\x3e\x62\x91\xc8\x0b\x4e\x7c\x85\x1a\xf0\x1c\xb0\xa1\xa8\x9c\x99\x84\x40\x1f\x24\x7f\x94\xba\xcc\x05\x2b\x92\xd5\xba\x10\x79\x88\xc6\x51\xb9\x11\x47\x05\x52\xd5\x66\x22\x22\x42\xb6\x8e\x01\x58\xa6\xfc\xa1\x49\xc0\xf8\x14\x26\x19\x36\x75\xd1\xca\xd6\xdd\x6d\x93\x9f\xed\xc2\x4f\xd1\x80\x91\xd0\x44\x0a\xad\x11\x5b\xa9\x94\xcb\xd5\x78\x3c\x86\x44\x1f\x6f\x06\x2d\x74\x2a\x30\x74\xa0\x3b\x94\x7e\xaa\x94\x16\xe9\xd6\x91\x88\xb9\x38\x2a\x00\xee\x7e\x2a\x84\xd4\x09\x1a\xb6\x5a\x96\xff\x4d\xdd\xb9\xf4\x79\x7d\x71\xed\xd7\xf3\xc1\x51\xba\x1d\xe5\x40\x2e\xd5\x01\x25\xe1\xfb\xed\x37\xaf\x27\x45\x9d\xb7\x97\x25\x95\x1c\x1a\x4a\xfd\x93\x4a\x3a\xa0\x20\x4f\x22\x1b\x6d\x2d\x89\x88\x90\x9e\x14\x7e\xda\x3e\x66\x8d\x88\xe0\x03\x82\x81\x77\xc4\xf5\x0e\x0c\xe9\xed\x63\x08\xb8\xa9\x4f\xf7\xe0\x6d\xb1\x3f\xbd\x5b\x6b\x87\x06\x86\x4c\x7b\x6e\x83\x21\xaa\x13\x46\x5d\xa6\x5b\xb8\x71\xb9\x00\x6a\x70\x0f\xc4\x81\x57\xa9\xe2\x34\x83\x50\x3e\xef\x75\x73\x04\x75\x81\x93\x4d\x17\x2a\xe7\x2b\xc1\x36\x22\x4e\xca\x4d\xab\xb0\x71\xcd\x3d\x04\x3e\xaa\xd2\x72\xd3\x4d\x15\x7a\xa8\x02\xed\x1b\x89\xff\x3a\x85\xea\xfa\x73\xe8\xb8\xc8\x08\x9b\x65\x93\xda\x8b\x2e\x24\x1a\x6b\x73\x52\xe6\x89\x06\x96\xdd\xa7\x44\xce\xba\x62\xb0\x68\x70\xc0\x6f\x33\x34\xb2\x57\x66\xf7\xc8\x7a\x46\xe9\x13\x8d\xb3\x0a\x5e\xfb\xee\x43\xa1\x0e\x4a\x1d\x9e\x6b\x2f\x57\x65\x83\x7b\xaa\x17\x50\x02\xd4\xc6\x20\xf3\x06\xa1\xe6\xa0\x40\x82\xf6\x14\x8a\x2d\x6d\x2c\xe6\xbd\x08\xa8\x0f\x63\xc8\xc9\xf1\x88\x94\x4f\x3f\x7e\xa3\x2d\x08\x88\x70\x5a\x5e\x63\x29\x7c\x25\xe8\x01\x7a\x78\x6b\xe1\x79\xd8\x43\x2c\x02\x08\x0a\x63\x2e\x8b\xd6\x02\x3c\x7a\x15\xca\xc2\x4f\x7e\xe2\x65\xda\xfe\x3a\x95\x0f\xaf\x62\xce\xd6\xc9\xcf\x37\x0c\x87\x9a\xf2\x27\xe4\xbb\x1a\x1a\x14\xb2\x1f\x20\x08\xc3\x35\x7f\x82\x26\x58\x99\x07\x1c\x74\x9b\xbe\xc3\x0c\xbb\x28\xa2\xb5\xd7\x3c\x80\xa0\xd1\x11\x4b\x52\x42\x6e\xea\xe7\xc6\x67\x84\x40\xec\x75\x08\x62\x4d\x56\x52\x85\xa9\x94\x94\x14\xe0\x8a\x33\x02\x48\x85\xc5\xb2\xa4\xd8\x8f\x14\x1c\xc8\x4a\xb8\x6f\xa9\x15\x0a\x11\x60\xd4\xcf\x8a\x9f\x1a\xae\x14\x09\xd2\x55\x59\x98\x35\xde\x89\x28\xbf\x73\x3d\x53\x40\x95\x00\x64\x26\xab\x55\x35\x06\xc9\x42\xf9\x92\x5c\x20\xc1\xb7\x36\xda\x5b\x91\x3c\x98\x8d\xda\x5c\xd6\x6e\x81\x82\x04\x68\xae\x3d\x72\xdb\xb2\x80\x25\xfc\x5e\x6c\x75\x98\x4c\x9a\x56\x14\xeb\x5a\x90\x89\xe9\x0f\xcd\xd7\xfe\xa9\x80\x81\x9b\xe7\x3e\x25\x64\xbf\xb3\x0c\x2b\xfd\x60\x3e\xde\x81\x11\x6e\x14\x6e\xd6\xa0\x0f\x76\xf5\x36\x45\x12\x13\x7e\x9c\x69\x0e\x3d\x0c\x10\x40\x9e\x21\x8c\x33\x8c\x5c\x82\x8b\xaf\xb9\xdf\xce\x24\x25\x12\x08\x0e\x39\x23\x70\x9a\xd3\x46\x11\xf8\x48\x5f\xbe\xad\xb0\x07\x01\xb5\xaa\xa5\x99\xad\x56\x69\xbd\xcb\x90\x97\x0f\x96\x07\x54\x8d\x31\xca\xd6\x86\xd7\x5a\xe1\x13\xb1\xa5\x34\xb9\x9d\x78\xd2\x20\x10\x10\xdf\x24\x76\x51\xcc\x4a\x8e\xb7\x9f\x48\x98\xe1\x9b\xc8\x56\x28\xa7\x05\x72\xde\x9c\x9d\x5e\x9f\xdd\x7e\x36\xbc\xa9\x05\x7b\x0e\x06\x9c\xda\x76\xbe\x3b\x7b\x3f\xb9\x3b\xbf\x9d\xbf\x9b\x5e\xbf\x04\xe2\x94\x1e\x3d\x01\x72\x7a\x43\xf9\x49\x4e\x95\x2c\xc4\xa7\x83\xce\xe4\xbc\x94\x73\x3e\x20\xf4\xc9\x65\x28\xda\xa5\xee\x60\xa1\xcd\xfc\x2a\x2e\xf9\x09\x71\xdb\x12\xea\xc4\xa6\x53\x59\x7a\xa3\xe1\x32\x49\x53\x88\x04\x77\xe6\x75\x8a\x32\x34\x83\x0a\xf2\xc7\xd2\xf9\x92\x4c\x9d\xc9\x45\x25\xfd\x0d\x98\xfc\xd6\xe6\x12\x8c\x31\xe0\x99\x19\x80\x3c\x81\x08\xdb\x5d\x29\x58\x56\x89\x14\xbe\x19\x30\x6b\xa6\x7d\x9d\x34\xf5\x34\x89\x2f\x89\xac\x23\xc5\xab\xaf\xae\x69\x57\x5c\x65\x7d\x5a\xf5\xd3\x3e\x74\x3d\xc4\x4d\x9c\x48\x54\x4c\x2b\xbb\xf9\xa6\x7d\xe9\x1e\xfb\x2d\x00\xe3\x6e\x66\x92\x83\x0f\x42\x17\x3c\x2f\xfc\x44\xd2\x44\x60\x62\x38\xef\x9c\xb8\x4f\x10\x81\xa6\x96\xb5\x71\x36\xa2\xd0\x8c\x75\x02\x9e\x0a\x4e\xe4\x36\x51\x5a\xea\x42\xe4\x64\x36\x99\xfc\x7c\x33\x93\xdf\x99\xe3\xeb\x0d\x9d\x42\x94\xbe\x0b\xab\x40\xa4\x8e\xaa\xd4\x6f\x35\x94\x50\x82\xbd\x46\x1b\xf5\x46\x70\xa9\x19\x6c\x8d\x34\x15\xb9\x5f\x19\xd8\x1e\x21\x62\x4a\xa2\x0d\x54\xcf\xfe\xfb\x37\x8c\xc0\xad\x66\x28\x4c\x7b\x5d\x1a\xb1\x8d\x2a\x9a\xeb\xa9\x8b\x68\x00\x10\xe7\x2f\xb9\x72\x5a\x02\x9f\xfa\xae\x22\x02\xeb\xb7\x2e\xa2\x6a\x18\x52\xaf\xb5\x74\x8b\xc5\xfd\x63\x29\x3d\xe3\x52\xea\x71\xae\x87\xa7\x04\x5b\x2b\x23\x40\x5d\x6e\x2b\xef\x66\x76\x44\x27\x29\xa0\xdc\xcc\x30\xb6\x9e\x3a\xb5\xec\xb2\x87\x60\x3f\xa0\xa8\xc3\x10\xda\x93\x16\x46\x25\x9f\xc6\xd0\xfa\x76\x76\x26\xae\x7d\x19\xe6\xc2\x89\xc5\xaa\x4a\x55\x58\x0e\x12\x07\x0f\x25\xac\xab\x79\xc1\x91\xdf\xec\x6c\x23\x11\xca\x58\x2d\x65\x7e\x60\xf2\xc7\xdb\x10\x53\x5b\x89\xca\xc6\x56\x84\x7c\x0e\x96\xc3\xc1\x71\xc0\x0c\x59\x7c\x4f\x4f\x2f\x5c\x5d\x73\x8e\x4f\xf4\x49\x60\x87\x8b\xcb\x8b\xb3\x10\xaa\x30\xbd\xb8\x3d\xfb\xfe\xec\xba\x12\xcf\x7f\x7e\x39\xa9\xc4\xe4\xdf\xdc\x5e\xd7\x42\xf1\xbf\xbb\xbc\x3c\x3f\x6b\x60\x1e\xce\x6e\xa7\x1f\x2a\x85\xbf\xbb\xbb\x9e\xdc\x4e\x2f\x2b\xef\x7d\x37\xbd\x98\x5c\xff\x47\xf8\xcb\xd9\xf5\xf5\xe5\x75\xad\xbe\xbb\xd3\xdd\xe8\x89\x4a\x37\xda\xcd\x3f\xde\x39\x1b\x50\xab\xb6\x6e\xe3\x6a\xfa\xe5\x03\x76\x71\x4f\xe4\xd9\xbe\xe5\x68\xc3\xf5\xe3\x30\x1d\x07\x6e\x0c\xd3\xd4\x41\xab\xee\xf9\xf3\x45\x57\x86\x2e\xe3\x87\x89\x3d\x73\xaa\xcd\x9f\x03\x09\xb8\x53\x01\x74\xb5\xd4\x0c\xb7\x94\x9e\x1d\x87\x36\x03\x0f\xd6\x8a\x77\xe6\x2b\x93\xf1\x8b\xb7\xd4\xd6\xb1\xaf\x9d\x9e\xca\x6b\x0f\x23\xd2\x73\xb1\xa1\xec\x6a\x74\x50\x99\x25\x1b\x48\x62\xab\x28\xd8\x87\x21\xec\xde\x74\xc3\xac\x9c\x60\x39\x76\x25\xf6\x6d\x0f\x5b\xda\xcd\xbe\x37\xb4\xfd\x54\x49\xb3\xed\x35\xaa\x96\x01\xed\x06\xca\xac\x21\xed\xbe\xe5\xfa\x7e\x68\xbb\xa9\x92\x66\xbb\x41\xed\x7b\x52\xbb\xc1\xe0\x5d\xb4\xd3\xe8\x0c\x10\x62\x61\x31\xd5\xe6\xb9\x18\x7f\xf7\x4a\x90\x3f\xbb\x5f\x1b\xcd\x06\x78\xd9\xeb\x65\xc6\xfb\x3b\x32\xa0\x35\x6e\xbb\xf2\x1a\xab\xfc\x0d\x3c\x85\x1e\x2e\x72\xc1\xef\x63\xf5\x48\xf3\x51\x47\x86\xb2\x5e\xd2\xbc\x3a\x40\x46\x86\xdb\x23\xa2\xc8\xc9\x03\x85\x28\x35\x5f\x3c\xc0\xe4\x12\xe2\x45\x47\x1d\x2c\x48\xbd\x5c\x27\x22\x02\xea\x27\xe9\x67\x67\x26\x51\x9b\x6f\x4b\xdf\x6c\x66\xd5\xb4\x88\xa8\x43\xa0\xab\x4e\x87\x46\xe7\xba\x0e\x26\x96\xe2\x80\xca\x1c\xc0\x74\x8b\x1c\xee\x4c\x30\x20\x89\x04\x63\x72\x6e\x2e\x3c\xb9\x88\x12\x2d\x82\x8c\x71\xad\x27\xf6\x2f\x87\xa5\x42\x29\x78\xd1\x6a\x76\xed\x6d\x0f\xe7\x51\x51\xf2\x94\x41\xb8\x12\x31\x30\xa2\xad\x12\x7f\x89\xb8\xc4\xd0\x98\x42\x6c\x32\x88\xea\x0f\x63\x3a\x66\xf2\x67\x00\x4a\xe0\x14\xbc\xd2\xec\x7b\x80\x3c\xd8\x97\xe9\x10\xde\xf0\x02\xce\xe2\x3f\x62\x1d\xee\xd9\x78\x26\x2b\x19\x98\x82\xaf\x2a\xc9\x98\xc6\x33\x69\xb3\x75\xc4\x2a\xd2\x63\xb8\xf1\x8d\x55\xbe\x3a\xa6\x5c\xea\x66\xb1\xab\xfb\x85\x52\xf7\xc7\x42\x1e\x83\x4d\xaa\x38\xe6\x65\xa1\x8e\x01\x2e\x85\xf3\xaf\x8f\x6d\xd2\x63\x9b\x35\x5a\x1f\xaf\x93\x07\x01\xff\x37\x5e\x17\x9b\xf4\x5f\x74\xb6\xfe\x74\xb4\x4a\xf3\x23\xf3\xed\x51\xf8\xed\x91\xfd\xf6\xc8\x7e\x7b\x64\x3e\xc3\xff\xcb\xb6\xe8\xde\x11\x9f\xb8\x39\xcb\x46\x33\x99\x48\x2d\xf2\x02\xb4\x9f\xc7\x3c\x29\x7c\xaa\xab\x2d\x7b\xf5\x9f\xff\xc9\xc6\x39\x7f\xc4\x88\xd8\x77\xbc\xe0\x57\x68\x5f\xfc\xfb\xdf\x5f\x81\x43\x15\xa3\x98\x32\x9e\xff\x52\x8a\x62\x26\xb5\x30\x9b\x90\xfd\xaf\x99\x04\x0f\xec\x66\x3b\x2f\xd0\xee\x8a\x36\xc8\x58\xb3\x6f\xb1\xcc\x29\xb2\x91\xc6\xda\x94\xd4\x11\x4e\x90\xf0\xb4\x25\x4b\x7f\x87\x89\xfe\x97\xf4\x1d\xbd\x3f\x60\x5b\xff\x92\x56\x77\xb5\x4d\xb6\xa4\x7f\x49\xe1\x00\x4d\x15\xb7\x60\x2d\xe6\x16\x2f\xdc\x93\xa9\x71\x6d\x7b\xa4\x01\x0d\x78\x51\x37\x7d\xfb\x5e\xb9\x41\x46\x74\x6b\xb9\x6f\x88\x11\xf0\x15\x78\x3f\x04\x78\xcf\x13\xb3\x43\x6e\xd0\x12\x0a\x9a\x1b\xf6\x1c\x74\x52\x72\x9d\xbb\xf2\xd0\x70\xa1\xbf\x3e\x39\x3e\x1e\xb1\x95\x86\xff\x2c\x7e\x81\xff\x00\x7a\xe8\xb9\x48\x7d\x1b\x83\xe9\x80\x70\xcd\x59\xde\x3f\x13\xcf\x81\xa2\xfb\x1c\x3c\xf2\xb5\x65\xfa\x5d\x29\xe3\x54\xf8\xd0\xc6\x8a\x4b\x24\x55\x66\x26\xed\x44\x35\x33\x0f\xc1\x1c\x2f\x44\xc4\x8d\xe0\x6b\xd4\x8d\xe0\x52\xb5\x2c\x84\x44\x6b\x58\xee\xb3\x3d\x72\xb4\x5c\x81\x5a\x0c\x50\x48\x5e\x10\xe4\x5c\xc0\x8f\x50\x09\x10\xb3\x8f\xea\x8f\xd8\x56\x95\xc4\x31\x0e\xcc\xb9\xb1\x88\x52\x48\xe4\x60\xd9\x83\x58\x2e\x8a\x32\x97\x8c\xb3\x8c\xcb\x98\x6b\x58\x81\xcb\x1c\xbc\x9d\x39\xe3\xcd\x86\x8e\x10\x8e\xab\xca\x02\x38\xb1\x10\x59\x10\x8e\x04\x92\xc0\x07\x6d\x1e\x05\x8d\xc0\x33\x01\xb8\xa8\x1b\x1f\x8e\x67\xd2\xe6\x23\x24\x2c\x1c\x5a\xca\x22\x95\x6d\x89\xf1\xa8\x3e\xe8\x89\xb5\x9c\xd1\x70\x8f\x3c\xde\xa4\xfe\xee\x88\x25\x55\xd7\x1a\xf0\xcd\x17\x41\x8a\x77\x9b\x24\xff\xb5\x90\x91\x8a\x45\xae\xdf\x98\x6d\x98\xb8\x7b\x07\xea\x0f\x89\xf6\x93\x01\x52\xca\x1c\x6e\x64\x2d\x34\xc5\xbb\x04\x53\x66\x74\x2a\x0c\xe5\x6d\x7a\xce\xfe\xad\xf2\x5b\x47\xc1\xb4\xb5\x97\xfe\xf9\x59\x11\x31\x21\xae\xd3\xde\x39\x9f\x6e\x82\xc0\x2d\x1b\x4a\x5c\x2c\x14\x75\x1c\x52\x4e\x6c\x3e\xed\xa4\x80\x0c\x99\xb9\xd0\xc5\x4c\xd2\x09\x3c\x62\x4b\xc1\x8d\x9e\x37\x62\x91\x7e\x40\x61\x8c\xc7\x7d\xf1\xa8\x3c\x06\xc7\xa6\xb7\x01\x30\x6c\xa5\x70\x6f\x24\xc6\xd7\x38\x45\x60\x23\xc0\xa0\xeb\x86\xee\x54\x15\x18\xac\x56\x81\xf8\x84\x71\xb0\xd9\x52\xea\x19\xd6\xc2\x64\x3d\x30\x12\x5b\x74\x14\xb3\x7a\x3b\xf0\x81\x11\x3c\xd8\x3b\x84\x81\x04\xc2\x11\x34\x6e\xc2\xd2\xe2\x3e\xf3\x3e\xdc\x90\xb2\x1e\x6c\x33\x5d\x9b\x6a\xc7\x40\x40\x03\x9e\x66\xb7\x30\x9f\xee\x35\x58\x69\x91\xdb\x54\x2e\xd8\x57\x24\x98\x5c\x27\x79\x7c\x94\xf1\xbc\xd8\xda\xe5\x9b\x26\x0b\xc8\x00\x91\x26\xf7\x82\x4d\xf2\x5c\x3d\x3e\xf7\x28\x74\x8a\x96\xae\x1b\xf6\x21\x48\xf6\xa1\xb7\xfc\x56\x7a\xd9\xba\xb9\xe3\x69\x54\xb6\x5d\x86\x8f\xd6\x7a\x72\x51\xe4\xdb\xb9\x59\x88\x9b\xac\x53\x52\xf4\x0a\x9a\xe8\xaf\xe4\x0e\x63\xc9\xad\x99\x30\x3a\x59\x72\x2b\xb3\xfa\xdb\x61\xc9\x6d\x21\xc0\x6d\xb2\xe4\x4e\x2f\xa6\xb7\xd3\xc9\xf9\xf4\xff\xd4\x4a\xfc\x79\x32\xbd\x9d\x5e\x7c\x3f\x7f\x7f\x79\x3d\xbf\x3e\xbb\xb9\xbc\xbb\x3e\x3d\xdb\x4d\x7b\xd5\x6c\xbd\x57\xc1\x8f\x58\x58\xcf\x09\xbb\x0d\x80\x1a\x18\x6c\x40\xfa\x37\xe5\xc7\x85\x55\x65\x36\x73\x22\x57\x23\xd8\xa8\x27\xec\x2c\xcf\xa7\x1b\xbe\x12\x57\x65\x9a\x02\x9c\x0a\x23\x7b\x4e\x73\x01\x17\xcf\x11\xbb\x52\xf1\x34\xf8\x0e\xc2\x11\x5b\xbb\x01\xf5\xf3\x38\xce\x85\xd6\x58\xfd\x88\xea\x0f\xc0\x43\x2e\xd4\x91\xc0\x73\xfc\x81\x27\xa9\xb9\xbf\x9d\xb0\xef\x78\x74\xaf\x96\x4b\x0c\x9f\x19\xb9\xc0\x29\xf6\x4b\xa9\x0a\xce\xc4\xa7\x08\xa8\xde\xda\xd7\xc9\xb9\x5a\xfd\x0a\x50\xe5\x1e\xee\xa9\x8e\x4b\x0a\xa4\xba\x9b\xb7\x1f\xe7\xed\x82\x80\x7a\xf9\x01\x3f\x7d\x8f\x5f\xb6\x1b\x28\x8b\xf4\x19\xc2\xe3\xcf\xd5\xaa\x3d\xf1\x10\x68\xd7\x94\x2d\x89\x1c\x09\x11\xb1\x8b\xa8\x15\xd3\x89\xbc\x9f\xc9\x9f\xd7\x42\x32\x55\xe6\xf8\x13\x5c\xf3\x8d\x9a\x99\x96\x7a\x2d\x20\x4d\xf5\x88\x3d\x0a\xb6\xe1\x5b\x54\x9b\xe1\x4e\xe0\xb2\xa5\xc0\x92\x81\x53\xc4\x7c\x9d\x26\xd2\x48\x8b\x2c\xb1\x71\x09\xf5\xa9\x7f\x8e\x1b\x97\x25\x3a\xe4\x87\xf3\x10\xef\x3a\x4f\x2b\xf8\x3c\x30\x95\x79\xdc\xa4\x05\x08\x91\xe4\x86\xa4\xb2\x4a\xdd\x97\x99\xa7\x44\x7d\x65\x9d\x93\x30\xdc\x0f\x2a\x89\x59\x5c\x66\x69\x12\x39\xb9\xfb\xa8\xf2\x4e\xde\x67\x0c\xa0\xe9\x7f\xea\xd4\xc3\xc2\x76\x75\xac\x25\x3a\x27\x40\xd2\xed\x60\x80\x7e\x61\x0e\x6c\x96\xc8\x28\x2d\x21\xcd\x5c\xa9\x45\x7e\xe4\x52\x47\xbb\x58\xbf\xdf\x3e\x49\xb6\x27\xe1\x3c\x3c\xac\x2d\x0c\x3a\x4f\xd5\x2a\x89\x78\x1a\x82\x9b\x3d\x2a\xc2\xb1\xf0\xda\x6d\x4f\xc9\x84\x21\x0e\xc2\x36\xa8\x93\x48\x2b\xcb\x05\x10\x41\xcf\x41\x94\xcf\x49\xdc\x1d\xd2\xee\x25\x33\x17\x74\x6c\x57\xc8\x91\x6b\xdd\x0b\xf6\x84\xf3\x75\xdb\x4c\x6c\xa0\x62\x62\x0a\x7f\xa6\x1e\xa5\xc8\x41\x83\x05\xd8\x87\xe9\xa9\x54\xa0\x9b\xb8\xec\x6c\x0e\x9f\x6c\xb3\x13\x2e\x1d\x10\x1b\x23\x67\x57\xc9\x83\x90\x9f\x9f\xd4\x3c\xa8\x20\xe2\xd1\x5a\xcc\xad\x5e\xfe\xdc\x22\xcb\x1d\x00\x03\x85\x95\x4d\x93\x12\x8a\x52\xe7\xde\x84\xab\x13\xb6\xb8\x29\xbb\xd0\x91\xb8\x23\x22\xcb\x34\x62\x1e\x8b\xe8\xfe\xb3\x8b\x66\x0f\xb2\xb2\x0d\x61\x9c\xbd\x13\xd1\x3d\xbb\xbb\x9e\x62\x34\x70\x52\x30\x23\x0a\xf4\xda\xa7\x7d\xea\xbc\xbb\x15\x7c\xf5\x02\x14\x56\x7d\xf3\x56\xf9\x54\x05\x2e\x5b\x9f\x69\x10\x01\xa2\x20\x5e\xd2\x08\x49\x8a\xa5\x01\x20\x18\x2f\x6c\x36\x23\x30\xc4\x33\xbd\x81\xe4\x45\x65\x11\x64\xfc\x4b\xf9\x42\xa4\x1d\xc4\x9d\x99\x8a\xe7\xd6\x4f\x72\x28\x98\xa7\x51\x96\xb5\x63\x90\xd7\xd1\xc6\x31\x70\xa3\xb1\xde\xd2\x8b\xec\xfe\x1b\x1d\xd0\x6b\xa8\x90\x3f\x1c\xee\xf5\x5c\x43\x78\xf7\x32\x59\x59\x6f\x5b\xb2\xa4\x14\x4b\x18\xd0\x6f\xf4\x60\x90\x97\xa6\xa4\x2b\x15\x13\x4c\xcf\x71\xe1\x19\x2d\x48\x90\xf5\xc4\xe3\x2a\xc2\x26\x58\x1c\x20\xd4\x6b\x76\x84\xe0\x31\x53\x4b\xb2\x26\x66\x59\x9a\x00\x33\x74\x8c\x24\xf4\xc0\x9e\xa1\xab\xe8\xf8\xb0\x34\xdb\xd8\x80\xe4\xe3\xca\x02\xf1\xba\x92\xf1\x82\xc0\xc0\x08\x86\x39\xb0\xc1\xcd\x1f\x78\x37\x99\xda\x8b\x67\x4c\xeb\x68\x8f\xf3\x26\x57\x29\x61\x2b\xa4\x7d\x64\x2b\xc0\x63\xdd\x06\xe4\x47\x3c\x8d\x4a\xf2\x93\x41\xba\x7c\x9b\x05\x7f\x37\x82\xd0\x7b\xfd\xcc\x44\x57\xad\xfe\x75\x25\xf3\xd0\xec\x8a\x2e\x40\xeb\xa9\x36\x85\xdd\xe6\xc5\x55\xaa\x16\xb0\x72\xba\x51\x82\x3b\x4e\x2c\x23\xae\xf3\x24\x1e\xa2\xef\xd8\x31\xb9\x74\x9f\xee\x6a\xe0\xa5\x35\xfd\xb8\x9a\xec\xba\x67\x94\xc8\xa0\xc6\xdc\x38\x8c\x02\x61\x49\x59\x55\xab\xd7\x93\x82\xd2\x78\xc0\xb2\x72\xe7\x53\x87\x9d\xa1\xda\x97\x83\x26\xba\xc9\x14\xb3\x67\x2c\x3d\xb9\xcc\xee\x49\x3e\x80\xee\x03\x45\x99\xe3\xfc\xe8\xb6\x2c\xca\x58\xc4\xf3\x27\xf4\xe1\x8c\xbe\xed\xd7\x17\x37\xd2\xd8\x3c\xb0\x01\xca\x23\xa3\x2a\xc4\x3c\x8f\x7d\x3f\x46\xb0\xdf\x23\x9e\x81\x19\x1e\xdc\x1a\x0f\x6f\xc7\xb6\x8e\x6b\x1f\x5d\x64\xe4\x25\xc6\xfc\x23\x7e\x5b\xb5\xe4\xc0\xd9\xb7\x8e\xdc\x22\x45\x78\xb7\x59\x39\x7e\xb9\x56\xe2\x6e\x7a\xad\xdd\xfa\x0a\xb3\x02\xfc\x90\xc5\xf5\x12\xb2\xa3\x2c\x94\xf7\xf6\x40\x7f\xa6\x40\x3b\x1c\x46\xf4\x81\x80\x9c\xc6\x1d\x48\x11\xab\x7e\x5b\x21\x34\x00\x7f\x3c\x08\x01\x9d\xe5\xc2\xfa\x0d\xb7\xa2\x70\xbc\x0e\xa9\xcd\x2b\x08\x6e\x31\xd7\xeb\x2a\xb1\x8d\xe5\xae\x70\x64\x64\xe0\xc4\x22\x55\x3f\x52\x9b\x4c\x49\x80\x25\x61\x94\xda\x4c\x52\xe1\x36\x3b\xbc\xf3\xac\x55\x42\x1d\x47\x64\xd0\xc4\xc0\x19\xa1\x55\xfa\x40\x2e\xd4\x20\x89\x09\xe4\x95\x34\x0d\x3c\x35\x77\x43\x95\x23\xc1\x96\x3d\xd9\x21\x12\xa0\x96\x22\x3d\x17\xab\x44\x17\x22\x8c\x0e\x0d\xbf\x7f\xb6\x6c\xb6\x15\xe3\xc9\xae\xa1\xef\xcc\x66\xbb\xef\x16\x64\xe4\xd3\x80\xf6\x6c\x33\x11\x4f\xdd\x77\xbb\x17\x43\x2d\x80\xdf\x8b\xc3\xca\x79\x87\x6b\x00\x6f\x7f\x1a\xa9\xbe\xb4\x4b\x3f\xe2\x26\x89\x48\x98\xb8\x07\x34\x9a\x29\x5a\x95\x3c\xe7\xb2\x10\x42\xcf\x24\x39\x9e\x91\xb2\x2e\x64\x65\xa9\x01\x21\xdd\xdd\x26\x52\xba\x40\x06\x28\xf8\x64\xc9\x93\xb4\xcc\x3b\xcd\x0d\xb8\x2a\x9f\x44\x3b\xb1\x6b\x94\x4e\xa1\x58\xd6\x36\x69\x2e\x80\x39\xd8\x45\x8e\x35\xa5\xee\x36\xae\xc6\xf7\x76\x74\xc1\x1e\x2e\xfd\xe7\xdb\xd9\x9a\x3b\x62\x9a\xbf\xd1\xf3\x4c\x0d\x90\x78\x3f\x7e\xa3\xaf\x54\x47\x34\xb8\xfe\xa5\x61\x13\xdd\x01\x9f\xf8\xa5\x2b\x21\x0b\xd7\xf7\xe0\x79\xdc\x67\x8a\xe9\xc5\xc6\xb9\xd7\x3f\xd9\x29\xbb\x60\xd5\xae\xb9\x8c\x53\xa3\xf2\xf2\xa2\xce\x7b\xed\x70\xde\xe6\x4a\x54\x58\xe1\xd8\x1d\xd4\x07\x31\x32\xf3\xa8\x11\x60\xb9\x6f\x9c\x6a\x91\x99\x3b\xb1\x94\xb5\x5a\xaa\xf1\x92\x6d\x71\x3a\x5e\x87\xa1\x34\xc8\x6e\xc3\xfe\xea\xfa\xcb\x59\xd8\xf6\xcf\xa4\xbe\x54\xf7\xda\x32\x59\xfd\x06\x0c\x09\x1f\x9a\x47\x42\x44\x32\x87\x0e\x6a\x17\xdd\x70\xa0\xd4\x81\x40\x32\x23\xb5\x43\xc6\xf1\x99\xa4\x74\xf0\x88\x2e\x00\xb7\x32\xf2\xad\x69\xf6\xd6\x45\x17\xbf\xfd\x9d\x65\xdb\xda\xb2\x25\x2c\x2a\xa0\xb4\x53\x51\x54\xe6\xe0\xfa\x27\xf3\x24\x13\x78\x08\xeb\x41\x44\x32\xa0\x7a\x38\xc0\x16\xea\x89\x6d\x6a\x92\xb3\x47\x57\x3a\x75\x0b\x66\x48\x4c\x6c\xef\x0e\x7d\xca\x57\x96\xeb\x82\xe9\x42\x64\xad\xe2\xb7\xa2\x5d\x6e\x33\x31\x91\x52\x15\xf5\xf8\x94\xc1\xfa\x25\x77\xa5\xf4\xdc\x3a\x03\x0e\xa3\x49\x60\x32\xfa\xc3\xcd\xe5\x05\xcb\xf8\x16\xb0\x8f\x85\x62\xf8\x2a\x10\x8e\xd6\x05\xd5\xbe\x19\xa8\x76\xbe\x2a\x55\x70\x4c\x2d\x88\xba\xdd\x3f\x41\x35\x36\x95\x45\x58\x33\xb4\x24\x8d\xcc\xca\x55\x7a\x94\xa5\x5c\x06\xf0\x76\x3d\x66\xb5\xea\x43\x3c\x83\xf3\x6c\x12\x62\x0c\x1a\x00\xf6\x0a\x5a\x0b\x79\xd9\x0a\x80\x06\xde\x1d\xbb\xa0\x0e\x83\x30\x74\xca\x88\x9d\xc0\xce\x0f\x98\x05\x06\x73\x22\x20\x7b\x86\x85\x65\x38\x64\x0f\xd7\x00\xba\xed\x64\x00\xe7\x51\xca\xb5\xde\x89\xd2\x79\x11\x2a\xf9\x20\x6a\x71\xbf\xf8\xaa\xb6\x13\x61\x84\xc0\x6d\x82\xf7\x52\xf7\x18\xd8\x12\xac\xe8\xf2\x49\xdf\x02\x7d\x3f\xc8\x06\x41\xd0\x07\xe2\x8b\x82\xef\x91\x09\xf2\x5e\x6c\xad\x85\x8b\x44\x15\xdf\x88\x91\x33\xb6\x3a\x6b\x62\x00\xfa\x6b\x16\x3c\x93\x80\x8a\x7d\x1f\x36\x8f\xbd\x57\x6a\x84\xf8\x4c\xaa\x9c\x63\xb1\x3c\x44\x38\xcd\xe4\x7b\xa5\xc6\xdc\x5d\x62\xa9\xfd\x24\x6e\xea\x15\x12\x2a\x0a\x30\x87\xb5\xe9\xec\xbf\x37\x7f\x48\x24\xa6\x27\x4c\x36\xe6\x02\x45\xe3\x04\x2b\x0a\x1a\x64\xb3\xe1\xab\x47\xcd\x62\xa4\x94\x29\x13\xbd\x06\xb7\x0b\xfa\x39\xa1\x7e\x3a\x52\x10\x90\x95\x73\xa9\xcd\x1e\x06\x57\x8d\x78\x10\x64\xaf\xad\x60\x0c\xa6\xef\xce\x1d\x6c\x09\xf7\x25\xa5\xee\xe8\xd8\x6d\xc1\xa5\xe3\x90\xcb\x39\xc0\xcd\x07\x10\xda\x91\x81\xf3\x03\xcf\x76\x05\xc3\x1e\x5c\xe2\xbe\x59\x72\x84\x5a\xf5\x1b\x15\x64\x32\x87\x1c\x86\x95\x88\xd8\x70\xf4\xee\xe4\x81\x27\x4e\x2b\xa7\xfd\xfe\x94\x3b\xbd\x0d\x0c\x03\x45\xc5\xfe\xe3\x26\xe0\xb6\x74\x90\x41\x77\x17\x34\x82\x1d\x32\xc4\x01\x29\x1f\x6e\xe9\x31\xbb\x11\x82\x7d\x84\x91\x32\x95\x7d\xa4\x0c\xa4\x80\x82\x2e\x78\xd2\x9a\x20\x0e\xde\x9e\xca\xa5\x3a\x4c\xfe\xe7\xab\x06\xca\xf6\xa0\x51\x69\x6f\xe7\xa1\x38\x5e\xb0\xf4\xcb\x97\xa5\x15\xe9\x75\x30\xd4\xe6\xfa\xca\xdb\x9b\x28\xd8\xd8\xb6\xd4\xa8\x64\x30\xc5\x4f\x21\xae\xab\x2d\x12\xd3\xcb\x11\x92\xb1\xdf\x4b\xf5\x28\x51\x1e\x53\x4d\xec\xb5\xd9\x7f\xa0\xb3\xa0\x5f\x08\x35\xc1\x12\xa5\xe1\x1b\x60\x87\x9f\xb8\xbf\xd9\x0d\xba\xc0\xb1\xcd\x90\x3a\x4c\x83\xbe\x4b\x49\xbf\xe0\x00\x7f\x3d\x19\xb1\xef\x46\xec\x74\xc4\xc6\xe3\xf1\x9b\x11\x13\x3c\x5a\xdb\x16\xe1\x27\x28\xfa\x0b\xbe\x32\x65\x53\xda\x9f\x65\x50\x01\xa4\x07\x34\xfa\x89\x25\x41\xe4\xfe\xad\xc0\xaa\x66\xbb\x80\xa1\xd9\x14\x47\x46\x70\xa1\x68\xad\x12\xdf\x28\x40\x9e\x8b\x48\xe5\x16\xbb\xae\x0b\x95\x5b\x1c\xee\x03\xcf\x79\x22\x81\xb1\x82\x37\xa3\x10\xa8\xe6\x80\xb3\x5e\x7c\xe2\x1b\xe8\x7f\x22\x1d\x6d\xaf\x19\xa6\x5b\xd7\xfe\x62\x9b\x91\x9f\xed\x31\x4f\x8a\xc2\x28\x64\x7a\x26\x6f\xd8\xc9\xb7\x6c\x92\x65\xa9\x60\x13\xf6\x5f\xec\x3b\x2e\xb9\xe4\xec\x3b\xf6\x5f\xec\x94\xcb\x82\xa7\xaa\xcc\x04\x3b\x65\xff\x65\x86\xcd\x94\x77\xa1\x8c\x06\xb4\x1d\x31\xce\x64\x99\xa2\xa2\xf7\xda\x62\x5c\xdf\xb8\x7e\x71\x3f\x3b\x0b\x51\x3c\x0a\x21\x99\x56\x1b\x3a\x0a\xff\xe4\x4e\x7f\x9d\xc8\x55\x2a\x0a\x5a\x0f\x55\x34\x32\x56\x70\x04\x3d\x3d\x99\x49\x67\xa7\xfe\x93\x69\xf1\x9f\xd8\x7f\xb1\x8b\x32\x4d\x4d\x93\x8c\xa0\x31\x0b\xe9\x84\xd9\xe8\x30\x21\xc7\x8f\xc9\x7d\x92\x89\x38\xe1\x10\x1f\x66\xfe\x3a\xbe\x85\xd9\x9e\x97\x9e\x0a\x34\xdc\xd3\x2e\x1d\xdb\x21\xa2\xe7\x45\xb8\x26\x5c\xb2\xc0\x50\x5b\xe9\x04\xa1\x84\x9f\x0e\x57\x82\x3d\x01\x32\xed\x07\xba\xa3\x60\x2a\xbd\xd0\x41\xd9\x5e\xbf\xcb\xfa\x95\x99\x7f\xb5\xd2\x7f\xf4\xca\xfe\xb5\x6b\x3c\x7c\x1b\x41\x39\xc5\xc9\xf1\xc1\x99\x70\x91\x81\x58\x42\xdc\x77\x5b\x48\xf9\x61\xcb\xc6\x6b\x27\xba\xb7\xcd\x55\x1a\xb5\xd1\x82\xaf\x46\x2c\x73\x79\xa4\xec\xa6\x72\x8e\x6d\xdc\xc7\x98\x33\x81\x94\xcd\xd7\x16\x40\x64\xd6\x32\xc5\x1f\x1e\xc7\x6a\xc3\x13\xf9\x06\xea\xb0\xd4\x79\x7b\x06\xaa\xe5\xba\xb2\x7f\x84\x6e\xf9\x4e\x34\x63\x37\xb5\x7f\x55\xd9\xa9\xa5\x70\x6b\xdb\x0e\x07\xe6\x30\xf3\x19\x4e\x3f\xe3\x75\xe8\xa7\xc6\x12\xed\x9d\xfb\x80\xf2\x8d\x55\xd8\x53\x40\x97\xf7\x0c\x72\xbd\x7c\xeb\x2e\x73\xd9\x4f\xd5\x14\xaf\x95\x21\x56\x49\xaf\x5c\xb8\xb5\xc6\xde\xd1\x4d\x0c\xe3\x9e\x8d\x98\x4c\xd2\x63\x23\x2a\x8f\x2f\x94\x14\x8c\x6b\x9d\xac\x90\xf5\x0e\x0c\x6a\x98\x44\xd6\x2a\x65\xb7\xd5\x2b\x43\x20\x82\x40\x3f\x33\x4d\x42\xc4\x74\x61\xa4\xb0\x99\x82\x74\x3b\x93\xe6\x0b\xd2\x08\x20\x7a\x2a\x71\xe4\xe8\x58\x1b\x71\x8f\xdb\xba\xe8\x40\x0c\x0a\x6f\x59\x60\xbb\xa8\x19\x0e\x58\x70\xb4\x13\x0f\xf0\xb8\x5d\x04\xc4\xa0\x54\x9a\x65\x8d\x42\x38\xcd\x42\xa4\x4a\xae\xcc\xaa\xe8\x12\xc2\x20\x05\x9e\xa9\x09\x58\x58\x67\x0b\x8c\xb2\x42\xaf\xd0\x94\x18\x3d\x25\x89\xbd\x49\x4d\x97\x0b\xa3\xc7\x39\x6f\x8f\xd3\x46\xa8\x73\x5d\x3c\x15\x87\xc1\x96\xee\x8c\x0c\x56\xb9\x05\xce\x39\x4f\x22\x2a\x2e\x9e\xc3\x09\x7b\xd4\x85\xd0\xc8\x07\x99\x72\x3a\x3c\xdb\x23\xa6\x72\xa4\xef\xb4\x1e\x6c\xc7\xbf\xd5\xac\xbd\x7b\x4b\xef\x8c\xf6\x68\xb7\x7d\x92\x9f\xb4\xc1\x17\xd2\x63\x37\xfc\x9a\x81\x1f\x7d\xc2\x41\xde\x4f\xa6\xe7\xb5\xf7\x9a\xe1\x20\x2d\x31\x23\xb7\xd3\x0f\x67\xef\xe6\x97\x77\xb7\x8d\xf7\x4c\x69\xf4\xd3\x9e\x88\x90\xce\xd1\x7b\x0e\x4c\xfc\x2f\x98\xc3\x6c\xae\x96\x96\x1e\xa0\xff\xf1\xdc\xc8\x22\xd7\x0f\x7a\x59\x04\xb7\xeb\x30\xdb\x5a\x73\xe1\x74\x92\x9c\xc8\x39\xf9\x5a\xfb\x35\xb6\x3e\x60\x97\xf2\x3d\x7e\x7e\xa5\xd2\x24\xda\x8d\xe4\xb6\x87\xa5\xd1\xaa\x9a\xd0\xd8\x85\x80\xd0\x06\x32\xf8\x52\xa3\xf0\x7e\x56\x88\xa8\xf0\x58\x82\x66\xe7\xfe\x9f\x46\x8f\xee\xb7\xc0\xa0\x1d\xd6\x0d\x1b\x24\x27\x77\xe8\x04\x38\xd9\x81\x35\x1a\x92\xa5\xa0\x96\x0b\x96\x5d\x90\x79\x11\x27\x9f\x53\x65\xe4\xe1\x78\x78\x5c\xab\x94\xec\xb1\xc8\xc0\x3d\x93\x99\xc8\x23\x05\xa8\x4b\x24\x77\x51\x2c\x5a\x27\x69\xec\x33\x92\xbd\x86\x30\x15\x00\x93\xbf\xa1\xe4\xba\xc2\xa1\x67\x6c\xf1\x3b\xce\x7c\xbb\xec\xde\xe1\xee\x3e\x08\x79\xf6\x9c\xb8\xf3\x5d\xcb\xfe\x67\xc2\x47\xe3\x50\x10\x67\x5e\x0d\x07\x01\x6a\x7f\xd8\x9e\x41\x2e\x1d\x73\xd8\x53\xb2\xa9\xc8\x5f\x9b\x8b\xda\xbc\xd2\x32\xab\x0f\x25\x30\xa9\xa3\x1d\x1d\x41\x80\x5a\x40\x73\x36\x82\xa3\x26\xe8\x79\x8d\x69\x52\x67\xd2\x23\x3f\x5e\xe9\x50\x2b\x6c\x9d\x67\xb4\xbe\x5b\x64\xfb\x88\xbd\xaa\x74\xf4\x15\x30\x6d\x4b\x05\xf5\x91\x77\xbe\x32\x34\xb0\x5c\x47\x2c\x29\x66\xd2\xdc\xd9\xcc\xca\xcc\x45\x2a\x1e\x4c\xeb\x42\xef\x10\xe1\x15\xad\xe5\xc4\x76\x1b\x82\xa3\xb8\xe5\xd4\xa0\x65\x43\x9b\x30\x0f\x19\x9b\xd1\x2d\x1d\x0b\x6d\xb4\x56\xc8\x35\x25\x3e\x99\x0d\x90\x80\xf3\x13\x81\x6d\xb1\x90\xb6\x7d\x80\x77\xc3\x3c\xff\x33\x39\x5d\x02\xb1\x01\xd0\x29\xc4\x31\xda\x20\x6c\xf6\x21\x47\x9f\x99\x90\x37\x48\x91\x45\xc6\x4e\x04\xe5\x86\xc6\x9d\x24\x1e\x44\xbe\x2d\xc0\xa4\x0f\xe3\x2a\x05\x2f\xd6\x2c\x29\x46\xc0\x7b\x6a\x25\xe5\x4c\xf2\x38\xa6\x78\x70\x2c\x2e\xb8\xce\x76\xce\x33\x3d\x5f\xa8\x87\x5d\x6a\xf5\xa1\xc8\x5d\xdc\xd5\x59\xca\xe5\x1c\x4f\x90\x5f\x01\xbb\x1b\xa4\xed\xee\x02\x71\x94\x8b\xb9\xe3\x6a\x7b\x96\x76\x3a\x79\x7f\x6d\xa1\xcb\x74\xb5\x29\x17\xb6\xa2\x51\x05\x9a\xbd\xf0\xb4\x1e\xce\x4a\x47\xb8\xa9\x9c\x59\x6c\x49\x7f\x29\xe0\x61\xbd\xbc\x86\xb1\xb2\xab\x75\x1f\xae\xd7\xae\x80\xdf\x2a\xf2\xb2\xcf\xcc\xd7\xce\x90\xfa\xb4\x0f\x07\xfd\x35\x34\xc4\x27\x01\xff\xf6\x34\xeb\x65\xc1\x7f\x9d\x56\x9c\x26\x08\xd0\xf6\x36\xf0\xef\x53\xe8\x00\x5a\x61\x9d\x01\xad\x3d\x2d\x7b\x78\x0b\x54\x2d\xf8\xf8\xe7\xf4\x50\x80\x9c\xea\x6b\xa7\xf1\x84\x22\xd0\xae\x31\x9b\x4a\x66\xd5\xbd\x11\x7b\x85\x0b\x4b\xbf\x22\x03\x34\xe5\xf6\x27\xb0\x4c\x4c\xbb\x87\x28\x18\xea\x20\x33\x0c\x84\xf3\xdb\x0d\xfd\x80\x3b\xf9\x7a\x5f\x74\x5c\xbe\x4b\x20\x10\xef\x29\x5c\x2b\xe8\x43\x5e\x60\x01\x36\x8e\x24\x30\x85\x52\x77\xc1\x97\xe1\x3b\x6c\xbd\x9d\xec\x3b\xfb\xa1\x19\xa2\xac\xa4\xf3\xd4\x3e\x67\x2a\x9f\x49\x5b\x1a\x19\xa4\x35\x26\x08\xac\x17\x15\xc4\x05\x91\xce\x1f\xac\x54\x80\x02\xd8\x9c\x90\x90\x6a\xd4\x93\x8a\xd7\xa5\x00\xa0\xa0\x16\x0e\x81\x0a\x59\x28\x7c\x6d\x46\xf1\x30\x0b\x7c\x83\xc7\x7c\x9d\x78\x38\x4d\xcd\xa0\x24\x85\xe5\x39\x0e\x62\xf6\x74\x09\x6c\xdd\xcb\xd2\x08\xa3\x80\xd2\x7c\x26\xcd\xe0\xb1\x65\x02\xb1\x1b\x34\x2e\x33\xf9\x41\x69\x4b\x11\xa3\xfd\x78\x58\x60\x01\x0d\xdb\x2b\x97\x1a\x93\x7e\x78\x07\x87\x36\x79\x7c\x90\xec\xcd\x1d\x2d\x10\xac\x49\x3c\x4f\x5b\x55\xe6\xbe\x53\x11\x97\x33\xf9\x57\x33\x3c\x70\x9d\xe2\xd2\x4e\xab\x5a\xe2\x16\x86\x19\x04\x57\xd9\x47\x2c\xf4\xf5\xef\xde\x7c\x7c\x83\xc1\x55\xa5\x86\x6c\xc4\xa3\xea\x01\xe2\xb2\x5b\x94\x69\x0a\x38\x04\xdb\x03\xc7\xb0\xe4\xab\xd8\x89\xc3\xa3\x4b\xdd\x5c\x56\x55\x8c\x3e\x1b\xbd\x9f\x59\x7f\xc2\x22\x5e\x44\xeb\x23\xab\xcb\x91\x18\xb3\xa7\x1f\x4d\x1f\x46\x41\x19\x4d\x8b\xb5\x26\x78\x30\x17\xce\x7c\xe3\x28\x67\x2b\xeb\xc5\x74\x01\xcc\xff\xb7\xf5\x6c\x67\x8e\x11\x1b\x17\x27\xe2\x80\xaa\x7a\x9e\x7b\xdd\xe6\x1a\xf5\x37\x4e\xf2\x91\x48\xbe\x11\x31\x7b\x05\x61\xc0\xaf\xec\xe4\xcf\x64\xb6\x18\xa7\xdb\x65\x41\xbc\x85\x66\x50\xc6\x90\x95\x6f\xcf\x29\x37\x8f\x9b\xd7\xa4\x3d\x83\xdd\x79\xd1\x6a\xd7\x75\xdc\xd8\xb8\x9a\xfa\x2b\x2c\x68\xe3\x72\xa3\x73\x53\xc5\x04\x56\xd3\x83\x70\x7d\x3f\x62\x8b\x9c\x4b\x48\xa8\x14\x87\x4a\x95\xdf\x9d\x70\x79\x46\x52\x40\x1b\x17\x28\x79\xba\x85\xf8\x9f\xd1\x4c\x22\x83\x22\x50\xed\x6f\xa3\x34\x89\xd8\x2a\xe7\xd9\xba\xa6\x07\x89\x07\x21\x0b\xc8\xcb\x7d\x2d\xb8\x3e\x0c\xab\x91\xd7\x4b\x60\xbd\xbd\x69\x13\x09\xb7\x0f\x2e\x6b\x9c\xd7\xd0\xbc\x8e\xa3\x05\xf0\x99\x22\x9e\x0f\xe3\xbb\xda\xcb\xca\x5c\xe1\xfa\x24\xe2\x39\xf0\x3f\x9b\xce\x31\x5b\xeb\x3e\xf0\x03\x8e\x2b\x51\x31\x59\x44\xef\xa1\x80\x0d\x47\xed\x74\x10\x41\xef\xb4\xaa\x45\x72\xcf\x59\xe5\xed\xe6\xe4\xf6\x43\x4b\x85\x0d\x83\x70\x82\x63\x44\x79\x53\x81\xbc\x93\xfd\xb1\x5c\xa8\xd4\xb2\x9f\x4e\xdf\x31\x95\x43\xe2\xa1\x42\xd1\x4f\x49\xdc\xa5\x1d\x24\x32\x16\x9f\x0e\xa2\x20\xda\x7d\xd0\x5b\xb5\xd9\x54\x13\xe4\xb7\xa9\x77\x16\xa4\x53\x2e\xcc\x21\x5c\xd8\x9b\x71\xe3\x2d\x5d\x87\x2a\x4f\xd2\x62\x0d\xf8\x61\x0c\xd1\xf1\x83\xba\xe1\x5b\x16\xad\xb9\x5c\x05\xa6\x09\x80\x73\x8a\x4c\xe5\x98\xa0\xf7\x01\xb8\x3e\x55\x6e\x29\x1e\x88\xb8\x80\xe2\x84\x9c\x1b\x03\xe1\xf9\xca\xb2\x13\xf0\xd5\x2a\x17\x2b\x08\x63\x9d\xc9\x0a\xf5\x0a\xf0\x9c\xda\xdc\x40\x58\xcf\x2e\xe6\x8a\xe7\xa1\x7f\xea\xba\x0d\x16\xf9\xd6\xc5\xfd\x53\x76\x6b\xbf\x9f\xeb\xc3\x3a\x62\x89\x18\x8f\xd8\x57\x3e\x24\x41\x44\x4a\x3a\xe2\x80\x8e\xa8\xf1\x9a\xc9\x9f\xed\xb9\x3a\x34\x79\xa2\xda\xdb\x0e\xcf\x1a\x39\xb2\x5b\x17\xcd\x4e\xe6\x85\x82\x17\xe5\x80\x33\xe8\x94\x17\x3c\x55\xab\x53\xf3\xf1\x0d\x7e\xbb\x6b\x5d\x9f\x62\xbc\x80\xe5\xe8\x33\xef\x9b\x93\xd3\xd4\xed\x39\xfc\xdb\xc6\x7a\xaf\x01\x39\x55\xdd\x06\xe4\xe7\x50\xd5\x2d\x11\xd3\x7e\x1b\x72\xda\x41\x2e\xb4\xa3\x4f\x43\x4d\xc4\x16\xd5\x4f\x81\x49\xba\x7e\x8d\x6d\x91\x00\x59\xae\xe2\x32\x12\xb1\xd9\xb9\x70\x1f\x42\x3c\x94\xe3\x38\xaa\x08\xc9\xb6\x83\xb6\x42\xd4\x06\xa7\xee\xe7\xb2\x39\xf4\xe2\xc6\x77\xc3\x7f\xd7\x61\x6f\xb0\x1a\x5f\xdb\xa0\x87\xfb\x13\xc7\x29\x1f\x78\x4e\xb9\xea\xab\x8c\xf6\x2a\x4f\x56\x89\xe4\x85\xca\xd9\x6b\xc7\x64\xf0\xc6\xa5\xc1\xeb\xd6\x10\x06\x8a\x89\xca\x10\xa1\x98\xf8\xac\x8a\x47\xdb\x22\x35\x6f\xe9\x82\x6f\xb2\x90\x23\x1a\xac\xc0\xc1\xc8\xa4\x38\x08\x4e\x37\x01\xdb\x69\xa2\x7d\xd4\xee\x4c\x92\xc7\x01\xe7\x4d\xe5\x61\x92\x83\xce\xb3\x39\x2b\x8b\xf9\x13\x79\xcf\xf0\xe3\x61\x86\x27\x02\x41\x7c\xe0\xd9\x6e\x26\x29\x4e\x26\x07\x0c\x5b\x24\x73\x84\xd7\x54\xaa\xeb\x73\x77\x1a\xa1\x81\xcc\xd6\x75\xc7\xfd\xf5\xb9\x75\x14\xf9\xfb\x60\xe5\x82\x05\x13\x81\x94\xba\x18\x06\x86\x57\x7b\x27\xd6\xcc\x29\x6e\xe9\xa7\x4e\x53\x55\xc6\x8c\x84\x1a\x81\x00\xf2\x31\x9e\x8e\xc0\x71\x3d\x1e\x77\x85\xb5\x0d\x4c\x6f\xee\xe4\x0f\x7c\xd7\xbe\x03\xe1\x59\x87\x04\xde\xb9\xf5\x69\x64\x5f\x6c\xea\x69\xa4\x61\xee\x9d\x38\x1e\x34\xf7\xce\x0a\x0e\x84\x9b\xc3\x0c\xa4\x70\x1f\x4d\xe2\x14\xf6\x5b\xe8\x40\x68\xa1\x04\xaf\x38\x66\xf5\xfd\xc1\xd5\x59\x16\x8a\xdd\x55\x65\x3c\x17\xb2\x98\x43\x8d\xc3\x2a\x83\x4a\xae\xe0\xf3\x8a\xc2\xd4\xcb\x10\xfc\xe7\x5b\x85\xf6\x7d\xcb\xae\xf5\x17\x76\x43\x36\x2d\x23\xaf\x12\x80\x10\xeb\x7b\xf6\x3a\x01\xc4\x53\xe0\x0b\x75\x13\xd7\x31\x5d\xd4\xa1\x27\x8c\x5e\xd0\xa1\x8a\x68\xef\xd5\x21\xdf\x7a\x70\x55\x43\x29\x64\xde\x23\x4e\x00\x23\x6a\xed\x6f\x41\xc6\x8d\x8b\xca\xdf\xc0\x8e\x6c\xe6\x2f\x65\x7f\x13\xb9\xf2\xf1\x5f\x68\xac\x0a\x0b\xde\xa9\xaf\x3f\x3d\x59\x38\xea\xe3\x98\xa6\x3a\xcc\xd3\x0a\xbf\x10\x81\x19\x5a\x14\x16\x5b\x7b\x1d\xe9\x70\x21\x65\x22\x9a\x77\x24\xe5\xe9\xd5\x94\xe0\xe2\x19\x26\xd9\x49\x6a\x87\x99\xdd\xa0\xc7\x60\xaf\xa0\xc0\xaa\x0d\xcf\x08\x5d\x48\x40\xf2\xba\xf3\x66\x0c\x9d\xf8\xf3\x9f\xfe\x32\x4e\x3a\x42\xbc\xa1\xe9\x43\xc1\x5a\xae\xf1\xef\xf3\x44\xc8\x18\x9c\xb1\x3c\x6e\xe6\x8b\x93\x15\xeb\x7c\x45\x3c\x9b\x65\xf8\x2c\xf1\xe0\xed\x47\xad\x9e\xe3\x22\xfa\x0c\x1e\x7d\x2f\x64\xdd\xf6\xad\xf8\xfb\xba\x54\x09\x3d\x8f\xb7\x92\x6f\x92\xe8\xb3\xb6\x71\x9b\x88\x34\x86\x26\x52\xed\xfb\xbc\x52\xb1\x88\xee\x87\xea\x04\x4f\xce\x76\x21\xa2\x7b\xf6\xc3\xed\x87\x73\x4c\x6e\x9c\xe8\x99\xbc\xe0\x45\xf2\x20\xee\xf2\xd4\xb9\x03\x08\xa4\x9d\xa7\x76\x8f\x54\xd9\xd7\x03\xa6\x2f\x4b\xd5\x6e\x15\x87\x30\x39\xc6\x66\x7b\xb4\x28\xa3\x7b\x51\x1c\xe7\x5c\xc6\x6a\x83\xdd\x38\xd6\xe5\x72\x99\x7c\x1a\x17\x3c\xef\xc8\x94\x81\x76\x84\x5f\x51\xcf\xf5\xf9\xcf\x0a\xaf\xf3\xa2\xaa\xfb\x08\x61\xde\x94\x55\xbf\xa2\xdc\x62\x54\x22\xdf\x08\xa0\x3a\x65\xd5\x2c\x33\x50\x0a\x46\x4e\x43\x32\x56\xad\x29\x7e\x42\x51\xaa\xf7\x8f\x81\x72\xff\x31\x68\x95\x77\x61\x87\x8d\xf2\x09\x4e\x37\xfc\x1e\xef\x87\xab\x5c\x68\x3d\x62\x5a\x41\x8b\x67\xd2\x46\x22\xd8\x68\x39\xc0\xbd\x00\x59\x72\xba\x65\x91\xca\x1c\x64\x1e\xfb\xb5\x56\x8f\x60\xa7\x0f\xe3\x84\x21\x85\x77\x29\x8b\x24\x65\x7c\x59\x90\x11\x1f\x32\x43\xd8\x4c\x70\x7a\x3c\x93\xe0\x8a\x8d\xa0\xfb\x00\x91\x70\xee\x17\xd7\x09\xcd\x96\x3c\x4a\xd2\xa4\x20\xbe\x3a\x08\x31\xe3\xa6\xbf\xe6\x3c\x30\x63\x99\xf3\x2d\x4f\xfd\xc5\x8a\xa7\xa5\x0f\x8d\x3e\xd2\x62\x07\x1f\x6a\xa2\xe7\x68\x20\x78\xb9\x0d\xee\x51\x80\x49\xe8\x7c\x40\xee\xf8\x89\xa9\xfc\xa2\x76\x8a\xfe\x53\xf8\xdf\xca\x3d\x7c\x97\x56\x70\xc0\x85\xfc\x90\xc3\xb1\x79\xe5\x76\xe9\xd3\xbd\x9e\x91\xc4\x16\x9d\x5c\x51\xc5\x7d\xf0\xb1\x3b\x1e\xc1\x67\xd2\x71\xe9\x1f\xdb\xa4\x77\xcd\x1a\x06\x8c\x5e\xbb\x92\xf8\x99\xcc\x19\x5d\x84\xfe\x7d\x9a\x6f\xad\xf1\x57\x4a\xa5\x87\x5a\xe4\x89\x92\x23\x51\x72\x0e\x79\xa0\x0f\xb9\x4e\xe2\x02\x70\x86\xad\xe9\x3b\xe7\x73\x77\x0c\xf9\xd5\xec\x71\x04\x07\xa3\x26\x80\x20\x83\x46\xec\xc0\xa9\xeb\xac\x05\x74\x31\x10\x6f\x0f\x65\x20\x5a\xcb\xaa\xf6\x4d\x17\x41\xc0\xce\xc2\x7d\x1b\x81\x45\xb8\xd6\xc2\x41\xc6\x3a\xcc\xda\x5c\xab\xca\x19\xee\x42\xb6\x71\x37\x8e\x41\xdd\x76\x3c\x37\x5c\x92\xe5\x8f\xb4\xf8\x99\x0c\x34\x76\x64\xc4\xb3\x01\x0d\x6e\xd4\xda\xec\x79\x95\x65\x78\xb0\x3d\xef\x90\x94\x12\x3b\x25\xe7\xbb\x30\x39\x24\x60\x41\x22\xb5\x59\x24\xd2\x72\x52\x90\x91\x1b\xae\x1a\x13\xcb\xd8\xeb\x1c\x12\xf6\xca\x80\x29\x83\x6a\x63\xef\xd4\x9c\x90\xfc\x38\x14\x59\xfb\xae\xe3\xe1\xfd\xee\x79\xb3\x5f\x74\x78\x1a\xeb\x3d\x30\x07\x48\xfa\xc8\xb7\x1a\x12\xa8\x0b\x23\x15\x97\x68\xd8\xad\xb6\x7f\x14\xa8\x1f\x96\x0d\x7a\x26\x61\x84\x90\x2d\xcc\x0a\x52\x23\x59\x61\x01\xa6\x36\x55\xbc\x67\x7a\x7b\xa5\xdb\x07\xe7\xd7\xf1\xd5\xe4\x3b\x7d\x35\xe8\x84\xfe\xef\xe1\x9e\xd9\x61\x04\x3e\xd0\x16\x1d\x1c\x93\xa8\x31\x12\x4c\x08\xc2\xc6\x9c\x8b\x7a\xc4\x36\x3c\x91\xb4\x0d\x30\x1d\x67\x2c\x16\xe5\x6a\xd5\x69\x22\xfd\xed\xfb\x5a\xaa\xfb\xe4\x7f\xbc\x2d\x7c\x27\x57\xe1\x73\x58\x8b\xa7\xb6\x26\x34\x5f\x9b\x7b\xdf\xe7\x31\x10\xff\x8a\xd6\xf8\x56\x97\x58\x63\x11\x3d\x8f\x35\x7e\xda\xc7\x1a\x6f\xb1\x5d\x10\xe0\x47\xd7\x69\x8b\xbf\xf9\x87\x99\xfe\xf3\x98\xe9\x7b\x2d\x0a\x24\xf5\x99\x27\x55\x05\x7d\x47\x0b\x9f\xc8\x7b\xe9\xa8\xa0\xa1\x55\xc8\x2d\x67\xa4\x7b\xac\xd9\x82\x47\x2f\x40\x84\x09\xa7\xe3\xe1\xf6\xc0\x3d\xe0\x97\x1b\xb5\x11\x0c\xaa\xd2\x98\xc8\x89\x51\x14\xe3\x08\xd0\xaa\xa6\x83\x1e\x31\x42\x78\x14\x38\x4e\x11\xb9\x12\x7b\xa5\xfa\xb5\x14\x8f\xcc\x9c\x56\xa3\x10\xbe\x17\x4c\x0f\x64\xf8\x7b\x63\xb4\xc3\x0a\xd6\xdf\x11\x76\xe4\x62\xc5\xf3\x18\x22\x4c\x68\x4b\xa6\x3c\xba\x37\xff\x86\xf6\x51\x8d\x04\x31\xb4\x5c\x01\x08\x7b\xf5\xa5\x25\x32\x42\x2a\x44\xcb\xe9\xee\xda\x87\x9f\x6b\xc6\xa3\x5c\x69\x34\x1a\xb9\xc4\xd8\x10\x5f\x0d\x0a\xec\x43\x12\x97\x3c\xc5\x1a\x3b\x2d\xed\x43\xe1\x6b\x75\xc0\x51\x90\xc3\xae\x89\x66\xa3\xe9\x40\x86\x2a\x18\xc6\xf1\x4c\xbe\x73\x0e\x93\x13\x76\xa7\x05\xa1\xcc\xb4\xcd\x02\xb0\xb3\xa5\x2f\xa6\x3e\x34\x30\x81\x9d\x3a\xc4\x8e\x01\xb0\x20\xeb\x60\x20\x74\xf7\x48\xec\xa1\x53\x3d\x64\x52\x06\xd3\x42\x4f\x83\x44\xfa\x7e\x58\xf0\x9e\x90\x0b\x1e\x6f\x43\x2e\xc6\x44\x32\xf0\xd2\x31\x1e\x6f\x12\x69\x36\x81\x4d\xd6\xea\x4e\x1a\x9b\xb7\x01\x21\xc7\x90\xd3\x2c\x4d\x6b\x42\x50\x33\x29\x8c\x72\xc9\xf3\x24\xdd\xc2\x7d\x22\xcb\xc5\x51\x50\x4f\x30\x3f\x14\xf1\x04\x19\x28\x88\x44\xa6\xd4\x62\x59\xa6\x78\xeb\x80\x7b\xb9\xeb\x00\x49\xa4\xbb\xe9\xc8\x28\x1c\x05\x65\x12\x0a\x2a\xc6\xfc\x9c\xcf\x11\x3d\xd2\xf0\x56\x0e\xf3\xb8\x79\xae\xd0\x1c\x40\xee\x6b\xf5\x68\x43\xdd\x1e\xb9\xc7\x32\x77\x9d\xae\xcf\xe6\x65\xd9\xad\x87\xda\x1b\xa0\x95\x53\x01\xe1\x9f\x73\xad\xd1\x33\x11\x3b\xd9\x94\x48\xe8\x0e\xa5\xb8\xf6\x96\xeb\x52\x63\xc4\x9c\x99\x4b\x38\xbf\xac\xa1\xa3\x6a\xb8\x66\xae\x77\x89\x56\x92\xcd\xca\x2f\xbf\xfc\x5a\xb0\x2f\x21\x84\x90\xee\x23\xe8\x1f\x03\xb6\x50\x2c\x1d\x44\xb6\xab\x40\x20\x95\x68\x63\x46\x58\x1b\x44\xd5\xc6\xeb\x03\xc8\x93\x47\x6b\xa6\xcb\x05\x22\x18\x39\xb9\x58\xb8\x74\xac\xe3\xe7\x0a\xc0\x88\x78\xb2\xdb\xd6\xff\x3f\xe2\x50\xc0\xa4\x2f\x33\x99\x29\x24\xc6\x07\xe8\xe7\x42\xb0\x0d\xcf\xef\x21\x87\x2f\x9a\xe7\x21\x11\xc0\xeb\x44\x8c\xab\xee\x85\x37\x95\xf6\x90\x43\x07\x09\xaf\x59\x5e\x4a\x69\x93\x92\x31\xa3\x98\x7a\x5b\xff\x68\x26\x17\x65\x78\xf7\xac\x38\x0b\xfc\xd2\x02\x87\x01\x08\x5b\x05\x4c\x25\xd4\x28\xae\x7d\xbb\xc6\xac\x87\xd7\x60\x26\x9f\xd9\x6d\xb0\xcf\xe0\x77\x45\x3a\x98\x35\xe6\x05\xf1\x0a\xd0\xdd\x30\x6f\x36\x4c\x07\x2e\x7b\x50\x72\xae\x20\x79\xf6\x88\xfd\x90\x3c\x88\x11\xbb\xc9\x78\x7e\x3f\x62\xef\xd0\xfd\xf7\x07\xb5\x68\xb3\xe1\x35\x08\x25\x0e\xb6\xe3\x3d\xcd\x8c\xb5\x8b\xe6\xa5\x5d\xfb\xff\xb9\x41\x0c\xc0\xba\x7c\xdf\xff\x3d\x11\x79\x1d\x5c\x1f\xff\xd3\x2d\x11\x7b\xdc\xd4\xff\x00\xaf\xfd\x8f\xbc\x15\xef\xa6\xf9\xf8\xa7\xf0\xbf\x56\x7e\x59\x8d\x0b\x74\x4f\x92\x72\xad\xa8\xb4\xdf\x56\x60\x73\x12\xd7\x0f\xe5\x66\x7c\x73\xbf\xad\x40\xe1\xe3\xb1\x0b\x6d\x1f\x00\xba\xa7\x4f\xed\x78\x9d\xa6\x4a\x97\xf9\xee\xcd\x7f\x5d\x6d\xb5\xad\xbd\x85\xe8\x15\x16\xdb\x66\x21\x80\xb5\xa0\x2f\xfc\x04\x5f\x9b\xff\x55\x2d\xe6\x80\xb5\x3a\x6c\x87\xb7\x15\xe7\xe8\xa3\x55\x54\x69\xaa\x3f\x21\x6f\x32\x01\x7c\x57\x5e\x15\xf5\x0e\x81\xda\x0a\x73\xa6\x91\x99\xb4\x8c\xfb\x18\x31\x9b\xe7\x02\xa8\xc1\x73\x01\x89\x1e\x19\x31\x1c\xa6\xdb\x40\x23\x0a\x6e\x3e\x1e\x14\x13\x46\xb9\x41\xb0\x2a\xdd\xb7\x16\x42\x48\x37\xda\x43\x54\x09\xa0\xc1\xae\x8d\x3e\xa1\xdd\x1e\x85\x4d\xbc\xd0\x91\x94\xb6\xf1\x5d\x70\x17\x04\x95\x7b\x25\x8a\x40\x9a\xd7\x54\x8b\xca\xd6\xac\x78\xa8\x7e\x53\x88\xff\x56\x1f\x74\x8d\x9c\xab\x62\x40\xe9\xe5\xd3\x7b\x0e\x7b\xf9\x15\x2f\xd6\x78\xa1\xdd\xa8\x42\xa0\xcc\x44\x96\x20\x5c\x2f\x68\x75\x5e\xa4\x6a\x01\x19\x16\x8b\x1d\x0c\x92\x11\x6d\xed\x5e\x43\xd7\x9c\xb0\x3e\x92\xc1\x48\x13\x88\xb4\xcd\x85\x06\xc2\x95\xa6\x97\xaa\x2f\x3e\x79\xd8\xa5\xbb\xd9\x5c\x23\xf4\xdf\x35\x2e\xdb\xcd\x94\x1c\x66\x5b\x03\x58\xf5\xec\x09\x11\x34\x8d\x04\x27\x44\x55\x4d\x6e\x60\x64\xab\xad\xf5\xd7\x26\xf2\x9f\xc9\x09\x3e\x09\x0e\x01\xee\x73\x6c\x39\x3c\x28\xe5\x6c\x76\xfb\x0f\xc3\x57\xd9\x24\x44\x20\x92\x85\x60\xe4\x6d\x99\x70\x19\x18\x41\x54\xa3\x2c\x92\x5c\x30\x09\x28\x84\x99\xd4\xe5\xe2\xc8\x13\x93\x98\x5b\xdc\x03\x90\xe9\x68\x91\x71\xb8\xca\x00\x5f\xd1\x51\xcb\x31\x8c\x96\x49\x9f\x2b\xc7\xd2\x07\xf2\x94\x84\x3f\xc4\x4a\x62\x64\xbc\xeb\xbb\x2b\xc7\x5c\xd6\xe0\x16\x6d\xe1\x4a\x78\xd8\xed\x92\x17\x90\xcd\x0b\x22\x30\xaf\x11\x45\xf1\x6b\x1f\xe0\xa1\x37\xb4\xef\xd1\x0d\xfe\xb4\x99\xfc\x57\x7b\x36\x74\x83\x8a\x07\xac\x74\x33\x32\xe6\x88\xea\x04\x3b\x57\xda\x66\xaf\x90\x81\x12\xd8\xdd\xa8\xc6\x92\x6f\x2b\x95\x5b\x5c\x4b\x98\xd2\x45\x51\xb8\x2c\x3c\x7d\x48\x74\x40\xf6\x0e\xb5\xdd\x08\xc1\x4e\x72\xb1\x3c\xf9\x98\x8b\xe5\xdc\xce\xf4\x18\x3a\x34\x36\x3d\x6a\x52\xbe\xf7\x5c\x1c\x3a\x53\xb2\x9d\xfc\x70\x0f\x35\x6a\xad\x4b\x58\x4e\xd0\xa7\x64\xc9\x7c\x76\x5b\xd3\x1f\x60\x80\x10\x71\x9d\x8b\xbe\xd1\xb2\xcf\x7e\xcc\x75\x21\xc1\x7a\x40\xad\x3a\x92\xa0\xfe\xcf\x3f\xde\x2a\x63\xd6\xe7\x78\xbb\xad\x42\x66\xac\xb0\xe7\xd2\x1d\x78\xdd\xb8\xd0\xcf\x8b\x4e\x87\x09\xd4\x19\x7f\x94\xc4\x63\x33\xc8\xf4\xd4\xef\x58\xab\x01\x88\x82\x63\xad\x81\x81\xf3\xbb\x4c\x5a\x4b\x5f\xe2\xf2\x68\x8e\x98\xbf\x41\xf3\x34\x0d\x33\x6a\x78\x4f\xdb\x4c\xfa\xb8\x54\xa3\xb5\xa6\xa9\x35\xe1\x55\xf4\x0d\x97\xf0\x58\x17\xbc\x10\x23\x4b\xba\x42\x74\x85\xe4\x0f\x3b\x5a\x70\x48\x6d\xed\x72\xa8\xed\xdb\xcd\xcf\x75\x89\xfc\x8d\xc5\x45\xef\xf1\x3c\x63\xb5\xf3\x7b\xd1\x80\x33\xef\x6d\x6b\xbb\xa7\x23\xa0\x94\x80\xcd\x6c\xa5\x6c\xc4\xf3\xdc\xa2\xfc\xa9\x56\x66\xe9\xce\xc3\x5b\x49\x47\x3b\xd7\x22\xba\xcf\x54\x22\x07\xcb\xa2\x0a\xc5\x05\x2c\xf6\x82\xf9\xd2\xdc\xed\xb0\xd7\xe1\x58\xd1\x27\xb1\x23\x1a\xe0\x15\x16\x1a\xea\xc9\xd8\x38\x73\x99\xb2\xbb\x97\xdd\x73\xdb\x2f\x84\x3f\x1b\x5e\xc0\x16\xdb\xe2\x1f\xaa\x9d\x2a\xbc\xc5\xb0\x53\x61\x02\xe5\x8d\xe8\xaf\x9e\x83\xcd\x59\x85\xc2\xb0\x75\x48\xc1\x04\xf9\x0f\xcb\xd0\x3f\x2c\x43\xff\xcd\x2d\x43\x9f\xd3\x2c\x04\xd8\x98\x97\xb4\x09\xed\x70\x90\x1f\xb0\x1d\x5d\xad\x83\x63\x1c\x5b\xb5\xe3\x51\x90\xf4\x3b\x88\x74\x6c\x02\xfd\x2d\x11\x86\x19\x9f\x05\x8f\xee\x85\xec\xf4\xd1\x5b\xfa\xa2\xce\xfc\xab\xcf\x8b\x60\x69\x63\x5f\x0a\xbe\xde\x0d\x65\xf1\x50\x27\x22\x0d\x6e\x23\x04\x31\xfb\x04\x74\x4f\xd3\xf1\x23\x00\x8d\xa9\xdc\x11\x5b\x6b\x8a\xc2\x43\x67\x24\xd2\x24\x21\x58\xaa\x46\x05\xdd\x17\x13\x67\x2b\x9e\x67\x4a\xa5\xad\xd0\xb8\x67\x1d\xc0\x46\xa0\x4c\xdf\xc1\x9b\xa2\x32\xaa\x43\xc0\x98\x1d\x45\x1f\x74\xe1\x43\x34\x30\x1e\x03\x32\x71\xc0\x6a\x8a\x4b\x88\xa5\xf4\xc3\x11\xa4\x57\xe4\xce\xe0\x42\x18\xb1\x85\x88\x38\x24\x7e\xb5\xe0\xbd\x88\xbb\xe8\x93\x90\x14\xa9\x11\x0e\xa2\x9b\xf5\x74\x78\x2d\xa1\xdc\x79\xd2\x96\x76\x63\xe8\xe6\xaa\x69\x08\x16\x5a\x8e\x2d\xb7\x48\x12\x4b\xbb\xb8\x2f\xa1\xb1\xe5\x98\x9e\x43\xf6\xc5\x7e\x27\x5c\xab\xdc\x99\x52\x41\xa7\x50\x4e\x7f\x41\xfa\x03\x84\xe3\x6c\x7a\x22\x77\x66\x72\xe2\xf2\xdc\x7a\xec\x97\x43\xee\xa1\xbb\x14\x31\x8b\x8d\xa9\x41\x2e\x47\x7f\x73\x19\x31\x5d\x46\x6b\x60\xab\xac\xca\xa9\x50\x6e\x35\x77\xec\x68\x26\xcd\x85\x08\x4c\x2d\x1b\x0e\x71\xf1\x8f\x46\x59\xd5\xc9\xdf\x84\x83\x67\x11\x79\x57\x88\xc8\xc2\x8b\x93\x92\xad\xe8\x35\x4b\x1c\x8a\x00\x0b\x8f\x29\x29\xb3\x98\x17\x62\x3c\xf3\x68\x9b\x04\x2d\x9d\x16\xe5\x41\x2a\xb3\x0e\x3b\x16\xe2\x18\x6b\x92\x36\x4d\x96\x22\xda\x46\x8d\x2c\x44\xbb\x69\x22\xfe\x71\x6d\xfb\x6d\x5d\xdb\x90\x65\x17\x63\x06\x87\x0c\x2d\x35\xf5\xda\x7f\x7e\xd8\xe0\x0a\x16\xb4\x44\x0f\x18\xe7\xcf\x78\xed\x6c\xd1\x81\x87\xe9\xf3\xbd\xef\x41\xbb\x8f\x33\x7f\xb1\xf5\x87\x75\x40\x81\xd0\x50\x0b\x43\xe7\x62\x11\x2e\x1d\xa3\xd0\xf6\x76\xeb\x77\xb3\xcc\xfc\xa6\xc0\x49\x7d\x2e\xae\x46\xe3\x76\x70\xa5\x0b\xab\x69\x4b\x81\xe7\xdd\x0e\x8d\x3b\x60\x75\xe7\xc5\x2b\xed\x46\xbd\x2a\x01\x2d\xf6\x7f\x22\xb7\x07\x05\x60\x6e\x33\x31\x2f\xf3\xf4\x20\xb8\xf1\xdd\xf5\xf9\xb1\xd3\x36\x40\x73\xee\xcc\x7b\x54\xd4\x52\x43\xdb\x9c\xc4\x22\x26\x38\x68\xa4\x52\xb6\x28\x97\x4b\xc8\x5f\x42\xc0\x50\x2b\x8c\x20\x33\x7d\xa9\x0b\x7b\x9e\x20\xd3\x0c\xd7\xc5\x4c\x2a\x29\xd8\xec\x8b\xe3\xd9\x17\xe6\x28\xcb\x79\x54\x88\x1c\x49\x06\x52\xae\x0b\xa6\xc5\x0a\x54\x2d\xaa\xf4\xee\xfa\x1c\xa2\x12\x8b\x35\x16\xe7\xae\xac\x18\xef\x89\x9c\xcf\x90\xeb\x07\x08\xaa\x65\x90\x71\x0b\xda\xfe\x9a\x6b\x96\xc8\x99\xfc\x68\x8a\x38\x5e\x29\xb5\x4a\xc5\xd8\x4e\xc8\xf8\x1d\x99\x1e\x3f\xbe\xc1\x16\xc0\xe7\x21\xac\xdf\x1c\x88\x5c\x2a\x99\x44\x3c\x85\x80\x9c\x99\x04\xad\x79\x64\x3a\x03\xa6\xd1\xd9\x17\xe3\xd9\x17\x0c\xdc\xa7\x05\xe3\x51\x24\xb2\x42\xc4\x98\xda\x74\x2a\x59\x06\xf8\xc5\x48\x8c\x58\x21\xf8\x46\x5b\x4a\x67\x96\x99\x3b\x26\x5c\x0d\x59\x22\x09\xe9\xb4\x48\x24\xcf\xb7\x08\x66\xc2\x64\xe5\x14\xfc\xb1\x9d\x49\xf1\x09\xe8\x3f\x13\x60\x00\x2d\xb5\xa3\xa5\xa1\xc4\x04\xa6\xcb\x13\xb9\x1d\xb3\x1f\x90\xa1\x01\x29\x50\xef\xae\xcf\x2d\xbd\x11\xc5\x80\xce\xa4\x8e\xd6\x62\x23\xd8\xc7\x75\x51\x64\x1f\x47\xf8\x5f\xfd\x11\x3c\x8e\x52\x31\x7c\x3a\x62\x66\x8a\x8c\xa2\x6a\xf1\xf2\xe9\x16\x72\xc8\x96\x19\x25\x9c\x9f\x49\xe0\x62\xcf\x43\x74\xaf\x19\x6d\xa8\x31\xb8\x82\x57\x70\xe1\x46\x8a\x43\x72\xc7\x13\x33\x38\xff\x8b\x4d\x97\xbe\x4a\x33\x80\x36\xb7\x98\x6b\x15\x28\x24\x1a\x42\xb6\xc6\xe6\x83\x89\x64\x3f\xdc\xde\x5e\xb1\xef\xcf\x6e\xad\xb2\x73\x77\x7d\x8e\xeb\x02\xe8\x54\x18\x67\x7f\xae\x4f\xf1\xed\x36\x13\x7f\xf9\xf3\x5f\x66\x92\xd9\x1c\xe5\xd2\x8e\x34\xee\xe8\x11\x52\xc2\x02\xde\x09\x1c\xb3\x40\xe5\x0c\xf5\x61\xca\x1d\x6a\x7e\x8e\xda\xf9\x23\x59\x0b\xe0\x8c\x4a\x95\xba\x2f\x33\x67\xe6\x0e\xf5\x30\x53\xe1\xdd\xf5\x39\x94\x0e\x74\x4a\xc5\x1a\xf2\xa7\x09\x67\x7d\x81\x89\xe7\xb6\x31\xe6\xdf\x0f\x2a\x89\x19\x97\x5b\xf3\x2d\x16\x0d\xcb\x32\x17\x4b\x95\x8b\x91\x7d\xd3\x14\xc0\x8b\x64\x91\xa4\x49\xb1\x05\x29\x65\xf3\xda\x67\x96\x23\xdf\x14\x60\x6e\x33\x04\xf0\x36\x0b\x0c\xd3\xd8\xbe\xbe\xd3\x21\x02\x1c\x26\xcd\xe5\x46\xc4\x8b\x8e\xf9\x76\x91\x0b\x7e\x6f\x56\x37\x95\x30\x7e\x43\x39\x63\xc5\x09\x9e\x31\xcb\x52\x46\xb8\x34\x4c\x1b\x68\xf5\xd3\xcd\x29\xdd\x32\xfe\xc0\x13\xcc\x29\x6b\xdd\xe5\xcb\x65\x12\x25\x3c\x25\xc9\xb1\x28\x97\x90\x36\x86\x6b\x4a\x59\x84\xe0\x43\x53\x08\xdc\x32\x6c\xc2\x7e\x5c\x50\x0b\xb1\x4a\x10\x70\xfc\x98\x14\x6b\x8c\x2b\x18\xe3\x3c\xf3\x2c\xd1\xe3\x48\x6d\x60\xbf\xdd\xc0\x52\xd2\x74\xe9\x05\x1c\x78\x6d\x9d\xb3\xd7\x16\x6a\xb7\xc9\x8a\x2d\xad\xbd\x37\x6c\x93\xac\xd6\x05\x24\x72\x81\xda\x01\x12\x91\x6c\xb2\x14\x2e\x7d\xe4\x61\xb4\x78\x5f\x2d\x36\x5c\x16\x49\xd4\xe5\x53\x6a\x4d\x09\xde\x0f\xe3\xb9\xd8\x16\xbb\xed\x78\x1f\x88\x67\x9f\x23\x85\x7e\x20\x91\x59\x5d\x20\x93\x0c\x84\xf4\x32\x01\x81\x7f\x3d\xe5\xec\xbe\x2b\xd4\xc7\x89\xdc\x7e\xf4\x24\xa4\x5c\x06\xb9\xaf\x76\xd4\x6e\xf7\x3f\x4f\x15\xcd\x1a\xe3\x33\x09\xa8\x4e\x23\x30\x28\x19\xed\xce\x33\xc6\x1d\x29\x66\x66\xaf\xec\xa2\x49\x93\x05\xd4\x4d\xb2\x42\x33\x5d\x66\x10\x4f\x50\x28\x96\xf1\xe8\xfe\xb8\x94\xe6\x3f\x46\x18\xe2\x76\xd7\x21\x39\xd1\x4c\xaa\x25\x2b\x0b\xdc\x38\x76\x09\x83\x51\x24\x30\x05\xf8\x0b\xda\x46\x14\x6b\x15\xbb\xb8\x30\x53\x26\x8c\x9f\x69\xd1\x19\xd1\x4b\xbf\x3d\x61\x57\xa6\x42\xb3\x88\xa9\x6e\xee\xba\x9f\x48\x76\xfa\xaf\xff\x0a\xef\x9b\xc1\x7d\xaf\x14\x5b\x2a\xc5\xbe\x65\xe3\xf1\xf8\xdf\xf1\x37\x53\x28\x97\x5b\xfa\x8b\xcb\xed\xd8\x14\xf7\x3e\x57\x9b\xd7\x4b\xa5\xde\xd0\xef\x90\xb4\xd9\xfc\x23\x59\xb2\xd7\xe6\xa5\x3b\xa8\xea\x56\xbd\x9e\x95\x5f\x7e\xf9\xd5\xef\xcd\xab\x6f\xd8\x7f\xe2\x3b\xc1\xeb\x7f\x0f\x9b\xfa\xd5\x9e\xa6\xfe\x81\x3f\xf0\x3e\x6d\x65\xdf\xc2\x59\x63\x0a\xd8\xd9\xc6\x44\xbf\x7e\xaf\xd4\x18\x6e\xff\x61\xeb\xb0\x58\xf3\x06\xb6\x22\x78\xeb\xdf\x83\x66\x33\xdb\xee\xaf\xf7\xb4\x1b\x51\xf5\xae\xe5\x58\xfc\x7b\xa5\x5e\x8f\xc7\x46\x6e\xd1\xb8\x62\xab\x5f\xbf\xa9\x0e\x34\x74\xa0\xd9\x7e\xf3\x78\x8a\xcd\x7f\x77\x76\x73\x7a\x3d\xbd\xba\xbd\xbc\x7e\x73\x62\x7b\xe0\x67\x20\xf8\x9e\xd9\xd4\xda\xae\xe1\xff\x7b\x4f\xc3\xbf\x57\xb6\xcd\xd0\xe8\x93\x6f\x19\xce\x66\xb6\x18\xbf\x57\xea\x3f\xc7\xe3\xf1\xdf\xe9\x31\x97\xdb\x91\x39\x98\xcc\x3b\x19\x8a\xf2\x0f\x3c\xd7\x6b\x9e\x9a\x3e\x05\x6d\x70\x9d\x68\x2d\xd1\x16\x97\x2c\x6b\x85\xdd\xc9\x8d\x2f\x0e\x2a\x83\x89\x85\xb7\xfe\xf9\x5b\x26\x93\xd4\x4f\x5f\x50\x07\xcc\xd3\x2d\x50\x4b\x44\xf7\x6e\xbb\xb8\x1c\xa1\x8b\x2d\xcb\xea\x1b\x17\xe3\xce\xb6\x36\x43\x81\x11\xf7\x33\xf9\xaa\x45\xa2\x1f\x1b\xd5\x6e\x0c\x0f\xcc\x01\xf5\xca\x66\x8f\xb7\xc7\x82\xcb\xac\x85\x23\x0b\x8e\x68\xdc\xad\x92\x62\xd4\xda\xf4\x43\x77\xe0\x05\x64\x55\xa0\x76\xbe\x3a\x7e\x45\x81\x42\xbe\x8a\x2a\x91\xfc\xec\x8b\xa5\x52\xe3\x05\xcf\xa1\x75\x9f\x8e\xb7\xe3\xbf\xcd\xbe\xc0\xfe\xa0\xf2\x81\x8a\x11\x14\x3e\xfb\x02\x9e\xc2\x72\x98\xc9\x3f\xdc\x5c\x5e\xcc\xe4\xb7\xdf\x7e\xfb\x2d\x8e\x96\xf9\xbb\xc5\xf7\x62\x8e\x2b\x10\xb7\xa8\xa7\x94\xda\xa6\x94\x14\xab\x32\xe5\xf9\x4c\xb6\xbb\x6b\x62\xe1\x85\xe6\xc8\x3b\x6f\x68\x9d\x8d\x6c\x76\x0b\x48\x52\x66\x65\x1c\xda\x26\x3f\xfe\xff\xa6\xc9\x1f\x49\x45\x74\x42\x3e\x1c\x82\xb1\x5d\xcc\x27\x76\xa9\x9a\xc1\x36\xeb\xd7\xeb\x59\xcb\x24\x15\xb4\x71\xed\xe2\xbe\x12\xb9\x56\xd2\xaf\x19\xba\x10\x00\xb7\x19\x38\x00\xd8\xb7\xec\xed\xbf\xd7\x9e\x9a\x79\xb0\x0f\xbf\xaa\x48\x02\xc6\x7c\x51\xb3\x2f\xa0\xd5\xb3\x2f\x4e\xd8\xec\x8b\xb6\x75\x53\x6d\xd8\x18\x9b\x32\xfb\x62\xe4\x0b\x80\x66\x5c\xf0\x0d\x16\x52\x7e\xf9\xe5\xd7\x11\x36\x01\x43\xd7\x82\x37\x4d\x93\xba\x5f\x0c\x9a\x38\xad\xb9\xce\xec\x40\xd8\x10\xc8\x47\x91\xa6\x47\xf7\x52\x3d\x62\x9e\x71\xf0\x13\x51\x94\x32\xc3\xe5\x51\x9d\x5c\xca\x4d\x56\x9b\x71\x1b\xb4\xe9\xaa\x71\xe9\xed\x60\x42\x67\xf2\x23\x2c\x1d\x3b\xa3\x44\x47\x04\x74\xa0\xae\x26\xb8\xd4\xd0\x4a\xb0\x31\x16\xb4\x10\x66\x12\x8a\x71\x73\xce\x5e\x03\xf0\x8b\xba\xd2\xd0\xac\xed\xe5\xe9\x2f\x7f\xfe\xcb\x9b\x93\x43\xe6\xa9\x5a\x5c\x65\xaa\xa0\x3f\x58\xc6\xdb\xf1\x57\x6f\xbf\xd2\xb3\x2f\x68\xd4\xdb\xaf\xd8\xe7\x89\x2e\x7e\xaa\x69\x60\x4f\x48\x76\x6e\x14\x87\x97\x72\x5e\xd8\xa6\x62\x33\xfb\x3a\x2d\xae\xab\x6e\x05\xb5\xb4\x66\x1d\xb8\x9c\xd9\x34\xf0\xa6\xdd\x83\xd4\x3b\x37\x5e\x78\xd9\x62\x8f\x39\xcf\x32\x91\x5b\x5b\x79\xc3\x9d\x01\x39\xd5\xa1\x16\x2b\xfa\xdb\x84\x99\x59\x36\xb5\xa2\xe1\x35\x18\xba\x71\xfb\xcc\x5d\x94\x69\xda\x39\x73\xfb\x93\x25\x5f\xdc\x9d\x9f\xcf\x7f\x9a\x9c\xdf\x9d\xd9\xee\xb7\x26\x1f\x0e\x5e\xeb\x1c\x13\xd7\x12\x1a\x13\xc4\x55\x15\x80\xa5\x2a\x37\x22\xb7\x4c\x61\xbe\xd7\x88\x23\x29\xd3\xb4\x9a\x16\x7b\x26\x3f\x52\x39\x20\x06\x4a\x99\x58\x35\x65\xe7\xc0\x55\xeb\x87\xd7\x3e\x9a\xc2\x3f\xe2\xb7\x47\xcc\x77\xe2\x84\x5d\xb8\x5a\x3b\xc6\x95\x08\x27\x0e\xd8\x0e\x18\x6f\xdb\xb5\x1d\x9e\x3b\xf1\xff\xd3\xb6\xc7\x9d\x84\xa4\x5f\x46\xf2\x62\xbe\xfe\x67\xd9\x1d\x38\x76\x1f\xab\x50\x70\x67\x2e\x8d\xd1\x6b\x08\xe5\x8e\x30\x5d\xbb\x2e\x88\xb3\x18\xc7\x6c\x26\x51\x10\x9b\x36\x15\xaa\xbb\x4d\x6c\x4a\x1e\xa4\x94\xcb\x55\xc9\x57\x42\x8f\x98\xad\x7c\x26\xed\xed\xd4\xde\x75\x1c\x30\x07\x18\x59\x6b\x4b\xa8\x16\x02\x9c\xc8\x99\xa4\x3e\xc1\x09\x4b\xc5\x63\x38\xea\x1f\x6e\x5c\x77\x28\xee\x1b\x0b\xa2\x8c\xf3\x72\x26\x71\x72\xd1\x36\x66\xc1\x86\xa0\x76\x34\xcf\x26\x0e\xf0\x60\xbc\xd7\xc5\xac\x50\x2b\x80\x3d\xce\xa4\x63\xc1\x42\x70\x86\xbd\xaf\xf9\xdc\xa0\xd8\xa4\xfd\xf2\xc4\x4e\x86\xdd\x13\xd4\xb6\xf6\x55\x7f\xf0\x19\x60\x36\xdc\xbc\xf5\x2e\xbf\x7b\xd9\x7a\x31\xd6\x13\x90\xc3\x03\xc1\xd1\x45\x8d\x08\xd4\x67\xed\xad\xb1\xfd\xc2\x77\x3a\xa3\x47\x55\xb9\x48\x07\x34\x09\xdf\xdf\xd9\x28\x14\xc9\xbb\x1b\xd5\xc3\x22\x7d\x5d\xdb\x5a\x66\x99\xee\xaa\x76\xa1\x54\xc7\xbc\x3c\x23\x66\xb7\xd2\x28\xfa\x60\xdf\x60\x94\x51\xf1\x94\xf5\xd2\x83\x0f\xa8\x3e\x44\x56\xfa\xec\x6a\x50\x9a\xe8\x27\x35\xc7\xeb\x4f\xbd\x5b\xe4\x34\x04\x3a\xec\x06\x49\x58\x3a\xe7\x2a\x02\xb6\x43\x4c\xda\x6b\x0a\x86\xb7\x88\x04\xc5\x8b\xd9\x3c\x23\xd8\x44\x66\xfd\x8f\xdc\x22\x1a\xf9\x99\x1b\x41\x23\xa3\x32\xd7\x46\x5c\x92\xbc\x23\xa9\xad\x72\xc6\x67\xd2\xb2\xc1\x58\x71\x3c\xb1\xf6\xe0\xdc\xfd\x8a\x1c\x4b\x19\xa6\xac\x03\xa7\x50\x01\x56\x72\x92\x86\x33\xf9\xc0\xf3\x84\x4b\xc0\x34\x2f\x34\xe4\x1b\x86\x2b\xdd\x96\xd1\x03\x47\xc0\xa1\x43\x23\xf3\x1e\x99\x57\x53\x03\x2a\xe7\xfc\x3f\x99\xff\xfd\xfd\x9f\xfe\x6f\x00\x00\x00\xff\xff\x1a\xa1\xb6\x17\x48\xa7\x06\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: 436041, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 436040, 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/datacatalog/Datacatalog.java b/flyteidl/gen/pb-java/datacatalog/Datacatalog.java index 12c4942382..4e9f320ca7 100644 --- a/flyteidl/gen/pb-java/datacatalog/Datacatalog.java +++ b/flyteidl/gen/pb-java/datacatalog/Datacatalog.java @@ -19955,30 +19955,12 @@ public interface DatasetIDOrBuilder extends com.google.protobuf.ByteString getUUIDBytes(); - /** - *
-     * Optional, partition key applied to the dataset.
-     * 
- * - * string partition = 6; - */ - java.lang.String getPartition(); - /** - *
-     * Optional, partition key applied to the dataset.
-     * 
- * - * string partition = 6; - */ - com.google.protobuf.ByteString - getPartitionBytes(); - /** *
      * Optional, org key applied to the resource.
      * 
* - * string org = 7; + * string org = 6; */ java.lang.String getOrg(); /** @@ -19986,7 +19968,7 @@ public interface DatasetIDOrBuilder extends * Optional, org key applied to the resource. *
* - * string org = 7; + * string org = 6; */ com.google.protobuf.ByteString getOrgBytes(); @@ -20013,7 +19995,6 @@ private DatasetID() { domain_ = ""; version_ = ""; uUID_ = ""; - partition_ = ""; org_ = ""; } @@ -20074,12 +20055,6 @@ private DatasetID( case 50: { java.lang.String s = input.readStringRequireUtf8(); - partition_ = s; - break; - } - case 58: { - java.lang.String s = input.readStringRequireUtf8(); - org_ = s; break; } @@ -20325,56 +20300,14 @@ public java.lang.String getUUID() { } } - public static final int PARTITION_FIELD_NUMBER = 6; - private volatile java.lang.Object partition_; - /** - *
-     * Optional, partition key applied to the dataset.
-     * 
- * - * string partition = 6; - */ - public java.lang.String getPartition() { - java.lang.Object ref = partition_; - 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(); - partition_ = s; - return s; - } - } - /** - *
-     * Optional, partition key applied to the dataset.
-     * 
- * - * string partition = 6; - */ - public com.google.protobuf.ByteString - getPartitionBytes() { - java.lang.Object ref = partition_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - partition_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ORG_FIELD_NUMBER = 7; + public static final int ORG_FIELD_NUMBER = 6; private volatile java.lang.Object org_; /** *
      * Optional, org key applied to the resource.
      * 
* - * string org = 7; + * string org = 6; */ public java.lang.String getOrg() { java.lang.Object ref = org_; @@ -20393,7 +20326,7 @@ public java.lang.String getOrg() { * Optional, org key applied to the resource. *
* - * string org = 7; + * string org = 6; */ public com.google.protobuf.ByteString getOrgBytes() { @@ -20438,11 +20371,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getUUIDBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, uUID_); } - if (!getPartitionBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 6, partition_); - } if (!getOrgBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 7, org_); + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, org_); } unknownFields.writeTo(output); } @@ -20468,11 +20398,8 @@ public int getSerializedSize() { if (!getUUIDBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, uUID_); } - if (!getPartitionBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, partition_); - } if (!getOrgBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, org_); + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, org_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -20499,8 +20426,6 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getVersion())) return false; if (!getUUID() .equals(other.getUUID())) return false; - if (!getPartition() - .equals(other.getPartition())) return false; if (!getOrg() .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; @@ -20524,8 +20449,6 @@ public int hashCode() { hash = (53 * hash) + getVersion().hashCode(); hash = (37 * hash) + UUID_FIELD_NUMBER; hash = (53 * hash) + getUUID().hashCode(); - hash = (37 * hash) + PARTITION_FIELD_NUMBER; - hash = (53 * hash) + getPartition().hashCode(); hash = (37 * hash) + ORG_FIELD_NUMBER; hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); @@ -20675,8 +20598,6 @@ public Builder clear() { uUID_ = ""; - partition_ = ""; - org_ = ""; return this; @@ -20710,7 +20631,6 @@ public datacatalog.Datacatalog.DatasetID buildPartial() { result.domain_ = domain_; result.version_ = version_; result.uUID_ = uUID_; - result.partition_ = partition_; result.org_ = org_; onBuilt(); return result; @@ -20780,10 +20700,6 @@ public Builder mergeFrom(datacatalog.Datacatalog.DatasetID other) { uUID_ = other.uUID_; onChanged(); } - if (!other.getPartition().isEmpty()) { - partition_ = other.partition_; - onChanged(); - } if (!other.getOrg().isEmpty()) { org_ = other.org_; onChanged(); @@ -21262,102 +21178,13 @@ public Builder setUUIDBytes( return this; } - private java.lang.Object partition_ = ""; - /** - *
-       * Optional, partition key applied to the dataset.
-       * 
- * - * string partition = 6; - */ - public java.lang.String getPartition() { - java.lang.Object ref = partition_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - partition_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-       * Optional, partition key applied to the dataset.
-       * 
- * - * string partition = 6; - */ - public com.google.protobuf.ByteString - getPartitionBytes() { - java.lang.Object ref = partition_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - partition_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-       * Optional, partition key applied to the dataset.
-       * 
- * - * string partition = 6; - */ - public Builder setPartition( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - partition_ = value; - onChanged(); - return this; - } - /** - *
-       * Optional, partition key applied to the dataset.
-       * 
- * - * string partition = 6; - */ - public Builder clearPartition() { - - partition_ = getDefaultInstance().getPartition(); - onChanged(); - return this; - } - /** - *
-       * Optional, partition key applied to the dataset.
-       * 
- * - * string partition = 6; - */ - public Builder setPartitionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - partition_ = value; - onChanged(); - return this; - } - private java.lang.Object org_ = ""; /** *
        * Optional, org key applied to the resource.
        * 
* - * string org = 7; + * string org = 6; */ public java.lang.String getOrg() { java.lang.Object ref = org_; @@ -21376,7 +21203,7 @@ public java.lang.String getOrg() { * Optional, org key applied to the resource. *
* - * string org = 7; + * string org = 6; */ public com.google.protobuf.ByteString getOrgBytes() { @@ -21396,7 +21223,7 @@ public java.lang.String getOrg() { * Optional, org key applied to the resource. *
* - * string org = 7; + * string org = 6; */ public Builder setOrg( java.lang.String value) { @@ -21413,7 +21240,7 @@ public Builder setOrg( * Optional, org key applied to the resource. *
* - * string org = 7; + * string org = 6; */ public Builder clearOrg() { @@ -21426,7 +21253,7 @@ public Builder clearOrg() { * Optional, org key applied to the resource. *
* - * string org = 7; + * string org = 6; */ public Builder setOrgBytes( com.google.protobuf.ByteString value) { @@ -34415,75 +34242,74 @@ public datacatalog.Datacatalog.PaginationOptions getDefaultInstanceForType() { "datacatalog.DatasetID\022\'\n\010metadata\030\002 \001(\0132" + "\025.datacatalog.Metadata\022\025\n\rpartitionKeys\030" + "\003 \003(\t\"\'\n\tPartition\022\013\n\003key\030\001 \001(\t\022\r\n\005value" + - "\030\002 \001(\t\"y\n\tDatasetID\022\017\n\007project\030\001 \001(\t\022\014\n\004" + + "\030\002 \001(\t\"f\n\tDatasetID\022\017\n\007project\030\001 \001(\t\022\014\n\004" + "name\030\002 \001(\t\022\016\n\006domain\030\003 \001(\t\022\017\n\007version\030\004 " + - "\001(\t\022\014\n\004UUID\030\005 \001(\t\022\021\n\tpartition\030\006 \001(\t\022\013\n\003" + - "org\030\007 \001(\t\"\215\002\n\010Artifact\022\n\n\002id\030\001 \001(\t\022\'\n\007da" + - "taset\030\002 \001(\0132\026.datacatalog.DatasetID\022\'\n\004d" + - "ata\030\003 \003(\0132\031.datacatalog.ArtifactData\022\'\n\010" + - "metadata\030\004 \001(\0132\025.datacatalog.Metadata\022*\n" + - "\npartitions\030\005 \003(\0132\026.datacatalog.Partitio" + - "n\022\036\n\004tags\030\006 \003(\0132\020.datacatalog.Tag\022.\n\ncre" + - "ated_at\030\007 \001(\0132\032.google.protobuf.Timestam" + - "p\"C\n\014ArtifactData\022\014\n\004name\030\001 \001(\t\022%\n\005value" + - "\030\002 \001(\0132\026.flyteidl.core.Literal\"Q\n\003Tag\022\014\n" + - "\004name\030\001 \001(\t\022\023\n\013artifact_id\030\002 \001(\t\022\'\n\007data" + - "set\030\003 \001(\0132\026.datacatalog.DatasetID\"m\n\010Met" + - "adata\0222\n\007key_map\030\001 \003(\0132!.datacatalog.Met" + - "adata.KeyMapEntry\032-\n\013KeyMapEntry\022\013\n\003key\030" + - "\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"F\n\020FilterExpres" + - "sion\0222\n\007filters\030\001 \003(\0132!.datacatalog.Sing" + - "lePropertyFilter\"\211\003\n\024SinglePropertyFilte" + - "r\0224\n\ntag_filter\030\001 \001(\0132\036.datacatalog.TagP" + - "ropertyFilterH\000\022@\n\020partition_filter\030\002 \001(" + - "\0132$.datacatalog.PartitionPropertyFilterH" + - "\000\022>\n\017artifact_filter\030\003 \001(\0132#.datacatalog" + - ".ArtifactPropertyFilterH\000\022<\n\016dataset_fil" + - "ter\030\004 \001(\0132\".datacatalog.DatasetPropertyF" + - "ilterH\000\022F\n\010operator\030\n \001(\01624.datacatalog." + - "SinglePropertyFilter.ComparisonOperator\"" + - " \n\022ComparisonOperator\022\n\n\006EQUALS\020\000B\021\n\017pro" + - "perty_filter\";\n\026ArtifactPropertyFilter\022\025" + - "\n\013artifact_id\030\001 \001(\tH\000B\n\n\010property\"3\n\021Tag" + - "PropertyFilter\022\022\n\010tag_name\030\001 \001(\tH\000B\n\n\010pr" + - "operty\"S\n\027PartitionPropertyFilter\022,\n\007key" + - "_val\030\001 \001(\0132\031.datacatalog.KeyValuePairH\000B" + - "\n\n\010property\"*\n\014KeyValuePair\022\013\n\003key\030\001 \001(\t" + - "\022\r\n\005value\030\002 \001(\t\"\200\001\n\025DatasetPropertyFilte" + - "r\022\021\n\007project\030\001 \001(\tH\000\022\016\n\004name\030\002 \001(\tH\000\022\020\n\006" + - "domain\030\003 \001(\tH\000\022\021\n\007version\030\004 \001(\tH\000\022\023\n\tpar" + - "tition\030\005 \001(\tH\000B\n\n\010property\"\361\001\n\021Paginatio" + - "nOptions\022\r\n\005limit\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\0227" + - "\n\007sortKey\030\003 \001(\0162&.datacatalog.Pagination" + - "Options.SortKey\022;\n\tsortOrder\030\004 \001(\0162(.dat" + - "acatalog.PaginationOptions.SortOrder\"*\n\t" + - "SortOrder\022\016\n\nDESCENDING\020\000\022\r\n\tASCENDING\020\001" + - "\"\034\n\007SortKey\022\021\n\rCREATION_TIME\020\0002\206\007\n\013DataC" + - "atalog\022V\n\rCreateDataset\022!.datacatalog.Cr" + - "eateDatasetRequest\032\".datacatalog.CreateD" + - "atasetResponse\022M\n\nGetDataset\022\036.datacatal" + - "og.GetDatasetRequest\032\037.datacatalog.GetDa" + - "tasetResponse\022Y\n\016CreateArtifact\022\".dataca" + - "talog.CreateArtifactRequest\032#.datacatalo" + - "g.CreateArtifactResponse\022P\n\013GetArtifact\022" + - "\037.datacatalog.GetArtifactRequest\032 .datac" + - "atalog.GetArtifactResponse\022A\n\006AddTag\022\032.d" + - "atacatalog.AddTagRequest\032\033.datacatalog.A" + - "ddTagResponse\022V\n\rListArtifacts\022!.datacat" + - "alog.ListArtifactsRequest\032\".datacatalog." + - "ListArtifactsResponse\022S\n\014ListDatasets\022 ." + - "datacatalog.ListDatasetsRequest\032!.dataca" + - "talog.ListDatasetsResponse\022Y\n\016UpdateArti" + - "fact\022\".datacatalog.UpdateArtifactRequest" + - "\032#.datacatalog.UpdateArtifactResponse\022q\n" + - "\026GetOrExtendReservation\022*.datacatalog.Ge" + - "tOrExtendReservationRequest\032+.datacatalo" + - "g.GetOrExtendReservationResponse\022e\n\022Rele" + - "aseReservation\022&.datacatalog.ReleaseRese" + - "rvationRequest\032\'.datacatalog.ReleaseRese" + - "rvationResponseBCZAgithub.com/flyteorg/f" + - "lyte/flyteidl/gen/pb-go/flyteidl/datacat" + - "alogb\006proto3" + "\001(\t\022\014\n\004UUID\030\005 \001(\t\022\013\n\003org\030\006 \001(\t\"\215\002\n\010Artif" + + "act\022\n\n\002id\030\001 \001(\t\022\'\n\007dataset\030\002 \001(\0132\026.datac" + + "atalog.DatasetID\022\'\n\004data\030\003 \003(\0132\031.datacat" + + "alog.ArtifactData\022\'\n\010metadata\030\004 \001(\0132\025.da" + + "tacatalog.Metadata\022*\n\npartitions\030\005 \003(\0132\026" + + ".datacatalog.Partition\022\036\n\004tags\030\006 \003(\0132\020.d" + + "atacatalog.Tag\022.\n\ncreated_at\030\007 \001(\0132\032.goo" + + "gle.protobuf.Timestamp\"C\n\014ArtifactData\022\014" + + "\n\004name\030\001 \001(\t\022%\n\005value\030\002 \001(\0132\026.flyteidl.c" + + "ore.Literal\"Q\n\003Tag\022\014\n\004name\030\001 \001(\t\022\023\n\013arti" + + "fact_id\030\002 \001(\t\022\'\n\007dataset\030\003 \001(\0132\026.datacat" + + "alog.DatasetID\"m\n\010Metadata\0222\n\007key_map\030\001 " + + "\003(\0132!.datacatalog.Metadata.KeyMapEntry\032-" + + "\n\013KeyMapEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(" + + "\t:\0028\001\"F\n\020FilterExpression\0222\n\007filters\030\001 \003" + + "(\0132!.datacatalog.SinglePropertyFilter\"\211\003" + + "\n\024SinglePropertyFilter\0224\n\ntag_filter\030\001 \001" + + "(\0132\036.datacatalog.TagPropertyFilterH\000\022@\n\020" + + "partition_filter\030\002 \001(\0132$.datacatalog.Par" + + "titionPropertyFilterH\000\022>\n\017artifact_filte" + + "r\030\003 \001(\0132#.datacatalog.ArtifactPropertyFi" + + "lterH\000\022<\n\016dataset_filter\030\004 \001(\0132\".datacat" + + "alog.DatasetPropertyFilterH\000\022F\n\010operator" + + "\030\n \001(\01624.datacatalog.SinglePropertyFilte" + + "r.ComparisonOperator\" \n\022ComparisonOperat" + + "or\022\n\n\006EQUALS\020\000B\021\n\017property_filter\";\n\026Art" + + "ifactPropertyFilter\022\025\n\013artifact_id\030\001 \001(\t" + + "H\000B\n\n\010property\"3\n\021TagPropertyFilter\022\022\n\010t" + + "ag_name\030\001 \001(\tH\000B\n\n\010property\"S\n\027Partition" + + "PropertyFilter\022,\n\007key_val\030\001 \001(\0132\031.dataca" + + "talog.KeyValuePairH\000B\n\n\010property\"*\n\014KeyV" + + "aluePair\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\200\001\n" + + "\025DatasetPropertyFilter\022\021\n\007project\030\001 \001(\tH" + + "\000\022\016\n\004name\030\002 \001(\tH\000\022\020\n\006domain\030\003 \001(\tH\000\022\021\n\007v" + + "ersion\030\004 \001(\tH\000\022\023\n\tpartition\030\005 \001(\tH\000B\n\n\010p" + + "roperty\"\361\001\n\021PaginationOptions\022\r\n\005limit\030\001" + + " \001(\r\022\r\n\005token\030\002 \001(\t\0227\n\007sortKey\030\003 \001(\0162&.d" + + "atacatalog.PaginationOptions.SortKey\022;\n\t" + + "sortOrder\030\004 \001(\0162(.datacatalog.Pagination" + + "Options.SortOrder\"*\n\tSortOrder\022\016\n\nDESCEN" + + "DING\020\000\022\r\n\tASCENDING\020\001\"\034\n\007SortKey\022\021\n\rCREA" + + "TION_TIME\020\0002\206\007\n\013DataCatalog\022V\n\rCreateDat" + + "aset\022!.datacatalog.CreateDatasetRequest\032" + + "\".datacatalog.CreateDatasetResponse\022M\n\nG" + + "etDataset\022\036.datacatalog.GetDatasetReques" + + "t\032\037.datacatalog.GetDatasetResponse\022Y\n\016Cr" + + "eateArtifact\022\".datacatalog.CreateArtifac" + + "tRequest\032#.datacatalog.CreateArtifactRes" + + "ponse\022P\n\013GetArtifact\022\037.datacatalog.GetAr" + + "tifactRequest\032 .datacatalog.GetArtifactR" + + "esponse\022A\n\006AddTag\022\032.datacatalog.AddTagRe" + + "quest\032\033.datacatalog.AddTagResponse\022V\n\rLi" + + "stArtifacts\022!.datacatalog.ListArtifactsR" + + "equest\032\".datacatalog.ListArtifactsRespon" + + "se\022S\n\014ListDatasets\022 .datacatalog.ListDat" + + "asetsRequest\032!.datacatalog.ListDatasetsR" + + "esponse\022Y\n\016UpdateArtifact\022\".datacatalog." + + "UpdateArtifactRequest\032#.datacatalog.Upda" + + "teArtifactResponse\022q\n\026GetOrExtendReserva" + + "tion\022*.datacatalog.GetOrExtendReservatio" + + "nRequest\032+.datacatalog.GetOrExtendReserv" + + "ationResponse\022e\n\022ReleaseReservation\022&.da" + + "tacatalog.ReleaseReservationRequest\032\'.da" + + "tacatalog.ReleaseReservationResponseBCZA" + + "github.com/flyteorg/flyte/flyteidl/gen/p" + + "b-go/flyteidl/datacatalogb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -34649,7 +34475,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_datacatalog_DatasetID_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_datacatalog_DatasetID_descriptor, - new java.lang.String[] { "Project", "Name", "Domain", "Version", "UUID", "Partition", "Org", }); + new java.lang.String[] { "Project", "Name", "Domain", "Version", "UUID", "Org", }); internal_static_datacatalog_Artifact_descriptor = getDescriptor().getMessageTypes().get(25); internal_static_datacatalog_Artifact_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-java/flyteidl/service/Admin.java b/flyteidl/gen/pb-java/flyteidl/service/Admin.java index f353b78f35..5da7b673b4 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Admin.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Admin.java @@ -38,7 +38,7 @@ public static void registerAllExtensions( "admin/task_execution.proto\032\034flyteidl/adm" + "in/version.proto\032\033flyteidl/admin/common." + "proto\032\'flyteidl/admin/description_entity" + - ".proto2\371q\n\014AdminService\022m\n\nCreateTask\022!." + + ".proto2\265q\n\014AdminService\022m\n\nCreateTask\022!." + "flyteidl.admin.TaskCreateRequest\032\".flyte" + "idl.admin.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/a" + "pi/v1/tasks:\001*\022\330\001\n\007GetTask\022 .flyteidl.ad" + @@ -219,192 +219,190 @@ public static void registerAllExtensions( "on_id.name}/{id.node_id}\022\177\n\017RegisterProj" + "ect\022&.flyteidl.admin.ProjectRegisterRequ" + "est\032\'.flyteidl.admin.ProjectRegisterResp" + - "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\333\001\n\rUp" + + "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\227\001\n\rUp" + "dateProject\022\027.flyteidl.admin.Project\032%.f" + - "lyteidl.admin.ProjectUpdateResponse\"\211\001\202\323" + - "\344\223\002\202\001\032\025/api/v1/projects/{id}:\001*Z\032\032\025/api/" + - "v1/projects/{id}:\001*Z$\032\037/api/v1/projects/" + - "org/{org}/{id}:\001*Z$\032\037/api/v1/projects/or" + - "g/{org}/{id}:\001*\022f\n\014ListProjects\022\".flytei" + - "dl.admin.ProjectListRequest\032\030.flyteidl.a" + - "dmin.Projects\"\030\202\323\344\223\002\022\022\020/api/v1/projects\022" + - "\231\001\n\023CreateWorkflowEvent\022-.flyteidl.admin" + - ".WorkflowExecutionEventRequest\032..flyteid" + - "l.admin.WorkflowExecutionEventResponse\"#" + - "\202\323\344\223\002\035\"\030/api/v1/events/workflows:\001*\022\211\001\n\017" + - "CreateNodeEvent\022).flyteidl.admin.NodeExe" + - "cutionEventRequest\032*.flyteidl.admin.Node" + - "ExecutionEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/" + - "events/nodes:\001*\022\211\001\n\017CreateTaskEvent\022).fl" + - "yteidl.admin.TaskExecutionEventRequest\032*" + - ".flyteidl.admin.TaskExecutionEventRespon" + - "se\"\037\202\323\344\223\002\031\"\024/api/v1/events/tasks:\001*\022\313\005\n\020" + - "GetTaskExecution\022\'.flyteidl.admin.TaskEx" + - "ecutionGetRequest\032\035.flyteidl.admin.TaskE" + - "xecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1/task_execut" + - "ions/{id.node_execution_id.execution_id." + - "project}/{id.node_execution_id.execution" + - "_id.domain}/{id.node_execution_id.execut" + - "ion_id.name}/{id.node_execution_id.node_" + - "id}/{id.task_id.project}/{id.task_id.dom" + - "ain}/{id.task_id.name}/{id.task_id.versi" + - "on}/{id.retry_attempt}Z\310\002\022\305\002/api/v1/task" + - "_executions/org/{id.node_execution_id.ex" + - "ecution_id.org}/{id.node_execution_id.ex" + - "ecution_id.project}/{id.node_execution_i" + - "d.execution_id.domain}/{id.node_executio" + - "n_id.execution_id.name}/{id.node_executi" + - "on_id.node_id}/{id.task_id.project}/{id." + - "task_id.domain}/{id.task_id.name}/{id.ta" + - "sk_id.version}/{id.retry_attempt}\022\361\003\n\022Li" + - "stTaskExecutions\022(.flyteidl.admin.TaskEx" + - "ecutionListRequest\032!.flyteidl.admin.Task" + - "ExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/api/v1/task_e" + - "xecutions/{node_execution_id.execution_i" + - "d.project}/{node_execution_id.execution_" + - "id.domain}/{node_execution_id.execution_" + - "id.name}/{node_execution_id.node_id}Z\326\001\022" + - "\323\001/api/v1/task_executions/org/{node_exec" + - "ution_id.execution_id.org}/{node_executi" + - "on_id.execution_id.project}/{node_execut" + - "ion_id.execution_id.domain}/{node_execut" + - "ion_id.execution_id.name}/{node_executio" + - "n_id.node_id}\022\354\005\n\024GetTaskExecutionData\022+" + - ".flyteidl.admin.TaskExecutionGetDataRequ" + - "est\032,.flyteidl.admin.TaskExecutionGetDat" + - "aResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v1/data/task_" + - "executions/{id.node_execution_id.executi" + - "on_id.project}/{id.node_execution_id.exe" + - "cution_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}Z\315\002\022\312\002/api/v" + - "1/data/task_executions/org/{id.node_exec" + - "ution_id.execution_id.org}/{id.node_exec" + - "ution_id.execution_id.project}/{id.node_" + - "execution_id.execution_id.domain}/{id.no" + - "de_execution_id.execution_id.name}/{id.n" + - "ode_execution_id.node_id}/{id.task_id.pr" + - "oject}/{id.task_id.domain}/{id.task_id.n" + - "ame}/{id.task_id.version}/{id.retry_atte" + - "mpt}\022\313\002\n\035UpdateProjectDomainAttributes\0224" + - ".flyteidl.admin.ProjectDomainAttributesU" + - "pdateRequest\0325.flyteidl.admin.ProjectDom" + - "ainAttributesUpdateResponse\"\274\001\202\323\344\223\002\265\001\032J/" + - "api/v1/project_domain_attributes/{attrib" + - "utes.project}/{attributes.domain}:\001*Zd\032_" + - "/api/v1/project_domain_attributes/org/{a" + - "ttributes.org}/{attributes.project}/{att" + - "ributes.domain}:\001*\022\203\002\n\032GetProjectDomainA" + - "ttributes\0221.flyteidl.admin.ProjectDomain" + - "AttributesGetRequest\0322.flyteidl.admin.Pr" + - "ojectDomainAttributesGetResponse\"~\202\323\344\223\002x" + - "\0224/api/v1/project_domain_attributes/{pro" + - "ject}/{domain}Z@\022>/api/v1/project_domain" + - "_attributes/org/{org}/{project}/{domain}" + - "\022\223\002\n\035DeleteProjectDomainAttributes\0224.fly" + - "teidl.admin.ProjectDomainAttributesDelet" + - "eRequest\0325.flyteidl.admin.ProjectDomainA" + - "ttributesDeleteResponse\"\204\001\202\323\344\223\002~*4/api/v" + - "1/project_domain_attributes/{project}/{d" + - "omain}:\001*ZC*>/api/v1/project_domain_attr" + - "ibutes/org/{org}/{project}/{domain}:\001*\022\212" + - "\002\n\027UpdateProjectAttributes\022..flyteidl.ad" + - "min.ProjectAttributesUpdateRequest\032/.fly" + - "teidl.admin.ProjectAttributesUpdateRespo" + - "nse\"\215\001\202\323\344\223\002\206\001\032//api/v1/project_attribute" + - "s/{attributes.project}:\001*ZP\032K/api/v1/pro" + - "ject_domain_attributes/org/{attributes.o" + - "rg}/{attributes.project}:\001*\022\330\001\n\024GetProje" + - "ctAttributes\022+.flyteidl.admin.ProjectAtt" + - "ributesGetRequest\032,.flyteidl.admin.Proje" + - "ctAttributesGetResponse\"e\202\323\344\223\002_\022$/api/v1" + - "/project_attributes/{project}Z7\0225/api/v1" + - "/project_domain_attributes/org/{org}/{pr" + - "oject}\022\347\001\n\027DeleteProjectAttributes\022..fly" + - "teidl.admin.ProjectAttributesDeleteReque" + - "st\032/.flyteidl.admin.ProjectAttributesDel" + - "eteResponse\"k\202\323\344\223\002e*$/api/v1/project_att" + - "ributes/{project}:\001*Z:*5/api/v1/project_" + - "domain_attributes/org/{org}/{project}:\001*" + - "\022\334\002\n\030UpdateWorkflowAttributes\022/.flyteidl" + - ".admin.WorkflowAttributesUpdateRequest\0320" + - ".flyteidl.admin.WorkflowAttributesUpdate" + - "Response\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/workflow_att" + - "ributes/{attributes.project}/{attributes" + - ".domain}/{attributes.workflow}:\001*Zt\032o/ap" + - "i/v1/workflow_attributes/org/{attributes" + - ".org}/{attributes.project}/{attributes.d" + - "omain}/{attributes.workflow}:\001*\022\200\002\n\025GetW" + - "orkflowAttributes\022,.flyteidl.admin.Workf" + - "lowAttributesGetRequest\032-.flyteidl.admin" + - ".WorkflowAttributesGetResponse\"\211\001\202\323\344\223\002\202\001" + - "\0229/api/v1/workflow_attributes/{project}/" + - "{domain}/{workflow}ZE\022C/api/v1/workflow_" + - "attributes/org/{org}/{project}/{domain}/" + - "{workflow}\022\217\002\n\030DeleteWorkflowAttributes\022" + - "/.flyteidl.admin.WorkflowAttributesDelet" + - "eRequest\0320.flyteidl.admin.WorkflowAttrib" + - "utesDeleteResponse\"\217\001\202\323\344\223\002\210\001*9/api/v1/wo" + - "rkflow_attributes/{project}/{domain}/{wo" + - "rkflow}:\001*ZH*C/api/v1/workflow_attribute" + - "s/org/{org}/{project}/{domain}/{workflow" + - "}:\001*\022\240\001\n\027ListMatchableAttributes\022..flyte" + - "idl.admin.ListMatchableAttributesRequest" + - "\032/.flyteidl.admin.ListMatchableAttribute" + - "sResponse\"$\202\323\344\223\002\036\022\034/api/v1/matchable_att" + - "ributes\022\350\001\n\021ListNamedEntities\022&.flyteidl" + - ".admin.NamedEntityListRequest\032\037.flyteidl" + - ".admin.NamedEntityList\"\211\001\202\323\344\223\002\202\001\0229/api/v" + - "1/named_entities/{resource_type}/{projec" + - "t}/{domain}ZE\022C/api/v1/named_entities/{r" + - "esource_type}/org/{org}/{project}/{domai" + - "n}\022\203\002\n\016GetNamedEntity\022%.flyteidl.admin.N" + - "amedEntityGetRequest\032\033.flyteidl.admin.Na" + - "medEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1/named_entit" + - "ies/{resource_type}/{id.project}/{id.dom" + - "ain}/{id.name}ZX\022V/api/v1/named_entities" + - "/{resource_type}/org/{id.org}/{id.projec" + - "t}/{id.domain}/{id.name}\022\235\002\n\021UpdateNamed" + - "Entity\022(.flyteidl.admin.NamedEntityUpdat" + - "eRequest\032).flyteidl.admin.NamedEntityUpd" + - "ateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/v1/named_ent" + - "ities/{resource_type}/{id.project}/{id.d" + - "omain}/{id.name}:\001*Z[\032V/api/v1/named_ent" + - "ities/{resource_type}/org/{id.org}/{id.p" + - "roject}/{id.domain}/{id.name}:\001*\022l\n\nGetV" + - "ersion\022!.flyteidl.admin.GetVersionReques" + - "t\032\".flyteidl.admin.GetVersionResponse\"\027\202" + - "\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024GetDescriptio" + - "nEntity\022 .flyteidl.admin.ObjectGetReques" + - "t\032!.flyteidl.admin.DescriptionEntity\"\330\001\202" + - "\323\344\223\002\321\001\022_/api/v1/description_entities/{id" + - ".resource_type}/{id.project}/{id.domain}" + - "/{id.name}/{id.version}Zn\022l/api/v1/descr" + - "iption_entities/org/{id.org}/{id.resourc" + - "e_type}/{id.project}/{id.domain}/{id.nam" + - "e}/{id.version}\022\310\003\n\027ListDescriptionEntit" + - "ies\022,.flyteidl.admin.DescriptionEntityLi" + - "stRequest\032%.flyteidl.admin.DescriptionEn" + - "tityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/description_" + - "entities/{resource_type}/{id.project}/{i" + - "d.domain}/{id.name}Z^\022\\/api/v1/descripti" + - "on_entities/{resource_type}/org/{id.org}" + - "/{id.project}/{id.domain}/{id.name}ZG\022E/" + - "api/v1/description_entities/{resource_ty" + - "pe}/{id.project}/{id.domain}ZT\022R/api/v1/" + - "description_entities/{resource_type}/org" + - "/{id.org}/{id.project}/{id.domain}\022\225\002\n\023G" + - "etExecutionMetrics\0222.flyteidl.admin.Work" + - "flowExecutionGetMetricsRequest\0323.flyteid" + - "l.admin.WorkflowExecutionGetMetricsRespo" + - "nse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metrics/execution" + - "s/{id.project}/{id.domain}/{id.name}ZL\022J" + - "/api/v1/metrics/executions/org/{id.org}/" + - "{id.project}/{id.domain}/{id.name}B?Z=gi" + - "thub.com/flyteorg/flyte/flyteidl/gen/pb-" + - "go/flyteidl/serviceb\006proto3" + "lyteidl.admin.ProjectUpdateResponse\"F\202\323\344" + + "\223\002@\032\025/api/v1/projects/{id}:\001*Z$\032\037/api/v1" + + "/projects/org/{org}/{id}:\001*\022f\n\014ListProje" + + "cts\022\".flyteidl.admin.ProjectListRequest\032" + + "\030.flyteidl.admin.Projects\"\030\202\323\344\223\002\022\022\020/api/" + + "v1/projects\022\231\001\n\023CreateWorkflowEvent\022-.fl" + + "yteidl.admin.WorkflowExecutionEventReque" + + "st\032..flyteidl.admin.WorkflowExecutionEve" + + "ntResponse\"#\202\323\344\223\002\035\"\030/api/v1/events/workf" + + "lows:\001*\022\211\001\n\017CreateNodeEvent\022).flyteidl.a" + + "dmin.NodeExecutionEventRequest\032*.flyteid" + + "l.admin.NodeExecutionEventResponse\"\037\202\323\344\223" + + "\002\031\"\024/api/v1/events/nodes:\001*\022\211\001\n\017CreateTa" + + "skEvent\022).flyteidl.admin.TaskExecutionEv" + + "entRequest\032*.flyteidl.admin.TaskExecutio" + + "nEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/t" + + "asks:\001*\022\313\005\n\020GetTaskExecution\022\'.flyteidl." + + "admin.TaskExecutionGetRequest\032\035.flyteidl" + + ".admin.TaskExecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1" + + "/task_executions/{id.node_execution_id.e" + + "xecution_id.project}/{id.node_execution_" + + "id.execution_id.domain}/{id.node_executi" + + "on_id.execution_id.name}/{id.node_execut" + + "ion_id.node_id}/{id.task_id.project}/{id" + + ".task_id.domain}/{id.task_id.name}/{id.t" + + "ask_id.version}/{id.retry_attempt}Z\310\002\022\305\002" + + "/api/v1/task_executions/org/{id.node_exe" + + "cution_id.execution_id.org}/{id.node_exe" + + "cution_id.execution_id.project}/{id.node" + + "_execution_id.execution_id.domain}/{id.n" + + "ode_execution_id.execution_id.name}/{id." + + "node_execution_id.node_id}/{id.task_id.p" + + "roject}/{id.task_id.domain}/{id.task_id." + + "name}/{id.task_id.version}/{id.retry_att" + + "empt}\022\361\003\n\022ListTaskExecutions\022(.flyteidl." + + "admin.TaskExecutionListRequest\032!.flyteid" + + "l.admin.TaskExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/a" + + "pi/v1/task_executions/{node_execution_id" + + ".execution_id.project}/{node_execution_i" + + "d.execution_id.domain}/{node_execution_i" + + "d.execution_id.name}/{node_execution_id." + + "node_id}Z\326\001\022\323\001/api/v1/task_executions/or" + + "g/{node_execution_id.execution_id.org}/{" + + "node_execution_id.execution_id.project}/" + + "{node_execution_id.execution_id.domain}/" + + "{node_execution_id.execution_id.name}/{n" + + "ode_execution_id.node_id}\022\354\005\n\024GetTaskExe" + + "cutionData\022+.flyteidl.admin.TaskExecutio" + + "nGetDataRequest\032,.flyteidl.admin.TaskExe" + + "cutionGetDataResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v" + + "1/data/task_executions/{id.node_executio" + + "n_id.execution_id.project}/{id.node_exec" + + "ution_id.execution_id.domain}/{id.node_e" + + "xecution_id.execution_id.name}/{id.node_" + + "execution_id.node_id}/{id.task_id.projec" + + "t}/{id.task_id.domain}/{id.task_id.name}" + + "/{id.task_id.version}/{id.retry_attempt}" + + "Z\315\002\022\312\002/api/v1/data/task_executions/org/{" + + "id.node_execution_id.execution_id.org}/{" + + "id.node_execution_id.execution_id.projec" + + "t}/{id.node_execution_id.execution_id.do" + + "main}/{id.node_execution_id.execution_id" + + ".name}/{id.node_execution_id.node_id}/{i" + + "d.task_id.project}/{id.task_id.domain}/{" + + "id.task_id.name}/{id.task_id.version}/{i" + + "d.retry_attempt}\022\313\002\n\035UpdateProjectDomain" + + "Attributes\0224.flyteidl.admin.ProjectDomai" + + "nAttributesUpdateRequest\0325.flyteidl.admi" + + "n.ProjectDomainAttributesUpdateResponse\"" + + "\274\001\202\323\344\223\002\265\001\032J/api/v1/project_domain_attrib" + + "utes/{attributes.project}/{attributes.do" + + "main}:\001*Zd\032_/api/v1/project_domain_attri" + + "butes/org/{attributes.org}/{attributes.p" + + "roject}/{attributes.domain}:\001*\022\203\002\n\032GetPr" + + "ojectDomainAttributes\0221.flyteidl.admin.P" + + "rojectDomainAttributesGetRequest\0322.flyte" + + "idl.admin.ProjectDomainAttributesGetResp" + + "onse\"~\202\323\344\223\002x\0224/api/v1/project_domain_att" + + "ributes/{project}/{domain}Z@\022>/api/v1/pr" + + "oject_domain_attributes/org/{org}/{proje" + + "ct}/{domain}\022\223\002\n\035DeleteProjectDomainAttr" + + "ibutes\0224.flyteidl.admin.ProjectDomainAtt" + + "ributesDeleteRequest\0325.flyteidl.admin.Pr" + + "ojectDomainAttributesDeleteResponse\"\204\001\202\323" + + "\344\223\002~*4/api/v1/project_domain_attributes/" + + "{project}/{domain}:\001*ZC*>/api/v1/project" + + "_domain_attributes/org/{org}/{project}/{" + + "domain}:\001*\022\212\002\n\027UpdateProjectAttributes\022." + + ".flyteidl.admin.ProjectAttributesUpdateR" + + "equest\032/.flyteidl.admin.ProjectAttribute" + + "sUpdateResponse\"\215\001\202\323\344\223\002\206\001\032//api/v1/proje" + + "ct_attributes/{attributes.project}:\001*ZP\032" + + "K/api/v1/project_domain_attributes/org/{" + + "attributes.org}/{attributes.project}:\001*\022" + + "\330\001\n\024GetProjectAttributes\022+.flyteidl.admi" + + "n.ProjectAttributesGetRequest\032,.flyteidl" + + ".admin.ProjectAttributesGetResponse\"e\202\323\344" + + "\223\002_\022$/api/v1/project_attributes/{project" + + "}Z7\0225/api/v1/project_domain_attributes/o" + + "rg/{org}/{project}\022\347\001\n\027DeleteProjectAttr" + + "ibutes\022..flyteidl.admin.ProjectAttribute" + + "sDeleteRequest\032/.flyteidl.admin.ProjectA" + + "ttributesDeleteResponse\"k\202\323\344\223\002e*$/api/v1" + + "/project_attributes/{project}:\001*Z:*5/api" + + "/v1/project_domain_attributes/org/{org}/" + + "{project}:\001*\022\334\002\n\030UpdateWorkflowAttribute" + + "s\022/.flyteidl.admin.WorkflowAttributesUpd" + + "ateRequest\0320.flyteidl.admin.WorkflowAttr" + + "ibutesUpdateResponse\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/" + + "workflow_attributes/{attributes.project}" + + "/{attributes.domain}/{attributes.workflo" + + "w}:\001*Zt\032o/api/v1/workflow_attributes/org" + + "/{attributes.org}/{attributes.project}/{" + + "attributes.domain}/{attributes.workflow}" + + ":\001*\022\200\002\n\025GetWorkflowAttributes\022,.flyteidl" + + ".admin.WorkflowAttributesGetRequest\032-.fl" + + "yteidl.admin.WorkflowAttributesGetRespon" + + "se\"\211\001\202\323\344\223\002\202\001\0229/api/v1/workflow_attribute" + + "s/{project}/{domain}/{workflow}ZE\022C/api/" + + "v1/workflow_attributes/org/{org}/{projec" + + "t}/{domain}/{workflow}\022\217\002\n\030DeleteWorkflo" + + "wAttributes\022/.flyteidl.admin.WorkflowAtt" + + "ributesDeleteRequest\0320.flyteidl.admin.Wo" + + "rkflowAttributesDeleteResponse\"\217\001\202\323\344\223\002\210\001" + + "*9/api/v1/workflow_attributes/{project}/" + + "{domain}/{workflow}:\001*ZH*C/api/v1/workfl" + + "ow_attributes/org/{org}/{project}/{domai" + + "n}/{workflow}:\001*\022\240\001\n\027ListMatchableAttrib" + + "utes\022..flyteidl.admin.ListMatchableAttri" + + "butesRequest\032/.flyteidl.admin.ListMatcha" + + "bleAttributesResponse\"$\202\323\344\223\002\036\022\034/api/v1/m" + + "atchable_attributes\022\350\001\n\021ListNamedEntitie" + + "s\022&.flyteidl.admin.NamedEntityListReques" + + "t\032\037.flyteidl.admin.NamedEntityList\"\211\001\202\323\344" + + "\223\002\202\001\0229/api/v1/named_entities/{resource_t" + + "ype}/{project}/{domain}ZE\022C/api/v1/named" + + "_entities/{resource_type}/org/{org}/{pro" + + "ject}/{domain}\022\203\002\n\016GetNamedEntity\022%.flyt" + + "eidl.admin.NamedEntityGetRequest\032\033.flyte" + + "idl.admin.NamedEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1" + + "/named_entities/{resource_type}/{id.proj" + + "ect}/{id.domain}/{id.name}ZX\022V/api/v1/na" + + "med_entities/{resource_type}/org/{id.org" + + "}/{id.project}/{id.domain}/{id.name}\022\235\002\n" + + "\021UpdateNamedEntity\022(.flyteidl.admin.Name" + + "dEntityUpdateRequest\032).flyteidl.admin.Na" + + "medEntityUpdateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/" + + "v1/named_entities/{resource_type}/{id.pr" + + "oject}/{id.domain}/{id.name}:\001*Z[\032V/api/" + + "v1/named_entities/{resource_type}/org/{i" + + "d.org}/{id.project}/{id.domain}/{id.name" + + "}:\001*\022l\n\nGetVersion\022!.flyteidl.admin.GetV" + + "ersionRequest\032\".flyteidl.admin.GetVersio" + + "nResponse\"\027\202\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024G" + + "etDescriptionEntity\022 .flyteidl.admin.Obj" + + "ectGetRequest\032!.flyteidl.admin.Descripti" + + "onEntity\"\330\001\202\323\344\223\002\321\001\022_/api/v1/description_" + + "entities/{id.resource_type}/{id.project}" + + "/{id.domain}/{id.name}/{id.version}Zn\022l/" + + "api/v1/description_entities/org/{id.org}" + + "/{id.resource_type}/{id.project}/{id.dom" + + "ain}/{id.name}/{id.version}\022\310\003\n\027ListDesc" + + "riptionEntities\022,.flyteidl.admin.Descrip" + + "tionEntityListRequest\032%.flyteidl.admin.D" + + "escriptionEntityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/" + + "description_entities/{resource_type}/{id" + + ".project}/{id.domain}/{id.name}Z^\022\\/api/" + + "v1/description_entities/{resource_type}/" + + "org/{id.org}/{id.project}/{id.domain}/{i" + + "d.name}ZG\022E/api/v1/description_entities/" + + "{resource_type}/{id.project}/{id.domain}" + + "ZT\022R/api/v1/description_entities/{resour" + + "ce_type}/org/{id.org}/{id.project}/{id.d" + + "omain}\022\225\002\n\023GetExecutionMetrics\0222.flyteid" + + "l.admin.WorkflowExecutionGetMetricsReque" + + "st\0323.flyteidl.admin.WorkflowExecutionGet" + + "MetricsResponse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metri" + + "cs/executions/{id.project}/{id.domain}/{" + + "id.name}ZL\022J/api/v1/metrics/executions/o" + + "rg/{id.org}/{id.project}/{id.domain}/{id" + + ".name}B?Z=github.com/flyteorg/flyte/flyt" + + "eidl/gen/pb-go/flyteidl/serviceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { diff --git a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py index 7a86aa9316..3bc6d60a00 100644 --- a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py @@ -16,7 +16,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&flyteidl/datacatalog/datacatalog.proto\x12\x0b\x64\x61tacatalog\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"F\n\x14\x43reateDatasetRequest\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x17\n\x15\x43reateDatasetResponse\"E\n\x11GetDatasetRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"D\n\x12GetDatasetResponse\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x96\x01\n\x12GetArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagNameB\x0e\n\x0cquery_handle\"H\n\x13GetArtifactResponse\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"J\n\x15\x43reateArtifactRequest\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"\x18\n\x16\x43reateArtifactResponse\"3\n\rAddTagRequest\x12\"\n\x03tag\x18\x01 \x01(\x0b\x32\x10.datacatalog.TagR\x03tag\"\x10\n\x0e\x41\x64\x64TagResponse\"\xbf\x01\n\x14ListArtifactsRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12\x35\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x03 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"k\n\x15ListArtifactsResponse\x12\x33\n\tartifacts\x18\x01 \x03(\x0b\x32\x15.datacatalog.ArtifactR\tartifacts\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\x8c\x01\n\x13ListDatasetsRequest\x12\x35\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x02 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"g\n\x14ListDatasetsResponse\x12\x30\n\x08\x64\x61tasets\x18\x01 \x03(\x0b\x32\x14.datacatalog.DatasetR\x08\x64\x61tasets\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\xfb\x01\n\x15UpdateArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagName\x12-\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x05 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadataB\x0e\n\x0cquery_handle\"9\n\x16UpdateArtifactResponse\x12\x1f\n\x0b\x61rtifact_id\x18\x01 \x01(\tR\nartifactId\"a\n\rReservationID\x12\x35\n\ndataset_id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\tdatasetId\x12\x19\n\x08tag_name\x18\x02 \x01(\tR\x07tagName\"\xc7\x01\n\x1dGetOrExtendReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\"\xa3\x02\n\x0bReservation\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\x12\x39\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12\x31\n\x08metadata\x18\x06 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\"\\\n\x1eGetOrExtendReservationResponse\x12:\n\x0breservation\x18\x01 \x01(\x0b\x32\x18.datacatalog.ReservationR\x0breservation\"y\n\x19ReleaseReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\"\x1c\n\x1aReleaseReservationResponse\"\x8a\x01\n\x07\x44\x61taset\x12&\n\x02id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x02id\x12\x31\n\x08metadata\x18\x02 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12$\n\rpartitionKeys\x18\x03 \x03(\tR\rpartitionKeys\"3\n\tPartition\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\xaf\x01\n\tDatasetID\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\x12\x12\n\x04UUID\x18\x05 \x01(\tR\x04UUID\x12\x1c\n\tpartition\x18\x06 \x01(\tR\tpartition\x12\x10\n\x03org\x18\x07 \x01(\tR\x03org\"\xc7\x02\n\x08\x41rtifact\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x30\n\x07\x64\x61taset\x18\x02 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12-\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x04 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12\x36\n\npartitions\x18\x05 \x03(\x0b\x32\x16.datacatalog.PartitionR\npartitions\x12$\n\x04tags\x18\x06 \x03(\x0b\x32\x10.datacatalog.TagR\x04tags\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\"P\n\x0c\x41rtifactData\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value\"l\n\x03Tag\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0b\x61rtifact_id\x18\x02 \x01(\tR\nartifactId\x12\x30\n\x07\x64\x61taset\x18\x03 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"\x81\x01\n\x08Metadata\x12:\n\x07key_map\x18\x01 \x03(\x0b\x32!.datacatalog.Metadata.KeyMapEntryR\x06keyMap\x1a\x39\n\x0bKeyMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"O\n\x10\x46ilterExpression\x12;\n\x07\x66ilters\x18\x01 \x03(\x0b\x32!.datacatalog.SinglePropertyFilterR\x07\x66ilters\"\xce\x03\n\x14SinglePropertyFilter\x12?\n\ntag_filter\x18\x01 \x01(\x0b\x32\x1e.datacatalog.TagPropertyFilterH\x00R\ttagFilter\x12Q\n\x10partition_filter\x18\x02 \x01(\x0b\x32$.datacatalog.PartitionPropertyFilterH\x00R\x0fpartitionFilter\x12N\n\x0f\x61rtifact_filter\x18\x03 \x01(\x0b\x32#.datacatalog.ArtifactPropertyFilterH\x00R\x0e\x61rtifactFilter\x12K\n\x0e\x64\x61taset_filter\x18\x04 \x01(\x0b\x32\".datacatalog.DatasetPropertyFilterH\x00R\rdatasetFilter\x12P\n\x08operator\x18\n \x01(\x0e\x32\x34.datacatalog.SinglePropertyFilter.ComparisonOperatorR\x08operator\" \n\x12\x43omparisonOperator\x12\n\n\x06\x45QUALS\x10\x00\x42\x11\n\x0fproperty_filter\"G\n\x16\x41rtifactPropertyFilter\x12!\n\x0b\x61rtifact_id\x18\x01 \x01(\tH\x00R\nartifactIdB\n\n\x08property\"<\n\x11TagPropertyFilter\x12\x1b\n\x08tag_name\x18\x01 \x01(\tH\x00R\x07tagNameB\n\n\x08property\"[\n\x17PartitionPropertyFilter\x12\x34\n\x07key_val\x18\x01 \x01(\x0b\x32\x19.datacatalog.KeyValuePairH\x00R\x06keyValB\n\n\x08property\"6\n\x0cKeyValuePair\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\xab\x01\n\x15\x44\x61tasetPropertyFilter\x12\x1a\n\x07project\x18\x01 \x01(\tH\x00R\x07project\x12\x14\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x12\x18\n\x06\x64omain\x18\x03 \x01(\tH\x00R\x06\x64omain\x12\x1a\n\x07version\x18\x04 \x01(\tH\x00R\x07version\x12\x1e\n\tpartition\x18\x05 \x01(\tH\x00R\tpartitionB\n\n\x08property\"\x93\x02\n\x11PaginationOptions\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12@\n\x07sortKey\x18\x03 \x01(\x0e\x32&.datacatalog.PaginationOptions.SortKeyR\x07sortKey\x12\x46\n\tsortOrder\x18\x04 \x01(\x0e\x32(.datacatalog.PaginationOptions.SortOrderR\tsortOrder\"*\n\tSortOrder\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\x1c\n\x07SortKey\x12\x11\n\rCREATION_TIME\x10\x00\x32\x86\x07\n\x0b\x44\x61taCatalog\x12V\n\rCreateDataset\x12!.datacatalog.CreateDatasetRequest\x1a\".datacatalog.CreateDatasetResponse\x12M\n\nGetDataset\x12\x1e.datacatalog.GetDatasetRequest\x1a\x1f.datacatalog.GetDatasetResponse\x12Y\n\x0e\x43reateArtifact\x12\".datacatalog.CreateArtifactRequest\x1a#.datacatalog.CreateArtifactResponse\x12P\n\x0bGetArtifact\x12\x1f.datacatalog.GetArtifactRequest\x1a .datacatalog.GetArtifactResponse\x12\x41\n\x06\x41\x64\x64Tag\x12\x1a.datacatalog.AddTagRequest\x1a\x1b.datacatalog.AddTagResponse\x12V\n\rListArtifacts\x12!.datacatalog.ListArtifactsRequest\x1a\".datacatalog.ListArtifactsResponse\x12S\n\x0cListDatasets\x12 .datacatalog.ListDatasetsRequest\x1a!.datacatalog.ListDatasetsResponse\x12Y\n\x0eUpdateArtifact\x12\".datacatalog.UpdateArtifactRequest\x1a#.datacatalog.UpdateArtifactResponse\x12q\n\x16GetOrExtendReservation\x12*.datacatalog.GetOrExtendReservationRequest\x1a+.datacatalog.GetOrExtendReservationResponse\x12\x65\n\x12ReleaseReservation\x12&.datacatalog.ReleaseReservationRequest\x1a\'.datacatalog.ReleaseReservationResponseB\xb2\x01\n\x0f\x63om.datacatalogB\x10\x44\x61tacatalogProtoP\x01ZAgithub.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/datacatalog\xa2\x02\x03\x44XX\xaa\x02\x0b\x44\x61tacatalog\xca\x02\x0b\x44\x61tacatalog\xe2\x02\x17\x44\x61tacatalog\\GPBMetadata\xea\x02\x0b\x44\x61tacatalogb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&flyteidl/datacatalog/datacatalog.proto\x12\x0b\x64\x61tacatalog\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"F\n\x14\x43reateDatasetRequest\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x17\n\x15\x43reateDatasetResponse\"E\n\x11GetDatasetRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"D\n\x12GetDatasetResponse\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x96\x01\n\x12GetArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagNameB\x0e\n\x0cquery_handle\"H\n\x13GetArtifactResponse\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"J\n\x15\x43reateArtifactRequest\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"\x18\n\x16\x43reateArtifactResponse\"3\n\rAddTagRequest\x12\"\n\x03tag\x18\x01 \x01(\x0b\x32\x10.datacatalog.TagR\x03tag\"\x10\n\x0e\x41\x64\x64TagResponse\"\xbf\x01\n\x14ListArtifactsRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12\x35\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x03 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"k\n\x15ListArtifactsResponse\x12\x33\n\tartifacts\x18\x01 \x03(\x0b\x32\x15.datacatalog.ArtifactR\tartifacts\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\x8c\x01\n\x13ListDatasetsRequest\x12\x35\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x02 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"g\n\x14ListDatasetsResponse\x12\x30\n\x08\x64\x61tasets\x18\x01 \x03(\x0b\x32\x14.datacatalog.DatasetR\x08\x64\x61tasets\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\xfb\x01\n\x15UpdateArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagName\x12-\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x05 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadataB\x0e\n\x0cquery_handle\"9\n\x16UpdateArtifactResponse\x12\x1f\n\x0b\x61rtifact_id\x18\x01 \x01(\tR\nartifactId\"a\n\rReservationID\x12\x35\n\ndataset_id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\tdatasetId\x12\x19\n\x08tag_name\x18\x02 \x01(\tR\x07tagName\"\xc7\x01\n\x1dGetOrExtendReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\"\xa3\x02\n\x0bReservation\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\x12\x39\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12\x31\n\x08metadata\x18\x06 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\"\\\n\x1eGetOrExtendReservationResponse\x12:\n\x0breservation\x18\x01 \x01(\x0b\x32\x18.datacatalog.ReservationR\x0breservation\"y\n\x19ReleaseReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\"\x1c\n\x1aReleaseReservationResponse\"\x8a\x01\n\x07\x44\x61taset\x12&\n\x02id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x02id\x12\x31\n\x08metadata\x18\x02 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12$\n\rpartitionKeys\x18\x03 \x03(\tR\rpartitionKeys\"3\n\tPartition\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\x91\x01\n\tDatasetID\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\x12\x12\n\x04UUID\x18\x05 \x01(\tR\x04UUID\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"\xc7\x02\n\x08\x41rtifact\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x30\n\x07\x64\x61taset\x18\x02 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12-\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x04 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12\x36\n\npartitions\x18\x05 \x03(\x0b\x32\x16.datacatalog.PartitionR\npartitions\x12$\n\x04tags\x18\x06 \x03(\x0b\x32\x10.datacatalog.TagR\x04tags\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\"P\n\x0c\x41rtifactData\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value\"l\n\x03Tag\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0b\x61rtifact_id\x18\x02 \x01(\tR\nartifactId\x12\x30\n\x07\x64\x61taset\x18\x03 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"\x81\x01\n\x08Metadata\x12:\n\x07key_map\x18\x01 \x03(\x0b\x32!.datacatalog.Metadata.KeyMapEntryR\x06keyMap\x1a\x39\n\x0bKeyMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"O\n\x10\x46ilterExpression\x12;\n\x07\x66ilters\x18\x01 \x03(\x0b\x32!.datacatalog.SinglePropertyFilterR\x07\x66ilters\"\xce\x03\n\x14SinglePropertyFilter\x12?\n\ntag_filter\x18\x01 \x01(\x0b\x32\x1e.datacatalog.TagPropertyFilterH\x00R\ttagFilter\x12Q\n\x10partition_filter\x18\x02 \x01(\x0b\x32$.datacatalog.PartitionPropertyFilterH\x00R\x0fpartitionFilter\x12N\n\x0f\x61rtifact_filter\x18\x03 \x01(\x0b\x32#.datacatalog.ArtifactPropertyFilterH\x00R\x0e\x61rtifactFilter\x12K\n\x0e\x64\x61taset_filter\x18\x04 \x01(\x0b\x32\".datacatalog.DatasetPropertyFilterH\x00R\rdatasetFilter\x12P\n\x08operator\x18\n \x01(\x0e\x32\x34.datacatalog.SinglePropertyFilter.ComparisonOperatorR\x08operator\" \n\x12\x43omparisonOperator\x12\n\n\x06\x45QUALS\x10\x00\x42\x11\n\x0fproperty_filter\"G\n\x16\x41rtifactPropertyFilter\x12!\n\x0b\x61rtifact_id\x18\x01 \x01(\tH\x00R\nartifactIdB\n\n\x08property\"<\n\x11TagPropertyFilter\x12\x1b\n\x08tag_name\x18\x01 \x01(\tH\x00R\x07tagNameB\n\n\x08property\"[\n\x17PartitionPropertyFilter\x12\x34\n\x07key_val\x18\x01 \x01(\x0b\x32\x19.datacatalog.KeyValuePairH\x00R\x06keyValB\n\n\x08property\"6\n\x0cKeyValuePair\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\xab\x01\n\x15\x44\x61tasetPropertyFilter\x12\x1a\n\x07project\x18\x01 \x01(\tH\x00R\x07project\x12\x14\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x12\x18\n\x06\x64omain\x18\x03 \x01(\tH\x00R\x06\x64omain\x12\x1a\n\x07version\x18\x04 \x01(\tH\x00R\x07version\x12\x1e\n\tpartition\x18\x05 \x01(\tH\x00R\tpartitionB\n\n\x08property\"\x93\x02\n\x11PaginationOptions\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12@\n\x07sortKey\x18\x03 \x01(\x0e\x32&.datacatalog.PaginationOptions.SortKeyR\x07sortKey\x12\x46\n\tsortOrder\x18\x04 \x01(\x0e\x32(.datacatalog.PaginationOptions.SortOrderR\tsortOrder\"*\n\tSortOrder\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\x1c\n\x07SortKey\x12\x11\n\rCREATION_TIME\x10\x00\x32\x86\x07\n\x0b\x44\x61taCatalog\x12V\n\rCreateDataset\x12!.datacatalog.CreateDatasetRequest\x1a\".datacatalog.CreateDatasetResponse\x12M\n\nGetDataset\x12\x1e.datacatalog.GetDatasetRequest\x1a\x1f.datacatalog.GetDatasetResponse\x12Y\n\x0e\x43reateArtifact\x12\".datacatalog.CreateArtifactRequest\x1a#.datacatalog.CreateArtifactResponse\x12P\n\x0bGetArtifact\x12\x1f.datacatalog.GetArtifactRequest\x1a .datacatalog.GetArtifactResponse\x12\x41\n\x06\x41\x64\x64Tag\x12\x1a.datacatalog.AddTagRequest\x1a\x1b.datacatalog.AddTagResponse\x12V\n\rListArtifacts\x12!.datacatalog.ListArtifactsRequest\x1a\".datacatalog.ListArtifactsResponse\x12S\n\x0cListDatasets\x12 .datacatalog.ListDatasetsRequest\x1a!.datacatalog.ListDatasetsResponse\x12Y\n\x0eUpdateArtifact\x12\".datacatalog.UpdateArtifactRequest\x1a#.datacatalog.UpdateArtifactResponse\x12q\n\x16GetOrExtendReservation\x12*.datacatalog.GetOrExtendReservationRequest\x1a+.datacatalog.GetOrExtendReservationResponse\x12\x65\n\x12ReleaseReservation\x12&.datacatalog.ReleaseReservationRequest\x1a\'.datacatalog.ReleaseReservationResponseB\xb2\x01\n\x0f\x63om.datacatalogB\x10\x44\x61tacatalogProtoP\x01ZAgithub.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/datacatalog\xa2\x02\x03\x44XX\xaa\x02\x0b\x44\x61tacatalog\xca\x02\x0b\x44\x61tacatalog\xe2\x02\x17\x44\x61tacatalog\\GPBMetadata\xea\x02\x0b\x44\x61tacatalogb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -76,39 +76,39 @@ _globals['_PARTITION']._serialized_start=2635 _globals['_PARTITION']._serialized_end=2686 _globals['_DATASETID']._serialized_start=2689 - _globals['_DATASETID']._serialized_end=2864 - _globals['_ARTIFACT']._serialized_start=2867 - _globals['_ARTIFACT']._serialized_end=3194 - _globals['_ARTIFACTDATA']._serialized_start=3196 - _globals['_ARTIFACTDATA']._serialized_end=3276 - _globals['_TAG']._serialized_start=3278 - _globals['_TAG']._serialized_end=3386 - _globals['_METADATA']._serialized_start=3389 - _globals['_METADATA']._serialized_end=3518 - _globals['_METADATA_KEYMAPENTRY']._serialized_start=3461 - _globals['_METADATA_KEYMAPENTRY']._serialized_end=3518 - _globals['_FILTEREXPRESSION']._serialized_start=3520 - _globals['_FILTEREXPRESSION']._serialized_end=3599 - _globals['_SINGLEPROPERTYFILTER']._serialized_start=3602 - _globals['_SINGLEPROPERTYFILTER']._serialized_end=4064 - _globals['_SINGLEPROPERTYFILTER_COMPARISONOPERATOR']._serialized_start=4013 - _globals['_SINGLEPROPERTYFILTER_COMPARISONOPERATOR']._serialized_end=4045 - _globals['_ARTIFACTPROPERTYFILTER']._serialized_start=4066 - _globals['_ARTIFACTPROPERTYFILTER']._serialized_end=4137 - _globals['_TAGPROPERTYFILTER']._serialized_start=4139 - _globals['_TAGPROPERTYFILTER']._serialized_end=4199 - _globals['_PARTITIONPROPERTYFILTER']._serialized_start=4201 - _globals['_PARTITIONPROPERTYFILTER']._serialized_end=4292 - _globals['_KEYVALUEPAIR']._serialized_start=4294 - _globals['_KEYVALUEPAIR']._serialized_end=4348 - _globals['_DATASETPROPERTYFILTER']._serialized_start=4351 - _globals['_DATASETPROPERTYFILTER']._serialized_end=4522 - _globals['_PAGINATIONOPTIONS']._serialized_start=4525 - _globals['_PAGINATIONOPTIONS']._serialized_end=4800 - _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_start=4728 - _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_end=4770 - _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_start=4772 - _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_end=4800 - _globals['_DATACATALOG']._serialized_start=4803 - _globals['_DATACATALOG']._serialized_end=5705 + _globals['_DATASETID']._serialized_end=2834 + _globals['_ARTIFACT']._serialized_start=2837 + _globals['_ARTIFACT']._serialized_end=3164 + _globals['_ARTIFACTDATA']._serialized_start=3166 + _globals['_ARTIFACTDATA']._serialized_end=3246 + _globals['_TAG']._serialized_start=3248 + _globals['_TAG']._serialized_end=3356 + _globals['_METADATA']._serialized_start=3359 + _globals['_METADATA']._serialized_end=3488 + _globals['_METADATA_KEYMAPENTRY']._serialized_start=3431 + _globals['_METADATA_KEYMAPENTRY']._serialized_end=3488 + _globals['_FILTEREXPRESSION']._serialized_start=3490 + _globals['_FILTEREXPRESSION']._serialized_end=3569 + _globals['_SINGLEPROPERTYFILTER']._serialized_start=3572 + _globals['_SINGLEPROPERTYFILTER']._serialized_end=4034 + _globals['_SINGLEPROPERTYFILTER_COMPARISONOPERATOR']._serialized_start=3983 + _globals['_SINGLEPROPERTYFILTER_COMPARISONOPERATOR']._serialized_end=4015 + _globals['_ARTIFACTPROPERTYFILTER']._serialized_start=4036 + _globals['_ARTIFACTPROPERTYFILTER']._serialized_end=4107 + _globals['_TAGPROPERTYFILTER']._serialized_start=4109 + _globals['_TAGPROPERTYFILTER']._serialized_end=4169 + _globals['_PARTITIONPROPERTYFILTER']._serialized_start=4171 + _globals['_PARTITIONPROPERTYFILTER']._serialized_end=4262 + _globals['_KEYVALUEPAIR']._serialized_start=4264 + _globals['_KEYVALUEPAIR']._serialized_end=4318 + _globals['_DATASETPROPERTYFILTER']._serialized_start=4321 + _globals['_DATASETPROPERTYFILTER']._serialized_end=4492 + _globals['_PAGINATIONOPTIONS']._serialized_start=4495 + _globals['_PAGINATIONOPTIONS']._serialized_end=4770 + _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_start=4698 + _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_end=4740 + _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_start=4742 + _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_end=4770 + _globals['_DATACATALOG']._serialized_start=4773 + _globals['_DATACATALOG']._serialized_end=5675 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi index 18d6684d61..bd2b13a6d7 100644 --- a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi @@ -190,22 +190,20 @@ class Partition(_message.Message): def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... class DatasetID(_message.Message): - __slots__ = ["project", "name", "domain", "version", "UUID", "partition", "org"] + __slots__ = ["project", "name", "domain", "version", "UUID", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] VERSION_FIELD_NUMBER: _ClassVar[int] UUID_FIELD_NUMBER: _ClassVar[int] - PARTITION_FIELD_NUMBER: _ClassVar[int] ORG_FIELD_NUMBER: _ClassVar[int] project: str name: str domain: str version: str UUID: str - partition: str org: str - def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ..., domain: _Optional[str] = ..., version: _Optional[str] = ..., UUID: _Optional[str] = ..., partition: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... + def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ..., domain: _Optional[str] = ..., version: _Optional[str] = ..., UUID: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class Artifact(_message.Message): __slots__ = ["id", "dataset", "data", "metadata", "partitions", "tags", "created_at"] diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py index e946de047f..4ba67242fb 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py @@ -29,7 +29,7 @@ from flyteidl.admin import description_entity_pb2 as flyteidl_dot_admin_dot_description__entity__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(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\'flyteidl/admin/project_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\'flyteidl/admin/description_entity.proto2\xf9q\n\x0c\x41\x64minService\x12m\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\xd8\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc5\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"Y\x82\xd3\xe4\x93\x02SZ,\x12*/api/v1/tasks/org/{org}/{project}/{domain}\x12#/api/v1/task_ids/{project}/{domain}\x12\xa8\x02\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\xdb\x01\x82\xd3\xe4\x93\x02\xd4\x01Z?\x12=/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}Z(\x12&/api/v1/tasks/{id.project}/{id.domain}Z5\x12\x33/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12}\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\xe8\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"\x9c\x01\x82\xd3\xe4\x93\x02\x95\x01ZP\x12N/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xd1\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"a\x82\xd3\xe4\x93\x02[Z0\x12./api/v1/workflows/org/{org}/{project}/{domain}\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xc0\x02\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01ZC\x12\x41/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}Z,\x12*/api/v1/workflows/{id.project}/{id.domain}Z9\x12\x37/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\x86\x01\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\xf2\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\xa2\x01\x82\xd3\xe4\x93\x02\x9b\x01ZS\x12Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01ZM\x12K/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\x9c\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"6\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xdc\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"j\x82\xd3\xe4\x93\x02\x64Z6\x12\x34/api/v1/launch_plan_ids/org/{org}/{project}/{domain}\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xd0\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xf7\x01\x82\xd3\xe4\x93\x02\xf0\x01ZF\x12\x44/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}Z<\x12:/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\x8d\x02\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xa5\x01\x82\xd3\xe4\x93\x02\x9e\x01:\x01*ZS\x1aQ/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x81\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\x8e\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x8b\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\xdc\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"\x83\x01\x82\xd3\xe4\x93\x02}ZD\x12\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xef\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"\x8a\x01\x82\xd3\xe4\x93\x02\x83\x01:\x01*ZG:\x01*\x1a\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\x86\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8e\x01\x82\xd3\xe4\x93\x02\x87\x01ZI\x12G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\xc5\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"o\x82\xd3\xe4\x93\x02iZ:\x12\x38/api/v1/executions/org/{id.org}/{id.project}/{id.domain}\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xfd\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZL:\x01**G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}*5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xe2\x02\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x85\x02\x82\xd3\xe4\x93\x02\xfe\x01Z\x8b\x01\x12\x88\x01/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xf9\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x95\x02\x82\xd3\xe4\x93\x02\x8e\x02Z\x96\x01\x12\x93\x01/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\x8f\x08\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x9d\x07\x82\xd3\xe4\x93\x02\x96\x07Z\xe7\x03\x12\xe4\x03/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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}\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}\x12\x83\x03\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\x8f\x02\x82\xd3\xe4\x93\x02\x88\x02Z\x90\x01\x12\x8d\x01/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12\xdb\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01:\x01*Z\x1a:\x01*\x1a\x15/api/v1/projects/{id}Z$:\x01*\x1a\x1f/api/v1/projects/org/{org}/{id}Z$:\x01*\x1a\x1f/api/v1/projects/org/{org}/{id}\x1a\x15/api/v1/projects/{id}\x12\x66\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\x99\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\x89\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\x89\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\xcb\x05\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xee\x04\x82\xd3\xe4\x93\x02\xe7\x04Z\xc8\x02\x12\xc5\x02/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\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}\x12\xf1\x03\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\x8d\x03\x82\xd3\xe4\x93\x02\x86\x03Z\xd6\x01\x12\xd3\x01/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\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}\x12\xec\x05\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xf8\x04\x82\xd3\xe4\x93\x02\xf1\x04Z\xcd\x02\x12\xca\x02/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\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}\x12\xcb\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xbc\x01\x82\xd3\xe4\x93\x02\xb5\x01:\x01*Zd:\x01*\x1a_/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\x83\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"~\x82\xd3\xe4\x93\x02xZ@\x12>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\x93\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x84\x01\x82\xd3\xe4\x93\x02~:\x01*ZC:\x01**>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}*4/api/v1/project_domain_attributes/{project}/{domain}\x12\x8a\x02\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x8d\x01\x82\xd3\xe4\x93\x02\x86\x01:\x01*ZP:\x01*\x1aK/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}\x1a//api/v1/project_attributes/{attributes.project}\x12\xd8\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"e\x82\xd3\xe4\x93\x02_Z7\x12\x35/api/v1/project_domain_attributes/org/{org}/{project}\x12$/api/v1/project_attributes/{project}\x12\xe7\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"k\x82\xd3\xe4\x93\x02\x65:\x01*Z::\x01**5/api/v1/project_domain_attributes/org/{org}/{project}*$/api/v1/project_attributes/{project}\x12\xdc\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xdc\x01\x82\xd3\xe4\x93\x02\xd5\x01:\x01*Zt:\x01*\x1ao/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\x80\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\x8f\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZH:\x01**C/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xa0\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x12\xe8\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\x83\x02\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"\xac\x01\x82\xd3\xe4\x93\x02\xa5\x01ZX\x12V/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x9d\x02\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"\xb2\x01\x82\xd3\xe4\x93\x02\xab\x01:\x01*Z[:\x01*\x1aV/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xb6\x02\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"\xd8\x01\x82\xd3\xe4\x93\x02\xd1\x01Zn\x12l/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc8\x03\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xd7\x02\x82\xd3\xe4\x93\x02\xd0\x02Z^\x12\\/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}ZT\x12R/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x95\x02\n\x13GetExecutionMetrics\x12\x32.flyteidl.admin.WorkflowExecutionGetMetricsRequest\x1a\x33.flyteidl.admin.WorkflowExecutionGetMetricsResponse\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}B\xc2\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(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\'flyteidl/admin/project_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\'flyteidl/admin/description_entity.proto2\xb5q\n\x0c\x41\x64minService\x12m\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\xd8\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc5\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"Y\x82\xd3\xe4\x93\x02SZ,\x12*/api/v1/tasks/org/{org}/{project}/{domain}\x12#/api/v1/task_ids/{project}/{domain}\x12\xa8\x02\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\xdb\x01\x82\xd3\xe4\x93\x02\xd4\x01Z?\x12=/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}Z(\x12&/api/v1/tasks/{id.project}/{id.domain}Z5\x12\x33/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12}\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\xe8\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"\x9c\x01\x82\xd3\xe4\x93\x02\x95\x01ZP\x12N/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xd1\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"a\x82\xd3\xe4\x93\x02[Z0\x12./api/v1/workflows/org/{org}/{project}/{domain}\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xc0\x02\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01ZC\x12\x41/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}Z,\x12*/api/v1/workflows/{id.project}/{id.domain}Z9\x12\x37/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\x86\x01\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\xf2\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\xa2\x01\x82\xd3\xe4\x93\x02\x9b\x01ZS\x12Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01ZM\x12K/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\x9c\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"6\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xdc\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"j\x82\xd3\xe4\x93\x02\x64Z6\x12\x34/api/v1/launch_plan_ids/org/{org}/{project}/{domain}\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xd0\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xf7\x01\x82\xd3\xe4\x93\x02\xf0\x01ZF\x12\x44/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}Z<\x12:/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\x8d\x02\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xa5\x01\x82\xd3\xe4\x93\x02\x9e\x01:\x01*ZS\x1aQ/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x81\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\x8e\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x8b\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\xdc\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"\x83\x01\x82\xd3\xe4\x93\x02}ZD\x12\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xef\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"\x8a\x01\x82\xd3\xe4\x93\x02\x83\x01:\x01*ZG:\x01*\x1a\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\x86\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8e\x01\x82\xd3\xe4\x93\x02\x87\x01ZI\x12G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\xc5\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"o\x82\xd3\xe4\x93\x02iZ:\x12\x38/api/v1/executions/org/{id.org}/{id.project}/{id.domain}\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xfd\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZL:\x01**G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}*5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xe2\x02\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x85\x02\x82\xd3\xe4\x93\x02\xfe\x01Z\x8b\x01\x12\x88\x01/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xf9\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x95\x02\x82\xd3\xe4\x93\x02\x8e\x02Z\x96\x01\x12\x93\x01/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\x8f\x08\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x9d\x07\x82\xd3\xe4\x93\x02\x96\x07Z\xe7\x03\x12\xe4\x03/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{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}\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}\x12\x83\x03\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\x8f\x02\x82\xd3\xe4\x93\x02\x88\x02Z\x90\x01\x12\x8d\x01/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12\x97\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"F\x82\xd3\xe4\x93\x02@:\x01*Z$:\x01*\x1a\x1f/api/v1/projects/org/{org}/{id}\x1a\x15/api/v1/projects/{id}\x12\x66\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\x99\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\x89\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\x89\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\xcb\x05\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xee\x04\x82\xd3\xe4\x93\x02\xe7\x04Z\xc8\x02\x12\xc5\x02/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\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}\x12\xf1\x03\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\x8d\x03\x82\xd3\xe4\x93\x02\x86\x03Z\xd6\x01\x12\xd3\x01/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\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}\x12\xec\x05\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xf8\x04\x82\xd3\xe4\x93\x02\xf1\x04Z\xcd\x02\x12\xca\x02/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{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}\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}\x12\xcb\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xbc\x01\x82\xd3\xe4\x93\x02\xb5\x01:\x01*Zd:\x01*\x1a_/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\x83\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"~\x82\xd3\xe4\x93\x02xZ@\x12>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\x93\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x84\x01\x82\xd3\xe4\x93\x02~:\x01*ZC:\x01**>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}*4/api/v1/project_domain_attributes/{project}/{domain}\x12\x8a\x02\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x8d\x01\x82\xd3\xe4\x93\x02\x86\x01:\x01*ZP:\x01*\x1aK/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}\x1a//api/v1/project_attributes/{attributes.project}\x12\xd8\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"e\x82\xd3\xe4\x93\x02_Z7\x12\x35/api/v1/project_domain_attributes/org/{org}/{project}\x12$/api/v1/project_attributes/{project}\x12\xe7\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"k\x82\xd3\xe4\x93\x02\x65:\x01*Z::\x01**5/api/v1/project_domain_attributes/org/{org}/{project}*$/api/v1/project_attributes/{project}\x12\xdc\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xdc\x01\x82\xd3\xe4\x93\x02\xd5\x01:\x01*Zt:\x01*\x1ao/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\x80\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\x8f\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZH:\x01**C/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xa0\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x12\xe8\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\x83\x02\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"\xac\x01\x82\xd3\xe4\x93\x02\xa5\x01ZX\x12V/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x9d\x02\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"\xb2\x01\x82\xd3\xe4\x93\x02\xab\x01:\x01*Z[:\x01*\x1aV/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xb6\x02\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"\xd8\x01\x82\xd3\xe4\x93\x02\xd1\x01Zn\x12l/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc8\x03\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xd7\x02\x82\xd3\xe4\x93\x02\xd0\x02Z^\x12\\/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}ZT\x12R/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x95\x02\n\x13GetExecutionMetrics\x12\x32.flyteidl.admin.WorkflowExecutionGetMetricsRequest\x1a\x33.flyteidl.admin.WorkflowExecutionGetMetricsResponse\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}B\xc2\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -95,7 +95,7 @@ _ADMINSERVICE.methods_by_name['RegisterProject']._options = None _ADMINSERVICE.methods_by_name['RegisterProject']._serialized_options = b'\202\323\344\223\002\025:\001*\"\020/api/v1/projects' _ADMINSERVICE.methods_by_name['UpdateProject']._options = None - _ADMINSERVICE.methods_by_name['UpdateProject']._serialized_options = b'\202\323\344\223\002\202\001:\001*Z\032:\001*\032\025/api/v1/projects/{id}Z$:\001*\032\037/api/v1/projects/org/{org}/{id}Z$:\001*\032\037/api/v1/projects/org/{org}/{id}\032\025/api/v1/projects/{id}' + _ADMINSERVICE.methods_by_name['UpdateProject']._serialized_options = b'\202\323\344\223\002@:\001*Z$:\001*\032\037/api/v1/projects/org/{org}/{id}\032\025/api/v1/projects/{id}' _ADMINSERVICE.methods_by_name['ListProjects']._options = None _ADMINSERVICE.methods_by_name['ListProjects']._serialized_options = b'\202\323\344\223\002\022\022\020/api/v1/projects' _ADMINSERVICE.methods_by_name['CreateWorkflowEvent']._options = None @@ -145,5 +145,5 @@ _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._options = None _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._serialized_options = b'\202\323\344\223\002\215\001ZL\022J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\022=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}' _globals['_ADMINSERVICE']._serialized_start=609 - _globals['_ADMINSERVICE']._serialized_end=15194 + _globals['_ADMINSERVICE']._serialized_end=15126 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md index dcc536efa5..8b5357a947 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md @@ -162,8 +162,8 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**update_launch_plan2**](docs/AdminServiceApi.md#update_launch_plan2) | **PUT** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**update_named_entity**](docs/AdminServiceApi.md#update_named_entity) | **PUT** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. *AdminServiceApi* | [**update_named_entity2**](docs/AdminServiceApi.md#update_named_entity2) | **PUT** /api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. -*AdminServiceApi* | [**update_project2**](docs/AdminServiceApi.md#update_project2) | **PUT** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -*AdminServiceApi* | [**update_project4**](docs/AdminServiceApi.md#update_project4) | **PUT** /api/v1/projects/org/{org}/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**update_project**](docs/AdminServiceApi.md#update_project) | **PUT** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**update_project2**](docs/AdminServiceApi.md#update_project2) | **PUT** /api/v1/projects/org/{org}/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. *AdminServiceApi* | [**update_project_attributes**](docs/AdminServiceApi.md#update_project_attributes) | **PUT** /api/v1/project_attributes/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level *AdminServiceApi* | [**update_project_attributes2**](docs/AdminServiceApi.md#update_project_attributes2) | **PUT** /api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level *AdminServiceApi* | [**update_project_domain_attributes**](docs/AdminServiceApi.md#update_project_domain_attributes) | **PUT** /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py index 8765c7497e..1e91c85c21 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py @@ -11841,12 +11841,12 @@ def update_named_entity2_with_http_info(self, resource_type, id_org, id_project, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def update_project2(self, id, body, **kwargs): # noqa: E501 + def update_project(self, id, body, **kwargs): # noqa: E501 """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project2(id, body, async_req=True) + >>> thread = api.update_project(id, body, async_req=True) >>> result = thread.get() :param async_req bool @@ -11858,17 +11858,17 @@ def update_project2(self, id, body, **kwargs): # noqa: E501 """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.update_project2_with_http_info(id, body, **kwargs) # noqa: E501 + return self.update_project_with_http_info(id, body, **kwargs) # noqa: E501 else: - (data) = self.update_project2_with_http_info(id, body, **kwargs) # noqa: E501 + (data) = self.update_project_with_http_info(id, body, **kwargs) # noqa: E501 return data - def update_project2_with_http_info(self, id, body, **kwargs): # noqa: E501 + def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project2_with_http_info(id, body, async_req=True) + >>> thread = api.update_project_with_http_info(id, body, async_req=True) >>> result = thread.get() :param async_req bool @@ -11890,18 +11890,18 @@ def update_project2_with_http_info(self, id, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_project2" % key + " to method update_project" % key ) params[key] = val del params['kwargs'] # verify the required parameter 'id' is set if ('id' not in params or params['id'] is None): - raise ValueError("Missing the required parameter `id` when calling `update_project2`") # noqa: E501 + raise ValueError("Missing the required parameter `id` when calling `update_project`") # 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_project2`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project`") # noqa: E501 collection_formats = {} @@ -11946,12 +11946,12 @@ def update_project2_with_http_info(self, id, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def update_project4(self, org, id, body, **kwargs): # noqa: E501 + def update_project2(self, org, id, body, **kwargs): # noqa: E501 """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project4(org, id, body, async_req=True) + >>> thread = api.update_project2(org, id, body, async_req=True) >>> result = thread.get() :param async_req bool @@ -11964,17 +11964,17 @@ def update_project4(self, org, id, body, **kwargs): # noqa: E501 """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.update_project4_with_http_info(org, id, body, **kwargs) # noqa: E501 + return self.update_project2_with_http_info(org, id, body, **kwargs) # noqa: E501 else: - (data) = self.update_project4_with_http_info(org, id, body, **kwargs) # noqa: E501 + (data) = self.update_project2_with_http_info(org, id, body, **kwargs) # noqa: E501 return data - def update_project4_with_http_info(self, org, id, body, **kwargs): # noqa: E501 + def update_project2_with_http_info(self, org, id, body, **kwargs): # noqa: E501 """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # 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_project4_with_http_info(org, id, body, async_req=True) + >>> thread = api.update_project2_with_http_info(org, id, body, async_req=True) >>> result = thread.get() :param async_req bool @@ -11997,22 +11997,22 @@ def update_project4_with_http_info(self, org, id, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method update_project4" % key + " to method update_project2" % key ) params[key] = val del params['kwargs'] # verify the required parameter 'org' is set if ('org' not in params or params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `update_project4`") # noqa: E501 + raise ValueError("Missing the required parameter `org` when calling `update_project2`") # noqa: E501 # verify the required parameter 'id' is set if ('id' not in params or params['id'] is None): - raise ValueError("Missing the required parameter `id` when calling `update_project4`") # noqa: E501 + raise ValueError("Missing the required parameter `id` when calling `update_project2`") # 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_project4`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `update_project2`") # noqa: E501 collection_formats = {} 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 8859ea6a03..21e5e86a25 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 @@ -672,15 +672,15 @@ def test_update_named_entity2(self): """ pass - def test_update_project2(self): - """Test case for update_project2 + def test_update_project(self): + """Test case for update_project Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 """ pass - def test_update_project4(self): - """Test case for update_project4 + def test_update_project2(self): + """Test case for update_project2 Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 """ diff --git a/flyteidl/gen/pb_rust/datacatalog.rs b/flyteidl/gen/pb_rust/datacatalog.rs index b24a867be9..67fbe54639 100644 --- a/flyteidl/gen/pb_rust/datacatalog.rs +++ b/flyteidl/gen/pb_rust/datacatalog.rs @@ -290,11 +290,8 @@ pub struct DatasetId { /// UUID for the dataset (if set the above fields are optional) #[prost(string, tag="5")] pub uuid: ::prost::alloc::string::String, - /// Optional, partition key applied to the dataset. - #[prost(string, tag="6")] - pub partition: ::prost::alloc::string::String, /// Optional, org key applied to the resource. - #[prost(string, tag="7")] + #[prost(string, tag="6")] pub org: ::prost::alloc::string::String, } /// diff --git a/flyteidl/protos/flyteidl/admin/common.proto b/flyteidl/protos/flyteidl/admin/common.proto index 755f94c8bd..6c04b0531a 100644 --- a/flyteidl/protos/flyteidl/admin/common.proto +++ b/flyteidl/protos/flyteidl/admin/common.proto @@ -137,7 +137,6 @@ message NamedEntityListRequest { // Optional, org key applied to the resource. string org = 8; - } // Represents a list of NamedEntityIdentifiers. diff --git a/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto b/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto index 46ef1c8560..78d5636233 100644 --- a/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto +++ b/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto @@ -289,11 +289,9 @@ message DatasetID { string domain = 3; // The domain (eg. environment) string version = 4; // Version of the data schema string UUID = 5; // UUID for the dataset (if set the above fields are optional) - // Optional, partition key applied to the dataset. - string partition = 6; // Optional, org key applied to the resource. - string org = 7; + string org = 6; } /* diff --git a/flyteidl/protos/flyteidl/service/admin.proto b/flyteidl/protos/flyteidl/service/admin.proto index e3af44a0d3..d0f5391d25 100644 --- a/flyteidl/protos/flyteidl/service/admin.proto +++ b/flyteidl/protos/flyteidl/service/admin.proto @@ -450,14 +450,6 @@ service AdminService { option (google.api.http) = { put: "/api/v1/projects/{id}" body: "*" - additional_bindings { - put: "/api/v1/projects/{id}" - body: "*" - } - additional_bindings { - put: "/api/v1/projects/org/{org}/{id}" - body: "*" - } additional_bindings { put: "/api/v1/projects/org/{org}/{id}" body: "*" From a7ed50ea1e82d80b82a2082025071c17b1c1ab85 Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Wed, 3 Jan 2024 16:33:15 -0800 Subject: [PATCH 5/7] review comments Signed-off-by: Katrina Rogan --- .../pkg/controller/nodes/catalog/datacatalog/transformer.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go index 4ceb038ee0..8c875d4dc3 100644 --- a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go +++ b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go @@ -4,11 +4,12 @@ import ( "context" "encoding/base64" "fmt" - "github.com/golang/protobuf/proto" "reflect" "strconv" "strings" + "github.com/golang/protobuf/proto" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/datacatalog" "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/catalog" @@ -159,7 +160,7 @@ const ( execProjectKey = "exec-project" execNodeIDKey = "exec-node" execTaskAttemptKey = "exec-attempt" - execOrgKey = "exec-rog" + execOrgKey = "exec-org" ) // Understanding Catalog Identifiers From 53c218aae6a6998331e4ed50ecfce3f42dea4ca6 Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Thu, 4 Jan 2024 12:00:50 -0800 Subject: [PATCH 6/7] regen Signed-off-by: Katrina Rogan --- .../flyteidl/datacatalog/datacatalog.pb.cc | 132 +++++----- .../flyteidl/datacatalog/datacatalog.pb.h | 136 +++++------ .../flyteidl/datacatalog/datacatalog.pb.go | 231 +++++++++--------- .../gen/pb-java/datacatalog/Datacatalog.java | 142 +++++------ .../flyteidl/datacatalog/datacatalog_pb2.py | 20 +- .../flyteidl/datacatalog/datacatalog_pb2.pyi | 8 +- flyteidl/gen/pb_rust/datacatalog.rs | 4 +- .../flyteidl/datacatalog/datacatalog.proto | 4 +- 8 files changed, 338 insertions(+), 339 deletions(-) diff --git a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc index d38ae9e8c3..1ce63673cb 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.cc @@ -200,7 +200,7 @@ class DatasetPropertyFilterDefaultTypeInternal { ::google::protobuf::internal::ArenaStringPtr name_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr version_; - ::google::protobuf::internal::ArenaStringPtr partition_; + ::google::protobuf::internal::ArenaStringPtr org_; } _DatasetPropertyFilter_default_instance_; class PaginationOptionsDefaultTypeInternal { public: @@ -1098,7 +1098,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fdatacatalog_2fdatacatalo offsetof(::datacatalog::DatasetPropertyFilterDefaultTypeInternal, name_), offsetof(::datacatalog::DatasetPropertyFilterDefaultTypeInternal, domain_), offsetof(::datacatalog::DatasetPropertyFilterDefaultTypeInternal, version_), - offsetof(::datacatalog::DatasetPropertyFilterDefaultTypeInternal, partition_), + offsetof(::datacatalog::DatasetPropertyFilterDefaultTypeInternal, org_), PROTOBUF_FIELD_OFFSET(::datacatalog::DatasetPropertyFilter, property_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::datacatalog::PaginationOptions, _internal_metadata_), @@ -1288,46 +1288,46 @@ const char descriptor_table_protodef_flyteidl_2fdatacatalog_2fdatacatalog_2eprot "ag_name\030\001 \001(\tH\000B\n\n\010property\"S\n\027Partition" "PropertyFilter\022,\n\007key_val\030\001 \001(\0132\031.dataca" "talog.KeyValuePairH\000B\n\n\010property\"*\n\014KeyV" - "aluePair\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\200\001\n" - "\025DatasetPropertyFilter\022\021\n\007project\030\001 \001(\tH" - "\000\022\016\n\004name\030\002 \001(\tH\000\022\020\n\006domain\030\003 \001(\tH\000\022\021\n\007v" - "ersion\030\004 \001(\tH\000\022\023\n\tpartition\030\005 \001(\tH\000B\n\n\010p" - "roperty\"\361\001\n\021PaginationOptions\022\r\n\005limit\030\001" - " \001(\r\022\r\n\005token\030\002 \001(\t\0227\n\007sortKey\030\003 \001(\0162&.d" - "atacatalog.PaginationOptions.SortKey\022;\n\t" - "sortOrder\030\004 \001(\0162(.datacatalog.Pagination" - "Options.SortOrder\"*\n\tSortOrder\022\016\n\nDESCEN" - "DING\020\000\022\r\n\tASCENDING\020\001\"\034\n\007SortKey\022\021\n\rCREA" - "TION_TIME\020\0002\206\007\n\013DataCatalog\022V\n\rCreateDat" - "aset\022!.datacatalog.CreateDatasetRequest\032" - "\".datacatalog.CreateDatasetResponse\022M\n\nG" - "etDataset\022\036.datacatalog.GetDatasetReques" - "t\032\037.datacatalog.GetDatasetResponse\022Y\n\016Cr" - "eateArtifact\022\".datacatalog.CreateArtifac" - "tRequest\032#.datacatalog.CreateArtifactRes" - "ponse\022P\n\013GetArtifact\022\037.datacatalog.GetAr" - "tifactRequest\032 .datacatalog.GetArtifactR" - "esponse\022A\n\006AddTag\022\032.datacatalog.AddTagRe" - "quest\032\033.datacatalog.AddTagResponse\022V\n\rLi" - "stArtifacts\022!.datacatalog.ListArtifactsR" - "equest\032\".datacatalog.ListArtifactsRespon" - "se\022S\n\014ListDatasets\022 .datacatalog.ListDat" - "asetsRequest\032!.datacatalog.ListDatasetsR" - "esponse\022Y\n\016UpdateArtifact\022\".datacatalog." - "UpdateArtifactRequest\032#.datacatalog.Upda" - "teArtifactResponse\022q\n\026GetOrExtendReserva" - "tion\022*.datacatalog.GetOrExtendReservatio" - "nRequest\032+.datacatalog.GetOrExtendReserv" - "ationResponse\022e\n\022ReleaseReservation\022&.da" - "tacatalog.ReleaseReservationRequest\032\'.da" - "tacatalog.ReleaseReservationResponseBCZA" - "github.com/flyteorg/flyte/flyteidl/gen/p" - "b-go/flyteidl/datacatalogb\006proto3" + "aluePair\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"z\n\025" + "DatasetPropertyFilter\022\021\n\007project\030\001 \001(\tH\000" + "\022\016\n\004name\030\002 \001(\tH\000\022\020\n\006domain\030\003 \001(\tH\000\022\021\n\007ve" + "rsion\030\004 \001(\tH\000\022\r\n\003org\030\005 \001(\tH\000B\n\n\010property" + "\"\361\001\n\021PaginationOptions\022\r\n\005limit\030\001 \001(\r\022\r\n" + "\005token\030\002 \001(\t\0227\n\007sortKey\030\003 \001(\0162&.datacata" + "log.PaginationOptions.SortKey\022;\n\tsortOrd" + "er\030\004 \001(\0162(.datacatalog.PaginationOptions" + ".SortOrder\"*\n\tSortOrder\022\016\n\nDESCENDING\020\000\022" + "\r\n\tASCENDING\020\001\"\034\n\007SortKey\022\021\n\rCREATION_TI" + "ME\020\0002\206\007\n\013DataCatalog\022V\n\rCreateDataset\022!." + "datacatalog.CreateDatasetRequest\032\".datac" + "atalog.CreateDatasetResponse\022M\n\nGetDatas" + "et\022\036.datacatalog.GetDatasetRequest\032\037.dat" + "acatalog.GetDatasetResponse\022Y\n\016CreateArt" + "ifact\022\".datacatalog.CreateArtifactReques" + "t\032#.datacatalog.CreateArtifactResponse\022P" + "\n\013GetArtifact\022\037.datacatalog.GetArtifactR" + "equest\032 .datacatalog.GetArtifactResponse" + "\022A\n\006AddTag\022\032.datacatalog.AddTagRequest\032\033" + ".datacatalog.AddTagResponse\022V\n\rListArtif" + "acts\022!.datacatalog.ListArtifactsRequest\032" + "\".datacatalog.ListArtifactsResponse\022S\n\014L" + "istDatasets\022 .datacatalog.ListDatasetsRe" + "quest\032!.datacatalog.ListDatasetsResponse" + "\022Y\n\016UpdateArtifact\022\".datacatalog.UpdateA" + "rtifactRequest\032#.datacatalog.UpdateArtif" + "actResponse\022q\n\026GetOrExtendReservation\022*." + "datacatalog.GetOrExtendReservationReques" + "t\032+.datacatalog.GetOrExtendReservationRe" + "sponse\022e\n\022ReleaseReservation\022&.datacatal" + "og.ReleaseReservationRequest\032\'.datacatal" + "og.ReleaseReservationResponseBCZAgithub." + "com/flyteorg/flyte/flyteidl/gen/pb-go/fl" + "yteidl/datacatalogb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fdatacatalog_2fdatacatalog_2eproto = { false, InitDefaults_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, descriptor_table_protodef_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, - "flyteidl/datacatalog/datacatalog.proto", &assign_descriptors_table_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, 4953, + "flyteidl/datacatalog/datacatalog.proto", &assign_descriptors_table_flyteidl_2fdatacatalog_2fdatacatalog_2eproto, 4946, }; void AddDescriptors_flyteidl_2fdatacatalog_2fdatacatalog_2eproto() { @@ -14495,7 +14495,7 @@ void DatasetPropertyFilter::InitAsDefaultInstance() { &::google::protobuf::internal::GetEmptyStringAlreadyInited()); ::datacatalog::_DatasetPropertyFilter_default_instance_.version_.UnsafeSetDefault( &::google::protobuf::internal::GetEmptyStringAlreadyInited()); - ::datacatalog::_DatasetPropertyFilter_default_instance_.partition_.UnsafeSetDefault( + ::datacatalog::_DatasetPropertyFilter_default_instance_.org_.UnsafeSetDefault( &::google::protobuf::internal::GetEmptyStringAlreadyInited()); } class DatasetPropertyFilter::HasBitSetters { @@ -14507,7 +14507,7 @@ const int DatasetPropertyFilter::kProjectFieldNumber; const int DatasetPropertyFilter::kNameFieldNumber; const int DatasetPropertyFilter::kDomainFieldNumber; const int DatasetPropertyFilter::kVersionFieldNumber; -const int DatasetPropertyFilter::kPartitionFieldNumber; +const int DatasetPropertyFilter::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 DatasetPropertyFilter::DatasetPropertyFilter() @@ -14537,8 +14537,8 @@ DatasetPropertyFilter::DatasetPropertyFilter(const DatasetPropertyFilter& from) set_version(from.version()); break; } - case kPartition: { - set_partition(from.partition()); + case kOrg: { + set_org(from.org()); break; } case PROPERTY_NOT_SET: { @@ -14593,8 +14593,8 @@ void DatasetPropertyFilter::clear_property() { property_.version_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); break; } - case kPartition: { - property_.partition_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + case kOrg: { + property_.org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); break; } case PROPERTY_NOT_SET: { @@ -14692,13 +14692,13 @@ const char* DatasetPropertyFilter::_InternalParse(const char* begin, const char* ptr += size; break; } - // string partition = 5; + // string org = 5; case 5: { if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual; ptr = ::google::protobuf::io::ReadSize(ptr, &size); GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); - ctx->extra_parse_data().SetFieldName("datacatalog.DatasetPropertyFilter.partition"); - object = msg->mutable_partition(); + ctx->extra_parse_data().SetFieldName("datacatalog.DatasetPropertyFilter.org"); + object = msg->mutable_org(); if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; goto string_till_end; @@ -14802,15 +14802,15 @@ bool DatasetPropertyFilter::MergePartialFromCodedStream( break; } - // string partition = 5; + // string org = 5; case 5: { if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) { DO_(::google::protobuf::internal::WireFormatLite::ReadString( - input, this->mutable_partition())); + input, this->mutable_org())); DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->partition().data(), static_cast(this->partition().length()), + this->org().data(), static_cast(this->org().length()), ::google::protobuf::internal::WireFormatLite::PARSE, - "datacatalog.DatasetPropertyFilter.partition")); + "datacatalog.DatasetPropertyFilter.org")); } else { goto handle_unusual; } @@ -14884,14 +14884,14 @@ void DatasetPropertyFilter::SerializeWithCachedSizes( 4, this->version(), output); } - // string partition = 5; - if (has_partition()) { + // string org = 5; + if (has_org()) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->partition().data(), static_cast(this->partition().length()), + this->org().data(), static_cast(this->org().length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "datacatalog.DatasetPropertyFilter.partition"); + "datacatalog.DatasetPropertyFilter.org"); ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( - 5, this->partition(), output); + 5, this->org(), output); } if (_internal_metadata_.have_unknown_fields()) { @@ -14951,15 +14951,15 @@ ::google::protobuf::uint8* DatasetPropertyFilter::InternalSerializeWithCachedSiz 4, this->version(), target); } - // string partition = 5; - if (has_partition()) { + // string org = 5; + if (has_org()) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->partition().data(), static_cast(this->partition().length()), + this->org().data(), static_cast(this->org().length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "datacatalog.DatasetPropertyFilter.partition"); + "datacatalog.DatasetPropertyFilter.org"); target = ::google::protobuf::internal::WireFormatLite::WriteStringToArray( - 5, this->partition(), target); + 5, this->org(), target); } if (_internal_metadata_.have_unknown_fields()) { @@ -15012,11 +15012,11 @@ size_t DatasetPropertyFilter::ByteSizeLong() const { this->version()); break; } - // string partition = 5; - case kPartition: { + // string org = 5; + case kOrg: { total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize( - this->partition()); + this->org()); break; } case PROPERTY_NOT_SET: { @@ -15067,8 +15067,8 @@ void DatasetPropertyFilter::MergeFrom(const DatasetPropertyFilter& from) { set_version(from.version()); break; } - case kPartition: { - set_partition(from.partition()); + case kOrg: { + set_org(from.org()); break; } case PROPERTY_NOT_SET: { diff --git a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h index 10f5aa1b8a..27a69c19e7 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/datacatalog/datacatalog.pb.h @@ -5054,7 +5054,7 @@ class DatasetPropertyFilter final : kName = 2, kDomain = 3, kVersion = 4, - kPartition = 5, + kOrg = 5, PROPERTY_NOT_SET = 0, }; @@ -5189,22 +5189,22 @@ class DatasetPropertyFilter final : ::std::string* release_version(); void set_allocated_version(::std::string* version); - // string partition = 5; + // string org = 5; private: - bool has_partition() const; + bool has_org() const; public: - void clear_partition(); - static const int kPartitionFieldNumber = 5; - const ::std::string& partition() const; - void set_partition(const ::std::string& value); + void clear_org(); + static const int kOrgFieldNumber = 5; + const ::std::string& org() const; + void set_org(const ::std::string& value); #if LANG_CXX11 - void set_partition(::std::string&& value); + void set_org(::std::string&& value); #endif - void set_partition(const char* value); - void set_partition(const char* value, size_t size); - ::std::string* mutable_partition(); - ::std::string* release_partition(); - void set_allocated_partition(::std::string* partition); + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); void clear_property(); PropertyCase property_case() const; @@ -5215,7 +5215,7 @@ class DatasetPropertyFilter final : void set_has_name(); void set_has_domain(); void set_has_version(); - void set_has_partition(); + void set_has_org(); inline bool has_property() const; inline void clear_has_property(); @@ -5227,7 +5227,7 @@ class DatasetPropertyFilter final : ::google::protobuf::internal::ArenaStringPtr name_; ::google::protobuf::internal::ArenaStringPtr domain_; ::google::protobuf::internal::ArenaStringPtr version_; - ::google::protobuf::internal::ArenaStringPtr partition_; + ::google::protobuf::internal::ArenaStringPtr org_; } property_; mutable ::google::protobuf::internal::CachedSize _cached_size_; ::google::protobuf::uint32 _oneof_case_[1]; @@ -9685,96 +9685,96 @@ inline void DatasetPropertyFilter::set_allocated_version(::std::string* version) // @@protoc_insertion_point(field_set_allocated:datacatalog.DatasetPropertyFilter.version) } -// string partition = 5; -inline bool DatasetPropertyFilter::has_partition() const { - return property_case() == kPartition; +// string org = 5; +inline bool DatasetPropertyFilter::has_org() const { + return property_case() == kOrg; } -inline void DatasetPropertyFilter::set_has_partition() { - _oneof_case_[0] = kPartition; +inline void DatasetPropertyFilter::set_has_org() { + _oneof_case_[0] = kOrg; } -inline void DatasetPropertyFilter::clear_partition() { - if (has_partition()) { - property_.partition_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +inline void DatasetPropertyFilter::clear_org() { + if (has_org()) { + property_.org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); clear_has_property(); } } -inline const ::std::string& DatasetPropertyFilter::partition() const { - // @@protoc_insertion_point(field_get:datacatalog.DatasetPropertyFilter.partition) - if (has_partition()) { - return property_.partition_.GetNoArena(); +inline const ::std::string& DatasetPropertyFilter::org() const { + // @@protoc_insertion_point(field_get:datacatalog.DatasetPropertyFilter.org) + if (has_org()) { + return property_.org_.GetNoArena(); } return *&::google::protobuf::internal::GetEmptyStringAlreadyInited(); } -inline void DatasetPropertyFilter::set_partition(const ::std::string& value) { - // @@protoc_insertion_point(field_set:datacatalog.DatasetPropertyFilter.partition) - if (!has_partition()) { +inline void DatasetPropertyFilter::set_org(const ::std::string& value) { + // @@protoc_insertion_point(field_set:datacatalog.DatasetPropertyFilter.org) + if (!has_org()) { clear_property(); - set_has_partition(); - property_.partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + set_has_org(); + property_.org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } - property_.partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:datacatalog.DatasetPropertyFilter.partition) + property_.org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:datacatalog.DatasetPropertyFilter.org) } #if LANG_CXX11 -inline void DatasetPropertyFilter::set_partition(::std::string&& value) { - // @@protoc_insertion_point(field_set:datacatalog.DatasetPropertyFilter.partition) - if (!has_partition()) { +inline void DatasetPropertyFilter::set_org(::std::string&& value) { + // @@protoc_insertion_point(field_set:datacatalog.DatasetPropertyFilter.org) + if (!has_org()) { clear_property(); - set_has_partition(); - property_.partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + set_has_org(); + property_.org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } - property_.partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); - // @@protoc_insertion_point(field_set_rvalue:datacatalog.DatasetPropertyFilter.partition) + property_.org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:datacatalog.DatasetPropertyFilter.org) } #endif -inline void DatasetPropertyFilter::set_partition(const char* value) { +inline void DatasetPropertyFilter::set_org(const char* value) { GOOGLE_DCHECK(value != nullptr); - if (!has_partition()) { + if (!has_org()) { clear_property(); - set_has_partition(); - property_.partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + set_has_org(); + property_.org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } - property_.partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + property_.org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:datacatalog.DatasetPropertyFilter.partition) + // @@protoc_insertion_point(field_set_char:datacatalog.DatasetPropertyFilter.org) } -inline void DatasetPropertyFilter::set_partition(const char* value, size_t size) { - if (!has_partition()) { +inline void DatasetPropertyFilter::set_org(const char* value, size_t size) { + if (!has_org()) { clear_property(); - set_has_partition(); - property_.partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + set_has_org(); + property_.org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } - property_.partition_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string( + property_.org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string( reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:datacatalog.DatasetPropertyFilter.partition) + // @@protoc_insertion_point(field_set_pointer:datacatalog.DatasetPropertyFilter.org) } -inline ::std::string* DatasetPropertyFilter::mutable_partition() { - if (!has_partition()) { +inline ::std::string* DatasetPropertyFilter::mutable_org() { + if (!has_org()) { clear_property(); - set_has_partition(); - property_.partition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + set_has_org(); + property_.org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } - // @@protoc_insertion_point(field_mutable:datacatalog.DatasetPropertyFilter.partition) - return property_.partition_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + // @@protoc_insertion_point(field_mutable:datacatalog.DatasetPropertyFilter.org) + return property_.org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } -inline ::std::string* DatasetPropertyFilter::release_partition() { - // @@protoc_insertion_point(field_release:datacatalog.DatasetPropertyFilter.partition) - if (has_partition()) { +inline ::std::string* DatasetPropertyFilter::release_org() { + // @@protoc_insertion_point(field_release:datacatalog.DatasetPropertyFilter.org) + if (has_org()) { clear_has_property(); - return property_.partition_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + return property_.org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } else { return nullptr; } } -inline void DatasetPropertyFilter::set_allocated_partition(::std::string* partition) { +inline void DatasetPropertyFilter::set_allocated_org(::std::string* org) { if (has_property()) { clear_property(); } - if (partition != nullptr) { - set_has_partition(); - property_.partition_.UnsafeSetDefault(partition); + if (org != nullptr) { + set_has_org(); + property_.org_.UnsafeSetDefault(org); } - // @@protoc_insertion_point(field_set_allocated:datacatalog.DatasetPropertyFilter.partition) + // @@protoc_insertion_point(field_set_allocated:datacatalog.DatasetPropertyFilter.org) } inline bool DatasetPropertyFilter::has_property() const { diff --git a/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go b/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go index d8671f8b1a..d1d623e792 100644 --- a/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/datacatalog/datacatalog.pb.go @@ -2048,7 +2048,7 @@ type DatasetPropertyFilter struct { // *DatasetPropertyFilter_Name // *DatasetPropertyFilter_Domain // *DatasetPropertyFilter_Version - // *DatasetPropertyFilter_Partition + // *DatasetPropertyFilter_Org Property isDatasetPropertyFilter_Property `protobuf_oneof:"property"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2100,8 +2100,8 @@ type DatasetPropertyFilter_Version struct { Version string `protobuf:"bytes,4,opt,name=version,proto3,oneof"` } -type DatasetPropertyFilter_Partition struct { - Partition string `protobuf:"bytes,5,opt,name=partition,proto3,oneof"` +type DatasetPropertyFilter_Org struct { + Org string `protobuf:"bytes,5,opt,name=org,proto3,oneof"` } func (*DatasetPropertyFilter_Project) isDatasetPropertyFilter_Property() {} @@ -2112,7 +2112,7 @@ func (*DatasetPropertyFilter_Domain) isDatasetPropertyFilter_Property() {} func (*DatasetPropertyFilter_Version) isDatasetPropertyFilter_Property() {} -func (*DatasetPropertyFilter_Partition) isDatasetPropertyFilter_Property() {} +func (*DatasetPropertyFilter_Org) isDatasetPropertyFilter_Property() {} func (m *DatasetPropertyFilter) GetProperty() isDatasetPropertyFilter_Property { if m != nil { @@ -2149,9 +2149,9 @@ func (m *DatasetPropertyFilter) GetVersion() string { return "" } -func (m *DatasetPropertyFilter) GetPartition() string { - if x, ok := m.GetProperty().(*DatasetPropertyFilter_Partition); ok { - return x.Partition +func (m *DatasetPropertyFilter) GetOrg() string { + if x, ok := m.GetProperty().(*DatasetPropertyFilter_Org); ok { + return x.Org } return "" } @@ -2163,7 +2163,7 @@ func (*DatasetPropertyFilter) XXX_OneofWrappers() []interface{} { (*DatasetPropertyFilter_Name)(nil), (*DatasetPropertyFilter_Domain)(nil), (*DatasetPropertyFilter_Version)(nil), - (*DatasetPropertyFilter_Partition)(nil), + (*DatasetPropertyFilter_Org)(nil), } } @@ -2284,114 +2284,113 @@ func init() { } var fileDescriptor_275951237ff4368a = []byte{ - // 1698 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0x4b, 0x6f, 0xdb, 0xc6, - 0x13, 0x37, 0x25, 0x47, 0x32, 0x47, 0x96, 0x22, 0x6f, 0x6c, 0x47, 0x56, 0x12, 0x5b, 0x61, 0x02, - 0xff, 0x8d, 0xfc, 0x1b, 0x29, 0xb5, 0x93, 0xa0, 0x49, 0x8b, 0xb6, 0xb2, 0xa5, 0xd8, 0xaa, 0xe3, - 0x47, 0xe8, 0x07, 0xd0, 0x07, 0x20, 0xac, 0xcd, 0x35, 0xc3, 0x9a, 0x12, 0x19, 0x72, 0x9d, 0x5a, - 0xc7, 0x5e, 0x7a, 0x28, 0x7a, 0x29, 0x0a, 0xf4, 0x0b, 0xf4, 0xd8, 0x0f, 0xd1, 0x63, 0x6e, 0xfd, - 0x42, 0xbd, 0x14, 0x4b, 0xee, 0x52, 0x24, 0x45, 0xd9, 0x8a, 0x0f, 0x01, 0x7a, 0x21, 0xb8, 0xbb, - 0x33, 0xbf, 0x9d, 0xc7, 0xce, 0xce, 0xcc, 0xc2, 0xe2, 0x89, 0xd9, 0xa3, 0xc4, 0xd0, 0xcc, 0x9a, - 0x86, 0x29, 0x3e, 0xc6, 0x14, 0x9b, 0x96, 0x1e, 0xfe, 0xaf, 0xda, 0x8e, 0x45, 0x2d, 0x94, 0x0b, - 0x4d, 0x95, 0x6f, 0x07, 0x4c, 0xc7, 0x96, 0x43, 0x6a, 0xa6, 0x41, 0x89, 0x83, 0x4d, 0xd7, 0x27, - 0x2d, 0xcf, 0xeb, 0x96, 0xa5, 0x9b, 0xa4, 0xe6, 0x8d, 0x8e, 0xce, 0x4e, 0x6a, 0xda, 0x99, 0x83, - 0xa9, 0x61, 0x75, 0xf9, 0xfa, 0x42, 0x7c, 0x9d, 0x1a, 0x1d, 0xe2, 0x52, 0xdc, 0xb1, 0x7d, 0x02, - 0xe5, 0x05, 0x4c, 0xaf, 0x39, 0x04, 0x53, 0xd2, 0xc0, 0x14, 0xbb, 0x84, 0xaa, 0xe4, 0xcd, 0x19, - 0x71, 0x29, 0xaa, 0x42, 0x56, 0xf3, 0x67, 0x4a, 0x52, 0x45, 0x5a, 0xca, 0x2d, 0x4f, 0x57, 0xc3, - 0x82, 0x0a, 0x6a, 0x41, 0xa4, 0xdc, 0x84, 0x99, 0x18, 0x8e, 0x6b, 0x5b, 0x5d, 0x97, 0x28, 0x4d, - 0x98, 0x5a, 0x27, 0x34, 0x86, 0xfe, 0x28, 0x8e, 0x3e, 0x9b, 0x84, 0xde, 0x6a, 0xf4, 0xf1, 0x1b, - 0x80, 0xc2, 0x30, 0x3e, 0xf8, 0x7b, 0x4b, 0xf9, 0xbb, 0xe4, 0xc1, 0xd4, 0x1d, 0x6a, 0x9c, 0xe0, - 0xe3, 0xab, 0x8b, 0x83, 0xee, 0x42, 0x0e, 0x73, 0x90, 0xb6, 0xa1, 0x95, 0x52, 0x15, 0x69, 0x49, - 0xde, 0x18, 0x53, 0x41, 0x4c, 0xb6, 0x34, 0x74, 0x0b, 0x26, 0x28, 0xd6, 0xdb, 0x5d, 0xdc, 0x21, - 0xa5, 0x34, 0x5f, 0xcf, 0x52, 0xac, 0x6f, 0xe3, 0x0e, 0x59, 0x2d, 0xc0, 0xe4, 0x9b, 0x33, 0xe2, - 0xf4, 0xda, 0xaf, 0x71, 0x57, 0x33, 0x89, 0xb2, 0x01, 0x37, 0x22, 0x72, 0x71, 0xfd, 0x3e, 0x86, - 0x09, 0x81, 0xc8, 0x25, 0x9b, 0x89, 0x48, 0x16, 0x30, 0x04, 0x64, 0xca, 0x57, 0xc2, 0x11, 0x71, - 0x25, 0xaf, 0x80, 0x55, 0x82, 0xd9, 0x38, 0x16, 0xf7, 0xea, 0x0a, 0xe4, 0xeb, 0x9a, 0xb6, 0x8f, - 0x75, 0x81, 0xae, 0x40, 0x9a, 0x62, 0x9d, 0x03, 0x17, 0x23, 0xc0, 0x8c, 0x8a, 0x2d, 0x2a, 0x45, - 0x28, 0x08, 0x26, 0x0e, 0xf3, 0x97, 0x04, 0xd3, 0x2f, 0x0d, 0x37, 0x50, 0xdc, 0xbd, 0xba, 0x47, - 0x9e, 0x40, 0xe6, 0xc4, 0x30, 0x29, 0x71, 0x3c, 0x67, 0xe4, 0x96, 0xef, 0x44, 0x18, 0x5e, 0x78, - 0x4b, 0xcd, 0x73, 0xdb, 0x21, 0xae, 0x6b, 0x58, 0x5d, 0x95, 0x13, 0xa3, 0xcf, 0x01, 0x6c, 0xac, - 0x1b, 0x5d, 0x2f, 0x68, 0x3c, 0x3f, 0xe5, 0x96, 0xe7, 0x23, 0xac, 0xbb, 0xc1, 0xf2, 0x8e, 0xcd, - 0xbe, 0xae, 0x1a, 0xe2, 0x50, 0x4e, 0x61, 0x26, 0xa6, 0x00, 0x77, 0xdd, 0x0a, 0xc8, 0xc2, 0x8e, - 0x6e, 0x49, 0xaa, 0xa4, 0x87, 0xdb, 0xbb, 0x4f, 0x87, 0xee, 0x00, 0x74, 0xc9, 0x39, 0x6d, 0x53, - 0xeb, 0x94, 0x74, 0xfd, 0x53, 0xa5, 0xca, 0x6c, 0x66, 0x9f, 0x4d, 0x28, 0xbf, 0x48, 0x70, 0x83, - 0xed, 0xc6, 0xd5, 0x0f, 0xac, 0xd5, 0xd7, 0x5d, 0xba, 0xba, 0xee, 0xa9, 0xf7, 0xd6, 0x5d, 0xf7, - 0x9d, 0xd7, 0x97, 0x86, 0xab, 0xfe, 0x08, 0x26, 0xb8, 0x57, 0x84, 0xe6, 0xc9, 0x61, 0x19, 0x50, - 0x5d, 0xa6, 0xf7, 0x3f, 0x12, 0xcc, 0x1c, 0xd8, 0x5a, 0xc2, 0xa1, 0xfe, 0xe0, 0x91, 0x8b, 0x1e, - 0xc2, 0x38, 0x83, 0x2a, 0x8d, 0x7b, 0x8a, 0xcd, 0x25, 0xba, 0x94, 0x6d, 0xab, 0x7a, 0x64, 0x2c, - 0xea, 0x3a, 0x84, 0x62, 0x8f, 0xe5, 0x5a, 0x42, 0xd4, 0x6d, 0xf1, 0x45, 0x35, 0x20, 0x1b, 0xb8, - 0x1b, 0x9e, 0xc1, 0x6c, 0x5c, 0x79, 0x6e, 0xe8, 0x85, 0xa8, 0x2e, 0x92, 0x67, 0xb7, 0x90, 0x26, - 0x0a, 0x86, 0xbc, 0x4a, 0x5c, 0xe2, 0xbc, 0xf5, 0x1c, 0xd6, 0x6a, 0xa0, 0x27, 0x00, 0xdc, 0x10, - 0x82, 0x61, 0xb8, 0xc9, 0x64, 0x4e, 0xd9, 0xd2, 0xd0, 0x5c, 0xc8, 0x22, 0xbe, 0x77, 0x84, 0x3d, - 0x94, 0x77, 0x12, 0xdc, 0x59, 0x27, 0x74, 0xc7, 0x69, 0x9e, 0x53, 0xd2, 0xd5, 0x42, 0xdb, 0x09, - 0x1f, 0xd5, 0xa1, 0xe0, 0xf4, 0x67, 0xfb, 0xfb, 0x96, 0x23, 0xfb, 0x46, 0xe4, 0x54, 0xf3, 0x21, - 0x0e, 0x7f, 0x7f, 0xeb, 0x87, 0x2e, 0x71, 0x02, 0x8f, 0xa9, 0x59, 0x6f, 0xdc, 0xd2, 0xd0, 0x06, - 0xa0, 0xd7, 0x04, 0x3b, 0xf4, 0x88, 0x60, 0xda, 0x36, 0xba, 0x94, 0x71, 0x99, 0x3c, 0x90, 0xe7, - 0xaa, 0x7e, 0xfa, 0xab, 0x8a, 0xf4, 0x57, 0x6d, 0xf0, 0xf4, 0xa8, 0x4e, 0x05, 0x4c, 0x2d, 0xce, - 0xa3, 0xfc, 0x91, 0x82, 0x5c, 0x48, 0x8a, 0xff, 0x8a, 0xdc, 0xe8, 0x19, 0x00, 0x39, 0xb7, 0x0d, - 0x87, 0xb8, 0x6d, 0x4c, 0x4b, 0xe3, 0x5c, 0xc6, 0x38, 0xc2, 0xbe, 0x48, 0xfc, 0xaa, 0xcc, 0xa9, - 0xeb, 0x34, 0x72, 0x3a, 0x33, 0x23, 0x9d, 0x4e, 0xe5, 0x3b, 0x98, 0x1f, 0xe6, 0x6e, 0x7e, 0x2a, - 0x9f, 0x43, 0x2e, 0x64, 0x05, 0x6e, 0xb4, 0xd2, 0x30, 0xa3, 0xa9, 0x61, 0x62, 0xa5, 0x07, 0x73, - 0x2a, 0x31, 0x09, 0x76, 0xc9, 0x87, 0x3e, 0x48, 0xca, 0x6d, 0x28, 0x27, 0x6d, 0xcd, 0x33, 0xd5, - 0xcf, 0x12, 0x64, 0x79, 0x68, 0xa0, 0x45, 0x48, 0x5d, 0x1a, 0x3c, 0x29, 0x43, 0x8b, 0x58, 0x37, - 0x35, 0x92, 0x75, 0xd1, 0x7d, 0xc8, 0xdb, 0x2c, 0x7e, 0xd9, 0xde, 0x9b, 0xa4, 0xe7, 0x96, 0xd2, - 0x95, 0xf4, 0x92, 0xac, 0x46, 0x27, 0x95, 0x15, 0x90, 0x77, 0xc5, 0x04, 0x2a, 0x42, 0xfa, 0x94, - 0xf4, 0x78, 0xf0, 0xb3, 0x5f, 0x34, 0x0d, 0xd7, 0xde, 0x62, 0xf3, 0x4c, 0x84, 0xaa, 0x3f, 0x50, - 0x7e, 0x95, 0x40, 0x0e, 0xe4, 0x43, 0x25, 0xc8, 0xda, 0x8e, 0xf5, 0x3d, 0xe1, 0xc5, 0x80, 0xac, - 0x8a, 0x21, 0x42, 0x30, 0x1e, 0x8a, 0x73, 0xef, 0x1f, 0xcd, 0x42, 0x46, 0xb3, 0x3a, 0xd8, 0xf0, - 0x33, 0xa4, 0xac, 0xf2, 0x11, 0x43, 0x79, 0x4b, 0x1c, 0x96, 0x54, 0xbc, 0x73, 0x27, 0xab, 0x62, - 0xc8, 0x50, 0x0e, 0x0e, 0x5a, 0x0d, 0xef, 0xce, 0x93, 0x55, 0xef, 0x9f, 0x49, 0x6a, 0x39, 0xba, - 0x77, 0xd0, 0x64, 0x95, 0xfd, 0x2a, 0xef, 0x52, 0x30, 0x21, 0x6e, 0x35, 0x54, 0x08, 0xcc, 0x2a, - 0x7b, 0xe6, 0x0b, 0xdd, 0xed, 0xa9, 0xd1, 0xee, 0x76, 0x71, 0x37, 0xa7, 0xdf, 0xff, 0x6e, 0x1e, - 0x1f, 0xcd, 0x3f, 0x4f, 0x59, 0xca, 0xe4, 0x96, 0x77, 0x4b, 0xd7, 0xbc, 0x7d, 0x66, 0x63, 0x29, - 0x93, 0x2f, 0xab, 0x21, 0x4a, 0x74, 0x1f, 0xc6, 0x29, 0xd6, 0xdd, 0x52, 0xc6, 0xe3, 0x18, 0xac, - 0x8f, 0xbc, 0x55, 0x16, 0xc9, 0xc7, 0x5e, 0xbd, 0xa5, 0xb1, 0x48, 0xce, 0x5e, 0x1e, 0xc9, 0x9c, - 0xba, 0x4e, 0x95, 0x5d, 0x98, 0x0c, 0x6b, 0x18, 0x78, 0x51, 0x0a, 0x79, 0xf1, 0xa3, 0xf0, 0xb9, - 0x60, 0x72, 0x8b, 0xd6, 0xa2, 0xca, 0x5a, 0x8b, 0xea, 0x4b, 0xbf, 0xb5, 0x10, 0xe7, 0xc5, 0x84, - 0xf4, 0x3e, 0xd6, 0x13, 0x81, 0x16, 0x12, 0x72, 0x68, 0x24, 0x83, 0x86, 0x5c, 0x97, 0x1e, 0xad, - 0xbe, 0xff, 0x51, 0x82, 0x09, 0x61, 0x6f, 0xf4, 0x1c, 0xb2, 0xa7, 0xa4, 0xd7, 0xee, 0x60, 0x9b, - 0xd7, 0x0f, 0x77, 0x13, 0xfd, 0x52, 0xdd, 0x24, 0xbd, 0x2d, 0x6c, 0x37, 0xbb, 0xd4, 0xe9, 0xa9, - 0x99, 0x53, 0x6f, 0x50, 0x7e, 0x06, 0xb9, 0xd0, 0xf4, 0xa8, 0xd1, 0xf1, 0x3c, 0xf5, 0x89, 0xa4, - 0xec, 0x40, 0x31, 0x5e, 0x2b, 0xa1, 0x4f, 0x21, 0xeb, 0x57, 0x4b, 0x6e, 0xa2, 0x28, 0x7b, 0x46, - 0x57, 0x37, 0xc9, 0xae, 0x63, 0xd9, 0xc4, 0xa1, 0x3d, 0x9f, 0x5b, 0x15, 0x1c, 0xca, 0xdf, 0x69, - 0x98, 0x4e, 0xa2, 0x40, 0x5f, 0x00, 0xb0, 0x7c, 0x1a, 0x29, 0xda, 0xe6, 0xe3, 0x87, 0x22, 0xca, - 0xb3, 0x31, 0xa6, 0xca, 0x14, 0xeb, 0x1c, 0xe0, 0x15, 0x14, 0x83, 0xd3, 0xd5, 0x8e, 0xd4, 0xbd, - 0xf7, 0x93, 0x4f, 0xe3, 0x00, 0xd8, 0xf5, 0x80, 0x9f, 0x43, 0x6e, 0xc3, 0xf5, 0xc0, 0xa9, 0x1c, - 0xd1, 0xf7, 0xdd, 0xbd, 0xc4, 0x38, 0x1a, 0x00, 0x2c, 0x08, 0x6e, 0x8e, 0xb7, 0x09, 0x05, 0x51, - 0x6a, 0x70, 0x38, 0x3f, 0xc6, 0x94, 0xa4, 0xa3, 0x30, 0x80, 0x96, 0xe7, 0xbc, 0x1c, 0x6c, 0x17, - 0x26, 0x18, 0x01, 0xa6, 0x96, 0x53, 0x82, 0x8a, 0xb4, 0x54, 0x58, 0x7e, 0x7c, 0xa9, 0x1f, 0xaa, - 0x6b, 0x56, 0xc7, 0xc6, 0x8e, 0xe1, 0xb2, 0xea, 0xd5, 0xe7, 0x55, 0x03, 0x14, 0xa5, 0x02, 0x68, - 0x70, 0x1d, 0x01, 0x64, 0x9a, 0xaf, 0x0e, 0xea, 0x2f, 0xf7, 0x8a, 0x63, 0xab, 0x53, 0x70, 0xdd, - 0xe6, 0x80, 0x5c, 0x03, 0x65, 0x1d, 0x66, 0x93, 0xf5, 0x8f, 0x97, 0x95, 0xd2, 0x60, 0x59, 0xb9, - 0x0a, 0x30, 0x21, 0xf0, 0x94, 0xcf, 0x60, 0x6a, 0xc0, 0xc3, 0x91, 0xba, 0x53, 0x8a, 0x77, 0x8c, - 0x61, 0xee, 0x6f, 0xe1, 0xe6, 0x10, 0xc7, 0xa2, 0xc7, 0x7e, 0xe8, 0xb0, 0x5a, 0x42, 0xe2, 0xb5, - 0x44, 0xd8, 0x4e, 0x9b, 0xa4, 0x77, 0xc8, 0xce, 0xfb, 0x2e, 0x36, 0x98, 0x95, 0x59, 0xd0, 0x1c, - 0x62, 0x33, 0x02, 0xfe, 0x14, 0x26, 0xc3, 0x54, 0x23, 0xe7, 0x97, 0x3f, 0x25, 0x98, 0x49, 0xf4, - 0x26, 0x2a, 0xc7, 0x72, 0x0d, 0x53, 0x4b, 0x64, 0x9b, 0xe9, 0x70, 0xb6, 0xd9, 0x18, 0xe3, 0x17, - 0x4c, 0x29, 0x9a, 0x6f, 0x98, 0xa4, 0x3c, 0xe3, 0x94, 0x63, 0x19, 0x87, 0x61, 0x89, 0x9c, 0x33, - 0x0f, 0x72, 0x70, 0xa8, 0xfd, 0xc4, 0xc3, 0x82, 0x26, 0x98, 0x8a, 0x68, 0xf9, 0x5b, 0x0a, 0xa6, - 0x06, 0xba, 0x1b, 0xa6, 0x99, 0x69, 0x74, 0x0c, 0x5f, 0xce, 0xbc, 0xea, 0x0f, 0xd8, 0x6c, 0xb8, - 0x31, 0xf1, 0x07, 0xe8, 0x4b, 0xc8, 0xba, 0x96, 0x43, 0x37, 0x49, 0xcf, 0x13, 0xb2, 0xb0, 0xbc, - 0x78, 0x71, 0xeb, 0x54, 0xdd, 0xf3, 0xa9, 0x55, 0xc1, 0x86, 0x5e, 0x80, 0xcc, 0x7e, 0x77, 0x1c, - 0x8d, 0x07, 0x47, 0x61, 0x79, 0x69, 0x04, 0x0c, 0x8f, 0x5e, 0xed, 0xb3, 0x2a, 0x0f, 0x40, 0x0e, - 0xe6, 0x51, 0x01, 0xa0, 0xd1, 0xdc, 0x5b, 0x6b, 0x6e, 0x37, 0x5a, 0xdb, 0xeb, 0xc5, 0x31, 0x94, - 0x07, 0xb9, 0x1e, 0x0c, 0x25, 0xe5, 0x36, 0x64, 0xb9, 0x1c, 0x68, 0x0a, 0xf2, 0x6b, 0x6a, 0xb3, - 0xbe, 0xdf, 0xda, 0xd9, 0x6e, 0xef, 0xb7, 0xb6, 0x9a, 0xc5, 0xb1, 0xe5, 0x9f, 0xb2, 0x90, 0x63, - 0x3e, 0x5c, 0xf3, 0x05, 0x40, 0x87, 0x90, 0x8f, 0xbc, 0xea, 0xa0, 0xe8, 0xed, 0x97, 0xf4, 0x72, - 0x54, 0x56, 0x2e, 0x22, 0xe1, 0x25, 0xe2, 0x16, 0x40, 0xff, 0x35, 0x07, 0x45, 0x6f, 0xbe, 0x81, - 0xd7, 0xa2, 0xf2, 0xc2, 0xd0, 0x75, 0x0e, 0xf7, 0x35, 0x14, 0xa2, 0xef, 0x14, 0x28, 0x49, 0x88, - 0x58, 0xef, 0x58, 0xbe, 0x77, 0x21, 0x0d, 0x87, 0xde, 0x85, 0x5c, 0xe8, 0x61, 0x06, 0x0d, 0x88, - 0x12, 0x07, 0xad, 0x0c, 0x27, 0xe0, 0x88, 0x75, 0xc8, 0xf8, 0xaf, 0x20, 0x28, 0x5a, 0xb7, 0x46, - 0xde, 0x53, 0xca, 0xb7, 0x12, 0xd7, 0x38, 0xc4, 0x21, 0xe4, 0x23, 0x8f, 0x0e, 0x31, 0xb7, 0x24, - 0xbd, 0xa8, 0xc4, 0xdc, 0x92, 0xfc, 0x66, 0xb1, 0x07, 0x93, 0xe1, 0x86, 0x1e, 0x55, 0x06, 0x78, - 0x62, 0x2f, 0x0f, 0xe5, 0xbb, 0x17, 0x50, 0xf4, 0x9d, 0x13, 0x6d, 0x5f, 0x63, 0xce, 0x49, 0x6c, - 0xec, 0x63, 0xce, 0x19, 0xd2, 0xff, 0xbe, 0x81, 0xd9, 0xe4, 0x5e, 0x04, 0x3d, 0x88, 0xbb, 0x61, - 0x78, 0x7f, 0x5a, 0xfe, 0xff, 0x48, 0xb4, 0x7c, 0x4b, 0x02, 0x68, 0xb0, 0x4b, 0x40, 0x8b, 0xb1, - 0x0e, 0x64, 0x48, 0x07, 0x53, 0xfe, 0xdf, 0xa5, 0x74, 0xfe, 0x36, 0xab, 0x6b, 0xdf, 0xd4, 0x75, - 0x83, 0xbe, 0x3e, 0x3b, 0xaa, 0x1e, 0x5b, 0x9d, 0x9a, 0x57, 0xa7, 0x59, 0x8e, 0xee, 0xff, 0xd4, - 0x82, 0x17, 0x61, 0x9d, 0x74, 0x6b, 0xf6, 0xd1, 0x43, 0xdd, 0xaa, 0x25, 0xbd, 0x2c, 0x1f, 0x65, - 0xbc, 0x92, 0x71, 0xe5, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x9b, 0xf3, 0x0d, 0x78, 0x16, - 0x00, 0x00, + // 1694 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x6f, 0xdb, 0xc6, + 0x12, 0x37, 0x25, 0x5b, 0x32, 0x47, 0x96, 0x22, 0x6f, 0x6c, 0x47, 0x56, 0x12, 0x5b, 0x61, 0x02, + 0x3f, 0x23, 0xef, 0x45, 0xca, 0xb3, 0x93, 0xe0, 0x25, 0xaf, 0x68, 0x2b, 0x5b, 0x8a, 0xad, 0x3a, + 0xfe, 0x08, 0xfd, 0x01, 0xf4, 0x03, 0x10, 0xd6, 0xe6, 0x9a, 0x61, 0x4d, 0x89, 0x0c, 0xb9, 0x4e, + 0xad, 0x63, 0x2f, 0x3d, 0x14, 0xbd, 0x14, 0x05, 0x7a, 0xed, 0xa1, 0x7f, 0x48, 0x8f, 0xb9, 0xf5, + 0x1f, 0xea, 0xa5, 0x58, 0x72, 0x97, 0x22, 0x29, 0xca, 0x56, 0x7c, 0x08, 0xd0, 0x0b, 0xc1, 0xdd, + 0x9d, 0xf9, 0xed, 0x7c, 0xec, 0xec, 0xcc, 0x2c, 0x2c, 0x9d, 0x9a, 0x3d, 0x4a, 0x0c, 0xcd, 0xac, + 0x69, 0x98, 0xe2, 0x13, 0x4c, 0xb1, 0x69, 0xe9, 0xe1, 0xff, 0xaa, 0xed, 0x58, 0xd4, 0x42, 0xb9, + 0xd0, 0x54, 0xf9, 0x4e, 0xc0, 0x74, 0x62, 0x39, 0xa4, 0x66, 0x1a, 0x94, 0x38, 0xd8, 0x74, 0x7d, + 0xd2, 0xf2, 0x82, 0x6e, 0x59, 0xba, 0x49, 0x6a, 0xde, 0xe8, 0xf8, 0xfc, 0xb4, 0xa6, 0x9d, 0x3b, + 0x98, 0x1a, 0x56, 0x97, 0xaf, 0x2f, 0xc6, 0xd7, 0xa9, 0xd1, 0x21, 0x2e, 0xc5, 0x1d, 0xdb, 0x27, + 0x50, 0x5e, 0xc2, 0xcc, 0xba, 0x43, 0x30, 0x25, 0x0d, 0x4c, 0xb1, 0x4b, 0xa8, 0x4a, 0xde, 0x9e, + 0x13, 0x97, 0xa2, 0x2a, 0x64, 0x35, 0x7f, 0xa6, 0x24, 0x55, 0xa4, 0xe5, 0xdc, 0xca, 0x4c, 0x35, + 0x2c, 0xa8, 0xa0, 0x16, 0x44, 0xca, 0x2d, 0x98, 0x8d, 0xe1, 0xb8, 0xb6, 0xd5, 0x75, 0x89, 0xd2, + 0x84, 0xe9, 0x0d, 0x42, 0x63, 0xe8, 0x8f, 0xe3, 0xe8, 0x73, 0x49, 0xe8, 0xad, 0x46, 0x1f, 0xbf, + 0x01, 0x28, 0x0c, 0xe3, 0x83, 0x7f, 0xb0, 0x94, 0xbf, 0x4a, 0x1e, 0x4c, 0xdd, 0xa1, 0xc6, 0x29, + 0x3e, 0xb9, 0xbe, 0x38, 0xe8, 0x1e, 0xe4, 0x30, 0x07, 0x69, 0x1b, 0x5a, 0x29, 0x55, 0x91, 0x96, + 0xe5, 0xcd, 0x31, 0x15, 0xc4, 0x64, 0x4b, 0x43, 0xb7, 0x61, 0x92, 0x62, 0xbd, 0xdd, 0xc5, 0x1d, + 0x52, 0x4a, 0xf3, 0xf5, 0x2c, 0xc5, 0xfa, 0x0e, 0xee, 0x90, 0xb5, 0x02, 0x4c, 0xbd, 0x3d, 0x27, + 0x4e, 0xaf, 0xfd, 0x06, 0x77, 0x35, 0x93, 0x28, 0x9b, 0x70, 0x33, 0x22, 0x17, 0xd7, 0xef, 0xbf, + 0x30, 0x29, 0x10, 0xb9, 0x64, 0xb3, 0x11, 0xc9, 0x02, 0x86, 0x80, 0x4c, 0xf9, 0x42, 0x38, 0x22, + 0xae, 0xe4, 0x35, 0xb0, 0x4a, 0x30, 0x17, 0xc7, 0xe2, 0x5e, 0x5d, 0x85, 0x7c, 0x5d, 0xd3, 0x0e, + 0xb0, 0x2e, 0xd0, 0x15, 0x48, 0x53, 0xac, 0x73, 0xe0, 0x62, 0x04, 0x98, 0x51, 0xb1, 0x45, 0xa5, + 0x08, 0x05, 0xc1, 0xc4, 0x61, 0xfe, 0x90, 0x60, 0xe6, 0x95, 0xe1, 0x06, 0x8a, 0xbb, 0xd7, 0xf7, + 0xc8, 0x53, 0xc8, 0x9c, 0x1a, 0x26, 0x25, 0x8e, 0xe7, 0x8c, 0xdc, 0xca, 0xdd, 0x08, 0xc3, 0x4b, + 0x6f, 0xa9, 0x79, 0x61, 0x3b, 0xc4, 0x75, 0x0d, 0xab, 0xab, 0x72, 0x62, 0xf4, 0x29, 0x80, 0x8d, + 0x75, 0xa3, 0xeb, 0x05, 0x8d, 0xe7, 0xa7, 0xdc, 0xca, 0x42, 0x84, 0x75, 0x2f, 0x58, 0xde, 0xb5, + 0xd9, 0xd7, 0x55, 0x43, 0x1c, 0xca, 0x19, 0xcc, 0xc6, 0x14, 0xe0, 0xae, 0x5b, 0x05, 0x59, 0xd8, + 0xd1, 0x2d, 0x49, 0x95, 0xf4, 0x70, 0x7b, 0xf7, 0xe9, 0xd0, 0x5d, 0x80, 0x2e, 0xb9, 0xa0, 0x6d, + 0x6a, 0x9d, 0x91, 0xae, 0x7f, 0xaa, 0x54, 0x99, 0xcd, 0x1c, 0xb0, 0x09, 0xe5, 0x27, 0x09, 0x6e, + 0xb2, 0xdd, 0xb8, 0xfa, 0x81, 0xb5, 0xfa, 0xba, 0x4b, 0xd7, 0xd7, 0x3d, 0xf5, 0xc1, 0xba, 0xeb, + 0xbe, 0xf3, 0xfa, 0xd2, 0x70, 0xd5, 0x1f, 0xc3, 0x24, 0xf7, 0x8a, 0xd0, 0x3c, 0x39, 0x2c, 0x03, + 0xaa, 0xab, 0xf4, 0xfe, 0x4b, 0x82, 0xd9, 0x43, 0x5b, 0x4b, 0x38, 0xd4, 0x1f, 0x3d, 0x72, 0xd1, + 0x23, 0x18, 0x67, 0x50, 0xa5, 0x71, 0x4f, 0xb1, 0xf9, 0x44, 0x97, 0xb2, 0x6d, 0x55, 0x8f, 0x8c, + 0x45, 0x5d, 0x87, 0x50, 0xec, 0xb1, 0x4c, 0x24, 0x44, 0xdd, 0x36, 0x5f, 0x54, 0x03, 0xb2, 0x81, + 0xbb, 0xe1, 0x39, 0xcc, 0xc5, 0x95, 0xe7, 0x86, 0x5e, 0x8c, 0xea, 0x22, 0x79, 0x76, 0x0b, 0x69, + 0xa2, 0x60, 0xc8, 0xab, 0xc4, 0x25, 0xce, 0x3b, 0xcf, 0x61, 0xad, 0x06, 0x7a, 0x0a, 0xc0, 0x0d, + 0x21, 0x18, 0x86, 0x9b, 0x4c, 0xe6, 0x94, 0x2d, 0x0d, 0xcd, 0x87, 0x2c, 0xe2, 0x7b, 0x47, 0xd8, + 0x43, 0x79, 0x2f, 0xc1, 0xdd, 0x0d, 0x42, 0x77, 0x9d, 0xe6, 0x05, 0x25, 0x5d, 0x2d, 0xb4, 0x9d, + 0xf0, 0x51, 0x1d, 0x0a, 0x4e, 0x7f, 0xb6, 0xbf, 0x6f, 0x39, 0xb2, 0x6f, 0x44, 0x4e, 0x35, 0x1f, + 0xe2, 0xf0, 0xf7, 0xb7, 0xbe, 0xeb, 0x12, 0x27, 0xf0, 0x98, 0x9a, 0xf5, 0xc6, 0x2d, 0x0d, 0x6d, + 0x02, 0x7a, 0x43, 0xb0, 0x43, 0x8f, 0x09, 0xa6, 0x6d, 0xa3, 0x4b, 0x19, 0x97, 0xc9, 0x03, 0x79, + 0xbe, 0xea, 0xa7, 0xbf, 0xaa, 0x48, 0x7f, 0xd5, 0x06, 0x4f, 0x8f, 0xea, 0x74, 0xc0, 0xd4, 0xe2, + 0x3c, 0xca, 0xef, 0x29, 0xc8, 0x85, 0xa4, 0xf8, 0xa7, 0xc8, 0x8d, 0x9e, 0x03, 0x90, 0x0b, 0xdb, + 0x70, 0x88, 0xdb, 0xc6, 0xb4, 0x34, 0xce, 0x65, 0x8c, 0x23, 0x1c, 0x88, 0xc4, 0xaf, 0xca, 0x9c, + 0xba, 0x4e, 0x23, 0xa7, 0x33, 0x33, 0xd2, 0xe9, 0x54, 0xbe, 0x81, 0x85, 0x61, 0xee, 0xe6, 0xa7, + 0xf2, 0x05, 0xe4, 0x42, 0x56, 0xe0, 0x46, 0x2b, 0x0d, 0x33, 0x9a, 0x1a, 0x26, 0x56, 0x7a, 0x30, + 0xaf, 0x12, 0x93, 0x60, 0x97, 0x7c, 0xec, 0x83, 0xa4, 0xdc, 0x81, 0x72, 0xd2, 0xd6, 0x3c, 0x53, + 0xfd, 0x28, 0x41, 0x96, 0x87, 0x06, 0x5a, 0x82, 0xd4, 0x95, 0xc1, 0x93, 0x32, 0xb4, 0x88, 0x75, + 0x53, 0x23, 0x59, 0x17, 0x3d, 0x80, 0xbc, 0xcd, 0xe2, 0x97, 0xed, 0xbd, 0x45, 0x7a, 0x6e, 0x29, + 0x5d, 0x49, 0x2f, 0xcb, 0x6a, 0x74, 0x52, 0x59, 0x05, 0x79, 0x4f, 0x4c, 0xa0, 0x22, 0xa4, 0xcf, + 0x48, 0x8f, 0x07, 0x3f, 0xfb, 0x45, 0x33, 0x30, 0xf1, 0x0e, 0x9b, 0xe7, 0x22, 0x54, 0xfd, 0x81, + 0xf2, 0xb3, 0x04, 0x72, 0x20, 0x1f, 0x2a, 0x41, 0xd6, 0x76, 0xac, 0x6f, 0x09, 0x2f, 0x06, 0x64, + 0x55, 0x0c, 0x11, 0x82, 0xf1, 0x50, 0x9c, 0x7b, 0xff, 0x68, 0x0e, 0x32, 0x9a, 0xd5, 0xc1, 0x86, + 0x9f, 0x21, 0x65, 0x95, 0x8f, 0x18, 0xca, 0x3b, 0xe2, 0xb0, 0xa4, 0xe2, 0x9d, 0x3b, 0x59, 0x15, + 0x43, 0x86, 0x72, 0x78, 0xd8, 0x6a, 0x78, 0x77, 0x9e, 0xac, 0x7a, 0xff, 0x4c, 0x52, 0xcb, 0xd1, + 0xbd, 0x83, 0x26, 0xab, 0xec, 0x57, 0x79, 0x9f, 0x82, 0x49, 0x71, 0xab, 0xa1, 0x42, 0x60, 0x56, + 0xd9, 0x33, 0x5f, 0xe8, 0x6e, 0x4f, 0x8d, 0x76, 0xb7, 0x8b, 0xbb, 0x39, 0xfd, 0xe1, 0x77, 0xf3, + 0xf8, 0x68, 0xfe, 0x79, 0xc6, 0x52, 0x26, 0xb7, 0xbc, 0x5b, 0x9a, 0xf0, 0xf6, 0x99, 0x8b, 0xa5, + 0x4c, 0xbe, 0xac, 0x86, 0x28, 0xd1, 0x03, 0x18, 0xa7, 0x58, 0x77, 0x4b, 0x19, 0x8f, 0x63, 0xb0, + 0x3e, 0xf2, 0x56, 0x59, 0x24, 0x9f, 0x78, 0xf5, 0x96, 0xc6, 0x22, 0x39, 0x7b, 0x75, 0x24, 0x73, + 0xea, 0x3a, 0x55, 0xf6, 0x60, 0x2a, 0xac, 0x61, 0xe0, 0x45, 0x29, 0xe4, 0xc5, 0xff, 0x84, 0xcf, + 0x05, 0x93, 0x5b, 0xb4, 0x16, 0x55, 0xd6, 0x5a, 0x54, 0x5f, 0xf9, 0xad, 0x85, 0x38, 0x2f, 0x26, + 0xa4, 0x0f, 0xb0, 0x9e, 0x08, 0xb4, 0x98, 0x90, 0x43, 0x23, 0x19, 0x34, 0xe4, 0xba, 0xf4, 0x68, + 0xf5, 0xfd, 0xf7, 0x12, 0x4c, 0x0a, 0x7b, 0xa3, 0x17, 0x90, 0x3d, 0x23, 0xbd, 0x76, 0x07, 0xdb, + 0xbc, 0x7e, 0xb8, 0x97, 0xe8, 0x97, 0xea, 0x16, 0xe9, 0x6d, 0x63, 0xbb, 0xd9, 0xa5, 0x4e, 0x4f, + 0xcd, 0x9c, 0x79, 0x83, 0xf2, 0x73, 0xc8, 0x85, 0xa6, 0x47, 0x8d, 0x8e, 0x17, 0xa9, 0xff, 0x49, + 0xca, 0x2e, 0x14, 0xe3, 0xb5, 0x12, 0xfa, 0x3f, 0x64, 0xfd, 0x6a, 0xc9, 0x4d, 0x14, 0x65, 0xdf, + 0xe8, 0xea, 0x26, 0xd9, 0x73, 0x2c, 0x9b, 0x38, 0xb4, 0xe7, 0x73, 0xab, 0x82, 0x43, 0xf9, 0x33, + 0x0d, 0x33, 0x49, 0x14, 0xe8, 0x33, 0x00, 0x96, 0x4f, 0x23, 0x45, 0xdb, 0x42, 0xfc, 0x50, 0x44, + 0x79, 0x36, 0xc7, 0x54, 0x99, 0x62, 0x9d, 0x03, 0xbc, 0x86, 0x62, 0x70, 0xba, 0xda, 0x91, 0xba, + 0xf7, 0x41, 0xf2, 0x69, 0x1c, 0x00, 0xbb, 0x11, 0xf0, 0x73, 0xc8, 0x1d, 0xb8, 0x11, 0x38, 0x95, + 0x23, 0xfa, 0xbe, 0xbb, 0x9f, 0x18, 0x47, 0x03, 0x80, 0x05, 0xc1, 0xcd, 0xf1, 0xb6, 0xa0, 0x20, + 0x4a, 0x0d, 0x0e, 0xe7, 0xc7, 0x98, 0x92, 0x74, 0x14, 0x06, 0xd0, 0xf2, 0x9c, 0x97, 0x83, 0xed, + 0xc1, 0x24, 0x23, 0xc0, 0xd4, 0x72, 0x4a, 0x50, 0x91, 0x96, 0x0b, 0x2b, 0x4f, 0xae, 0xf4, 0x43, + 0x75, 0xdd, 0xea, 0xd8, 0xd8, 0x31, 0x5c, 0x56, 0xbd, 0xfa, 0xbc, 0x6a, 0x80, 0xa2, 0x54, 0x00, + 0x0d, 0xae, 0x23, 0x80, 0x4c, 0xf3, 0xf5, 0x61, 0xfd, 0xd5, 0x7e, 0x71, 0x6c, 0x6d, 0x1a, 0x6e, + 0xd8, 0x1c, 0x90, 0x6b, 0xa0, 0x6c, 0xc0, 0x5c, 0xb2, 0xfe, 0xf1, 0xb2, 0x52, 0x1a, 0x2c, 0x2b, + 0xd7, 0x00, 0x26, 0x05, 0x9e, 0xf2, 0x09, 0x4c, 0x0f, 0x78, 0x38, 0x52, 0x77, 0x4a, 0xf1, 0x8e, + 0x31, 0xcc, 0xfd, 0x35, 0xdc, 0x1a, 0xe2, 0x58, 0xf4, 0xc4, 0x0f, 0x1d, 0x56, 0x4b, 0x48, 0xbc, + 0x96, 0x08, 0xdb, 0x69, 0x8b, 0xf4, 0x8e, 0xd8, 0x79, 0xdf, 0xc3, 0x06, 0xb3, 0x32, 0x0b, 0x9a, + 0x23, 0x6c, 0x46, 0xc0, 0x9f, 0xc1, 0x54, 0x98, 0x6a, 0xe4, 0xfc, 0xf2, 0x9b, 0x04, 0xb3, 0x89, + 0xde, 0x44, 0xe5, 0x58, 0xae, 0x61, 0x6a, 0x89, 0x6c, 0x33, 0x13, 0xce, 0x36, 0x9b, 0x63, 0xfc, + 0x82, 0x29, 0x45, 0xf3, 0x0d, 0x93, 0x94, 0x67, 0x9c, 0x72, 0x2c, 0xe3, 0x30, 0xac, 0x7e, 0xce, + 0xf1, 0xf2, 0xcb, 0x04, 0x9f, 0x67, 0x83, 0x88, 0x66, 0xbf, 0xa4, 0x60, 0x7a, 0xa0, 0xa3, 0x61, + 0xda, 0x98, 0x46, 0xc7, 0xf0, 0x65, 0xcb, 0xab, 0xfe, 0x80, 0xcd, 0x86, 0x9b, 0x11, 0x7f, 0x80, + 0x3e, 0x87, 0xac, 0x6b, 0x39, 0x74, 0x8b, 0xf4, 0x3c, 0xc1, 0x0a, 0x2b, 0x4b, 0x97, 0xb7, 0x4b, + 0xd5, 0x7d, 0x9f, 0x5a, 0x15, 0x6c, 0xe8, 0x25, 0xc8, 0xec, 0x77, 0xd7, 0xd1, 0x78, 0x40, 0x14, + 0x56, 0x96, 0x47, 0xc0, 0xf0, 0xe8, 0xd5, 0x3e, 0xab, 0xf2, 0x10, 0xe4, 0x60, 0x1e, 0x15, 0x00, + 0x1a, 0xcd, 0xfd, 0xf5, 0xe6, 0x4e, 0xa3, 0xb5, 0xb3, 0x51, 0x1c, 0x43, 0x79, 0x90, 0xeb, 0xc1, + 0x50, 0x52, 0xee, 0x40, 0x96, 0xcb, 0x81, 0xa6, 0x21, 0xbf, 0xae, 0x36, 0xeb, 0x07, 0xad, 0xdd, + 0x9d, 0xf6, 0x41, 0x6b, 0xbb, 0x59, 0x1c, 0x5b, 0xf9, 0x21, 0x0b, 0x39, 0xe6, 0xb7, 0x75, 0x5f, + 0x00, 0x74, 0x04, 0xf9, 0xc8, 0x4b, 0x0e, 0x8a, 0xde, 0x78, 0x49, 0xaf, 0x45, 0x65, 0xe5, 0x32, + 0x12, 0x5e, 0x16, 0x6e, 0x03, 0xf4, 0x5f, 0x70, 0x50, 0xf4, 0xb6, 0x1b, 0x78, 0x21, 0x2a, 0x2f, + 0x0e, 0x5d, 0xe7, 0x70, 0x5f, 0x42, 0x21, 0xfa, 0x36, 0x81, 0x92, 0x84, 0x88, 0xf5, 0x8b, 0xe5, + 0xfb, 0x97, 0xd2, 0x70, 0xe8, 0x3d, 0xc8, 0x85, 0x1e, 0x63, 0xd0, 0x80, 0x28, 0x71, 0xd0, 0xca, + 0x70, 0x02, 0x8e, 0x58, 0x87, 0x8c, 0xff, 0xf2, 0x81, 0xa2, 0xb5, 0x6a, 0xe4, 0x0d, 0xa5, 0x7c, + 0x3b, 0x71, 0x8d, 0x43, 0x1c, 0x41, 0x3e, 0xf2, 0xd0, 0x10, 0x73, 0x4b, 0xd2, 0x2b, 0x4a, 0xcc, + 0x2d, 0xc9, 0xef, 0x14, 0xfb, 0x30, 0x15, 0x6e, 0xe2, 0x51, 0x65, 0x80, 0x27, 0xf6, 0xda, 0x50, + 0xbe, 0x77, 0x09, 0x45, 0xdf, 0x39, 0xd1, 0x96, 0x35, 0xe6, 0x9c, 0xc4, 0x66, 0x3e, 0xe6, 0x9c, + 0x21, 0x3d, 0xef, 0x5b, 0x98, 0x4b, 0xee, 0x3f, 0xd0, 0xc3, 0xb8, 0x1b, 0x86, 0xf7, 0xa4, 0xe5, + 0x7f, 0x8f, 0x44, 0xcb, 0xb7, 0x24, 0x80, 0x06, 0x3b, 0x03, 0xb4, 0x14, 0xeb, 0x3a, 0x86, 0x74, + 0x2d, 0xe5, 0x7f, 0x5d, 0x49, 0xe7, 0x6f, 0xb3, 0xb6, 0xfe, 0x55, 0x5d, 0x37, 0xe8, 0x9b, 0xf3, + 0xe3, 0xea, 0x89, 0xd5, 0xa9, 0x79, 0xb5, 0x99, 0xe5, 0xe8, 0xfe, 0x4f, 0x2d, 0x78, 0x05, 0xd6, + 0x49, 0xb7, 0x66, 0x1f, 0x3f, 0xd2, 0xad, 0x5a, 0xd2, 0x6b, 0xf2, 0x71, 0xc6, 0x2b, 0x13, 0x57, + 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xc0, 0xa3, 0x08, 0x6c, 0x16, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-java/datacatalog/Datacatalog.java b/flyteidl/gen/pb-java/datacatalog/Datacatalog.java index 4e9f320ca7..4d0c9894e9 100644 --- a/flyteidl/gen/pb-java/datacatalog/Datacatalog.java +++ b/flyteidl/gen/pb-java/datacatalog/Datacatalog.java @@ -31567,21 +31567,21 @@ public interface DatasetPropertyFilterOrBuilder extends /** *
-     * Optional, partition key applied to the dataset.
+     * Optional, org key applied to the dataset.
      * 
* - * string partition = 5; + * string org = 5; */ - java.lang.String getPartition(); + java.lang.String getOrg(); /** *
-     * Optional, partition key applied to the dataset.
+     * Optional, org key applied to the dataset.
      * 
* - * string partition = 5; + * string org = 5; */ com.google.protobuf.ByteString - getPartitionBytes(); + getOrgBytes(); public datacatalog.Datacatalog.DatasetPropertyFilter.PropertyCase getPropertyCase(); } @@ -31698,7 +31698,7 @@ public enum PropertyCase NAME(2), DOMAIN(3), VERSION(4), - PARTITION(5), + ORG(5), PROPERTY_NOT_SET(0); private final int value; private PropertyCase(int value) { @@ -31718,7 +31718,7 @@ public static PropertyCase forNumber(int value) { case 2: return NAME; case 3: return DOMAIN; case 4: return VERSION; - case 5: return PARTITION; + case 5: return ORG; case 0: return PROPERTY_NOT_SET; default: return null; } @@ -31906,15 +31906,15 @@ public java.lang.String getVersion() { } } - public static final int PARTITION_FIELD_NUMBER = 5; + public static final int ORG_FIELD_NUMBER = 5; /** *
-     * Optional, partition key applied to the dataset.
+     * Optional, org key applied to the dataset.
      * 
* - * string partition = 5; + * string org = 5; */ - public java.lang.String getPartition() { + public java.lang.String getOrg() { java.lang.Object ref = ""; if (propertyCase_ == 5) { ref = property_; @@ -31933,13 +31933,13 @@ public java.lang.String getPartition() { } /** *
-     * Optional, partition key applied to the dataset.
+     * Optional, org key applied to the dataset.
      * 
* - * string partition = 5; + * string org = 5; */ public com.google.protobuf.ByteString - getPartitionBytes() { + getOrgBytes() { java.lang.Object ref = ""; if (propertyCase_ == 5) { ref = property_; @@ -32044,8 +32044,8 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getVersion())) return false; break; case 5: - if (!getPartition() - .equals(other.getPartition())) return false; + if (!getOrg() + .equals(other.getOrg())) return false; break; case 0: default: @@ -32079,8 +32079,8 @@ public int hashCode() { hash = (53 * hash) + getVersion().hashCode(); break; case 5: - hash = (37 * hash) + PARTITION_FIELD_NUMBER; - hash = (53 * hash) + getPartition().hashCode(); + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); break; case 0: default: @@ -32339,7 +32339,7 @@ public Builder mergeFrom(datacatalog.Datacatalog.DatasetPropertyFilter other) { onChanged(); break; } - case PARTITION: { + case ORG: { propertyCase_ = 5; property_ = other.property_; onChanged(); @@ -32715,12 +32715,12 @@ public Builder setVersionBytes( /** *
-       * Optional, partition key applied to the dataset.
+       * Optional, org key applied to the dataset.
        * 
* - * string partition = 5; + * string org = 5; */ - public java.lang.String getPartition() { + public java.lang.String getOrg() { java.lang.Object ref = ""; if (propertyCase_ == 5) { ref = property_; @@ -32739,13 +32739,13 @@ public java.lang.String getPartition() { } /** *
-       * Optional, partition key applied to the dataset.
+       * Optional, org key applied to the dataset.
        * 
* - * string partition = 5; + * string org = 5; */ public com.google.protobuf.ByteString - getPartitionBytes() { + getOrgBytes() { java.lang.Object ref = ""; if (propertyCase_ == 5) { ref = property_; @@ -32764,12 +32764,12 @@ public java.lang.String getPartition() { } /** *
-       * Optional, partition key applied to the dataset.
+       * Optional, org key applied to the dataset.
        * 
* - * string partition = 5; + * string org = 5; */ - public Builder setPartition( + public Builder setOrg( java.lang.String value) { if (value == null) { throw new NullPointerException(); @@ -32781,12 +32781,12 @@ public Builder setPartition( } /** *
-       * Optional, partition key applied to the dataset.
+       * Optional, org key applied to the dataset.
        * 
* - * string partition = 5; + * string org = 5; */ - public Builder clearPartition() { + public Builder clearOrg() { if (propertyCase_ == 5) { propertyCase_ = 0; property_ = null; @@ -32796,12 +32796,12 @@ public Builder clearPartition() { } /** *
-       * Optional, partition key applied to the dataset.
+       * Optional, org key applied to the dataset.
        * 
* - * string partition = 5; + * string org = 5; */ - public Builder setPartitionBytes( + public Builder setOrgBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); @@ -34275,41 +34275,41 @@ public datacatalog.Datacatalog.PaginationOptions getDefaultInstanceForType() { "ag_name\030\001 \001(\tH\000B\n\n\010property\"S\n\027Partition" + "PropertyFilter\022,\n\007key_val\030\001 \001(\0132\031.dataca" + "talog.KeyValuePairH\000B\n\n\010property\"*\n\014KeyV" + - "aluePair\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\200\001\n" + - "\025DatasetPropertyFilter\022\021\n\007project\030\001 \001(\tH" + - "\000\022\016\n\004name\030\002 \001(\tH\000\022\020\n\006domain\030\003 \001(\tH\000\022\021\n\007v" + - "ersion\030\004 \001(\tH\000\022\023\n\tpartition\030\005 \001(\tH\000B\n\n\010p" + - "roperty\"\361\001\n\021PaginationOptions\022\r\n\005limit\030\001" + - " \001(\r\022\r\n\005token\030\002 \001(\t\0227\n\007sortKey\030\003 \001(\0162&.d" + - "atacatalog.PaginationOptions.SortKey\022;\n\t" + - "sortOrder\030\004 \001(\0162(.datacatalog.Pagination" + - "Options.SortOrder\"*\n\tSortOrder\022\016\n\nDESCEN" + - "DING\020\000\022\r\n\tASCENDING\020\001\"\034\n\007SortKey\022\021\n\rCREA" + - "TION_TIME\020\0002\206\007\n\013DataCatalog\022V\n\rCreateDat" + - "aset\022!.datacatalog.CreateDatasetRequest\032" + - "\".datacatalog.CreateDatasetResponse\022M\n\nG" + - "etDataset\022\036.datacatalog.GetDatasetReques" + - "t\032\037.datacatalog.GetDatasetResponse\022Y\n\016Cr" + - "eateArtifact\022\".datacatalog.CreateArtifac" + - "tRequest\032#.datacatalog.CreateArtifactRes" + - "ponse\022P\n\013GetArtifact\022\037.datacatalog.GetAr" + - "tifactRequest\032 .datacatalog.GetArtifactR" + - "esponse\022A\n\006AddTag\022\032.datacatalog.AddTagRe" + - "quest\032\033.datacatalog.AddTagResponse\022V\n\rLi" + - "stArtifacts\022!.datacatalog.ListArtifactsR" + - "equest\032\".datacatalog.ListArtifactsRespon" + - "se\022S\n\014ListDatasets\022 .datacatalog.ListDat" + - "asetsRequest\032!.datacatalog.ListDatasetsR" + - "esponse\022Y\n\016UpdateArtifact\022\".datacatalog." + - "UpdateArtifactRequest\032#.datacatalog.Upda" + - "teArtifactResponse\022q\n\026GetOrExtendReserva" + - "tion\022*.datacatalog.GetOrExtendReservatio" + - "nRequest\032+.datacatalog.GetOrExtendReserv" + - "ationResponse\022e\n\022ReleaseReservation\022&.da" + - "tacatalog.ReleaseReservationRequest\032\'.da" + - "tacatalog.ReleaseReservationResponseBCZA" + - "github.com/flyteorg/flyte/flyteidl/gen/p" + - "b-go/flyteidl/datacatalogb\006proto3" + "aluePair\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"z\n\025" + + "DatasetPropertyFilter\022\021\n\007project\030\001 \001(\tH\000" + + "\022\016\n\004name\030\002 \001(\tH\000\022\020\n\006domain\030\003 \001(\tH\000\022\021\n\007ve" + + "rsion\030\004 \001(\tH\000\022\r\n\003org\030\005 \001(\tH\000B\n\n\010property" + + "\"\361\001\n\021PaginationOptions\022\r\n\005limit\030\001 \001(\r\022\r\n" + + "\005token\030\002 \001(\t\0227\n\007sortKey\030\003 \001(\0162&.datacata" + + "log.PaginationOptions.SortKey\022;\n\tsortOrd" + + "er\030\004 \001(\0162(.datacatalog.PaginationOptions" + + ".SortOrder\"*\n\tSortOrder\022\016\n\nDESCENDING\020\000\022" + + "\r\n\tASCENDING\020\001\"\034\n\007SortKey\022\021\n\rCREATION_TI" + + "ME\020\0002\206\007\n\013DataCatalog\022V\n\rCreateDataset\022!." + + "datacatalog.CreateDatasetRequest\032\".datac" + + "atalog.CreateDatasetResponse\022M\n\nGetDatas" + + "et\022\036.datacatalog.GetDatasetRequest\032\037.dat" + + "acatalog.GetDatasetResponse\022Y\n\016CreateArt" + + "ifact\022\".datacatalog.CreateArtifactReques" + + "t\032#.datacatalog.CreateArtifactResponse\022P" + + "\n\013GetArtifact\022\037.datacatalog.GetArtifactR" + + "equest\032 .datacatalog.GetArtifactResponse" + + "\022A\n\006AddTag\022\032.datacatalog.AddTagRequest\032\033" + + ".datacatalog.AddTagResponse\022V\n\rListArtif" + + "acts\022!.datacatalog.ListArtifactsRequest\032" + + "\".datacatalog.ListArtifactsResponse\022S\n\014L" + + "istDatasets\022 .datacatalog.ListDatasetsRe" + + "quest\032!.datacatalog.ListDatasetsResponse" + + "\022Y\n\016UpdateArtifact\022\".datacatalog.UpdateA" + + "rtifactRequest\032#.datacatalog.UpdateArtif" + + "actResponse\022q\n\026GetOrExtendReservation\022*." + + "datacatalog.GetOrExtendReservationReques" + + "t\032+.datacatalog.GetOrExtendReservationRe" + + "sponse\022e\n\022ReleaseReservation\022&.datacatal" + + "og.ReleaseReservationRequest\032\'.datacatal" + + "og.ReleaseReservationResponseBCZAgithub." + + "com/flyteorg/flyte/flyteidl/gen/pb-go/fl" + + "yteidl/datacatalogb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -34547,7 +34547,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_datacatalog_DatasetPropertyFilter_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_datacatalog_DatasetPropertyFilter_descriptor, - new java.lang.String[] { "Project", "Name", "Domain", "Version", "Partition", "Property", }); + new java.lang.String[] { "Project", "Name", "Domain", "Version", "Org", "Property", }); internal_static_datacatalog_PaginationOptions_descriptor = getDescriptor().getMessageTypes().get(36); internal_static_datacatalog_PaginationOptions_fieldAccessorTable = new diff --git a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py index 3bc6d60a00..c5699b3c85 100644 --- a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.py @@ -16,7 +16,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&flyteidl/datacatalog/datacatalog.proto\x12\x0b\x64\x61tacatalog\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"F\n\x14\x43reateDatasetRequest\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x17\n\x15\x43reateDatasetResponse\"E\n\x11GetDatasetRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"D\n\x12GetDatasetResponse\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x96\x01\n\x12GetArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagNameB\x0e\n\x0cquery_handle\"H\n\x13GetArtifactResponse\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"J\n\x15\x43reateArtifactRequest\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"\x18\n\x16\x43reateArtifactResponse\"3\n\rAddTagRequest\x12\"\n\x03tag\x18\x01 \x01(\x0b\x32\x10.datacatalog.TagR\x03tag\"\x10\n\x0e\x41\x64\x64TagResponse\"\xbf\x01\n\x14ListArtifactsRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12\x35\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x03 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"k\n\x15ListArtifactsResponse\x12\x33\n\tartifacts\x18\x01 \x03(\x0b\x32\x15.datacatalog.ArtifactR\tartifacts\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\x8c\x01\n\x13ListDatasetsRequest\x12\x35\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x02 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"g\n\x14ListDatasetsResponse\x12\x30\n\x08\x64\x61tasets\x18\x01 \x03(\x0b\x32\x14.datacatalog.DatasetR\x08\x64\x61tasets\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\xfb\x01\n\x15UpdateArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagName\x12-\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x05 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadataB\x0e\n\x0cquery_handle\"9\n\x16UpdateArtifactResponse\x12\x1f\n\x0b\x61rtifact_id\x18\x01 \x01(\tR\nartifactId\"a\n\rReservationID\x12\x35\n\ndataset_id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\tdatasetId\x12\x19\n\x08tag_name\x18\x02 \x01(\tR\x07tagName\"\xc7\x01\n\x1dGetOrExtendReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\"\xa3\x02\n\x0bReservation\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\x12\x39\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12\x31\n\x08metadata\x18\x06 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\"\\\n\x1eGetOrExtendReservationResponse\x12:\n\x0breservation\x18\x01 \x01(\x0b\x32\x18.datacatalog.ReservationR\x0breservation\"y\n\x19ReleaseReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\"\x1c\n\x1aReleaseReservationResponse\"\x8a\x01\n\x07\x44\x61taset\x12&\n\x02id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x02id\x12\x31\n\x08metadata\x18\x02 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12$\n\rpartitionKeys\x18\x03 \x03(\tR\rpartitionKeys\"3\n\tPartition\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\x91\x01\n\tDatasetID\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\x12\x12\n\x04UUID\x18\x05 \x01(\tR\x04UUID\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"\xc7\x02\n\x08\x41rtifact\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x30\n\x07\x64\x61taset\x18\x02 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12-\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x04 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12\x36\n\npartitions\x18\x05 \x03(\x0b\x32\x16.datacatalog.PartitionR\npartitions\x12$\n\x04tags\x18\x06 \x03(\x0b\x32\x10.datacatalog.TagR\x04tags\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\"P\n\x0c\x41rtifactData\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value\"l\n\x03Tag\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0b\x61rtifact_id\x18\x02 \x01(\tR\nartifactId\x12\x30\n\x07\x64\x61taset\x18\x03 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"\x81\x01\n\x08Metadata\x12:\n\x07key_map\x18\x01 \x03(\x0b\x32!.datacatalog.Metadata.KeyMapEntryR\x06keyMap\x1a\x39\n\x0bKeyMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"O\n\x10\x46ilterExpression\x12;\n\x07\x66ilters\x18\x01 \x03(\x0b\x32!.datacatalog.SinglePropertyFilterR\x07\x66ilters\"\xce\x03\n\x14SinglePropertyFilter\x12?\n\ntag_filter\x18\x01 \x01(\x0b\x32\x1e.datacatalog.TagPropertyFilterH\x00R\ttagFilter\x12Q\n\x10partition_filter\x18\x02 \x01(\x0b\x32$.datacatalog.PartitionPropertyFilterH\x00R\x0fpartitionFilter\x12N\n\x0f\x61rtifact_filter\x18\x03 \x01(\x0b\x32#.datacatalog.ArtifactPropertyFilterH\x00R\x0e\x61rtifactFilter\x12K\n\x0e\x64\x61taset_filter\x18\x04 \x01(\x0b\x32\".datacatalog.DatasetPropertyFilterH\x00R\rdatasetFilter\x12P\n\x08operator\x18\n \x01(\x0e\x32\x34.datacatalog.SinglePropertyFilter.ComparisonOperatorR\x08operator\" \n\x12\x43omparisonOperator\x12\n\n\x06\x45QUALS\x10\x00\x42\x11\n\x0fproperty_filter\"G\n\x16\x41rtifactPropertyFilter\x12!\n\x0b\x61rtifact_id\x18\x01 \x01(\tH\x00R\nartifactIdB\n\n\x08property\"<\n\x11TagPropertyFilter\x12\x1b\n\x08tag_name\x18\x01 \x01(\tH\x00R\x07tagNameB\n\n\x08property\"[\n\x17PartitionPropertyFilter\x12\x34\n\x07key_val\x18\x01 \x01(\x0b\x32\x19.datacatalog.KeyValuePairH\x00R\x06keyValB\n\n\x08property\"6\n\x0cKeyValuePair\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\xab\x01\n\x15\x44\x61tasetPropertyFilter\x12\x1a\n\x07project\x18\x01 \x01(\tH\x00R\x07project\x12\x14\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x12\x18\n\x06\x64omain\x18\x03 \x01(\tH\x00R\x06\x64omain\x12\x1a\n\x07version\x18\x04 \x01(\tH\x00R\x07version\x12\x1e\n\tpartition\x18\x05 \x01(\tH\x00R\tpartitionB\n\n\x08property\"\x93\x02\n\x11PaginationOptions\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12@\n\x07sortKey\x18\x03 \x01(\x0e\x32&.datacatalog.PaginationOptions.SortKeyR\x07sortKey\x12\x46\n\tsortOrder\x18\x04 \x01(\x0e\x32(.datacatalog.PaginationOptions.SortOrderR\tsortOrder\"*\n\tSortOrder\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\x1c\n\x07SortKey\x12\x11\n\rCREATION_TIME\x10\x00\x32\x86\x07\n\x0b\x44\x61taCatalog\x12V\n\rCreateDataset\x12!.datacatalog.CreateDatasetRequest\x1a\".datacatalog.CreateDatasetResponse\x12M\n\nGetDataset\x12\x1e.datacatalog.GetDatasetRequest\x1a\x1f.datacatalog.GetDatasetResponse\x12Y\n\x0e\x43reateArtifact\x12\".datacatalog.CreateArtifactRequest\x1a#.datacatalog.CreateArtifactResponse\x12P\n\x0bGetArtifact\x12\x1f.datacatalog.GetArtifactRequest\x1a .datacatalog.GetArtifactResponse\x12\x41\n\x06\x41\x64\x64Tag\x12\x1a.datacatalog.AddTagRequest\x1a\x1b.datacatalog.AddTagResponse\x12V\n\rListArtifacts\x12!.datacatalog.ListArtifactsRequest\x1a\".datacatalog.ListArtifactsResponse\x12S\n\x0cListDatasets\x12 .datacatalog.ListDatasetsRequest\x1a!.datacatalog.ListDatasetsResponse\x12Y\n\x0eUpdateArtifact\x12\".datacatalog.UpdateArtifactRequest\x1a#.datacatalog.UpdateArtifactResponse\x12q\n\x16GetOrExtendReservation\x12*.datacatalog.GetOrExtendReservationRequest\x1a+.datacatalog.GetOrExtendReservationResponse\x12\x65\n\x12ReleaseReservation\x12&.datacatalog.ReleaseReservationRequest\x1a\'.datacatalog.ReleaseReservationResponseB\xb2\x01\n\x0f\x63om.datacatalogB\x10\x44\x61tacatalogProtoP\x01ZAgithub.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/datacatalog\xa2\x02\x03\x44XX\xaa\x02\x0b\x44\x61tacatalog\xca\x02\x0b\x44\x61tacatalog\xe2\x02\x17\x44\x61tacatalog\\GPBMetadata\xea\x02\x0b\x44\x61tacatalogb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&flyteidl/datacatalog/datacatalog.proto\x12\x0b\x64\x61tacatalog\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"F\n\x14\x43reateDatasetRequest\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x17\n\x15\x43reateDatasetResponse\"E\n\x11GetDatasetRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"D\n\x12GetDatasetResponse\x12.\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x14.datacatalog.DatasetR\x07\x64\x61taset\"\x96\x01\n\x12GetArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagNameB\x0e\n\x0cquery_handle\"H\n\x13GetArtifactResponse\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"J\n\x15\x43reateArtifactRequest\x12\x31\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\x15.datacatalog.ArtifactR\x08\x61rtifact\"\x18\n\x16\x43reateArtifactResponse\"3\n\rAddTagRequest\x12\"\n\x03tag\x18\x01 \x01(\x0b\x32\x10.datacatalog.TagR\x03tag\"\x10\n\x0e\x41\x64\x64TagResponse\"\xbf\x01\n\x14ListArtifactsRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12\x35\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x03 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"k\n\x15ListArtifactsResponse\x12\x33\n\tartifacts\x18\x01 \x03(\x0b\x32\x15.datacatalog.ArtifactR\tartifacts\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\x8c\x01\n\x13ListDatasetsRequest\x12\x35\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x1d.datacatalog.FilterExpressionR\x06\x66ilter\x12>\n\npagination\x18\x02 \x01(\x0b\x32\x1e.datacatalog.PaginationOptionsR\npagination\"g\n\x14ListDatasetsResponse\x12\x30\n\x08\x64\x61tasets\x18\x01 \x03(\x0b\x32\x14.datacatalog.DatasetR\x08\x64\x61tasets\x12\x1d\n\nnext_token\x18\x02 \x01(\tR\tnextToken\"\xfb\x01\n\x15UpdateArtifactRequest\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12!\n\x0b\x61rtifact_id\x18\x02 \x01(\tH\x00R\nartifactId\x12\x1b\n\x08tag_name\x18\x03 \x01(\tH\x00R\x07tagName\x12-\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x05 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadataB\x0e\n\x0cquery_handle\"9\n\x16UpdateArtifactResponse\x12\x1f\n\x0b\x61rtifact_id\x18\x01 \x01(\tR\nartifactId\"a\n\rReservationID\x12\x35\n\ndataset_id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\tdatasetId\x12\x19\n\x08tag_name\x18\x02 \x01(\tR\x07tagName\"\xc7\x01\n\x1dGetOrExtendReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\"\xa3\x02\n\x0bReservation\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\x12\x39\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12\x31\n\x08metadata\x18\x06 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\"\\\n\x1eGetOrExtendReservationResponse\x12:\n\x0breservation\x18\x01 \x01(\x0b\x32\x18.datacatalog.ReservationR\x0breservation\"y\n\x19ReleaseReservationRequest\x12\x41\n\x0ereservation_id\x18\x01 \x01(\x0b\x32\x1a.datacatalog.ReservationIDR\rreservationId\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\"\x1c\n\x1aReleaseReservationResponse\"\x8a\x01\n\x07\x44\x61taset\x12&\n\x02id\x18\x01 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x02id\x12\x31\n\x08metadata\x18\x02 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12$\n\rpartitionKeys\x18\x03 \x03(\tR\rpartitionKeys\"3\n\tPartition\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\x91\x01\n\tDatasetID\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\x12\x12\n\x04UUID\x18\x05 \x01(\tR\x04UUID\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"\xc7\x02\n\x08\x41rtifact\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x30\n\x07\x64\x61taset\x18\x02 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\x12-\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\x19.datacatalog.ArtifactDataR\x04\x64\x61ta\x12\x31\n\x08metadata\x18\x04 \x01(\x0b\x32\x15.datacatalog.MetadataR\x08metadata\x12\x36\n\npartitions\x18\x05 \x03(\x0b\x32\x16.datacatalog.PartitionR\npartitions\x12$\n\x04tags\x18\x06 \x03(\x0b\x32\x10.datacatalog.TagR\x04tags\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\"P\n\x0c\x41rtifactData\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value\"l\n\x03Tag\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0b\x61rtifact_id\x18\x02 \x01(\tR\nartifactId\x12\x30\n\x07\x64\x61taset\x18\x03 \x01(\x0b\x32\x16.datacatalog.DatasetIDR\x07\x64\x61taset\"\x81\x01\n\x08Metadata\x12:\n\x07key_map\x18\x01 \x03(\x0b\x32!.datacatalog.Metadata.KeyMapEntryR\x06keyMap\x1a\x39\n\x0bKeyMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"O\n\x10\x46ilterExpression\x12;\n\x07\x66ilters\x18\x01 \x03(\x0b\x32!.datacatalog.SinglePropertyFilterR\x07\x66ilters\"\xce\x03\n\x14SinglePropertyFilter\x12?\n\ntag_filter\x18\x01 \x01(\x0b\x32\x1e.datacatalog.TagPropertyFilterH\x00R\ttagFilter\x12Q\n\x10partition_filter\x18\x02 \x01(\x0b\x32$.datacatalog.PartitionPropertyFilterH\x00R\x0fpartitionFilter\x12N\n\x0f\x61rtifact_filter\x18\x03 \x01(\x0b\x32#.datacatalog.ArtifactPropertyFilterH\x00R\x0e\x61rtifactFilter\x12K\n\x0e\x64\x61taset_filter\x18\x04 \x01(\x0b\x32\".datacatalog.DatasetPropertyFilterH\x00R\rdatasetFilter\x12P\n\x08operator\x18\n \x01(\x0e\x32\x34.datacatalog.SinglePropertyFilter.ComparisonOperatorR\x08operator\" \n\x12\x43omparisonOperator\x12\n\n\x06\x45QUALS\x10\x00\x42\x11\n\x0fproperty_filter\"G\n\x16\x41rtifactPropertyFilter\x12!\n\x0b\x61rtifact_id\x18\x01 \x01(\tH\x00R\nartifactIdB\n\n\x08property\"<\n\x11TagPropertyFilter\x12\x1b\n\x08tag_name\x18\x01 \x01(\tH\x00R\x07tagNameB\n\n\x08property\"[\n\x17PartitionPropertyFilter\x12\x34\n\x07key_val\x18\x01 \x01(\x0b\x32\x19.datacatalog.KeyValuePairH\x00R\x06keyValB\n\n\x08property\"6\n\x0cKeyValuePair\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\x9f\x01\n\x15\x44\x61tasetPropertyFilter\x12\x1a\n\x07project\x18\x01 \x01(\tH\x00R\x07project\x12\x14\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x12\x18\n\x06\x64omain\x18\x03 \x01(\tH\x00R\x06\x64omain\x12\x1a\n\x07version\x18\x04 \x01(\tH\x00R\x07version\x12\x12\n\x03org\x18\x05 \x01(\tH\x00R\x03orgB\n\n\x08property\"\x93\x02\n\x11PaginationOptions\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12@\n\x07sortKey\x18\x03 \x01(\x0e\x32&.datacatalog.PaginationOptions.SortKeyR\x07sortKey\x12\x46\n\tsortOrder\x18\x04 \x01(\x0e\x32(.datacatalog.PaginationOptions.SortOrderR\tsortOrder\"*\n\tSortOrder\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\x1c\n\x07SortKey\x12\x11\n\rCREATION_TIME\x10\x00\x32\x86\x07\n\x0b\x44\x61taCatalog\x12V\n\rCreateDataset\x12!.datacatalog.CreateDatasetRequest\x1a\".datacatalog.CreateDatasetResponse\x12M\n\nGetDataset\x12\x1e.datacatalog.GetDatasetRequest\x1a\x1f.datacatalog.GetDatasetResponse\x12Y\n\x0e\x43reateArtifact\x12\".datacatalog.CreateArtifactRequest\x1a#.datacatalog.CreateArtifactResponse\x12P\n\x0bGetArtifact\x12\x1f.datacatalog.GetArtifactRequest\x1a .datacatalog.GetArtifactResponse\x12\x41\n\x06\x41\x64\x64Tag\x12\x1a.datacatalog.AddTagRequest\x1a\x1b.datacatalog.AddTagResponse\x12V\n\rListArtifacts\x12!.datacatalog.ListArtifactsRequest\x1a\".datacatalog.ListArtifactsResponse\x12S\n\x0cListDatasets\x12 .datacatalog.ListDatasetsRequest\x1a!.datacatalog.ListDatasetsResponse\x12Y\n\x0eUpdateArtifact\x12\".datacatalog.UpdateArtifactRequest\x1a#.datacatalog.UpdateArtifactResponse\x12q\n\x16GetOrExtendReservation\x12*.datacatalog.GetOrExtendReservationRequest\x1a+.datacatalog.GetOrExtendReservationResponse\x12\x65\n\x12ReleaseReservation\x12&.datacatalog.ReleaseReservationRequest\x1a\'.datacatalog.ReleaseReservationResponseB\xb2\x01\n\x0f\x63om.datacatalogB\x10\x44\x61tacatalogProtoP\x01ZAgithub.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/datacatalog\xa2\x02\x03\x44XX\xaa\x02\x0b\x44\x61tacatalog\xca\x02\x0b\x44\x61tacatalog\xe2\x02\x17\x44\x61tacatalog\\GPBMetadata\xea\x02\x0b\x44\x61tacatalogb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -102,13 +102,13 @@ _globals['_KEYVALUEPAIR']._serialized_start=4264 _globals['_KEYVALUEPAIR']._serialized_end=4318 _globals['_DATASETPROPERTYFILTER']._serialized_start=4321 - _globals['_DATASETPROPERTYFILTER']._serialized_end=4492 - _globals['_PAGINATIONOPTIONS']._serialized_start=4495 - _globals['_PAGINATIONOPTIONS']._serialized_end=4770 - _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_start=4698 - _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_end=4740 - _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_start=4742 - _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_end=4770 - _globals['_DATACATALOG']._serialized_start=4773 - _globals['_DATACATALOG']._serialized_end=5675 + _globals['_DATASETPROPERTYFILTER']._serialized_end=4480 + _globals['_PAGINATIONOPTIONS']._serialized_start=4483 + _globals['_PAGINATIONOPTIONS']._serialized_end=4758 + _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_start=4686 + _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_end=4728 + _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_start=4730 + _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_end=4758 + _globals['_DATACATALOG']._serialized_start=4761 + _globals['_DATACATALOG']._serialized_end=5663 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi index bd2b13a6d7..22dd8edbfe 100644 --- a/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/datacatalog/datacatalog_pb2.pyi @@ -305,18 +305,18 @@ class KeyValuePair(_message.Message): def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... class DatasetPropertyFilter(_message.Message): - __slots__ = ["project", "name", "domain", "version", "partition"] + __slots__ = ["project", "name", "domain", "version", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] VERSION_FIELD_NUMBER: _ClassVar[int] - PARTITION_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str name: str domain: str version: str - partition: str - def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ..., domain: _Optional[str] = ..., version: _Optional[str] = ..., partition: _Optional[str] = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ..., domain: _Optional[str] = ..., version: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class PaginationOptions(_message.Message): __slots__ = ["limit", "token", "sortKey", "sortOrder"] diff --git a/flyteidl/gen/pb_rust/datacatalog.rs b/flyteidl/gen/pb_rust/datacatalog.rs index 67fbe54639..ac2c695cab 100644 --- a/flyteidl/gen/pb_rust/datacatalog.rs +++ b/flyteidl/gen/pb_rust/datacatalog.rs @@ -488,9 +488,9 @@ pub mod dataset_property_filter { Domain(::prost::alloc::string::String), #[prost(string, tag="4")] Version(::prost::alloc::string::String), - /// Optional, partition key applied to the dataset. + /// Optional, org key applied to the dataset. #[prost(string, tag="5")] - Partition(::prost::alloc::string::String), + Org(::prost::alloc::string::String), } } /// Pagination options for making list requests diff --git a/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto b/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto index 78d5636233..e296603113 100644 --- a/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto +++ b/flyteidl/protos/flyteidl/datacatalog/datacatalog.proto @@ -389,8 +389,8 @@ message DatasetPropertyFilter { string name = 2; string domain = 3; string version = 4; - // Optional, partition key applied to the dataset. - string partition = 5; + // Optional, org key applied to the dataset. + string org = 5; } } From fc16f16cea902f30c93163bbdeef98378de5db0a Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Thu, 11 Jan 2024 16:57:55 -0800 Subject: [PATCH 7/7] revert Signed-off-by: Katrina Rogan --- .../nodes/catalog/datacatalog/transformer.go | 17 +++++++---------- .../catalog/datacatalog/transformer_test.go | 1 - 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go index 8c875d4dc3..5c0ac0c30b 100644 --- a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go +++ b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer.go @@ -8,8 +8,6 @@ import ( "strconv" "strings" - "github.com/golang/protobuf/proto" - "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/datacatalog" "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/catalog" @@ -140,7 +138,6 @@ func GenerateDatasetIDForTask(ctx context.Context, k catalog.Key) (*datacatalog. Domain: k.Identifier.Domain, Name: getDatasetNameFromTask(k.Identifier), Version: datasetVersion, - Org: k.Identifier.Org, } return datasetID, nil } @@ -160,7 +157,6 @@ const ( execProjectKey = "exec-project" execNodeIDKey = "exec-node" execTaskAttemptKey = "exec-attempt" - execOrgKey = "exec-org" ) // Understanding Catalog Identifiers @@ -191,7 +187,6 @@ func GetArtifactMetadataForSource(taskExecutionID *core.TaskExecutionIdentifier) execNameKey: taskExecutionID.NodeExecutionId.GetExecutionId().GetName(), execNodeIDKey: taskExecutionID.NodeExecutionId.GetNodeId(), execTaskAttemptKey: strconv.Itoa(int(taskExecutionID.GetRetryAttempt())), - execOrgKey: taskExecutionID.GetNodeExecutionId().GetExecutionId().GetOrg(), }, } } @@ -214,11 +209,14 @@ func GetSourceFromMetadata(datasetMd, artifactMd *datacatalog.Metadata, currentI return nil, fmt.Errorf("failed to parse [%v] to integer. Error: %w", val, err) } - taskID := proto.Clone(¤tID).(*core.Identifier) - taskID.Version = GetOrDefault(datasetMd.KeyMap, taskVersionKey, "unknown") - return &core.TaskExecutionIdentifier{ - TaskId: taskID, + TaskId: &core.Identifier{ + ResourceType: currentID.ResourceType, + Project: currentID.Project, + Domain: currentID.Domain, + Name: currentID.Name, + Version: GetOrDefault(datasetMd.KeyMap, taskVersionKey, "unknown"), + }, RetryAttempt: uint32(attempt), NodeExecutionId: &core.NodeExecutionIdentifier{ NodeId: GetOrDefault(artifactMd.KeyMap, execNodeIDKey, "unknown"), @@ -226,7 +224,6 @@ func GetSourceFromMetadata(datasetMd, artifactMd *datacatalog.Metadata, currentI Project: GetOrDefault(artifactMd.KeyMap, execProjectKey, currentID.GetProject()), Domain: GetOrDefault(artifactMd.KeyMap, execDomainKey, currentID.GetDomain()), Name: GetOrDefault(artifactMd.KeyMap, execNameKey, "unknown"), - Org: GetOrDefault(artifactMd.KeyMap, execOrgKey, currentID.GetOrg()), }, }, }, nil diff --git a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer_test.go b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer_test.go index fe9034039a..1c6b9e2e1b 100644 --- a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer_test.go +++ b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/transformer_test.go @@ -178,7 +178,6 @@ func TestGetArtifactMetadataForSource(t *testing.T) { execDomainKey: tID.NodeExecutionId.ExecutionId.Domain, execNodeIDKey: tID.NodeExecutionId.NodeId, execNameKey: tID.NodeExecutionId.ExecutionId.Name, - execOrgKey: tID.NodeExecutionId.ExecutionId.Org, }}, } for _, tt := range tests {