From 70573b13cd6af9c30e4dfb13427bbc49054c3024 Mon Sep 17 00:00:00 2001 From: Geert Pingen Date: Fri, 7 Jul 2023 21:19:47 +0200 Subject: [PATCH] First draft to add oneof Signed-off-by: Geert Pingen --- build/lib/flyteidl/__init__.py | 0 build/lib/flyteidl/admin/__init__.py | 0 build/lib/flyteidl/admin/agent_pb2.py | 44 + build/lib/flyteidl/admin/agent_pb2.pyi | 72 + build/lib/flyteidl/admin/agent_pb2_grpc.py | 4 + .../flyteidl/admin/cluster_assignment_pb2.py | 27 + .../flyteidl/admin/cluster_assignment_pb2.pyi | 11 + .../admin/cluster_assignment_pb2_grpc.py | 4 + build/lib/flyteidl/admin/common_pb2.py | 93 + build/lib/flyteidl/admin/common_pb2.pyi | 248 ++ build/lib/flyteidl/admin/common_pb2_grpc.py | 4 + .../flyteidl/admin/description_entity_pb2.py | 39 + .../flyteidl/admin/description_entity_pb2.pyi | 76 + .../admin/description_entity_pb2_grpc.py | 4 + build/lib/flyteidl/admin/event_pb2.py | 44 + build/lib/flyteidl/admin/event_pb2.pyi | 62 + build/lib/flyteidl/admin/event_pb2_grpc.py | 4 + build/lib/flyteidl/admin/execution_pb2.py | 103 + build/lib/flyteidl/admin/execution_pb2.pyi | 284 ++ .../lib/flyteidl/admin/execution_pb2_grpc.py | 4 + build/lib/flyteidl/admin/launch_plan_pb2.py | 68 + build/lib/flyteidl/admin/launch_plan_pb2.pyi | 151 ++ .../flyteidl/admin/launch_plan_pb2_grpc.py | 4 + .../flyteidl/admin/matchable_resource_pb2.py | 62 + .../flyteidl/admin/matchable_resource_pb2.pyi | 166 ++ .../admin/matchable_resource_pb2_grpc.py | 4 + .../lib/flyteidl/admin/node_execution_pb2.py | 65 + .../lib/flyteidl/admin/node_execution_pb2.pyi | 158 ++ .../flyteidl/admin/node_execution_pb2_grpc.py | 4 + build/lib/flyteidl/admin/notification_pb2.py | 27 + build/lib/flyteidl/admin/notification_pb2.pyi | 18 + .../flyteidl/admin/notification_pb2_grpc.py | 4 + .../flyteidl/admin/project_attributes_pb2.py | 40 + .../flyteidl/admin/project_attributes_pb2.pyi | 50 + .../admin/project_attributes_pb2_grpc.py | 4 + .../admin/project_domain_attributes_pb2.py | 40 + .../admin/project_domain_attributes_pb2.pyi | 56 + .../project_domain_attributes_pb2_grpc.py | 4 + build/lib/flyteidl/admin/project_pb2.py | 42 + build/lib/flyteidl/admin/project_pb2.pyi | 74 + build/lib/flyteidl/admin/project_pb2_grpc.py | 4 + build/lib/flyteidl/admin/schedule_pb2.py | 35 + build/lib/flyteidl/admin/schedule_pb2.pyi | 43 + build/lib/flyteidl/admin/schedule_pb2_grpc.py | 4 + build/lib/flyteidl/admin/signal_pb2.py | 41 + build/lib/flyteidl/admin/signal_pb2.pyi | 62 + build/lib/flyteidl/admin/signal_pb2_grpc.py | 4 + .../lib/flyteidl/admin/task_execution_pb2.py | 57 + .../lib/flyteidl/admin/task_execution_pb2.pyi | 116 + .../flyteidl/admin/task_execution_pb2_grpc.py | 4 + build/lib/flyteidl/admin/task_pb2.py | 42 + build/lib/flyteidl/admin/task_pb2.pyi | 57 + build/lib/flyteidl/admin/task_pb2_grpc.py | 4 + build/lib/flyteidl/admin/version_pb2.py | 31 + build/lib/flyteidl/admin/version_pb2.pyi | 25 + build/lib/flyteidl/admin/version_pb2_grpc.py | 4 + .../flyteidl/admin/workflow_attributes_pb2.py | 40 + .../admin/workflow_attributes_pb2.pyi | 62 + .../admin/workflow_attributes_pb2_grpc.py | 4 + build/lib/flyteidl/admin/workflow_pb2.py | 48 + build/lib/flyteidl/admin/workflow_pb2.pyi | 79 + build/lib/flyteidl/admin/workflow_pb2_grpc.py | 4 + build/lib/flyteidl/core/__init__.py | 0 build/lib/flyteidl/core/catalog_pb2.py | 36 + build/lib/flyteidl/core/catalog_pb2.pyi | 58 + build/lib/flyteidl/core/catalog_pb2_grpc.py | 4 + build/lib/flyteidl/core/compiler_pb2.py | 45 + build/lib/flyteidl/core/compiler_pb2.pyi | 59 + build/lib/flyteidl/core/compiler_pb2_grpc.py | 4 + build/lib/flyteidl/core/condition_pb2.py | 38 + build/lib/flyteidl/core/condition_pb2.pyi | 63 + build/lib/flyteidl/core/condition_pb2_grpc.py | 4 + build/lib/flyteidl/core/dynamic_job_pb2.py | 30 + build/lib/flyteidl/core/dynamic_job_pb2.pyi | 23 + .../lib/flyteidl/core/dynamic_job_pb2_grpc.py | 4 + build/lib/flyteidl/core/errors_pb2.py | 32 + build/lib/flyteidl/core/errors_pb2.pyi | 31 + build/lib/flyteidl/core/errors_pb2_grpc.py | 4 + build/lib/flyteidl/core/execution_pb2.py | 52 + build/lib/flyteidl/core/execution_pb2.pyi | 147 + build/lib/flyteidl/core/execution_pb2_grpc.py | 4 + build/lib/flyteidl/core/identifier_pb2.py | 37 + build/lib/flyteidl/core/identifier_pb2.pyi | 69 + .../lib/flyteidl/core/identifier_pb2_grpc.py | 4 + build/lib/flyteidl/core/interface_pb2.py | 45 + build/lib/flyteidl/core/interface_pb2.pyi | 60 + build/lib/flyteidl/core/interface_pb2_grpc.py | 4 + build/lib/flyteidl/core/literals_pb2.py | 77 + build/lib/flyteidl/core/literals_pb2.pyi | 196 ++ build/lib/flyteidl/core/literals_pb2_grpc.py | 4 + build/lib/flyteidl/core/metrics_pb2.py | 29 + build/lib/flyteidl/core/metrics_pb2.pyi | 26 + build/lib/flyteidl/core/metrics_pb2_grpc.py | 4 + build/lib/flyteidl/core/security_pb2.py | 45 + build/lib/flyteidl/core/security_pb2.pyi | 89 + build/lib/flyteidl/core/security_pb2_grpc.py | 4 + build/lib/flyteidl/core/tasks_pb2.py | 87 + build/lib/flyteidl/core/tasks_pb2.pyi | 260 ++ build/lib/flyteidl/core/tasks_pb2_grpc.py | 4 + build/lib/flyteidl/core/types_pb2.py | 56 + build/lib/flyteidl/core/types_pb2.pyi | 157 ++ build/lib/flyteidl/core/types_pb2_grpc.py | 4 + .../lib/flyteidl/core/workflow_closure_pb2.py | 29 + .../flyteidl/core/workflow_closure_pb2.pyi | 16 + .../core/workflow_closure_pb2_grpc.py | 4 + build/lib/flyteidl/core/workflow_pb2.py | 74 + build/lib/flyteidl/core/workflow_pb2.pyi | 199 ++ build/lib/flyteidl/core/workflow_pb2_grpc.py | 4 + build/lib/flyteidl/datacatalog/__init__.py | 0 .../flyteidl/datacatalog/datacatalog_pb2.py | 114 + .../flyteidl/datacatalog/datacatalog_pb2.pyi | 335 +++ .../datacatalog/datacatalog_pb2_grpc.py | 398 +++ build/lib/flyteidl/event/__init__.py | 0 build/lib/flyteidl/event/event_pb2.py | 56 + build/lib/flyteidl/event/event_pb2.pyi | 206 ++ build/lib/flyteidl/event/event_pb2_grpc.py | 4 + build/lib/flyteidl/plugins/__init__.py | 0 build/lib/flyteidl/plugins/array_job_pb2.py | 27 + build/lib/flyteidl/plugins/array_job_pb2.pyi | 17 + .../flyteidl/plugins/array_job_pb2_grpc.py | 4 + build/lib/flyteidl/plugins/dask_pb2.py | 32 + build/lib/flyteidl/plugins/dask_pb2.pyi | 32 + build/lib/flyteidl/plugins/dask_pb2_grpc.py | 4 + .../lib/flyteidl/plugins/kubeflow/__init__.py | 0 .../flyteidl/plugins/kubeflow/common_pb2.py | 31 + .../flyteidl/plugins/kubeflow/common_pb2.pyi | 36 + .../plugins/kubeflow/common_pb2_grpc.py | 4 + .../lib/flyteidl/plugins/kubeflow/mpi_pb2.py | 31 + .../lib/flyteidl/plugins/kubeflow/mpi_pb2.pyi | 34 + .../flyteidl/plugins/kubeflow/mpi_pb2_grpc.py | 4 + .../flyteidl/plugins/kubeflow/pytorch_pb2.py | 33 + .../flyteidl/plugins/kubeflow/pytorch_pb2.pyi | 45 + .../plugins/kubeflow/pytorch_pb2_grpc.py | 4 + .../plugins/kubeflow/tensorflow_pb2.py | 31 + .../plugins/kubeflow/tensorflow_pb2.pyi | 31 + .../plugins/kubeflow/tensorflow_pb2_grpc.py | 4 + build/lib/flyteidl/plugins/mpi_pb2.py | 27 + build/lib/flyteidl/plugins/mpi_pb2.pyi | 15 + build/lib/flyteidl/plugins/mpi_pb2_grpc.py | 4 + build/lib/flyteidl/plugins/presto_pb2.py | 27 + build/lib/flyteidl/plugins/presto_pb2.pyi | 17 + build/lib/flyteidl/plugins/presto_pb2_grpc.py | 4 + build/lib/flyteidl/plugins/pytorch_pb2.py | 29 + build/lib/flyteidl/plugins/pytorch_pb2.pyi | 27 + .../lib/flyteidl/plugins/pytorch_pb2_grpc.py | 4 + build/lib/flyteidl/plugins/qubole_pb2.py | 33 + build/lib/flyteidl/plugins/qubole_pb2.pyi | 34 + build/lib/flyteidl/plugins/qubole_pb2_grpc.py | 4 + build/lib/flyteidl/plugins/ray_pb2.py | 41 + build/lib/flyteidl/plugins/ray_pb2.pyi | 56 + build/lib/flyteidl/plugins/ray_pb2_grpc.py | 4 + .../flyteidl/plugins/sagemaker/__init__.py | 0 .../hyperparameter_tuning_job_pb2.py | 45 + .../hyperparameter_tuning_job_pb2.pyi | 68 + .../hyperparameter_tuning_job_pb2_grpc.py | 4 + .../plugins/sagemaker/parameter_ranges_pb2.py | 43 + .../sagemaker/parameter_ranges_pb2.pyi | 70 + .../sagemaker/parameter_ranges_pb2_grpc.py | 4 + .../plugins/sagemaker/training_job_pb2.py | 50 + .../plugins/sagemaker/training_job_pb2.pyi | 88 + .../sagemaker/training_job_pb2_grpc.py | 4 + build/lib/flyteidl/plugins/spark_pb2.py | 40 + build/lib/flyteidl/plugins/spark_pb2.pyi | 58 + build/lib/flyteidl/plugins/spark_pb2_grpc.py | 4 + build/lib/flyteidl/plugins/tensorflow_pb2.py | 27 + build/lib/flyteidl/plugins/tensorflow_pb2.pyi | 15 + .../flyteidl/plugins/tensorflow_pb2_grpc.py | 4 + build/lib/flyteidl/plugins/waitable_pb2.py | 29 + build/lib/flyteidl/plugins/waitable_pb2.pyi | 17 + .../lib/flyteidl/plugins/waitable_pb2_grpc.py | 4 + build/lib/flyteidl/service/__init__.py | 0 build/lib/flyteidl/service/admin_pb2.py | 149 ++ build/lib/flyteidl/service/admin_pb2.pyi | 20 + build/lib/flyteidl/service/admin_pb2_grpc.py | 1860 +++++++++++++ build/lib/flyteidl/service/agent_pb2.py | 28 + build/lib/flyteidl/service/agent_pb2.pyi | 5 + build/lib/flyteidl/service/agent_pb2_grpc.py | 138 + build/lib/flyteidl/service/auth_pb2.py | 40 + build/lib/flyteidl/service/auth_pb2.pyi | 55 + build/lib/flyteidl/service/auth_pb2_grpc.py | 111 + build/lib/flyteidl/service/dataproxy_pb2.py | 68 + build/lib/flyteidl/service/dataproxy_pb2.pyi | 105 + .../flyteidl/service/dataproxy_pb2_grpc.py | 171 ++ .../service/external_plugin_service_pb2.py | 64 + .../service/external_plugin_service_pb2.pyi | 66 + .../external_plugin_service_pb2_grpc.py | 138 + build/lib/flyteidl/service/identity_pb2.py | 35 + build/lib/flyteidl/service/identity_pb2.pyi | 31 + .../lib/flyteidl/service/identity_pb2_grpc.py | 70 + build/lib/flyteidl/service/signal_pb2.py | 33 + build/lib/flyteidl/service/signal_pb2.pyi | 6 + build/lib/flyteidl/service/signal_pb2_grpc.py | 145 + build/lib/validate/__init__.py | 0 build/lib/validate/validate_pb2.py | 2366 +++++++++++++++++ gen/pb-cpp/flyteidl/core/security.pb.cc | 1257 +++++++-- gen/pb-cpp/flyteidl/core/security.pb.h | 568 +++- gen/pb-go/flyteidl/core/security.pb.go | 229 +- .../flyteidl/core/security.pb.validate.go | 164 +- gen/pb-go/flyteidl/service/admin.swagger.json | 26 +- gen/pb-go/flyteidl/service/agent.swagger.json | 26 +- .../external_plugin_service.swagger.json | 26 +- .../flyteidl/service/flyteadmin/README.md | 2 + .../service/flyteadmin/api/swagger.yaml | 1049 ++++++-- .../service/flyteadmin/model_core_secret.go | 3 +- .../flyteadmin/model_secret_mount_env_var.go | 15 + .../flyteadmin/model_secret_mount_file.go | 15 + gen/pb-go/flyteidl/service/openapi.go | 4 +- gen/pb-java/flyteidl/core/Security.java | 1837 +++++++++++-- gen/pb-js/flyteidl.d.ts | 121 +- gen/pb-js/flyteidl.js | 284 +- gen/pb_python/flyteidl/core/security_pb2.py | 34 +- gen/pb_python/flyteidl/core/security_pb2.pyi | 20 +- .../flyteidl/service/flyteadmin/README.md | 2 + .../service/flyteadmin/flyteadmin/__init__.py | 2 + .../flyteadmin/flyteadmin/models/__init__.py | 2 + .../flyteadmin/models/core_secret.py | 62 +- .../flyteadmin/models/secret_mount_env_var.py | 115 + .../flyteadmin/models/secret_mount_file.py | 115 + .../test/test_secret_mount_env_var.py | 40 + .../flyteadmin/test/test_secret_mount_file.py | 40 + gen/pb_rust/flyteidl.core.rs | 36 +- protos/flyteidl/core/security.proto | 23 +- 222 files changed, 18576 insertions(+), 825 deletions(-) create mode 100644 build/lib/flyteidl/__init__.py create mode 100644 build/lib/flyteidl/admin/__init__.py create mode 100644 build/lib/flyteidl/admin/agent_pb2.py create mode 100644 build/lib/flyteidl/admin/agent_pb2.pyi create mode 100644 build/lib/flyteidl/admin/agent_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/cluster_assignment_pb2.py create mode 100644 build/lib/flyteidl/admin/cluster_assignment_pb2.pyi create mode 100644 build/lib/flyteidl/admin/cluster_assignment_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/common_pb2.py create mode 100644 build/lib/flyteidl/admin/common_pb2.pyi create mode 100644 build/lib/flyteidl/admin/common_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/description_entity_pb2.py create mode 100644 build/lib/flyteidl/admin/description_entity_pb2.pyi create mode 100644 build/lib/flyteidl/admin/description_entity_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/event_pb2.py create mode 100644 build/lib/flyteidl/admin/event_pb2.pyi create mode 100644 build/lib/flyteidl/admin/event_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/execution_pb2.py create mode 100644 build/lib/flyteidl/admin/execution_pb2.pyi create mode 100644 build/lib/flyteidl/admin/execution_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/launch_plan_pb2.py create mode 100644 build/lib/flyteidl/admin/launch_plan_pb2.pyi create mode 100644 build/lib/flyteidl/admin/launch_plan_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/matchable_resource_pb2.py create mode 100644 build/lib/flyteidl/admin/matchable_resource_pb2.pyi create mode 100644 build/lib/flyteidl/admin/matchable_resource_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/node_execution_pb2.py create mode 100644 build/lib/flyteidl/admin/node_execution_pb2.pyi create mode 100644 build/lib/flyteidl/admin/node_execution_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/notification_pb2.py create mode 100644 build/lib/flyteidl/admin/notification_pb2.pyi create mode 100644 build/lib/flyteidl/admin/notification_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/project_attributes_pb2.py create mode 100644 build/lib/flyteidl/admin/project_attributes_pb2.pyi create mode 100644 build/lib/flyteidl/admin/project_attributes_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/project_domain_attributes_pb2.py create mode 100644 build/lib/flyteidl/admin/project_domain_attributes_pb2.pyi create mode 100644 build/lib/flyteidl/admin/project_domain_attributes_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/project_pb2.py create mode 100644 build/lib/flyteidl/admin/project_pb2.pyi create mode 100644 build/lib/flyteidl/admin/project_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/schedule_pb2.py create mode 100644 build/lib/flyteidl/admin/schedule_pb2.pyi create mode 100644 build/lib/flyteidl/admin/schedule_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/signal_pb2.py create mode 100644 build/lib/flyteidl/admin/signal_pb2.pyi create mode 100644 build/lib/flyteidl/admin/signal_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/task_execution_pb2.py create mode 100644 build/lib/flyteidl/admin/task_execution_pb2.pyi create mode 100644 build/lib/flyteidl/admin/task_execution_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/task_pb2.py create mode 100644 build/lib/flyteidl/admin/task_pb2.pyi create mode 100644 build/lib/flyteidl/admin/task_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/version_pb2.py create mode 100644 build/lib/flyteidl/admin/version_pb2.pyi create mode 100644 build/lib/flyteidl/admin/version_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/workflow_attributes_pb2.py create mode 100644 build/lib/flyteidl/admin/workflow_attributes_pb2.pyi create mode 100644 build/lib/flyteidl/admin/workflow_attributes_pb2_grpc.py create mode 100644 build/lib/flyteidl/admin/workflow_pb2.py create mode 100644 build/lib/flyteidl/admin/workflow_pb2.pyi create mode 100644 build/lib/flyteidl/admin/workflow_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/__init__.py create mode 100644 build/lib/flyteidl/core/catalog_pb2.py create mode 100644 build/lib/flyteidl/core/catalog_pb2.pyi create mode 100644 build/lib/flyteidl/core/catalog_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/compiler_pb2.py create mode 100644 build/lib/flyteidl/core/compiler_pb2.pyi create mode 100644 build/lib/flyteidl/core/compiler_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/condition_pb2.py create mode 100644 build/lib/flyteidl/core/condition_pb2.pyi create mode 100644 build/lib/flyteidl/core/condition_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/dynamic_job_pb2.py create mode 100644 build/lib/flyteidl/core/dynamic_job_pb2.pyi create mode 100644 build/lib/flyteidl/core/dynamic_job_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/errors_pb2.py create mode 100644 build/lib/flyteidl/core/errors_pb2.pyi create mode 100644 build/lib/flyteidl/core/errors_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/execution_pb2.py create mode 100644 build/lib/flyteidl/core/execution_pb2.pyi create mode 100644 build/lib/flyteidl/core/execution_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/identifier_pb2.py create mode 100644 build/lib/flyteidl/core/identifier_pb2.pyi create mode 100644 build/lib/flyteidl/core/identifier_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/interface_pb2.py create mode 100644 build/lib/flyteidl/core/interface_pb2.pyi create mode 100644 build/lib/flyteidl/core/interface_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/literals_pb2.py create mode 100644 build/lib/flyteidl/core/literals_pb2.pyi create mode 100644 build/lib/flyteidl/core/literals_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/metrics_pb2.py create mode 100644 build/lib/flyteidl/core/metrics_pb2.pyi create mode 100644 build/lib/flyteidl/core/metrics_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/security_pb2.py create mode 100644 build/lib/flyteidl/core/security_pb2.pyi create mode 100644 build/lib/flyteidl/core/security_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/tasks_pb2.py create mode 100644 build/lib/flyteidl/core/tasks_pb2.pyi create mode 100644 build/lib/flyteidl/core/tasks_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/types_pb2.py create mode 100644 build/lib/flyteidl/core/types_pb2.pyi create mode 100644 build/lib/flyteidl/core/types_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/workflow_closure_pb2.py create mode 100644 build/lib/flyteidl/core/workflow_closure_pb2.pyi create mode 100644 build/lib/flyteidl/core/workflow_closure_pb2_grpc.py create mode 100644 build/lib/flyteidl/core/workflow_pb2.py create mode 100644 build/lib/flyteidl/core/workflow_pb2.pyi create mode 100644 build/lib/flyteidl/core/workflow_pb2_grpc.py create mode 100644 build/lib/flyteidl/datacatalog/__init__.py create mode 100644 build/lib/flyteidl/datacatalog/datacatalog_pb2.py create mode 100644 build/lib/flyteidl/datacatalog/datacatalog_pb2.pyi create mode 100644 build/lib/flyteidl/datacatalog/datacatalog_pb2_grpc.py create mode 100644 build/lib/flyteidl/event/__init__.py create mode 100644 build/lib/flyteidl/event/event_pb2.py create mode 100644 build/lib/flyteidl/event/event_pb2.pyi create mode 100644 build/lib/flyteidl/event/event_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/__init__.py create mode 100644 build/lib/flyteidl/plugins/array_job_pb2.py create mode 100644 build/lib/flyteidl/plugins/array_job_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/array_job_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/dask_pb2.py create mode 100644 build/lib/flyteidl/plugins/dask_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/dask_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/kubeflow/__init__.py create mode 100644 build/lib/flyteidl/plugins/kubeflow/common_pb2.py create mode 100644 build/lib/flyteidl/plugins/kubeflow/common_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/kubeflow/common_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/kubeflow/mpi_pb2.py create mode 100644 build/lib/flyteidl/plugins/kubeflow/mpi_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/kubeflow/mpi_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/kubeflow/pytorch_pb2.py create mode 100644 build/lib/flyteidl/plugins/kubeflow/pytorch_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/kubeflow/pytorch_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2.py create mode 100644 build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/mpi_pb2.py create mode 100644 build/lib/flyteidl/plugins/mpi_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/mpi_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/presto_pb2.py create mode 100644 build/lib/flyteidl/plugins/presto_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/presto_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/pytorch_pb2.py create mode 100644 build/lib/flyteidl/plugins/pytorch_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/pytorch_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/qubole_pb2.py create mode 100644 build/lib/flyteidl/plugins/qubole_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/qubole_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/ray_pb2.py create mode 100644 build/lib/flyteidl/plugins/ray_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/ray_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/sagemaker/__init__.py create mode 100644 build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.py create mode 100644 build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2.py create mode 100644 build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/sagemaker/training_job_pb2.py create mode 100644 build/lib/flyteidl/plugins/sagemaker/training_job_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/sagemaker/training_job_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/spark_pb2.py create mode 100644 build/lib/flyteidl/plugins/spark_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/spark_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/tensorflow_pb2.py create mode 100644 build/lib/flyteidl/plugins/tensorflow_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/tensorflow_pb2_grpc.py create mode 100644 build/lib/flyteidl/plugins/waitable_pb2.py create mode 100644 build/lib/flyteidl/plugins/waitable_pb2.pyi create mode 100644 build/lib/flyteidl/plugins/waitable_pb2_grpc.py create mode 100644 build/lib/flyteidl/service/__init__.py create mode 100644 build/lib/flyteidl/service/admin_pb2.py create mode 100644 build/lib/flyteidl/service/admin_pb2.pyi create mode 100644 build/lib/flyteidl/service/admin_pb2_grpc.py create mode 100644 build/lib/flyteidl/service/agent_pb2.py create mode 100644 build/lib/flyteidl/service/agent_pb2.pyi create mode 100644 build/lib/flyteidl/service/agent_pb2_grpc.py create mode 100644 build/lib/flyteidl/service/auth_pb2.py create mode 100644 build/lib/flyteidl/service/auth_pb2.pyi create mode 100644 build/lib/flyteidl/service/auth_pb2_grpc.py create mode 100644 build/lib/flyteidl/service/dataproxy_pb2.py create mode 100644 build/lib/flyteidl/service/dataproxy_pb2.pyi create mode 100644 build/lib/flyteidl/service/dataproxy_pb2_grpc.py create mode 100644 build/lib/flyteidl/service/external_plugin_service_pb2.py create mode 100644 build/lib/flyteidl/service/external_plugin_service_pb2.pyi create mode 100644 build/lib/flyteidl/service/external_plugin_service_pb2_grpc.py create mode 100644 build/lib/flyteidl/service/identity_pb2.py create mode 100644 build/lib/flyteidl/service/identity_pb2.pyi create mode 100644 build/lib/flyteidl/service/identity_pb2_grpc.py create mode 100644 build/lib/flyteidl/service/signal_pb2.py create mode 100644 build/lib/flyteidl/service/signal_pb2.pyi create mode 100644 build/lib/flyteidl/service/signal_pb2_grpc.py create mode 100644 build/lib/validate/__init__.py create mode 100644 build/lib/validate/validate_pb2.py create mode 100644 gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_env_var.go create mode 100644 gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_file.go create mode 100644 gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_env_var.py create mode 100644 gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_file.py create mode 100644 gen/pb_python/flyteidl/service/flyteadmin/test/test_secret_mount_env_var.py create mode 100644 gen/pb_python/flyteidl/service/flyteadmin/test/test_secret_mount_file.py diff --git a/build/lib/flyteidl/__init__.py b/build/lib/flyteidl/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/build/lib/flyteidl/admin/__init__.py b/build/lib/flyteidl/admin/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/build/lib/flyteidl/admin/agent_pb2.py b/build/lib/flyteidl/admin/agent_pb2.py new file mode 100644 index 000000000..9f4ce06bc --- /dev/null +++ b/build/lib/flyteidl/admin/agent_pb2.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/agent.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +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\x1a\x66lyteidl/admin/agent.proto\x12\x0e\x66lyteidl.admin\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x19\x66lyteidl/core/tasks.proto\x1a\x1d\x66lyteidl/core/interface.proto\"\xa4\x01\n\x11\x43reateTaskRequest\x12\x31\n\x06inputs\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\x12\x37\n\x08template\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.TaskTemplateR\x08template\x12#\n\routput_prefix\x18\x03 \x01(\tR\x0coutputPrefix\"9\n\x12\x43reateTaskResponse\x12#\n\rresource_meta\x18\x01 \x01(\x0cR\x0cresourceMeta\"R\n\x0eGetTaskRequest\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12#\n\rresource_meta\x18\x02 \x01(\x0cR\x0cresourceMeta\"G\n\x0fGetTaskResponse\x12\x34\n\x08resource\x18\x01 \x01(\x0b\x32\x18.flyteidl.admin.ResourceR\x08resource\"l\n\x08Resource\x12+\n\x05state\x18\x01 \x01(\x0e\x32\x15.flyteidl.admin.StateR\x05state\x12\x33\n\x07outputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x07outputs\"U\n\x11\x44\x65leteTaskRequest\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12#\n\rresource_meta\x18\x02 \x01(\x0cR\x0cresourceMeta\"\x14\n\x12\x44\x65leteTaskResponse*^\n\x05State\x12\x15\n\x11RETRYABLE_FAILURE\x10\x00\x12\x15\n\x11PERMANENT_FAILURE\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\r\n\tSUCCEEDED\x10\x04\x42\xb0\x01\n\x12\x63om.flyteidl.adminB\nAgentProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.agent_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\nAgentProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_STATE']._serialized_start=736 + _globals['_STATE']._serialized_end=830 + _globals['_CREATETASKREQUEST']._serialized_start=135 + _globals['_CREATETASKREQUEST']._serialized_end=299 + _globals['_CREATETASKRESPONSE']._serialized_start=301 + _globals['_CREATETASKRESPONSE']._serialized_end=358 + _globals['_GETTASKREQUEST']._serialized_start=360 + _globals['_GETTASKREQUEST']._serialized_end=442 + _globals['_GETTASKRESPONSE']._serialized_start=444 + _globals['_GETTASKRESPONSE']._serialized_end=515 + _globals['_RESOURCE']._serialized_start=517 + _globals['_RESOURCE']._serialized_end=625 + _globals['_DELETETASKREQUEST']._serialized_start=627 + _globals['_DELETETASKREQUEST']._serialized_end=712 + _globals['_DELETETASKRESPONSE']._serialized_start=714 + _globals['_DELETETASKRESPONSE']._serialized_end=734 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/agent_pb2.pyi b/build/lib/flyteidl/admin/agent_pb2.pyi new file mode 100644 index 000000000..d18fe6f1c --- /dev/null +++ b/build/lib/flyteidl/admin/agent_pb2.pyi @@ -0,0 +1,72 @@ +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 +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class State(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + RETRYABLE_FAILURE: _ClassVar[State] + PERMANENT_FAILURE: _ClassVar[State] + PENDING: _ClassVar[State] + RUNNING: _ClassVar[State] + SUCCEEDED: _ClassVar[State] +RETRYABLE_FAILURE: State +PERMANENT_FAILURE: State +PENDING: State +RUNNING: State +SUCCEEDED: State + +class CreateTaskRequest(_message.Message): + __slots__ = ["inputs", "template", "output_prefix"] + INPUTS_FIELD_NUMBER: _ClassVar[int] + TEMPLATE_FIELD_NUMBER: _ClassVar[int] + OUTPUT_PREFIX_FIELD_NUMBER: _ClassVar[int] + inputs: _literals_pb2.LiteralMap + template: _tasks_pb2.TaskTemplate + output_prefix: str + def __init__(self, inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., template: _Optional[_Union[_tasks_pb2.TaskTemplate, _Mapping]] = ..., output_prefix: _Optional[str] = ...) -> None: ... + +class CreateTaskResponse(_message.Message): + __slots__ = ["resource_meta"] + RESOURCE_META_FIELD_NUMBER: _ClassVar[int] + resource_meta: bytes + def __init__(self, resource_meta: _Optional[bytes] = ...) -> None: ... + +class GetTaskRequest(_message.Message): + __slots__ = ["task_type", "resource_meta"] + TASK_TYPE_FIELD_NUMBER: _ClassVar[int] + RESOURCE_META_FIELD_NUMBER: _ClassVar[int] + task_type: str + resource_meta: bytes + def __init__(self, task_type: _Optional[str] = ..., resource_meta: _Optional[bytes] = ...) -> None: ... + +class GetTaskResponse(_message.Message): + __slots__ = ["resource"] + RESOURCE_FIELD_NUMBER: _ClassVar[int] + resource: Resource + def __init__(self, resource: _Optional[_Union[Resource, _Mapping]] = ...) -> None: ... + +class Resource(_message.Message): + __slots__ = ["state", "outputs"] + STATE_FIELD_NUMBER: _ClassVar[int] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + state: State + outputs: _literals_pb2.LiteralMap + def __init__(self, state: _Optional[_Union[State, str]] = ..., outputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ...) -> None: ... + +class DeleteTaskRequest(_message.Message): + __slots__ = ["task_type", "resource_meta"] + TASK_TYPE_FIELD_NUMBER: _ClassVar[int] + RESOURCE_META_FIELD_NUMBER: _ClassVar[int] + task_type: str + resource_meta: bytes + def __init__(self, task_type: _Optional[str] = ..., resource_meta: _Optional[bytes] = ...) -> None: ... + +class DeleteTaskResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... diff --git a/build/lib/flyteidl/admin/agent_pb2_grpc.py b/build/lib/flyteidl/admin/agent_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/agent_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/cluster_assignment_pb2.py b/build/lib/flyteidl/admin/cluster_assignment_pb2.py new file mode 100644 index 000000000..ed4ab7bb3 --- /dev/null +++ b/build/lib/flyteidl/admin/cluster_assignment_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/cluster_assignment.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'flyteidl/admin/cluster_assignment.proto\x12\x0e\x66lyteidl.admin\"K\n\x11\x43lusterAssignment\x12*\n\x11\x63luster_pool_name\x18\x03 \x01(\tR\x0f\x63lusterPoolNameJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\x42\xbc\x01\n\x12\x63om.flyteidl.adminB\x16\x43lusterAssignmentProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.cluster_assignment_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\026ClusterAssignmentProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_CLUSTERASSIGNMENT']._serialized_start=59 + _globals['_CLUSTERASSIGNMENT']._serialized_end=134 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/cluster_assignment_pb2.pyi b/build/lib/flyteidl/admin/cluster_assignment_pb2.pyi new file mode 100644 index 000000000..d18fe1bf3 --- /dev/null +++ b/build/lib/flyteidl/admin/cluster_assignment_pb2.pyi @@ -0,0 +1,11 @@ +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional + +DESCRIPTOR: _descriptor.FileDescriptor + +class ClusterAssignment(_message.Message): + __slots__ = ["cluster_pool_name"] + CLUSTER_POOL_NAME_FIELD_NUMBER: _ClassVar[int] + cluster_pool_name: str + def __init__(self, cluster_pool_name: _Optional[str] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/cluster_assignment_pb2_grpc.py b/build/lib/flyteidl/admin/cluster_assignment_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/cluster_assignment_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/common_pb2.py b/build/lib/flyteidl/admin/common_pb2.py new file mode 100644 index 000000000..7555b8b09 --- /dev/null +++ b/build/lib/flyteidl/admin/common_pb2.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/common.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import execution_pb2 as flyteidl_dot_core_dot_execution__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 +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\xb1\x01\n\x12\x63om.flyteidl.adminB\x0b\x43ommonProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.common_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\013CommonProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _URLBLOB._options = None + _URLBLOB._serialized_options = b'\030\001' + _LABELS_VALUESENTRY._options = None + _LABELS_VALUESENTRY._serialized_options = b'8\001' + _ANNOTATIONS_VALUESENTRY._options = None + _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['_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 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/common_pb2.pyi b/build/lib/flyteidl/admin/common_pb2.pyi new file mode 100644 index 000000000..9c81d7cf4 --- /dev/null +++ b/build/lib/flyteidl/admin/common_pb2.pyi @@ -0,0 +1,248 @@ +from flyteidl.core import execution_pb2 as _execution_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class NamedEntityState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + NAMED_ENTITY_ACTIVE: _ClassVar[NamedEntityState] + NAMED_ENTITY_ARCHIVED: _ClassVar[NamedEntityState] + SYSTEM_GENERATED: _ClassVar[NamedEntityState] +NAMED_ENTITY_ACTIVE: NamedEntityState +NAMED_ENTITY_ARCHIVED: NamedEntityState +SYSTEM_GENERATED: NamedEntityState + +class NamedEntityIdentifier(_message.Message): + __slots__ = ["project", "domain", "name"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + DOMAIN_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + project: str + domain: str + name: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... + +class NamedEntityMetadata(_message.Message): + __slots__ = ["description", "state"] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + STATE_FIELD_NUMBER: _ClassVar[int] + description: str + state: NamedEntityState + def __init__(self, description: _Optional[str] = ..., state: _Optional[_Union[NamedEntityState, str]] = ...) -> None: ... + +class NamedEntity(_message.Message): + __slots__ = ["resource_type", "id", "metadata"] + RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ID_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + resource_type: _identifier_pb2.ResourceType + id: NamedEntityIdentifier + metadata: NamedEntityMetadata + def __init__(self, resource_type: _Optional[_Union[_identifier_pb2.ResourceType, str]] = ..., id: _Optional[_Union[NamedEntityIdentifier, _Mapping]] = ..., metadata: _Optional[_Union[NamedEntityMetadata, _Mapping]] = ...) -> None: ... + +class Sort(_message.Message): + __slots__ = ["key", "direction"] + class Direction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + DESCENDING: _ClassVar[Sort.Direction] + ASCENDING: _ClassVar[Sort.Direction] + DESCENDING: Sort.Direction + ASCENDING: Sort.Direction + KEY_FIELD_NUMBER: _ClassVar[int] + DIRECTION_FIELD_NUMBER: _ClassVar[int] + key: str + direction: Sort.Direction + 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"] + 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] + 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: ... + +class NamedEntityListRequest(_message.Message): + __slots__ = ["resource_type", "project", "domain", "limit", "token", "sort_by", "filters"] + RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + 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] + resource_type: _identifier_pb2.ResourceType + project: str + domain: str + limit: int + 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: ... + +class NamedEntityIdentifierList(_message.Message): + __slots__ = ["entities", "token"] + ENTITIES_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + entities: _containers.RepeatedCompositeFieldContainer[NamedEntityIdentifier] + token: str + def __init__(self, entities: _Optional[_Iterable[_Union[NamedEntityIdentifier, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class NamedEntityList(_message.Message): + __slots__ = ["entities", "token"] + ENTITIES_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + entities: _containers.RepeatedCompositeFieldContainer[NamedEntity] + token: str + def __init__(self, entities: _Optional[_Iterable[_Union[NamedEntity, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class NamedEntityGetRequest(_message.Message): + __slots__ = ["resource_type", "id"] + RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ID_FIELD_NUMBER: _ClassVar[int] + resource_type: _identifier_pb2.ResourceType + id: NamedEntityIdentifier + def __init__(self, resource_type: _Optional[_Union[_identifier_pb2.ResourceType, str]] = ..., id: _Optional[_Union[NamedEntityIdentifier, _Mapping]] = ...) -> None: ... + +class NamedEntityUpdateRequest(_message.Message): + __slots__ = ["resource_type", "id", "metadata"] + RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ID_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + resource_type: _identifier_pb2.ResourceType + id: NamedEntityIdentifier + metadata: NamedEntityMetadata + def __init__(self, resource_type: _Optional[_Union[_identifier_pb2.ResourceType, str]] = ..., id: _Optional[_Union[NamedEntityIdentifier, _Mapping]] = ..., metadata: _Optional[_Union[NamedEntityMetadata, _Mapping]] = ...) -> None: ... + +class NamedEntityUpdateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class ObjectGetRequest(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ...) -> None: ... + +class ResourceListRequest(_message.Message): + __slots__ = ["id", "limit", "token", "filters", "sort_by"] + ID_FIELD_NUMBER: _ClassVar[int] + LIMIT_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + FILTERS_FIELD_NUMBER: _ClassVar[int] + SORT_BY_FIELD_NUMBER: _ClassVar[int] + id: NamedEntityIdentifier + limit: int + token: str + filters: str + sort_by: Sort + def __init__(self, id: _Optional[_Union[NamedEntityIdentifier, _Mapping]] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., filters: _Optional[str] = ..., sort_by: _Optional[_Union[Sort, _Mapping]] = ...) -> None: ... + +class EmailNotification(_message.Message): + __slots__ = ["recipients_email"] + RECIPIENTS_EMAIL_FIELD_NUMBER: _ClassVar[int] + recipients_email: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, recipients_email: _Optional[_Iterable[str]] = ...) -> None: ... + +class PagerDutyNotification(_message.Message): + __slots__ = ["recipients_email"] + RECIPIENTS_EMAIL_FIELD_NUMBER: _ClassVar[int] + recipients_email: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, recipients_email: _Optional[_Iterable[str]] = ...) -> None: ... + +class SlackNotification(_message.Message): + __slots__ = ["recipients_email"] + RECIPIENTS_EMAIL_FIELD_NUMBER: _ClassVar[int] + recipients_email: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, recipients_email: _Optional[_Iterable[str]] = ...) -> None: ... + +class Notification(_message.Message): + __slots__ = ["phases", "email", "pager_duty", "slack"] + PHASES_FIELD_NUMBER: _ClassVar[int] + EMAIL_FIELD_NUMBER: _ClassVar[int] + PAGER_DUTY_FIELD_NUMBER: _ClassVar[int] + SLACK_FIELD_NUMBER: _ClassVar[int] + phases: _containers.RepeatedScalarFieldContainer[_execution_pb2.WorkflowExecution.Phase] + email: EmailNotification + pager_duty: PagerDutyNotification + slack: SlackNotification + def __init__(self, phases: _Optional[_Iterable[_Union[_execution_pb2.WorkflowExecution.Phase, str]]] = ..., email: _Optional[_Union[EmailNotification, _Mapping]] = ..., pager_duty: _Optional[_Union[PagerDutyNotification, _Mapping]] = ..., slack: _Optional[_Union[SlackNotification, _Mapping]] = ...) -> None: ... + +class UrlBlob(_message.Message): + __slots__ = ["url", "bytes"] + URL_FIELD_NUMBER: _ClassVar[int] + BYTES_FIELD_NUMBER: _ClassVar[int] + url: str + bytes: int + def __init__(self, url: _Optional[str] = ..., bytes: _Optional[int] = ...) -> None: ... + +class Labels(_message.Message): + __slots__ = ["values"] + class ValuesEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + VALUES_FIELD_NUMBER: _ClassVar[int] + values: _containers.ScalarMap[str, str] + def __init__(self, values: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class Annotations(_message.Message): + __slots__ = ["values"] + class ValuesEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + VALUES_FIELD_NUMBER: _ClassVar[int] + values: _containers.ScalarMap[str, str] + def __init__(self, values: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class Envs(_message.Message): + __slots__ = ["values"] + VALUES_FIELD_NUMBER: _ClassVar[int] + values: _containers.RepeatedCompositeFieldContainer[_literals_pb2.KeyValuePair] + def __init__(self, values: _Optional[_Iterable[_Union[_literals_pb2.KeyValuePair, _Mapping]]] = ...) -> None: ... + +class AuthRole(_message.Message): + __slots__ = ["assumable_iam_role", "kubernetes_service_account"] + ASSUMABLE_IAM_ROLE_FIELD_NUMBER: _ClassVar[int] + KUBERNETES_SERVICE_ACCOUNT_FIELD_NUMBER: _ClassVar[int] + assumable_iam_role: str + kubernetes_service_account: str + def __init__(self, assumable_iam_role: _Optional[str] = ..., kubernetes_service_account: _Optional[str] = ...) -> None: ... + +class RawOutputDataConfig(_message.Message): + __slots__ = ["output_location_prefix"] + OUTPUT_LOCATION_PREFIX_FIELD_NUMBER: _ClassVar[int] + output_location_prefix: str + def __init__(self, output_location_prefix: _Optional[str] = ...) -> None: ... + +class FlyteURLs(_message.Message): + __slots__ = ["inputs", "outputs", "deck"] + INPUTS_FIELD_NUMBER: _ClassVar[int] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + DECK_FIELD_NUMBER: _ClassVar[int] + inputs: str + outputs: str + deck: str + def __init__(self, inputs: _Optional[str] = ..., outputs: _Optional[str] = ..., deck: _Optional[str] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/common_pb2_grpc.py b/build/lib/flyteidl/admin/common_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/common_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/description_entity_pb2.py b/build/lib/flyteidl/admin/description_entity_pb2.py new file mode 100644 index 000000000..11ce1f4de --- /dev/null +++ b/build/lib/flyteidl/admin/description_entity_pb2.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/description_entity.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'flyteidl/admin/description_entity.proto\x12\x0e\x66lyteidl.admin\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1b\x66lyteidl/admin/common.proto\"\x84\x02\n\x11\x44\x65scriptionEntity\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12+\n\x11short_description\x18\x02 \x01(\tR\x10shortDescription\x12\x46\n\x10long_description\x18\x03 \x01(\x0b\x32\x1b.flyteidl.admin.DescriptionR\x0flongDescription\x12;\n\x0bsource_code\x18\x04 \x01(\x0b\x32\x1a.flyteidl.admin.SourceCodeR\nsourceCode\x12\x12\n\x04tags\x18\x05 \x03(\tR\x04tags\"\x9c\x01\n\x0b\x44\x65scription\x12\x16\n\x05value\x18\x01 \x01(\tH\x00R\x05value\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x12\x39\n\x06\x66ormat\x18\x03 \x01(\x0e\x32!.flyteidl.admin.DescriptionFormatR\x06\x66ormat\x12\x1b\n\ticon_link\x18\x04 \x01(\tR\x08iconLinkB\t\n\x07\x63ontent\" \n\nSourceCode\x12\x12\n\x04link\x18\x01 \x01(\tR\x04link\"\x82\x01\n\x15\x44\x65scriptionEntityList\x12S\n\x13\x64\x65scriptionEntities\x18\x01 \x03(\x0b\x32!.flyteidl.admin.DescriptionEntityR\x13\x64\x65scriptionEntities\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x8c\x02\n\x1c\x44\x65scriptionEntityListRequest\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\x14\n\x05limit\x18\x03 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x04 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x05 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x06 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy*\x8d\x01\n\x11\x44\x65scriptionFormat\x12\x1e\n\x1a\x44\x45SCRIPTION_FORMAT_UNKNOWN\x10\x00\x12\x1f\n\x1b\x44\x45SCRIPTION_FORMAT_MARKDOWN\x10\x01\x12\x1b\n\x17\x44\x45SCRIPTION_FORMAT_HTML\x10\x02\x12\x1a\n\x16\x44\x45SCRIPTION_FORMAT_RST\x10\x03\x42\xbc\x01\n\x12\x63om.flyteidl.adminB\x16\x44\x65scriptionEntityProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.description_entity_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\026DescriptionEntityProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_DESCRIPTIONFORMAT']._serialized_start=981 + _globals['_DESCRIPTIONFORMAT']._serialized_end=1122 + _globals['_DESCRIPTIONENTITY']._serialized_start=121 + _globals['_DESCRIPTIONENTITY']._serialized_end=381 + _globals['_DESCRIPTION']._serialized_start=384 + _globals['_DESCRIPTION']._serialized_end=540 + _globals['_SOURCECODE']._serialized_start=542 + _globals['_SOURCECODE']._serialized_end=574 + _globals['_DESCRIPTIONENTITYLIST']._serialized_start=577 + _globals['_DESCRIPTIONENTITYLIST']._serialized_end=707 + _globals['_DESCRIPTIONENTITYLISTREQUEST']._serialized_start=710 + _globals['_DESCRIPTIONENTITYLISTREQUEST']._serialized_end=978 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/description_entity_pb2.pyi b/build/lib/flyteidl/admin/description_entity_pb2.pyi new file mode 100644 index 000000000..200778457 --- /dev/null +++ b/build/lib/flyteidl/admin/description_entity_pb2.pyi @@ -0,0 +1,76 @@ +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.admin import common_pb2 as _common_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class DescriptionFormat(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + DESCRIPTION_FORMAT_UNKNOWN: _ClassVar[DescriptionFormat] + DESCRIPTION_FORMAT_MARKDOWN: _ClassVar[DescriptionFormat] + DESCRIPTION_FORMAT_HTML: _ClassVar[DescriptionFormat] + DESCRIPTION_FORMAT_RST: _ClassVar[DescriptionFormat] +DESCRIPTION_FORMAT_UNKNOWN: DescriptionFormat +DESCRIPTION_FORMAT_MARKDOWN: DescriptionFormat +DESCRIPTION_FORMAT_HTML: DescriptionFormat +DESCRIPTION_FORMAT_RST: DescriptionFormat + +class DescriptionEntity(_message.Message): + __slots__ = ["id", "short_description", "long_description", "source_code", "tags"] + ID_FIELD_NUMBER: _ClassVar[int] + SHORT_DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + LONG_DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + SOURCE_CODE_FIELD_NUMBER: _ClassVar[int] + TAGS_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + short_description: str + long_description: Description + source_code: SourceCode + tags: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., short_description: _Optional[str] = ..., long_description: _Optional[_Union[Description, _Mapping]] = ..., source_code: _Optional[_Union[SourceCode, _Mapping]] = ..., tags: _Optional[_Iterable[str]] = ...) -> None: ... + +class Description(_message.Message): + __slots__ = ["value", "uri", "format", "icon_link"] + VALUE_FIELD_NUMBER: _ClassVar[int] + URI_FIELD_NUMBER: _ClassVar[int] + FORMAT_FIELD_NUMBER: _ClassVar[int] + ICON_LINK_FIELD_NUMBER: _ClassVar[int] + value: str + uri: str + format: DescriptionFormat + icon_link: str + def __init__(self, value: _Optional[str] = ..., uri: _Optional[str] = ..., format: _Optional[_Union[DescriptionFormat, str]] = ..., icon_link: _Optional[str] = ...) -> None: ... + +class SourceCode(_message.Message): + __slots__ = ["link"] + LINK_FIELD_NUMBER: _ClassVar[int] + link: str + def __init__(self, link: _Optional[str] = ...) -> None: ... + +class DescriptionEntityList(_message.Message): + __slots__ = ["descriptionEntities", "token"] + DESCRIPTIONENTITIES_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + descriptionEntities: _containers.RepeatedCompositeFieldContainer[DescriptionEntity] + token: str + def __init__(self, descriptionEntities: _Optional[_Iterable[_Union[DescriptionEntity, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class DescriptionEntityListRequest(_message.Message): + __slots__ = ["resource_type", "id", "limit", "token", "filters", "sort_by"] + RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ID_FIELD_NUMBER: _ClassVar[int] + LIMIT_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + FILTERS_FIELD_NUMBER: _ClassVar[int] + SORT_BY_FIELD_NUMBER: _ClassVar[int] + resource_type: _identifier_pb2.ResourceType + id: _common_pb2.NamedEntityIdentifier + limit: int + token: str + filters: str + sort_by: _common_pb2.Sort + def __init__(self, resource_type: _Optional[_Union[_identifier_pb2.ResourceType, str]] = ..., id: _Optional[_Union[_common_pb2.NamedEntityIdentifier, _Mapping]] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., filters: _Optional[str] = ..., sort_by: _Optional[_Union[_common_pb2.Sort, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/description_entity_pb2_grpc.py b/build/lib/flyteidl/admin/description_entity_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/description_entity_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/event_pb2.py b/build/lib/flyteidl/admin/event_pb2.py new file mode 100644 index 000000000..932400815 --- /dev/null +++ b/build/lib/flyteidl/admin/event_pb2.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/event.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.event import event_pb2 as flyteidl_dot_event_dot_event__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lyteidl/admin/event.proto\x12\x0e\x66lyteidl.admin\x1a\x1a\x66lyteidl/event/event.proto\"G\n EventErrorAlreadyInTerminalState\x12#\n\rcurrent_phase\x18\x01 \x01(\tR\x0c\x63urrentPhase\"9\n\x1d\x45ventErrorIncompatibleCluster\x12\x18\n\x07\x63luster\x18\x01 \x01(\tR\x07\x63luster\"\xf1\x01\n\x12\x45ventFailureReason\x12m\n\x19\x61lready_in_terminal_state\x18\x01 \x01(\x0b\x32\x30.flyteidl.admin.EventErrorAlreadyInTerminalStateH\x00R\x16\x61lreadyInTerminalState\x12\x62\n\x14incompatible_cluster\x18\x02 \x01(\x0b\x32-.flyteidl.admin.EventErrorIncompatibleClusterH\x00R\x13incompatibleClusterB\x08\n\x06reason\"|\n\x1dWorkflowExecutionEventRequest\x12\x1d\n\nrequest_id\x18\x01 \x01(\tR\trequestId\x12<\n\x05\x65vent\x18\x02 \x01(\x0b\x32&.flyteidl.event.WorkflowExecutionEventR\x05\x65vent\" \n\x1eWorkflowExecutionEventResponse\"t\n\x19NodeExecutionEventRequest\x12\x1d\n\nrequest_id\x18\x01 \x01(\tR\trequestId\x12\x38\n\x05\x65vent\x18\x02 \x01(\x0b\x32\".flyteidl.event.NodeExecutionEventR\x05\x65vent\"\x1c\n\x1aNodeExecutionEventResponse\"t\n\x19TaskExecutionEventRequest\x12\x1d\n\nrequest_id\x18\x01 \x01(\tR\trequestId\x12\x38\n\x05\x65vent\x18\x02 \x01(\x0b\x32\".flyteidl.event.TaskExecutionEventR\x05\x65vent\"\x1c\n\x1aTaskExecutionEventResponseB\xb0\x01\n\x12\x63om.flyteidl.adminB\nEventProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.event_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\nEventProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_EVENTERRORALREADYINTERMINALSTATE']._serialized_start=74 + _globals['_EVENTERRORALREADYINTERMINALSTATE']._serialized_end=145 + _globals['_EVENTERRORINCOMPATIBLECLUSTER']._serialized_start=147 + _globals['_EVENTERRORINCOMPATIBLECLUSTER']._serialized_end=204 + _globals['_EVENTFAILUREREASON']._serialized_start=207 + _globals['_EVENTFAILUREREASON']._serialized_end=448 + _globals['_WORKFLOWEXECUTIONEVENTREQUEST']._serialized_start=450 + _globals['_WORKFLOWEXECUTIONEVENTREQUEST']._serialized_end=574 + _globals['_WORKFLOWEXECUTIONEVENTRESPONSE']._serialized_start=576 + _globals['_WORKFLOWEXECUTIONEVENTRESPONSE']._serialized_end=608 + _globals['_NODEEXECUTIONEVENTREQUEST']._serialized_start=610 + _globals['_NODEEXECUTIONEVENTREQUEST']._serialized_end=726 + _globals['_NODEEXECUTIONEVENTRESPONSE']._serialized_start=728 + _globals['_NODEEXECUTIONEVENTRESPONSE']._serialized_end=756 + _globals['_TASKEXECUTIONEVENTREQUEST']._serialized_start=758 + _globals['_TASKEXECUTIONEVENTREQUEST']._serialized_end=874 + _globals['_TASKEXECUTIONEVENTRESPONSE']._serialized_start=876 + _globals['_TASKEXECUTIONEVENTRESPONSE']._serialized_end=904 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/event_pb2.pyi b/build/lib/flyteidl/admin/event_pb2.pyi new file mode 100644 index 000000000..47eac9aa7 --- /dev/null +++ b/build/lib/flyteidl/admin/event_pb2.pyi @@ -0,0 +1,62 @@ +from flyteidl.event import event_pb2 as _event_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class EventErrorAlreadyInTerminalState(_message.Message): + __slots__ = ["current_phase"] + CURRENT_PHASE_FIELD_NUMBER: _ClassVar[int] + current_phase: str + def __init__(self, current_phase: _Optional[str] = ...) -> None: ... + +class EventErrorIncompatibleCluster(_message.Message): + __slots__ = ["cluster"] + CLUSTER_FIELD_NUMBER: _ClassVar[int] + cluster: str + def __init__(self, cluster: _Optional[str] = ...) -> None: ... + +class EventFailureReason(_message.Message): + __slots__ = ["already_in_terminal_state", "incompatible_cluster"] + ALREADY_IN_TERMINAL_STATE_FIELD_NUMBER: _ClassVar[int] + INCOMPATIBLE_CLUSTER_FIELD_NUMBER: _ClassVar[int] + already_in_terminal_state: EventErrorAlreadyInTerminalState + incompatible_cluster: EventErrorIncompatibleCluster + def __init__(self, already_in_terminal_state: _Optional[_Union[EventErrorAlreadyInTerminalState, _Mapping]] = ..., incompatible_cluster: _Optional[_Union[EventErrorIncompatibleCluster, _Mapping]] = ...) -> None: ... + +class WorkflowExecutionEventRequest(_message.Message): + __slots__ = ["request_id", "event"] + REQUEST_ID_FIELD_NUMBER: _ClassVar[int] + EVENT_FIELD_NUMBER: _ClassVar[int] + request_id: str + event: _event_pb2.WorkflowExecutionEvent + def __init__(self, request_id: _Optional[str] = ..., event: _Optional[_Union[_event_pb2.WorkflowExecutionEvent, _Mapping]] = ...) -> None: ... + +class WorkflowExecutionEventResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class NodeExecutionEventRequest(_message.Message): + __slots__ = ["request_id", "event"] + REQUEST_ID_FIELD_NUMBER: _ClassVar[int] + EVENT_FIELD_NUMBER: _ClassVar[int] + request_id: str + event: _event_pb2.NodeExecutionEvent + def __init__(self, request_id: _Optional[str] = ..., event: _Optional[_Union[_event_pb2.NodeExecutionEvent, _Mapping]] = ...) -> None: ... + +class NodeExecutionEventResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class TaskExecutionEventRequest(_message.Message): + __slots__ = ["request_id", "event"] + REQUEST_ID_FIELD_NUMBER: _ClassVar[int] + EVENT_FIELD_NUMBER: _ClassVar[int] + request_id: str + event: _event_pb2.TaskExecutionEvent + def __init__(self, request_id: _Optional[str] = ..., event: _Optional[_Union[_event_pb2.TaskExecutionEvent, _Mapping]] = ...) -> None: ... + +class TaskExecutionEventResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... diff --git a/build/lib/flyteidl/admin/event_pb2_grpc.py b/build/lib/flyteidl/admin/event_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/event_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/execution_pb2.py b/build/lib/flyteidl/admin/execution_pb2.py new file mode 100644 index 000000000..063cbc9cf --- /dev/null +++ b/build/lib/flyteidl/admin/execution_pb2.py @@ -0,0 +1,103 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/execution.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.admin import cluster_assignment_pb2 as flyteidl_dot_admin_dot_cluster__assignment__pb2 +from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 +from flyteidl.core import execution_pb2 as flyteidl_dot_core_dot_execution__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import metrics_pb2 as flyteidl_dot_core_dot_metrics__pb2 +from flyteidl.core import security_pb2 as flyteidl_dot_core_dot_security__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +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\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\"\xba\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\"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\"\xfc\x07\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\x65nvsB\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\xb4\x01\n\x12\x63om.flyteidl.adminB\x0e\x45xecutionProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.execution_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\016ExecutionProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _LITERALMAPBLOB.fields_by_name['values']._options = None + _LITERALMAPBLOB.fields_by_name['values']._serialized_options = b'\030\001' + _EXECUTIONCLOSURE.fields_by_name['outputs']._options = None + _EXECUTIONCLOSURE.fields_by_name['outputs']._serialized_options = b'\030\001' + _EXECUTIONCLOSURE.fields_by_name['abort_cause']._options = None + _EXECUTIONCLOSURE.fields_by_name['abort_cause']._serialized_options = b'\030\001' + _EXECUTIONCLOSURE.fields_by_name['output_data']._options = None + _EXECUTIONCLOSURE.fields_by_name['output_data']._serialized_options = b'\030\001' + _EXECUTIONCLOSURE.fields_by_name['computed_inputs']._options = None + _EXECUTIONCLOSURE.fields_by_name['computed_inputs']._serialized_options = b'\030\001' + _EXECUTIONSPEC.fields_by_name['inputs']._options = None + _EXECUTIONSPEC.fields_by_name['inputs']._serialized_options = b'\030\001' + _EXECUTIONSPEC.fields_by_name['auth_role']._options = None + _EXECUTIONSPEC.fields_by_name['auth_role']._serialized_options = b'\030\001' + _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['outputs']._options = None + _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=5276 + _globals['_EXECUTIONSTATE']._serialized_end=5338 + _globals['_EXECUTIONCREATEREQUEST']._serialized_start=370 + _globals['_EXECUTIONCREATEREQUEST']._serialized_end=566 + _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_start=569 + _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_end=722 + _globals['_EXECUTIONRECOVERREQUEST']._serialized_start=725 + _globals['_EXECUTIONRECOVERREQUEST']._serialized_end=893 + _globals['_EXECUTIONCREATERESPONSE']._serialized_start=895 + _globals['_EXECUTIONCREATERESPONSE']._serialized_end=980 + _globals['_WORKFLOWEXECUTIONGETREQUEST']._serialized_start=982 + _globals['_WORKFLOWEXECUTIONGETREQUEST']._serialized_end=1071 + _globals['_EXECUTION']._serialized_start=1074 + _globals['_EXECUTION']._serialized_end=1256 + _globals['_EXECUTIONLIST']._serialized_start=1258 + _globals['_EXECUTIONLIST']._serialized_end=1354 + _globals['_LITERALMAPBLOB']._serialized_start=1356 + _globals['_LITERALMAPBLOB']._serialized_end=1457 + _globals['_ABORTMETADATA']._serialized_start=1459 + _globals['_ABORTMETADATA']._serialized_end=1526 + _globals['_EXECUTIONCLOSURE']._serialized_start=1529 + _globals['_EXECUTIONCLOSURE']._serialized_end=2449 + _globals['_SYSTEMMETADATA']._serialized_start=2451 + _globals['_SYSTEMMETADATA']._serialized_end=2542 + _globals['_EXECUTIONMETADATA']._serialized_start=2545 + _globals['_EXECUTIONMETADATA']._serialized_end=3115 + _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_start=3012 + _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_end=3115 + _globals['_NOTIFICATIONLIST']._serialized_start=3117 + _globals['_NOTIFICATIONLIST']._serialized_end=3203 + _globals['_EXECUTIONSPEC']._serialized_start=3206 + _globals['_EXECUTIONSPEC']._serialized_end=4226 + _globals['_EXECUTIONTERMINATEREQUEST']._serialized_start=4228 + _globals['_EXECUTIONTERMINATEREQUEST']._serialized_end=4337 + _globals['_EXECUTIONTERMINATERESPONSE']._serialized_start=4339 + _globals['_EXECUTIONTERMINATERESPONSE']._serialized_end=4367 + _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_start=4369 + _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_end=4462 + _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_start=4465 + _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_end=4729 + _globals['_EXECUTIONUPDATEREQUEST']._serialized_start=4732 + _globals['_EXECUTIONUPDATEREQUEST']._serialized_end=4870 + _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_start=4873 + _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_end=5047 + _globals['_EXECUTIONUPDATERESPONSE']._serialized_start=5049 + _globals['_EXECUTIONUPDATERESPONSE']._serialized_end=5074 + _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_start=5076 + _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_end=5194 + _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_start=5196 + _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_end=5274 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/execution_pb2.pyi b/build/lib/flyteidl/admin/execution_pb2.pyi new file mode 100644 index 000000000..d894af7b2 --- /dev/null +++ b/build/lib/flyteidl/admin/execution_pb2.pyi @@ -0,0 +1,284 @@ +from flyteidl.admin import cluster_assignment_pb2 as _cluster_assignment_pb2 +from flyteidl.admin import common_pb2 as _common_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from flyteidl.core import execution_pb2 as _execution_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import metrics_pb2 as _metrics_pb2 +from flyteidl.core import security_pb2 as _security_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf import wrappers_pb2 as _wrappers_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class ExecutionState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + EXECUTION_ACTIVE: _ClassVar[ExecutionState] + EXECUTION_ARCHIVED: _ClassVar[ExecutionState] +EXECUTION_ACTIVE: ExecutionState +EXECUTION_ARCHIVED: ExecutionState + +class ExecutionCreateRequest(_message.Message): + __slots__ = ["project", "domain", "name", "spec", "inputs"] + 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] + 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: ... + +class ExecutionRelaunchRequest(_message.Message): + __slots__ = ["id", "name", "overwrite_cache"] + ID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + OVERWRITE_CACHE_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.WorkflowExecutionIdentifier + name: str + overwrite_cache: bool + def __init__(self, id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., name: _Optional[str] = ..., overwrite_cache: bool = ...) -> None: ... + +class ExecutionRecoverRequest(_message.Message): + __slots__ = ["id", "name", "metadata"] + ID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.WorkflowExecutionIdentifier + name: str + metadata: ExecutionMetadata + def __init__(self, id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., name: _Optional[str] = ..., metadata: _Optional[_Union[ExecutionMetadata, _Mapping]] = ...) -> None: ... + +class ExecutionCreateResponse(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.WorkflowExecutionIdentifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class WorkflowExecutionGetRequest(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.WorkflowExecutionIdentifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class Execution(_message.Message): + __slots__ = ["id", "spec", "closure"] + ID_FIELD_NUMBER: _ClassVar[int] + SPEC_FIELD_NUMBER: _ClassVar[int] + CLOSURE_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.WorkflowExecutionIdentifier + spec: ExecutionSpec + closure: ExecutionClosure + def __init__(self, id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., spec: _Optional[_Union[ExecutionSpec, _Mapping]] = ..., closure: _Optional[_Union[ExecutionClosure, _Mapping]] = ...) -> None: ... + +class ExecutionList(_message.Message): + __slots__ = ["executions", "token"] + EXECUTIONS_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + executions: _containers.RepeatedCompositeFieldContainer[Execution] + token: str + def __init__(self, executions: _Optional[_Iterable[_Union[Execution, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class LiteralMapBlob(_message.Message): + __slots__ = ["values", "uri"] + VALUES_FIELD_NUMBER: _ClassVar[int] + URI_FIELD_NUMBER: _ClassVar[int] + values: _literals_pb2.LiteralMap + uri: str + def __init__(self, values: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., uri: _Optional[str] = ...) -> None: ... + +class AbortMetadata(_message.Message): + __slots__ = ["cause", "principal"] + CAUSE_FIELD_NUMBER: _ClassVar[int] + PRINCIPAL_FIELD_NUMBER: _ClassVar[int] + cause: str + principal: str + def __init__(self, cause: _Optional[str] = ..., principal: _Optional[str] = ...) -> None: ... + +class ExecutionClosure(_message.Message): + __slots__ = ["outputs", "error", "abort_cause", "abort_metadata", "output_data", "computed_inputs", "phase", "started_at", "duration", "created_at", "updated_at", "notifications", "workflow_id", "state_change_details"] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + ABORT_CAUSE_FIELD_NUMBER: _ClassVar[int] + ABORT_METADATA_FIELD_NUMBER: _ClassVar[int] + OUTPUT_DATA_FIELD_NUMBER: _ClassVar[int] + COMPUTED_INPUTS_FIELD_NUMBER: _ClassVar[int] + PHASE_FIELD_NUMBER: _ClassVar[int] + STARTED_AT_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + NOTIFICATIONS_FIELD_NUMBER: _ClassVar[int] + WORKFLOW_ID_FIELD_NUMBER: _ClassVar[int] + STATE_CHANGE_DETAILS_FIELD_NUMBER: _ClassVar[int] + outputs: LiteralMapBlob + error: _execution_pb2.ExecutionError + abort_cause: str + abort_metadata: AbortMetadata + output_data: _literals_pb2.LiteralMap + computed_inputs: _literals_pb2.LiteralMap + phase: _execution_pb2.WorkflowExecution.Phase + started_at: _timestamp_pb2.Timestamp + duration: _duration_pb2.Duration + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + notifications: _containers.RepeatedCompositeFieldContainer[_common_pb2.Notification] + workflow_id: _identifier_pb2.Identifier + state_change_details: ExecutionStateChangeDetails + def __init__(self, outputs: _Optional[_Union[LiteralMapBlob, _Mapping]] = ..., error: _Optional[_Union[_execution_pb2.ExecutionError, _Mapping]] = ..., abort_cause: _Optional[str] = ..., abort_metadata: _Optional[_Union[AbortMetadata, _Mapping]] = ..., output_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., computed_inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., phase: _Optional[_Union[_execution_pb2.WorkflowExecution.Phase, str]] = ..., started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., notifications: _Optional[_Iterable[_Union[_common_pb2.Notification, _Mapping]]] = ..., workflow_id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., state_change_details: _Optional[_Union[ExecutionStateChangeDetails, _Mapping]] = ...) -> None: ... + +class SystemMetadata(_message.Message): + __slots__ = ["execution_cluster", "namespace"] + EXECUTION_CLUSTER_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FIELD_NUMBER: _ClassVar[int] + execution_cluster: str + namespace: str + def __init__(self, execution_cluster: _Optional[str] = ..., namespace: _Optional[str] = ...) -> None: ... + +class ExecutionMetadata(_message.Message): + __slots__ = ["mode", "principal", "nesting", "scheduled_at", "parent_node_execution", "reference_execution", "system_metadata"] + class ExecutionMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MANUAL: _ClassVar[ExecutionMetadata.ExecutionMode] + SCHEDULED: _ClassVar[ExecutionMetadata.ExecutionMode] + SYSTEM: _ClassVar[ExecutionMetadata.ExecutionMode] + RELAUNCH: _ClassVar[ExecutionMetadata.ExecutionMode] + CHILD_WORKFLOW: _ClassVar[ExecutionMetadata.ExecutionMode] + RECOVERED: _ClassVar[ExecutionMetadata.ExecutionMode] + MANUAL: ExecutionMetadata.ExecutionMode + SCHEDULED: ExecutionMetadata.ExecutionMode + SYSTEM: ExecutionMetadata.ExecutionMode + RELAUNCH: ExecutionMetadata.ExecutionMode + CHILD_WORKFLOW: ExecutionMetadata.ExecutionMode + RECOVERED: ExecutionMetadata.ExecutionMode + MODE_FIELD_NUMBER: _ClassVar[int] + PRINCIPAL_FIELD_NUMBER: _ClassVar[int] + NESTING_FIELD_NUMBER: _ClassVar[int] + SCHEDULED_AT_FIELD_NUMBER: _ClassVar[int] + PARENT_NODE_EXECUTION_FIELD_NUMBER: _ClassVar[int] + REFERENCE_EXECUTION_FIELD_NUMBER: _ClassVar[int] + SYSTEM_METADATA_FIELD_NUMBER: _ClassVar[int] + mode: ExecutionMetadata.ExecutionMode + principal: str + nesting: int + scheduled_at: _timestamp_pb2.Timestamp + parent_node_execution: _identifier_pb2.NodeExecutionIdentifier + reference_execution: _identifier_pb2.WorkflowExecutionIdentifier + system_metadata: SystemMetadata + def __init__(self, mode: _Optional[_Union[ExecutionMetadata.ExecutionMode, str]] = ..., principal: _Optional[str] = ..., nesting: _Optional[int] = ..., scheduled_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., parent_node_execution: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ..., reference_execution: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., system_metadata: _Optional[_Union[SystemMetadata, _Mapping]] = ...) -> None: ... + +class NotificationList(_message.Message): + __slots__ = ["notifications"] + NOTIFICATIONS_FIELD_NUMBER: _ClassVar[int] + notifications: _containers.RepeatedCompositeFieldContainer[_common_pb2.Notification] + def __init__(self, notifications: _Optional[_Iterable[_Union[_common_pb2.Notification, _Mapping]]] = ...) -> None: ... + +class ExecutionSpec(_message.Message): + __slots__ = ["launch_plan", "inputs", "metadata", "notifications", "disable_all", "labels", "annotations", "security_context", "auth_role", "quality_of_service", "max_parallelism", "raw_output_data_config", "cluster_assignment", "interruptible", "overwrite_cache", "envs"] + LAUNCH_PLAN_FIELD_NUMBER: _ClassVar[int] + INPUTS_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + NOTIFICATIONS_FIELD_NUMBER: _ClassVar[int] + DISABLE_ALL_FIELD_NUMBER: _ClassVar[int] + LABELS_FIELD_NUMBER: _ClassVar[int] + ANNOTATIONS_FIELD_NUMBER: _ClassVar[int] + SECURITY_CONTEXT_FIELD_NUMBER: _ClassVar[int] + AUTH_ROLE_FIELD_NUMBER: _ClassVar[int] + QUALITY_OF_SERVICE_FIELD_NUMBER: _ClassVar[int] + MAX_PARALLELISM_FIELD_NUMBER: _ClassVar[int] + RAW_OUTPUT_DATA_CONFIG_FIELD_NUMBER: _ClassVar[int] + CLUSTER_ASSIGNMENT_FIELD_NUMBER: _ClassVar[int] + INTERRUPTIBLE_FIELD_NUMBER: _ClassVar[int] + OVERWRITE_CACHE_FIELD_NUMBER: _ClassVar[int] + ENVS_FIELD_NUMBER: _ClassVar[int] + launch_plan: _identifier_pb2.Identifier + inputs: _literals_pb2.LiteralMap + metadata: ExecutionMetadata + notifications: NotificationList + disable_all: bool + labels: _common_pb2.Labels + annotations: _common_pb2.Annotations + security_context: _security_pb2.SecurityContext + auth_role: _common_pb2.AuthRole + quality_of_service: _execution_pb2.QualityOfService + max_parallelism: int + raw_output_data_config: _common_pb2.RawOutputDataConfig + cluster_assignment: _cluster_assignment_pb2.ClusterAssignment + interruptible: _wrappers_pb2.BoolValue + overwrite_cache: bool + envs: _common_pb2.Envs + def __init__(self, launch_plan: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., metadata: _Optional[_Union[ExecutionMetadata, _Mapping]] = ..., notifications: _Optional[_Union[NotificationList, _Mapping]] = ..., disable_all: bool = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., annotations: _Optional[_Union[_common_pb2.Annotations, _Mapping]] = ..., security_context: _Optional[_Union[_security_pb2.SecurityContext, _Mapping]] = ..., auth_role: _Optional[_Union[_common_pb2.AuthRole, _Mapping]] = ..., quality_of_service: _Optional[_Union[_execution_pb2.QualityOfService, _Mapping]] = ..., max_parallelism: _Optional[int] = ..., raw_output_data_config: _Optional[_Union[_common_pb2.RawOutputDataConfig, _Mapping]] = ..., cluster_assignment: _Optional[_Union[_cluster_assignment_pb2.ClusterAssignment, _Mapping]] = ..., interruptible: _Optional[_Union[_wrappers_pb2.BoolValue, _Mapping]] = ..., overwrite_cache: bool = ..., envs: _Optional[_Union[_common_pb2.Envs, _Mapping]] = ...) -> None: ... + +class ExecutionTerminateRequest(_message.Message): + __slots__ = ["id", "cause"] + ID_FIELD_NUMBER: _ClassVar[int] + CAUSE_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.WorkflowExecutionIdentifier + cause: str + def __init__(self, id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., cause: _Optional[str] = ...) -> None: ... + +class ExecutionTerminateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class WorkflowExecutionGetDataRequest(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.WorkflowExecutionIdentifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class WorkflowExecutionGetDataResponse(_message.Message): + __slots__ = ["outputs", "inputs", "full_inputs", "full_outputs"] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + INPUTS_FIELD_NUMBER: _ClassVar[int] + FULL_INPUTS_FIELD_NUMBER: _ClassVar[int] + FULL_OUTPUTS_FIELD_NUMBER: _ClassVar[int] + outputs: _common_pb2.UrlBlob + inputs: _common_pb2.UrlBlob + full_inputs: _literals_pb2.LiteralMap + full_outputs: _literals_pb2.LiteralMap + def __init__(self, outputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., inputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., full_inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., full_outputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ...) -> None: ... + +class ExecutionUpdateRequest(_message.Message): + __slots__ = ["id", "state"] + ID_FIELD_NUMBER: _ClassVar[int] + STATE_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.WorkflowExecutionIdentifier + state: ExecutionState + def __init__(self, id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., state: _Optional[_Union[ExecutionState, str]] = ...) -> None: ... + +class ExecutionStateChangeDetails(_message.Message): + __slots__ = ["state", "occurred_at", "principal"] + STATE_FIELD_NUMBER: _ClassVar[int] + OCCURRED_AT_FIELD_NUMBER: _ClassVar[int] + PRINCIPAL_FIELD_NUMBER: _ClassVar[int] + state: ExecutionState + occurred_at: _timestamp_pb2.Timestamp + principal: str + def __init__(self, state: _Optional[_Union[ExecutionState, str]] = ..., occurred_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., principal: _Optional[str] = ...) -> None: ... + +class ExecutionUpdateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class WorkflowExecutionGetMetricsRequest(_message.Message): + __slots__ = ["id", "depth"] + ID_FIELD_NUMBER: _ClassVar[int] + DEPTH_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.WorkflowExecutionIdentifier + depth: int + def __init__(self, id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., depth: _Optional[int] = ...) -> None: ... + +class WorkflowExecutionGetMetricsResponse(_message.Message): + __slots__ = ["span"] + SPAN_FIELD_NUMBER: _ClassVar[int] + span: _metrics_pb2.Span + def __init__(self, span: _Optional[_Union[_metrics_pb2.Span, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/execution_pb2_grpc.py b/build/lib/flyteidl/admin/execution_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/execution_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/launch_plan_pb2.py b/build/lib/flyteidl/admin/launch_plan_pb2.py new file mode 100644 index 000000000..3bd7b79dc --- /dev/null +++ b/build/lib/flyteidl/admin/launch_plan_pb2.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/launch_plan.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import execution_pb2 as flyteidl_dot_core_dot_execution__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import interface_pb2 as flyteidl_dot_core_dot_interface__pb2 +from flyteidl.core import security_pb2 as flyteidl_dot_core_dot_security__pb2 +from flyteidl.admin import schedule_pb2 as flyteidl_dot_admin_dot_schedule__pb2 +from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +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\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\"\x8e\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\"{\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\xb5\x01\n\x12\x63om.flyteidl.adminB\x0fLaunchPlanProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.launch_plan_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\017LaunchPlanProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _AUTH._options = None + _AUTH._serialized_options = b'\030\001' + _LAUNCHPLANSPEC.fields_by_name['role']._options = None + _LAUNCHPLANSPEC.fields_by_name['role']._serialized_options = b'\030\001' + _LAUNCHPLANSPEC.fields_by_name['auth']._options = None + _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=2724 + _globals['_LAUNCHPLANSTATE']._serialized_end=2767 + _globals['_LAUNCHPLANCREATEREQUEST']._serialized_start=331 + _globals['_LAUNCHPLANCREATEREQUEST']._serialized_end=451 + _globals['_LAUNCHPLANCREATERESPONSE']._serialized_start=453 + _globals['_LAUNCHPLANCREATERESPONSE']._serialized_end=479 + _globals['_LAUNCHPLAN']._serialized_start=482 + _globals['_LAUNCHPLAN']._serialized_end=650 + _globals['_LAUNCHPLANLIST']._serialized_start=652 + _globals['_LAUNCHPLANLIST']._serialized_end=753 + _globals['_AUTH']._serialized_start=755 + _globals['_AUTH']._serialized_end=873 + _globals['_LAUNCHPLANSPEC']._serialized_start=876 + _globals['_LAUNCHPLANSPEC']._serialized_end=1833 + _globals['_LAUNCHPLANCLOSURE']._serialized_start=1836 + _globals['_LAUNCHPLANCLOSURE']._serialized_end=2169 + _globals['_LAUNCHPLANMETADATA']._serialized_start=2172 + _globals['_LAUNCHPLANMETADATA']._serialized_end=2314 + _globals['_LAUNCHPLANUPDATEREQUEST']._serialized_start=2316 + _globals['_LAUNCHPLANUPDATEREQUEST']._serialized_end=2439 + _globals['_LAUNCHPLANUPDATERESPONSE']._serialized_start=2441 + _globals['_LAUNCHPLANUPDATERESPONSE']._serialized_end=2467 + _globals['_ACTIVELAUNCHPLANREQUEST']._serialized_start=2469 + _globals['_ACTIVELAUNCHPLANREQUEST']._serialized_end=2549 + _globals['_ACTIVELAUNCHPLANLISTREQUEST']._serialized_start=2552 + _globals['_ACTIVELAUNCHPLANLISTREQUEST']._serialized_end=2722 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/launch_plan_pb2.pyi b/build/lib/flyteidl/admin/launch_plan_pb2.pyi new file mode 100644 index 000000000..7a77f4482 --- /dev/null +++ b/build/lib/flyteidl/admin/launch_plan_pb2.pyi @@ -0,0 +1,151 @@ +from flyteidl.core import execution_pb2 as _execution_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import interface_pb2 as _interface_pb2 +from flyteidl.core import security_pb2 as _security_pb2 +from flyteidl.admin import schedule_pb2 as _schedule_pb2 +from flyteidl.admin import common_pb2 as _common_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf import wrappers_pb2 as _wrappers_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class LaunchPlanState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + INACTIVE: _ClassVar[LaunchPlanState] + ACTIVE: _ClassVar[LaunchPlanState] +INACTIVE: LaunchPlanState +ACTIVE: LaunchPlanState + +class LaunchPlanCreateRequest(_message.Message): + __slots__ = ["id", "spec"] + ID_FIELD_NUMBER: _ClassVar[int] + SPEC_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + spec: LaunchPlanSpec + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., spec: _Optional[_Union[LaunchPlanSpec, _Mapping]] = ...) -> None: ... + +class LaunchPlanCreateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class LaunchPlan(_message.Message): + __slots__ = ["id", "spec", "closure"] + ID_FIELD_NUMBER: _ClassVar[int] + SPEC_FIELD_NUMBER: _ClassVar[int] + CLOSURE_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + spec: LaunchPlanSpec + closure: LaunchPlanClosure + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., spec: _Optional[_Union[LaunchPlanSpec, _Mapping]] = ..., closure: _Optional[_Union[LaunchPlanClosure, _Mapping]] = ...) -> None: ... + +class LaunchPlanList(_message.Message): + __slots__ = ["launch_plans", "token"] + LAUNCH_PLANS_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + launch_plans: _containers.RepeatedCompositeFieldContainer[LaunchPlan] + token: str + def __init__(self, launch_plans: _Optional[_Iterable[_Union[LaunchPlan, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class Auth(_message.Message): + __slots__ = ["assumable_iam_role", "kubernetes_service_account"] + ASSUMABLE_IAM_ROLE_FIELD_NUMBER: _ClassVar[int] + KUBERNETES_SERVICE_ACCOUNT_FIELD_NUMBER: _ClassVar[int] + assumable_iam_role: str + kubernetes_service_account: str + def __init__(self, assumable_iam_role: _Optional[str] = ..., kubernetes_service_account: _Optional[str] = ...) -> None: ... + +class LaunchPlanSpec(_message.Message): + __slots__ = ["workflow_id", "entity_metadata", "default_inputs", "fixed_inputs", "role", "labels", "annotations", "auth", "auth_role", "security_context", "quality_of_service", "raw_output_data_config", "max_parallelism", "interruptible", "overwrite_cache", "envs"] + WORKFLOW_ID_FIELD_NUMBER: _ClassVar[int] + ENTITY_METADATA_FIELD_NUMBER: _ClassVar[int] + DEFAULT_INPUTS_FIELD_NUMBER: _ClassVar[int] + FIXED_INPUTS_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + LABELS_FIELD_NUMBER: _ClassVar[int] + ANNOTATIONS_FIELD_NUMBER: _ClassVar[int] + AUTH_FIELD_NUMBER: _ClassVar[int] + AUTH_ROLE_FIELD_NUMBER: _ClassVar[int] + SECURITY_CONTEXT_FIELD_NUMBER: _ClassVar[int] + QUALITY_OF_SERVICE_FIELD_NUMBER: _ClassVar[int] + RAW_OUTPUT_DATA_CONFIG_FIELD_NUMBER: _ClassVar[int] + MAX_PARALLELISM_FIELD_NUMBER: _ClassVar[int] + INTERRUPTIBLE_FIELD_NUMBER: _ClassVar[int] + OVERWRITE_CACHE_FIELD_NUMBER: _ClassVar[int] + ENVS_FIELD_NUMBER: _ClassVar[int] + workflow_id: _identifier_pb2.Identifier + entity_metadata: LaunchPlanMetadata + default_inputs: _interface_pb2.ParameterMap + fixed_inputs: _literals_pb2.LiteralMap + role: str + labels: _common_pb2.Labels + annotations: _common_pb2.Annotations + auth: Auth + auth_role: _common_pb2.AuthRole + security_context: _security_pb2.SecurityContext + quality_of_service: _execution_pb2.QualityOfService + raw_output_data_config: _common_pb2.RawOutputDataConfig + max_parallelism: int + interruptible: _wrappers_pb2.BoolValue + overwrite_cache: bool + envs: _common_pb2.Envs + def __init__(self, workflow_id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., entity_metadata: _Optional[_Union[LaunchPlanMetadata, _Mapping]] = ..., default_inputs: _Optional[_Union[_interface_pb2.ParameterMap, _Mapping]] = ..., fixed_inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., role: _Optional[str] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., annotations: _Optional[_Union[_common_pb2.Annotations, _Mapping]] = ..., auth: _Optional[_Union[Auth, _Mapping]] = ..., auth_role: _Optional[_Union[_common_pb2.AuthRole, _Mapping]] = ..., security_context: _Optional[_Union[_security_pb2.SecurityContext, _Mapping]] = ..., quality_of_service: _Optional[_Union[_execution_pb2.QualityOfService, _Mapping]] = ..., raw_output_data_config: _Optional[_Union[_common_pb2.RawOutputDataConfig, _Mapping]] = ..., max_parallelism: _Optional[int] = ..., interruptible: _Optional[_Union[_wrappers_pb2.BoolValue, _Mapping]] = ..., overwrite_cache: bool = ..., envs: _Optional[_Union[_common_pb2.Envs, _Mapping]] = ...) -> None: ... + +class LaunchPlanClosure(_message.Message): + __slots__ = ["state", "expected_inputs", "expected_outputs", "created_at", "updated_at"] + STATE_FIELD_NUMBER: _ClassVar[int] + EXPECTED_INPUTS_FIELD_NUMBER: _ClassVar[int] + EXPECTED_OUTPUTS_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + state: LaunchPlanState + expected_inputs: _interface_pb2.ParameterMap + expected_outputs: _interface_pb2.VariableMap + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + def __init__(self, state: _Optional[_Union[LaunchPlanState, str]] = ..., expected_inputs: _Optional[_Union[_interface_pb2.ParameterMap, _Mapping]] = ..., expected_outputs: _Optional[_Union[_interface_pb2.VariableMap, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class LaunchPlanMetadata(_message.Message): + __slots__ = ["schedule", "notifications"] + SCHEDULE_FIELD_NUMBER: _ClassVar[int] + NOTIFICATIONS_FIELD_NUMBER: _ClassVar[int] + schedule: _schedule_pb2.Schedule + notifications: _containers.RepeatedCompositeFieldContainer[_common_pb2.Notification] + def __init__(self, schedule: _Optional[_Union[_schedule_pb2.Schedule, _Mapping]] = ..., notifications: _Optional[_Iterable[_Union[_common_pb2.Notification, _Mapping]]] = ...) -> None: ... + +class LaunchPlanUpdateRequest(_message.Message): + __slots__ = ["id", "state"] + ID_FIELD_NUMBER: _ClassVar[int] + STATE_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + state: LaunchPlanState + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., state: _Optional[_Union[LaunchPlanState, str]] = ...) -> None: ... + +class LaunchPlanUpdateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class ActiveLaunchPlanRequest(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _common_pb2.NamedEntityIdentifier + def __init__(self, id: _Optional[_Union[_common_pb2.NamedEntityIdentifier, _Mapping]] = ...) -> None: ... + +class ActiveLaunchPlanListRequest(_message.Message): + __slots__ = ["project", "domain", "limit", "token", "sort_by"] + 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] + 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: ... diff --git a/build/lib/flyteidl/admin/launch_plan_pb2_grpc.py b/build/lib/flyteidl/admin/launch_plan_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/launch_plan_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/matchable_resource_pb2.py b/build/lib/flyteidl/admin/matchable_resource_pb2.py new file mode 100644 index 000000000..009314ccd --- /dev/null +++ b/build/lib/flyteidl/admin/matchable_resource_pb2.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/matchable_resource.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 +from flyteidl.admin import cluster_assignment_pb2 as flyteidl_dot_admin_dot_cluster__assignment__pb2 +from flyteidl.core import execution_pb2 as flyteidl_dot_core_dot_execution__pb2 +from flyteidl.core import security_pb2 as flyteidl_dot_core_dot_security__pb2 +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\xbc\x01\n\x12\x63om.flyteidl.adminB\x16MatchableResourceProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.matchable_resource_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\026MatchableResourceProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _CLUSTERRESOURCEATTRIBUTES_ATTRIBUTESENTRY._options = None + _CLUSTERRESOURCEATTRIBUTES_ATTRIBUTESENTRY._serialized_options = b'8\001' + _globals['_MATCHABLERESOURCE']._serialized_start=2853 + _globals['_MATCHABLERESOURCE']._serialized_end=3077 + _globals['_TASKRESOURCESPEC']._serialized_start=223 + _globals['_TASKRESOURCESPEC']._serialized_end=372 + _globals['_TASKRESOURCEATTRIBUTES']._serialized_start=375 + _globals['_TASKRESOURCEATTRIBUTES']._serialized_end=519 + _globals['_CLUSTERRESOURCEATTRIBUTES']._serialized_start=522 + _globals['_CLUSTERRESOURCEATTRIBUTES']._serialized_end=703 + _globals['_CLUSTERRESOURCEATTRIBUTES_ATTRIBUTESENTRY']._serialized_start=642 + _globals['_CLUSTERRESOURCEATTRIBUTES_ATTRIBUTESENTRY']._serialized_end=703 + _globals['_EXECUTIONQUEUEATTRIBUTES']._serialized_start=705 + _globals['_EXECUTIONQUEUEATTRIBUTES']._serialized_end=751 + _globals['_EXECUTIONCLUSTERLABEL']._serialized_start=753 + _globals['_EXECUTIONCLUSTERLABEL']._serialized_end=798 + _globals['_PLUGINOVERRIDE']._serialized_start=801 + _globals['_PLUGINOVERRIDE']._serialized_end=1037 + _globals['_PLUGINOVERRIDE_MISSINGPLUGINBEHAVIOR']._serialized_start=987 + _globals['_PLUGINOVERRIDE_MISSINGPLUGINBEHAVIOR']._serialized_end=1037 + _globals['_PLUGINOVERRIDES']._serialized_start=1039 + _globals['_PLUGINOVERRIDES']._serialized_end=1118 + _globals['_WORKFLOWEXECUTIONCONFIG']._serialized_start=1121 + _globals['_WORKFLOWEXECUTIONCONFIG']._serialized_end=1612 + _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 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/matchable_resource_pb2.pyi b/build/lib/flyteidl/admin/matchable_resource_pb2.pyi new file mode 100644 index 000000000..56a7b0316 --- /dev/null +++ b/build/lib/flyteidl/admin/matchable_resource_pb2.pyi @@ -0,0 +1,166 @@ +from flyteidl.admin import common_pb2 as _common_pb2 +from flyteidl.admin import cluster_assignment_pb2 as _cluster_assignment_pb2 +from flyteidl.core import execution_pb2 as _execution_pb2 +from flyteidl.core import security_pb2 as _security_pb2 +from google.protobuf import wrappers_pb2 as _wrappers_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class MatchableResource(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TASK_RESOURCE: _ClassVar[MatchableResource] + CLUSTER_RESOURCE: _ClassVar[MatchableResource] + EXECUTION_QUEUE: _ClassVar[MatchableResource] + EXECUTION_CLUSTER_LABEL: _ClassVar[MatchableResource] + QUALITY_OF_SERVICE_SPECIFICATION: _ClassVar[MatchableResource] + PLUGIN_OVERRIDE: _ClassVar[MatchableResource] + WORKFLOW_EXECUTION_CONFIG: _ClassVar[MatchableResource] + CLUSTER_ASSIGNMENT: _ClassVar[MatchableResource] +TASK_RESOURCE: MatchableResource +CLUSTER_RESOURCE: MatchableResource +EXECUTION_QUEUE: MatchableResource +EXECUTION_CLUSTER_LABEL: MatchableResource +QUALITY_OF_SERVICE_SPECIFICATION: MatchableResource +PLUGIN_OVERRIDE: MatchableResource +WORKFLOW_EXECUTION_CONFIG: MatchableResource +CLUSTER_ASSIGNMENT: MatchableResource + +class TaskResourceSpec(_message.Message): + __slots__ = ["cpu", "gpu", "memory", "storage", "ephemeral_storage"] + CPU_FIELD_NUMBER: _ClassVar[int] + GPU_FIELD_NUMBER: _ClassVar[int] + MEMORY_FIELD_NUMBER: _ClassVar[int] + STORAGE_FIELD_NUMBER: _ClassVar[int] + EPHEMERAL_STORAGE_FIELD_NUMBER: _ClassVar[int] + cpu: str + gpu: str + memory: str + storage: str + ephemeral_storage: str + def __init__(self, cpu: _Optional[str] = ..., gpu: _Optional[str] = ..., memory: _Optional[str] = ..., storage: _Optional[str] = ..., ephemeral_storage: _Optional[str] = ...) -> None: ... + +class TaskResourceAttributes(_message.Message): + __slots__ = ["defaults", "limits"] + DEFAULTS_FIELD_NUMBER: _ClassVar[int] + LIMITS_FIELD_NUMBER: _ClassVar[int] + defaults: TaskResourceSpec + limits: TaskResourceSpec + def __init__(self, defaults: _Optional[_Union[TaskResourceSpec, _Mapping]] = ..., limits: _Optional[_Union[TaskResourceSpec, _Mapping]] = ...) -> None: ... + +class ClusterResourceAttributes(_message.Message): + __slots__ = ["attributes"] + class AttributesEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + attributes: _containers.ScalarMap[str, str] + def __init__(self, attributes: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class ExecutionQueueAttributes(_message.Message): + __slots__ = ["tags"] + TAGS_FIELD_NUMBER: _ClassVar[int] + tags: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, tags: _Optional[_Iterable[str]] = ...) -> None: ... + +class ExecutionClusterLabel(_message.Message): + __slots__ = ["value"] + VALUE_FIELD_NUMBER: _ClassVar[int] + value: str + def __init__(self, value: _Optional[str] = ...) -> None: ... + +class PluginOverride(_message.Message): + __slots__ = ["task_type", "plugin_id", "missing_plugin_behavior"] + class MissingPluginBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + FAIL: _ClassVar[PluginOverride.MissingPluginBehavior] + USE_DEFAULT: _ClassVar[PluginOverride.MissingPluginBehavior] + FAIL: PluginOverride.MissingPluginBehavior + USE_DEFAULT: PluginOverride.MissingPluginBehavior + TASK_TYPE_FIELD_NUMBER: _ClassVar[int] + PLUGIN_ID_FIELD_NUMBER: _ClassVar[int] + MISSING_PLUGIN_BEHAVIOR_FIELD_NUMBER: _ClassVar[int] + task_type: str + plugin_id: _containers.RepeatedScalarFieldContainer[str] + missing_plugin_behavior: PluginOverride.MissingPluginBehavior + def __init__(self, task_type: _Optional[str] = ..., plugin_id: _Optional[_Iterable[str]] = ..., missing_plugin_behavior: _Optional[_Union[PluginOverride.MissingPluginBehavior, str]] = ...) -> None: ... + +class PluginOverrides(_message.Message): + __slots__ = ["overrides"] + OVERRIDES_FIELD_NUMBER: _ClassVar[int] + overrides: _containers.RepeatedCompositeFieldContainer[PluginOverride] + def __init__(self, overrides: _Optional[_Iterable[_Union[PluginOverride, _Mapping]]] = ...) -> None: ... + +class WorkflowExecutionConfig(_message.Message): + __slots__ = ["max_parallelism", "security_context", "raw_output_data_config", "labels", "annotations", "interruptible", "overwrite_cache", "envs"] + MAX_PARALLELISM_FIELD_NUMBER: _ClassVar[int] + SECURITY_CONTEXT_FIELD_NUMBER: _ClassVar[int] + RAW_OUTPUT_DATA_CONFIG_FIELD_NUMBER: _ClassVar[int] + LABELS_FIELD_NUMBER: _ClassVar[int] + ANNOTATIONS_FIELD_NUMBER: _ClassVar[int] + INTERRUPTIBLE_FIELD_NUMBER: _ClassVar[int] + OVERWRITE_CACHE_FIELD_NUMBER: _ClassVar[int] + ENVS_FIELD_NUMBER: _ClassVar[int] + max_parallelism: int + security_context: _security_pb2.SecurityContext + raw_output_data_config: _common_pb2.RawOutputDataConfig + labels: _common_pb2.Labels + annotations: _common_pb2.Annotations + interruptible: _wrappers_pb2.BoolValue + overwrite_cache: bool + envs: _common_pb2.Envs + def __init__(self, max_parallelism: _Optional[int] = ..., security_context: _Optional[_Union[_security_pb2.SecurityContext, _Mapping]] = ..., raw_output_data_config: _Optional[_Union[_common_pb2.RawOutputDataConfig, _Mapping]] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., annotations: _Optional[_Union[_common_pb2.Annotations, _Mapping]] = ..., interruptible: _Optional[_Union[_wrappers_pb2.BoolValue, _Mapping]] = ..., overwrite_cache: bool = ..., envs: _Optional[_Union[_common_pb2.Envs, _Mapping]] = ...) -> None: ... + +class MatchingAttributes(_message.Message): + __slots__ = ["task_resource_attributes", "cluster_resource_attributes", "execution_queue_attributes", "execution_cluster_label", "quality_of_service", "plugin_overrides", "workflow_execution_config", "cluster_assignment"] + TASK_RESOURCE_ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + CLUSTER_RESOURCE_ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + EXECUTION_QUEUE_ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + EXECUTION_CLUSTER_LABEL_FIELD_NUMBER: _ClassVar[int] + QUALITY_OF_SERVICE_FIELD_NUMBER: _ClassVar[int] + PLUGIN_OVERRIDES_FIELD_NUMBER: _ClassVar[int] + WORKFLOW_EXECUTION_CONFIG_FIELD_NUMBER: _ClassVar[int] + CLUSTER_ASSIGNMENT_FIELD_NUMBER: _ClassVar[int] + task_resource_attributes: TaskResourceAttributes + cluster_resource_attributes: ClusterResourceAttributes + execution_queue_attributes: ExecutionQueueAttributes + execution_cluster_label: ExecutionClusterLabel + quality_of_service: _execution_pb2.QualityOfService + plugin_overrides: PluginOverrides + workflow_execution_config: WorkflowExecutionConfig + cluster_assignment: _cluster_assignment_pb2.ClusterAssignment + 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"] + 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] + 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: ... + +class ListMatchableAttributesRequest(_message.Message): + __slots__ = ["resource_type"] + RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + resource_type: MatchableResource + def __init__(self, resource_type: _Optional[_Union[MatchableResource, str]] = ...) -> None: ... + +class ListMatchableAttributesResponse(_message.Message): + __slots__ = ["configurations"] + CONFIGURATIONS_FIELD_NUMBER: _ClassVar[int] + configurations: _containers.RepeatedCompositeFieldContainer[MatchableAttributesConfiguration] + def __init__(self, configurations: _Optional[_Iterable[_Union[MatchableAttributesConfiguration, _Mapping]]] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/matchable_resource_pb2_grpc.py b/build/lib/flyteidl/admin/matchable_resource_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/matchable_resource_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/node_execution_pb2.py b/build/lib/flyteidl/admin/node_execution_pb2.py new file mode 100644 index 000000000..0eb0b0297 --- /dev/null +++ b/build/lib/flyteidl/admin/node_execution_pb2.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/node_execution.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 +from flyteidl.core import execution_pb2 as flyteidl_dot_core_dot_execution__pb2 +from flyteidl.core import catalog_pb2 as flyteidl_dot_core_dot_catalog__pb2 +from flyteidl.core import compiler_pb2 as flyteidl_dot_core_dot_compiler__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#flyteidl/admin/node_execution.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1b\x66lyteidl/core/catalog.proto\x1a\x1c\x66lyteidl/core/compiler.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\"Q\n\x17NodeExecutionGetRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x02id\"\x99\x02\n\x18NodeExecutionListRequest\x12^\n\x15workflow_execution_id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x13workflowExecutionId\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\x12(\n\x10unique_parent_id\x18\x06 \x01(\tR\x0euniqueParentId\"\xea\x01\n\x1fNodeExecutionForTaskListRequest\x12R\n\x11task_execution_id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x0ftaskExecutionId\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\"\xe7\x01\n\rNodeExecution\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x02id\x12\x1b\n\tinput_uri\x18\x02 \x01(\tR\x08inputUri\x12>\n\x07\x63losure\x18\x03 \x01(\x0b\x32$.flyteidl.admin.NodeExecutionClosureR\x07\x63losure\x12\x41\n\x08metadata\x18\x04 \x01(\x0b\x32%.flyteidl.admin.NodeExecutionMetaDataR\x08metadata\"\x9f\x01\n\x15NodeExecutionMetaData\x12\x1f\n\x0bretry_group\x18\x01 \x01(\tR\nretryGroup\x12$\n\x0eis_parent_node\x18\x02 \x01(\x08R\x0cisParentNode\x12 \n\x0cspec_node_id\x18\x03 \x01(\tR\nspecNodeId\x12\x1d\n\nis_dynamic\x18\x04 \x01(\x08R\tisDynamic\"q\n\x11NodeExecutionList\x12\x46\n\x0fnode_executions\x18\x01 \x03(\x0b\x32\x1d.flyteidl.admin.NodeExecutionR\x0enodeExecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\xf6\x05\n\x14NodeExecutionClosure\x12#\n\noutput_uri\x18\x01 \x01(\tB\x02\x18\x01H\x00R\toutputUri\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12@\n\x0boutput_data\x18\n \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x38\n\x05phase\x18\x03 \x01(\x0e\x32\".flyteidl.core.NodeExecution.PhaseR\x05phase\x12\x39\n\nstarted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\\\n\x16workflow_node_metadata\x18\x08 \x01(\x0b\x32$.flyteidl.admin.WorkflowNodeMetadataH\x01R\x14workflowNodeMetadata\x12P\n\x12task_node_metadata\x18\t \x01(\x0b\x32 .flyteidl.admin.TaskNodeMetadataH\x01R\x10taskNodeMetadata\x12\x19\n\x08\x64\x65\x63k_uri\x18\x0b \x01(\tR\x07\x64\x65\x63kUri\x12/\n\x14\x64ynamic_job_spec_uri\x18\x0c \x01(\tR\x11\x64ynamicJobSpecUriB\x0f\n\routput_resultB\x11\n\x0ftarget_metadata\"d\n\x14WorkflowNodeMetadata\x12L\n\x0b\x65xecutionId\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId\"\xc0\x01\n\x10TaskNodeMetadata\x12\x44\n\x0c\x63\x61\x63he_status\x18\x01 \x01(\x0e\x32!.flyteidl.core.CatalogCacheStatusR\x0b\x63\x61\x63heStatus\x12?\n\x0b\x63\x61talog_key\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.CatalogMetadataR\ncatalogKey\x12%\n\x0e\x63heckpoint_uri\x18\x04 \x01(\tR\rcheckpointUri\"\xce\x01\n\x1b\x44ynamicWorkflowNodeMetadata\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12S\n\x11\x63ompiled_workflow\x18\x02 \x01(\x0b\x32&.flyteidl.core.CompiledWorkflowClosureR\x10\x63ompiledWorkflow\x12/\n\x14\x64ynamic_job_spec_uri\x18\x03 \x01(\tR\x11\x64ynamicJobSpecUri\"U\n\x1bNodeExecutionGetDataRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x02id\"\x96\x03\n\x1cNodeExecutionGetDataResponse\x12\x33\n\x06inputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12\x35\n\x07outputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\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\x12V\n\x10\x64ynamic_workflow\x18\x10 \x01(\x0b\x32+.flyteidl.admin.DynamicWorkflowNodeMetadataR\x0f\x64ynamicWorkflow\x12\x38\n\nflyte_urls\x18\x11 \x01(\x0b\x32\x19.flyteidl.admin.FlyteURLsR\tflyteUrlsB\xb8\x01\n\x12\x63om.flyteidl.adminB\x12NodeExecutionProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.node_execution_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\022NodeExecutionProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _NODEEXECUTIONCLOSURE.fields_by_name['output_uri']._options = None + _NODEEXECUTIONCLOSURE.fields_by_name['output_uri']._serialized_options = b'\030\001' + _NODEEXECUTIONCLOSURE.fields_by_name['output_data']._options = None + _NODEEXECUTIONCLOSURE.fields_by_name['output_data']._serialized_options = b'\030\001' + _NODEEXECUTIONGETDATARESPONSE.fields_by_name['inputs']._options = None + _NODEEXECUTIONGETDATARESPONSE.fields_by_name['inputs']._serialized_options = b'\030\001' + _NODEEXECUTIONGETDATARESPONSE.fields_by_name['outputs']._options = None + _NODEEXECUTIONGETDATARESPONSE.fields_by_name['outputs']._serialized_options = b'\030\001' + _globals['_NODEEXECUTIONGETREQUEST']._serialized_start=301 + _globals['_NODEEXECUTIONGETREQUEST']._serialized_end=382 + _globals['_NODEEXECUTIONLISTREQUEST']._serialized_start=385 + _globals['_NODEEXECUTIONLISTREQUEST']._serialized_end=666 + _globals['_NODEEXECUTIONFORTASKLISTREQUEST']._serialized_start=669 + _globals['_NODEEXECUTIONFORTASKLISTREQUEST']._serialized_end=903 + _globals['_NODEEXECUTION']._serialized_start=906 + _globals['_NODEEXECUTION']._serialized_end=1137 + _globals['_NODEEXECUTIONMETADATA']._serialized_start=1140 + _globals['_NODEEXECUTIONMETADATA']._serialized_end=1299 + _globals['_NODEEXECUTIONLIST']._serialized_start=1301 + _globals['_NODEEXECUTIONLIST']._serialized_end=1414 + _globals['_NODEEXECUTIONCLOSURE']._serialized_start=1417 + _globals['_NODEEXECUTIONCLOSURE']._serialized_end=2175 + _globals['_WORKFLOWNODEMETADATA']._serialized_start=2177 + _globals['_WORKFLOWNODEMETADATA']._serialized_end=2277 + _globals['_TASKNODEMETADATA']._serialized_start=2280 + _globals['_TASKNODEMETADATA']._serialized_end=2472 + _globals['_DYNAMICWORKFLOWNODEMETADATA']._serialized_start=2475 + _globals['_DYNAMICWORKFLOWNODEMETADATA']._serialized_end=2681 + _globals['_NODEEXECUTIONGETDATAREQUEST']._serialized_start=2683 + _globals['_NODEEXECUTIONGETDATAREQUEST']._serialized_end=2768 + _globals['_NODEEXECUTIONGETDATARESPONSE']._serialized_start=2771 + _globals['_NODEEXECUTIONGETDATARESPONSE']._serialized_end=3177 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/node_execution_pb2.pyi b/build/lib/flyteidl/admin/node_execution_pb2.pyi new file mode 100644 index 000000000..6bb94b11d --- /dev/null +++ b/build/lib/flyteidl/admin/node_execution_pb2.pyi @@ -0,0 +1,158 @@ +from flyteidl.admin import common_pb2 as _common_pb2 +from flyteidl.core import execution_pb2 as _execution_pb2 +from flyteidl.core import catalog_pb2 as _catalog_pb2 +from flyteidl.core import compiler_pb2 as _compiler_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class NodeExecutionGetRequest(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.NodeExecutionIdentifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class NodeExecutionListRequest(_message.Message): + __slots__ = ["workflow_execution_id", "limit", "token", "filters", "sort_by", "unique_parent_id"] + WORKFLOW_EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + LIMIT_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + FILTERS_FIELD_NUMBER: _ClassVar[int] + SORT_BY_FIELD_NUMBER: _ClassVar[int] + UNIQUE_PARENT_ID_FIELD_NUMBER: _ClassVar[int] + workflow_execution_id: _identifier_pb2.WorkflowExecutionIdentifier + limit: int + token: str + filters: str + sort_by: _common_pb2.Sort + unique_parent_id: str + def __init__(self, workflow_execution_id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., filters: _Optional[str] = ..., sort_by: _Optional[_Union[_common_pb2.Sort, _Mapping]] = ..., unique_parent_id: _Optional[str] = ...) -> None: ... + +class NodeExecutionForTaskListRequest(_message.Message): + __slots__ = ["task_execution_id", "limit", "token", "filters", "sort_by"] + TASK_EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + LIMIT_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + FILTERS_FIELD_NUMBER: _ClassVar[int] + SORT_BY_FIELD_NUMBER: _ClassVar[int] + task_execution_id: _identifier_pb2.TaskExecutionIdentifier + limit: int + token: str + filters: str + sort_by: _common_pb2.Sort + def __init__(self, task_execution_id: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., filters: _Optional[str] = ..., sort_by: _Optional[_Union[_common_pb2.Sort, _Mapping]] = ...) -> None: ... + +class NodeExecution(_message.Message): + __slots__ = ["id", "input_uri", "closure", "metadata"] + ID_FIELD_NUMBER: _ClassVar[int] + INPUT_URI_FIELD_NUMBER: _ClassVar[int] + CLOSURE_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.NodeExecutionIdentifier + input_uri: str + closure: NodeExecutionClosure + metadata: NodeExecutionMetaData + def __init__(self, id: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ..., input_uri: _Optional[str] = ..., closure: _Optional[_Union[NodeExecutionClosure, _Mapping]] = ..., metadata: _Optional[_Union[NodeExecutionMetaData, _Mapping]] = ...) -> None: ... + +class NodeExecutionMetaData(_message.Message): + __slots__ = ["retry_group", "is_parent_node", "spec_node_id", "is_dynamic"] + RETRY_GROUP_FIELD_NUMBER: _ClassVar[int] + IS_PARENT_NODE_FIELD_NUMBER: _ClassVar[int] + SPEC_NODE_ID_FIELD_NUMBER: _ClassVar[int] + IS_DYNAMIC_FIELD_NUMBER: _ClassVar[int] + retry_group: str + is_parent_node: bool + spec_node_id: str + is_dynamic: bool + def __init__(self, retry_group: _Optional[str] = ..., is_parent_node: bool = ..., spec_node_id: _Optional[str] = ..., is_dynamic: bool = ...) -> None: ... + +class NodeExecutionList(_message.Message): + __slots__ = ["node_executions", "token"] + NODE_EXECUTIONS_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + node_executions: _containers.RepeatedCompositeFieldContainer[NodeExecution] + token: str + def __init__(self, node_executions: _Optional[_Iterable[_Union[NodeExecution, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class NodeExecutionClosure(_message.Message): + __slots__ = ["output_uri", "error", "output_data", "phase", "started_at", "duration", "created_at", "updated_at", "workflow_node_metadata", "task_node_metadata", "deck_uri", "dynamic_job_spec_uri"] + OUTPUT_URI_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + OUTPUT_DATA_FIELD_NUMBER: _ClassVar[int] + PHASE_FIELD_NUMBER: _ClassVar[int] + STARTED_AT_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + WORKFLOW_NODE_METADATA_FIELD_NUMBER: _ClassVar[int] + TASK_NODE_METADATA_FIELD_NUMBER: _ClassVar[int] + DECK_URI_FIELD_NUMBER: _ClassVar[int] + DYNAMIC_JOB_SPEC_URI_FIELD_NUMBER: _ClassVar[int] + output_uri: str + error: _execution_pb2.ExecutionError + output_data: _literals_pb2.LiteralMap + phase: _execution_pb2.NodeExecution.Phase + started_at: _timestamp_pb2.Timestamp + duration: _duration_pb2.Duration + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + workflow_node_metadata: WorkflowNodeMetadata + task_node_metadata: TaskNodeMetadata + deck_uri: str + dynamic_job_spec_uri: str + def __init__(self, output_uri: _Optional[str] = ..., error: _Optional[_Union[_execution_pb2.ExecutionError, _Mapping]] = ..., output_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., phase: _Optional[_Union[_execution_pb2.NodeExecution.Phase, str]] = ..., started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., workflow_node_metadata: _Optional[_Union[WorkflowNodeMetadata, _Mapping]] = ..., task_node_metadata: _Optional[_Union[TaskNodeMetadata, _Mapping]] = ..., deck_uri: _Optional[str] = ..., dynamic_job_spec_uri: _Optional[str] = ...) -> None: ... + +class WorkflowNodeMetadata(_message.Message): + __slots__ = ["executionId"] + EXECUTIONID_FIELD_NUMBER: _ClassVar[int] + executionId: _identifier_pb2.WorkflowExecutionIdentifier + def __init__(self, executionId: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class TaskNodeMetadata(_message.Message): + __slots__ = ["cache_status", "catalog_key", "checkpoint_uri"] + CACHE_STATUS_FIELD_NUMBER: _ClassVar[int] + CATALOG_KEY_FIELD_NUMBER: _ClassVar[int] + CHECKPOINT_URI_FIELD_NUMBER: _ClassVar[int] + cache_status: _catalog_pb2.CatalogCacheStatus + catalog_key: _catalog_pb2.CatalogMetadata + checkpoint_uri: str + def __init__(self, cache_status: _Optional[_Union[_catalog_pb2.CatalogCacheStatus, str]] = ..., catalog_key: _Optional[_Union[_catalog_pb2.CatalogMetadata, _Mapping]] = ..., checkpoint_uri: _Optional[str] = ...) -> None: ... + +class DynamicWorkflowNodeMetadata(_message.Message): + __slots__ = ["id", "compiled_workflow", "dynamic_job_spec_uri"] + ID_FIELD_NUMBER: _ClassVar[int] + COMPILED_WORKFLOW_FIELD_NUMBER: _ClassVar[int] + DYNAMIC_JOB_SPEC_URI_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + compiled_workflow: _compiler_pb2.CompiledWorkflowClosure + dynamic_job_spec_uri: str + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., compiled_workflow: _Optional[_Union[_compiler_pb2.CompiledWorkflowClosure, _Mapping]] = ..., dynamic_job_spec_uri: _Optional[str] = ...) -> None: ... + +class NodeExecutionGetDataRequest(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.NodeExecutionIdentifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class NodeExecutionGetDataResponse(_message.Message): + __slots__ = ["inputs", "outputs", "full_inputs", "full_outputs", "dynamic_workflow", "flyte_urls"] + INPUTS_FIELD_NUMBER: _ClassVar[int] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + FULL_INPUTS_FIELD_NUMBER: _ClassVar[int] + FULL_OUTPUTS_FIELD_NUMBER: _ClassVar[int] + DYNAMIC_WORKFLOW_FIELD_NUMBER: _ClassVar[int] + FLYTE_URLS_FIELD_NUMBER: _ClassVar[int] + inputs: _common_pb2.UrlBlob + outputs: _common_pb2.UrlBlob + full_inputs: _literals_pb2.LiteralMap + full_outputs: _literals_pb2.LiteralMap + dynamic_workflow: DynamicWorkflowNodeMetadata + flyte_urls: _common_pb2.FlyteURLs + def __init__(self, inputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., outputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., full_inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., full_outputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., dynamic_workflow: _Optional[_Union[DynamicWorkflowNodeMetadata, _Mapping]] = ..., flyte_urls: _Optional[_Union[_common_pb2.FlyteURLs, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/node_execution_pb2_grpc.py b/build/lib/flyteidl/admin/node_execution_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/node_execution_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/notification_pb2.py b/build/lib/flyteidl/admin/notification_pb2.py new file mode 100644 index 000000000..f6e088287 --- /dev/null +++ b/build/lib/flyteidl/admin/notification_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/notification.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!flyteidl/admin/notification.proto\x12\x0e\x66lyteidl.admin\"\x93\x01\n\x0c\x45mailMessage\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\x12!\n\x0csender_email\x18\x02 \x01(\tR\x0bsenderEmail\x12!\n\x0csubject_line\x18\x03 \x01(\tR\x0bsubjectLine\x12\x12\n\x04\x62ody\x18\x04 \x01(\tR\x04\x62odyB\xb7\x01\n\x12\x63om.flyteidl.adminB\x11NotificationProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.notification_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\021NotificationProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_EMAILMESSAGE']._serialized_start=54 + _globals['_EMAILMESSAGE']._serialized_end=201 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/notification_pb2.pyi b/build/lib/flyteidl/admin/notification_pb2.pyi new file mode 100644 index 000000000..5a06a72f3 --- /dev/null +++ b/build/lib/flyteidl/admin/notification_pb2.pyi @@ -0,0 +1,18 @@ +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Optional as _Optional + +DESCRIPTOR: _descriptor.FileDescriptor + +class EmailMessage(_message.Message): + __slots__ = ["recipients_email", "sender_email", "subject_line", "body"] + RECIPIENTS_EMAIL_FIELD_NUMBER: _ClassVar[int] + SENDER_EMAIL_FIELD_NUMBER: _ClassVar[int] + SUBJECT_LINE_FIELD_NUMBER: _ClassVar[int] + BODY_FIELD_NUMBER: _ClassVar[int] + recipients_email: _containers.RepeatedScalarFieldContainer[str] + sender_email: str + subject_line: str + body: str + def __init__(self, recipients_email: _Optional[_Iterable[str]] = ..., sender_email: _Optional[str] = ..., subject_line: _Optional[str] = ..., body: _Optional[str] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/notification_pb2_grpc.py b/build/lib/flyteidl/admin/notification_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/notification_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/project_attributes_pb2.py b/build/lib/flyteidl/admin/project_attributes_pb2.py new file mode 100644 index 000000000..942db24c3 --- /dev/null +++ b/build/lib/flyteidl/admin/project_attributes_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/project_attributes.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +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\xbc\x01\n\x12\x63om.flyteidl.adminB\x16ProjectAttributesProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.project_attributes_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\026ProjectAttributesProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_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 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/project_attributes_pb2.pyi b/build/lib/flyteidl/admin/project_attributes_pb2.pyi new file mode 100644 index 000000000..8ad0997ac --- /dev/null +++ b/build/lib/flyteidl/admin/project_attributes_pb2.pyi @@ -0,0 +1,50 @@ +from flyteidl.admin import matchable_resource_pb2 as _matchable_resource_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class ProjectAttributes(_message.Message): + __slots__ = ["project", "matching_attributes"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + MATCHING_ATTRIBUTES_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: ... + +class ProjectAttributesUpdateRequest(_message.Message): + __slots__ = ["attributes"] + ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + attributes: ProjectAttributes + def __init__(self, attributes: _Optional[_Union[ProjectAttributes, _Mapping]] = ...) -> None: ... + +class ProjectAttributesUpdateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class ProjectAttributesGetRequest(_message.Message): + __slots__ = ["project", "resource_type"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + RESOURCE_TYPE_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: ... + +class ProjectAttributesGetResponse(_message.Message): + __slots__ = ["attributes"] + ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + attributes: ProjectAttributes + def __init__(self, attributes: _Optional[_Union[ProjectAttributes, _Mapping]] = ...) -> None: ... + +class ProjectAttributesDeleteRequest(_message.Message): + __slots__ = ["project", "resource_type"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + RESOURCE_TYPE_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: ... + +class ProjectAttributesDeleteResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... diff --git a/build/lib/flyteidl/admin/project_attributes_pb2_grpc.py b/build/lib/flyteidl/admin/project_attributes_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/project_attributes_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/project_domain_attributes_pb2.py b/build/lib/flyteidl/admin/project_domain_attributes_pb2.py new file mode 100644 index 000000000..bc545863c --- /dev/null +++ b/build/lib/flyteidl/admin/project_domain_attributes_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/project_domain_attributes.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +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\xc2\x01\n\x12\x63om.flyteidl.adminB\x1cProjectDomainAttributesProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.project_domain_attributes_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\034ProjectDomainAttributesProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_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 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/project_domain_attributes_pb2.pyi b/build/lib/flyteidl/admin/project_domain_attributes_pb2.pyi new file mode 100644 index 000000000..af8624ca2 --- /dev/null +++ b/build/lib/flyteidl/admin/project_domain_attributes_pb2.pyi @@ -0,0 +1,56 @@ +from flyteidl.admin import matchable_resource_pb2 as _matchable_resource_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class ProjectDomainAttributes(_message.Message): + __slots__ = ["project", "domain", "matching_attributes"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + DOMAIN_FIELD_NUMBER: _ClassVar[int] + MATCHING_ATTRIBUTES_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: ... + +class ProjectDomainAttributesUpdateRequest(_message.Message): + __slots__ = ["attributes"] + ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + attributes: ProjectDomainAttributes + def __init__(self, attributes: _Optional[_Union[ProjectDomainAttributes, _Mapping]] = ...) -> None: ... + +class ProjectDomainAttributesUpdateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class ProjectDomainAttributesGetRequest(_message.Message): + __slots__ = ["project", "domain", "resource_type"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + DOMAIN_FIELD_NUMBER: _ClassVar[int] + RESOURCE_TYPE_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: ... + +class ProjectDomainAttributesGetResponse(_message.Message): + __slots__ = ["attributes"] + ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + attributes: ProjectDomainAttributes + def __init__(self, attributes: _Optional[_Union[ProjectDomainAttributes, _Mapping]] = ...) -> None: ... + +class ProjectDomainAttributesDeleteRequest(_message.Message): + __slots__ = ["project", "domain", "resource_type"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + DOMAIN_FIELD_NUMBER: _ClassVar[int] + RESOURCE_TYPE_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: ... + +class ProjectDomainAttributesDeleteResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... diff --git a/build/lib/flyteidl/admin/project_domain_attributes_pb2_grpc.py b/build/lib/flyteidl/admin/project_domain_attributes_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/project_domain_attributes_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/project_pb2.py b/build/lib/flyteidl/admin/project_pb2.py new file mode 100644 index 000000000..b93637251 --- /dev/null +++ b/build/lib/flyteidl/admin/project_pb2.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/project.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +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\xb2\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.project_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\014ProjectProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_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 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/project_pb2.pyi b/build/lib/flyteidl/admin/project_pb2.pyi new file mode 100644 index 000000000..33b5106c8 --- /dev/null +++ b/build/lib/flyteidl/admin/project_pb2.pyi @@ -0,0 +1,74 @@ +from flyteidl.admin import common_pb2 as _common_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Domain(_message.Message): + __slots__ = ["id", "name"] + ID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + id: str + name: str + def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... + +class Project(_message.Message): + __slots__ = ["id", "name", "domains", "description", "labels", "state"] + class ProjectState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + ACTIVE: _ClassVar[Project.ProjectState] + ARCHIVED: _ClassVar[Project.ProjectState] + SYSTEM_GENERATED: _ClassVar[Project.ProjectState] + ACTIVE: Project.ProjectState + ARCHIVED: Project.ProjectState + SYSTEM_GENERATED: Project.ProjectState + ID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + DOMAINS_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + LABELS_FIELD_NUMBER: _ClassVar[int] + STATE_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: ... + +class Projects(_message.Message): + __slots__ = ["projects", "token"] + PROJECTS_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + projects: _containers.RepeatedCompositeFieldContainer[Project] + token: str + def __init__(self, projects: _Optional[_Iterable[_Union[Project, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class ProjectListRequest(_message.Message): + __slots__ = ["limit", "token", "filters", "sort_by"] + LIMIT_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + FILTERS_FIELD_NUMBER: _ClassVar[int] + SORT_BY_FIELD_NUMBER: _ClassVar[int] + limit: int + token: str + filters: str + sort_by: _common_pb2.Sort + def __init__(self, limit: _Optional[int] = ..., token: _Optional[str] = ..., filters: _Optional[str] = ..., sort_by: _Optional[_Union[_common_pb2.Sort, _Mapping]] = ...) -> None: ... + +class ProjectRegisterRequest(_message.Message): + __slots__ = ["project"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + project: Project + def __init__(self, project: _Optional[_Union[Project, _Mapping]] = ...) -> None: ... + +class ProjectRegisterResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class ProjectUpdateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... diff --git a/build/lib/flyteidl/admin/project_pb2_grpc.py b/build/lib/flyteidl/admin/project_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/project_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/schedule_pb2.py b/build/lib/flyteidl/admin/schedule_pb2.py new file mode 100644 index 000000000..16d85b792 --- /dev/null +++ b/build/lib/flyteidl/admin/schedule_pb2.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/schedule.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/admin/schedule.proto\x12\x0e\x66lyteidl.admin\"T\n\tFixedRate\x12\x14\n\x05value\x18\x01 \x01(\rR\x05value\x12\x31\n\x04unit\x18\x02 \x01(\x0e\x32\x1d.flyteidl.admin.FixedRateUnitR\x04unit\"B\n\x0c\x43ronSchedule\x12\x1a\n\x08schedule\x18\x01 \x01(\tR\x08schedule\x12\x16\n\x06offset\x18\x02 \x01(\tR\x06offset\"\xfa\x01\n\x08Schedule\x12-\n\x0f\x63ron_expression\x18\x01 \x01(\tB\x02\x18\x01H\x00R\x0e\x63ronExpression\x12/\n\x04rate\x18\x02 \x01(\x0b\x32\x19.flyteidl.admin.FixedRateH\x00R\x04rate\x12\x43\n\rcron_schedule\x18\x04 \x01(\x0b\x32\x1c.flyteidl.admin.CronScheduleH\x00R\x0c\x63ronSchedule\x12\x33\n\x16kickoff_time_input_arg\x18\x03 \x01(\tR\x13kickoffTimeInputArgB\x14\n\x12ScheduleExpression*.\n\rFixedRateUnit\x12\n\n\x06MINUTE\x10\x00\x12\x08\n\x04HOUR\x10\x01\x12\x07\n\x03\x44\x41Y\x10\x02\x42\xb3\x01\n\x12\x63om.flyteidl.adminB\rScheduleProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.schedule_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\rScheduleProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _SCHEDULE.fields_by_name['cron_expression']._options = None + _SCHEDULE.fields_by_name['cron_expression']._serialized_options = b'\030\001' + _globals['_FIXEDRATEUNIT']._serialized_start=456 + _globals['_FIXEDRATEUNIT']._serialized_end=502 + _globals['_FIXEDRATE']._serialized_start=49 + _globals['_FIXEDRATE']._serialized_end=133 + _globals['_CRONSCHEDULE']._serialized_start=135 + _globals['_CRONSCHEDULE']._serialized_end=201 + _globals['_SCHEDULE']._serialized_start=204 + _globals['_SCHEDULE']._serialized_end=454 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/schedule_pb2.pyi b/build/lib/flyteidl/admin/schedule_pb2.pyi new file mode 100644 index 000000000..a9f1a2d13 --- /dev/null +++ b/build/lib/flyteidl/admin/schedule_pb2.pyi @@ -0,0 +1,43 @@ +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 +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class FixedRateUnit(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MINUTE: _ClassVar[FixedRateUnit] + HOUR: _ClassVar[FixedRateUnit] + DAY: _ClassVar[FixedRateUnit] +MINUTE: FixedRateUnit +HOUR: FixedRateUnit +DAY: FixedRateUnit + +class FixedRate(_message.Message): + __slots__ = ["value", "unit"] + VALUE_FIELD_NUMBER: _ClassVar[int] + UNIT_FIELD_NUMBER: _ClassVar[int] + value: int + unit: FixedRateUnit + def __init__(self, value: _Optional[int] = ..., unit: _Optional[_Union[FixedRateUnit, str]] = ...) -> None: ... + +class CronSchedule(_message.Message): + __slots__ = ["schedule", "offset"] + SCHEDULE_FIELD_NUMBER: _ClassVar[int] + OFFSET_FIELD_NUMBER: _ClassVar[int] + schedule: str + offset: str + def __init__(self, schedule: _Optional[str] = ..., offset: _Optional[str] = ...) -> None: ... + +class Schedule(_message.Message): + __slots__ = ["cron_expression", "rate", "cron_schedule", "kickoff_time_input_arg"] + CRON_EXPRESSION_FIELD_NUMBER: _ClassVar[int] + RATE_FIELD_NUMBER: _ClassVar[int] + CRON_SCHEDULE_FIELD_NUMBER: _ClassVar[int] + KICKOFF_TIME_INPUT_ARG_FIELD_NUMBER: _ClassVar[int] + cron_expression: str + rate: FixedRate + cron_schedule: CronSchedule + kickoff_time_input_arg: str + def __init__(self, cron_expression: _Optional[str] = ..., rate: _Optional[_Union[FixedRate, _Mapping]] = ..., cron_schedule: _Optional[_Union[CronSchedule, _Mapping]] = ..., kickoff_time_input_arg: _Optional[str] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/schedule_pb2_grpc.py b/build/lib/flyteidl/admin/schedule_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/schedule_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/signal_pb2.py b/build/lib/flyteidl/admin/signal_pb2.py new file mode 100644 index 000000000..3d2a2c066 --- /dev/null +++ b/build/lib/flyteidl/admin/signal_pb2.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/signal.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 +from flyteidl.core import types_pb2 as flyteidl_dot_core_dot_types__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lyteidl/admin/signal.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x19\x66lyteidl/core/types.proto\"{\n\x18SignalGetOrCreateRequest\x12/\n\x02id\x18\x01 \x01(\x0b\x32\x1f.flyteidl.core.SignalIdentifierR\x02id\x12.\n\x04type\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x04type\"\xe8\x01\n\x11SignalListRequest\x12^\n\x15workflow_execution_id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x13workflowExecutionId\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\"T\n\nSignalList\x12\x30\n\x07signals\x18\x01 \x03(\x0b\x32\x16.flyteidl.admin.SignalR\x07signals\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"q\n\x10SignalSetRequest\x12/\n\x02id\x18\x01 \x01(\x0b\x32\x1f.flyteidl.core.SignalIdentifierR\x02id\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value\"\x13\n\x11SignalSetResponse\"\x97\x01\n\x06Signal\x12/\n\x02id\x18\x01 \x01(\x0b\x32\x1f.flyteidl.core.SignalIdentifierR\x02id\x12.\n\x04type\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x04type\x12,\n\x05value\x18\x03 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05valueB\xb1\x01\n\x12\x63om.flyteidl.adminB\x0bSignalProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.signal_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\013SignalProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_SIGNALGETORCREATEREQUEST']._serialized_start=165 + _globals['_SIGNALGETORCREATEREQUEST']._serialized_end=288 + _globals['_SIGNALLISTREQUEST']._serialized_start=291 + _globals['_SIGNALLISTREQUEST']._serialized_end=523 + _globals['_SIGNALLIST']._serialized_start=525 + _globals['_SIGNALLIST']._serialized_end=609 + _globals['_SIGNALSETREQUEST']._serialized_start=611 + _globals['_SIGNALSETREQUEST']._serialized_end=724 + _globals['_SIGNALSETRESPONSE']._serialized_start=726 + _globals['_SIGNALSETRESPONSE']._serialized_end=745 + _globals['_SIGNAL']._serialized_start=748 + _globals['_SIGNAL']._serialized_end=899 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/signal_pb2.pyi b/build/lib/flyteidl/admin/signal_pb2.pyi new file mode 100644 index 000000000..8dfac3143 --- /dev/null +++ b/build/lib/flyteidl/admin/signal_pb2.pyi @@ -0,0 +1,62 @@ +from flyteidl.admin import common_pb2 as _common_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from flyteidl.core import types_pb2 as _types_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class SignalGetOrCreateRequest(_message.Message): + __slots__ = ["id", "type"] + ID_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.SignalIdentifier + type: _types_pb2.LiteralType + def __init__(self, id: _Optional[_Union[_identifier_pb2.SignalIdentifier, _Mapping]] = ..., type: _Optional[_Union[_types_pb2.LiteralType, _Mapping]] = ...) -> None: ... + +class SignalListRequest(_message.Message): + __slots__ = ["workflow_execution_id", "limit", "token", "filters", "sort_by"] + WORKFLOW_EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + LIMIT_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + FILTERS_FIELD_NUMBER: _ClassVar[int] + SORT_BY_FIELD_NUMBER: _ClassVar[int] + workflow_execution_id: _identifier_pb2.WorkflowExecutionIdentifier + limit: int + token: str + filters: str + sort_by: _common_pb2.Sort + def __init__(self, workflow_execution_id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., filters: _Optional[str] = ..., sort_by: _Optional[_Union[_common_pb2.Sort, _Mapping]] = ...) -> None: ... + +class SignalList(_message.Message): + __slots__ = ["signals", "token"] + SIGNALS_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + signals: _containers.RepeatedCompositeFieldContainer[Signal] + token: str + def __init__(self, signals: _Optional[_Iterable[_Union[Signal, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class SignalSetRequest(_message.Message): + __slots__ = ["id", "value"] + ID_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.SignalIdentifier + value: _literals_pb2.Literal + def __init__(self, id: _Optional[_Union[_identifier_pb2.SignalIdentifier, _Mapping]] = ..., value: _Optional[_Union[_literals_pb2.Literal, _Mapping]] = ...) -> None: ... + +class SignalSetResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class Signal(_message.Message): + __slots__ = ["id", "type", "value"] + ID_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.SignalIdentifier + type: _types_pb2.LiteralType + value: _literals_pb2.Literal + def __init__(self, id: _Optional[_Union[_identifier_pb2.SignalIdentifier, _Mapping]] = ..., type: _Optional[_Union[_types_pb2.LiteralType, _Mapping]] = ..., value: _Optional[_Union[_literals_pb2.Literal, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/signal_pb2_grpc.py b/build/lib/flyteidl/admin/signal_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/signal_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/task_execution_pb2.py b/build/lib/flyteidl/admin/task_execution_pb2.py new file mode 100644 index 000000000..17a1fc991 --- /dev/null +++ b/build/lib/flyteidl/admin/task_execution_pb2.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/task_execution.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 +from flyteidl.core import execution_pb2 as flyteidl_dot_core_dot_execution__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 +from flyteidl.event import event_pb2 as flyteidl_dot_event_dot_event__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#flyteidl/admin/task_execution.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1a\x66lyteidl/event/event.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\"Q\n\x17TaskExecutionGetRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x02id\"\xe3\x01\n\x18TaskExecutionListRequest\x12R\n\x11node_execution_id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x0fnodeExecutionId\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\"\xc1\x01\n\rTaskExecution\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x02id\x12\x1b\n\tinput_uri\x18\x02 \x01(\tR\x08inputUri\x12>\n\x07\x63losure\x18\x03 \x01(\x0b\x32$.flyteidl.admin.TaskExecutionClosureR\x07\x63losure\x12\x1b\n\tis_parent\x18\x04 \x01(\x08R\x08isParent\"q\n\x11TaskExecutionList\x12\x46\n\x0ftask_executions\x18\x01 \x03(\x0b\x32\x1d.flyteidl.admin.TaskExecutionR\x0etaskExecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x9c\x06\n\x14TaskExecutionClosure\x12#\n\noutput_uri\x18\x01 \x01(\tB\x02\x18\x01H\x00R\toutputUri\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12@\n\x0boutput_data\x18\x0c \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x38\n\x05phase\x18\x03 \x01(\x0e\x32\".flyteidl.core.TaskExecution.PhaseR\x05phase\x12*\n\x04logs\x18\x04 \x03(\x0b\x32\x16.flyteidl.core.TaskLogR\x04logs\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\x38\n\x0b\x63ustom_info\x18\t \x01(\x0b\x32\x17.google.protobuf.StructR\ncustomInfo\x12\x16\n\x06reason\x18\n \x01(\tR\x06reason\x12\x1b\n\ttask_type\x18\x0b \x01(\tR\x08taskType\x12\x41\n\x08metadata\x18\x10 \x01(\x0b\x32%.flyteidl.event.TaskExecutionMetadataR\x08metadata\x12#\n\revent_version\x18\x11 \x01(\x05R\x0c\x65ventVersion\x12\x30\n\x07reasons\x18\x12 \x03(\x0b\x32\x16.flyteidl.admin.ReasonR\x07reasonsB\x0f\n\routput_result\"_\n\x06Reason\x12;\n\x0boccurred_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\"U\n\x1bTaskExecutionGetDataRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x02id\"\xbe\x02\n\x1cTaskExecutionGetDataResponse\x12\x33\n\x06inputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12\x35\n\x07outputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\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\x12\x38\n\nflyte_urls\x18\x05 \x01(\x0b\x32\x19.flyteidl.admin.FlyteURLsR\tflyteUrlsB\xb8\x01\n\x12\x63om.flyteidl.adminB\x12TaskExecutionProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.task_execution_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\022TaskExecutionProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _TASKEXECUTIONCLOSURE.fields_by_name['output_uri']._options = None + _TASKEXECUTIONCLOSURE.fields_by_name['output_uri']._serialized_options = b'\030\001' + _TASKEXECUTIONCLOSURE.fields_by_name['output_data']._options = None + _TASKEXECUTIONCLOSURE.fields_by_name['output_data']._serialized_options = b'\030\001' + _TASKEXECUTIONGETDATARESPONSE.fields_by_name['inputs']._options = None + _TASKEXECUTIONGETDATARESPONSE.fields_by_name['inputs']._serialized_options = b'\030\001' + _TASKEXECUTIONGETDATARESPONSE.fields_by_name['outputs']._options = None + _TASKEXECUTIONGETDATARESPONSE.fields_by_name['outputs']._serialized_options = b'\030\001' + _globals['_TASKEXECUTIONGETREQUEST']._serialized_start=300 + _globals['_TASKEXECUTIONGETREQUEST']._serialized_end=381 + _globals['_TASKEXECUTIONLISTREQUEST']._serialized_start=384 + _globals['_TASKEXECUTIONLISTREQUEST']._serialized_end=611 + _globals['_TASKEXECUTION']._serialized_start=614 + _globals['_TASKEXECUTION']._serialized_end=807 + _globals['_TASKEXECUTIONLIST']._serialized_start=809 + _globals['_TASKEXECUTIONLIST']._serialized_end=922 + _globals['_TASKEXECUTIONCLOSURE']._serialized_start=925 + _globals['_TASKEXECUTIONCLOSURE']._serialized_end=1721 + _globals['_REASON']._serialized_start=1723 + _globals['_REASON']._serialized_end=1818 + _globals['_TASKEXECUTIONGETDATAREQUEST']._serialized_start=1820 + _globals['_TASKEXECUTIONGETDATAREQUEST']._serialized_end=1905 + _globals['_TASKEXECUTIONGETDATARESPONSE']._serialized_start=1908 + _globals['_TASKEXECUTIONGETDATARESPONSE']._serialized_end=2226 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/task_execution_pb2.pyi b/build/lib/flyteidl/admin/task_execution_pb2.pyi new file mode 100644 index 000000000..7f675cc7d --- /dev/null +++ b/build/lib/flyteidl/admin/task_execution_pb2.pyi @@ -0,0 +1,116 @@ +from flyteidl.admin import common_pb2 as _common_pb2 +from flyteidl.core import execution_pb2 as _execution_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from flyteidl.event import event_pb2 as _event_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class TaskExecutionGetRequest(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.TaskExecutionIdentifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class TaskExecutionListRequest(_message.Message): + __slots__ = ["node_execution_id", "limit", "token", "filters", "sort_by"] + NODE_EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + LIMIT_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + FILTERS_FIELD_NUMBER: _ClassVar[int] + SORT_BY_FIELD_NUMBER: _ClassVar[int] + node_execution_id: _identifier_pb2.NodeExecutionIdentifier + limit: int + token: str + filters: str + sort_by: _common_pb2.Sort + def __init__(self, node_execution_id: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ..., limit: _Optional[int] = ..., token: _Optional[str] = ..., filters: _Optional[str] = ..., sort_by: _Optional[_Union[_common_pb2.Sort, _Mapping]] = ...) -> None: ... + +class TaskExecution(_message.Message): + __slots__ = ["id", "input_uri", "closure", "is_parent"] + ID_FIELD_NUMBER: _ClassVar[int] + INPUT_URI_FIELD_NUMBER: _ClassVar[int] + CLOSURE_FIELD_NUMBER: _ClassVar[int] + IS_PARENT_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.TaskExecutionIdentifier + input_uri: str + closure: TaskExecutionClosure + is_parent: bool + def __init__(self, id: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ..., input_uri: _Optional[str] = ..., closure: _Optional[_Union[TaskExecutionClosure, _Mapping]] = ..., is_parent: bool = ...) -> None: ... + +class TaskExecutionList(_message.Message): + __slots__ = ["task_executions", "token"] + TASK_EXECUTIONS_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + task_executions: _containers.RepeatedCompositeFieldContainer[TaskExecution] + token: str + def __init__(self, task_executions: _Optional[_Iterable[_Union[TaskExecution, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class TaskExecutionClosure(_message.Message): + __slots__ = ["output_uri", "error", "output_data", "phase", "logs", "started_at", "duration", "created_at", "updated_at", "custom_info", "reason", "task_type", "metadata", "event_version", "reasons"] + OUTPUT_URI_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + OUTPUT_DATA_FIELD_NUMBER: _ClassVar[int] + PHASE_FIELD_NUMBER: _ClassVar[int] + LOGS_FIELD_NUMBER: _ClassVar[int] + STARTED_AT_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + CUSTOM_INFO_FIELD_NUMBER: _ClassVar[int] + REASON_FIELD_NUMBER: _ClassVar[int] + TASK_TYPE_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + EVENT_VERSION_FIELD_NUMBER: _ClassVar[int] + REASONS_FIELD_NUMBER: _ClassVar[int] + output_uri: str + error: _execution_pb2.ExecutionError + output_data: _literals_pb2.LiteralMap + phase: _execution_pb2.TaskExecution.Phase + logs: _containers.RepeatedCompositeFieldContainer[_execution_pb2.TaskLog] + started_at: _timestamp_pb2.Timestamp + duration: _duration_pb2.Duration + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + custom_info: _struct_pb2.Struct + reason: str + task_type: str + metadata: _event_pb2.TaskExecutionMetadata + event_version: int + reasons: _containers.RepeatedCompositeFieldContainer[Reason] + def __init__(self, output_uri: _Optional[str] = ..., error: _Optional[_Union[_execution_pb2.ExecutionError, _Mapping]] = ..., output_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., phase: _Optional[_Union[_execution_pb2.TaskExecution.Phase, str]] = ..., logs: _Optional[_Iterable[_Union[_execution_pb2.TaskLog, _Mapping]]] = ..., started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., custom_info: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., reason: _Optional[str] = ..., task_type: _Optional[str] = ..., metadata: _Optional[_Union[_event_pb2.TaskExecutionMetadata, _Mapping]] = ..., event_version: _Optional[int] = ..., reasons: _Optional[_Iterable[_Union[Reason, _Mapping]]] = ...) -> None: ... + +class Reason(_message.Message): + __slots__ = ["occurred_at", "message"] + OCCURRED_AT_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + occurred_at: _timestamp_pb2.Timestamp + message: str + def __init__(self, occurred_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., message: _Optional[str] = ...) -> None: ... + +class TaskExecutionGetDataRequest(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.TaskExecutionIdentifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class TaskExecutionGetDataResponse(_message.Message): + __slots__ = ["inputs", "outputs", "full_inputs", "full_outputs", "flyte_urls"] + INPUTS_FIELD_NUMBER: _ClassVar[int] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + FULL_INPUTS_FIELD_NUMBER: _ClassVar[int] + FULL_OUTPUTS_FIELD_NUMBER: _ClassVar[int] + FLYTE_URLS_FIELD_NUMBER: _ClassVar[int] + inputs: _common_pb2.UrlBlob + outputs: _common_pb2.UrlBlob + full_inputs: _literals_pb2.LiteralMap + full_outputs: _literals_pb2.LiteralMap + flyte_urls: _common_pb2.FlyteURLs + def __init__(self, inputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., outputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., full_inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., full_outputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., flyte_urls: _Optional[_Union[_common_pb2.FlyteURLs, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/task_execution_pb2_grpc.py b/build/lib/flyteidl/admin/task_execution_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/task_execution_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/task_pb2.py b/build/lib/flyteidl/admin/task_pb2.py new file mode 100644 index 000000000..c30868f00 --- /dev/null +++ b/build/lib/flyteidl/admin/task_pb2.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/task.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import tasks_pb2 as flyteidl_dot_core_dot_tasks__pb2 +from flyteidl.core import compiler_pb2 as flyteidl_dot_core_dot_compiler__pb2 +from flyteidl.admin import description_entity_pb2 as flyteidl_dot_admin_dot_description__entity__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x66lyteidl/admin/task.proto\x12\x0e\x66lyteidl.admin\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x19\x66lyteidl/core/tasks.proto\x1a\x1c\x66lyteidl/core/compiler.proto\x1a\'flyteidl/admin/description_entity.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"l\n\x11TaskCreateRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12,\n\x04spec\x18\x02 \x01(\x0b\x32\x18.flyteidl.admin.TaskSpecR\x04spec\"\x14\n\x12TaskCreateResponse\"\x95\x01\n\x04Task\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x35\n\x07\x63losure\x18\x02 \x01(\x0b\x32\x1b.flyteidl.admin.TaskClosureR\x07\x63losure\x12+\n\x11short_description\x18\x03 \x01(\tR\x10shortDescription\"L\n\x08TaskList\x12*\n\x05tasks\x18\x01 \x03(\x0b\x32\x14.flyteidl.admin.TaskR\x05tasks\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x88\x01\n\x08TaskSpec\x12\x37\n\x08template\x18\x01 \x01(\x0b\x32\x1b.flyteidl.core.TaskTemplateR\x08template\x12\x43\n\x0b\x64\x65scription\x18\x02 \x01(\x0b\x32!.flyteidl.admin.DescriptionEntityR\x0b\x64\x65scription\"\x8a\x01\n\x0bTaskClosure\x12@\n\rcompiled_task\x18\x01 \x01(\x0b\x32\x1b.flyteidl.core.CompiledTaskR\x0c\x63ompiledTask\x12\x39\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAtB\xaf\x01\n\x12\x63om.flyteidl.adminB\tTaskProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.task_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\tTaskProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_TASKCREATEREQUEST']._serialized_start=208 + _globals['_TASKCREATEREQUEST']._serialized_end=316 + _globals['_TASKCREATERESPONSE']._serialized_start=318 + _globals['_TASKCREATERESPONSE']._serialized_end=338 + _globals['_TASK']._serialized_start=341 + _globals['_TASK']._serialized_end=490 + _globals['_TASKLIST']._serialized_start=492 + _globals['_TASKLIST']._serialized_end=568 + _globals['_TASKSPEC']._serialized_start=571 + _globals['_TASKSPEC']._serialized_end=707 + _globals['_TASKCLOSURE']._serialized_start=710 + _globals['_TASKCLOSURE']._serialized_end=848 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/task_pb2.pyi b/build/lib/flyteidl/admin/task_pb2.pyi new file mode 100644 index 000000000..2e6370fba --- /dev/null +++ b/build/lib/flyteidl/admin/task_pb2.pyi @@ -0,0 +1,57 @@ +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import tasks_pb2 as _tasks_pb2 +from flyteidl.core import compiler_pb2 as _compiler_pb2 +from flyteidl.admin import description_entity_pb2 as _description_entity_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class TaskCreateRequest(_message.Message): + __slots__ = ["id", "spec"] + ID_FIELD_NUMBER: _ClassVar[int] + SPEC_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + spec: TaskSpec + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., spec: _Optional[_Union[TaskSpec, _Mapping]] = ...) -> None: ... + +class TaskCreateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class Task(_message.Message): + __slots__ = ["id", "closure", "short_description"] + ID_FIELD_NUMBER: _ClassVar[int] + CLOSURE_FIELD_NUMBER: _ClassVar[int] + SHORT_DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + closure: TaskClosure + short_description: str + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., closure: _Optional[_Union[TaskClosure, _Mapping]] = ..., short_description: _Optional[str] = ...) -> None: ... + +class TaskList(_message.Message): + __slots__ = ["tasks", "token"] + TASKS_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + tasks: _containers.RepeatedCompositeFieldContainer[Task] + token: str + def __init__(self, tasks: _Optional[_Iterable[_Union[Task, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class TaskSpec(_message.Message): + __slots__ = ["template", "description"] + TEMPLATE_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + template: _tasks_pb2.TaskTemplate + description: _description_entity_pb2.DescriptionEntity + def __init__(self, template: _Optional[_Union[_tasks_pb2.TaskTemplate, _Mapping]] = ..., description: _Optional[_Union[_description_entity_pb2.DescriptionEntity, _Mapping]] = ...) -> None: ... + +class TaskClosure(_message.Message): + __slots__ = ["compiled_task", "created_at"] + COMPILED_TASK_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + compiled_task: _compiler_pb2.CompiledTask + created_at: _timestamp_pb2.Timestamp + def __init__(self, compiled_task: _Optional[_Union[_compiler_pb2.CompiledTask, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/task_pb2_grpc.py b/build/lib/flyteidl/admin/task_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/task_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/version_pb2.py b/build/lib/flyteidl/admin/version_pb2.py new file mode 100644 index 000000000..e04466e67 --- /dev/null +++ b/build/lib/flyteidl/admin/version_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/version.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/version.proto\x12\x0e\x66lyteidl.admin\"a\n\x12GetVersionResponse\x12K\n\x15\x63ontrol_plane_version\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.VersionR\x13\x63ontrolPlaneVersion\"W\n\x07Version\x12\x14\n\x05\x42uild\x18\x01 \x01(\tR\x05\x42uild\x12\x18\n\x07Version\x18\x02 \x01(\tR\x07Version\x12\x1c\n\tBuildTime\x18\x03 \x01(\tR\tBuildTime\"\x13\n\x11GetVersionRequestB\xb2\x01\n\x12\x63om.flyteidl.adminB\x0cVersionProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.version_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\014VersionProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_GETVERSIONRESPONSE']._serialized_start=48 + _globals['_GETVERSIONRESPONSE']._serialized_end=145 + _globals['_VERSION']._serialized_start=147 + _globals['_VERSION']._serialized_end=234 + _globals['_GETVERSIONREQUEST']._serialized_start=236 + _globals['_GETVERSIONREQUEST']._serialized_end=255 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/version_pb2.pyi b/build/lib/flyteidl/admin/version_pb2.pyi new file mode 100644 index 000000000..a83d0baa8 --- /dev/null +++ b/build/lib/flyteidl/admin/version_pb2.pyi @@ -0,0 +1,25 @@ +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class GetVersionResponse(_message.Message): + __slots__ = ["control_plane_version"] + CONTROL_PLANE_VERSION_FIELD_NUMBER: _ClassVar[int] + control_plane_version: Version + def __init__(self, control_plane_version: _Optional[_Union[Version, _Mapping]] = ...) -> None: ... + +class Version(_message.Message): + __slots__ = ["Build", "Version", "BuildTime"] + BUILD_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + BUILDTIME_FIELD_NUMBER: _ClassVar[int] + Build: str + Version: str + BuildTime: str + def __init__(self, Build: _Optional[str] = ..., Version: _Optional[str] = ..., BuildTime: _Optional[str] = ...) -> None: ... + +class GetVersionRequest(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... diff --git a/build/lib/flyteidl/admin/version_pb2_grpc.py b/build/lib/flyteidl/admin/version_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/version_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/workflow_attributes_pb2.py b/build/lib/flyteidl/admin/workflow_attributes_pb2.py new file mode 100644 index 000000000..caaec98ec --- /dev/null +++ b/build/lib/flyteidl/admin/workflow_attributes_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/workflow_attributes.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +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\xbd\x01\n\x12\x63om.flyteidl.adminB\x17WorkflowAttributesProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.workflow_attributes_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\027WorkflowAttributesProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_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 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/workflow_attributes_pb2.pyi b/build/lib/flyteidl/admin/workflow_attributes_pb2.pyi new file mode 100644 index 000000000..67b040a36 --- /dev/null +++ b/build/lib/flyteidl/admin/workflow_attributes_pb2.pyi @@ -0,0 +1,62 @@ +from flyteidl.admin import matchable_resource_pb2 as _matchable_resource_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class WorkflowAttributes(_message.Message): + __slots__ = ["project", "domain", "workflow", "matching_attributes"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + DOMAIN_FIELD_NUMBER: _ClassVar[int] + WORKFLOW_FIELD_NUMBER: _ClassVar[int] + MATCHING_ATTRIBUTES_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: ... + +class WorkflowAttributesUpdateRequest(_message.Message): + __slots__ = ["attributes"] + ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + attributes: WorkflowAttributes + def __init__(self, attributes: _Optional[_Union[WorkflowAttributes, _Mapping]] = ...) -> None: ... + +class WorkflowAttributesUpdateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class WorkflowAttributesGetRequest(_message.Message): + __slots__ = ["project", "domain", "workflow", "resource_type"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + DOMAIN_FIELD_NUMBER: _ClassVar[int] + WORKFLOW_FIELD_NUMBER: _ClassVar[int] + RESOURCE_TYPE_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: ... + +class WorkflowAttributesGetResponse(_message.Message): + __slots__ = ["attributes"] + ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + attributes: WorkflowAttributes + def __init__(self, attributes: _Optional[_Union[WorkflowAttributes, _Mapping]] = ...) -> None: ... + +class WorkflowAttributesDeleteRequest(_message.Message): + __slots__ = ["project", "domain", "workflow", "resource_type"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + DOMAIN_FIELD_NUMBER: _ClassVar[int] + WORKFLOW_FIELD_NUMBER: _ClassVar[int] + RESOURCE_TYPE_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: ... + +class WorkflowAttributesDeleteResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... diff --git a/build/lib/flyteidl/admin/workflow_attributes_pb2_grpc.py b/build/lib/flyteidl/admin/workflow_attributes_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/workflow_attributes_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/admin/workflow_pb2.py b/build/lib/flyteidl/admin/workflow_pb2.py new file mode 100644 index 000000000..6912efc7b --- /dev/null +++ b/build/lib/flyteidl/admin/workflow_pb2.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/workflow.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import compiler_pb2 as flyteidl_dot_core_dot_compiler__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import workflow_pb2 as flyteidl_dot_core_dot_workflow__pb2 +from flyteidl.admin import description_entity_pb2 as flyteidl_dot_admin_dot_description__entity__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/admin/workflow.proto\x12\x0e\x66lyteidl.admin\x1a\x1c\x66lyteidl/core/compiler.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/workflow.proto\x1a\'flyteidl/admin/description_entity.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"t\n\x15WorkflowCreateRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x30\n\x04spec\x18\x02 \x01(\x0b\x32\x1c.flyteidl.admin.WorkflowSpecR\x04spec\"\x18\n\x16WorkflowCreateResponse\"\x9d\x01\n\x08Workflow\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x39\n\x07\x63losure\x18\x02 \x01(\x0b\x32\x1f.flyteidl.admin.WorkflowClosureR\x07\x63losure\x12+\n\x11short_description\x18\x03 \x01(\tR\x10shortDescription\"\\\n\x0cWorkflowList\x12\x36\n\tworkflows\x18\x01 \x03(\x0b\x32\x18.flyteidl.admin.WorkflowR\tworkflows\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\xd6\x01\n\x0cWorkflowSpec\x12;\n\x08template\x18\x01 \x01(\x0b\x32\x1f.flyteidl.core.WorkflowTemplateR\x08template\x12\x44\n\rsub_workflows\x18\x02 \x03(\x0b\x32\x1f.flyteidl.core.WorkflowTemplateR\x0csubWorkflows\x12\x43\n\x0b\x64\x65scription\x18\x03 \x01(\x0b\x32!.flyteidl.admin.DescriptionEntityR\x0b\x64\x65scription\"\xa1\x01\n\x0fWorkflowClosure\x12S\n\x11\x63ompiled_workflow\x18\x01 \x01(\x0b\x32&.flyteidl.core.CompiledWorkflowClosureR\x10\x63ompiledWorkflow\x12\x39\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\"R\n%WorkflowErrorExistsDifferentStructure\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\"R\n%WorkflowErrorExistsIdenticalStructure\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\"\x95\x02\n\x1b\x43reateWorkflowFailureReason\x12u\n\x1a\x65xists_different_structure\x18\x01 \x01(\x0b\x32\x35.flyteidl.admin.WorkflowErrorExistsDifferentStructureH\x00R\x18\x65xistsDifferentStructure\x12u\n\x1a\x65xists_identical_structure\x18\x02 \x01(\x0b\x32\x35.flyteidl.admin.WorkflowErrorExistsIdenticalStructureH\x00R\x18\x65xistsIdenticalStructureB\x08\n\x06reasonB\xb3\x01\n\x12\x63om.flyteidl.adminB\rWorkflowProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.admin.workflow_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\rWorkflowProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' + _globals['_WORKFLOWCREATEREQUEST']._serialized_start=215 + _globals['_WORKFLOWCREATEREQUEST']._serialized_end=331 + _globals['_WORKFLOWCREATERESPONSE']._serialized_start=333 + _globals['_WORKFLOWCREATERESPONSE']._serialized_end=357 + _globals['_WORKFLOW']._serialized_start=360 + _globals['_WORKFLOW']._serialized_end=517 + _globals['_WORKFLOWLIST']._serialized_start=519 + _globals['_WORKFLOWLIST']._serialized_end=611 + _globals['_WORKFLOWSPEC']._serialized_start=614 + _globals['_WORKFLOWSPEC']._serialized_end=828 + _globals['_WORKFLOWCLOSURE']._serialized_start=831 + _globals['_WORKFLOWCLOSURE']._serialized_end=992 + _globals['_WORKFLOWERROREXISTSDIFFERENTSTRUCTURE']._serialized_start=994 + _globals['_WORKFLOWERROREXISTSDIFFERENTSTRUCTURE']._serialized_end=1076 + _globals['_WORKFLOWERROREXISTSIDENTICALSTRUCTURE']._serialized_start=1078 + _globals['_WORKFLOWERROREXISTSIDENTICALSTRUCTURE']._serialized_end=1160 + _globals['_CREATEWORKFLOWFAILUREREASON']._serialized_start=1163 + _globals['_CREATEWORKFLOWFAILUREREASON']._serialized_end=1440 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/admin/workflow_pb2.pyi b/build/lib/flyteidl/admin/workflow_pb2.pyi new file mode 100644 index 000000000..294d59585 --- /dev/null +++ b/build/lib/flyteidl/admin/workflow_pb2.pyi @@ -0,0 +1,79 @@ +from flyteidl.core import compiler_pb2 as _compiler_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import workflow_pb2 as _workflow_pb2 +from flyteidl.admin import description_entity_pb2 as _description_entity_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class WorkflowCreateRequest(_message.Message): + __slots__ = ["id", "spec"] + ID_FIELD_NUMBER: _ClassVar[int] + SPEC_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + spec: WorkflowSpec + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., spec: _Optional[_Union[WorkflowSpec, _Mapping]] = ...) -> None: ... + +class WorkflowCreateResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class Workflow(_message.Message): + __slots__ = ["id", "closure", "short_description"] + ID_FIELD_NUMBER: _ClassVar[int] + CLOSURE_FIELD_NUMBER: _ClassVar[int] + SHORT_DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + closure: WorkflowClosure + short_description: str + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., closure: _Optional[_Union[WorkflowClosure, _Mapping]] = ..., short_description: _Optional[str] = ...) -> None: ... + +class WorkflowList(_message.Message): + __slots__ = ["workflows", "token"] + WORKFLOWS_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + workflows: _containers.RepeatedCompositeFieldContainer[Workflow] + token: str + def __init__(self, workflows: _Optional[_Iterable[_Union[Workflow, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... + +class WorkflowSpec(_message.Message): + __slots__ = ["template", "sub_workflows", "description"] + TEMPLATE_FIELD_NUMBER: _ClassVar[int] + SUB_WORKFLOWS_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + template: _workflow_pb2.WorkflowTemplate + sub_workflows: _containers.RepeatedCompositeFieldContainer[_workflow_pb2.WorkflowTemplate] + description: _description_entity_pb2.DescriptionEntity + def __init__(self, template: _Optional[_Union[_workflow_pb2.WorkflowTemplate, _Mapping]] = ..., sub_workflows: _Optional[_Iterable[_Union[_workflow_pb2.WorkflowTemplate, _Mapping]]] = ..., description: _Optional[_Union[_description_entity_pb2.DescriptionEntity, _Mapping]] = ...) -> None: ... + +class WorkflowClosure(_message.Message): + __slots__ = ["compiled_workflow", "created_at"] + COMPILED_WORKFLOW_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + compiled_workflow: _compiler_pb2.CompiledWorkflowClosure + created_at: _timestamp_pb2.Timestamp + def __init__(self, compiled_workflow: _Optional[_Union[_compiler_pb2.CompiledWorkflowClosure, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class WorkflowErrorExistsDifferentStructure(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ...) -> None: ... + +class WorkflowErrorExistsIdenticalStructure(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ...) -> None: ... + +class CreateWorkflowFailureReason(_message.Message): + __slots__ = ["exists_different_structure", "exists_identical_structure"] + EXISTS_DIFFERENT_STRUCTURE_FIELD_NUMBER: _ClassVar[int] + EXISTS_IDENTICAL_STRUCTURE_FIELD_NUMBER: _ClassVar[int] + exists_different_structure: WorkflowErrorExistsDifferentStructure + exists_identical_structure: WorkflowErrorExistsIdenticalStructure + def __init__(self, exists_different_structure: _Optional[_Union[WorkflowErrorExistsDifferentStructure, _Mapping]] = ..., exists_identical_structure: _Optional[_Union[WorkflowErrorExistsIdenticalStructure, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/admin/workflow_pb2_grpc.py b/build/lib/flyteidl/admin/workflow_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/admin/workflow_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/__init__.py b/build/lib/flyteidl/core/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/build/lib/flyteidl/core/catalog_pb2.py b/build/lib/flyteidl/core/catalog_pb2.py new file mode 100644 index 000000000..ff4431f19 --- /dev/null +++ b/build/lib/flyteidl/core/catalog_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/catalog.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lyteidl/core/catalog.proto\x12\rflyteidl.core\x1a\x1e\x66lyteidl/core/identifier.proto\"I\n\x12\x43\x61talogArtifactTag\x12\x1f\n\x0b\x61rtifact_id\x18\x01 \x01(\tR\nartifactId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\x83\x02\n\x0f\x43\x61talogMetadata\x12\x38\n\ndataset_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\tdatasetId\x12\x44\n\x0c\x61rtifact_tag\x18\x02 \x01(\x0b\x32!.flyteidl.core.CatalogArtifactTagR\x0b\x61rtifactTag\x12\\\n\x15source_task_execution\x18\x03 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierH\x00R\x13sourceTaskExecutionB\x12\n\x10source_execution\"\x9e\x01\n\x12\x43\x61talogReservation\"\x87\x01\n\x06Status\x12\x18\n\x14RESERVATION_DISABLED\x10\x00\x12\x18\n\x14RESERVATION_ACQUIRED\x10\x01\x12\x16\n\x12RESERVATION_EXISTS\x10\x02\x12\x18\n\x14RESERVATION_RELEASED\x10\x03\x12\x17\n\x13RESERVATION_FAILURE\x10\x04*\xa0\x01\n\x12\x43\x61talogCacheStatus\x12\x12\n\x0e\x43\x41\x43HE_DISABLED\x10\x00\x12\x0e\n\nCACHE_MISS\x10\x01\x12\r\n\tCACHE_HIT\x10\x02\x12\x13\n\x0f\x43\x41\x43HE_POPULATED\x10\x03\x12\x18\n\x14\x43\x41\x43HE_LOOKUP_FAILURE\x10\x04\x12\x15\n\x11\x43\x41\x43HE_PUT_FAILURE\x10\x05\x12\x11\n\rCACHE_SKIPPED\x10\x06\x42\xac\x01\n\x11\x63om.flyteidl.coreB\x0c\x43\x61talogProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.catalog_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\014CatalogProtoP\001Z4github.com/flyteorg/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['_CATALOGCACHESTATUS']._serialized_start=577 + _globals['_CATALOGCACHESTATUS']._serialized_end=737 + _globals['_CATALOGARTIFACTTAG']._serialized_start=78 + _globals['_CATALOGARTIFACTTAG']._serialized_end=151 + _globals['_CATALOGMETADATA']._serialized_start=154 + _globals['_CATALOGMETADATA']._serialized_end=413 + _globals['_CATALOGRESERVATION']._serialized_start=416 + _globals['_CATALOGRESERVATION']._serialized_end=574 + _globals['_CATALOGRESERVATION_STATUS']._serialized_start=439 + _globals['_CATALOGRESERVATION_STATUS']._serialized_end=574 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/catalog_pb2.pyi b/build/lib/flyteidl/core/catalog_pb2.pyi new file mode 100644 index 000000000..90acf7d24 --- /dev/null +++ b/build/lib/flyteidl/core/catalog_pb2.pyi @@ -0,0 +1,58 @@ +from flyteidl.core import identifier_pb2 as _identifier_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 +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class CatalogCacheStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + CACHE_DISABLED: _ClassVar[CatalogCacheStatus] + CACHE_MISS: _ClassVar[CatalogCacheStatus] + CACHE_HIT: _ClassVar[CatalogCacheStatus] + CACHE_POPULATED: _ClassVar[CatalogCacheStatus] + CACHE_LOOKUP_FAILURE: _ClassVar[CatalogCacheStatus] + CACHE_PUT_FAILURE: _ClassVar[CatalogCacheStatus] + CACHE_SKIPPED: _ClassVar[CatalogCacheStatus] +CACHE_DISABLED: CatalogCacheStatus +CACHE_MISS: CatalogCacheStatus +CACHE_HIT: CatalogCacheStatus +CACHE_POPULATED: CatalogCacheStatus +CACHE_LOOKUP_FAILURE: CatalogCacheStatus +CACHE_PUT_FAILURE: CatalogCacheStatus +CACHE_SKIPPED: CatalogCacheStatus + +class CatalogArtifactTag(_message.Message): + __slots__ = ["artifact_id", "name"] + ARTIFACT_ID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + artifact_id: str + name: str + def __init__(self, artifact_id: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... + +class CatalogMetadata(_message.Message): + __slots__ = ["dataset_id", "artifact_tag", "source_task_execution"] + DATASET_ID_FIELD_NUMBER: _ClassVar[int] + ARTIFACT_TAG_FIELD_NUMBER: _ClassVar[int] + SOURCE_TASK_EXECUTION_FIELD_NUMBER: _ClassVar[int] + dataset_id: _identifier_pb2.Identifier + artifact_tag: CatalogArtifactTag + source_task_execution: _identifier_pb2.TaskExecutionIdentifier + def __init__(self, dataset_id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., artifact_tag: _Optional[_Union[CatalogArtifactTag, _Mapping]] = ..., source_task_execution: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class CatalogReservation(_message.Message): + __slots__ = [] + class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + RESERVATION_DISABLED: _ClassVar[CatalogReservation.Status] + RESERVATION_ACQUIRED: _ClassVar[CatalogReservation.Status] + RESERVATION_EXISTS: _ClassVar[CatalogReservation.Status] + RESERVATION_RELEASED: _ClassVar[CatalogReservation.Status] + RESERVATION_FAILURE: _ClassVar[CatalogReservation.Status] + RESERVATION_DISABLED: CatalogReservation.Status + RESERVATION_ACQUIRED: CatalogReservation.Status + RESERVATION_EXISTS: CatalogReservation.Status + RESERVATION_RELEASED: CatalogReservation.Status + RESERVATION_FAILURE: CatalogReservation.Status + def __init__(self) -> None: ... diff --git a/build/lib/flyteidl/core/catalog_pb2_grpc.py b/build/lib/flyteidl/core/catalog_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/catalog_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/compiler_pb2.py b/build/lib/flyteidl/core/compiler_pb2.py new file mode 100644 index 000000000..726c5d0db --- /dev/null +++ b/build/lib/flyteidl/core/compiler_pb2.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/compiler.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import workflow_pb2 as flyteidl_dot_core_dot_workflow__pb2 +from flyteidl.core import tasks_pb2 as flyteidl_dot_core_dot_tasks__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/core/compiler.proto\x12\rflyteidl.core\x1a\x1c\x66lyteidl/core/workflow.proto\x1a\x19\x66lyteidl/core/tasks.proto\"\x87\x03\n\rConnectionSet\x12L\n\ndownstream\x18\x07 \x03(\x0b\x32,.flyteidl.core.ConnectionSet.DownstreamEntryR\ndownstream\x12\x46\n\x08upstream\x18\x08 \x03(\x0b\x32*.flyteidl.core.ConnectionSet.UpstreamEntryR\x08upstream\x1a\x1a\n\x06IdList\x12\x10\n\x03ids\x18\x01 \x03(\tR\x03ids\x1a\x62\n\x0f\x44ownstreamEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32#.flyteidl.core.ConnectionSet.IdListR\x05value:\x02\x38\x01\x1a`\n\rUpstreamEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32#.flyteidl.core.ConnectionSet.IdListR\x05value:\x02\x38\x01\"\x8f\x01\n\x10\x43ompiledWorkflow\x12;\n\x08template\x18\x01 \x01(\x0b\x32\x1f.flyteidl.core.WorkflowTemplateR\x08template\x12>\n\x0b\x63onnections\x18\x02 \x01(\x0b\x32\x1c.flyteidl.core.ConnectionSetR\x0b\x63onnections\"G\n\x0c\x43ompiledTask\x12\x37\n\x08template\x18\x01 \x01(\x0b\x32\x1b.flyteidl.core.TaskTemplateR\x08template\"\xcd\x01\n\x17\x43ompiledWorkflowClosure\x12\x39\n\x07primary\x18\x01 \x01(\x0b\x32\x1f.flyteidl.core.CompiledWorkflowR\x07primary\x12\x44\n\rsub_workflows\x18\x02 \x03(\x0b\x32\x1f.flyteidl.core.CompiledWorkflowR\x0csubWorkflows\x12\x31\n\x05tasks\x18\x03 \x03(\x0b\x32\x1b.flyteidl.core.CompiledTaskR\x05tasksB\xad\x01\n\x11\x63om.flyteidl.coreB\rCompilerProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.compiler_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\rCompilerProtoP\001Z4github.com/flyteorg/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' + _CONNECTIONSET_DOWNSTREAMENTRY._options = None + _CONNECTIONSET_DOWNSTREAMENTRY._serialized_options = b'8\001' + _CONNECTIONSET_UPSTREAMENTRY._options = None + _CONNECTIONSET_UPSTREAMENTRY._serialized_options = b'8\001' + _globals['_CONNECTIONSET']._serialized_start=105 + _globals['_CONNECTIONSET']._serialized_end=496 + _globals['_CONNECTIONSET_IDLIST']._serialized_start=272 + _globals['_CONNECTIONSET_IDLIST']._serialized_end=298 + _globals['_CONNECTIONSET_DOWNSTREAMENTRY']._serialized_start=300 + _globals['_CONNECTIONSET_DOWNSTREAMENTRY']._serialized_end=398 + _globals['_CONNECTIONSET_UPSTREAMENTRY']._serialized_start=400 + _globals['_CONNECTIONSET_UPSTREAMENTRY']._serialized_end=496 + _globals['_COMPILEDWORKFLOW']._serialized_start=499 + _globals['_COMPILEDWORKFLOW']._serialized_end=642 + _globals['_COMPILEDTASK']._serialized_start=644 + _globals['_COMPILEDTASK']._serialized_end=715 + _globals['_COMPILEDWORKFLOWCLOSURE']._serialized_start=718 + _globals['_COMPILEDWORKFLOWCLOSURE']._serialized_end=923 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/compiler_pb2.pyi b/build/lib/flyteidl/core/compiler_pb2.pyi new file mode 100644 index 000000000..509e8f4d5 --- /dev/null +++ b/build/lib/flyteidl/core/compiler_pb2.pyi @@ -0,0 +1,59 @@ +from flyteidl.core import workflow_pb2 as _workflow_pb2 +from flyteidl.core import tasks_pb2 as _tasks_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class ConnectionSet(_message.Message): + __slots__ = ["downstream", "upstream"] + class IdList(_message.Message): + __slots__ = ["ids"] + IDS_FIELD_NUMBER: _ClassVar[int] + ids: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, ids: _Optional[_Iterable[str]] = ...) -> None: ... + class DownstreamEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: ConnectionSet.IdList + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[ConnectionSet.IdList, _Mapping]] = ...) -> None: ... + class UpstreamEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: ConnectionSet.IdList + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[ConnectionSet.IdList, _Mapping]] = ...) -> None: ... + DOWNSTREAM_FIELD_NUMBER: _ClassVar[int] + UPSTREAM_FIELD_NUMBER: _ClassVar[int] + downstream: _containers.MessageMap[str, ConnectionSet.IdList] + upstream: _containers.MessageMap[str, ConnectionSet.IdList] + def __init__(self, downstream: _Optional[_Mapping[str, ConnectionSet.IdList]] = ..., upstream: _Optional[_Mapping[str, ConnectionSet.IdList]] = ...) -> None: ... + +class CompiledWorkflow(_message.Message): + __slots__ = ["template", "connections"] + TEMPLATE_FIELD_NUMBER: _ClassVar[int] + CONNECTIONS_FIELD_NUMBER: _ClassVar[int] + template: _workflow_pb2.WorkflowTemplate + connections: ConnectionSet + def __init__(self, template: _Optional[_Union[_workflow_pb2.WorkflowTemplate, _Mapping]] = ..., connections: _Optional[_Union[ConnectionSet, _Mapping]] = ...) -> None: ... + +class CompiledTask(_message.Message): + __slots__ = ["template"] + TEMPLATE_FIELD_NUMBER: _ClassVar[int] + template: _tasks_pb2.TaskTemplate + def __init__(self, template: _Optional[_Union[_tasks_pb2.TaskTemplate, _Mapping]] = ...) -> None: ... + +class CompiledWorkflowClosure(_message.Message): + __slots__ = ["primary", "sub_workflows", "tasks"] + PRIMARY_FIELD_NUMBER: _ClassVar[int] + SUB_WORKFLOWS_FIELD_NUMBER: _ClassVar[int] + TASKS_FIELD_NUMBER: _ClassVar[int] + primary: CompiledWorkflow + sub_workflows: _containers.RepeatedCompositeFieldContainer[CompiledWorkflow] + tasks: _containers.RepeatedCompositeFieldContainer[CompiledTask] + def __init__(self, primary: _Optional[_Union[CompiledWorkflow, _Mapping]] = ..., sub_workflows: _Optional[_Iterable[_Union[CompiledWorkflow, _Mapping]]] = ..., tasks: _Optional[_Iterable[_Union[CompiledTask, _Mapping]]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/compiler_pb2_grpc.py b/build/lib/flyteidl/core/compiler_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/compiler_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/condition_pb2.py b/build/lib/flyteidl/core/condition_pb2.py new file mode 100644 index 000000000..2dbfc4a0c --- /dev/null +++ b/build/lib/flyteidl/core/condition_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/condition.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/core/condition.proto\x12\rflyteidl.core\x1a\x1c\x66lyteidl/core/literals.proto\"\x8f\x02\n\x14\x43omparisonExpression\x12H\n\x08operator\x18\x01 \x01(\x0e\x32,.flyteidl.core.ComparisonExpression.OperatorR\x08operator\x12\x35\n\nleft_value\x18\x02 \x01(\x0b\x32\x16.flyteidl.core.OperandR\tleftValue\x12\x37\n\x0bright_value\x18\x03 \x01(\x0b\x32\x16.flyteidl.core.OperandR\nrightValue\"=\n\x08Operator\x12\x06\n\x02\x45Q\x10\x00\x12\x07\n\x03NEQ\x10\x01\x12\x06\n\x02GT\x10\x02\x12\x07\n\x03GTE\x10\x03\x12\x06\n\x02LT\x10\x04\x12\x07\n\x03LTE\x10\x05\"^\n\x07Operand\x12\x38\n\tprimitive\x18\x01 \x01(\x0b\x32\x18.flyteidl.core.PrimitiveH\x00R\tprimitive\x12\x12\n\x03var\x18\x02 \x01(\tH\x00R\x03varB\x05\n\x03val\"\xac\x01\n\x11\x42ooleanExpression\x12H\n\x0b\x63onjunction\x18\x01 \x01(\x0b\x32$.flyteidl.core.ConjunctionExpressionH\x00R\x0b\x63onjunction\x12\x45\n\ncomparison\x18\x02 \x01(\x0b\x32#.flyteidl.core.ComparisonExpressionH\x00R\ncomparisonB\x06\n\x04\x65xpr\"\xa5\x02\n\x15\x43onjunctionExpression\x12P\n\x08operator\x18\x01 \x01(\x0e\x32\x34.flyteidl.core.ConjunctionExpression.LogicalOperatorR\x08operator\x12I\n\x0fleft_expression\x18\x02 \x01(\x0b\x32 .flyteidl.core.BooleanExpressionR\x0eleftExpression\x12K\n\x10right_expression\x18\x03 \x01(\x0b\x32 .flyteidl.core.BooleanExpressionR\x0frightExpression\"\"\n\x0fLogicalOperator\x12\x07\n\x03\x41ND\x10\x00\x12\x06\n\x02OR\x10\x01\x42\xae\x01\n\x11\x63om.flyteidl.coreB\x0e\x43onditionProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.condition_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\016ConditionProtoP\001Z4github.com/flyteorg/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['_COMPARISONEXPRESSION']._serialized_start=79 + _globals['_COMPARISONEXPRESSION']._serialized_end=350 + _globals['_COMPARISONEXPRESSION_OPERATOR']._serialized_start=289 + _globals['_COMPARISONEXPRESSION_OPERATOR']._serialized_end=350 + _globals['_OPERAND']._serialized_start=352 + _globals['_OPERAND']._serialized_end=446 + _globals['_BOOLEANEXPRESSION']._serialized_start=449 + _globals['_BOOLEANEXPRESSION']._serialized_end=621 + _globals['_CONJUNCTIONEXPRESSION']._serialized_start=624 + _globals['_CONJUNCTIONEXPRESSION']._serialized_end=917 + _globals['_CONJUNCTIONEXPRESSION_LOGICALOPERATOR']._serialized_start=883 + _globals['_CONJUNCTIONEXPRESSION_LOGICALOPERATOR']._serialized_end=917 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/condition_pb2.pyi b/build/lib/flyteidl/core/condition_pb2.pyi new file mode 100644 index 000000000..05b9c13fe --- /dev/null +++ b/build/lib/flyteidl/core/condition_pb2.pyi @@ -0,0 +1,63 @@ +from flyteidl.core import literals_pb2 as _literals_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 +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class ComparisonExpression(_message.Message): + __slots__ = ["operator", "left_value", "right_value"] + class Operator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + EQ: _ClassVar[ComparisonExpression.Operator] + NEQ: _ClassVar[ComparisonExpression.Operator] + GT: _ClassVar[ComparisonExpression.Operator] + GTE: _ClassVar[ComparisonExpression.Operator] + LT: _ClassVar[ComparisonExpression.Operator] + LTE: _ClassVar[ComparisonExpression.Operator] + EQ: ComparisonExpression.Operator + NEQ: ComparisonExpression.Operator + GT: ComparisonExpression.Operator + GTE: ComparisonExpression.Operator + LT: ComparisonExpression.Operator + LTE: ComparisonExpression.Operator + OPERATOR_FIELD_NUMBER: _ClassVar[int] + LEFT_VALUE_FIELD_NUMBER: _ClassVar[int] + RIGHT_VALUE_FIELD_NUMBER: _ClassVar[int] + operator: ComparisonExpression.Operator + left_value: Operand + right_value: Operand + def __init__(self, operator: _Optional[_Union[ComparisonExpression.Operator, str]] = ..., left_value: _Optional[_Union[Operand, _Mapping]] = ..., right_value: _Optional[_Union[Operand, _Mapping]] = ...) -> None: ... + +class Operand(_message.Message): + __slots__ = ["primitive", "var"] + PRIMITIVE_FIELD_NUMBER: _ClassVar[int] + VAR_FIELD_NUMBER: _ClassVar[int] + primitive: _literals_pb2.Primitive + var: str + def __init__(self, primitive: _Optional[_Union[_literals_pb2.Primitive, _Mapping]] = ..., var: _Optional[str] = ...) -> None: ... + +class BooleanExpression(_message.Message): + __slots__ = ["conjunction", "comparison"] + CONJUNCTION_FIELD_NUMBER: _ClassVar[int] + COMPARISON_FIELD_NUMBER: _ClassVar[int] + conjunction: ConjunctionExpression + comparison: ComparisonExpression + def __init__(self, conjunction: _Optional[_Union[ConjunctionExpression, _Mapping]] = ..., comparison: _Optional[_Union[ComparisonExpression, _Mapping]] = ...) -> None: ... + +class ConjunctionExpression(_message.Message): + __slots__ = ["operator", "left_expression", "right_expression"] + class LogicalOperator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + AND: _ClassVar[ConjunctionExpression.LogicalOperator] + OR: _ClassVar[ConjunctionExpression.LogicalOperator] + AND: ConjunctionExpression.LogicalOperator + OR: ConjunctionExpression.LogicalOperator + OPERATOR_FIELD_NUMBER: _ClassVar[int] + LEFT_EXPRESSION_FIELD_NUMBER: _ClassVar[int] + RIGHT_EXPRESSION_FIELD_NUMBER: _ClassVar[int] + operator: ConjunctionExpression.LogicalOperator + left_expression: BooleanExpression + right_expression: BooleanExpression + def __init__(self, operator: _Optional[_Union[ConjunctionExpression.LogicalOperator, str]] = ..., left_expression: _Optional[_Union[BooleanExpression, _Mapping]] = ..., right_expression: _Optional[_Union[BooleanExpression, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/condition_pb2_grpc.py b/build/lib/flyteidl/core/condition_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/condition_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/dynamic_job_pb2.py b/build/lib/flyteidl/core/dynamic_job_pb2.py new file mode 100644 index 000000000..e8aadc94a --- /dev/null +++ b/build/lib/flyteidl/core/dynamic_job_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/dynamic_job.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import tasks_pb2 as flyteidl_dot_core_dot_tasks__pb2 +from flyteidl.core import workflow_pb2 as flyteidl_dot_core_dot_workflow__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66lyteidl/core/dynamic_job.proto\x12\rflyteidl.core\x1a\x19\x66lyteidl/core/tasks.proto\x1a\x1c\x66lyteidl/core/workflow.proto\x1a\x1c\x66lyteidl/core/literals.proto\"\x8a\x02\n\x0e\x44ynamicJobSpec\x12)\n\x05nodes\x18\x01 \x03(\x0b\x32\x13.flyteidl.core.NodeR\x05nodes\x12#\n\rmin_successes\x18\x02 \x01(\x03R\x0cminSuccesses\x12\x30\n\x07outputs\x18\x03 \x03(\x0b\x32\x16.flyteidl.core.BindingR\x07outputs\x12\x31\n\x05tasks\x18\x04 \x03(\x0b\x32\x1b.flyteidl.core.TaskTemplateR\x05tasks\x12\x43\n\x0csubworkflows\x18\x05 \x03(\x0b\x32\x1f.flyteidl.core.WorkflowTemplateR\x0csubworkflowsB\xaf\x01\n\x11\x63om.flyteidl.coreB\x0f\x44ynamicJobProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.dynamic_job_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\017DynamicJobProtoP\001Z4github.com/flyteorg/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['_DYNAMICJOBSPEC']._serialized_start=138 + _globals['_DYNAMICJOBSPEC']._serialized_end=404 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/dynamic_job_pb2.pyi b/build/lib/flyteidl/core/dynamic_job_pb2.pyi new file mode 100644 index 000000000..20ca83f30 --- /dev/null +++ b/build/lib/flyteidl/core/dynamic_job_pb2.pyi @@ -0,0 +1,23 @@ +from flyteidl.core import tasks_pb2 as _tasks_pb2 +from flyteidl.core import workflow_pb2 as _workflow_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class DynamicJobSpec(_message.Message): + __slots__ = ["nodes", "min_successes", "outputs", "tasks", "subworkflows"] + NODES_FIELD_NUMBER: _ClassVar[int] + MIN_SUCCESSES_FIELD_NUMBER: _ClassVar[int] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + TASKS_FIELD_NUMBER: _ClassVar[int] + SUBWORKFLOWS_FIELD_NUMBER: _ClassVar[int] + nodes: _containers.RepeatedCompositeFieldContainer[_workflow_pb2.Node] + min_successes: int + outputs: _containers.RepeatedCompositeFieldContainer[_literals_pb2.Binding] + tasks: _containers.RepeatedCompositeFieldContainer[_tasks_pb2.TaskTemplate] + subworkflows: _containers.RepeatedCompositeFieldContainer[_workflow_pb2.WorkflowTemplate] + def __init__(self, nodes: _Optional[_Iterable[_Union[_workflow_pb2.Node, _Mapping]]] = ..., min_successes: _Optional[int] = ..., outputs: _Optional[_Iterable[_Union[_literals_pb2.Binding, _Mapping]]] = ..., tasks: _Optional[_Iterable[_Union[_tasks_pb2.TaskTemplate, _Mapping]]] = ..., subworkflows: _Optional[_Iterable[_Union[_workflow_pb2.WorkflowTemplate, _Mapping]]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/dynamic_job_pb2_grpc.py b/build/lib/flyteidl/core/dynamic_job_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/dynamic_job_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/errors_pb2.py b/build/lib/flyteidl/core/errors_pb2.py new file mode 100644 index 000000000..7e1e65a83 --- /dev/null +++ b/build/lib/flyteidl/core/errors_pb2.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/errors.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import execution_pb2 as flyteidl_dot_core_dot_execution__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lyteidl/core/errors.proto\x12\rflyteidl.core\x1a\x1d\x66lyteidl/core/execution.proto\"\xe5\x01\n\x0e\x43ontainerError\x12\x12\n\x04\x63ode\x18\x01 \x01(\tR\x04\x63ode\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x36\n\x04kind\x18\x03 \x01(\x0e\x32\".flyteidl.core.ContainerError.KindR\x04kind\x12?\n\x06origin\x18\x04 \x01(\x0e\x32\'.flyteidl.core.ExecutionError.ErrorKindR\x06origin\",\n\x04Kind\x12\x13\n\x0fNON_RECOVERABLE\x10\x00\x12\x0f\n\x0bRECOVERABLE\x10\x01\"D\n\rErrorDocument\x12\x33\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x1d.flyteidl.core.ContainerErrorR\x05\x65rrorB\xab\x01\n\x11\x63om.flyteidl.coreB\x0b\x45rrorsProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.errors_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\013ErrorsProtoP\001Z4github.com/flyteorg/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['_CONTAINERERROR']._serialized_start=77 + _globals['_CONTAINERERROR']._serialized_end=306 + _globals['_CONTAINERERROR_KIND']._serialized_start=262 + _globals['_CONTAINERERROR_KIND']._serialized_end=306 + _globals['_ERRORDOCUMENT']._serialized_start=308 + _globals['_ERRORDOCUMENT']._serialized_end=376 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/errors_pb2.pyi b/build/lib/flyteidl/core/errors_pb2.pyi new file mode 100644 index 000000000..b13aa4091 --- /dev/null +++ b/build/lib/flyteidl/core/errors_pb2.pyi @@ -0,0 +1,31 @@ +from flyteidl.core import execution_pb2 as _execution_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 +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class ContainerError(_message.Message): + __slots__ = ["code", "message", "kind", "origin"] + class Kind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + NON_RECOVERABLE: _ClassVar[ContainerError.Kind] + RECOVERABLE: _ClassVar[ContainerError.Kind] + NON_RECOVERABLE: ContainerError.Kind + RECOVERABLE: ContainerError.Kind + CODE_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + KIND_FIELD_NUMBER: _ClassVar[int] + ORIGIN_FIELD_NUMBER: _ClassVar[int] + code: str + message: str + kind: ContainerError.Kind + origin: _execution_pb2.ExecutionError.ErrorKind + def __init__(self, code: _Optional[str] = ..., message: _Optional[str] = ..., kind: _Optional[_Union[ContainerError.Kind, str]] = ..., origin: _Optional[_Union[_execution_pb2.ExecutionError.ErrorKind, str]] = ...) -> None: ... + +class ErrorDocument(_message.Message): + __slots__ = ["error"] + ERROR_FIELD_NUMBER: _ClassVar[int] + error: ContainerError + def __init__(self, error: _Optional[_Union[ContainerError, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/errors_pb2_grpc.py b/build/lib/flyteidl/core/errors_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/errors_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/execution_pb2.py b/build/lib/flyteidl/core/execution_pb2.py new file mode 100644 index 000000000..a38614f11 --- /dev/null +++ b/build/lib/flyteidl/core/execution_pb2.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/execution.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/core/execution.proto\x12\rflyteidl.core\x1a\x1egoogle/protobuf/duration.proto\"\xa7\x01\n\x11WorkflowExecution\"\x91\x01\n\x05Phase\x12\r\n\tUNDEFINED\x10\x00\x12\n\n\x06QUEUED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x0e\n\nSUCCEEDING\x10\x03\x12\r\n\tSUCCEEDED\x10\x04\x12\x0b\n\x07\x46\x41ILING\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x0b\n\x07\x41\x42ORTED\x10\x07\x12\r\n\tTIMED_OUT\x10\x08\x12\x0c\n\x08\x41\x42ORTING\x10\t\"\xb6\x01\n\rNodeExecution\"\xa4\x01\n\x05Phase\x12\r\n\tUNDEFINED\x10\x00\x12\n\n\x06QUEUED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\x12\x0b\n\x07\x46\x41ILING\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05\x12\x0b\n\x07\x41\x42ORTED\x10\x06\x12\x0b\n\x07SKIPPED\x10\x07\x12\r\n\tTIMED_OUT\x10\x08\x12\x13\n\x0f\x44YNAMIC_RUNNING\x10\t\x12\r\n\tRECOVERED\x10\n\"\x96\x01\n\rTaskExecution\"\x84\x01\n\x05Phase\x12\r\n\tUNDEFINED\x10\x00\x12\n\n\x06QUEUED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\x12\x0b\n\x07\x41\x42ORTED\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05\x12\x10\n\x0cINITIALIZING\x10\x06\x12\x19\n\x15WAITING_FOR_RESOURCES\x10\x07\"\xc8\x01\n\x0e\x45xecutionError\x12\x12\n\x04\x63ode\x18\x01 \x01(\tR\x04\x63ode\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1b\n\terror_uri\x18\x03 \x01(\tR\x08\x65rrorUri\x12;\n\x04kind\x18\x04 \x01(\x0e\x32\'.flyteidl.core.ExecutionError.ErrorKindR\x04kind\".\n\tErrorKind\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04USER\x10\x01\x12\n\n\x06SYSTEM\x10\x02\"\xda\x01\n\x07TaskLog\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12K\n\x0emessage_format\x18\x03 \x01(\x0e\x32$.flyteidl.core.TaskLog.MessageFormatR\rmessageFormat\x12+\n\x03ttl\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\x03ttl\"/\n\rMessageFormat\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03\x43SV\x10\x01\x12\x08\n\x04JSON\x10\x02\"Z\n\x14QualityOfServiceSpec\x12\x42\n\x0fqueueing_budget\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationR\x0equeueingBudget\"\xce\x01\n\x10QualityOfService\x12:\n\x04tier\x18\x01 \x01(\x0e\x32$.flyteidl.core.QualityOfService.TierH\x00R\x04tier\x12\x39\n\x04spec\x18\x02 \x01(\x0b\x32#.flyteidl.core.QualityOfServiceSpecH\x00R\x04spec\"4\n\x04Tier\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04HIGH\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\x07\n\x03LOW\x10\x03\x42\r\n\x0b\x64\x65signationB\xae\x01\n\x11\x63om.flyteidl.coreB\x0e\x45xecutionProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.execution_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\016ExecutionProtoP\001Z4github.com/flyteorg/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['_WORKFLOWEXECUTION']._serialized_start=81 + _globals['_WORKFLOWEXECUTION']._serialized_end=248 + _globals['_WORKFLOWEXECUTION_PHASE']._serialized_start=103 + _globals['_WORKFLOWEXECUTION_PHASE']._serialized_end=248 + _globals['_NODEEXECUTION']._serialized_start=251 + _globals['_NODEEXECUTION']._serialized_end=433 + _globals['_NODEEXECUTION_PHASE']._serialized_start=269 + _globals['_NODEEXECUTION_PHASE']._serialized_end=433 + _globals['_TASKEXECUTION']._serialized_start=436 + _globals['_TASKEXECUTION']._serialized_end=586 + _globals['_TASKEXECUTION_PHASE']._serialized_start=454 + _globals['_TASKEXECUTION_PHASE']._serialized_end=586 + _globals['_EXECUTIONERROR']._serialized_start=589 + _globals['_EXECUTIONERROR']._serialized_end=789 + _globals['_EXECUTIONERROR_ERRORKIND']._serialized_start=743 + _globals['_EXECUTIONERROR_ERRORKIND']._serialized_end=789 + _globals['_TASKLOG']._serialized_start=792 + _globals['_TASKLOG']._serialized_end=1010 + _globals['_TASKLOG_MESSAGEFORMAT']._serialized_start=963 + _globals['_TASKLOG_MESSAGEFORMAT']._serialized_end=1010 + _globals['_QUALITYOFSERVICESPEC']._serialized_start=1012 + _globals['_QUALITYOFSERVICESPEC']._serialized_end=1102 + _globals['_QUALITYOFSERVICE']._serialized_start=1105 + _globals['_QUALITYOFSERVICE']._serialized_end=1311 + _globals['_QUALITYOFSERVICE_TIER']._serialized_start=1244 + _globals['_QUALITYOFSERVICE_TIER']._serialized_end=1296 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/execution_pb2.pyi b/build/lib/flyteidl/core/execution_pb2.pyi new file mode 100644 index 000000000..2508c1b4a --- /dev/null +++ b/build/lib/flyteidl/core/execution_pb2.pyi @@ -0,0 +1,147 @@ +from google.protobuf import duration_pb2 as _duration_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 +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class WorkflowExecution(_message.Message): + __slots__ = [] + class Phase(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNDEFINED: _ClassVar[WorkflowExecution.Phase] + QUEUED: _ClassVar[WorkflowExecution.Phase] + RUNNING: _ClassVar[WorkflowExecution.Phase] + SUCCEEDING: _ClassVar[WorkflowExecution.Phase] + SUCCEEDED: _ClassVar[WorkflowExecution.Phase] + FAILING: _ClassVar[WorkflowExecution.Phase] + FAILED: _ClassVar[WorkflowExecution.Phase] + ABORTED: _ClassVar[WorkflowExecution.Phase] + TIMED_OUT: _ClassVar[WorkflowExecution.Phase] + ABORTING: _ClassVar[WorkflowExecution.Phase] + UNDEFINED: WorkflowExecution.Phase + QUEUED: WorkflowExecution.Phase + RUNNING: WorkflowExecution.Phase + SUCCEEDING: WorkflowExecution.Phase + SUCCEEDED: WorkflowExecution.Phase + FAILING: WorkflowExecution.Phase + FAILED: WorkflowExecution.Phase + ABORTED: WorkflowExecution.Phase + TIMED_OUT: WorkflowExecution.Phase + ABORTING: WorkflowExecution.Phase + def __init__(self) -> None: ... + +class NodeExecution(_message.Message): + __slots__ = [] + class Phase(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNDEFINED: _ClassVar[NodeExecution.Phase] + QUEUED: _ClassVar[NodeExecution.Phase] + RUNNING: _ClassVar[NodeExecution.Phase] + SUCCEEDED: _ClassVar[NodeExecution.Phase] + FAILING: _ClassVar[NodeExecution.Phase] + FAILED: _ClassVar[NodeExecution.Phase] + ABORTED: _ClassVar[NodeExecution.Phase] + SKIPPED: _ClassVar[NodeExecution.Phase] + TIMED_OUT: _ClassVar[NodeExecution.Phase] + DYNAMIC_RUNNING: _ClassVar[NodeExecution.Phase] + RECOVERED: _ClassVar[NodeExecution.Phase] + UNDEFINED: NodeExecution.Phase + QUEUED: NodeExecution.Phase + RUNNING: NodeExecution.Phase + SUCCEEDED: NodeExecution.Phase + FAILING: NodeExecution.Phase + FAILED: NodeExecution.Phase + ABORTED: NodeExecution.Phase + SKIPPED: NodeExecution.Phase + TIMED_OUT: NodeExecution.Phase + DYNAMIC_RUNNING: NodeExecution.Phase + RECOVERED: NodeExecution.Phase + def __init__(self) -> None: ... + +class TaskExecution(_message.Message): + __slots__ = [] + class Phase(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNDEFINED: _ClassVar[TaskExecution.Phase] + QUEUED: _ClassVar[TaskExecution.Phase] + RUNNING: _ClassVar[TaskExecution.Phase] + SUCCEEDED: _ClassVar[TaskExecution.Phase] + ABORTED: _ClassVar[TaskExecution.Phase] + FAILED: _ClassVar[TaskExecution.Phase] + INITIALIZING: _ClassVar[TaskExecution.Phase] + WAITING_FOR_RESOURCES: _ClassVar[TaskExecution.Phase] + UNDEFINED: TaskExecution.Phase + QUEUED: TaskExecution.Phase + RUNNING: TaskExecution.Phase + SUCCEEDED: TaskExecution.Phase + ABORTED: TaskExecution.Phase + FAILED: TaskExecution.Phase + INITIALIZING: TaskExecution.Phase + WAITING_FOR_RESOURCES: TaskExecution.Phase + def __init__(self) -> None: ... + +class ExecutionError(_message.Message): + __slots__ = ["code", "message", "error_uri", "kind"] + class ErrorKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNKNOWN: _ClassVar[ExecutionError.ErrorKind] + USER: _ClassVar[ExecutionError.ErrorKind] + SYSTEM: _ClassVar[ExecutionError.ErrorKind] + UNKNOWN: ExecutionError.ErrorKind + USER: ExecutionError.ErrorKind + SYSTEM: ExecutionError.ErrorKind + CODE_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + ERROR_URI_FIELD_NUMBER: _ClassVar[int] + KIND_FIELD_NUMBER: _ClassVar[int] + code: str + message: str + error_uri: str + kind: ExecutionError.ErrorKind + def __init__(self, code: _Optional[str] = ..., message: _Optional[str] = ..., error_uri: _Optional[str] = ..., kind: _Optional[_Union[ExecutionError.ErrorKind, str]] = ...) -> None: ... + +class TaskLog(_message.Message): + __slots__ = ["uri", "name", "message_format", "ttl"] + class MessageFormat(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNKNOWN: _ClassVar[TaskLog.MessageFormat] + CSV: _ClassVar[TaskLog.MessageFormat] + JSON: _ClassVar[TaskLog.MessageFormat] + UNKNOWN: TaskLog.MessageFormat + CSV: TaskLog.MessageFormat + JSON: TaskLog.MessageFormat + URI_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FORMAT_FIELD_NUMBER: _ClassVar[int] + TTL_FIELD_NUMBER: _ClassVar[int] + uri: str + name: str + message_format: TaskLog.MessageFormat + ttl: _duration_pb2.Duration + def __init__(self, uri: _Optional[str] = ..., name: _Optional[str] = ..., message_format: _Optional[_Union[TaskLog.MessageFormat, str]] = ..., ttl: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... + +class QualityOfServiceSpec(_message.Message): + __slots__ = ["queueing_budget"] + QUEUEING_BUDGET_FIELD_NUMBER: _ClassVar[int] + queueing_budget: _duration_pb2.Duration + def __init__(self, queueing_budget: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... + +class QualityOfService(_message.Message): + __slots__ = ["tier", "spec"] + class Tier(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNDEFINED: _ClassVar[QualityOfService.Tier] + HIGH: _ClassVar[QualityOfService.Tier] + MEDIUM: _ClassVar[QualityOfService.Tier] + LOW: _ClassVar[QualityOfService.Tier] + UNDEFINED: QualityOfService.Tier + HIGH: QualityOfService.Tier + MEDIUM: QualityOfService.Tier + LOW: QualityOfService.Tier + TIER_FIELD_NUMBER: _ClassVar[int] + SPEC_FIELD_NUMBER: _ClassVar[int] + tier: QualityOfService.Tier + spec: QualityOfServiceSpec + def __init__(self, tier: _Optional[_Union[QualityOfService.Tier, str]] = ..., spec: _Optional[_Union[QualityOfServiceSpec, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/execution_pb2_grpc.py b/build/lib/flyteidl/core/execution_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/execution_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/identifier_pb2.py b/build/lib/flyteidl/core/identifier_pb2.py new file mode 100644 index 000000000..e593384c9 --- /dev/null +++ b/build/lib/flyteidl/core/identifier_pb2.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/identifier.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +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\xaf\x01\n\x11\x63om.flyteidl.coreB\x0fIdentifierProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.identifier_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\017IdentifierProtoP\001Z4github.com/flyteorg/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['_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 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/identifier_pb2.pyi b/build/lib/flyteidl/core/identifier_pb2.pyi new file mode 100644 index 000000000..7adea4634 --- /dev/null +++ b/build/lib/flyteidl/core/identifier_pb2.pyi @@ -0,0 +1,69 @@ +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 +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class ResourceType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNSPECIFIED: _ClassVar[ResourceType] + TASK: _ClassVar[ResourceType] + WORKFLOW: _ClassVar[ResourceType] + LAUNCH_PLAN: _ClassVar[ResourceType] + DATASET: _ClassVar[ResourceType] +UNSPECIFIED: ResourceType +TASK: ResourceType +WORKFLOW: ResourceType +LAUNCH_PLAN: ResourceType +DATASET: ResourceType + +class Identifier(_message.Message): + __slots__ = ["resource_type", "project", "domain", "name", "version"] + 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] + 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: ... + +class WorkflowExecutionIdentifier(_message.Message): + __slots__ = ["project", "domain", "name"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + DOMAIN_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + project: str + domain: str + name: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... + +class NodeExecutionIdentifier(_message.Message): + __slots__ = ["node_id", "execution_id"] + NODE_ID_FIELD_NUMBER: _ClassVar[int] + EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + node_id: str + execution_id: WorkflowExecutionIdentifier + def __init__(self, node_id: _Optional[str] = ..., execution_id: _Optional[_Union[WorkflowExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class TaskExecutionIdentifier(_message.Message): + __slots__ = ["task_id", "node_execution_id", "retry_attempt"] + TASK_ID_FIELD_NUMBER: _ClassVar[int] + NODE_EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + RETRY_ATTEMPT_FIELD_NUMBER: _ClassVar[int] + task_id: Identifier + node_execution_id: NodeExecutionIdentifier + retry_attempt: int + def __init__(self, task_id: _Optional[_Union[Identifier, _Mapping]] = ..., node_execution_id: _Optional[_Union[NodeExecutionIdentifier, _Mapping]] = ..., retry_attempt: _Optional[int] = ...) -> None: ... + +class SignalIdentifier(_message.Message): + __slots__ = ["signal_id", "execution_id"] + SIGNAL_ID_FIELD_NUMBER: _ClassVar[int] + EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + signal_id: str + execution_id: WorkflowExecutionIdentifier + def __init__(self, signal_id: _Optional[str] = ..., execution_id: _Optional[_Union[WorkflowExecutionIdentifier, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/identifier_pb2_grpc.py b/build/lib/flyteidl/core/identifier_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/identifier_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/interface_pb2.py b/build/lib/flyteidl/core/interface_pb2.py new file mode 100644 index 000000000..6fdba85ea --- /dev/null +++ b/build/lib/flyteidl/core/interface_pb2.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/interface.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import types_pb2 as flyteidl_dot_core_dot_types__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/core/interface.proto\x12\rflyteidl.core\x1a\x19\x66lyteidl/core/types.proto\x1a\x1c\x66lyteidl/core/literals.proto\"\\\n\x08Variable\x12.\n\x04type\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x04type\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\"\xad\x01\n\x0bVariableMap\x12G\n\tvariables\x18\x01 \x03(\x0b\x32).flyteidl.core.VariableMap.VariablesEntryR\tvariables\x1aU\n\x0eVariablesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x17.flyteidl.core.VariableR\x05value:\x02\x38\x01\"z\n\x0eTypedInterface\x12\x32\n\x06inputs\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.VariableMapR\x06inputs\x12\x34\n\x07outputs\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.VariableMapR\x07outputs\"\x94\x01\n\tParameter\x12)\n\x03var\x18\x01 \x01(\x0b\x32\x17.flyteidl.core.VariableR\x03var\x12\x32\n\x07\x64\x65\x66\x61ult\x18\x02 \x01(\x0b\x32\x16.flyteidl.core.LiteralH\x00R\x07\x64\x65\x66\x61ult\x12\x1c\n\x08required\x18\x03 \x01(\x08H\x00R\x08requiredB\n\n\x08\x62\x65havior\"\xb4\x01\n\x0cParameterMap\x12K\n\nparameters\x18\x01 \x03(\x0b\x32+.flyteidl.core.ParameterMap.ParametersEntryR\nparameters\x1aW\n\x0fParametersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x18.flyteidl.core.ParameterR\x05value:\x02\x38\x01\x42\xae\x01\n\x11\x63om.flyteidl.coreB\x0eInterfaceProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.interface_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\016InterfaceProtoP\001Z4github.com/flyteorg/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' + _VARIABLEMAP_VARIABLESENTRY._options = None + _VARIABLEMAP_VARIABLESENTRY._serialized_options = b'8\001' + _PARAMETERMAP_PARAMETERSENTRY._options = None + _PARAMETERMAP_PARAMETERSENTRY._serialized_options = b'8\001' + _globals['_VARIABLE']._serialized_start=105 + _globals['_VARIABLE']._serialized_end=197 + _globals['_VARIABLEMAP']._serialized_start=200 + _globals['_VARIABLEMAP']._serialized_end=373 + _globals['_VARIABLEMAP_VARIABLESENTRY']._serialized_start=288 + _globals['_VARIABLEMAP_VARIABLESENTRY']._serialized_end=373 + _globals['_TYPEDINTERFACE']._serialized_start=375 + _globals['_TYPEDINTERFACE']._serialized_end=497 + _globals['_PARAMETER']._serialized_start=500 + _globals['_PARAMETER']._serialized_end=648 + _globals['_PARAMETERMAP']._serialized_start=651 + _globals['_PARAMETERMAP']._serialized_end=831 + _globals['_PARAMETERMAP_PARAMETERSENTRY']._serialized_start=744 + _globals['_PARAMETERMAP_PARAMETERSENTRY']._serialized_end=831 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/interface_pb2.pyi b/build/lib/flyteidl/core/interface_pb2.pyi new file mode 100644 index 000000000..ca7c21bb6 --- /dev/null +++ b/build/lib/flyteidl/core/interface_pb2.pyi @@ -0,0 +1,60 @@ +from flyteidl.core import types_pb2 as _types_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Variable(_message.Message): + __slots__ = ["type", "description"] + TYPE_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + type: _types_pb2.LiteralType + description: str + def __init__(self, type: _Optional[_Union[_types_pb2.LiteralType, _Mapping]] = ..., description: _Optional[str] = ...) -> None: ... + +class VariableMap(_message.Message): + __slots__ = ["variables"] + class VariablesEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: Variable + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[Variable, _Mapping]] = ...) -> None: ... + VARIABLES_FIELD_NUMBER: _ClassVar[int] + variables: _containers.MessageMap[str, Variable] + def __init__(self, variables: _Optional[_Mapping[str, Variable]] = ...) -> None: ... + +class TypedInterface(_message.Message): + __slots__ = ["inputs", "outputs"] + INPUTS_FIELD_NUMBER: _ClassVar[int] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + inputs: VariableMap + outputs: VariableMap + def __init__(self, inputs: _Optional[_Union[VariableMap, _Mapping]] = ..., outputs: _Optional[_Union[VariableMap, _Mapping]] = ...) -> None: ... + +class Parameter(_message.Message): + __slots__ = ["var", "default", "required"] + VAR_FIELD_NUMBER: _ClassVar[int] + DEFAULT_FIELD_NUMBER: _ClassVar[int] + REQUIRED_FIELD_NUMBER: _ClassVar[int] + var: Variable + default: _literals_pb2.Literal + required: bool + def __init__(self, var: _Optional[_Union[Variable, _Mapping]] = ..., default: _Optional[_Union[_literals_pb2.Literal, _Mapping]] = ..., required: bool = ...) -> None: ... + +class ParameterMap(_message.Message): + __slots__ = ["parameters"] + class ParametersEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: Parameter + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[Parameter, _Mapping]] = ...) -> None: ... + PARAMETERS_FIELD_NUMBER: _ClassVar[int] + parameters: _containers.MessageMap[str, Parameter] + def __init__(self, parameters: _Optional[_Mapping[str, Parameter]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/interface_pb2_grpc.py b/build/lib/flyteidl/core/interface_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/interface_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/literals_pb2.py b/build/lib/flyteidl/core/literals_pb2.py new file mode 100644 index 000000000..f7e431bc8 --- /dev/null +++ b/build/lib/flyteidl/core/literals_pb2.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/literals.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from flyteidl.core import types_pb2 as flyteidl_dot_core_dot_types__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/core/literals.proto\x12\rflyteidl.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x19\x66lyteidl/core/types.proto\"\x87\x02\n\tPrimitive\x12\x1a\n\x07integer\x18\x01 \x01(\x03H\x00R\x07integer\x12!\n\x0b\x66loat_value\x18\x02 \x01(\x01H\x00R\nfloatValue\x12#\n\x0cstring_value\x18\x03 \x01(\tH\x00R\x0bstringValue\x12\x1a\n\x07\x62oolean\x18\x04 \x01(\x08H\x00R\x07\x62oolean\x12\x38\n\x08\x64\x61tetime\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x08\x64\x61tetime\x12\x37\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00R\x08\x64urationB\x07\n\x05value\"\x06\n\x04Void\"Q\n\x04\x42lob\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32\x1b.flyteidl.core.BlobMetadataR\x08metadata\x12\x10\n\x03uri\x18\x03 \x01(\tR\x03uri\";\n\x0c\x42lobMetadata\x12+\n\x04type\x18\x01 \x01(\x0b\x32\x17.flyteidl.core.BlobTypeR\x04type\"0\n\x06\x42inary\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x10\n\x03tag\x18\x02 \x01(\tR\x03tag\"I\n\x06Schema\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12-\n\x04type\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.SchemaTypeR\x04type\"e\n\x05Union\x12,\n\x05value\x18\x01 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value\x12.\n\x04type\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x04type\"y\n\x19StructuredDatasetMetadata\x12\\\n\x17structured_dataset_type\x18\x01 \x01(\x0b\x32$.flyteidl.core.StructuredDatasetTypeR\x15structuredDatasetType\"k\n\x11StructuredDataset\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12\x44\n\x08metadata\x18\x02 \x01(\x0b\x32(.flyteidl.core.StructuredDatasetMetadataR\x08metadata\"\xf0\x03\n\x06Scalar\x12\x38\n\tprimitive\x18\x01 \x01(\x0b\x32\x18.flyteidl.core.PrimitiveH\x00R\tprimitive\x12)\n\x04\x62lob\x18\x02 \x01(\x0b\x32\x13.flyteidl.core.BlobH\x00R\x04\x62lob\x12/\n\x06\x62inary\x18\x03 \x01(\x0b\x32\x15.flyteidl.core.BinaryH\x00R\x06\x62inary\x12/\n\x06schema\x18\x04 \x01(\x0b\x32\x15.flyteidl.core.SchemaH\x00R\x06schema\x12\x32\n\tnone_type\x18\x05 \x01(\x0b\x32\x13.flyteidl.core.VoidH\x00R\x08noneType\x12,\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x14.flyteidl.core.ErrorH\x00R\x05\x65rror\x12\x33\n\x07generic\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructH\x00R\x07generic\x12Q\n\x12structured_dataset\x18\x08 \x01(\x0b\x32 .flyteidl.core.StructuredDatasetH\x00R\x11structuredDataset\x12,\n\x05union\x18\t \x01(\x0b\x32\x14.flyteidl.core.UnionH\x00R\x05unionB\x07\n\x05value\"\xca\x01\n\x07Literal\x12/\n\x06scalar\x18\x01 \x01(\x0b\x32\x15.flyteidl.core.ScalarH\x00R\x06scalar\x12\x42\n\ncollection\x18\x02 \x01(\x0b\x32 .flyteidl.core.LiteralCollectionH\x00R\ncollection\x12-\n\x03map\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\x03map\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hashB\x07\n\x05value\"G\n\x11LiteralCollection\x12\x32\n\x08literals\x18\x01 \x03(\x0b\x32\x16.flyteidl.core.LiteralR\x08literals\"\xa6\x01\n\nLiteralMap\x12\x43\n\x08literals\x18\x01 \x03(\x0b\x32\'.flyteidl.core.LiteralMap.LiteralsEntryR\x08literals\x1aS\n\rLiteralsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.flyteidl.core.LiteralR\x05value:\x02\x38\x01\"O\n\x15\x42indingDataCollection\x12\x36\n\x08\x62indings\x18\x01 \x03(\x0b\x32\x1a.flyteidl.core.BindingDataR\x08\x62indings\"\xb2\x01\n\x0e\x42indingDataMap\x12G\n\x08\x62indings\x18\x01 \x03(\x0b\x32+.flyteidl.core.BindingDataMap.BindingsEntryR\x08\x62indings\x1aW\n\rBindingsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.BindingDataR\x05value:\x02\x38\x01\"G\n\tUnionInfo\x12:\n\ntargetType\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\ntargetType\"\xae\x02\n\x0b\x42indingData\x12/\n\x06scalar\x18\x01 \x01(\x0b\x32\x15.flyteidl.core.ScalarH\x00R\x06scalar\x12\x46\n\ncollection\x18\x02 \x01(\x0b\x32$.flyteidl.core.BindingDataCollectionH\x00R\ncollection\x12:\n\x07promise\x18\x03 \x01(\x0b\x32\x1e.flyteidl.core.OutputReferenceH\x00R\x07promise\x12\x31\n\x03map\x18\x04 \x01(\x0b\x32\x1d.flyteidl.core.BindingDataMapH\x00R\x03map\x12.\n\x05union\x18\x05 \x01(\x0b\x32\x18.flyteidl.core.UnionInfoR\x05unionB\x07\n\x05value\"Q\n\x07\x42inding\x12\x10\n\x03var\x18\x01 \x01(\tR\x03var\x12\x34\n\x07\x62inding\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.BindingDataR\x07\x62inding\"6\n\x0cKeyValuePair\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\")\n\rRetryStrategy\x12\x18\n\x07retries\x18\x05 \x01(\rR\x07retriesB\xad\x01\n\x11\x63om.flyteidl.coreB\rLiteralsProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.literals_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\rLiteralsProtoP\001Z4github.com/flyteorg/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' + _LITERALMAP_LITERALSENTRY._options = None + _LITERALMAP_LITERALSENTRY._serialized_options = b'8\001' + _BINDINGDATAMAP_BINDINGSENTRY._options = None + _BINDINGDATAMAP_BINDINGSENTRY._serialized_options = b'8\001' + _globals['_PRIMITIVE']._serialized_start=170 + _globals['_PRIMITIVE']._serialized_end=433 + _globals['_VOID']._serialized_start=435 + _globals['_VOID']._serialized_end=441 + _globals['_BLOB']._serialized_start=443 + _globals['_BLOB']._serialized_end=524 + _globals['_BLOBMETADATA']._serialized_start=526 + _globals['_BLOBMETADATA']._serialized_end=585 + _globals['_BINARY']._serialized_start=587 + _globals['_BINARY']._serialized_end=635 + _globals['_SCHEMA']._serialized_start=637 + _globals['_SCHEMA']._serialized_end=710 + _globals['_UNION']._serialized_start=712 + _globals['_UNION']._serialized_end=813 + _globals['_STRUCTUREDDATASETMETADATA']._serialized_start=815 + _globals['_STRUCTUREDDATASETMETADATA']._serialized_end=936 + _globals['_STRUCTUREDDATASET']._serialized_start=938 + _globals['_STRUCTUREDDATASET']._serialized_end=1045 + _globals['_SCALAR']._serialized_start=1048 + _globals['_SCALAR']._serialized_end=1544 + _globals['_LITERAL']._serialized_start=1547 + _globals['_LITERAL']._serialized_end=1749 + _globals['_LITERALCOLLECTION']._serialized_start=1751 + _globals['_LITERALCOLLECTION']._serialized_end=1822 + _globals['_LITERALMAP']._serialized_start=1825 + _globals['_LITERALMAP']._serialized_end=1991 + _globals['_LITERALMAP_LITERALSENTRY']._serialized_start=1908 + _globals['_LITERALMAP_LITERALSENTRY']._serialized_end=1991 + _globals['_BINDINGDATACOLLECTION']._serialized_start=1993 + _globals['_BINDINGDATACOLLECTION']._serialized_end=2072 + _globals['_BINDINGDATAMAP']._serialized_start=2075 + _globals['_BINDINGDATAMAP']._serialized_end=2253 + _globals['_BINDINGDATAMAP_BINDINGSENTRY']._serialized_start=2166 + _globals['_BINDINGDATAMAP_BINDINGSENTRY']._serialized_end=2253 + _globals['_UNIONINFO']._serialized_start=2255 + _globals['_UNIONINFO']._serialized_end=2326 + _globals['_BINDINGDATA']._serialized_start=2329 + _globals['_BINDINGDATA']._serialized_end=2631 + _globals['_BINDING']._serialized_start=2633 + _globals['_BINDING']._serialized_end=2714 + _globals['_KEYVALUEPAIR']._serialized_start=2716 + _globals['_KEYVALUEPAIR']._serialized_end=2770 + _globals['_RETRYSTRATEGY']._serialized_start=2772 + _globals['_RETRYSTRATEGY']._serialized_end=2813 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/literals_pb2.pyi b/build/lib/flyteidl/core/literals_pb2.pyi new file mode 100644 index 000000000..1df1a0bfb --- /dev/null +++ b/build/lib/flyteidl/core/literals_pb2.pyi @@ -0,0 +1,196 @@ +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import struct_pb2 as _struct_pb2 +from flyteidl.core import types_pb2 as _types_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Primitive(_message.Message): + __slots__ = ["integer", "float_value", "string_value", "boolean", "datetime", "duration"] + INTEGER_FIELD_NUMBER: _ClassVar[int] + FLOAT_VALUE_FIELD_NUMBER: _ClassVar[int] + STRING_VALUE_FIELD_NUMBER: _ClassVar[int] + BOOLEAN_FIELD_NUMBER: _ClassVar[int] + DATETIME_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + integer: int + float_value: float + string_value: str + boolean: bool + datetime: _timestamp_pb2.Timestamp + duration: _duration_pb2.Duration + def __init__(self, integer: _Optional[int] = ..., float_value: _Optional[float] = ..., string_value: _Optional[str] = ..., boolean: bool = ..., datetime: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... + +class Void(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class Blob(_message.Message): + __slots__ = ["metadata", "uri"] + METADATA_FIELD_NUMBER: _ClassVar[int] + URI_FIELD_NUMBER: _ClassVar[int] + metadata: BlobMetadata + uri: str + def __init__(self, metadata: _Optional[_Union[BlobMetadata, _Mapping]] = ..., uri: _Optional[str] = ...) -> None: ... + +class BlobMetadata(_message.Message): + __slots__ = ["type"] + TYPE_FIELD_NUMBER: _ClassVar[int] + type: _types_pb2.BlobType + def __init__(self, type: _Optional[_Union[_types_pb2.BlobType, _Mapping]] = ...) -> None: ... + +class Binary(_message.Message): + __slots__ = ["value", "tag"] + VALUE_FIELD_NUMBER: _ClassVar[int] + TAG_FIELD_NUMBER: _ClassVar[int] + value: bytes + tag: str + def __init__(self, value: _Optional[bytes] = ..., tag: _Optional[str] = ...) -> None: ... + +class Schema(_message.Message): + __slots__ = ["uri", "type"] + URI_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + uri: str + type: _types_pb2.SchemaType + def __init__(self, uri: _Optional[str] = ..., type: _Optional[_Union[_types_pb2.SchemaType, _Mapping]] = ...) -> None: ... + +class Union(_message.Message): + __slots__ = ["value", "type"] + VALUE_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + value: Literal + type: _types_pb2.LiteralType + def __init__(self, value: _Optional[_Union[Literal, _Mapping]] = ..., type: _Optional[_Union[_types_pb2.LiteralType, _Mapping]] = ...) -> None: ... + +class StructuredDatasetMetadata(_message.Message): + __slots__ = ["structured_dataset_type"] + STRUCTURED_DATASET_TYPE_FIELD_NUMBER: _ClassVar[int] + structured_dataset_type: _types_pb2.StructuredDatasetType + def __init__(self, structured_dataset_type: _Optional[_Union[_types_pb2.StructuredDatasetType, _Mapping]] = ...) -> None: ... + +class StructuredDataset(_message.Message): + __slots__ = ["uri", "metadata"] + URI_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + uri: str + metadata: StructuredDatasetMetadata + def __init__(self, uri: _Optional[str] = ..., metadata: _Optional[_Union[StructuredDatasetMetadata, _Mapping]] = ...) -> None: ... + +class Scalar(_message.Message): + __slots__ = ["primitive", "blob", "binary", "schema", "none_type", "error", "generic", "structured_dataset", "union"] + PRIMITIVE_FIELD_NUMBER: _ClassVar[int] + BLOB_FIELD_NUMBER: _ClassVar[int] + BINARY_FIELD_NUMBER: _ClassVar[int] + SCHEMA_FIELD_NUMBER: _ClassVar[int] + NONE_TYPE_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + GENERIC_FIELD_NUMBER: _ClassVar[int] + STRUCTURED_DATASET_FIELD_NUMBER: _ClassVar[int] + UNION_FIELD_NUMBER: _ClassVar[int] + primitive: Primitive + blob: Blob + binary: Binary + schema: Schema + none_type: Void + error: _types_pb2.Error + generic: _struct_pb2.Struct + structured_dataset: StructuredDataset + union: Union + def __init__(self, primitive: _Optional[_Union[Primitive, _Mapping]] = ..., blob: _Optional[_Union[Blob, _Mapping]] = ..., binary: _Optional[_Union[Binary, _Mapping]] = ..., schema: _Optional[_Union[Schema, _Mapping]] = ..., none_type: _Optional[_Union[Void, _Mapping]] = ..., error: _Optional[_Union[_types_pb2.Error, _Mapping]] = ..., generic: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., structured_dataset: _Optional[_Union[StructuredDataset, _Mapping]] = ..., union: _Optional[_Union[Union, _Mapping]] = ...) -> None: ... + +class Literal(_message.Message): + __slots__ = ["scalar", "collection", "map", "hash"] + SCALAR_FIELD_NUMBER: _ClassVar[int] + COLLECTION_FIELD_NUMBER: _ClassVar[int] + MAP_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + scalar: Scalar + collection: LiteralCollection + map: LiteralMap + hash: str + def __init__(self, scalar: _Optional[_Union[Scalar, _Mapping]] = ..., collection: _Optional[_Union[LiteralCollection, _Mapping]] = ..., map: _Optional[_Union[LiteralMap, _Mapping]] = ..., hash: _Optional[str] = ...) -> None: ... + +class LiteralCollection(_message.Message): + __slots__ = ["literals"] + LITERALS_FIELD_NUMBER: _ClassVar[int] + literals: _containers.RepeatedCompositeFieldContainer[Literal] + def __init__(self, literals: _Optional[_Iterable[_Union[Literal, _Mapping]]] = ...) -> None: ... + +class LiteralMap(_message.Message): + __slots__ = ["literals"] + class LiteralsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: Literal + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[Literal, _Mapping]] = ...) -> None: ... + LITERALS_FIELD_NUMBER: _ClassVar[int] + literals: _containers.MessageMap[str, Literal] + def __init__(self, literals: _Optional[_Mapping[str, Literal]] = ...) -> None: ... + +class BindingDataCollection(_message.Message): + __slots__ = ["bindings"] + BINDINGS_FIELD_NUMBER: _ClassVar[int] + bindings: _containers.RepeatedCompositeFieldContainer[BindingData] + def __init__(self, bindings: _Optional[_Iterable[_Union[BindingData, _Mapping]]] = ...) -> None: ... + +class BindingDataMap(_message.Message): + __slots__ = ["bindings"] + class BindingsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: BindingData + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[BindingData, _Mapping]] = ...) -> None: ... + BINDINGS_FIELD_NUMBER: _ClassVar[int] + bindings: _containers.MessageMap[str, BindingData] + def __init__(self, bindings: _Optional[_Mapping[str, BindingData]] = ...) -> None: ... + +class UnionInfo(_message.Message): + __slots__ = ["targetType"] + TARGETTYPE_FIELD_NUMBER: _ClassVar[int] + targetType: _types_pb2.LiteralType + def __init__(self, targetType: _Optional[_Union[_types_pb2.LiteralType, _Mapping]] = ...) -> None: ... + +class BindingData(_message.Message): + __slots__ = ["scalar", "collection", "promise", "map", "union"] + SCALAR_FIELD_NUMBER: _ClassVar[int] + COLLECTION_FIELD_NUMBER: _ClassVar[int] + PROMISE_FIELD_NUMBER: _ClassVar[int] + MAP_FIELD_NUMBER: _ClassVar[int] + UNION_FIELD_NUMBER: _ClassVar[int] + scalar: Scalar + collection: BindingDataCollection + promise: _types_pb2.OutputReference + map: BindingDataMap + union: UnionInfo + def __init__(self, scalar: _Optional[_Union[Scalar, _Mapping]] = ..., collection: _Optional[_Union[BindingDataCollection, _Mapping]] = ..., promise: _Optional[_Union[_types_pb2.OutputReference, _Mapping]] = ..., map: _Optional[_Union[BindingDataMap, _Mapping]] = ..., union: _Optional[_Union[UnionInfo, _Mapping]] = ...) -> None: ... + +class Binding(_message.Message): + __slots__ = ["var", "binding"] + VAR_FIELD_NUMBER: _ClassVar[int] + BINDING_FIELD_NUMBER: _ClassVar[int] + var: str + binding: BindingData + def __init__(self, var: _Optional[str] = ..., binding: _Optional[_Union[BindingData, _Mapping]] = ...) -> None: ... + +class KeyValuePair(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + +class RetryStrategy(_message.Message): + __slots__ = ["retries"] + RETRIES_FIELD_NUMBER: _ClassVar[int] + retries: int + def __init__(self, retries: _Optional[int] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/literals_pb2_grpc.py b/build/lib/flyteidl/core/literals_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/literals_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/metrics_pb2.py b/build/lib/flyteidl/core/metrics_pb2.py new file mode 100644 index 000000000..58fb40b66 --- /dev/null +++ b/build/lib/flyteidl/core/metrics_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/metrics.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lyteidl/core/metrics.proto\x12\rflyteidl.core\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa3\x03\n\x04Span\x12\x39\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartTime\x12\x35\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65ndTime\x12M\n\x0bworkflow_id\x18\x03 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierH\x00R\nworkflowId\x12\x41\n\x07node_id\x18\x04 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierH\x00R\x06nodeId\x12\x41\n\x07task_id\x18\x05 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierH\x00R\x06taskId\x12#\n\x0coperation_id\x18\x06 \x01(\tH\x00R\x0boperationId\x12)\n\x05spans\x18\x07 \x03(\x0b\x32\x13.flyteidl.core.SpanR\x05spansB\x04\n\x02idB\xac\x01\n\x11\x63om.flyteidl.coreB\x0cMetricsProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.metrics_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\014MetricsProtoP\001Z4github.com/flyteorg/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['_SPAN']._serialized_start=112 + _globals['_SPAN']._serialized_end=531 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/metrics_pb2.pyi b/build/lib/flyteidl/core/metrics_pb2.pyi new file mode 100644 index 000000000..d529fd64e --- /dev/null +++ b/build/lib/flyteidl/core/metrics_pb2.pyi @@ -0,0 +1,26 @@ +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Span(_message.Message): + __slots__ = ["start_time", "end_time", "workflow_id", "node_id", "task_id", "operation_id", "spans"] + START_TIME_FIELD_NUMBER: _ClassVar[int] + END_TIME_FIELD_NUMBER: _ClassVar[int] + WORKFLOW_ID_FIELD_NUMBER: _ClassVar[int] + NODE_ID_FIELD_NUMBER: _ClassVar[int] + TASK_ID_FIELD_NUMBER: _ClassVar[int] + OPERATION_ID_FIELD_NUMBER: _ClassVar[int] + SPANS_FIELD_NUMBER: _ClassVar[int] + start_time: _timestamp_pb2.Timestamp + end_time: _timestamp_pb2.Timestamp + workflow_id: _identifier_pb2.WorkflowExecutionIdentifier + node_id: _identifier_pb2.NodeExecutionIdentifier + task_id: _identifier_pb2.TaskExecutionIdentifier + operation_id: str + spans: _containers.RepeatedCompositeFieldContainer[Span] + def __init__(self, start_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., workflow_id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., node_id: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ..., task_id: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ..., operation_id: _Optional[str] = ..., spans: _Optional[_Iterable[_Union[Span, _Mapping]]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/metrics_pb2_grpc.py b/build/lib/flyteidl/core/metrics_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/metrics_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/security_pb2.py b/build/lib/flyteidl/core/security_pb2.py new file mode 100644 index 000000000..5523c1b19 --- /dev/null +++ b/build/lib/flyteidl/core/security_pb2.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/security.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/core/security.proto\x12\rflyteidl.core\"\x9d\x03\n\x06Secret\x12\x14\n\x05group\x18\x01 \x01(\tR\x05group\x12#\n\rgroup_version\x18\x02 \x01(\tR\x0cgroupVersion\x12\x10\n\x03key\x18\x03 \x01(\tR\x03key\x12P\n\x11mount_requirement\x18\x04 \x01(\x0e\x32\x1f.flyteidl.core.Secret.MountTypeB\x02\x18\x01R\x10mountRequirement\x12<\n\x07\x65nv_var\x18\x05 \x01(\x0b\x32!.flyteidl.core.Secret.MountEnvVarH\x00R\x06\x65nvVar\x12\x35\n\x04\x66ile\x18\x06 \x01(\x0b\x32\x1f.flyteidl.core.Secret.MountFileH\x00R\x04\x66ile\x1a!\n\x0bMountEnvVar\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x1a\x1f\n\tMountFile\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\"+\n\tMountType\x12\x07\n\x03\x41NY\x10\x00\x12\x0b\n\x07\x45NV_VAR\x10\x01\x12\x08\n\x04\x46ILE\x10\x02\x42\x0e\n\x0cmount_target\"g\n\x0cOAuth2Client\x12\x1b\n\tclient_id\x18\x01 \x01(\tR\x08\x63lientId\x12:\n\rclient_secret\x18\x02 \x01(\x0b\x32\x15.flyteidl.core.SecretR\x0c\x63lientSecret\"\xc6\x01\n\x08Identity\x12\x19\n\x08iam_role\x18\x01 \x01(\tR\x07iamRole\x12.\n\x13k8s_service_account\x18\x02 \x01(\tR\x11k8sServiceAccount\x12@\n\roauth2_client\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.OAuth2ClientR\x0coauth2Client\x12-\n\x12\x65xecution_identity\x18\x04 \x01(\tR\x11\x65xecutionIdentity\"\x96\x02\n\x12OAuth2TokenRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12:\n\x04type\x18\x02 \x01(\x0e\x32&.flyteidl.core.OAuth2TokenRequest.TypeR\x04type\x12\x33\n\x06\x63lient\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.OAuth2ClientR\x06\x63lient\x12\x34\n\x16idp_discovery_endpoint\x18\x04 \x01(\tR\x14idpDiscoveryEndpoint\x12%\n\x0etoken_endpoint\x18\x05 \x01(\tR\rtokenEndpoint\"\x1e\n\x04Type\x12\x16\n\x12\x43LIENT_CREDENTIALS\x10\x00\"\xad\x01\n\x0fSecurityContext\x12.\n\x06run_as\x18\x01 \x01(\x0b\x32\x17.flyteidl.core.IdentityR\x05runAs\x12/\n\x07secrets\x18\x02 \x03(\x0b\x32\x15.flyteidl.core.SecretR\x07secrets\x12\x39\n\x06tokens\x18\x03 \x03(\x0b\x32!.flyteidl.core.OAuth2TokenRequestR\x06tokensB\xad\x01\n\x11\x63om.flyteidl.coreB\rSecurityProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.security_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\rSecurityProtoP\001Z4github.com/flyteorg/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' + _SECRET.fields_by_name['mount_requirement']._options = None + _SECRET.fields_by_name['mount_requirement']._serialized_options = b'\030\001' + _globals['_SECRET']._serialized_start=48 + _globals['_SECRET']._serialized_end=461 + _globals['_SECRET_MOUNTENVVAR']._serialized_start=334 + _globals['_SECRET_MOUNTENVVAR']._serialized_end=367 + _globals['_SECRET_MOUNTFILE']._serialized_start=369 + _globals['_SECRET_MOUNTFILE']._serialized_end=400 + _globals['_SECRET_MOUNTTYPE']._serialized_start=402 + _globals['_SECRET_MOUNTTYPE']._serialized_end=445 + _globals['_OAUTH2CLIENT']._serialized_start=463 + _globals['_OAUTH2CLIENT']._serialized_end=566 + _globals['_IDENTITY']._serialized_start=569 + _globals['_IDENTITY']._serialized_end=767 + _globals['_OAUTH2TOKENREQUEST']._serialized_start=770 + _globals['_OAUTH2TOKENREQUEST']._serialized_end=1048 + _globals['_OAUTH2TOKENREQUEST_TYPE']._serialized_start=1018 + _globals['_OAUTH2TOKENREQUEST_TYPE']._serialized_end=1048 + _globals['_SECURITYCONTEXT']._serialized_start=1051 + _globals['_SECURITYCONTEXT']._serialized_end=1224 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/security_pb2.pyi b/build/lib/flyteidl/core/security_pb2.pyi new file mode 100644 index 000000000..c10f7dfe0 --- /dev/null +++ b/build/lib/flyteidl/core/security_pb2.pyi @@ -0,0 +1,89 @@ +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Secret(_message.Message): + __slots__ = ["group", "group_version", "key", "mount_requirement", "env_var", "file"] + class MountType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + ANY: _ClassVar[Secret.MountType] + ENV_VAR: _ClassVar[Secret.MountType] + FILE: _ClassVar[Secret.MountType] + ANY: Secret.MountType + ENV_VAR: Secret.MountType + FILE: Secret.MountType + class MountEnvVar(_message.Message): + __slots__ = ["name"] + NAME_FIELD_NUMBER: _ClassVar[int] + name: str + def __init__(self, name: _Optional[str] = ...) -> None: ... + class MountFile(_message.Message): + __slots__ = ["path"] + PATH_FIELD_NUMBER: _ClassVar[int] + path: str + def __init__(self, path: _Optional[str] = ...) -> None: ... + GROUP_FIELD_NUMBER: _ClassVar[int] + GROUP_VERSION_FIELD_NUMBER: _ClassVar[int] + KEY_FIELD_NUMBER: _ClassVar[int] + MOUNT_REQUIREMENT_FIELD_NUMBER: _ClassVar[int] + ENV_VAR_FIELD_NUMBER: _ClassVar[int] + FILE_FIELD_NUMBER: _ClassVar[int] + group: str + group_version: str + key: str + mount_requirement: Secret.MountType + env_var: Secret.MountEnvVar + file: Secret.MountFile + def __init__(self, group: _Optional[str] = ..., group_version: _Optional[str] = ..., key: _Optional[str] = ..., mount_requirement: _Optional[_Union[Secret.MountType, str]] = ..., env_var: _Optional[_Union[Secret.MountEnvVar, _Mapping]] = ..., file: _Optional[_Union[Secret.MountFile, _Mapping]] = ...) -> None: ... + +class OAuth2Client(_message.Message): + __slots__ = ["client_id", "client_secret"] + CLIENT_ID_FIELD_NUMBER: _ClassVar[int] + CLIENT_SECRET_FIELD_NUMBER: _ClassVar[int] + client_id: str + client_secret: Secret + def __init__(self, client_id: _Optional[str] = ..., client_secret: _Optional[_Union[Secret, _Mapping]] = ...) -> None: ... + +class Identity(_message.Message): + __slots__ = ["iam_role", "k8s_service_account", "oauth2_client", "execution_identity"] + IAM_ROLE_FIELD_NUMBER: _ClassVar[int] + K8S_SERVICE_ACCOUNT_FIELD_NUMBER: _ClassVar[int] + OAUTH2_CLIENT_FIELD_NUMBER: _ClassVar[int] + EXECUTION_IDENTITY_FIELD_NUMBER: _ClassVar[int] + iam_role: str + k8s_service_account: str + oauth2_client: OAuth2Client + execution_identity: str + def __init__(self, iam_role: _Optional[str] = ..., k8s_service_account: _Optional[str] = ..., oauth2_client: _Optional[_Union[OAuth2Client, _Mapping]] = ..., execution_identity: _Optional[str] = ...) -> None: ... + +class OAuth2TokenRequest(_message.Message): + __slots__ = ["name", "type", "client", "idp_discovery_endpoint", "token_endpoint"] + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + CLIENT_CREDENTIALS: _ClassVar[OAuth2TokenRequest.Type] + CLIENT_CREDENTIALS: OAuth2TokenRequest.Type + NAME_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + CLIENT_FIELD_NUMBER: _ClassVar[int] + IDP_DISCOVERY_ENDPOINT_FIELD_NUMBER: _ClassVar[int] + TOKEN_ENDPOINT_FIELD_NUMBER: _ClassVar[int] + name: str + type: OAuth2TokenRequest.Type + client: OAuth2Client + idp_discovery_endpoint: str + token_endpoint: str + def __init__(self, name: _Optional[str] = ..., type: _Optional[_Union[OAuth2TokenRequest.Type, str]] = ..., client: _Optional[_Union[OAuth2Client, _Mapping]] = ..., idp_discovery_endpoint: _Optional[str] = ..., token_endpoint: _Optional[str] = ...) -> None: ... + +class SecurityContext(_message.Message): + __slots__ = ["run_as", "secrets", "tokens"] + RUN_AS_FIELD_NUMBER: _ClassVar[int] + SECRETS_FIELD_NUMBER: _ClassVar[int] + TOKENS_FIELD_NUMBER: _ClassVar[int] + run_as: Identity + secrets: _containers.RepeatedCompositeFieldContainer[Secret] + tokens: _containers.RepeatedCompositeFieldContainer[OAuth2TokenRequest] + def __init__(self, run_as: _Optional[_Union[Identity, _Mapping]] = ..., secrets: _Optional[_Iterable[_Union[Secret, _Mapping]]] = ..., tokens: _Optional[_Iterable[_Union[OAuth2TokenRequest, _Mapping]]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/security_pb2_grpc.py b/build/lib/flyteidl/core/security_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/security_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/tasks_pb2.py b/build/lib/flyteidl/core/tasks_pb2.py new file mode 100644 index 000000000..fcafa0a32 --- /dev/null +++ b/build/lib/flyteidl/core/tasks_pb2.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/tasks.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import interface_pb2 as flyteidl_dot_core_dot_interface__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 +from flyteidl.core import security_pb2 as flyteidl_dot_core_dot_security__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x66lyteidl/core/tasks.proto\x12\rflyteidl.core\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xd0\x02\n\tResources\x12\x42\n\x08requests\x18\x01 \x03(\x0b\x32&.flyteidl.core.Resources.ResourceEntryR\x08requests\x12>\n\x06limits\x18\x02 \x03(\x0b\x32&.flyteidl.core.Resources.ResourceEntryR\x06limits\x1a`\n\rResourceEntry\x12\x39\n\x04name\x18\x01 \x01(\x0e\x32%.flyteidl.core.Resources.ResourceNameR\x04name\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"]\n\x0cResourceName\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03\x43PU\x10\x01\x12\x07\n\x03GPU\x10\x02\x12\n\n\x06MEMORY\x10\x03\x12\x0b\n\x07STORAGE\x10\x04\x12\x15\n\x11\x45PHEMERAL_STORAGE\x10\x05\"\xac\x01\n\x0fRuntimeMetadata\x12>\n\x04type\x18\x01 \x01(\x0e\x32*.flyteidl.core.RuntimeMetadata.RuntimeTypeR\x04type\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x16\n\x06\x66lavor\x18\x03 \x01(\tR\x06\x66lavor\"\'\n\x0bRuntimeType\x12\t\n\x05OTHER\x10\x00\x12\r\n\tFLYTE_SDK\x10\x01\"\xf5\x04\n\x0cTaskMetadata\x12\"\n\x0c\x64iscoverable\x18\x01 \x01(\x08R\x0c\x64iscoverable\x12\x38\n\x07runtime\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.RuntimeMetadataR\x07runtime\x12\x33\n\x07timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\x07timeout\x12\x36\n\x07retries\x18\x05 \x01(\x0b\x32\x1c.flyteidl.core.RetryStrategyR\x07retries\x12+\n\x11\x64iscovery_version\x18\x06 \x01(\tR\x10\x64iscoveryVersion\x12\x38\n\x18\x64\x65precated_error_message\x18\x07 \x01(\tR\x16\x64\x65precatedErrorMessage\x12&\n\rinterruptible\x18\x08 \x01(\x08H\x00R\rinterruptible\x12-\n\x12\x63\x61\x63he_serializable\x18\t \x01(\x08R\x11\x63\x61\x63heSerializable\x12%\n\x0egenerates_deck\x18\n \x01(\x08R\rgeneratesDeck\x12\x39\n\x04tags\x18\x0b \x03(\x0b\x32%.flyteidl.core.TaskMetadata.TagsEntryR\x04tags\x12*\n\x11pod_template_name\x18\x0c \x01(\tR\x0fpodTemplateName\x1a\x37\n\tTagsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x15\n\x13interruptible_value\"\x85\x05\n\x0cTaskTemplate\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x37\n\x08metadata\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.TaskMetadataR\x08metadata\x12;\n\tinterface\x18\x04 \x01(\x0b\x32\x1d.flyteidl.core.TypedInterfaceR\tinterface\x12/\n\x06\x63ustom\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructR\x06\x63ustom\x12\x38\n\tcontainer\x18\x06 \x01(\x0b\x32\x18.flyteidl.core.ContainerH\x00R\tcontainer\x12\x30\n\x07k8s_pod\x18\x11 \x01(\x0b\x32\x15.flyteidl.core.K8sPodH\x00R\x06k8sPod\x12&\n\x03sql\x18\x12 \x01(\x0b\x32\x12.flyteidl.core.SqlH\x00R\x03sql\x12*\n\x11task_type_version\x18\x07 \x01(\x05R\x0ftaskTypeVersion\x12I\n\x10security_context\x18\x08 \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12?\n\x06\x63onfig\x18\x10 \x03(\x0b\x32\'.flyteidl.core.TaskTemplate.ConfigEntryR\x06\x63onfig\x1a\x39\n\x0b\x43onfigEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x08\n\x06target\"6\n\rContainerPort\x12%\n\x0e\x63ontainer_port\x18\x01 \x01(\rR\rcontainerPort\"\xfc\x03\n\tContainer\x12\x14\n\x05image\x18\x01 \x01(\tR\x05image\x12\x18\n\x07\x63ommand\x18\x02 \x03(\tR\x07\x63ommand\x12\x12\n\x04\x61rgs\x18\x03 \x03(\tR\x04\x61rgs\x12\x36\n\tresources\x18\x04 \x01(\x0b\x32\x18.flyteidl.core.ResourcesR\tresources\x12-\n\x03\x65nv\x18\x05 \x03(\x0b\x32\x1b.flyteidl.core.KeyValuePairR\x03\x65nv\x12\x37\n\x06\x63onfig\x18\x06 \x03(\x0b\x32\x1b.flyteidl.core.KeyValuePairB\x02\x18\x01R\x06\x63onfig\x12\x32\n\x05ports\x18\x07 \x03(\x0b\x32\x1c.flyteidl.core.ContainerPortR\x05ports\x12\x41\n\x0b\x64\x61ta_config\x18\t \x01(\x0b\x32 .flyteidl.core.DataLoadingConfigR\ndataConfig\x12I\n\x0c\x61rchitecture\x18\n \x01(\x0e\x32%.flyteidl.core.Container.ArchitectureR\x0c\x61rchitecture\"I\n\x0c\x41rchitecture\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41MD64\x10\x01\x12\t\n\x05\x41RM64\x10\x02\x12\n\n\x06\x41RM_V6\x10\x03\x12\n\n\x06\x41RM_V7\x10\x04\"\xb5\x02\n\nIOStrategy\x12K\n\rdownload_mode\x18\x01 \x01(\x0e\x32&.flyteidl.core.IOStrategy.DownloadModeR\x0c\x64ownloadMode\x12\x45\n\x0bupload_mode\x18\x02 \x01(\x0e\x32$.flyteidl.core.IOStrategy.UploadModeR\nuploadMode\"L\n\x0c\x44ownloadMode\x12\x12\n\x0e\x44OWNLOAD_EAGER\x10\x00\x12\x13\n\x0f\x44OWNLOAD_STREAM\x10\x01\x12\x13\n\x0f\x44O_NOT_DOWNLOAD\x10\x02\"E\n\nUploadMode\x12\x12\n\x0eUPLOAD_ON_EXIT\x10\x00\x12\x10\n\x0cUPLOAD_EAGER\x10\x01\x12\x11\n\rDO_NOT_UPLOAD\x10\x02\"\xa7\x02\n\x11\x44\x61taLoadingConfig\x12\x18\n\x07\x65nabled\x18\x01 \x01(\x08R\x07\x65nabled\x12\x1d\n\ninput_path\x18\x02 \x01(\tR\tinputPath\x12\x1f\n\x0boutput_path\x18\x03 \x01(\tR\noutputPath\x12I\n\x06\x66ormat\x18\x04 \x01(\x0e\x32\x31.flyteidl.core.DataLoadingConfig.LiteralMapFormatR\x06\x66ormat\x12:\n\x0bio_strategy\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.IOStrategyR\nioStrategy\"1\n\x10LiteralMapFormat\x12\x08\n\x04JSON\x10\x00\x12\x08\n\x04YAML\x10\x01\x12\t\n\x05PROTO\x10\x02\"\xbd\x01\n\x06K8sPod\x12<\n\x08metadata\x18\x01 \x01(\x0b\x32 .flyteidl.core.K8sObjectMetadataR\x08metadata\x12\x32\n\x08pod_spec\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructR\x07podSpec\x12\x41\n\x0b\x64\x61ta_config\x18\x03 \x01(\x0b\x32 .flyteidl.core.DataLoadingConfigR\ndataConfig\"\xa9\x02\n\x11K8sObjectMetadata\x12\x44\n\x06labels\x18\x01 \x03(\x0b\x32,.flyteidl.core.K8sObjectMetadata.LabelsEntryR\x06labels\x12S\n\x0b\x61nnotations\x18\x02 \x03(\x0b\x32\x31.flyteidl.core.K8sObjectMetadata.AnnotationsEntryR\x0b\x61nnotations\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a>\n\x10\x41nnotationsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x92\x01\n\x03Sql\x12\x1c\n\tstatement\x18\x01 \x01(\tR\tstatement\x12\x34\n\x07\x64ialect\x18\x02 \x01(\x0e\x32\x1a.flyteidl.core.Sql.DialectR\x07\x64ialect\"7\n\x07\x44ialect\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04\x41NSI\x10\x01\x12\x08\n\x04HIVE\x10\x02\x12\t\n\x05OTHER\x10\x03\x42\xaa\x01\n\x11\x63om.flyteidl.coreB\nTasksProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.tasks_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\nTasksProtoP\001Z4github.com/flyteorg/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' + _TASKMETADATA_TAGSENTRY._options = None + _TASKMETADATA_TAGSENTRY._serialized_options = b'8\001' + _TASKTEMPLATE_CONFIGENTRY._options = None + _TASKTEMPLATE_CONFIGENTRY._serialized_options = b'8\001' + _CONTAINER.fields_by_name['config']._options = None + _CONTAINER.fields_by_name['config']._serialized_options = b'\030\001' + _K8SOBJECTMETADATA_LABELSENTRY._options = None + _K8SOBJECTMETADATA_LABELSENTRY._serialized_options = b'8\001' + _K8SOBJECTMETADATA_ANNOTATIONSENTRY._options = None + _K8SOBJECTMETADATA_ANNOTATIONSENTRY._serialized_options = b'8\001' + _globals['_RESOURCES']._serialized_start=230 + _globals['_RESOURCES']._serialized_end=566 + _globals['_RESOURCES_RESOURCEENTRY']._serialized_start=375 + _globals['_RESOURCES_RESOURCEENTRY']._serialized_end=471 + _globals['_RESOURCES_RESOURCENAME']._serialized_start=473 + _globals['_RESOURCES_RESOURCENAME']._serialized_end=566 + _globals['_RUNTIMEMETADATA']._serialized_start=569 + _globals['_RUNTIMEMETADATA']._serialized_end=741 + _globals['_RUNTIMEMETADATA_RUNTIMETYPE']._serialized_start=702 + _globals['_RUNTIMEMETADATA_RUNTIMETYPE']._serialized_end=741 + _globals['_TASKMETADATA']._serialized_start=744 + _globals['_TASKMETADATA']._serialized_end=1373 + _globals['_TASKMETADATA_TAGSENTRY']._serialized_start=1295 + _globals['_TASKMETADATA_TAGSENTRY']._serialized_end=1350 + _globals['_TASKTEMPLATE']._serialized_start=1376 + _globals['_TASKTEMPLATE']._serialized_end=2021 + _globals['_TASKTEMPLATE_CONFIGENTRY']._serialized_start=1954 + _globals['_TASKTEMPLATE_CONFIGENTRY']._serialized_end=2011 + _globals['_CONTAINERPORT']._serialized_start=2023 + _globals['_CONTAINERPORT']._serialized_end=2077 + _globals['_CONTAINER']._serialized_start=2080 + _globals['_CONTAINER']._serialized_end=2588 + _globals['_CONTAINER_ARCHITECTURE']._serialized_start=2515 + _globals['_CONTAINER_ARCHITECTURE']._serialized_end=2588 + _globals['_IOSTRATEGY']._serialized_start=2591 + _globals['_IOSTRATEGY']._serialized_end=2900 + _globals['_IOSTRATEGY_DOWNLOADMODE']._serialized_start=2753 + _globals['_IOSTRATEGY_DOWNLOADMODE']._serialized_end=2829 + _globals['_IOSTRATEGY_UPLOADMODE']._serialized_start=2831 + _globals['_IOSTRATEGY_UPLOADMODE']._serialized_end=2900 + _globals['_DATALOADINGCONFIG']._serialized_start=2903 + _globals['_DATALOADINGCONFIG']._serialized_end=3198 + _globals['_DATALOADINGCONFIG_LITERALMAPFORMAT']._serialized_start=3149 + _globals['_DATALOADINGCONFIG_LITERALMAPFORMAT']._serialized_end=3198 + _globals['_K8SPOD']._serialized_start=3201 + _globals['_K8SPOD']._serialized_end=3390 + _globals['_K8SOBJECTMETADATA']._serialized_start=3393 + _globals['_K8SOBJECTMETADATA']._serialized_end=3690 + _globals['_K8SOBJECTMETADATA_LABELSENTRY']._serialized_start=3569 + _globals['_K8SOBJECTMETADATA_LABELSENTRY']._serialized_end=3626 + _globals['_K8SOBJECTMETADATA_ANNOTATIONSENTRY']._serialized_start=3628 + _globals['_K8SOBJECTMETADATA_ANNOTATIONSENTRY']._serialized_end=3690 + _globals['_SQL']._serialized_start=3693 + _globals['_SQL']._serialized_end=3839 + _globals['_SQL_DIALECT']._serialized_start=3784 + _globals['_SQL_DIALECT']._serialized_end=3839 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/tasks_pb2.pyi b/build/lib/flyteidl/core/tasks_pb2.pyi new file mode 100644 index 000000000..e33453ecd --- /dev/null +++ b/build/lib/flyteidl/core/tasks_pb2.pyi @@ -0,0 +1,260 @@ +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import interface_pb2 as _interface_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from flyteidl.core import security_pb2 as _security_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Resources(_message.Message): + __slots__ = ["requests", "limits"] + class ResourceName(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNKNOWN: _ClassVar[Resources.ResourceName] + CPU: _ClassVar[Resources.ResourceName] + GPU: _ClassVar[Resources.ResourceName] + MEMORY: _ClassVar[Resources.ResourceName] + STORAGE: _ClassVar[Resources.ResourceName] + EPHEMERAL_STORAGE: _ClassVar[Resources.ResourceName] + UNKNOWN: Resources.ResourceName + CPU: Resources.ResourceName + GPU: Resources.ResourceName + MEMORY: Resources.ResourceName + STORAGE: Resources.ResourceName + EPHEMERAL_STORAGE: Resources.ResourceName + class ResourceEntry(_message.Message): + __slots__ = ["name", "value"] + NAME_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + name: Resources.ResourceName + value: str + def __init__(self, name: _Optional[_Union[Resources.ResourceName, str]] = ..., value: _Optional[str] = ...) -> None: ... + REQUESTS_FIELD_NUMBER: _ClassVar[int] + LIMITS_FIELD_NUMBER: _ClassVar[int] + requests: _containers.RepeatedCompositeFieldContainer[Resources.ResourceEntry] + limits: _containers.RepeatedCompositeFieldContainer[Resources.ResourceEntry] + def __init__(self, requests: _Optional[_Iterable[_Union[Resources.ResourceEntry, _Mapping]]] = ..., limits: _Optional[_Iterable[_Union[Resources.ResourceEntry, _Mapping]]] = ...) -> None: ... + +class RuntimeMetadata(_message.Message): + __slots__ = ["type", "version", "flavor"] + class RuntimeType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + OTHER: _ClassVar[RuntimeMetadata.RuntimeType] + FLYTE_SDK: _ClassVar[RuntimeMetadata.RuntimeType] + OTHER: RuntimeMetadata.RuntimeType + FLYTE_SDK: RuntimeMetadata.RuntimeType + TYPE_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + FLAVOR_FIELD_NUMBER: _ClassVar[int] + type: RuntimeMetadata.RuntimeType + version: str + flavor: str + def __init__(self, type: _Optional[_Union[RuntimeMetadata.RuntimeType, str]] = ..., version: _Optional[str] = ..., flavor: _Optional[str] = ...) -> None: ... + +class TaskMetadata(_message.Message): + __slots__ = ["discoverable", "runtime", "timeout", "retries", "discovery_version", "deprecated_error_message", "interruptible", "cache_serializable", "generates_deck", "tags", "pod_template_name"] + class TagsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + DISCOVERABLE_FIELD_NUMBER: _ClassVar[int] + RUNTIME_FIELD_NUMBER: _ClassVar[int] + TIMEOUT_FIELD_NUMBER: _ClassVar[int] + RETRIES_FIELD_NUMBER: _ClassVar[int] + DISCOVERY_VERSION_FIELD_NUMBER: _ClassVar[int] + DEPRECATED_ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int] + INTERRUPTIBLE_FIELD_NUMBER: _ClassVar[int] + CACHE_SERIALIZABLE_FIELD_NUMBER: _ClassVar[int] + GENERATES_DECK_FIELD_NUMBER: _ClassVar[int] + TAGS_FIELD_NUMBER: _ClassVar[int] + POD_TEMPLATE_NAME_FIELD_NUMBER: _ClassVar[int] + discoverable: bool + runtime: RuntimeMetadata + timeout: _duration_pb2.Duration + retries: _literals_pb2.RetryStrategy + discovery_version: str + deprecated_error_message: str + interruptible: bool + cache_serializable: bool + generates_deck: bool + tags: _containers.ScalarMap[str, str] + pod_template_name: str + def __init__(self, discoverable: bool = ..., runtime: _Optional[_Union[RuntimeMetadata, _Mapping]] = ..., timeout: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., retries: _Optional[_Union[_literals_pb2.RetryStrategy, _Mapping]] = ..., discovery_version: _Optional[str] = ..., deprecated_error_message: _Optional[str] = ..., interruptible: bool = ..., cache_serializable: bool = ..., generates_deck: bool = ..., tags: _Optional[_Mapping[str, str]] = ..., pod_template_name: _Optional[str] = ...) -> None: ... + +class TaskTemplate(_message.Message): + __slots__ = ["id", "type", "metadata", "interface", "custom", "container", "k8s_pod", "sql", "task_type_version", "security_context", "config"] + class ConfigEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + ID_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + INTERFACE_FIELD_NUMBER: _ClassVar[int] + CUSTOM_FIELD_NUMBER: _ClassVar[int] + CONTAINER_FIELD_NUMBER: _ClassVar[int] + K8S_POD_FIELD_NUMBER: _ClassVar[int] + SQL_FIELD_NUMBER: _ClassVar[int] + TASK_TYPE_VERSION_FIELD_NUMBER: _ClassVar[int] + SECURITY_CONTEXT_FIELD_NUMBER: _ClassVar[int] + CONFIG_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + type: str + metadata: TaskMetadata + interface: _interface_pb2.TypedInterface + custom: _struct_pb2.Struct + container: Container + k8s_pod: K8sPod + sql: Sql + task_type_version: int + security_context: _security_pb2.SecurityContext + config: _containers.ScalarMap[str, str] + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., type: _Optional[str] = ..., metadata: _Optional[_Union[TaskMetadata, _Mapping]] = ..., interface: _Optional[_Union[_interface_pb2.TypedInterface, _Mapping]] = ..., custom: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., container: _Optional[_Union[Container, _Mapping]] = ..., k8s_pod: _Optional[_Union[K8sPod, _Mapping]] = ..., sql: _Optional[_Union[Sql, _Mapping]] = ..., task_type_version: _Optional[int] = ..., security_context: _Optional[_Union[_security_pb2.SecurityContext, _Mapping]] = ..., config: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class ContainerPort(_message.Message): + __slots__ = ["container_port"] + CONTAINER_PORT_FIELD_NUMBER: _ClassVar[int] + container_port: int + def __init__(self, container_port: _Optional[int] = ...) -> None: ... + +class Container(_message.Message): + __slots__ = ["image", "command", "args", "resources", "env", "config", "ports", "data_config", "architecture"] + class Architecture(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNKNOWN: _ClassVar[Container.Architecture] + AMD64: _ClassVar[Container.Architecture] + ARM64: _ClassVar[Container.Architecture] + ARM_V6: _ClassVar[Container.Architecture] + ARM_V7: _ClassVar[Container.Architecture] + UNKNOWN: Container.Architecture + AMD64: Container.Architecture + ARM64: Container.Architecture + ARM_V6: Container.Architecture + ARM_V7: Container.Architecture + IMAGE_FIELD_NUMBER: _ClassVar[int] + COMMAND_FIELD_NUMBER: _ClassVar[int] + ARGS_FIELD_NUMBER: _ClassVar[int] + RESOURCES_FIELD_NUMBER: _ClassVar[int] + ENV_FIELD_NUMBER: _ClassVar[int] + CONFIG_FIELD_NUMBER: _ClassVar[int] + PORTS_FIELD_NUMBER: _ClassVar[int] + DATA_CONFIG_FIELD_NUMBER: _ClassVar[int] + ARCHITECTURE_FIELD_NUMBER: _ClassVar[int] + image: str + command: _containers.RepeatedScalarFieldContainer[str] + args: _containers.RepeatedScalarFieldContainer[str] + resources: Resources + env: _containers.RepeatedCompositeFieldContainer[_literals_pb2.KeyValuePair] + config: _containers.RepeatedCompositeFieldContainer[_literals_pb2.KeyValuePair] + ports: _containers.RepeatedCompositeFieldContainer[ContainerPort] + data_config: DataLoadingConfig + architecture: Container.Architecture + def __init__(self, image: _Optional[str] = ..., command: _Optional[_Iterable[str]] = ..., args: _Optional[_Iterable[str]] = ..., resources: _Optional[_Union[Resources, _Mapping]] = ..., env: _Optional[_Iterable[_Union[_literals_pb2.KeyValuePair, _Mapping]]] = ..., config: _Optional[_Iterable[_Union[_literals_pb2.KeyValuePair, _Mapping]]] = ..., ports: _Optional[_Iterable[_Union[ContainerPort, _Mapping]]] = ..., data_config: _Optional[_Union[DataLoadingConfig, _Mapping]] = ..., architecture: _Optional[_Union[Container.Architecture, str]] = ...) -> None: ... + +class IOStrategy(_message.Message): + __slots__ = ["download_mode", "upload_mode"] + class DownloadMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + DOWNLOAD_EAGER: _ClassVar[IOStrategy.DownloadMode] + DOWNLOAD_STREAM: _ClassVar[IOStrategy.DownloadMode] + DO_NOT_DOWNLOAD: _ClassVar[IOStrategy.DownloadMode] + DOWNLOAD_EAGER: IOStrategy.DownloadMode + DOWNLOAD_STREAM: IOStrategy.DownloadMode + DO_NOT_DOWNLOAD: IOStrategy.DownloadMode + class UploadMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UPLOAD_ON_EXIT: _ClassVar[IOStrategy.UploadMode] + UPLOAD_EAGER: _ClassVar[IOStrategy.UploadMode] + DO_NOT_UPLOAD: _ClassVar[IOStrategy.UploadMode] + UPLOAD_ON_EXIT: IOStrategy.UploadMode + UPLOAD_EAGER: IOStrategy.UploadMode + DO_NOT_UPLOAD: IOStrategy.UploadMode + DOWNLOAD_MODE_FIELD_NUMBER: _ClassVar[int] + UPLOAD_MODE_FIELD_NUMBER: _ClassVar[int] + download_mode: IOStrategy.DownloadMode + upload_mode: IOStrategy.UploadMode + def __init__(self, download_mode: _Optional[_Union[IOStrategy.DownloadMode, str]] = ..., upload_mode: _Optional[_Union[IOStrategy.UploadMode, str]] = ...) -> None: ... + +class DataLoadingConfig(_message.Message): + __slots__ = ["enabled", "input_path", "output_path", "format", "io_strategy"] + class LiteralMapFormat(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + JSON: _ClassVar[DataLoadingConfig.LiteralMapFormat] + YAML: _ClassVar[DataLoadingConfig.LiteralMapFormat] + PROTO: _ClassVar[DataLoadingConfig.LiteralMapFormat] + JSON: DataLoadingConfig.LiteralMapFormat + YAML: DataLoadingConfig.LiteralMapFormat + PROTO: DataLoadingConfig.LiteralMapFormat + ENABLED_FIELD_NUMBER: _ClassVar[int] + INPUT_PATH_FIELD_NUMBER: _ClassVar[int] + OUTPUT_PATH_FIELD_NUMBER: _ClassVar[int] + FORMAT_FIELD_NUMBER: _ClassVar[int] + IO_STRATEGY_FIELD_NUMBER: _ClassVar[int] + enabled: bool + input_path: str + output_path: str + format: DataLoadingConfig.LiteralMapFormat + io_strategy: IOStrategy + def __init__(self, enabled: bool = ..., input_path: _Optional[str] = ..., output_path: _Optional[str] = ..., format: _Optional[_Union[DataLoadingConfig.LiteralMapFormat, str]] = ..., io_strategy: _Optional[_Union[IOStrategy, _Mapping]] = ...) -> None: ... + +class K8sPod(_message.Message): + __slots__ = ["metadata", "pod_spec", "data_config"] + METADATA_FIELD_NUMBER: _ClassVar[int] + POD_SPEC_FIELD_NUMBER: _ClassVar[int] + DATA_CONFIG_FIELD_NUMBER: _ClassVar[int] + metadata: K8sObjectMetadata + pod_spec: _struct_pb2.Struct + data_config: DataLoadingConfig + def __init__(self, metadata: _Optional[_Union[K8sObjectMetadata, _Mapping]] = ..., pod_spec: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., data_config: _Optional[_Union[DataLoadingConfig, _Mapping]] = ...) -> None: ... + +class K8sObjectMetadata(_message.Message): + __slots__ = ["labels", "annotations"] + class LabelsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + class AnnotationsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + LABELS_FIELD_NUMBER: _ClassVar[int] + ANNOTATIONS_FIELD_NUMBER: _ClassVar[int] + labels: _containers.ScalarMap[str, str] + annotations: _containers.ScalarMap[str, str] + def __init__(self, labels: _Optional[_Mapping[str, str]] = ..., annotations: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class Sql(_message.Message): + __slots__ = ["statement", "dialect"] + class Dialect(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNDEFINED: _ClassVar[Sql.Dialect] + ANSI: _ClassVar[Sql.Dialect] + HIVE: _ClassVar[Sql.Dialect] + OTHER: _ClassVar[Sql.Dialect] + UNDEFINED: Sql.Dialect + ANSI: Sql.Dialect + HIVE: Sql.Dialect + OTHER: Sql.Dialect + STATEMENT_FIELD_NUMBER: _ClassVar[int] + DIALECT_FIELD_NUMBER: _ClassVar[int] + statement: str + dialect: Sql.Dialect + def __init__(self, statement: _Optional[str] = ..., dialect: _Optional[_Union[Sql.Dialect, str]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/tasks_pb2_grpc.py b/build/lib/flyteidl/core/tasks_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/tasks_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/types_pb2.py b/build/lib/flyteidl/core/types_pb2.py new file mode 100644 index 000000000..e357c171d --- /dev/null +++ b/build/lib/flyteidl/core/types_pb2.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/types.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x66lyteidl/core/types.proto\x12\rflyteidl.core\x1a\x1cgoogle/protobuf/struct.proto\"\xa1\x02\n\nSchemaType\x12@\n\x07\x63olumns\x18\x03 \x03(\x0b\x32&.flyteidl.core.SchemaType.SchemaColumnR\x07\x63olumns\x1a\xd0\x01\n\x0cSchemaColumn\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12K\n\x04type\x18\x02 \x01(\x0e\x32\x37.flyteidl.core.SchemaType.SchemaColumn.SchemaColumnTypeR\x04type\"_\n\x10SchemaColumnType\x12\x0b\n\x07INTEGER\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\n\n\x06STRING\x10\x02\x12\x0b\n\x07\x42OOLEAN\x10\x03\x12\x0c\n\x08\x44\x41TETIME\x10\x04\x12\x0c\n\x08\x44URATION\x10\x05\"\xc7\x02\n\x15StructuredDatasetType\x12L\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\x32.flyteidl.core.StructuredDatasetType.DatasetColumnR\x07\x63olumns\x12\x16\n\x06\x66ormat\x18\x02 \x01(\tR\x06\x66ormat\x12\x30\n\x14\x65xternal_schema_type\x18\x03 \x01(\tR\x12\x65xternalSchemaType\x12\x32\n\x15\x65xternal_schema_bytes\x18\x04 \x01(\x0cR\x13\x65xternalSchemaBytes\x1a\x62\n\rDatasetColumn\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12=\n\x0cliteral_type\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x0bliteralType\"\xa7\x01\n\x08\x42lobType\x12\x16\n\x06\x66ormat\x18\x01 \x01(\tR\x06\x66ormat\x12R\n\x0e\x64imensionality\x18\x02 \x01(\x0e\x32*.flyteidl.core.BlobType.BlobDimensionalityR\x0e\x64imensionality\"/\n\x12\x42lobDimensionality\x12\n\n\x06SINGLE\x10\x00\x12\r\n\tMULTIPART\x10\x01\"\"\n\x08\x45numType\x12\x16\n\x06values\x18\x01 \x03(\tR\x06values\"C\n\tUnionType\x12\x36\n\x08variants\x18\x01 \x03(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x08variants\"!\n\rTypeStructure\x12\x10\n\x03tag\x18\x01 \x01(\tR\x03tag\"K\n\x0eTypeAnnotation\x12\x39\n\x0b\x61nnotations\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x0b\x61nnotations\"\xbc\x05\n\x0bLiteralType\x12\x33\n\x06simple\x18\x01 \x01(\x0e\x32\x19.flyteidl.core.SimpleTypeH\x00R\x06simple\x12\x33\n\x06schema\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.SchemaTypeH\x00R\x06schema\x12\x45\n\x0f\x63ollection_type\x18\x03 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeH\x00R\x0e\x63ollectionType\x12\x42\n\x0emap_value_type\x18\x04 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeH\x00R\x0cmapValueType\x12-\n\x04\x62lob\x18\x05 \x01(\x0b\x32\x17.flyteidl.core.BlobTypeH\x00R\x04\x62lob\x12\x36\n\tenum_type\x18\x07 \x01(\x0b\x32\x17.flyteidl.core.EnumTypeH\x00R\x08\x65numType\x12^\n\x17structured_dataset_type\x18\x08 \x01(\x0b\x32$.flyteidl.core.StructuredDatasetTypeH\x00R\x15structuredDatasetType\x12\x39\n\nunion_type\x18\n \x01(\x0b\x32\x18.flyteidl.core.UnionTypeH\x00R\tunionType\x12\x33\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\x12=\n\nannotation\x18\t \x01(\x0b\x32\x1d.flyteidl.core.TypeAnnotationR\nannotation\x12:\n\tstructure\x18\x0b \x01(\x0b\x32\x1c.flyteidl.core.TypeStructureR\tstructureB\x06\n\x04type\"<\n\x0fOutputReference\x12\x17\n\x07node_id\x18\x01 \x01(\tR\x06nodeId\x12\x10\n\x03var\x18\x02 \x01(\tR\x03var\"G\n\x05\x45rror\x12$\n\x0e\x66\x61iled_node_id\x18\x01 \x01(\tR\x0c\x66\x61iledNodeId\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message*\x86\x01\n\nSimpleType\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07INTEGER\x10\x01\x12\t\n\x05\x46LOAT\x10\x02\x12\n\n\x06STRING\x10\x03\x12\x0b\n\x07\x42OOLEAN\x10\x04\x12\x0c\n\x08\x44\x41TETIME\x10\x05\x12\x0c\n\x08\x44URATION\x10\x06\x12\n\n\x06\x42INARY\x10\x07\x12\t\n\x05\x45RROR\x10\x08\x12\n\n\x06STRUCT\x10\tB\xaa\x01\n\x11\x63om.flyteidl.coreB\nTypesProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.types_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\nTypesProtoP\001Z4github.com/flyteorg/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['_SIMPLETYPE']._serialized_start=1922 + _globals['_SIMPLETYPE']._serialized_end=2056 + _globals['_SCHEMATYPE']._serialized_start=75 + _globals['_SCHEMATYPE']._serialized_end=364 + _globals['_SCHEMATYPE_SCHEMACOLUMN']._serialized_start=156 + _globals['_SCHEMATYPE_SCHEMACOLUMN']._serialized_end=364 + _globals['_SCHEMATYPE_SCHEMACOLUMN_SCHEMACOLUMNTYPE']._serialized_start=269 + _globals['_SCHEMATYPE_SCHEMACOLUMN_SCHEMACOLUMNTYPE']._serialized_end=364 + _globals['_STRUCTUREDDATASETTYPE']._serialized_start=367 + _globals['_STRUCTUREDDATASETTYPE']._serialized_end=694 + _globals['_STRUCTUREDDATASETTYPE_DATASETCOLUMN']._serialized_start=596 + _globals['_STRUCTUREDDATASETTYPE_DATASETCOLUMN']._serialized_end=694 + _globals['_BLOBTYPE']._serialized_start=697 + _globals['_BLOBTYPE']._serialized_end=864 + _globals['_BLOBTYPE_BLOBDIMENSIONALITY']._serialized_start=817 + _globals['_BLOBTYPE_BLOBDIMENSIONALITY']._serialized_end=864 + _globals['_ENUMTYPE']._serialized_start=866 + _globals['_ENUMTYPE']._serialized_end=900 + _globals['_UNIONTYPE']._serialized_start=902 + _globals['_UNIONTYPE']._serialized_end=969 + _globals['_TYPESTRUCTURE']._serialized_start=971 + _globals['_TYPESTRUCTURE']._serialized_end=1004 + _globals['_TYPEANNOTATION']._serialized_start=1006 + _globals['_TYPEANNOTATION']._serialized_end=1081 + _globals['_LITERALTYPE']._serialized_start=1084 + _globals['_LITERALTYPE']._serialized_end=1784 + _globals['_OUTPUTREFERENCE']._serialized_start=1786 + _globals['_OUTPUTREFERENCE']._serialized_end=1846 + _globals['_ERROR']._serialized_start=1848 + _globals['_ERROR']._serialized_end=1919 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/types_pb2.pyi b/build/lib/flyteidl/core/types_pb2.pyi new file mode 100644 index 000000000..c203e2919 --- /dev/null +++ b/build/lib/flyteidl/core/types_pb2.pyi @@ -0,0 +1,157 @@ +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class SimpleType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + NONE: _ClassVar[SimpleType] + INTEGER: _ClassVar[SimpleType] + FLOAT: _ClassVar[SimpleType] + STRING: _ClassVar[SimpleType] + BOOLEAN: _ClassVar[SimpleType] + DATETIME: _ClassVar[SimpleType] + DURATION: _ClassVar[SimpleType] + BINARY: _ClassVar[SimpleType] + ERROR: _ClassVar[SimpleType] + STRUCT: _ClassVar[SimpleType] +NONE: SimpleType +INTEGER: SimpleType +FLOAT: SimpleType +STRING: SimpleType +BOOLEAN: SimpleType +DATETIME: SimpleType +DURATION: SimpleType +BINARY: SimpleType +ERROR: SimpleType +STRUCT: SimpleType + +class SchemaType(_message.Message): + __slots__ = ["columns"] + class SchemaColumn(_message.Message): + __slots__ = ["name", "type"] + class SchemaColumnType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + INTEGER: _ClassVar[SchemaType.SchemaColumn.SchemaColumnType] + FLOAT: _ClassVar[SchemaType.SchemaColumn.SchemaColumnType] + STRING: _ClassVar[SchemaType.SchemaColumn.SchemaColumnType] + BOOLEAN: _ClassVar[SchemaType.SchemaColumn.SchemaColumnType] + DATETIME: _ClassVar[SchemaType.SchemaColumn.SchemaColumnType] + DURATION: _ClassVar[SchemaType.SchemaColumn.SchemaColumnType] + INTEGER: SchemaType.SchemaColumn.SchemaColumnType + FLOAT: SchemaType.SchemaColumn.SchemaColumnType + STRING: SchemaType.SchemaColumn.SchemaColumnType + BOOLEAN: SchemaType.SchemaColumn.SchemaColumnType + DATETIME: SchemaType.SchemaColumn.SchemaColumnType + DURATION: SchemaType.SchemaColumn.SchemaColumnType + NAME_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + name: str + type: SchemaType.SchemaColumn.SchemaColumnType + def __init__(self, name: _Optional[str] = ..., type: _Optional[_Union[SchemaType.SchemaColumn.SchemaColumnType, str]] = ...) -> None: ... + COLUMNS_FIELD_NUMBER: _ClassVar[int] + columns: _containers.RepeatedCompositeFieldContainer[SchemaType.SchemaColumn] + def __init__(self, columns: _Optional[_Iterable[_Union[SchemaType.SchemaColumn, _Mapping]]] = ...) -> None: ... + +class StructuredDatasetType(_message.Message): + __slots__ = ["columns", "format", "external_schema_type", "external_schema_bytes"] + class DatasetColumn(_message.Message): + __slots__ = ["name", "literal_type"] + NAME_FIELD_NUMBER: _ClassVar[int] + LITERAL_TYPE_FIELD_NUMBER: _ClassVar[int] + name: str + literal_type: LiteralType + def __init__(self, name: _Optional[str] = ..., literal_type: _Optional[_Union[LiteralType, _Mapping]] = ...) -> None: ... + COLUMNS_FIELD_NUMBER: _ClassVar[int] + FORMAT_FIELD_NUMBER: _ClassVar[int] + EXTERNAL_SCHEMA_TYPE_FIELD_NUMBER: _ClassVar[int] + EXTERNAL_SCHEMA_BYTES_FIELD_NUMBER: _ClassVar[int] + columns: _containers.RepeatedCompositeFieldContainer[StructuredDatasetType.DatasetColumn] + format: str + external_schema_type: str + external_schema_bytes: bytes + def __init__(self, columns: _Optional[_Iterable[_Union[StructuredDatasetType.DatasetColumn, _Mapping]]] = ..., format: _Optional[str] = ..., external_schema_type: _Optional[str] = ..., external_schema_bytes: _Optional[bytes] = ...) -> None: ... + +class BlobType(_message.Message): + __slots__ = ["format", "dimensionality"] + class BlobDimensionality(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + SINGLE: _ClassVar[BlobType.BlobDimensionality] + MULTIPART: _ClassVar[BlobType.BlobDimensionality] + SINGLE: BlobType.BlobDimensionality + MULTIPART: BlobType.BlobDimensionality + FORMAT_FIELD_NUMBER: _ClassVar[int] + DIMENSIONALITY_FIELD_NUMBER: _ClassVar[int] + format: str + dimensionality: BlobType.BlobDimensionality + def __init__(self, format: _Optional[str] = ..., dimensionality: _Optional[_Union[BlobType.BlobDimensionality, str]] = ...) -> None: ... + +class EnumType(_message.Message): + __slots__ = ["values"] + VALUES_FIELD_NUMBER: _ClassVar[int] + values: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, values: _Optional[_Iterable[str]] = ...) -> None: ... + +class UnionType(_message.Message): + __slots__ = ["variants"] + VARIANTS_FIELD_NUMBER: _ClassVar[int] + variants: _containers.RepeatedCompositeFieldContainer[LiteralType] + def __init__(self, variants: _Optional[_Iterable[_Union[LiteralType, _Mapping]]] = ...) -> None: ... + +class TypeStructure(_message.Message): + __slots__ = ["tag"] + TAG_FIELD_NUMBER: _ClassVar[int] + tag: str + def __init__(self, tag: _Optional[str] = ...) -> None: ... + +class TypeAnnotation(_message.Message): + __slots__ = ["annotations"] + ANNOTATIONS_FIELD_NUMBER: _ClassVar[int] + annotations: _struct_pb2.Struct + def __init__(self, annotations: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... + +class LiteralType(_message.Message): + __slots__ = ["simple", "schema", "collection_type", "map_value_type", "blob", "enum_type", "structured_dataset_type", "union_type", "metadata", "annotation", "structure"] + SIMPLE_FIELD_NUMBER: _ClassVar[int] + SCHEMA_FIELD_NUMBER: _ClassVar[int] + COLLECTION_TYPE_FIELD_NUMBER: _ClassVar[int] + MAP_VALUE_TYPE_FIELD_NUMBER: _ClassVar[int] + BLOB_FIELD_NUMBER: _ClassVar[int] + ENUM_TYPE_FIELD_NUMBER: _ClassVar[int] + STRUCTURED_DATASET_TYPE_FIELD_NUMBER: _ClassVar[int] + UNION_TYPE_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + ANNOTATION_FIELD_NUMBER: _ClassVar[int] + STRUCTURE_FIELD_NUMBER: _ClassVar[int] + simple: SimpleType + schema: SchemaType + collection_type: LiteralType + map_value_type: LiteralType + blob: BlobType + enum_type: EnumType + structured_dataset_type: StructuredDatasetType + union_type: UnionType + metadata: _struct_pb2.Struct + annotation: TypeAnnotation + structure: TypeStructure + def __init__(self, simple: _Optional[_Union[SimpleType, str]] = ..., schema: _Optional[_Union[SchemaType, _Mapping]] = ..., collection_type: _Optional[_Union[LiteralType, _Mapping]] = ..., map_value_type: _Optional[_Union[LiteralType, _Mapping]] = ..., blob: _Optional[_Union[BlobType, _Mapping]] = ..., enum_type: _Optional[_Union[EnumType, _Mapping]] = ..., structured_dataset_type: _Optional[_Union[StructuredDatasetType, _Mapping]] = ..., union_type: _Optional[_Union[UnionType, _Mapping]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., annotation: _Optional[_Union[TypeAnnotation, _Mapping]] = ..., structure: _Optional[_Union[TypeStructure, _Mapping]] = ...) -> None: ... + +class OutputReference(_message.Message): + __slots__ = ["node_id", "var"] + NODE_ID_FIELD_NUMBER: _ClassVar[int] + VAR_FIELD_NUMBER: _ClassVar[int] + node_id: str + var: str + def __init__(self, node_id: _Optional[str] = ..., var: _Optional[str] = ...) -> None: ... + +class Error(_message.Message): + __slots__ = ["failed_node_id", "message"] + FAILED_NODE_ID_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + failed_node_id: str + message: str + def __init__(self, failed_node_id: _Optional[str] = ..., message: _Optional[str] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/types_pb2_grpc.py b/build/lib/flyteidl/core/types_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/types_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/workflow_closure_pb2.py b/build/lib/flyteidl/core/workflow_closure_pb2.py new file mode 100644 index 000000000..6b826768c --- /dev/null +++ b/build/lib/flyteidl/core/workflow_closure_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/workflow_closure.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import workflow_pb2 as flyteidl_dot_core_dot_workflow__pb2 +from flyteidl.core import tasks_pb2 as flyteidl_dot_core_dot_tasks__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$flyteidl/core/workflow_closure.proto\x12\rflyteidl.core\x1a\x1c\x66lyteidl/core/workflow.proto\x1a\x19\x66lyteidl/core/tasks.proto\"\x81\x01\n\x0fWorkflowClosure\x12;\n\x08workflow\x18\x01 \x01(\x0b\x32\x1f.flyteidl.core.WorkflowTemplateR\x08workflow\x12\x31\n\x05tasks\x18\x02 \x03(\x0b\x32\x1b.flyteidl.core.TaskTemplateR\x05tasksB\xb4\x01\n\x11\x63om.flyteidl.coreB\x14WorkflowClosureProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.workflow_closure_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\024WorkflowClosureProtoP\001Z4github.com/flyteorg/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['_WORKFLOWCLOSURE']._serialized_start=113 + _globals['_WORKFLOWCLOSURE']._serialized_end=242 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/workflow_closure_pb2.pyi b/build/lib/flyteidl/core/workflow_closure_pb2.pyi new file mode 100644 index 000000000..ae93cec11 --- /dev/null +++ b/build/lib/flyteidl/core/workflow_closure_pb2.pyi @@ -0,0 +1,16 @@ +from flyteidl.core import workflow_pb2 as _workflow_pb2 +from flyteidl.core import tasks_pb2 as _tasks_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class WorkflowClosure(_message.Message): + __slots__ = ["workflow", "tasks"] + WORKFLOW_FIELD_NUMBER: _ClassVar[int] + TASKS_FIELD_NUMBER: _ClassVar[int] + workflow: _workflow_pb2.WorkflowTemplate + tasks: _containers.RepeatedCompositeFieldContainer[_tasks_pb2.TaskTemplate] + def __init__(self, workflow: _Optional[_Union[_workflow_pb2.WorkflowTemplate, _Mapping]] = ..., tasks: _Optional[_Iterable[_Union[_tasks_pb2.TaskTemplate, _Mapping]]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/workflow_closure_pb2_grpc.py b/build/lib/flyteidl/core/workflow_closure_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/workflow_closure_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/core/workflow_pb2.py b/build/lib/flyteidl/core/workflow_pb2.py new file mode 100644 index 000000000..5272c8bab --- /dev/null +++ b/build/lib/flyteidl/core/workflow_pb2.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/core/workflow.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import condition_pb2 as flyteidl_dot_core_dot_condition__pb2 +from flyteidl.core import execution_pb2 as flyteidl_dot_core_dot_execution__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import interface_pb2 as flyteidl_dot_core_dot_interface__pb2 +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 types_pb2 as flyteidl_dot_core_dot_types__pb2 +from flyteidl.core import security_pb2 as flyteidl_dot_core_dot_security__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/core/workflow.proto\x12\rflyteidl.core\x1a\x1d\x66lyteidl/core/condition.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x19\x66lyteidl/core/tasks.proto\x1a\x19\x66lyteidl/core/types.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\"{\n\x07IfBlock\x12>\n\tcondition\x18\x01 \x01(\x0b\x32 .flyteidl.core.BooleanExpressionR\tcondition\x12\x30\n\tthen_node\x18\x02 \x01(\x0b\x32\x13.flyteidl.core.NodeR\x08thenNode\"\xd4\x01\n\x0bIfElseBlock\x12*\n\x04\x63\x61se\x18\x01 \x01(\x0b\x32\x16.flyteidl.core.IfBlockR\x04\x63\x61se\x12,\n\x05other\x18\x02 \x03(\x0b\x32\x16.flyteidl.core.IfBlockR\x05other\x12\x32\n\telse_node\x18\x03 \x01(\x0b\x32\x13.flyteidl.core.NodeH\x00R\x08\x65lseNode\x12,\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x14.flyteidl.core.ErrorH\x00R\x05\x65rrorB\t\n\x07\x64\x65\x66\x61ult\"A\n\nBranchNode\x12\x33\n\x07if_else\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.IfElseBlockR\x06ifElse\"\x97\x01\n\x08TaskNode\x12>\n\x0creference_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierH\x00R\x0breferenceId\x12>\n\toverrides\x18\x02 \x01(\x0b\x32 .flyteidl.core.TaskNodeOverridesR\toverridesB\x0b\n\treference\"\xa6\x01\n\x0cWorkflowNode\x12\x42\n\x0elaunchplan_ref\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierH\x00R\rlaunchplanRef\x12\x45\n\x10sub_workflow_ref\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.IdentifierH\x00R\x0esubWorkflowRefB\x0b\n\treference\"/\n\x10\x41pproveCondition\x12\x1b\n\tsignal_id\x18\x01 \x01(\tR\x08signalId\"\x90\x01\n\x0fSignalCondition\x12\x1b\n\tsignal_id\x18\x01 \x01(\tR\x08signalId\x12.\n\x04type\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x04type\x12\x30\n\x14output_variable_name\x18\x03 \x01(\tR\x12outputVariableName\"G\n\x0eSleepCondition\x12\x35\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\"\xc5\x01\n\x08GateNode\x12;\n\x07\x61pprove\x18\x01 \x01(\x0b\x32\x1f.flyteidl.core.ApproveConditionH\x00R\x07\x61pprove\x12\x38\n\x06signal\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.SignalConditionH\x00R\x06signal\x12\x35\n\x05sleep\x18\x03 \x01(\x0b\x32\x1d.flyteidl.core.SleepConditionH\x00R\x05sleepB\x0b\n\tcondition\"\xbf\x01\n\tArrayNode\x12\'\n\x04node\x18\x01 \x01(\x0b\x32\x13.flyteidl.core.NodeR\x04node\x12 \n\x0bparallelism\x18\x02 \x01(\rR\x0bparallelism\x12%\n\rmin_successes\x18\x03 \x01(\rH\x00R\x0cminSuccesses\x12,\n\x11min_success_ratio\x18\x04 \x01(\x02H\x00R\x0fminSuccessRatioB\x12\n\x10success_criteria\"\xce\x01\n\x0cNodeMetadata\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x33\n\x07timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\x07timeout\x12\x36\n\x07retries\x18\x05 \x01(\x0b\x32\x1c.flyteidl.core.RetryStrategyR\x07retries\x12&\n\rinterruptible\x18\x06 \x01(\x08H\x00R\rinterruptibleB\x15\n\x13interruptible_value\"/\n\x05\x41lias\x12\x10\n\x03var\x18\x01 \x01(\tR\x03var\x12\x14\n\x05\x61lias\x18\x02 \x01(\tR\x05\x61lias\"\x9f\x04\n\x04Node\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x37\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.NodeMetadataR\x08metadata\x12.\n\x06inputs\x18\x03 \x03(\x0b\x32\x16.flyteidl.core.BindingR\x06inputs\x12*\n\x11upstream_node_ids\x18\x04 \x03(\tR\x0fupstreamNodeIds\x12;\n\x0eoutput_aliases\x18\x05 \x03(\x0b\x32\x14.flyteidl.core.AliasR\routputAliases\x12\x36\n\ttask_node\x18\x06 \x01(\x0b\x32\x17.flyteidl.core.TaskNodeH\x00R\x08taskNode\x12\x42\n\rworkflow_node\x18\x07 \x01(\x0b\x32\x1b.flyteidl.core.WorkflowNodeH\x00R\x0cworkflowNode\x12<\n\x0b\x62ranch_node\x18\x08 \x01(\x0b\x32\x19.flyteidl.core.BranchNodeH\x00R\nbranchNode\x12\x36\n\tgate_node\x18\t \x01(\x0b\x32\x17.flyteidl.core.GateNodeH\x00R\x08gateNode\x12\x39\n\narray_node\x18\n \x01(\x0b\x32\x18.flyteidl.core.ArrayNodeH\x00R\tarrayNodeB\x08\n\x06target\"\xfc\x02\n\x10WorkflowMetadata\x12M\n\x12quality_of_service\x18\x01 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceR\x10qualityOfService\x12N\n\non_failure\x18\x02 \x01(\x0e\x32/.flyteidl.core.WorkflowMetadata.OnFailurePolicyR\tonFailure\x12=\n\x04tags\x18\x03 \x03(\x0b\x32).flyteidl.core.WorkflowMetadata.TagsEntryR\x04tags\x1a\x37\n\tTagsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"Q\n\x0fOnFailurePolicy\x12\x14\n\x10\x46\x41IL_IMMEDIATELY\x10\x00\x12(\n$FAIL_AFTER_EXECUTABLE_NODES_COMPLETE\x10\x01\"@\n\x18WorkflowMetadataDefaults\x12$\n\rinterruptible\x18\x01 \x01(\x08R\rinterruptible\"\xa2\x03\n\x10WorkflowTemplate\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12;\n\x08metadata\x18\x02 \x01(\x0b\x32\x1f.flyteidl.core.WorkflowMetadataR\x08metadata\x12;\n\tinterface\x18\x03 \x01(\x0b\x32\x1d.flyteidl.core.TypedInterfaceR\tinterface\x12)\n\x05nodes\x18\x04 \x03(\x0b\x32\x13.flyteidl.core.NodeR\x05nodes\x12\x30\n\x07outputs\x18\x05 \x03(\x0b\x32\x16.flyteidl.core.BindingR\x07outputs\x12\x36\n\x0c\x66\x61ilure_node\x18\x06 \x01(\x0b\x32\x13.flyteidl.core.NodeR\x0b\x66\x61ilureNode\x12T\n\x11metadata_defaults\x18\x07 \x01(\x0b\x32\'.flyteidl.core.WorkflowMetadataDefaultsR\x10metadataDefaults\"K\n\x11TaskNodeOverrides\x12\x36\n\tresources\x18\x01 \x01(\x0b\x32\x18.flyteidl.core.ResourcesR\tresourcesB\xad\x01\n\x11\x63om.flyteidl.coreB\rWorkflowProtoP\x01Z4github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.core.workflow_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\rWorkflowProtoP\001Z4github.com/flyteorg/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' + _WORKFLOWMETADATA_TAGSENTRY._options = None + _WORKFLOWMETADATA_TAGSENTRY._serialized_options = b'8\001' + _globals['_IFBLOCK']._serialized_start=318 + _globals['_IFBLOCK']._serialized_end=441 + _globals['_IFELSEBLOCK']._serialized_start=444 + _globals['_IFELSEBLOCK']._serialized_end=656 + _globals['_BRANCHNODE']._serialized_start=658 + _globals['_BRANCHNODE']._serialized_end=723 + _globals['_TASKNODE']._serialized_start=726 + _globals['_TASKNODE']._serialized_end=877 + _globals['_WORKFLOWNODE']._serialized_start=880 + _globals['_WORKFLOWNODE']._serialized_end=1046 + _globals['_APPROVECONDITION']._serialized_start=1048 + _globals['_APPROVECONDITION']._serialized_end=1095 + _globals['_SIGNALCONDITION']._serialized_start=1098 + _globals['_SIGNALCONDITION']._serialized_end=1242 + _globals['_SLEEPCONDITION']._serialized_start=1244 + _globals['_SLEEPCONDITION']._serialized_end=1315 + _globals['_GATENODE']._serialized_start=1318 + _globals['_GATENODE']._serialized_end=1515 + _globals['_ARRAYNODE']._serialized_start=1518 + _globals['_ARRAYNODE']._serialized_end=1709 + _globals['_NODEMETADATA']._serialized_start=1712 + _globals['_NODEMETADATA']._serialized_end=1918 + _globals['_ALIAS']._serialized_start=1920 + _globals['_ALIAS']._serialized_end=1967 + _globals['_NODE']._serialized_start=1970 + _globals['_NODE']._serialized_end=2513 + _globals['_WORKFLOWMETADATA']._serialized_start=2516 + _globals['_WORKFLOWMETADATA']._serialized_end=2896 + _globals['_WORKFLOWMETADATA_TAGSENTRY']._serialized_start=2758 + _globals['_WORKFLOWMETADATA_TAGSENTRY']._serialized_end=2813 + _globals['_WORKFLOWMETADATA_ONFAILUREPOLICY']._serialized_start=2815 + _globals['_WORKFLOWMETADATA_ONFAILUREPOLICY']._serialized_end=2896 + _globals['_WORKFLOWMETADATADEFAULTS']._serialized_start=2898 + _globals['_WORKFLOWMETADATADEFAULTS']._serialized_end=2962 + _globals['_WORKFLOWTEMPLATE']._serialized_start=2965 + _globals['_WORKFLOWTEMPLATE']._serialized_end=3383 + _globals['_TASKNODEOVERRIDES']._serialized_start=3385 + _globals['_TASKNODEOVERRIDES']._serialized_end=3460 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/core/workflow_pb2.pyi b/build/lib/flyteidl/core/workflow_pb2.pyi new file mode 100644 index 000000000..95a108abc --- /dev/null +++ b/build/lib/flyteidl/core/workflow_pb2.pyi @@ -0,0 +1,199 @@ +from flyteidl.core import condition_pb2 as _condition_pb2 +from flyteidl.core import execution_pb2 as _execution_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import interface_pb2 as _interface_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from flyteidl.core import tasks_pb2 as _tasks_pb2 +from flyteidl.core import types_pb2 as _types_pb2 +from flyteidl.core import security_pb2 as _security_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class IfBlock(_message.Message): + __slots__ = ["condition", "then_node"] + CONDITION_FIELD_NUMBER: _ClassVar[int] + THEN_NODE_FIELD_NUMBER: _ClassVar[int] + condition: _condition_pb2.BooleanExpression + then_node: Node + def __init__(self, condition: _Optional[_Union[_condition_pb2.BooleanExpression, _Mapping]] = ..., then_node: _Optional[_Union[Node, _Mapping]] = ...) -> None: ... + +class IfElseBlock(_message.Message): + __slots__ = ["case", "other", "else_node", "error"] + CASE_FIELD_NUMBER: _ClassVar[int] + OTHER_FIELD_NUMBER: _ClassVar[int] + ELSE_NODE_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + case: IfBlock + other: _containers.RepeatedCompositeFieldContainer[IfBlock] + else_node: Node + error: _types_pb2.Error + def __init__(self, case: _Optional[_Union[IfBlock, _Mapping]] = ..., other: _Optional[_Iterable[_Union[IfBlock, _Mapping]]] = ..., else_node: _Optional[_Union[Node, _Mapping]] = ..., error: _Optional[_Union[_types_pb2.Error, _Mapping]] = ...) -> None: ... + +class BranchNode(_message.Message): + __slots__ = ["if_else"] + IF_ELSE_FIELD_NUMBER: _ClassVar[int] + if_else: IfElseBlock + def __init__(self, if_else: _Optional[_Union[IfElseBlock, _Mapping]] = ...) -> None: ... + +class TaskNode(_message.Message): + __slots__ = ["reference_id", "overrides"] + REFERENCE_ID_FIELD_NUMBER: _ClassVar[int] + OVERRIDES_FIELD_NUMBER: _ClassVar[int] + reference_id: _identifier_pb2.Identifier + overrides: TaskNodeOverrides + def __init__(self, reference_id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., overrides: _Optional[_Union[TaskNodeOverrides, _Mapping]] = ...) -> None: ... + +class WorkflowNode(_message.Message): + __slots__ = ["launchplan_ref", "sub_workflow_ref"] + LAUNCHPLAN_REF_FIELD_NUMBER: _ClassVar[int] + SUB_WORKFLOW_REF_FIELD_NUMBER: _ClassVar[int] + launchplan_ref: _identifier_pb2.Identifier + sub_workflow_ref: _identifier_pb2.Identifier + def __init__(self, launchplan_ref: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., sub_workflow_ref: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ...) -> None: ... + +class ApproveCondition(_message.Message): + __slots__ = ["signal_id"] + SIGNAL_ID_FIELD_NUMBER: _ClassVar[int] + signal_id: str + def __init__(self, signal_id: _Optional[str] = ...) -> None: ... + +class SignalCondition(_message.Message): + __slots__ = ["signal_id", "type", "output_variable_name"] + SIGNAL_ID_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + OUTPUT_VARIABLE_NAME_FIELD_NUMBER: _ClassVar[int] + signal_id: str + type: _types_pb2.LiteralType + output_variable_name: str + def __init__(self, signal_id: _Optional[str] = ..., type: _Optional[_Union[_types_pb2.LiteralType, _Mapping]] = ..., output_variable_name: _Optional[str] = ...) -> None: ... + +class SleepCondition(_message.Message): + __slots__ = ["duration"] + DURATION_FIELD_NUMBER: _ClassVar[int] + duration: _duration_pb2.Duration + def __init__(self, duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... + +class GateNode(_message.Message): + __slots__ = ["approve", "signal", "sleep"] + APPROVE_FIELD_NUMBER: _ClassVar[int] + SIGNAL_FIELD_NUMBER: _ClassVar[int] + SLEEP_FIELD_NUMBER: _ClassVar[int] + approve: ApproveCondition + signal: SignalCondition + sleep: SleepCondition + def __init__(self, approve: _Optional[_Union[ApproveCondition, _Mapping]] = ..., signal: _Optional[_Union[SignalCondition, _Mapping]] = ..., sleep: _Optional[_Union[SleepCondition, _Mapping]] = ...) -> None: ... + +class ArrayNode(_message.Message): + __slots__ = ["node", "parallelism", "min_successes", "min_success_ratio"] + NODE_FIELD_NUMBER: _ClassVar[int] + PARALLELISM_FIELD_NUMBER: _ClassVar[int] + MIN_SUCCESSES_FIELD_NUMBER: _ClassVar[int] + MIN_SUCCESS_RATIO_FIELD_NUMBER: _ClassVar[int] + node: Node + parallelism: int + min_successes: int + min_success_ratio: float + def __init__(self, node: _Optional[_Union[Node, _Mapping]] = ..., parallelism: _Optional[int] = ..., min_successes: _Optional[int] = ..., min_success_ratio: _Optional[float] = ...) -> None: ... + +class NodeMetadata(_message.Message): + __slots__ = ["name", "timeout", "retries", "interruptible"] + NAME_FIELD_NUMBER: _ClassVar[int] + TIMEOUT_FIELD_NUMBER: _ClassVar[int] + RETRIES_FIELD_NUMBER: _ClassVar[int] + INTERRUPTIBLE_FIELD_NUMBER: _ClassVar[int] + name: str + timeout: _duration_pb2.Duration + retries: _literals_pb2.RetryStrategy + interruptible: bool + def __init__(self, name: _Optional[str] = ..., timeout: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., retries: _Optional[_Union[_literals_pb2.RetryStrategy, _Mapping]] = ..., interruptible: bool = ...) -> None: ... + +class Alias(_message.Message): + __slots__ = ["var", "alias"] + VAR_FIELD_NUMBER: _ClassVar[int] + ALIAS_FIELD_NUMBER: _ClassVar[int] + var: str + alias: str + def __init__(self, var: _Optional[str] = ..., alias: _Optional[str] = ...) -> None: ... + +class Node(_message.Message): + __slots__ = ["id", "metadata", "inputs", "upstream_node_ids", "output_aliases", "task_node", "workflow_node", "branch_node", "gate_node", "array_node"] + ID_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + INPUTS_FIELD_NUMBER: _ClassVar[int] + UPSTREAM_NODE_IDS_FIELD_NUMBER: _ClassVar[int] + OUTPUT_ALIASES_FIELD_NUMBER: _ClassVar[int] + TASK_NODE_FIELD_NUMBER: _ClassVar[int] + WORKFLOW_NODE_FIELD_NUMBER: _ClassVar[int] + BRANCH_NODE_FIELD_NUMBER: _ClassVar[int] + GATE_NODE_FIELD_NUMBER: _ClassVar[int] + ARRAY_NODE_FIELD_NUMBER: _ClassVar[int] + id: str + metadata: NodeMetadata + inputs: _containers.RepeatedCompositeFieldContainer[_literals_pb2.Binding] + upstream_node_ids: _containers.RepeatedScalarFieldContainer[str] + output_aliases: _containers.RepeatedCompositeFieldContainer[Alias] + task_node: TaskNode + workflow_node: WorkflowNode + branch_node: BranchNode + gate_node: GateNode + array_node: ArrayNode + def __init__(self, id: _Optional[str] = ..., metadata: _Optional[_Union[NodeMetadata, _Mapping]] = ..., inputs: _Optional[_Iterable[_Union[_literals_pb2.Binding, _Mapping]]] = ..., upstream_node_ids: _Optional[_Iterable[str]] = ..., output_aliases: _Optional[_Iterable[_Union[Alias, _Mapping]]] = ..., task_node: _Optional[_Union[TaskNode, _Mapping]] = ..., workflow_node: _Optional[_Union[WorkflowNode, _Mapping]] = ..., branch_node: _Optional[_Union[BranchNode, _Mapping]] = ..., gate_node: _Optional[_Union[GateNode, _Mapping]] = ..., array_node: _Optional[_Union[ArrayNode, _Mapping]] = ...) -> None: ... + +class WorkflowMetadata(_message.Message): + __slots__ = ["quality_of_service", "on_failure", "tags"] + class OnFailurePolicy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + FAIL_IMMEDIATELY: _ClassVar[WorkflowMetadata.OnFailurePolicy] + FAIL_AFTER_EXECUTABLE_NODES_COMPLETE: _ClassVar[WorkflowMetadata.OnFailurePolicy] + FAIL_IMMEDIATELY: WorkflowMetadata.OnFailurePolicy + FAIL_AFTER_EXECUTABLE_NODES_COMPLETE: WorkflowMetadata.OnFailurePolicy + class TagsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + QUALITY_OF_SERVICE_FIELD_NUMBER: _ClassVar[int] + ON_FAILURE_FIELD_NUMBER: _ClassVar[int] + TAGS_FIELD_NUMBER: _ClassVar[int] + quality_of_service: _execution_pb2.QualityOfService + on_failure: WorkflowMetadata.OnFailurePolicy + tags: _containers.ScalarMap[str, str] + def __init__(self, quality_of_service: _Optional[_Union[_execution_pb2.QualityOfService, _Mapping]] = ..., on_failure: _Optional[_Union[WorkflowMetadata.OnFailurePolicy, str]] = ..., tags: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class WorkflowMetadataDefaults(_message.Message): + __slots__ = ["interruptible"] + INTERRUPTIBLE_FIELD_NUMBER: _ClassVar[int] + interruptible: bool + def __init__(self, interruptible: bool = ...) -> None: ... + +class WorkflowTemplate(_message.Message): + __slots__ = ["id", "metadata", "interface", "nodes", "outputs", "failure_node", "metadata_defaults"] + ID_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + INTERFACE_FIELD_NUMBER: _ClassVar[int] + NODES_FIELD_NUMBER: _ClassVar[int] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + FAILURE_NODE_FIELD_NUMBER: _ClassVar[int] + METADATA_DEFAULTS_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + metadata: WorkflowMetadata + interface: _interface_pb2.TypedInterface + nodes: _containers.RepeatedCompositeFieldContainer[Node] + outputs: _containers.RepeatedCompositeFieldContainer[_literals_pb2.Binding] + failure_node: Node + metadata_defaults: WorkflowMetadataDefaults + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., metadata: _Optional[_Union[WorkflowMetadata, _Mapping]] = ..., interface: _Optional[_Union[_interface_pb2.TypedInterface, _Mapping]] = ..., nodes: _Optional[_Iterable[_Union[Node, _Mapping]]] = ..., outputs: _Optional[_Iterable[_Union[_literals_pb2.Binding, _Mapping]]] = ..., failure_node: _Optional[_Union[Node, _Mapping]] = ..., metadata_defaults: _Optional[_Union[WorkflowMetadataDefaults, _Mapping]] = ...) -> None: ... + +class TaskNodeOverrides(_message.Message): + __slots__ = ["resources"] + RESOURCES_FIELD_NUMBER: _ClassVar[int] + resources: _tasks_pb2.Resources + def __init__(self, resources: _Optional[_Union[_tasks_pb2.Resources, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/core/workflow_pb2_grpc.py b/build/lib/flyteidl/core/workflow_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/core/workflow_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/datacatalog/__init__.py b/build/lib/flyteidl/datacatalog/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/build/lib/flyteidl/datacatalog/datacatalog_pb2.py b/build/lib/flyteidl/datacatalog/datacatalog_pb2.py new file mode 100644 index 000000000..2bffde989 --- /dev/null +++ b/build/lib/flyteidl/datacatalog/datacatalog_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/datacatalog/datacatalog.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +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\"\xc8\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\x61taB\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\xac\x01\n\x0f\x63om.datacatalogB\x10\x44\x61tacatalogProtoP\x01Z;github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.datacatalog.datacatalog_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\017com.datacatalogB\020DatacatalogProtoP\001Z;github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/datacatalog\242\002\003DXX\252\002\013Datacatalog\312\002\013Datacatalog\342\002\027Datacatalog\\GPBMetadata\352\002\013Datacatalog' + _METADATA_KEYMAPENTRY._options = None + _METADATA_KEYMAPENTRY._serialized_options = b'8\001' + _globals['_CREATEDATASETREQUEST']._serialized_start=150 + _globals['_CREATEDATASETREQUEST']._serialized_end=220 + _globals['_CREATEDATASETRESPONSE']._serialized_start=222 + _globals['_CREATEDATASETRESPONSE']._serialized_end=245 + _globals['_GETDATASETREQUEST']._serialized_start=247 + _globals['_GETDATASETREQUEST']._serialized_end=316 + _globals['_GETDATASETRESPONSE']._serialized_start=318 + _globals['_GETDATASETRESPONSE']._serialized_end=386 + _globals['_GETARTIFACTREQUEST']._serialized_start=389 + _globals['_GETARTIFACTREQUEST']._serialized_end=539 + _globals['_GETARTIFACTRESPONSE']._serialized_start=541 + _globals['_GETARTIFACTRESPONSE']._serialized_end=613 + _globals['_CREATEARTIFACTREQUEST']._serialized_start=615 + _globals['_CREATEARTIFACTREQUEST']._serialized_end=689 + _globals['_CREATEARTIFACTRESPONSE']._serialized_start=691 + _globals['_CREATEARTIFACTRESPONSE']._serialized_end=715 + _globals['_ADDTAGREQUEST']._serialized_start=717 + _globals['_ADDTAGREQUEST']._serialized_end=768 + _globals['_ADDTAGRESPONSE']._serialized_start=770 + _globals['_ADDTAGRESPONSE']._serialized_end=786 + _globals['_LISTARTIFACTSREQUEST']._serialized_start=789 + _globals['_LISTARTIFACTSREQUEST']._serialized_end=980 + _globals['_LISTARTIFACTSRESPONSE']._serialized_start=982 + _globals['_LISTARTIFACTSRESPONSE']._serialized_end=1089 + _globals['_LISTDATASETSREQUEST']._serialized_start=1092 + _globals['_LISTDATASETSREQUEST']._serialized_end=1232 + _globals['_LISTDATASETSRESPONSE']._serialized_start=1234 + _globals['_LISTDATASETSRESPONSE']._serialized_end=1337 + _globals['_UPDATEARTIFACTREQUEST']._serialized_start=1340 + _globals['_UPDATEARTIFACTREQUEST']._serialized_end=1540 + _globals['_UPDATEARTIFACTRESPONSE']._serialized_start=1542 + _globals['_UPDATEARTIFACTRESPONSE']._serialized_end=1599 + _globals['_RESERVATIONID']._serialized_start=1601 + _globals['_RESERVATIONID']._serialized_end=1698 + _globals['_GETOREXTENDRESERVATIONREQUEST']._serialized_start=1701 + _globals['_GETOREXTENDRESERVATIONREQUEST']._serialized_end=1900 + _globals['_RESERVATION']._serialized_start=1903 + _globals['_RESERVATION']._serialized_end=2194 + _globals['_GETOREXTENDRESERVATIONRESPONSE']._serialized_start=2196 + _globals['_GETOREXTENDRESERVATIONRESPONSE']._serialized_end=2288 + _globals['_RELEASERESERVATIONREQUEST']._serialized_start=2290 + _globals['_RELEASERESERVATIONREQUEST']._serialized_end=2411 + _globals['_RELEASERESERVATIONRESPONSE']._serialized_start=2413 + _globals['_RELEASERESERVATIONRESPONSE']._serialized_end=2441 + _globals['_DATASET']._serialized_start=2444 + _globals['_DATASET']._serialized_end=2582 + _globals['_PARTITION']._serialized_start=2584 + _globals['_PARTITION']._serialized_end=2635 + _globals['_DATASETID']._serialized_start=2637 + _globals['_DATASETID']._serialized_end=2764 + _globals['_ARTIFACT']._serialized_start=2767 + _globals['_ARTIFACT']._serialized_end=3094 + _globals['_ARTIFACTDATA']._serialized_start=3096 + _globals['_ARTIFACTDATA']._serialized_end=3176 + _globals['_TAG']._serialized_start=3178 + _globals['_TAG']._serialized_end=3286 + _globals['_METADATA']._serialized_start=3289 + _globals['_METADATA']._serialized_end=3418 + _globals['_METADATA_KEYMAPENTRY']._serialized_start=3361 + _globals['_METADATA_KEYMAPENTRY']._serialized_end=3418 + _globals['_FILTEREXPRESSION']._serialized_start=3420 + _globals['_FILTEREXPRESSION']._serialized_end=3499 + _globals['_SINGLEPROPERTYFILTER']._serialized_start=3502 + _globals['_SINGLEPROPERTYFILTER']._serialized_end=3964 + _globals['_SINGLEPROPERTYFILTER_COMPARISONOPERATOR']._serialized_start=3913 + _globals['_SINGLEPROPERTYFILTER_COMPARISONOPERATOR']._serialized_end=3945 + _globals['_ARTIFACTPROPERTYFILTER']._serialized_start=3966 + _globals['_ARTIFACTPROPERTYFILTER']._serialized_end=4037 + _globals['_TAGPROPERTYFILTER']._serialized_start=4039 + _globals['_TAGPROPERTYFILTER']._serialized_end=4099 + _globals['_PARTITIONPROPERTYFILTER']._serialized_start=4101 + _globals['_PARTITIONPROPERTYFILTER']._serialized_end=4192 + _globals['_KEYVALUEPAIR']._serialized_start=4194 + _globals['_KEYVALUEPAIR']._serialized_end=4248 + _globals['_DATASETPROPERTYFILTER']._serialized_start=4251 + _globals['_DATASETPROPERTYFILTER']._serialized_end=4390 + _globals['_PAGINATIONOPTIONS']._serialized_start=4393 + _globals['_PAGINATIONOPTIONS']._serialized_end=4668 + _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_start=4596 + _globals['_PAGINATIONOPTIONS_SORTORDER']._serialized_end=4638 + _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_start=4640 + _globals['_PAGINATIONOPTIONS_SORTKEY']._serialized_end=4668 + _globals['_DATACATALOG']._serialized_start=4671 + _globals['_DATACATALOG']._serialized_end=5573 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/datacatalog/datacatalog_pb2.pyi b/build/lib/flyteidl/datacatalog/datacatalog_pb2.pyi new file mode 100644 index 000000000..1e98a1489 --- /dev/null +++ b/build/lib/flyteidl/datacatalog/datacatalog_pb2.pyi @@ -0,0 +1,335 @@ +from flyteidl.core import literals_pb2 as _literals_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class CreateDatasetRequest(_message.Message): + __slots__ = ["dataset"] + DATASET_FIELD_NUMBER: _ClassVar[int] + dataset: Dataset + def __init__(self, dataset: _Optional[_Union[Dataset, _Mapping]] = ...) -> None: ... + +class CreateDatasetResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class GetDatasetRequest(_message.Message): + __slots__ = ["dataset"] + DATASET_FIELD_NUMBER: _ClassVar[int] + dataset: DatasetID + def __init__(self, dataset: _Optional[_Union[DatasetID, _Mapping]] = ...) -> None: ... + +class GetDatasetResponse(_message.Message): + __slots__ = ["dataset"] + DATASET_FIELD_NUMBER: _ClassVar[int] + dataset: Dataset + def __init__(self, dataset: _Optional[_Union[Dataset, _Mapping]] = ...) -> None: ... + +class GetArtifactRequest(_message.Message): + __slots__ = ["dataset", "artifact_id", "tag_name"] + DATASET_FIELD_NUMBER: _ClassVar[int] + ARTIFACT_ID_FIELD_NUMBER: _ClassVar[int] + TAG_NAME_FIELD_NUMBER: _ClassVar[int] + dataset: DatasetID + artifact_id: str + tag_name: str + def __init__(self, dataset: _Optional[_Union[DatasetID, _Mapping]] = ..., artifact_id: _Optional[str] = ..., tag_name: _Optional[str] = ...) -> None: ... + +class GetArtifactResponse(_message.Message): + __slots__ = ["artifact"] + ARTIFACT_FIELD_NUMBER: _ClassVar[int] + artifact: Artifact + def __init__(self, artifact: _Optional[_Union[Artifact, _Mapping]] = ...) -> None: ... + +class CreateArtifactRequest(_message.Message): + __slots__ = ["artifact"] + ARTIFACT_FIELD_NUMBER: _ClassVar[int] + artifact: Artifact + def __init__(self, artifact: _Optional[_Union[Artifact, _Mapping]] = ...) -> None: ... + +class CreateArtifactResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class AddTagRequest(_message.Message): + __slots__ = ["tag"] + TAG_FIELD_NUMBER: _ClassVar[int] + tag: Tag + def __init__(self, tag: _Optional[_Union[Tag, _Mapping]] = ...) -> None: ... + +class AddTagResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class ListArtifactsRequest(_message.Message): + __slots__ = ["dataset", "filter", "pagination"] + DATASET_FIELD_NUMBER: _ClassVar[int] + FILTER_FIELD_NUMBER: _ClassVar[int] + PAGINATION_FIELD_NUMBER: _ClassVar[int] + dataset: DatasetID + filter: FilterExpression + pagination: PaginationOptions + def __init__(self, dataset: _Optional[_Union[DatasetID, _Mapping]] = ..., filter: _Optional[_Union[FilterExpression, _Mapping]] = ..., pagination: _Optional[_Union[PaginationOptions, _Mapping]] = ...) -> None: ... + +class ListArtifactsResponse(_message.Message): + __slots__ = ["artifacts", "next_token"] + ARTIFACTS_FIELD_NUMBER: _ClassVar[int] + NEXT_TOKEN_FIELD_NUMBER: _ClassVar[int] + artifacts: _containers.RepeatedCompositeFieldContainer[Artifact] + next_token: str + def __init__(self, artifacts: _Optional[_Iterable[_Union[Artifact, _Mapping]]] = ..., next_token: _Optional[str] = ...) -> None: ... + +class ListDatasetsRequest(_message.Message): + __slots__ = ["filter", "pagination"] + FILTER_FIELD_NUMBER: _ClassVar[int] + PAGINATION_FIELD_NUMBER: _ClassVar[int] + filter: FilterExpression + pagination: PaginationOptions + def __init__(self, filter: _Optional[_Union[FilterExpression, _Mapping]] = ..., pagination: _Optional[_Union[PaginationOptions, _Mapping]] = ...) -> None: ... + +class ListDatasetsResponse(_message.Message): + __slots__ = ["datasets", "next_token"] + DATASETS_FIELD_NUMBER: _ClassVar[int] + NEXT_TOKEN_FIELD_NUMBER: _ClassVar[int] + datasets: _containers.RepeatedCompositeFieldContainer[Dataset] + next_token: str + def __init__(self, datasets: _Optional[_Iterable[_Union[Dataset, _Mapping]]] = ..., next_token: _Optional[str] = ...) -> None: ... + +class UpdateArtifactRequest(_message.Message): + __slots__ = ["dataset", "artifact_id", "tag_name", "data"] + DATASET_FIELD_NUMBER: _ClassVar[int] + ARTIFACT_ID_FIELD_NUMBER: _ClassVar[int] + TAG_NAME_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + dataset: DatasetID + artifact_id: str + tag_name: str + data: _containers.RepeatedCompositeFieldContainer[ArtifactData] + def __init__(self, dataset: _Optional[_Union[DatasetID, _Mapping]] = ..., artifact_id: _Optional[str] = ..., tag_name: _Optional[str] = ..., data: _Optional[_Iterable[_Union[ArtifactData, _Mapping]]] = ...) -> None: ... + +class UpdateArtifactResponse(_message.Message): + __slots__ = ["artifact_id"] + ARTIFACT_ID_FIELD_NUMBER: _ClassVar[int] + artifact_id: str + def __init__(self, artifact_id: _Optional[str] = ...) -> None: ... + +class ReservationID(_message.Message): + __slots__ = ["dataset_id", "tag_name"] + DATASET_ID_FIELD_NUMBER: _ClassVar[int] + TAG_NAME_FIELD_NUMBER: _ClassVar[int] + dataset_id: DatasetID + tag_name: str + def __init__(self, dataset_id: _Optional[_Union[DatasetID, _Mapping]] = ..., tag_name: _Optional[str] = ...) -> None: ... + +class GetOrExtendReservationRequest(_message.Message): + __slots__ = ["reservation_id", "owner_id", "heartbeat_interval"] + RESERVATION_ID_FIELD_NUMBER: _ClassVar[int] + OWNER_ID_FIELD_NUMBER: _ClassVar[int] + HEARTBEAT_INTERVAL_FIELD_NUMBER: _ClassVar[int] + reservation_id: ReservationID + owner_id: str + heartbeat_interval: _duration_pb2.Duration + def __init__(self, reservation_id: _Optional[_Union[ReservationID, _Mapping]] = ..., owner_id: _Optional[str] = ..., heartbeat_interval: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... + +class Reservation(_message.Message): + __slots__ = ["reservation_id", "owner_id", "heartbeat_interval", "expires_at", "metadata"] + RESERVATION_ID_FIELD_NUMBER: _ClassVar[int] + OWNER_ID_FIELD_NUMBER: _ClassVar[int] + HEARTBEAT_INTERVAL_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + reservation_id: ReservationID + owner_id: str + heartbeat_interval: _duration_pb2.Duration + expires_at: _timestamp_pb2.Timestamp + metadata: Metadata + def __init__(self, reservation_id: _Optional[_Union[ReservationID, _Mapping]] = ..., owner_id: _Optional[str] = ..., heartbeat_interval: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., metadata: _Optional[_Union[Metadata, _Mapping]] = ...) -> None: ... + +class GetOrExtendReservationResponse(_message.Message): + __slots__ = ["reservation"] + RESERVATION_FIELD_NUMBER: _ClassVar[int] + reservation: Reservation + def __init__(self, reservation: _Optional[_Union[Reservation, _Mapping]] = ...) -> None: ... + +class ReleaseReservationRequest(_message.Message): + __slots__ = ["reservation_id", "owner_id"] + RESERVATION_ID_FIELD_NUMBER: _ClassVar[int] + OWNER_ID_FIELD_NUMBER: _ClassVar[int] + reservation_id: ReservationID + owner_id: str + def __init__(self, reservation_id: _Optional[_Union[ReservationID, _Mapping]] = ..., owner_id: _Optional[str] = ...) -> None: ... + +class ReleaseReservationResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class Dataset(_message.Message): + __slots__ = ["id", "metadata", "partitionKeys"] + ID_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + PARTITIONKEYS_FIELD_NUMBER: _ClassVar[int] + id: DatasetID + metadata: Metadata + partitionKeys: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, id: _Optional[_Union[DatasetID, _Mapping]] = ..., metadata: _Optional[_Union[Metadata, _Mapping]] = ..., partitionKeys: _Optional[_Iterable[str]] = ...) -> None: ... + +class Partition(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + +class DatasetID(_message.Message): + __slots__ = ["project", "name", "domain", "version", "UUID"] + 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] + 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: ... + +class Artifact(_message.Message): + __slots__ = ["id", "dataset", "data", "metadata", "partitions", "tags", "created_at"] + ID_FIELD_NUMBER: _ClassVar[int] + DATASET_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + PARTITIONS_FIELD_NUMBER: _ClassVar[int] + TAGS_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + id: str + dataset: DatasetID + data: _containers.RepeatedCompositeFieldContainer[ArtifactData] + metadata: Metadata + partitions: _containers.RepeatedCompositeFieldContainer[Partition] + tags: _containers.RepeatedCompositeFieldContainer[Tag] + created_at: _timestamp_pb2.Timestamp + def __init__(self, id: _Optional[str] = ..., dataset: _Optional[_Union[DatasetID, _Mapping]] = ..., data: _Optional[_Iterable[_Union[ArtifactData, _Mapping]]] = ..., metadata: _Optional[_Union[Metadata, _Mapping]] = ..., partitions: _Optional[_Iterable[_Union[Partition, _Mapping]]] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class ArtifactData(_message.Message): + __slots__ = ["name", "value"] + NAME_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + name: str + value: _literals_pb2.Literal + def __init__(self, name: _Optional[str] = ..., value: _Optional[_Union[_literals_pb2.Literal, _Mapping]] = ...) -> None: ... + +class Tag(_message.Message): + __slots__ = ["name", "artifact_id", "dataset"] + NAME_FIELD_NUMBER: _ClassVar[int] + ARTIFACT_ID_FIELD_NUMBER: _ClassVar[int] + DATASET_FIELD_NUMBER: _ClassVar[int] + name: str + artifact_id: str + dataset: DatasetID + def __init__(self, name: _Optional[str] = ..., artifact_id: _Optional[str] = ..., dataset: _Optional[_Union[DatasetID, _Mapping]] = ...) -> None: ... + +class Metadata(_message.Message): + __slots__ = ["key_map"] + class KeyMapEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + KEY_MAP_FIELD_NUMBER: _ClassVar[int] + key_map: _containers.ScalarMap[str, str] + def __init__(self, key_map: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class FilterExpression(_message.Message): + __slots__ = ["filters"] + FILTERS_FIELD_NUMBER: _ClassVar[int] + filters: _containers.RepeatedCompositeFieldContainer[SinglePropertyFilter] + def __init__(self, filters: _Optional[_Iterable[_Union[SinglePropertyFilter, _Mapping]]] = ...) -> None: ... + +class SinglePropertyFilter(_message.Message): + __slots__ = ["tag_filter", "partition_filter", "artifact_filter", "dataset_filter", "operator"] + class ComparisonOperator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + EQUALS: _ClassVar[SinglePropertyFilter.ComparisonOperator] + EQUALS: SinglePropertyFilter.ComparisonOperator + TAG_FILTER_FIELD_NUMBER: _ClassVar[int] + PARTITION_FILTER_FIELD_NUMBER: _ClassVar[int] + ARTIFACT_FILTER_FIELD_NUMBER: _ClassVar[int] + DATASET_FILTER_FIELD_NUMBER: _ClassVar[int] + OPERATOR_FIELD_NUMBER: _ClassVar[int] + tag_filter: TagPropertyFilter + partition_filter: PartitionPropertyFilter + artifact_filter: ArtifactPropertyFilter + dataset_filter: DatasetPropertyFilter + operator: SinglePropertyFilter.ComparisonOperator + def __init__(self, tag_filter: _Optional[_Union[TagPropertyFilter, _Mapping]] = ..., partition_filter: _Optional[_Union[PartitionPropertyFilter, _Mapping]] = ..., artifact_filter: _Optional[_Union[ArtifactPropertyFilter, _Mapping]] = ..., dataset_filter: _Optional[_Union[DatasetPropertyFilter, _Mapping]] = ..., operator: _Optional[_Union[SinglePropertyFilter.ComparisonOperator, str]] = ...) -> None: ... + +class ArtifactPropertyFilter(_message.Message): + __slots__ = ["artifact_id"] + ARTIFACT_ID_FIELD_NUMBER: _ClassVar[int] + artifact_id: str + def __init__(self, artifact_id: _Optional[str] = ...) -> None: ... + +class TagPropertyFilter(_message.Message): + __slots__ = ["tag_name"] + TAG_NAME_FIELD_NUMBER: _ClassVar[int] + tag_name: str + def __init__(self, tag_name: _Optional[str] = ...) -> None: ... + +class PartitionPropertyFilter(_message.Message): + __slots__ = ["key_val"] + KEY_VAL_FIELD_NUMBER: _ClassVar[int] + key_val: KeyValuePair + def __init__(self, key_val: _Optional[_Union[KeyValuePair, _Mapping]] = ...) -> None: ... + +class KeyValuePair(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + +class DatasetPropertyFilter(_message.Message): + __slots__ = ["project", "name", "domain", "version"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + DOMAIN_FIELD_NUMBER: _ClassVar[int] + VERSION_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: ... + +class PaginationOptions(_message.Message): + __slots__ = ["limit", "token", "sortKey", "sortOrder"] + class SortOrder(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + DESCENDING: _ClassVar[PaginationOptions.SortOrder] + ASCENDING: _ClassVar[PaginationOptions.SortOrder] + DESCENDING: PaginationOptions.SortOrder + ASCENDING: PaginationOptions.SortOrder + class SortKey(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + CREATION_TIME: _ClassVar[PaginationOptions.SortKey] + CREATION_TIME: PaginationOptions.SortKey + LIMIT_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + SORTKEY_FIELD_NUMBER: _ClassVar[int] + SORTORDER_FIELD_NUMBER: _ClassVar[int] + limit: int + token: str + sortKey: PaginationOptions.SortKey + sortOrder: PaginationOptions.SortOrder + def __init__(self, limit: _Optional[int] = ..., token: _Optional[str] = ..., sortKey: _Optional[_Union[PaginationOptions.SortKey, str]] = ..., sortOrder: _Optional[_Union[PaginationOptions.SortOrder, str]] = ...) -> None: ... diff --git a/build/lib/flyteidl/datacatalog/datacatalog_pb2_grpc.py b/build/lib/flyteidl/datacatalog/datacatalog_pb2_grpc.py new file mode 100644 index 000000000..b78b2fa78 --- /dev/null +++ b/build/lib/flyteidl/datacatalog/datacatalog_pb2_grpc.py @@ -0,0 +1,398 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from flyteidl.datacatalog import datacatalog_pb2 as flyteidl_dot_datacatalog_dot_datacatalog__pb2 + + +class DataCatalogStub(object): + """ + Data Catalog service definition + Data Catalog is a service for indexing parameterized, strongly-typed data artifacts across revisions. + Artifacts are associated with a Dataset, and can be tagged for retrieval. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.CreateDataset = channel.unary_unary( + '/datacatalog.DataCatalog/CreateDataset', + request_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateDatasetRequest.SerializeToString, + response_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateDatasetResponse.FromString, + ) + self.GetDataset = channel.unary_unary( + '/datacatalog.DataCatalog/GetDataset', + request_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetDatasetRequest.SerializeToString, + response_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetDatasetResponse.FromString, + ) + self.CreateArtifact = channel.unary_unary( + '/datacatalog.DataCatalog/CreateArtifact', + request_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateArtifactRequest.SerializeToString, + response_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateArtifactResponse.FromString, + ) + self.GetArtifact = channel.unary_unary( + '/datacatalog.DataCatalog/GetArtifact', + request_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetArtifactRequest.SerializeToString, + response_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetArtifactResponse.FromString, + ) + self.AddTag = channel.unary_unary( + '/datacatalog.DataCatalog/AddTag', + request_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.AddTagRequest.SerializeToString, + response_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.AddTagResponse.FromString, + ) + self.ListArtifacts = channel.unary_unary( + '/datacatalog.DataCatalog/ListArtifacts', + request_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListArtifactsRequest.SerializeToString, + response_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListArtifactsResponse.FromString, + ) + self.ListDatasets = channel.unary_unary( + '/datacatalog.DataCatalog/ListDatasets', + request_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListDatasetsRequest.SerializeToString, + response_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListDatasetsResponse.FromString, + ) + self.UpdateArtifact = channel.unary_unary( + '/datacatalog.DataCatalog/UpdateArtifact', + request_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.UpdateArtifactRequest.SerializeToString, + response_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.UpdateArtifactResponse.FromString, + ) + self.GetOrExtendReservation = channel.unary_unary( + '/datacatalog.DataCatalog/GetOrExtendReservation', + request_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetOrExtendReservationRequest.SerializeToString, + response_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetOrExtendReservationResponse.FromString, + ) + self.ReleaseReservation = channel.unary_unary( + '/datacatalog.DataCatalog/ReleaseReservation', + request_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ReleaseReservationRequest.SerializeToString, + response_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ReleaseReservationResponse.FromString, + ) + + +class DataCatalogServicer(object): + """ + Data Catalog service definition + Data Catalog is a service for indexing parameterized, strongly-typed data artifacts across revisions. + Artifacts are associated with a Dataset, and can be tagged for retrieval. + """ + + def CreateDataset(self, request, context): + """Create a new Dataset. Datasets are unique based on the DatasetID. Datasets are logical groupings of artifacts. + Each dataset can have one or more artifacts + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetDataset(self, request, context): + """Get a Dataset by the DatasetID. This returns the Dataset with the associated metadata. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateArtifact(self, request, context): + """Create an artifact and the artifact data associated with it. An artifact can be a hive partition or arbitrary + files or data values + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetArtifact(self, request, context): + """Retrieve an artifact by an identifying handle. This returns an artifact along with the artifact data. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AddTag(self, request, context): + """Associate a tag with an artifact. Tags are unique within a Dataset. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListArtifacts(self, request, context): + """Return a paginated list of artifacts + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListDatasets(self, request, context): + """Return a paginated list of datasets + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateArtifact(self, request, context): + """Updates an existing artifact, overwriting the stored artifact data in the underlying blob storage. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetOrExtendReservation(self, request, context): + """Attempts to get or extend a reservation for the corresponding artifact. If one already exists + (ie. another entity owns the reservation) then that reservation is retrieved. + Once you acquire a reservation, you need to periodically extend the reservation with an + identical call. If the reservation is not extended before the defined expiration, it may be + acquired by another task. + Note: We may have multiple concurrent tasks with the same signature and the same input that + try to populate the same artifact at the same time. Thus with reservation, only one task can + run at a time, until the reservation expires. + Note: If task A does not extend the reservation in time and the reservation expires, another + task B may take over the reservation, resulting in two tasks A and B running in parallel. So + a third task C may get the Artifact from A or B, whichever writes last. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ReleaseReservation(self, request, context): + """Release the reservation when the task holding the spot fails so that the other tasks + can grab the spot. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DataCatalogServicer_to_server(servicer, server): + rpc_method_handlers = { + 'CreateDataset': grpc.unary_unary_rpc_method_handler( + servicer.CreateDataset, + request_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateDatasetRequest.FromString, + response_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateDatasetResponse.SerializeToString, + ), + 'GetDataset': grpc.unary_unary_rpc_method_handler( + servicer.GetDataset, + request_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetDatasetRequest.FromString, + response_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetDatasetResponse.SerializeToString, + ), + 'CreateArtifact': grpc.unary_unary_rpc_method_handler( + servicer.CreateArtifact, + request_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateArtifactRequest.FromString, + response_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateArtifactResponse.SerializeToString, + ), + 'GetArtifact': grpc.unary_unary_rpc_method_handler( + servicer.GetArtifact, + request_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetArtifactRequest.FromString, + response_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetArtifactResponse.SerializeToString, + ), + 'AddTag': grpc.unary_unary_rpc_method_handler( + servicer.AddTag, + request_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.AddTagRequest.FromString, + response_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.AddTagResponse.SerializeToString, + ), + 'ListArtifacts': grpc.unary_unary_rpc_method_handler( + servicer.ListArtifacts, + request_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListArtifactsRequest.FromString, + response_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListArtifactsResponse.SerializeToString, + ), + 'ListDatasets': grpc.unary_unary_rpc_method_handler( + servicer.ListDatasets, + request_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListDatasetsRequest.FromString, + response_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListDatasetsResponse.SerializeToString, + ), + 'UpdateArtifact': grpc.unary_unary_rpc_method_handler( + servicer.UpdateArtifact, + request_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.UpdateArtifactRequest.FromString, + response_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.UpdateArtifactResponse.SerializeToString, + ), + 'GetOrExtendReservation': grpc.unary_unary_rpc_method_handler( + servicer.GetOrExtendReservation, + request_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetOrExtendReservationRequest.FromString, + response_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetOrExtendReservationResponse.SerializeToString, + ), + 'ReleaseReservation': grpc.unary_unary_rpc_method_handler( + servicer.ReleaseReservation, + request_deserializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ReleaseReservationRequest.FromString, + response_serializer=flyteidl_dot_datacatalog_dot_datacatalog__pb2.ReleaseReservationResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'datacatalog.DataCatalog', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class DataCatalog(object): + """ + Data Catalog service definition + Data Catalog is a service for indexing parameterized, strongly-typed data artifacts across revisions. + Artifacts are associated with a Dataset, and can be tagged for retrieval. + """ + + @staticmethod + def CreateDataset(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/datacatalog.DataCatalog/CreateDataset', + flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateDatasetRequest.SerializeToString, + flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateDatasetResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetDataset(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/datacatalog.DataCatalog/GetDataset', + flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetDatasetRequest.SerializeToString, + flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetDatasetResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateArtifact(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/datacatalog.DataCatalog/CreateArtifact', + flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateArtifactRequest.SerializeToString, + flyteidl_dot_datacatalog_dot_datacatalog__pb2.CreateArtifactResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetArtifact(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/datacatalog.DataCatalog/GetArtifact', + flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetArtifactRequest.SerializeToString, + flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetArtifactResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AddTag(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/datacatalog.DataCatalog/AddTag', + flyteidl_dot_datacatalog_dot_datacatalog__pb2.AddTagRequest.SerializeToString, + flyteidl_dot_datacatalog_dot_datacatalog__pb2.AddTagResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListArtifacts(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/datacatalog.DataCatalog/ListArtifacts', + flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListArtifactsRequest.SerializeToString, + flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListArtifactsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListDatasets(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/datacatalog.DataCatalog/ListDatasets', + flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListDatasetsRequest.SerializeToString, + flyteidl_dot_datacatalog_dot_datacatalog__pb2.ListDatasetsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateArtifact(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/datacatalog.DataCatalog/UpdateArtifact', + flyteidl_dot_datacatalog_dot_datacatalog__pb2.UpdateArtifactRequest.SerializeToString, + flyteidl_dot_datacatalog_dot_datacatalog__pb2.UpdateArtifactResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetOrExtendReservation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/datacatalog.DataCatalog/GetOrExtendReservation', + flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetOrExtendReservationRequest.SerializeToString, + flyteidl_dot_datacatalog_dot_datacatalog__pb2.GetOrExtendReservationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ReleaseReservation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/datacatalog.DataCatalog/ReleaseReservation', + flyteidl_dot_datacatalog_dot_datacatalog__pb2.ReleaseReservationRequest.SerializeToString, + flyteidl_dot_datacatalog_dot_datacatalog__pb2.ReleaseReservationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/build/lib/flyteidl/event/__init__.py b/build/lib/flyteidl/event/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/build/lib/flyteidl/event/event_pb2.py b/build/lib/flyteidl/event/event_pb2.py new file mode 100644 index 000000000..08b6e5c77 --- /dev/null +++ b/build/lib/flyteidl/event/event_pb2.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/event/event.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 +from flyteidl.core import compiler_pb2 as flyteidl_dot_core_dot_compiler__pb2 +from flyteidl.core import execution_pb2 as flyteidl_dot_core_dot_execution__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import catalog_pb2 as flyteidl_dot_core_dot_catalog__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lyteidl/event/event.proto\x12\x0e\x66lyteidl.event\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1c\x66lyteidl/core/compiler.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1b\x66lyteidl/core/catalog.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xaa\x03\n\x16WorkflowExecutionEvent\x12M\n\x0c\x65xecution_id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId\x12\x1f\n\x0bproducer_id\x18\x02 \x01(\tR\nproducerId\x12<\n\x05phase\x18\x03 \x01(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x05phase\x12;\n\x0boccurred_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x1f\n\noutput_uri\x18\x05 \x01(\tH\x00R\toutputUri\x12\x35\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12<\n\x0boutput_data\x18\x07 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\noutputDataB\x0f\n\routput_result\"\x8f\t\n\x12NodeExecutionEvent\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x02id\x12\x1f\n\x0bproducer_id\x18\x02 \x01(\tR\nproducerId\x12\x38\n\x05phase\x18\x03 \x01(\x0e\x32\".flyteidl.core.NodeExecution.PhaseR\x05phase\x12;\n\x0boccurred_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x1d\n\tinput_uri\x18\x05 \x01(\tH\x00R\x08inputUri\x12:\n\ninput_data\x18\x14 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\tinputData\x12\x1f\n\noutput_uri\x18\x06 \x01(\tH\x01R\toutputUri\x12\x35\n\x05\x65rror\x18\x07 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x01R\x05\x65rror\x12<\n\x0boutput_data\x18\x0f \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x01R\noutputData\x12\\\n\x16workflow_node_metadata\x18\x08 \x01(\x0b\x32$.flyteidl.event.WorkflowNodeMetadataH\x02R\x14workflowNodeMetadata\x12P\n\x12task_node_metadata\x18\x0e \x01(\x0b\x32 .flyteidl.event.TaskNodeMetadataH\x02R\x10taskNodeMetadata\x12]\n\x14parent_task_metadata\x18\t \x01(\x0b\x32+.flyteidl.event.ParentTaskExecutionMetadataR\x12parentTaskMetadata\x12]\n\x14parent_node_metadata\x18\n \x01(\x0b\x32+.flyteidl.event.ParentNodeExecutionMetadataR\x12parentNodeMetadata\x12\x1f\n\x0bretry_group\x18\x0b \x01(\tR\nretryGroup\x12 \n\x0cspec_node_id\x18\x0c \x01(\tR\nspecNodeId\x12\x1b\n\tnode_name\x18\r \x01(\tR\x08nodeName\x12#\n\revent_version\x18\x10 \x01(\x05R\x0c\x65ventVersion\x12\x1b\n\tis_parent\x18\x11 \x01(\x08R\x08isParent\x12\x1d\n\nis_dynamic\x18\x12 \x01(\x08R\tisDynamic\x12\x19\n\x08\x64\x65\x63k_uri\x18\x13 \x01(\tR\x07\x64\x65\x63kUri\x12;\n\x0breported_at\x18\x15 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\nreportedAtB\r\n\x0binput_valueB\x0f\n\routput_resultB\x11\n\x0ftarget_metadata\"e\n\x14WorkflowNodeMetadata\x12M\n\x0c\x65xecution_id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId\"\xf1\x02\n\x10TaskNodeMetadata\x12\x44\n\x0c\x63\x61\x63he_status\x18\x01 \x01(\x0e\x32!.flyteidl.core.CatalogCacheStatusR\x0b\x63\x61\x63heStatus\x12?\n\x0b\x63\x61talog_key\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.CatalogMetadataR\ncatalogKey\x12W\n\x12reservation_status\x18\x03 \x01(\x0e\x32(.flyteidl.core.CatalogReservation.StatusR\x11reservationStatus\x12%\n\x0e\x63heckpoint_uri\x18\x04 \x01(\tR\rcheckpointUri\x12V\n\x10\x64ynamic_workflow\x18\x10 \x01(\x0b\x32+.flyteidl.event.DynamicWorkflowNodeMetadataR\x0f\x64ynamicWorkflow\"\xce\x01\n\x1b\x44ynamicWorkflowNodeMetadata\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12S\n\x11\x63ompiled_workflow\x18\x02 \x01(\x0b\x32&.flyteidl.core.CompiledWorkflowClosureR\x10\x63ompiledWorkflow\x12/\n\x14\x64ynamic_job_spec_uri\x18\x03 \x01(\tR\x11\x64ynamicJobSpecUri\"U\n\x1bParentTaskExecutionMetadata\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x02id\"6\n\x1bParentNodeExecutionMetadata\x12\x17\n\x07node_id\x18\x01 \x01(\tR\x06nodeId\"\xdc\x07\n\x12TaskExecutionEvent\x12\x32\n\x07task_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x06taskId\x12_\n\x18parent_node_execution_id\x18\x02 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x15parentNodeExecutionId\x12#\n\rretry_attempt\x18\x03 \x01(\rR\x0cretryAttempt\x12\x38\n\x05phase\x18\x04 \x01(\x0e\x32\".flyteidl.core.TaskExecution.PhaseR\x05phase\x12\x1f\n\x0bproducer_id\x18\x05 \x01(\tR\nproducerId\x12*\n\x04logs\x18\x06 \x03(\x0b\x32\x16.flyteidl.core.TaskLogR\x04logs\x12;\n\x0boccurred_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x1d\n\tinput_uri\x18\x08 \x01(\tH\x00R\x08inputUri\x12:\n\ninput_data\x18\x13 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\tinputData\x12\x1f\n\noutput_uri\x18\t \x01(\tH\x01R\toutputUri\x12\x35\n\x05\x65rror\x18\n \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x01R\x05\x65rror\x12<\n\x0boutput_data\x18\x11 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x01R\noutputData\x12\x38\n\x0b\x63ustom_info\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructR\ncustomInfo\x12#\n\rphase_version\x18\x0c \x01(\rR\x0cphaseVersion\x12\x16\n\x06reason\x18\r \x01(\tR\x06reason\x12\x1b\n\ttask_type\x18\x0e \x01(\tR\x08taskType\x12\x41\n\x08metadata\x18\x10 \x01(\x0b\x32%.flyteidl.event.TaskExecutionMetadataR\x08metadata\x12#\n\revent_version\x18\x12 \x01(\x05R\x0c\x65ventVersion\x12;\n\x0breported_at\x18\x14 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\nreportedAtB\r\n\x0binput_valueB\x0f\n\routput_result\"\x9e\x02\n\x14\x45xternalResourceInfo\x12\x1f\n\x0b\x65xternal_id\x18\x01 \x01(\tR\nexternalId\x12\x14\n\x05index\x18\x02 \x01(\rR\x05index\x12#\n\rretry_attempt\x18\x03 \x01(\rR\x0cretryAttempt\x12\x38\n\x05phase\x18\x04 \x01(\x0e\x32\".flyteidl.core.TaskExecution.PhaseR\x05phase\x12\x44\n\x0c\x63\x61\x63he_status\x18\x05 \x01(\x0e\x32!.flyteidl.core.CatalogCacheStatusR\x0b\x63\x61\x63heStatus\x12*\n\x04logs\x18\x06 \x03(\x0b\x32\x16.flyteidl.core.TaskLogR\x04logs\"[\n\x10ResourcePoolInfo\x12)\n\x10\x61llocation_token\x18\x01 \x01(\tR\x0f\x61llocationToken\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\"\x9d\x03\n\x15TaskExecutionMetadata\x12%\n\x0egenerated_name\x18\x01 \x01(\tR\rgeneratedName\x12S\n\x12\x65xternal_resources\x18\x02 \x03(\x0b\x32$.flyteidl.event.ExternalResourceInfoR\x11\x65xternalResources\x12N\n\x12resource_pool_info\x18\x03 \x03(\x0b\x32 .flyteidl.event.ResourcePoolInfoR\x10resourcePoolInfo\x12+\n\x11plugin_identifier\x18\x04 \x01(\tR\x10pluginIdentifier\x12Z\n\x0einstance_class\x18\x10 \x01(\x0e\x32\x33.flyteidl.event.TaskExecutionMetadata.InstanceClassR\rinstanceClass\"/\n\rInstanceClass\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x11\n\rINTERRUPTIBLE\x10\x01\x42\xb0\x01\n\x12\x63om.flyteidl.eventB\nEventProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/event\xa2\x02\x03\x46\x45X\xaa\x02\x0e\x46lyteidl.Event\xca\x02\x0e\x46lyteidl\\Event\xe2\x02\x1a\x46lyteidl\\Event\\GPBMetadata\xea\x02\x0f\x46lyteidl::Eventb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.event.event_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.eventB\nEventProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/event\242\002\003FEX\252\002\016Flyteidl.Event\312\002\016Flyteidl\\Event\342\002\032Flyteidl\\Event\\GPBMetadata\352\002\017Flyteidl::Event' + _globals['_WORKFLOWEXECUTIONEVENT']._serialized_start=262 + _globals['_WORKFLOWEXECUTIONEVENT']._serialized_end=688 + _globals['_NODEEXECUTIONEVENT']._serialized_start=691 + _globals['_NODEEXECUTIONEVENT']._serialized_end=1858 + _globals['_WORKFLOWNODEMETADATA']._serialized_start=1860 + _globals['_WORKFLOWNODEMETADATA']._serialized_end=1961 + _globals['_TASKNODEMETADATA']._serialized_start=1964 + _globals['_TASKNODEMETADATA']._serialized_end=2333 + _globals['_DYNAMICWORKFLOWNODEMETADATA']._serialized_start=2336 + _globals['_DYNAMICWORKFLOWNODEMETADATA']._serialized_end=2542 + _globals['_PARENTTASKEXECUTIONMETADATA']._serialized_start=2544 + _globals['_PARENTTASKEXECUTIONMETADATA']._serialized_end=2629 + _globals['_PARENTNODEEXECUTIONMETADATA']._serialized_start=2631 + _globals['_PARENTNODEEXECUTIONMETADATA']._serialized_end=2685 + _globals['_TASKEXECUTIONEVENT']._serialized_start=2688 + _globals['_TASKEXECUTIONEVENT']._serialized_end=3676 + _globals['_EXTERNALRESOURCEINFO']._serialized_start=3679 + _globals['_EXTERNALRESOURCEINFO']._serialized_end=3965 + _globals['_RESOURCEPOOLINFO']._serialized_start=3967 + _globals['_RESOURCEPOOLINFO']._serialized_end=4058 + _globals['_TASKEXECUTIONMETADATA']._serialized_start=4061 + _globals['_TASKEXECUTIONMETADATA']._serialized_end=4474 + _globals['_TASKEXECUTIONMETADATA_INSTANCECLASS']._serialized_start=4427 + _globals['_TASKEXECUTIONMETADATA_INSTANCECLASS']._serialized_end=4474 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/event/event_pb2.pyi b/build/lib/flyteidl/event/event_pb2.pyi new file mode 100644 index 000000000..540d98573 --- /dev/null +++ b/build/lib/flyteidl/event/event_pb2.pyi @@ -0,0 +1,206 @@ +from flyteidl.core import literals_pb2 as _literals_pb2 +from flyteidl.core import compiler_pb2 as _compiler_pb2 +from flyteidl.core import execution_pb2 as _execution_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import catalog_pb2 as _catalog_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class WorkflowExecutionEvent(_message.Message): + __slots__ = ["execution_id", "producer_id", "phase", "occurred_at", "output_uri", "error", "output_data"] + EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + PRODUCER_ID_FIELD_NUMBER: _ClassVar[int] + PHASE_FIELD_NUMBER: _ClassVar[int] + OCCURRED_AT_FIELD_NUMBER: _ClassVar[int] + OUTPUT_URI_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + OUTPUT_DATA_FIELD_NUMBER: _ClassVar[int] + execution_id: _identifier_pb2.WorkflowExecutionIdentifier + producer_id: str + phase: _execution_pb2.WorkflowExecution.Phase + occurred_at: _timestamp_pb2.Timestamp + output_uri: str + error: _execution_pb2.ExecutionError + output_data: _literals_pb2.LiteralMap + def __init__(self, execution_id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., producer_id: _Optional[str] = ..., phase: _Optional[_Union[_execution_pb2.WorkflowExecution.Phase, str]] = ..., occurred_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., output_uri: _Optional[str] = ..., error: _Optional[_Union[_execution_pb2.ExecutionError, _Mapping]] = ..., output_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ...) -> None: ... + +class NodeExecutionEvent(_message.Message): + __slots__ = ["id", "producer_id", "phase", "occurred_at", "input_uri", "input_data", "output_uri", "error", "output_data", "workflow_node_metadata", "task_node_metadata", "parent_task_metadata", "parent_node_metadata", "retry_group", "spec_node_id", "node_name", "event_version", "is_parent", "is_dynamic", "deck_uri", "reported_at"] + ID_FIELD_NUMBER: _ClassVar[int] + PRODUCER_ID_FIELD_NUMBER: _ClassVar[int] + PHASE_FIELD_NUMBER: _ClassVar[int] + OCCURRED_AT_FIELD_NUMBER: _ClassVar[int] + INPUT_URI_FIELD_NUMBER: _ClassVar[int] + INPUT_DATA_FIELD_NUMBER: _ClassVar[int] + OUTPUT_URI_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + OUTPUT_DATA_FIELD_NUMBER: _ClassVar[int] + WORKFLOW_NODE_METADATA_FIELD_NUMBER: _ClassVar[int] + TASK_NODE_METADATA_FIELD_NUMBER: _ClassVar[int] + PARENT_TASK_METADATA_FIELD_NUMBER: _ClassVar[int] + PARENT_NODE_METADATA_FIELD_NUMBER: _ClassVar[int] + RETRY_GROUP_FIELD_NUMBER: _ClassVar[int] + SPEC_NODE_ID_FIELD_NUMBER: _ClassVar[int] + NODE_NAME_FIELD_NUMBER: _ClassVar[int] + EVENT_VERSION_FIELD_NUMBER: _ClassVar[int] + IS_PARENT_FIELD_NUMBER: _ClassVar[int] + IS_DYNAMIC_FIELD_NUMBER: _ClassVar[int] + DECK_URI_FIELD_NUMBER: _ClassVar[int] + REPORTED_AT_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.NodeExecutionIdentifier + producer_id: str + phase: _execution_pb2.NodeExecution.Phase + occurred_at: _timestamp_pb2.Timestamp + input_uri: str + input_data: _literals_pb2.LiteralMap + output_uri: str + error: _execution_pb2.ExecutionError + output_data: _literals_pb2.LiteralMap + workflow_node_metadata: WorkflowNodeMetadata + task_node_metadata: TaskNodeMetadata + parent_task_metadata: ParentTaskExecutionMetadata + parent_node_metadata: ParentNodeExecutionMetadata + retry_group: str + spec_node_id: str + node_name: str + event_version: int + is_parent: bool + is_dynamic: bool + deck_uri: str + reported_at: _timestamp_pb2.Timestamp + def __init__(self, id: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ..., producer_id: _Optional[str] = ..., phase: _Optional[_Union[_execution_pb2.NodeExecution.Phase, str]] = ..., occurred_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., input_uri: _Optional[str] = ..., input_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., output_uri: _Optional[str] = ..., error: _Optional[_Union[_execution_pb2.ExecutionError, _Mapping]] = ..., output_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., workflow_node_metadata: _Optional[_Union[WorkflowNodeMetadata, _Mapping]] = ..., task_node_metadata: _Optional[_Union[TaskNodeMetadata, _Mapping]] = ..., parent_task_metadata: _Optional[_Union[ParentTaskExecutionMetadata, _Mapping]] = ..., parent_node_metadata: _Optional[_Union[ParentNodeExecutionMetadata, _Mapping]] = ..., retry_group: _Optional[str] = ..., spec_node_id: _Optional[str] = ..., node_name: _Optional[str] = ..., event_version: _Optional[int] = ..., is_parent: bool = ..., is_dynamic: bool = ..., deck_uri: _Optional[str] = ..., reported_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class WorkflowNodeMetadata(_message.Message): + __slots__ = ["execution_id"] + EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + execution_id: _identifier_pb2.WorkflowExecutionIdentifier + def __init__(self, execution_id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class TaskNodeMetadata(_message.Message): + __slots__ = ["cache_status", "catalog_key", "reservation_status", "checkpoint_uri", "dynamic_workflow"] + CACHE_STATUS_FIELD_NUMBER: _ClassVar[int] + CATALOG_KEY_FIELD_NUMBER: _ClassVar[int] + RESERVATION_STATUS_FIELD_NUMBER: _ClassVar[int] + CHECKPOINT_URI_FIELD_NUMBER: _ClassVar[int] + DYNAMIC_WORKFLOW_FIELD_NUMBER: _ClassVar[int] + cache_status: _catalog_pb2.CatalogCacheStatus + catalog_key: _catalog_pb2.CatalogMetadata + reservation_status: _catalog_pb2.CatalogReservation.Status + checkpoint_uri: str + dynamic_workflow: DynamicWorkflowNodeMetadata + def __init__(self, cache_status: _Optional[_Union[_catalog_pb2.CatalogCacheStatus, str]] = ..., catalog_key: _Optional[_Union[_catalog_pb2.CatalogMetadata, _Mapping]] = ..., reservation_status: _Optional[_Union[_catalog_pb2.CatalogReservation.Status, str]] = ..., checkpoint_uri: _Optional[str] = ..., dynamic_workflow: _Optional[_Union[DynamicWorkflowNodeMetadata, _Mapping]] = ...) -> None: ... + +class DynamicWorkflowNodeMetadata(_message.Message): + __slots__ = ["id", "compiled_workflow", "dynamic_job_spec_uri"] + ID_FIELD_NUMBER: _ClassVar[int] + COMPILED_WORKFLOW_FIELD_NUMBER: _ClassVar[int] + DYNAMIC_JOB_SPEC_URI_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.Identifier + compiled_workflow: _compiler_pb2.CompiledWorkflowClosure + dynamic_job_spec_uri: str + def __init__(self, id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., compiled_workflow: _Optional[_Union[_compiler_pb2.CompiledWorkflowClosure, _Mapping]] = ..., dynamic_job_spec_uri: _Optional[str] = ...) -> None: ... + +class ParentTaskExecutionMetadata(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: _identifier_pb2.TaskExecutionIdentifier + def __init__(self, id: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class ParentNodeExecutionMetadata(_message.Message): + __slots__ = ["node_id"] + NODE_ID_FIELD_NUMBER: _ClassVar[int] + node_id: str + def __init__(self, node_id: _Optional[str] = ...) -> None: ... + +class TaskExecutionEvent(_message.Message): + __slots__ = ["task_id", "parent_node_execution_id", "retry_attempt", "phase", "producer_id", "logs", "occurred_at", "input_uri", "input_data", "output_uri", "error", "output_data", "custom_info", "phase_version", "reason", "task_type", "metadata", "event_version", "reported_at"] + TASK_ID_FIELD_NUMBER: _ClassVar[int] + PARENT_NODE_EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + RETRY_ATTEMPT_FIELD_NUMBER: _ClassVar[int] + PHASE_FIELD_NUMBER: _ClassVar[int] + PRODUCER_ID_FIELD_NUMBER: _ClassVar[int] + LOGS_FIELD_NUMBER: _ClassVar[int] + OCCURRED_AT_FIELD_NUMBER: _ClassVar[int] + INPUT_URI_FIELD_NUMBER: _ClassVar[int] + INPUT_DATA_FIELD_NUMBER: _ClassVar[int] + OUTPUT_URI_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + OUTPUT_DATA_FIELD_NUMBER: _ClassVar[int] + CUSTOM_INFO_FIELD_NUMBER: _ClassVar[int] + PHASE_VERSION_FIELD_NUMBER: _ClassVar[int] + REASON_FIELD_NUMBER: _ClassVar[int] + TASK_TYPE_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + EVENT_VERSION_FIELD_NUMBER: _ClassVar[int] + REPORTED_AT_FIELD_NUMBER: _ClassVar[int] + task_id: _identifier_pb2.Identifier + parent_node_execution_id: _identifier_pb2.NodeExecutionIdentifier + retry_attempt: int + phase: _execution_pb2.TaskExecution.Phase + producer_id: str + logs: _containers.RepeatedCompositeFieldContainer[_execution_pb2.TaskLog] + occurred_at: _timestamp_pb2.Timestamp + input_uri: str + input_data: _literals_pb2.LiteralMap + output_uri: str + error: _execution_pb2.ExecutionError + output_data: _literals_pb2.LiteralMap + custom_info: _struct_pb2.Struct + phase_version: int + reason: str + task_type: str + metadata: TaskExecutionMetadata + event_version: int + reported_at: _timestamp_pb2.Timestamp + def __init__(self, task_id: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., parent_node_execution_id: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ..., retry_attempt: _Optional[int] = ..., phase: _Optional[_Union[_execution_pb2.TaskExecution.Phase, str]] = ..., producer_id: _Optional[str] = ..., logs: _Optional[_Iterable[_Union[_execution_pb2.TaskLog, _Mapping]]] = ..., occurred_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., input_uri: _Optional[str] = ..., input_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., output_uri: _Optional[str] = ..., error: _Optional[_Union[_execution_pb2.ExecutionError, _Mapping]] = ..., output_data: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., custom_info: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., phase_version: _Optional[int] = ..., reason: _Optional[str] = ..., task_type: _Optional[str] = ..., metadata: _Optional[_Union[TaskExecutionMetadata, _Mapping]] = ..., event_version: _Optional[int] = ..., reported_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class ExternalResourceInfo(_message.Message): + __slots__ = ["external_id", "index", "retry_attempt", "phase", "cache_status", "logs"] + EXTERNAL_ID_FIELD_NUMBER: _ClassVar[int] + INDEX_FIELD_NUMBER: _ClassVar[int] + RETRY_ATTEMPT_FIELD_NUMBER: _ClassVar[int] + PHASE_FIELD_NUMBER: _ClassVar[int] + CACHE_STATUS_FIELD_NUMBER: _ClassVar[int] + LOGS_FIELD_NUMBER: _ClassVar[int] + external_id: str + index: int + retry_attempt: int + phase: _execution_pb2.TaskExecution.Phase + cache_status: _catalog_pb2.CatalogCacheStatus + logs: _containers.RepeatedCompositeFieldContainer[_execution_pb2.TaskLog] + def __init__(self, external_id: _Optional[str] = ..., index: _Optional[int] = ..., retry_attempt: _Optional[int] = ..., phase: _Optional[_Union[_execution_pb2.TaskExecution.Phase, str]] = ..., cache_status: _Optional[_Union[_catalog_pb2.CatalogCacheStatus, str]] = ..., logs: _Optional[_Iterable[_Union[_execution_pb2.TaskLog, _Mapping]]] = ...) -> None: ... + +class ResourcePoolInfo(_message.Message): + __slots__ = ["allocation_token", "namespace"] + ALLOCATION_TOKEN_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FIELD_NUMBER: _ClassVar[int] + allocation_token: str + namespace: str + def __init__(self, allocation_token: _Optional[str] = ..., namespace: _Optional[str] = ...) -> None: ... + +class TaskExecutionMetadata(_message.Message): + __slots__ = ["generated_name", "external_resources", "resource_pool_info", "plugin_identifier", "instance_class"] + class InstanceClass(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + DEFAULT: _ClassVar[TaskExecutionMetadata.InstanceClass] + INTERRUPTIBLE: _ClassVar[TaskExecutionMetadata.InstanceClass] + DEFAULT: TaskExecutionMetadata.InstanceClass + INTERRUPTIBLE: TaskExecutionMetadata.InstanceClass + GENERATED_NAME_FIELD_NUMBER: _ClassVar[int] + EXTERNAL_RESOURCES_FIELD_NUMBER: _ClassVar[int] + RESOURCE_POOL_INFO_FIELD_NUMBER: _ClassVar[int] + PLUGIN_IDENTIFIER_FIELD_NUMBER: _ClassVar[int] + INSTANCE_CLASS_FIELD_NUMBER: _ClassVar[int] + generated_name: str + external_resources: _containers.RepeatedCompositeFieldContainer[ExternalResourceInfo] + resource_pool_info: _containers.RepeatedCompositeFieldContainer[ResourcePoolInfo] + plugin_identifier: str + instance_class: TaskExecutionMetadata.InstanceClass + def __init__(self, generated_name: _Optional[str] = ..., external_resources: _Optional[_Iterable[_Union[ExternalResourceInfo, _Mapping]]] = ..., resource_pool_info: _Optional[_Iterable[_Union[ResourcePoolInfo, _Mapping]]] = ..., plugin_identifier: _Optional[str] = ..., instance_class: _Optional[_Union[TaskExecutionMetadata.InstanceClass, str]] = ...) -> None: ... diff --git a/build/lib/flyteidl/event/event_pb2_grpc.py b/build/lib/flyteidl/event/event_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/event/event_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/__init__.py b/build/lib/flyteidl/plugins/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/build/lib/flyteidl/plugins/array_job_pb2.py b/build/lib/flyteidl/plugins/array_job_pb2.py new file mode 100644 index 000000000..3ba446caf --- /dev/null +++ b/build/lib/flyteidl/plugins/array_job_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/array_job.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/plugins/array_job.proto\x12\x10\x66lyteidl.plugins\"\xa9\x01\n\x08\x41rrayJob\x12 \n\x0bparallelism\x18\x01 \x01(\x03R\x0bparallelism\x12\x12\n\x04size\x18\x02 \x01(\x03R\x04size\x12%\n\rmin_successes\x18\x03 \x01(\x03H\x00R\x0cminSuccesses\x12,\n\x11min_success_ratio\x18\x04 \x01(\x02H\x00R\x0fminSuccessRatioB\x12\n\x10success_criteriaB\xbf\x01\n\x14\x63om.flyteidl.pluginsB\rArrayJobProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PX\xaa\x02\x10\x46lyteidl.Plugins\xca\x02\x10\x46lyteidl\\Plugins\xe2\x02\x1c\x46lyteidl\\Plugins\\GPBMetadata\xea\x02\x11\x46lyteidl::Pluginsb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.array_job_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.pluginsB\rArrayJobProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPX\252\002\020Flyteidl.Plugins\312\002\020Flyteidl\\Plugins\342\002\034Flyteidl\\Plugins\\GPBMetadata\352\002\021Flyteidl::Plugins' + _globals['_ARRAYJOB']._serialized_start=55 + _globals['_ARRAYJOB']._serialized_end=224 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/array_job_pb2.pyi b/build/lib/flyteidl/plugins/array_job_pb2.pyi new file mode 100644 index 000000000..160cb5f00 --- /dev/null +++ b/build/lib/flyteidl/plugins/array_job_pb2.pyi @@ -0,0 +1,17 @@ +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional + +DESCRIPTOR: _descriptor.FileDescriptor + +class ArrayJob(_message.Message): + __slots__ = ["parallelism", "size", "min_successes", "min_success_ratio"] + PARALLELISM_FIELD_NUMBER: _ClassVar[int] + SIZE_FIELD_NUMBER: _ClassVar[int] + MIN_SUCCESSES_FIELD_NUMBER: _ClassVar[int] + MIN_SUCCESS_RATIO_FIELD_NUMBER: _ClassVar[int] + parallelism: int + size: int + min_successes: int + min_success_ratio: float + def __init__(self, parallelism: _Optional[int] = ..., size: _Optional[int] = ..., min_successes: _Optional[int] = ..., min_success_ratio: _Optional[float] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/array_job_pb2_grpc.py b/build/lib/flyteidl/plugins/array_job_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/array_job_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/dask_pb2.py b/build/lib/flyteidl/plugins/dask_pb2.py new file mode 100644 index 000000000..65c5a8d69 --- /dev/null +++ b/build/lib/flyteidl/plugins/dask_pb2.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/dask.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import tasks_pb2 as flyteidl_dot_core_dot_tasks__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lyteidl/plugins/dask.proto\x12\x10\x66lyteidl.plugins\x1a\x19\x66lyteidl/core/tasks.proto\"\x85\x01\n\x07\x44\x61skJob\x12=\n\tscheduler\x18\x01 \x01(\x0b\x32\x1f.flyteidl.plugins.DaskSchedulerR\tscheduler\x12;\n\x07workers\x18\x02 \x01(\x0b\x32!.flyteidl.plugins.DaskWorkerGroupR\x07workers\"]\n\rDaskScheduler\x12\x14\n\x05image\x18\x01 \x01(\tR\x05image\x12\x36\n\tresources\x18\x02 \x01(\x0b\x32\x18.flyteidl.core.ResourcesR\tresources\"\x8b\x01\n\x0f\x44\x61skWorkerGroup\x12*\n\x11number_of_workers\x18\x01 \x01(\rR\x0fnumberOfWorkers\x12\x14\n\x05image\x18\x02 \x01(\tR\x05image\x12\x36\n\tresources\x18\x03 \x01(\x0b\x32\x18.flyteidl.core.ResourcesR\tresourcesB\xbb\x01\n\x14\x63om.flyteidl.pluginsB\tDaskProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PX\xaa\x02\x10\x46lyteidl.Plugins\xca\x02\x10\x46lyteidl\\Plugins\xe2\x02\x1c\x46lyteidl\\Plugins\\GPBMetadata\xea\x02\x11\x46lyteidl::Pluginsb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.dask_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.pluginsB\tDaskProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPX\252\002\020Flyteidl.Plugins\312\002\020Flyteidl\\Plugins\342\002\034Flyteidl\\Plugins\\GPBMetadata\352\002\021Flyteidl::Plugins' + _globals['_DASKJOB']._serialized_start=77 + _globals['_DASKJOB']._serialized_end=210 + _globals['_DASKSCHEDULER']._serialized_start=212 + _globals['_DASKSCHEDULER']._serialized_end=305 + _globals['_DASKWORKERGROUP']._serialized_start=308 + _globals['_DASKWORKERGROUP']._serialized_end=447 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/dask_pb2.pyi b/build/lib/flyteidl/plugins/dask_pb2.pyi new file mode 100644 index 000000000..df94d3377 --- /dev/null +++ b/build/lib/flyteidl/plugins/dask_pb2.pyi @@ -0,0 +1,32 @@ +from flyteidl.core import tasks_pb2 as _tasks_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class DaskJob(_message.Message): + __slots__ = ["scheduler", "workers"] + SCHEDULER_FIELD_NUMBER: _ClassVar[int] + WORKERS_FIELD_NUMBER: _ClassVar[int] + scheduler: DaskScheduler + workers: DaskWorkerGroup + def __init__(self, scheduler: _Optional[_Union[DaskScheduler, _Mapping]] = ..., workers: _Optional[_Union[DaskWorkerGroup, _Mapping]] = ...) -> None: ... + +class DaskScheduler(_message.Message): + __slots__ = ["image", "resources"] + IMAGE_FIELD_NUMBER: _ClassVar[int] + RESOURCES_FIELD_NUMBER: _ClassVar[int] + image: str + resources: _tasks_pb2.Resources + def __init__(self, image: _Optional[str] = ..., resources: _Optional[_Union[_tasks_pb2.Resources, _Mapping]] = ...) -> None: ... + +class DaskWorkerGroup(_message.Message): + __slots__ = ["number_of_workers", "image", "resources"] + NUMBER_OF_WORKERS_FIELD_NUMBER: _ClassVar[int] + IMAGE_FIELD_NUMBER: _ClassVar[int] + RESOURCES_FIELD_NUMBER: _ClassVar[int] + number_of_workers: int + image: str + resources: _tasks_pb2.Resources + def __init__(self, number_of_workers: _Optional[int] = ..., image: _Optional[str] = ..., resources: _Optional[_Union[_tasks_pb2.Resources, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/dask_pb2_grpc.py b/build/lib/flyteidl/plugins/dask_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/dask_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/kubeflow/__init__.py b/build/lib/flyteidl/plugins/kubeflow/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/build/lib/flyteidl/plugins/kubeflow/common_pb2.py b/build/lib/flyteidl/plugins/kubeflow/common_pb2.py new file mode 100644 index 000000000..62a159a4e --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/common_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/kubeflow/common.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&flyteidl/plugins/kubeflow/common.proto\x12\x19\x66lyteidl.plugins.kubeflow\"\xfa\x01\n\tRunPolicy\x12S\n\x10\x63lean_pod_policy\x18\x01 \x01(\x0e\x32).flyteidl.plugins.kubeflow.CleanPodPolicyR\x0e\x63leanPodPolicy\x12;\n\x1attl_seconds_after_finished\x18\x02 \x01(\x05R\x17ttlSecondsAfterFinished\x12\x36\n\x17\x61\x63tive_deadline_seconds\x18\x03 \x01(\x05R\x15\x61\x63tiveDeadlineSeconds\x12#\n\rbackoff_limit\x18\x04 \x01(\x05R\x0c\x62\x61\x63koffLimit*c\n\rRestartPolicy\x12\x18\n\x14RESTART_POLICY_NEVER\x10\x00\x12\x1d\n\x19RESTART_POLICY_ON_FAILURE\x10\x01\x12\x19\n\x15RESTART_POLICY_ALWAYS\x10\x02*`\n\x0e\x43leanPodPolicy\x12\x18\n\x14\x43LEANPOD_POLICY_NONE\x10\x00\x12\x1b\n\x17\x43LEANPOD_POLICY_RUNNING\x10\x01\x12\x17\n\x13\x43LEANPOD_POLICY_ALL\x10\x02\x42\xeb\x01\n\x1d\x63om.flyteidl.plugins.kubeflowB\x0b\x43ommonProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PK\xaa\x02\x19\x46lyteidl.Plugins.Kubeflow\xca\x02\x19\x46lyteidl\\Plugins\\Kubeflow\xe2\x02%Flyteidl\\Plugins\\Kubeflow\\GPBMetadata\xea\x02\x1b\x46lyteidl::Plugins::Kubeflowb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.kubeflow.common_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\035com.flyteidl.plugins.kubeflowB\013CommonProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPK\252\002\031Flyteidl.Plugins.Kubeflow\312\002\031Flyteidl\\Plugins\\Kubeflow\342\002%Flyteidl\\Plugins\\Kubeflow\\GPBMetadata\352\002\033Flyteidl::Plugins::Kubeflow' + _globals['_RESTARTPOLICY']._serialized_start=322 + _globals['_RESTARTPOLICY']._serialized_end=421 + _globals['_CLEANPODPOLICY']._serialized_start=423 + _globals['_CLEANPODPOLICY']._serialized_end=519 + _globals['_RUNPOLICY']._serialized_start=70 + _globals['_RUNPOLICY']._serialized_end=320 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/kubeflow/common_pb2.pyi b/build/lib/flyteidl/plugins/kubeflow/common_pb2.pyi new file mode 100644 index 000000000..916c3344b --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/common_pb2.pyi @@ -0,0 +1,36 @@ +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 +from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class RestartPolicy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + RESTART_POLICY_NEVER: _ClassVar[RestartPolicy] + RESTART_POLICY_ON_FAILURE: _ClassVar[RestartPolicy] + RESTART_POLICY_ALWAYS: _ClassVar[RestartPolicy] + +class CleanPodPolicy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + CLEANPOD_POLICY_NONE: _ClassVar[CleanPodPolicy] + CLEANPOD_POLICY_RUNNING: _ClassVar[CleanPodPolicy] + CLEANPOD_POLICY_ALL: _ClassVar[CleanPodPolicy] +RESTART_POLICY_NEVER: RestartPolicy +RESTART_POLICY_ON_FAILURE: RestartPolicy +RESTART_POLICY_ALWAYS: RestartPolicy +CLEANPOD_POLICY_NONE: CleanPodPolicy +CLEANPOD_POLICY_RUNNING: CleanPodPolicy +CLEANPOD_POLICY_ALL: CleanPodPolicy + +class RunPolicy(_message.Message): + __slots__ = ["clean_pod_policy", "ttl_seconds_after_finished", "active_deadline_seconds", "backoff_limit"] + CLEAN_POD_POLICY_FIELD_NUMBER: _ClassVar[int] + TTL_SECONDS_AFTER_FINISHED_FIELD_NUMBER: _ClassVar[int] + ACTIVE_DEADLINE_SECONDS_FIELD_NUMBER: _ClassVar[int] + BACKOFF_LIMIT_FIELD_NUMBER: _ClassVar[int] + clean_pod_policy: CleanPodPolicy + ttl_seconds_after_finished: int + active_deadline_seconds: int + backoff_limit: int + def __init__(self, clean_pod_policy: _Optional[_Union[CleanPodPolicy, str]] = ..., ttl_seconds_after_finished: _Optional[int] = ..., active_deadline_seconds: _Optional[int] = ..., backoff_limit: _Optional[int] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/kubeflow/common_pb2_grpc.py b/build/lib/flyteidl/plugins/kubeflow/common_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/common_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/kubeflow/mpi_pb2.py b/build/lib/flyteidl/plugins/kubeflow/mpi_pb2.py new file mode 100644 index 000000000..539fcb59b --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/mpi_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/kubeflow/mpi.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import tasks_pb2 as flyteidl_dot_core_dot_tasks__pb2 +from flyteidl.plugins.kubeflow import common_pb2 as flyteidl_dot_plugins_dot_kubeflow_dot_common__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#flyteidl/plugins/kubeflow/mpi.proto\x12\x19\x66lyteidl.plugins.kubeflow\x1a\x19\x66lyteidl/core/tasks.proto\x1a&flyteidl/plugins/kubeflow/common.proto\"\xc9\x02\n\x1a\x44istributedMPITrainingTask\x12\x65\n\x0fworker_replicas\x18\x01 \x01(\x0b\x32<.flyteidl.plugins.kubeflow.DistributedMPITrainingReplicaSpecR\x0eworkerReplicas\x12i\n\x11launcher_replicas\x18\x02 \x01(\x0b\x32<.flyteidl.plugins.kubeflow.DistributedMPITrainingReplicaSpecR\x10launcherReplicas\x12\x43\n\nrun_policy\x18\x03 \x01(\x0b\x32$.flyteidl.plugins.kubeflow.RunPolicyR\trunPolicy\x12\x14\n\x05slots\x18\x04 \x01(\x05R\x05slots\"\xf8\x01\n!DistributedMPITrainingReplicaSpec\x12\x1a\n\x08replicas\x18\x01 \x01(\x05R\x08replicas\x12\x14\n\x05image\x18\x02 \x01(\tR\x05image\x12\x36\n\tresources\x18\x03 \x01(\x0b\x32\x18.flyteidl.core.ResourcesR\tresources\x12O\n\x0erestart_policy\x18\x04 \x01(\x0e\x32(.flyteidl.plugins.kubeflow.RestartPolicyR\rrestartPolicy\x12\x18\n\x07\x63ommand\x18\x05 \x03(\tR\x07\x63ommandB\xe8\x01\n\x1d\x63om.flyteidl.plugins.kubeflowB\x08MpiProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PK\xaa\x02\x19\x46lyteidl.Plugins.Kubeflow\xca\x02\x19\x46lyteidl\\Plugins\\Kubeflow\xe2\x02%Flyteidl\\Plugins\\Kubeflow\\GPBMetadata\xea\x02\x1b\x46lyteidl::Plugins::Kubeflowb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.kubeflow.mpi_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\035com.flyteidl.plugins.kubeflowB\010MpiProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPK\252\002\031Flyteidl.Plugins.Kubeflow\312\002\031Flyteidl\\Plugins\\Kubeflow\342\002%Flyteidl\\Plugins\\Kubeflow\\GPBMetadata\352\002\033Flyteidl::Plugins::Kubeflow' + _globals['_DISTRIBUTEDMPITRAININGTASK']._serialized_start=134 + _globals['_DISTRIBUTEDMPITRAININGTASK']._serialized_end=463 + _globals['_DISTRIBUTEDMPITRAININGREPLICASPEC']._serialized_start=466 + _globals['_DISTRIBUTEDMPITRAININGREPLICASPEC']._serialized_end=714 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/kubeflow/mpi_pb2.pyi b/build/lib/flyteidl/plugins/kubeflow/mpi_pb2.pyi new file mode 100644 index 000000000..625854299 --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/mpi_pb2.pyi @@ -0,0 +1,34 @@ +from flyteidl.core import tasks_pb2 as _tasks_pb2 +from flyteidl.plugins.kubeflow import common_pb2 as _common_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class DistributedMPITrainingTask(_message.Message): + __slots__ = ["worker_replicas", "launcher_replicas", "run_policy", "slots"] + WORKER_REPLICAS_FIELD_NUMBER: _ClassVar[int] + LAUNCHER_REPLICAS_FIELD_NUMBER: _ClassVar[int] + RUN_POLICY_FIELD_NUMBER: _ClassVar[int] + SLOTS_FIELD_NUMBER: _ClassVar[int] + worker_replicas: DistributedMPITrainingReplicaSpec + launcher_replicas: DistributedMPITrainingReplicaSpec + run_policy: _common_pb2.RunPolicy + slots: int + def __init__(self, worker_replicas: _Optional[_Union[DistributedMPITrainingReplicaSpec, _Mapping]] = ..., launcher_replicas: _Optional[_Union[DistributedMPITrainingReplicaSpec, _Mapping]] = ..., run_policy: _Optional[_Union[_common_pb2.RunPolicy, _Mapping]] = ..., slots: _Optional[int] = ...) -> None: ... + +class DistributedMPITrainingReplicaSpec(_message.Message): + __slots__ = ["replicas", "image", "resources", "restart_policy", "command"] + REPLICAS_FIELD_NUMBER: _ClassVar[int] + IMAGE_FIELD_NUMBER: _ClassVar[int] + RESOURCES_FIELD_NUMBER: _ClassVar[int] + RESTART_POLICY_FIELD_NUMBER: _ClassVar[int] + COMMAND_FIELD_NUMBER: _ClassVar[int] + replicas: int + image: str + resources: _tasks_pb2.Resources + restart_policy: _common_pb2.RestartPolicy + command: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, replicas: _Optional[int] = ..., image: _Optional[str] = ..., resources: _Optional[_Union[_tasks_pb2.Resources, _Mapping]] = ..., restart_policy: _Optional[_Union[_common_pb2.RestartPolicy, str]] = ..., command: _Optional[_Iterable[str]] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/kubeflow/mpi_pb2_grpc.py b/build/lib/flyteidl/plugins/kubeflow/mpi_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/mpi_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/kubeflow/pytorch_pb2.py b/build/lib/flyteidl/plugins/kubeflow/pytorch_pb2.py new file mode 100644 index 000000000..7d0d3f454 --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/pytorch_pb2.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/kubeflow/pytorch.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import tasks_pb2 as flyteidl_dot_core_dot_tasks__pb2 +from flyteidl.plugins.kubeflow import common_pb2 as flyteidl_dot_plugins_dot_kubeflow_dot_common__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'flyteidl/plugins/kubeflow/pytorch.proto\x12\x19\x66lyteidl.plugins.kubeflow\x1a\x19\x66lyteidl/core/tasks.proto\x1a&flyteidl/plugins/kubeflow/common.proto\"\xc1\x01\n\rElasticConfig\x12!\n\x0crdzv_backend\x18\x01 \x01(\tR\x0brdzvBackend\x12!\n\x0cmin_replicas\x18\x02 \x01(\x05R\x0bminReplicas\x12!\n\x0cmax_replicas\x18\x03 \x01(\x05R\x0bmaxReplicas\x12$\n\x0enproc_per_node\x18\x04 \x01(\x05R\x0cnprocPerNode\x12!\n\x0cmax_restarts\x18\x05 \x01(\x05R\x0bmaxRestarts\"\x8c\x03\n\x1e\x44istributedPyTorchTrainingTask\x12i\n\x0fworker_replicas\x18\x01 \x01(\x0b\x32@.flyteidl.plugins.kubeflow.DistributedPyTorchTrainingReplicaSpecR\x0eworkerReplicas\x12i\n\x0fmaster_replicas\x18\x02 \x01(\x0b\x32@.flyteidl.plugins.kubeflow.DistributedPyTorchTrainingReplicaSpecR\x0emasterReplicas\x12\x43\n\nrun_policy\x18\x03 \x01(\x0b\x32$.flyteidl.plugins.kubeflow.RunPolicyR\trunPolicy\x12O\n\x0e\x65lastic_config\x18\x04 \x01(\x0b\x32(.flyteidl.plugins.kubeflow.ElasticConfigR\relasticConfig\"\xe2\x01\n%DistributedPyTorchTrainingReplicaSpec\x12\x1a\n\x08replicas\x18\x01 \x01(\x05R\x08replicas\x12\x14\n\x05image\x18\x02 \x01(\tR\x05image\x12\x36\n\tresources\x18\x03 \x01(\x0b\x32\x18.flyteidl.core.ResourcesR\tresources\x12O\n\x0erestart_policy\x18\x04 \x01(\x0e\x32(.flyteidl.plugins.kubeflow.RestartPolicyR\rrestartPolicyB\xec\x01\n\x1d\x63om.flyteidl.plugins.kubeflowB\x0cPytorchProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PK\xaa\x02\x19\x46lyteidl.Plugins.Kubeflow\xca\x02\x19\x46lyteidl\\Plugins\\Kubeflow\xe2\x02%Flyteidl\\Plugins\\Kubeflow\\GPBMetadata\xea\x02\x1b\x46lyteidl::Plugins::Kubeflowb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.kubeflow.pytorch_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\035com.flyteidl.plugins.kubeflowB\014PytorchProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPK\252\002\031Flyteidl.Plugins.Kubeflow\312\002\031Flyteidl\\Plugins\\Kubeflow\342\002%Flyteidl\\Plugins\\Kubeflow\\GPBMetadata\352\002\033Flyteidl::Plugins::Kubeflow' + _globals['_ELASTICCONFIG']._serialized_start=138 + _globals['_ELASTICCONFIG']._serialized_end=331 + _globals['_DISTRIBUTEDPYTORCHTRAININGTASK']._serialized_start=334 + _globals['_DISTRIBUTEDPYTORCHTRAININGTASK']._serialized_end=730 + _globals['_DISTRIBUTEDPYTORCHTRAININGREPLICASPEC']._serialized_start=733 + _globals['_DISTRIBUTEDPYTORCHTRAININGREPLICASPEC']._serialized_end=959 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/kubeflow/pytorch_pb2.pyi b/build/lib/flyteidl/plugins/kubeflow/pytorch_pb2.pyi new file mode 100644 index 000000000..ee6599ad8 --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/pytorch_pb2.pyi @@ -0,0 +1,45 @@ +from flyteidl.core import tasks_pb2 as _tasks_pb2 +from flyteidl.plugins.kubeflow import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class ElasticConfig(_message.Message): + __slots__ = ["rdzv_backend", "min_replicas", "max_replicas", "nproc_per_node", "max_restarts"] + RDZV_BACKEND_FIELD_NUMBER: _ClassVar[int] + MIN_REPLICAS_FIELD_NUMBER: _ClassVar[int] + MAX_REPLICAS_FIELD_NUMBER: _ClassVar[int] + NPROC_PER_NODE_FIELD_NUMBER: _ClassVar[int] + MAX_RESTARTS_FIELD_NUMBER: _ClassVar[int] + rdzv_backend: str + min_replicas: int + max_replicas: int + nproc_per_node: int + max_restarts: int + def __init__(self, rdzv_backend: _Optional[str] = ..., min_replicas: _Optional[int] = ..., max_replicas: _Optional[int] = ..., nproc_per_node: _Optional[int] = ..., max_restarts: _Optional[int] = ...) -> None: ... + +class DistributedPyTorchTrainingTask(_message.Message): + __slots__ = ["worker_replicas", "master_replicas", "run_policy", "elastic_config"] + WORKER_REPLICAS_FIELD_NUMBER: _ClassVar[int] + MASTER_REPLICAS_FIELD_NUMBER: _ClassVar[int] + RUN_POLICY_FIELD_NUMBER: _ClassVar[int] + ELASTIC_CONFIG_FIELD_NUMBER: _ClassVar[int] + worker_replicas: DistributedPyTorchTrainingReplicaSpec + master_replicas: DistributedPyTorchTrainingReplicaSpec + run_policy: _common_pb2.RunPolicy + elastic_config: ElasticConfig + def __init__(self, worker_replicas: _Optional[_Union[DistributedPyTorchTrainingReplicaSpec, _Mapping]] = ..., master_replicas: _Optional[_Union[DistributedPyTorchTrainingReplicaSpec, _Mapping]] = ..., run_policy: _Optional[_Union[_common_pb2.RunPolicy, _Mapping]] = ..., elastic_config: _Optional[_Union[ElasticConfig, _Mapping]] = ...) -> None: ... + +class DistributedPyTorchTrainingReplicaSpec(_message.Message): + __slots__ = ["replicas", "image", "resources", "restart_policy"] + REPLICAS_FIELD_NUMBER: _ClassVar[int] + IMAGE_FIELD_NUMBER: _ClassVar[int] + RESOURCES_FIELD_NUMBER: _ClassVar[int] + RESTART_POLICY_FIELD_NUMBER: _ClassVar[int] + replicas: int + image: str + resources: _tasks_pb2.Resources + restart_policy: _common_pb2.RestartPolicy + def __init__(self, replicas: _Optional[int] = ..., image: _Optional[str] = ..., resources: _Optional[_Union[_tasks_pb2.Resources, _Mapping]] = ..., restart_policy: _Optional[_Union[_common_pb2.RestartPolicy, str]] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/kubeflow/pytorch_pb2_grpc.py b/build/lib/flyteidl/plugins/kubeflow/pytorch_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/pytorch_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2.py b/build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2.py new file mode 100644 index 000000000..f1c9eddb5 --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/kubeflow/tensorflow.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import tasks_pb2 as flyteidl_dot_core_dot_tasks__pb2 +from flyteidl.plugins.kubeflow import common_pb2 as flyteidl_dot_plugins_dot_kubeflow_dot_common__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*flyteidl/plugins/kubeflow/tensorflow.proto\x12\x19\x66lyteidl.plugins.kubeflow\x1a\x19\x66lyteidl/core/tasks.proto\x1a&flyteidl/plugins/kubeflow/common.proto\"\xa8\x03\n!DistributedTensorflowTrainingTask\x12l\n\x0fworker_replicas\x18\x01 \x01(\x0b\x32\x43.flyteidl.plugins.kubeflow.DistributedTensorflowTrainingReplicaSpecR\x0eworkerReplicas\x12\x64\n\x0bps_replicas\x18\x02 \x01(\x0b\x32\x43.flyteidl.plugins.kubeflow.DistributedTensorflowTrainingReplicaSpecR\npsReplicas\x12j\n\x0e\x63hief_replicas\x18\x03 \x01(\x0b\x32\x43.flyteidl.plugins.kubeflow.DistributedTensorflowTrainingReplicaSpecR\rchiefReplicas\x12\x43\n\nrun_policy\x18\x04 \x01(\x0b\x32$.flyteidl.plugins.kubeflow.RunPolicyR\trunPolicy\"\xe5\x01\n(DistributedTensorflowTrainingReplicaSpec\x12\x1a\n\x08replicas\x18\x01 \x01(\x05R\x08replicas\x12\x14\n\x05image\x18\x02 \x01(\tR\x05image\x12\x36\n\tresources\x18\x03 \x01(\x0b\x32\x18.flyteidl.core.ResourcesR\tresources\x12O\n\x0erestart_policy\x18\x04 \x01(\x0e\x32(.flyteidl.plugins.kubeflow.RestartPolicyR\rrestartPolicyB\xef\x01\n\x1d\x63om.flyteidl.plugins.kubeflowB\x0fTensorflowProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PK\xaa\x02\x19\x46lyteidl.Plugins.Kubeflow\xca\x02\x19\x46lyteidl\\Plugins\\Kubeflow\xe2\x02%Flyteidl\\Plugins\\Kubeflow\\GPBMetadata\xea\x02\x1b\x46lyteidl::Plugins::Kubeflowb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.kubeflow.tensorflow_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\035com.flyteidl.plugins.kubeflowB\017TensorflowProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPK\252\002\031Flyteidl.Plugins.Kubeflow\312\002\031Flyteidl\\Plugins\\Kubeflow\342\002%Flyteidl\\Plugins\\Kubeflow\\GPBMetadata\352\002\033Flyteidl::Plugins::Kubeflow' + _globals['_DISTRIBUTEDTENSORFLOWTRAININGTASK']._serialized_start=141 + _globals['_DISTRIBUTEDTENSORFLOWTRAININGTASK']._serialized_end=565 + _globals['_DISTRIBUTEDTENSORFLOWTRAININGREPLICASPEC']._serialized_start=568 + _globals['_DISTRIBUTEDTENSORFLOWTRAININGREPLICASPEC']._serialized_end=797 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2.pyi b/build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2.pyi new file mode 100644 index 000000000..e08a1ff98 --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2.pyi @@ -0,0 +1,31 @@ +from flyteidl.core import tasks_pb2 as _tasks_pb2 +from flyteidl.plugins.kubeflow import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class DistributedTensorflowTrainingTask(_message.Message): + __slots__ = ["worker_replicas", "ps_replicas", "chief_replicas", "run_policy"] + WORKER_REPLICAS_FIELD_NUMBER: _ClassVar[int] + PS_REPLICAS_FIELD_NUMBER: _ClassVar[int] + CHIEF_REPLICAS_FIELD_NUMBER: _ClassVar[int] + RUN_POLICY_FIELD_NUMBER: _ClassVar[int] + worker_replicas: DistributedTensorflowTrainingReplicaSpec + ps_replicas: DistributedTensorflowTrainingReplicaSpec + chief_replicas: DistributedTensorflowTrainingReplicaSpec + run_policy: _common_pb2.RunPolicy + def __init__(self, worker_replicas: _Optional[_Union[DistributedTensorflowTrainingReplicaSpec, _Mapping]] = ..., ps_replicas: _Optional[_Union[DistributedTensorflowTrainingReplicaSpec, _Mapping]] = ..., chief_replicas: _Optional[_Union[DistributedTensorflowTrainingReplicaSpec, _Mapping]] = ..., run_policy: _Optional[_Union[_common_pb2.RunPolicy, _Mapping]] = ...) -> None: ... + +class DistributedTensorflowTrainingReplicaSpec(_message.Message): + __slots__ = ["replicas", "image", "resources", "restart_policy"] + REPLICAS_FIELD_NUMBER: _ClassVar[int] + IMAGE_FIELD_NUMBER: _ClassVar[int] + RESOURCES_FIELD_NUMBER: _ClassVar[int] + RESTART_POLICY_FIELD_NUMBER: _ClassVar[int] + replicas: int + image: str + resources: _tasks_pb2.Resources + restart_policy: _common_pb2.RestartPolicy + def __init__(self, replicas: _Optional[int] = ..., image: _Optional[str] = ..., resources: _Optional[_Union[_tasks_pb2.Resources, _Mapping]] = ..., restart_policy: _Optional[_Union[_common_pb2.RestartPolicy, str]] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2_grpc.py b/build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/kubeflow/tensorflow_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/mpi_pb2.py b/build/lib/flyteidl/plugins/mpi_pb2.py new file mode 100644 index 000000000..228dd0629 --- /dev/null +++ b/build/lib/flyteidl/plugins/mpi_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/mpi.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lyteidl/plugins/mpi.proto\x12\x10\x66lyteidl.plugins\"\x87\x01\n\x1a\x44istributedMPITrainingTask\x12\x1f\n\x0bnum_workers\x18\x01 \x01(\x05R\nnumWorkers\x12\x32\n\x15num_launcher_replicas\x18\x02 \x01(\x05R\x13numLauncherReplicas\x12\x14\n\x05slots\x18\x03 \x01(\x05R\x05slotsB\xba\x01\n\x14\x63om.flyteidl.pluginsB\x08MpiProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PX\xaa\x02\x10\x46lyteidl.Plugins\xca\x02\x10\x46lyteidl\\Plugins\xe2\x02\x1c\x46lyteidl\\Plugins\\GPBMetadata\xea\x02\x11\x46lyteidl::Pluginsb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.mpi_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.pluginsB\010MpiProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPX\252\002\020Flyteidl.Plugins\312\002\020Flyteidl\\Plugins\342\002\034Flyteidl\\Plugins\\GPBMetadata\352\002\021Flyteidl::Plugins' + _globals['_DISTRIBUTEDMPITRAININGTASK']._serialized_start=49 + _globals['_DISTRIBUTEDMPITRAININGTASK']._serialized_end=184 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/mpi_pb2.pyi b/build/lib/flyteidl/plugins/mpi_pb2.pyi new file mode 100644 index 000000000..b907bede4 --- /dev/null +++ b/build/lib/flyteidl/plugins/mpi_pb2.pyi @@ -0,0 +1,15 @@ +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional + +DESCRIPTOR: _descriptor.FileDescriptor + +class DistributedMPITrainingTask(_message.Message): + __slots__ = ["num_workers", "num_launcher_replicas", "slots"] + NUM_WORKERS_FIELD_NUMBER: _ClassVar[int] + NUM_LAUNCHER_REPLICAS_FIELD_NUMBER: _ClassVar[int] + SLOTS_FIELD_NUMBER: _ClassVar[int] + num_workers: int + num_launcher_replicas: int + slots: int + def __init__(self, num_workers: _Optional[int] = ..., num_launcher_replicas: _Optional[int] = ..., slots: _Optional[int] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/mpi_pb2_grpc.py b/build/lib/flyteidl/plugins/mpi_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/mpi_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/presto_pb2.py b/build/lib/flyteidl/plugins/presto_pb2.py new file mode 100644 index 000000000..af97a587d --- /dev/null +++ b/build/lib/flyteidl/plugins/presto_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/presto.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/plugins/presto.proto\x12\x10\x66lyteidl.plugins\"\x82\x01\n\x0bPrestoQuery\x12#\n\rrouting_group\x18\x01 \x01(\tR\x0croutingGroup\x12\x18\n\x07\x63\x61talog\x18\x02 \x01(\tR\x07\x63\x61talog\x12\x16\n\x06schema\x18\x03 \x01(\tR\x06schema\x12\x1c\n\tstatement\x18\x04 \x01(\tR\tstatementB\xbd\x01\n\x14\x63om.flyteidl.pluginsB\x0bPrestoProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PX\xaa\x02\x10\x46lyteidl.Plugins\xca\x02\x10\x46lyteidl\\Plugins\xe2\x02\x1c\x46lyteidl\\Plugins\\GPBMetadata\xea\x02\x11\x46lyteidl::Pluginsb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.presto_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.pluginsB\013PrestoProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPX\252\002\020Flyteidl.Plugins\312\002\020Flyteidl\\Plugins\342\002\034Flyteidl\\Plugins\\GPBMetadata\352\002\021Flyteidl::Plugins' + _globals['_PRESTOQUERY']._serialized_start=52 + _globals['_PRESTOQUERY']._serialized_end=182 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/presto_pb2.pyi b/build/lib/flyteidl/plugins/presto_pb2.pyi new file mode 100644 index 000000000..6f185403e --- /dev/null +++ b/build/lib/flyteidl/plugins/presto_pb2.pyi @@ -0,0 +1,17 @@ +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional + +DESCRIPTOR: _descriptor.FileDescriptor + +class PrestoQuery(_message.Message): + __slots__ = ["routing_group", "catalog", "schema", "statement"] + ROUTING_GROUP_FIELD_NUMBER: _ClassVar[int] + CATALOG_FIELD_NUMBER: _ClassVar[int] + SCHEMA_FIELD_NUMBER: _ClassVar[int] + STATEMENT_FIELD_NUMBER: _ClassVar[int] + routing_group: str + catalog: str + schema: str + statement: str + def __init__(self, routing_group: _Optional[str] = ..., catalog: _Optional[str] = ..., schema: _Optional[str] = ..., statement: _Optional[str] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/presto_pb2_grpc.py b/build/lib/flyteidl/plugins/presto_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/presto_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/pytorch_pb2.py b/build/lib/flyteidl/plugins/pytorch_pb2.py new file mode 100644 index 000000000..bc3cddc19 --- /dev/null +++ b/build/lib/flyteidl/plugins/pytorch_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/pytorch.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66lyteidl/plugins/pytorch.proto\x12\x10\x66lyteidl.plugins\"\xc1\x01\n\rElasticConfig\x12!\n\x0crdzv_backend\x18\x01 \x01(\tR\x0brdzvBackend\x12!\n\x0cmin_replicas\x18\x02 \x01(\x05R\x0bminReplicas\x12!\n\x0cmax_replicas\x18\x03 \x01(\x05R\x0bmaxReplicas\x12$\n\x0enproc_per_node\x18\x04 \x01(\x05R\x0cnprocPerNode\x12!\n\x0cmax_restarts\x18\x05 \x01(\x05R\x0bmaxRestarts\"\x82\x01\n\x1e\x44istributedPyTorchTrainingTask\x12\x18\n\x07workers\x18\x01 \x01(\x05R\x07workers\x12\x46\n\x0e\x65lastic_config\x18\x02 \x01(\x0b\x32\x1f.flyteidl.plugins.ElasticConfigR\relasticConfigB\xbe\x01\n\x14\x63om.flyteidl.pluginsB\x0cPytorchProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PX\xaa\x02\x10\x46lyteidl.Plugins\xca\x02\x10\x46lyteidl\\Plugins\xe2\x02\x1c\x46lyteidl\\Plugins\\GPBMetadata\xea\x02\x11\x46lyteidl::Pluginsb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.pytorch_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.pluginsB\014PytorchProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPX\252\002\020Flyteidl.Plugins\312\002\020Flyteidl\\Plugins\342\002\034Flyteidl\\Plugins\\GPBMetadata\352\002\021Flyteidl::Plugins' + _globals['_ELASTICCONFIG']._serialized_start=53 + _globals['_ELASTICCONFIG']._serialized_end=246 + _globals['_DISTRIBUTEDPYTORCHTRAININGTASK']._serialized_start=249 + _globals['_DISTRIBUTEDPYTORCHTRAININGTASK']._serialized_end=379 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/pytorch_pb2.pyi b/build/lib/flyteidl/plugins/pytorch_pb2.pyi new file mode 100644 index 000000000..882c38d2d --- /dev/null +++ b/build/lib/flyteidl/plugins/pytorch_pb2.pyi @@ -0,0 +1,27 @@ +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class ElasticConfig(_message.Message): + __slots__ = ["rdzv_backend", "min_replicas", "max_replicas", "nproc_per_node", "max_restarts"] + RDZV_BACKEND_FIELD_NUMBER: _ClassVar[int] + MIN_REPLICAS_FIELD_NUMBER: _ClassVar[int] + MAX_REPLICAS_FIELD_NUMBER: _ClassVar[int] + NPROC_PER_NODE_FIELD_NUMBER: _ClassVar[int] + MAX_RESTARTS_FIELD_NUMBER: _ClassVar[int] + rdzv_backend: str + min_replicas: int + max_replicas: int + nproc_per_node: int + max_restarts: int + def __init__(self, rdzv_backend: _Optional[str] = ..., min_replicas: _Optional[int] = ..., max_replicas: _Optional[int] = ..., nproc_per_node: _Optional[int] = ..., max_restarts: _Optional[int] = ...) -> None: ... + +class DistributedPyTorchTrainingTask(_message.Message): + __slots__ = ["workers", "elastic_config"] + WORKERS_FIELD_NUMBER: _ClassVar[int] + ELASTIC_CONFIG_FIELD_NUMBER: _ClassVar[int] + workers: int + elastic_config: ElasticConfig + def __init__(self, workers: _Optional[int] = ..., elastic_config: _Optional[_Union[ElasticConfig, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/pytorch_pb2_grpc.py b/build/lib/flyteidl/plugins/pytorch_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/pytorch_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/qubole_pb2.py b/build/lib/flyteidl/plugins/qubole_pb2.py new file mode 100644 index 000000000..0e270bb94 --- /dev/null +++ b/build/lib/flyteidl/plugins/qubole_pb2.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/qubole.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/plugins/qubole.proto\x12\x10\x66lyteidl.plugins\"b\n\tHiveQuery\x12\x14\n\x05query\x18\x01 \x01(\tR\x05query\x12\x1f\n\x0btimeout_sec\x18\x02 \x01(\rR\ntimeoutSec\x12\x1e\n\nretryCount\x18\x03 \x01(\rR\nretryCount\"L\n\x13HiveQueryCollection\x12\x35\n\x07queries\x18\x02 \x03(\x0b\x32\x1b.flyteidl.plugins.HiveQueryR\x07queries\"\xd1\x01\n\rQuboleHiveJob\x12#\n\rcluster_label\x18\x01 \x01(\tR\x0c\x63lusterLabel\x12T\n\x10query_collection\x18\x02 \x01(\x0b\x32%.flyteidl.plugins.HiveQueryCollectionB\x02\x18\x01R\x0fqueryCollection\x12\x12\n\x04tags\x18\x03 \x03(\tR\x04tags\x12\x31\n\x05query\x18\x04 \x01(\x0b\x32\x1b.flyteidl.plugins.HiveQueryR\x05queryB\xbd\x01\n\x14\x63om.flyteidl.pluginsB\x0bQuboleProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PX\xaa\x02\x10\x46lyteidl.Plugins\xca\x02\x10\x46lyteidl\\Plugins\xe2\x02\x1c\x46lyteidl\\Plugins\\GPBMetadata\xea\x02\x11\x46lyteidl::Pluginsb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.qubole_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.pluginsB\013QuboleProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPX\252\002\020Flyteidl.Plugins\312\002\020Flyteidl\\Plugins\342\002\034Flyteidl\\Plugins\\GPBMetadata\352\002\021Flyteidl::Plugins' + _QUBOLEHIVEJOB.fields_by_name['query_collection']._options = None + _QUBOLEHIVEJOB.fields_by_name['query_collection']._serialized_options = b'\030\001' + _globals['_HIVEQUERY']._serialized_start=51 + _globals['_HIVEQUERY']._serialized_end=149 + _globals['_HIVEQUERYCOLLECTION']._serialized_start=151 + _globals['_HIVEQUERYCOLLECTION']._serialized_end=227 + _globals['_QUBOLEHIVEJOB']._serialized_start=230 + _globals['_QUBOLEHIVEJOB']._serialized_end=439 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/qubole_pb2.pyi b/build/lib/flyteidl/plugins/qubole_pb2.pyi new file mode 100644 index 000000000..71e6bd669 --- /dev/null +++ b/build/lib/flyteidl/plugins/qubole_pb2.pyi @@ -0,0 +1,34 @@ +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class HiveQuery(_message.Message): + __slots__ = ["query", "timeout_sec", "retryCount"] + QUERY_FIELD_NUMBER: _ClassVar[int] + TIMEOUT_SEC_FIELD_NUMBER: _ClassVar[int] + RETRYCOUNT_FIELD_NUMBER: _ClassVar[int] + query: str + timeout_sec: int + retryCount: int + def __init__(self, query: _Optional[str] = ..., timeout_sec: _Optional[int] = ..., retryCount: _Optional[int] = ...) -> None: ... + +class HiveQueryCollection(_message.Message): + __slots__ = ["queries"] + QUERIES_FIELD_NUMBER: _ClassVar[int] + queries: _containers.RepeatedCompositeFieldContainer[HiveQuery] + def __init__(self, queries: _Optional[_Iterable[_Union[HiveQuery, _Mapping]]] = ...) -> None: ... + +class QuboleHiveJob(_message.Message): + __slots__ = ["cluster_label", "query_collection", "tags", "query"] + CLUSTER_LABEL_FIELD_NUMBER: _ClassVar[int] + QUERY_COLLECTION_FIELD_NUMBER: _ClassVar[int] + TAGS_FIELD_NUMBER: _ClassVar[int] + QUERY_FIELD_NUMBER: _ClassVar[int] + cluster_label: str + query_collection: HiveQueryCollection + tags: _containers.RepeatedScalarFieldContainer[str] + query: HiveQuery + def __init__(self, cluster_label: _Optional[str] = ..., query_collection: _Optional[_Union[HiveQueryCollection, _Mapping]] = ..., tags: _Optional[_Iterable[str]] = ..., query: _Optional[_Union[HiveQuery, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/qubole_pb2_grpc.py b/build/lib/flyteidl/plugins/qubole_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/qubole_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/ray_pb2.py b/build/lib/flyteidl/plugins/ray_pb2.py new file mode 100644 index 000000000..65fbc0352 --- /dev/null +++ b/build/lib/flyteidl/plugins/ray_pb2.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/ray.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lyteidl/plugins/ray.proto\x12\x10\x66lyteidl.plugins\"h\n\x06RayJob\x12=\n\x0bray_cluster\x18\x01 \x01(\x0b\x32\x1c.flyteidl.plugins.RayClusterR\nrayCluster\x12\x1f\n\x0bruntime_env\x18\x02 \x01(\tR\nruntimeEnv\"\xa4\x01\n\nRayCluster\x12G\n\x0fhead_group_spec\x18\x01 \x01(\x0b\x32\x1f.flyteidl.plugins.HeadGroupSpecR\rheadGroupSpec\x12M\n\x11worker_group_spec\x18\x02 \x03(\x0b\x32!.flyteidl.plugins.WorkerGroupSpecR\x0fworkerGroupSpec\"\xb1\x01\n\rHeadGroupSpec\x12]\n\x10ray_start_params\x18\x01 \x03(\x0b\x32\x33.flyteidl.plugins.HeadGroupSpec.RayStartParamsEntryR\x0erayStartParams\x1a\x41\n\x13RayStartParamsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xb6\x02\n\x0fWorkerGroupSpec\x12\x1d\n\ngroup_name\x18\x01 \x01(\tR\tgroupName\x12\x1a\n\x08replicas\x18\x02 \x01(\x05R\x08replicas\x12!\n\x0cmin_replicas\x18\x03 \x01(\x05R\x0bminReplicas\x12!\n\x0cmax_replicas\x18\x04 \x01(\x05R\x0bmaxReplicas\x12_\n\x10ray_start_params\x18\x05 \x03(\x0b\x32\x35.flyteidl.plugins.WorkerGroupSpec.RayStartParamsEntryR\x0erayStartParams\x1a\x41\n\x13RayStartParamsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\xba\x01\n\x14\x63om.flyteidl.pluginsB\x08RayProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PX\xaa\x02\x10\x46lyteidl.Plugins\xca\x02\x10\x46lyteidl\\Plugins\xe2\x02\x1c\x46lyteidl\\Plugins\\GPBMetadata\xea\x02\x11\x46lyteidl::Pluginsb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.ray_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.pluginsB\010RayProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPX\252\002\020Flyteidl.Plugins\312\002\020Flyteidl\\Plugins\342\002\034Flyteidl\\Plugins\\GPBMetadata\352\002\021Flyteidl::Plugins' + _HEADGROUPSPEC_RAYSTARTPARAMSENTRY._options = None + _HEADGROUPSPEC_RAYSTARTPARAMSENTRY._serialized_options = b'8\001' + _WORKERGROUPSPEC_RAYSTARTPARAMSENTRY._options = None + _WORKERGROUPSPEC_RAYSTARTPARAMSENTRY._serialized_options = b'8\001' + _globals['_RAYJOB']._serialized_start=48 + _globals['_RAYJOB']._serialized_end=152 + _globals['_RAYCLUSTER']._serialized_start=155 + _globals['_RAYCLUSTER']._serialized_end=319 + _globals['_HEADGROUPSPEC']._serialized_start=322 + _globals['_HEADGROUPSPEC']._serialized_end=499 + _globals['_HEADGROUPSPEC_RAYSTARTPARAMSENTRY']._serialized_start=434 + _globals['_HEADGROUPSPEC_RAYSTARTPARAMSENTRY']._serialized_end=499 + _globals['_WORKERGROUPSPEC']._serialized_start=502 + _globals['_WORKERGROUPSPEC']._serialized_end=812 + _globals['_WORKERGROUPSPEC_RAYSTARTPARAMSENTRY']._serialized_start=434 + _globals['_WORKERGROUPSPEC_RAYSTARTPARAMSENTRY']._serialized_end=499 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/ray_pb2.pyi b/build/lib/flyteidl/plugins/ray_pb2.pyi new file mode 100644 index 000000000..16b67e478 --- /dev/null +++ b/build/lib/flyteidl/plugins/ray_pb2.pyi @@ -0,0 +1,56 @@ +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class RayJob(_message.Message): + __slots__ = ["ray_cluster", "runtime_env"] + RAY_CLUSTER_FIELD_NUMBER: _ClassVar[int] + RUNTIME_ENV_FIELD_NUMBER: _ClassVar[int] + ray_cluster: RayCluster + runtime_env: str + def __init__(self, ray_cluster: _Optional[_Union[RayCluster, _Mapping]] = ..., runtime_env: _Optional[str] = ...) -> None: ... + +class RayCluster(_message.Message): + __slots__ = ["head_group_spec", "worker_group_spec"] + HEAD_GROUP_SPEC_FIELD_NUMBER: _ClassVar[int] + WORKER_GROUP_SPEC_FIELD_NUMBER: _ClassVar[int] + head_group_spec: HeadGroupSpec + worker_group_spec: _containers.RepeatedCompositeFieldContainer[WorkerGroupSpec] + def __init__(self, head_group_spec: _Optional[_Union[HeadGroupSpec, _Mapping]] = ..., worker_group_spec: _Optional[_Iterable[_Union[WorkerGroupSpec, _Mapping]]] = ...) -> None: ... + +class HeadGroupSpec(_message.Message): + __slots__ = ["ray_start_params"] + class RayStartParamsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + RAY_START_PARAMS_FIELD_NUMBER: _ClassVar[int] + ray_start_params: _containers.ScalarMap[str, str] + def __init__(self, ray_start_params: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class WorkerGroupSpec(_message.Message): + __slots__ = ["group_name", "replicas", "min_replicas", "max_replicas", "ray_start_params"] + class RayStartParamsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + GROUP_NAME_FIELD_NUMBER: _ClassVar[int] + REPLICAS_FIELD_NUMBER: _ClassVar[int] + MIN_REPLICAS_FIELD_NUMBER: _ClassVar[int] + MAX_REPLICAS_FIELD_NUMBER: _ClassVar[int] + RAY_START_PARAMS_FIELD_NUMBER: _ClassVar[int] + group_name: str + replicas: int + min_replicas: int + max_replicas: int + ray_start_params: _containers.ScalarMap[str, str] + def __init__(self, group_name: _Optional[str] = ..., replicas: _Optional[int] = ..., min_replicas: _Optional[int] = ..., max_replicas: _Optional[int] = ..., ray_start_params: _Optional[_Mapping[str, str]] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/ray_pb2_grpc.py b/build/lib/flyteidl/plugins/ray_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/ray_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/sagemaker/__init__.py b/build/lib/flyteidl/plugins/sagemaker/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.py b/build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.py new file mode 100644 index 000000000..a810df5cc --- /dev/null +++ b/build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.plugins.sagemaker import parameter_ranges_pb2 as flyteidl_dot_plugins_dot_sagemaker_dot_parameter__ranges__pb2 +from flyteidl.plugins.sagemaker import training_job_pb2 as flyteidl_dot_plugins_dot_sagemaker_dot_training__job__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n:flyteidl/plugins/sagemaker/hyperparameter_tuning_job.proto\x12\x1a\x66lyteidl.plugins.sagemaker\x1a\x31\x66lyteidl/plugins/sagemaker/parameter_ranges.proto\x1a-flyteidl/plugins/sagemaker/training_job.proto\"\xe0\x01\n\x17HyperparameterTuningJob\x12J\n\x0ctraining_job\x18\x01 \x01(\x0b\x32\'.flyteidl.plugins.sagemaker.TrainingJobR\x0btrainingJob\x12<\n\x1bmax_number_of_training_jobs\x18\x02 \x01(\x03R\x17maxNumberOfTrainingJobs\x12;\n\x1amax_parallel_training_jobs\x18\x03 \x01(\x03R\x17maxParallelTrainingJobs\"H\n!HyperparameterTuningObjectiveType\"#\n\x05Value\x12\x0c\n\x08MINIMIZE\x10\x00\x12\x0c\n\x08MAXIMIZE\x10\x01\"\xac\x01\n\x1dHyperparameterTuningObjective\x12j\n\x0eobjective_type\x18\x01 \x01(\x0e\x32\x43.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveType.ValueR\robjectiveType\x12\x1f\n\x0bmetric_name\x18\x02 \x01(\tR\nmetricName\"A\n\x1cHyperparameterTuningStrategy\"!\n\x05Value\x12\x0c\n\x08\x42\x41YESIAN\x10\x00\x12\n\n\x06RANDOM\x10\x01\":\n\x1cTrainingJobEarlyStoppingType\"\x1a\n\x05Value\x12\x07\n\x03OFF\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\"\xd9\x03\n\x1dHyperparameterTuningJobConfig\x12`\n\x15hyperparameter_ranges\x18\x01 \x01(\x0b\x32+.flyteidl.plugins.sagemaker.ParameterRangesR\x14hyperparameterRanges\x12g\n\x0ftuning_strategy\x18\x02 \x01(\x0e\x32>.flyteidl.plugins.sagemaker.HyperparameterTuningStrategy.ValueR\x0etuningStrategy\x12\x64\n\x10tuning_objective\x18\x03 \x01(\x0b\x32\x39.flyteidl.plugins.sagemaker.HyperparameterTuningObjectiveR\x0ftuningObjective\x12\x86\x01\n training_job_early_stopping_type\x18\x04 \x01(\x0e\x32>.flyteidl.plugins.sagemaker.TrainingJobEarlyStoppingType.ValueR\x1ctrainingJobEarlyStoppingTypeB\x81\x02\n\x1e\x63om.flyteidl.plugins.sagemakerB\x1cHyperparameterTuningJobProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PS\xaa\x02\x1a\x46lyteidl.Plugins.Sagemaker\xca\x02\x1a\x46lyteidl\\Plugins\\Sagemaker\xe2\x02&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\xea\x02\x1c\x46lyteidl::Plugins::Sagemakerb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.sagemaker.hyperparameter_tuning_job_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\036com.flyteidl.plugins.sagemakerB\034HyperparameterTuningJobProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPS\252\002\032Flyteidl.Plugins.Sagemaker\312\002\032Flyteidl\\Plugins\\Sagemaker\342\002&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\352\002\034Flyteidl::Plugins::Sagemaker' + _globals['_HYPERPARAMETERTUNINGJOB']._serialized_start=189 + _globals['_HYPERPARAMETERTUNINGJOB']._serialized_end=413 + _globals['_HYPERPARAMETERTUNINGOBJECTIVETYPE']._serialized_start=415 + _globals['_HYPERPARAMETERTUNINGOBJECTIVETYPE']._serialized_end=487 + _globals['_HYPERPARAMETERTUNINGOBJECTIVETYPE_VALUE']._serialized_start=452 + _globals['_HYPERPARAMETERTUNINGOBJECTIVETYPE_VALUE']._serialized_end=487 + _globals['_HYPERPARAMETERTUNINGOBJECTIVE']._serialized_start=490 + _globals['_HYPERPARAMETERTUNINGOBJECTIVE']._serialized_end=662 + _globals['_HYPERPARAMETERTUNINGSTRATEGY']._serialized_start=664 + _globals['_HYPERPARAMETERTUNINGSTRATEGY']._serialized_end=729 + _globals['_HYPERPARAMETERTUNINGSTRATEGY_VALUE']._serialized_start=696 + _globals['_HYPERPARAMETERTUNINGSTRATEGY_VALUE']._serialized_end=729 + _globals['_TRAININGJOBEARLYSTOPPINGTYPE']._serialized_start=731 + _globals['_TRAININGJOBEARLYSTOPPINGTYPE']._serialized_end=789 + _globals['_TRAININGJOBEARLYSTOPPINGTYPE_VALUE']._serialized_start=763 + _globals['_TRAININGJOBEARLYSTOPPINGTYPE_VALUE']._serialized_end=789 + _globals['_HYPERPARAMETERTUNINGJOBCONFIG']._serialized_start=792 + _globals['_HYPERPARAMETERTUNINGJOBCONFIG']._serialized_end=1265 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.pyi b/build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.pyi new file mode 100644 index 000000000..dd17ea4d9 --- /dev/null +++ b/build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2.pyi @@ -0,0 +1,68 @@ +from flyteidl.plugins.sagemaker import parameter_ranges_pb2 as _parameter_ranges_pb2 +from flyteidl.plugins.sagemaker import training_job_pb2 as _training_job_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 +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class HyperparameterTuningJob(_message.Message): + __slots__ = ["training_job", "max_number_of_training_jobs", "max_parallel_training_jobs"] + TRAINING_JOB_FIELD_NUMBER: _ClassVar[int] + MAX_NUMBER_OF_TRAINING_JOBS_FIELD_NUMBER: _ClassVar[int] + MAX_PARALLEL_TRAINING_JOBS_FIELD_NUMBER: _ClassVar[int] + training_job: _training_job_pb2.TrainingJob + max_number_of_training_jobs: int + max_parallel_training_jobs: int + def __init__(self, training_job: _Optional[_Union[_training_job_pb2.TrainingJob, _Mapping]] = ..., max_number_of_training_jobs: _Optional[int] = ..., max_parallel_training_jobs: _Optional[int] = ...) -> None: ... + +class HyperparameterTuningObjectiveType(_message.Message): + __slots__ = [] + class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MINIMIZE: _ClassVar[HyperparameterTuningObjectiveType.Value] + MAXIMIZE: _ClassVar[HyperparameterTuningObjectiveType.Value] + MINIMIZE: HyperparameterTuningObjectiveType.Value + MAXIMIZE: HyperparameterTuningObjectiveType.Value + def __init__(self) -> None: ... + +class HyperparameterTuningObjective(_message.Message): + __slots__ = ["objective_type", "metric_name"] + OBJECTIVE_TYPE_FIELD_NUMBER: _ClassVar[int] + METRIC_NAME_FIELD_NUMBER: _ClassVar[int] + objective_type: HyperparameterTuningObjectiveType.Value + metric_name: str + def __init__(self, objective_type: _Optional[_Union[HyperparameterTuningObjectiveType.Value, str]] = ..., metric_name: _Optional[str] = ...) -> None: ... + +class HyperparameterTuningStrategy(_message.Message): + __slots__ = [] + class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + BAYESIAN: _ClassVar[HyperparameterTuningStrategy.Value] + RANDOM: _ClassVar[HyperparameterTuningStrategy.Value] + BAYESIAN: HyperparameterTuningStrategy.Value + RANDOM: HyperparameterTuningStrategy.Value + def __init__(self) -> None: ... + +class TrainingJobEarlyStoppingType(_message.Message): + __slots__ = [] + class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + OFF: _ClassVar[TrainingJobEarlyStoppingType.Value] + AUTO: _ClassVar[TrainingJobEarlyStoppingType.Value] + OFF: TrainingJobEarlyStoppingType.Value + AUTO: TrainingJobEarlyStoppingType.Value + def __init__(self) -> None: ... + +class HyperparameterTuningJobConfig(_message.Message): + __slots__ = ["hyperparameter_ranges", "tuning_strategy", "tuning_objective", "training_job_early_stopping_type"] + HYPERPARAMETER_RANGES_FIELD_NUMBER: _ClassVar[int] + TUNING_STRATEGY_FIELD_NUMBER: _ClassVar[int] + TUNING_OBJECTIVE_FIELD_NUMBER: _ClassVar[int] + TRAINING_JOB_EARLY_STOPPING_TYPE_FIELD_NUMBER: _ClassVar[int] + hyperparameter_ranges: _parameter_ranges_pb2.ParameterRanges + tuning_strategy: HyperparameterTuningStrategy.Value + tuning_objective: HyperparameterTuningObjective + training_job_early_stopping_type: TrainingJobEarlyStoppingType.Value + def __init__(self, hyperparameter_ranges: _Optional[_Union[_parameter_ranges_pb2.ParameterRanges, _Mapping]] = ..., tuning_strategy: _Optional[_Union[HyperparameterTuningStrategy.Value, str]] = ..., tuning_objective: _Optional[_Union[HyperparameterTuningObjective, _Mapping]] = ..., training_job_early_stopping_type: _Optional[_Union[TrainingJobEarlyStoppingType.Value, str]] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2_grpc.py b/build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/sagemaker/hyperparameter_tuning_job_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2.py b/build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2.py new file mode 100644 index 000000000..7f19467e8 --- /dev/null +++ b/build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/sagemaker/parameter_ranges.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n1flyteidl/plugins/sagemaker/parameter_ranges.proto\x12\x1a\x66lyteidl.plugins.sagemaker\"c\n\x19HyperparameterScalingType\"F\n\x05Value\x12\x08\n\x04\x41UTO\x10\x00\x12\n\n\x06LINEAR\x10\x01\x12\x0f\n\x0bLOGARITHMIC\x10\x02\x12\x16\n\x12REVERSELOGARITHMIC\x10\x03\"\xb4\x01\n\x18\x43ontinuousParameterRange\x12\x1b\n\tmax_value\x18\x01 \x01(\x01R\x08maxValue\x12\x1b\n\tmin_value\x18\x02 \x01(\x01R\x08minValue\x12^\n\x0cscaling_type\x18\x03 \x01(\x0e\x32;.flyteidl.plugins.sagemaker.HyperparameterScalingType.ValueR\x0bscalingType\"\xb1\x01\n\x15IntegerParameterRange\x12\x1b\n\tmax_value\x18\x01 \x01(\x03R\x08maxValue\x12\x1b\n\tmin_value\x18\x02 \x01(\x03R\x08minValue\x12^\n\x0cscaling_type\x18\x03 \x01(\x0e\x32;.flyteidl.plugins.sagemaker.HyperparameterScalingType.ValueR\x0bscalingType\"3\n\x19\x43\x61tegoricalParameterRange\x12\x16\n\x06values\x18\x01 \x03(\tR\x06values\"\x89\x03\n\x13ParameterRangeOneOf\x12t\n\x1a\x63ontinuous_parameter_range\x18\x01 \x01(\x0b\x32\x34.flyteidl.plugins.sagemaker.ContinuousParameterRangeH\x00R\x18\x63ontinuousParameterRange\x12k\n\x17integer_parameter_range\x18\x02 \x01(\x0b\x32\x31.flyteidl.plugins.sagemaker.IntegerParameterRangeH\x00R\x15integerParameterRange\x12w\n\x1b\x63\x61tegorical_parameter_range\x18\x03 \x01(\x0b\x32\x35.flyteidl.plugins.sagemaker.CategoricalParameterRangeH\x00R\x19\x63\x61tegoricalParameterRangeB\x16\n\x14parameter_range_type\"\xfc\x01\n\x0fParameterRanges\x12r\n\x13parameter_range_map\x18\x01 \x03(\x0b\x32\x42.flyteidl.plugins.sagemaker.ParameterRanges.ParameterRangeMapEntryR\x11parameterRangeMap\x1au\n\x16ParameterRangeMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32/.flyteidl.plugins.sagemaker.ParameterRangeOneOfR\x05value:\x02\x38\x01\x42\xf9\x01\n\x1e\x63om.flyteidl.plugins.sagemakerB\x14ParameterRangesProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PS\xaa\x02\x1a\x46lyteidl.Plugins.Sagemaker\xca\x02\x1a\x46lyteidl\\Plugins\\Sagemaker\xe2\x02&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\xea\x02\x1c\x46lyteidl::Plugins::Sagemakerb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.sagemaker.parameter_ranges_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\036com.flyteidl.plugins.sagemakerB\024ParameterRangesProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPS\252\002\032Flyteidl.Plugins.Sagemaker\312\002\032Flyteidl\\Plugins\\Sagemaker\342\002&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\352\002\034Flyteidl::Plugins::Sagemaker' + _PARAMETERRANGES_PARAMETERRANGEMAPENTRY._options = None + _PARAMETERRANGES_PARAMETERRANGEMAPENTRY._serialized_options = b'8\001' + _globals['_HYPERPARAMETERSCALINGTYPE']._serialized_start=81 + _globals['_HYPERPARAMETERSCALINGTYPE']._serialized_end=180 + _globals['_HYPERPARAMETERSCALINGTYPE_VALUE']._serialized_start=110 + _globals['_HYPERPARAMETERSCALINGTYPE_VALUE']._serialized_end=180 + _globals['_CONTINUOUSPARAMETERRANGE']._serialized_start=183 + _globals['_CONTINUOUSPARAMETERRANGE']._serialized_end=363 + _globals['_INTEGERPARAMETERRANGE']._serialized_start=366 + _globals['_INTEGERPARAMETERRANGE']._serialized_end=543 + _globals['_CATEGORICALPARAMETERRANGE']._serialized_start=545 + _globals['_CATEGORICALPARAMETERRANGE']._serialized_end=596 + _globals['_PARAMETERRANGEONEOF']._serialized_start=599 + _globals['_PARAMETERRANGEONEOF']._serialized_end=992 + _globals['_PARAMETERRANGES']._serialized_start=995 + _globals['_PARAMETERRANGES']._serialized_end=1247 + _globals['_PARAMETERRANGES_PARAMETERRANGEMAPENTRY']._serialized_start=1130 + _globals['_PARAMETERRANGES_PARAMETERRANGEMAPENTRY']._serialized_end=1247 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2.pyi b/build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2.pyi new file mode 100644 index 000000000..d773c628e --- /dev/null +++ b/build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2.pyi @@ -0,0 +1,70 @@ +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class HyperparameterScalingType(_message.Message): + __slots__ = [] + class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + AUTO: _ClassVar[HyperparameterScalingType.Value] + LINEAR: _ClassVar[HyperparameterScalingType.Value] + LOGARITHMIC: _ClassVar[HyperparameterScalingType.Value] + REVERSELOGARITHMIC: _ClassVar[HyperparameterScalingType.Value] + AUTO: HyperparameterScalingType.Value + LINEAR: HyperparameterScalingType.Value + LOGARITHMIC: HyperparameterScalingType.Value + REVERSELOGARITHMIC: HyperparameterScalingType.Value + def __init__(self) -> None: ... + +class ContinuousParameterRange(_message.Message): + __slots__ = ["max_value", "min_value", "scaling_type"] + MAX_VALUE_FIELD_NUMBER: _ClassVar[int] + MIN_VALUE_FIELD_NUMBER: _ClassVar[int] + SCALING_TYPE_FIELD_NUMBER: _ClassVar[int] + max_value: float + min_value: float + scaling_type: HyperparameterScalingType.Value + def __init__(self, max_value: _Optional[float] = ..., min_value: _Optional[float] = ..., scaling_type: _Optional[_Union[HyperparameterScalingType.Value, str]] = ...) -> None: ... + +class IntegerParameterRange(_message.Message): + __slots__ = ["max_value", "min_value", "scaling_type"] + MAX_VALUE_FIELD_NUMBER: _ClassVar[int] + MIN_VALUE_FIELD_NUMBER: _ClassVar[int] + SCALING_TYPE_FIELD_NUMBER: _ClassVar[int] + max_value: int + min_value: int + scaling_type: HyperparameterScalingType.Value + def __init__(self, max_value: _Optional[int] = ..., min_value: _Optional[int] = ..., scaling_type: _Optional[_Union[HyperparameterScalingType.Value, str]] = ...) -> None: ... + +class CategoricalParameterRange(_message.Message): + __slots__ = ["values"] + VALUES_FIELD_NUMBER: _ClassVar[int] + values: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, values: _Optional[_Iterable[str]] = ...) -> None: ... + +class ParameterRangeOneOf(_message.Message): + __slots__ = ["continuous_parameter_range", "integer_parameter_range", "categorical_parameter_range"] + CONTINUOUS_PARAMETER_RANGE_FIELD_NUMBER: _ClassVar[int] + INTEGER_PARAMETER_RANGE_FIELD_NUMBER: _ClassVar[int] + CATEGORICAL_PARAMETER_RANGE_FIELD_NUMBER: _ClassVar[int] + continuous_parameter_range: ContinuousParameterRange + integer_parameter_range: IntegerParameterRange + categorical_parameter_range: CategoricalParameterRange + def __init__(self, continuous_parameter_range: _Optional[_Union[ContinuousParameterRange, _Mapping]] = ..., integer_parameter_range: _Optional[_Union[IntegerParameterRange, _Mapping]] = ..., categorical_parameter_range: _Optional[_Union[CategoricalParameterRange, _Mapping]] = ...) -> None: ... + +class ParameterRanges(_message.Message): + __slots__ = ["parameter_range_map"] + class ParameterRangeMapEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: ParameterRangeOneOf + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[ParameterRangeOneOf, _Mapping]] = ...) -> None: ... + PARAMETER_RANGE_MAP_FIELD_NUMBER: _ClassVar[int] + parameter_range_map: _containers.MessageMap[str, ParameterRangeOneOf] + def __init__(self, parameter_range_map: _Optional[_Mapping[str, ParameterRangeOneOf]] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2_grpc.py b/build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/sagemaker/parameter_ranges_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/sagemaker/training_job_pb2.py b/build/lib/flyteidl/plugins/sagemaker/training_job_pb2.py new file mode 100644 index 000000000..b44deb43c --- /dev/null +++ b/build/lib/flyteidl/plugins/sagemaker/training_job_pb2.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/sagemaker/training_job.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-flyteidl/plugins/sagemaker/training_job.proto\x12\x1a\x66lyteidl.plugins.sagemaker\x1a\x1egoogle/protobuf/duration.proto\"(\n\tInputMode\"\x1b\n\x05Value\x12\x08\n\x04\x46ILE\x10\x00\x12\x08\n\x04PIPE\x10\x01\"1\n\rAlgorithmName\" \n\x05Value\x12\n\n\x06\x43USTOM\x10\x00\x12\x0b\n\x07XGBOOST\x10\x01\")\n\x10InputContentType\"\x15\n\x05Value\x12\x0c\n\x08TEXT_CSV\x10\x00\"<\n\x10MetricDefinition\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n\x05regex\x18\x02 \x01(\tR\x05regex\"\xa8\x03\n\x16\x41lgorithmSpecification\x12J\n\ninput_mode\x18\x01 \x01(\x0e\x32+.flyteidl.plugins.sagemaker.InputMode.ValueR\tinputMode\x12V\n\x0e\x61lgorithm_name\x18\x02 \x01(\x0e\x32/.flyteidl.plugins.sagemaker.AlgorithmName.ValueR\ralgorithmName\x12+\n\x11\x61lgorithm_version\x18\x03 \x01(\tR\x10\x61lgorithmVersion\x12[\n\x12metric_definitions\x18\x04 \x03(\x0b\x32,.flyteidl.plugins.sagemaker.MetricDefinitionR\x11metricDefinitions\x12`\n\x12input_content_type\x18\x05 \x01(\x0e\x32\x32.flyteidl.plugins.sagemaker.InputContentType.ValueR\x10inputContentType\"8\n\x13\x44istributedProtocol\"!\n\x05Value\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x07\n\x03MPI\x10\x01\"\xfc\x01\n\x19TrainingJobResourceConfig\x12%\n\x0einstance_count\x18\x01 \x01(\x03R\rinstanceCount\x12#\n\rinstance_type\x18\x02 \x01(\tR\x0cinstanceType\x12)\n\x11volume_size_in_gb\x18\x03 \x01(\x03R\x0evolumeSizeInGb\x12h\n\x14\x64istributed_protocol\x18\x04 \x01(\x0e\x32\x35.flyteidl.plugins.sagemaker.DistributedProtocol.ValueR\x13\x64istributedProtocol\"\xf2\x01\n\x0bTrainingJob\x12k\n\x17\x61lgorithm_specification\x18\x01 \x01(\x0b\x32\x32.flyteidl.plugins.sagemaker.AlgorithmSpecificationR\x16\x61lgorithmSpecification\x12v\n\x1ctraining_job_resource_config\x18\x02 \x01(\x0b\x32\x35.flyteidl.plugins.sagemaker.TrainingJobResourceConfigR\x19trainingJobResourceConfigB\xf5\x01\n\x1e\x63om.flyteidl.plugins.sagemakerB\x10TrainingJobProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PS\xaa\x02\x1a\x46lyteidl.Plugins.Sagemaker\xca\x02\x1a\x46lyteidl\\Plugins\\Sagemaker\xe2\x02&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\xea\x02\x1c\x46lyteidl::Plugins::Sagemakerb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.sagemaker.training_job_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\036com.flyteidl.plugins.sagemakerB\020TrainingJobProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPS\252\002\032Flyteidl.Plugins.Sagemaker\312\002\032Flyteidl\\Plugins\\Sagemaker\342\002&Flyteidl\\Plugins\\Sagemaker\\GPBMetadata\352\002\034Flyteidl::Plugins::Sagemaker' + _globals['_INPUTMODE']._serialized_start=109 + _globals['_INPUTMODE']._serialized_end=149 + _globals['_INPUTMODE_VALUE']._serialized_start=122 + _globals['_INPUTMODE_VALUE']._serialized_end=149 + _globals['_ALGORITHMNAME']._serialized_start=151 + _globals['_ALGORITHMNAME']._serialized_end=200 + _globals['_ALGORITHMNAME_VALUE']._serialized_start=168 + _globals['_ALGORITHMNAME_VALUE']._serialized_end=200 + _globals['_INPUTCONTENTTYPE']._serialized_start=202 + _globals['_INPUTCONTENTTYPE']._serialized_end=243 + _globals['_INPUTCONTENTTYPE_VALUE']._serialized_start=222 + _globals['_INPUTCONTENTTYPE_VALUE']._serialized_end=243 + _globals['_METRICDEFINITION']._serialized_start=245 + _globals['_METRICDEFINITION']._serialized_end=305 + _globals['_ALGORITHMSPECIFICATION']._serialized_start=308 + _globals['_ALGORITHMSPECIFICATION']._serialized_end=732 + _globals['_DISTRIBUTEDPROTOCOL']._serialized_start=734 + _globals['_DISTRIBUTEDPROTOCOL']._serialized_end=790 + _globals['_DISTRIBUTEDPROTOCOL_VALUE']._serialized_start=757 + _globals['_DISTRIBUTEDPROTOCOL_VALUE']._serialized_end=790 + _globals['_TRAININGJOBRESOURCECONFIG']._serialized_start=793 + _globals['_TRAININGJOBRESOURCECONFIG']._serialized_end=1045 + _globals['_TRAININGJOB']._serialized_start=1048 + _globals['_TRAININGJOB']._serialized_end=1290 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/sagemaker/training_job_pb2.pyi b/build/lib/flyteidl/plugins/sagemaker/training_job_pb2.pyi new file mode 100644 index 000000000..38a4bf3ad --- /dev/null +++ b/build/lib/flyteidl/plugins/sagemaker/training_job_pb2.pyi @@ -0,0 +1,88 @@ +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class InputMode(_message.Message): + __slots__ = [] + class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + FILE: _ClassVar[InputMode.Value] + PIPE: _ClassVar[InputMode.Value] + FILE: InputMode.Value + PIPE: InputMode.Value + def __init__(self) -> None: ... + +class AlgorithmName(_message.Message): + __slots__ = [] + class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + CUSTOM: _ClassVar[AlgorithmName.Value] + XGBOOST: _ClassVar[AlgorithmName.Value] + CUSTOM: AlgorithmName.Value + XGBOOST: AlgorithmName.Value + def __init__(self) -> None: ... + +class InputContentType(_message.Message): + __slots__ = [] + class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TEXT_CSV: _ClassVar[InputContentType.Value] + TEXT_CSV: InputContentType.Value + def __init__(self) -> None: ... + +class MetricDefinition(_message.Message): + __slots__ = ["name", "regex"] + NAME_FIELD_NUMBER: _ClassVar[int] + REGEX_FIELD_NUMBER: _ClassVar[int] + name: str + regex: str + def __init__(self, name: _Optional[str] = ..., regex: _Optional[str] = ...) -> None: ... + +class AlgorithmSpecification(_message.Message): + __slots__ = ["input_mode", "algorithm_name", "algorithm_version", "metric_definitions", "input_content_type"] + INPUT_MODE_FIELD_NUMBER: _ClassVar[int] + ALGORITHM_NAME_FIELD_NUMBER: _ClassVar[int] + ALGORITHM_VERSION_FIELD_NUMBER: _ClassVar[int] + METRIC_DEFINITIONS_FIELD_NUMBER: _ClassVar[int] + INPUT_CONTENT_TYPE_FIELD_NUMBER: _ClassVar[int] + input_mode: InputMode.Value + algorithm_name: AlgorithmName.Value + algorithm_version: str + metric_definitions: _containers.RepeatedCompositeFieldContainer[MetricDefinition] + input_content_type: InputContentType.Value + def __init__(self, input_mode: _Optional[_Union[InputMode.Value, str]] = ..., algorithm_name: _Optional[_Union[AlgorithmName.Value, str]] = ..., algorithm_version: _Optional[str] = ..., metric_definitions: _Optional[_Iterable[_Union[MetricDefinition, _Mapping]]] = ..., input_content_type: _Optional[_Union[InputContentType.Value, str]] = ...) -> None: ... + +class DistributedProtocol(_message.Message): + __slots__ = [] + class Value(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNSPECIFIED: _ClassVar[DistributedProtocol.Value] + MPI: _ClassVar[DistributedProtocol.Value] + UNSPECIFIED: DistributedProtocol.Value + MPI: DistributedProtocol.Value + def __init__(self) -> None: ... + +class TrainingJobResourceConfig(_message.Message): + __slots__ = ["instance_count", "instance_type", "volume_size_in_gb", "distributed_protocol"] + INSTANCE_COUNT_FIELD_NUMBER: _ClassVar[int] + INSTANCE_TYPE_FIELD_NUMBER: _ClassVar[int] + VOLUME_SIZE_IN_GB_FIELD_NUMBER: _ClassVar[int] + DISTRIBUTED_PROTOCOL_FIELD_NUMBER: _ClassVar[int] + instance_count: int + instance_type: str + volume_size_in_gb: int + distributed_protocol: DistributedProtocol.Value + def __init__(self, instance_count: _Optional[int] = ..., instance_type: _Optional[str] = ..., volume_size_in_gb: _Optional[int] = ..., distributed_protocol: _Optional[_Union[DistributedProtocol.Value, str]] = ...) -> None: ... + +class TrainingJob(_message.Message): + __slots__ = ["algorithm_specification", "training_job_resource_config"] + ALGORITHM_SPECIFICATION_FIELD_NUMBER: _ClassVar[int] + TRAINING_JOB_RESOURCE_CONFIG_FIELD_NUMBER: _ClassVar[int] + algorithm_specification: AlgorithmSpecification + training_job_resource_config: TrainingJobResourceConfig + def __init__(self, algorithm_specification: _Optional[_Union[AlgorithmSpecification, _Mapping]] = ..., training_job_resource_config: _Optional[_Union[TrainingJobResourceConfig, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/sagemaker/training_job_pb2_grpc.py b/build/lib/flyteidl/plugins/sagemaker/training_job_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/sagemaker/training_job_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/spark_pb2.py b/build/lib/flyteidl/plugins/spark_pb2.py new file mode 100644 index 000000000..dc319cf62 --- /dev/null +++ b/build/lib/flyteidl/plugins/spark_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/spark.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/plugins/spark.proto\x12\x10\x66lyteidl.plugins\x1a\x1cgoogle/protobuf/struct.proto\"B\n\x10SparkApplication\".\n\x04Type\x12\n\n\x06PYTHON\x10\x00\x12\x08\n\x04JAVA\x10\x01\x12\t\n\x05SCALA\x10\x02\x12\x05\n\x01R\x10\x03\"\xfe\x04\n\x08SparkJob\x12Q\n\x0f\x61pplicationType\x18\x01 \x01(\x0e\x32\'.flyteidl.plugins.SparkApplication.TypeR\x0f\x61pplicationType\x12\x30\n\x13mainApplicationFile\x18\x02 \x01(\tR\x13mainApplicationFile\x12\x1c\n\tmainClass\x18\x03 \x01(\tR\tmainClass\x12G\n\tsparkConf\x18\x04 \x03(\x0b\x32).flyteidl.plugins.SparkJob.SparkConfEntryR\tsparkConf\x12J\n\nhadoopConf\x18\x05 \x03(\x0b\x32*.flyteidl.plugins.SparkJob.HadoopConfEntryR\nhadoopConf\x12\"\n\x0c\x65xecutorPath\x18\x06 \x01(\tR\x0c\x65xecutorPath\x12?\n\x0e\x64\x61tabricksConf\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructR\x0e\x64\x61tabricksConf\x12(\n\x0f\x64\x61tabricksToken\x18\x08 \x01(\tR\x0f\x64\x61tabricksToken\x12.\n\x12\x64\x61tabricksInstance\x18\t \x01(\tR\x12\x64\x61tabricksInstance\x1a<\n\x0eSparkConfEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a=\n\x0fHadoopConfEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\xbc\x01\n\x14\x63om.flyteidl.pluginsB\nSparkProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PX\xaa\x02\x10\x46lyteidl.Plugins\xca\x02\x10\x46lyteidl\\Plugins\xe2\x02\x1c\x46lyteidl\\Plugins\\GPBMetadata\xea\x02\x11\x46lyteidl::Pluginsb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.spark_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.pluginsB\nSparkProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPX\252\002\020Flyteidl.Plugins\312\002\020Flyteidl\\Plugins\342\002\034Flyteidl\\Plugins\\GPBMetadata\352\002\021Flyteidl::Plugins' + _SPARKJOB_SPARKCONFENTRY._options = None + _SPARKJOB_SPARKCONFENTRY._serialized_options = b'8\001' + _SPARKJOB_HADOOPCONFENTRY._options = None + _SPARKJOB_HADOOPCONFENTRY._serialized_options = b'8\001' + _globals['_SPARKAPPLICATION']._serialized_start=80 + _globals['_SPARKAPPLICATION']._serialized_end=146 + _globals['_SPARKAPPLICATION_TYPE']._serialized_start=100 + _globals['_SPARKAPPLICATION_TYPE']._serialized_end=146 + _globals['_SPARKJOB']._serialized_start=149 + _globals['_SPARKJOB']._serialized_end=787 + _globals['_SPARKJOB_SPARKCONFENTRY']._serialized_start=664 + _globals['_SPARKJOB_SPARKCONFENTRY']._serialized_end=724 + _globals['_SPARKJOB_HADOOPCONFENTRY']._serialized_start=726 + _globals['_SPARKJOB_HADOOPCONFENTRY']._serialized_end=787 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/spark_pb2.pyi b/build/lib/flyteidl/plugins/spark_pb2.pyi new file mode 100644 index 000000000..e6b9e4eb6 --- /dev/null +++ b/build/lib/flyteidl/plugins/spark_pb2.pyi @@ -0,0 +1,58 @@ +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class SparkApplication(_message.Message): + __slots__ = [] + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + PYTHON: _ClassVar[SparkApplication.Type] + JAVA: _ClassVar[SparkApplication.Type] + SCALA: _ClassVar[SparkApplication.Type] + R: _ClassVar[SparkApplication.Type] + PYTHON: SparkApplication.Type + JAVA: SparkApplication.Type + SCALA: SparkApplication.Type + R: SparkApplication.Type + def __init__(self) -> None: ... + +class SparkJob(_message.Message): + __slots__ = ["applicationType", "mainApplicationFile", "mainClass", "sparkConf", "hadoopConf", "executorPath", "databricksConf", "databricksToken", "databricksInstance"] + class SparkConfEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + class HadoopConfEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + APPLICATIONTYPE_FIELD_NUMBER: _ClassVar[int] + MAINAPPLICATIONFILE_FIELD_NUMBER: _ClassVar[int] + MAINCLASS_FIELD_NUMBER: _ClassVar[int] + SPARKCONF_FIELD_NUMBER: _ClassVar[int] + HADOOPCONF_FIELD_NUMBER: _ClassVar[int] + EXECUTORPATH_FIELD_NUMBER: _ClassVar[int] + DATABRICKSCONF_FIELD_NUMBER: _ClassVar[int] + DATABRICKSTOKEN_FIELD_NUMBER: _ClassVar[int] + DATABRICKSINSTANCE_FIELD_NUMBER: _ClassVar[int] + applicationType: SparkApplication.Type + mainApplicationFile: str + mainClass: str + sparkConf: _containers.ScalarMap[str, str] + hadoopConf: _containers.ScalarMap[str, str] + executorPath: str + databricksConf: _struct_pb2.Struct + databricksToken: str + databricksInstance: str + def __init__(self, applicationType: _Optional[_Union[SparkApplication.Type, str]] = ..., mainApplicationFile: _Optional[str] = ..., mainClass: _Optional[str] = ..., sparkConf: _Optional[_Mapping[str, str]] = ..., hadoopConf: _Optional[_Mapping[str, str]] = ..., executorPath: _Optional[str] = ..., databricksConf: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., databricksToken: _Optional[str] = ..., databricksInstance: _Optional[str] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/spark_pb2_grpc.py b/build/lib/flyteidl/plugins/spark_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/spark_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/tensorflow_pb2.py b/build/lib/flyteidl/plugins/tensorflow_pb2.py new file mode 100644 index 000000000..1bf42180c --- /dev/null +++ b/build/lib/flyteidl/plugins/tensorflow_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/tensorflow.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!flyteidl/plugins/tensorflow.proto\x12\x10\x66lyteidl.plugins\"\x85\x01\n!DistributedTensorflowTrainingTask\x12\x18\n\x07workers\x18\x01 \x01(\x05R\x07workers\x12\x1f\n\x0bps_replicas\x18\x02 \x01(\x05R\npsReplicas\x12%\n\x0e\x63hief_replicas\x18\x03 \x01(\x05R\rchiefReplicasB\xc1\x01\n\x14\x63om.flyteidl.pluginsB\x0fTensorflowProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PX\xaa\x02\x10\x46lyteidl.Plugins\xca\x02\x10\x46lyteidl\\Plugins\xe2\x02\x1c\x46lyteidl\\Plugins\\GPBMetadata\xea\x02\x11\x46lyteidl::Pluginsb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.tensorflow_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.pluginsB\017TensorflowProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPX\252\002\020Flyteidl.Plugins\312\002\020Flyteidl\\Plugins\342\002\034Flyteidl\\Plugins\\GPBMetadata\352\002\021Flyteidl::Plugins' + _globals['_DISTRIBUTEDTENSORFLOWTRAININGTASK']._serialized_start=56 + _globals['_DISTRIBUTEDTENSORFLOWTRAININGTASK']._serialized_end=189 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/tensorflow_pb2.pyi b/build/lib/flyteidl/plugins/tensorflow_pb2.pyi new file mode 100644 index 000000000..d3dc028af --- /dev/null +++ b/build/lib/flyteidl/plugins/tensorflow_pb2.pyi @@ -0,0 +1,15 @@ +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional + +DESCRIPTOR: _descriptor.FileDescriptor + +class DistributedTensorflowTrainingTask(_message.Message): + __slots__ = ["workers", "ps_replicas", "chief_replicas"] + WORKERS_FIELD_NUMBER: _ClassVar[int] + PS_REPLICAS_FIELD_NUMBER: _ClassVar[int] + CHIEF_REPLICAS_FIELD_NUMBER: _ClassVar[int] + workers: int + ps_replicas: int + chief_replicas: int + def __init__(self, workers: _Optional[int] = ..., ps_replicas: _Optional[int] = ..., chief_replicas: _Optional[int] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/tensorflow_pb2_grpc.py b/build/lib/flyteidl/plugins/tensorflow_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/tensorflow_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/plugins/waitable_pb2.py b/build/lib/flyteidl/plugins/waitable_pb2.py new file mode 100644 index 000000000..7e0a1b1a8 --- /dev/null +++ b/build/lib/flyteidl/plugins/waitable_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/plugins/waitable.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import execution_pb2 as flyteidl_dot_core_dot_execution__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66lyteidl/plugins/waitable.proto\x12\x10\x66lyteidl.plugins\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\"\xb3\x01\n\x08Waitable\x12H\n\nwf_exec_id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x08wfExecId\x12<\n\x05phase\x18\x02 \x01(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x05phase\x12\x1f\n\x0bworkflow_id\x18\x03 \x01(\tR\nworkflowIdB\xbf\x01\n\x14\x63om.flyteidl.pluginsB\rWaitableProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\xa2\x02\x03\x46PX\xaa\x02\x10\x46lyteidl.Plugins\xca\x02\x10\x46lyteidl\\Plugins\xe2\x02\x1c\x46lyteidl\\Plugins\\GPBMetadata\xea\x02\x11\x46lyteidl::Pluginsb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.plugins.waitable_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.pluginsB\rWaitableProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/plugins\242\002\003FPX\252\002\020Flyteidl.Plugins\312\002\020Flyteidl\\Plugins\342\002\034Flyteidl\\Plugins\\GPBMetadata\352\002\021Flyteidl::Plugins' + _globals['_WAITABLE']._serialized_start=117 + _globals['_WAITABLE']._serialized_end=296 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/plugins/waitable_pb2.pyi b/build/lib/flyteidl/plugins/waitable_pb2.pyi new file mode 100644 index 000000000..25db3d143 --- /dev/null +++ b/build/lib/flyteidl/plugins/waitable_pb2.pyi @@ -0,0 +1,17 @@ +from flyteidl.core import execution_pb2 as _execution_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Waitable(_message.Message): + __slots__ = ["wf_exec_id", "phase", "workflow_id"] + WF_EXEC_ID_FIELD_NUMBER: _ClassVar[int] + PHASE_FIELD_NUMBER: _ClassVar[int] + WORKFLOW_ID_FIELD_NUMBER: _ClassVar[int] + wf_exec_id: _identifier_pb2.WorkflowExecutionIdentifier + phase: _execution_pb2.WorkflowExecution.Phase + workflow_id: str + def __init__(self, wf_exec_id: _Optional[_Union[_identifier_pb2.WorkflowExecutionIdentifier, _Mapping]] = ..., phase: _Optional[_Union[_execution_pb2.WorkflowExecution.Phase, str]] = ..., workflow_id: _Optional[str] = ...) -> None: ... diff --git a/build/lib/flyteidl/plugins/waitable_pb2_grpc.py b/build/lib/flyteidl/plugins/waitable_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/build/lib/flyteidl/plugins/waitable_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/build/lib/flyteidl/service/__init__.py b/build/lib/flyteidl/service/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/build/lib/flyteidl/service/admin_pb2.py b/build/lib/flyteidl/service/admin_pb2.py new file mode 100644 index 000000000..25d26599a --- /dev/null +++ b/build/lib/flyteidl/service/admin_pb2.py @@ -0,0 +1,149 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/service/admin.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from flyteidl.admin import project_pb2 as flyteidl_dot_admin_dot_project__pb2 +from flyteidl.admin import project_domain_attributes_pb2 as flyteidl_dot_admin_dot_project__domain__attributes__pb2 +from flyteidl.admin import project_attributes_pb2 as flyteidl_dot_admin_dot_project__attributes__pb2 +from flyteidl.admin import task_pb2 as flyteidl_dot_admin_dot_task__pb2 +from flyteidl.admin import workflow_pb2 as flyteidl_dot_admin_dot_workflow__pb2 +from flyteidl.admin import workflow_attributes_pb2 as flyteidl_dot_admin_dot_workflow__attributes__pb2 +from flyteidl.admin import launch_plan_pb2 as flyteidl_dot_admin_dot_launch__plan__pb2 +from flyteidl.admin import event_pb2 as flyteidl_dot_admin_dot_event__pb2 +from flyteidl.admin import execution_pb2 as flyteidl_dot_admin_dot_execution__pb2 +from flyteidl.admin import matchable_resource_pb2 as flyteidl_dot_admin_dot_matchable__resource__pb2 +from flyteidl.admin import node_execution_pb2 as flyteidl_dot_admin_dot_node__execution__pb2 +from flyteidl.admin import task_execution_pb2 as flyteidl_dot_admin_dot_task__execution__pb2 +from flyteidl.admin import version_pb2 as flyteidl_dot_admin_dot_version__pb2 +from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 +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\xbc\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z7github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.service.admin_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\nAdminProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' + _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['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['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['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['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['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['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['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['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['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['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['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 + _ADMINSERVICE.methods_by_name['RelaunchExecution']._serialized_options = b'\202\323\344\223\002 :\001*\"\033/api/v1/executions/relaunch' + _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['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['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['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['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['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['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['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['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['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['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 + _ADMINSERVICE.methods_by_name['CreateWorkflowEvent']._serialized_options = b'\202\323\344\223\002\035:\001*\"\030/api/v1/events/workflows' + _ADMINSERVICE.methods_by_name['CreateNodeEvent']._options = None + _ADMINSERVICE.methods_by_name['CreateNodeEvent']._serialized_options = b'\202\323\344\223\002\031:\001*\"\024/api/v1/events/nodes' + _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['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['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['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['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['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['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['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['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['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['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['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['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['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['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['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['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['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}' + _globals['_ADMINSERVICE']._serialized_start=609 + _globals['_ADMINSERVICE']._serialized_end=10597 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/service/admin_pb2.pyi b/build/lib/flyteidl/service/admin_pb2.pyi new file mode 100644 index 000000000..a9028cea2 --- /dev/null +++ b/build/lib/flyteidl/service/admin_pb2.pyi @@ -0,0 +1,20 @@ +from google.api import annotations_pb2 as _annotations_pb2 +from flyteidl.admin import project_pb2 as _project_pb2 +from flyteidl.admin import project_domain_attributes_pb2 as _project_domain_attributes_pb2 +from flyteidl.admin import project_attributes_pb2 as _project_attributes_pb2 +from flyteidl.admin import task_pb2 as _task_pb2 +from flyteidl.admin import workflow_pb2 as _workflow_pb2 +from flyteidl.admin import workflow_attributes_pb2 as _workflow_attributes_pb2 +from flyteidl.admin import launch_plan_pb2 as _launch_plan_pb2 +from flyteidl.admin import event_pb2 as _event_pb2 +from flyteidl.admin import execution_pb2 as _execution_pb2 +from flyteidl.admin import matchable_resource_pb2 as _matchable_resource_pb2 +from flyteidl.admin import node_execution_pb2 as _node_execution_pb2 +from flyteidl.admin import task_execution_pb2 as _task_execution_pb2 +from flyteidl.admin import version_pb2 as _version_pb2 +from flyteidl.admin import common_pb2 as _common_pb2 +from flyteidl.admin import description_entity_pb2 as _description_entity_pb2 +from google.protobuf import descriptor as _descriptor +from typing import ClassVar as _ClassVar + +DESCRIPTOR: _descriptor.FileDescriptor diff --git a/build/lib/flyteidl/service/admin_pb2_grpc.py b/build/lib/flyteidl/service/admin_pb2_grpc.py new file mode 100644 index 000000000..2e7bda23f --- /dev/null +++ b/build/lib/flyteidl/service/admin_pb2_grpc.py @@ -0,0 +1,1860 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 +from flyteidl.admin import description_entity_pb2 as flyteidl_dot_admin_dot_description__entity__pb2 +from flyteidl.admin import event_pb2 as flyteidl_dot_admin_dot_event__pb2 +from flyteidl.admin import execution_pb2 as flyteidl_dot_admin_dot_execution__pb2 +from flyteidl.admin import launch_plan_pb2 as flyteidl_dot_admin_dot_launch__plan__pb2 +from flyteidl.admin import matchable_resource_pb2 as flyteidl_dot_admin_dot_matchable__resource__pb2 +from flyteidl.admin import node_execution_pb2 as flyteidl_dot_admin_dot_node__execution__pb2 +from flyteidl.admin import project_attributes_pb2 as flyteidl_dot_admin_dot_project__attributes__pb2 +from flyteidl.admin import project_domain_attributes_pb2 as flyteidl_dot_admin_dot_project__domain__attributes__pb2 +from flyteidl.admin import project_pb2 as flyteidl_dot_admin_dot_project__pb2 +from flyteidl.admin import task_execution_pb2 as flyteidl_dot_admin_dot_task__execution__pb2 +from flyteidl.admin import task_pb2 as flyteidl_dot_admin_dot_task__pb2 +from flyteidl.admin import version_pb2 as flyteidl_dot_admin_dot_version__pb2 +from flyteidl.admin import workflow_attributes_pb2 as flyteidl_dot_admin_dot_workflow__attributes__pb2 +from flyteidl.admin import workflow_pb2 as flyteidl_dot_admin_dot_workflow__pb2 + + +class AdminServiceStub(object): + """The following defines an RPC service that is also served over HTTP via grpc-gateway. + Standard response codes for both are defined here: https://github.com/grpc-ecosystem/grpc-gateway/blob/master/runtime/errors.go + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.CreateTask = channel.unary_unary( + '/flyteidl.service.AdminService/CreateTask', + request_serializer=flyteidl_dot_admin_dot_task__pb2.TaskCreateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_task__pb2.TaskCreateResponse.FromString, + ) + self.GetTask = channel.unary_unary( + '/flyteidl.service.AdminService/GetTask', + request_serializer=flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_task__pb2.Task.FromString, + ) + self.ListTaskIds = channel.unary_unary( + '/flyteidl.service.AdminService/ListTaskIds', + request_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierList.FromString, + ) + self.ListTasks = channel.unary_unary( + '/flyteidl.service.AdminService/ListTasks', + request_serializer=flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_task__pb2.TaskList.FromString, + ) + self.CreateWorkflow = channel.unary_unary( + '/flyteidl.service.AdminService/CreateWorkflow', + request_serializer=flyteidl_dot_admin_dot_workflow__pb2.WorkflowCreateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_workflow__pb2.WorkflowCreateResponse.FromString, + ) + self.GetWorkflow = channel.unary_unary( + '/flyteidl.service.AdminService/GetWorkflow', + request_serializer=flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_workflow__pb2.Workflow.FromString, + ) + self.ListWorkflowIds = channel.unary_unary( + '/flyteidl.service.AdminService/ListWorkflowIds', + request_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierList.FromString, + ) + self.ListWorkflows = channel.unary_unary( + '/flyteidl.service.AdminService/ListWorkflows', + request_serializer=flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_workflow__pb2.WorkflowList.FromString, + ) + self.CreateLaunchPlan = channel.unary_unary( + '/flyteidl.service.AdminService/CreateLaunchPlan', + request_serializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanCreateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanCreateResponse.FromString, + ) + self.GetLaunchPlan = channel.unary_unary( + '/flyteidl.service.AdminService/GetLaunchPlan', + request_serializer=flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlan.FromString, + ) + self.GetActiveLaunchPlan = channel.unary_unary( + '/flyteidl.service.AdminService/GetActiveLaunchPlan', + request_serializer=flyteidl_dot_admin_dot_launch__plan__pb2.ActiveLaunchPlanRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlan.FromString, + ) + self.ListActiveLaunchPlans = channel.unary_unary( + '/flyteidl.service.AdminService/ListActiveLaunchPlans', + request_serializer=flyteidl_dot_admin_dot_launch__plan__pb2.ActiveLaunchPlanListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanList.FromString, + ) + self.ListLaunchPlanIds = channel.unary_unary( + '/flyteidl.service.AdminService/ListLaunchPlanIds', + request_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierList.FromString, + ) + self.ListLaunchPlans = channel.unary_unary( + '/flyteidl.service.AdminService/ListLaunchPlans', + request_serializer=flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanList.FromString, + ) + self.UpdateLaunchPlan = channel.unary_unary( + '/flyteidl.service.AdminService/UpdateLaunchPlan', + request_serializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanUpdateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanUpdateResponse.FromString, + ) + self.CreateExecution = channel.unary_unary( + '/flyteidl.service.AdminService/CreateExecution', + request_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateResponse.FromString, + ) + self.RelaunchExecution = channel.unary_unary( + '/flyteidl.service.AdminService/RelaunchExecution', + request_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionRelaunchRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateResponse.FromString, + ) + self.RecoverExecution = channel.unary_unary( + '/flyteidl.service.AdminService/RecoverExecution', + request_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionRecoverRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateResponse.FromString, + ) + self.GetExecution = channel.unary_unary( + '/flyteidl.service.AdminService/GetExecution', + request_serializer=flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_execution__pb2.Execution.FromString, + ) + self.UpdateExecution = channel.unary_unary( + '/flyteidl.service.AdminService/UpdateExecution', + request_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionUpdateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionUpdateResponse.FromString, + ) + self.GetExecutionData = channel.unary_unary( + '/flyteidl.service.AdminService/GetExecutionData', + request_serializer=flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetDataRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetDataResponse.FromString, + ) + self.ListExecutions = channel.unary_unary( + '/flyteidl.service.AdminService/ListExecutions', + request_serializer=flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionList.FromString, + ) + self.TerminateExecution = channel.unary_unary( + '/flyteidl.service.AdminService/TerminateExecution', + request_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionTerminateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionTerminateResponse.FromString, + ) + self.GetNodeExecution = channel.unary_unary( + '/flyteidl.service.AdminService/GetNodeExecution', + request_serializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecution.FromString, + ) + self.ListNodeExecutions = channel.unary_unary( + '/flyteidl.service.AdminService/ListNodeExecutions', + request_serializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionList.FromString, + ) + self.ListNodeExecutionsForTask = channel.unary_unary( + '/flyteidl.service.AdminService/ListNodeExecutionsForTask', + request_serializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionForTaskListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionList.FromString, + ) + self.GetNodeExecutionData = channel.unary_unary( + '/flyteidl.service.AdminService/GetNodeExecutionData', + request_serializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionGetDataRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionGetDataResponse.FromString, + ) + self.RegisterProject = channel.unary_unary( + '/flyteidl.service.AdminService/RegisterProject', + request_serializer=flyteidl_dot_admin_dot_project__pb2.ProjectRegisterRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_project__pb2.ProjectRegisterResponse.FromString, + ) + self.UpdateProject = channel.unary_unary( + '/flyteidl.service.AdminService/UpdateProject', + request_serializer=flyteidl_dot_admin_dot_project__pb2.Project.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_project__pb2.ProjectUpdateResponse.FromString, + ) + self.ListProjects = channel.unary_unary( + '/flyteidl.service.AdminService/ListProjects', + request_serializer=flyteidl_dot_admin_dot_project__pb2.ProjectListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_project__pb2.Projects.FromString, + ) + self.CreateWorkflowEvent = channel.unary_unary( + '/flyteidl.service.AdminService/CreateWorkflowEvent', + request_serializer=flyteidl_dot_admin_dot_event__pb2.WorkflowExecutionEventRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_event__pb2.WorkflowExecutionEventResponse.FromString, + ) + self.CreateNodeEvent = channel.unary_unary( + '/flyteidl.service.AdminService/CreateNodeEvent', + request_serializer=flyteidl_dot_admin_dot_event__pb2.NodeExecutionEventRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_event__pb2.NodeExecutionEventResponse.FromString, + ) + self.CreateTaskEvent = channel.unary_unary( + '/flyteidl.service.AdminService/CreateTaskEvent', + request_serializer=flyteidl_dot_admin_dot_event__pb2.TaskExecutionEventRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_event__pb2.TaskExecutionEventResponse.FromString, + ) + self.GetTaskExecution = channel.unary_unary( + '/flyteidl.service.AdminService/GetTaskExecution', + request_serializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecution.FromString, + ) + self.ListTaskExecutions = channel.unary_unary( + '/flyteidl.service.AdminService/ListTaskExecutions', + request_serializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionList.FromString, + ) + self.GetTaskExecutionData = channel.unary_unary( + '/flyteidl.service.AdminService/GetTaskExecutionData', + request_serializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionGetDataRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionGetDataResponse.FromString, + ) + self.UpdateProjectDomainAttributes = channel.unary_unary( + '/flyteidl.service.AdminService/UpdateProjectDomainAttributes', + request_serializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesUpdateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesUpdateResponse.FromString, + ) + self.GetProjectDomainAttributes = channel.unary_unary( + '/flyteidl.service.AdminService/GetProjectDomainAttributes', + request_serializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesGetResponse.FromString, + ) + self.DeleteProjectDomainAttributes = channel.unary_unary( + '/flyteidl.service.AdminService/DeleteProjectDomainAttributes', + request_serializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesDeleteRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesDeleteResponse.FromString, + ) + self.UpdateProjectAttributes = channel.unary_unary( + '/flyteidl.service.AdminService/UpdateProjectAttributes', + request_serializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesUpdateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesUpdateResponse.FromString, + ) + self.GetProjectAttributes = channel.unary_unary( + '/flyteidl.service.AdminService/GetProjectAttributes', + request_serializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesGetResponse.FromString, + ) + self.DeleteProjectAttributes = channel.unary_unary( + '/flyteidl.service.AdminService/DeleteProjectAttributes', + request_serializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesDeleteRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesDeleteResponse.FromString, + ) + self.UpdateWorkflowAttributes = channel.unary_unary( + '/flyteidl.service.AdminService/UpdateWorkflowAttributes', + request_serializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesUpdateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesUpdateResponse.FromString, + ) + self.GetWorkflowAttributes = channel.unary_unary( + '/flyteidl.service.AdminService/GetWorkflowAttributes', + request_serializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesGetResponse.FromString, + ) + self.DeleteWorkflowAttributes = channel.unary_unary( + '/flyteidl.service.AdminService/DeleteWorkflowAttributes', + request_serializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesDeleteRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesDeleteResponse.FromString, + ) + self.ListMatchableAttributes = channel.unary_unary( + '/flyteidl.service.AdminService/ListMatchableAttributes', + request_serializer=flyteidl_dot_admin_dot_matchable__resource__pb2.ListMatchableAttributesRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_matchable__resource__pb2.ListMatchableAttributesResponse.FromString, + ) + self.ListNamedEntities = channel.unary_unary( + '/flyteidl.service.AdminService/ListNamedEntities', + request_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityList.FromString, + ) + self.GetNamedEntity = channel.unary_unary( + '/flyteidl.service.AdminService/GetNamedEntity', + request_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntity.FromString, + ) + self.UpdateNamedEntity = channel.unary_unary( + '/flyteidl.service.AdminService/UpdateNamedEntity', + request_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityUpdateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityUpdateResponse.FromString, + ) + self.GetVersion = channel.unary_unary( + '/flyteidl.service.AdminService/GetVersion', + request_serializer=flyteidl_dot_admin_dot_version__pb2.GetVersionRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_version__pb2.GetVersionResponse.FromString, + ) + self.GetDescriptionEntity = channel.unary_unary( + '/flyteidl.service.AdminService/GetDescriptionEntity', + request_serializer=flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_description__entity__pb2.DescriptionEntity.FromString, + ) + self.ListDescriptionEntities = channel.unary_unary( + '/flyteidl.service.AdminService/ListDescriptionEntities', + request_serializer=flyteidl_dot_admin_dot_description__entity__pb2.DescriptionEntityListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_description__entity__pb2.DescriptionEntityList.FromString, + ) + self.GetExecutionMetrics = channel.unary_unary( + '/flyteidl.service.AdminService/GetExecutionMetrics', + request_serializer=flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetMetricsRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetMetricsResponse.FromString, + ) + + +class AdminServiceServicer(object): + """The following defines an RPC service that is also served over HTTP via grpc-gateway. + Standard response codes for both are defined here: https://github.com/grpc-ecosystem/grpc-gateway/blob/master/runtime/errors.go + """ + + def CreateTask(self, request, context): + """Create and upload a :ref:`ref_flyteidl.admin.Task` definition + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetTask(self, request, context): + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListTaskIds(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListTasks(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateWorkflow(self, request, context): + """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetWorkflow(self, request, context): + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListWorkflowIds(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListWorkflows(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateLaunchPlan(self, request, context): + """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetLaunchPlan(self, request, context): + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetActiveLaunchPlan(self, request, context): + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListActiveLaunchPlans(self, request, context): + """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListLaunchPlanIds(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListLaunchPlans(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateLaunchPlan(self, request, context): + """Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateExecution(self, request, context): + """Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RelaunchExecution(self, request, context): + """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RecoverExecution(self, request, context): + """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. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetExecution(self, request, context): + """Fetches a :ref:`ref_flyteidl.admin.Execution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateExecution(self, request, context): + """Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetExecutionData(self, request, context): + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListExecutions(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TerminateExecution(self, request, context): + """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetNodeExecution(self, request, context): + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListNodeExecutions(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListNodeExecutionsForTask(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetNodeExecutionData(self, request, context): + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RegisterProject(self, request, context): + """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateProject(self, request, context): + """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. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListProjects(self, request, context): + """Fetches a list of :ref:`ref_flyteidl.admin.Project` + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateWorkflowEvent(self, request, context): + """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateNodeEvent(self, request, context): + """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateTaskEvent(self, request, context): + """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetTaskExecution(self, request, context): + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListTaskExecutions(self, request, context): + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetTaskExecutionData(self, request, context): + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateProjectDomainAttributes(self, request, context): + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetProjectDomainAttributes(self, request, context): + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteProjectDomainAttributes(self, request, context): + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateProjectAttributes(self, request, context): + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetProjectAttributes(self, request, context): + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteProjectAttributes(self, request, context): + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateWorkflowAttributes(self, request, context): + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetWorkflowAttributes(self, request, context): + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteWorkflowAttributes(self, request, context): + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListMatchableAttributes(self, request, context): + """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListNamedEntities(self, request, context): + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetNamedEntity(self, request, context): + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateNamedEntity(self, request, context): + """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetVersion(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetDescriptionEntity(self, request, context): + """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListDescriptionEntities(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetExecutionMetrics(self, request, context): + """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdminServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'CreateTask': grpc.unary_unary_rpc_method_handler( + servicer.CreateTask, + request_deserializer=flyteidl_dot_admin_dot_task__pb2.TaskCreateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_task__pb2.TaskCreateResponse.SerializeToString, + ), + 'GetTask': grpc.unary_unary_rpc_method_handler( + servicer.GetTask, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_task__pb2.Task.SerializeToString, + ), + 'ListTaskIds': grpc.unary_unary_rpc_method_handler( + servicer.ListTaskIds, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierList.SerializeToString, + ), + 'ListTasks': grpc.unary_unary_rpc_method_handler( + servicer.ListTasks, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_task__pb2.TaskList.SerializeToString, + ), + 'CreateWorkflow': grpc.unary_unary_rpc_method_handler( + servicer.CreateWorkflow, + request_deserializer=flyteidl_dot_admin_dot_workflow__pb2.WorkflowCreateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_workflow__pb2.WorkflowCreateResponse.SerializeToString, + ), + 'GetWorkflow': grpc.unary_unary_rpc_method_handler( + servicer.GetWorkflow, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_workflow__pb2.Workflow.SerializeToString, + ), + 'ListWorkflowIds': grpc.unary_unary_rpc_method_handler( + servicer.ListWorkflowIds, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierList.SerializeToString, + ), + 'ListWorkflows': grpc.unary_unary_rpc_method_handler( + servicer.ListWorkflows, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_workflow__pb2.WorkflowList.SerializeToString, + ), + 'CreateLaunchPlan': grpc.unary_unary_rpc_method_handler( + servicer.CreateLaunchPlan, + request_deserializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanCreateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanCreateResponse.SerializeToString, + ), + 'GetLaunchPlan': grpc.unary_unary_rpc_method_handler( + servicer.GetLaunchPlan, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlan.SerializeToString, + ), + 'GetActiveLaunchPlan': grpc.unary_unary_rpc_method_handler( + servicer.GetActiveLaunchPlan, + request_deserializer=flyteidl_dot_admin_dot_launch__plan__pb2.ActiveLaunchPlanRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlan.SerializeToString, + ), + 'ListActiveLaunchPlans': grpc.unary_unary_rpc_method_handler( + servicer.ListActiveLaunchPlans, + request_deserializer=flyteidl_dot_admin_dot_launch__plan__pb2.ActiveLaunchPlanListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanList.SerializeToString, + ), + 'ListLaunchPlanIds': grpc.unary_unary_rpc_method_handler( + servicer.ListLaunchPlanIds, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierList.SerializeToString, + ), + 'ListLaunchPlans': grpc.unary_unary_rpc_method_handler( + servicer.ListLaunchPlans, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanList.SerializeToString, + ), + 'UpdateLaunchPlan': grpc.unary_unary_rpc_method_handler( + servicer.UpdateLaunchPlan, + request_deserializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanUpdateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanUpdateResponse.SerializeToString, + ), + 'CreateExecution': grpc.unary_unary_rpc_method_handler( + servicer.CreateExecution, + request_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateResponse.SerializeToString, + ), + 'RelaunchExecution': grpc.unary_unary_rpc_method_handler( + servicer.RelaunchExecution, + request_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionRelaunchRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateResponse.SerializeToString, + ), + 'RecoverExecution': grpc.unary_unary_rpc_method_handler( + servicer.RecoverExecution, + request_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionRecoverRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateResponse.SerializeToString, + ), + 'GetExecution': grpc.unary_unary_rpc_method_handler( + servicer.GetExecution, + request_deserializer=flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_execution__pb2.Execution.SerializeToString, + ), + 'UpdateExecution': grpc.unary_unary_rpc_method_handler( + servicer.UpdateExecution, + request_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionUpdateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionUpdateResponse.SerializeToString, + ), + 'GetExecutionData': grpc.unary_unary_rpc_method_handler( + servicer.GetExecutionData, + request_deserializer=flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetDataRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetDataResponse.SerializeToString, + ), + 'ListExecutions': grpc.unary_unary_rpc_method_handler( + servicer.ListExecutions, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionList.SerializeToString, + ), + 'TerminateExecution': grpc.unary_unary_rpc_method_handler( + servicer.TerminateExecution, + request_deserializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionTerminateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_execution__pb2.ExecutionTerminateResponse.SerializeToString, + ), + 'GetNodeExecution': grpc.unary_unary_rpc_method_handler( + servicer.GetNodeExecution, + request_deserializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecution.SerializeToString, + ), + 'ListNodeExecutions': grpc.unary_unary_rpc_method_handler( + servicer.ListNodeExecutions, + request_deserializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionList.SerializeToString, + ), + 'ListNodeExecutionsForTask': grpc.unary_unary_rpc_method_handler( + servicer.ListNodeExecutionsForTask, + request_deserializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionForTaskListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionList.SerializeToString, + ), + 'GetNodeExecutionData': grpc.unary_unary_rpc_method_handler( + servicer.GetNodeExecutionData, + request_deserializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionGetDataRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionGetDataResponse.SerializeToString, + ), + 'RegisterProject': grpc.unary_unary_rpc_method_handler( + servicer.RegisterProject, + request_deserializer=flyteidl_dot_admin_dot_project__pb2.ProjectRegisterRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_project__pb2.ProjectRegisterResponse.SerializeToString, + ), + 'UpdateProject': grpc.unary_unary_rpc_method_handler( + servicer.UpdateProject, + request_deserializer=flyteidl_dot_admin_dot_project__pb2.Project.FromString, + response_serializer=flyteidl_dot_admin_dot_project__pb2.ProjectUpdateResponse.SerializeToString, + ), + 'ListProjects': grpc.unary_unary_rpc_method_handler( + servicer.ListProjects, + request_deserializer=flyteidl_dot_admin_dot_project__pb2.ProjectListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_project__pb2.Projects.SerializeToString, + ), + 'CreateWorkflowEvent': grpc.unary_unary_rpc_method_handler( + servicer.CreateWorkflowEvent, + request_deserializer=flyteidl_dot_admin_dot_event__pb2.WorkflowExecutionEventRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_event__pb2.WorkflowExecutionEventResponse.SerializeToString, + ), + 'CreateNodeEvent': grpc.unary_unary_rpc_method_handler( + servicer.CreateNodeEvent, + request_deserializer=flyteidl_dot_admin_dot_event__pb2.NodeExecutionEventRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_event__pb2.NodeExecutionEventResponse.SerializeToString, + ), + 'CreateTaskEvent': grpc.unary_unary_rpc_method_handler( + servicer.CreateTaskEvent, + request_deserializer=flyteidl_dot_admin_dot_event__pb2.TaskExecutionEventRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_event__pb2.TaskExecutionEventResponse.SerializeToString, + ), + 'GetTaskExecution': grpc.unary_unary_rpc_method_handler( + servicer.GetTaskExecution, + request_deserializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecution.SerializeToString, + ), + 'ListTaskExecutions': grpc.unary_unary_rpc_method_handler( + servicer.ListTaskExecutions, + request_deserializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionList.SerializeToString, + ), + 'GetTaskExecutionData': grpc.unary_unary_rpc_method_handler( + servicer.GetTaskExecutionData, + request_deserializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionGetDataRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionGetDataResponse.SerializeToString, + ), + 'UpdateProjectDomainAttributes': grpc.unary_unary_rpc_method_handler( + servicer.UpdateProjectDomainAttributes, + request_deserializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesUpdateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesUpdateResponse.SerializeToString, + ), + 'GetProjectDomainAttributes': grpc.unary_unary_rpc_method_handler( + servicer.GetProjectDomainAttributes, + request_deserializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesGetResponse.SerializeToString, + ), + 'DeleteProjectDomainAttributes': grpc.unary_unary_rpc_method_handler( + servicer.DeleteProjectDomainAttributes, + request_deserializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesDeleteRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesDeleteResponse.SerializeToString, + ), + 'UpdateProjectAttributes': grpc.unary_unary_rpc_method_handler( + servicer.UpdateProjectAttributes, + request_deserializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesUpdateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesUpdateResponse.SerializeToString, + ), + 'GetProjectAttributes': grpc.unary_unary_rpc_method_handler( + servicer.GetProjectAttributes, + request_deserializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesGetResponse.SerializeToString, + ), + 'DeleteProjectAttributes': grpc.unary_unary_rpc_method_handler( + servicer.DeleteProjectAttributes, + request_deserializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesDeleteRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesDeleteResponse.SerializeToString, + ), + 'UpdateWorkflowAttributes': grpc.unary_unary_rpc_method_handler( + servicer.UpdateWorkflowAttributes, + request_deserializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesUpdateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesUpdateResponse.SerializeToString, + ), + 'GetWorkflowAttributes': grpc.unary_unary_rpc_method_handler( + servicer.GetWorkflowAttributes, + request_deserializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesGetResponse.SerializeToString, + ), + 'DeleteWorkflowAttributes': grpc.unary_unary_rpc_method_handler( + servicer.DeleteWorkflowAttributes, + request_deserializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesDeleteRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesDeleteResponse.SerializeToString, + ), + 'ListMatchableAttributes': grpc.unary_unary_rpc_method_handler( + servicer.ListMatchableAttributes, + request_deserializer=flyteidl_dot_admin_dot_matchable__resource__pb2.ListMatchableAttributesRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_matchable__resource__pb2.ListMatchableAttributesResponse.SerializeToString, + ), + 'ListNamedEntities': grpc.unary_unary_rpc_method_handler( + servicer.ListNamedEntities, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityList.SerializeToString, + ), + 'GetNamedEntity': grpc.unary_unary_rpc_method_handler( + servicer.GetNamedEntity, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntity.SerializeToString, + ), + 'UpdateNamedEntity': grpc.unary_unary_rpc_method_handler( + servicer.UpdateNamedEntity, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityUpdateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_common__pb2.NamedEntityUpdateResponse.SerializeToString, + ), + 'GetVersion': grpc.unary_unary_rpc_method_handler( + servicer.GetVersion, + request_deserializer=flyteidl_dot_admin_dot_version__pb2.GetVersionRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_version__pb2.GetVersionResponse.SerializeToString, + ), + 'GetDescriptionEntity': grpc.unary_unary_rpc_method_handler( + servicer.GetDescriptionEntity, + request_deserializer=flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_description__entity__pb2.DescriptionEntity.SerializeToString, + ), + 'ListDescriptionEntities': grpc.unary_unary_rpc_method_handler( + servicer.ListDescriptionEntities, + request_deserializer=flyteidl_dot_admin_dot_description__entity__pb2.DescriptionEntityListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_description__entity__pb2.DescriptionEntityList.SerializeToString, + ), + 'GetExecutionMetrics': grpc.unary_unary_rpc_method_handler( + servicer.GetExecutionMetrics, + request_deserializer=flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetMetricsRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetMetricsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'flyteidl.service.AdminService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdminService(object): + """The following defines an RPC service that is also served over HTTP via grpc-gateway. + Standard response codes for both are defined here: https://github.com/grpc-ecosystem/grpc-gateway/blob/master/runtime/errors.go + """ + + @staticmethod + def CreateTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/CreateTask', + flyteidl_dot_admin_dot_task__pb2.TaskCreateRequest.SerializeToString, + flyteidl_dot_admin_dot_task__pb2.TaskCreateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetTask', + flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.SerializeToString, + flyteidl_dot_admin_dot_task__pb2.Task.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListTaskIds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListTaskIds', + flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierListRequest.SerializeToString, + flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListTasks(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListTasks', + flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.SerializeToString, + flyteidl_dot_admin_dot_task__pb2.TaskList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateWorkflow(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/CreateWorkflow', + flyteidl_dot_admin_dot_workflow__pb2.WorkflowCreateRequest.SerializeToString, + flyteidl_dot_admin_dot_workflow__pb2.WorkflowCreateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetWorkflow(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetWorkflow', + flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.SerializeToString, + flyteidl_dot_admin_dot_workflow__pb2.Workflow.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListWorkflowIds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListWorkflowIds', + flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierListRequest.SerializeToString, + flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListWorkflows(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListWorkflows', + flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.SerializeToString, + flyteidl_dot_admin_dot_workflow__pb2.WorkflowList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateLaunchPlan(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/CreateLaunchPlan', + flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanCreateRequest.SerializeToString, + flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanCreateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetLaunchPlan(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetLaunchPlan', + flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.SerializeToString, + flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlan.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetActiveLaunchPlan(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetActiveLaunchPlan', + flyteidl_dot_admin_dot_launch__plan__pb2.ActiveLaunchPlanRequest.SerializeToString, + flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlan.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListActiveLaunchPlans(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListActiveLaunchPlans', + flyteidl_dot_admin_dot_launch__plan__pb2.ActiveLaunchPlanListRequest.SerializeToString, + flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListLaunchPlanIds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListLaunchPlanIds', + flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierListRequest.SerializeToString, + flyteidl_dot_admin_dot_common__pb2.NamedEntityIdentifierList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListLaunchPlans(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListLaunchPlans', + flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.SerializeToString, + flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateLaunchPlan(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/UpdateLaunchPlan', + flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanUpdateRequest.SerializeToString, + flyteidl_dot_admin_dot_launch__plan__pb2.LaunchPlanUpdateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateExecution(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/CreateExecution', + flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateRequest.SerializeToString, + flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def RelaunchExecution(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/RelaunchExecution', + flyteidl_dot_admin_dot_execution__pb2.ExecutionRelaunchRequest.SerializeToString, + flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def RecoverExecution(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/RecoverExecution', + flyteidl_dot_admin_dot_execution__pb2.ExecutionRecoverRequest.SerializeToString, + flyteidl_dot_admin_dot_execution__pb2.ExecutionCreateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetExecution(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetExecution', + flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetRequest.SerializeToString, + flyteidl_dot_admin_dot_execution__pb2.Execution.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateExecution(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/UpdateExecution', + flyteidl_dot_admin_dot_execution__pb2.ExecutionUpdateRequest.SerializeToString, + flyteidl_dot_admin_dot_execution__pb2.ExecutionUpdateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetExecutionData(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetExecutionData', + flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetDataRequest.SerializeToString, + flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetDataResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListExecutions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListExecutions', + flyteidl_dot_admin_dot_common__pb2.ResourceListRequest.SerializeToString, + flyteidl_dot_admin_dot_execution__pb2.ExecutionList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def TerminateExecution(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/TerminateExecution', + flyteidl_dot_admin_dot_execution__pb2.ExecutionTerminateRequest.SerializeToString, + flyteidl_dot_admin_dot_execution__pb2.ExecutionTerminateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetNodeExecution(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetNodeExecution', + flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionGetRequest.SerializeToString, + flyteidl_dot_admin_dot_node__execution__pb2.NodeExecution.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListNodeExecutions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListNodeExecutions', + flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionListRequest.SerializeToString, + flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListNodeExecutionsForTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListNodeExecutionsForTask', + flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionForTaskListRequest.SerializeToString, + flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetNodeExecutionData(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetNodeExecutionData', + flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionGetDataRequest.SerializeToString, + flyteidl_dot_admin_dot_node__execution__pb2.NodeExecutionGetDataResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def RegisterProject(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/RegisterProject', + flyteidl_dot_admin_dot_project__pb2.ProjectRegisterRequest.SerializeToString, + flyteidl_dot_admin_dot_project__pb2.ProjectRegisterResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateProject(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/UpdateProject', + flyteidl_dot_admin_dot_project__pb2.Project.SerializeToString, + flyteidl_dot_admin_dot_project__pb2.ProjectUpdateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListProjects(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListProjects', + flyteidl_dot_admin_dot_project__pb2.ProjectListRequest.SerializeToString, + flyteidl_dot_admin_dot_project__pb2.Projects.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateWorkflowEvent(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/CreateWorkflowEvent', + flyteidl_dot_admin_dot_event__pb2.WorkflowExecutionEventRequest.SerializeToString, + flyteidl_dot_admin_dot_event__pb2.WorkflowExecutionEventResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateNodeEvent(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/CreateNodeEvent', + flyteidl_dot_admin_dot_event__pb2.NodeExecutionEventRequest.SerializeToString, + flyteidl_dot_admin_dot_event__pb2.NodeExecutionEventResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateTaskEvent(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/CreateTaskEvent', + flyteidl_dot_admin_dot_event__pb2.TaskExecutionEventRequest.SerializeToString, + flyteidl_dot_admin_dot_event__pb2.TaskExecutionEventResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetTaskExecution(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetTaskExecution', + flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionGetRequest.SerializeToString, + flyteidl_dot_admin_dot_task__execution__pb2.TaskExecution.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListTaskExecutions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListTaskExecutions', + flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionListRequest.SerializeToString, + flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetTaskExecutionData(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetTaskExecutionData', + flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionGetDataRequest.SerializeToString, + flyteidl_dot_admin_dot_task__execution__pb2.TaskExecutionGetDataResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateProjectDomainAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/UpdateProjectDomainAttributes', + flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesUpdateRequest.SerializeToString, + flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesUpdateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetProjectDomainAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetProjectDomainAttributes', + flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesGetRequest.SerializeToString, + flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesGetResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteProjectDomainAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/DeleteProjectDomainAttributes', + flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesDeleteRequest.SerializeToString, + flyteidl_dot_admin_dot_project__domain__attributes__pb2.ProjectDomainAttributesDeleteResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateProjectAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/UpdateProjectAttributes', + flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesUpdateRequest.SerializeToString, + flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesUpdateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetProjectAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetProjectAttributes', + flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesGetRequest.SerializeToString, + flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesGetResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteProjectAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/DeleteProjectAttributes', + flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesDeleteRequest.SerializeToString, + flyteidl_dot_admin_dot_project__attributes__pb2.ProjectAttributesDeleteResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateWorkflowAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/UpdateWorkflowAttributes', + flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesUpdateRequest.SerializeToString, + flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesUpdateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetWorkflowAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetWorkflowAttributes', + flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesGetRequest.SerializeToString, + flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesGetResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteWorkflowAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/DeleteWorkflowAttributes', + flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesDeleteRequest.SerializeToString, + flyteidl_dot_admin_dot_workflow__attributes__pb2.WorkflowAttributesDeleteResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListMatchableAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListMatchableAttributes', + flyteidl_dot_admin_dot_matchable__resource__pb2.ListMatchableAttributesRequest.SerializeToString, + flyteidl_dot_admin_dot_matchable__resource__pb2.ListMatchableAttributesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListNamedEntities(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListNamedEntities', + flyteidl_dot_admin_dot_common__pb2.NamedEntityListRequest.SerializeToString, + flyteidl_dot_admin_dot_common__pb2.NamedEntityList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetNamedEntity(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetNamedEntity', + flyteidl_dot_admin_dot_common__pb2.NamedEntityGetRequest.SerializeToString, + flyteidl_dot_admin_dot_common__pb2.NamedEntity.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateNamedEntity(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/UpdateNamedEntity', + flyteidl_dot_admin_dot_common__pb2.NamedEntityUpdateRequest.SerializeToString, + flyteidl_dot_admin_dot_common__pb2.NamedEntityUpdateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetVersion(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetVersion', + flyteidl_dot_admin_dot_version__pb2.GetVersionRequest.SerializeToString, + flyteidl_dot_admin_dot_version__pb2.GetVersionResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetDescriptionEntity(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetDescriptionEntity', + flyteidl_dot_admin_dot_common__pb2.ObjectGetRequest.SerializeToString, + flyteidl_dot_admin_dot_description__entity__pb2.DescriptionEntity.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListDescriptionEntities(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/ListDescriptionEntities', + flyteidl_dot_admin_dot_description__entity__pb2.DescriptionEntityListRequest.SerializeToString, + flyteidl_dot_admin_dot_description__entity__pb2.DescriptionEntityList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetExecutionMetrics(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AdminService/GetExecutionMetrics', + flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetMetricsRequest.SerializeToString, + flyteidl_dot_admin_dot_execution__pb2.WorkflowExecutionGetMetricsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/build/lib/flyteidl/service/agent_pb2.py b/build/lib/flyteidl/service/agent_pb2.py new file mode 100644 index 000000000..f4510ca2f --- /dev/null +++ b/build/lib/flyteidl/service/agent_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/service/agent.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.admin import agent_pb2 as flyteidl_dot_admin_dot_agent__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/service/agent.proto\x12\x10\x66lyteidl.service\x1a\x1a\x66lyteidl/admin/agent.proto2\x8f\x02\n\x11\x41syncAgentService\x12U\n\nCreateTask\x12!.flyteidl.admin.CreateTaskRequest\x1a\".flyteidl.admin.CreateTaskResponse\"\x00\x12L\n\x07GetTask\x12\x1e.flyteidl.admin.GetTaskRequest\x1a\x1f.flyteidl.admin.GetTaskResponse\"\x00\x12U\n\nDeleteTask\x12!.flyteidl.admin.DeleteTaskRequest\x1a\".flyteidl.admin.DeleteTaskResponse\"\x00\x42\xbc\x01\n\x14\x63om.flyteidl.serviceB\nAgentProtoP\x01Z7github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.service.agent_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\nAgentProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' + _globals['_ASYNCAGENTSERVICE']._serialized_start=79 + _globals['_ASYNCAGENTSERVICE']._serialized_end=350 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/service/agent_pb2.pyi b/build/lib/flyteidl/service/agent_pb2.pyi new file mode 100644 index 000000000..8c85e57d2 --- /dev/null +++ b/build/lib/flyteidl/service/agent_pb2.pyi @@ -0,0 +1,5 @@ +from flyteidl.admin import agent_pb2 as _agent_pb2 +from google.protobuf import descriptor as _descriptor +from typing import ClassVar as _ClassVar + +DESCRIPTOR: _descriptor.FileDescriptor diff --git a/build/lib/flyteidl/service/agent_pb2_grpc.py b/build/lib/flyteidl/service/agent_pb2_grpc.py new file mode 100644 index 000000000..3ef2af39c --- /dev/null +++ b/build/lib/flyteidl/service/agent_pb2_grpc.py @@ -0,0 +1,138 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from flyteidl.admin import agent_pb2 as flyteidl_dot_admin_dot_agent__pb2 + + +class AsyncAgentServiceStub(object): + """AgentService defines an RPC Service that allows propeller to send the request to the agent server. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.CreateTask = channel.unary_unary( + '/flyteidl.service.AsyncAgentService/CreateTask', + request_serializer=flyteidl_dot_admin_dot_agent__pb2.CreateTaskRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_agent__pb2.CreateTaskResponse.FromString, + ) + self.GetTask = channel.unary_unary( + '/flyteidl.service.AsyncAgentService/GetTask', + request_serializer=flyteidl_dot_admin_dot_agent__pb2.GetTaskRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_agent__pb2.GetTaskResponse.FromString, + ) + self.DeleteTask = channel.unary_unary( + '/flyteidl.service.AsyncAgentService/DeleteTask', + request_serializer=flyteidl_dot_admin_dot_agent__pb2.DeleteTaskRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_agent__pb2.DeleteTaskResponse.FromString, + ) + + +class AsyncAgentServiceServicer(object): + """AgentService defines an RPC Service that allows propeller to send the request to the agent server. + """ + + def CreateTask(self, request, context): + """Send a task create request to the agent server. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetTask(self, request, context): + """Get job status. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteTask(self, request, context): + """Delete the task resource. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AsyncAgentServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'CreateTask': grpc.unary_unary_rpc_method_handler( + servicer.CreateTask, + request_deserializer=flyteidl_dot_admin_dot_agent__pb2.CreateTaskRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_agent__pb2.CreateTaskResponse.SerializeToString, + ), + 'GetTask': grpc.unary_unary_rpc_method_handler( + servicer.GetTask, + request_deserializer=flyteidl_dot_admin_dot_agent__pb2.GetTaskRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_agent__pb2.GetTaskResponse.SerializeToString, + ), + 'DeleteTask': grpc.unary_unary_rpc_method_handler( + servicer.DeleteTask, + request_deserializer=flyteidl_dot_admin_dot_agent__pb2.DeleteTaskRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_agent__pb2.DeleteTaskResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'flyteidl.service.AsyncAgentService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AsyncAgentService(object): + """AgentService defines an RPC Service that allows propeller to send the request to the agent server. + """ + + @staticmethod + def CreateTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AsyncAgentService/CreateTask', + flyteidl_dot_admin_dot_agent__pb2.CreateTaskRequest.SerializeToString, + flyteidl_dot_admin_dot_agent__pb2.CreateTaskResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AsyncAgentService/GetTask', + flyteidl_dot_admin_dot_agent__pb2.GetTaskRequest.SerializeToString, + flyteidl_dot_admin_dot_agent__pb2.GetTaskResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AsyncAgentService/DeleteTask', + flyteidl_dot_admin_dot_agent__pb2.DeleteTaskRequest.SerializeToString, + flyteidl_dot_admin_dot_agent__pb2.DeleteTaskResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/build/lib/flyteidl/service/auth_pb2.py b/build/lib/flyteidl/service/auth_pb2.py new file mode 100644 index 000000000..256f34655 --- /dev/null +++ b/build/lib/flyteidl/service/auth_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/service/auth.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lyteidl/service/auth.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\"\x17\n\x15OAuth2MetadataRequest\"\xa1\x04\n\x16OAuth2MetadataResponse\x12\x16\n\x06issuer\x18\x01 \x01(\tR\x06issuer\x12\x35\n\x16\x61uthorization_endpoint\x18\x02 \x01(\tR\x15\x61uthorizationEndpoint\x12%\n\x0etoken_endpoint\x18\x03 \x01(\tR\rtokenEndpoint\x12\x38\n\x18response_types_supported\x18\x04 \x03(\tR\x16responseTypesSupported\x12)\n\x10scopes_supported\x18\x05 \x03(\tR\x0fscopesSupported\x12P\n%token_endpoint_auth_methods_supported\x18\x06 \x03(\tR!tokenEndpointAuthMethodsSupported\x12\x19\n\x08jwks_uri\x18\x07 \x01(\tR\x07jwksUri\x12G\n code_challenge_methods_supported\x18\x08 \x03(\tR\x1d\x63odeChallengeMethodsSupported\x12\x32\n\x15grant_types_supported\x18\t \x03(\tR\x13grantTypesSupported\x12\x42\n\x1d\x64\x65vice_authorization_endpoint\x18\n \x01(\tR\x1b\x64\x65viceAuthorizationEndpoint\"\x1f\n\x1dPublicClientAuthConfigRequest\"\x86\x02\n\x1ePublicClientAuthConfigResponse\x12\x1b\n\tclient_id\x18\x01 \x01(\tR\x08\x63lientId\x12!\n\x0credirect_uri\x18\x02 \x01(\tR\x0bredirectUri\x12\x16\n\x06scopes\x18\x03 \x03(\tR\x06scopes\x12<\n\x1a\x61uthorization_metadata_key\x18\x04 \x01(\tR\x18\x61uthorizationMetadataKey\x12\x32\n\x15service_http_endpoint\x18\x05 \x01(\tR\x13serviceHttpEndpoint\x12\x1a\n\x08\x61udience\x18\x06 \x01(\tR\x08\x61udience2\xcd\x02\n\x13\x41uthMetadataService\x12\x97\x01\n\x11GetOAuth2Metadata\x12\'.flyteidl.service.OAuth2MetadataRequest\x1a(.flyteidl.service.OAuth2MetadataResponse\"/\x82\xd3\xe4\x93\x02)\x12\'/.well-known/oauth-authorization-server\x12\x9b\x01\n\x15GetPublicClientConfig\x12/.flyteidl.service.PublicClientAuthConfigRequest\x1a\x30.flyteidl.service.PublicClientAuthConfigResponse\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/config/v1/flyte_clientB\xbb\x01\n\x14\x63om.flyteidl.serviceB\tAuthProtoP\x01Z7github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.service.auth_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\tAuthProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' + _AUTHMETADATASERVICE.methods_by_name['GetOAuth2Metadata']._options = None + _AUTHMETADATASERVICE.methods_by_name['GetOAuth2Metadata']._serialized_options = b'\202\323\344\223\002)\022\'/.well-known/oauth-authorization-server' + _AUTHMETADATASERVICE.methods_by_name['GetPublicClientConfig']._options = None + _AUTHMETADATASERVICE.methods_by_name['GetPublicClientConfig']._serialized_options = b'\202\323\344\223\002\031\022\027/config/v1/flyte_client' + _globals['_OAUTH2METADATAREQUEST']._serialized_start=79 + _globals['_OAUTH2METADATAREQUEST']._serialized_end=102 + _globals['_OAUTH2METADATARESPONSE']._serialized_start=105 + _globals['_OAUTH2METADATARESPONSE']._serialized_end=650 + _globals['_PUBLICCLIENTAUTHCONFIGREQUEST']._serialized_start=652 + _globals['_PUBLICCLIENTAUTHCONFIGREQUEST']._serialized_end=683 + _globals['_PUBLICCLIENTAUTHCONFIGRESPONSE']._serialized_start=686 + _globals['_PUBLICCLIENTAUTHCONFIGRESPONSE']._serialized_end=948 + _globals['_AUTHMETADATASERVICE']._serialized_start=951 + _globals['_AUTHMETADATASERVICE']._serialized_end=1284 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/service/auth_pb2.pyi b/build/lib/flyteidl/service/auth_pb2.pyi new file mode 100644 index 000000000..3d02573b5 --- /dev/null +++ b/build/lib/flyteidl/service/auth_pb2.pyi @@ -0,0 +1,55 @@ +from google.api import annotations_pb2 as _annotations_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Optional as _Optional + +DESCRIPTOR: _descriptor.FileDescriptor + +class OAuth2MetadataRequest(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class OAuth2MetadataResponse(_message.Message): + __slots__ = ["issuer", "authorization_endpoint", "token_endpoint", "response_types_supported", "scopes_supported", "token_endpoint_auth_methods_supported", "jwks_uri", "code_challenge_methods_supported", "grant_types_supported", "device_authorization_endpoint"] + ISSUER_FIELD_NUMBER: _ClassVar[int] + AUTHORIZATION_ENDPOINT_FIELD_NUMBER: _ClassVar[int] + TOKEN_ENDPOINT_FIELD_NUMBER: _ClassVar[int] + RESPONSE_TYPES_SUPPORTED_FIELD_NUMBER: _ClassVar[int] + SCOPES_SUPPORTED_FIELD_NUMBER: _ClassVar[int] + TOKEN_ENDPOINT_AUTH_METHODS_SUPPORTED_FIELD_NUMBER: _ClassVar[int] + JWKS_URI_FIELD_NUMBER: _ClassVar[int] + CODE_CHALLENGE_METHODS_SUPPORTED_FIELD_NUMBER: _ClassVar[int] + GRANT_TYPES_SUPPORTED_FIELD_NUMBER: _ClassVar[int] + DEVICE_AUTHORIZATION_ENDPOINT_FIELD_NUMBER: _ClassVar[int] + issuer: str + authorization_endpoint: str + token_endpoint: str + response_types_supported: _containers.RepeatedScalarFieldContainer[str] + scopes_supported: _containers.RepeatedScalarFieldContainer[str] + token_endpoint_auth_methods_supported: _containers.RepeatedScalarFieldContainer[str] + jwks_uri: str + code_challenge_methods_supported: _containers.RepeatedScalarFieldContainer[str] + grant_types_supported: _containers.RepeatedScalarFieldContainer[str] + device_authorization_endpoint: str + def __init__(self, issuer: _Optional[str] = ..., authorization_endpoint: _Optional[str] = ..., token_endpoint: _Optional[str] = ..., response_types_supported: _Optional[_Iterable[str]] = ..., scopes_supported: _Optional[_Iterable[str]] = ..., token_endpoint_auth_methods_supported: _Optional[_Iterable[str]] = ..., jwks_uri: _Optional[str] = ..., code_challenge_methods_supported: _Optional[_Iterable[str]] = ..., grant_types_supported: _Optional[_Iterable[str]] = ..., device_authorization_endpoint: _Optional[str] = ...) -> None: ... + +class PublicClientAuthConfigRequest(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class PublicClientAuthConfigResponse(_message.Message): + __slots__ = ["client_id", "redirect_uri", "scopes", "authorization_metadata_key", "service_http_endpoint", "audience"] + CLIENT_ID_FIELD_NUMBER: _ClassVar[int] + REDIRECT_URI_FIELD_NUMBER: _ClassVar[int] + SCOPES_FIELD_NUMBER: _ClassVar[int] + AUTHORIZATION_METADATA_KEY_FIELD_NUMBER: _ClassVar[int] + SERVICE_HTTP_ENDPOINT_FIELD_NUMBER: _ClassVar[int] + AUDIENCE_FIELD_NUMBER: _ClassVar[int] + client_id: str + redirect_uri: str + scopes: _containers.RepeatedScalarFieldContainer[str] + authorization_metadata_key: str + service_http_endpoint: str + audience: str + def __init__(self, client_id: _Optional[str] = ..., redirect_uri: _Optional[str] = ..., scopes: _Optional[_Iterable[str]] = ..., authorization_metadata_key: _Optional[str] = ..., service_http_endpoint: _Optional[str] = ..., audience: _Optional[str] = ...) -> None: ... diff --git a/build/lib/flyteidl/service/auth_pb2_grpc.py b/build/lib/flyteidl/service/auth_pb2_grpc.py new file mode 100644 index 000000000..155b8ca57 --- /dev/null +++ b/build/lib/flyteidl/service/auth_pb2_grpc.py @@ -0,0 +1,111 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from flyteidl.service import auth_pb2 as flyteidl_dot_service_dot_auth__pb2 + + +class AuthMetadataServiceStub(object): + """The following defines an RPC service that is also served over HTTP via grpc-gateway. + Standard response codes for both are defined here: https://github.com/grpc-ecosystem/grpc-gateway/blob/master/runtime/errors.go + RPCs defined in this service must be anonymously accessible. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetOAuth2Metadata = channel.unary_unary( + '/flyteidl.service.AuthMetadataService/GetOAuth2Metadata', + request_serializer=flyteidl_dot_service_dot_auth__pb2.OAuth2MetadataRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_auth__pb2.OAuth2MetadataResponse.FromString, + ) + self.GetPublicClientConfig = channel.unary_unary( + '/flyteidl.service.AuthMetadataService/GetPublicClientConfig', + request_serializer=flyteidl_dot_service_dot_auth__pb2.PublicClientAuthConfigRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_auth__pb2.PublicClientAuthConfigResponse.FromString, + ) + + +class AuthMetadataServiceServicer(object): + """The following defines an RPC service that is also served over HTTP via grpc-gateway. + Standard response codes for both are defined here: https://github.com/grpc-ecosystem/grpc-gateway/blob/master/runtime/errors.go + RPCs defined in this service must be anonymously accessible. + """ + + def GetOAuth2Metadata(self, request, context): + """Anonymously accessible. Retrieves local or external oauth authorization server metadata. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetPublicClientConfig(self, request, context): + """Anonymously accessible. Retrieves the client information clients should use when initiating OAuth2 authorization + requests. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AuthMetadataServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetOAuth2Metadata': grpc.unary_unary_rpc_method_handler( + servicer.GetOAuth2Metadata, + request_deserializer=flyteidl_dot_service_dot_auth__pb2.OAuth2MetadataRequest.FromString, + response_serializer=flyteidl_dot_service_dot_auth__pb2.OAuth2MetadataResponse.SerializeToString, + ), + 'GetPublicClientConfig': grpc.unary_unary_rpc_method_handler( + servicer.GetPublicClientConfig, + request_deserializer=flyteidl_dot_service_dot_auth__pb2.PublicClientAuthConfigRequest.FromString, + response_serializer=flyteidl_dot_service_dot_auth__pb2.PublicClientAuthConfigResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'flyteidl.service.AuthMetadataService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AuthMetadataService(object): + """The following defines an RPC service that is also served over HTTP via grpc-gateway. + Standard response codes for both are defined here: https://github.com/grpc-ecosystem/grpc-gateway/blob/master/runtime/errors.go + RPCs defined in this service must be anonymously accessible. + """ + + @staticmethod + def GetOAuth2Metadata(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AuthMetadataService/GetOAuth2Metadata', + flyteidl_dot_service_dot_auth__pb2.OAuth2MetadataRequest.SerializeToString, + flyteidl_dot_service_dot_auth__pb2.OAuth2MetadataResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetPublicClientConfig(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.AuthMetadataService/GetPublicClientConfig', + flyteidl_dot_service_dot_auth__pb2.PublicClientAuthConfigRequest.SerializeToString, + flyteidl_dot_service_dot_auth__pb2.PublicClientAuthConfigResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/build/lib/flyteidl/service/dataproxy_pb2.py b/build/lib/flyteidl/service/dataproxy_pb2.py new file mode 100644 index 000000000..a8f41072b --- /dev/null +++ b/build/lib/flyteidl/service/dataproxy_pb2.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/service/dataproxy.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/service/dataproxy.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\"\x97\x01\n\x1c\x43reateUploadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x1d\n\nnative_url\x18\x02 \x01(\tR\tnativeUrl\x12\x39\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"\xeb\x01\n\x1b\x43reateUploadLocationRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08\x66ilename\x18\x03 \x01(\tR\x08\x66ilename\x12\x38\n\nexpires_in\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12\x1f\n\x0b\x63ontent_md5\x18\x05 \x01(\x0cR\ncontentMd5\x12#\n\rfilename_root\x18\x06 \x01(\tR\x0c\x66ilenameRoot\"|\n\x1d\x43reateDownloadLocationRequest\x12\x1d\n\nnative_url\x18\x01 \x01(\tR\tnativeUrl\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn:\x02\x18\x01\"~\n\x1e\x43reateDownloadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt:\x02\x18\x01\"\xfa\x01\n\x19\x43reateDownloadLinkRequest\x12\x43\n\rartifact_type\x18\x01 \x01(\x0e\x32\x1e.flyteidl.service.ArtifactTypeR\x0c\x61rtifactType\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12T\n\x11node_execution_id\x18\x03 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierH\x00R\x0fnodeExecutionIdB\x08\n\x06source\"\xc7\x01\n\x1a\x43reateDownloadLinkResponse\x12!\n\nsigned_url\x18\x01 \x03(\tB\x02\x18\x01R\tsignedUrl\x12=\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01R\texpiresAt\x12G\n\x0fpre_signed_urls\x18\x03 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsR\rpreSignedUrls\"i\n\rPreSignedURLs\x12\x1d\n\nsigned_url\x18\x01 \x03(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"-\n\x0eGetDataRequest\x12\x1b\n\tflyte_url\x18\x01 \x01(\tR\x08\x66lyteUrl\"\xd6\x01\n\x0fGetDataResponse\x12<\n\x0bliteral_map\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\nliteralMap\x12I\n\x0fpre_signed_urls\x18\x02 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsH\x00R\rpreSignedUrls\x12\x32\n\x07literal\x18\x03 \x01(\x0b\x32\x16.flyteidl.core.LiteralH\x00R\x07literalB\x06\n\x04\x64\x61ta*C\n\x0c\x41rtifactType\x12\x1b\n\x17\x41RTIFACT_TYPE_UNDEFINED\x10\x00\x12\x16\n\x12\x41RTIFACT_TYPE_DECK\x10\x01\x32\xe2\x04\n\x10\x44\x61taProxyService\x12\xa0\x01\n\x14\x43reateUploadLocation\x12-.flyteidl.service.CreateUploadLocationRequest\x1a..flyteidl.service.CreateUploadLocationResponse\")\x82\xd3\xe4\x93\x02#:\x01*\"\x1e/api/v1/dataproxy/artifact_urn\x12\xa6\x01\n\x16\x43reateDownloadLocation\x12/.flyteidl.service.CreateDownloadLocationRequest\x1a\x30.flyteidl.service.CreateDownloadLocationResponse\")\x88\x02\x01\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/dataproxy/artifact_urn\x12\x9b\x01\n\x12\x43reateDownloadLink\x12+.flyteidl.service.CreateDownloadLinkRequest\x1a,.flyteidl.service.CreateDownloadLinkResponse\"*\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v1/dataproxy/artifact_link\x12\x64\n\x07GetData\x12 .flyteidl.service.GetDataRequest\x1a!.flyteidl.service.GetDataResponse\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v1/dataB\xc0\x01\n\x14\x63om.flyteidl.serviceB\x0e\x44\x61taproxyProtoP\x01Z7github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.service.dataproxy_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\016DataproxyProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' + _CREATEDOWNLOADLOCATIONREQUEST._options = None + _CREATEDOWNLOADLOCATIONREQUEST._serialized_options = b'\030\001' + _CREATEDOWNLOADLOCATIONRESPONSE._options = None + _CREATEDOWNLOADLOCATIONRESPONSE._serialized_options = b'\030\001' + _CREATEDOWNLOADLINKRESPONSE.fields_by_name['signed_url']._options = None + _CREATEDOWNLOADLINKRESPONSE.fields_by_name['signed_url']._serialized_options = b'\030\001' + _CREATEDOWNLOADLINKRESPONSE.fields_by_name['expires_at']._options = None + _CREATEDOWNLOADLINKRESPONSE.fields_by_name['expires_at']._serialized_options = b'\030\001' + _DATAPROXYSERVICE.methods_by_name['CreateUploadLocation']._options = None + _DATAPROXYSERVICE.methods_by_name['CreateUploadLocation']._serialized_options = b'\202\323\344\223\002#:\001*\"\036/api/v1/dataproxy/artifact_urn' + _DATAPROXYSERVICE.methods_by_name['CreateDownloadLocation']._options = None + _DATAPROXYSERVICE.methods_by_name['CreateDownloadLocation']._serialized_options = b'\210\002\001\202\323\344\223\002 \022\036/api/v1/dataproxy/artifact_urn' + _DATAPROXYSERVICE.methods_by_name['CreateDownloadLink']._options = None + _DATAPROXYSERVICE.methods_by_name['CreateDownloadLink']._serialized_options = b'\202\323\344\223\002$:\001*\"\037/api/v1/dataproxy/artifact_link' + _DATAPROXYSERVICE.methods_by_name['GetData']._options = None + _DATAPROXYSERVICE.methods_by_name['GetData']._serialized_options = b'\202\323\344\223\002\016\022\014/api/v1/data' + _globals['_ARTIFACTTYPE']._serialized_start=1683 + _globals['_ARTIFACTTYPE']._serialized_end=1750 + _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_start=212 + _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_end=363 + _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_start=366 + _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_end=601 + _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_start=603 + _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_end=727 + _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_start=729 + _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_end=855 + _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_start=858 + _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_end=1108 + _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_start=1111 + _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_end=1310 + _globals['_PRESIGNEDURLS']._serialized_start=1312 + _globals['_PRESIGNEDURLS']._serialized_end=1417 + _globals['_GETDATAREQUEST']._serialized_start=1419 + _globals['_GETDATAREQUEST']._serialized_end=1464 + _globals['_GETDATARESPONSE']._serialized_start=1467 + _globals['_GETDATARESPONSE']._serialized_end=1681 + _globals['_DATAPROXYSERVICE']._serialized_start=1753 + _globals['_DATAPROXYSERVICE']._serialized_end=2363 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/service/dataproxy_pb2.pyi b/build/lib/flyteidl/service/dataproxy_pb2.pyi new file mode 100644 index 000000000..820034751 --- /dev/null +++ b/build/lib/flyteidl/service/dataproxy_pb2.pyi @@ -0,0 +1,105 @@ +from google.api import annotations_pb2 as _annotations_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class ArtifactType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + ARTIFACT_TYPE_UNDEFINED: _ClassVar[ArtifactType] + ARTIFACT_TYPE_DECK: _ClassVar[ArtifactType] +ARTIFACT_TYPE_UNDEFINED: ArtifactType +ARTIFACT_TYPE_DECK: ArtifactType + +class CreateUploadLocationResponse(_message.Message): + __slots__ = ["signed_url", "native_url", "expires_at"] + SIGNED_URL_FIELD_NUMBER: _ClassVar[int] + NATIVE_URL_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + signed_url: str + native_url: str + expires_at: _timestamp_pb2.Timestamp + def __init__(self, signed_url: _Optional[str] = ..., native_url: _Optional[str] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class CreateUploadLocationRequest(_message.Message): + __slots__ = ["project", "domain", "filename", "expires_in", "content_md5", "filename_root"] + PROJECT_FIELD_NUMBER: _ClassVar[int] + DOMAIN_FIELD_NUMBER: _ClassVar[int] + FILENAME_FIELD_NUMBER: _ClassVar[int] + EXPIRES_IN_FIELD_NUMBER: _ClassVar[int] + CONTENT_MD5_FIELD_NUMBER: _ClassVar[int] + FILENAME_ROOT_FIELD_NUMBER: _ClassVar[int] + project: str + domain: str + filename: str + expires_in: _duration_pb2.Duration + content_md5: bytes + filename_root: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., filename: _Optional[str] = ..., expires_in: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., content_md5: _Optional[bytes] = ..., filename_root: _Optional[str] = ...) -> None: ... + +class CreateDownloadLocationRequest(_message.Message): + __slots__ = ["native_url", "expires_in"] + NATIVE_URL_FIELD_NUMBER: _ClassVar[int] + EXPIRES_IN_FIELD_NUMBER: _ClassVar[int] + native_url: str + expires_in: _duration_pb2.Duration + def __init__(self, native_url: _Optional[str] = ..., expires_in: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... + +class CreateDownloadLocationResponse(_message.Message): + __slots__ = ["signed_url", "expires_at"] + SIGNED_URL_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + signed_url: str + expires_at: _timestamp_pb2.Timestamp + def __init__(self, signed_url: _Optional[str] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class CreateDownloadLinkRequest(_message.Message): + __slots__ = ["artifact_type", "expires_in", "node_execution_id"] + ARTIFACT_TYPE_FIELD_NUMBER: _ClassVar[int] + EXPIRES_IN_FIELD_NUMBER: _ClassVar[int] + NODE_EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + artifact_type: ArtifactType + expires_in: _duration_pb2.Duration + node_execution_id: _identifier_pb2.NodeExecutionIdentifier + def __init__(self, artifact_type: _Optional[_Union[ArtifactType, str]] = ..., expires_in: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., node_execution_id: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ...) -> None: ... + +class CreateDownloadLinkResponse(_message.Message): + __slots__ = ["signed_url", "expires_at", "pre_signed_urls"] + SIGNED_URL_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + PRE_SIGNED_URLS_FIELD_NUMBER: _ClassVar[int] + signed_url: _containers.RepeatedScalarFieldContainer[str] + expires_at: _timestamp_pb2.Timestamp + pre_signed_urls: PreSignedURLs + def __init__(self, signed_url: _Optional[_Iterable[str]] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., pre_signed_urls: _Optional[_Union[PreSignedURLs, _Mapping]] = ...) -> None: ... + +class PreSignedURLs(_message.Message): + __slots__ = ["signed_url", "expires_at"] + SIGNED_URL_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + signed_url: _containers.RepeatedScalarFieldContainer[str] + expires_at: _timestamp_pb2.Timestamp + def __init__(self, signed_url: _Optional[_Iterable[str]] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class GetDataRequest(_message.Message): + __slots__ = ["flyte_url"] + FLYTE_URL_FIELD_NUMBER: _ClassVar[int] + flyte_url: str + def __init__(self, flyte_url: _Optional[str] = ...) -> None: ... + +class GetDataResponse(_message.Message): + __slots__ = ["literal_map", "pre_signed_urls", "literal"] + LITERAL_MAP_FIELD_NUMBER: _ClassVar[int] + PRE_SIGNED_URLS_FIELD_NUMBER: _ClassVar[int] + LITERAL_FIELD_NUMBER: _ClassVar[int] + literal_map: _literals_pb2.LiteralMap + pre_signed_urls: PreSignedURLs + literal: _literals_pb2.Literal + def __init__(self, literal_map: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., pre_signed_urls: _Optional[_Union[PreSignedURLs, _Mapping]] = ..., literal: _Optional[_Union[_literals_pb2.Literal, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/service/dataproxy_pb2_grpc.py b/build/lib/flyteidl/service/dataproxy_pb2_grpc.py new file mode 100644 index 000000000..601d1cbf5 --- /dev/null +++ b/build/lib/flyteidl/service/dataproxy_pb2_grpc.py @@ -0,0 +1,171 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from flyteidl.service import dataproxy_pb2 as flyteidl_dot_service_dot_dataproxy__pb2 + + +class DataProxyServiceStub(object): + """DataProxyService defines an RPC Service that allows access to user-data in a controlled manner. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.CreateUploadLocation = channel.unary_unary( + '/flyteidl.service.DataProxyService/CreateUploadLocation', + request_serializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateUploadLocationRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateUploadLocationResponse.FromString, + ) + self.CreateDownloadLocation = channel.unary_unary( + '/flyteidl.service.DataProxyService/CreateDownloadLocation', + request_serializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLocationRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLocationResponse.FromString, + ) + self.CreateDownloadLink = channel.unary_unary( + '/flyteidl.service.DataProxyService/CreateDownloadLink', + request_serializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkResponse.FromString, + ) + self.GetData = channel.unary_unary( + '/flyteidl.service.DataProxyService/GetData', + request_serializer=flyteidl_dot_service_dot_dataproxy__pb2.GetDataRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.GetDataResponse.FromString, + ) + + +class DataProxyServiceServicer(object): + """DataProxyService defines an RPC Service that allows access to user-data in a controlled manner. + """ + + def CreateUploadLocation(self, request, context): + """CreateUploadLocation creates a signed url to upload artifacts to for a given project/domain. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateDownloadLocation(self, request, context): + """CreateDownloadLocation creates a signed url to download artifacts. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateDownloadLink(self, request, context): + """CreateDownloadLocation creates a signed url to download artifacts. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetData(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DataProxyServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'CreateUploadLocation': grpc.unary_unary_rpc_method_handler( + servicer.CreateUploadLocation, + request_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateUploadLocationRequest.FromString, + response_serializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateUploadLocationResponse.SerializeToString, + ), + 'CreateDownloadLocation': grpc.unary_unary_rpc_method_handler( + servicer.CreateDownloadLocation, + request_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLocationRequest.FromString, + response_serializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLocationResponse.SerializeToString, + ), + 'CreateDownloadLink': grpc.unary_unary_rpc_method_handler( + servicer.CreateDownloadLink, + request_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkRequest.FromString, + response_serializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkResponse.SerializeToString, + ), + 'GetData': grpc.unary_unary_rpc_method_handler( + servicer.GetData, + request_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.GetDataRequest.FromString, + response_serializer=flyteidl_dot_service_dot_dataproxy__pb2.GetDataResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'flyteidl.service.DataProxyService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class DataProxyService(object): + """DataProxyService defines an RPC Service that allows access to user-data in a controlled manner. + """ + + @staticmethod + def CreateUploadLocation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.DataProxyService/CreateUploadLocation', + flyteidl_dot_service_dot_dataproxy__pb2.CreateUploadLocationRequest.SerializeToString, + flyteidl_dot_service_dot_dataproxy__pb2.CreateUploadLocationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateDownloadLocation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.DataProxyService/CreateDownloadLocation', + flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLocationRequest.SerializeToString, + flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLocationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateDownloadLink(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.DataProxyService/CreateDownloadLink', + flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkRequest.SerializeToString, + flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetData(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.DataProxyService/GetData', + flyteidl_dot_service_dot_dataproxy__pb2.GetDataRequest.SerializeToString, + flyteidl_dot_service_dot_dataproxy__pb2.GetDataResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/build/lib/flyteidl/service/external_plugin_service_pb2.py b/build/lib/flyteidl/service/external_plugin_service_pb2.py new file mode 100644 index 000000000..a6558228d --- /dev/null +++ b/build/lib/flyteidl/service/external_plugin_service_pb2.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/service/external_plugin_service.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +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\xcc\x01\n\x14\x63om.flyteidl.serviceB\x1a\x45xternalPluginServiceProtoP\x01Z7github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.service.external_plugin_service_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\032ExternalPluginServiceProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' + _STATE._options = None + _STATE._serialized_options = b'\030\001' + _TASKCREATEREQUEST._options = None + _TASKCREATEREQUEST._serialized_options = b'\030\001' + _TASKCREATERESPONSE._options = None + _TASKCREATERESPONSE._serialized_options = b'\030\001' + _TASKGETREQUEST._options = None + _TASKGETREQUEST._serialized_options = b'\030\001' + _TASKGETRESPONSE._options = None + _TASKGETRESPONSE._serialized_options = b'\030\001' + _TASKDELETEREQUEST._options = None + _TASKDELETEREQUEST._serialized_options = b'\030\001' + _TASKDELETERESPONSE._options = None + _TASKDELETERESPONSE._serialized_options = b'\030\001' + _EXTERNALPLUGINSERVICE.methods_by_name['CreateTask']._options = None + _EXTERNALPLUGINSERVICE.methods_by_name['CreateTask']._serialized_options = b'\210\002\001' + _EXTERNALPLUGINSERVICE.methods_by_name['GetTask']._options = None + _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 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/service/external_plugin_service_pb2.pyi b/build/lib/flyteidl/service/external_plugin_service_pb2.pyi new file mode 100644 index 000000000..b5163a8bf --- /dev/null +++ b/build/lib/flyteidl/service/external_plugin_service_pb2.pyi @@ -0,0 +1,66 @@ +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 +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class State(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + RETRYABLE_FAILURE: _ClassVar[State] + PERMANENT_FAILURE: _ClassVar[State] + PENDING: _ClassVar[State] + RUNNING: _ClassVar[State] + SUCCEEDED: _ClassVar[State] +RETRYABLE_FAILURE: State +PERMANENT_FAILURE: State +PENDING: State +RUNNING: State +SUCCEEDED: State + +class TaskCreateRequest(_message.Message): + __slots__ = ["inputs", "template", "output_prefix"] + INPUTS_FIELD_NUMBER: _ClassVar[int] + TEMPLATE_FIELD_NUMBER: _ClassVar[int] + OUTPUT_PREFIX_FIELD_NUMBER: _ClassVar[int] + inputs: _literals_pb2.LiteralMap + template: _tasks_pb2.TaskTemplate + output_prefix: str + def __init__(self, inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., template: _Optional[_Union[_tasks_pb2.TaskTemplate, _Mapping]] = ..., output_prefix: _Optional[str] = ...) -> None: ... + +class TaskCreateResponse(_message.Message): + __slots__ = ["job_id"] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + job_id: str + def __init__(self, job_id: _Optional[str] = ...) -> None: ... + +class TaskGetRequest(_message.Message): + __slots__ = ["task_type", "job_id"] + TASK_TYPE_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + task_type: str + job_id: str + def __init__(self, task_type: _Optional[str] = ..., job_id: _Optional[str] = ...) -> None: ... + +class TaskGetResponse(_message.Message): + __slots__ = ["state", "outputs"] + STATE_FIELD_NUMBER: _ClassVar[int] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + state: State + outputs: _literals_pb2.LiteralMap + def __init__(self, state: _Optional[_Union[State, str]] = ..., outputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ...) -> None: ... + +class TaskDeleteRequest(_message.Message): + __slots__ = ["task_type", "job_id"] + TASK_TYPE_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + task_type: str + job_id: str + def __init__(self, task_type: _Optional[str] = ..., job_id: _Optional[str] = ...) -> None: ... + +class TaskDeleteResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... diff --git a/build/lib/flyteidl/service/external_plugin_service_pb2_grpc.py b/build/lib/flyteidl/service/external_plugin_service_pb2_grpc.py new file mode 100644 index 000000000..6607d3671 --- /dev/null +++ b/build/lib/flyteidl/service/external_plugin_service_pb2_grpc.py @@ -0,0 +1,138 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from flyteidl.service import external_plugin_service_pb2 as flyteidl_dot_service_dot_external__plugin__service__pb2 + + +class ExternalPluginServiceStub(object): + """ExternalPluginService defines an RPC Service that allows propeller to send the request to the backend plugin server. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.CreateTask = channel.unary_unary( + '/flyteidl.service.ExternalPluginService/CreateTask', + request_serializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskCreateRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskCreateResponse.FromString, + ) + self.GetTask = channel.unary_unary( + '/flyteidl.service.ExternalPluginService/GetTask', + request_serializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskGetRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskGetResponse.FromString, + ) + self.DeleteTask = channel.unary_unary( + '/flyteidl.service.ExternalPluginService/DeleteTask', + request_serializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskDeleteRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskDeleteResponse.FromString, + ) + + +class ExternalPluginServiceServicer(object): + """ExternalPluginService defines an RPC Service that allows propeller to send the request to the backend plugin server. + """ + + def CreateTask(self, request, context): + """Send a task create request to the backend plugin server. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetTask(self, request, context): + """Get job status. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteTask(self, request, context): + """Delete the task resource. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ExternalPluginServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'CreateTask': grpc.unary_unary_rpc_method_handler( + servicer.CreateTask, + request_deserializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskCreateRequest.FromString, + response_serializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskCreateResponse.SerializeToString, + ), + 'GetTask': grpc.unary_unary_rpc_method_handler( + servicer.GetTask, + request_deserializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskGetRequest.FromString, + response_serializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskGetResponse.SerializeToString, + ), + 'DeleteTask': grpc.unary_unary_rpc_method_handler( + servicer.DeleteTask, + request_deserializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskDeleteRequest.FromString, + response_serializer=flyteidl_dot_service_dot_external__plugin__service__pb2.TaskDeleteResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'flyteidl.service.ExternalPluginService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ExternalPluginService(object): + """ExternalPluginService defines an RPC Service that allows propeller to send the request to the backend plugin server. + """ + + @staticmethod + def CreateTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.ExternalPluginService/CreateTask', + flyteidl_dot_service_dot_external__plugin__service__pb2.TaskCreateRequest.SerializeToString, + flyteidl_dot_service_dot_external__plugin__service__pb2.TaskCreateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.ExternalPluginService/GetTask', + flyteidl_dot_service_dot_external__plugin__service__pb2.TaskGetRequest.SerializeToString, + flyteidl_dot_service_dot_external__plugin__service__pb2.TaskGetResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteTask(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.ExternalPluginService/DeleteTask', + flyteidl_dot_service_dot_external__plugin__service__pb2.TaskDeleteRequest.SerializeToString, + flyteidl_dot_service_dot_external__plugin__service__pb2.TaskDeleteResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/build/lib/flyteidl/service/identity_pb2.py b/build/lib/flyteidl/service/identity_pb2.py new file mode 100644 index 000000000..a030b6ad6 --- /dev/null +++ b/build/lib/flyteidl/service/identity_pb2.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/service/identity.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66lyteidl/service/identity.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\"\x11\n\x0fUserInfoRequest\"\xa5\x02\n\x10UserInfoResponse\x12\x18\n\x07subject\x18\x01 \x01(\tR\x07subject\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12-\n\x12preferred_username\x18\x03 \x01(\tR\x11preferredUsername\x12\x1d\n\ngiven_name\x18\x04 \x01(\tR\tgivenName\x12\x1f\n\x0b\x66\x61mily_name\x18\x05 \x01(\tR\nfamilyName\x12\x14\n\x05\x65mail\x18\x06 \x01(\tR\x05\x65mail\x12\x18\n\x07picture\x18\x07 \x01(\tR\x07picture\x12\x44\n\x11\x61\x64\x64itional_claims\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructR\x10\x61\x64\x64itionalClaims2q\n\x0fIdentityService\x12^\n\x08UserInfo\x12!.flyteidl.service.UserInfoRequest\x1a\".flyteidl.service.UserInfoResponse\"\x0b\x82\xd3\xe4\x93\x02\x05\x12\x03/meB\xbf\x01\n\x14\x63om.flyteidl.serviceB\rIdentityProtoP\x01Z7github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.service.identity_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\rIdentityProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' + _IDENTITYSERVICE.methods_by_name['UserInfo']._options = None + _IDENTITYSERVICE.methods_by_name['UserInfo']._serialized_options = b'\202\323\344\223\002\005\022\003/me' + _globals['_USERINFOREQUEST']._serialized_start=113 + _globals['_USERINFOREQUEST']._serialized_end=130 + _globals['_USERINFORESPONSE']._serialized_start=133 + _globals['_USERINFORESPONSE']._serialized_end=426 + _globals['_IDENTITYSERVICE']._serialized_start=428 + _globals['_IDENTITYSERVICE']._serialized_end=541 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/service/identity_pb2.pyi b/build/lib/flyteidl/service/identity_pb2.pyi new file mode 100644 index 000000000..34b64ae3a --- /dev/null +++ b/build/lib/flyteidl/service/identity_pb2.pyi @@ -0,0 +1,31 @@ +from google.api import annotations_pb2 as _annotations_pb2 +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class UserInfoRequest(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class UserInfoResponse(_message.Message): + __slots__ = ["subject", "name", "preferred_username", "given_name", "family_name", "email", "picture", "additional_claims"] + SUBJECT_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + PREFERRED_USERNAME_FIELD_NUMBER: _ClassVar[int] + GIVEN_NAME_FIELD_NUMBER: _ClassVar[int] + FAMILY_NAME_FIELD_NUMBER: _ClassVar[int] + EMAIL_FIELD_NUMBER: _ClassVar[int] + PICTURE_FIELD_NUMBER: _ClassVar[int] + ADDITIONAL_CLAIMS_FIELD_NUMBER: _ClassVar[int] + subject: str + name: str + preferred_username: str + given_name: str + family_name: str + email: str + picture: str + additional_claims: _struct_pb2.Struct + def __init__(self, subject: _Optional[str] = ..., name: _Optional[str] = ..., preferred_username: _Optional[str] = ..., given_name: _Optional[str] = ..., family_name: _Optional[str] = ..., email: _Optional[str] = ..., picture: _Optional[str] = ..., additional_claims: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... diff --git a/build/lib/flyteidl/service/identity_pb2_grpc.py b/build/lib/flyteidl/service/identity_pb2_grpc.py new file mode 100644 index 000000000..0754d44ff --- /dev/null +++ b/build/lib/flyteidl/service/identity_pb2_grpc.py @@ -0,0 +1,70 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from flyteidl.service import identity_pb2 as flyteidl_dot_service_dot_identity__pb2 + + +class IdentityServiceStub(object): + """IdentityService defines an RPC Service that interacts with user/app identities. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UserInfo = channel.unary_unary( + '/flyteidl.service.IdentityService/UserInfo', + request_serializer=flyteidl_dot_service_dot_identity__pb2.UserInfoRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_identity__pb2.UserInfoResponse.FromString, + ) + + +class IdentityServiceServicer(object): + """IdentityService defines an RPC Service that interacts with user/app identities. + """ + + def UserInfo(self, request, context): + """Retrieves user information about the currently logged in user. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_IdentityServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'UserInfo': grpc.unary_unary_rpc_method_handler( + servicer.UserInfo, + request_deserializer=flyteidl_dot_service_dot_identity__pb2.UserInfoRequest.FromString, + response_serializer=flyteidl_dot_service_dot_identity__pb2.UserInfoResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'flyteidl.service.IdentityService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class IdentityService(object): + """IdentityService defines an RPC Service that interacts with user/app identities. + """ + + @staticmethod + def UserInfo(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.IdentityService/UserInfo', + flyteidl_dot_service_dot_identity__pb2.UserInfoRequest.SerializeToString, + flyteidl_dot_service_dot_identity__pb2.UserInfoResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/build/lib/flyteidl/service/signal_pb2.py b/build/lib/flyteidl/service/signal_pb2.py new file mode 100644 index 000000000..193e7d21d --- /dev/null +++ b/build/lib/flyteidl/service/signal_pb2.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/service/signal.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from flyteidl.admin import signal_pb2 as flyteidl_dot_admin_dot_signal__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/service/signal.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1b\x66lyteidl/admin/signal.proto2\x9a\x03\n\rSignalService\x12W\n\x11GetOrCreateSignal\x12(.flyteidl.admin.SignalGetOrCreateRequest\x1a\x16.flyteidl.admin.Signal\"\x00\x12\xc1\x01\n\x0bListSignals\x12!.flyteidl.admin.SignalListRequest\x1a\x1a.flyteidl.admin.SignalList\"s\x82\xd3\xe4\x93\x02m\x12k/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12l\n\tSetSignal\x12 .flyteidl.admin.SignalSetRequest\x1a!.flyteidl.admin.SignalSetResponse\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/api/v1/signalsB\xbd\x01\n\x14\x63om.flyteidl.serviceB\x0bSignalProtoP\x01Z7github.com/flyteorg/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.service.signal_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\013SignalProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' + _SIGNALSERVICE.methods_by_name['ListSignals']._options = None + _SIGNALSERVICE.methods_by_name['ListSignals']._serialized_options = b'\202\323\344\223\002m\022k/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}' + _SIGNALSERVICE.methods_by_name['SetSignal']._options = None + _SIGNALSERVICE.methods_by_name['SetSignal']._serialized_options = b'\202\323\344\223\002\024:\001*\"\017/api/v1/signals' + _globals['_SIGNALSERVICE']._serialized_start=111 + _globals['_SIGNALSERVICE']._serialized_end=521 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/flyteidl/service/signal_pb2.pyi b/build/lib/flyteidl/service/signal_pb2.pyi new file mode 100644 index 000000000..794a8d4d3 --- /dev/null +++ b/build/lib/flyteidl/service/signal_pb2.pyi @@ -0,0 +1,6 @@ +from google.api import annotations_pb2 as _annotations_pb2 +from flyteidl.admin import signal_pb2 as _signal_pb2 +from google.protobuf import descriptor as _descriptor +from typing import ClassVar as _ClassVar + +DESCRIPTOR: _descriptor.FileDescriptor diff --git a/build/lib/flyteidl/service/signal_pb2_grpc.py b/build/lib/flyteidl/service/signal_pb2_grpc.py new file mode 100644 index 000000000..05c27fb00 --- /dev/null +++ b/build/lib/flyteidl/service/signal_pb2_grpc.py @@ -0,0 +1,145 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from flyteidl.admin import signal_pb2 as flyteidl_dot_admin_dot_signal__pb2 + + +class SignalServiceStub(object): + """SignalService defines an RPC Service that may create, update, and retrieve signal(s). + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetOrCreateSignal = channel.unary_unary( + '/flyteidl.service.SignalService/GetOrCreateSignal', + request_serializer=flyteidl_dot_admin_dot_signal__pb2.SignalGetOrCreateRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_signal__pb2.Signal.FromString, + ) + self.ListSignals = channel.unary_unary( + '/flyteidl.service.SignalService/ListSignals', + request_serializer=flyteidl_dot_admin_dot_signal__pb2.SignalListRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_signal__pb2.SignalList.FromString, + ) + self.SetSignal = channel.unary_unary( + '/flyteidl.service.SignalService/SetSignal', + request_serializer=flyteidl_dot_admin_dot_signal__pb2.SignalSetRequest.SerializeToString, + response_deserializer=flyteidl_dot_admin_dot_signal__pb2.SignalSetResponse.FromString, + ) + + +class SignalServiceServicer(object): + """SignalService defines an RPC Service that may create, update, and retrieve signal(s). + """ + + def GetOrCreateSignal(self, request, context): + """Fetches or creates a :ref:`ref_flyteidl.admin.Signal`. + Purposefully left out an HTTP API for this RPC call. This is meant to idempotently retrieve + a signal, meaning the first call will create the signal and all subsequent calls will + fetch the existing signal. This is only useful during Flyte Workflow execution and therefore + is not exposed to mitigate unintended behavior. + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "Retrieve a signal, creating it if it does not exist." + }; + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListSignals(self, request, context): + """Fetch a list of :ref:`ref_flyteidl.admin.Signal` definitions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetSignal(self, request, context): + """Sets the value on a :ref:`ref_flyteidl.admin.Signal` definition + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_SignalServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetOrCreateSignal': grpc.unary_unary_rpc_method_handler( + servicer.GetOrCreateSignal, + request_deserializer=flyteidl_dot_admin_dot_signal__pb2.SignalGetOrCreateRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_signal__pb2.Signal.SerializeToString, + ), + 'ListSignals': grpc.unary_unary_rpc_method_handler( + servicer.ListSignals, + request_deserializer=flyteidl_dot_admin_dot_signal__pb2.SignalListRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_signal__pb2.SignalList.SerializeToString, + ), + 'SetSignal': grpc.unary_unary_rpc_method_handler( + servicer.SetSignal, + request_deserializer=flyteidl_dot_admin_dot_signal__pb2.SignalSetRequest.FromString, + response_serializer=flyteidl_dot_admin_dot_signal__pb2.SignalSetResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'flyteidl.service.SignalService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class SignalService(object): + """SignalService defines an RPC Service that may create, update, and retrieve signal(s). + """ + + @staticmethod + def GetOrCreateSignal(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.SignalService/GetOrCreateSignal', + flyteidl_dot_admin_dot_signal__pb2.SignalGetOrCreateRequest.SerializeToString, + flyteidl_dot_admin_dot_signal__pb2.Signal.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListSignals(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.SignalService/ListSignals', + flyteidl_dot_admin_dot_signal__pb2.SignalListRequest.SerializeToString, + flyteidl_dot_admin_dot_signal__pb2.SignalList.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetSignal(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.SignalService/SetSignal', + flyteidl_dot_admin_dot_signal__pb2.SignalSetRequest.SerializeToString, + flyteidl_dot_admin_dot_signal__pb2.SignalSetResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/build/lib/validate/__init__.py b/build/lib/validate/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/build/lib/validate/validate_pb2.py b/build/lib/validate/validate_pb2.py new file mode 100644 index 000000000..73988e7c3 --- /dev/null +++ b/build/lib/validate/validate_pb2.py @@ -0,0 +1,2366 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: validate/validate.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf.internal import enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='validate/validate.proto', + package='validate', + syntax='proto2', + serialized_options=_b('\n\032io.envoyproxy.pgv.validateZ2github.com/envoyproxy/protoc-gen-validate/validate'), + serialized_pb=_b('\n\x17validate/validate.proto\x12\x08validate\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x98\x07\n\nFieldRules\x12\'\n\x07message\x18\x11 \x01(\x0b\x32\x16.validate.MessageRules\x12%\n\x05\x66loat\x18\x01 \x01(\x0b\x32\x14.validate.FloatRulesH\x00\x12\'\n\x06\x64ouble\x18\x02 \x01(\x0b\x32\x15.validate.DoubleRulesH\x00\x12%\n\x05int32\x18\x03 \x01(\x0b\x32\x14.validate.Int32RulesH\x00\x12%\n\x05int64\x18\x04 \x01(\x0b\x32\x14.validate.Int64RulesH\x00\x12\'\n\x06uint32\x18\x05 \x01(\x0b\x32\x15.validate.UInt32RulesH\x00\x12\'\n\x06uint64\x18\x06 \x01(\x0b\x32\x15.validate.UInt64RulesH\x00\x12\'\n\x06sint32\x18\x07 \x01(\x0b\x32\x15.validate.SInt32RulesH\x00\x12\'\n\x06sint64\x18\x08 \x01(\x0b\x32\x15.validate.SInt64RulesH\x00\x12)\n\x07\x66ixed32\x18\t \x01(\x0b\x32\x16.validate.Fixed32RulesH\x00\x12)\n\x07\x66ixed64\x18\n \x01(\x0b\x32\x16.validate.Fixed64RulesH\x00\x12+\n\x08sfixed32\x18\x0b \x01(\x0b\x32\x17.validate.SFixed32RulesH\x00\x12+\n\x08sfixed64\x18\x0c \x01(\x0b\x32\x17.validate.SFixed64RulesH\x00\x12#\n\x04\x62ool\x18\r \x01(\x0b\x32\x13.validate.BoolRulesH\x00\x12\'\n\x06string\x18\x0e \x01(\x0b\x32\x15.validate.StringRulesH\x00\x12%\n\x05\x62ytes\x18\x0f \x01(\x0b\x32\x14.validate.BytesRulesH\x00\x12#\n\x04\x65num\x18\x10 \x01(\x0b\x32\x13.validate.EnumRulesH\x00\x12+\n\x08repeated\x18\x12 \x01(\x0b\x32\x17.validate.RepeatedRulesH\x00\x12!\n\x03map\x18\x13 \x01(\x0b\x32\x12.validate.MapRulesH\x00\x12!\n\x03\x61ny\x18\x14 \x01(\x0b\x32\x12.validate.AnyRulesH\x00\x12+\n\x08\x64uration\x18\x15 \x01(\x0b\x32\x17.validate.DurationRulesH\x00\x12-\n\ttimestamp\x18\x16 \x01(\x0b\x32\x18.validate.TimestampRulesH\x00\x42\x06\n\x04type\"\x7f\n\nFloatRules\x12\r\n\x05\x63onst\x18\x01 \x01(\x02\x12\n\n\x02lt\x18\x02 \x01(\x02\x12\x0b\n\x03lte\x18\x03 \x01(\x02\x12\n\n\x02gt\x18\x04 \x01(\x02\x12\x0b\n\x03gte\x18\x05 \x01(\x02\x12\n\n\x02in\x18\x06 \x03(\x02\x12\x0e\n\x06not_in\x18\x07 \x03(\x02\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x80\x01\n\x0b\x44oubleRules\x12\r\n\x05\x63onst\x18\x01 \x01(\x01\x12\n\n\x02lt\x18\x02 \x01(\x01\x12\x0b\n\x03lte\x18\x03 \x01(\x01\x12\n\n\x02gt\x18\x04 \x01(\x01\x12\x0b\n\x03gte\x18\x05 \x01(\x01\x12\n\n\x02in\x18\x06 \x03(\x01\x12\x0e\n\x06not_in\x18\x07 \x03(\x01\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x7f\n\nInt32Rules\x12\r\n\x05\x63onst\x18\x01 \x01(\x05\x12\n\n\x02lt\x18\x02 \x01(\x05\x12\x0b\n\x03lte\x18\x03 \x01(\x05\x12\n\n\x02gt\x18\x04 \x01(\x05\x12\x0b\n\x03gte\x18\x05 \x01(\x05\x12\n\n\x02in\x18\x06 \x03(\x05\x12\x0e\n\x06not_in\x18\x07 \x03(\x05\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x7f\n\nInt64Rules\x12\r\n\x05\x63onst\x18\x01 \x01(\x03\x12\n\n\x02lt\x18\x02 \x01(\x03\x12\x0b\n\x03lte\x18\x03 \x01(\x03\x12\n\n\x02gt\x18\x04 \x01(\x03\x12\x0b\n\x03gte\x18\x05 \x01(\x03\x12\n\n\x02in\x18\x06 \x03(\x03\x12\x0e\n\x06not_in\x18\x07 \x03(\x03\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x80\x01\n\x0bUInt32Rules\x12\r\n\x05\x63onst\x18\x01 \x01(\r\x12\n\n\x02lt\x18\x02 \x01(\r\x12\x0b\n\x03lte\x18\x03 \x01(\r\x12\n\n\x02gt\x18\x04 \x01(\r\x12\x0b\n\x03gte\x18\x05 \x01(\r\x12\n\n\x02in\x18\x06 \x03(\r\x12\x0e\n\x06not_in\x18\x07 \x03(\r\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x80\x01\n\x0bUInt64Rules\x12\r\n\x05\x63onst\x18\x01 \x01(\x04\x12\n\n\x02lt\x18\x02 \x01(\x04\x12\x0b\n\x03lte\x18\x03 \x01(\x04\x12\n\n\x02gt\x18\x04 \x01(\x04\x12\x0b\n\x03gte\x18\x05 \x01(\x04\x12\n\n\x02in\x18\x06 \x03(\x04\x12\x0e\n\x06not_in\x18\x07 \x03(\x04\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x80\x01\n\x0bSInt32Rules\x12\r\n\x05\x63onst\x18\x01 \x01(\x11\x12\n\n\x02lt\x18\x02 \x01(\x11\x12\x0b\n\x03lte\x18\x03 \x01(\x11\x12\n\n\x02gt\x18\x04 \x01(\x11\x12\x0b\n\x03gte\x18\x05 \x01(\x11\x12\n\n\x02in\x18\x06 \x03(\x11\x12\x0e\n\x06not_in\x18\x07 \x03(\x11\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x80\x01\n\x0bSInt64Rules\x12\r\n\x05\x63onst\x18\x01 \x01(\x12\x12\n\n\x02lt\x18\x02 \x01(\x12\x12\x0b\n\x03lte\x18\x03 \x01(\x12\x12\n\n\x02gt\x18\x04 \x01(\x12\x12\x0b\n\x03gte\x18\x05 \x01(\x12\x12\n\n\x02in\x18\x06 \x03(\x12\x12\x0e\n\x06not_in\x18\x07 \x03(\x12\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x81\x01\n\x0c\x46ixed32Rules\x12\r\n\x05\x63onst\x18\x01 \x01(\x07\x12\n\n\x02lt\x18\x02 \x01(\x07\x12\x0b\n\x03lte\x18\x03 \x01(\x07\x12\n\n\x02gt\x18\x04 \x01(\x07\x12\x0b\n\x03gte\x18\x05 \x01(\x07\x12\n\n\x02in\x18\x06 \x03(\x07\x12\x0e\n\x06not_in\x18\x07 \x03(\x07\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x81\x01\n\x0c\x46ixed64Rules\x12\r\n\x05\x63onst\x18\x01 \x01(\x06\x12\n\n\x02lt\x18\x02 \x01(\x06\x12\x0b\n\x03lte\x18\x03 \x01(\x06\x12\n\n\x02gt\x18\x04 \x01(\x06\x12\x0b\n\x03gte\x18\x05 \x01(\x06\x12\n\n\x02in\x18\x06 \x03(\x06\x12\x0e\n\x06not_in\x18\x07 \x03(\x06\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x82\x01\n\rSFixed32Rules\x12\r\n\x05\x63onst\x18\x01 \x01(\x0f\x12\n\n\x02lt\x18\x02 \x01(\x0f\x12\x0b\n\x03lte\x18\x03 \x01(\x0f\x12\n\n\x02gt\x18\x04 \x01(\x0f\x12\x0b\n\x03gte\x18\x05 \x01(\x0f\x12\n\n\x02in\x18\x06 \x03(\x0f\x12\x0e\n\x06not_in\x18\x07 \x03(\x0f\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x82\x01\n\rSFixed64Rules\x12\r\n\x05\x63onst\x18\x01 \x01(\x10\x12\n\n\x02lt\x18\x02 \x01(\x10\x12\x0b\n\x03lte\x18\x03 \x01(\x10\x12\n\n\x02gt\x18\x04 \x01(\x10\x12\x0b\n\x03gte\x18\x05 \x01(\x10\x12\n\n\x02in\x18\x06 \x03(\x10\x12\x0e\n\x06not_in\x18\x07 \x03(\x10\x12\x14\n\x0cignore_empty\x18\x08 \x01(\x08\"\x1a\n\tBoolRules\x12\r\n\x05\x63onst\x18\x01 \x01(\x08\"\xfd\x03\n\x0bStringRules\x12\r\n\x05\x63onst\x18\x01 \x01(\t\x12\x0b\n\x03len\x18\x13 \x01(\x04\x12\x0f\n\x07min_len\x18\x02 \x01(\x04\x12\x0f\n\x07max_len\x18\x03 \x01(\x04\x12\x11\n\tlen_bytes\x18\x14 \x01(\x04\x12\x11\n\tmin_bytes\x18\x04 \x01(\x04\x12\x11\n\tmax_bytes\x18\x05 \x01(\x04\x12\x0f\n\x07pattern\x18\x06 \x01(\t\x12\x0e\n\x06prefix\x18\x07 \x01(\t\x12\x0e\n\x06suffix\x18\x08 \x01(\t\x12\x10\n\x08\x63ontains\x18\t \x01(\t\x12\x14\n\x0cnot_contains\x18\x17 \x01(\t\x12\n\n\x02in\x18\n \x03(\t\x12\x0e\n\x06not_in\x18\x0b \x03(\t\x12\x0f\n\x05\x65mail\x18\x0c \x01(\x08H\x00\x12\x12\n\x08hostname\x18\r \x01(\x08H\x00\x12\x0c\n\x02ip\x18\x0e \x01(\x08H\x00\x12\x0e\n\x04ipv4\x18\x0f \x01(\x08H\x00\x12\x0e\n\x04ipv6\x18\x10 \x01(\x08H\x00\x12\r\n\x03uri\x18\x11 \x01(\x08H\x00\x12\x11\n\x07uri_ref\x18\x12 \x01(\x08H\x00\x12\x11\n\x07\x61\x64\x64ress\x18\x15 \x01(\x08H\x00\x12\x0e\n\x04uuid\x18\x16 \x01(\x08H\x00\x12\x30\n\x10well_known_regex\x18\x18 \x01(\x0e\x32\x14.validate.KnownRegexH\x00\x12\x14\n\x06strict\x18\x19 \x01(\x08:\x04true\x12\x14\n\x0cignore_empty\x18\x1a \x01(\x08\x42\x0c\n\nwell_known\"\xfb\x01\n\nBytesRules\x12\r\n\x05\x63onst\x18\x01 \x01(\x0c\x12\x0b\n\x03len\x18\r \x01(\x04\x12\x0f\n\x07min_len\x18\x02 \x01(\x04\x12\x0f\n\x07max_len\x18\x03 \x01(\x04\x12\x0f\n\x07pattern\x18\x04 \x01(\t\x12\x0e\n\x06prefix\x18\x05 \x01(\x0c\x12\x0e\n\x06suffix\x18\x06 \x01(\x0c\x12\x10\n\x08\x63ontains\x18\x07 \x01(\x0c\x12\n\n\x02in\x18\x08 \x03(\x0c\x12\x0e\n\x06not_in\x18\t \x03(\x0c\x12\x0c\n\x02ip\x18\n \x01(\x08H\x00\x12\x0e\n\x04ipv4\x18\x0b \x01(\x08H\x00\x12\x0e\n\x04ipv6\x18\x0c \x01(\x08H\x00\x12\x14\n\x0cignore_empty\x18\x0e \x01(\x08\x42\x0c\n\nwell_known\"L\n\tEnumRules\x12\r\n\x05\x63onst\x18\x01 \x01(\x05\x12\x14\n\x0c\x64\x65\x66ined_only\x18\x02 \x01(\x08\x12\n\n\x02in\x18\x03 \x03(\x05\x12\x0e\n\x06not_in\x18\x04 \x03(\x05\".\n\x0cMessageRules\x12\x0c\n\x04skip\x18\x01 \x01(\x08\x12\x10\n\x08required\x18\x02 \x01(\x08\"\x80\x01\n\rRepeatedRules\x12\x11\n\tmin_items\x18\x01 \x01(\x04\x12\x11\n\tmax_items\x18\x02 \x01(\x04\x12\x0e\n\x06unique\x18\x03 \x01(\x08\x12#\n\x05items\x18\x04 \x01(\x0b\x32\x14.validate.FieldRules\x12\x14\n\x0cignore_empty\x18\x05 \x01(\x08\"\xa3\x01\n\x08MapRules\x12\x11\n\tmin_pairs\x18\x01 \x01(\x04\x12\x11\n\tmax_pairs\x18\x02 \x01(\x04\x12\x11\n\tno_sparse\x18\x03 \x01(\x08\x12\"\n\x04keys\x18\x04 \x01(\x0b\x32\x14.validate.FieldRules\x12$\n\x06values\x18\x05 \x01(\x0b\x32\x14.validate.FieldRules\x12\x14\n\x0cignore_empty\x18\x06 \x01(\x08\"8\n\x08\x41nyRules\x12\x10\n\x08required\x18\x01 \x01(\x08\x12\n\n\x02in\x18\x02 \x03(\t\x12\x0e\n\x06not_in\x18\x03 \x03(\t\"\xbb\x02\n\rDurationRules\x12\x10\n\x08required\x18\x01 \x01(\x08\x12(\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12%\n\x02lt\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12&\n\x03lte\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12%\n\x02gt\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12&\n\x03gte\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12%\n\x02in\x18\x07 \x03(\x0b\x32\x19.google.protobuf.Duration\x12)\n\x06not_in\x18\x08 \x03(\x0b\x32\x19.google.protobuf.Duration\"\xba\x02\n\x0eTimestampRules\x12\x10\n\x08required\x18\x01 \x01(\x08\x12)\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12&\n\x02lt\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12&\n\x02gt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x03gte\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06lt_now\x18\x07 \x01(\x08\x12\x0e\n\x06gt_now\x18\x08 \x01(\x08\x12)\n\x06within\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration*F\n\nKnownRegex\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x14\n\x10HTTP_HEADER_NAME\x10\x01\x12\x15\n\x11HTTP_HEADER_VALUE\x10\x02:2\n\x08\x64isabled\x12\x1f.google.protobuf.MessageOptions\x18\xaf\x08 \x01(\x08:1\n\x07ignored\x12\x1f.google.protobuf.MessageOptions\x18\xb0\x08 \x01(\x08:0\n\x08required\x12\x1d.google.protobuf.OneofOptions\x18\xaf\x08 \x01(\x08:C\n\x05rules\x12\x1d.google.protobuf.FieldOptions\x18\xaf\x08 \x01(\x0b\x32\x14.validate.FieldRulesBP\n\x1aio.envoyproxy.pgv.validateZ2github.com/envoyproxy/protoc-gen-validate/validate') + , + dependencies=[google_dot_protobuf_dot_descriptor__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) + +_KNOWNREGEX = _descriptor.EnumDescriptor( + name='KnownRegex', + full_name='validate.KnownRegex', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='HTTP_HEADER_NAME', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='HTTP_HEADER_VALUE', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=4541, + serialized_end=4611, +) +_sym_db.RegisterEnumDescriptor(_KNOWNREGEX) + +KnownRegex = enum_type_wrapper.EnumTypeWrapper(_KNOWNREGEX) +UNKNOWN = 0 +HTTP_HEADER_NAME = 1 +HTTP_HEADER_VALUE = 2 + +DISABLED_FIELD_NUMBER = 1071 +disabled = _descriptor.FieldDescriptor( + name='disabled', full_name='validate.disabled', index=0, + number=1071, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=True, extension_scope=None, + serialized_options=None, file=DESCRIPTOR) +IGNORED_FIELD_NUMBER = 1072 +ignored = _descriptor.FieldDescriptor( + name='ignored', full_name='validate.ignored', index=1, + number=1072, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=True, extension_scope=None, + serialized_options=None, file=DESCRIPTOR) +REQUIRED_FIELD_NUMBER = 1071 +required = _descriptor.FieldDescriptor( + name='required', full_name='validate.required', index=2, + number=1071, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=True, extension_scope=None, + serialized_options=None, file=DESCRIPTOR) +RULES_FIELD_NUMBER = 1071 +rules = _descriptor.FieldDescriptor( + name='rules', full_name='validate.rules', index=3, + number=1071, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=True, extension_scope=None, + serialized_options=None, file=DESCRIPTOR) + + +_FIELDRULES = _descriptor.Descriptor( + name='FieldRules', + full_name='validate.FieldRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='message', full_name='validate.FieldRules.message', index=0, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='float', full_name='validate.FieldRules.float', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='double', full_name='validate.FieldRules.double', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='int32', full_name='validate.FieldRules.int32', index=3, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='int64', full_name='validate.FieldRules.int64', index=4, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='uint32', full_name='validate.FieldRules.uint32', index=5, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='uint64', full_name='validate.FieldRules.uint64', index=6, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sint32', full_name='validate.FieldRules.sint32', index=7, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sint64', full_name='validate.FieldRules.sint64', index=8, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fixed32', full_name='validate.FieldRules.fixed32', index=9, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fixed64', full_name='validate.FieldRules.fixed64', index=10, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sfixed32', full_name='validate.FieldRules.sfixed32', index=11, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sfixed64', full_name='validate.FieldRules.sfixed64', index=12, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bool', full_name='validate.FieldRules.bool', index=13, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='string', full_name='validate.FieldRules.string', index=14, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bytes', full_name='validate.FieldRules.bytes', index=15, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='enum', full_name='validate.FieldRules.enum', index=16, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='repeated', full_name='validate.FieldRules.repeated', index=17, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='map', full_name='validate.FieldRules.map', index=18, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='any', full_name='validate.FieldRules.any', index=19, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='duration', full_name='validate.FieldRules.duration', index=20, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='timestamp', full_name='validate.FieldRules.timestamp', index=21, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='type', full_name='validate.FieldRules.type', + index=0, containing_type=None, fields=[]), + ], + serialized_start=137, + serialized_end=1057, +) + + +_FLOATRULES = _descriptor.Descriptor( + name='FloatRules', + full_name='validate.FloatRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.FloatRules.const', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.FloatRules.lt', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.FloatRules.lte', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.FloatRules.gt', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.FloatRules.gte', index=4, + number=5, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.FloatRules.in', index=5, + number=6, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.FloatRules.not_in', index=6, + number=7, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.FloatRules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1059, + serialized_end=1186, +) + + +_DOUBLERULES = _descriptor.Descriptor( + name='DoubleRules', + full_name='validate.DoubleRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.DoubleRules.const', index=0, + number=1, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.DoubleRules.lt', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.DoubleRules.lte', index=2, + number=3, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.DoubleRules.gt', index=3, + number=4, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.DoubleRules.gte', index=4, + number=5, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.DoubleRules.in', index=5, + number=6, type=1, cpp_type=5, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.DoubleRules.not_in', index=6, + number=7, type=1, cpp_type=5, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.DoubleRules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1189, + serialized_end=1317, +) + + +_INT32RULES = _descriptor.Descriptor( + name='Int32Rules', + full_name='validate.Int32Rules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.Int32Rules.const', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.Int32Rules.lt', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.Int32Rules.lte', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.Int32Rules.gt', index=3, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.Int32Rules.gte', index=4, + number=5, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.Int32Rules.in', index=5, + number=6, type=5, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.Int32Rules.not_in', index=6, + number=7, type=5, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.Int32Rules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1319, + serialized_end=1446, +) + + +_INT64RULES = _descriptor.Descriptor( + name='Int64Rules', + full_name='validate.Int64Rules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.Int64Rules.const', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.Int64Rules.lt', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.Int64Rules.lte', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.Int64Rules.gt', index=3, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.Int64Rules.gte', index=4, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.Int64Rules.in', index=5, + number=6, type=3, cpp_type=2, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.Int64Rules.not_in', index=6, + number=7, type=3, cpp_type=2, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.Int64Rules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1448, + serialized_end=1575, +) + + +_UINT32RULES = _descriptor.Descriptor( + name='UInt32Rules', + full_name='validate.UInt32Rules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.UInt32Rules.const', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.UInt32Rules.lt', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.UInt32Rules.lte', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.UInt32Rules.gt', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.UInt32Rules.gte', index=4, + number=5, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.UInt32Rules.in', index=5, + number=6, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.UInt32Rules.not_in', index=6, + number=7, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.UInt32Rules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1578, + serialized_end=1706, +) + + +_UINT64RULES = _descriptor.Descriptor( + name='UInt64Rules', + full_name='validate.UInt64Rules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.UInt64Rules.const', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.UInt64Rules.lt', index=1, + number=2, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.UInt64Rules.lte', index=2, + number=3, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.UInt64Rules.gt', index=3, + number=4, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.UInt64Rules.gte', index=4, + number=5, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.UInt64Rules.in', index=5, + number=6, type=4, cpp_type=4, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.UInt64Rules.not_in', index=6, + number=7, type=4, cpp_type=4, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.UInt64Rules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1709, + serialized_end=1837, +) + + +_SINT32RULES = _descriptor.Descriptor( + name='SInt32Rules', + full_name='validate.SInt32Rules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.SInt32Rules.const', index=0, + number=1, type=17, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.SInt32Rules.lt', index=1, + number=2, type=17, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.SInt32Rules.lte', index=2, + number=3, type=17, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.SInt32Rules.gt', index=3, + number=4, type=17, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.SInt32Rules.gte', index=4, + number=5, type=17, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.SInt32Rules.in', index=5, + number=6, type=17, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.SInt32Rules.not_in', index=6, + number=7, type=17, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.SInt32Rules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1840, + serialized_end=1968, +) + + +_SINT64RULES = _descriptor.Descriptor( + name='SInt64Rules', + full_name='validate.SInt64Rules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.SInt64Rules.const', index=0, + number=1, type=18, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.SInt64Rules.lt', index=1, + number=2, type=18, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.SInt64Rules.lte', index=2, + number=3, type=18, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.SInt64Rules.gt', index=3, + number=4, type=18, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.SInt64Rules.gte', index=4, + number=5, type=18, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.SInt64Rules.in', index=5, + number=6, type=18, cpp_type=2, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.SInt64Rules.not_in', index=6, + number=7, type=18, cpp_type=2, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.SInt64Rules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1971, + serialized_end=2099, +) + + +_FIXED32RULES = _descriptor.Descriptor( + name='Fixed32Rules', + full_name='validate.Fixed32Rules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.Fixed32Rules.const', index=0, + number=1, type=7, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.Fixed32Rules.lt', index=1, + number=2, type=7, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.Fixed32Rules.lte', index=2, + number=3, type=7, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.Fixed32Rules.gt', index=3, + number=4, type=7, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.Fixed32Rules.gte', index=4, + number=5, type=7, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.Fixed32Rules.in', index=5, + number=6, type=7, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.Fixed32Rules.not_in', index=6, + number=7, type=7, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.Fixed32Rules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2102, + serialized_end=2231, +) + + +_FIXED64RULES = _descriptor.Descriptor( + name='Fixed64Rules', + full_name='validate.Fixed64Rules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.Fixed64Rules.const', index=0, + number=1, type=6, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.Fixed64Rules.lt', index=1, + number=2, type=6, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.Fixed64Rules.lte', index=2, + number=3, type=6, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.Fixed64Rules.gt', index=3, + number=4, type=6, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.Fixed64Rules.gte', index=4, + number=5, type=6, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.Fixed64Rules.in', index=5, + number=6, type=6, cpp_type=4, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.Fixed64Rules.not_in', index=6, + number=7, type=6, cpp_type=4, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.Fixed64Rules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2234, + serialized_end=2363, +) + + +_SFIXED32RULES = _descriptor.Descriptor( + name='SFixed32Rules', + full_name='validate.SFixed32Rules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.SFixed32Rules.const', index=0, + number=1, type=15, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.SFixed32Rules.lt', index=1, + number=2, type=15, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.SFixed32Rules.lte', index=2, + number=3, type=15, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.SFixed32Rules.gt', index=3, + number=4, type=15, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.SFixed32Rules.gte', index=4, + number=5, type=15, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.SFixed32Rules.in', index=5, + number=6, type=15, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.SFixed32Rules.not_in', index=6, + number=7, type=15, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.SFixed32Rules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2366, + serialized_end=2496, +) + + +_SFIXED64RULES = _descriptor.Descriptor( + name='SFixed64Rules', + full_name='validate.SFixed64Rules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.SFixed64Rules.const', index=0, + number=1, type=16, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.SFixed64Rules.lt', index=1, + number=2, type=16, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.SFixed64Rules.lte', index=2, + number=3, type=16, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.SFixed64Rules.gt', index=3, + number=4, type=16, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.SFixed64Rules.gte', index=4, + number=5, type=16, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.SFixed64Rules.in', index=5, + number=6, type=16, cpp_type=2, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.SFixed64Rules.not_in', index=6, + number=7, type=16, cpp_type=2, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.SFixed64Rules.ignore_empty', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2499, + serialized_end=2629, +) + + +_BOOLRULES = _descriptor.Descriptor( + name='BoolRules', + full_name='validate.BoolRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.BoolRules.const', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2631, + serialized_end=2657, +) + + +_STRINGRULES = _descriptor.Descriptor( + name='StringRules', + full_name='validate.StringRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.StringRules.const', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='len', full_name='validate.StringRules.len', index=1, + number=19, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min_len', full_name='validate.StringRules.min_len', index=2, + number=2, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_len', full_name='validate.StringRules.max_len', index=3, + number=3, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='len_bytes', full_name='validate.StringRules.len_bytes', index=4, + number=20, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min_bytes', full_name='validate.StringRules.min_bytes', index=5, + number=4, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_bytes', full_name='validate.StringRules.max_bytes', index=6, + number=5, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pattern', full_name='validate.StringRules.pattern', index=7, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='prefix', full_name='validate.StringRules.prefix', index=8, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='suffix', full_name='validate.StringRules.suffix', index=9, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='contains', full_name='validate.StringRules.contains', index=10, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_contains', full_name='validate.StringRules.not_contains', index=11, + number=23, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.StringRules.in', index=12, + number=10, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.StringRules.not_in', index=13, + number=11, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='email', full_name='validate.StringRules.email', index=14, + number=12, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hostname', full_name='validate.StringRules.hostname', index=15, + number=13, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ip', full_name='validate.StringRules.ip', index=16, + number=14, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ipv4', full_name='validate.StringRules.ipv4', index=17, + number=15, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ipv6', full_name='validate.StringRules.ipv6', index=18, + number=16, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='uri', full_name='validate.StringRules.uri', index=19, + number=17, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='uri_ref', full_name='validate.StringRules.uri_ref', index=20, + number=18, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='address', full_name='validate.StringRules.address', index=21, + number=21, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='uuid', full_name='validate.StringRules.uuid', index=22, + number=22, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='well_known_regex', full_name='validate.StringRules.well_known_regex', index=23, + number=24, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='strict', full_name='validate.StringRules.strict', index=24, + number=25, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.StringRules.ignore_empty', index=25, + number=26, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='well_known', full_name='validate.StringRules.well_known', + index=0, containing_type=None, fields=[]), + ], + serialized_start=2660, + serialized_end=3169, +) + + +_BYTESRULES = _descriptor.Descriptor( + name='BytesRules', + full_name='validate.BytesRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.BytesRules.const', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='len', full_name='validate.BytesRules.len', index=1, + number=13, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min_len', full_name='validate.BytesRules.min_len', index=2, + number=2, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_len', full_name='validate.BytesRules.max_len', index=3, + number=3, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pattern', full_name='validate.BytesRules.pattern', index=4, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='prefix', full_name='validate.BytesRules.prefix', index=5, + number=5, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='suffix', full_name='validate.BytesRules.suffix', index=6, + number=6, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='contains', full_name='validate.BytesRules.contains', index=7, + number=7, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.BytesRules.in', index=8, + number=8, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.BytesRules.not_in', index=9, + number=9, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ip', full_name='validate.BytesRules.ip', index=10, + number=10, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ipv4', full_name='validate.BytesRules.ipv4', index=11, + number=11, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ipv6', full_name='validate.BytesRules.ipv6', index=12, + number=12, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.BytesRules.ignore_empty', index=13, + number=14, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='well_known', full_name='validate.BytesRules.well_known', + index=0, containing_type=None, fields=[]), + ], + serialized_start=3172, + serialized_end=3423, +) + + +_ENUMRULES = _descriptor.Descriptor( + name='EnumRules', + full_name='validate.EnumRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='const', full_name='validate.EnumRules.const', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='defined_only', full_name='validate.EnumRules.defined_only', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.EnumRules.in', index=2, + number=3, type=5, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.EnumRules.not_in', index=3, + number=4, type=5, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3425, + serialized_end=3501, +) + + +_MESSAGERULES = _descriptor.Descriptor( + name='MessageRules', + full_name='validate.MessageRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='skip', full_name='validate.MessageRules.skip', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='required', full_name='validate.MessageRules.required', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3503, + serialized_end=3549, +) + + +_REPEATEDRULES = _descriptor.Descriptor( + name='RepeatedRules', + full_name='validate.RepeatedRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='min_items', full_name='validate.RepeatedRules.min_items', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_items', full_name='validate.RepeatedRules.max_items', index=1, + number=2, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='unique', full_name='validate.RepeatedRules.unique', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='items', full_name='validate.RepeatedRules.items', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.RepeatedRules.ignore_empty', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3552, + serialized_end=3680, +) + + +_MAPRULES = _descriptor.Descriptor( + name='MapRules', + full_name='validate.MapRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='min_pairs', full_name='validate.MapRules.min_pairs', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_pairs', full_name='validate.MapRules.max_pairs', index=1, + number=2, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='no_sparse', full_name='validate.MapRules.no_sparse', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='keys', full_name='validate.MapRules.keys', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='values', full_name='validate.MapRules.values', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_empty', full_name='validate.MapRules.ignore_empty', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3683, + serialized_end=3846, +) + + +_ANYRULES = _descriptor.Descriptor( + name='AnyRules', + full_name='validate.AnyRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='required', full_name='validate.AnyRules.required', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.AnyRules.in', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.AnyRules.not_in', index=2, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3848, + serialized_end=3904, +) + + +_DURATIONRULES = _descriptor.Descriptor( + name='DurationRules', + full_name='validate.DurationRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='required', full_name='validate.DurationRules.required', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='const', full_name='validate.DurationRules.const', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.DurationRules.lt', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.DurationRules.lte', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.DurationRules.gt', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.DurationRules.gte', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='in', full_name='validate.DurationRules.in', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_in', full_name='validate.DurationRules.not_in', index=7, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3907, + serialized_end=4222, +) + + +_TIMESTAMPRULES = _descriptor.Descriptor( + name='TimestampRules', + full_name='validate.TimestampRules', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='required', full_name='validate.TimestampRules.required', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='const', full_name='validate.TimestampRules.const', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt', full_name='validate.TimestampRules.lt', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lte', full_name='validate.TimestampRules.lte', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt', full_name='validate.TimestampRules.gt', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gte', full_name='validate.TimestampRules.gte', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lt_now', full_name='validate.TimestampRules.lt_now', index=6, + number=7, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gt_now', full_name='validate.TimestampRules.gt_now', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='within', full_name='validate.TimestampRules.within', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4225, + serialized_end=4539, +) + +_FIELDRULES.fields_by_name['message'].message_type = _MESSAGERULES +_FIELDRULES.fields_by_name['float'].message_type = _FLOATRULES +_FIELDRULES.fields_by_name['double'].message_type = _DOUBLERULES +_FIELDRULES.fields_by_name['int32'].message_type = _INT32RULES +_FIELDRULES.fields_by_name['int64'].message_type = _INT64RULES +_FIELDRULES.fields_by_name['uint32'].message_type = _UINT32RULES +_FIELDRULES.fields_by_name['uint64'].message_type = _UINT64RULES +_FIELDRULES.fields_by_name['sint32'].message_type = _SINT32RULES +_FIELDRULES.fields_by_name['sint64'].message_type = _SINT64RULES +_FIELDRULES.fields_by_name['fixed32'].message_type = _FIXED32RULES +_FIELDRULES.fields_by_name['fixed64'].message_type = _FIXED64RULES +_FIELDRULES.fields_by_name['sfixed32'].message_type = _SFIXED32RULES +_FIELDRULES.fields_by_name['sfixed64'].message_type = _SFIXED64RULES +_FIELDRULES.fields_by_name['bool'].message_type = _BOOLRULES +_FIELDRULES.fields_by_name['string'].message_type = _STRINGRULES +_FIELDRULES.fields_by_name['bytes'].message_type = _BYTESRULES +_FIELDRULES.fields_by_name['enum'].message_type = _ENUMRULES +_FIELDRULES.fields_by_name['repeated'].message_type = _REPEATEDRULES +_FIELDRULES.fields_by_name['map'].message_type = _MAPRULES +_FIELDRULES.fields_by_name['any'].message_type = _ANYRULES +_FIELDRULES.fields_by_name['duration'].message_type = _DURATIONRULES +_FIELDRULES.fields_by_name['timestamp'].message_type = _TIMESTAMPRULES +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['float']) +_FIELDRULES.fields_by_name['float'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['double']) +_FIELDRULES.fields_by_name['double'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['int32']) +_FIELDRULES.fields_by_name['int32'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['int64']) +_FIELDRULES.fields_by_name['int64'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['uint32']) +_FIELDRULES.fields_by_name['uint32'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['uint64']) +_FIELDRULES.fields_by_name['uint64'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['sint32']) +_FIELDRULES.fields_by_name['sint32'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['sint64']) +_FIELDRULES.fields_by_name['sint64'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['fixed32']) +_FIELDRULES.fields_by_name['fixed32'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['fixed64']) +_FIELDRULES.fields_by_name['fixed64'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['sfixed32']) +_FIELDRULES.fields_by_name['sfixed32'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['sfixed64']) +_FIELDRULES.fields_by_name['sfixed64'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['bool']) +_FIELDRULES.fields_by_name['bool'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['string']) +_FIELDRULES.fields_by_name['string'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['bytes']) +_FIELDRULES.fields_by_name['bytes'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['enum']) +_FIELDRULES.fields_by_name['enum'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['repeated']) +_FIELDRULES.fields_by_name['repeated'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['map']) +_FIELDRULES.fields_by_name['map'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['any']) +_FIELDRULES.fields_by_name['any'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['duration']) +_FIELDRULES.fields_by_name['duration'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_FIELDRULES.oneofs_by_name['type'].fields.append( + _FIELDRULES.fields_by_name['timestamp']) +_FIELDRULES.fields_by_name['timestamp'].containing_oneof = _FIELDRULES.oneofs_by_name['type'] +_STRINGRULES.fields_by_name['well_known_regex'].enum_type = _KNOWNREGEX +_STRINGRULES.oneofs_by_name['well_known'].fields.append( + _STRINGRULES.fields_by_name['email']) +_STRINGRULES.fields_by_name['email'].containing_oneof = _STRINGRULES.oneofs_by_name['well_known'] +_STRINGRULES.oneofs_by_name['well_known'].fields.append( + _STRINGRULES.fields_by_name['hostname']) +_STRINGRULES.fields_by_name['hostname'].containing_oneof = _STRINGRULES.oneofs_by_name['well_known'] +_STRINGRULES.oneofs_by_name['well_known'].fields.append( + _STRINGRULES.fields_by_name['ip']) +_STRINGRULES.fields_by_name['ip'].containing_oneof = _STRINGRULES.oneofs_by_name['well_known'] +_STRINGRULES.oneofs_by_name['well_known'].fields.append( + _STRINGRULES.fields_by_name['ipv4']) +_STRINGRULES.fields_by_name['ipv4'].containing_oneof = _STRINGRULES.oneofs_by_name['well_known'] +_STRINGRULES.oneofs_by_name['well_known'].fields.append( + _STRINGRULES.fields_by_name['ipv6']) +_STRINGRULES.fields_by_name['ipv6'].containing_oneof = _STRINGRULES.oneofs_by_name['well_known'] +_STRINGRULES.oneofs_by_name['well_known'].fields.append( + _STRINGRULES.fields_by_name['uri']) +_STRINGRULES.fields_by_name['uri'].containing_oneof = _STRINGRULES.oneofs_by_name['well_known'] +_STRINGRULES.oneofs_by_name['well_known'].fields.append( + _STRINGRULES.fields_by_name['uri_ref']) +_STRINGRULES.fields_by_name['uri_ref'].containing_oneof = _STRINGRULES.oneofs_by_name['well_known'] +_STRINGRULES.oneofs_by_name['well_known'].fields.append( + _STRINGRULES.fields_by_name['address']) +_STRINGRULES.fields_by_name['address'].containing_oneof = _STRINGRULES.oneofs_by_name['well_known'] +_STRINGRULES.oneofs_by_name['well_known'].fields.append( + _STRINGRULES.fields_by_name['uuid']) +_STRINGRULES.fields_by_name['uuid'].containing_oneof = _STRINGRULES.oneofs_by_name['well_known'] +_STRINGRULES.oneofs_by_name['well_known'].fields.append( + _STRINGRULES.fields_by_name['well_known_regex']) +_STRINGRULES.fields_by_name['well_known_regex'].containing_oneof = _STRINGRULES.oneofs_by_name['well_known'] +_BYTESRULES.oneofs_by_name['well_known'].fields.append( + _BYTESRULES.fields_by_name['ip']) +_BYTESRULES.fields_by_name['ip'].containing_oneof = _BYTESRULES.oneofs_by_name['well_known'] +_BYTESRULES.oneofs_by_name['well_known'].fields.append( + _BYTESRULES.fields_by_name['ipv4']) +_BYTESRULES.fields_by_name['ipv4'].containing_oneof = _BYTESRULES.oneofs_by_name['well_known'] +_BYTESRULES.oneofs_by_name['well_known'].fields.append( + _BYTESRULES.fields_by_name['ipv6']) +_BYTESRULES.fields_by_name['ipv6'].containing_oneof = _BYTESRULES.oneofs_by_name['well_known'] +_REPEATEDRULES.fields_by_name['items'].message_type = _FIELDRULES +_MAPRULES.fields_by_name['keys'].message_type = _FIELDRULES +_MAPRULES.fields_by_name['values'].message_type = _FIELDRULES +_DURATIONRULES.fields_by_name['const'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +_DURATIONRULES.fields_by_name['lt'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +_DURATIONRULES.fields_by_name['lte'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +_DURATIONRULES.fields_by_name['gt'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +_DURATIONRULES.fields_by_name['gte'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +_DURATIONRULES.fields_by_name['in'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +_DURATIONRULES.fields_by_name['not_in'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +_TIMESTAMPRULES.fields_by_name['const'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_TIMESTAMPRULES.fields_by_name['lt'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_TIMESTAMPRULES.fields_by_name['lte'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_TIMESTAMPRULES.fields_by_name['gt'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_TIMESTAMPRULES.fields_by_name['gte'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_TIMESTAMPRULES.fields_by_name['within'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +DESCRIPTOR.message_types_by_name['FieldRules'] = _FIELDRULES +DESCRIPTOR.message_types_by_name['FloatRules'] = _FLOATRULES +DESCRIPTOR.message_types_by_name['DoubleRules'] = _DOUBLERULES +DESCRIPTOR.message_types_by_name['Int32Rules'] = _INT32RULES +DESCRIPTOR.message_types_by_name['Int64Rules'] = _INT64RULES +DESCRIPTOR.message_types_by_name['UInt32Rules'] = _UINT32RULES +DESCRIPTOR.message_types_by_name['UInt64Rules'] = _UINT64RULES +DESCRIPTOR.message_types_by_name['SInt32Rules'] = _SINT32RULES +DESCRIPTOR.message_types_by_name['SInt64Rules'] = _SINT64RULES +DESCRIPTOR.message_types_by_name['Fixed32Rules'] = _FIXED32RULES +DESCRIPTOR.message_types_by_name['Fixed64Rules'] = _FIXED64RULES +DESCRIPTOR.message_types_by_name['SFixed32Rules'] = _SFIXED32RULES +DESCRIPTOR.message_types_by_name['SFixed64Rules'] = _SFIXED64RULES +DESCRIPTOR.message_types_by_name['BoolRules'] = _BOOLRULES +DESCRIPTOR.message_types_by_name['StringRules'] = _STRINGRULES +DESCRIPTOR.message_types_by_name['BytesRules'] = _BYTESRULES +DESCRIPTOR.message_types_by_name['EnumRules'] = _ENUMRULES +DESCRIPTOR.message_types_by_name['MessageRules'] = _MESSAGERULES +DESCRIPTOR.message_types_by_name['RepeatedRules'] = _REPEATEDRULES +DESCRIPTOR.message_types_by_name['MapRules'] = _MAPRULES +DESCRIPTOR.message_types_by_name['AnyRules'] = _ANYRULES +DESCRIPTOR.message_types_by_name['DurationRules'] = _DURATIONRULES +DESCRIPTOR.message_types_by_name['TimestampRules'] = _TIMESTAMPRULES +DESCRIPTOR.enum_types_by_name['KnownRegex'] = _KNOWNREGEX +DESCRIPTOR.extensions_by_name['disabled'] = disabled +DESCRIPTOR.extensions_by_name['ignored'] = ignored +DESCRIPTOR.extensions_by_name['required'] = required +DESCRIPTOR.extensions_by_name['rules'] = rules +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FieldRules = _reflection.GeneratedProtocolMessageType('FieldRules', (_message.Message,), dict( + DESCRIPTOR = _FIELDRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.FieldRules) + )) +_sym_db.RegisterMessage(FieldRules) + +FloatRules = _reflection.GeneratedProtocolMessageType('FloatRules', (_message.Message,), dict( + DESCRIPTOR = _FLOATRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.FloatRules) + )) +_sym_db.RegisterMessage(FloatRules) + +DoubleRules = _reflection.GeneratedProtocolMessageType('DoubleRules', (_message.Message,), dict( + DESCRIPTOR = _DOUBLERULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.DoubleRules) + )) +_sym_db.RegisterMessage(DoubleRules) + +Int32Rules = _reflection.GeneratedProtocolMessageType('Int32Rules', (_message.Message,), dict( + DESCRIPTOR = _INT32RULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.Int32Rules) + )) +_sym_db.RegisterMessage(Int32Rules) + +Int64Rules = _reflection.GeneratedProtocolMessageType('Int64Rules', (_message.Message,), dict( + DESCRIPTOR = _INT64RULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.Int64Rules) + )) +_sym_db.RegisterMessage(Int64Rules) + +UInt32Rules = _reflection.GeneratedProtocolMessageType('UInt32Rules', (_message.Message,), dict( + DESCRIPTOR = _UINT32RULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.UInt32Rules) + )) +_sym_db.RegisterMessage(UInt32Rules) + +UInt64Rules = _reflection.GeneratedProtocolMessageType('UInt64Rules', (_message.Message,), dict( + DESCRIPTOR = _UINT64RULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.UInt64Rules) + )) +_sym_db.RegisterMessage(UInt64Rules) + +SInt32Rules = _reflection.GeneratedProtocolMessageType('SInt32Rules', (_message.Message,), dict( + DESCRIPTOR = _SINT32RULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.SInt32Rules) + )) +_sym_db.RegisterMessage(SInt32Rules) + +SInt64Rules = _reflection.GeneratedProtocolMessageType('SInt64Rules', (_message.Message,), dict( + DESCRIPTOR = _SINT64RULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.SInt64Rules) + )) +_sym_db.RegisterMessage(SInt64Rules) + +Fixed32Rules = _reflection.GeneratedProtocolMessageType('Fixed32Rules', (_message.Message,), dict( + DESCRIPTOR = _FIXED32RULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.Fixed32Rules) + )) +_sym_db.RegisterMessage(Fixed32Rules) + +Fixed64Rules = _reflection.GeneratedProtocolMessageType('Fixed64Rules', (_message.Message,), dict( + DESCRIPTOR = _FIXED64RULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.Fixed64Rules) + )) +_sym_db.RegisterMessage(Fixed64Rules) + +SFixed32Rules = _reflection.GeneratedProtocolMessageType('SFixed32Rules', (_message.Message,), dict( + DESCRIPTOR = _SFIXED32RULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.SFixed32Rules) + )) +_sym_db.RegisterMessage(SFixed32Rules) + +SFixed64Rules = _reflection.GeneratedProtocolMessageType('SFixed64Rules', (_message.Message,), dict( + DESCRIPTOR = _SFIXED64RULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.SFixed64Rules) + )) +_sym_db.RegisterMessage(SFixed64Rules) + +BoolRules = _reflection.GeneratedProtocolMessageType('BoolRules', (_message.Message,), dict( + DESCRIPTOR = _BOOLRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.BoolRules) + )) +_sym_db.RegisterMessage(BoolRules) + +StringRules = _reflection.GeneratedProtocolMessageType('StringRules', (_message.Message,), dict( + DESCRIPTOR = _STRINGRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.StringRules) + )) +_sym_db.RegisterMessage(StringRules) + +BytesRules = _reflection.GeneratedProtocolMessageType('BytesRules', (_message.Message,), dict( + DESCRIPTOR = _BYTESRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.BytesRules) + )) +_sym_db.RegisterMessage(BytesRules) + +EnumRules = _reflection.GeneratedProtocolMessageType('EnumRules', (_message.Message,), dict( + DESCRIPTOR = _ENUMRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.EnumRules) + )) +_sym_db.RegisterMessage(EnumRules) + +MessageRules = _reflection.GeneratedProtocolMessageType('MessageRules', (_message.Message,), dict( + DESCRIPTOR = _MESSAGERULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.MessageRules) + )) +_sym_db.RegisterMessage(MessageRules) + +RepeatedRules = _reflection.GeneratedProtocolMessageType('RepeatedRules', (_message.Message,), dict( + DESCRIPTOR = _REPEATEDRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.RepeatedRules) + )) +_sym_db.RegisterMessage(RepeatedRules) + +MapRules = _reflection.GeneratedProtocolMessageType('MapRules', (_message.Message,), dict( + DESCRIPTOR = _MAPRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.MapRules) + )) +_sym_db.RegisterMessage(MapRules) + +AnyRules = _reflection.GeneratedProtocolMessageType('AnyRules', (_message.Message,), dict( + DESCRIPTOR = _ANYRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.AnyRules) + )) +_sym_db.RegisterMessage(AnyRules) + +DurationRules = _reflection.GeneratedProtocolMessageType('DurationRules', (_message.Message,), dict( + DESCRIPTOR = _DURATIONRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.DurationRules) + )) +_sym_db.RegisterMessage(DurationRules) + +TimestampRules = _reflection.GeneratedProtocolMessageType('TimestampRules', (_message.Message,), dict( + DESCRIPTOR = _TIMESTAMPRULES, + __module__ = 'validate.validate_pb2' + # @@protoc_insertion_point(class_scope:validate.TimestampRules) + )) +_sym_db.RegisterMessage(TimestampRules) + +google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(disabled) +google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(ignored) +google_dot_protobuf_dot_descriptor__pb2.OneofOptions.RegisterExtension(required) +rules.message_type = _FIELDRULES +google_dot_protobuf_dot_descriptor__pb2.FieldOptions.RegisterExtension(rules) + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/gen/pb-cpp/flyteidl/core/security.pb.cc b/gen/pb-cpp/flyteidl/core/security.pb.cc index 77fe211bf..1ec11063d 100644 --- a/gen/pb-cpp/flyteidl/core/security.pb.cc +++ b/gen/pb-cpp/flyteidl/core/security.pb.cc @@ -16,15 +16,27 @@ // @@protoc_insertion_point(includes) #include -extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fsecurity_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Secret_flyteidl_2fcore_2fsecurity_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fsecurity_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Secret_MountEnvVar_flyteidl_2fcore_2fsecurity_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fsecurity_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Secret_MountFile_flyteidl_2fcore_2fsecurity_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fsecurity_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Identity_flyteidl_2fcore_2fsecurity_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fsecurity_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_OAuth2Client_flyteidl_2fcore_2fsecurity_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fsecurity_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_OAuth2TokenRequest_flyteidl_2fcore_2fsecurity_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fsecurity_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_Secret_flyteidl_2fcore_2fsecurity_2eproto; namespace flyteidl { namespace core { +class Secret_MountEnvVarDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _Secret_MountEnvVar_default_instance_; +class Secret_MountFileDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _Secret_MountFile_default_instance_; class SecretDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; + const ::flyteidl::core::Secret_MountEnvVar* env_var_; + const ::flyteidl::core::Secret_MountFile* file_; } _Secret_default_instance_; class OAuth2ClientDefaultTypeInternal { public: @@ -44,6 +56,34 @@ class SecurityContextDefaultTypeInternal { } _SecurityContext_default_instance_; } // namespace core } // namespace flyteidl +static void InitDefaultsSecret_MountEnvVar_flyteidl_2fcore_2fsecurity_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::core::_Secret_MountEnvVar_default_instance_; + new (ptr) ::flyteidl::core::Secret_MountEnvVar(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::core::Secret_MountEnvVar::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_Secret_MountEnvVar_flyteidl_2fcore_2fsecurity_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsSecret_MountEnvVar_flyteidl_2fcore_2fsecurity_2eproto}, {}}; + +static void InitDefaultsSecret_MountFile_flyteidl_2fcore_2fsecurity_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::core::_Secret_MountFile_default_instance_; + new (ptr) ::flyteidl::core::Secret_MountFile(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::core::Secret_MountFile::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_Secret_MountFile_flyteidl_2fcore_2fsecurity_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsSecret_MountFile_flyteidl_2fcore_2fsecurity_2eproto}, {}}; + static void InitDefaultsSecret_flyteidl_2fcore_2fsecurity_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -55,8 +95,10 @@ static void InitDefaultsSecret_flyteidl_2fcore_2fsecurity_2eproto() { ::flyteidl::core::Secret::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<0> scc_info_Secret_flyteidl_2fcore_2fsecurity_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsSecret_flyteidl_2fcore_2fsecurity_2eproto}, {}}; +::google::protobuf::internal::SCCInfo<2> scc_info_Secret_flyteidl_2fcore_2fsecurity_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsSecret_flyteidl_2fcore_2fsecurity_2eproto}, { + &scc_info_Secret_MountEnvVar_flyteidl_2fcore_2fsecurity_2eproto.base, + &scc_info_Secret_MountFile_flyteidl_2fcore_2fsecurity_2eproto.base,}}; static void InitDefaultsOAuth2Client_flyteidl_2fcore_2fsecurity_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -91,214 +133,875 @@ ::google::protobuf::internal::SCCInfo<1> scc_info_Identity_flyteidl_2fcore_2fsec static void InitDefaultsOAuth2TokenRequest_flyteidl_2fcore_2fsecurity_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; - { - void* ptr = &::flyteidl::core::_OAuth2TokenRequest_default_instance_; - new (ptr) ::flyteidl::core::OAuth2TokenRequest(); - ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + { + void* ptr = &::flyteidl::core::_OAuth2TokenRequest_default_instance_; + new (ptr) ::flyteidl::core::OAuth2TokenRequest(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::core::OAuth2TokenRequest::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<1> scc_info_OAuth2TokenRequest_flyteidl_2fcore_2fsecurity_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsOAuth2TokenRequest_flyteidl_2fcore_2fsecurity_2eproto}, { + &scc_info_OAuth2Client_flyteidl_2fcore_2fsecurity_2eproto.base,}}; + +static void InitDefaultsSecurityContext_flyteidl_2fcore_2fsecurity_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::core::_SecurityContext_default_instance_; + new (ptr) ::flyteidl::core::SecurityContext(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::core::SecurityContext::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<3> scc_info_SecurityContext_flyteidl_2fcore_2fsecurity_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsSecurityContext_flyteidl_2fcore_2fsecurity_2eproto}, { + &scc_info_Identity_flyteidl_2fcore_2fsecurity_2eproto.base, + &scc_info_Secret_flyteidl_2fcore_2fsecurity_2eproto.base, + &scc_info_OAuth2TokenRequest_flyteidl_2fcore_2fsecurity_2eproto.base,}}; + +void InitDefaults_flyteidl_2fcore_2fsecurity_2eproto() { + ::google::protobuf::internal::InitSCC(&scc_info_Secret_MountEnvVar_flyteidl_2fcore_2fsecurity_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_Secret_MountFile_flyteidl_2fcore_2fsecurity_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_Secret_flyteidl_2fcore_2fsecurity_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_OAuth2Client_flyteidl_2fcore_2fsecurity_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_Identity_flyteidl_2fcore_2fsecurity_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_OAuth2TokenRequest_flyteidl_2fcore_2fsecurity_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_SecurityContext_flyteidl_2fcore_2fsecurity_2eproto.base); +} + +::google::protobuf::Metadata file_level_metadata_flyteidl_2fcore_2fsecurity_2eproto[7]; +const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fcore_2fsecurity_2eproto[2]; +constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fcore_2fsecurity_2eproto = nullptr; + +const ::google::protobuf::uint32 TableStruct_flyteidl_2fcore_2fsecurity_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret_MountEnvVar, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret_MountEnvVar, name_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret_MountFile, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret_MountFile, path_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, _internal_metadata_), + ~0u, // no _extensions_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, _oneof_case_[0]), + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, group_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, group_version_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, key_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, mount_requirement_), + offsetof(::flyteidl::core::SecretDefaultTypeInternal, env_var_), + offsetof(::flyteidl::core::SecretDefaultTypeInternal, file_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, mount_target_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2Client, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2Client, client_id_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2Client, client_secret_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identity, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identity, iam_role_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identity, k8s_service_account_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identity, oauth2_client_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identity, execution_identity_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, name_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, type_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, client_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, idp_discovery_endpoint_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, token_endpoint_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::SecurityContext, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::core::SecurityContext, run_as_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::SecurityContext, secrets_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::SecurityContext, tokens_), +}; +static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, sizeof(::flyteidl::core::Secret_MountEnvVar)}, + { 6, -1, sizeof(::flyteidl::core::Secret_MountFile)}, + { 12, -1, sizeof(::flyteidl::core::Secret)}, + { 24, -1, sizeof(::flyteidl::core::OAuth2Client)}, + { 31, -1, sizeof(::flyteidl::core::Identity)}, + { 40, -1, sizeof(::flyteidl::core::OAuth2TokenRequest)}, + { 50, -1, sizeof(::flyteidl::core::SecurityContext)}, +}; + +static ::google::protobuf::Message const * const file_default_instances[] = { + reinterpret_cast(&::flyteidl::core::_Secret_MountEnvVar_default_instance_), + reinterpret_cast(&::flyteidl::core::_Secret_MountFile_default_instance_), + reinterpret_cast(&::flyteidl::core::_Secret_default_instance_), + reinterpret_cast(&::flyteidl::core::_OAuth2Client_default_instance_), + reinterpret_cast(&::flyteidl::core::_Identity_default_instance_), + reinterpret_cast(&::flyteidl::core::_OAuth2TokenRequest_default_instance_), + reinterpret_cast(&::flyteidl::core::_SecurityContext_default_instance_), +}; + +::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto = { + {}, AddDescriptors_flyteidl_2fcore_2fsecurity_2eproto, "flyteidl/core/security.proto", schemas, + file_default_instances, TableStruct_flyteidl_2fcore_2fsecurity_2eproto::offsets, + file_level_metadata_flyteidl_2fcore_2fsecurity_2eproto, 7, file_level_enum_descriptors_flyteidl_2fcore_2fsecurity_2eproto, file_level_service_descriptors_flyteidl_2fcore_2fsecurity_2eproto, +}; + +const char descriptor_table_protodef_flyteidl_2fcore_2fsecurity_2eproto[] = + "\n\034flyteidl/core/security.proto\022\rflyteidl" + ".core\"\327\002\n\006Secret\022\r\n\005group\030\001 \001(\t\022\025\n\rgroup" + "_version\030\002 \001(\t\022\013\n\003key\030\003 \001(\t\022>\n\021mount_req" + "uirement\030\004 \001(\0162\037.flyteidl.core.Secret.Mo" + "untTypeB\002\030\001\0224\n\007env_var\030\005 \001(\0132!.flyteidl." + "core.Secret.MountEnvVarH\000\022/\n\004file\030\006 \001(\0132" + "\037.flyteidl.core.Secret.MountFileH\000\032\033\n\013Mo" + "untEnvVar\022\014\n\004name\030\001 \001(\t\032\031\n\tMountFile\022\014\n\004" + "path\030\001 \001(\t\"+\n\tMountType\022\007\n\003ANY\020\000\022\013\n\007ENV_" + "VAR\020\001\022\010\n\004FILE\020\002B\016\n\014mount_target\"O\n\014OAuth" + "2Client\022\021\n\tclient_id\030\001 \001(\t\022,\n\rclient_sec" + "ret\030\002 \001(\0132\025.flyteidl.core.Secret\"\211\001\n\010Ide" + "ntity\022\020\n\010iam_role\030\001 \001(\t\022\033\n\023k8s_service_a" + "ccount\030\002 \001(\t\0222\n\roauth2_client\030\003 \001(\0132\033.fl" + "yteidl.core.OAuth2Client\022\032\n\022execution_id" + "entity\030\004 \001(\t\"\335\001\n\022OAuth2TokenRequest\022\014\n\004n" + "ame\030\001 \001(\t\0224\n\004type\030\002 \001(\0162&.flyteidl.core." + "OAuth2TokenRequest.Type\022+\n\006client\030\003 \001(\0132" + "\033.flyteidl.core.OAuth2Client\022\036\n\026idp_disc" + "overy_endpoint\030\004 \001(\t\022\026\n\016token_endpoint\030\005" + " \001(\t\"\036\n\004Type\022\026\n\022CLIENT_CREDENTIALS\020\000\"\225\001\n" + "\017SecurityContext\022\'\n\006run_as\030\001 \001(\0132\027.flyte" + "idl.core.Identity\022&\n\007secrets\030\002 \003(\0132\025.fly" + "teidl.core.Secret\0221\n\006tokens\030\003 \003(\0132!.flyt" + "eidl.core.OAuth2TokenRequestB6Z4github.c" + "om/flyteorg/flyteidl/gen/pb-go/flyteidl/" + "coreb\006proto3" + ; +::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fcore_2fsecurity_2eproto = { + false, InitDefaults_flyteidl_2fcore_2fsecurity_2eproto, + descriptor_table_protodef_flyteidl_2fcore_2fsecurity_2eproto, + "flyteidl/core/security.proto", &assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto, 1052, +}; + +void AddDescriptors_flyteidl_2fcore_2fsecurity_2eproto() { + static constexpr ::google::protobuf::internal::InitFunc deps[1] = + { + }; + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fcore_2fsecurity_2eproto, deps, 0); +} + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_flyteidl_2fcore_2fsecurity_2eproto = []() { AddDescriptors_flyteidl_2fcore_2fsecurity_2eproto(); return true; }(); +namespace flyteidl { +namespace core { +const ::google::protobuf::EnumDescriptor* Secret_MountType_descriptor() { + ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto); + return file_level_enum_descriptors_flyteidl_2fcore_2fsecurity_2eproto[0]; +} +bool Secret_MountType_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + return true; + default: + return false; + } +} + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const Secret_MountType Secret::ANY; +const Secret_MountType Secret::ENV_VAR; +const Secret_MountType Secret::FILE; +const Secret_MountType Secret::MountType_MIN; +const Secret_MountType Secret::MountType_MAX; +const int Secret::MountType_ARRAYSIZE; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 +const ::google::protobuf::EnumDescriptor* OAuth2TokenRequest_Type_descriptor() { + ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto); + return file_level_enum_descriptors_flyteidl_2fcore_2fsecurity_2eproto[1]; +} +bool OAuth2TokenRequest_Type_IsValid(int value) { + switch (value) { + case 0: + return true; + default: + return false; + } +} + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const OAuth2TokenRequest_Type OAuth2TokenRequest::CLIENT_CREDENTIALS; +const OAuth2TokenRequest_Type OAuth2TokenRequest::Type_MIN; +const OAuth2TokenRequest_Type OAuth2TokenRequest::Type_MAX; +const int OAuth2TokenRequest::Type_ARRAYSIZE; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +// =================================================================== + +void Secret_MountEnvVar::InitAsDefaultInstance() { +} +class Secret_MountEnvVar::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int Secret_MountEnvVar::kNameFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +Secret_MountEnvVar::Secret_MountEnvVar() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.core.Secret.MountEnvVar) +} +Secret_MountEnvVar::Secret_MountEnvVar(const Secret_MountEnvVar& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.name().size() > 0) { + name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_); + } + // @@protoc_insertion_point(copy_constructor:flyteidl.core.Secret.MountEnvVar) +} + +void Secret_MountEnvVar::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_Secret_MountEnvVar_flyteidl_2fcore_2fsecurity_2eproto.base); + name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +Secret_MountEnvVar::~Secret_MountEnvVar() { + // @@protoc_insertion_point(destructor:flyteidl.core.Secret.MountEnvVar) + SharedDtor(); +} + +void Secret_MountEnvVar::SharedDtor() { + name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +void Secret_MountEnvVar::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const Secret_MountEnvVar& Secret_MountEnvVar::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_Secret_MountEnvVar_flyteidl_2fcore_2fsecurity_2eproto.base); + return *internal_default_instance(); +} + + +void Secret_MountEnvVar::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.core.Secret.MountEnvVar) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* Secret_MountEnvVar::_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 name = 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.core.Secret.MountEnvVar.name"); + object = msg->mutable_name(); + 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 Secret_MountEnvVar::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.core.Secret.MountEnvVar) + 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 name = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_name())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->name().data(), static_cast(this->name().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.core.Secret.MountEnvVar.name")); + } 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.core.Secret.MountEnvVar) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.core.Secret.MountEnvVar) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void Secret_MountEnvVar::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.core.Secret.MountEnvVar) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string name = 1; + if (this->name().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->name().data(), static_cast(this->name().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.core.Secret.MountEnvVar.name"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 1, this->name(), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.core.Secret.MountEnvVar) +} + +::google::protobuf::uint8* Secret_MountEnvVar::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.core.Secret.MountEnvVar) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string name = 1; + if (this->name().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->name().data(), static_cast(this->name().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.core.Secret.MountEnvVar.name"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 1, this->name(), 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.core.Secret.MountEnvVar) + return target; +} + +size_t Secret_MountEnvVar::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.core.Secret.MountEnvVar) + 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 name = 1; + if (this->name().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->name()); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void Secret_MountEnvVar::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.core.Secret.MountEnvVar) + GOOGLE_DCHECK_NE(&from, this); + const Secret_MountEnvVar* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.core.Secret.MountEnvVar) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.core.Secret.MountEnvVar) + MergeFrom(*source); + } +} + +void Secret_MountEnvVar::MergeFrom(const Secret_MountEnvVar& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.core.Secret.MountEnvVar) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.name().size() > 0) { + + name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_); + } +} + +void Secret_MountEnvVar::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.core.Secret.MountEnvVar) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void Secret_MountEnvVar::CopyFrom(const Secret_MountEnvVar& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.core.Secret.MountEnvVar) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Secret_MountEnvVar::IsInitialized() const { + return true; +} + +void Secret_MountEnvVar::Swap(Secret_MountEnvVar* other) { + if (other == this) return; + InternalSwap(other); +} +void Secret_MountEnvVar::InternalSwap(Secret_MountEnvVar* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + name_.Swap(&other->name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::google::protobuf::Metadata Secret_MountEnvVar::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto); + return ::file_level_metadata_flyteidl_2fcore_2fsecurity_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void Secret_MountFile::InitAsDefaultInstance() { +} +class Secret_MountFile::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int Secret_MountFile::kPathFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +Secret_MountFile::Secret_MountFile() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.core.Secret.MountFile) +} +Secret_MountFile::Secret_MountFile(const Secret_MountFile& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.path().size() > 0) { + path_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.path_); + } + // @@protoc_insertion_point(copy_constructor:flyteidl.core.Secret.MountFile) +} + +void Secret_MountFile::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_Secret_MountFile_flyteidl_2fcore_2fsecurity_2eproto.base); + path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +Secret_MountFile::~Secret_MountFile() { + // @@protoc_insertion_point(destructor:flyteidl.core.Secret.MountFile) + SharedDtor(); +} + +void Secret_MountFile::SharedDtor() { + path_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +void Secret_MountFile::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const Secret_MountFile& Secret_MountFile::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_Secret_MountFile_flyteidl_2fcore_2fsecurity_2eproto.base); + return *internal_default_instance(); +} + + +void Secret_MountFile::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.core.Secret.MountFile) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* Secret_MountFile::_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 path = 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.core.Secret.MountFile.path"); + object = msg->mutable_path(); + 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 Secret_MountFile::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.core.Secret.MountFile) + 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 path = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_path())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->path().data(), static_cast(this->path().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.core.Secret.MountFile.path")); + } 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.core.Secret.MountFile) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.core.Secret.MountFile) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void Secret_MountFile::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.core.Secret.MountFile) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string path = 1; + if (this->path().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->path().data(), static_cast(this->path().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.core.Secret.MountFile.path"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 1, this->path(), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.core.Secret.MountFile) +} + +::google::protobuf::uint8* Secret_MountFile::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.core.Secret.MountFile) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string path = 1; + if (this->path().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->path().data(), static_cast(this->path().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.core.Secret.MountFile.path"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 1, this->path(), 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.core.Secret.MountFile) + return target; +} + +size_t Secret_MountFile::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.core.Secret.MountFile) + 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 path = 1; + if (this->path().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->path()); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void Secret_MountFile::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.core.Secret.MountFile) + GOOGLE_DCHECK_NE(&from, this); + const Secret_MountFile* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.core.Secret.MountFile) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.core.Secret.MountFile) + MergeFrom(*source); } - ::flyteidl::core::OAuth2TokenRequest::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<1> scc_info_OAuth2TokenRequest_flyteidl_2fcore_2fsecurity_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsOAuth2TokenRequest_flyteidl_2fcore_2fsecurity_2eproto}, { - &scc_info_OAuth2Client_flyteidl_2fcore_2fsecurity_2eproto.base,}}; +void Secret_MountFile::MergeFrom(const Secret_MountFile& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.core.Secret.MountFile) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; -static void InitDefaultsSecurityContext_flyteidl_2fcore_2fsecurity_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; + if (from.path().size() > 0) { - { - void* ptr = &::flyteidl::core::_SecurityContext_default_instance_; - new (ptr) ::flyteidl::core::SecurityContext(); - ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + path_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.path_); } - ::flyteidl::core::SecurityContext::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<3> scc_info_SecurityContext_flyteidl_2fcore_2fsecurity_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsSecurityContext_flyteidl_2fcore_2fsecurity_2eproto}, { - &scc_info_Identity_flyteidl_2fcore_2fsecurity_2eproto.base, - &scc_info_Secret_flyteidl_2fcore_2fsecurity_2eproto.base, - &scc_info_OAuth2TokenRequest_flyteidl_2fcore_2fsecurity_2eproto.base,}}; - -void InitDefaults_flyteidl_2fcore_2fsecurity_2eproto() { - ::google::protobuf::internal::InitSCC(&scc_info_Secret_flyteidl_2fcore_2fsecurity_2eproto.base); - ::google::protobuf::internal::InitSCC(&scc_info_OAuth2Client_flyteidl_2fcore_2fsecurity_2eproto.base); - ::google::protobuf::internal::InitSCC(&scc_info_Identity_flyteidl_2fcore_2fsecurity_2eproto.base); - ::google::protobuf::internal::InitSCC(&scc_info_OAuth2TokenRequest_flyteidl_2fcore_2fsecurity_2eproto.base); - ::google::protobuf::internal::InitSCC(&scc_info_SecurityContext_flyteidl_2fcore_2fsecurity_2eproto.base); +void Secret_MountFile::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.core.Secret.MountFile) + if (&from == this) return; + Clear(); + MergeFrom(from); } -::google::protobuf::Metadata file_level_metadata_flyteidl_2fcore_2fsecurity_2eproto[5]; -const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fcore_2fsecurity_2eproto[2]; -constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fcore_2fsecurity_2eproto = nullptr; - -const ::google::protobuf::uint32 TableStruct_flyteidl_2fcore_2fsecurity_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, group_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, group_version_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, key_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, mount_requirement_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, env_name_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2Client, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2Client, client_id_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2Client, client_secret_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identity, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identity, iam_role_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identity, k8s_service_account_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identity, oauth2_client_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Identity, execution_identity_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, name_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, type_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, client_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, idp_discovery_endpoint_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2TokenRequest, token_endpoint_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::SecurityContext, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::SecurityContext, run_as_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::SecurityContext, secrets_), - PROTOBUF_FIELD_OFFSET(::flyteidl::core::SecurityContext, tokens_), -}; -static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, -1, sizeof(::flyteidl::core::Secret)}, - { 10, -1, sizeof(::flyteidl::core::OAuth2Client)}, - { 17, -1, sizeof(::flyteidl::core::Identity)}, - { 26, -1, sizeof(::flyteidl::core::OAuth2TokenRequest)}, - { 36, -1, sizeof(::flyteidl::core::SecurityContext)}, -}; - -static ::google::protobuf::Message const * const file_default_instances[] = { - reinterpret_cast(&::flyteidl::core::_Secret_default_instance_), - reinterpret_cast(&::flyteidl::core::_OAuth2Client_default_instance_), - reinterpret_cast(&::flyteidl::core::_Identity_default_instance_), - reinterpret_cast(&::flyteidl::core::_OAuth2TokenRequest_default_instance_), - reinterpret_cast(&::flyteidl::core::_SecurityContext_default_instance_), -}; - -::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto = { - {}, AddDescriptors_flyteidl_2fcore_2fsecurity_2eproto, "flyteidl/core/security.proto", schemas, - file_default_instances, TableStruct_flyteidl_2fcore_2fsecurity_2eproto::offsets, - file_level_metadata_flyteidl_2fcore_2fsecurity_2eproto, 5, file_level_enum_descriptors_flyteidl_2fcore_2fsecurity_2eproto, file_level_service_descriptors_flyteidl_2fcore_2fsecurity_2eproto, -}; - -const char descriptor_table_protodef_flyteidl_2fcore_2fsecurity_2eproto[] = - "\n\034flyteidl/core/security.proto\022\rflyteidl" - ".core\"\266\001\n\006Secret\022\r\n\005group\030\001 \001(\t\022\025\n\rgroup" - "_version\030\002 \001(\t\022\013\n\003key\030\003 \001(\t\022:\n\021mount_req" - "uirement\030\004 \001(\0162\037.flyteidl.core.Secret.Mo" - "untType\022\020\n\010env_name\030\005 \001(\t\"+\n\tMountType\022\007" - "\n\003ANY\020\000\022\013\n\007ENV_VAR\020\001\022\010\n\004FILE\020\002\"O\n\014OAuth2" - "Client\022\021\n\tclient_id\030\001 \001(\t\022,\n\rclient_secr" - "et\030\002 \001(\0132\025.flyteidl.core.Secret\"\211\001\n\010Iden" - "tity\022\020\n\010iam_role\030\001 \001(\t\022\033\n\023k8s_service_ac" - "count\030\002 \001(\t\0222\n\roauth2_client\030\003 \001(\0132\033.fly" - "teidl.core.OAuth2Client\022\032\n\022execution_ide" - "ntity\030\004 \001(\t\"\335\001\n\022OAuth2TokenRequest\022\014\n\004na" - "me\030\001 \001(\t\0224\n\004type\030\002 \001(\0162&.flyteidl.core.O" - "Auth2TokenRequest.Type\022+\n\006client\030\003 \001(\0132\033" - ".flyteidl.core.OAuth2Client\022\036\n\026idp_disco" - "very_endpoint\030\004 \001(\t\022\026\n\016token_endpoint\030\005 " - "\001(\t\"\036\n\004Type\022\026\n\022CLIENT_CREDENTIALS\020\000\"\225\001\n\017" - "SecurityContext\022\'\n\006run_as\030\001 \001(\0132\027.flytei" - "dl.core.Identity\022&\n\007secrets\030\002 \003(\0132\025.flyt" - "eidl.core.Secret\0221\n\006tokens\030\003 \003(\0132!.flyte" - "idl.core.OAuth2TokenRequestB6Z4github.co" - "m/flyteorg/flyteidl/gen/pb-go/flyteidl/c" - "oreb\006proto3" - ; -::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fcore_2fsecurity_2eproto = { - false, InitDefaults_flyteidl_2fcore_2fsecurity_2eproto, - descriptor_table_protodef_flyteidl_2fcore_2fsecurity_2eproto, - "flyteidl/core/security.proto", &assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto, 891, -}; +void Secret_MountFile::CopyFrom(const Secret_MountFile& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.core.Secret.MountFile) + if (&from == this) return; + Clear(); + MergeFrom(from); +} -void AddDescriptors_flyteidl_2fcore_2fsecurity_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[1] = - { - }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fcore_2fsecurity_2eproto, deps, 0); +bool Secret_MountFile::IsInitialized() const { + return true; } -// Force running AddDescriptors() at dynamic initialization time. -static bool dynamic_init_dummy_flyteidl_2fcore_2fsecurity_2eproto = []() { AddDescriptors_flyteidl_2fcore_2fsecurity_2eproto(); return true; }(); -namespace flyteidl { -namespace core { -const ::google::protobuf::EnumDescriptor* Secret_MountType_descriptor() { - ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto); - return file_level_enum_descriptors_flyteidl_2fcore_2fsecurity_2eproto[0]; +void Secret_MountFile::Swap(Secret_MountFile* other) { + if (other == this) return; + InternalSwap(other); } -bool Secret_MountType_IsValid(int value) { - switch (value) { - case 0: - case 1: - case 2: - return true; - default: - return false; - } +void Secret_MountFile::InternalSwap(Secret_MountFile* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + path_.Swap(&other->path_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); } -#if !defined(_MSC_VER) || _MSC_VER >= 1900 -const Secret_MountType Secret::ANY; -const Secret_MountType Secret::ENV_VAR; -const Secret_MountType Secret::FILE; -const Secret_MountType Secret::MountType_MIN; -const Secret_MountType Secret::MountType_MAX; -const int Secret::MountType_ARRAYSIZE; -#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 -const ::google::protobuf::EnumDescriptor* OAuth2TokenRequest_Type_descriptor() { - ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto); - return file_level_enum_descriptors_flyteidl_2fcore_2fsecurity_2eproto[1]; -} -bool OAuth2TokenRequest_Type_IsValid(int value) { - switch (value) { - case 0: - return true; - default: - return false; - } +::google::protobuf::Metadata Secret_MountFile::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto); + return ::file_level_metadata_flyteidl_2fcore_2fsecurity_2eproto[kIndexInFileMessages]; } -#if !defined(_MSC_VER) || _MSC_VER >= 1900 -const OAuth2TokenRequest_Type OAuth2TokenRequest::CLIENT_CREDENTIALS; -const OAuth2TokenRequest_Type OAuth2TokenRequest::Type_MIN; -const OAuth2TokenRequest_Type OAuth2TokenRequest::Type_MAX; -const int OAuth2TokenRequest::Type_ARRAYSIZE; -#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 // =================================================================== void Secret::InitAsDefaultInstance() { + ::flyteidl::core::_Secret_default_instance_.env_var_ = const_cast< ::flyteidl::core::Secret_MountEnvVar*>( + ::flyteidl::core::Secret_MountEnvVar::internal_default_instance()); + ::flyteidl::core::_Secret_default_instance_.file_ = const_cast< ::flyteidl::core::Secret_MountFile*>( + ::flyteidl::core::Secret_MountFile::internal_default_instance()); } class Secret::HasBitSetters { public: + static const ::flyteidl::core::Secret_MountEnvVar& env_var(const Secret* msg); + static const ::flyteidl::core::Secret_MountFile& file(const Secret* msg); }; +const ::flyteidl::core::Secret_MountEnvVar& +Secret::HasBitSetters::env_var(const Secret* msg) { + return *msg->mount_target_.env_var_; +} +const ::flyteidl::core::Secret_MountFile& +Secret::HasBitSetters::file(const Secret* msg) { + return *msg->mount_target_.file_; +} +void Secret::set_allocated_env_var(::flyteidl::core::Secret_MountEnvVar* env_var) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + clear_mount_target(); + if (env_var) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + env_var = ::google::protobuf::internal::GetOwnedMessage( + message_arena, env_var, submessage_arena); + } + set_has_env_var(); + mount_target_.env_var_ = env_var; + } + // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Secret.env_var) +} +void Secret::set_allocated_file(::flyteidl::core::Secret_MountFile* file) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + clear_mount_target(); + if (file) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + file = ::google::protobuf::internal::GetOwnedMessage( + message_arena, file, submessage_arena); + } + set_has_file(); + mount_target_.file_ = file; + } + // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Secret.file) +} #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int Secret::kGroupFieldNumber; const int Secret::kGroupVersionFieldNumber; const int Secret::kKeyFieldNumber; const int Secret::kMountRequirementFieldNumber; -const int Secret::kEnvNameFieldNumber; +const int Secret::kEnvVarFieldNumber; +const int Secret::kFileFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 Secret::Secret() @@ -322,11 +1025,21 @@ Secret::Secret(const Secret& from) if (from.key().size() > 0) { key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_); } - env_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - if (from.env_name().size() > 0) { - env_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.env_name_); - } mount_requirement_ = from.mount_requirement_; + clear_has_mount_target(); + switch (from.mount_target_case()) { + case kEnvVar: { + mutable_env_var()->::flyteidl::core::Secret_MountEnvVar::MergeFrom(from.env_var()); + break; + } + case kFile: { + mutable_file()->::flyteidl::core::Secret_MountFile::MergeFrom(from.file()); + break; + } + case MOUNT_TARGET_NOT_SET: { + break; + } + } // @@protoc_insertion_point(copy_constructor:flyteidl.core.Secret) } @@ -336,8 +1049,8 @@ void Secret::SharedCtor() { group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); group_version_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - env_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); mount_requirement_ = 0; + clear_has_mount_target(); } Secret::~Secret() { @@ -349,7 +1062,9 @@ void Secret::SharedDtor() { group_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); group_version_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); key_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - env_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (has_mount_target()) { + clear_mount_target(); + } } void Secret::SetCachedSize(int size) const { @@ -361,6 +1076,25 @@ const Secret& Secret::default_instance() { } +void Secret::clear_mount_target() { +// @@protoc_insertion_point(one_of_clear_start:flyteidl.core.Secret) + switch (mount_target_case()) { + case kEnvVar: { + delete mount_target_.env_var_; + break; + } + case kFile: { + delete mount_target_.file_; + break; + } + case MOUNT_TARGET_NOT_SET: { + break; + } + } + _oneof_case_[0] = MOUNT_TARGET_NOT_SET; +} + + void Secret::Clear() { // @@protoc_insertion_point(message_clear_start:flyteidl.core.Secret) ::google::protobuf::uint32 cached_has_bits = 0; @@ -370,8 +1104,8 @@ void Secret::Clear() { group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); group_version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); key_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - env_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); mount_requirement_ = 0; + clear_mount_target(); _internal_metadata_.Clear(); } @@ -436,7 +1170,7 @@ const char* Secret::_InternalParse(const char* begin, const char* end, void* obj ptr += size; break; } - // .flyteidl.core.Secret.MountType mount_requirement = 4; + // .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; case 4: { if (static_cast<::google::protobuf::uint8>(tag) != 32) goto handle_unusual; ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr); @@ -444,20 +1178,30 @@ const char* Secret::_InternalParse(const char* begin, const char* end, void* obj GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); break; } - // string env_name = 5; + // .flyteidl.core.Secret.MountEnvVar env_var = 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.Secret.env_name"); - object = msg->mutable_env_name(); - 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); + parser_till_end = ::flyteidl::core::Secret_MountEnvVar::_InternalParse; + object = msg->mutable_env_var(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } + // .flyteidl.core.Secret.MountFile file = 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); + parser_till_end = ::flyteidl::core::Secret_MountFile::_InternalParse; + object = msg->mutable_file(); + 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: { @@ -539,7 +1283,7 @@ bool Secret::MergePartialFromCodedStream( break; } - // .flyteidl.core.Secret.MountType mount_requirement = 4; + // .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; case 4: { if (static_cast< ::google::protobuf::uint8>(tag) == (32 & 0xFF)) { int value = 0; @@ -553,15 +1297,22 @@ bool Secret::MergePartialFromCodedStream( break; } - // string env_name = 5; + // .flyteidl.core.Secret.MountEnvVar env_var = 5; case 5: { if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) { - DO_(::google::protobuf::internal::WireFormatLite::ReadString( - input, this->mutable_env_name())); - DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->env_name().data(), static_cast(this->env_name().length()), - ::google::protobuf::internal::WireFormatLite::PARSE, - "flyteidl.core.Secret.env_name")); + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_env_var())); + } else { + goto handle_unusual; + } + break; + } + + // .flyteidl.core.Secret.MountFile file = 6; + case 6: { + if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_file())); } else { goto handle_unusual; } @@ -625,20 +1376,22 @@ void Secret::SerializeWithCachedSizes( 3, this->key(), output); } - // .flyteidl.core.Secret.MountType mount_requirement = 4; + // .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; if (this->mount_requirement() != 0) { ::google::protobuf::internal::WireFormatLite::WriteEnum( 4, this->mount_requirement(), output); } - // string env_name = 5; - if (this->env_name().size() > 0) { - ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->env_name().data(), static_cast(this->env_name().length()), - ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "flyteidl.core.Secret.env_name"); - ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( - 5, this->env_name(), output); + // .flyteidl.core.Secret.MountEnvVar env_var = 5; + if (has_env_var()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 5, HasBitSetters::env_var(this), output); + } + + // .flyteidl.core.Secret.MountFile file = 6; + if (has_file()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 6, HasBitSetters::file(this), output); } if (_internal_metadata_.have_unknown_fields()) { @@ -687,21 +1440,24 @@ ::google::protobuf::uint8* Secret::InternalSerializeWithCachedSizesToArray( 3, this->key(), target); } - // .flyteidl.core.Secret.MountType mount_requirement = 4; + // .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; if (this->mount_requirement() != 0) { target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( 4, this->mount_requirement(), target); } - // string env_name = 5; - if (this->env_name().size() > 0) { - ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->env_name().data(), static_cast(this->env_name().length()), - ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "flyteidl.core.Secret.env_name"); - target = - ::google::protobuf::internal::WireFormatLite::WriteStringToArray( - 5, this->env_name(), target); + // .flyteidl.core.Secret.MountEnvVar env_var = 5; + if (has_env_var()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 5, HasBitSetters::env_var(this), target); + } + + // .flyteidl.core.Secret.MountFile file = 6; + if (has_file()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 6, HasBitSetters::file(this), target); } if (_internal_metadata_.have_unknown_fields()) { @@ -746,19 +1502,31 @@ size_t Secret::ByteSizeLong() const { this->key()); } - // string env_name = 5; - if (this->env_name().size() > 0) { - total_size += 1 + - ::google::protobuf::internal::WireFormatLite::StringSize( - this->env_name()); - } - - // .flyteidl.core.Secret.MountType mount_requirement = 4; + // .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; if (this->mount_requirement() != 0) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::EnumSize(this->mount_requirement()); } + switch (mount_target_case()) { + // .flyteidl.core.Secret.MountEnvVar env_var = 5; + case kEnvVar: { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *mount_target_.env_var_); + break; + } + // .flyteidl.core.Secret.MountFile file = 6; + case kFile: { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *mount_target_.file_); + break; + } + case MOUNT_TARGET_NOT_SET: { + break; + } + } int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -798,13 +1566,22 @@ void Secret::MergeFrom(const Secret& from) { key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_); } - if (from.env_name().size() > 0) { - - env_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.env_name_); - } if (from.mount_requirement() != 0) { set_mount_requirement(from.mount_requirement()); } + switch (from.mount_target_case()) { + case kEnvVar: { + mutable_env_var()->::flyteidl::core::Secret_MountEnvVar::MergeFrom(from.env_var()); + break; + } + case kFile: { + mutable_file()->::flyteidl::core::Secret_MountFile::MergeFrom(from.file()); + break; + } + case MOUNT_TARGET_NOT_SET: { + break; + } + } } void Secret::CopyFrom(const ::google::protobuf::Message& from) { @@ -838,9 +1615,9 @@ void Secret::InternalSwap(Secret* other) { GetArenaNoVirtual()); key_.Swap(&other->key_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - env_name_.Swap(&other->env_name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); swap(mount_requirement_, other->mount_requirement_); + swap(mount_target_, other->mount_target_); + swap(_oneof_case_[0], other->_oneof_case_[0]); } ::google::protobuf::Metadata Secret::GetMetadata() const { @@ -2694,6 +3471,12 @@ ::google::protobuf::Metadata SecurityContext::GetMetadata() const { } // namespace flyteidl namespace google { namespace protobuf { +template<> PROTOBUF_NOINLINE ::flyteidl::core::Secret_MountEnvVar* Arena::CreateMaybeMessage< ::flyteidl::core::Secret_MountEnvVar >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::core::Secret_MountEnvVar >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::core::Secret_MountFile* Arena::CreateMaybeMessage< ::flyteidl::core::Secret_MountFile >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::core::Secret_MountFile >(arena); +} template<> PROTOBUF_NOINLINE ::flyteidl::core::Secret* Arena::CreateMaybeMessage< ::flyteidl::core::Secret >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::core::Secret >(arena); } diff --git a/gen/pb-cpp/flyteidl/core/security.pb.h b/gen/pb-cpp/flyteidl/core/security.pb.h index 686db7853..c89224e59 100644 --- a/gen/pb-cpp/flyteidl/core/security.pb.h +++ b/gen/pb-cpp/flyteidl/core/security.pb.h @@ -42,7 +42,7 @@ struct TableStruct_flyteidl_2fcore_2fsecurity_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[5] + 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[]; @@ -63,6 +63,12 @@ extern OAuth2TokenRequestDefaultTypeInternal _OAuth2TokenRequest_default_instanc class Secret; class SecretDefaultTypeInternal; extern SecretDefaultTypeInternal _Secret_default_instance_; +class Secret_MountEnvVar; +class Secret_MountEnvVarDefaultTypeInternal; +extern Secret_MountEnvVarDefaultTypeInternal _Secret_MountEnvVar_default_instance_; +class Secret_MountFile; +class Secret_MountFileDefaultTypeInternal; +extern Secret_MountFileDefaultTypeInternal _Secret_MountFile_default_instance_; class SecurityContext; class SecurityContextDefaultTypeInternal; extern SecurityContextDefaultTypeInternal _SecurityContext_default_instance_; @@ -74,6 +80,8 @@ template<> ::flyteidl::core::Identity* Arena::CreateMaybeMessage<::flyteidl::cor template<> ::flyteidl::core::OAuth2Client* Arena::CreateMaybeMessage<::flyteidl::core::OAuth2Client>(Arena*); template<> ::flyteidl::core::OAuth2TokenRequest* Arena::CreateMaybeMessage<::flyteidl::core::OAuth2TokenRequest>(Arena*); template<> ::flyteidl::core::Secret* Arena::CreateMaybeMessage<::flyteidl::core::Secret>(Arena*); +template<> ::flyteidl::core::Secret_MountEnvVar* Arena::CreateMaybeMessage<::flyteidl::core::Secret_MountEnvVar>(Arena*); +template<> ::flyteidl::core::Secret_MountFile* Arena::CreateMaybeMessage<::flyteidl::core::Secret_MountFile>(Arena*); template<> ::flyteidl::core::SecurityContext* Arena::CreateMaybeMessage<::flyteidl::core::SecurityContext>(Arena*); } // namespace protobuf } // namespace google @@ -124,6 +132,246 @@ inline bool OAuth2TokenRequest_Type_Parse( } // =================================================================== +class Secret_MountEnvVar final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.core.Secret.MountEnvVar) */ { + public: + Secret_MountEnvVar(); + virtual ~Secret_MountEnvVar(); + + Secret_MountEnvVar(const Secret_MountEnvVar& from); + + inline Secret_MountEnvVar& operator=(const Secret_MountEnvVar& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + Secret_MountEnvVar(Secret_MountEnvVar&& from) noexcept + : Secret_MountEnvVar() { + *this = ::std::move(from); + } + + inline Secret_MountEnvVar& operator=(Secret_MountEnvVar&& 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 Secret_MountEnvVar& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const Secret_MountEnvVar* internal_default_instance() { + return reinterpret_cast( + &_Secret_MountEnvVar_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + void Swap(Secret_MountEnvVar* other); + friend void swap(Secret_MountEnvVar& a, Secret_MountEnvVar& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline Secret_MountEnvVar* New() const final { + return CreateMaybeMessage(nullptr); + } + + Secret_MountEnvVar* 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 Secret_MountEnvVar& from); + void MergeFrom(const Secret_MountEnvVar& 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(Secret_MountEnvVar* 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 name = 1; + void clear_name(); + static const int kNameFieldNumber = 1; + const ::std::string& name() const; + void set_name(const ::std::string& value); + #if LANG_CXX11 + void set_name(::std::string&& value); + #endif + void set_name(const char* value); + void set_name(const char* value, size_t size); + ::std::string* mutable_name(); + ::std::string* release_name(); + void set_allocated_name(::std::string* name); + + // @@protoc_insertion_point(class_scope:flyteidl.core.Secret.MountEnvVar) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr name_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fcore_2fsecurity_2eproto; +}; +// ------------------------------------------------------------------- + +class Secret_MountFile final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.core.Secret.MountFile) */ { + public: + Secret_MountFile(); + virtual ~Secret_MountFile(); + + Secret_MountFile(const Secret_MountFile& from); + + inline Secret_MountFile& operator=(const Secret_MountFile& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + Secret_MountFile(Secret_MountFile&& from) noexcept + : Secret_MountFile() { + *this = ::std::move(from); + } + + inline Secret_MountFile& operator=(Secret_MountFile&& 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 Secret_MountFile& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const Secret_MountFile* internal_default_instance() { + return reinterpret_cast( + &_Secret_MountFile_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + void Swap(Secret_MountFile* other); + friend void swap(Secret_MountFile& a, Secret_MountFile& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline Secret_MountFile* New() const final { + return CreateMaybeMessage(nullptr); + } + + Secret_MountFile* 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 Secret_MountFile& from); + void MergeFrom(const Secret_MountFile& 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(Secret_MountFile* 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 path = 1; + void clear_path(); + static const int kPathFieldNumber = 1; + const ::std::string& path() const; + void set_path(const ::std::string& value); + #if LANG_CXX11 + void set_path(::std::string&& value); + #endif + void set_path(const char* value); + void set_path(const char* value, size_t size); + ::std::string* mutable_path(); + ::std::string* release_path(); + void set_allocated_path(::std::string* path); + + // @@protoc_insertion_point(class_scope:flyteidl.core.Secret.MountFile) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr path_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fcore_2fsecurity_2eproto; +}; +// ------------------------------------------------------------------- + class Secret final : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.core.Secret) */ { public: @@ -156,13 +404,19 @@ class Secret final : } static const Secret& default_instance(); + enum MountTargetCase { + kEnvVar = 5, + kFile = 6, + MOUNT_TARGET_NOT_SET = 0, + }; + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY static inline const Secret* internal_default_instance() { return reinterpret_cast( &_Secret_default_instance_); } static constexpr int kIndexInFileMessages = - 0; + 2; void Swap(Secret* other); friend void swap(Secret& a, Secret& b) { @@ -217,6 +471,9 @@ class Secret final : // nested types ---------------------------------------------------- + typedef Secret_MountEnvVar MountEnvVar; + typedef Secret_MountFile MountFile; + typedef Secret_MountType MountType; static const MountType ANY = Secret_MountType_ANY; @@ -289,37 +546,54 @@ class Secret final : ::std::string* release_key(); void set_allocated_key(::std::string* key); - // string env_name = 5; - void clear_env_name(); - static const int kEnvNameFieldNumber = 5; - const ::std::string& env_name() const; - void set_env_name(const ::std::string& value); - #if LANG_CXX11 - void set_env_name(::std::string&& value); - #endif - void set_env_name(const char* value); - void set_env_name(const char* value, size_t size); - ::std::string* mutable_env_name(); - ::std::string* release_env_name(); - void set_allocated_env_name(::std::string* env_name); - - // .flyteidl.core.Secret.MountType mount_requirement = 4; - void clear_mount_requirement(); - static const int kMountRequirementFieldNumber = 4; - ::flyteidl::core::Secret_MountType mount_requirement() const; - void set_mount_requirement(::flyteidl::core::Secret_MountType value); - + // .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; + PROTOBUF_DEPRECATED void clear_mount_requirement(); + PROTOBUF_DEPRECATED static const int kMountRequirementFieldNumber = 4; + PROTOBUF_DEPRECATED ::flyteidl::core::Secret_MountType mount_requirement() const; + PROTOBUF_DEPRECATED void set_mount_requirement(::flyteidl::core::Secret_MountType value); + + // .flyteidl.core.Secret.MountEnvVar env_var = 5; + bool has_env_var() const; + void clear_env_var(); + static const int kEnvVarFieldNumber = 5; + const ::flyteidl::core::Secret_MountEnvVar& env_var() const; + ::flyteidl::core::Secret_MountEnvVar* release_env_var(); + ::flyteidl::core::Secret_MountEnvVar* mutable_env_var(); + void set_allocated_env_var(::flyteidl::core::Secret_MountEnvVar* env_var); + + // .flyteidl.core.Secret.MountFile file = 6; + bool has_file() const; + void clear_file(); + static const int kFileFieldNumber = 6; + const ::flyteidl::core::Secret_MountFile& file() const; + ::flyteidl::core::Secret_MountFile* release_file(); + ::flyteidl::core::Secret_MountFile* mutable_file(); + void set_allocated_file(::flyteidl::core::Secret_MountFile* file); + + void clear_mount_target(); + MountTargetCase mount_target_case() const; // @@protoc_insertion_point(class_scope:flyteidl.core.Secret) private: class HasBitSetters; + void set_has_env_var(); + void set_has_file(); + + inline bool has_mount_target() const; + inline void clear_has_mount_target(); ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; ::google::protobuf::internal::ArenaStringPtr group_; ::google::protobuf::internal::ArenaStringPtr group_version_; ::google::protobuf::internal::ArenaStringPtr key_; - ::google::protobuf::internal::ArenaStringPtr env_name_; int mount_requirement_; + union MountTargetUnion { + MountTargetUnion() {} + ::flyteidl::core::Secret_MountEnvVar* env_var_; + ::flyteidl::core::Secret_MountFile* file_; + } mount_target_; mutable ::google::protobuf::internal::CachedSize _cached_size_; + ::google::protobuf::uint32 _oneof_case_[1]; + friend struct ::TableStruct_flyteidl_2fcore_2fsecurity_2eproto; }; // ------------------------------------------------------------------- @@ -362,7 +636,7 @@ class OAuth2Client final : &_OAuth2Client_default_instance_); } static constexpr int kIndexInFileMessages = - 1; + 3; void Swap(OAuth2Client* other); friend void swap(OAuth2Client& a, OAuth2Client& b) { @@ -492,7 +766,7 @@ class Identity final : &_Identity_default_instance_); } static constexpr int kIndexInFileMessages = - 2; + 4; void Swap(Identity* other); friend void swap(Identity& a, Identity& b) { @@ -652,7 +926,7 @@ class OAuth2TokenRequest final : &_OAuth2TokenRequest_default_instance_); } static constexpr int kIndexInFileMessages = - 3; + 5; void Swap(OAuth2TokenRequest* other); friend void swap(OAuth2TokenRequest& a, OAuth2TokenRequest& b) { @@ -843,7 +1117,7 @@ class SecurityContext final : &_SecurityContext_default_instance_); } static constexpr int kIndexInFileMessages = - 4; + 6; void Swap(SecurityContext* other); friend void swap(SecurityContext& a, SecurityContext& b) { @@ -953,6 +1227,120 @@ class SecurityContext final : #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstrict-aliasing" #endif // __GNUC__ +// Secret_MountEnvVar + +// string name = 1; +inline void Secret_MountEnvVar::clear_name() { + name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& Secret_MountEnvVar::name() const { + // @@protoc_insertion_point(field_get:flyteidl.core.Secret.MountEnvVar.name) + return name_.GetNoArena(); +} +inline void Secret_MountEnvVar::set_name(const ::std::string& value) { + + name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.core.Secret.MountEnvVar.name) +} +#if LANG_CXX11 +inline void Secret_MountEnvVar::set_name(::std::string&& value) { + + name_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.core.Secret.MountEnvVar.name) +} +#endif +inline void Secret_MountEnvVar::set_name(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.core.Secret.MountEnvVar.name) +} +inline void Secret_MountEnvVar::set_name(const char* value, size_t size) { + + name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.core.Secret.MountEnvVar.name) +} +inline ::std::string* Secret_MountEnvVar::mutable_name() { + + // @@protoc_insertion_point(field_mutable:flyteidl.core.Secret.MountEnvVar.name) + return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* Secret_MountEnvVar::release_name() { + // @@protoc_insertion_point(field_release:flyteidl.core.Secret.MountEnvVar.name) + + return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void Secret_MountEnvVar::set_allocated_name(::std::string* name) { + if (name != nullptr) { + + } else { + + } + name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name); + // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Secret.MountEnvVar.name) +} + +// ------------------------------------------------------------------- + +// Secret_MountFile + +// string path = 1; +inline void Secret_MountFile::clear_path() { + path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& Secret_MountFile::path() const { + // @@protoc_insertion_point(field_get:flyteidl.core.Secret.MountFile.path) + return path_.GetNoArena(); +} +inline void Secret_MountFile::set_path(const ::std::string& value) { + + path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.core.Secret.MountFile.path) +} +#if LANG_CXX11 +inline void Secret_MountFile::set_path(::std::string&& value) { + + path_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.core.Secret.MountFile.path) +} +#endif +inline void Secret_MountFile::set_path(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.core.Secret.MountFile.path) +} +inline void Secret_MountFile::set_path(const char* value, size_t size) { + + path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.core.Secret.MountFile.path) +} +inline ::std::string* Secret_MountFile::mutable_path() { + + // @@protoc_insertion_point(field_mutable:flyteidl.core.Secret.MountFile.path) + return path_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* Secret_MountFile::release_path() { + // @@protoc_insertion_point(field_release:flyteidl.core.Secret.MountFile.path) + + return path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void Secret_MountFile::set_allocated_path(::std::string* path) { + if (path != nullptr) { + + } else { + + } + path_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), path); + // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Secret.MountFile.path) +} + +// ------------------------------------------------------------------- + // Secret // string group = 1; @@ -1114,7 +1502,7 @@ inline void Secret::set_allocated_key(::std::string* key) { // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Secret.key) } -// .flyteidl.core.Secret.MountType mount_requirement = 4; +// .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; inline void Secret::clear_mount_requirement() { mount_requirement_ = 0; } @@ -1128,59 +1516,97 @@ inline void Secret::set_mount_requirement(::flyteidl::core::Secret_MountType val // @@protoc_insertion_point(field_set:flyteidl.core.Secret.mount_requirement) } -// string env_name = 5; -inline void Secret::clear_env_name() { - env_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +// .flyteidl.core.Secret.MountEnvVar env_var = 5; +inline bool Secret::has_env_var() const { + return mount_target_case() == kEnvVar; } -inline const ::std::string& Secret::env_name() const { - // @@protoc_insertion_point(field_get:flyteidl.core.Secret.env_name) - return env_name_.GetNoArena(); +inline void Secret::set_has_env_var() { + _oneof_case_[0] = kEnvVar; } -inline void Secret::set_env_name(const ::std::string& value) { - - env_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:flyteidl.core.Secret.env_name) +inline void Secret::clear_env_var() { + if (has_env_var()) { + delete mount_target_.env_var_; + clear_has_mount_target(); + } } -#if LANG_CXX11 -inline void Secret::set_env_name(::std::string&& value) { - - env_name_.SetNoArena( - &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); - // @@protoc_insertion_point(field_set_rvalue:flyteidl.core.Secret.env_name) +inline ::flyteidl::core::Secret_MountEnvVar* Secret::release_env_var() { + // @@protoc_insertion_point(field_release:flyteidl.core.Secret.env_var) + if (has_env_var()) { + clear_has_mount_target(); + ::flyteidl::core::Secret_MountEnvVar* temp = mount_target_.env_var_; + mount_target_.env_var_ = nullptr; + return temp; + } else { + return nullptr; + } } -#endif -inline void Secret::set_env_name(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - env_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:flyteidl.core.Secret.env_name) +inline const ::flyteidl::core::Secret_MountEnvVar& Secret::env_var() const { + // @@protoc_insertion_point(field_get:flyteidl.core.Secret.env_var) + return has_env_var() + ? *mount_target_.env_var_ + : *reinterpret_cast< ::flyteidl::core::Secret_MountEnvVar*>(&::flyteidl::core::_Secret_MountEnvVar_default_instance_); } -inline void Secret::set_env_name(const char* value, size_t size) { - - env_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), - ::std::string(reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:flyteidl.core.Secret.env_name) +inline ::flyteidl::core::Secret_MountEnvVar* Secret::mutable_env_var() { + if (!has_env_var()) { + clear_mount_target(); + set_has_env_var(); + mount_target_.env_var_ = CreateMaybeMessage< ::flyteidl::core::Secret_MountEnvVar >( + GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_mutable:flyteidl.core.Secret.env_var) + return mount_target_.env_var_; } -inline ::std::string* Secret::mutable_env_name() { - - // @@protoc_insertion_point(field_mutable:flyteidl.core.Secret.env_name) - return env_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + +// .flyteidl.core.Secret.MountFile file = 6; +inline bool Secret::has_file() const { + return mount_target_case() == kFile; } -inline ::std::string* Secret::release_env_name() { - // @@protoc_insertion_point(field_release:flyteidl.core.Secret.env_name) - - return env_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +inline void Secret::set_has_file() { + _oneof_case_[0] = kFile; } -inline void Secret::set_allocated_env_name(::std::string* env_name) { - if (env_name != nullptr) { - +inline void Secret::clear_file() { + if (has_file()) { + delete mount_target_.file_; + clear_has_mount_target(); + } +} +inline ::flyteidl::core::Secret_MountFile* Secret::release_file() { + // @@protoc_insertion_point(field_release:flyteidl.core.Secret.file) + if (has_file()) { + clear_has_mount_target(); + ::flyteidl::core::Secret_MountFile* temp = mount_target_.file_; + mount_target_.file_ = nullptr; + return temp; } else { - + return nullptr; + } +} +inline const ::flyteidl::core::Secret_MountFile& Secret::file() const { + // @@protoc_insertion_point(field_get:flyteidl.core.Secret.file) + return has_file() + ? *mount_target_.file_ + : *reinterpret_cast< ::flyteidl::core::Secret_MountFile*>(&::flyteidl::core::_Secret_MountFile_default_instance_); +} +inline ::flyteidl::core::Secret_MountFile* Secret::mutable_file() { + if (!has_file()) { + clear_mount_target(); + set_has_file(); + mount_target_.file_ = CreateMaybeMessage< ::flyteidl::core::Secret_MountFile >( + GetArenaNoVirtual()); } - env_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), env_name); - // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Secret.env_name) + // @@protoc_insertion_point(field_mutable:flyteidl.core.Secret.file) + return mount_target_.file_; } +inline bool Secret::has_mount_target() const { + return mount_target_case() != MOUNT_TARGET_NOT_SET; +} +inline void Secret::clear_has_mount_target() { + _oneof_case_[0] = MOUNT_TARGET_NOT_SET; +} +inline Secret::MountTargetCase Secret::mount_target_case() const { + return Secret::MountTargetCase(_oneof_case_[0]); +} // ------------------------------------------------------------------- // OAuth2Client @@ -1857,6 +2283,10 @@ SecurityContext::tokens() const { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/gen/pb-go/flyteidl/core/security.pb.go b/gen/pb-go/flyteidl/core/security.pb.go index b1f096a74..b1e601727 100644 --- a/gen/pb-go/flyteidl/core/security.pb.go +++ b/gen/pb-go/flyteidl/core/security.pb.go @@ -99,14 +99,18 @@ type Secret struct { // if the underlying key management system cannot satisfy that requirement. If not provided, the default location // will depend on the key management system. // +optional - MountRequirement Secret_MountType `protobuf:"varint,4,opt,name=mount_requirement,json=mountRequirement,proto3,enum=flyteidl.core.Secret_MountType" json:"mount_requirement,omitempty"` - // The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default - // FLYTE_SECRETS_ENV_PREFIX prefix will be used. + MountRequirement Secret_MountType `protobuf:"varint,4,opt,name=mount_requirement,json=mountRequirement,proto3,enum=flyteidl.core.Secret_MountType" json:"mount_requirement,omitempty"` // Deprecated: Do not use. + // mount_target is optional. Indicates how the secret should be mounted. Secrets can be mounted as file, or as + // environment variable. // +optional - EnvName string `protobuf:"bytes,5,opt,name=env_name,json=envName,proto3" json:"env_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // + // Types that are valid to be assigned to MountTarget: + // *Secret_EnvVar + // *Secret_File + MountTarget isSecret_MountTarget `protobuf_oneof:"mount_target"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Secret) Reset() { *m = Secret{} } @@ -155,6 +159,7 @@ func (m *Secret) GetKey() string { return "" } +// Deprecated: Do not use. func (m *Secret) GetMountRequirement() Secret_MountType { if m != nil { return m.MountRequirement @@ -162,9 +167,129 @@ func (m *Secret) GetMountRequirement() Secret_MountType { return Secret_ANY } -func (m *Secret) GetEnvName() string { +type isSecret_MountTarget interface { + isSecret_MountTarget() +} + +type Secret_EnvVar struct { + EnvVar *Secret_MountEnvVar `protobuf:"bytes,5,opt,name=env_var,json=envVar,proto3,oneof"` +} + +type Secret_File struct { + File *Secret_MountFile `protobuf:"bytes,6,opt,name=file,proto3,oneof"` +} + +func (*Secret_EnvVar) isSecret_MountTarget() {} + +func (*Secret_File) isSecret_MountTarget() {} + +func (m *Secret) GetMountTarget() isSecret_MountTarget { + if m != nil { + return m.MountTarget + } + return nil +} + +func (m *Secret) GetEnvVar() *Secret_MountEnvVar { + if x, ok := m.GetMountTarget().(*Secret_EnvVar); ok { + return x.EnvVar + } + return nil +} + +func (m *Secret) GetFile() *Secret_MountFile { + if x, ok := m.GetMountTarget().(*Secret_File); ok { + return x.File + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Secret) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Secret_EnvVar)(nil), + (*Secret_File)(nil), + } +} + +// The name of the environment variable if the Secret is injected as environment variable. If ommitted, the default +// FLYTE_SECRETS_ENV_PREFIX prefix will be used. +type Secret_MountEnvVar struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Secret_MountEnvVar) Reset() { *m = Secret_MountEnvVar{} } +func (m *Secret_MountEnvVar) String() string { return proto.CompactTextString(m) } +func (*Secret_MountEnvVar) ProtoMessage() {} +func (*Secret_MountEnvVar) Descriptor() ([]byte, []int) { + return fileDescriptor_0996009b6d39c02f, []int{0, 0} +} + +func (m *Secret_MountEnvVar) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Secret_MountEnvVar.Unmarshal(m, b) +} +func (m *Secret_MountEnvVar) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Secret_MountEnvVar.Marshal(b, m, deterministic) +} +func (m *Secret_MountEnvVar) XXX_Merge(src proto.Message) { + xxx_messageInfo_Secret_MountEnvVar.Merge(m, src) +} +func (m *Secret_MountEnvVar) XXX_Size() int { + return xxx_messageInfo_Secret_MountEnvVar.Size(m) +} +func (m *Secret_MountEnvVar) XXX_DiscardUnknown() { + xxx_messageInfo_Secret_MountEnvVar.DiscardUnknown(m) +} + +var xxx_messageInfo_Secret_MountEnvVar proto.InternalMessageInfo + +func (m *Secret_MountEnvVar) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// The path where the Secret will be mounted. The execution will fail if the underlying key management system cannot +// satisfy that requirement. If not provided, the default location will depend on the key management system. +type Secret_MountFile struct { + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Secret_MountFile) Reset() { *m = Secret_MountFile{} } +func (m *Secret_MountFile) String() string { return proto.CompactTextString(m) } +func (*Secret_MountFile) ProtoMessage() {} +func (*Secret_MountFile) Descriptor() ([]byte, []int) { + return fileDescriptor_0996009b6d39c02f, []int{0, 1} +} + +func (m *Secret_MountFile) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Secret_MountFile.Unmarshal(m, b) +} +func (m *Secret_MountFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Secret_MountFile.Marshal(b, m, deterministic) +} +func (m *Secret_MountFile) XXX_Merge(src proto.Message) { + xxx_messageInfo_Secret_MountFile.Merge(m, src) +} +func (m *Secret_MountFile) XXX_Size() int { + return xxx_messageInfo_Secret_MountFile.Size(m) +} +func (m *Secret_MountFile) XXX_DiscardUnknown() { + xxx_messageInfo_Secret_MountFile.DiscardUnknown(m) +} + +var xxx_messageInfo_Secret_MountFile proto.InternalMessageInfo + +func (m *Secret_MountFile) GetPath() string { if m != nil { - return m.EnvName + return m.Path } return "" } @@ -451,6 +576,8 @@ func init() { proto.RegisterEnum("flyteidl.core.Secret_MountType", Secret_MountType_name, Secret_MountType_value) proto.RegisterEnum("flyteidl.core.OAuth2TokenRequest_Type", OAuth2TokenRequest_Type_name, OAuth2TokenRequest_Type_value) proto.RegisterType((*Secret)(nil), "flyteidl.core.Secret") + proto.RegisterType((*Secret_MountEnvVar)(nil), "flyteidl.core.Secret.MountEnvVar") + proto.RegisterType((*Secret_MountFile)(nil), "flyteidl.core.Secret.MountFile") proto.RegisterType((*OAuth2Client)(nil), "flyteidl.core.OAuth2Client") proto.RegisterType((*Identity)(nil), "flyteidl.core.Identity") proto.RegisterType((*OAuth2TokenRequest)(nil), "flyteidl.core.OAuth2TokenRequest") @@ -460,44 +587,48 @@ func init() { func init() { proto.RegisterFile("flyteidl/core/security.proto", fileDescriptor_0996009b6d39c02f) } var fileDescriptor_0996009b6d39c02f = []byte{ - // 616 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xed, 0x6e, 0xd3, 0x4a, - 0x10, 0x6d, 0x3e, 0x9a, 0x8f, 0x49, 0xd2, 0x9b, 0xee, 0xed, 0xed, 0x35, 0x2a, 0x82, 0x62, 0x04, - 0xaa, 0x84, 0x6a, 0x4b, 0x69, 0x85, 0x4a, 0x7f, 0x11, 0xd2, 0x20, 0x45, 0x0a, 0x41, 0x72, 0xa2, - 0x4a, 0xf0, 0x67, 0xe5, 0xda, 0x43, 0xba, 0x4a, 0xbc, 0x6b, 0xd6, 0xeb, 0xa8, 0x7e, 0x11, 0xde, - 0x82, 0xd7, 0xe0, 0x65, 0x78, 0x09, 0xe4, 0x5d, 0xa7, 0x5f, 0x2a, 0x82, 0x7f, 0xeb, 0x39, 0x73, - 0x76, 0xce, 0x99, 0x19, 0x2f, 0x3c, 0xfe, 0xb2, 0xcc, 0x14, 0xb2, 0x70, 0xe9, 0x06, 0x42, 0xa2, - 0x9b, 0x60, 0x90, 0x4a, 0xa6, 0x32, 0x27, 0x96, 0x42, 0x09, 0xd2, 0x59, 0xa3, 0x4e, 0x8e, 0xda, - 0x3f, 0x4b, 0x50, 0x9b, 0x62, 0x20, 0x51, 0x91, 0x1d, 0xd8, 0x9c, 0x4b, 0x91, 0xc6, 0x56, 0x69, - 0xbf, 0x74, 0xd0, 0xf4, 0xcc, 0x07, 0x79, 0x0e, 0x1d, 0x7d, 0xa0, 0x2b, 0x94, 0x09, 0x13, 0xdc, - 0x2a, 0x6b, 0xb4, 0xad, 0x83, 0xe7, 0x26, 0x46, 0xba, 0x50, 0x59, 0x60, 0x66, 0x55, 0x34, 0x94, - 0x1f, 0xc9, 0x18, 0xb6, 0x23, 0x91, 0x72, 0x45, 0x25, 0x7e, 0x4d, 0x99, 0xc4, 0x08, 0xb9, 0xb2, - 0xaa, 0xfb, 0xa5, 0x83, 0xad, 0xde, 0x53, 0xe7, 0x8e, 0x04, 0xc7, 0x94, 0x77, 0x3e, 0xe4, 0xe9, - 0xb3, 0x2c, 0x46, 0xaf, 0xab, 0x99, 0xde, 0x0d, 0x91, 0x3c, 0x82, 0x06, 0xf2, 0x15, 0xe5, 0x7e, - 0x84, 0xd6, 0xa6, 0x2e, 0x52, 0x47, 0xbe, 0x9a, 0xf8, 0x11, 0xda, 0xaf, 0xa0, 0x79, 0xcd, 0x24, - 0x75, 0xa8, 0xf4, 0x27, 0x9f, 0xba, 0x1b, 0xa4, 0x05, 0xf5, 0xe1, 0xe4, 0x9c, 0x9e, 0xf7, 0xbd, - 0x6e, 0x89, 0x34, 0xa0, 0xfa, 0x7e, 0x34, 0x1e, 0x76, 0xcb, 0xf6, 0x1c, 0xda, 0x1f, 0xfb, 0xa9, - 0xba, 0xec, 0x0d, 0x96, 0x2c, 0xbf, 0x77, 0x0f, 0x9a, 0x81, 0x3e, 0x51, 0x16, 0x16, 0xb6, 0x1b, - 0x26, 0x30, 0x0a, 0xc9, 0x29, 0x74, 0x0a, 0x30, 0xd1, 0x0a, 0xb5, 0xf3, 0x56, 0xef, 0xbf, 0x07, - 0xe5, 0x7b, 0x6d, 0x93, 0x6b, 0xbe, 0xec, 0x1f, 0x25, 0x68, 0x8c, 0x42, 0xe4, 0x8a, 0xa9, 0x2c, - 0x57, 0xcf, 0xfc, 0x88, 0x4a, 0xb1, 0xc4, 0xa2, 0x48, 0x9d, 0xf9, 0x91, 0x27, 0x96, 0x48, 0x1c, - 0xf8, 0x77, 0x71, 0x92, 0xd0, 0x04, 0xe5, 0x8a, 0x05, 0x48, 0xfd, 0x20, 0xc8, 0xbd, 0x14, 0x3d, - 0xde, 0x5e, 0x9c, 0x24, 0x53, 0x83, 0xf4, 0x0d, 0x40, 0xde, 0x42, 0x47, 0xf8, 0xb9, 0x01, 0x6a, - 0xca, 0xe9, 0x96, 0xb7, 0x7a, 0x7b, 0xf7, 0x34, 0xdd, 0x36, 0xe9, 0xb5, 0x0d, 0xa3, 0xb0, 0x7c, - 0x08, 0x04, 0xaf, 0x30, 0x48, 0x15, 0x13, 0x9c, 0xb2, 0x42, 0xa2, 0x9e, 0x4c, 0xd3, 0xdb, 0xbe, - 0x46, 0xd6, 0xda, 0xed, 0x6f, 0x65, 0x20, 0xe6, 0xb6, 0x99, 0x58, 0x20, 0xcf, 0x87, 0x82, 0x89, - 0x22, 0x04, 0xaa, 0x7a, 0x18, 0xc6, 0x8e, 0x3e, 0x93, 0x53, 0xa8, 0xaa, 0x2c, 0x46, 0x2d, 0x7e, - 0xab, 0xf7, 0xf2, 0x41, 0x49, 0xb7, 0x2f, 0x71, 0xf4, 0xb0, 0x35, 0x87, 0x1c, 0x41, 0xed, 0xef, - 0x0d, 0x15, 0xa9, 0xe4, 0x18, 0x76, 0x59, 0x18, 0xd3, 0x90, 0x25, 0x81, 0x58, 0xa1, 0xcc, 0x28, - 0xf2, 0x30, 0x16, 0xac, 0x58, 0xb4, 0xa6, 0xb7, 0xc3, 0xc2, 0xf8, 0x6c, 0x0d, 0x0e, 0x0b, 0x8c, - 0xbc, 0x80, 0x2d, 0x95, 0xab, 0xb8, 0xc9, 0x36, 0x1b, 0xd5, 0xd1, 0xd1, 0x75, 0x9a, 0xfd, 0x04, - 0xaa, 0x7a, 0xa5, 0x76, 0x81, 0x0c, 0xc6, 0xa3, 0xe1, 0x64, 0x46, 0x07, 0xde, 0xf0, 0x6c, 0x38, - 0x99, 0x8d, 0xfa, 0xe3, 0x69, 0x77, 0xc3, 0xfe, 0x5e, 0x82, 0x7f, 0xa6, 0xc5, 0xaf, 0x35, 0x10, - 0x5c, 0xe1, 0x95, 0x22, 0x0e, 0xd4, 0x64, 0xca, 0xa9, 0x9f, 0xe8, 0xbe, 0xb4, 0x7a, 0xff, 0xdf, - 0x73, 0xb1, 0xee, 0xaa, 0xb7, 0x29, 0x53, 0xde, 0x4f, 0x88, 0x0b, 0x75, 0xb3, 0x5a, 0x89, 0x55, - 0xde, 0xaf, 0xfc, 0x7e, 0xb7, 0xd6, 0x59, 0xe4, 0x0d, 0xd4, 0xb4, 0xca, 0xc4, 0xaa, 0xe8, 0xfc, - 0x67, 0x7f, 0x6c, 0xb2, 0x57, 0x10, 0xde, 0xbd, 0xfe, 0x7c, 0x3c, 0x67, 0xea, 0x32, 0xbd, 0x70, - 0x02, 0x11, 0xb9, 0x9a, 0x26, 0xe4, 0xdc, 0xbd, 0x7e, 0x2b, 0xe6, 0xc8, 0xdd, 0xf8, 0xe2, 0x70, - 0x2e, 0xdc, 0x3b, 0xcf, 0xc7, 0x45, 0x4d, 0x3f, 0x1b, 0x47, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, - 0xdb, 0x98, 0xa7, 0xf3, 0x56, 0x04, 0x00, 0x00, + // 683 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xed, 0x6e, 0xd3, 0x30, + 0x14, 0x6d, 0xfa, 0xdd, 0xdb, 0x0f, 0x3a, 0x33, 0x46, 0xd8, 0x10, 0xeb, 0x8a, 0x40, 0x93, 0xd0, + 0x52, 0xa9, 0x1b, 0x68, 0x4c, 0xfc, 0xa0, 0xeb, 0x3a, 0xad, 0xd2, 0x28, 0xc8, 0xad, 0x2a, 0xc1, + 0x9f, 0x28, 0x4b, 0xee, 0x3a, 0xab, 0x6d, 0x1c, 0x1c, 0xa7, 0x5a, 0x5f, 0x84, 0x7f, 0x3c, 0x02, + 0xaf, 0xc1, 0x73, 0xa1, 0x38, 0xc9, 0xbe, 0x34, 0x06, 0xff, 0x6e, 0x7c, 0xce, 0xb1, 0xcf, 0xb9, + 0xbe, 0x31, 0x3c, 0x3f, 0x9f, 0x2d, 0x25, 0x32, 0x67, 0xd6, 0xb2, 0xb9, 0xc0, 0x96, 0x8f, 0x76, + 0x20, 0x98, 0x5c, 0x1a, 0x9e, 0xe0, 0x92, 0x93, 0x6a, 0x82, 0x1a, 0x21, 0xda, 0xfc, 0x99, 0x81, + 0xfc, 0x10, 0x6d, 0x81, 0x92, 0xac, 0x42, 0x6e, 0x22, 0x78, 0xe0, 0xe9, 0x5a, 0x43, 0xdb, 0x2e, + 0xd1, 0xe8, 0x83, 0xbc, 0x84, 0xaa, 0x2a, 0xcc, 0x05, 0x0a, 0x9f, 0x71, 0x57, 0x4f, 0x2b, 0xb4, + 0xa2, 0x16, 0xc7, 0xd1, 0x1a, 0xa9, 0x43, 0x66, 0x8a, 0x4b, 0x3d, 0xa3, 0xa0, 0xb0, 0x24, 0x5f, + 0x60, 0x65, 0xce, 0x03, 0x57, 0x9a, 0x02, 0xbf, 0x07, 0x4c, 0xe0, 0x1c, 0x5d, 0xa9, 0x67, 0x1b, + 0xda, 0x76, 0xad, 0xbd, 0x69, 0xdc, 0xb2, 0x60, 0x44, 0xc7, 0x1b, 0x9f, 0x42, 0xfa, 0x68, 0xe9, + 0xe1, 0x61, 0x5a, 0xd7, 0x68, 0x5d, 0xa9, 0xe9, 0xb5, 0x98, 0x7c, 0x80, 0x02, 0xba, 0x0b, 0x73, + 0x61, 0x09, 0x3d, 0xd7, 0xd0, 0xb6, 0xcb, 0xed, 0xad, 0x07, 0xf6, 0xe9, 0xb9, 0x8b, 0xb1, 0x25, + 0x4e, 0x52, 0x34, 0x8f, 0xaa, 0x22, 0x6f, 0x21, 0x7b, 0xce, 0x66, 0xa8, 0xe7, 0x95, 0xf4, 0x21, + 0x0b, 0xc7, 0x6c, 0x86, 0x27, 0x29, 0xaa, 0xe8, 0xeb, 0x5b, 0x50, 0xbe, 0xb1, 0x1f, 0x21, 0x90, + 0x75, 0xad, 0x39, 0xc6, 0x1d, 0x52, 0xf5, 0xfa, 0x26, 0x94, 0xae, 0x74, 0x21, 0xc1, 0xb3, 0xe4, + 0x45, 0x42, 0x08, 0xeb, 0xe6, 0x9b, 0x98, 0x10, 0x66, 0x23, 0x05, 0xc8, 0x74, 0x06, 0x5f, 0xeb, + 0x29, 0x52, 0x86, 0x42, 0x6f, 0x30, 0x36, 0xc7, 0x1d, 0x5a, 0xd7, 0x48, 0x11, 0xb2, 0xc7, 0xfd, + 0xd3, 0x5e, 0x3d, 0x7d, 0x58, 0x83, 0x4a, 0xd4, 0x37, 0x69, 0x89, 0x09, 0xca, 0xe6, 0x04, 0x2a, + 0x9f, 0x3b, 0x81, 0xbc, 0x68, 0x77, 0x67, 0x2c, 0xec, 0xc2, 0x06, 0x94, 0x6c, 0x55, 0x99, 0xcc, + 0x89, 0x4f, 0x29, 0x46, 0x0b, 0x7d, 0x87, 0x1c, 0x40, 0x35, 0x06, 0x7d, 0x15, 0x48, 0xdd, 0x55, + 0xb9, 0xfd, 0xe4, 0xde, 0xb4, 0xb4, 0x12, 0x71, 0xa3, 0xaf, 0xe6, 0x6f, 0x0d, 0x8a, 0x7d, 0x07, + 0x5d, 0xc9, 0xe4, 0x92, 0x3c, 0x83, 0x22, 0xb3, 0xe6, 0xa6, 0xe0, 0xb3, 0x24, 0x6b, 0x81, 0x59, + 0x73, 0xca, 0x67, 0x48, 0x0c, 0x78, 0x3c, 0xdd, 0xf7, 0x4d, 0x1f, 0xc5, 0x82, 0xd9, 0x68, 0x5a, + 0xb6, 0x1d, 0xda, 0x8d, 0xa7, 0x62, 0x65, 0xba, 0xef, 0x0f, 0x23, 0xa4, 0x13, 0x01, 0xe4, 0x23, + 0x54, 0xb9, 0x15, 0x06, 0x30, 0xa3, 0xe3, 0xd4, 0x90, 0x94, 0xdb, 0x1b, 0x77, 0x3c, 0xdd, 0x0c, + 0x49, 0x2b, 0x91, 0x22, 0x8e, 0xbc, 0x03, 0x04, 0x2f, 0xd1, 0x0e, 0x24, 0xe3, 0xae, 0xc9, 0x62, + 0x8b, 0x6a, 0x96, 0x4a, 0x74, 0xe5, 0x0a, 0x49, 0xbc, 0x37, 0x7f, 0xa4, 0x81, 0x44, 0xbb, 0x8d, + 0xf8, 0x14, 0xdd, 0x70, 0x84, 0xd0, 0x97, 0xf7, 0x5d, 0x1d, 0x39, 0x80, 0xac, 0x5c, 0x7a, 0xa8, + 0xcc, 0xd7, 0xda, 0xaf, 0xef, 0xb5, 0x74, 0x73, 0x13, 0x23, 0xbc, 0x42, 0xaa, 0x34, 0x64, 0x17, + 0xf2, 0xff, 0x1f, 0x28, 0xa6, 0x92, 0x3d, 0x58, 0x63, 0x8e, 0x67, 0x3a, 0xcc, 0xb7, 0xf9, 0x02, + 0xc5, 0xd2, 0x44, 0xd7, 0xf1, 0x38, 0x8b, 0x7f, 0x8d, 0x12, 0x5d, 0x65, 0x8e, 0x77, 0x94, 0x80, + 0xbd, 0x18, 0x23, 0xaf, 0xa0, 0x26, 0x43, 0x17, 0xd7, 0xec, 0x9c, 0x62, 0x57, 0xd5, 0x6a, 0x42, + 0x6b, 0xbe, 0x80, 0xac, 0x1a, 0xb1, 0x35, 0x20, 0xdd, 0xd3, 0x7e, 0x6f, 0x30, 0x32, 0xbb, 0xb4, + 0x77, 0xd4, 0x1b, 0x8c, 0xfa, 0x9d, 0xd3, 0x61, 0x3d, 0xd5, 0xfc, 0xa5, 0xc1, 0xa3, 0x61, 0xfc, + 0x18, 0x74, 0xb9, 0x2b, 0xf1, 0x52, 0x12, 0x03, 0xf2, 0x22, 0x70, 0x4d, 0xcb, 0x57, 0x7d, 0x29, + 0xb7, 0x9f, 0xde, 0x49, 0x91, 0x74, 0x95, 0xe6, 0x44, 0xe0, 0x76, 0x7c, 0xd2, 0x82, 0x42, 0x34, + 0x5a, 0xbe, 0x9e, 0x6e, 0x64, 0xfe, 0x3e, 0x5b, 0x09, 0x8b, 0xbc, 0x87, 0xbc, 0x72, 0xe9, 0xeb, + 0x19, 0xc5, 0xdf, 0xfa, 0x67, 0x93, 0x69, 0x2c, 0x38, 0x7c, 0xf7, 0x6d, 0x6f, 0xc2, 0xe4, 0x45, + 0x70, 0x66, 0xd8, 0x7c, 0xde, 0x52, 0x32, 0x2e, 0x26, 0xad, 0xab, 0xd7, 0x6d, 0x82, 0x6e, 0xcb, + 0x3b, 0xdb, 0x99, 0xf0, 0xd6, 0xad, 0x07, 0xef, 0x2c, 0xaf, 0x1e, 0xba, 0xdd, 0x3f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0xde, 0x72, 0x59, 0xc1, 0x08, 0x05, 0x00, 0x00, } diff --git a/gen/pb-go/flyteidl/core/security.pb.validate.go b/gen/pb-go/flyteidl/core/security.pb.validate.go index 067c5fde1..6d3c63d12 100644 --- a/gen/pb-go/flyteidl/core/security.pb.validate.go +++ b/gen/pb-go/flyteidl/core/security.pb.validate.go @@ -51,7 +51,33 @@ func (m *Secret) Validate() error { // no validation rules for MountRequirement - // no validation rules for EnvName + switch m.MountTarget.(type) { + + case *Secret_EnvVar: + + if v, ok := interface{}(m.GetEnvVar()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SecretValidationError{ + field: "EnvVar", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Secret_File: + + if v, ok := interface{}(m.GetFile()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SecretValidationError{ + field: "File", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } return nil } @@ -456,3 +482,139 @@ var _ interface { Cause() error ErrorName() string } = SecurityContextValidationError{} + +// Validate checks the field values on Secret_MountEnvVar with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Secret_MountEnvVar) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + return nil +} + +// Secret_MountEnvVarValidationError is the validation error returned by +// Secret_MountEnvVar.Validate if the designated constraints aren't met. +type Secret_MountEnvVarValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Secret_MountEnvVarValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Secret_MountEnvVarValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Secret_MountEnvVarValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Secret_MountEnvVarValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Secret_MountEnvVarValidationError) ErrorName() string { + return "Secret_MountEnvVarValidationError" +} + +// Error satisfies the builtin error interface +func (e Secret_MountEnvVarValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSecret_MountEnvVar.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Secret_MountEnvVarValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Secret_MountEnvVarValidationError{} + +// Validate checks the field values on Secret_MountFile with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *Secret_MountFile) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Path + + return nil +} + +// Secret_MountFileValidationError is the validation error returned by +// Secret_MountFile.Validate if the designated constraints aren't met. +type Secret_MountFileValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Secret_MountFileValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Secret_MountFileValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Secret_MountFileValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Secret_MountFileValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Secret_MountFileValidationError) ErrorName() string { return "Secret_MountFileValidationError" } + +// Error satisfies the builtin error interface +func (e Secret_MountFileValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSecret_MountFile.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Secret_MountFileValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Secret_MountFileValidationError{} diff --git a/gen/pb-go/flyteidl/service/admin.swagger.json b/gen/pb-go/flyteidl/service/admin.swagger.json index 140301c9b..ae003ca34 100644 --- a/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/gen/pb-go/flyteidl/service/admin.swagger.json @@ -3441,6 +3441,24 @@ } } }, + "SecretMountEnvVar": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "description": "The name of the environment variable if the Secret is injected as environment variable. If ommitted, the default\nFLYTE_SECRETS_ENV_PREFIX prefix will be used." + }, + "SecretMountFile": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + }, + "description": "The path where the Secret will be mounted. The execution will fail if the underlying key management system cannot \nsatisfy that requirement. If not provided, the default location will depend on the key management system." + }, "SecretMountType": { "type": "string", "enum": [ @@ -6685,9 +6703,11 @@ "$ref": "#/definitions/SecretMountType", "title": "mount_requirement is optional. Indicates where the secret has to be mounted. If provided, the execution will fail\nif the underlying key management system cannot satisfy that requirement. If not provided, the default location\nwill depend on the key management system.\n+optional" }, - "env_name": { - "type": "string", - "title": "The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default\nFLYTE_SECRETS_ENV_PREFIX prefix will be used.\n+optional" + "env_var": { + "$ref": "#/definitions/SecretMountEnvVar" + }, + "file": { + "$ref": "#/definitions/SecretMountFile" } }, "description": "Secret encapsulates information about the secret a task needs to proceed. An environment variable\nFLYTE_SECRETS_ENV_PREFIX will be passed to indicate the prefix of the environment variables that will be present if\nsecrets are passed through environment variables.\nFLYTE_SECRETS_DEFAULT_DIR will be passed to indicate the prefix of the path where secrets will be mounted if secrets\nare passed through file mounts." diff --git a/gen/pb-go/flyteidl/service/agent.swagger.json b/gen/pb-go/flyteidl/service/agent.swagger.json index 322253371..cac6fe492 100644 --- a/gen/pb-go/flyteidl/service/agent.swagger.json +++ b/gen/pb-go/flyteidl/service/agent.swagger.json @@ -129,6 +129,24 @@ } } }, + "SecretMountEnvVar": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "description": "The name of the environment variable if the Secret is injected as environment variable. If ommitted, the default\nFLYTE_SECRETS_ENV_PREFIX prefix will be used." + }, + "SecretMountFile": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + }, + "description": "The path where the Secret will be mounted. The execution will fail if the underlying key management system cannot \nsatisfy that requirement. If not provided, the default location will depend on the key management system." + }, "SecretMountType": { "type": "string", "enum": [ @@ -788,9 +806,11 @@ "$ref": "#/definitions/SecretMountType", "title": "mount_requirement is optional. Indicates where the secret has to be mounted. If provided, the execution will fail\nif the underlying key management system cannot satisfy that requirement. If not provided, the default location\nwill depend on the key management system.\n+optional" }, - "env_name": { - "type": "string", - "title": "The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default\nFLYTE_SECRETS_ENV_PREFIX prefix will be used.\n+optional" + "env_var": { + "$ref": "#/definitions/SecretMountEnvVar" + }, + "file": { + "$ref": "#/definitions/SecretMountFile" } }, "description": "Secret encapsulates information about the secret a task needs to proceed. An environment variable\nFLYTE_SECRETS_ENV_PREFIX will be passed to indicate the prefix of the environment variables that will be present if\nsecrets are passed through environment variables.\nFLYTE_SECRETS_DEFAULT_DIR will be passed to indicate the prefix of the path where secrets will be mounted if secrets\nare passed through file mounts." diff --git a/gen/pb-go/flyteidl/service/external_plugin_service.swagger.json b/gen/pb-go/flyteidl/service/external_plugin_service.swagger.json index c45abc44b..3047aa75d 100644 --- a/gen/pb-go/flyteidl/service/external_plugin_service.swagger.json +++ b/gen/pb-go/flyteidl/service/external_plugin_service.swagger.json @@ -129,6 +129,24 @@ } } }, + "SecretMountEnvVar": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "description": "The name of the environment variable if the Secret is injected as environment variable. If ommitted, the default\nFLYTE_SECRETS_ENV_PREFIX prefix will be used." + }, + "SecretMountFile": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + }, + "description": "The path where the Secret will be mounted. The execution will fail if the underlying key management system cannot \nsatisfy that requirement. If not provided, the default location will depend on the key management system." + }, "SecretMountType": { "type": "string", "enum": [ @@ -751,9 +769,11 @@ "$ref": "#/definitions/SecretMountType", "title": "mount_requirement is optional. Indicates where the secret has to be mounted. If provided, the execution will fail\nif the underlying key management system cannot satisfy that requirement. If not provided, the default location\nwill depend on the key management system.\n+optional" }, - "env_name": { - "type": "string", - "title": "The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default\nFLYTE_SECRETS_ENV_PREFIX prefix will be used.\n+optional" + "env_var": { + "$ref": "#/definitions/SecretMountEnvVar" + }, + "file": { + "$ref": "#/definitions/SecretMountFile" } }, "description": "Secret encapsulates information about the secret a task needs to proceed. An environment variable\nFLYTE_SECRETS_ENV_PREFIX will be passed to indicate the prefix of the environment variables that will be present if\nsecrets are passed through environment variables.\nFLYTE_SECRETS_DEFAULT_DIR will be passed to indicate the prefix of the path where secrets will be mounted if secrets\nare passed through file mounts." diff --git a/gen/pb-go/flyteidl/service/flyteadmin/README.md b/gen/pb-go/flyteidl/service/flyteadmin/README.md index 16f7ba1e7..36511e47c 100644 --- a/gen/pb-go/flyteidl/service/flyteadmin/README.md +++ b/gen/pb-go/flyteidl/service/flyteadmin/README.md @@ -341,6 +341,8 @@ Class | Method | HTTP request | Description - [RuntimeMetadataRuntimeType](docs/RuntimeMetadataRuntimeType.md) - [SchemaColumnSchemaColumnType](docs/SchemaColumnSchemaColumnType.md) - [SchemaTypeSchemaColumn](docs/SchemaTypeSchemaColumn.md) + - [SecretMountEnvVar](docs/SecretMountEnvVar.md) + - [SecretMountFile](docs/SecretMountFile.md) - [SecretMountType](docs/SecretMountType.md) - [SortDirection](docs/SortDirection.md) - [SqlDialect](docs/SqlDialect.md) diff --git a/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index b9d5fa1a7..1c9840009 100644 --- a/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -3075,6 +3075,26 @@ definitions: example: name: "name" type: {} + SecretMountEnvVar: + type: "object" + properties: + name: + type: "string" + description: "The name of the environment variable if the Secret is injected as\ + \ environment variable. If ommitted, the default\nFLYTE_SECRETS_ENV_PREFIX prefix\ + \ will be used." + example: + name: "name" + SecretMountFile: + type: "object" + properties: + path: + type: "string" + description: "The path where the Secret will be mounted. The execution will fail\ + \ if the underlying key management system cannot \nsatisfy that requirement.\ + \ If not provided, the default location will depend on the key management system." + example: + path: "path" SecretMountType: type: "string" description: " - ANY: Default case, indicates the client can tolerate either mounting\ @@ -3597,7 +3617,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -3609,7 +3632,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -3621,7 +3647,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -3630,12 +3659,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -3984,7 +4019,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -3996,7 +4034,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -4008,7 +4049,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -4017,12 +4061,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -4187,7 +4237,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -4199,7 +4252,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -4211,7 +4267,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -4220,12 +4279,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -4499,7 +4564,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -4511,7 +4579,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -4523,7 +4594,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -4532,12 +4606,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -5163,7 +5243,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -5175,7 +5258,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -5187,7 +5273,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -5196,12 +5285,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -5974,7 +6069,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -5986,7 +6084,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -5998,7 +6099,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -6007,12 +6111,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -6500,7 +6610,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -6512,7 +6625,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -6524,7 +6640,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -6533,12 +6652,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -6918,7 +7043,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -6930,7 +7058,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -6942,7 +7073,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -6951,12 +7085,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7032,7 +7172,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7044,7 +7187,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7056,7 +7202,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7065,12 +7214,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7144,7 +7299,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7156,7 +7314,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7168,7 +7329,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7177,12 +7341,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7289,7 +7459,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7301,7 +7474,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7313,7 +7489,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7322,12 +7501,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7441,7 +7626,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7453,7 +7641,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7465,7 +7656,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -7474,12 +7668,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -12088,7 +12288,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -12100,7 +12303,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -12112,7 +12318,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -12121,12 +12330,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -12356,7 +12571,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -12368,7 +12586,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -12380,7 +12601,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -12389,12 +12613,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -14811,7 +15041,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -14823,7 +15056,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -14835,7 +15071,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -14844,12 +15083,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -14943,7 +15188,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -14955,7 +15203,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -14967,7 +15218,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -14976,12 +15230,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15078,7 +15338,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15090,7 +15353,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15102,7 +15368,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15111,12 +15380,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15214,7 +15489,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15226,7 +15504,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15238,7 +15519,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15247,12 +15531,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15712,7 +16002,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15724,7 +16017,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15736,7 +16032,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15745,12 +16044,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -15996,7 +16301,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -16008,7 +16316,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -16020,7 +16331,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -16029,12 +16343,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -16693,7 +17013,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -16705,7 +17028,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -16717,7 +17043,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -16726,12 +17055,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -16971,7 +17306,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -16983,7 +17321,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -16995,7 +17336,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -17004,12 +17348,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -21401,7 +21751,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -21413,7 +21766,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -21425,7 +21781,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -21434,12 +21793,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -21669,7 +22034,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -21681,7 +22049,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -21693,7 +22064,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -21702,12 +22076,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -23787,7 +24167,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -23799,7 +24182,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -23811,7 +24197,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -23820,12 +24209,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -23926,7 +24321,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -23938,7 +24336,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -23950,7 +24351,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -23959,12 +24363,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -28303,7 +28713,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -28315,7 +28728,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -28327,7 +28743,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -28336,12 +28755,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -28571,7 +28996,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -28583,7 +29011,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -28595,7 +29026,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -28604,12 +29038,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -30718,7 +31158,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -30730,7 +31173,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -30742,7 +31188,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -30751,12 +31200,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -35147,7 +35602,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -35159,7 +35617,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -35171,7 +35632,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -35180,12 +35644,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -35415,7 +35885,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -35427,7 +35900,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -35439,7 +35915,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -35448,12 +35927,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -41765,7 +42250,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -41777,7 +42265,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -41789,7 +42280,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -41798,12 +42292,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -42033,7 +42533,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -42045,7 +42548,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -42057,7 +42563,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -42066,12 +42575,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -45077,7 +45592,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -45089,7 +45607,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -45101,7 +45622,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -45110,12 +45634,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -51455,7 +51985,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -51467,7 +52000,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -51479,7 +52015,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -51488,12 +52027,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -51723,7 +52268,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -51735,7 +52283,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -51747,7 +52298,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -51756,12 +52310,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -54176,7 +54736,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -55276,7 +55839,10 @@ definitions: \ making calls on behalf of that task." example: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -55317,7 +55883,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -56029,11 +56598,10 @@ definitions: \ system cannot satisfy that requirement. If not provided, the default location\n\ will depend on the key management system.\n+optional" $ref: "#/definitions/SecretMountType" - env_name: - type: "string" - title: "The name of the environment variable, if the Secret is injected as\ - \ environment variable. If ommitted, the default\nFLYTE_SECRETS_ENV_PREFIX\ - \ prefix will be used.\n+optional" + env_var: + $ref: "#/definitions/SecretMountEnvVar" + file: + $ref: "#/definitions/SecretMountFile" description: "Secret encapsulates information about the secret a task needs to\ \ proceed. An environment variable\nFLYTE_SECRETS_ENV_PREFIX will be passed\ \ to indicate the prefix of the environment variables that will be present if\n\ @@ -56041,7 +56609,10 @@ definitions: \ will be passed to indicate the prefix of the path where secrets will be mounted\ \ if secrets\nare passed through file mounts." example: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -56082,7 +56653,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -56094,7 +56668,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -56106,7 +56683,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -56115,12 +56695,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -56817,7 +57403,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -56829,7 +57418,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -56841,7 +57433,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -56850,12 +57445,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -64064,7 +64665,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -64076,7 +64680,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -64088,7 +64695,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -64097,12 +64707,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -64332,7 +64948,10 @@ definitions: iam_role: "iam_role" oauth2_client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -64344,7 +64963,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -64356,7 +64978,10 @@ definitions: name: "name" client: client_secret: - env_name: "env_name" + env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" @@ -64365,12 +64990,18 @@ definitions: type: {} token_endpoint: "token_endpoint" secrets: - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" group: "group" - - env_name: "env_name" + - env_var: + name: "name" + file: + path: "path" mount_requirement: {} group_version: "group_version" key: "key" diff --git a/gen/pb-go/flyteidl/service/flyteadmin/model_core_secret.go b/gen/pb-go/flyteidl/service/flyteadmin/model_core_secret.go index 0b64487cc..5de84b0f1 100644 --- a/gen/pb-go/flyteidl/service/flyteadmin/model_core_secret.go +++ b/gen/pb-go/flyteidl/service/flyteadmin/model_core_secret.go @@ -15,5 +15,6 @@ type CoreSecret struct { GroupVersion string `json:"group_version,omitempty"` Key string `json:"key,omitempty"` MountRequirement *SecretMountType `json:"mount_requirement,omitempty"` - EnvName string `json:"env_name,omitempty"` + EnvVar *SecretMountEnvVar `json:"env_var,omitempty"` + File *SecretMountFile `json:"file,omitempty"` } diff --git a/gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_env_var.go b/gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_env_var.go new file mode 100644 index 000000000..2f4b52010 --- /dev/null +++ b/gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_env_var.go @@ -0,0 +1,15 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +// The name of the environment variable if the Secret is injected as environment variable. If ommitted, the default FLYTE_SECRETS_ENV_PREFIX prefix will be used. +type SecretMountEnvVar struct { + Name string `json:"name,omitempty"` +} diff --git a/gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_file.go b/gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_file.go new file mode 100644 index 000000000..bd2eb26b8 --- /dev/null +++ b/gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_file.go @@ -0,0 +1,15 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +// The path where the Secret will be mounted. The execution will fail if the underlying key management system cannot satisfy that requirement. If not provided, the default location will depend on the key management system. +type SecretMountFile struct { + Path string `json:"path,omitempty"` +} diff --git a/gen/pb-go/flyteidl/service/openapi.go b/gen/pb-go/flyteidl/service/openapi.go index af5380e33..93e7b1281 100644 --- a/gen/pb-go/flyteidl/service/openapi.go +++ b/gen/pb-go/flyteidl/service/openapi.go @@ -78,7 +78,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\xf9\x73\x2b\xb7\x95\x37\x8c\xff\x3e\x7f\x05\x9e\x3b\x4f\x95\xed\x44\x8b\x93\xcc\xe4\x9b\xd2\xd4\x53\xdf\x97\x96\x78\xaf\xf5\x58\x5b\xb4\xd8\xe3\x77\x98\xa2\xc1\x6e\x90\x44\xd4\x0d\x74\x00\xb4\x74\xe9\x54\xfe\xf7\xb7\x70\xb0\x34\x7a\x23\x9b\x8b\x24\xea\xba\x67\xaa\x62\x5d\x76\x37\xd6\x83\x83\xb3\x7e\xce\x3f\xff\x0d\xa1\x0f\xf2\x19\xcf\x66\x44\x7c\x38\x41\x1f\xfe\x78\xf4\xed\x87\x03\xfd\x1b\x65\x53\xfe\xe1\x04\xe9\xe7\x08\x7d\x50\x54\x25\x44\x3f\x9f\x26\x0b\x45\x68\x9c\x1c\x4b\x22\x9e\x68\x44\x8e\x71\x9c\x52\x76\x94\x09\xae\x38\x7c\x88\xd0\x87\x27\x22\x24\xe5\x4c\xbf\x6e\xff\x44\x8c\x2b\x24\x89\xfa\xf0\x6f\x08\xfd\x0b\x9a\x97\xd1\x9c\xa4\x44\x7e\x38\x41\xff\x63\x3e\x9a\x2b\x95\xb9\x06\xf4\xdf\x52\xbf\xfb\x37\x78\x37\xe2\x4c\xe6\xa5\x97\x71\x96\x25\x34\xc2\x8a\x72\x76\xfc\x77\xc9\x59\xf1\x6e\x26\x78\x9c\x47\x1d\xdf\xc5\x6a\x2e\x8b\x39\x1e\xe3\x8c\x1e\x3f\xfd\xe1\x18\x47\x8a\x3e\x91\x71\x82\x73\x16\xcd\xc7\x59\x82\x99\x3c\xfe\x27\x8d\xf5\x1c\xff\x4e\x22\xf5\x2f\xf8\x47\xcc\x53\x4c\x99\xf9\x9b\xe1\x94\xfc\xcb\xb7\x83\xd0\x87\x19\x51\xc1\x3f\xf5\x6c\xf3\x34\xc5\x62\xa1\x57\xe4\x23\x51\xd1\x1c\xa9\x39\x41\xa6\x1f\xe4\x96\x88\x4f\x11\x46\x27\x82\x4c\x4f\x7e\x11\x64\x3a\x76\x0b\x7d\x64\x16\xf8\x02\x46\x73\x93\x60\xf6\xcb\x91\x5d\x26\x68\x99\x67\x44\xc0\xdc\xce\x63\xdd\xfa\x27\xa2\x06\xd0\x6c\xf1\x7e\xf8\xb6\x20\x32\xe3\x4c\x12\x59\x1a\x1e\x42\x1f\xfe\xf8\xed\xb7\x95\x9f\x10\xfa\x10\x13\x19\x09\x9a\x29\xbb\x97\x03\x24\xf3\x28\x22\x52\x4e\xf3\x04\xb9\x96\xc2\xc1\x98\xa9\xea\x8d\xc5\xb5\xc6\x10\xfa\xf0\xbf\x05\x99\xea\x76\xfe\xfd\x38\x26\x53\xca\xa8\x6e\x57\x1a\xfa\x09\x46\x5b\xfa\xea\x5f\xff\xd6\xf4\xf7\xbf\x82\x19\x65\x58\xe0\x94\x28\x22\x8a\x1d\x37\xff\x57\x99\x8b\xde\x23\xdd\x79\xb1\x8f\xd5\x81\x57\x66\x7b\x85\x53\xa2\xf7\x44\xef\x94\xfd\x02\xfe\x16\x44\xf2\x5c\x44\x04\x4d\x48\xc2\xd9\x4c\x22\xc5\x6b\x6b\x40\xa1\x05\x4d\x5e\xd5\x27\x82\xfc\x23\xa7\x82\xe8\xbd\x52\x22\x27\x95\xa7\x6a\x91\xc1\x20\xa5\x12\x94\xcd\xc2\xa5\xf8\xd7\x41\xa7\xa9\x19\xaa\x5c\x63\x66\xe6\x83\xd6\x89\x8d\xd8\xc0\xbd\x12\x61\x86\x26\x04\xe9\xb3\x48\x63\x22\x48\x8c\xb0\x44\x18\xc9\x7c\x22\x89\x42\xcf\x54\xcd\x29\xd3\xff\xce\x48\x44\xa7\x34\x72\x6b\xb6\x3f\x6b\x03\x7f\x2e\x5f\x99\x07\x49\x84\x1e\xf8\x13\x8d\x49\x8c\x9e\x70\x92\x13\x34\xe5\xa2\xb4\x3c\x47\x23\x76\x3f\xd7\xeb\x90\x4e\x28\x83\x93\xa7\xd7\xd2\x51\xc8\xef\xdd\x72\xfd\x1e\xe9\xfe\x50\xce\xe8\x3f\x72\x92\x2c\x10\x8d\x09\x53\x74\x4a\x89\xac\xb6\xf6\x7b\x0e\xfd\xe3\x04\x1d\x22\xbd\xce\x44\x28\x58\x6f\xce\x14\xf9\xac\x24\x3a\x44\x09\x7d\x24\xe8\xab\x0b\x2a\x15\x1a\xdc\x9c\x7f\x75\x80\xbe\x32\xe7\x05\x01\x6f\xfa\xea\x15\x56\xd8\xff\xfd\xb7\xe0\xe8\x29\x3c\xab\x1e\xba\x0f\x03\x7d\x9a\xef\xcc\xd5\x50\xb4\xf0\xb7\x7f\x0b\xdb\xb1\xfb\xb5\x9c\xdf\x16\xcc\xd6\x72\xda\xae\xfc\x15\x96\xa9\xcc\x5a\xa5\xde\xa1\x6d\x39\xab\x6e\xb7\xca\x5a\xe5\xfb\xe2\xad\x7a\x0a\x2f\xcd\x5f\xb7\x61\xae\x58\x01\xd5\x63\xca\xcc\x21\xf1\x67\x46\x48\x7d\x4e\x1c\xf5\xee\x09\x4b\xd9\x86\xd7\x06\x33\x0b\xd8\xad\xe3\xa2\xc1\xaa\xec\xe1\xbc\x13\x9a\xd2\x55\xfb\x7b\xce\x62\x2d\x72\x59\x66\xc7\xf2\x74\x42\x84\x5e\x06\xc7\xf6\x60\xb6\x13\xcd\x06\x55\x2e\x18\x89\x3b\x4c\xf3\x1f\x39\x11\x8b\x25\xf3\x9c\xe2\x44\xb6\x4d\x94\x32\x45\xb4\x7c\x5b\x79\x3c\xe5\x22\xc5\xca\xbe\xf0\xe7\xff\x58\x77\x21\x14\x7f\x24\xab\xf6\xff\xdc\xec\x66\x84\x25\x90\x41\x9a\x27\x8a\x66\x09\x41\x19\x9e\x11\x69\x57\x24\x4f\x94\x3c\x80\xd7\xb4\x4c\x4d\xc4\xa1\xbf\x81\xa0\x07\x77\xf3\xe6\x12\x7e\x41\x53\x2f\x40\x32\xf2\x59\x41\x4b\x23\x06\x77\x2f\x2c\x51\x78\xa3\xbc\xc0\x52\x6e\x46\x33\x92\x0b\x35\x9e\x2c\x8e\x1e\x49\xad\xdf\x56\xca\xc1\x0c\x61\xa5\x04\x9d\xe4\x8a\xe8\x79\xeb\x36\xdc\xdd\x09\xec\xd1\x5c\xd0\x5d\x58\xc3\xdb\x4d\x38\xa6\x82\x44\x30\xb7\x75\x0e\x8c\xff\x4a\xcf\x5b\xeb\x2f\x0b\x33\xfb\x47\xb2\x00\x79\xa4\x61\x05\xfc\x96\x8f\xd8\x88\xa1\x43\x74\x36\xbc\x3b\x1d\x5e\x9d\x9d\x5f\x7d\x3a\x41\xdf\x2d\x50\x4c\xa6\x38\x4f\xd4\x01\x9a\x52\x92\xc4\x12\x61\x41\xa0\x49\x12\x6b\x99\x43\x0f\x86\xb0\x98\xb2\x19\xe2\x22\x26\xe2\xe5\x96\xb1\xf2\x94\xb0\x3c\xad\xdc\x2b\xf0\x7b\x31\xfa\xca\x17\x5a\xc4\xf0\x8f\x4a\x4f\xfe\x56\x5b\x60\x98\xb1\xee\x3b\x68\xed\xd5\x84\x9a\x68\x4e\x93\x58\x10\x76\xac\xb0\x7c\x1c\x93\xcf\x24\xca\xcd\x9d\xfc\xcf\xf2\x0f\x63\x2d\x99\xf2\x98\x94\x7f\x29\xfd\xa3\x10\x85\xd6\xfe\xd4\x6b\xa9\x6b\x7f\x09\x3a\x6d\xb7\xef\xe0\x17\x1a\x37\xbe\x0d\xbf\xac\x98\x83\x7b\x67\xc9\x60\xdd\x2b\xad\xa3\x72\x2f\x58\x89\xaf\xf1\x1d\x41\x94\x58\x8c\xb1\x52\x24\xcd\xd4\x9a\xfa\x3a\x46\x89\x96\x2b\x97\xc9\x91\x57\x3c\x26\x43\xd7\xdf\x2f\xc8\x88\xb3\x24\x46\x93\x85\xe5\x5a\x53\x22\x08\x8b\x48\x7b\x0b\xf7\x58\x3e\x16\x2d\xac\x12\x46\x4b\xfd\xc9\x8f\x5c\xe8\xcf\xdf\x83\x40\x5a\x1a\xf8\x6b\xc8\xa4\x9b\x9e\xb8\x2f\xce\x42\xb0\x21\xff\xe8\xed\x09\xdb\xaf\x64\x57\xeb\x03\x17\x48\x2e\xa4\x22\xe9\x4a\x3b\xc4\xfb\x59\x08\x7b\x41\xec\xeb\x80\x2b\x77\xd4\x6f\xe0\xd4\x97\x6f\xdc\xfe\x78\xaf\xb1\x64\xbb\xb2\x22\xee\xfb\x3c\x9d\x0f\x67\xf9\x54\xef\xdc\xf6\x05\x4e\x8c\x77\x31\xcd\x92\x2c\xb8\xeb\x41\xbe\x90\xb9\xa1\x75\xaf\xdc\x6a\x8f\x61\x00\x2b\x14\xcd\xb2\x1d\xda\x9f\x3f\xfd\x69\x68\xa1\x31\xe6\x38\x35\xa7\x32\x30\x56\xa1\x88\x0b\x23\x0b\xc6\xf6\xbc\x1b\x5d\x73\x70\x3f\xb8\x1b\xde\x9f\xa0\x01\x8a\xb1\xc2\xfa\x80\x0b\x92\x09\x22\x09\x53\xa0\xc7\xeb\xef\xd5\x02\xa5\x3c\x26\x89\xd1\x38\x3f\x6a\xc9\x17\x9d\x61\x85\x4f\xb1\xc2\x09\x9f\x1d\xa1\x01\xfc\x53\x7f\x4c\x25\xc2\x89\xe4\x08\x3b\xb2\x22\xb1\x6b\x02\xb3\xd8\xb1\x16\x8c\x22\x9e\x66\x34\xf1\x36\x78\x6f\x5c\xa1\x2c\xa6\x4f\x34\xce\x71\x82\xf8\x44\x73\x15\xad\x21\x0f\x9f\x08\x53\x39\x4e\x92\x05\xc2\x49\x82\x6c\xb7\xee\x05\x24\xe7\x3c\x4f\x62\xdd\xae\x1b\xa5\xa4\x29\x4d\xb0\xd0\x2a\xb8\x19\xed\xb5\x6d\x0b\xdd\xcf\x89\x1f\x2b\x8c\x4b\xaf\x66\x8a\x1f\x89\x44\x54\xa1\x8c\x4b\x49\x27\x49\x71\xe6\x1f\xce\x11\x8c\xfb\xf4\xe2\x1c\xf4\xf9\x48\x21\x6e\x78\xa8\xeb\xdc\xda\x6f\x5c\x8f\x29\x66\x8c\x40\xc7\x5c\xcd\x89\xb0\xdd\xdb\x97\xdf\x5a\x35\x7f\xb8\xba\xbb\x19\x9e\x9e\x7f\x3c\x1f\x9e\xd5\x75\xf3\xfb\xc1\xdd\x0f\xf5\x5f\x7f\xba\xbe\xfd\xe1\xe3\xc5\xf5\x4f\xf5\x27\x17\x83\x87\xab\xd3\xef\xc7\x37\x17\x83\xab\xfa\x43\x4b\x56\x9d\xd5\xfc\x70\x64\x6b\x9e\xad\xde\xa6\xf9\x52\x36\xcd\x83\x2f\xd7\xa8\x39\xa5\x09\xe8\xa0\x9d\x0d\x9a\xde\x86\x60\xbf\x44\x19\x96\xd2\x48\x46\x66\x04\x47\x23\x76\xc9\x85\x66\x60\x53\xae\x79\x84\x96\x9e\x94\xc8\x23\x45\xd9\xcc\x7f\x74\x82\x46\xf9\xb7\xdf\xfe\x29\xba\xa0\xec\x11\xfe\x22\xfb\xb8\x38\xbd\xc5\xb7\xb7\xf8\xfe\xb6\x2c\xbe\x5a\xf4\x39\x0e\x0d\xbd\xbb\x0d\x19\xd2\xc2\x05\xcb\x72\x05\xa2\x04\xcf\x95\xfe\x53\x77\x09\xe4\xb1\x24\x70\xa8\x9b\x41\xf1\x13\x51\xfe\x45\x2d\xda\xbc\x07\x3b\xe2\x4f\x5c\x3c\x4e\x13\xfe\xec\x07\xfe\x89\x28\x3d\xf6\x5b\xdb\x4b\x1f\x4a\xd4\x87\x12\xbd\x6d\x28\xd1\x5e\x19\xf3\x5e\x9e\xf9\x95\x2d\x7f\x86\x03\xb6\x78\xb2\x5a\x1d\x55\x2d\x7e\xa8\xc0\xcd\xf4\x2a\x5c\xb3\xec\xcc\x59\xc1\x39\x4b\x2f\xbf\x17\xee\x59\x1a\xf4\xeb\x73\xce\xdf\x84\xbf\xa5\x77\xa7\x6c\xb8\x50\xef\x92\xc1\x76\xbc\x3b\x5e\xcd\x19\xf2\xf2\x0c\xbf\x16\xdb\xb0\x4e\x30\xc3\x1a\xd1\x0b\x9d\xc3\x15\x56\xc4\x27\x34\x06\x24\x34\x45\x20\xd4\x43\x0e\x1a\x63\x0c\xb6\x0b\x2a\xd8\xf4\x6e\xea\x1e\x26\xf0\x89\xa8\xd2\xcb\xef\xe5\x6e\x2a\x0d\xfa\xf5\xef\xa6\xdf\x68\x74\x40\x1f\x0e\xf0\x82\x4b\xf7\xa5\xdf\x68\xfb\xeb\xf0\xff\x0d\x78\xf8\x7b\x97\xfe\x5a\x6b\xf4\x65\xf9\xf0\xbf\x54\xa7\xfd\xfb\xf4\xd2\xf7\x6e\xf9\xde\x2d\xff\x16\xfe\x93\xf7\xe7\x96\x7f\x59\xf5\xb4\x38\x5e\x63\x47\x0b\x56\x5f\x0b\x0e\xe5\xbf\x3a\x38\x69\xe0\x2f\xa7\xf2\xad\x1b\x34\xde\xaa\xc3\x9d\x15\xe3\x1b\xc2\x11\xfa\xc5\x12\xd2\x0a\x75\xae\xf6\xdd\x7b\x50\xe7\xea\x83\x7e\x79\x1d\xee\xcd\x98\xef\x0b\x5d\x9e\xef\x84\x0d\xac\x7f\x5b\x7e\xc1\x32\x79\x2f\x8b\xbf\x7c\x36\xfe\xde\x4c\xe8\xfd\xc8\xde\x6f\x70\xf1\x76\xbc\x75\x77\x9e\x93\xd5\x70\xcd\x06\xb7\xd3\xaa\x0c\xab\xea\xd7\x94\xc8\x3f\xbe\xcb\xfb\xf6\x35\x92\xac\xfa\x0b\xb7\xbf\x70\x6d\x53\xfd\x85\xfb\x05\x5f\xb8\x7b\x07\x7f\xb3\x37\x11\xa0\x7d\x10\x79\x0f\x8c\xd1\xc7\x90\xef\x70\x71\xfa\x18\xf2\x3e\x86\xfc\x37\x16\x43\xbe\x8d\xf6\xb4\x29\x16\xe5\x5b\xe8\x51\xbd\x1a\xd5\xab\x51\xe1\xef\xbd\x1a\xd5\xab\x51\xbd\x1a\xf5\x85\xa3\x88\xf6\x3a\x54\xf7\x85\xe8\x75\xa8\xce\x4b\xd5\xeb\x50\x4b\x16\xa7\xd7\xa1\x7a\x1d\xea\xb7\xa5\x43\x91\x27\xc2\x94\x84\x64\xb4\x50\xa3\xf8\x90\x71\xd9\xae\x09\x85\xdc\xa1\x41\x0b\x82\x36\xcb\x49\x61\x10\xb8\xf4\x0b\x9a\x63\x89\x78\x14\xe5\xa2\x72\x06\xaa\x7a\xd0\xa9\x20\x58\x11\x68\x41\x7f\xf8\x1e\xf4\x9f\xfa\x74\x5f\x2b\x06\x7f\xc2\xe3\x1a\xb5\x9b\x83\xd0\xf4\x64\xb9\x3c\xb2\xb3\xa9\xff\x23\x27\xdd\xd4\xbf\x17\x24\x6a\x85\xe5\xe3\x8e\x89\xba\x94\x6b\xb1\x11\x51\x43\x0b\xef\x85\xa8\xeb\xd3\xfd\xcd\x10\x75\xd3\xd4\xf7\x81\xa8\x9f\x6d\x1e\xff\x8e\x09\xbb\x06\x0f\xb0\x11\x71\xfb\x56\xde\x0b\x81\x37\x4f\xfb\x37\x43\xe4\x6d\xd3\x7f\x5b\x42\xf7\x29\x92\x9d\x49\xfc\x5e\xd0\xd9\x4c\xab\x19\xa0\xe1\x69\x52\x5c\x5d\x23\xa8\x48\x0a\x5c\x49\xd6\xfe\xd5\xf7\x40\xd2\x7e\xb0\x66\xec\xbf\x19\x5a\xae\xcd\x7b\x4f\x88\xf8\x58\x90\x88\x3f\x41\xbd\xb0\x6e\xc4\x7c\x4b\x80\x82\x81\x5f\x67\x82\x3c\x51\x9e\xcb\x64\x71\x28\x72\x86\x1c\xf3\x47\xbe\x79\x63\xad\x7e\xa6\x49\x82\x38\xd3\xfa\x97\xc2\x42\xb9\xc7\x5a\xff\x16\x3c\x85\x53\x91\x60\xa9\xd0\x23\xe3\xcf\x0c\x4d\x31\x4d\x72\x41\x50\xc6\x29\x53\x47\x23\x76\xce\xd0\xad\x19\x23\xe4\x0d\x1c\xa0\x5c\xea\xb3\x14\x61\xc6\xb8\x42\xd1\x1c\xb3\x19\x41\x98\x2d\x6c\x02\x6e\x41\x19\x88\x0b\x94\x67\x31\xd6\x8a\xef\x9c\x54\xa3\xf4\xfc\x18\xc1\x7c\x47\x25\xa2\x12\x91\xcf\x4a\x90\x94\x24\x0b\xdd\x87\xa6\x7d\xc5\x91\x5d\x1f\x33\x54\x9b\xce\x47\x84\xe0\x42\x42\xc6\xc1\x64\xf1\x2b\x66\x8a\x32\x82\x40\x51\x92\xc6\x34\x77\x88\x2e\xb8\x04\xb3\xcd\x0f\x7f\x91\x28\x4a\x72\xa9\x88\x38\x40\x93\x7c\x26\xb5\xa6\x98\x25\x58\x4d\xb9\x48\xf5\x08\x29\x93\x0a\x4f\x68\x42\xd5\xe2\x00\xa5\x38\x9a\x9b\xb6\x60\x0d\xe4\xc1\x88\xc5\xfc\x99\x49\x25\x08\xf6\xbd\xbb\x87\xe8\xeb\xf0\x99\x21\x00\xf9\xcd\x01\xa4\x1d\xd2\x54\xab\xbb\xc1\xf0\x8b\x1d\x37\x7b\xa2\x1b\x21\x31\x9a\x90\x08\xe7\xd2\x7a\x18\x94\x58\x20\xf2\x79\x8e\x73\x09\x7b\xa7\xa7\x67\x73\x36\x22\x9e\x66\x09\x51\x04\xd1\x29\x52\x82\x92\x18\xe1\x19\xa6\x7a\xe9\xee\xc8\x12\x10\x74\x4f\xf4\x76\x03\x2d\xd5\xff\x02\xea\x77\xca\x05\x41\x31\x51\x98\x26\x4b\xbd\x4e\xf6\xdb\x9e\xcb\xbd\x27\x2e\x57\xde\xf0\xbd\x60\x73\x06\xc4\x7f\x07\x97\x36\xb3\xa6\xfb\x08\x27\x5b\xde\xdf\xb7\x76\x50\x3d\x6d\xbf\x2f\xda\x36\xbb\xb6\x3f\xc4\xfd\x6a\x31\xd8\xdd\x2b\x5a\x14\xd5\x2c\xde\x15\x4d\xbf\x46\x58\x40\xef\x70\xee\x1d\xce\xad\x2b\xf3\x3e\x1d\xce\x7b\xe3\x31\xea\x7d\xce\x2f\xe4\x73\xa6\xb2\x77\x3a\xf7\x4e\xe7\xae\x0b\xd4\x3b\x9d\x7b\xa7\xf3\xfb\x75\x3a\xbf\x24\xee\xf3\x4e\xd1\x9d\xdf\x95\x68\xdd\x8b\xd5\xbd\x58\xdd\x43\x38\xfb\xa9\xed\x8a\x85\xb9\xaf\x3f\xc4\x24\x21\x8a\xb4\xdb\xb3\x88\x48\xb5\xb6\x60\xae\x67\xca\xb4\x1c\x37\x13\x44\xca\x6d\x19\x92\x6f\xf8\x7d\xb2\x25\x3f\xfc\x1e\x6a\xbe\xe7\x53\x3d\x9f\xda\x64\x6a\xfb\x63\x9a\x0d\x0e\xf3\x6b\xd9\x66\x3d\xff\xcd\xf2\x76\xe9\xef\xc1\xb8\x21\x0b\xbf\xa8\xa1\x70\x2d\xb5\x2b\xee\x0f\xb7\xa5\xf3\x2d\xf9\xb1\xe9\xeb\x7d\x32\x63\x33\xf6\x9e\x13\xf7\x9c\xb8\xe7\xc4\xef\x9b\x13\xbb\x93\xfc\xa6\x2e\x32\xe3\xa7\x1b\x67\x09\x66\x63\x1a\xcb\xe3\x7f\x16\xba\xfc\x4b\x79\xc8\xf4\x81\x8a\x4d\x8a\xa9\x4f\xe9\x14\xbf\xe8\x4f\x92\xc2\x60\xee\x31\x33\x57\x38\xd1\x8c\x8d\xfd\x26\xc1\xec\x3c\x7e\x17\x7e\xb4\xc6\xd9\xbf\x86\x4f\x6d\x1b\x3e\x8e\x15\x78\x3a\x30\x65\xc6\x84\x57\xe4\xd5\x96\x0c\x94\xfb\x71\xc2\xb7\xe1\xea\xc1\xc4\x02\xc6\xee\xf8\x75\xb0\x28\xfb\x37\xed\xde\xaf\xd3\xe7\x12\xf6\x9e\x8b\x8e\x13\xee\x3d\x17\xfb\xeb\xb9\x78\x2b\x77\xe4\x2b\x1f\xcf\xd7\x12\xeb\xba\x07\xe1\x9b\x68\x35\x08\x6a\xcd\xb3\x84\xe3\x78\x99\x2b\xa6\x10\xbc\x42\x70\x94\x95\x91\xf8\xc5\x67\xef\x41\x58\x2b\x46\xfb\x1b\x8b\xe4\xab\x4f\x7c\x5f\xb4\x94\x57\x0c\xe5\x6b\x26\xf1\x35\x54\x92\xf7\x81\x9f\x5a\x8c\xb7\x0f\xed\xeb\x2d\x4a\x6f\x6f\x51\xea\x43\xfb\x7a\x15\x70\xcf\x54\xc0\x3e\xb4\xaf\x0f\xed\xeb\x15\xe4\xe5\xd3\xee\x15\xe4\x2f\x22\xb4\xaf\x93\xa8\xfd\x82\xd8\x9b\xdb\x0b\xdd\xbd\xcc\xed\xde\xeb\x65\xee\x5e\xe6\xfe\x42\x65\xee\xfd\x58\xe1\x5e\xe0\xee\x05\xee\x5e\xe0\xee\x05\xee\x5e\xe0\xde\xf9\x32\xf6\x02\xf7\x6b\x16\xe8\x6c\x96\xba\x57\x24\xd9\xbc\x57\x5f\x4e\x2f\x6e\xf7\xe2\xf6\x7e\x8b\xdb\x7b\x33\xa1\xf7\x53\xe6\xb1\xdb\x7c\xfa\x22\xe5\x7d\x91\xf2\xbe\x48\xf9\x8b\x17\x29\x77\x5f\x77\xc8\xf8\xb0\x87\x4b\x61\x95\x4b\x03\xf8\x28\xc8\x8c\x4a\x05\xec\xbf\x8b\xbc\xb2\x3a\xd1\xe3\xbd\xca\x29\x7d\xaa\x87\x7f\xda\x4b\x2d\xbd\xd4\xf2\x1b\x95\x5a\xf6\x28\x16\x6c\x2f\x32\x56\x52\xac\xa2\x39\x9e\x24\x64\xec\x8d\x3e\xb2\xab\x1e\x7c\x41\xa5\x92\x28\xca\xa5\xe2\x69\xfb\xe5\x72\xe9\x7a\x18\xf8\x0e\x4e\x39\x9b\xd2\x59\x6e\xee\x16\x03\xce\x19\x9c\xe8\x42\x12\x5c\x64\x64\x95\xa7\xaa\xa1\xf5\x77\x71\x2d\x35\x0f\xfd\xb5\x6e\xa7\x75\x04\xf7\xc2\xc8\x67\xa5\x6e\x2d\x6b\x8d\x6f\x87\x77\xd7\x0f\xb7\xa7\xc3\x13\x34\xc8\xb2\x84\x1a\xbb\xbb\x21\x05\xfa\xab\x9e\x14\x52\x58\x3e\x16\x7b\x29\x0c\x99\x1b\x0c\x5b\x30\xf4\x6b\xd9\x18\x1d\xa2\xd3\x8b\x87\xbb\xfb\xe1\x6d\x4b\x83\x96\x50\x20\x6f\x95\xa4\x59\x82\x15\x89\xd1\x63\x3e\x21\x82\x11\x2d\xed\x58\xa4\xdb\xc2\xfc\x6f\x1a\x1d\xfe\xf7\xf0\xf4\xe1\xfe\xfc\xfa\x6a\xfc\xd7\x87\xe1\xc3\xf0\x04\x39\x8a\xd3\xcd\xea\x71\xe9\x51\xc4\x0b\x86\x53\xad\x81\xe8\x1f\x8a\x4c\xd9\x7f\xe4\x24\x27\x08\x4b\x49\x67\x2c\x25\x80\x08\x5c\x6a\xd1\x0d\xf8\x62\xf0\xdd\xf0\xa2\xdc\xf2\x9c\x84\xf0\xbb\x28\xc1\x13\x92\x58\x7f\x04\x98\xd8\x35\xa1\x07\x50\xc5\xc6\x51\x91\x9b\x55\xfd\xeb\xc3\xe0\xe2\xfc\xfe\xe7\xf1\xf5\xc7\xf1\xdd\xf0\xf6\xc7\xf3\xd3\xe1\xd8\x4a\x95\xa7\x03\xdd\x6f\xa9\x27\x2b\x7c\xa2\x7f\xe4\x38\xd1\xda\x09\x9f\x3a\x3c\x5e\xf4\x3c\x27\x0c\xe5\x0c\x28\xce\xa8\x3c\x5a\x0f\xf2\x9d\xea\x53\x66\x66\x74\x73\xf1\xf0\xe9\xfc\x6a\x7c\xfd\xe3\xf0\xf6\xf6\xfc\x6c\x78\x82\xee\x48\x02\x4a\x81\x5b\x74\xd8\xc5\x2c\xc9\x67\x94\x21\x9a\x66\x09\xd1\xab\x81\x6d\x36\xf1\x1c\x3f\x51\x2e\xec\xd1\x9d\xd1\x27\xc2\xcc\x3a\xc2\x99\x85\xf6\x9d\xf0\x3d\x0e\x96\xee\xfa\xea\xe3\xf9\xa7\x13\x34\x88\x63\x3f\x07\x09\x6d\x94\x28\xc7\xc1\x3a\x1f\x96\x87\xad\x99\x03\x74\x6f\x88\x88\x3f\x11\x21\x68\x4c\x2a\x74\x34\xb8\xbb\x3b\xff\x74\x75\x39\xbc\xba\x87\x15\x53\x82\x27\x12\xcd\xf9\x33\x98\xb2\x61\x86\x60\xe1\x7e\xc2\x34\x81\xce\xdc\x66\x71\x86\x9e\xe7\x14\xdc\x1f\x00\xcc\xec\x7b\x36\xfa\x99\xc8\xd9\x9b\x5b\x67\x4b\x07\xaf\xae\xb6\x54\x4f\x52\xfd\x8d\xca\xb1\x58\xf6\x42\x89\xca\xeb\x2f\xae\xa2\xd6\xfa\x17\x15\x72\x6b\x57\xd6\x6a\xf4\xd2\x3e\xd3\x62\xaf\x3b\xeb\x6a\xe5\x35\x7c\xbd\x6b\x96\x28\x41\x23\xf9\xb2\x50\x4f\x22\x67\x8a\xa6\x04\xd9\xce\xec\xe1\xdc\x21\xfc\xd3\xa5\x69\xf8\x3d\x5c\xb0\xb5\x52\x0e\x9f\x88\xb2\xc3\xef\x55\xc0\x5e\x05\xdc\x0f\x15\xf0\xbd\x65\xfb\xc7\x24\xab\x77\x58\x99\x18\xbc\x63\xbc\x5e\xb5\x20\x0d\x63\x4f\xb4\x16\xd5\x84\x3c\x91\x04\xa4\x3c\x25\xb0\x56\x1a\xad\xec\x32\x11\x04\x3f\x6a\x81\x2f\xe6\xcf\xa1\xe4\xd2\x80\xdc\x8f\x76\x73\x0b\x77\x09\xe2\xf8\xd3\x1f\x5f\xef\xb2\xd0\xcb\x1d\xbf\x46\x09\xef\x5b\x08\x92\x59\x8a\x11\x18\x24\xd8\xff\x62\x2d\xc1\x2b\x6e\x8b\xe0\x8b\xf7\x70\x51\x84\xc3\xdd\x23\xad\xeb\x36\x54\x82\x1d\x0b\x4d\x89\xc2\x31\x56\x58\x1f\x9a\x19\x51\x47\xe8\x9a\xc1\xb3\x7b\x2c\x1f\x0f\x90\xbb\xf2\x34\x5b\x29\xac\x0c\xaf\x90\x5a\xff\x4e\x0c\xf8\xeb\xf3\xf1\xfe\xfa\xee\xaf\xef\xe6\x95\xe9\xc3\x3c\x5b\x56\x78\x57\x17\xe3\x5a\x3e\xaf\xdd\xdd\x5f\xa6\xc5\xf7\x7b\x85\xbd\xae\x93\x6b\xa7\x17\x9a\xa9\x9c\xd5\xdf\x56\xe6\xff\xfa\xdb\xaa\xbf\xad\xfa\xdb\x6a\x0f\x56\xf8\xcd\x1d\x86\x0d\xdc\xfd\x4d\x3d\x86\xab\xb4\xd3\x8d\x21\xef\x0a\x6d\x74\x1d\xd0\xbb\x5f\xba\x62\xdb\x15\xdf\xd0\xf7\xe1\x23\x0c\x26\xf9\x1a\x69\x6d\x3b\xbd\xcc\x4d\xbe\x48\xaf\x9f\xbe\xe0\x8d\xdf\x23\x10\xee\x14\x81\x70\x3f\xe6\xfa\x22\x29\x70\x6f\x63\x31\x7d\xfb\xb4\xb7\x1e\x6a\xb0\x4f\xec\xea\x13\xbb\xe0\xf7\x1e\x6a\x70\x77\xd4\xfa\xb2\xd2\x35\x8f\xc9\xb8\x12\x25\xe0\xff\x39\xae\x7a\x7e\x4a\x4f\x42\x37\x50\xe9\x41\x91\xe9\x06\xad\xd3\x78\x97\x45\xa4\xae\x78\x4c\x3a\x47\x12\x94\x5e\xde\x73\x19\xdc\xcd\xd3\xc8\xe2\xa5\x81\xbf\xb0\x24\xde\xb2\xe5\x5f\xa2\x61\xa7\x81\x80\x7b\x2b\xcf\xca\x85\xfa\x52\xe3\x0b\x0a\x0e\xf5\x8e\x3c\x15\xdd\xd8\xb8\x8b\x69\x1c\xb7\x30\xf3\xe6\xe7\x9e\xa5\x37\x3f\x7e\x19\xcc\xa0\xee\x1c\x1d\xcc\x2a\xe1\xdb\xef\xc3\xae\x12\x8e\xf8\x35\x2c\x2b\x4b\xf7\xfe\x8b\xe3\xea\xcb\x28\xb9\xe7\xed\x1d\x97\xeb\x4b\xe5\xf0\x3d\xc4\xcf\x32\x5b\x47\x8f\xa1\xd3\x9b\x5a\xf6\x67\xc2\xbd\xa9\xe5\x5d\x9b\x5a\x8c\x8b\x76\x9c\x61\x41\x98\x6a\x10\xa9\xab\xd7\x09\xbc\x1e\x62\x2e\x38\xa9\x03\x1a\x40\x5a\xa2\x45\xf6\x42\xf6\x57\xd5\x97\x65\x7b\xb1\x82\x41\x90\x09\x79\xfc\xcf\xe2\x6f\x2f\xac\x97\x2a\x40\x2c\x89\x4e\x32\x58\xff\x52\xdf\xd1\xb9\x0d\x54\xda\x3e\x57\x12\xab\x92\x28\x08\x41\xd4\x2b\xe3\x99\x6e\xcc\xdb\xef\x2b\x45\xb2\x36\xe8\xd7\x8d\x6d\xaa\x6f\x7c\xb7\x03\xe4\x76\x86\x9a\x74\xbf\x20\xa7\x4c\x4b\xa3\x7c\x5a\x5c\x0c\x12\x3d\xd3\x24\x01\x44\x11\xc8\x78\x6c\xbb\x01\x7e\x73\x11\x0f\xad\x3b\xff\xa6\x71\x0f\x4d\xdc\xa1\x89\x25\x74\xb1\xa7\xee\x2a\x67\xda\x11\x1b\xa4\xb3\x82\x36\xb4\xc2\x00\xfb\x65\x70\x82\x4f\x44\xbd\x16\x1b\xd8\xf4\xec\x2f\x3d\xf7\x82\x4c\x89\x20\x2c\x22\x7b\xe8\x6d\x5f\x27\x0c\xe4\x27\x33\x49\x1b\x03\xe2\xa1\x04\xc2\xa9\x2a\x6e\xf5\xb4\x92\xa8\xdb\x67\x92\xf7\x99\xe4\x7d\x26\x79\xf5\xa8\xf7\x99\xe4\x7d\x26\x79\x63\x0e\x44\x4c\x12\xa2\x48\xab\x54\x71\x06\x8f\xdf\x4a\xaa\x30\xbd\x7f\x19\x82\x85\x99\x4b\x2f\x5b\xfc\x66\x34\x0b\xb7\xe1\x7b\xa1\x59\x98\xb3\xb6\xca\xfc\x50\xfa\xb1\x21\xc4\xfa\xd5\x4d\x12\x9b\x30\x8d\x92\x5d\xe2\x0c\x5e\x7f\x97\xac\xa3\x3a\xf4\xde\x46\x81\x82\xad\x7b\x39\x4e\x52\x3b\x02\xdd\x26\x6e\x3d\x86\xef\x77\xde\xfb\xc2\x41\xdb\xe8\x7e\x5f\xf9\xe8\xc6\x49\x29\xfb\x62\xb1\xf9\x82\x78\x64\x6f\xbd\x79\xe3\x5c\x89\x1a\x33\x7c\xb7\xd3\xed\x8d\x55\xbd\xb1\xaa\x37\x56\xf5\xc6\xaa\xde\x58\x85\x7a\x63\xd5\xda\xc6\xaa\x2f\x48\xa6\xea\x0d\x57\xbd\x58\xb5\xbb\xe9\xee\xab\x96\xb9\x4f\xd6\xba\xce\x28\xe9\x45\x0e\xd5\xca\xc8\x7b\x3b\xed\x5f\x56\x84\xdc\xdf\xb8\x11\xbc\x1f\x7e\x25\x5f\x9a\x25\x6d\x13\x58\xec\x76\xf4\x8b\x8d\x2b\xee\x4b\x87\x36\xae\x55\x1f\xf6\xbc\x64\x71\xfa\xb0\xe7\x3e\xec\x79\xef\xc2\x9e\x77\xae\xac\x64\x5c\x2e\x03\x24\x32\xa5\xb3\x96\xe6\x3f\xbb\x3b\x1b\x12\x8d\x80\x14\x0c\xca\x71\x4c\xb2\x84\x2f\xc0\x92\xb2\xe4\x3a\x77\x5d\xdc\xd4\x24\xea\x7d\xbf\xd1\xdd\xc8\x5f\x4b\xe7\xd8\x17\x99\xb4\x98\xf7\x5e\x48\xa1\xc7\xff\xac\xa4\xf3\x77\xc2\xcb\x64\x88\x7c\xa6\x12\x6e\xa5\xd5\x84\x3d\x62\xcd\x4f\x82\xd2\x85\xf6\x1e\x9c\xe4\x2a\xc8\xdd\x93\x5a\xb0\xca\x88\x50\x8b\xe0\x4d\x92\x66\x6a\xf1\x5f\x23\x46\x95\xf7\xb0\xd1\x19\xe3\xc2\x70\x35\xfd\xf1\x1c\xb3\x38\x21\x42\x5f\xaa\xae\x9d\x08\x33\xc6\x15\x88\x1b\x30\x83\x18\x3d\x51\x6c\x84\x93\xc1\xcd\x79\x67\x3f\xf3\x3b\x3a\x5d\xaf\x5d\xac\x6e\xc5\x5d\xf7\x29\xe1\x13\xa8\x60\x99\x97\x75\x7a\xdd\x40\xef\x19\x2d\xed\xdc\x5b\x31\x04\x85\xe5\x63\x15\x38\xa4\x9c\x85\x3e\x5e\x0a\x25\xb2\xe2\xdd\x12\xc6\xfc\xf2\x57\x2b\x70\x23\xe5\x67\x16\x80\x04\x1e\xc3\x90\xab\xe3\x70\x3f\x86\x1d\xba\xdf\x8a\x96\xdd\x2f\xae\x74\x37\xfc\x28\x88\x12\x8b\x31\x56\x4a\x33\x99\x5d\x62\x9c\xdc\x63\xf9\xd8\x19\xe3\xa4\xf4\xf2\x9e\xb3\x9c\x12\xc6\x49\x79\xe0\x2f\xce\x72\x3a\x52\xe7\x0a\xce\xf4\xfe\xf2\xe3\xbb\x9e\xb5\x35\x26\xfe\x5b\xc9\x95\xef\xc6\x7b\x56\x99\x69\xdf\x63\xde\xfc\x32\x66\xba\x37\x23\xac\xf0\xf3\x2f\xf1\xe4\x96\x6f\xa7\xfe\x88\x2e\x5b\xa3\x2f\xae\x10\x6e\x45\xe8\x58\x31\xb7\x77\x52\x10\xb7\x2a\x37\xed\x7a\x54\x2f\x63\xe6\x0e\x76\x63\x9d\x18\xa0\xf3\x32\x5a\xb9\x3f\x43\x2e\x2a\xa8\x28\x3d\x3b\x87\x44\x6b\x2a\xc3\x84\xf8\x88\x0b\x23\x79\xc5\xf6\xcc\x1a\xb3\x9d\x01\xf3\x3d\x41\x03\x14\xdb\xda\xfc\x82\x64\x82\x48\xc2\x94\x51\xb5\x4d\xbd\x2b\x57\xde\x9f\x32\x6b\x21\x3a\xc3\x0a\x9f\x62\x85\x13\x3e\x3b\x42\x03\x5f\xd8\x9f\x4a\x84\x13\xc9\x11\x76\x84\x43\x62\xd7\x04\x66\xb1\x63\x0f\x18\x45\x3c\xcd\x68\xe2\x91\xda\xbd\x15\x9f\xb2\x98\x3e\xd1\x38\xc7\x89\x47\xc6\x1e\xb1\xe1\x13\x61\x2a\x07\x15\x0e\x27\x09\xb2\xdd\xba\x17\x02\xfd\xdc\x8d\x52\xd2\x94\x26\x58\x20\xc5\xed\x68\xaf\x6d\x5b\xe8\x7e\x4e\xfc\x58\x1d\x0a\x38\x4a\xf1\x23\x91\x88\x2a\x94\x71\x29\xe9\x24\x29\x8e\xf1\xc3\x39\x82\x71\x9f\x5e\x9c\x83\x69\x34\x52\x88\x1b\x3e\xe8\x3a\xb7\x7e\x02\xd7\x63\x8a\x19\x23\xd0\x31\x57\x73\x22\x6c\xf7\xf6\xe5\xb7\xb6\x72\xbe\x35\x46\x74\xbb\xc5\x34\x1c\xd9\xdb\x29\x9d\x9d\x35\xce\xae\xea\x66\x37\x5d\xb3\x5d\xd1\x7c\x01\x2f\x6d\x77\x6d\xf0\x82\xca\xb2\x3a\xf8\x2e\x5c\xb6\xa5\x11\xbf\x06\x3e\xda\x6f\x54\x11\xec\xb5\xc0\x17\x59\xb7\x2f\x55\x05\xdc\x73\xfd\xaf\x47\x76\xeb\x51\xec\xfb\x00\x8c\x1d\x2e\x4e\x1f\x80\xd1\x07\x60\x7c\xb1\x01\x18\xed\xda\x04\x8d\xb7\x4e\xd7\x5b\xb3\x82\x94\x37\x0a\x88\x5f\x40\x94\xc2\xf2\xb1\x6b\x4d\x29\x2d\x2a\x9f\xc7\xef\x42\xaa\x6f\x9c\xf0\x6b\x48\xf7\x7d\x9d\xa2\x9d\xd6\x29\xda\xbb\x69\xf7\x82\x5f\x2f\xf8\xf5\xb2\x4d\xc7\x09\xf7\xb2\xcd\xfe\xca\x36\x6f\xa5\xb0\x7c\x49\x10\xba\x5a\x78\x2a\x65\xc6\x2c\x0d\xb0\x35\x70\x34\xe0\x1e\xc8\xb3\x84\xe3\x78\x55\x10\xce\x2f\xa8\x90\x6b\x96\x88\x66\xa6\x5d\xfd\xc1\x9e\x4b\x66\xb5\xf8\x1b\x33\xf2\xdf\x42\x4c\x6d\xeb\xd4\xdf\x34\xac\x16\xe8\x17\x82\xc9\x4a\x41\x69\x2f\xa5\x85\x54\x69\xba\x93\xc2\x21\xff\xb8\xe7\x54\xed\xb7\xf4\x35\xd4\x8b\x2f\xd8\x41\xd0\x3b\x01\x7e\x9b\x85\xcf\xf7\x46\x6a\xed\x55\xbb\x3e\xab\xb2\x37\xea\xf7\x8a\x6f\xaf\xf8\xee\x7c\x19\xf7\x49\xf1\x7d\x43\x89\xda\xa4\x89\xbc\x48\x19\xc3\xcd\x64\xeb\x5e\xb4\xee\x45\xeb\x5e\xb4\xfe\x62\x45\xeb\xfd\x58\xe1\x5e\xae\xee\xe5\xea\x5e\xae\xee\xe5\xea\x5e\xae\xde\xf9\x32\xf6\x72\x75\x45\xae\x86\xbf\x5c\x9a\xf4\xba\x42\x76\x67\xe1\xba\x43\x4e\xf4\x7b\x91\xac\x7b\xa9\xba\x97\xaa\xf7\x5b\xaa\xde\x9b\x09\x7d\x79\x89\x90\x7d\x2a\x61\x9f\x4a\xd8\xa7\x12\xbe\x45\x2a\xa1\xe3\x25\xcb\x24\x94\xba\x60\xf1\x63\x8d\x03\xed\xad\x6c\x51\x8c\x76\xd3\xf0\x8e\x5d\x2d\xb5\x03\x9a\xdf\xa4\xd2\x54\xe9\x37\xd7\xd0\x1e\xd5\x9f\x3a\x70\xd2\x82\x66\x14\x6e\x7c\xab\x11\xc2\x7e\xb2\x6f\xbe\x2f\x30\xf0\xfa\xa8\xfb\xfa\x53\x28\xd8\xb5\xbe\xfe\xd4\x0b\xce\xdb\x1d\xae\x15\x33\x77\x34\x6a\x6c\xbc\xef\x74\xda\x6f\x0e\x2e\xd7\x7e\xd2\xdf\x34\x5c\xae\xf1\x26\xa9\x25\xef\x1c\xff\xb3\xf1\xa2\x78\x83\xb2\x5b\x6b\xdf\x0e\x9f\x88\xfa\x52\xae\x86\xbe\xec\x56\x5f\x1f\x62\x47\xd3\xdd\x88\xf5\xbf\xdb\xd9\xf6\x45\xc6\xfa\x22\x63\x7d\x91\xb1\xbe\xc8\x58\x5f\x64\x0c\xfd\xc6\x8b\x8c\xad\x2d\x3e\x9a\x71\x7c\x29\x12\x64\x5f\x64\xac\x17\x22\x77\x37\xdd\xdf\x96\x10\xb9\x87\x16\x84\xbd\xa8\xa6\xe6\x2d\x08\x6f\x8e\xfb\xe1\x46\xd2\x15\xfb\xc3\x2d\x68\x8f\xff\x61\xff\xaf\xc7\xff\xe8\xf1\x3f\x5a\x66\xdd\x07\xb3\xf6\xf8\x1f\xa8\x0f\xd7\xec\xc3\x35\xf7\x39\x5c\xb3\xc3\x36\xf6\xf8\x1f\x1d\xc5\xb9\x17\xc2\x00\x71\x32\xd7\x5a\x38\x20\x3f\xd5\x15\x8d\xbd\x95\xd2\xdc\x58\x7f\x3b\x38\x20\x8d\xd3\xde\x0b\x95\xe4\x15\x71\x40\x9a\xe8\xba\xb3\x02\xf2\x3e\xf0\x40\xdc\x68\xfb\xc4\xc5\x3e\xc4\x7a\xff\x43\xac\xf7\x2e\x71\x71\x6f\x24\xd9\x5e\xdd\xeb\x73\x17\xfb\xdc\xc5\x5e\x19\xee\x95\xe1\x9d\x2f\xe3\x3e\x29\xc3\x6f\x2c\x61\xbf\x20\x2e\xc8\x76\xb2\x76\x2f\x6a\x9b\xf7\x7a\x51\xbb\x17\xb5\xbf\x50\x51\x7b\x3f\x56\xb8\x97\xb3\x7b\x39\xbb\x97\xb3\x7b\x39\xbb\x97\xb3\x77\xbe\x8c\xbd\x9c\xfd\x6a\x38\x21\x4d\xc2\x76\xc7\x7c\x9b\xf7\x24\x69\xf7\x52\x76\x2f\x65\xef\xb7\x94\xbd\x37\x13\xea\x31\x43\x7a\xcc\x90\x1e\x33\xa4\xc7\x0c\xd9\x48\xbe\xf9\x37\x7b\x2c\x3f\x04\x37\xb1\xbf\xb2\x3f\x7c\x97\xf0\xc9\xfd\x22\x23\xfa\xbf\x67\x34\x25\x4c\x82\x34\x4a\xd5\x22\x94\x67\x5a\x56\xbe\xbe\xe6\x1f\xee\xce\xaf\x3e\x5d\x84\xd9\x34\x1f\x2e\x1f\x2e\xee\xcf\x6f\x06\xb7\x7e\x5d\xfc\xac\xc2\xb5\xb0\xdf\x95\x44\x32\x4b\xf2\xb7\x44\xeb\x9e\x70\x6a\xee\x14\x56\xb9\xdc\x6c\x64\xb7\xc3\xbb\xe1\xed\x8f\x90\x0d\x34\x3e\x3b\xbf\x1b\x7c\x77\x51\x22\x88\xd2\xf3\xc1\xe9\x5f\x1f\xce\x6f\xdb\x9f\x0f\xff\xfb\xfc\xee\xfe\xae\xed\xe9\xed\xf0\x62\x38\xb8\x6b\xff\xfa\xe3\xe0\xfc\xe2\xe1\x76\xb8\x74\x3d\x96\x8e\x76\xb9\x12\x22\x61\x91\x20\xce\x1f\x45\x96\x6b\x88\x62\x0d\x91\x17\x1f\x1d\x3b\x6c\xea\xeb\x04\x3d\x58\x9d\x9e\xda\xc6\x0d\x83\x0d\x1a\x32\xca\x48\x4c\x25\x9e\x24\x24\xae\xb5\xe4\xd6\xb0\xad\x25\x5c\x1a\xd4\xb3\xd6\x9e\xbd\xc8\xa9\x79\x5e\x64\x78\x01\x82\x1c\x45\x45\x58\xdc\xd0\x87\xd9\x87\xd6\x1e\x98\xe6\x5d\xf4\x89\x94\x7a\x8a\x72\x21\x08\x53\xc9\x02\x91\xcf\x54\x2a\x59\x6b\xd4\x6d\x5f\x5b\xb3\xf6\x4e\xf5\x0d\xce\xb1\x44\x13\x42\x58\x79\xfc\x82\x24\x04\xcb\x86\x31\xdb\xdd\xef\xb6\x2c\x7e\xaf\xac\x35\xc6\x5c\x46\x53\x4c\x93\x5c\x90\xca\x69\xe1\x69\x86\x05\x95\x9c\x0d\x3f\xeb\xbb\x4c\x1f\xe4\x6b\xf8\x9c\x8b\xcd\x4e\xcc\xf0\xaf\x21\x05\x5f\x95\xff\xf9\xe9\xbe\xfc\xaf\xd2\x99\xbf\xb8\x2f\xff\x6b\x39\xad\x07\x0d\x57\x29\xfb\x10\x7d\xba\x3f\x41\x9f\x20\xc4\x49\xa0\xfb\x39\x36\x14\x7b\x71\x7f\x82\x2e\x88\x94\xf0\x4b\xf1\xb1\xa2\x2a\x81\xb9\x7d\x47\x19\x16\x0b\xe4\xa6\x6f\x12\x5d\x71\x34\x47\xc4\x2f\x4d\x75\xf1\xd8\xdf\x73\x06\xaa\x7b\xb1\x7a\x17\x7c\x46\x23\x9c\x6c\xb7\x88\x83\xab\x12\x1f\xb8\xbe\x5d\xba\x14\xe1\xdb\xf5\xb5\x18\x5c\x9d\x41\x12\xa9\x1b\x6a\xc3\xcc\xaf\x88\xd4\x44\x12\x71\x16\x5b\x2f\x8d\xbe\xfd\x17\x81\x50\xff\x77\x0e\x89\xb8\xb9\xa4\x6c\xa6\x5b\x44\xc7\xe8\xfa\x76\xc4\xae\x45\x6c\x0c\xa1\x44\x4b\xc3\x86\xe6\xa8\x44\x8c\x2b\x44\xd3\x8c\x0b\x85\x99\xd2\x8a\x00\x88\x01\x76\x45\x0c\x07\x38\xe5\x69\x9a\x2b\xac\x0f\x5a\x6d\x51\x99\x31\x87\xdc\x11\x75\x1e\x83\x6b\xa5\x61\x0d\x8d\x9c\x50\xcc\x25\x13\xba\x7d\x2d\xa3\x94\x75\x68\x1a\xd7\x54\x59\xd7\x04\x16\x02\x97\xa5\x89\x0f\x54\x91\xb4\xfa\x7e\xc7\x20\xcf\x7f\x35\x1a\x08\x4e\x4d\x52\x05\x11\x03\x11\xcd\xa9\x22\x91\xd2\x47\x70\x23\x9a\x78\xb8\xfa\xe1\xea\xfa\xa7\x50\x82\xf8\x30\xb8\x3c\xfb\xf3\x7f\x94\x7e\xb8\xbd\xac\xfd\x30\xfe\xf1\xcf\xb5\x5f\xfe\x7f\x4b\xe9\xa9\xda\x53\x4d\xcf\x0f\xe6\x72\x08\x22\x35\xd8\x84\xdd\x54\x11\x4d\xf1\x8c\x20\x99\x67\x9a\x02\xe4\x51\x79\x7f\xb5\x48\x79\xc1\x71\x4c\xd9\xcc\x64\x80\x5e\x50\x45\x04\x4e\x2e\x71\xf6\xd1\xd9\xaf\x37\x58\x9d\xff\x7b\x57\xca\xd7\xfd\xf0\xf3\xe0\x32\xcc\xf8\xfd\x70\x73\x7b\x7d\x7f\xbd\x74\xd6\xa5\x16\xea\xc7\x48\x3f\x3e\x81\xff\x45\xc7\x48\xb7\xee\x25\xdf\x94\x28\xac\x35\x02\xf4\xb5\x49\x9a\xf3\x89\x34\x94\x25\x70\x6a\x32\x41\x53\x0a\x57\x8a\xb1\xe0\x7d\x63\x84\x6b\xaf\x3d\xf8\x73\x63\x3e\x00\x6d\xd9\x5d\xca\x2c\xc6\x22\x46\x7f\x97\xd5\xf4\x71\x30\x1c\x9b\x1f\x48\x8c\x0e\xd1\x5c\xa9\x4c\x9e\x1c\x1f\x3f\x3f\x3f\x1f\xe9\xb7\x8f\xb8\x98\x1d\xeb\x3f\x0e\x09\x3b\x9a\xab\x34\x31\xe9\xf2\x7a\x15\x4e\xd0\x8d\xe0\xfa\x0a\x01\x05\x9d\x08\x8a\x13\xfa\x2b\x89\xd1\xc4\xf0\x3f\x3e\x45\xbf\x44\x5c\x90\xa3\x62\x63\xac\x51\xc9\xde\x23\xd6\xf0\x74\xac\x5f\x6a\x60\x26\xd5\xfd\x44\x31\x89\x68\x6c\xc5\x0c\xc2\x22\x0e\x96\x47\xe3\xab\xd0\xed\xb9\x4c\x43\xad\xd1\x64\xb9\x2a\x96\x33\x50\x56\x70\x4c\x82\x6c\x77\xc5\xcb\x04\xa7\x15\x9f\x73\xa3\xb6\xe6\x5a\x45\xd7\x77\x2b\x86\x5b\xd5\xbd\x9a\xe9\x09\x47\x3c\x41\x93\x7c\x3a\x25\x22\x74\x48\x1f\x68\x6d\x86\x4a\x24\x48\xc4\xd3\x14\x24\x06\xfd\x55\x2e\x0d\x55\xc3\x8a\xd9\xd1\x1e\x8d\x18\xec\xbf\x56\x73\x80\x02\x62\x0e\xac\x8e\x11\x12\x23\xcc\x16\xa6\x9b\x49\x3e\x0d\xdb\x37\x30\x14\x38\x46\x54\x8d\xd8\x20\x49\x90\x20\x29\x57\x24\xc8\xa1\x04\xe7\x59\x79\xc1\x81\x45\x0a\x92\x25\x38\x22\xb1\xa1\x87\x84\x47\x38\x41\x53\x9a\x10\xb9\x90\x8a\xa4\x61\x03\x5f\x83\xad\x46\xaf\x19\x95\x28\xe6\xcf\x2c\xe1\xd8\xce\xa3\xfa\xd9\x37\xe5\xd3\x38\x74\x10\x01\x43\x21\xb8\x80\xff\xf9\x81\xb2\x78\x67\x1c\xea\xe1\x6e\x78\x1b\xfe\xfb\xee\xe7\xbb\xfb\xe1\xe5\x7a\xdc\xc7\x53\x16\x0c\x0f\x74\xf8\x13\x74\x67\x16\x81\x0b\x2d\x11\x89\x96\x49\x5d\x5a\x52\x2a\x7e\xe0\xf1\x86\xdc\xf7\x72\x70\xf5\x30\x28\x71\x94\xbb\xd3\xef\x87\x67\x0f\x15\x7d\xc0\xce\xaf\x24\xc3\x1b\xf5\x2f\xfc\xed\xf4\xfb\xf3\x8b\xb3\x71\x83\xc2\xf8\xe1\x76\x78\x7a\xfd\xe3\xf0\xb6\xd0\xed\x1a\x97\xa8\x32\x98\x2a\xb3\xba\x37\x4c\x69\xce\x63\x34\x59\x34\x03\x42\x68\xc9\x39\x01\x5f\x6c\x01\x89\x62\x5a\x3d\x01\xde\xe4\xb0\x39\x8a\x2f\x52\x1e\x93\x03\xfb\x0e\x20\x69\x18\xe3\x8a\x91\x98\x9b\x1b\xd6\xbd\x63\x16\x18\x2a\x0c\xc8\x85\x5f\xb8\x13\x34\x40\x52\xbf\x98\xeb\x43\x2d\xe8\x6c\x06\x86\xc3\xca\x50\x4d\x6b\xf6\x53\x58\x5e\xf8\xce\xec\x7f\x26\x38\x9c\x73\xdd\xad\xb5\x38\x7b\xab\x84\xf9\x10\x50\x57\xca\x2d\x0a\x0c\x06\x87\x86\xa1\xb9\xcd\xd2\x8b\xd0\xba\x5e\xe6\x3c\x1a\x7b\x91\x3e\x5c\xc0\xb6\xa4\xb1\x77\x66\x82\x3c\x51\x9e\x07\x9f\x5a\x60\x8f\xd2\x8e\x37\x36\x5f\x2c\x00\x2c\x9b\x31\x8a\x54\x9a\xf1\xe4\xd1\xd8\x82\x66\x61\x4f\xd0\xc2\x54\xf0\xb4\xa1\x8d\xf2\x31\x39\xbf\xbe\x53\x02\x2b\x32\x5b\x9c\x59\x96\xb1\xf9\xf1\x38\xbb\xfe\xe9\xea\xe2\x7a\x70\x36\x1e\x0e\x3e\x95\x4f\xbc\x7f\x72\x77\x7f\x3b\x1c\x5c\x96\x1f\x8d\xaf\xae\xef\xc7\xee\x8d\xa5\x24\xdf\xd2\x41\xfd\x9e\x2e\xbf\x78\x82\x34\xcb\x05\xd6\xe8\x00\xef\x02\xfe\x38\x21\x53\x2e\x0c\x9f\x4f\x5d\xe8\x82\x15\x61\xdc\xda\x5a\x5d\xac\x32\x8b\x13\xb0\x8c\x35\x35\x69\xac\xde\x4a\x10\x9c\xc2\x3d\x81\x19\x1a\xb2\xf8\xf0\x7a\x7a\x78\x67\x7e\x4c\xb1\x78\x24\xc2\x7f\xfa\x2c\xa8\x52\x84\x95\x54\x3a\xec\x86\xec\x95\xc4\xa2\x83\x23\x74\xab\xf9\xbe\x7e\xdf\x5f\x6a\x9a\xd8\x63\xa2\x30\x4d\xa4\x1d\x6c\x69\x5d\x4f\xd0\x05\x16\xb3\xc2\x0e\xf7\x35\x9f\x4e\x4d\x63\xdf\x98\x61\xe8\x3b\xac\x34\x8b\x06\xde\xab\x49\xc3\xdd\x8b\xd0\x9f\x7d\xd9\xcb\xc3\x75\xaa\x7a\xc8\xb6\xa3\xa9\x87\x1b\x58\x71\xa3\xb1\x97\x74\x43\xfb\xa4\x81\xd6\x60\xe2\xe6\xf1\xf2\x4b\xa6\xb9\xed\x3a\x39\x95\x5f\x6c\x20\x27\x93\x4b\xa5\x77\x7e\xaa\xb5\xcd\x06\x5a\x22\x9f\xa9\x35\x18\x84\xe3\xae\x90\x50\xd1\x0c\x98\x57\x71\x96\x11\x2c\x64\xd3\x6e\x97\xc5\xc0\x96\xbd\x37\x3d\x85\x7d\xd8\x4d\x76\xfd\x1c\x20\xce\xc0\xe0\xe0\x85\x88\x0a\x45\x76\xa0\x01\xd3\x56\x8d\x02\x6e\x00\x6d\xe9\xda\x22\x1b\x5d\x52\xa9\x95\x46\xf3\xe3\x77\x16\x72\x69\x33\x82\xf8\x38\x38\xbf\xa8\x08\x17\xe3\xb3\xe1\xc7\xc1\xc3\xc5\x72\x33\x61\xe9\xbb\xea\x16\xa3\x43\xa4\x9f\x97\xfd\xe6\x74\x6a\xee\x0c\x07\x1c\x65\x54\x5a\xc2\xc0\x68\x65\xa1\x6a\x8c\xbd\x3a\x26\x59\xc2\x17\x29\x61\x60\xe2\x29\xdd\x84\x7a\x3d\xa7\x98\xda\xab\x25\x18\x2c\x58\x71\xac\xd9\x0d\xae\xb1\x43\x87\x56\x45\x62\x7f\xf3\x96\xc1\xaa\x2a\xac\xfb\xc6\x78\xcf\xec\x7f\xee\x14\x56\x1b\x9e\xb1\xc1\xe9\xfd\xf9\x8f\xc3\xb2\x7e\x78\xfa\xfd\xf9\x8f\x4d\x52\xcd\xf8\xd3\xf0\x6a\x78\x3b\xb8\x5f\x21\x9c\x54\x9a\x6c\x12\x4e\xa4\x1e\x70\xd5\x7b\x4a\xa5\x8f\x08\x8a\x0c\xe4\x15\xa2\x4a\xa2\x27\x2a\xe9\x84\x02\x40\x98\xf5\x44\x3e\x9c\x03\x67\x7d\xc2\x09\x8d\xa9\x5a\x38\xf1\xc5\xf4\x5b\xde\x47\xcd\x49\x6d\xfb\xc6\xec\x10\xfa\x27\xc1\xca\x67\x36\xc7\x4d\xfa\x04\x81\x6e\xfb\x04\x4a\x5b\xf0\x19\xd3\x82\x34\x9b\x11\x61\x86\x03\xde\x97\x70\x2c\xc1\x73\x3d\xaa\x50\x58\x29\x56\xcd\x0b\xad\x33\xc2\x88\x00\x10\x38\xdf\x89\x11\xa4\x04\x61\x5f\x69\x99\x2b\x4b\x68\x44\x55\xb2\x40\x11\xd8\xb0\xc0\x9c\x99\x62\x86\x67\x56\x38\x00\x35\xa7\x42\x12\x7f\x35\x28\x6a\xd7\x53\x6b\xda\xbf\xa7\x64\xc3\x63\xf6\x70\x75\x36\xfc\x78\x7e\x55\x26\x81\xef\xcf\x3f\x95\x44\xd8\xcb\xe1\xd9\xf9\x43\xe9\x36\xd7\x92\xec\x72\xb9\xbe\xda\x6c\xc3\x51\xf4\x2f\x9d\xa0\x33\xf3\xe9\x89\x5e\xdc\x06\x88\x38\xaf\xfc\x56\xd6\xe1\xd6\x85\xe4\xb9\x3f\x86\x4c\x89\x46\xbf\x44\x57\x13\x92\xf5\x41\x96\x6c\x48\xcd\xa1\x0a\xb5\xbe\xaf\xaa\x4e\xe5\xea\x94\xdd\x8b\x10\x74\x79\x54\x58\x96\xc2\x18\x06\x30\x1a\xb4\x19\xb1\x1a\xdc\x5a\x05\xc3\xfe\x11\x5c\xd4\x69\x2e\x95\x71\x25\x02\x71\xa2\xc7\xbf\x48\xbd\xa0\xe0\x6a\x3c\x42\x77\x84\x8c\x98\xb3\x1e\xcc\xa8\x9a\xe7\x93\xa3\x88\xa7\xc7\x05\x3e\xe1\x31\xce\x68\x8a\xb5\x24\x4d\xc4\xe2\x78\x92\xf0\xc9\x71\x8a\xa5\x22\xe2\x38\x7b\x9c\x41\x04\x8c\x73\xa7\x1e\xfb\x66\x67\xfc\xdf\x2f\xfe\xf4\xed\xe1\xc5\x5f\xbe\xfd\x50\xb7\x90\xb5\xed\xff\x90\x45\x38\x93\x79\x62\x23\xe6\x44\xb8\x36\xee\xc8\xe7\x64\xd5\x7e\x5f\x95\xb7\x6b\x3b\xfd\xf5\xf4\xe6\xa1\x64\xb1\x2e\xff\xf3\x72\x78\x79\x7d\xfb\x73\x89\x53\xde\x5f\xdf\x0e\x3e\x95\x18\xea\xf0\xe6\xfb\xe1\xe5\xf0\x76\x70\x31\x76\x0f\xb7\xb1\xbd\xfd\xc0\xf8\x33\x2b\x2f\x8d\x74\x1c\xb0\xd6\xd3\x09\xfa\xc8\x05\xfa\xc1\xef\xe4\xe1\x04\x4b\xb8\x62\xdc\x9d\x25\x0f\x50\xc6\x63\x60\xbc\x88\x64\x73\x92\x12\x81\x13\x6b\x33\x90\x8a\x0b\x3c\x33\x37\xbd\x8c\x04\x56\xd1\x1c\xc9\x0c\x47\xe4\x00\x45\x40\x0d\xb3\x03\xd8\x14\x50\xb5\xf8\xac\x6a\xe7\xbb\xcd\x99\xa2\x29\x71\x2a\xb8\xfd\xe7\xbd\xd9\x8c\x0d\x36\xe7\xfa\xfe\xfb\xb2\xb0\xf7\xf1\xe2\xe7\xfb\xe1\xf8\xee\xec\x87\xa5\xeb\x69\x3e\x2b\x8d\xec\x0e\x02\x90\x4e\x79\x92\xa7\x2c\xfc\x7b\xf3\xb1\x9d\x5f\xdd\x0f\x3f\x55\x47\x77\x3d\xb8\x2f\x53\xc6\x6d\x39\xc0\xed\xc3\x77\xd7\xd7\x17\xc3\x92\x4b\xf8\xc3\xd9\xe0\x7e\x78\x7f\x7e\x59\xa2\x9f\xb3\x87\x5b\x83\x46\xb8\x6c\x9a\x6e\x04\x0d\x13\xd5\xd3\x0a\xa7\xb9\x6b\x56\xd8\x89\x13\x0d\x6c\x40\xb9\x39\xcb\x87\x01\xdc\x8e\x09\x07\x03\xab\xce\xa1\x37\xa9\x46\x66\xa4\x8d\xec\x50\x95\xb7\x09\xb5\xb3\xe3\xa5\x1b\xbd\x8c\x2b\xdf\xfb\x21\x18\x28\x50\xa3\x6c\xe3\x24\xe1\xcf\x26\x94\x37\xa5\xfa\x56\xb6\xc0\x68\xfa\x15\x59\x78\x08\x8f\x1a\x38\x5e\x79\x5b\x48\x24\x88\xba\xe4\x39\x53\x9b\x93\xdc\xe0\xaa\xc4\x77\x86\x57\x3f\x8e\x7f\x1c\x94\x29\xf0\xfc\x62\x39\xab\x09\x9b\x68\xb8\x8a\x07\x57\x3f\xfb\x4b\x18\x02\xbe\x0f\xbc\x86\x6a\x64\xd7\x28\xa1\x5a\xec\x8d\xb0\xd6\x5e\x13\x90\x68\x10\xa1\x60\x72\x48\xf5\xe4\x20\xc0\x34\x33\xfe\x24\xc3\x9f\xcc\x20\x4f\xdc\x1f\x95\xf6\x24\xac\x0b\x58\x53\x5d\x3c\x3d\xb4\x63\xb5\x6a\x86\x08\x7b\xa2\x82\x03\x9e\x2d\x7a\xc2\x82\x6a\x69\xdc\xb4\xac\xe7\x7a\x02\xff\xbb\x5e\x9b\x60\x18\xad\x30\xae\x3b\x2e\xd4\x99\x0f\xe4\xdd\xcc\x1a\xd2\x14\xd0\x5a\x0f\x65\x6d\x36\x74\xd4\xbf\x6d\xd8\x9c\x2d\x03\x7e\xcb\x13\xfe\x47\x72\x46\x71\xa2\x19\xc0\xee\xe4\xc5\xc1\xd5\xdd\x79\x59\x7e\x2c\xab\x19\x01\x5f\xde\x58\x5e\x04\x43\xa5\x19\xb9\x53\x26\xee\xfe\x7a\x61\xb4\x0b\x00\x3d\x36\xe7\x36\x50\x2c\x40\x00\x72\x28\x28\x19\x16\xb2\xf2\x85\x44\x00\x84\x56\x04\x5c\xe9\x3b\x0b\xc2\x99\x9e\x38\x8d\x47\x8c\x7c\xce\x08\x93\x10\x1c\x60\xee\xb3\xc2\xd7\x2e\x8f\xd0\xf9\x14\x58\x82\x7e\x9d\xa1\x9c\x59\x07\x98\xbe\x70\xcd\x20\x0f\xb4\x28\x6b\x87\xe0\x35\x44\x30\xbc\x30\xe2\x82\xa5\x8a\xc1\x8f\xd8\x4f\xde\x89\x06\x8f\xa6\x5c\x33\x20\xbd\x8b\xb6\xbd\x13\x84\x99\xa4\x07\x48\x2b\x2c\xd5\x3d\x85\xd4\x01\xad\x50\xda\x10\x2e\xcd\x69\xec\x9f\xaf\x7f\x0d\xd4\xe2\x84\xc3\xcb\xa0\xf9\x2e\xa8\x5c\x05\x2d\xa2\x71\x62\x3c\x26\xe3\xee\x77\x42\xc4\x05\xb1\x7e\x96\xb5\xaf\x81\x55\x8c\xfd\x1e\xcb\xc7\x9a\xef\xe1\x9c\x49\x85\x59\x44\x4e\x13\x2c\x37\x0c\x42\x72\x36\x8e\x83\xb2\xc4\x71\x7b\xfb\x70\x73\x7f\xfe\xdd\x0a\x2e\x5f\xfd\xb8\x1e\x06\x14\x25\xb9\x73\xcf\x4d\x04\xc7\x31\xd2\xec\x73\xc6\x8d\x2b\xd0\x0a\xfe\x05\xf4\xb7\xc9\xeb\xf1\x01\x95\x25\xd8\xf1\x22\x1d\xc1\xda\x39\x42\x57\x02\xb5\x0b\x81\x22\xbd\x12\x28\x30\x79\xb8\xad\x06\xcf\xa2\x29\x48\x62\xad\x5b\x59\x82\xd5\x94\x8b\xd4\x70\xf9\xd2\xa4\x4d\xe3\xcb\x1b\xa5\x4c\x11\x21\xf2\x4c\x51\x87\xe5\x5e\x95\x52\xa1\xc2\x3b\x9f\x5d\x12\x29\xf1\x8c\x6c\xe3\x80\x6e\x52\x1e\xee\x7e\x0c\xff\x09\x0e\xe6\x2e\xb2\x7f\x69\x84\x2e\xf2\xdd\xd1\xd3\x35\xfb\x68\x02\x79\x6e\x78\x42\xa3\x0d\x03\xee\x3e\x0e\xce\x2f\xc6\xe7\x97\x5a\x89\x1f\xdc\x0f\x2f\x4a\xa2\x04\x3c\x1b\x7c\xbc\x1f\xde\x5a\x10\xeb\xc1\x77\x17\xc3\xf1\xd5\xf5\xd9\xf0\x6e\x7c\x7a\x7d\x79\x73\x31\x5c\x11\x99\xd3\xda\x78\xdd\xba\x5a\x7d\xf5\xa4\xf6\x0b\xec\xb0\xe6\x65\xa1\xbd\x0c\xb2\xc6\x30\x4d\xc0\x09\xce\x8d\x33\x1c\x23\xc6\x63\x02\x3f\x4b\x67\x9d\xf1\xc8\xd1\xe8\x5c\x7d\x95\x24\x08\xe7\x8a\xa7\x18\xbc\x36\xc9\x62\xc4\xf0\x44\xb3\x56\x9c\x24\x41\x78\x97\xc8\x19\xd3\x2c\x56\x37\x66\x20\xda\xa3\x84\x68\x76\x9e\x05\xc9\x7e\xd6\x6f\x30\xa5\x0c\x22\x6d\x53\x2c\x1e\x8d\x9b\xa9\xe8\xb2\x38\x14\x12\x61\x39\x62\x7a\x5c\xc4\x1a\x86\xba\xac\xf0\x49\xa7\xb7\x5a\x57\x27\xc5\x8f\x44\xaf\x4a\x9a\x47\x73\x94\x09\x3e\x13\x44\x4a\x6b\x5b\x8e\x30\x33\x01\x08\xf6\x75\x7d\x0d\x8d\x18\xe3\x7a\x29\x9c\x09\x3b\x26\x19\x61\x31\x61\x11\x35\x69\x7d\xe0\xbb\xf7\xa6\xcd\x99\xc0\xd9\x1c\x49\x0e\x4e\x6f\x58\x76\xb0\x5f\x99\x8f\xdc\x4d\x66\x66\x6c\x1e\x87\x16\x68\x91\x6b\x3e\x71\x0d\x72\xa2\x59\x65\xf8\xd8\x5d\x86\xce\xed\x62\xec\x80\x69\x96\x10\x65\xc0\xfa\x61\xc9\x61\x33\xf4\x5a\x97\xf6\x43\x6f\x53\xd3\x26\xe8\x0b\xdb\x8d\x19\x4b\x3b\xa2\xa3\x06\xcb\xb6\x3d\x52\xe8\x7b\xcc\xe2\x44\xb7\xe2\x7c\x18\xe5\xb3\x08\xa9\x28\x03\x4d\x35\xee\x34\x6e\x73\x8b\x46\x38\x97\xdb\x5c\xa3\x95\x5c\x4c\x63\x15\x3c\x2c\x82\x42\x80\xbc\x6d\x22\x26\xac\x6e\xa6\x59\x24\x4e\xb8\x5d\x25\xf3\x7a\x6e\xea\x3f\x21\x18\x4d\xcb\x35\x9b\x09\xca\x22\x9a\xe1\x64\x23\xdd\xaf\x12\x8c\x6f\x63\xdc\xbf\xa6\x53\x4d\x3e\xdf\xd4\xdc\xb6\x8a\x88\x14\x12\x94\xed\x30\xfd\x16\xae\x61\x49\xb2\x59\x0d\x44\x16\xd1\x24\x58\xf0\xdc\xf8\xe3\x60\x5d\x48\xdc\x70\x54\x8f\x9a\xb6\x5b\x9f\x0c\x5c\x0e\x80\xde\x60\xb3\x4d\xe4\x4f\xdb\xfa\x55\x5a\xb1\xbd\x9b\x60\x3c\x9c\xdc\x34\xb7\xd9\xb4\x03\xc1\xc3\x7f\x2d\xa3\x9d\x4b\x9c\x69\x9a\xb1\xb0\xfd\xb8\x98\xa3\x55\x92\x6c\x55\x30\x17\x3f\x13\xf8\xce\x7d\x5e\x48\xf7\xdd\x28\x96\xd0\x06\x40\xd5\x3b\x29\xc5\x10\x04\x39\xe6\x96\xc6\xa7\xb9\x96\x65\x11\x86\x28\x04\xf4\x35\x39\x9a\x1d\x21\x57\x84\xe1\x00\x0d\x6e\x6e\x86\x57\x67\x07\x88\xa8\xe8\x1b\x17\xb3\x68\x03\x96\x46\x4c\x71\x2b\xad\x2c\x5c\x01\x8d\x94\x88\x19\x29\xcd\xd9\x45\x37\x41\xa8\xf2\x8c\x4a\x65\xc3\x67\x35\x5f\x09\x4a\x9d\xd0\xb4\x2a\x66\x1b\x0a\xc9\xd5\x7c\x1b\xd2\xc0\x52\xe6\xa9\xd6\x65\xc7\x14\xa7\x63\xc1\x93\x6d\x98\xc2\x19\x4c\x05\xd4\x65\x9f\x9e\x4f\x71\x8a\x74\xb3\x36\x14\xc4\xbb\x1c\xbd\x48\xa7\x05\x23\xcd\x97\xf5\xbd\x19\xdc\x5b\xce\xfb\x60\xe3\xd1\xa8\x0b\x81\x80\xf4\xfd\x16\x56\x51\x98\x8d\xc7\xd6\x52\x3f\xc6\x51\xa4\x55\xee\x1d\x4f\x2a\xa8\x9f\xe3\x5c\x02\xb6\xa3\x17\x9b\xe6\x2a\x3a\x77\xc3\xcc\x34\x07\x83\x60\x60\x7d\xe5\x4a\x1e\xd1\xa2\xfd\x86\x7e\x27\x8b\x5a\xaf\xae\xc2\xcd\x83\xf4\x26\x15\x73\x09\x4b\x02\x3b\x29\x4d\x85\x1c\x35\x27\x0b\x34\xc7\x4f\xa4\xd4\xa5\x4b\x88\xd1\x0d\x2f\x78\x2e\x9a\x18\xdd\x88\x9d\x91\x4c\x10\x2d\xe9\x57\x1d\x28\x9e\xa6\x6f\xcb\x94\xd8\xd3\x75\x4f\xd7\xef\x9e\xae\x4f\x4d\xa1\xa4\x81\x2f\x8c\xb5\x95\x00\x67\x1a\x1b\x67\x9c\x27\xe3\x0e\x36\x91\xee\x2b\x5e\xf2\x84\x55\xca\x46\x01\x24\x00\xcf\x41\x3e\x2a\x5d\x9b\x5c\xdf\x75\x41\x8a\xad\x1d\xde\x92\x65\x70\x2e\xb3\xa0\x5e\xce\x36\xe7\xbd\xa9\x95\x65\x2d\xa1\x17\x17\x73\x4e\x8d\x7c\xe3\xdd\x65\x61\xfd\xd3\xd2\x61\x72\xa2\x08\x65\xb5\x6a\x6c\x86\x9e\xf5\x02\x1b\xb9\xe3\x1f\x39\x57\x58\x7e\x73\x34\x62\x5a\x88\x7a\x24\x0b\x63\x6e\xd5\x62\xca\xef\xb4\x2c\x7e\x28\x09\x93\x10\xee\xfd\x3b\xe3\x9e\xd3\x24\xee\xcc\xd5\x46\x35\x35\x45\xe0\x20\xe8\xda\xf7\x02\x21\xba\xb6\x51\x2b\x25\x15\x01\xd0\x20\xe7\x9b\xb9\xd8\x67\x66\xf8\x33\xa2\x20\xc5\x5a\x51\x05\x3a\x53\x6c\xaa\xcc\xd5\x86\xbe\xd2\x74\x65\xa8\x42\x70\xf0\x93\xc4\xf9\x76\x8c\x5f\xd6\xdb\x58\xc9\x19\xbd\xb6\x70\x67\x63\xde\x8f\x9d\xdd\x28\x12\xbc\x56\xba\x0d\x4b\x64\x76\x7a\x62\xd8\x81\xf3\x5f\x13\x76\xf4\x4c\x1f\x69\x46\x62\x8a\x21\x02\x5e\xff\xeb\x58\xcf\xeb\xdf\x4f\x6f\xaf\xaf\xc6\x45\x26\xcf\x7f\x8d\xd8\x20\x91\xdc\x67\x29\x20\xc6\x99\x0f\xb7\xcf\x04\x71\x22\xa1\x9d\x0b\x58\x5d\x0b\x33\xe2\x88\xb5\x8d\x20\xe6\x91\x3c\xc2\xcf\xf2\x08\xa7\xf8\x57\xce\xc0\x95\x3e\x80\x3f\x4f\x13\x9e\xc7\x3f\x61\x15\xcd\x8f\xe1\x5c\xab\x63\xf2\x44\x98\x32\x6e\x2a\xbd\x5c\x31\x24\xef\x4a\x88\xd6\xff\x77\x3d\xe6\x22\xa9\x48\x6a\x4d\x36\x22\x99\x42\xff\x8f\x20\x13\xce\x55\xf3\x25\xc5\xa7\x53\x49\xd6\xba\x90\x0a\x25\xed\xee\x1a\xfd\xe5\xcf\xdf\xfe\x41\x93\xd0\x26\x6b\x7c\x7e\x77\x3d\xd6\xdf\xff\xfb\x99\xfd\x5e\xae\xc1\xee\xae\xb3\x82\xb5\x39\xe2\x31\x81\xf3\x39\x83\xdb\x4f\x80\xf3\x02\xd8\x1b\x90\x43\xb1\x8f\x4d\xdc\xed\xac\xd4\xfa\x76\x2a\xdb\x46\x8b\x09\x2a\x76\x30\x47\x74\x88\x18\x47\xa9\x89\x35\xc5\x0c\xfd\xc7\x0f\xdf\x35\x6f\x60\x2e\xe8\x46\x1d\x52\x0b\xd7\x10\x74\x29\xe9\xaf\x44\x22\x4d\x35\x9a\x8a\x79\xaa\xbb\x16\x44\xce\x79\x12\xa3\x67\x02\x6a\x92\x8d\x03\xf5\x5a\xb9\x20\x23\x16\x36\x01\x21\x87\x08\x27\x8a\xcf\x08\xdc\xd5\x4e\x51\x53\x44\x68\x51\xc5\x64\x69\x28\x2e\xc8\x81\x81\xfa\xba\xfb\x93\x8b\xad\x86\x69\xc2\x23\x97\xd4\x62\x4d\x72\xf1\xa4\x79\xe6\xd3\xaa\xe9\x15\xb5\xdb\xf0\xab\x9b\x6c\xcd\xb6\xcd\x4b\x63\x93\x50\xac\x0d\xab\xba\x33\xcd\x83\xa1\x11\x67\xe3\x84\xb2\xc7\x8d\x36\xe3\xda\x89\x72\xba\x05\xbb\x66\xba\x45\x6f\xe7\x36\x16\x90\x35\xce\xc7\xc7\x3c\x49\x4c\x6a\x4b\xb8\x3d\x20\x77\x99\x75\x03\x61\x20\x33\x39\xa0\x24\xb6\x7e\x2f\xab\x09\x0b\xc2\x20\xe0\x6d\xc4\x26\x0b\xeb\xb3\x95\x07\x48\xe6\xd1\xdc\x65\xe6\x45\x9c\x49\x2d\x46\x73\x81\x22\x9e\xa6\xa6\xb8\x29\x23\x48\x71\x9e\x48\x1b\xed\xce\x0e\x15\x8e\xd4\x88\x15\xfd\xad\x38\x79\xa6\x02\xd2\x76\xa9\x7b\xdd\x5d\x3a\x45\xa5\xa5\xa5\x02\x37\x8d\x43\xcc\x06\x30\x82\x19\x4f\x54\x80\xfe\xc0\xeb\x67\xc9\x6c\x58\x8b\x66\x20\xe7\x5c\xa8\x71\xdc\xc8\x73\x56\x12\x4d\x95\x11\x32\x72\x98\x40\xd0\x30\x7f\xd2\xc2\x3f\x79\xf6\xc6\xd7\x65\x43\xd0\x54\xbd\x6c\x04\xdd\x8e\xd1\xd2\x91\xad\x4b\x82\x2d\x6b\x65\x10\x3c\xa2\x72\x4c\xf8\xaa\x31\xde\xc1\x57\xa7\xfa\xa3\xa5\x8b\x57\x3d\x77\x4e\x08\xe2\x71\x01\x36\x67\xee\x75\x9b\x11\xb2\x6c\x4d\x2d\x74\xc2\xcb\x65\x8e\x2e\x9b\xca\x43\xd9\x92\xab\xc7\x02\x26\x7b\x49\x40\xd6\xc4\x62\x42\x95\xc0\xa2\x84\x14\xe2\xf5\x41\x49\xb0\x80\xf8\xac\x11\x33\xb8\x71\x46\x53\x88\x51\x4c\x25\x24\x88\xc0\x5d\x1a\x38\xc3\x50\x37\x25\xb0\x72\xb4\x8b\x3c\x47\x13\x7f\x0e\x81\x65\x05\x69\x38\x66\xa7\x3b\xf2\xf8\x58\x5a\x3f\xe3\x51\x5e\x08\x72\x11\x48\xb8\x16\x53\x07\x51\x26\xe9\x6c\xae\x10\x65\xd6\xee\x88\x93\x19\x17\x54\xcd\x53\x79\x80\x26\xb9\xd4\x5a\xa8\x09\x56\x33\xf1\x28\x44\x45\x9d\xb8\xd0\xb6\x49\xc4\x71\xa5\xc1\xba\x8a\xb2\x01\x69\x74\x3b\x94\xc3\xca\x5d\xb1\x82\x70\x06\x1e\x67\xb0\xda\x06\x85\xba\x8d\x06\x9e\x12\x99\x38\x40\xee\x90\x9d\xa0\x0a\x48\xdb\x39\x00\x54\xc8\x9d\x79\x29\x5e\xa3\x10\x17\x32\xc9\xa0\x82\xb8\xd8\x6d\x90\xbc\xca\xc8\x94\x06\xbd\xc9\x3b\x9d\xd2\x4c\x35\x06\x6e\xd5\x5d\x45\xb7\x01\xe6\x4f\xb7\xc5\x86\x64\x2c\xa0\x66\x40\x6a\x1b\xb1\x3b\x42\xda\x81\xdc\x6a\x7b\x6f\x4a\xe3\xc2\x14\x6c\xa2\xc7\x72\x92\xdf\xc6\x89\x7d\x36\xbc\x3b\xbd\x3d\xbf\x31\x90\x13\xd7\xb7\x97\x83\xfb\x71\x83\x5f\xbb\xe1\xad\xcb\xc1\xed\x0f\x67\xab\x5f\xfb\xfe\xbe\x9c\x95\xdd\xf0\xca\xed\xdd\xf2\x64\x8e\x0e\x43\x6c\x48\x0a\x6b\xec\xe7\x04\x65\x0b\x35\xe7\xcc\x87\x28\xc4\x25\xde\x74\x88\x4c\x46\xb0\x82\x10\x22\x21\x55\x83\xe3\xf0\x1e\xe2\x72\x56\x4b\x98\xe5\xcd\x32\x30\x6c\x3b\x15\x8d\xd6\x38\x91\x9f\x12\x3e\x01\xbf\x75\x5e\x2a\x71\xbb\x24\x02\x7d\xcb\x78\x9f\x33\x2a\xb3\x04\x2f\x6a\x3d\xac\xba\x72\xae\x70\x4a\x20\xe2\xb8\xc0\x8f\x73\xc9\x22\x7a\x67\x20\x81\xc9\xdf\xeb\x74\x0a\x99\x4c\x8a\x62\x45\xd0\x84\xa8\x67\xc8\x9b\x73\xbf\x7a\x5b\xaa\x0b\x18\x91\x47\x23\x06\xe6\x9c\x91\x5e\xe4\x38\x87\x68\xbf\xd1\x87\x03\x34\xfa\x10\x93\x27\x92\xf0\x4c\xef\xbc\xfe\xa1\xe5\x92\x19\xa6\x98\x26\x57\x5c\x79\xcb\xdc\x36\xfb\x29\x48\x44\x33\x90\xcc\xc7\x44\xb7\xfb\x7a\x82\x47\x89\x92\x1d\x3b\x83\x31\x20\x1c\xc7\x5a\xc9\x06\x56\xe6\x86\x57\x84\x00\xb1\x60\xea\xa5\x5a\x99\xeb\x88\x14\xde\xfc\x6d\x7a\x0c\xdb\x2c\x9b\x3d\x1b\x77\x80\x3d\xbd\xa0\x4b\x76\xdb\x8b\x5c\x6b\x25\x3f\x90\x05\xa4\x60\xdc\x60\x2a\x36\x74\xcd\x36\xc5\xbc\xbe\x88\x93\x76\xd8\xd0\xd1\x1e\xb9\x6b\x9b\xd7\x61\x3b\xc7\xad\x8f\xd5\x7b\x2d\x2d\xd5\xc5\x72\xf9\x8e\x3b\xaa\xad\x0f\x6d\x4a\x6a\x6b\x08\x03\xaa\x2a\x5e\x19\x89\xd6\xd0\xb8\xfc\x00\xef\xf4\x77\x2b\x35\x15\x2f\xae\x45\x61\x4d\x7f\xd8\x05\x9b\x1c\x5f\xcd\xc7\x27\x2b\x47\x1c\x25\x5c\x96\xb1\x72\x3a\x0f\xfa\xd4\x7e\xba\x6c\xdc\xc3\x90\x7c\xb5\x5c\xb8\x56\x40\x43\xc3\xc2\x57\xc0\x20\xcd\x3d\xa3\xac\x87\xcc\xbe\x7d\x80\x28\x44\x5b\x82\x42\x96\x14\xc8\x01\x2c\x46\x85\x1b\x64\xc4\x8a\x98\x15\x89\x9e\x49\x02\x61\x6e\x11\x4f\x33\x30\xf1\xdb\xe1\xda\x96\x48\x6c\x22\x86\x0f\x10\xcf\x95\x6e\xcc\xe4\xe4\x38\x23\xae\x4d\xf8\x29\xdc\x1e\xc6\xf7\x66\x83\xdf\x3d\xb0\xb4\xa1\x75\x73\x97\x52\x86\x3e\x11\x05\xad\x00\x70\x7f\x38\x41\xd0\x13\xaa\x21\x94\xcd\x6b\xbf\xc5\x89\xb2\x33\x59\x63\xe7\x0b\xe0\x94\xef\x12\x3e\x59\x6e\x24\x80\xc6\xd1\xc3\xed\xb9\xb3\x48\x16\xf1\x53\x01\x7a\x71\xc9\xa3\x38\xbc\xb9\x1d\x9e\x0e\xee\x87\x67\x47\xe8\x41\x12\xbd\x3c\x7e\xba\x90\x5f\xed\x55\x12\x33\x72\x8b\xc4\xc2\xa4\x22\xb8\xcd\x10\x42\x84\x28\x65\x41\xaf\x60\x1c\x65\x98\x96\xe5\x84\x0d\x20\x29\xd4\x1a\xea\x00\x58\xa8\x3a\x4f\x1b\x99\xb7\xea\x04\x42\x9c\xd4\xf8\xfd\x44\xa9\x99\xf1\xa6\xf5\xc8\xbc\x55\xe4\x53\x8e\xe8\x7b\xe9\xc9\xc0\xd1\x52\x73\x42\x05\xea\x34\x2d\x43\x54\xe3\xee\x73\x0a\x42\xdc\x2f\x71\xb6\x3c\xfd\x14\x3f\x97\x88\xd6\x88\xc2\x81\xef\xfe\xa5\xcf\x81\x63\x6b\x63\xc3\x0a\xb7\x9f\x60\xe1\xd0\x32\xbc\xd5\xf3\x4d\x93\xf1\x21\x9d\x91\x2c\x9c\x58\x65\x10\x36\x8e\x55\x22\x38\x3b\xf0\x0b\x65\xa8\x74\x25\x1e\xa0\x29\xfd\x6c\x1b\x2d\xe2\xdb\xdd\xab\x41\xc0\x43\x4b\x3c\xe5\x1c\xd7\xcf\xd4\x1a\x62\xc3\x0d\x7c\xbf\x54\x88\xe4\x52\x8b\x44\x91\x16\x97\x04\x89\xb8\xd0\x37\x05\x74\x5b\x78\x21\x56\x89\x0c\x0a\x0b\xbd\x28\x75\xaf\xcc\xb2\xd3\x5f\xd4\x20\x89\xb1\x22\x87\x5a\xf4\x5a\x91\x00\x6d\x73\x64\x20\x9b\x06\xab\x00\x0e\xac\xb8\x79\x26\x64\x86\x99\x0b\xcd\x6e\x19\xae\xbb\xf2\xb6\x60\x55\x5a\x05\xc2\x90\x1e\x06\xf2\x15\xa4\xfe\x94\xc6\x21\x33\x58\xcf\xa5\xe3\xb0\xd1\x2f\xfb\xb0\x6c\xcf\xd8\x07\xe3\xb4\x0c\x36\xcf\xe2\x7d\x1a\x6c\x82\xa5\x42\x76\x4c\x6d\xa6\x88\x40\x45\x7c\x59\x23\x6c\x49\xb7\xef\xaa\xbc\x69\x12\x2a\x6b\xb1\x04\x3c\x23\xd2\xe1\xa6\x18\x94\x18\xad\xd3\x38\x41\xd8\x94\x62\xf6\x67\xdb\xd6\x64\x76\xb7\x44\xc8\x4c\x20\x48\xbf\xde\xf4\x11\x1a\xb0\x1a\x5e\x96\x8b\xcb\x2a\xad\x97\xb9\x93\x70\xf2\x8c\x17\x12\x65\xc2\x40\xcb\x98\xc8\x7d\x37\x79\xd0\xc0\xca\x1f\xf9\x50\x08\xe5\x52\x27\x10\xd8\x62\x56\x07\xcd\x39\xb9\x77\xfc\x02\xae\xbc\x4a\x54\xb9\x17\xc8\x8b\xe6\x0a\x5b\x45\x07\x56\xa7\xc8\x38\x9a\x63\x36\x23\x63\x67\x64\xdd\x44\x5b\xd2\xed\x9c\x42\x33\x67\xb6\x95\xe6\xcb\xe9\xc6\x28\x4c\xb6\xfe\x8b\x79\xd5\x1b\x10\xf5\x21\x90\x0a\xcf\x08\x32\x23\xea\x64\x96\x2e\x45\x8c\x59\xb0\x61\xd0\x13\x6c\xab\xc3\x72\x14\x7d\x9b\xf0\x0e\xa1\x4f\x17\x78\x42\x92\xb7\x89\x9c\x80\xae\xad\x71\x1e\xbc\x75\x26\x1b\x80\xa0\x67\xb0\xe7\x57\x58\x86\xb5\xde\x8b\xbc\x29\x37\x60\xd9\x3c\x4b\xd5\xcf\xb7\x98\xa8\xab\x15\xb2\xc9\x54\xdb\x2a\x88\x84\xd7\x5e\x50\x69\xa3\xc9\xc0\x16\x5e\x7f\x55\x9b\xf2\x66\x03\x09\x0a\x7e\xb4\x8c\x63\xeb\x8a\x1f\x2b\xa7\xb2\x31\xc8\x40\xc7\x2a\x78\xe7\x53\xc4\x38\x23\x88\xca\xe2\x65\x55\x4e\x87\xf2\x10\x3d\x5a\xc4\x37\xc6\x17\x5f\xa5\xcb\x17\x5f\x7a\x69\x4b\x4b\x01\x9e\xe0\x6d\x03\x2e\xbf\x9b\x11\xad\xa8\x62\xb1\x00\x88\x4f\xc3\x87\xcb\x32\xdd\xca\x71\xee\x5c\xe0\xbe\x77\x08\xae\x41\xa4\xae\xe2\x08\xc4\xc8\xca\xe0\x90\xc1\x41\xb5\x2f\xd9\x8f\x2c\x4c\xcd\x88\x79\xcb\x06\x10\x22\x95\x28\xc5\x19\xf8\xf4\x18\x57\xc5\x57\x06\x76\x49\xf9\x2d\x3c\x70\x82\xb8\x34\x35\xb4\x5a\x56\x60\x95\x69\xc7\x5d\xbf\xc5\xba\x96\xe1\x2d\x1d\x34\xef\x8c\x3e\x11\xe6\x68\xfa\xc0\x9d\x09\x3d\x28\xd7\x69\xb2\x38\xc4\x10\x66\x4c\xe2\xd0\xf3\xb1\x9c\x23\x19\x83\xcc\x3e\xd8\x23\xbb\x2f\xd9\x7d\x63\x18\x8d\x01\x49\x2b\xa1\xdb\xbb\xc0\xf0\x90\x4a\x2d\x6e\xaf\xc9\x04\xc7\x12\xfd\x8e\x71\xf5\xbb\x00\xd9\xd8\x19\x2f\xe0\x53\x67\x82\x3a\xa8\x95\x6c\x81\x43\x6b\x09\x07\xe1\x00\x61\x6b\xe5\xca\x6f\x1b\x1b\x50\x04\xbe\xbf\xa8\x34\x3a\xac\x67\xc1\xb5\xd5\xbc\xea\x3d\xf6\xa8\x7a\x2d\x54\x0d\x9e\xa6\xac\x5e\x71\xd2\x4b\x86\x4e\xb9\xca\x45\xef\xf7\xa2\x93\x6b\xbe\x86\x08\xb0\x0d\xb5\xa5\x9d\x23\xa7\x56\x80\x20\x37\xdb\x25\x36\xc9\xf3\x6c\x93\xcb\x45\x39\x74\xcd\x96\xc1\x68\x41\xf9\x3d\x1a\xb1\x8f\x5c\xd8\x2b\x58\xda\x3a\x03\x13\x1c\x3d\x1e\x12\x16\x23\x9c\xab\xb9\x41\xdb\xb5\x7e\x85\x85\xa5\x06\x2d\x69\x00\xd9\x78\x28\x0d\x2a\x23\x2c\x62\x57\xf1\xe2\x89\xbb\x51\x8c\x58\xd0\x08\x54\x32\x80\x42\x4f\x50\xaa\xb6\x4d\xd5\x24\x52\xeb\x57\x6d\x6b\xd1\x54\x84\xb5\x56\x82\x75\xf9\x39\x2b\x15\x95\x85\x1a\x0c\x10\xe0\xc4\xa7\xf5\xd5\x39\x77\xd6\x46\xa7\xdf\x69\x7a\xae\x7b\x21\x0e\xac\x46\x61\x4c\x52\x76\x06\x5a\xd2\xf9\xd6\xf1\xda\x12\x6a\xf0\x34\x17\x10\xae\xdb\xd4\xe6\xd7\xd1\x9c\x26\x85\xef\xe2\x9b\x03\x3f\x4c\xdd\x64\x42\x9e\x48\x62\x30\xeb\x23\x01\x91\xf9\xc6\x6a\xf8\x2d\xfa\x3f\xa6\x30\x29\xfa\xc3\x88\x7d\x02\x36\x9c\x24\x0b\x40\xd4\xf4\x2d\x63\x55\x69\xe6\xb1\x71\x00\xca\xa6\x02\xa1\xf2\x40\xcc\x5e\xcf\xf1\x13\x19\x31\xd7\xcc\xff\x41\x8f\xe8\xf7\xe8\x0f\x6d\xea\x9d\x0b\xb0\x7f\x61\x3b\xc7\xc7\x20\x7c\x3d\xb8\xe5\x2c\xa3\xb4\xfc\xc6\x99\x41\x4a\x46\xc8\x06\x64\x0d\x0f\x8c\x4d\xd9\x13\x8f\x6a\x59\x1c\xe1\xa9\xc5\x82\x30\x35\x66\x3c\x26\x63\xd2\xe0\xd2\x5c\xc2\x24\xb4\x10\x70\xc5\x63\xb2\xd2\x21\xe9\x99\xe9\x4f\x60\xba\x91\xf9\xc4\x6f\x07\x24\xf8\xfb\x6c\x6e\x6f\x7d\x28\x53\x5a\xf3\xc8\x3d\xfa\xec\x26\xe3\xde\xd4\x99\xea\xc2\x44\x0f\xe0\x42\xb0\x03\x68\x76\xe8\x25\x58\x39\xf7\x7a\xf5\x38\x56\x1d\x01\xfa\x65\x3d\x73\x7b\x59\x05\xb8\xba\x50\xfb\x44\xd0\x19\xd5\xf2\x7b\x77\x87\x2d\x70\xc2\x4d\xbc\x19\x06\x64\xb4\x93\x3b\xa3\x58\x0a\x07\xb4\x72\xe8\xe9\xaf\x70\x42\x4e\x78\x5e\x15\xe0\xed\x02\x50\x19\xba\xfb\xad\xac\xbe\xd0\x7c\x78\x66\x32\x00\xc9\x9c\x9a\x9c\xfb\xc1\xe9\x05\xd2\xa7\x83\xa7\x06\x98\x0a\x16\x2d\x57\x73\x2e\xe8\xaf\xad\x19\x4a\xed\x32\x7a\xe1\x69\x2d\x12\xba\xcc\x38\xcb\xd2\x3a\x10\xab\x11\x29\x54\x49\x2b\x69\xd2\x99\xd0\x24\x07\x0c\x56\xcd\x66\xa7\x79\x62\x0a\x37\x44\x5c\xc4\xa6\x72\xba\x2c\xa5\x8f\x41\x18\xae\x13\xef\xb1\xf2\x0d\x52\x0b\x55\x69\x4b\x43\x18\x0b\xce\x52\x01\xf4\xaf\x39\xc9\x77\x94\x81\xf7\xa6\x31\xcb\xf7\x78\x26\x8b\x20\x64\xb3\x36\x9a\x37\x17\xeb\xfb\x0f\x3d\x53\x19\xe4\xac\x3a\xcb\xa2\x87\x80\x32\x2a\xb9\x29\x0c\xba\x96\x45\xe7\xd6\x40\xdf\xef\xc0\xa4\xf3\x1a\xf1\x1c\x75\x19\xa9\x81\xfd\x58\xf2\x7b\xf2\x19\x9c\x55\x16\xf1\x42\x76\x12\x57\x43\xa0\x22\x7d\xbc\xa0\xc9\x64\x03\x26\x57\x17\xaa\x97\x46\x45\x17\x06\x14\xcf\xd6\x1a\x92\xa9\x15\x87\xb4\x8b\x67\x41\x01\x21\x6e\x51\xbc\xec\x6b\xe0\xba\xeb\x22\xe4\x31\x5a\x4a\x31\x62\x2d\xc4\x75\xb8\x25\x5c\x34\xf3\xf8\x35\x0c\x10\xb6\xa1\x72\xd7\x75\xbf\x7d\xdb\x89\x30\x2c\x69\x5f\x8f\x44\x1d\x1e\x66\xe5\x61\xf0\x95\x40\xde\xc6\x80\xe8\x45\x9b\xd7\x3b\x19\x9e\x1c\xc7\x11\x8e\xe6\xad\x93\x9a\x70\x9e\x10\xcc\xda\xa4\xd7\xc6\xc7\xd5\x23\x62\xc0\x4d\x81\x75\x27\x09\x20\xfc\xba\x25\xb0\x55\x21\x0b\xf1\x9d\xc5\x80\xcc\x6e\x78\xb8\x89\x0d\x74\x03\x55\x84\x39\xcb\x0f\x65\xb3\x84\x54\xd7\xca\x42\xe8\x1f\xd8\x4e\x92\x28\x4f\x82\xb2\x90\x19\x11\x7a\xd4\x7a\x89\x9f\x08\xd3\x3a\x83\x1d\x87\x73\x66\x3c\xbb\x84\x68\x5f\x0c\xea\xc0\x77\xed\xfc\x69\x90\x75\x18\x8f\x18\x1c\x5c\x5e\x3e\xac\x9a\x56\xa5\x56\x33\x42\xbb\xd4\xc6\xa7\x33\x10\x22\xd6\x3e\x9e\x77\x65\x33\xf1\xda\x67\xd2\xf4\x3d\x86\x18\x83\xad\x5d\x6b\x81\xfb\xa5\x80\x6a\x30\x1b\xeb\xe0\xb8\x5e\xc9\x88\x0c\x51\x1b\xe5\xb0\xd3\x20\x68\xa3\x0d\x0e\xea\x45\xef\x92\xa2\xfc\x85\xbb\x0d\x3a\x0e\x65\xa9\xab\xba\xa3\xe3\x19\xac\x93\xcb\xce\xed\x85\x0d\xd9\x2e\xbb\x6c\x7d\x7e\x4f\x11\xe6\x68\x0b\xbc\x2a\x81\x01\x9d\x00\x72\xca\x7f\x32\x1a\x36\x95\xc6\x02\xe6\xca\x5c\xa4\x99\x5a\xd8\xaa\x68\x70\x2f\x86\x39\xbd\x06\xf1\xad\xc9\x3d\x5c\xbd\x23\xe3\x92\x83\xb8\xa9\x33\xe8\xc8\x9a\x15\x1a\x9b\x74\x0b\x1d\x22\x88\x54\x10\x1b\xda\xa2\x41\x4c\x81\xd9\x31\x4e\x5a\x6d\x59\x3b\x60\x9a\x90\x66\x5b\xa0\x34\x58\xf0\x57\x25\x72\xa2\x79\x17\x4e\x92\xca\xbc\x30\xa4\x43\x2b\x5f\x64\x6e\x52\x54\xc2\xed\xee\xac\x4e\xf0\x84\xac\xe5\x9e\xbe\x30\x1f\x2c\xa5\x22\x78\x05\x22\xbb\xb3\x2c\x59\x74\x8b\x28\x0f\x43\xef\x1a\x41\xd2\x56\x0d\x2c\x84\x56\x5b\x7a\x37\x95\xe1\xc9\x36\x1b\xa2\x24\x51\x2e\xa8\x5a\x8c\xad\xd1\xaf\x3b\xd3\xba\xb3\x5f\x9e\xda\x0f\xbb\x68\xd4\x27\xc8\xf5\xe7\x8c\x8c\x70\x4f\x09\x6a\x2a\xe8\xd8\x29\x74\xd9\x6e\xad\x25\x37\x82\x27\x2d\x5b\x58\x87\xde\xd4\x6d\xa8\xba\x8b\x4d\x87\x67\x2b\x73\x8c\xf9\xd4\xe1\x22\x75\x5f\xd8\x6a\xc9\x92\x35\xac\xa5\x0e\x7e\x39\x13\x94\x0b\x5b\x19\xa4\x4b\x50\x5b\x8a\x3f\x8f\x33\x2c\x70\x92\x90\x84\xca\x74\x73\xdb\xee\x9f\xfe\xb8\x74\xb4\xa7\xa6\x82\x8d\xb4\xf5\xa0\x3e\xd3\x34\x4f\x11\xcb\xd3\x89\x95\x72\xb1\x7c\x0c\xc1\x2f\x5d\xaa\xbe\xc1\x70\x72\x03\x2c\x01\x06\x88\x00\xce\x74\xc4\x02\x60\x6b\x6b\xaa\xc0\xd1\x9c\x92\x27\x80\xdd\x14\x8c\x48\x79\x84\xae\xb8\x22\x27\xe8\x12\x67\xf7\x20\xa8\x99\x92\x92\x33\x63\x1d\xc7\x12\x69\xa9\x35\x67\x54\x1d\x8c\x98\x45\xc3\x76\xab\x72\x1c\x71\x66\x10\x51\x23\x58\x58\xdf\x04\x98\x7b\x1d\x34\xa8\x72\x89\x8d\x54\xb6\x2c\xb6\xc0\xcf\xe3\x20\x7a\x75\x6c\xb2\x03\xd6\xa0\xe3\x5b\xfc\x6c\xe2\xb5\xcf\xb0\xc2\xa6\x5a\xec\x32\xc9\xdd\x06\x44\xd9\x0a\x42\x06\x08\xd8\x05\x8e\x70\x8b\x46\xe1\x6b\x9f\x99\xe8\xd4\xaf\xe9\x11\x39\x42\xdf\x25\x7c\x22\x0f\x90\xf4\xa0\xd9\xf0\x50\x12\x25\x0f\x8c\x83\x0a\xfe\x6d\x52\xc1\xbe\x71\xab\x5f\xf0\x7d\x28\xfb\x37\xa5\x9f\x0d\x08\x86\xfc\xd3\xc9\xf1\x71\xba\x38\x9c\xe4\xd1\x23\x51\xfa\x2f\x90\x29\x1a\x57\xc8\x21\x48\xe1\x26\x3c\xaa\x55\xab\x53\xc7\xb2\xea\x44\x91\x36\xad\x46\x12\xc0\x4d\xd7\x57\xba\x2f\xac\xea\xa0\x8f\x38\x6b\xae\x1a\x69\xa7\x2c\xf2\xb6\xe3\x55\x02\x5c\x7e\x1d\x6d\xc5\x14\x8e\x0d\x71\x9e\xa7\x09\x9e\x55\x54\x96\x35\x94\x94\xeb\x94\x5a\x2a\xd2\x73\x87\x78\x0b\x7d\xca\xca\x51\x66\x5f\x39\x77\x24\xb8\x15\xad\xbb\xe5\x68\xc4\x06\x12\x3d\x13\x53\x0f\x16\x72\x12\xc1\x3b\x91\x53\x39\xf7\x19\x89\x60\x2f\x85\x46\x0d\x1c\xae\x41\x4d\xb0\x8a\xa3\xd3\xac\x9c\xff\xc6\x6a\xa0\x38\x91\xe4\x40\x37\x0c\x90\x68\x2e\x90\x10\x3d\x0b\x9c\x65\x44\x8c\x98\x85\x36\x05\x00\x6f\xce\x6d\x90\x48\x5b\x34\x79\xaf\x51\xbe\xae\x46\x19\x26\x7d\x94\x13\x16\x57\x9d\x6f\xc8\x6f\x5c\x9a\xea\xb1\x24\x37\x50\xcb\xa2\x4b\x23\xbd\x57\x69\xba\x83\x4a\xc8\x3b\x94\x6e\x4e\x41\x19\x93\x45\x85\x4a\x67\x37\xf3\xaa\x70\x49\x64\x00\x94\x69\xf8\x38\xe6\x44\x06\x06\x71\xe4\xed\x5a\x09\x9d\x12\x7d\x93\x8f\x98\x26\x89\xd0\x78\x6f\xc0\xaa\x1d\x76\xb5\xee\x34\x12\x5c\x4a\x1b\xc5\x6e\xda\x59\x9e\x8b\xb4\x45\x5d\x3c\x83\xb8\x7d\x7e\x7d\x35\xae\x57\xc8\x0b\x9e\xb9\x5a\x79\xf6\x61\x63\xc2\x7a\x6b\x53\x2b\x2b\xe3\x15\x6b\xb1\x46\x6d\xbc\xe3\xd3\x8b\x73\x5f\x10\xaa\xd2\x75\xbd\x38\x5e\x88\x52\xde\x5e\x1e\xaf\x3e\xe3\xa0\x50\x5e\xa5\x89\x25\xa5\xf2\x56\x6f\x56\x39\x76\x76\x1b\x08\xba\xca\xd6\xaf\x3c\x6b\x65\x9a\x59\x15\xe2\xbd\xa3\x6d\x6a\x61\xd1\x11\x08\x5f\x2f\xed\xad\x06\x21\x46\xbf\x25\x15\x4e\xb3\x30\x7d\xd1\x61\x70\xda\x69\x9a\xa3\xd6\x76\xa1\xbc\x2a\x36\x78\x84\x4d\x64\x48\x75\x70\xb5\xad\x58\xcf\x7b\x74\x6f\x21\xc7\x77\x11\x12\xfc\x7a\xf9\xc0\xc9\xa2\x88\x80\x93\x56\x0e\x72\xe5\xac\x5b\x6c\xe8\x13\xe2\xe1\xd5\x5b\x37\x74\xdb\x84\x3f\x0f\xc3\x24\x08\x96\x36\xb4\x01\xf2\xe2\x2a\x39\x33\x6b\x98\x5a\xfd\x98\x4d\x66\xed\xa1\x2f\x68\x10\x5c\x35\xb6\x46\x57\xe4\x0e\x22\x15\x82\x3c\x11\x01\xb4\x63\xe3\x67\x58\xf9\xa8\xe2\x44\x10\x1c\x2f\x82\x15\xf1\xce\x7b\xd3\x33\x98\x9a\x24\x4d\xb5\x32\x0c\x62\x3e\xe3\x87\x3c\x73\xf2\x7f\xe9\x2d\xa8\x46\x41\xa7\xfa\xc6\x0a\x5c\xff\xfa\x0b\x76\x48\x3e\x53\xa9\xf4\x1d\xdd\x10\xf7\xe8\x1a\x01\xe9\x01\x6a\x54\xcd\x89\xbd\xe1\x46\x1f\x06\xdf\x5d\xdf\xde\x0f\xcf\x46\x1f\x8a\x48\x77\x97\xca\xe5\xd1\x95\x1c\x58\x3e\x67\x23\xe6\x83\x53\x3d\x98\x30\xec\x25\xc2\x71\x5c\xa0\x04\x58\x85\xcc\xc8\x3f\x4b\x39\x72\x70\x2a\x56\x86\xa5\x2e\x69\xe6\x01\xf2\x79\xf6\xf5\x64\x2d\x71\x43\x95\x4e\x8e\xc9\x4a\x5a\x92\x3e\xb2\xa3\xcb\x26\xc4\x41\x55\x46\x6f\x25\xca\x01\xf5\x31\xf2\xec\xf4\x0e\xb8\x9d\x8f\xb1\xb9\x84\xd7\xe3\x76\x6e\x43\x36\xd8\xd4\x8f\xf4\x33\x89\x6f\x5b\xa4\xaa\x9d\x64\x87\x74\x8a\xaa\x6b\xdc\x85\x9c\xd1\x75\xb4\x67\x3f\x95\x07\xfd\x5d\x77\xb6\x74\x5d\xc0\x9b\x15\x50\xa5\x80\x53\xaa\x10\x46\x11\x11\x0a\x53\x86\xa6\x70\xb0\x59\xb4\x40\x00\x7e\x41\xc0\x1f\xfc\x47\x94\x52\x06\x59\xf8\xcb\x96\xf6\xa1\x3c\x8f\x35\x84\xd6\xcb\xf3\xab\x87\xfb\x92\xa8\xfa\xfd\xf5\x43\xb9\x40\xfa\xe0\xe7\xa5\xb2\x6a\xa5\x85\x65\x81\x37\xc1\x14\x8b\x8c\x3e\x8b\xd8\xea\x57\xa6\x71\xa2\xc9\x42\x91\x87\xdb\x8b\xad\xe4\xbb\x66\xc7\x53\x2b\xde\x76\x28\x5d\x35\xa3\x0b\x74\xf9\x34\x26\xd1\x2a\x44\xd0\xee\x74\x64\x22\x8a\xf4\x3a\x58\xcb\x9c\x45\x0b\xc3\x12\x65\x58\x58\x9f\x4e\x6c\x82\x89\xca\x55\xb6\x8c\xe6\xb5\x0c\x8d\xe1\x13\x51\x3f\xea\xab\x8f\xb3\x5d\x64\x14\x58\x51\x16\x7c\x8d\x64\xfc\x64\x1a\x5e\xe3\xa4\xd9\xa1\x2c\x49\x1b\x71\xc2\x32\xf4\x80\x6c\x0f\x21\x86\xc1\x91\xa9\xb6\x3e\xd0\xcd\xc1\x8a\xb8\xd8\x3c\xad\x92\x72\xa6\x29\xd2\x40\x93\x3a\x3c\xd3\xa0\x39\x3e\x35\x1f\x77\x44\x77\x0b\x22\xc4\x75\x5b\xc5\x52\xa2\xc1\xcd\x79\xc3\x5a\x5f\x54\xdd\x31\x5f\x56\x69\x98\xc4\x7b\x86\x76\x0d\x38\x14\xa4\xfa\xed\x05\xc2\x90\x9d\xe9\x76\x90\x42\xc6\x81\x7e\x53\xf6\xca\xef\x03\xf2\x6d\x93\xca\x50\x4a\xe1\x5d\x01\x72\xbb\x5e\x56\x5b\xb1\x0c\x6b\x02\x08\x85\x03\xb2\x29\x15\x21\x68\x4e\x3d\x5e\xf7\x20\x04\xd1\xe1\xa6\xf8\xac\xf5\xd3\xef\x0c\x58\xa8\x98\x4d\x17\x64\xa1\x1f\x0d\x45\x7b\xe0\x09\x80\xd2\x70\xc5\x0d\x5d\x9c\xad\xcd\x03\x0f\xa7\x1b\x52\xdb\x7a\x60\x44\xc5\xf8\x9c\x29\xd9\xe2\x3a\xe3\x0c\x5b\xbb\x03\x28\x51\xae\xea\x40\x53\x91\xba\xa3\x11\x0b\x82\x3f\xa4\x51\x7b\xf4\x19\x71\x85\x3e\xa0\x7a\x2c\x03\x90\x68\x48\x78\xf1\xc2\x4f\x69\x07\xaa\xe9\xe6\x6a\x5e\x2e\xd5\x51\xeb\xc7\x9e\x4e\x39\xc7\x2e\xa9\xcf\x59\x50\x6c\x4c\x5d\x68\x5f\x82\xf6\x02\x70\x7e\xdb\x31\x98\x76\xc1\x68\x81\x83\xd2\x6f\x41\x22\x78\xcc\x89\x64\x5f\x29\x9f\x36\x49\x13\x5b\x5e\x04\x57\x4d\xed\x5a\xaa\xc3\xd4\xb6\xbc\xfc\x80\xef\x00\xe9\x68\x5d\xc5\x21\x38\x56\x2b\xcd\x54\xce\x5f\x0a\x94\x10\xc6\xf5\x40\xa7\x6d\x16\xea\xcf\x19\x89\x36\x81\x63\xb9\xc1\x02\xa7\x44\x11\xb1\x2c\xb4\xa7\x5c\x98\x19\x44\x1c\xb7\x83\xb6\x5f\xb3\x8b\xa6\x6a\x45\xb5\xbc\x89\xd7\x6e\x2f\x56\xc1\xab\xf8\x59\xac\x85\x24\xa5\xa7\xf1\xa3\xb5\xa2\xaf\x39\x0b\xdb\x4f\x31\x0d\x1b\xb9\x14\xa0\xe9\x6c\x3b\xa7\xd7\x81\x15\xb9\xaf\x01\x74\x94\x42\x6f\xf6\x04\x4f\x64\xf5\x28\xdb\x80\x44\x56\xf1\xd2\x9d\xf0\x6e\x97\x2d\xe0\xd2\x51\x2b\x87\xaa\x94\x87\x00\x54\x02\x2a\x95\xc1\xd4\x68\x06\x03\x01\xa1\xa5\x29\xda\x30\x70\xa1\x59\xa8\xb8\xc2\xa0\x6b\x25\xab\x6a\xa1\xa6\xca\x72\xad\xe0\x71\xbb\x02\x4a\xe8\x25\x9a\x5d\x4b\x34\xab\x48\xb9\x14\xa9\xaa\xa9\x93\x88\x0a\x66\x8b\x2d\xa0\x6c\x93\xed\xcb\x13\x84\x3c\x1e\x7b\x45\xda\x2a\xac\x70\xf5\x53\xe6\xff\x55\xe6\xe0\x8e\xa8\x43\x52\x6d\x4a\x50\x3c\x0a\x5c\x50\xe0\x81\x4a\x42\x69\xc0\xc6\xa8\xc0\x68\x4d\x48\xa1\xb1\xf2\x9f\x5f\x19\x07\x16\x24\x0a\x2f\x78\x8e\x9e\xa9\x9c\x23\xc5\x47\x0c\x62\xee\xbc\x37\x40\x71\x64\x5e\x3c\x80\xb7\x00\x52\x40\xe6\x93\x94\x2a\x84\x83\x19\x96\x4c\x92\x07\xf6\x3c\xeb\x0f\x60\xc6\x8d\x39\xeb\x4d\x70\x37\x2b\x0e\xcd\x06\xf6\xb5\xa2\x91\x6d\xd3\xd2\x83\xf8\xe0\x97\x4d\x4c\x0f\x34\x9e\x50\xc3\x6c\x3c\x73\x7d\x66\x3a\x6a\xb6\x36\x58\x00\x4e\x40\x49\xa5\x52\x55\xee\x16\x6b\xe8\x59\x91\x95\x5e\x6c\x44\xa7\xb4\xf4\xe2\xf5\x5d\xe4\xa5\xb7\x95\xfc\x5a\x96\xa7\xe8\x3e\x69\xb1\x7f\xbb\xfc\x57\xc5\x5d\x10\x7a\x28\x29\xdd\xb4\x4a\x4a\xfb\x86\x10\x56\x04\xd7\x6f\x1e\xaa\xbd\x8e\x3a\x58\xe4\x3a\x85\x54\x14\xa4\x2e\x96\xf1\x55\x48\x95\xf3\x33\xae\x20\x3f\x25\x82\x72\xe8\xb5\x9c\xc9\x11\x6b\x96\x40\x96\xf3\xc4\x6d\xd3\x1d\x76\x8a\x24\x16\x9c\x3f\x37\x0b\x6b\xd1\xfa\xc9\x07\x8c\x19\x65\xd9\x16\x36\xaf\x8a\x98\x85\x8b\xaf\x2d\xd0\x47\x0b\x1e\x9b\x24\xef\x36\x9c\xca\xe6\xa1\xd7\x92\x11\x56\x9e\x0b\x7b\xe9\xee\x50\xb5\xab\x71\xe7\xce\xb9\x1b\x5e\x46\xb6\xdc\xd8\x05\x1f\x3b\x35\xbe\xe2\xa9\xdd\xa4\x60\x2b\x00\x74\xee\x0c\x56\xb4\x9a\xe9\xaf\x1b\x3f\x00\xef\xae\x1d\x3a\x36\x91\x2e\x1e\xec\xba\xb2\x25\xa5\x09\xdb\x42\xf8\x2f\x30\xe9\x75\x8b\xec\x06\xde\x46\x61\x23\x67\x69\x68\x37\x80\xea\xba\x36\xe0\xb0\xc2\x87\xbd\x68\x97\xb3\x98\x08\x46\xb0\x9a\xbf\x5e\xbe\xc2\xe9\xb6\xc6\xe9\x30\xc0\xfe\x45\x73\x17\x4e\x77\x52\x61\xbd\x92\x0f\xb0\x66\x2a\xc0\x1a\x71\xf5\x45\xbd\xdd\x9a\xe2\xd8\x60\x34\x0c\xe0\x5c\xd6\xa1\xd2\xad\x52\x1a\x9a\x95\xb9\x97\x49\xee\x68\xb0\xfa\xd4\xd2\x3a\xf4\x61\x0f\xab\x14\xaf\x58\x92\x2f\x22\x8b\xe2\xe5\x03\xfb\x97\xd5\x43\xce\x83\x58\x7f\x28\x4a\xad\x30\x65\x96\x7b\x2d\x0b\xef\xd7\x12\x65\x8a\x9b\x22\xfa\xf7\x3e\x57\xe4\x8b\x4f\x15\xe9\x13\x07\xfa\xc4\x81\x86\x3d\xea\x13\x07\x10\x7a\x6f\x89\x03\xcb\xcc\x9f\xde\x23\x07\x75\x2b\x4b\xc5\x62\xcc\xfe\xae\xd0\x22\x37\x0f\xe8\x77\x16\xc4\x30\x1a\xca\xfe\x62\x7f\x68\x0c\x88\xaa\x7d\x56\x9d\x6d\x68\xcd\x64\x8b\xaa\x53\x00\x8b\x38\xb1\x88\x6e\x36\x5c\xb9\x6c\x7d\x5a\x66\x28\x1d\xb1\xef\xf9\x33\x79\x22\xe2\x00\x61\x85\x52\x2e\x15\xf0\x61\x17\x1d\x03\x07\xa1\x04\x0e\x6e\xa2\x20\x30\xba\xc2\x29\x89\x4d\xed\xc0\x20\xa8\xd1\x9a\x6b\xad\xa3\xb5\x09\xb8\x14\x30\x38\xcd\x36\xb8\xa8\x89\x11\x33\x81\x86\x26\xb8\x0d\x64\x05\xea\x26\x06\x04\xf3\x3b\xef\x06\xfe\xdd\x11\xba\xd7\xf7\x13\x95\xe5\xf1\x06\x38\x66\x6d\x63\x1b\xb1\x99\xe0\x79\xe6\x2d\x68\x7c\x62\x8a\xc8\x9a\xd8\xa7\xba\x1b\x18\x06\xe3\x7c\xc0\x11\x8e\xb5\x26\xbe\x9c\x70\xde\x24\x06\x75\x23\x30\xa0\x90\x80\xf4\x31\xf4\x81\x75\x36\xd0\xdd\x78\x6f\x03\x08\x94\x65\x90\xe6\x2f\xe4\x5a\x3e\x23\x12\x6c\x42\xde\xe6\x5e\xca\xc8\x2e\x67\xfd\x37\x8e\x73\x99\x45\xd4\x7b\x2d\x9c\x65\xbf\x19\x50\xa0\xe8\xdc\x46\x7c\x99\x74\x4f\x7b\x4f\xbc\x98\xad\xb4\x73\xec\x6c\x1b\xbf\xb8\xc9\x45\xc6\x41\x12\x4b\x16\x0e\x00\xc1\x62\xa6\x65\x3c\xcb\x4d\x54\x1b\x0d\x83\x9c\x1a\x29\x9b\x4a\x75\x89\x55\x34\xd7\x9c\xbb\xc0\x0e\xdb\x51\xb4\x5f\xc1\x95\x5f\xd6\x7e\xda\x30\x83\xd3\xb0\xf7\x16\x87\x42\x07\x7b\xba\xb9\xf7\x5d\x70\xbd\x93\x24\x52\xdd\x9f\x71\xba\xd9\xd2\xd0\x81\x55\xd4\x7d\x62\x9f\xe8\x89\xae\xa2\xa2\x55\xe3\xef\x46\x5b\xe5\xda\x55\x3b\x8f\x23\xdc\x02\x8c\xe5\xcc\x42\x5f\x15\x2f\xda\x5a\xa7\x2d\xce\x7f\x41\x37\xcb\x01\xb2\x78\xf3\x4f\x5a\x1c\xf1\xf6\xd6\x14\x67\x5a\x89\x50\x5c\xdf\x92\x62\x66\xe4\x58\x13\x25\x8b\x30\xca\x05\x75\x67\xbf\x92\x5d\xdd\x4e\x1d\x60\x9f\x3c\x0e\x6b\x13\x45\x38\x28\xdb\x66\xdc\xfd\x38\x52\x39\xf6\x61\x89\x40\x13\xae\x9c\xb8\xc9\x24\x77\x6e\x75\xe1\xc4\xbb\x86\x3d\x5d\x49\xd8\x5b\xec\x32\x6e\x42\x0a\xec\x74\xd2\x28\x9b\x05\x30\x83\xcd\x36\xe2\x2e\x55\x04\x1a\xbf\xec\x56\x09\xa1\xf1\x53\x27\xfb\x6c\xf2\xed\x12\x18\xa4\x8d\x23\xb3\x4b\x51\xee\x36\x0c\xd6\x4a\x4f\x21\x00\xa4\xb5\xdf\x01\x8e\x2b\x05\x37\x3d\xb6\xd2\xd4\x7f\xf9\xbf\x4c\xd5\x29\xb3\x34\xff\x85\xb8\x18\x31\xf3\xfb\x81\xaf\xf8\xa0\x5f\x28\xa0\x54\x71\x4a\x0a\xb0\x49\x51\x86\xa5\x03\x70\x0e\x0b\x2b\x66\x60\x73\x3d\xe0\xbd\x1e\xc3\x63\x3e\x21\x82\x11\x3d\x34\x97\xc6\xef\x99\x59\x8a\x19\x9e\x01\x48\xef\x01\xc4\xc5\x81\xb8\x5a\xa8\x22\x86\xa4\x4d\xe5\x40\xe0\x56\x9a\x59\xda\x6c\xdb\xa2\x82\x2e\xf4\x69\x44\x59\x8b\x11\x5a\x04\x57\x34\x53\xff\xad\xed\x7f\x33\x89\xfd\x7e\x70\xf7\xc3\xf8\x76\x78\x77\xfd\x70\x7b\x5a\x12\xdb\x4f\x2f\x1e\xee\xee\x87\xb7\x8d\xcf\x8a\x4c\xd5\xbf\x3e\x0c\x1f\x5a\x1e\xb9\x06\x2e\x06\xdf\x0d\x4b\xe5\xa8\xff\xfa\x30\xb8\x38\xbf\xff\x79\x7c\xfd\x71\x7c\x37\xbc\xfd\xf1\xfc\x74\x38\xbe\xbb\x19\x9e\x9e\x7f\x3c\x3f\x1d\xe8\x2f\xc3\x77\x6f\x2e\x1e\x3e\x9d\x5f\x8d\x5d\xd0\x71\xf8\xe8\xa7\xeb\xdb\x1f\x3e\x5e\x5c\xff\x34\x0e\xba\xbc\xbe\xfa\x78\xfe\xa9\x69\x16\x83\xbb\xbb\xf3\x4f\x57\x97\xc3\xab\xe5\x65\xaf\x9b\x57\xa3\xb5\xa2\x6e\x70\x91\x05\x46\xa3\x40\x4c\x9a\x2c\x2c\x69\xd3\x5f\xc1\x75\x71\x63\xe8\xf1\xf0\xc0\xfd\x65\x8a\x54\x1f\x6a\x16\xe8\xbc\x62\x05\xf7\x18\x31\xef\xb6\xf4\x97\xaa\xc2\x33\xe9\x12\x8f\x4b\xa3\x3d\x41\x03\x38\x2b\xa0\x30\x94\x3a\x85\xbc\x06\x3f\x52\xe7\xe8\x06\x3a\x4c\x68\x4a\xc1\xe7\x8d\x0e\x51\x75\xc3\xcb\x0d\xda\x39\xc1\x10\xac\xd7\x2e\x5e\x76\x1a\x64\x35\xa7\x19\x28\xe5\x04\x39\x0e\x4d\x8c\x39\xc1\xa0\xb8\x2e\x18\x4e\x69\x54\x4d\xc0\x00\x20\x53\x54\x80\x76\x54\x5b\x2c\x11\x58\xb9\xe5\x39\x41\x3f\xfc\xa5\x18\x14\x78\x30\xac\xe6\x9d\xd7\x6a\xd3\xd9\x07\x22\x37\xab\xba\x8a\x3c\x4b\x3d\xb9\x63\x6e\x4d\xcb\x70\x6e\x6d\x0d\x6c\x70\x37\xe5\x2c\x00\xee\x2a\xf9\x9e\xf4\xf1\x36\x33\xaa\xd0\xf8\x09\xba\x03\xd0\x10\x59\xa8\xee\x7a\x17\xb3\x24\x9f\x51\x86\x68\x9a\x25\xa4\xa8\x9e\x3e\x21\x73\xfc\x44\xb9\x2b\x04\x61\xea\x65\xc0\x3a\x5a\xd1\x0a\x1d\xa2\xd6\x83\x72\x82\x06\x71\x2c\xcb\x0c\xae\x44\x39\x8e\x65\x1e\x96\x87\x1d\x62\x6d\xb1\xd8\xb3\xcd\x0a\x1d\x15\x47\x0e\x56\x6c\xf7\xb0\x28\x75\x76\x58\xbe\x7b\xb7\xb8\xfe\xf5\x0a\x8e\x1d\x29\x8f\x37\x12\x06\xee\xb1\x7c\x74\xac\x79\x95\x40\xe0\x00\x6a\xb6\xeb\xd1\x22\xd5\x74\xed\xd4\xaf\xec\x18\x0e\xda\x66\x7d\xb6\xe2\x2b\xaf\xe8\xd2\xcd\x38\xa9\x14\xc1\xea\xdc\x5f\xa9\x88\x56\x63\x67\x3b\xf5\xf6\x34\x4b\x63\x70\x24\xc7\x9e\xfe\xd7\x98\xc7\x0d\x7c\x7a\xed\xbf\x5c\x2a\xb2\x8d\x83\x75\x5b\xd7\x07\x54\x4b\xd1\xb5\x7e\xa0\xa5\x74\xb8\x23\xa0\xa4\xee\xc2\x20\x94\x30\xa0\x11\xb8\xfb\x30\x65\xb6\xb0\x0d\xf1\xfe\x28\x57\xca\x59\x9f\x63\x5f\x6c\x0d\x4f\xf8\x53\x49\xb9\x4c\x89\x94\xb8\x05\xae\x24\x30\x89\x6d\xc3\x18\xfc\x09\xb5\x1f\x76\xa4\x27\x77\x26\xef\xf5\x57\xcb\x8c\x3e\xb7\xa1\x66\xec\x26\xaa\x05\xd6\xd8\xc5\xd9\xa2\x6b\x93\x6d\xa7\xf9\xcb\x41\x11\x4a\xc3\x45\x10\x61\xd4\xe6\xfe\xe9\x68\x56\xab\x2e\x58\x63\xbd\xa2\xd0\x85\xb7\x7e\x04\x4e\xd0\xfa\xc6\xd8\xd2\xd6\xaf\x82\xcb\xeb\xb3\x06\xd5\x95\xfc\x9d\x61\x2d\xe7\x88\xa7\xa9\x91\x0b\x4a\xb6\xd4\x03\x84\x4d\x92\x63\x21\x4d\xc9\x3c\x9a\x1b\x2f\x93\xbe\x32\x0e\x46\xec\x39\xd8\x90\x52\x18\xf0\x20\x6c\x09\x70\x39\x3f\xeb\xe3\x46\x9f\x4a\xc1\xd5\x20\x32\x52\x88\xf4\x0d\x08\xc1\x38\x04\x8b\x42\x4c\x2b\x08\x3c\xd8\xaf\x2d\x48\x7d\x83\xaa\x7b\x95\xf5\x6d\xab\xbd\xe7\xe7\x16\x94\xbc\xdb\x42\x53\xee\x3a\x84\xa0\xea\x5e\xd3\x08\x76\x50\x74\xef\x55\x81\xb2\x7d\xb2\xa6\xc9\xed\x4d\x27\x16\xa1\x42\x4f\xd7\xad\xf6\xef\xdd\x8c\x7e\x6f\xfc\x0e\x79\x0b\xa4\x49\xd0\x9a\xc7\xca\x46\x87\x5a\x66\x75\xa9\xf6\x36\x10\x43\xa2\x43\x83\xbf\xf7\x15\xc4\x59\x0e\x6e\xce\xbf\x3a\x40\x5f\x85\xb9\x66\x5f\x6d\x74\x00\xed\xb8\x6d\xe1\x3d\xd0\xa6\x4a\x09\x07\xe5\x63\x07\x7b\x55\x39\x89\x76\xcf\xec\x41\x44\x6d\xe7\x50\x7f\x59\xfa\x06\x9c\xd3\x50\x48\xce\xf8\x6f\x7d\xb8\xb3\x75\x01\x19\x19\x97\xca\x86\xb5\x8b\x47\x6c\xb2\xa8\x3a\x79\x0e\xbc\x97\xa7\xf3\x29\xdd\xba\x38\x9a\x6e\xaf\x9e\x9c\xbc\xe3\x30\xdc\xe5\xf7\xc1\x8a\x74\xe7\x81\x89\xb8\xe6\xd3\x80\x8b\xb5\x45\x29\xf4\xf1\xeb\x4d\xb3\x2a\xd9\xcb\xdc\x62\x36\x6e\xca\x2a\xf9\xe7\xbd\x91\x5b\x87\xa0\xef\x41\xd3\x8a\xd8\x78\xff\x16\xe1\xba\xa7\xb2\x97\xa5\xb2\x5d\xe4\x3b\x94\x07\xb7\xfe\x05\x7a\x6a\xe4\xb8\xa0\x19\x67\x70\xd5\xca\x84\x67\xf0\xa5\x0a\x7a\xab\x4b\xcf\xae\xe9\xf3\x0d\xd6\x64\xb5\xd3\xf7\xce\x04\x0e\x18\xb7\x6b\x7d\xac\xd5\xa1\x0e\x94\x2d\xe7\xc3\xa9\xc9\x6d\x54\x34\x25\x07\x88\xb3\x64\x11\x04\x3b\xd8\xf3\x0a\xe4\x66\x62\x94\xe6\x84\x0a\xd7\x89\x45\x18\x5c\x2b\x19\x7e\x4d\x69\xbc\x8d\x46\xb6\x88\x34\xb9\x1a\x5c\x0e\xcf\xc6\xc3\xab\xfb\xf3\xfb\x9f\x1b\xd0\x23\xcb\x8f\x1d\x80\x64\xf0\xc2\xdd\xcf\x77\xf7\xc3\xcb\xf1\xa7\xe1\xd5\xf0\x76\x70\xbf\x02\x5c\x72\x59\x67\x6d\xc0\x85\xb9\x6c\x52\xdf\xd6\x01\x2f\x74\x66\xde\x86\xde\xeb\x10\x93\x41\x27\x94\xb4\xc0\x4c\x9a\xc4\x7f\x16\x13\x81\x62\xf2\x44\x12\x9e\x15\x66\xd5\xc6\x05\x0b\xf0\x27\x1b\xda\x5f\x86\x41\x09\x6d\x56\xd7\xf8\x04\x99\xaa\x69\x41\xe1\x58\xdf\x20\x88\x7c\x58\x10\xf6\x95\x42\xe4\x73\x96\xd0\x88\xaa\x20\x31\x90\x0b\xeb\x5e\x31\xee\x43\x88\x4e\x5d\x41\x5c\x3b\x8b\x46\xd9\xb9\xce\x1f\x7a\xd2\xeb\xda\xbe\x3f\x51\x1e\x0f\x6d\x65\x29\x9e\x1d\x28\xf6\x2d\x4e\xe3\x1a\x5c\xdb\x06\xa3\x7b\x09\xf3\x40\x3d\x43\xc7\x26\xf7\xb5\x40\xb9\x35\x0f\x72\xf5\x6d\xb8\x2c\x4e\xa6\x74\xae\x97\x07\xca\x74\xa3\xd4\x37\x0e\x77\x29\x95\xa8\xdc\x01\xee\x86\x8d\x5d\x5f\x33\x60\xa1\x56\x79\x85\x99\x98\x53\x8c\x04\x49\xb9\xd2\x0a\x98\x89\x08\x38\xd0\x42\x15\xc5\x09\xfd\x15\x10\xaa\x04\x39\x0a\x22\x28\x1c\xae\x57\xe1\x3e\xb0\xe8\x11\x47\x23\x76\x36\xbc\xb9\x1d\x9e\x6a\x86\x74\x84\x1e\x24\x80\x4f\x95\xa6\x7e\x66\xc9\xdb\x88\x63\x61\x24\x03\x65\x52\x11\xdc\x16\x0c\x46\x84\xe0\xa2\x3b\x7f\xf0\xfd\x0d\xe1\xbb\x66\xf2\x86\x67\x25\xdb\x94\x33\x00\x5c\xb5\xd6\x17\x0e\x72\x06\x76\x9e\x92\x75\x8b\x9f\x4b\x2b\x12\x82\x6f\x80\x24\x52\x5e\xf5\x17\x5c\x6d\x80\xef\xec\x3e\xbf\x52\x9f\x37\xf0\xed\xb2\x79\xde\x43\x88\x9d\x54\x05\x16\xa8\x81\x0b\xf5\xf5\x63\x2a\xf3\x6c\x15\x15\xc5\x5b\x00\x75\x54\x48\x7f\x42\x66\x98\x21\x91\x33\x56\x01\x87\x0d\x2d\x6d\xf5\xa0\x99\x75\x8f\xaa\x5e\x33\x9c\xf2\x9c\x81\xd2\x00\x61\xac\x0d\x83\x91\x19\x61\x6a\xc5\x60\xde\x0a\x86\xa5\x32\xd4\xfd\x45\x62\x69\x18\x68\x1b\x18\x4b\x93\x3f\x09\x8a\x18\xaf\x77\x2d\xbb\xa0\xbc\x92\x53\x49\x1f\x2a\x7f\x3f\x37\x6b\xd9\x58\x3e\x6e\xdd\xdd\x3d\x96\x8f\xab\xbb\x8a\x49\xf4\xb8\xee\x65\x53\xcd\xcc\x4c\x6c\x0d\xe8\x9a\xb1\x6f\xa1\x9f\xda\x22\x27\x50\xfa\x3b\x7a\x44\xdf\xdf\x5f\x5e\xa0\x29\xd5\x72\xaf\xbe\x56\xae\xb0\x96\xb1\x1f\x44\xe2\xec\xc2\xd6\xb6\x9a\x8b\xc4\xdf\xbd\xb0\xf1\x4e\x94\x0a\xa4\x04\x7d\xa3\xe1\x19\x71\xc6\x5e\x61\xb1\xf6\x2a\x45\x4e\x04\x66\x31\x4f\xcd\x3c\x8e\x65\x3e\x9d\xd2\xcf\x47\x0a\x8b\x6f\x5a\xd6\xc3\x44\x55\x8c\xff\xce\x27\x63\x3d\xa2\x2d\x2f\xe2\xa6\xe6\x90\x2d\x4d\xec\x97\xcd\xce\xec\xcc\xbc\xfb\x7f\xf9\x04\x72\xdd\x33\xc1\x01\xff\x0f\xbc\x73\x36\x52\xc1\xbe\xe2\x28\xe9\x08\xb9\x04\xaa\x12\xc4\x49\xc4\x85\x20\x36\x45\xde\x54\xe9\xcc\xb0\x50\x14\xac\xb5\x0e\x22\xa5\x84\x8d\x5f\x6c\x51\x58\x3c\x7b\x8e\x0b\x1c\xea\x09\x21\xe0\xe0\xc9\x68\xb2\x9e\xd2\x7b\x5a\xf2\x4d\x56\x4e\xa0\x8d\x3c\xb5\xa8\x99\x60\x90\x59\x29\x62\x0d\x9f\x08\x53\x3b\xd1\x4f\xa0\x89\x86\xa4\xfd\x6e\x5e\x06\x53\x2c\xf3\xfc\xac\xb8\xdc\x5c\x48\x6f\x18\xd5\xa4\x04\x86\x7b\xde\x26\x4a\x59\x97\x7a\x9b\xa3\xff\xa9\xb3\xef\x18\x5e\xad\xaf\xcb\x8a\xd0\x78\xbb\xda\x45\xd1\xec\x22\xac\xd5\x01\xfb\x6f\x08\xe3\x23\x89\xb1\x62\x04\xf0\x11\x56\x39\xad\xee\xb9\xe9\x53\xd3\x56\xa5\xcb\x95\x5b\xbe\x01\x66\x4d\xa9\x99\x4f\x04\x52\x3a\x77\x11\x88\xbe\x4e\xea\x3e\x0c\xe4\x41\x24\x10\x42\xbd\xd4\x8a\x65\x0a\x76\x6b\xce\xe7\x25\x3b\xdc\x41\x46\x37\x83\xd1\x42\x23\xc9\x04\x89\xf4\x55\x76\x82\x6e\x12\xa2\x25\xaf\x5c\x4b\x5f\x79\x92\x38\x7c\xaf\xe5\xd2\xe1\x5a\x98\x74\x2f\x3e\xaf\x40\xf7\x58\x32\x31\x87\x6f\xb7\x7c\x66\xc1\x1a\xec\x1e\x70\x21\x58\x5f\x30\x21\x83\x21\xb1\xac\x45\x02\x87\x5f\x98\xb8\x59\x30\x25\xe1\xd2\x45\x46\x7f\xd5\xec\x57\x10\x39\xe7\xad\x49\x8e\xe1\x6c\x5f\x66\x0e\x6e\x29\x5f\x70\x12\xee\x3e\x6c\x8b\xab\xee\x20\xd7\x54\xee\xc0\x92\x88\xb3\x6c\x8a\xbe\xf6\x83\x8f\xfe\xb0\x68\xab\xf6\x6e\xb5\x43\x83\x5b\xb2\x30\xb5\x85\xc8\x67\x85\xeb\xa2\x50\x66\x16\xc6\xf7\xea\x3f\x2f\x0c\xc8\x45\x4a\x00\x55\xb2\xa8\xdf\x86\xf4\x5d\xdb\xb6\xc5\x7a\x9e\xe3\x5c\xac\x05\x49\x51\x60\x96\xaf\xc3\xb9\x6d\x32\x4a\x31\x2c\xbd\x08\xcd\xec\xd2\x96\x92\x00\x31\xda\x86\x1a\xc9\x12\x0e\x9c\x25\x1b\xb3\x8c\x8d\x2a\x5e\x3b\x53\xde\xd6\xad\x06\x52\x72\x21\xca\xbc\x94\x77\xad\x44\x81\xa5\x09\xf4\xc8\x62\xeb\x23\x8b\xd9\xba\x22\x9e\xf6\x00\x07\x50\x09\x48\xfc\x2f\x1c\x68\x55\xc1\xc1\x1a\xbd\x57\x65\x3e\x95\x76\xa7\x53\x9a\x53\xe9\x0b\xcd\x4b\xce\xb6\xf4\xc0\xe9\xc9\x2c\xc6\x90\x38\xba\x4d\x14\x4e\x69\xfe\xc6\x7b\x00\x6d\x92\x18\x19\xf4\x02\x83\x7b\x6c\xd7\xce\x7b\x4e\x32\x2c\x08\x53\x23\x76\xab\x47\x61\xbe\x28\x22\x31\x5c\x1c\x8e\xc3\xa2\x87\xea\xaf\x53\x84\xed\x57\xb0\xe8\x6d\x81\x70\x72\x6c\x5e\x02\xd5\xf4\x05\x93\xec\xbf\x33\xef\x18\xcc\x03\x8b\xf9\xa3\xa7\x4a\xa7\x85\x1a\xaf\x05\xc8\x68\x4e\x01\x72\x20\x26\xd2\x5e\x48\x54\x59\x4c\x09\x2f\x7e\xe7\xc4\xa1\x2f\xc3\x67\x9e\x7f\x35\x31\x6c\x67\x28\x60\xce\x40\x27\x47\x2c\xe8\x63\x09\x58\xa7\x51\xd6\x37\x54\x25\x60\x9f\x69\xec\x1d\x5f\xf0\x4f\xb3\x43\x5c\xd0\x19\x65\x41\xc9\x24\x3b\xbd\x14\x67\x60\xde\x35\x67\x90\x4f\xfd\x9d\x76\x6f\xb3\x0c\x8e\x60\xc4\xff\xf3\xdf\x7f\x3b\xa2\x6d\xde\x0f\x39\xb6\x2b\xb0\x0f\x3b\xb9\xde\xb6\x84\x3b\x1f\xa0\x88\xb4\xa0\x53\x04\x3a\xad\x2c\x65\x4e\x14\xbf\xda\xcb\x4d\x13\x0d\x57\x73\xe3\xee\x2d\x93\x3b\xf8\x46\x44\xbe\xbc\x8a\x40\xc0\xe2\x8a\x80\x80\xc2\xeb\x1b\x04\xdd\xba\x1a\x11\x26\x58\x52\xb7\x5f\xb9\x50\x2a\x0c\x2a\x00\xf3\xdb\x26\x38\x71\x8e\xe5\xcb\x45\xa0\x34\xd6\x36\x32\x46\xe3\xf0\x8e\x5c\x15\x8b\x62\x06\x69\x92\x1a\xf5\xae\xe4\x92\x08\x73\xa0\x3d\xea\x93\x25\x9e\x10\xaa\x10\x42\x11\x57\xb8\xd4\x48\x8a\xe9\x5a\x61\xf3\xfa\xfd\x66\x20\xc5\x92\x4d\x1d\xcf\x88\x18\xc7\x79\x29\x46\x7a\x55\xdb\x37\xfa\xa3\xb3\x5c\x2d\x56\xb7\x2f\x13\x5c\xaf\xed\xb2\x0c\xbc\x52\xbf\xdf\xd2\xec\x6a\xc1\x30\x88\x64\x29\x0b\x87\x2d\xd0\x90\xa4\x02\x0d\x69\x43\x2b\x4b\x96\x00\xb8\x68\x18\xd4\xd5\x0f\x14\x06\x7b\x13\x19\x00\x6b\x18\x39\x9a\xe4\x85\xe5\xc4\x97\x04\x88\x8f\x46\xec\xa3\xa9\xa9\x01\xca\x8c\x19\x40\x04\x79\x2d\xe4\x73\xc6\x25\x29\x25\x5a\x35\xc0\xfc\xdb\x44\x49\x3b\x8c\x66\x99\xb4\xf8\x68\x7b\x91\xf4\xcd\x41\x3e\xeb\x1b\x5e\x9f\x72\x33\x05\x6e\x25\xf5\x44\x34\xa3\x9a\x76\xc6\x8d\x27\x6d\xfd\xa9\x77\xad\x12\x53\x84\x2e\x01\xdc\x93\x4a\x16\x07\xc8\x4f\xaf\x42\x10\x09\x79\x22\x60\x35\x86\x31\x86\xc5\x1c\xca\xe6\xab\x16\x76\xb2\xea\x00\x15\x59\x8e\xc0\x16\x50\x5c\x1d\x41\x39\x17\xac\x89\x16\xcb\x59\x2e\x5b\x27\x64\x35\xc5\x5f\xac\x21\x85\x0e\xc2\xa2\x16\x0b\xa2\x10\xf9\xac\x88\x2d\x7b\x79\xef\x52\xe6\xea\x51\xf6\xa8\x39\xeb\xa7\x5d\x44\xda\x3d\x55\xd4\x26\x62\x13\xa5\x5d\x4e\x60\xec\xee\x7d\x9b\x23\x37\xc7\x2c\xb6\x89\x9f\x56\x96\xd6\x32\x05\xcc\xce\xd8\x96\x7c\x48\xbc\x4d\x5f\x0c\xd0\xc0\x4d\x9b\x06\xb6\x1c\x2e\x32\xa7\x17\x69\xc9\x1c\xa2\x08\xb8\xd0\x02\x6a\xce\x14\x4d\x34\x71\xd8\x31\x68\xad\x39\x67\x1e\x8f\x0f\x02\xb8\xdb\x20\xdf\xa8\x94\x94\xcd\xc6\x76\x25\x5d\x0e\x63\xb7\x8b\xa1\x4c\x53\x97\xa6\x29\xf3\xe3\x77\xae\xa1\xe5\xb6\x63\x43\xd6\x00\xc7\xe5\xb2\x27\x41\xb0\x66\xdc\x4d\xc6\xe2\xa8\xb9\xa4\xcb\x31\x8d\xcd\x52\x50\x53\x5d\x19\x26\xba\x8e\x79\x19\xc4\xba\x3a\x5c\x41\x71\x85\x48\x9b\x11\x69\xf2\x9c\x20\x20\x5d\xb5\xa4\x7c\xca\xd6\x54\xcf\x73\xe6\x45\x34\x5b\xdb\xc9\x27\xb4\x57\xb2\x46\xb1\xeb\xce\x46\xdd\xe3\x24\x99\xe0\xe8\xd1\x2b\x1b\x5e\xe5\xe6\xc2\x61\xe3\x6b\x01\x15\x8a\x7f\x19\xe2\xd2\x03\x8d\x40\xba\x09\x9d\x62\x06\xb0\xc6\x0e\xbb\xe8\xdc\xac\x9a\x45\x02\x33\x08\x45\x66\xf4\x26\x84\x3f\x26\x59\xc2\x17\x69\xcb\x7d\x56\xcd\x94\xdb\x26\x20\xa5\x2d\x51\x6f\xa7\x57\x59\x85\xe9\xad\x7d\x99\xd5\xd2\x6e\x76\x00\x9f\xb4\x06\x97\xfc\x94\xf0\x09\x58\x0e\xad\x96\xed\x52\x49\x82\x8c\x86\xea\x79\x5e\x37\xc1\xa5\x7a\x22\xa9\xcc\x12\xbc\x58\xd6\x83\x49\xad\x78\xd9\x7d\x33\xa9\xf8\xab\x8d\x60\xdd\x83\x92\x1b\x3f\x7f\x09\xa0\xde\x0b\x27\x09\x98\x77\x0d\xff\xaa\x18\x93\x4c\x4e\xdb\x91\xf1\xc5\x2a\x3e\x62\x0a\xcf\xdc\xe6\x5a\xe1\x92\x3f\x33\x22\xe4\x9c\x66\xa5\xa2\x80\x5b\x47\x41\x5b\x8a\xb6\xff\x31\x31\xbf\x6b\xf0\x4e\x9e\x1d\x1a\x20\x0e\x4d\x1f\x32\xc3\x51\x61\xfc\x8b\x12\x2c\x25\x9d\x2e\x02\xfc\x0c\x1f\x50\x0a\x59\x4a\x65\x6d\x39\xa8\xc3\xd5\xc4\x68\xcc\xf8\x76\x93\x40\xbe\x7d\xf2\xdc\x43\xf9\xf8\xd1\x38\x04\x2a\xd3\xf7\x49\x1d\x2c\xc5\xdd\xd4\x16\x34\xa5\x15\x70\xd5\x64\xca\x6f\x96\xf0\xbd\x14\xe3\xa6\xdd\x8c\x50\x08\x93\x76\xd8\x56\x91\xf1\xb8\x16\x21\xe6\x8b\x2a\x65\x0c\xc2\xe6\x6b\xc5\xc9\x99\x3f\x35\x71\x7a\x4c\x0c\x80\x0e\x28\x3e\x3e\x40\x72\x2b\x2c\xa9\x2e\x74\x71\x46\x12\xb2\x93\xc0\xe2\x0d\x88\xa4\xea\xb5\x0f\xc8\x63\x29\x69\x14\x58\xfa\xab\x8d\x0b\x1b\xc4\x3b\xb7\x20\xd2\x34\x0f\xfd\x27\x33\x50\x1b\xf2\xdc\xb4\x8b\x60\xff\x82\x55\xee\xaa\xbb\x34\x41\xdb\x99\x16\x2c\xc9\x15\xdd\x94\xe8\xaa\xe8\xd4\xcb\x2b\xfb\x48\x6a\x6f\x1c\x19\x5c\x1b\xd7\x27\xd2\x25\x8a\x61\xe5\x01\xd8\x88\x03\xd5\xf9\x74\x37\xba\xb0\x7e\x42\xc5\xd1\x8c\x28\x53\xe2\xde\xd7\xf1\x7f\x4f\x34\xb1\xb3\xbc\x86\x1d\xad\x7e\xf3\x21\x5f\xef\xd4\xde\x11\x25\xdd\x95\x50\x43\x0b\xb4\x9b\xb3\x87\x5b\xb0\x1f\xc7\xd2\x08\xae\x5f\xbc\xdc\xb2\x35\x16\x80\x1d\x99\xcd\x88\xff\x0d\x09\x54\x66\x8e\xb1\xfd\xc2\x67\xbf\x97\x70\x9f\x70\x09\x2b\xcf\xac\xd1\xdb\x73\xbd\x2a\x69\x7f\xe9\xa2\xd7\xfa\x34\x5e\x1d\x55\x41\xdd\xbd\x3c\xb8\x9e\x3c\xe8\xb0\x24\xf7\xf0\xf2\x6f\x3b\x06\xfb\x79\xff\xec\x81\x70\x58\xbb\x12\x77\x27\x22\xbe\x23\x32\xd9\x0b\x49\xb1\xb6\x15\xaf\x25\x2f\x1e\x3a\x30\x9f\x02\x1a\x67\x7f\xb7\x68\x3f\x4e\xf2\xad\x75\x03\xbd\xdc\x05\xbb\x9a\x5e\x76\x42\x1f\x80\x6b\x89\x21\xfd\x37\xb7\x85\x32\xe0\xf0\x06\x21\x63\x35\xdf\xc3\x8a\x60\x3c\x3b\xbc\x4e\x61\x78\xb5\xe5\x7c\x89\xed\xb5\xb9\x5e\x9d\x37\xf7\x25\x49\x6d\xdd\xb1\xec\x42\x47\x79\x61\x2f\x8e\xa5\xc6\xe0\x83\x3e\x26\xb6\xdb\x2d\xda\x80\x20\xe3\xb6\x6c\x97\x87\xac\xa9\xba\xd9\xf6\xd9\xea\x2e\x95\x6d\x9c\x09\x32\xa5\x9f\x37\x12\xc5\x6f\xe0\x53\xab\x5e\xea\x65\xae\xd4\x4b\x03\xf7\x0c\xd4\x57\x0b\xe2\xf6\xec\x4a\xdb\x9a\x4a\x23\x56\x24\x00\xda\xec\xbf\x47\xb2\x40\x5c\x94\x7e\xda\x14\xeb\x70\xf7\xb5\xdd\xcc\xbe\xce\x95\xca\xe4\xc9\xf1\xf1\x8c\xaa\x79\x3e\x39\x8a\x78\x6a\xc2\xcd\xb9\x98\x99\x3f\x8e\xa9\x94\x39\x91\xc7\x7f\xfc\xc3\x1f\x8a\x2d\x9e\xe0\xe8\x71\x66\xd0\x63\xea\x7e\xa7\xf2\x96\x13\x2c\xb7\x8b\xec\x71\x99\x5a\x2f\x9c\xb1\x1b\x74\xe3\x72\x24\xf5\x37\x52\xe1\x34\x0b\xa3\x47\x4d\x75\x34\xa9\x70\x51\x93\x01\xd2\xef\xf4\x34\xd1\x1c\x67\x19\x61\xed\x66\x07\x93\x4f\xb9\x05\xeb\x71\x19\x99\x76\x84\xe4\x73\x96\x60\x56\x46\x19\x80\x02\x43\x82\x44\x84\x29\x9b\x01\x5f\xd4\x4b\x06\x6a\x34\x48\x37\x86\xff\xaf\x97\x71\x07\x73\xa4\xb2\xa8\x1c\xe6\x86\x63\xab\x78\xba\xda\x8e\x38\x58\xba\x6a\xe5\xd4\x62\xed\x88\x5b\xb5\x65\xb9\x78\x77\xf5\xfa\xd9\xeb\x57\x6e\x11\x9c\x8d\xc9\x67\xcd\xe4\xe4\xa6\xb8\x54\x0f\x92\x48\x34\xf8\xe9\x0e\xc9\x05\x53\xf8\xf3\x09\xba\xa4\x0c\x04\xd8\xef\x79\x2e\x24\x3a\xc3\x8b\x43\x3e\x3d\x4c\x39\x53\x73\x74\x09\xff\x6b\x7f\x7a\x26\xe4\x11\xfd\x4c\xb0\xb0\xfc\xc1\x56\x5e\xf3\x45\xbc\x35\x09\x89\x9c\x49\x44\x9e\xf4\x09\xfd\xc3\x7f\xa2\xd4\xb4\x7c\x82\xbe\x3d\xfe\xc3\x7f\xa2\xdf\xc1\xff\xff\xff\xd1\xef\x5a\x34\xfd\xf5\x90\xad\xa0\x3e\xef\x6d\xd9\x9d\x7b\x50\x59\xa9\x0d\x4a\x96\x9f\x0a\x5e\xec\x54\x63\xcb\x8f\x34\x7a\xe4\xd3\xe9\x58\x13\x86\xc9\x57\x1b\x63\x51\x43\x45\xde\x10\x26\x94\xda\x02\xcb\xa6\x60\x5b\x51\x2a\xc5\x76\x6a\x80\x0d\x1c\xbb\x96\x79\x51\x60\x16\x82\x88\x4a\x45\x7b\xa9\x84\xaf\x48\xac\xb9\xea\x3a\xa7\xc3\x59\xf7\x5c\x8e\xb3\xb3\xe0\x84\x40\x20\x61\xd1\x70\x1f\xf8\x17\x46\xb1\x9a\x40\x1f\xbb\x90\x8d\xc7\xa1\x16\x5e\xfb\xc5\xc4\x4c\xc2\xd4\xde\x2a\x5e\x52\xd6\x3a\x5f\x1d\x2a\x79\xc7\xc5\x56\xfa\xd6\x23\xa9\xc5\x6c\x77\x2c\x0b\xe4\x4a\xd5\x86\xe5\xeb\x21\x11\x9a\x0b\x0f\xd7\x6b\xec\x22\xb6\x78\xe0\x6a\x2b\x26\x15\x26\xb8\xac\xdb\xa1\xd7\x53\x3f\xf3\x9f\xac\x1a\x26\x44\x9a\xb9\xb7\x8b\xb2\x68\x30\x5a\x2d\x22\x69\x96\xd8\x30\xe2\x06\x4c\xbf\x55\x1b\x7a\xe7\x61\x1c\xa0\x71\x08\x7b\x84\x94\x0f\xe6\x24\x5b\x9b\x27\xdf\xbc\x9f\xb9\x88\xc8\x29\xdf\x2e\xec\x35\xa1\xac\x16\x2f\xdf\xbd\xe2\x8e\x5f\xbd\x0b\x5b\x5b\xc9\xc1\xde\xf2\xb8\x50\x16\x8c\x5b\xc0\x16\x5b\x08\xf0\x36\xcb\xb3\x01\xdc\xb6\x5d\x40\x3a\xd6\x4a\x00\x6c\xc1\xb5\x8d\xe1\xb8\x60\x78\xae\x82\x44\xa5\x70\x84\xc0\x9a\x17\x2e\x89\x5d\x83\xa0\xa2\xad\xc7\x11\x14\x43\x29\x22\x95\x2a\x45\xc7\xb1\xa9\x08\x22\x36\x84\xe4\x34\x75\x89\x0e\x90\xc0\x10\x94\xa9\xe6\xba\x3d\x49\xc4\xe1\x14\x47\x94\xcd\x0e\x02\x34\x46\x40\x46\x08\xaf\x83\x26\x22\xbd\xc7\xf2\x71\xb7\x81\x86\x5b\xd7\x69\xa4\x71\x51\x2b\xcc\xe2\xa7\x18\xc7\x06\xad\x41\xd1\x29\x2c\x1f\xdb\x00\x84\x6a\xe8\x65\x4b\x46\xe7\x97\xc2\x61\x9e\x2d\x1b\x9f\xcb\xb4\x26\xa1\x3e\x05\xa5\x09\x5c\xe5\x60\x8b\x65\xe8\x12\xdb\xb0\x07\x1b\xa9\x82\x78\x2e\x19\xbf\x9c\x73\xa1\xc6\x1b\xc2\x9f\x56\xb3\xc5\x19\x39\x4c\x00\xb7\x84\x3f\x11\xf1\x44\xc9\x73\x19\x45\x74\x1d\x5a\x34\x46\xb3\x20\xaa\x0e\x60\x26\xd3\x8c\x43\x0a\xcd\x14\xa5\x98\x2d\x0c\xa3\xd4\xcc\x05\xcb\x47\xe9\xeb\x95\x22\x99\xe2\x24\x39\x40\x82\xe4\xd2\xd4\xf1\x95\x24\x99\x1e\xba\x8a\x0f\x31\x4a\xf8\x8c\x46\x38\x41\x93\x84\x47\x8f\x72\xc4\xb4\xa0\xc0\x66\x86\x49\x65\x82\x47\x44\xca\x40\xb2\x2a\x92\xb6\x6d\x2a\x1d\x14\x2b\x55\x44\xa4\x94\x51\xa9\x68\xe4\x44\xa6\x02\x7b\xc1\x94\xcc\x8e\x30\x98\x84\x21\x31\x11\x86\xab\x25\x3d\x62\x30\x28\x73\x66\x6b\x03\xc1\x75\x6d\xa1\xe5\x5c\x90\x78\xdb\x01\xda\x01\x52\x9e\xa3\x90\xb1\x2a\x1f\xc8\x15\x47\xea\xd4\x7e\x06\xc7\x78\x19\x09\xdc\x96\x4f\x94\x27\x48\x7f\xd2\x4a\xe8\x3d\x10\x53\xee\x43\xe0\x4b\x92\x8b\x8f\x0c\xdf\x33\xe0\x2e\x18\x72\x0b\x5c\xd7\x2a\x9a\xd6\xab\x08\x22\x0f\x94\xa3\xaa\x7a\xcd\x29\x8b\x92\x3c\xf6\x05\x09\xb5\x08\xf0\xa4\x89\xc4\x2d\x8f\x5e\x7b\x2d\x28\x1c\x20\x2c\xd1\x33\x49\x12\xfd\x5f\x13\x01\x7f\xe8\xeb\x03\x68\x96\x6c\x6a\x38\x40\x27\x8e\x4b\xb7\x51\xd4\xde\x81\x30\xde\x60\x35\x37\xa9\xed\x29\x57\xa6\x16\xa4\x01\x61\x74\xf6\x2d\x83\xda\x37\x49\xf8\x04\x4e\x3a\xe0\x33\xba\xd4\xd8\x20\xad\x2e\x8f\x22\x42\x62\x12\xa3\xaf\x83\x83\xeb\x61\x17\xbe\x69\x46\x0b\x2c\xad\xc8\x1e\x60\x33\x56\x0d\x6b\xad\x08\x8d\xe5\x72\x66\x47\xe8\xa6\x82\x3f\x12\x96\x29\xc7\x55\x34\xaa\x83\xda\x16\xbe\x0d\x9e\x63\x65\x12\x2f\xb7\x43\x6b\xe2\x39\x96\xfa\xdc\x01\x9e\x63\x65\x9e\x2d\xb1\xfb\x7c\xf6\xa2\x39\xc7\x7a\x52\x17\xbc\x7b\x22\x98\xc1\xc1\x32\x77\x67\x89\x04\xdd\x81\x5c\x34\x11\xe2\x7e\x61\x55\x56\x8a\xfe\xbd\x2d\x56\x65\x65\x30\xfb\x8c\x55\x59\x19\xea\xfe\x62\x55\x36\x0c\xb4\x03\x56\xa5\x71\xee\x8f\x35\x51\x77\x63\x0a\x90\xd8\x32\xc9\xa7\x77\x90\xea\xbd\x74\x8c\xa7\x26\x70\xc0\x5c\x63\xee\x8e\xb6\xd0\xcd\x30\x5a\x9b\x03\xd9\x16\x0e\x55\x71\x42\xac\x4b\x7b\xde\xfb\x46\xa5\xd1\xd0\xd6\x33\xbb\x1f\x84\xd6\x6e\xb0\x43\x46\x38\xb3\x39\xe5\x6d\x15\x55\xf6\x27\x7b\x76\x3d\x18\x50\x80\xd8\x2b\xb1\xfa\x4e\x00\x59\x97\x95\xa2\x04\x73\xfe\x6c\x0b\x03\x01\xf9\x19\x62\x6c\x25\x3d\xe8\x74\x6c\x95\xb5\xb6\x15\xa3\x4c\x91\x59\x55\x97\x2d\x0e\x0b\x65\xea\x4f\x7f\x5c\xc9\x81\x0c\x82\xa0\x53\x0b\x83\xd2\x00\xde\xc9\x61\x9f\x91\x18\x45\x73\xad\x0d\x49\xad\xb6\xe8\xe9\x98\x1b\x55\xa2\x14\x53\xa7\x40\xe5\xd2\xb8\x94\xa8\x1c\xb1\x12\xe4\xe6\x11\xfa\x08\xf5\x4e\x71\x9a\x69\xbd\xcb\xcf\x8f\x6a\x0a\x1a\xe5\xdf\x7e\xfb\x27\x82\xbe\x45\x29\xc1\xac\xa4\xbb\x82\xba\xa4\xaf\x3c\x80\xa8\x53\x73\x32\x62\x8d\x5b\x81\x86\x9f\x4d\x09\x25\x17\xe7\x77\xce\xa6\xdc\xe9\xc2\x50\xc7\x0f\x47\x73\x24\xf3\x89\x29\x44\x1b\xd8\x2e\x9c\x00\x7d\xc1\x67\xe0\xa0\x86\x9b\xd8\x0d\x7a\xd9\xe9\x7b\x59\xdf\xbf\x75\x33\x76\xbd\x85\x07\x70\x7f\x1c\x4a\x52\x82\x2e\x6a\x70\x96\x19\x8e\x17\x1e\x78\x69\x70\x4f\x0f\x8c\xef\x40\xeb\x65\xd8\x5a\xf4\xb5\x0c\x0d\x61\xbc\xe0\x1d\xcb\x13\x2c\xec\x91\x1f\x31\xad\x60\x08\xf2\x44\x79\x2e\x93\x05\x8a\x39\x23\x07\x40\x09\x79\x34\x37\x0e\x55\xad\xab\x60\x5b\x8f\xe1\x89\xca\x5c\x2b\xb2\xd0\x96\x2b\xff\x20\x15\x36\x90\x4b\x73\x0a\xfd\x68\xb5\x9b\xc0\x57\x61\x76\x1c\xea\xa6\x3d\x85\xa8\xa8\x15\x5e\xdf\x11\x15\xb5\x44\x55\x3d\x2a\x6a\x33\xe3\xdb\x5b\x54\xd4\xca\x9e\x77\x43\x45\x6d\xda\xf2\x0d\x50\x51\x4b\xcd\x7c\x31\xa8\xa8\x95\x15\xfd\x62\x50\x51\x2b\xf3\xea\x51\x51\xbf\x3c\x54\xd4\x2d\x71\x3f\x9b\x79\xb1\xc1\x55\x52\x94\x2d\xd6\x26\xb2\xaf\x24\x3a\xbf\xd6\x04\x16\x3d\x96\x83\xd9\xfc\x75\xb5\x3d\xd6\x68\x33\x13\x5a\x0f\x6b\xb4\x51\x45\x6f\x67\x75\xdb\x02\x3b\x81\x42\xf0\xca\x58\xa3\xa5\x09\xf4\x71\x95\xeb\xc7\x55\x36\x12\x9f\xed\x5b\x0f\xcf\x05\x5b\x56\x2f\xe4\x8e\x68\xa3\xa5\xfd\xe9\x14\x81\x09\xa2\xfb\x0e\x28\xf1\x65\xa5\xf9\xfb\xd2\x21\x5f\x29\xcb\x87\xab\x28\x2d\xee\xb1\x96\xf0\x1c\x4a\x9c\x51\xbe\x43\xbf\x7f\x4f\xb9\x1b\x44\x04\x57\x96\xd7\xfb\x53\x0c\x2d\x76\x20\xd5\xce\x14\xea\xb4\xd2\xdd\x24\xc8\xba\xa4\xc9\x35\x5d\xcb\x6e\x10\x77\x19\x89\x5a\x6c\xcb\x34\xa5\xbb\x6a\x76\xd5\x45\xe6\x31\xb0\x40\x21\xaf\xe5\x83\xea\xeb\xc9\x0c\xc7\xc8\xf8\x95\x34\x58\x00\xe8\x30\x5f\xce\xa8\x54\xa2\x35\xa6\xa9\x36\xc2\x6d\x5c\xa4\x59\xde\x39\x10\x26\x58\xd5\xd9\x66\x9f\xa5\x24\xe5\x62\x55\x40\x55\xe3\x97\xb6\x92\xcb\x26\x9f\x92\x6c\x4e\x52\x2d\xc9\x8c\xd7\x6d\xa4\xeb\x7e\xfb\x64\x61\x9b\xb3\x66\x02\x1c\x4b\x44\x10\x38\x40\xf5\xbb\xb1\x41\xa2\xec\xbc\xdd\xdb\x6e\xb3\xc5\xca\x5c\xd3\x11\xe4\xb0\x82\x97\x1b\xdc\xec\x4b\x25\x37\x37\xd0\x77\x63\x2c\x87\x0f\xa5\x59\x1d\xad\xb1\x24\x4e\x63\x19\xde\x54\xf1\x95\xad\x73\xbc\x86\x0b\xbf\xec\x95\xd7\x9c\x30\x2c\x72\xbb\x7e\x60\x47\x0b\x5a\x6a\x7d\x79\x20\x22\x47\x12\x71\x18\x6a\x06\xa5\xc1\xd4\xd7\xab\x44\x25\x4e\xa3\xdc\x82\x48\x72\xd1\x1a\x5d\xda\xc5\x90\x1d\xa9\x1c\x27\xa0\x49\x84\xc5\x19\xab\x9b\x3a\x59\x34\xa4\x3b\x76\xf3\x94\x50\xa6\xfe\xfc\x1f\x6b\xed\xa6\x56\xad\xec\xba\x41\x41\x29\x1c\x45\x44\x1a\xdb\xba\x8d\x3e\xc6\x13\xfe\x04\xb5\xa4\xb6\xd9\x55\x7d\x94\xf5\xbc\x35\x83\xf7\x10\xc4\x71\x41\xea\x46\x5c\x98\x0b\x9e\xcf\xe6\xce\x86\xa4\xcf\x8c\x9e\x5a\xd3\x5e\xfe\x58\xb3\x91\xaf\xbd\x97\xdf\xe5\x34\xd9\xcc\x42\x77\x57\xaa\xb2\xf5\xe9\xfc\x1e\xc9\xb9\x3f\xad\x13\x68\xb6\x71\x63\xeb\x83\xee\xde\xa7\xfd\xd6\xfb\x69\xa0\x9b\x03\x07\xbb\x39\xe5\x49\x02\x9e\x06\x49\xd2\xa7\xb0\x38\x7e\xd8\x3d\x4c\xf8\x9e\xae\x87\x98\xe7\x07\x00\x5f\x17\x09\x11\x9d\xe4\xaf\x1b\x23\x1a\x4a\xe4\x46\x5f\x0d\x56\x30\x21\x6a\x9c\x11\xd6\x64\x63\xfb\xa9\x5e\xe0\xe4\x9d\x05\x0a\xba\xa8\xb1\x9d\x05\x0b\xba\x25\x79\xe5\x80\xc1\x15\xf3\xd8\xd7\xa0\xc1\x0a\xb3\xf3\x31\x7c\xc5\x35\xe3\x02\x86\x8c\xe2\x33\xd0\x4b\x3c\x62\x83\x52\x1e\x85\x2b\x04\x3d\x59\x14\x81\xd8\x46\x87\x08\x99\x19\x94\x91\xb0\x86\x15\x70\xa3\xe9\xbf\x40\xd3\x31\xa0\xb5\x26\x94\xd0\x85\x0b\x42\x14\x39\x89\x0f\x71\xb4\x88\x12\x1a\x05\x3a\xf3\x4c\xe0\x6c\xde\xc4\xf1\xdc\xce\xf7\x68\x3b\x6f\x85\xb6\xd3\x56\x6f\x69\x9d\x78\x6d\x47\x57\x0c\xa7\xa4\x47\x01\x6a\x42\x01\x3a\xf0\x38\x17\xac\xa8\x1c\xf5\x86\xf0\x09\xf5\x73\xd7\x43\x01\xbd\x01\x14\xd0\x26\x87\xaf\xc0\xf9\x29\x1d\xbb\x1e\x9e\xe8\x43\x27\x78\x22\x7f\x09\xee\x15\xe2\x4c\xfb\x79\x7c\x63\x24\x93\xfa\xc0\xde\x12\x8e\xa8\x41\x5c\x58\x47\x6e\x5a\x86\x47\xb4\x8c\x2e\x3a\xad\xcb\xdb\xa2\x03\xad\xb7\x32\x6b\x01\xff\x34\xde\x5d\x7b\x02\x03\xd4\xbe\x0d\x7b\x72\x6e\x76\x99\xcd\xb2\x5e\x69\xcc\x30\xa3\x65\x1d\x05\x6b\xbd\xe4\x16\x4f\x0f\xef\x2b\xc1\xa5\xa8\x21\xb6\x59\x92\xcb\xc0\xf9\xa0\x89\x40\x73\x9e\xc4\x0e\x7c\xc2\xaf\x96\xef\xc0\x67\x00\xf8\x05\x72\x9b\x01\xb5\xbc\x41\xdb\x2a\x0a\x81\x2d\x4b\x65\xf1\x9b\x08\xc3\xdd\x01\xa3\xd9\x85\x15\xc1\x73\x92\x4d\xec\x07\x2b\x65\x11\x59\x36\x7f\x2f\x19\x63\x69\x85\xc0\x6a\xde\x3c\xcc\x95\x76\xdf\x15\x83\x5b\x26\x7a\x04\xc6\x41\xd1\x54\xc9\xd2\xd0\x19\x3c\x7d\xa2\xce\x10\x81\xc3\x1e\x97\x7a\xe9\xdc\xec\x3a\x79\xea\xaa\xc4\xb2\x41\x30\x58\xad\x62\xdb\xf6\xa0\x40\x29\xfe\x3c\xce\xb0\xc0\x49\x42\x12\x2a\xd3\x17\x0b\x06\x3e\x2d\xbb\x6b\xf5\x59\x15\xdc\x98\x88\x58\x9e\x4e\x0c\x29\xba\x81\xd8\x3a\x91\x8a\x23\x91\xb3\x10\xd2\xec\xb9\x56\x4c\x3f\x87\x7b\x01\xac\x4a\xd1\x1c\x8a\x92\x4e\x31\x15\x8c\xc8\xd6\x12\x90\x24\xca\x05\x55\x8b\xb1\xad\xa8\xd9\xfd\xc0\xdd\xd9\x2f\x4f\xed\x87\xcb\x3d\xdc\x2e\x9b\xdf\xf5\xe7\x2b\x78\x66\x44\x40\x79\x20\x57\xe8\x26\xa8\x1a\x6a\xd1\x1a\x88\xaf\x31\x04\xe1\xcf\xb5\x6b\xbb\x2d\x70\x18\x3f\x8f\x83\x4c\xaa\x71\x54\x25\x8e\x55\x87\xb5\x09\x6f\x6a\xd9\x24\x5f\x18\x71\xa9\xc5\x8b\xfc\x02\xd5\x45\x6c\xba\x84\x69\x5a\x0f\x38\x70\x05\x83\xbd\xb2\xd8\x98\x20\xd5\xdd\x2a\x55\x2d\xe3\xb4\x18\x3f\x4d\xc1\x47\x4b\x06\x3b\x08\xbe\xea\x30\xe2\xa0\x93\x1d\x0d\x5b\x1f\x74\x21\xf2\x4c\xd1\x49\x1d\xd2\x46\xed\xae\xda\xe8\x20\x81\xf4\x6a\xe7\x66\x28\x75\x6b\x4a\x90\x96\x38\xb1\x9d\x9d\x96\xff\x2d\x7e\x98\x43\x06\x32\xc8\x4a\x61\xfe\xde\x75\x4a\x95\x72\x89\x02\xc6\x00\xad\xa9\xb3\x6c\x9b\xfd\xca\x85\x7b\x60\x28\x64\x6a\x4c\x44\x47\x23\x36\x90\xe8\x99\x20\x46\x2c\x74\x44\x43\x89\x52\x6f\xd5\x86\x9a\x4f\x13\xa2\x7b\xf2\xb1\x29\x5a\x78\xa0\x4a\xfa\xb2\x63\xa6\x8f\x29\x4e\x24\x39\xd0\x0d\x43\xb5\x52\xc5\x21\xf8\x13\xa3\x67\x81\xb3\x8c\x88\x11\xb3\x59\x1c\xe0\x70\xe1\x3c\x31\xed\xb7\x85\xb8\xda\x35\x20\xe3\x08\x47\xf3\x57\xda\x23\x0c\x49\x38\xd1\x9c\xc4\x2e\x4f\xb8\xbc\x3d\x6e\xde\xc6\x60\xbd\xc6\x66\x9d\x4f\x5d\xd9\xac\x03\xdb\x49\x12\x69\x8e\xe2\xab\x28\x67\x44\xe8\x51\x6b\x1a\x7e\x22\x0c\xd1\xa9\x1b\x87\x8d\xdd\x41\xcf\xe0\x99\xd2\xa4\xff\x84\x69\x62\x12\xef\x5d\xd7\x4e\x08\x34\xe6\xf7\x11\x33\xee\x6e\x16\x95\x32\x53\x29\xa3\x72\xae\x39\x75\x0e\x3e\x49\x50\x33\xda\x12\x67\xd8\xd3\x3a\xa7\x79\xa8\x5f\x5f\xce\x41\x9f\xa8\xe0\x2c\x85\x24\x19\x8b\xc7\xe4\x96\x4f\x12\xe5\x8f\x47\x63\x6a\xe3\x4a\x89\x38\x8e\x65\xd9\xf8\x69\xd4\x4a\xfa\x6b\xc9\xec\x72\x58\xca\x06\x8c\x02\x38\x21\x08\xe2\x74\x15\xc5\x96\xc9\xbf\x7d\x6a\x43\x3d\xb5\xa1\x79\x6d\xf6\x31\xbd\xc1\x1f\xe2\x75\x53\x1c\xda\xb6\x7f\x17\x92\xed\x0e\x53\x1d\xde\x38\x27\xe0\x65\xd2\x01\xde\x36\x7f\xe3\x25\x52\x37\xfa\x04\x87\x37\x4c\x70\xe8\x6c\xa9\x2d\xc7\x66\xb7\x1f\xdb\xb5\x92\x03\x56\x80\x38\x35\xf5\x72\x49\x94\xa0\x91\xdc\x05\x7f\x90\x19\xee\x18\xd5\x06\x5a\x60\xb6\x42\x6a\xd2\x2f\x78\x27\x24\xc4\x89\xf9\xfa\x7e\x13\x41\xf0\x63\xcc\x9f\x6b\xb6\x3a\x19\xa2\x68\x5c\x72\x2d\xf6\x08\x12\x51\x49\x4a\x91\x2c\x54\x22\x46\xa4\x35\x76\xe2\x11\x9b\x53\x22\xb0\x88\xe6\x90\xdd\x58\x6c\x8c\xc9\x92\x35\x40\x46\x26\x96\x21\xf4\x36\xad\xb1\xe9\x1d\xd6\xbd\x6a\x61\xf2\xb8\x74\x76\xcf\xf5\x48\x52\xf3\x89\x17\x66\xac\x94\x11\x9a\xe4\x3a\x6d\xff\xb6\x81\xf8\x7e\xb1\x5f\x34\x18\xdf\x07\x13\x05\x5f\x74\x0c\xc8\x2f\xa8\xa1\x0f\xca\x7f\xa1\xa0\xfc\x86\x25\x5e\x2f\x30\x7f\x23\x93\xdf\xeb\xc7\x0c\xbb\x9e\x5f\x23\x6e\x78\x55\xd0\x56\x3e\x19\xbf\xf8\xd1\x6b\x9c\x73\xd7\x13\xf8\x93\x27\x0a\x23\x11\x0b\x4d\x67\x13\x12\xc7\xc0\x69\x15\xb7\x15\xa2\x0b\xda\x71\xe6\x01\x7d\xf7\x62\xa9\x89\x1d\x27\x9c\xcd\x24\x8d\x0d\xc8\x4a\x86\xa1\x52\x6b\x68\xbc\x00\x70\x01\xd8\xdf\x24\x21\xc2\x79\x25\x04\xfa\x5a\x52\x66\x51\x14\xfd\x6f\x31\x27\x92\x7d\xa5\x8c\xb1\x00\xb3\x05\x7a\x64\xfc\x39\x21\xf1\x0c\x76\xa8\x3a\x98\x43\x44\xc9\x01\xa2\xca\x7f\x26\x00\x8d\x80\xe7\x6a\xa4\xc7\x0e\xb1\x66\x46\x03\x20\xf6\xdb\xa0\x16\xba\x6f\xe6\x9b\x23\x84\xce\x19\x9a\xe2\x48\x1d\x20\x99\x4f\x8a\xf6\x63\x6e\x8a\x5b\x6b\xed\x3b\x98\x78\xd1\x48\x1f\x33\xde\xd0\x79\xf3\xd9\x70\xdc\x41\x93\xeb\x20\xa1\x78\xab\xd8\xba\x27\xbc\x0d\xb4\xe8\x65\x2e\x6d\x10\x06\xe2\xcc\x1f\x7d\x0b\xab\xe4\xb1\xa1\x01\xe7\xd3\xe0\x2c\x33\x1e\xb7\xda\x3a\x2b\x53\x59\x77\x2c\x45\x20\xa4\x15\x94\xac\xa3\x0a\xda\x35\xcb\xad\xa5\x26\xa9\x04\xc1\xa9\x75\x0e\xe8\xab\x06\xc4\x1a\x13\x06\xa9\x47\x4f\x85\x91\x30\xd7\xd9\xe2\x0b\xca\x1e\xf5\xee\x16\x68\xd8\x50\x57\x1e\x7a\x6e\xda\xb4\x4c\xdf\x78\xe4\x94\x33\xe3\x20\xdc\x4a\xee\xa4\x33\x86\x93\x35\x6d\x1c\xb5\x95\xab\xfb\xf4\x9c\x9c\x65\xc5\x05\x2d\x45\x18\x63\x1f\x32\x3d\xae\x65\x43\xaa\xcc\x37\x94\xf7\x30\x8a\x49\x46\x58\x4c\x58\xb4\x00\x12\x61\x80\x98\x23\x18\x4e\x10\x86\xef\x70\x72\x84\xce\x4c\x7e\x8d\x97\xf0\xec\xb5\x0e\x17\x7a\x8a\x19\x9d\x6a\x3d\x01\x8c\xb0\x76\x94\x23\x66\x86\xe9\x7c\x20\x41\xb1\x7e\xbf\x62\x4d\x3b\xa3\x6f\x90\xab\x2d\xd1\x88\x59\xf9\x7b\xb4\xfc\xc2\x81\xde\x96\xed\x8e\x6e\xce\xd5\x1e\x90\xf9\xe4\x10\xfe\x5d\x4a\x38\x73\x40\x3d\x05\x8a\x0c\x49\x08\x98\x03\xad\xc7\x0b\x2e\xc6\x36\x40\xb9\x5d\xf8\xed\x56\xe4\x71\x04\x7d\x94\x94\x9a\x94\x32\x9a\xe6\x69\xe0\xbc\x33\x95\x0a\x22\x6b\xbf\x34\x99\x18\x99\xd6\x03\x22\x07\x5a\x8e\xf4\xe5\xca\x16\x68\x46\x9f\x08\x1b\xb1\x8c\x53\xa6\x8e\xd0\x15\x57\x24\x28\x0d\x61\x20\xa3\x78\xa6\x68\x6a\x50\x4e\x05\xd1\xe7\xc0\x80\x61\x03\xc0\xe4\x1c\xab\x03\x14\xe7\x70\x54\x19\x51\x9a\x75\xe8\x1b\x57\xc1\xce\x40\x7c\xb4\x18\x31\x73\xd3\x4d\x31\x4d\x72\x41\xac\xcc\x8a\x4d\x5e\x4c\x31\xe4\x62\x64\x16\x01\x2d\x98\x44\x4a\x67\x73\xa5\xb7\x48\xcb\x78\xd6\xdf\x38\xd7\xdc\x88\x8f\xd8\x84\x20\x8c\x32\x2e\xa9\xa2\x4f\xde\x7f\x49\xa7\x08\x4b\x09\x16\x94\x23\x74\x56\xb2\xff\x53\x09\xaa\x77\x5b\x5c\x2d\x65\x63\x6b\x7b\x6e\xcf\xc7\xd9\x7a\x23\x4b\xbd\xd8\x55\xc6\x13\xc9\x93\x5c\x85\x2e\xd8\xe6\xbd\x2d\x4c\xe3\x0e\xb0\x1f\x0c\xc4\x7c\x3a\x62\x8e\xae\xe5\x11\x1a\x48\x24\xb9\xde\x25\x69\xb6\x32\x12\x54\x11\x41\x0d\x8a\x13\x51\x66\x13\xfc\x39\xf5\x67\x20\xc5\xe2\x51\x8b\x50\xa1\x05\xde\x60\x89\x96\xac\x1d\x13\x23\x21\x01\xac\x55\xb8\x1d\x60\xfa\x47\x8c\xb3\x43\x46\x66\x78\xd5\x8e\x8c\x58\x69\x4b\xd0\xd7\x74\x5a\x28\xa4\x6d\x3e\xc7\x60\xed\xc6\x10\xf9\xd4\xb6\x4b\xa6\xe3\xb6\x4d\x9a\x26\x1c\xaf\x70\x1b\x4f\x8b\x43\x8f\xfe\xce\x27\x66\x8c\x5a\xef\xe7\x0a\xa4\x40\xad\x5e\x4d\xb9\x20\x73\xcc\xe2\x03\xb7\x59\xe5\xb1\xc1\xcd\x68\x4d\x6d\x4e\x19\x03\x49\xd0\x81\x07\x13\x83\xc5\x84\x59\xb0\x17\x56\x71\xb3\x5b\x51\xec\xc3\x5a\x77\x85\x6f\x0d\x6a\x9e\x18\x03\x84\x61\x79\x8b\xcc\x1e\x71\x49\xd3\x2c\x29\x72\x9a\x02\xdb\xe8\x54\x8b\x58\x8e\x47\xf2\x27\x30\x5d\x39\xad\x0d\x6e\x75\xbb\x73\x9a\xce\x1a\x46\xee\x19\x29\xdc\x1a\xce\xe6\x65\xca\x5f\x06\x2c\xec\x6b\x49\xf4\x3f\x15\x29\xd4\x3e\x23\xac\x8f\x98\x13\x41\xbe\x01\x2e\x63\x9b\x0d\x8c\x67\x5a\x84\x36\xf0\xae\x76\xfd\x50\x64\x9c\xdc\xa5\x73\x62\x0f\x83\x7b\xb5\xe1\xa2\xfa\x8e\x32\x5c\xca\xbc\xdd\x40\xf0\x4b\xf2\xb5\x92\xab\x02\xb7\xdf\xa2\xad\x96\x89\xc2\xab\xca\x8b\xac\x41\x09\x66\x9f\x09\xd2\xdd\x59\x6a\x76\x95\x6e\x30\x44\x04\xcc\x49\x92\xa1\x98\x4e\xc1\x2c\xa5\x80\x7d\x7b\x60\x31\x83\x01\xaf\x0f\x7b\x9a\x33\x03\x12\x67\x3c\x22\xcf\x16\x67\xdb\x5e\x8d\x45\xe3\x47\x23\x76\xae\xbe\x92\x5a\x44\xe7\x6c\xa6\x2f\x9a\xf8\x89\xca\xa2\xb8\x49\xc4\x99\xcc\x53\x22\x6c\x17\xfa\x46\xd6\x14\x69\x0b\x03\x60\x27\x43\xe9\xb1\xe9\xbd\x7f\xc2\x09\x8d\x5d\x01\x1e\xfd\xa3\x39\x73\x7a\x94\xd2\x79\x14\x1b\x42\xc2\xec\xe6\xc6\x7a\xad\xde\x4c\xac\xff\x31\x94\xdc\x51\x5a\x08\xf9\xd8\xda\xea\x8f\xab\x22\xbe\x5d\xf5\x25\xe2\xfd\xa4\x36\x29\xb4\x5c\x30\xb2\xab\x70\xb6\x0a\xc5\xd0\x21\xe9\xe6\x26\x04\x58\xf7\xe3\x8c\x3e\x66\x70\x6b\xb1\x9f\xca\x04\xed\xa8\x0d\x67\x09\xc5\x7b\x42\x41\x36\x90\x0a\x6b\xf1\xc2\x5c\x07\x5c\x58\x0d\xc7\xde\x39\xed\x5b\x7b\xb6\x65\x79\x08\x19\xe1\xa4\xbe\xc3\x4b\xec\xcd\xe6\xfd\xe5\x4a\x80\x3d\x6e\xa6\xed\xa5\x49\xbf\x11\x4f\x92\x75\x4a\x97\x54\x66\x7e\x5a\x7c\xbe\x7c\x44\x45\x3f\x7a\x03\xdc\x5e\xc0\xa9\x31\x97\x37\x4e\xac\x29\x45\x2a\xbb\x4b\xe1\x4b\x46\x0d\x5b\x58\xd6\x3a\x62\x7c\x0a\xc5\x6d\x92\xb6\xa8\xae\x4c\xf0\x94\xae\x83\xae\x6c\x02\x9d\x6e\x9d\x5d\x7c\x85\x95\xc1\x59\xcf\x41\x34\x35\xe4\x65\x7b\x84\x7c\x3d\x6c\xc5\xcd\x25\x67\x28\xc5\xd9\x46\x0b\xbe\xca\x2b\x34\x40\xa9\x71\xc9\xd9\xd5\x03\xbc\x45\x02\x75\x62\x60\x91\x9f\xf1\xa2\x48\x8d\x6e\xc3\xcd\x65\x6b\x91\xc3\x83\x7e\xfd\x9c\x4d\xf9\x1a\x87\xb3\x48\x65\xb6\xa7\x0f\x3b\x9a\x0d\xce\x9f\xf7\x52\x98\xdd\x37\x6b\xda\xe5\x3c\x9e\x36\x11\xf5\xda\x27\xd3\xad\xe0\x4b\xda\x28\x43\x26\x12\x9a\x27\xd7\xb9\x5b\xcb\x47\x2b\x68\x11\xc1\x70\x96\x2f\xd5\x65\x89\x0e\x77\xbe\x46\x95\x76\x90\x31\x85\xbb\x60\xea\x9b\xe6\x56\x5f\x61\xcd\xec\x21\xe9\xb4\x58\x5b\x62\x37\xac\x87\xff\xeb\x7a\xf4\xa8\xbf\xcd\x27\x74\x65\x71\x83\xee\x8b\x01\xdc\x4c\x5a\x3b\x57\x11\x99\x69\x53\xd4\xa6\x34\xd1\x22\xf6\x79\x83\x81\xd3\x25\x88\xf9\x80\x2a\x13\x2a\xef\xa4\xa7\x5c\xd0\xa0\x20\xa8\x93\x91\x10\x85\xc2\x24\xa1\x93\x27\x50\xe8\xc1\xb4\x38\xe7\xcf\x26\x3a\x5d\x50\xcd\xb3\x8c\xb0\xaa\xc0\xdc\xa3\x79\x01\xb5\xd6\x12\x63\x6c\xf2\x1f\x70\x13\x33\x88\x6d\xcd\xe3\x62\x54\x2d\x5b\xba\x8b\xd2\x4e\xdd\xf3\xef\x5c\xaf\xf7\xfa\x8b\xfa\xde\x34\x8e\xf0\xbe\xdc\xfa\xda\xa3\xf3\x52\xfe\xfa\x01\x53\x1f\xe1\x53\xa7\xf4\x60\x34\x15\x04\x1c\xfc\xa9\xc7\xd4\x30\xa0\xba\x9c\xc3\x7d\x77\x77\xf6\xc3\xf1\xc3\x39\x22\x2a\x42\x09\x7d\x24\x23\x16\xc9\xa7\x03\x2d\x1e\xff\x23\x27\x4a\xff\xdc\xe2\x11\xa0\x29\x61\x12\x38\x01\x55\x35\xec\xa1\xe6\x85\x74\x0b\xa3\xff\x7b\x56\xfe\x7e\x09\xc9\xd7\xd2\x87\x81\x76\x5d\x9d\x1b\x20\x53\x28\xe5\x61\x96\x56\x36\x50\x8c\xb1\x45\x0e\x9b\xaa\x60\x6e\x90\x2e\xc4\xfe\x9e\xb3\x35\x85\xae\xd3\xe2\xa3\x60\x14\x2d\x32\x5d\x9a\x61\xc0\xba\x5e\x2f\x0f\xc9\x7c\xd3\xd8\xfa\x2a\x26\x52\xa4\x65\x3b\xdb\x72\x51\x30\x14\x29\x41\x08\xb0\x10\x4f\x4f\xf6\xae\xb7\x48\x1c\x7e\x62\xc1\x47\x47\x23\x76\xe9\x3c\xce\xc5\xaf\xb2\xd0\xc3\xd3\x49\x00\x01\x5e\x6e\x05\x9a\x8d\xa9\xf4\x3f\x40\x21\x17\x99\x27\xca\x54\xb2\x9b\x52\x86\x13\x3f\x50\xf3\xa4\x89\x4b\x08\xcc\xa2\xf9\xb6\x26\x64\x3a\x1d\x93\x64\x1d\x49\xf4\x7c\x3a\x4c\xa4\xa6\xef\xe8\xb1\xe5\x74\x6e\x52\xab\xb1\x98\x8c\xad\x40\x6b\xea\x3d\xa1\xc2\x04\x8d\x13\x53\x49\x8e\x20\xf0\x51\x56\xb3\xc7\x0c\x40\x84\xde\x45\x2b\xa9\x1b\x17\xa5\x49\xdb\xf0\x21\xd9\xd0\x0b\xc2\x6a\xc4\x44\xce\xa0\xc8\x84\x8f\x58\xc0\xa8\xc0\x0b\x8f\x9c\xff\xc0\x7a\x73\x66\x9a\x4d\x18\x38\x6e\xf3\xb2\xd6\xcf\x78\x2e\xc1\x56\x93\x12\xa5\x2f\xa8\xaf\xa1\xfe\xab\x09\x19\x3a\x40\x99\xa0\x29\x98\x5b\xe5\x37\x0d\x5b\x77\x8a\x15\x4e\xf8\x6c\x20\x14\x9d\xe2\x48\xdd\xe3\xad\x34\x70\x6c\x9b\xd9\x34\xfc\xd4\x0d\x03\x9d\x9f\xe9\xc5\x9f\x11\x46\x04\x4c\x54\xeb\xe4\xcd\x47\x18\x9e\x6c\xc4\xb9\xc1\xca\x66\x0d\xa3\xd2\x5b\x2c\x70\xae\x78\xaa\xf5\x5b\x9c\x24\x8b\x03\x63\x91\x25\x68\x8e\xe5\xdc\x6d\xb4\x31\xa6\x75\xb9\x9b\xec\xe2\x9e\xe2\x68\x4e\xee\xa0\x1a\x72\xd3\xe2\x56\x46\xf9\x81\xb0\x3c\xfd\x70\x82\xfe\xa7\x98\xe3\xe9\xe0\xf4\xfb\xe1\xf8\xec\xfc\x6e\xf0\xdd\xc5\xf0\x2c\x98\x8f\x7d\x72\x79\x7e\x77\x57\xff\xf5\xfb\xf3\xfb\xfa\x8f\x37\xd7\x37\x0f\x17\x83\xfb\xa6\x56\x2e\xae\xaf\x7f\x78\xb8\x19\x7f\x1c\x9c\x5f\x3c\xdc\x0e\x1b\x3e\x7d\xb8\x6f\x7f\x78\xf7\xc3\xf9\xcd\xcd\xf0\xcc\xad\xca\xdf\x82\xd3\x05\xd6\x63\x48\xbd\x68\x9e\x46\xf5\x00\x1e\xa2\xf2\x8b\x27\xe8\xa1\x5a\xfa\xc0\xc6\x22\x1b\x1c\x8b\x67\x2c\x35\x0f\x83\x50\xf8\x11\x43\xee\x73\xbd\x28\x6d\x9f\x9a\x70\x9d\x68\x4e\x50\xc2\xf9\x63\x9e\x59\xd6\x66\xe2\xc3\x18\x37\x86\x1f\x22\x83\xd6\xbe\x3f\xbf\x3f\xa9\x97\x60\xf0\x8d\x05\x88\x59\xee\x0c\xc0\xb8\xb0\x63\xa7\x60\x4b\x71\xd0\xfc\x85\xf5\x36\xe8\xc1\xef\xcc\xb2\x7e\x4c\x6b\x98\xa9\x4a\x37\x71\x6c\x8b\xfd\xba\x89\x05\x0d\x97\xf7\x75\xd9\x6a\xfa\xe5\x30\x35\xa7\xd0\x84\x44\x38\x37\x41\x4d\xfa\x9e\x12\x82\x8b\x70\xc0\x05\x3d\xec\xae\x51\x4b\x47\x8d\x0d\x56\xf6\x4c\x4f\x5c\x3e\xd2\x2c\x23\xf1\x87\xba\xfc\x52\xae\x0a\x6b\x6b\x91\xf3\x29\x0a\xce\xa4\xd6\xeb\x41\xe7\x77\x05\x53\xe6\x0b\xef\x49\x83\xc0\x8d\x22\x94\x05\x80\x9c\xf5\x9d\xe0\x0b\x5b\x50\x70\x8d\x61\x85\x9e\x09\xa4\x54\xe7\xb6\x62\x94\xd1\xbd\xf5\xd9\x86\xee\x8c\x4d\xdb\xd5\x7f\x2b\xa5\x5a\xb7\x32\xe3\x5d\x08\xdc\xfa\x7b\x49\x9a\x18\xf1\x16\x79\xb1\x67\xa6\x51\xe0\xce\x2e\xe6\x0d\x46\xdc\x12\xdc\xe0\x6e\x83\x06\x0b\xf9\x12\xf9\xaa\x7e\x23\xad\xb8\x2c\x34\xdb\xee\x32\x1e\x87\x05\x52\x02\xb8\xee\x3e\xb0\x12\x08\xf2\xca\xb5\xba\xe7\x31\x5e\x68\xe2\x80\x58\x63\x99\x67\x19\x17\x0a\xb5\xb4\x61\xdc\xf8\x66\x7c\x70\xe7\xd8\x79\x78\x1e\x07\x8d\x68\x09\x43\x36\xd4\xd2\xe8\x06\x8f\x60\xd7\xb5\x60\x1c\x61\x80\x2c\x28\x82\xbe\xde\x51\x5a\x52\xa9\x4b\x14\xda\x24\xfc\x6e\x93\x61\x90\xe9\x0b\xbe\x6b\xf9\xbd\xa6\xde\xaf\x5d\x0b\x8d\x5b\x9e\x90\xa9\x1a\x37\x7a\x7d\x96\x18\x38\x75\x8b\xac\x0d\x51\x86\xce\xe6\x3b\x68\xb1\xbb\x96\xf0\x47\x1b\xd8\xa3\x55\x83\xc0\x42\x20\x38\x57\x46\x3e\x2d\x74\x18\xe4\x56\x13\xcc\x0b\xb6\x53\x9b\x0b\xe6\x85\x40\x2d\xf3\x1b\x7f\xa8\x4f\x9b\x3a\x1a\xb1\x21\x04\x50\x14\x8a\x88\x4b\x11\x03\x2d\x60\xa5\xfc\x5f\x2a\x36\xfa\xaa\xd1\x9a\xed\x08\xaf\x05\xdd\xdb\x3a\xf9\xc9\x02\x15\x05\x65\x4b\xdf\x75\x39\x3d\xc6\xea\xed\x44\x40\x33\x61\x5b\xbe\x5d\x91\xcc\x5a\xe6\xcd\x3c\x8b\x48\x1f\x88\x0f\xd3\x5d\x1d\xa1\x9f\x9c\xe5\x07\x02\x5f\x8b\x5a\xcc\x36\x76\x23\xc1\x0b\x07\x0a\xd9\xb4\xb0\xbb\xc0\x59\xdc\x75\x28\xec\xf2\x05\xf6\x80\x4e\x0d\xab\x5c\x52\xc0\x19\x33\x16\xd9\x35\xd2\x3e\x4e\xfd\x47\x77\x64\x79\x54\xc0\x47\x28\xbf\x69\x23\xab\x40\xe8\x60\xc9\xe2\x7f\x99\xcd\x32\x99\xa8\xae\xb0\x96\x2d\x87\x68\x3d\xa8\xfa\xfc\x80\x07\xd0\x24\xaa\xa2\x29\x4d\x12\x90\x03\x8e\xd0\x00\xca\x02\x43\x22\xa7\xbe\x0a\x5d\x80\x05\x9d\x31\xbe\x2a\xc7\xac\x85\x98\xa2\x80\x98\xee\xda\x89\x49\x02\x35\x15\x79\xfc\xbb\xa1\xa8\x1d\x60\xba\x68\xde\x82\xeb\x88\xd8\xdd\x91\x5c\xd6\x50\xde\xdf\x22\x3a\xba\x36\xdc\xe0\xc3\x7f\x35\x0f\xfd\x53\x8e\x05\x66\x0a\x62\x7e\xad\xe8\x2e\x48\x90\x7a\x44\x3e\x43\x7c\x06\x33\x86\x60\xf8\x29\xdc\x5c\xe7\xf2\x87\x70\x2f\x44\xe3\x03\x44\x8f\xc8\x11\x54\x67\x13\x5a\x96\x98\x14\x6f\xce\xb5\xe4\x30\x62\xb5\x58\xc6\x23\x34\x48\x24\xb7\x5f\x10\x16\x25\x50\x86\x3b\x08\x4f\xf6\x94\x6f\xdd\x4a\x93\x05\x28\x28\xb0\x95\x45\xf3\xdc\x3e\x08\x3e\x84\x22\x63\xe0\x13\x4f\xe0\xa4\x17\xbf\xff\x9e\x67\xc6\x5b\xd1\x16\x27\xf1\x82\xe5\x1c\x6a\xd7\xd0\x8b\x6d\x92\x29\x15\xb8\x6c\x83\xe0\x0d\xd8\x98\x22\xc6\x34\x40\x60\x41\x5f\x63\x85\x12\x82\xa5\x42\x7f\xf8\x66\xad\xd8\x10\x37\xc1\x82\xbb\xda\xe3\x5b\x24\x8a\xb9\x54\x83\x50\xb8\xf3\x1d\x43\xed\x38\x2c\x14\xc2\x88\x91\xe7\x30\xb2\x94\x43\x30\xb0\x2b\x08\x47\x82\xdc\x56\x13\x4f\x66\x32\xf3\x21\x5b\xc3\xa8\x4c\x2d\x7c\xc4\xc1\x1d\x5b\xf7\xa9\x1d\x56\x03\x65\x59\xe5\xc9\x86\x78\x02\x24\x57\x11\xf4\x3f\xc7\x6a\xc4\x2c\x67\x75\x61\x23\x41\x9a\xd7\x20\x49\xca\x81\xf6\x18\x72\x49\x98\x9e\x30\xd4\x65\x3f\xf2\x0b\x74\x05\xea\x97\x8f\x76\x2e\xd9\xe9\x8a\xc3\x62\xe2\xf1\x3c\xde\x51\xd8\x76\xa3\xb4\xd3\x64\x5f\x7e\x45\x21\xb8\xa1\xfb\x0b\x53\x20\xbf\x83\x30\x4c\x9a\x86\xbc\xe2\x60\xd5\x6d\xfa\x4b\x64\xe3\x5d\x77\xd0\x5d\x54\x6e\xb6\x8f\xc3\x35\xfb\xcc\x1b\xcc\xed\x2d\x9b\x1b\xc8\x16\xdb\x28\xe0\x3e\xec\xfe\xb5\x3c\xbe\xa5\xa1\x9f\xc7\x90\xf4\xb7\x9a\x0b\x16\x49\x74\x8e\x75\x98\xd8\xeb\x38\xc8\xe9\x09\x52\x08\x20\xf8\xcf\x31\x3e\xfb\x66\x8b\xe7\x35\x7b\xdf\xd3\x3f\x28\xe6\xef\xa6\xe2\x83\xe0\xea\x13\x6f\x17\xf6\x06\xf1\xdf\x71\x04\x91\xfe\xd0\x93\xcb\x31\xa8\x03\x32\x39\x18\x6b\x0c\xc6\xfc\x46\xf1\x30\x13\x3c\x22\x52\x1e\xa1\x21\x5c\x34\xf6\x9f\x08\x4f\x9d\x43\x22\x78\x79\xc4\xb4\x66\xe2\xf0\x5b\x82\xf6\xcb\x24\xde\x74\x02\x0c\x18\xdc\x56\xbe\x9c\x74\x75\x8d\x92\x36\x6d\xc2\x61\xd1\x41\x1b\x50\xd6\x00\x0d\x67\x27\x28\xe6\xd1\x23\x11\xc7\x82\xc4\x54\x9e\x80\x6f\x5d\xb5\x3a\xf5\x52\xad\x6d\x6f\x2d\x69\xb4\x05\x0a\xac\x48\x8a\x3b\x35\xfd\xdb\x00\x6b\x17\x5e\x7b\x80\xe8\x14\xd4\x09\x97\x93\x61\x82\x90\x1d\xdc\x0d\x61\x4a\x2c\x20\xae\xdf\x9b\xb2\x2a\x0b\xe1\x34\x0d\x2d\xb4\xb5\x65\x13\x89\x5d\xc4\xe0\x6c\x38\xed\xfb\x39\x91\xc4\x05\x1c\x98\x49\x29\x6e\x63\x99\x0d\xbb\xc8\xb0\x9a\x4b\x48\x5d\x2d\xaf\x81\x55\xba\xe0\x53\xbd\x42\x38\x83\x78\x05\x63\xa5\x28\x3e\xf2\x09\x96\x52\xd1\x24\x19\x31\x46\x48\x2c\x11\x64\x99\x7e\xd5\x98\x21\xaf\x3f\x3d\x40\x38\x8e\xd1\xff\xfe\xfa\xe3\xc5\xcf\xf7\xc3\xf1\xf9\x15\x18\xad\xcf\x2f\x86\xdf\x1c\xf8\x1f\xaf\x1f\xee\xfd\xaf\xc6\xc2\xf2\x44\x04\x4a\xf1\x23\xa8\x78\x4c\x12\x9b\x3c\x41\x46\x2c\x1c\xa9\xc3\x0e\xd0\x4f\x24\x71\x91\xae\x56\x4c\xf1\x10\x8a\x76\x0f\x5b\x2b\x16\x1b\x9b\xdf\x1a\xca\xef\xad\xff\x64\x39\x0d\x3a\xe2\xf1\x5d\x38\x31\x10\x72\x64\xb0\x0c\x92\xc9\xad\xee\x5b\x10\x1c\x61\x33\xca\xda\xe2\xf1\x08\x7b\x7a\x49\x21\xfe\x07\xb2\xf8\x51\xab\xd7\x37\x98\x8a\xce\xb4\xd7\x8c\x06\xe4\x4e\x8c\xd6\xd3\xb1\xac\x1e\x2a\x69\x64\x61\x93\x6d\xd3\x1a\xf3\xd9\x04\x04\xf7\xe6\xd3\xb5\xf0\x52\xe4\xb3\x12\x0e\xa5\xc2\xe7\x73\x38\x28\x27\x7f\xd1\x14\x34\x38\x62\xf7\xd7\x67\xd7\x27\x88\x24\x78\xc2\x21\x94\xdf\x86\x04\xb9\x26\xec\x82\x45\x3c\x0d\x1a\x2a\x21\x94\x1c\xa0\xac\x40\x28\x09\x8d\x68\x47\xa6\x8d\x15\x48\x25\x19\x17\x75\x7c\x8f\xdd\xaa\x80\x76\xb2\x37\x5c\x74\xb9\xfe\xf5\x6b\xb0\x74\x3c\xd3\x8a\x5c\x85\xf3\xda\xbb\x79\x4a\xb0\xa9\xa1\x6f\xdc\x42\xd6\x96\x6f\x03\x58\x93\xa4\x54\x4f\x51\x1f\x1c\x79\x64\x5d\xf0\xc5\x9b\x9c\xa1\x1f\xfe\x22\xd1\x24\x57\x23\x56\x6e\x83\x33\x34\xf8\xe9\x0e\x7d\x87\x55\x34\xff\x66\xc4\xae\xb5\x9a\xf9\xc3\x5f\x5a\xa0\x94\xd6\x46\x27\xd4\x6b\x72\x86\x15\xbe\xe0\x38\xa6\x6c\xd6\x04\x4d\x58\xd4\x8f\x19\xde\x0f\x4e\xd0\xb5\xd5\xe1\x8b\x4c\x10\x9f\x12\x1c\x34\x04\x0c\x19\x26\xe2\xb8\x08\xb0\x72\x56\x86\x6f\x33\x9a\x19\x5c\x58\x23\x76\x6f\x30\x19\x35\x57\xa5\x0a\x65\xdc\xd6\x30\xd2\x5a\x99\x41\xab\xc4\x2e\x43\x8a\x24\x0b\xa4\x57\x07\xc8\xd8\x6f\x86\x95\xc7\x40\x9e\xa9\x33\xfb\x11\x03\x05\xdd\xe7\xa6\x24\x3c\xc2\x09\xc4\xe4\x1d\x06\x36\x3d\xad\xb6\xf3\x1c\xf2\xc3\x4d\xd1\xf3\x45\x39\x74\xd6\x43\x16\x78\xa1\x2c\xdc\x28\x30\x00\xc0\x3e\x5a\x6f\x6c\xca\x35\xc7\x31\x58\x6c\x60\x7c\x4b\xcc\xea\xe8\x0f\x3d\x36\x9b\x59\x16\xfd\xd4\xa7\x6d\xf1\x9c\x39\x2c\x92\x08\xcc\xf7\x6c\x01\xe1\xdb\x50\x74\x84\x43\xe8\x47\xc1\x9d\x2d\x51\xd6\x76\xd1\xdf\x89\xc1\x67\x23\x66\x22\x05\x4b\xfb\x12\xa2\xf7\x04\xbd\x73\x06\x81\x8c\xf5\x5c\xb1\x3c\xb3\x81\x8d\x56\xd6\xcf\x04\x39\xf4\x19\x50\x71\x69\x4d\xf5\x0d\x7b\x84\x6e\x43\xf5\x3a\xe6\x51\x9e\x3a\x64\x65\xc8\x9e\x2a\xca\xca\x97\x24\x1e\x73\xb1\xaf\xa2\x78\x40\x69\x51\x04\xd2\xc7\x3b\xeb\xc7\x86\x60\x06\xe1\xa7\x75\x49\xbd\x5d\xf0\x05\xde\xb1\x5d\xd4\x9a\x69\x68\x9c\x95\x5b\x2a\xb5\xb6\x75\x5e\xe2\x55\x81\xfe\xca\x05\x08\x5b\xe4\x73\xc6\xc1\xc8\x6d\xd2\xb3\x78\xfc\x95\x44\xe7\x37\x5a\x02\xd2\x1a\xaf\x3f\x83\xb9\x54\x26\xb8\x0c\xd2\x75\xcc\xd7\x26\x5d\xe0\x00\x7d\x8b\x46\xf9\xb7\xdf\xfe\x29\x42\x9f\xdd\x1f\x7f\xfe\xcf\xff\xfc\xd3\x9f\xd7\x49\x27\x71\x0a\x39\xb4\x5b\xac\x91\x2f\x27\x55\x16\x89\xc2\x1d\xa8\x73\xaa\x2d\x76\xc1\x1e\xc0\xb6\xe5\xdf\x04\xe5\x31\x88\x1d\xc2\x33\x7b\xc2\x65\x78\x32\x51\xe9\x68\x16\x91\x04\x92\xa8\x83\x32\x87\xf0\xc2\xae\x95\xe8\xff\xd7\x12\xb0\xb2\xb1\x3e\x2a\x9b\xc5\x38\xd1\xc4\x8b\xd7\xba\x11\xf4\xb5\xb5\xff\x29\x70\x20\x7e\xe3\x2e\x38\x9e\xc4\x44\x98\x31\x79\x93\x9d\x37\x24\x02\x73\x20\x9f\xb3\x84\xc7\x0e\x1e\xb5\xc8\x05\xa4\x20\x20\x0c\x3f\x63\xcd\xb9\x0f\x2c\x8c\x96\xf9\xc8\x78\x5e\xa6\x38\x32\xa8\xa0\x12\x7d\xfd\xf9\x44\xff\x76\x80\x16\x27\x10\x44\x7a\x80\x7e\x3d\xb1\x68\x39\x58\xa8\xb1\xfe\xe9\x1b\x27\x6b\xdb\x26\x60\xd0\x54\xa2\xaf\x8e\x9f\xb0\x30\x35\xa3\x8f\xcd\x88\xbe\xb2\x9c\xd5\xd7\xc5\x0b\x65\xf3\x84\xf3\x47\x1b\x60\x5b\xfb\xf0\xd8\x01\xaf\x01\x79\x7b\xbf\x89\xd9\x7a\x9f\x98\xaf\xd0\x21\xbc\x40\xd0\x51\x36\x41\x47\x7f\x97\x9c\xa1\xa3\x05\x4e\x13\xfb\xab\x7b\x6a\xe3\x7f\xb1\xb4\x39\x71\xb1\x0f\xf2\x49\x16\xc6\x52\xfa\x5d\xc2\x27\x30\xab\x4b\x37\x53\x13\x41\x0b\x03\x2d\x6e\x9f\xe2\xc2\xb2\x13\x71\x89\xa8\x80\x1f\x94\x72\x65\x5e\x01\x1e\xd7\x34\xab\xcf\x7e\x48\xff\x6d\xfc\xc2\xb0\x28\x2e\x89\xcf\x18\x87\x7d\xf4\x9a\x6e\xf4\x33\xfa\xda\xb2\xa0\x6f\xf4\x1d\x63\xc3\x95\xcd\x32\x34\x75\xb0\xf0\x1d\xfc\x1c\x74\x40\x19\x32\x69\x99\x4b\xbe\xfc\xf5\xf8\xe8\xe8\xc8\x7f\x0d\x59\xeb\xff\x2f\xa2\x4a\x92\x64\x6a\x5a\x72\x37\xd8\x62\xc4\x2e\x5d\xe1\x05\x67\xbc\x2e\x20\x1d\x33\xc1\x15\x8f\x78\x82\x0e\x0b\x83\x6e\xcc\x23\x89\xfe\x5d\x8b\xb5\xc1\x52\xc2\x8f\x5a\x8f\x6b\x81\x81\x35\x48\xcf\xaf\x74\xa8\xac\x41\xbc\x7a\xac\x42\x14\x37\xaf\xd8\x62\x19\x56\xf1\x00\x5a\xd0\x94\x73\x6c\x91\xde\x84\xd0\x2f\x93\xcf\x0a\x1e\xb5\x00\xe9\x35\x86\xb2\x37\xdf\x94\x35\x76\x5b\xe0\xe9\x19\xb2\x6e\x59\x00\x8b\x77\x65\x39\x83\x99\xe7\x41\xe8\x3e\xd1\x97\x0b\x0b\x4b\x01\xc8\x3c\x4d\xb1\x58\x1c\x17\xa7\xad\x4e\x9c\x05\xd2\x1a\xf0\x98\xc4\x2d\x00\xb8\x70\x13\x7b\xb4\x6c\x14\x83\x15\x2f\xdd\x8d\xe6\xcf\x6e\x04\xb5\x0c\x03\xc4\x02\xc2\x22\x1e\x5b\xba\x2e\xb2\x4f\xcb\x12\x8b\x7f\xa7\x2e\xab\xb8\x88\x18\x59\x18\xe3\x98\x32\x10\x1e\xf6\x0d\xf7\x71\x0b\xfb\xe6\x63\xa8\x8a\x4b\x66\x6b\xb8\x47\xcf\xaf\xef\xdc\x37\xdd\x2f\x5d\x58\x87\xb2\xc8\x8e\x93\x10\x1f\x8f\xcd\x90\xc0\xcf\xc5\xf5\x0b\xb1\x1d\xc6\x3a\x93\xfb\xdc\x5c\xf3\xef\x53\x7e\x43\x13\x7d\x6b\x01\x8d\x1f\x8d\x58\xe9\xe7\x03\x44\x12\x9a\x52\xe6\x63\xeb\x0c\x73\xe7\x53\x23\x3d\x3f\x52\xa5\xb7\x4c\xc6\x8f\x9a\x83\x39\x5c\xa7\x40\xa5\x1a\xb0\x85\x23\x1d\xef\x98\xb2\x16\x88\x5c\xea\x71\x15\x3a\xba\x16\x66\x75\x13\x87\x56\x20\xa5\x01\xe1\xc1\xf9\x1d\x31\xdd\x9a\x3b\x4b\x45\xb8\x70\xd0\x5e\xd0\xdc\xa1\x03\xc4\x0f\x38\x00\xf4\x51\x8a\xf9\xf5\xf2\x6f\x83\x80\x32\x64\x79\xba\x6d\xb2\x89\x0d\x1f\x7e\x2b\x33\xdd\x8d\x20\xee\xa6\xb2\x89\x4b\x84\xe5\xa9\x3b\x50\x6b\x50\xdc\xd0\x8a\x3f\x31\x89\x12\x6c\x90\x6a\x74\x43\x10\xf9\x78\x60\x1c\xa4\x59\xd0\x97\xb9\x5e\x4c\x37\xa6\xc6\x4e\x42\xd8\xd7\xe6\xdf\xdf\x20\x7b\x37\x7c\x7b\x60\xef\x73\x21\x3d\x02\x88\xd9\x73\xa8\xd1\x48\x62\x63\x43\x07\x54\xe2\x19\x16\xb1\xb1\x96\x87\x5a\x85\xc9\xe0\xd5\xf2\xd7\x82\xe7\xe8\x99\xca\xf9\x88\xdd\x73\x67\x70\x44\x8c\x7b\x5c\xe7\x03\x50\x46\x6b\xfd\x61\x09\x4c\x00\x46\xdd\x44\x01\x9a\x09\x6f\x95\x6b\x04\x51\xb0\x63\xc6\x63\xb2\x1d\x80\xd1\x7d\xe1\xab\x70\xfe\x6b\x41\x4c\x3e\x18\xdc\x14\x6d\xe9\xb4\x44\xca\x35\x6d\xf3\xd5\x8d\x87\x7b\xc8\xb6\x03\x25\x81\x9f\xd7\x42\xd7\x0e\xb1\xc1\xfc\xad\x06\xad\x38\x8d\x33\xc8\x06\x2e\xad\xbd\x47\x4b\xde\x76\x13\xa2\x06\xb4\xa2\x4e\x77\xbf\x99\x7b\x04\xcb\xee\x03\x8c\x31\x9a\x09\x9e\x67\x3e\x65\xde\xa5\xfb\x99\x6d\xb0\x32\xcd\x39\x9b\xf2\x13\xab\x53\x5d\x50\xf6\x68\x28\xfe\xa5\xf6\xc8\x00\x62\x93\xb8\x04\xe3\xe6\xaa\xb4\xc2\x1c\x0e\x11\x65\x51\x92\xc3\xc5\x27\x15\x8e\x1e\x0d\xa8\x77\x9b\xd1\x57\x7f\x33\x5e\x9d\x4c\xd9\x22\x31\xe5\x49\x62\xbb\x2d\x2e\xd0\xa2\x8c\xf5\x13\xc5\x08\xa3\x87\xdb\xf3\xe6\xbe\x1f\x69\xdd\x99\xd3\x7c\x7b\x96\x09\x04\xfe\xe7\x07\xba\x56\xdc\x65\x05\x16\x8f\x94\x48\xdd\x1b\x97\xda\x40\x57\x35\x91\x7e\xc2\x8a\x6c\x9b\x09\x65\x30\xc0\xd6\x88\xd4\xab\x81\xab\x2d\xb5\x1e\x6f\x89\x4c\x56\xa0\x8a\x41\x68\x50\x3b\x44\x5a\x18\xac\x05\x0f\xd7\xc0\x6e\x80\xf7\xbb\xcd\xa7\xf2\xee\x8a\xe9\x2c\x1f\x66\x42\xc8\x1a\x68\x03\x77\xfa\xf5\x8e\x83\x2c\xbd\xba\x6c\x8c\xcf\xd8\x54\x5f\xa8\x83\xfe\xc6\x56\xb2\x5b\x87\xd9\x3a\x72\x34\xe2\xb5\xf4\x39\x22\x7e\x24\x2e\x0c\xc7\xcb\x62\xae\xdf\x19\xf8\xb6\x78\xa9\xb8\x83\xb7\xd0\x36\x10\x7e\x20\xb6\x6e\x19\x36\xa1\xc5\xaf\x71\xda\x19\x50\xae\xe8\xf8\xcc\x7e\x7c\x59\x83\x97\xf3\xac\xe8\x12\xb2\xf8\x3c\x70\x4a\x8a\x99\x3e\xd9\xae\xd7\x16\x23\xa4\x91\x08\x37\x1a\xd2\x43\xb6\xd1\x80\x4c\x8f\x1d\xeb\x1e\xda\xae\x5c\x2b\xcf\xc6\x0e\x8f\x13\x63\x67\x52\x73\x30\x41\x14\xf5\x82\x34\x47\x2b\x9b\x22\x4c\x6d\xa1\x04\x8b\x99\x51\x90\x24\x51\xf2\xff\x63\xef\xdb\x9a\xdb\x46\x92\x74\xdf\xe7\x57\x54\xc4\x3e\xd8\x3e\x87\xa2\xa6\x7b\x62\x37\x7a\x1d\xb1\x0f\xb4\x2c\x4f\x6b\xda\x96\x3c\x92\xdc\xdd\x7b\x96\x1b\x74\x11\x28\x92\x18\x81\x55\x30\x0a\x90\xcc\xd9\x99\xff\x7e\xa2\x32\xb3\x2e\xb8\x12\x20\x25\xdb\x33\xdb\x0f\xbb\xd3\x16\x81\x42\x5d\xb3\xb2\xb2\xbe\xfc\xbe\x17\x2d\x23\xec\x73\x1e\x8e\x18\xe1\x03\x34\x59\xc3\x7b\x4f\x70\xbf\xfb\x56\x9a\xab\x65\x95\x5c\xd4\xed\xca\x4e\xdd\x38\x60\xce\xf3\x89\x18\x91\xca\x91\x89\x3b\x36\x6b\xa5\x9b\x33\xe5\x48\x6d\xee\x4b\xbe\x75\x8c\x00\x56\x21\x98\xf2\xbb\xb0\x72\x4b\x01\xbc\xb8\xdd\x75\x38\x5a\x84\x3b\xac\x02\x89\x62\x76\xd5\x60\x2e\x67\xf6\x11\xcf\xee\x65\x0e\x66\x39\x3a\xe0\x80\x0f\x45\x34\x34\x9c\xaf\xb8\xef\x75\x6a\x5c\x47\x23\xc6\x26\x6f\xd6\x75\xc4\xcd\xf9\xce\xed\x46\xa4\x18\xe4\x38\x3c\x7b\xd5\x9a\x48\x3e\xff\x88\x8f\xdf\xd8\x26\xd6\x94\xf8\xdb\x3e\xbc\xff\x2c\x65\x19\x23\xa8\xa0\x50\xfc\x1f\x31\xa4\xe9\xce\x4f\x53\x4f\x12\x57\xfb\x58\x73\xb5\x16\x47\x59\xe3\x84\x6f\x17\xb9\xea\x96\xb3\x1a\xd0\x4d\xb6\x88\x4a\x7c\x67\x83\xf2\x16\x3b\xf6\xa9\xe4\x29\x6e\x6e\x92\xa6\xa3\xad\x36\xb8\xca\xdf\xff\x1b\x9b\xc1\xee\xc3\xde\x81\x5d\x84\x0b\x7e\x28\xad\x50\x2c\xd9\x66\x22\xd7\x4a\xf2\x4e\x5d\xb7\xbb\x1f\xf4\x82\xb4\x69\x16\x3c\x8a\x54\xd9\xd4\xa1\x19\xd1\x92\x96\xd2\xc2\x46\x71\x76\x57\x2e\x45\x2e\x05\x6a\xd7\xc1\x73\xcc\x3e\x37\xa8\xba\x8a\x97\xc5\xe6\xfb\x45\x94\x26\x83\x05\x73\x20\xbb\x68\x66\x5e\x3b\xc3\xb7\xfa\x1a\x50\x29\xbf\x52\x75\xc9\xf0\x37\x86\xbf\x4d\xd9\x2b\x1e\xdd\x09\x19\xb3\x2c\x2d\xd7\x09\x91\x09\xc0\x0e\x05\xe6\x32\x08\xcf\x56\x1b\x86\xbe\x05\x96\x6f\xb6\xa1\xb9\xdc\xf2\x3b\x24\xb1\x25\x27\x32\xe2\x69\x27\x15\x95\x73\xab\x17\x49\x73\xee\xee\x1d\x2d\xb7\x1f\x36\x8b\xa9\xcf\x3d\x5d\x62\x6e\xc5\xc3\x46\xd1\x8d\x74\xc5\xab\x1f\xb1\x70\xdd\x6c\x6d\x70\xbe\xd8\xbc\x7c\xa7\x62\x48\x95\xc1\xd5\x0b\xe1\x5e\x20\x62\x2e\x25\xe3\x40\x1b\xf3\x4c\xb3\x32\xb3\xfe\x19\xc4\x21\x53\xb8\x15\xc6\x21\x30\x3f\x64\x89\x39\xa5\x6d\xc4\x5c\x02\xd2\x96\xb9\xe6\x35\xc4\xae\x98\xf0\x80\x98\x36\xd3\xb0\x42\xd2\x84\xe3\xee\x38\x1b\x3c\xce\x7b\xe6\xe9\x40\x14\x71\xb1\x11\x72\x71\x00\x9d\xf0\xf0\x41\xab\x20\x86\xc9\x0d\x76\xf1\x5c\xd7\x85\xa5\x4c\x48\x40\x8a\x42\xf8\x21\x57\x66\xb2\xaa\xb9\xd1\x89\x66\x9a\x17\x89\x36\xb6\xac\xb5\xc7\x3d\x55\xc5\x31\xbd\xce\xc7\xf1\x63\xb4\x70\x63\xd4\xfa\xc2\x65\x25\x4c\xd9\x1b\x88\x82\x05\x27\x03\xe5\x98\x26\xba\x0c\x56\xb1\x11\x9d\x94\x8b\x8f\x01\xe7\xb1\x2d\x08\x9e\xef\x0d\x6e\xba\x0c\x94\x29\x9b\xf9\xdb\x07\xe4\xda\xc0\x7b\x85\x3d\x2d\x12\xa9\x16\x87\x4c\xbe\x41\x81\x3a\xb8\xa1\x87\x09\xc4\xc0\x93\xd2\xe6\xef\x9e\x41\xde\x55\xf3\x01\x92\x3c\xf9\x9d\x90\x7d\xd1\x98\xe1\x35\xc4\x70\x59\x6f\x48\xc0\xc5\xe1\x14\x86\xe2\x0e\xa9\xe0\xf0\x65\xe7\xe9\x4d\x92\xd5\xa9\xe9\x72\x73\x0c\x89\xee\x28\xb5\x04\xa3\xb1\x44\x90\xf2\xb0\x51\x3a\x5c\x67\x76\xfc\xf0\x24\x9b\x97\x8e\x25\x1c\x52\x73\x5c\x07\x23\x26\x47\xaa\x90\x3f\x05\x6a\xed\x16\x29\x46\x9a\xdd\x78\x33\x6b\x42\xa1\x1b\xe0\x16\xcb\x16\xd5\x5c\xcd\x3f\xfd\xa0\xaf\x60\xc5\x3e\x46\xa6\x7e\xbb\x2c\xeb\xf1\x28\xf9\x03\xef\x07\x1c\xfe\xcb\x6b\xba\xf2\xd8\x71\x4b\x64\x2a\x66\x7e\x7a\x8d\x17\x70\xfd\xfa\xcd\xaa\x09\xbf\x0e\x6a\xdb\xbe\x99\xfd\x2e\x00\x11\xb0\x65\x99\xa0\x86\x7a\xc5\x21\x54\xd6\xe3\x00\xfe\x63\xd8\xfe\x13\xed\xf6\x93\xf6\x39\xf6\x5e\xc5\xc7\x4c\xac\xf1\x74\x7a\xcd\x79\x3d\x00\x63\xac\xdb\x34\xdf\x7b\x7a\x22\x53\xdd\xe8\xd0\x78\x31\x5c\x25\x1d\xe0\x00\xcb\x72\x75\x03\xea\x22\x5d\x8c\x15\x01\xf1\xbe\x4d\x41\x33\xe3\x6c\x3e\xe3\x12\x22\xba\x06\x85\x6e\x97\xfd\xf6\xcf\xd9\x9f\x6e\xae\x2e\x4f\xb6\x3c\xd7\x1b\x0e\x19\xc1\xb6\xac\x89\x15\x6c\xc3\xe3\xb1\xbd\xf5\x4a\xe4\x5c\x9e\xb0\xb5\x9a\xe0\x1d\xeb\x4b\xb6\x29\x8a\x4c\xbf\x3c\x3d\x5d\x27\xc5\xa6\x5c\x4e\x23\xb5\x3d\xf5\x5d\x73\xca\xb3\xe4\x74\x99\xaa\xe5\x69\x2e\x00\x65\x7b\xf2\xdd\xf4\xfb\xef\x60\x64\x4e\xef\xbf\x3b\x85\x9b\xb5\xe9\x5a\xfd\xcb\xdb\xef\xff\xfd\x0f\xff\x66\x0a\xce\x76\xc5\x46\xc9\x97\x74\x81\xdb\x5b\xf6\x09\x7a\xe5\xa7\xf8\x4a\xed\x2b\xff\x3e\xfd\x7d\x58\x0d\x7a\x74\xab\x62\x91\xea\xd3\xfb\xef\x16\x76\x60\xa6\xd9\xee\x37\x5c\xea\x57\xc3\xa5\xde\x25\xc5\x6f\xb8\xd4\xaf\x8a\x4b\x1d\xee\xe1\x38\x1b\x03\x44\x9f\xde\x3e\x9a\xbf\x3b\x1b\x69\x43\xef\xfb\xec\x50\xcb\xe6\x10\x66\x0d\x1c\xb1\x45\xdc\x89\x51\x47\xec\x5a\x73\xdd\xd1\xa1\x23\xc4\x36\x96\x6c\xbf\xd3\x99\x1f\x95\x24\x0d\x28\x90\x24\x02\x22\x67\x0c\x09\x66\x3c\x69\x43\x9b\x12\xda\xe9\x98\xfe\x7b\x4a\x4a\xf2\xc7\xe6\x22\xa7\xe6\x1e\xc8\x43\x9e\xe2\xdb\x16\x9b\xa5\x1e\x2c\xff\xf8\x63\xb0\x76\x0f\xd4\x71\x75\x64\xc4\x38\x79\xa0\x2e\xb6\x5e\x1d\xd5\xd8\x70\x7d\x18\xc8\x6f\x86\x94\x7f\xee\x9e\xce\xa9\xe2\xd3\x07\xed\xc6\x61\x59\x14\x40\x24\x9c\xc8\x9a\xb2\x32\xcf\x94\x16\x7a\xca\xde\xd4\x94\x0e\x3d\x70\xf1\xfa\xcd\x19\xfb\xee\x87\x7f\xff\xc3\x5c\x3e\x6f\xd9\xb7\xc1\xde\xab\x7c\x4d\x38\x4a\xd8\xad\xb7\x5c\x17\x22\x3f\xcd\x57\xd1\x29\x5a\xb9\x53\xf3\xfe\x09\x7d\xf4\x44\xad\x4e\x1c\x25\xf1\x09\xb1\xb3\x4e\xb7\xf1\x38\x82\x81\xca\xd4\xc3\xbd\x86\x36\x1a\x0d\x9b\x12\x52\x11\xa9\x95\x23\x9f\xc7\x3c\x17\xd4\xa9\x50\xab\x96\xff\x78\x95\xaa\xa5\x7e\xe1\x08\xd0\xb8\xb6\xdf\xf0\x8c\x44\xdd\x4b\xf3\x71\xd8\xc9\xed\x14\x79\xca\x40\x85\xb5\x25\xe1\x71\x64\x4c\xc7\xb7\x2f\x36\xbf\xdd\x23\x1f\x03\xcf\x55\x29\x2d\xbb\xb3\x92\x42\xad\x00\xc5\x07\x9e\xb0\x45\x29\x40\xac\xd6\xec\xb4\x9e\x7b\x21\x17\x19\x6e\x30\x70\xab\xd0\xdd\xdd\x47\x32\x9c\xef\xeb\xe7\xa7\x60\x38\x3f\xb6\xdf\xc9\xa0\x7c\xa5\x0e\x3f\x16\x4a\x88\x4b\x69\x0c\xaa\xc2\x3c\xbf\xf7\x06\xd5\xd9\x01\xaf\x3e\xe4\xc9\x84\x33\x9e\x83\x93\x26\x4e\x0a\x75\x02\xa4\x35\x40\x85\x82\x9a\x03\x5d\xb0\x0a\xb8\x79\x1e\xb3\x4d\x9a\xe7\x07\xd4\x13\x1d\xf3\xcf\x41\x45\xc9\x27\xd1\x48\xe1\x49\x90\xac\x44\x4a\x91\xd3\x9d\xda\xde\x1d\x75\xe4\xbd\x74\x38\x94\xfd\x88\xac\x40\xd7\x3a\xe0\x83\x77\x78\x7c\x1e\x18\x81\x29\x03\xef\x73\xa3\xb6\xca\xb8\x33\xaa\xd4\xc1\x8f\x78\x7a\x81\x4d\xb8\xd3\xf7\xda\xf2\x0c\x49\xea\xbe\x5e\x6b\xcc\xd2\x32\x3f\x61\x50\x2f\x7c\x68\x94\xc4\xc6\xb2\x2a\x2a\xb0\xa7\xfe\x8e\x0d\xbe\x7f\xde\x00\xea\x01\x75\xea\x40\x2a\x96\x38\x9e\x93\xbf\x9a\x73\x8d\x99\x52\xee\xa4\xe0\x76\x6e\x04\xe9\x20\x17\x63\x48\xf7\x6a\xbd\xf9\xce\x6c\xe9\x72\x3b\x72\x0c\x1c\xc8\x78\xc8\x00\x70\x89\xb0\x5b\x8b\xb7\x3d\x69\x05\xdc\x76\xad\x4b\x2b\xcc\x1a\x2f\x2c\x5f\xe8\xb8\xaa\xde\xb8\x02\x88\x1a\xb4\x59\x6f\x4f\xb7\x04\xe8\x6c\xec\x63\x34\x08\xd6\xb7\xe8\x00\xdd\xc8\xf1\x8b\x11\x04\x56\xc6\xf4\x1d\x7c\x04\x27\x67\xa3\x07\x83\xb5\xd0\xd5\x81\xe3\x42\x6c\x7d\x11\xab\x36\x38\x3f\x32\xd4\xf9\xec\x1d\x53\xcb\xc6\xe1\xd1\xbd\x78\xef\x55\xa8\x77\x99\x98\xb0\x65\x09\xbf\x5f\x5e\xdd\x86\x68\x8d\x04\x5b\x7b\x12\x6d\x44\x74\x07\x01\x13\xdc\xf2\x9c\x68\x23\xb1\xe1\xcd\xa5\x97\xfe\x2a\x94\x85\x1e\xec\x1c\x1b\xba\x53\x04\x50\x39\x8b\x13\x9d\xa5\x7c\x07\x97\xbc\x12\x71\xfa\xfe\x82\xd8\x25\xb8\x18\x53\xb0\x2f\x5e\x3c\x7c\xa4\xcd\xa8\xcc\xfc\x7b\x63\xfb\x92\xe7\xcb\xa4\xc8\x79\xbe\x63\xbe\x33\x9b\xf6\x80\x69\xb1\xe5\xb2\x48\xa2\xb9\xdc\x0a\x2e\x43\x54\x1e\x5d\x72\x9b\x4e\x8e\x95\x20\xbe\xe0\xd5\x4a\x44\x85\x27\x1c\x04\xe7\xdd\xf5\xd4\xbe\x35\x38\xae\xed\x6e\xe5\xf5\x36\xfd\xc7\x44\x62\x7a\x7b\xb2\x05\xcc\x27\xcd\x21\xda\x1a\x0f\xbc\xbc\x01\xa9\x38\xda\x72\xed\x61\x10\xfe\x65\xe7\x14\x5b\x8a\xe2\x41\x40\x3e\x3d\x25\x00\xb6\xf9\xf8\x47\xcb\x05\x1c\xa7\xfe\xdb\xae\x9b\x1c\x20\xc1\x70\x81\x85\x60\x32\x47\xfc\x23\x6b\x0c\x3e\xcf\x28\x25\x11\xa2\x3d\xcf\x28\x6e\xf5\x0c\xb6\x69\x73\x7a\xcc\xef\x45\x3c\x97\x55\x5a\x25\xf2\x19\xfd\x82\x63\x5e\x08\xeb\x71\xac\x8d\xed\xe3\x41\xb1\xfc\x73\xa0\x92\xf0\x24\x92\x2e\xe9\xae\x47\x98\x0b\x1b\xfd\x94\xa7\x2a\xab\x09\x18\x7a\xf7\x03\x20\x59\x42\x5b\xa1\x1b\xd2\xc5\xab\xe0\x29\xdc\xa4\x74\xa4\x31\xc8\x28\xe7\x00\xb0\x14\x97\x6c\x44\x3a\xdb\xca\x98\x4b\x9b\x4d\xbd\x2a\x53\x64\x09\xed\x92\x0a\x23\x0e\x29\x9b\xf9\xf1\xf5\x32\x80\x5c\x5c\x8d\x05\xda\x62\x0e\xf6\x10\x80\x91\xd1\xd6\xd9\x59\x2f\xa4\x46\x41\x6a\x2b\x2b\x04\x81\xe7\xb5\x28\x60\x37\x8f\xcb\x14\x93\x83\x21\x62\x0e\x7c\x54\x3c\x4d\x59\x52\xe8\xb9\x74\xf4\x59\x48\x86\x0e\x16\xd6\x86\xd4\xad\x22\xad\x74\xba\xb6\xa4\xdd\x0f\x7e\x58\x12\x25\x45\x03\xc2\xbd\x0b\xa5\x38\xb2\x4c\x70\xcc\x65\xc3\x61\x9b\xcb\xf0\xcc\x55\x1f\x04\x4a\xfc\x02\x8d\xf2\xc7\xc8\xc1\xea\x41\xe4\x83\xb0\xfb\xe8\x21\x99\xb2\x19\xb6\xce\x1c\xb8\xac\xca\x26\xd6\x96\xf2\xe7\x09\x69\x69\x4e\x35\x85\xb6\x31\x72\x7f\x6e\x05\x39\xe7\xa8\x4c\x79\x9e\x02\x27\xfd\xaa\x4c\x59\xb2\x0a\x04\x43\x61\x0c\x90\x3c\xc9\x0c\x57\xa4\x60\xaf\xb6\x51\x72\xcd\xb7\x22\xc8\xdb\xa6\xf0\x4e\x1a\x60\x28\x90\x11\x1a\x2f\xe7\x4d\x59\x2f\xa6\xec\x75\x5d\x61\x1e\xd6\x44\x40\xba\x98\x68\x34\x7f\xae\xbe\x41\xca\x21\x2a\xd5\x27\x2b\x73\xa4\x7c\x16\xac\xba\x8e\x11\x04\xf2\xf6\x71\x00\x0d\x4b\xdd\xdf\x8f\x1a\x6e\x4d\x39\x36\xaf\xd6\x60\x1b\x6e\x41\x74\x54\xd0\xee\x0a\x23\x2b\x19\x12\x56\x1e\x50\x51\x47\x08\xda\x52\xd9\x6d\x8f\x3e\x29\x8c\xe3\xc8\xaa\x06\x6a\x3f\xe3\x2b\x1a\xcc\x9c\x10\x8e\x33\xa4\x67\xd7\xbc\x18\x8b\xcd\x71\xc9\x38\xe3\x2b\xda\x8a\x83\x1a\x52\x4d\xb0\x1e\x23\xeb\xe9\x25\xf8\xc7\x57\xd4\x49\x3f\x7b\x3d\x00\xaf\x89\x5f\xc9\xa1\xb4\x4c\x87\xae\x05\x7a\x2e\x69\xb3\x1b\x9f\xfe\x39\xf3\x73\x0e\x04\x8f\x98\xa9\xfe\x94\x5d\x49\x81\xc8\x39\xb5\x0a\x36\x15\xaa\x00\x29\x23\x01\xd9\xbc\x0c\x24\xa8\xd3\x44\xde\x59\x6a\x09\xb3\xe4\x26\x8c\xfb\xd2\xc1\xea\xe1\xb4\x41\x2b\xd2\xe1\x4b\xb6\x49\x33\x1c\xe1\x5e\x0e\x4b\xd0\x6c\x3f\xf3\x07\x00\xd4\xf1\x16\xa0\xad\x1d\xc3\x87\xa5\x17\x49\xee\x4e\x71\x15\x8d\xf1\x10\x35\x5a\x24\xc5\x6e\x5f\xff\xbe\xdf\x54\x51\x88\x23\x84\x8c\x3e\x5c\xbe\x3e\x7f\x73\x71\x59\x55\x1f\xfa\xf3\x87\xf3\x0f\xd5\xbf\x5c\x7f\xb8\xbc\xbc\xb8\xfc\x63\xf8\xa7\x9b\x0f\x67\x67\xe7\xe7\xaf\xab\xcf\xbd\x99\x5d\xbc\xad\x3d\x67\xfe\x54\x7d\x68\xf6\xea\xea\xba\xa6\x77\x64\xc5\x8a\x82\x3f\xdd\x5e\xbc\x3b\x7f\xbd\xb8\xfa\x50\x91\x4c\x7a\xfd\x9f\x97\xb3\x77\x17\x67\x8b\x96\xfa\x5c\x9f\x9f\x5d\xfd\x7c\x7e\xbd\x47\xf1\xc8\xb7\xb7\xb5\x4b\x1f\x03\x3e\x76\xb0\xfe\xd5\x8c\xad\xf2\x44\xc8\x38\xdd\x21\xf6\xde\x9e\x6c\x6b\x60\xda\x70\xef\x4d\xb6\x42\x95\xc7\x40\xe8\x6f\x37\xa8\x50\x0f\x2c\x18\x58\x1a\xa5\xcc\x72\x7d\xd7\xc9\x91\x58\xe4\xcd\x5b\x81\xde\x4c\xa1\x22\xdf\xb9\x5c\xb4\xbe\xea\x78\x06\x25\xfa\x08\xcb\x44\xde\x57\x17\xf0\x8c\xf2\x32\x2b\x92\x65\x77\x52\xc4\x40\x66\xa1\xf1\x67\x6f\xe4\xfb\x6b\x27\x47\xb9\x6c\x37\x8c\x95\xdc\x80\x63\x80\xc7\x50\xc2\xa1\xb2\x6e\xee\x6d\x0b\xd6\xcc\xca\x65\x9a\x44\x2c\x89\xeb\xf1\x14\x4c\x61\xc3\x90\x71\x9d\x16\x34\x13\x39\xb8\xaa\xe6\x04\x90\xe5\xe2\x84\x97\xc5\xc6\x2a\xce\xbb\x4c\x46\xa4\xe9\x14\x51\x2e\xf0\x2e\x40\x68\x08\xd2\xa2\x9e\x57\xf0\x25\xa8\x0c\x65\x70\xc7\x40\x16\x33\x0d\x28\xda\x3b\xee\x08\xf0\x4d\x2c\x7d\x44\x90\x14\x9f\xef\xed\x1a\xaa\x71\xa2\xeb\x62\xce\xb0\xc3\xe3\x8f\x56\x15\xcc\xb4\xdb\x58\x6a\xa7\x8a\x85\x83\x6c\x73\x37\xda\x9b\xb1\x6f\x8e\x85\x13\xa5\x9a\xcc\x40\xa5\xd3\x4f\x67\xb9\x80\x4d\x84\xa0\x00\x36\x7e\x01\xd0\x15\xca\xf5\x80\x14\x0f\x73\x54\x5b\x8a\x0d\x4f\x57\xe8\x71\x98\xa1\xf1\xeb\xaa\x39\x45\x6f\xd5\x9d\x90\xd7\x38\x60\x5f\xc5\x1c\x4a\x3c\xf9\xf8\x9c\x7e\x17\x11\xf2\x21\x4c\x53\x47\x3b\xab\x6c\xae\x1b\x38\x53\x05\x9e\x13\x82\x9f\x31\xa5\xc3\x33\xf6\xda\x34\xb9\xd5\x2a\xf9\x6c\x0a\x9c\x4b\xd1\xca\x59\x0a\x78\x21\xcb\xae\xe4\xec\x32\x60\xa3\x90\xa2\xe6\x4e\x48\xd0\x13\x43\xb9\xe1\xbd\x73\x76\x5c\xfc\xbc\x39\x16\x3d\x01\x7d\x88\xf9\x25\x15\x99\xb5\xf0\x96\xc7\xf6\x53\x81\x39\x36\x53\xf6\x9a\x88\x37\xcc\x5f\xce\xde\x5e\x9c\x5f\xde\x2e\xce\xae\xcf\x5f\x9f\x5f\xde\x5e\xcc\xde\xde\x0c\x5d\x7e\x8f\x91\x17\x55\x5b\x7d\xf5\xf4\x20\x67\x21\x4e\x69\xe5\xf9\xf4\x5c\xd7\x28\xbf\xec\x60\x48\xf6\xd7\x3e\x89\xb3\x45\x9c\xe8\xc8\x6c\x7f\xbb\x85\x90\x31\x90\x3d\x1f\x34\x55\xdb\x8b\xaa\xb7\xc2\x3d\xc1\xdc\x13\xd6\x82\xe0\x6e\x77\x6f\x67\xb4\xfb\x1d\x50\x77\x10\x86\xcc\x85\x59\xfc\xb1\x39\x1f\xb8\xdd\x66\xba\x5f\xe1\xc3\x14\x77\x5c\xdb\xaa\x45\xd4\xdb\x84\xf5\x4d\xb4\x2e\xb9\xb1\x8f\xf6\x31\x80\x1c\x76\xf4\x0a\x31\xf0\x85\x8c\xd3\x49\xa0\x96\xca\x12\x3d\x97\x5b\x2e\x63\x5e\xa8\x7c\xd7\xd1\xc4\x61\xc6\x33\x5c\x36\x55\x13\x1a\x6e\xd9\x52\x88\xd8\x8e\x02\x3e\xca\x65\x7d\x2a\x21\x2f\xf5\xed\xd5\x4f\xe7\x97\x37\x8b\xf3\xcb\x9f\x17\xef\xaf\xcf\xdf\x5c\xfc\xea\x90\x90\x19\xd7\x6d\xea\x88\x59\x2e\x8c\x75\xb1\x34\x1f\xad\xf6\x05\x25\x0b\x6d\x39\x24\x53\x95\xac\xe6\xd2\x5a\x96\xdc\x17\xbf\xc9\x55\xb9\xde\xb4\x17\x54\xaf\xe5\xfb\xd9\xed\x8f\x07\x55\x13\x48\x98\x50\xd7\x0c\x57\x5b\x13\x11\x9a\xac\xc8\xee\x21\x8c\xb4\x56\x3d\xa0\x12\x83\x47\xdb\x6e\x19\x3a\x2c\xda\x41\xa7\x97\xa6\xd1\xea\x75\xfe\x5b\x1e\xef\x9a\x40\xb7\x81\xdd\xac\x6c\x23\x80\x50\x46\x79\xcc\x46\x69\x2f\x5b\xfe\x56\xd9\xc1\xbe\x3f\x49\xc5\x7a\x2d\x62\x9c\x5e\xf5\x82\x29\x06\x47\x26\x30\xf2\xfb\x7a\x5b\x2f\x92\x80\xdd\x11\x1b\xb3\xc3\x7b\x0d\x37\xe0\xef\xdd\x2b\xed\xb6\xe2\xcc\x8a\x64\x47\x4a\xea\x82\xcb\x8e\x8b\xe4\xfb\x26\x42\x73\x90\x29\xba\xca\x99\x4b\x7e\xa2\x80\x89\xbd\x32\xf0\xeb\xe0\x90\x2b\x34\x12\xea\x93\x14\xf1\x08\x04\xfc\x02\x55\xef\x96\x41\x80\xd8\xe9\xb5\xb5\x88\x4f\x1f\xdc\xe8\x3d\x3a\x11\xf3\x14\x84\x7a\x51\x29\x89\xc0\xe7\x18\x0d\x02\xf9\xb1\x4e\x60\xf0\xa8\x01\xa9\x7d\xf9\x67\xea\x7a\x3c\xb5\x56\x43\xcd\xdc\x72\xbb\xb9\x01\x72\xce\x5b\x3d\x62\xb7\x3f\xbe\x55\xf1\xc3\x7d\xc9\x59\xae\xe2\x32\xb2\xec\x37\x50\xac\x47\xb8\x50\x40\xcb\x6e\xb0\x31\x3b\x31\xc3\x4c\x87\x14\x11\x9f\x00\x76\x7d\x2e\xbb\xae\x93\xac\x0d\xe8\x08\x73\xbd\xb7\xbb\xd6\x31\x63\xdf\xd2\xfb\xdd\x4b\xd0\x76\xf6\xb0\x1c\x52\x66\x1f\x07\x67\xaf\x03\x20\x44\xe3\xb2\xe4\x78\x57\x5c\xdd\x8e\xbb\xc8\x2e\x9c\x55\x1d\x87\x63\x1a\x06\x03\xa9\x26\x87\xe0\x16\xb9\xe1\x1a\x3d\xd7\x22\xda\x54\x2b\x0e\xad\xa9\x12\xc4\xd5\xab\xeb\x3c\xc1\xe3\x22\x04\x83\x6e\x8c\x26\x78\xa6\x4e\x28\x86\x5b\x11\xfb\x72\xca\x85\xe3\x26\x7e\xe8\x1c\xb9\xc3\x0b\xda\x3d\x30\x58\x29\x2f\x65\xb4\x61\x59\xca\x31\x6f\x7a\xc3\x35\x4e\x69\x0b\x9b\xe0\xcb\x24\x4d\x0a\x20\xa4\xc1\xdb\xbc\x5a\x0f\x9b\x13\x0d\xcf\xef\x2c\x07\x2c\xf7\xec\x43\x7d\x93\xfe\x48\x78\xaa\x17\xc8\xff\x92\x00\x55\xbf\x64\x83\x37\x7a\xef\x02\xfd\xb4\x24\x70\xaa\x1f\x0e\x63\xf1\x60\x5a\xfa\xb6\x8c\x1b\x59\x2a\xf1\x7d\xfd\xf5\x4a\x7f\xb7\x6c\xd4\xe3\xc1\x19\x44\x6e\x3e\xc2\xcc\xd7\xa9\xcf\x5b\x57\xd6\x2a\x55\xbc\x43\x7e\xd7\x96\x8d\x4c\xe6\x5d\x65\xc7\xaa\x5c\x76\x71\xe7\x62\xad\xfa\x4b\xef\x8b\xfb\xdb\x75\xfb\x58\x71\xc1\xd0\x00\xf2\x42\x14\xc9\xb8\xd0\x46\xd0\x68\x5e\x88\x13\x78\xbd\xbd\x70\x4a\xa6\x1b\xdc\xe6\xc6\x44\xf3\x7a\x1a\x8e\xa1\x17\x60\x73\xcd\xd9\xf5\xe7\x92\x1b\xd3\x70\xb5\xba\x41\x86\x94\x63\x26\x59\x91\x34\x67\x58\xfb\x4a\xac\x7f\xf5\xb6\x7a\xa9\x12\xce\x81\xc1\xf9\xa7\x6d\xad\xb9\x31\x6f\x0f\x5f\x90\x55\x8d\xfa\x2c\x4f\x14\x30\x85\x90\x32\x7e\x0f\xc9\x60\xeb\x77\x8f\xe8\xc9\x4f\xa5\x28\x85\x99\xfb\xcb\x32\x5e\x37\x63\x9b\x23\xbc\x33\xdf\xa4\x8d\x7a\x60\xdb\x32\xda\x30\x5b\x38\x8b\x45\xca\x77\x95\xa6\x81\xbf\x54\xa8\x14\x68\x7b\x0f\xe4\x10\x8d\x4a\x5d\xa8\x2d\xc0\x4a\x7d\xb9\x79\x29\x61\xc2\x33\x5e\x14\x79\xb2\x2c\x8b\x56\x08\x5a\x85\x53\xec\xc0\x0b\xad\x9b\xf7\xe7\x67\x17\x6f\x2e\x6a\xb7\x49\xb3\x9b\x9f\xc2\x7f\xff\x72\x75\xfd\xd3\x9b\xb7\x57\xbf\x84\x7f\x7b\x3b\xfb\x70\x79\xf6\xe3\xe2\xfd\xdb\xd9\x65\xe5\xce\x69\x76\x3b\xbb\x39\xbf\xdd\x73\xad\xd4\xfc\x6a\xf7\x40\xf0\x80\xf2\xcc\x02\x5d\x2d\xf7\xb3\x3d\x5d\xd2\x57\x5f\xb2\x99\x25\x80\xab\x50\x14\xda\xab\x41\xc0\x12\xa0\x12\x32\xdd\x20\xbe\xe6\x05\x27\x65\xf9\x29\x9b\x31\x82\x01\x23\xbc\x5b\x1b\x67\x81\xd8\xb1\xcc\xe8\x60\x11\xc6\x63\x88\xfc\xc9\xcd\x8b\xdb\xa9\x15\xf1\xd2\xa5\x22\xa4\x41\xb7\xb9\x4c\x73\x79\x7e\x2f\x64\x51\x02\x47\x33\x4f\x53\x66\x05\xed\xe9\x81\x20\x4f\xdb\xd6\x52\x27\xdb\x24\xe5\xb9\xd7\x21\xbb\xa2\xb2\xc0\x61\xb7\x75\x75\xb4\x3c\xcd\x24\x60\x7b\x78\xf8\x70\xc1\xa0\xde\x67\x6f\x2f\xc0\x05\x8a\x0a\x2b\xb2\x61\x3f\x3e\x97\xc8\x7b\x46\x5f\xdc\x72\x48\x39\x28\x14\xc5\xd3\xf0\xf3\xf4\x70\xf7\x44\xd4\xc7\x2c\x62\x1b\x79\x7e\x2a\x58\x93\xab\xa4\xfd\x8f\x73\x59\xe4\xbb\xc1\x7e\xcd\x2d\xe4\xd8\x6a\xf0\x4d\x09\xc1\x54\xd5\x26\xc3\x70\x07\xb3\xa5\x5f\x82\xb3\x63\xe1\x75\x14\x8d\x77\x41\x77\x44\x33\x74\xf8\xdf\xa9\xd9\x84\xbe\xd5\x7e\x08\x69\x50\xa0\x17\x96\xaa\x94\xb1\x26\xac\xd5\x36\x91\xa7\x5b\xfe\xf9\x85\x6d\x29\xd2\x0a\x38\x85\x00\xa0\x8c\x12\xa9\x39\x89\xec\x8c\x91\xeb\xef\xae\xb9\xec\xe9\xaf\xfd\xde\xa2\xb5\xac\x70\xec\xf1\x67\x54\x44\x8d\xdd\x8b\x5d\xdb\xf8\x35\x54\x5e\x10\x99\x46\x0b\x1e\x0a\xc9\x72\x61\x1e\x74\x90\xb4\x14\x91\x86\xee\xdf\x00\x3d\xaf\x28\xd1\xb5\xdb\xee\xf0\x96\xf7\xa8\x65\xd3\x7a\xbf\xfc\x04\x32\x3d\xf4\x25\x33\x66\x78\xdb\x6c\x03\x9d\x04\xb5\xa7\x6b\x34\x33\x58\x7f\x51\x4b\xb6\x82\xbc\x13\x52\x9a\xce\x05\x04\xb6\x61\x28\x2c\xaf\x34\x10\x0b\x35\xae\xb0\xed\x14\x48\x85\x86\x70\xaf\x34\xc7\x2d\xf1\xa9\xa4\x1b\xbb\xef\x7e\x3f\x6e\x9f\x2d\xf2\x1d\xb3\x1a\x06\x61\xde\x0b\xa5\x7d\xd1\x9e\x0b\xf5\x2a\x65\xd2\xc6\x36\x76\x5d\x4a\xb3\x15\x3f\x06\xd8\x61\xf8\x6d\x56\xed\xa3\xf4\xcf\xbd\xa9\x21\x36\x10\x9b\xe3\xf3\x4f\x46\x1e\xf9\x73\x8d\x33\x92\x3e\x07\x40\x64\x2a\x3d\xdc\xd0\x96\x3c\xba\x7b\xe0\x79\x8c\xb1\x42\x40\x1f\x4c\xd9\x8f\xea\x41\xdc\x8b\x7c\xc2\x22\x91\x17\x9c\x08\x9b\x34\x5c\xbf\xc2\x82\xa2\x72\xe6\x12\x70\xf9\xc8\x7e\x25\x41\xa4\xbb\x48\xd6\x1b\x73\x9e\x0c\x2e\xcf\x55\x6e\xcc\x51\x81\x5c\x7d\x99\x88\x88\x22\xa7\xa3\x03\x56\x29\xbf\x6f\x32\x50\x1d\x92\xdb\xcf\x2e\x5c\x72\xa1\xbd\x9d\xb2\x5c\xfd\x7d\x70\x07\xea\x30\x32\x9a\x48\x6a\x32\x61\x6b\x95\x72\xb9\x9e\x4e\xa7\x4c\x14\xd1\xf4\xc5\xa8\x89\x4e\x05\x86\xf7\x5d\x0e\x54\x9b\x2a\xa5\x45\xba\x73\xb4\x2e\x2e\xed\x01\x70\x76\x9f\x0b\x21\x75\x82\x21\x8f\x96\xe9\x7f\x53\xe7\x08\xf8\xb2\xa1\xf3\xf6\x93\xea\xe8\xa4\xba\x8e\x72\x40\xfa\x67\x44\x49\xf8\x7c\xfb\xc9\xeb\xa0\x24\xd1\x0e\x5e\x59\x25\xc7\x66\x3e\xfe\xac\xba\x84\xac\x0f\x62\x5b\x6b\x2d\x89\xa8\x29\x0e\xca\x16\xeb\x8a\x58\xd4\x12\xf8\x8e\xc8\xdd\xeb\x49\xc3\x1b\x99\x81\xd7\xb2\xee\x5a\x96\x45\x6d\xb8\x47\x2f\x8b\xfd\x6a\x04\xad\x0d\x1a\x99\xe1\xe8\x53\x91\xc7\xb8\x4e\x98\x24\x95\xee\xe0\xc4\xe5\xf2\x1d\x21\xb2\x1c\x07\x91\xf1\x4a\xe0\x1f\x32\x6f\xfc\xcd\x81\xa3\x0c\x0a\x2e\x0a\x74\xa1\x72\xbe\x16\x6c\x2b\xe2\xa4\xdc\xb6\x1a\x1b\x57\xdd\x63\xd0\x5e\x2a\x2d\xb7\xdd\xe4\x6d\xc7\x3a\xd0\xbe\x92\xf8\x5f\x67\xf0\xb9\xc1\x0e\xb4\x97\x6c\xb7\xa2\x30\x54\x5f\x0c\x83\x53\x5f\x9b\x9d\x32\x4f\x34\xd0\x0c\x1e\x92\xe8\xe6\x8a\xc1\xa2\xe1\xb6\x6e\x97\x61\xf8\xb5\x32\xba\x27\xf6\x76\x87\x5e\xd1\x38\xaa\x70\xc5\xd7\xbd\x29\xd4\x31\x64\xa3\xc7\x08\x24\x47\x0e\xba\xd7\x04\xb7\x31\x20\xff\x26\x90\x0b\x14\x48\x37\xf1\x85\x62\x2b\x9b\x3a\x75\x27\x02\x32\xaa\x18\x68\xc1\x1f\x90\xd9\xe4\xa7\x1f\xb4\xbd\xb3\x27\x58\x85\xf7\x58\x0a\xff\x11\xbc\x1b\xb8\xff\xce\xa2\x69\xb0\x85\x58\x04\x50\x46\xc5\x5c\x16\xad\x05\x78\xb0\x19\x94\x85\xaf\xfc\xcc\xcb\xb4\xfd\x71\x2a\x1f\x1e\x45\x89\xa1\xd9\x2f\x37\x0c\xbb\x9a\x08\xa4\xf3\xbe\x8a\x06\x85\xec\xc7\xf3\x40\x77\x2d\x0e\xf0\x04\x2b\xe3\x80\x9d\x6e\x19\xc4\x4d\xb7\x8b\x22\xda\x78\xcf\xa3\xaa\x15\x4c\xfa\x71\xd4\xce\xad\xa7\xc4\x46\xa8\x64\x88\x39\x4b\xd6\x52\x85\x6a\x0e\x4a\x0a\xb8\xa4\x31\x06\x48\x85\xc5\xb2\xa4\xd8\x0f\xec\x19\xc9\x13\xb5\x6f\xaa\x15\x0a\x01\x1b\xd4\xce\xca\x5d\x1b\x1c\x29\x12\x64\x97\xb1\xa8\x48\x3c\x13\x91\x1c\x59\x9d\x2a\xb9\x9a\xaf\x3f\x97\xd5\x4f\x35\x3a\xc9\x22\x6f\x92\x5c\x20\xc3\xa9\x36\xde\x5b\x91\xdc\x9b\x85\xda\x9c\xd6\x6e\x82\x82\x05\x68\xce\xbd\xb9\xc4\x6a\x07\x34\xa9\x77\x62\xa7\x43\xed\x33\x9a\x51\xac\x6b\x42\x26\xa6\x3d\x34\x5e\xfb\x87\x02\x3a\x6e\x11\x68\xb9\x0f\xdb\xcb\xf0\xa3\xef\xcc\xcb\x3d\x90\xbe\x46\xe1\x66\x0e\xfa\xdc\x34\x1f\x53\x24\x33\xe1\xfb\x99\xc6\xd0\xa3\x76\x5a\x74\xfe\x7d\x78\x16\x0e\xbe\xe6\x7c\x3b\x97\xc4\xa4\x1c\x6c\x72\xc6\xe0\x34\x87\x8d\x12\x66\x91\xbf\x75\x57\x21\xfb\x00\xb2\x3b\x4b\xfc\x57\xfd\xa4\xbd\x77\xb4\xd2\x99\x73\x09\x9f\xc6\x94\x42\x1b\xc3\x6b\xfd\xe0\xfe\x91\x10\xf2\x7e\x71\x30\xdc\xb4\xbe\x32\xda\x40\x56\x4e\x4e\xf5\xc6\xa1\x83\x13\x69\x6c\x27\xde\xc8\xb6\xbd\x02\xdd\xa0\xb6\xdb\xa4\x28\x6a\x5d\x60\xf1\x5a\x37\xe7\x67\xd7\xe7\xb7\x15\x58\x19\x01\xb2\x1c\xcf\x9e\xee\x9c\x87\xfb\x36\x4f\xaa\x68\x27\xf8\x2d\xc8\x5a\xc2\x27\x89\xed\x0e\x25\x04\xf1\xec\x17\x09\x33\x79\x66\xb2\xb5\x7d\x3d\xad\x78\x4a\x70\x9c\x45\xa6\x8d\x46\xc7\xd9\x7a\xbe\x3e\x7f\x33\xfb\xf0\xf6\x76\xf1\xfa\xe2\xfa\x29\xe0\x71\xf4\xd3\x01\xf8\xb8\x1b\xa2\xa7\x3f\x53\xb2\x10\x9f\x8f\xf2\x48\xf2\x52\x2e\xf8\x88\x3c\x0d\x27\x50\xd1\xe7\xec\x61\xa1\x4d\x7a\x7d\xc7\x7d\x4f\x5c\x8b\xb8\x9f\x3b\x36\xfd\x95\x0f\x99\xae\x92\x34\x85\xb4\x55\x77\xb9\x40\x29\x51\xa6\x53\xc1\xfa\x5a\x7a\x49\xda\x51\xe6\x72\x59\x51\x3f\x80\x80\xe7\x46\x29\x8d\xe3\x03\x32\x58\x59\x9e\x40\x3a\x60\x1f\x03\xff\x3a\x91\xc2\x57\x03\xe5\x7e\x4b\xc9\x3a\x69\x93\x69\x10\x9f\x32\x2b\x99\xdc\xce\xa1\x9e\xb6\x9d\x71\x95\xf9\x69\x9d\x6f\xfb\xa3\x6b\x21\x2e\xe2\x44\xa2\x5b\x5e\x59\xcd\x37\xed\x53\xf7\xd4\x2f\x01\xe8\x77\x33\x92\x1c\x6e\x60\x40\x51\xd7\x0f\x24\x0d\x04\x2a\xf3\xf8\xab\x99\xbb\x04\x31\x44\x6a\x55\xeb\x67\xb3\x11\x98\xbe\x4e\xe0\x9e\x86\x13\x13\x47\x94\x96\xba\x10\x39\x05\x8d\x66\xbf\xdc\xcc\xe5\x2b\xb3\x79\xbf\xa0\x3d\x98\xd4\x5b\xf0\x13\x88\x60\x51\x95\xef\x5b\xff\x2c\xb4\x60\xcf\x31\x42\xbf\x15\x5c\x6a\x54\x3b\x4f\x53\x91\xfb\x99\x81\xf5\x11\xc6\x64\x83\x92\x09\x50\x8f\xfa\xf7\x49\xf0\x5a\xc1\xaa\x35\xf5\xa5\x5f\x49\xf2\xb9\x3e\x9f\xba\xb2\xa2\x01\x1e\xfb\x94\x33\xa7\x25\x4b\x63\xe8\x2c\x22\x64\x71\xeb\x24\xaa\xe6\x4c\x0c\x9a\x4b\xb7\x58\xdc\x6f\x53\xe9\x11\xa7\xd2\x80\x7d\x3d\xdc\x25\xd8\x46\x19\x03\xea\xa4\x4d\xfc\x25\xbb\x63\x65\x48\x01\xfd\x65\xba\xb1\x75\xd7\xa9\xc9\xfb\x1d\xb1\xeb\xa0\x9e\xdf\x71\x60\xd6\x59\x0b\xfd\x8b\xd7\x91\xb2\x37\x5b\xbd\xca\x81\x4f\x43\xb3\x36\xb3\x68\x43\xa9\x0a\x4b\x98\xe0\x00\x7e\x84\x56\x34\x0f\x38\xa6\x8e\xde\x3a\x12\xfb\x85\xf5\x52\x46\x3b\xaf\x2d\x17\xba\xf7\x15\x30\xae\x93\x2c\x84\x5a\x84\xc9\xe7\x36\xe1\xdc\x11\x56\x8c\x99\x7c\x87\xeb\x3b\x56\xe7\x9c\x23\x3f\x3c\x08\xea\x71\x79\x75\x79\x1e\x02\x35\x2e\x2e\x6f\xcf\xff\x78\x7e\x5d\x49\x3e\x7e\x7b\x35\xab\x24\x10\xdf\xdc\x5e\xd7\xf2\x86\x5f\x5d\x5d\xbd\x3d\x6f\x20\x3e\xce\x6f\x2f\xde\x55\x0a\x7f\xfd\xe1\x7a\x76\x7b\x71\x55\x79\xee\xd5\xc5\xe5\xec\xfa\x3f\xc3\xbf\x9c\x5f\x5f\x5f\x5d\xd7\xbe\xf7\xe1\xac\x1f\x3b\x52\x69\x46\x7b\xf0\xcb\x5f\x4d\x07\x3c\x90\xad\xcb\xb8\xaa\x7f\x79\xc4\x2a\x1e\x08\x41\xdb\x37\x1d\x6d\x6e\x71\x1c\xd2\xc3\xe3\xc2\x30\x55\x1d\x35\xeb\x1e\x5f\xb0\xb3\xd2\x75\x19\x3f\xce\xec\x99\x5d\x6d\xf1\x18\x90\xc0\x5e\x07\xd0\x7d\xa5\x16\xb6\xd6\x05\x24\x60\x61\xd7\x66\x70\x7f\xb7\xe6\x9d\x72\x35\x32\x7e\xf2\x9a\xda\x6f\xec\xab\xa7\xe7\x1d\xda\x43\xdf\xf2\x58\xd4\x0d\x7d\x95\x0e\x3e\x66\x33\xa3\x93\xd8\x3a\x0a\xf6\xc7\x60\xe3\x86\x66\x98\x99\x13\x4c\xc7\x2e\x65\xc5\xf6\x0c\x8f\x7e\xaa\xb0\xb1\xf5\xa7\x8f\x34\xeb\x5e\xe3\x95\x18\x51\x6f\xe0\xf7\x19\x53\xef\x5b\xae\xef\xc6\xd6\x9b\x3e\xd2\xac\x37\xb8\x7d\x07\xd5\x1b\xc2\xfd\x45\x3b\xe7\xc7\x08\x23\x16\x16\x53\xad\x9e\x4b\x48\x76\x8f\x04\x02\xa6\xc3\xea\x68\x16\xc0\xd3\x1e\x2f\x33\x3e\xfc\x1a\x07\x6a\xe3\x96\x2b\xaf\x51\x60\xdf\xc0\xaf\xd0\xc2\x65\x2e\xf8\x5d\xac\x1e\x68\x3c\xea\xb8\x58\x36\xc8\x9a\x57\x3b\xc8\xd8\x70\xbb\x45\x80\xec\xb9\xf9\x24\x62\xf4\x7c\xf1\x00\x12\x4c\x88\xc4\x19\x7d\xb0\x40\x79\xb3\xce\x9a\x02\x3c\x35\xd2\x8f\xce\x5c\xa2\x37\xdf\xa6\xde\x09\x31\xbd\x8c\xd3\x27\xb0\x23\x9c\x0f\x8d\xd0\x02\x1d\x0c\x2c\x65\x72\x94\x39\x40\x09\x97\x39\x9c\x99\xa0\x43\x12\x09\xa1\xf4\xdc\x1c\x78\x72\x11\x25\x5a\x04\x0a\x46\xad\x3b\xf6\xa7\xe3\xf4\x0e\x0a\x5e\xb4\x06\x9d\x07\xc7\x3c\x79\x54\x94\x3c\x65\x9f\x4a\x91\xef\x88\x2e\x0e\xc3\x94\xf8\x97\x88\x4b\x4c\x19\x29\xc4\x36\x83\x14\xe4\x30\xd7\x61\x2e\x7f\x81\xf0\x24\x0e\xc1\x33\xcd\xfe\x08\x80\x0f\xfb\x30\x6d\xc2\x5b\x5e\xc0\x5e\xfc\x67\xfc\x86\xfb\x6d\x3a\x97\x15\x45\x90\xe0\xad\x8a\x38\xc8\x74\x2e\x2d\x25\x7f\xac\x22\x3d\x85\x13\xdf\x54\xe5\xeb\x53\x12\xb3\x35\x93\x5d\xdd\x2d\x95\xba\x3b\x15\xf2\x14\x62\x52\xc5\x29\x2f\x0b\x75\x0a\x60\x31\x1c\x7f\x7d\x6a\x35\x2f\xad\x68\xa8\x3e\xdd\x24\xf7\x02\xfe\xdf\x74\x53\x6c\xd3\x7f\xd1\xd9\xe6\xf3\xc9\x3a\xcd\x4f\xcc\xbb\x27\xe1\xbb\x27\xf6\xdd\x13\xfb\xee\x89\x79\x0d\xff\x5f\xb6\xc3\xcb\x2d\xf1\x99\x9b\xbd\x6c\x32\x97\x89\xd4\x22\x2f\xc0\xfb\x79\xc8\x93\xc2\x4b\xaf\xec\xd8\xb3\xff\xf9\x1f\x36\xcd\xf9\x03\x26\x0f\xbe\xe6\x05\x7f\x8f\xf1\xc5\xbf\xff\xfd\x19\x5c\x27\x63\x2c\x39\xe3\xf9\xa7\x52\x14\x73\xa9\x85\x59\x84\xec\xff\xcc\x25\xdc\x3f\x6f\x77\x8b\x02\xe3\xae\x18\x83\x8c\x35\xfb\x0f\x2c\xf3\x02\xa9\x13\x63\x6d\x4a\xea\xc8\x2b\x48\x78\xda\x22\x93\xdc\x71\x41\xf1\x29\x7d\x4d\xcf\x8f\x58\xd6\x9f\xd2\xea\xaa\xb6\xe2\x1f\xfa\x53\x0a\x1b\x68\xaa\xb8\x85\xaa\x31\x37\x79\xe1\x9c\x4c\x95\x6b\x5b\x23\x0d\x60\xc4\x93\x82\x14\xda\xd7\xca\x0d\xd2\x37\xdb\x7b\x8b\x86\x19\x81\x9b\x12\x7f\x0b\x03\xd8\x81\xc4\xac\x90\x1b\x8c\x84\x82\xe7\x86\x2d\x07\x9f\x94\x80\x03\xae\x3c\x0c\x5c\xe8\x3f\xbc\x3c\x3d\x9d\xb0\xb5\x86\xff\x59\x7e\x82\xff\x01\xec\xd4\x63\x31\x90\x36\x3a\xd3\xc1\x00\x9b\xa3\xbc\x7f\x24\x1e\x03\x43\xf8\x25\x48\xaf\x6b\xd3\xf4\x55\x29\xe3\x54\xf8\x5c\xc8\xca\x95\x48\xaa\xac\x4c\x3b\x06\xc6\xea\xf2\x22\x30\xc6\x4b\x11\x71\x63\xf8\x1a\xdf\x46\x68\xad\x5a\x15\x42\x62\x34\x2c\xf7\xea\x63\x1c\x23\x57\xe0\x16\x03\x10\x94\x17\x04\xb8\x17\xf0\x47\xf8\x08\xb0\x48\x4f\xea\x3f\xb1\x9d\x2a\x89\x10\x19\x68\x3e\x63\x11\xa5\xc0\x3a\x6f\xa9\x4e\x58\x2e\x8a\x32\x97\x8c\xb3\x8c\xcb\x98\x6b\x98\x81\xab\x1c\x6e\xb4\x72\xc6\x9b\x15\x9d\x20\x18\x59\x95\x05\x10\xf8\x20\xae\x22\xec\x09\x64\xac\x0e\xea\x3c\x09\x2a\x81\x7b\x02\x10\xe7\x36\x5e\x9c\xce\xa5\xd5\xc7\x22\x24\x20\x46\xca\x22\x95\xed\x88\x9e\xa5\xde\xe9\x89\x8d\x9c\x51\x77\x4f\x3c\xda\xa6\xfe\x2c\x5c\xc2\x85\x17\x8b\x40\x8e\x5d\x04\x0a\xbf\x56\x23\xf9\xb9\x90\x91\x8a\x45\xae\x5f\x98\x65\x98\xb8\x73\x07\xfa\x0f\x89\xf6\x83\x01\x56\x8a\xc3\x0d\x1d\x44\x0b\x4d\xf1\x4e\x45\xc6\xf4\x4e\x85\x4e\xb9\xcd\xcf\xd9\xbf\x54\xbe\x75\x0c\x50\x5b\x7d\xe9\x3f\xbf\x28\x1e\x28\x44\xb5\xda\x33\xe7\xe1\x21\x08\x5c\xb2\xa1\xc5\xc5\x42\xd1\xc7\x21\xe7\xc4\xca\xa9\x26\x05\x28\xb6\xe5\x42\x17\x73\x49\x3b\xf0\x84\xad\x04\x37\x7e\xde\x84\x45\xfa\x1e\x8d\x31\x6e\xf7\xc5\x83\xf2\x08\x24\xab\xc5\x01\x50\xe0\x4a\xe1\x3e\x48\x8c\x8f\x01\x9e\x82\x47\x05\xc2\x2b\x3a\x95\xb7\xad\xab\x02\x9d\xd5\x6a\x10\x0f\xe8\x07\x2b\xed\x50\x97\x51\x0a\x95\x45\xa0\x27\x76\x78\x51\xcc\xea\xf5\xc0\x1f\x8c\xe1\xc1\xd6\x21\x08\x26\x30\x8e\xe0\x71\x13\x92\x18\xd7\x99\xbf\xc3\x0d\xf9\xb5\x21\x36\xd3\xb5\xa8\x7a\x3a\x02\x2a\x70\x58\xdc\xc2\xbc\xba\x37\x60\xa5\x45\x6e\x75\x27\xb0\xad\xc8\x86\xb7\x49\xf2\xf8\x24\xe3\x79\xb1\xb3\xd3\x37\x4d\x96\x40\x57\x9f\x26\x77\x82\xcd\xf2\x5c\x3d\x3c\x76\x2f\x74\x9a\x96\xae\x13\xf6\x31\x38\xfe\xb1\xa7\xfc\x56\x2e\xcc\x7a\xb8\xe3\x30\xde\xcd\xae\xc0\x47\xeb\x77\x72\x51\xe4\xbb\x85\x99\x88\xdb\xac\xd3\x52\x0c\x4a\x19\x19\xee\xe4\x8e\xa3\xf4\xac\x85\x30\x3a\x29\x3d\x2b\xa3\xfa\xed\x50\x7a\xb6\xb0\x75\x36\x29\x3d\x2f\x2e\x2f\x6e\x2f\x66\x6f\x2f\xfe\x5f\xad\xc4\x5f\x66\x17\xb7\x17\x97\x7f\x5c\xbc\xb9\xba\x5e\x5c\x9f\xdf\x5c\x7d\xb8\x3e\x3b\xef\xe7\xe8\x69\xd6\xde\xbb\xe0\x27\x2c\xfc\xce\x4b\x76\x1b\x00\x35\x30\xd5\x82\xfc\x6f\xd2\x6b\x84\x59\x65\x16\x73\x22\xd7\x13\x58\xa8\x2f\xd9\x79\x9e\x5f\x6c\xf9\x5a\xbc\x2f\xd3\x14\xc0\x64\x98\xd7\x74\x96\x0b\x38\x78\x4e\xd8\x7b\x15\x5f\x04\xef\x41\x32\x66\x6b\x33\xe0\xfb\x3c\x8e\x73\xa1\x35\x7e\x7e\x42\xdf\x0f\xa0\x53\x2e\xd1\x93\xa0\x83\xfc\x9e\x27\xa9\x39\xbf\xbd\x64\xaf\x78\x74\xa7\x56\x2b\x4c\x1e\x9a\xb8\xb4\x31\xf6\xa9\x54\x05\x67\xe2\x73\x04\xbc\x54\xed\xf3\xe4\xad\x5a\x7f\x05\xa0\xf6\x80\xeb\xa9\x8e\x43\x0a\xe8\x72\x2d\xda\xb7\xf3\x76\x43\x40\xad\x7c\x87\xaf\xbe\xc1\x37\xdb\x03\x94\x45\xfa\x08\x79\xf2\x6f\xd5\xba\x5d\x25\x05\xbc\x6b\x92\x76\xa1\x8b\x84\x88\x58\x37\xd4\x9a\xe9\x44\xde\xcd\xe5\x2f\x1b\x21\x99\x2a\x73\xfc\x13\x1c\xf3\x8d\x9b\x99\x96\x7a\x23\x40\x36\x75\xc2\x1e\x04\xdb\xf2\x1d\xba\xcd\x70\x26\x70\xd2\x0e\x30\x65\x60\x17\x31\x6f\xa7\x89\x34\xd6\x22\x4b\x6c\x56\x46\x7d\xe8\x1f\xe3\xc4\x65\x59\xd9\xf8\xf1\xa4\xa9\x7d\xfb\x69\x05\x9d\x08\xa1\x32\x8f\x1a\xb5\x00\x21\xb2\xdc\xa0\x1c\xa9\xd4\x5d\x99\x79\xfe\xc6\x67\xf6\x72\x12\xba\xfb\x5e\x25\x31\x8b\xcb\x2c\x4d\x22\x67\x77\x1f\x54\xde\x49\x52\x8b\xe9\x43\xc3\x77\x9d\x7a\x52\x5c\x5f\xc3\x5a\x72\x93\x02\x24\x5d\x0f\x5d\xed\x13\x13\xf6\xb2\x44\x46\x69\x09\x9a\x58\xa5\x16\xf9\x49\x91\x27\xeb\x35\x38\xe0\x36\xd3\xf1\xdb\x67\xf4\xf5\x8c\x81\xc7\x27\xf5\x85\x29\xf7\xa9\x5a\x27\x11\x4f\x43\x68\xb7\x47\x45\x38\xca\x50\xbb\xec\x49\x31\x14\xb2\x40\x6c\x85\x3a\xa9\x90\xb2\x5c\x00\x6b\xed\x02\x4c\xf9\x82\xcc\xdd\x31\xf5\x5e\x31\x73\x40\xc7\x7a\x85\x84\x9e\xf6\x7a\xc1\xee\x70\xfe\xdb\x56\x36\x0a\x5c\x4c\x94\x94\x66\xea\x41\x8a\x1c\x3c\x58\x80\x7d\x98\x96\x4a\x05\xbe\x89\x93\x92\x72\xe8\x6c\x2b\xa5\xb6\x72\x30\x74\xcc\x1b\x5e\x27\xf7\x42\x7e\x79\x06\xe6\xe0\x03\x11\x8f\x36\x62\x61\xfd\xf2\xc7\x36\x59\x6e\x03\x18\x69\xac\xac\xa6\x43\x68\x4a\xdd\xf5\x26\x1c\x9d\xb0\xc6\x4d\xdb\x85\x17\x89\x3d\xf9\x68\xa6\x12\x8b\x58\x44\x77\x5f\xdc\x34\x7b\x90\x95\xad\x08\xe3\xec\xb5\x88\xee\xd8\x87\xeb\x0b\xcc\x85\x4e\x0a\x66\x4c\x81\xde\x78\x8d\x9a\xce\xb3\x5b\xc1\xd7\x4f\x40\xed\x34\x54\x64\xc7\xf3\xaa\x3b\x69\x31\x53\x21\x02\x44\x41\xb6\xa8\x31\x92\x94\x49\x04\x40\x30\x5e\x58\xe9\x15\x08\xc4\x33\xbd\x05\xa5\x95\xb2\x08\xe4\xc9\x52\xbe\x14\xa9\x6e\x6f\x70\xa6\xe2\x85\xbd\x27\x39\x16\xcc\xd3\x28\xcb\xc6\x31\xe8\xd6\xd1\x62\xd5\xb9\xf1\x58\x6f\xe9\x41\x76\xf7\x83\x0e\xc8\x45\x54\x48\x76\x0c\xe7\x7a\xae\x45\x4d\xaf\x3f\x59\x91\x1e\x0c\xd2\x19\x80\xf2\xb9\xb1\x97\xa6\xa4\xf7\x2a\x26\x98\x9e\x63\x33\x33\x5e\x90\xa0\xe8\x89\xc7\x55\x84\x55\x08\x51\xeb\xb0\x22\x04\x8f\x99\x5a\x51\x34\x31\xcb\xd2\x04\x68\x6c\x63\x64\xcc\x06\xee\x10\x5d\xcd\x0d\x08\x4b\xb3\x95\x0d\x28\x4e\xde\x5b\x20\x5e\xef\x7d\xa3\xbf\xe4\x32\xed\xaa\x06\xb9\xeb\x3e\xd5\xb1\xca\x67\x2e\x1b\xeb\xd0\x23\x74\x7f\x34\x6d\x9d\xaa\x25\x74\x54\x37\x28\xae\xc7\x40\x1b\xeb\x94\x27\xf1\x98\xed\xdd\xf6\xc9\x95\x7b\xb5\xaf\x82\x57\x36\xd2\xe1\xbe\x64\x87\x99\x11\xc9\x78\x78\x83\x5f\x4b\xe2\xdf\x77\xd6\x86\x0b\x42\xed\x6e\x08\x9d\x37\x5e\x10\xc5\x3e\xac\x0a\x67\x8e\x3b\x8e\xd5\xd5\xb6\x1c\x35\xd0\x4d\x5a\x98\x3d\x7d\xe9\x99\x64\xfa\x07\xf9\x08\x6e\x0f\x5c\xb9\x8e\xe0\x63\x0c\x4f\xb2\x1d\x3a\xc4\xf8\x9a\xfe\xf4\x83\x58\x49\xbe\x18\x34\xa2\xf5\x7e\xb7\xab\xf8\x98\x2e\x7f\x8a\x15\x55\x16\xca\x87\xfc\xa1\x3d\x17\xc0\x1e\x1a\x26\xb5\x81\xd9\xb8\x88\x3b\xe0\x02\xd6\x07\xb3\x4b\x73\x04\x08\x75\x14\x0c\x36\xcb\x85\xbd\x3c\xda\x89\xc2\x51\x1b\xa4\x56\x09\x0b\xee\x46\x5c\xab\xab\xdc\x2e\x96\xbe\xc1\xf1\x71\xc1\x4d\x06\xf9\x7b\x91\xda\x66\x4a\x02\x36\x05\x13\xb5\xe6\x92\x0a\xb7\x7a\xc6\xee\x7a\xa5\x92\xed\x37\xa1\xa8\x16\x66\x4f\x08\xad\xd2\x7b\xba\x47\x0b\x68\xf7\x41\x09\xcd\x54\xf0\xcc\x1c\x10\xcc\x71\x18\x2e\x78\xc9\xbc\x03\x1c\xbc\x26\xea\x9b\x8b\x75\xa2\x0b\x11\x26\x48\x86\xef\x3f\x9a\xfe\x62\xe5\x04\xdd\xd7\xf5\x9d\xfa\x8b\xfb\x5c\x61\xb3\x6a\x47\xd4\x67\x97\x89\xf8\xc2\xbd\xd7\x3f\x19\x6a\x39\xec\xde\x48\x54\x76\x01\x9c\x03\x78\x04\xd0\xc8\x76\xa5\x1d\x61\xbe\x1b\x24\xe2\x21\xe2\x1e\xd5\x66\x86\x68\x5d\xf2\x9c\xcb\x42\x08\x3d\x97\x74\xfb\x88\xac\x6d\x21\x31\x49\x0d\x0d\xe7\x1c\xdc\x48\xe9\x02\x49\x90\xe0\x95\x15\x4f\xd2\x32\xef\x3c\x73\xe2\xac\x3c\x88\x79\xa1\xaf\x97\xce\xa0\x58\xd6\x36\x68\x2e\x87\x37\x58\x45\x8e\x38\xa4\x7e\x77\x58\x4d\x71\xed\x68\x82\x35\xb9\xc3\xc7\xdb\x05\x1c\x3b\xd2\x7a\x7f\xd0\x8b\x4c\x8d\xb0\x78\x3f\xfd\xa0\xdf\xab\x8e\x84\x68\xfd\xa9\x11\x18\xeb\xb9\x43\xff\xd4\x25\x21\xc0\xf5\x1d\x5c\x3f\xed\x3b\x8f\xef\x0f\xb2\xff\xe1\xfb\xfd\x97\x54\x9d\xb6\x0b\x66\xed\x86\xcb\x38\x35\xe7\x54\x5e\xd4\x76\x20\x0f\xf6\x35\x7e\x71\x61\x8d\x63\x77\x66\x17\x24\x4a\x2c\xa2\x46\x96\xdd\xbe\x7e\xaa\xa5\xe7\xf5\x02\xea\x6a\x5f\xa9\x26\xcd\xb5\x25\x6b\xf8\x9d\x9d\x84\x3b\xdd\x82\xed\x9e\x82\xab\x64\xfd\x0d\x1c\xb2\xde\x35\x2d\x65\x44\x4b\x91\xf6\x2f\x87\xfc\x3e\x72\x31\x42\x92\x8d\x31\x66\x21\x4b\xf1\x5c\x92\xae\x2f\xde\xbc\xc2\x95\x1b\x32\x71\x69\xf6\x9d\xcb\xbc\xfc\xee\x5f\x2d\x0f\xd3\x8e\xad\xa0\xaf\x81\xec\x4c\x45\x51\x99\xc3\xb5\x28\x85\x6e\x98\xc0\xbd\x69\x0c\x99\xfc\x0c\x77\x64\x07\x66\x41\xf7\xa9\xcd\x7b\x70\xb1\xba\x4a\xa3\x6e\x21\x44\x83\x0a\xc5\x6e\x2f\x24\xe1\x99\x5c\x17\x4c\x17\x22\x6b\xb5\x4a\x15\xa7\xab\x2a\xc2\x7d\x84\xdb\xe5\x25\xc0\x07\xfa\xba\x23\x6c\xf4\x2c\x38\x4e\xff\xe9\xe6\xea\x92\x65\x7c\x07\xb8\xb0\x42\x91\x7a\x3a\x50\x51\xd6\xd7\xef\xbe\x11\xa8\x36\xbe\xba\xd8\xb0\x4f\x2d\xc0\xb4\x3d\x76\x4b\x5f\x6c\xfa\x50\x30\x67\x68\x4a\x9a\xa5\x9c\xab\xf4\x24\x4b\xb9\x0c\xa0\xbf\x7a\xca\x6a\x9f\x0f\xef\x7a\xdd\xad\x0f\xa1\x69\xa0\x02\x10\x4e\xa1\xb9\x90\x97\xad\xe0\xd0\xaa\xae\xf8\x51\xd7\xbb\x9d\x36\xa2\x17\xf4\xf6\x0e\xc5\x04\x78\x64\x96\x09\xf2\x2a\xd8\x2b\x6b\x87\x7a\xe0\x1a\x00\x89\x23\x06\xaa\x5f\x04\x7d\x2e\xad\xc6\xad\x7a\xd0\x2c\x46\xe6\x89\x32\xd1\x1b\x88\x4f\xe2\x85\x00\x80\x83\xc8\xbe\x20\x72\x21\xe7\x52\x9b\x01\x85\x98\xa6\xb8\x17\x92\x35\x79\x0c\x2e\x5e\xbf\x75\xf7\xfb\x38\x48\x24\x43\xd6\xd1\xf5\x81\x63\x76\xcc\x01\xa6\x55\x95\x7b\x3f\xc3\xff\x3b\x9e\xf5\x65\x8d\x1d\x5d\xe2\xbe\x51\x72\xbc\x3b\x75\xaf\x13\xf4\x49\x41\x99\xa8\x92\x3a\x16\xf6\xde\x07\x79\xa4\xf9\x69\xa5\xfc\xde\xaf\x2e\x30\xf8\x10\x36\x2c\x13\x70\x84\xed\x09\x28\xf0\x1c\xb6\xc6\xf9\xcb\x66\x95\x83\xee\x0b\x70\x77\x61\x24\x6d\xca\x6e\x84\x60\x1f\xa1\xa7\xcc\xc7\x3e\x92\xae\x18\xc0\x05\x0b\x9e\xb4\xca\xbe\xc0\xd3\x17\x72\xa5\x8e\x33\x06\xf9\xba\x01\x47\x3b\xaa\x57\xda\xeb\x79\x2c\xe0\x0d\x52\x19\xe5\xd3\xe6\xdf\xb7\xb6\x6b\x0f\xbc\xed\xbd\x3f\x93\x53\x56\x9e\xad\xa9\xd9\x9f\x61\x88\x0f\xe1\xb7\xaa\x4d\x12\xd3\xca\x09\x72\x36\xdf\x49\xf5\x20\xd1\x17\xa0\x2f\xb1\xe7\x66\xfd\xc1\x06\x86\x01\x54\x74\x0b\x4a\xb4\x86\x2f\x80\x44\x7a\xe6\xfe\xcd\x6e\xf0\xae\x08\xeb\x0c\x2a\x29\x1a\x9c\x1f\xd2\x37\x01\x6b\xfe\x7c\x36\x61\xaf\x26\xec\x6c\xc2\xa6\xd3\xe9\x8b\x09\xaa\x15\x53\x8d\xf0\x15\x44\x8e\x15\x7c\x6d\xca\x26\xdd\x88\x55\xf0\x01\x10\xfd\x31\x9b\x95\xe5\x4a\xe3\xfe\xa9\x20\xf2\x60\x9b\x80\x39\x8c\x94\x70\x41\xf7\xea\xd1\x46\x25\xbe\x52\x00\xd1\x14\x91\xca\x2d\xc8\x53\x17\x2a\xb7\x80\xb5\x7b\x9e\xf3\x44\x42\x6a\x37\x6f\xc2\x75\xe9\xcb\x01\xb5\xb5\xf8\xcc\xb7\xd0\xfe\x44\x3a\x76\x4f\xd3\x4d\xb7\xae\xfe\xc5\x2e\xa3\x80\xf4\x43\x9e\x14\x85\xd9\x9d\xf5\x5c\xde\xb0\x97\xff\xc1\x66\x59\x96\x0a\x36\x63\x7f\x63\xaf\xb8\xe4\x92\xb3\x57\xec\x6f\xec\x8c\xcb\x82\xa7\xaa\xcc\x04\x3b\x63\x7f\x33\xdd\x66\xca\xbb\x54\x66\x3b\xdc\x4d\x18\x67\xb2\x4c\x71\xd7\x7f\x6e\xc1\x60\x2f\x5c\xbb\xb8\x1f\x9d\xa5\x28\x1e\x84\x90\x4c\xab\x2d\x6d\x85\xbf\xba\x3b\x09\x9d\xc8\x75\x2a\x0a\x9a\x0f\x55\xd8\x1e\x7e\xe0\x04\x5a\xfa\x72\x2e\x5d\x2c\xef\x57\x53\xe3\x5f\xd9\xdf\xd8\x65\x99\xa6\xa6\x4a\xc6\xd0\x98\x89\xf4\x92\xd9\x34\x0a\x21\xa7\x0f\xc9\x5d\x92\x89\x38\xe1\x90\x48\x61\xfe\x75\x7a\x0b\xa3\xbd\x28\x3d\x63\x60\xb8\xa6\x9d\xf2\xcc\x31\xa6\xe7\x49\x92\xb2\x9d\x00\x91\x1d\xfc\x9e\x93\x5f\xf5\xd5\xf1\x1e\x91\xe7\x49\xa5\xf5\x40\x0e\x2b\xaa\x06\x85\x42\x47\x07\x99\x80\xda\x66\xeb\x58\x84\xba\x87\xe3\x48\x11\x16\xaf\x9b\xf5\xe8\x67\xc8\x01\x22\x46\x43\x4d\x6e\x43\x82\xa5\x92\xe6\x0e\xbe\xa4\xa7\xfa\x19\x74\x2b\xe4\xa4\x57\x7e\xae\x0a\x87\x55\xba\x58\x25\x83\x14\xd6\x6a\x95\xfd\x40\xb1\x0b\x4c\x50\x33\xcb\x34\x49\x4f\xcd\x52\x3d\xbd\x54\xd2\x1c\x5b\x75\xb2\x46\x7a\x22\x80\x11\x69\xa0\xa3\xb5\x4e\xc1\x6d\xd5\x65\x0d\x96\x00\xf8\x07\xa6\x4a\x08\x6d\x2b\x8c\x15\x30\x43\x90\xee\xe6\xd2\xbc\x41\x3b\x12\xc0\xdc\x13\xc7\xe1\x8b\x5f\xb3\x5a\xee\xf4\x2d\x32\xc8\x41\xe1\x2d\x13\xac\x2f\x87\xf6\x88\x09\x47\x29\x5b\x47\x44\xc5\x2f\x03\x96\x2e\x2a\xcd\xd2\x7b\xe0\xbd\xe7\x52\xa4\x4a\xae\xcd\xac\xe8\x32\x02\x6a\xcb\x93\x63\x80\x25\x61\x15\xb0\xb0\xce\x1a\x98\xcd\x92\x1e\xa1\x21\x31\xfb\x64\x12\xfb\xf3\xbd\x2e\x97\xc6\x8f\x70\x11\x59\xb7\x1b\x52\xe3\xba\x12\x8a\x8f\xbb\x5f\xfe\xa0\x45\x0e\x24\xd3\x88\x70\x70\xd1\x7e\xdc\x38\x3d\xd9\x06\xb6\x68\xd8\xa2\xea\x05\xc6\xb6\x87\x42\xe8\x36\xa1\x91\x5a\x3d\x60\x3e\x7e\x4d\x8c\xec\x53\x8a\xe1\xb7\x2a\xdf\xc3\x73\xa6\x34\xfa\xd3\x58\x75\x7b\xdb\x7b\x8f\x01\x1f\xfc\x84\x62\x37\x0b\xb5\xb2\x99\x94\xc3\xf7\xf4\x86\xdc\xd0\x30\x94\x4a\x48\x31\x1e\xca\xf2\x34\x27\x4e\x67\x3e\xb8\x5c\xd0\x8d\xc4\xb0\xca\xd6\x3b\xec\x4a\xbe\xc1\xd7\xdf\xab\x34\x89\xfa\x41\x6f\x76\xbb\xda\xa8\x87\x16\x14\xd1\x52\x00\x0a\x94\xe2\x3f\x54\x29\xf4\xd0\x0b\xe4\x12\x24\x73\xd2\x6c\xdc\xff\x6a\xa0\xcd\xfe\x33\x38\x46\x94\x5d\xb7\x81\xe4\xa5\xbb\xc3\x83\xbd\x15\xe8\x45\x81\x55\x1f\x63\xad\x90\x4b\x07\x77\xdb\x11\xa7\x10\x74\xa5\xe7\xc1\x40\x3f\x6c\x54\x6a\xce\x62\x32\x26\xaa\xd6\xb9\xcc\x44\x1e\x29\x00\xa8\x60\x1e\xbc\x62\xd1\x26\x49\x63\x2f\x5d\xf3\x1c\x10\xbd\x80\xbb\x7b\x41\xfa\x7c\xc2\xdd\x31\xdb\xe2\x7b\x76\x5d\x3b\xed\xac\x46\xf7\x71\x11\xa8\xc7\x83\xe8\xf5\x4d\xfb\x5f\x08\x4a\x86\x5d\x41\xf4\x42\xb5\xdb\x42\xd3\xe9\x95\xfa\x8c\x8a\xf0\x82\x8a\xf6\xca\xaa\x80\xda\x83\x53\x51\x1b\x57\x9a\x66\xf5\xae\x04\xca\x5d\x44\x51\x21\x80\x44\x0b\xa8\xce\x56\x70\xf4\xc5\x3c\x05\x24\x0d\xea\x5c\xfa\xfb\xd1\x67\x3a\xf4\xcb\x5a\xc7\x19\x19\x65\x2d\x08\x70\xc2\x9e\x55\x1a\xfa\x0c\x28\x59\xa5\x82\xef\xd1\x1d\x56\xa5\x6b\x60\xba\x4e\x58\x52\xcc\x65\xa2\x71\x66\xe6\x22\x15\xf7\xa6\x76\x61\xb0\x98\xb0\x2e\xf6\xec\x6c\x9b\x0d\x38\x72\x6e\xd3\x8f\x9d\xb4\x3b\x2c\xc2\x3c\x24\xb7\xe4\x10\x98\x8e\x85\x36\x7e\x23\x88\x92\x88\xcf\x66\x01\x24\x70\x17\x82\xf0\x8f\x58\x48\x5b\x3f\x40\x85\xa0\x7a\xec\x5c\x5e\xac\x20\x07\x14\x32\x4f\xe3\x18\x4f\xa1\x56\xa6\xc2\x31\x8d\x25\x14\x1c\x56\x74\x26\xb7\x03\x41\xf2\x92\xb8\x92\xc4\xbd\xc8\x77\x05\x04\x75\xa1\x5f\xa5\xe0\xc5\x86\x25\xc5\x04\x28\xe2\xac\xa5\x9c\x4b\x1e\x93\x3a\x37\x15\x67\xba\x06\xe6\x7d\xcf\x38\xd3\xef\x4b\x75\xdf\xe7\xd8\x1e\x8b\xfa\xc2\x55\x9d\xa5\x5c\x2e\x70\x07\xf9\x0a\xb8\xaf\x40\xf9\xb3\xeb\xaa\xb3\x5c\x2e\x1c\xad\xcd\xa3\xd4\xd3\xd9\xfb\xeb\x8a\x1e\xaf\xf1\x63\xed\x87\x26\x38\x19\x3c\xa9\xb7\x3d\x9e\xb8\x38\x0d\xa1\x0b\x72\x66\x6f\x60\x87\x5b\x01\x0f\x09\xe3\x35\x24\x82\x9d\xad\xfb\x30\x61\x76\x06\x7c\xab\xf8\xa4\x21\x23\x5f\xdb\x43\xea\xc3\x3e\x1e\x1a\xd3\xf0\x10\x0f\x82\xc7\xec\xa9\xd6\xd3\x42\x64\x3a\xe3\x28\x4d\xa8\x8c\x6d\x6d\x70\xdd\x87\xc9\x13\x02\xe3\x70\x2e\xcc\xd3\xae\xec\x1a\x9e\xc3\x54\x0b\xb6\xf2\x31\x63\xd4\x60\xa7\x86\x46\x4a\x7c\xee\x35\xd4\x6b\xca\x2e\x24\xb3\xee\xde\x84\x3d\xc3\x89\xa5\x9f\x51\x08\x92\xe4\x81\xe9\xee\x3c\xa6\xd5\x43\xd9\xaa\x75\x28\x06\xe6\x0c\xf8\xe5\x86\x37\x41\xbd\xd4\x86\x4f\xda\x2f\xaf\x12\xc8\x59\x38\x24\x2d\x1d\x6f\x11\x97\x58\x00\x6d\x92\x78\xec\xde\xa1\xd3\xae\x7c\x34\xdb\x37\xd8\xde\x77\xb1\x57\xf6\x45\xd3\x45\x59\x49\xfb\xa9\xfd\x9d\xa9\x7c\x2e\x6d\x69\x14\x92\xd4\xa8\x24\x55\x2f\x2a\x80\x50\x93\xcf\x1f\xcc\x54\x00\x31\x58\xf1\x30\xd0\xa4\xf3\xfc\xab\x75\x2b\x00\xa0\x88\xa5\xf0\xc2\xe6\x53\x36\xf3\x5f\x33\x8e\x87\x99\xe0\x5b\xdc\xe6\xeb\x1c\x8d\x69\x6a\x3a\x25\x29\x2c\x25\x64\x90\xde\xa0\x4b\x20\x36\x5d\x95\xc6\x18\x05\xec\xaf\x73\x69\x3a\x8f\xad\x12\xc0\xfd\x52\xbf\xcc\xe5\x3b\xa5\x6d\x36\xbd\xf6\xfd\x61\x31\xa4\xd4\x6d\xcf\x9c\x86\x1a\xfd\xe1\x35\x6c\xda\x14\xf3\xaf\x89\xea\x43\x5e\x0b\x51\x62\xec\x54\x99\xfb\x46\x45\x5c\xce\xe5\x5f\x4c\xf7\xa0\xa4\xb5\xd3\x83\x57\x2b\x5c\xc2\x30\x82\x70\x59\xf2\x11\x0b\x7d\xfe\xaf\x2f\x3e\xbe\x40\x1c\x7a\xa9\x41\xb6\x72\x52\xdd\x40\x1c\x11\x78\x99\xa6\x70\x13\x6d\x5b\xe0\xc8\x28\xfc\x27\x78\x1f\x2c\x87\x0e\x75\x0b\x59\x75\x31\x86\x2c\xf4\xbe\x19\xec\x83\xcf\x33\x16\xf1\x22\xda\x9c\x58\x5f\x8e\xcc\x98\xdd\xfd\x68\xf8\x50\xbf\xce\x78\x5a\xed\x5c\xd8\xe6\xc0\x99\x6f\x1d\x3b\x5f\x65\xbe\x98\x26\x00\xb0\xe6\xb6\x2e\x8b\xe3\xc8\x43\x71\x72\x7a\x45\x76\xef\xe7\xb9\xc7\xad\x28\x9d\x3f\x71\x52\x94\x5c\xf2\xad\x88\xd9\x33\xc8\x98\x7a\x66\x07\x7f\x2e\xb3\xe5\x34\xdd\xad\x0a\xa2\x78\x32\x9d\x32\x05\xf9\xa6\x3d\xbb\xdc\x22\x6e\x1e\x93\xf6\x74\x76\xe7\x41\xab\xdd\xd7\x71\x7d\xe3\xbe\x34\xdc\x61\xc1\x18\x97\xeb\x9d\x9b\x2a\x44\xa8\xca\xa4\xce\xf5\xdd\x84\x2d\x73\x2e\x41\x79\x23\x0e\x9d\x2a\xbf\x3a\xe1\xf0\x8c\xfc\x49\x36\x85\x42\xf2\x74\x07\xd8\xf1\xc9\x5c\x22\xd9\x14\xb0\x12\xef\xa2\x34\x89\xd8\x3a\xe7\xd9\xa6\xe6\x07\x89\x7b\x21\x8b\x73\x62\x57\xb0\x20\xf5\x63\xaf\x96\x1d\x5b\xc3\x51\x9c\x7b\x17\x55\x6f\x87\x7b\x1a\x0a\x1f\x61\xc5\x44\x15\x3a\x51\x5b\x50\xab\x9b\xe0\x13\x12\x82\x03\x3e\x2e\xf6\xe7\x72\xa9\x52\x4b\x68\x76\xf1\x9a\xa9\x1c\xb4\x04\x0a\x45\x7f\x4a\xe2\xae\x5d\x2c\x91\xb1\xf8\x7c\x14\xab\x40\xff\x86\x64\xdd\x3b\xf3\x99\x80\xb2\xbe\xde\x58\x58\x45\xb9\x30\x9b\x45\x61\x4f\x70\x8d\xa7\x74\x1d\x61\x37\x4b\x8b\x0d\xc0\xde\x10\x70\xed\x3b\x75\xcb\x77\x2c\xda\x70\xb9\x0e\x8e\xd0\x80\x42\x12\x99\xca\x51\x71\xf0\x1e\xe8\xbb\x54\x6e\xb3\x36\x29\x17\x91\x50\xdf\x2e\xe0\x8d\x60\x4b\x65\x13\x0e\xf9\x7a\x9d\x8b\x35\x24\xd2\xcf\x65\x25\x9b\x1a\xa8\xcb\x2c\xdd\x3f\x7e\xa7\x2f\x19\xf5\x71\x18\x1d\xba\x4e\x2d\x45\xbe\x73\xa9\x7c\x24\xd7\xe9\xba\xae\xd1\xad\x13\x96\x88\xe9\x84\x7d\xef\x01\xa6\x22\x52\xd2\xe5\x02\x76\x24\x82\xd5\x42\xd3\x7b\x6c\x51\x0b\xf5\x43\x7b\xdd\xe1\xb7\x86\xe8\x67\xeb\xa4\xe9\x4d\xa6\x2c\x78\x51\x8e\xb0\x95\x24\xec\x7c\x66\x5e\xbe\xc1\x77\x7b\x31\xd8\x3c\x33\xe6\xcd\xd2\xee\x98\xe7\x8d\x85\x37\xdf\xf6\xb4\xbc\x6d\x7d\xbd\x37\xd0\x99\xaa\xee\x40\xe7\x63\xb8\x94\x96\x5b\x61\x7f\xac\x33\xed\xe0\x0b\xe8\x69\xd3\xd8\x50\xa6\x05\xa3\x12\xcc\x5c\xd7\x8f\x5b\x2d\x16\x20\xcb\x55\x5c\x46\x22\x36\x2b\x17\xfc\x76\x44\x6e\x38\xda\x82\x8a\x91\x6c\xdb\x10\x2a\xdc\x2b\x20\xef\xfd\xa5\xce\xc6\x83\xe8\x6e\x5d\xf7\x7f\xe8\x38\x17\x5b\xcf\xa4\xad\xd3\xc3\xf5\x89\xfd\x94\x8f\xdc\xa7\xdc\xe7\xab\x24\xb5\x2a\x4f\xd6\x89\xe4\x85\xca\xd9\x73\x97\x9c\xf8\xc2\x29\xdb\x40\x2f\x3e\x86\x99\xa8\x74\x11\x9a\x89\xf6\xb3\x17\xe0\x99\x45\xbc\x18\xc7\x9d\x35\x96\xe1\x19\x26\xa9\x79\x4a\x17\x7c\x9b\x85\xb4\x8f\x4e\x35\x99\x7a\x26\xc5\x4e\x60\xb6\x62\x10\xe3\x4b\xb4\xcf\xc1\x9a\x4b\x8a\x8c\xe3\xb8\xa9\x3c\xe4\x2d\xee\xdc\x9b\xb3\xb2\x58\x1c\x48\x65\x82\x2f\x8f\x0b\x90\xd0\x75\xf9\x3b\x9e\xf5\x93\x43\x70\x3a\x1a\x63\x12\x8a\x93\x92\xb6\x9e\x4a\x75\x7e\xf6\x2b\x03\x8c\x24\xab\xac\x5f\xf1\x5e\xbf\xb5\x17\x1a\xfe\xdc\x52\x39\x08\xc0\x40\x20\x4b\x9e\x06\xaf\x02\x8f\xa0\xce\xac\x99\x5d\xdc\x32\x4a\x9c\xa5\xaa\x8c\x19\x19\x35\xba\x2e\xce\xa7\xb8\x3b\x02\x6d\xe5\x74\xda\xc5\xe1\x35\x52\xaf\xd5\xd9\x1f\x78\xaf\x7d\x05\xc2\x6f\x1d\x16\xb8\x77\xe9\x53\xcf\x3e\xd9\xd0\x53\x4f\xc3\xd8\x3b\x73\x3c\x6a\xec\x5d\xb4\x16\x38\xb4\xc6\x05\xf2\xe0\xdc\x94\xc4\x29\xac\xb7\x30\xd0\xdd\xc2\xf2\x59\xb9\x40\xd4\x77\x47\x7f\xce\x66\xda\xf6\x7f\x2a\xe3\xb9\x90\xc5\x02\xbe\x38\xee\x63\xf0\x91\xf7\xf0\x7a\xc5\x61\x1a\x14\xb0\xfc\xaf\x5b\x85\x71\x68\x4b\x98\xf1\xdf\xec\x86\x62\x2f\xda\x6a\xfa\x9b\xdd\xf1\x79\x02\xd8\x98\xe0\xce\xce\x0d\x5c\xc7\x70\x51\x83\x0e\xe8\xbd\xa0\x41\x15\xd3\x3e\xa8\x41\xbe\xf6\x70\xa5\x0a\xa5\x50\x18\x8a\x32\x3c\x8d\xa9\xb5\x7f\x0b\x48\xb4\x2f\x2b\xff\x06\xc2\x43\x33\x7e\x29\xfb\xab\xc8\x95\x4f\x5b\xc0\xa0\x4a\x58\x70\xaf\xbf\x7e\xb8\xfa\x29\xfa\xe3\xa8\xbb\x19\x4a\xaf\xc1\x5f\x88\x93\x04\x4f\xbe\xcb\x9d\x3d\x8e\x74\xd1\xa9\x8b\x68\xd1\xc1\xb3\x3f\xa8\x2a\xc1\xc1\x33\xe4\xcd\x4f\x6a\x9b\x99\x5d\xa0\xa7\x70\xae\x26\xd6\xbf\x2d\xcf\x08\x87\x46\x90\xd7\xfa\x25\xc3\x14\x1a\xf1\x5f\xbf\xfe\xf7\xb4\x4b\xd7\x1a\xaa\x7e\xb0\x80\xe1\x9b\x3c\x11\x32\x86\x4b\x43\x1e\x37\x25\x60\x64\x25\x8a\x5c\x31\xcf\x66\x1a\x3e\x4a\x76\x5f\xfb\x56\xab\x17\x38\x89\xbe\xc0\xcd\xb3\x37\xb2\x6e\xf9\x56\xee\xa5\xba\x5c\x09\xbd\x88\x77\x92\x6f\x9b\x4a\xe0\x4f\x5a\xc7\x5d\x22\xd2\x18\xaa\x48\x5f\xdf\x77\x7b\x12\x8b\xe8\x6e\xac\x4f\x70\x30\x81\xb5\x88\xee\xd8\x8f\xb7\xef\xde\xa2\x5e\x61\xa2\xe7\xf2\x92\x17\xc9\xbd\xf8\x90\xa7\x2e\x6c\x4d\x8c\x24\x79\x6a\xd7\x48\x95\x50\x35\x20\xef\xb0\xec\xab\xd6\x71\x08\xf9\xae\xb7\xbb\x93\x65\x19\xdd\x89\xe2\x34\xe7\x32\x56\x5b\x6c\xc6\xa9\x2e\x57\xab\xe4\xf3\xb4\xe0\x79\x07\xf9\x35\xc6\x11\xbe\xa2\x9f\xeb\x25\x4d\x0a\xef\xf3\xa2\xab\xfb\x00\xd9\x89\x24\x13\x5c\x71\x6e\xe1\x08\x9c\xf3\xad\x00\xf6\x32\x56\x25\x8e\x87\x52\x30\xe1\x0f\xf4\xd5\xb4\x26\xa4\xb7\x22\xed\xda\x8f\x81\x73\xff\x31\xa8\x55\x55\x3f\xd9\x56\xca\x6b\x96\x6d\xf9\x1d\x9e\x0f\xd7\xb9\xd0\x7a\xc2\xb4\x82\x1a\xcf\xa5\xc5\x4c\xdb\xbc\x1e\xc0\x67\x00\xff\x61\xba\x63\x91\xca\x12\x90\x78\x73\xed\xda\xa8\x07\x88\x27\x87\xe9\x6d\xa0\xca\x59\xca\x22\x49\x19\x5f\x15\x14\x6c\x06\xb2\x67\x2b\xee\xa2\xa7\x73\x09\x57\x86\x11\x34\x1f\xae\xf2\xdd\x35\x81\x6b\x84\x66\x2b\x1e\x25\x69\x52\x10\x05\x0d\x24\xc3\x70\xd3\x5e\xb3\x1f\x98\xbe\xcc\xf9\x8e\xa7\xfe\x60\xc5\xd3\xd2\x67\xf4\x9d\x68\x51\xa7\x38\xfb\x5d\xf8\xbf\x95\x73\x6e\xdf\xae\x7b\xc4\x81\xf7\x98\xcd\xa7\x79\xa4\x75\x8a\xa3\x7e\x1f\x4f\x62\x8b\x13\xad\xb8\xba\x9e\x79\xd6\x6d\x3f\x10\x3b\xef\x38\x54\x4f\xad\x4e\x4c\xf3\x0b\x23\x7a\xaf\xdd\x09\xfb\x42\xe1\x82\x2e\x0e\xdc\x21\xd5\xb7\xd1\xee\xf7\x4a\xa5\xc7\x46\xbc\x79\x6a\x0d\xea\x02\xa4\x13\x8f\x39\xae\xe1\x04\x70\x81\xa3\x8b\xd7\xee\xee\xd5\x91\xca\x56\x05\x57\x08\x16\x44\x55\x00\x43\x01\x95\xe8\x41\x0c\xeb\xac\xe5\xf2\x7d\x24\xf2\x19\xca\x40\xd4\x8e\x75\x9d\x9b\x21\xf8\x20\x97\x9d\xfb\x3a\x02\xf1\x5e\xad\x86\xa3\x82\x61\x28\x74\x58\xfb\x94\x0b\x8c\x85\x04\x9d\xae\x1f\x83\x6f\xdb\xfe\x44\x71\x69\xb3\x3f\x91\x97\x3c\x97\x81\x47\x8c\xac\x3a\x16\x5a\xee\x7a\xad\x2d\x5e\x56\x99\x86\x47\xc7\xcb\x8e\x61\x61\xee\xbd\x50\x79\x1d\xea\x29\x01\x26\x20\x52\xdb\x65\x22\x6d\xaa\x32\x05\x91\xc1\x95\x9f\x59\x92\x3b\x17\xf0\xb7\x2e\x39\xb2\xec\xd7\xfa\xde\xb9\x11\x21\x5f\x60\x68\xb2\xf6\x1d\x77\xc3\xf3\xd3\xe3\x12\x46\x77\xa0\x54\xeb\x2d\x48\x34\xe3\xe9\x03\xdf\x69\xd0\x1c\x15\xc6\x2a\xae\x30\x70\x5a\xad\xff\x24\xd8\xde\x2d\x81\x22\xc9\x97\x97\x24\x45\x4c\x6d\x49\x90\xbf\x41\xa4\x56\x5d\xd5\xf3\xe2\x3c\xd3\xed\x9d\xf3\x75\xee\x42\xf2\xde\xbb\x10\xbc\x8c\xfc\xc7\xb8\xfe\xe8\x09\xb2\x1e\x19\xeb\x0d\xb6\x49\xf4\xc8\x08\x2e\x02\x09\x3c\x60\x8e\xcd\xb7\x27\x6c\xcb\x13\x49\xcb\x00\x15\xac\x62\xb1\x2c\xd7\xeb\xce\x10\xe4\xb7\x7f\x97\x51\x5d\x27\xff\xf4\xb1\xe6\x5e\x66\xa7\xc7\x88\xc6\x5e\xd8\x2f\x61\x78\xd8\x9c\xab\xbe\x4c\x00\xf6\x2b\x46\xbb\x5b\xaf\x9c\x1a\x93\xe8\x71\xa2\xdd\x17\x43\xa2\xdd\x16\xe3\x03\xa9\x56\x74\x5c\xb5\x38\x8c\xdf\xc2\xe0\x5f\x26\x0c\x3e\x68\x52\x20\xbd\xc7\x22\xa9\x3a\xe8\x3d\x35\x3c\x90\x25\xcc\xd1\x49\x42\xad\x48\x0d\x5c\x0b\x19\x6b\xb6\xe4\xd1\x13\xd0\x86\xc1\xee\x78\x7c\xbc\x6d\x0f\xb8\xe4\x46\x6d\x05\x83\x4f\x69\xd4\x3e\x60\x94\xcd\x36\x01\xd4\xa2\x69\xa0\x47\x64\x10\xde\x03\xb6\x53\x44\x86\xc4\xde\xa9\x7e\x2e\xc5\x03\x33\xbb\xd5\x24\x84\x71\x05\xc3\x03\xa2\x38\x2f\x8c\x77\x58\xc1\x7c\xbb\xd4\xfd\x5c\xac\x79\x1e\x43\xa6\x01\x2d\xc9\x94\x47\x77\xe6\xbf\xa1\x7e\xf4\x45\x82\x9a\x59\x7e\x6e\x84\x3f\xfa\xd2\x12\x19\xe5\x40\xca\x44\xa8\x36\x5f\x3f\x7c\x5d\x33\x1e\xe5\x4a\x63\x50\xc6\x69\x49\x42\xa6\x2b\x38\xb0\xf7\x49\x5c\xf2\x14\xbf\xd8\x19\xc9\xe6\xfa\x28\xbe\xf1\x59\x20\xfb\x22\x3e\x67\x29\x97\xd5\x35\x89\xcd\x05\xae\x9a\xa4\x67\xe6\x3b\xca\xb5\x63\xaa\x32\x9a\x3a\xf2\x22\x50\x5c\xf5\xcb\x0a\xbd\xe3\x5c\xf0\x78\x17\x12\x53\x25\x92\x74\xf7\x79\xbc\x4d\xa4\x19\x7a\xab\xea\xe5\xec\xab\x25\xf8\x45\xc0\x25\x88\x5f\xa4\x69\x6d\xe9\x6b\x26\x85\x71\xa9\x78\x9e\xa4\x3b\xf0\xa2\xb3\x5c\x9c\x04\xdf\x09\xd6\x37\xe5\x7b\x00\x55\x31\x91\x28\x94\x5a\xac\xca\x14\x7d\x6d\x38\x8d\xba\x06\xd0\x3a\xfc\x70\x31\x31\xdb\x6c\x41\x94\xf3\xc1\x87\x51\xc8\xe9\x31\xb0\xf3\xcd\x73\xe0\xa0\xfb\x1b\x4f\x98\x96\x03\xb4\x77\xa3\x1e\x6c\x82\xcf\x03\xf7\x08\xce\xae\xbd\xe4\xd1\x62\xf6\xfd\x5e\x97\x3d\xef\xd8\x55\x89\x9d\x1e\x57\x2e\x6a\xe8\x37\x11\xbb\x95\x98\x48\x68\x0e\x69\x20\xfa\x38\x68\xa9\x31\x4f\xc8\x8c\x21\x58\x6b\x7b\xac\xaf\x86\x41\x99\x6b\x5d\xa2\x95\x64\xf3\xf2\xf7\xbf\xff\x83\x60\xbf\x87\xc4\x29\xf2\xbe\xf1\xb6\x05\x28\xd3\xb0\x74\x30\x50\xee\x03\x02\xf9\xd4\x1a\x23\xc2\xda\x00\x8f\x36\x4b\x19\x20\x83\x3c\xda\x30\x5d\x2e\x11\x0f\xc7\x29\x60\xcf\xa5\x63\x24\x7d\xab\x00\xda\x86\xfb\x98\xad\xfd\xff\x92\xf0\x34\xb2\x82\xcf\x65\xa6\x90\x34\x17\x80\x84\x4b\xc1\xb6\x3c\xbf\x03\x91\x37\x52\xf2\x66\xbc\x60\xcf\x13\x31\xad\x06\xab\x5f\x54\xea\x43\xd7\x03\x48\x86\xc9\xf2\x52\x4a\xab\x5a\xc1\x8c\x1b\xe6\x23\xc7\x93\xb9\x5c\x96\xe1\x49\xab\x12\x7a\xf6\x53\x0b\xc2\xcf\x60\x64\x15\x30\x24\x50\xa5\xb8\x0e\x14\xc6\xd9\x80\x18\xf4\x5c\x3e\x51\x10\xba\x2b\xbc\xf5\x9e\x3c\x0e\x1b\xba\x0a\x50\xda\xd0\xdc\x50\x58\x11\x86\x03\xa7\x3d\x6c\xe9\xef\x41\x5d\x71\xc2\x7e\x4c\xee\xc5\x84\xdd\x64\x3c\xbf\x9b\xb0\xd7\x78\x99\xf4\x27\xb5\xdc\x1b\xb1\x7a\x8c\xa8\xad\x3b\x58\x1d\xcb\x78\x8f\xf1\xcf\x49\xc0\xcc\x1c\x5c\x60\x36\xe3\x8b\x16\xdf\x56\x00\xaf\x7d\x74\x27\x64\xa7\xb1\xb4\xa8\xe4\x4e\xfa\xee\xc7\x3a\x77\x77\x83\xaa\x3b\x4f\xe1\xf5\x7d\xdb\x7b\x58\x94\xb3\xda\x86\xf3\x33\x9e\x0d\x6a\x4f\xf3\xe8\xee\x04\x7c\x55\x95\xbb\xbc\x6a\x4d\x97\x6b\x38\x2b\x10\xfd\x8c\x3e\x5a\x2d\x13\x79\xa8\x2b\x6e\x3f\xbc\xc8\x94\x4a\x5b\x3d\xf2\x47\xed\xc0\x46\x7c\x7e\x68\xe7\x5d\x60\x06\x97\x0e\xfd\x54\xdb\x8b\x3e\xd6\xeb\x23\xc3\x18\x06\x06\x2a\x16\x98\x4d\x71\x09\x57\xa4\xbe\x3b\x42\x49\x3f\x63\x6b\x10\x73\x8e\xae\xa9\x55\x80\xe5\xf6\xcc\x10\x71\x17\xf4\x0e\xb1\xce\x8d\x28\xb4\x6e\x7e\xa7\xe3\xa0\x00\xe5\x2e\x92\x36\xde\x95\xb1\x8b\x0b\xa5\xd3\x1b\x57\x4b\x58\x73\xbb\xa5\xdb\xac\x9f\x7d\xac\xb3\x36\xc5\x79\x11\xa5\x5c\x0f\xc4\x11\xb7\xda\x9d\x0b\x2a\xe8\x0c\xca\x19\x6e\x33\x7f\x84\x5b\x80\xed\x40\x17\x6a\x2e\x67\x8e\x75\xd5\x3b\xdf\xee\xc0\x80\x66\x16\x8f\x4a\x8d\xa1\xc1\x54\x22\x4f\xd1\x3b\x61\xba\x8c\x36\x90\x2c\x55\xb5\x53\xa1\xdd\x6a\xae\xd8\xc9\x5c\x1a\xf7\x15\x95\xbf\x38\xc0\x5d\x1e\x40\x24\x26\xf9\xab\x70\xfe\x31\x61\xf2\x43\x97\x78\xc9\xcd\xd0\x28\xd9\x7a\x7c\xb0\x79\x6b\xb8\xd3\xf9\xcd\xbd\xcc\x8c\xe7\x30\x9d\x7b\xb7\x27\x41\x3d\x7f\xbb\xdd\xd2\x79\x44\x87\x0d\x0b\x8f\x4f\x35\x4b\x9b\x26\x2b\x11\xed\xa2\x06\x0d\x55\x05\x64\xf6\x78\xb7\x20\x87\x5d\x02\xf4\xd1\x15\xb5\xc7\x4e\x7e\x69\xd0\x6b\xb0\x2e\x64\xce\x3f\x26\x5e\xb8\x83\x31\xe7\x9f\x3d\x8e\xbb\x07\x44\xf3\x1b\xb4\xf6\x9f\x32\xa6\xd8\x4f\x96\xf3\xbb\xf0\x7f\xad\xfd\xb2\xe8\x55\x88\x61\x90\xd7\xdc\x8a\x99\xfd\xb6\xe8\x01\x92\xb8\x7e\xc8\x6b\xb2\x04\x0c\x5b\x0a\x44\xc2\x10\x3b\x82\x88\x11\x29\x41\xf4\xaa\xed\xaf\xb3\x54\xe9\x32\xef\x5f\xfc\xd7\xd5\x5a\xdb\xaf\xb7\x10\xe6\xc2\x64\xdb\x2e\x05\x70\x7f\x0c\x05\xc7\xe1\x63\x8b\xbf\xa8\xe5\x02\x90\xa0\xc7\xad\xf0\xb6\xe2\xac\x04\x97\xc3\x13\x50\x55\xfd\x89\xeb\x26\x13\xc0\xdb\xe6\x43\x1b\xfe\xfc\x52\x9b\x61\x2e\xb0\x3c\x97\x96\xc6\x1e\xf3\xce\xf3\x5c\x00\xdf\x76\x2e\x40\x59\x8e\x65\x3c\x77\x70\x2c\x7b\xc2\x0e\x22\x68\x1e\xb2\x17\xe6\x8a\x42\xca\x37\xc5\xed\x96\x42\x48\xd7\xdb\x63\x8e\xa6\xe6\xb4\x59\xef\x7d\xc2\xe2\x3e\x08\x16\x61\x9a\x57\x87\x0a\x66\xe3\xbd\x20\xa6\x08\x7e\xcb\x5a\x84\x3e\x54\xcd\xb5\xa8\x2c\xcd\xca\xfd\xfe\x37\x95\x8f\xd4\x7a\x82\xad\x51\xdc\x55\xc2\xcf\x83\x10\x11\x8f\x71\xdb\xf8\x9e\x17\x1b\x0c\x8c\x6e\x55\x21\xd0\x66\x22\xd7\x16\xce\x17\xbc\xb3\x5b\xa6\x6a\x09\x92\x6e\xe6\x97\xae\xe3\x73\x44\x4b\x7b\x50\xd7\x35\x07\x6c\x88\x65\x30\xd6\x04\xf2\xd5\x73\xa1\x81\xb6\xa8\x79\xc7\x3f\x34\x7b\x62\x5c\xf0\xb6\x59\x5d\x63\xf4\x5f\x37\x82\xb7\x4d\x9d\x0b\xb3\xac\x01\x4a\x7f\x7e\x40\x7e\xdf\x79\x98\xf3\x6d\x9c\x03\xa2\xfc\x26\x10\x0d\xb2\xfe\xd6\xda\x6b\x95\xc3\xe7\x72\x86\xbf\x04\x9b\x00\xf7\x7a\x4e\x0e\xad\x4e\x22\xb1\x6e\xfd\x61\x12\x38\x9b\x85\xf8\x68\x3a\x15\x4d\xfc\x79\x15\x82\x4b\x13\xc8\xb9\x96\x45\x92\x9b\xd3\x88\x06\x67\x4b\x97\xcb\x13\x4f\xef\xa3\x72\x70\xcf\x80\xfd\x29\xe3\x10\x1a\x03\xd6\xaf\x93\x96\x6d\x18\xef\x75\xbc\x2e\x8b\xa5\xc1\xe4\x29\x19\x7f\x38\x55\x23\xbf\x84\x6b\xbb\x2b\xc7\x1c\x8e\x20\x2a\x6b\xb9\x0d\x70\xb3\xeb\xb3\x17\xa0\x1c\x05\xf9\xe1\xd7\x78\x1c\xff\xda\x1b\x78\x88\x25\x19\xba\x75\xc3\xf1\x7b\x2e\xff\xaf\xdd\x1b\xba\x53\x1e\x46\xcc\x74\xd3\x33\x66\x8b\xea\x4c\xc5\xa8\xd4\xcd\x86\x24\x03\x27\xb0\xbb\x52\x8d\x29\xdf\x56\x2a\x77\x01\x92\x40\x27\x45\x51\x32\x3f\xfc\x7a\x9f\xe8\x80\x34\x1f\xbe\x76\x23\x04\x7b\x99\x8b\xd5\xcb\x8f\xb9\x58\x2d\xec\x48\x4f\xa1\x41\x53\xd3\xa2\x26\x75\xfe\xc0\xc9\xa1\x33\x25\xdb\x29\x44\xf7\x50\xfc\xd6\x9a\x84\xe5\x04\x6d\x4a\x56\xcc\xcb\x69\x42\x14\xa1\x8c\x22\x21\xe2\x3a\xa7\x7f\xa3\x66\x5f\x7c\x9b\xeb\xc2\xd1\x0e\x00\xaa\x76\xc8\x50\xfe\xf3\x6f\x6f\x95\x3e\x1b\xb2\xbd\xdd\x56\xe3\x29\xd6\xd8\x73\xe9\x36\xbc\xee\xc4\x94\x2f\x9b\x3b\x03\x03\xa8\x33\xfe\x20\x89\x0d\x6a\xd4\x55\xc6\xb0\x6d\xad\x16\x5d\x0a\xb6\xb5\x06\x82\xd8\xaf\x32\x69\x6f\x8e\x12\xa7\xd9\x38\x09\xe4\xce\x79\x9a\x86\xca\x24\x3e\xfe\x3b\x97\x3e\x4a\x68\xbc\xd6\x34\xb5\x57\x42\x15\x7f\x83\xb8\xbf\x62\xa0\x2b\x10\x13\x4b\x5d\x44\xa4\x9f\x84\x26\x38\xc1\x68\x9c\x8f\x99\xed\x5b\xcd\x8f\x75\x88\xfc\xc6\x58\x1b\xf6\xe0\x76\xf0\xb3\x8b\x3b\xb1\x1b\x5d\xd7\xf6\x9b\x73\x2f\xe5\xbb\x81\xc5\x6c\xad\x6c\xc4\xf3\xdc\xe6\x20\xd1\x57\x99\x39\x2b\xad\x78\x54\xb9\x36\xeb\xa8\xe7\x46\x44\x77\x99\x4a\xe4\x68\x5b\x14\xd4\xc7\x38\x52\x85\xd9\xcf\x7c\x69\xee\x74\x38\x68\x73\xac\xf8\x93\xd8\x10\x0d\xe0\x34\x0b\xac\xf7\x94\x86\x9c\x39\xad\xe2\xee\x69\xf7\xd8\xf1\x0b\xe1\xf7\x86\x27\x88\xc5\xf6\x5f\x52\xa0\xd5\x68\x7a\x94\x95\x5b\x2c\xde\xc8\x4d\x1d\xd8\xd9\x9c\x55\x88\x40\x5b\xbb\x14\x42\x90\xbf\x45\x86\x7e\x8b\x0c\xfd\x83\x47\x86\xbe\x64\x58\x08\x90\x85\x4f\x19\x13\x6a\x27\x1b\xf8\x6d\x7b\xfd\xb6\xb6\x57\xe4\x14\xc5\xcc\xb8\x31\x5d\x4b\x55\xbd\xf6\xaf\x1f\xd7\xb9\x82\x05\x35\xd1\x23\xfa\xf9\x0b\xba\x07\x2d\xb6\x6a\x9c\xdd\x1d\xbc\x5f\xf5\xa3\x27\xbc\x03\xe2\x0f\x03\x41\x22\x7d\x63\xf9\x86\x41\xe0\x22\x9c\x3a\xc6\xf0\x0c\xbe\x7e\xe9\xe6\x2a\xf9\xa6\x2e\x91\x87\x38\x18\xc6\x32\xba\x6b\xe5\x4b\x6b\x11\xa5\x40\x03\xde\x63\x19\x03\x0e\x6b\x5e\x3c\xd3\xae\xd7\xab\x16\xd0\x22\xdc\xdf\x26\xba\xf8\xb9\xa6\x90\x78\x98\xc4\xe2\x93\x21\xa1\x6c\x55\xb1\x9a\xc1\x1b\xbd\x00\x9e\xeb\x2a\xc4\x46\xad\xec\x9c\x83\x4d\xce\x6a\x62\x99\x7a\x8f\xd9\xaf\x3e\xba\xfe\xfa\x88\x7e\xf4\x43\xce\xb3\x4c\xe4\x16\x37\xd2\x80\xf6\x80\xc0\x14\x7c\x05\x14\xe2\x36\x02\x65\x6a\x6b\xde\x88\x31\x25\xb5\xa2\xe1\x31\xe8\xba\x69\xfb\xc8\x5d\x96\x69\xda\x39\x72\xfb\x75\x6b\x2e\x3f\xbc\x7d\xbb\xf8\x79\xf6\xf6\xc3\xb9\x6d\x7e\xab\x0e\x4c\xf0\x58\x67\x9f\xb8\x9a\x50\x9f\x78\xa5\x39\xf3\x59\x61\xa5\x72\x95\x6f\x35\x1e\x46\xca\x34\xad\x6a\x04\xcd\xe5\x47\x2a\x07\x60\xd9\xa8\x7f\x68\xfa\x8d\xf5\x76\x5c\xf5\xfb\xf0\xd8\x47\x53\xf8\x47\x7c\xf7\x84\xf9\x46\xbc\x04\x25\x3b\x52\xc8\x6a\xef\x57\xca\xf9\x38\x62\x39\x20\x08\xb8\x6b\x39\x3c\xb6\x0a\xda\x61\xcb\xe3\x83\x04\xfe\x65\x11\x5b\xf1\xb2\x47\x59\x1d\xd8\x77\x1f\xab\xf7\x09\xce\x96\xc7\x18\x5c\x83\x72\x27\xa8\x5d\x05\x8a\xbc\x5e\xde\x69\x2e\xf1\xac\x6a\xea\x54\xa8\xee\x3a\xb1\x0b\x42\x53\xa5\x5c\xae\x4b\xbe\x16\x7a\xc2\xec\xc7\xe7\x72\x9b\xac\x37\xc8\x26\x51\x66\x1e\x97\xcc\x99\x04\xd2\x91\xda\x14\xaa\xe1\x92\x13\x39\x97\xd4\x26\xb9\xf6\xc5\x23\x46\xf6\x4f\x37\xae\x39\x04\x46\xc7\x82\x48\x7e\x4b\xce\x25\x0e\x2e\xb2\x5c\xd8\x88\x15\xf8\xef\xbc\xa8\x4f\x5d\x0e\x31\x66\x94\xa8\x36\x36\x7d\x0d\xb1\xb3\xb9\x74\x89\xa8\xe8\xe1\x53\x1b\x02\x99\x06\xac\xd2\x7e\x7b\x62\x07\xc3\xae\x09\xaa\x5b\xfb\xac\x3f\x7a\x0f\x30\x0b\x6e\x31\x42\x6b\xb7\x69\xc6\x06\x9e\xea\x78\x60\x38\xba\xd8\x09\x20\xfb\xb8\xbd\x36\xb6\x5d\xf8\x4c\x27\x04\x49\x95\xcb\x74\x44\x95\xf0\xf9\xde\x4a\xa1\x49\xee\xaf\xd4\x80\x23\xe3\x75\x6d\x69\x99\x69\xda\xf7\xd9\xa5\x52\x1d\xe3\xf2\x88\x81\xdf\x4a\xa5\xe8\x85\x7d\x9d\x51\x46\xc5\x21\xf3\x65\x40\x4a\x5e\xbd\x8b\xac\xf5\xe9\xab\x50\x9a\xe8\x83\xaa\xe3\xfd\xa7\xc1\x35\x72\x1e\x02\x6d\x76\xa3\x2c\x2c\xed\x73\x15\x03\xdb\x61\x26\x29\xee\x67\x45\x6b\x13\x34\x2f\x66\xf1\xa0\xa2\xac\x99\xff\x13\x37\x89\x26\x7e\xe4\x26\x50\xc9\xa8\xcc\xb5\x31\x97\x64\xef\xc8\x6a\xab\x9c\xf1\xb9\xb4\xea\x07\xd6\x1c\xcf\x2c\x88\x2a\x77\x7f\xc5\x34\xc7\x0c\xd9\xc3\xc1\x63\x2d\x98\x92\xc2\x5a\xc3\xb9\xb4\x4a\xc7\x13\xc6\x97\xda\x0a\x08\x73\xb9\x73\xaa\xbe\x89\x93\x6c\xe3\x92\x01\x3a\x6d\xbf\xcd\xab\xb9\x01\x95\x7d\xfe\x77\xe6\xff\xfe\xfe\xbb\xff\x1f\x00\x00\xff\xff\xac\xcb\x39\x68\xee\xa7\x04\x00") +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\x06\xec\xe9\x47\x5c\x7b\x4d\xef\x71\x47\xda\x33\x60\x3d\x6f\x16\x84\x7f\x11\xf6\x44\x05\x07\x00\x59\xf4\x84\x05\x05\xeb\x2b\x35\xcf\xcc\x2c\x8c\xd5\x5a\x0f\xd5\xa8\x2e\x75\x5f\x1c\xa3\xe1\x14\xf1\x34\xd5\x6a\x45\x6c\xf0\x76\x2c\xe5\x8e\x98\x3d\xc4\x83\xb3\xdb\xc1\xfd\xdd\x78\x70\xf5\xe3\xf8\xe6\x76\xf0\x71\xf8\xdf\x28\x13\x64\x4a\x3f\x17\xea\x91\x5c\xba\xe8\x83\x65\xfc\x48\x93\xda\x93\xdb\x76\x11\x21\x9a\x69\x9f\x8b\xa8\x1b\x44\xcf\x73\x62\x8d\x0b\x76\xad\xdc\x64\x52\x3d\x66\xad\xca\xeb\x57\x6b\x14\x06\xb7\xc4\x39\x8b\x89\x48\x16\x94\xcd\x20\x16\xd8\x48\x80\xb0\xb4\xd6\xfa\x15\x61\xa6\xf5\x92\x11\x93\x58\x51\x39\x5d\x38\x6f\x3b\x38\xc1\x01\xf6\x57\x2f\xbd\x7e\xc5\x45\xad\x95\x96\x1f\x18\x7d\xd1\x75\x4c\x32\xc2\x62\x17\xb5\x53\xdb\x63\xf3\x16\x6c\xcf\x3c\xfb\x57\xa5\x1b\x54\xd3\xc0\x8f\xfd\x32\x2f\x1d\x5e\xac\xbe\x34\xc3\x26\x6a\x84\xca\xfe\xd5\xcf\x5e\x9c\x84\xd4\x85\x9e\xb7\xb5\x18\x2d\x2c\x4a\xa8\x9e\x63\x84\x19\x52\x3c\x01\xd9\x1c\x11\x0a\xc6\x33\xd8\x2b\x08\x95\xce\x8c\x67\xd4\xdc\xb4\x66\x90\xa7\xee\x8f\x4a\x7b\xd2\xec\x37\x23\x24\x76\x99\x21\x76\xcf\xc1\x3e\xc4\xea\x8f\x09\xb4\xac\xe7\x7a\x0a\xff\xbb\x59\x9b\x60\xe2\xaf\x6e\x0f\x17\xea\xdc\x87\xa4\x6f\x67\xd7\xab\x0b\xcd\x5e\x0e\xca\xae\x37\xd9\x2d\x7f\x5b\xb3\x39\x3b\x86\xae\x97\x27\xfc\x8f\xe4\x9c\xe2\x44\x9f\xf9\xfd\x69\x3e\xfd\xab\xbb\x61\x59\x13\x2a\x2b\xcc\x81\x84\xb1\xb5\xe6\x03\x26\x77\x33\x72\xc7\x7b\xef\xfe\x7a\x61\xf4\x64\x73\x8e\xe1\x06\x0a\x54\x64\x10\xe5\x1d\x9e\x4f\x86\x85\xac\x7c\x21\x11\x40\xfa\x15\xa1\x83\x5a\xfa\x82\xc0\xbc\x27\x4e\xe3\x11\x23\x9f\x33\xc2\x24\x84\xb9\x18\xc9\xac\x88\x1a\x91\xc0\x35\xf4\xe5\xa6\x5f\x67\x28\x67\xd6\x95\xab\x45\x47\x33\xc8\x9e\x56\xca\xec\x10\x3c\xff\x00\x13\x22\x23\x8e\x81\x14\x83\x1f\xb1\x9f\xbc\x3b\x18\x1e\x4d\xb9\xbe\x4a\xf5\x2e\xda\xf6\x4e\x11\x66\x92\xf6\x90\x56\xbd\xab\x7b\x0a\x49\x30\xb9\x20\xb1\x0d\x46\xd4\x9c\xc6\xfe\xf9\xfa\x02\xcd\x52\xc4\x7b\x28\xd6\xd4\x4b\x35\x15\xa1\xa6\x41\xc9\x4b\x8c\xef\x6f\xdc\x5e\xba\x89\xb8\x20\xd6\x63\xb8\xb1\x40\xb3\x4e\x44\xb9\xc7\xf2\x71\xc9\x8b\x36\x64\x52\x61\x16\x91\xb3\x04\xcb\x2d\xc3\xe9\x9c\xb5\xae\x57\x96\x9d\x6f\x6f\x1f\x6e\xee\x87\xdf\xad\xe1\xf2\xd5\x8f\x97\x03\xda\xa2\x24\x77\x8e\xe6\x89\xe0\x38\x46\x9a\x7d\xce\xb8\x71\x6a\x5b\x15\xb6\x00\xb1\x37\x19\x6a\x3e\x34\xb8\x04\xa0\x5f\x24\xd6\x58\x8b\x5d\xe8\x14\xa3\x76\x21\x50\xa4\x57\x02\x05\xc6\x3b\xb7\xd5\xe0\x23\x37\xa5\x75\xec\x0d\x9b\x25\x58\x4d\xb9\x48\x0d\x97\x2f\x4d\xda\x34\xbe\xba\x51\xca\x14\x11\x22\xcf\x14\x75\x55\x09\xaa\xfa\x96\xde\xb2\x0b\x3e\xbb\x24\x52\xe2\x19\xd9\x25\x94\xa2\x4e\x0d\xbe\xfb\x31\xfc\x27\x84\x4a\xb4\xd1\x62\x4b\x23\x74\x39\x1c\x8e\x9e\xae\xd9\x47\x13\x92\x76\xc3\x13\x1a\x6d\x19\x3a\xfa\xb1\x3f\xbc\x18\x0f\x2f\x2f\x07\xe7\xc3\xfe\xfd\xe0\xa2\x24\x4a\xc0\xb3\xfe\xc7\xfb\xc1\xad\x85\x63\xef\x7f\x77\x31\x18\x5f\x5d\x9f\x0f\xee\xc6\x67\xd7\x97\x37\x17\x83\x35\x31\x66\x8d\x8d\x2f\xfb\x09\xaa\xaf\x9e\x2e\xfd\x02\x3b\xac\x79\x59\x68\xf9\x85\xfc\x47\x2d\xf2\x61\x89\x24\x37\x61\x1d\x18\x31\x1e\x13\xf8\x59\x3a\x3b\xa3\xc7\x40\x47\x43\xf5\x55\x92\x20\x9c\x2b\x9e\x62\xf0\x3f\x26\x8b\x11\xc3\x13\xcd\x5a\x71\x92\x04\x81\x8a\x22\x67\x4c\xb3\x58\xdd\x98\x29\x36\x10\x25\x44\xb3\xf3\x2c\x48\x5b\xb5\x1e\xb0\x29\x65\x10\x33\x9e\x62\xf1\x68\x1c\xa6\x45\x97\xc5\xa1\x90\x08\xcb\x11\xd3\xe3\x22\xd6\xc4\xd9\x66\x85\x4f\x5b\xbd\xd5\xb8\x3a\x29\x7e\x24\x7a\x55\xd2\x3c\x9a\x6b\x31\x76\x26\x88\x94\xd6\x4b\x12\x61\x66\x84\x68\xfb\xba\xbe\x86\x46\x20\x12\xe3\xc4\x39\x63\x8c\x54\x4b\x58\x44\x4d\x82\xaa\x2a\xc9\xdc\x33\x81\xb3\x39\x92\x1c\xc2\x37\x60\xd9\x41\x84\x2e\x8b\xc2\x66\xc6\xe6\x71\xe8\x4b\x11\xb9\xe6\x13\xd7\x20\x27\x9a\x55\x86\x8f\xdd\x65\xe8\x1c\x88\xc6\xa2\x9d\x66\x09\x51\xa6\xec\x04\x2c\x39\x6c\x86\x5e\xeb\xd2\x7e\xe8\x6d\xaa\xdb\x04\x7d\x61\xbb\x31\x63\x69\x47\x74\x5c\xe3\xa3\xb1\x47\x0a\x7d\x8f\x59\x9c\xe8\x56\x9c\x37\xae\x7c\x16\x21\xa9\xaa\xaf\xa9\xc6\x9d\xc6\x5d\x6e\xd1\x08\xe7\x72\x97\x6b\xb4\x92\x55\x6c\xec\xdb\x47\x45\x78\x13\x90\xb7\x4d\x29\x86\xd5\xcd\x34\x8b\xc4\x09\xb7\xab\x64\x5e\xcf\x4d\x25\x33\x04\xa3\x69\xb8\x66\x33\x41\x59\x44\x33\x9c\x6c\x65\xc5\xa8\xa4\x95\xd8\x6c\x8d\xaf\xe9\x54\x93\xcf\x37\x4b\x01\x08\x8a\x88\x14\x52\xed\xed\x30\xfd\x16\x6e\xa0\x4d\xda\xfc\x1c\x22\x8b\xb8\x28\x2c\x78\x6e\x3c\xcb\xb0\x2e\x24\xae\x39\xaa\xc7\x75\xdb\xad\x4f\x06\x2e\x87\xf2\x6f\xb1\xd9\x26\x86\xad\x69\xfd\x2a\xad\xd8\xde\x4d\x58\x29\x4e\x6e\xea\xdb\xac\xdb\x81\xe0\xe1\xbf\x56\xd1\xce\x25\xce\x34\xcd\xd8\x02\x14\xb8\x98\xa3\x55\x92\x6c\x7d\x3b\x17\x09\x16\x44\x81\xf8\x0c\xa7\xf6\xbb\x51\x2c\xa1\x0d\xe5\x5b\xee\xa4\x14\x0d\x13\xa0\x25\x58\x1a\x9f\xe6\x5a\x96\x45\x18\xe2\x69\xd0\xd7\xe4\x78\x76\x8c\x5c\x39\x91\x1e\xea\xdf\xdc\x0c\xae\xce\x7b\x88\xa8\xe8\x1b\x17\x7d\x6b\x43\xef\x46\x4c\x71\x2b\xad\x2c\x5c\x29\x98\x94\x88\x19\x29\xcd\xd9\xc5\xe9\x81\x19\x60\x46\xa5\xb2\x81\xe0\x9a\xaf\x04\x45\x7b\x68\x5a\x15\xb3\x0d\x85\xe4\x25\x3b\xc8\xc6\xa4\x81\xa5\xcc\x53\xad\xcb\x8e\x29\x4e\xc7\x82\x27\xbb\x30\x85\x73\x98\x0a\xa8\xcb\x1e\x68\x82\xe2\x14\xe9\x66\x6d\x50\x53\x68\x1d\x32\x27\x4e\x0b\x46\x9a\x2f\xeb\x7b\x33\xb8\xb7\x9c\x1f\xcd\x46\x56\x52\x17\xcc\x03\x40\x14\x0d\xac\xa2\x70\x80\x8c\xad\xcf\x69\x8c\xa3\x48\xab\xdc\x7b\x9e\x54\x50\x09\xca\x39\xb7\x6c\x47\x2f\x36\xcd\x75\x74\xee\x86\x99\x69\x0e\x06\x61\xed\xfa\xca\x95\x3c\xa2\x45\xfb\x35\xfd\x4e\x16\x4b\xbd\xba\x5a\x4d\x0f\xd2\x9b\x54\xcc\x25\x2c\x09\xec\xa4\x34\xb5\x9e\xd4\x9c\x2c\xd0\x1c\x3f\x91\x52\x97\x2e\xb5\x4b\x37\xbc\xe0\xb9\xa8\x63\x74\x23\x76\x4e\x32\x41\xb4\xa4\x5f\xb5\x10\x7a\x9a\xbe\xe5\xbb\xd9\x07\x3b\xba\xee\xe8\xfa\xd0\xe8\xfa\xcc\x94\xfc\xea\xfb\x12\x6f\x3b\x09\x70\xa6\xb1\x71\xc6\x79\x32\xde\xab\x4b\xa1\xe4\xd3\xad\x14\x40\x03\x70\x0b\x9e\x83\x7c\x54\xba\x36\xb9\xbe\xeb\x82\x64\x71\x3b\xbc\x15\xcb\xe0\x9c\xbf\x41\xe5\xa7\x5d\xce\x7b\x5d\x2b\xab\x5a\x42\x2f\x2e\xe6\x9c\x19\xf9\xc6\x3b\x7e\xc3\x4a\xbe\xa5\xc3\xe4\x44\x11\xca\x96\xea\x0a\x1a\x7a\xd6\x0b\x6c\xe4\x8e\x7f\xe4\x5c\x61\xf9\xcd\xf1\x88\x69\x21\xea\x91\x2c\x8c\xb9\x55\x8b\x29\xbf\xd3\xb2\xf8\x91\x24\x4c\x42\xe2\xc2\xef\x8c\xa3\x59\x93\xb8\x33\x57\x1b\xd5\xd4\x94\x33\x84\xf4\x01\xdf\x0b\x04\x9b\xdb\x46\xad\x94\x54\x84\xf2\x83\x9c\x6f\xe6\x62\x9f\x99\xe1\xcf\x88\x02\xb0\x00\x45\x15\xe8\x4c\xb1\xa9\x97\xb8\x34\xf4\xb5\xa6\x2b\x43\x15\x82\x83\xc7\x2f\xce\x77\x63\xfc\x72\xb9\x8d\xb5\x9c\xd1\x6b\x0b\x77\x36\x7b\xe3\xc4\xd9\x8d\x22\xc1\x97\x8a\x10\x62\x89\xcc\x4e\x4f\x0c\x3b\x70\x91\x18\x84\x1d\x3f\xd3\x47\x9a\x91\x98\x62\xc8\xe5\xd0\xff\x3a\xd1\xf3\xfa\xf7\xb3\xdb\xeb\xab\x71\x91\x93\xf6\x5f\x23\xd6\x4f\x24\xf7\xf9\x36\x88\x71\xe6\x13\x47\x32\x41\x9c\x48\x68\xe7\x02\x56\xd7\xc2\x8c\x38\x62\x4d\x23\x88\x79\x24\x8f\xf1\xb3\x3c\xc6\x29\xfe\x95\x33\x08\x0a\xe9\xc3\x9f\x67\x09\xcf\xe3\x9f\xb0\x8a\xe6\x27\x70\xae\xd5\x09\x79\x22\x4c\x19\x87\xab\x5e\xae\x18\xd2\xd0\x25\xe4\x9d\xfc\xbb\x1e\x73\x91\x1e\x27\xb5\x26\x1b\x91\x4c\xa1\xff\x47\x90\x09\xe7\xaa\xfe\x92\xe2\xd3\xa9\x24\x1b\x5d\x48\x85\x92\x76\x77\x8d\xfe\xf2\xe7\x6f\xff\xa0\x49\x68\x9b\x35\x1e\xde\x5d\x8f\xf5\xf7\xff\x7e\x6e\xbf\x97\x1b\xb0\xbb\xeb\xac\x60\x6d\x8e\x78\x4c\x0a\x48\xce\xe0\xf6\x13\xe0\xbc\x00\xf6\x06\xe4\x50\xec\x63\x1d\x77\x3b\x2f\xb5\xbe\x9b\xca\xb6\xd5\x62\x82\x8a\x1d\xcc\x11\x1d\x21\xc6\x51\x6a\xa2\xa6\x31\x43\xff\xf1\xc3\x77\xf5\x1b\x98\x0b\xba\x55\x87\xd6\xf5\x19\x76\x29\xe9\xaf\x44\x22\x4d\x35\x9a\x8a\x79\xaa\xbb\x16\x44\xce\x79\x12\xa3\x67\x02\x6a\x92\x8d\x68\xf6\x5a\xb9\x20\x23\x16\x36\x01\xc1\xb3\x08\x27\x8a\xcf\x08\xdc\xd5\x4e\x51\x53\x44\x68\x51\xc5\xe4\x1b\x29\x2e\x48\xcf\x80\xd6\xdd\xfd\xc9\x65\x09\xc0\x34\xe1\x91\x4b\xcf\xb2\x26\xb9\x78\x52\x3f\xf3\x69\xd5\xf4\x8a\x9a\x6d\xf8\xd5\x4d\xb6\x66\xdb\xfa\xa5\xb1\xe9\x54\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\x49\x2b\xdc\x1e\x90\xbb\xcc\xba\x81\x30\x90\x99\x6c\x66\xe3\x22\xa7\xd2\x69\xc2\x82\x30\x08\xdd\x1c\xb1\xc9\xc2\xfa\x6c\x65\x0f\xc9\x3c\x9a\xbb\x1c\xd3\x88\x33\xa9\xc5\x68\x2e\x50\xc4\xd3\xd4\x94\xe9\x65\x04\x29\xce\x13\x69\xf3\x36\xd8\x91\xc2\x91\x1a\xb1\xa2\xbf\x35\x27\xcf\xd4\xf2\xda\x2d\x09\xb5\xbd\x4b\xa7\xa8\x19\xb6\x52\xe0\xa6\x71\x88\x3e\x62\xa2\x05\xc0\x13\x15\xe0\x98\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\xfc\x9d\x3f\x69\xe1\x9f\x3c\x17\x41\x25\x2b\x86\xa0\xa9\x7a\xd5\x08\xda\x1d\xa3\x95\x23\xdb\x94\x04\x1b\xd6\xca\x60\xd1\x44\xe5\xec\x86\x75\x63\xbc\x83\xaf\xce\xf4\x47\x2b\x17\xaf\x7a\xee\x9c\x10\xc4\xe3\x02\x36\xd1\xdc\xeb\x36\xb7\x69\xd5\x9a\x5a\x10\x90\x97\xcb\x81\x5e\x35\x95\x87\xb2\x25\x57\x8f\x05\x4c\xf6\x92\x80\xac\x89\xc5\x84\x2a\x81\x45\x09\xf3\xc6\xeb\x83\x92\x60\x01\x91\x86\x23\x66\x10\x10\x8d\xa6\x10\xa3\x98\x4a\x48\x75\x82\xbb\x34\x70\x86\xa1\x76\x4a\x60\xe5\x68\x17\x19\xbb\x26\x93\x02\x42\x24\x0b\xd2\x70\xcc\x4e\x77\xe4\x91\xde\xb4\x7e\xc6\xa3\xbc\x10\xe4\x22\x90\x70\x6d\x9c\x0d\xa2\x4c\xd2\xd9\x5c\x21\xca\xac\xdd\x11\x27\x33\x2e\xa8\x9a\xa7\xb2\x87\x26\xb9\xd4\x5a\xa8\x09\xbb\x34\xf1\x28\x44\x45\xad\xb8\xd0\xae\xe9\xf0\x71\xa5\xc1\x65\x15\x65\x0b\xd2\x68\x77\x28\x07\x95\xbb\x62\x0d\xe1\xf4\x3d\x62\x66\xb5\x0d\x0a\x15\x48\x0d\xd0\x2a\x32\x11\xad\xdc\x61\x94\x41\x3d\x9b\xa6\x73\x00\xf8\xa6\x7b\xf3\x52\xbc\x46\x49\x39\x64\xd2\x9a\x05\x71\x59\x08\x20\x79\x95\x31\x56\x0d\x0e\x99\x77\x3a\xa5\x99\xaa\x0d\x41\x5c\x76\x15\xdd\x06\xe8\x55\xed\x16\x1b\xd2\x0a\x81\x9a\x01\x73\x70\xc4\xee\x08\x69\x86\x24\x5c\xda\x7b\x53\xe4\x19\xa6\x60\x53\x96\x56\x93\xfc\x2e\x4e\xec\xf3\xc1\xdd\xd9\xed\xf0\xc6\x80\xa7\x5c\xdf\x5e\xf6\xef\xc7\x35\x7e\xed\x9a\xb7\x2e\xfb\xb7\x3f\x9c\xaf\x7f\xed\xfb\xfb\x32\xbe\x40\xcd\x2b\xb7\x77\xab\xd3\x92\x5a\x0c\xb1\x26\xbd\xb1\xb6\x9f\x53\x94\x2d\xd4\x9c\x33\x1f\xa2\x10\x97\x78\xd3\x11\x32\xb9\xed\x0a\x42\x88\x84\x54\x35\x8e\xc3\x7b\x88\xcb\x59\x2f\x61\x96\x37\xcb\x00\x0a\xee\x55\x34\xda\xe0\x44\x7e\x4a\xf8\x04\xfc\xd6\x79\xa9\x58\xf3\x8a\x5c\x8a\x1d\xe3\x7d\xce\xa9\xcc\x12\xbc\x58\xea\x61\xdd\x95\x73\x85\x53\x02\xb1\xf3\x05\x12\xa2\x4b\x7b\xd2\x3b\x03\xa9\x78\xfe\x5e\xa7\x53\xc8\xc9\x53\x14\x2b\x82\x26\x44\x3d\x43\x06\xa8\xfb\xd5\xdb\x52\x5d\xc0\x88\x3c\x1e\x31\x30\xe7\x8c\xf4\x22\xc7\x39\x44\xfb\x8d\x3e\xf4\xd0\xe8\x43\x4c\x9e\x48\xc2\x33\xbd\xf3\xfa\x87\x86\x4b\x66\x90\x62\x9a\x5c\x71\xe5\x2d\x73\xbb\xec\xa7\x20\x11\xcd\x40\x32\x1f\x13\xdd\xee\xeb\x09\x1e\x25\x4a\x76\xec\x0c\xc6\x80\x70\x1c\x6b\x25\x1b\x58\x99\x1b\x5e\x11\x02\xc4\x82\xa9\x97\xaa\xbe\x6e\x22\x52\x78\xf3\xb7\xe9\x31\x6c\xb3\x6c\xf6\xac\xdd\x01\xf6\xf4\x82\x2e\xd9\x5d\x2f\x72\xad\x95\xfc\x40\x16\x90\x4c\x74\x83\xa9\xd8\xd2\x35\x5b\x17\xf3\xfa\x22\x4e\xda\x41\x5d\xd4\xfa\xe1\xb8\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\xb9\xf8\xbb\x62\x17\x2c\xcc\x43\x15\x59\x82\xac\x1d\x71\x94\x70\x59\x46\x7d\x6a\x3d\xe8\x33\xfb\xe9\xaa\x71\x0f\x42\xf2\xd5\x72\xe1\x46\x01\x0d\x35\x0b\x5f\x81\x35\x35\xf7\x8c\xb2\x1e\x32\xfb\x76\x0f\x51\x88\xb6\x04\x85\x2c\x29\x30\x30\x58\x8c\x0a\x37\xc8\x88\x15\x31\x2b\x12\x3d\x93\x04\xc2\xdc\x22\x9e\x66\x60\xe2\xb7\xc3\xb5\x2d\x91\xd8\x44\x0c\xf7\x10\xcf\x95\x6e\xcc\x64\x97\x39\x23\xae\x4d\x5d\x2b\xdc\x1e\xc6\xf7\x66\x83\xdf\x3d\x44\xba\xa1\x75\x73\x97\x52\x86\x3e\x11\x05\xad\x40\x09\x8a\x70\x82\xa0\x27\x54\x43\x28\xeb\xd7\x7e\x87\x13\x65\x67\xb2\xc1\xce\x17\x10\x40\xdf\x25\x7c\xb2\xda\x48\x00\x8d\xa3\x87\xdb\xa1\xb3\x48\x16\xf1\x53\x01\x0e\x77\xc9\xa3\x38\xb8\xb9\x1d\x9c\xf5\xef\x07\xe7\xc7\xe8\x41\x12\xbd\x3c\x7e\xba\x80\x14\xe0\x55\x12\x33\x72\x8b\x29\xc4\xa4\x22\xb8\xc9\x10\x42\x84\x28\xe5\xf3\xaf\x61\x1c\x65\xc0\xa1\xd5\x84\x0d\x70\x3f\xd4\x1a\xea\x00\x22\xab\x3a\x4f\x1b\x99\xb7\xee\x04\x42\x9c\xd4\xf8\xfd\x44\xa9\x99\xf1\xa6\xcb\x91\x79\xeb\xc8\xa7\x1c\xd1\xf7\xd2\x93\x81\xa3\xa5\xe6\x84\x0a\xd4\x6a\x5a\x86\xa8\xc6\xed\xe7\x14\x84\xb8\x5f\xe2\x6c\x75\x22\x35\x7e\x2e\x11\xad\x11\x85\x03\xdf\xfd\x4b\x9f\x03\xc7\xd6\xc6\x86\x15\xee\x3e\xc1\xc2\xa1\x65\x78\xab\xe7\x9b\x26\xe3\x43\x3a\x23\x59\x38\xb1\xca\x20\x6c\x1c\xab\x44\x70\x76\xe0\x17\xca\x50\xe9\x4a\xec\xa1\x29\xfd\x6c\x1b\x2d\xe2\xdb\xdd\xab\x41\xc0\x43\x43\x3c\xe5\x1c\x2f\x9f\xa9\x0d\xc4\x86\x1b\xf8\x7e\xa5\x10\xc9\xa5\x16\x89\x22\x2d\x2e\x09\x12\x71\xa1\x6f\x0a\xe8\xb6\xf0\x42\xac\x13\x19\x14\x16\x7a\x51\x96\xbd\x32\xab\x4e\x7f\x51\x4d\x27\xc6\x8a\x1c\x69\xd1\x6b\x4d\x2a\xbf\xcd\x91\x81\x6c\x1a\xac\x02\x60\xbb\xe2\xe6\x99\x90\x19\x66\x2e\x34\xbb\x61\xb8\xee\xca\xdb\x81\x55\x69\x15\x08\x43\x7a\x18\xc8\x57\x90\xfa\x53\x1a\x87\xcc\x60\x3d\x57\x8e\xc3\x46\xbf\x1c\xc2\xb2\x3d\x63\x1f\x8c\xd3\x30\xd8\x3c\x8b\x0f\x69\xb0\x09\x96\x0a\xd9\x31\x35\x99\x22\x02\x15\xf1\x65\x8d\xb0\x25\xdd\xbe\xad\xf2\x06\xb9\xc0\x25\x2d\x96\x80\x67\x44\x3a\x04\x20\x83\x77\xa4\x75\x1a\x27\x08\x9b\xa2\xe2\xfe\x6c\xdb\xea\xe2\xee\x96\x08\x99\x09\x04\xe9\x2f\x37\x7d\x8c\xfa\x6c\x09\xf9\xcd\xc5\x65\x95\xd6\xcb\xdc\x49\x38\x79\xc6\x0b\x09\xb9\xc2\xc6\x53\xab\x82\xd0\x06\xd0\xc0\xca\x1f\xf9\x50\x08\xe5\x52\x27\x10\xd8\x62\xd6\x07\xcd\x39\xb9\x77\xfc\x02\xae\xbc\x4a\x54\xb9\x17\xc8\x8b\xe6\x0a\x5b\x45\x0b\x56\xa7\xc8\x38\x9a\x63\x36\x23\x63\x67\x64\xdd\x46\x5b\xd2\xed\x9c\x41\x33\xe7\xb6\x95\xfa\xcb\xe9\xc6\x28\x4c\xb6\x92\x91\x79\xd5\x1b\x10\xf5\x21\x90\x0a\xcf\x08\x32\x23\x6a\x65\x96\x2e\x45\x8c\x59\xd8\x6c\xd0\x13\x6c\xab\x83\x72\x14\x7d\x93\xf0\x0e\xa1\x4f\x17\x78\x42\x92\xb7\x89\x9c\x80\xae\xad\x71\x1e\xbc\x75\x26\x1b\x80\x04\x69\xe1\x95\xd4\x6f\x93\x51\xd2\x2a\xbe\xa9\x98\x67\xa9\x8e\xff\x2e\x29\xf0\xb6\xea\xcd\x36\x53\x6d\xaa\x85\x13\x5e\x7b\x41\xcd\x98\x3a\x03\x5b\x78\xfd\x55\x6d\xca\xdb\x0d\x24\x28\x5d\xd3\x30\x8e\x9d\x6b\xd7\xac\x9d\xca\xd6\x70\x19\x2d\xeb\x39\x42\x72\x3f\x23\x88\xca\xe2\x65\x55\x4e\x87\xf2\x60\x53\x5a\xc4\x37\xc6\x17\x5f\x6f\xce\x97\x11\x7b\x69\x4b\x4b\x01\x03\xe2\x6d\x03\x2e\xbf\x9b\x11\xad\xa8\x62\xb1\x00\xb0\x5a\xc3\x87\xcb\x32\xdd\xda\x71\xee\x5d\xe0\xbe\x77\x58\xc4\x41\xa4\xae\xe2\x08\xc4\xc8\xca\xe0\x90\x41\xf4\xb5\x2f\xd9\x8f\x2c\xe0\xd2\x88\x79\xcb\x06\x10\x22\x95\x28\xc5\x99\x87\x64\xf0\x5f\x19\x00\xb1\x10\xa3\xc1\x0a\xe2\xd2\x54\x83\x6b\x58\x81\x75\xa6\x1d\x77\xfd\x16\xeb\x5a\x06\x6a\x75\x20\xd3\x33\xfa\x44\x98\xa3\xe9\x9e\x3b\x13\x7a\x50\xae\xd3\x64\x71\x84\x21\xcc\x98\xc4\xa1\xe7\x63\x35\x47\x32\x06\x99\x43\xb0\x47\xb6\x5f\xb2\xfb\xda\x30\x1a\x03\xf7\x57\xaa\xd3\xe0\x02\xc3\x43\x2a\xb5\x08\xd4\x26\x13\x1c\x4b\xf4\x3b\xc6\xd5\xef\x02\x8c\x6e\x67\xbc\x80\x4f\x9d\x09\xaa\xb7\x54\x7c\x08\x0e\xad\x25\x1c\x84\x03\xac\xb8\xb5\x2b\xbf\x6b\x6c\x40\x11\xf8\xfe\xa2\xd2\xe8\x60\x39\x0b\xae\xa9\x7a\x5b\xe7\xb1\x47\xd5\x6b\xa1\x6a\xf0\x34\x05\x22\x8b\x93\x5e\x32\x74\xca\x75\x2e\x7a\xbf\x17\xad\x5c\xf3\x4b\x88\x00\xbb\x50\x5b\xda\x3a\x72\x6a\x0d\x9c\x77\xbd\x5d\x62\x9b\x3c\xcf\x26\xb9\x5c\x94\x43\xd7\x6c\x41\x97\x06\xbc\xea\xe3\x11\xfb\xc8\x85\xbd\x82\xa5\xad\x98\x31\xc1\xd1\xe3\x11\x61\x31\xc2\xb9\x9a\x1b\xdc\x68\xeb\x57\x58\x58\x6a\xd0\x92\x06\x90\x8d\x87\xd2\xa0\x32\xc2\x22\x76\xb5\x5b\x9e\xb8\x1b\xc5\x88\x05\x8d\x40\x4d\x0e\x28\x59\x06\x45\x97\x9b\x54\x4d\x22\xb5\x7e\xd5\xb4\x16\x75\xe5\x84\x97\x8a\x09\xaf\x3e\x67\xa5\xf2\xc8\x50\x4d\x04\x02\x9c\xf8\x74\x79\x75\x86\xce\xda\xe8\xf4\x3b\x4d\xcf\xcb\x5e\x88\x32\x52\x91\x9d\x81\x96\x74\xbe\x75\xbc\xb6\x84\x7f\x3d\xcd\x05\x84\xeb\xd6\xb5\xf9\x75\x34\xa7\x49\xe1\xbb\xf8\xa6\xe7\x87\xa9\x9b\x4c\xc8\x13\x49\x0c\x8e\x55\x64\x50\x93\x8c\xd5\xf0\x5b\xf4\x7f\x4c\x89\x5d\xf4\x87\x11\xfb\x04\x6c\x38\x49\x16\x80\x0d\xeb\x5b\xc6\xaa\xd2\xcc\x63\xed\x00\x94\x4d\x05\x42\xe5\x81\x98\xbd\x9e\xe3\x27\x32\x62\xae\x99\xff\x83\x1e\xd1\xef\xd1\x1f\x9a\xd4\x3b\x17\x60\xff\xc2\x76\x8e\x8f\x41\xf8\x7a\x70\xcb\x59\x46\x69\xf9\x8d\x33\x83\x94\x8c\x90\x35\xc8\x1a\x1e\xe2\x9d\xb2\x27\x1e\x2d\x65\x71\x84\xa7\x16\x0b\xc2\xd4\x98\xf1\x98\x8c\x49\x8d\x4b\x73\x05\x93\xd0\x42\xc0\x15\x8f\xc9\x5a\x87\xa4\x67\xa6\x3f\x81\xe9\x46\xe6\x13\xbf\x1d\x90\xe0\xef\xb3\xb9\xbd\xf5\xa1\x4c\x69\xf5\x23\xf7\x38\xca\xdb\x8c\x7b\x5b\x67\xaa\x0b\x13\xed\xc1\x85\x60\x07\x50\xef\xd0\x4b\xb0\x72\xee\xf5\xea\x71\xac\x3a\x02\xf4\xcb\x7a\xe6\xf6\xb2\x0a\x10\xa2\xa1\x8a\x8f\xa0\x33\xaa\xe5\xf7\xf6\x0e\x5b\xe0\x84\xdb\x78\x33\x0c\x5c\x6e\x2b\x77\x46\xb1\x14\x0e\x68\xe5\xc8\xd3\x5f\xe1\x84\x9c\xf0\xbc\x2a\xc0\xdb\x05\xa0\x32\x74\xf7\x5b\x59\x7d\xa1\xf9\xf0\xcc\x64\x00\x92\x39\x35\x39\xf7\xfd\xb3\x0b\xa4\x4f\x07\x4f\x0d\x30\x15\x2c\x5a\xae\xe6\x5c\xd0\x5f\x1b\x33\x94\x9a\x65\xf4\xc2\xd3\x5a\x24\x74\x99\x71\x96\xa5\x75\x20\x56\x23\x52\xa8\x92\x56\x52\xa7\x33\xa1\x49\x0e\x68\xc2\x9a\xcd\x4e\xf3\xc4\x94\x20\x89\xb8\x88\x8f\x47\xcc\xc6\xde\x06\xbd\x69\x59\xc5\x89\xf7\x58\xf9\x06\xa9\x05\x5d\xb5\x45\x4e\x8c\x05\x67\xa5\x00\xfa\xd7\x9c\xe4\x7b\xca\xc0\x7b\xd3\x98\xe5\x7b\x3c\x93\x45\x10\xb2\x59\x1b\xcd\x9b\x8b\xf5\xfd\x87\x9e\xa9\x0c\x72\x56\x9d\x65\xd1\x43\x40\x19\x95\xdc\x94\xb8\xdd\xc8\xa2\x73\x6b\x8a\x38\xec\xc1\xa4\xf3\x1a\xf1\x1c\xcb\x32\x52\x0d\xfb\xb1\xe4\xf7\xe4\x33\x38\xab\x2c\xe2\x85\xec\x24\xae\x1a\x46\x45\xfa\x78\x41\x93\xc9\x16\x4c\x6e\x59\xa8\x5e\x19\x15\x5d\x18\x50\x3c\x5b\xab\x49\xa6\x56\x1c\xd2\x2e\x9e\x05\x05\x84\xb8\x45\xf1\xb2\xaf\xe6\xec\xae\x8b\x90\xc7\x68\x29\xc5\x88\xb5\x10\xd7\xe1\x96\x70\x51\xcf\xe3\x37\x30\x40\xd8\x86\xca\x5d\x2f\xfb\xed\x9b\x4e\x84\x61\x49\x87\x7a\x24\x96\xe1\x61\xd6\x1e\x06\x5f\xd3\xe6\x6d\x0c\x88\x5e\xb4\x79\xbd\x93\xe1\xc9\x71\x1c\xe1\x68\xde\x38\xa9\x09\xe7\x09\xc1\xac\x49\x7a\xad\x7d\x5c\x3d\x22\x06\xa6\x17\x58\x77\x92\x00\x56\xb5\x5b\x02\x5b\xdf\xb4\x10\xdf\x59\x0c\x35\x06\x0c\x0f\x37\xb1\x81\x6e\xa0\x8a\x30\x67\xf9\xa1\x6c\x96\x90\xea\x5a\xd9\x62\x10\x3d\xdb\x49\x12\xe5\x49\x50\xe0\x34\x23\x42\x8f\x5a\x2f\xf1\x13\x61\x5a\x67\xb0\xe3\x70\xce\x8c\x67\x97\x10\xed\xcb\x9a\xf5\x7c\xd7\xce\x9f\x06\x59\x87\xf1\x88\xc1\xc1\xe5\xe5\xc3\xaa\x69\x55\x6a\x35\x23\xb4\x4b\x6d\x7d\x3a\x03\x21\x62\xe3\xe3\x79\x57\x36\x13\x6f\x7c\x26\x4d\xdf\x63\x88\x31\xd8\xd9\xb5\x16\xb8\x5f\x0a\xa8\x06\xb3\xb1\x0e\x8e\xeb\x95\x8c\xc8\x10\xb5\x51\x0e\x3b\x0d\x82\x36\x9a\xe0\xa0\x5e\xf4\x2e\x29\x0a\xb9\xb8\xdb\xa0\xe5\x50\x56\xba\xaa\x5b\x3a\x9e\xc1\x3a\xb9\xea\xdc\x5e\xd8\x90\xed\xb2\xcb\xd6\xe7\xf7\x14\x61\x8e\xb6\x54\xb1\x12\x18\xd0\x09\x20\xa7\xfc\x27\xa3\x61\x53\x69\x2c\x60\xae\x60\x4b\x9a\xa9\x85\xad\xef\x07\xf7\x62\x98\xd3\x6b\x10\xdf\xea\xdc\xc3\xd5\x3b\x32\x2e\x39\x88\xeb\x3a\x83\x8e\xac\x59\xa1\xb6\x49\xb7\xd0\x21\x82\x48\x05\xb1\xa1\x29\x1a\xc4\x94\x4a\x1e\xe3\xa4\xd1\x96\xb5\x07\xa6\x09\x69\xb6\x05\x4a\x83\x05\x7f\x55\x22\x07\xbc\x6f\x9c\x24\x95\x79\x61\x48\x87\x56\xbe\x5c\xe2\xa4\xa8\xe9\xdc\xde\x59\x9d\xe0\x09\xd9\xc8\x3d\x7d\x61\x3e\x58\x49\x45\xf0\x0a\x44\x76\x67\x59\xb2\x68\x17\x51\x1e\x86\xde\xd5\x82\xa4\xad\x1b\x58\x08\xad\xb6\xf2\x6e\x2a\xc3\x93\x6d\x37\x44\x49\xa2\x5c\x50\xb5\x18\x5b\xa3\x5f\x7b\xa6\x75\x67\xbf\x3c\xb3\x1f\xb6\xd1\xa8\x4f\x91\xeb\xcf\x19\x19\xe1\x9e\x12\xd4\xd4\x82\xb2\x53\x68\xb3\xdd\x5a\x4b\xae\x05\x4f\x5a\xb5\xb0\x0e\xbd\xa9\xdd\x50\x75\x17\xdb\x0e\xcf\xd6\x98\x19\xf3\xa9\xc3\x45\x6a\xbf\xb0\xd5\xe2\x3b\x1b\x58\x4b\x1d\xfc\x72\x26\x28\x17\xb6\xc6\x4d\x9b\xa0\xb6\x14\x7f\x1e\x67\x58\xe0\x24\x21\x09\x95\xe9\xf6\xb6\xdd\x3f\xfd\x71\xe5\x68\xcf\x4c\x2d\x26\x33\xd8\x14\x7f\xa6\x69\x9e\x22\x96\xa7\x13\x2b\xe5\x62\xf9\x18\x82\x5f\xba\x54\x7d\x83\xe1\xe4\x06\x58\x02\x0c\x10\x01\x9c\xe9\x88\x05\xc0\xd6\xd6\x54\x81\xa3\x39\x25\x4f\x00\xbb\x29\x18\x91\xf2\x18\x5d\x71\x45\x4e\xd1\x25\xce\xee\x41\x50\x33\xc5\x51\x67\xc6\x3a\x8e\x25\xd2\x52\x6b\xce\xa8\xea\x8d\x98\x45\xc3\x76\xab\x72\x12\x71\x66\x10\x51\x23\x58\x58\xdf\x04\x98\x7b\x1d\x34\xa8\x72\x89\x8d\x54\x36\x2c\xb6\xc0\xcf\xe3\x20\x7a\x75\x6c\xb2\x03\x36\xa0\xe3\x5b\xfc\x6c\xe2\xb5\xcf\xb1\xc2\xa6\xee\xf1\x2a\xc9\xdd\x06\x44\xd9\x5a\x58\x06\x08\xd8\x05\x8e\x70\x8b\x46\xe1\xab\xf8\x99\xe8\xd4\xaf\xe9\x31\x39\x46\xdf\x25\x7c\x22\x7b\x48\x7a\xd0\x6c\x78\x28\x89\x92\x3d\xe3\xa0\x82\x7f\x9b\x54\xb0\x6f\xdc\xea\x17\x7c\x1f\xbb\xba\x0b\x00\x82\x21\xff\x74\x7a\x72\x92\x2e\x8e\x26\x79\xf4\x48\x94\xfe\x0b\x64\x8a\xda\x15\x72\x08\x52\xb8\x0e\x8f\x6a\xdd\xea\x2c\x63\x59\xb5\xa2\x48\x9b\x56\x23\x09\xe0\xa6\xeb\x2b\xdd\x97\x08\x76\xd0\x47\x9c\xd5\xd7\x3f\xb5\x53\x16\x79\xd3\xf1\x2a\x01\x2e\xbf\x8e\xb6\xa2\xe6\xa4\x82\xf3\x3c\x4d\xf0\xac\xa2\xb2\x6c\xa0\xa4\x5c\xa7\xd4\x52\x91\x9e\x3b\xc4\x5b\xe8\x53\x56\x8e\x32\xfb\xca\xb9\x23\xc1\xad\x68\xdd\x2d\xc7\x23\xd6\x97\xe8\x99\x98\xca\xc6\x90\x93\x08\xde\x89\x9c\xca\xb9\xcf\x48\x04\x7b\x29\x34\x6a\xe0\x70\x0d\x6a\x82\x55\x1c\x9d\x66\xe5\xfc\x37\x56\x03\xc5\x89\x24\x3d\xdd\x30\x40\xa2\xb9\x40\x42\xf4\x2c\x70\x96\x11\x31\x62\x16\xda\x14\x00\xbc\x39\xb7\x41\x22\x4d\xd1\xe4\x9d\x46\xf9\xba\x1a\x65\x98\xf4\x51\x4e\x58\x5c\x77\xbe\x21\xbf\x71\x65\xaa\xc7\x8a\xdc\x40\x2d\x8b\xae\x8c\xf4\x5e\xa7\xe9\xf6\x2b\x21\xef\x50\x84\x3c\x05\x65\x4c\x16\xb5\x56\x9d\xdd\xcc\xab\xc2\x25\x91\x01\x50\xa6\xe1\xe3\x98\x13\x19\x18\xc4\x91\xb7\x6b\x25\x74\x4a\xf4\x4d\x3e\x62\x9a\x24\x42\xe3\xbd\x01\xab\x76\xd8\xd5\xba\xd3\x48\x70\x29\x6d\x14\xbb\x69\x67\x75\x2e\xd2\x0e\x15\x1e\x0d\xe2\xf6\xf0\xfa\x6a\xbc\x5c\xeb\x31\x78\xe6\xaa\x3e\xda\x87\xb5\x09\xeb\x8d\x4d\xad\xad\xf1\x58\xac\xc5\x06\x55\x1e\x4f\xce\x2e\x86\xbe\xb4\x59\xa5\xeb\xe5\x32\x8f\x21\x4a\x79\x73\xa1\xc7\xe5\x19\x07\x25\x1f\x2b\x4d\xac\x28\xfa\xb8\x7e\xb3\xca\xb1\xb3\xbb\x40\xd0\x55\xb6\x7e\xed\x59\x2b\xd3\xcc\xba\x10\xef\x3d\x6d\x53\x03\x8b\x8e\x40\xf8\x7a\x69\x6f\x35\x08\x31\xfa\x2d\xa9\x70\x9a\x85\xe9\x8b\x0e\x83\xd3\x4e\xd3\x1c\xb5\xa6\x0b\xe5\x55\xb1\xc1\x23\x6c\x22\x43\xaa\x83\x5b\xda\x8a\xcd\xbc\x47\xf7\x16\x72\x7c\x1f\x21\xc1\xaf\x97\x0f\x9c\x2c\x8a\x08\x38\x69\xe5\x20\x57\x98\xbd\xc1\x86\x3e\x21\x1e\x5e\xbd\x71\x43\x77\x4d\xf8\xf3\x30\x4c\x82\x60\x69\x43\x1b\x20\x2f\xae\x92\x33\xb3\x81\xa9\xd5\x8f\xd9\x64\xd6\x1e\xf9\x82\x06\xc1\x55\x63\xab\xcd\x45\xee\x20\x52\x21\xc8\x13\x11\x40\x3b\x36\x7e\x86\x95\x8f\x2a\x4e\x04\xc1\xf1\x22\x58\x11\xef\xbc\x37\x3d\x83\xa9\x49\xd2\x54\x2b\xc3\x20\xe6\x33\x7e\xc4\x33\x27\xff\x97\xde\x72\x05\xc8\xa8\x0a\x5d\xff\xfa\x0b\x76\x44\x3e\x53\xa9\xf4\x1d\x5d\x13\xf7\xe8\x1a\x01\xe9\x01\x6a\x54\xcd\x89\xbd\xe1\x46\x1f\xfa\xdf\x5d\xdf\xde\x0f\xce\x47\x1f\x8a\x48\x77\x97\xca\xe5\xd1\x95\x1c\x58\x3e\x67\x23\xe6\x83\x53\x3d\x98\x30\xec\x25\xc2\x71\x5c\xa0\x04\x58\x85\xcc\xc8\x3f\x2b\x39\x72\x70\x2a\xd6\x86\xa5\xae\x68\xe6\x01\xf2\x79\x0e\xf5\x64\xad\x70\x43\x95\x4e\x8e\xc9\x4a\x5a\x91\x3e\xb2\xa7\xcb\x26\xc4\x41\x55\x46\x6f\x25\xca\x01\xf5\x31\xf2\xec\xf4\x0e\xb8\x9d\x4f\xb0\xb9\x84\x37\xe3\x76\x6e\x43\xb6\xd8\xd4\x8f\xf4\x33\x89\x6f\x1b\xa4\xaa\xbd\x64\x87\xb4\x8a\xaa\xab\xdd\x85\x9c\xd1\x4d\xb4\x67\x3f\x95\x07\xfd\x5d\x7b\xb6\x74\x5d\xc0\x9b\x15\x50\xa5\x80\x53\xaa\x10\x46\x11\x11\x0a\x53\x86\xa6\x70\xb0\x59\xb4\x40\x00\x7e\x41\xc0\x1f\xfc\x47\x94\x52\x06\x59\xf8\xab\x96\xf6\xa1\x3c\x8f\x0d\x84\xd6\xcb\xe1\xd5\xc3\x7d\x49\x54\xfd\xfe\xfa\xa1\x5c\xea\xbf\xff\xf3\x4a\x59\xb5\xd2\xc2\xaa\xc0\x9b\x60\x8a\x45\x46\x9f\x45\x6c\xf5\x2b\x53\x3b\xd1\x64\xa1\xc8\xc3\xed\xc5\x4e\xf2\x5d\xbd\xe3\xa9\x11\x6f\x3b\x94\xae\xea\xd1\x05\xda\x7c\x1a\x93\x68\x1d\x22\x68\x7b\x3a\x32\x11\x45\x7a\x1d\xac\x65\xce\xa2\x85\x61\x89\x32\x2c\xac\x4f\x27\x36\xc1\x44\xe5\x2a\x5b\x46\xf3\x5a\x85\xc6\xf0\x89\xa8\x1f\xf5\xd5\xc7\xd9\x3e\x32\x0a\xac\x28\x0b\xbe\x46\x32\x7e\x32\x0d\x6f\x70\xd2\xec\x50\x56\xa4\x8d\x38\x61\x19\x7a\x40\xb6\x87\x10\xc3\xe0\x18\x01\xd5\xf4\x75\x73\xb0\x22\x2e\x36\x4f\xab\xa4\x9c\x69\x8a\x34\xd0\xa4\x0e\xcf\x34\x68\x8e\x4f\xcd\xc7\x2d\xd1\xdd\x82\x08\x71\xdd\x56\xb1\x94\xa8\x7f\x33\xac\x59\xeb\x8b\xaa\x3b\xe6\xcb\x2a\x0d\x93\x78\xcf\xd0\xbe\x01\x87\x82\x54\xbf\x83\x40\x18\xb2\x33\xdd\x0d\x52\xc8\x38\xd0\x6f\xca\x5e\xf9\x43\x40\xbe\xad\x53\x19\x4a\x29\xbc\x6b\x40\x6e\x37\xcb\x6a\x2b\x96\x61\x43\x00\xa1\x70\x40\x36\xa5\x22\x04\xcd\x59\x8e\xd7\xed\x85\x20\x3a\xdc\x14\x9f\xb5\x7e\xfa\xbd\x01\x0b\x15\xb3\x69\x83\x2c\xf4\xa3\xa1\x68\x0f\x3c\x01\x50\x1a\xae\xb8\xa1\x8b\xb3\xb5\x79\xe0\xe1\x74\x43\x6a\xdb\x0c\x8c\xa8\x18\x9f\x33\x25\x5b\x5c\x67\x9c\x61\x6b\x77\x00\x25\xca\x55\x1d\xa8\x2b\x52\x77\x3c\x62\x41\xf0\x87\x34\x6a\x8f\x3e\x23\xae\xd0\x07\x54\x8f\x65\x00\x12\x0d\x09\x2f\x5e\xf8\x29\xed\x40\x35\xdd\x5c\xcd\xcb\xa5\x3a\x96\xfa\xb1\xa7\x53\xce\xb1\x4b\xea\x73\x16\x14\x1b\x53\x17\xda\x97\xa0\xbd\x00\x9c\xdf\x76\x0c\xa6\x5d\x30\x5a\xe0\xa0\xf4\x5b\x90\x08\x1e\x73\x22\xd9\x57\xca\xa7\x4d\xd2\xc4\x96\x17\xc1\x55\x53\xbb\x96\xea\x30\xb5\x2d\xaf\x3e\xe0\x7b\x40\x3a\xda\x54\x71\x08\x8e\xd5\x5a\x33\x95\xf3\x97\x02\x25\x84\x71\x3d\xd0\x69\x93\x85\xfa\x73\x06\x45\xc9\x37\x86\x63\xb9\xc1\x02\xa7\x44\x11\xb1\x2a\xb4\xa7\x5c\x98\x19\x44\x1c\xb7\x83\xb6\x5f\xb3\x8b\xa6\x6a\x45\xb5\xbc\x89\xd7\x6e\x2f\xd6\xc1\xab\xf8\x59\x6c\x84\x24\xa5\xa7\xf1\xa3\xb5\xa2\x6f\x38\x0b\xdb\x4f\x31\x0d\x1b\xb9\x14\xa0\xe9\xec\x3a\xa7\xd7\x81\x15\xb9\x5f\x02\xe8\x28\x85\xde\x1c\x08\x9e\xc8\xfa\x51\x36\x01\x89\xac\xe3\xa5\x7b\xe1\xdd\x2e\x5b\xc0\xa5\xa3\x56\x0e\x55\x29\x0f\x01\xa8\x04\x54\x2a\x83\xa9\x51\x0f\x06\x02\x42\x4b\x5d\xb4\x61\xe0\x42\xb3\x50\x71\x85\x41\xd7\x4a\x56\xd5\x42\x4d\x95\xe5\x5a\xc3\xe3\xf6\x05\x94\xd0\x49\x34\xfb\x96\x68\xd6\x91\x72\x29\x52\x55\x53\x27\x11\x15\xcc\x16\x5b\x40\xd9\x26\xdb\x97\x27\x08\x79\x3c\xf6\x8a\xb4\x55\x58\xe1\xea\xa7\xcc\xff\xab\xcc\xc1\x1d\x51\x87\xa4\x5a\x97\xa0\x78\x1c\xb8\xa0\xc0\x03\x95\x84\xd2\x80\x8d\x51\x81\xd1\x9a\x90\x42\x63\xe5\x1f\x5e\x19\x07\x16\x24\x0a\x2f\x78\x8e\x9e\xa9\x9c\x23\xc5\x47\x0c\x62\xee\xbc\x37\x40\x71\x64\x5e\xec\xc1\x5b\x00\x29\x20\xf3\x49\x4a\x15\xc2\xc1\x0c\x4b\x26\xc9\x9e\x3d\xcf\xfa\x03\x98\x71\x6d\xce\x7a\x1d\xdc\xcd\x9a\x43\xb3\x85\x7d\xad\x68\x64\xd7\xb4\xf4\x20\x3e\xf8\x65\x13\xd3\x03\x8d\x27\xd4\x30\x6b\xcf\x5c\x97\x99\x8e\xea\xad\x0d\x16\x80\x13\x50\x52\xa9\x54\x95\xbb\xc5\x1a\x7a\xd6\x64\xa5\x17\x1b\xd1\x2a\x2d\xbd\x78\x7d\x1f\x79\xe9\x4d\x25\xbf\x56\xe5\x29\xba\x4f\x1a\xec\xdf\x2e\xff\x55\x71\x17\x84\x1e\x4a\x4a\x37\x8d\x92\xd2\xa1\x21\x84\x15\xc1\xf5\xdb\x87\x6a\x6f\xa2\x0e\x16\xb9\x4e\x21\x15\x05\xa9\x8b\x65\x7c\x15\x52\xe5\xfc\x8c\x2b\xc8\x4f\x89\xa0\x1c\xfa\x52\xce\xe4\x88\xd5\x4b\x20\xab\x79\xe2\xae\xe9\x0e\x7b\x45\x12\x0b\xce\x9f\x9b\x85\xb5\x68\xfd\xe4\x03\xc6\x8c\xb2\x6c\x0b\x9b\x57\x45\xcc\xc2\xc5\xd7\x14\xe8\xa3\x05\x8f\x6d\x92\x77\x6b\x4e\x65\xfd\xd0\x97\x92\x11\xd6\x9e\x0b\x7b\xe9\xee\x51\xb5\x5b\xe2\xce\xad\x73\x37\xbc\x8c\x6c\xb9\xb1\x0b\x3e\x76\x6a\x7c\xc5\x53\xbb\x4d\xc1\x56\x00\xe8\xdc\x1b\xac\x68\x35\xd3\x5f\x37\xde\x03\xef\xae\x1d\x3a\x36\x91\x2e\x1e\xec\xba\xb2\x25\xa5\x09\xdb\x42\xf8\x2f\x30\xe9\x4d\x8b\xec\x06\xde\x46\x61\x23\x67\x69\x68\x37\x80\xea\xba\x36\xe0\xb0\xc2\x87\xbd\x68\x97\xb3\x98\x08\x46\xb0\x9a\xbf\x5e\xbe\xc2\xd9\xae\xc6\xe9\x30\xc0\xfe\x45\x73\x17\xce\xf6\x52\x61\xbd\x92\x0f\xb0\x61\x2a\xc0\x06\x71\xf5\x45\xbd\xdd\x25\xc5\xb1\xc6\x68\x18\xc0\xb9\x6c\x42\xa5\x3b\xa5\x34\xd4\x2b\x73\x2f\x93\xdc\x51\x63\xf5\x59\x4a\xeb\xd0\x87\x3d\xac\x52\xbc\x66\x49\xbe\x88\x2c\x8a\x97\x0f\xec\x5f\x55\x0f\x39\x0f\x62\xfd\xa1\x28\xb5\xc2\x94\x59\xee\xb5\x2a\xbc\x5f\x4b\x94\x29\xae\x8b\xe8\x3f\xf8\x5c\x91\x2f\x3e\x55\xa4\x4b\x1c\xe8\x12\x07\x6a\xf6\xa8\x4b\x1c\x40\xe8\xbd\x25\x0e\xac\x32\x7f\x7a\x8f\x1c\xd4\xad\x2c\x15\x8b\x31\xfb\xbb\x46\x8b\xdc\x3e\xa0\xdf\x59\x10\xc3\x68\x28\xfb\x8b\xfd\xa1\x36\x20\x6a\xe9\xb3\xea\x6c\x43\x6b\x26\x5b\x54\x9d\x02\x58\xc4\x89\x45\x74\xb3\xe1\xca\x65\xeb\xd3\x2a\x43\xe9\x88\x7d\xcf\x9f\xc9\x13\x11\x3d\x84\x15\x4a\xb9\x54\xc0\x87\x5d\x74\x0c\x1c\x84\x12\x38\xb8\x89\x82\xc0\xe8\x0a\xa7\x24\x36\xb5\x03\x83\xa0\x46\x6b\xae\xb5\x8e\xd6\x3a\xe0\x52\xc0\xe0\x34\xdb\xe0\xa2\x26\x46\xcc\x04\x1a\x9a\xe0\x36\x90\x15\xa8\x9b\x18\x10\xcc\xef\xbc\x1b\xf8\x77\xc7\xe8\x5e\xdf\x4f\x54\x96\xc7\x1b\xe0\x98\x35\x8d\x6d\xc4\x66\x82\xe7\x99\xb7\xa0\xf1\x89\x29\x22\x6b\x62\x9f\x96\xdd\xc0\x30\x18\xe7\x03\x8e\x70\xac\x35\xf1\xd5\x84\xf3\x26\x31\xa8\x5b\x81\x01\x85\x04\xa4\x8f\xa1\x0f\xac\xb3\x81\xee\xc6\x7b\x1b\x40\xa0\xac\x82\x34\x7f\x21\xd7\xf2\x39\x91\x60\x13\xf2\x36\xf7\x52\x46\x76\x39\xeb\xbf\x76\x9c\xab\x2c\xa2\xde\x6b\xe1\x2c\xfb\xf5\x80\x02\x45\xe7\x36\xe2\xcb\xa4\x7b\xda\x7b\xe2\xc5\x6c\xa5\xad\x63\x67\x9b\xf8\xc5\x4d\x2e\x32\x0e\x92\x58\xb2\x70\x00\x08\x16\x33\x2d\xe3\x59\x6e\xa2\xda\x68\x18\xe4\x54\x4b\xd9\x54\xaa\x4b\xac\xa2\xb9\xe6\xdc\x05\x76\xd8\x9e\xa2\xfd\x0a\xae\xfc\xb2\xf6\xd3\x9a\x19\x9c\x85\xbd\x37\x38\x14\x5a\xd8\xd3\xcd\xbd\xef\x82\xeb\x9d\x24\x91\xea\xfe\x8c\xd3\xcd\x96\x86\x0e\xac\xa2\xee\x13\xfb\x44\x4f\x74\x1d\x15\xad\x1b\x7f\x3b\xda\x2a\xd7\xae\xda\x7b\x1c\xe1\x0e\x60\x2c\xe7\x16\xfa\xaa\x78\xd1\xd6\x3a\x6d\x70\xfe\x0b\xba\x5d\x0e\x90\xc5\x9b\x7f\xd2\xe2\x88\xb7\xb7\xa6\x38\xd3\x4a\x84\xe2\xfa\x96\x14\x33\x23\xc7\x9a\x28\x59\x84\x51\x2e\xa8\x3b\xfb\x95\xec\xea\x66\xea\x00\xfb\xe4\x49\x58\x9b\x28\xc2\x41\xd9\x36\xe3\xee\xc7\x91\xca\xb1\x0f\x4b\x04\x9a\x70\xe5\xc4\x4d\x26\xb9\x73\xab\x0b\x27\xde\xd5\xec\xe9\x5a\xc2\xde\x61\x97\x71\x1d\x52\x60\xab\x93\x46\xd9\x2c\x80\x19\xac\xb7\x11\xb7\xa9\x22\x50\xfb\x65\xbb\x4a\x08\xb5\x9f\x3a\xd9\x67\x9b\x6f\x57\xc0\x20\x6d\x1d\x99\x5d\x8a\x72\xb7\x61\xb0\x56\x7a\x0a\x01\x20\xad\xfd\x0e\x70\x5c\x29\xb8\xe9\xb1\x95\xa6\xfe\xcb\xff\x65\xaa\x4e\x99\xa5\xf9\x2f\xc4\xc5\x88\x99\xdf\x7b\xbe\xe2\x83\x7e\xa1\x80\x52\xc5\x29\x29\xc0\x26\x45\x19\x96\x0e\xc0\x39\x2c\xac\x98\x81\xcd\xf5\x80\xf7\x7a\x0c\x8f\xf9\x84\x08\x46\xf4\xd0\x5c\x1a\xbf\x67\x66\x29\x66\x78\x06\x20\xbd\x3d\x88\x8b\x03\x71\xb5\x50\x45\x0c\x49\x9b\xca\x81\xc0\xad\x34\xb3\xb4\xd9\xb6\x45\x05\x5d\xe8\xd3\x88\xb2\x16\x23\xb4\x08\xae\xa8\xa7\xfe\x5b\xdb\xff\x76\x12\xfb\x7d\xff\xee\x87\xf1\xed\xe0\xee\xfa\xe1\xf6\xac\x24\xb6\x9f\x5d\x3c\xdc\xdd\x0f\x6e\x6b\x9f\x15\x99\xaa\x7f\x7d\x18\x3c\x34\x3c\x72\x0d\x5c\xf4\xbf\x1b\x94\xca\x51\xff\xf5\xa1\x7f\x31\xbc\xff\x79\x7c\xfd\x71\x7c\x37\xb8\xfd\x71\x78\x36\x18\xdf\xdd\x0c\xce\x86\x1f\x87\x67\x7d\xfd\x65\xf8\xee\xcd\xc5\xc3\xa7\xe1\xd5\xd8\x05\x1d\x87\x8f\x7e\xba\xbe\xfd\xe1\xe3\xc5\xf5\x4f\xe3\xa0\xcb\xeb\xab\x8f\xc3\x4f\x75\xb3\xe8\xdf\xdd\x0d\x3f\x5d\x5d\x0e\xae\x56\x97\xbd\xae\x5f\x8d\xc6\x8a\xba\xc1\x45\x16\x18\x8d\x02\x31\x69\xb2\xb0\xa4\x4d\x7f\x05\xd7\xc5\x8d\xa1\xc7\xa3\x9e\xfb\xcb\x14\xa9\x3e\xd2\x2c\xd0\x79\xc5\x0a\xee\x31\x62\xde\x6d\xe9\x2f\x55\x85\x67\xd2\x25\x1e\x97\x46\x7b\x8a\xfa\x70\x56\x40\x61\x28\x75\x0a\x79\x0d\x7e\xa4\xce\xd1\x0d\x74\x98\xd0\x94\x82\xcf\x1b\x1d\xa1\xea\x86\x97\x1b\xb4\x73\x82\x21\x58\xaf\x5d\xbc\xea\x34\xc8\x6a\x4e\x33\x50\xca\x29\x72\x1c\x9a\x18\x73\x82\x41\x71\x5d\x30\x9c\xd2\xa8\x9a\x80\x01\x40\xa6\xa8\x00\xed\xa8\xb6\x58\x22\xb0\x72\xcb\x73\x82\x7e\xf8\x4b\x31\x28\xf0\x60\x58\xcd\x3b\x5f\xaa\x4d\x67\x1f\x88\xdc\xac\xea\x3a\xf2\x2c\xf5\xe4\x8e\xb9\x35\x2d\xc3\xb9\xb5\x35\xb0\xc1\xdd\x94\xb3\x00\xb8\xab\xe4\x7b\xd2\xc7\xdb\xcc\xa8\x42\xe3\xa7\xe8\x0e\x40\x43\x64\xa1\xba\xeb\x5d\xcc\x92\x7c\x46\x19\xa2\x69\x96\x90\xa2\x7a\xfa\x84\xcc\xf1\x13\xe5\xae\x10\x84\xa9\x97\x01\xeb\x68\x45\x2b\x74\x84\x1a\x0f\xca\x29\xea\xc7\xb1\x2c\x33\xb8\x12\xe5\x38\x96\x79\x54\x1e\x76\x88\xb5\xc5\x62\xcf\x36\x2b\x74\x54\x1c\x39\x58\xb1\xfd\xc3\xa2\x2c\xb3\xc3\xf2\xdd\xbb\xc3\xf5\xaf\x57\x70\xec\x48\x79\xbc\x95\x30\x70\x8f\xe5\xa3\x63\xcd\xeb\x04\x02\x07\x50\xb3\x5b\x8f\x16\xa9\xa6\x6d\xa7\x7e\x65\xc7\x70\xd0\xb6\xeb\xb3\x11\x5f\x79\x4d\x97\x6e\xc6\x49\xa5\x08\x56\xeb\xfe\x4a\x45\xb4\x6a\x3b\xdb\xab\xb7\xa7\x5e\x1a\x83\x23\x39\xf6\xf4\xbf\xc1\x3c\x6e\xe0\xd3\x6b\xff\xe5\x4a\x91\x6d\x1c\xac\xdb\xa6\x3e\xa0\xa5\x14\x5d\xeb\x07\x5a\x49\x87\x7b\x02\x4a\x6a\x2f\x0c\x42\x09\x03\x1a\x81\xbb\x0f\x53\x66\x0b\xdb\x10\xef\x8f\x72\xa5\x9c\xf5\x39\xf6\xc5\xd6\xf0\x84\x3f\x95\x94\xcb\x94\x48\x89\x1b\xe0\x4a\x02\x93\xd8\x2e\x8c\xc1\x9f\x50\xfb\x61\x4b\x7a\x72\x67\xf2\x5e\x7f\xb5\xca\xe8\x73\x1b\x6a\xc6\x6e\xa2\x5a\x60\x8d\x5d\x9c\x2d\xba\x36\xd9\x76\x9a\xbf\xf4\x8a\x50\x1a\x2e\x82\x08\xa3\x26\xf7\x4f\x4b\xb3\x5a\x75\xc1\x6a\xeb\x15\x85\x2e\xbc\xcd\x23\x70\x82\xd6\xb7\xc6\x96\xb6\x7e\x15\x5c\x5e\x9f\x0d\xa8\xae\xe4\xef\x0c\x6b\x39\x47\x3c\x4d\x8d\x5c\x50\xb2\xa5\xf6\x10\x36\x49\x8e\x85\x34\x25\xf3\x68\x6e\xbc\x4c\xfa\xca\xe8\x8d\xd8\x73\xb0\x21\xa5\x30\xe0\x7e\xd8\x12\xe0\x72\x7e\xd6\xc7\x8d\x3e\x95\x82\xab\x41\x64\xa4\x10\xe9\x1b\x10\x82\x71\x08\x16\x85\x98\xd6\x10\x78\xb0\x5f\x3b\x90\xfa\x16\x55\xf7\x2a\xeb\xdb\x54\x7b\xcf\xcf\x2d\x28\x79\xb7\x83\xa6\xdc\x76\x08\x41\xd5\xbd\xba\x11\xec\xa1\xe8\xde\xab\x02\x65\xfb\x64\x4d\x93\xdb\x9b\x4e\x2c\x42\x85\x9e\xae\x5b\xed\xdf\xbb\x19\xfd\xde\xf8\x1d\xf2\x06\x48\x93\xa0\x35\x8f\x95\x8d\x8e\xb4\xcc\xea\x52\xed\x6d\x20\x86\x44\x47\x06\x7f\xef\x2b\x88\xb3\xec\xdf\x0c\xbf\xea\xa1\xaf\xc2\x5c\xb3\xaf\xb6\x3a\x80\x76\xdc\xb6\xf0\x1e\x68\x53\xa5\x84\x83\xf2\xb1\x83\xbd\xaa\x9c\x44\xbb\x67\xf6\x20\xa2\xa6\x73\xa8\xbf\x2c\x7d\x03\xce\x69\x28\x24\x67\xfc\xb7\x3e\xdc\xd9\xba\x80\x8c\x8c\x4b\x65\xcd\xda\xc5\x23\x36\x59\x54\x9d\x3c\x3d\xef\xe5\x69\x7d\x4a\x77\x2e\x8e\xa6\xdb\x5b\x4e\x4e\xde\x73\x18\xee\xea\xfb\x60\x4d\xba\x73\xdf\x44\x5c\xf3\x69\xc0\xc5\x9a\xa2\x14\xba\xf8\xf5\xba\x59\x95\xec\x65\x6e\x31\x6b\x37\x65\x9d\xfc\xf3\xde\xc8\xad\x45\xd0\x77\xbf\x6e\x45\x6c\xbc\x7f\x83\x70\xdd\x51\xd9\xcb\x52\xd9\x3e\xf2\x1d\xca\x83\xdb\xfc\x02\x3d\x33\x72\x5c\xd0\x8c\x33\xb8\x6a\x65\xc2\x33\xf8\x52\x05\xbd\xf5\xa5\x67\x37\xf4\xf9\x06\x6b\xb2\xde\xe9\x7b\x67\x02\x07\x8c\xdb\x75\x79\xac\xd5\xa1\xf6\x95\x2d\xe7\xc3\xa9\xc9\x6d\x54\x34\x25\x3d\xc4\x59\xb2\x08\x82\x1d\xec\x79\x05\x72\x33\x31\x4a\x73\x42\x85\xeb\xc4\x22\x0c\x6e\x94\x0c\xbf\xa1\x34\xde\x44\x23\x3b\x44\x9a\x5c\xf5\x2f\x07\xe7\xe3\xc1\xd5\xfd\xf0\xfe\xe7\x1a\xf4\xc8\xf2\x63\x07\x20\x19\xbc\x70\xf7\xf3\xdd\xfd\xe0\x72\xfc\x69\x70\x35\xb8\xed\xdf\xaf\x01\x97\x5c\xd5\x59\x13\x70\x61\x2e\xeb\xd4\xb7\x4d\xc0\x0b\x9d\x99\xb7\xa6\xf7\x65\x88\xc9\xa0\x13\x4a\x1a\x60\x26\x4d\xe2\x3f\x8b\x89\x40\x31\x79\x22\x09\xcf\x0a\xb3\x6a\xed\x82\x05\xf8\x93\x35\xed\xaf\xc2\xa0\x84\x36\xab\x6b\x7c\x8a\x4c\xd5\xb4\xa0\x70\xac\x6f\x10\x44\x3e\x2c\x08\xfb\x4a\x21\xf2\x39\x4b\x68\x44\x55\x90\x18\xc8\x85\x75\xaf\x18\xf7\x21\x44\xa7\xae\x21\xae\xbd\x45\xa3\xec\x5d\xe7\x0f\x3d\xe9\xcb\xda\xbe\x3f\x51\x1e\x0f\x6d\x6d\x29\x9e\x3d\x28\xf6\x0d\x4e\xe3\x25\xb8\xb6\x2d\x46\xf7\x12\xe6\x81\xe5\x0c\x1d\x9b\xdc\xd7\x00\xe5\x56\x3f\xc8\xf5\xb7\xe1\xaa\x38\x99\xd2\xb9\x5e\x1d\x28\xd3\x8e\x52\xdf\x38\xdc\xa5\x54\xa2\x72\x0f\xb8\x1b\x36\x76\x7d\xc3\x80\x85\xa5\xca\x2b\xcc\xc4\x9c\x62\x24\x48\xca\x95\x56\xc0\x4c\x44\x40\x4f\x0b\x55\x14\x27\xf4\x57\x40\xa8\x12\xe4\x38\x88\xa0\x70\xb8\x5e\x85\xfb\xc0\xa2\x47\x1c\x8f\xd8\xf9\xe0\xe6\x76\x70\xa6\x19\xd2\x31\x7a\x90\x00\x3e\x55\x9a\xfa\xb9\x25\x6f\x23\x8e\x85\x91\x0c\x94\x49\x45\x70\x53\x30\x18\x11\x82\x8b\xf6\xfc\xc1\xf7\x37\x80\xef\xea\xc9\x1b\x9e\x95\x6c\x53\xce\x00\x70\xd5\x58\x5f\x38\xc8\x19\xd8\x7b\x4a\xd6\x2d\x7e\x2e\xad\x48\x08\xbe\x01\x92\x48\x79\xd5\x5f\x70\xb5\x01\xbe\xb3\xfd\xfc\x4a\x7d\xde\xc0\xb7\xab\xe6\x79\x0f\x21\x76\x52\x15\x58\xa0\x06\x2e\xd4\xd7\x8f\xa9\xcc\xb3\x51\x54\x14\x6f\x01\xd4\x51\x21\xfd\x09\x99\x61\x86\x44\xce\x58\x05\x1c\x36\xb4\xb4\x2d\x07\xcd\x6c\x7a\x54\xf5\x9a\xe1\x94\xe7\x0c\x94\x06\x08\x63\xad\x19\x8c\xcc\x08\x53\x6b\x06\xf3\x56\x30\x2c\x95\xa1\x1e\x2e\x12\x4b\xcd\x40\x9b\xc0\x58\xea\xfc\x49\x50\xc4\x78\xb3\x6b\xd9\x05\xe5\x95\x9c\x4a\xfa\x50\xf9\xfb\xb9\x5e\xcb\xc6\xf2\x71\xe7\xee\xee\xb1\x7c\x5c\xdf\x55\x4c\xa2\xc7\x4d\x2f\x9b\x6a\x66\x66\x62\x6b\x40\x2f\x19\xfb\x16\xfa\xa9\x2d\x72\x02\xa5\xbf\xa3\x47\xf4\xfd\xfd\xe5\x05\x9a\x52\x2d\xf7\xea\x6b\xe5\x0a\x6b\x19\xfb\x41\x24\xce\x2e\x6c\x6d\xab\xb9\x48\xfc\xdd\x0b\x1b\xef\x44\xa9\x40\x4a\xd0\x37\x1a\x9e\x11\x67\xec\x15\x16\x6b\xaf\x52\xe4\x44\x60\x16\xf3\xd4\xcc\xe3\x44\xe6\xd3\x29\xfd\x7c\xac\xb0\xf8\xa6\x61\x3d\x4c\x54\xc5\xf8\xef\x7c\x32\xd6\x23\xda\xf1\x22\xae\x6b\x0e\xd9\xd2\xc4\x7e\xd9\xec\xcc\xce\xcd\xbb\xff\x97\x4f\x20\xd7\x3d\x13\x1c\xf0\xff\xc0\x3b\x67\x23\x15\xec\x2b\x8e\x92\x8e\x91\x4b\xa0\x2a\x41\x9c\x44\x5c\x08\x62\x53\xe4\x4d\x95\xce\x0c\x0b\x45\xc1\x5a\xeb\x20\x52\x4a\xd8\xf8\xc5\x16\x85\xc5\xb3\xe7\xb8\xc0\xa1\x9e\x10\x02\x0e\x9e\x8c\x26\x9b\x29\xbd\x67\x25\xdf\x64\xe5\x04\xda\xc8\x53\x8b\x9a\x09\x06\x99\xb5\x22\xd6\xe0\x89\x30\xb5\x17\xfd\x04\x9a\xa8\x49\xda\x6f\xe7\x65\x30\xc5\x32\x87\xe7\xc5\xe5\xe6\x42\x7a\xc3\xa8\x26\x25\x30\xdc\xf3\x36\x51\xca\xba\xd4\x9b\x1c\xfd\x4f\xad\x7d\xc7\xf0\xea\xf2\xba\xac\x09\x8d\xb7\xab\x5d\x14\xcd\x2e\xc2\x5a\x1d\xb0\xff\x96\x30\x3e\x92\x18\x2b\x46\x00\x1f\x61\x95\xd3\xea\x9e\x9b\x3e\x35\x6d\x55\xba\x5c\xbb\xe5\x5b\x60\xd6\x94\x9a\xf9\x44\x20\xa5\x73\x1f\x81\xe8\x9b\xa4\xee\xc3\x40\x1e\x44\x02\x21\xd4\x2b\xad\x58\xa6\x60\xb7\xe6\x7c\x5e\xb2\xc3\x2d\x64\x74\x33\x18\x2d\x34\x92\x4c\x90\x48\x5f\x65\xa7\xe8\x26\x21\x5a\xf2\xca\xb5\xf4\x95\x27\x89\xc3\xf7\x5a\x2d\x1d\x6e\x84\x49\xf7\xe2\xf3\x0a\x74\x8f\x15\x13\x73\xf8\x76\xab\x67\x16\xac\xc1\xfe\x01\x17\x82\xf5\x05\x13\x32\x18\x12\xcb\x5a\x24\x70\xf8\x85\x89\x9b\x05\x53\x12\x2e\x5d\x64\xf4\x57\xcd\x7e\x05\x91\x73\xde\x98\xe4\x18\xce\xf6\x65\xe6\xe0\x96\xf2\x05\x27\xe1\xee\xc3\xa6\xb8\xea\x16\x72\x4d\xe5\x0e\x2c\x89\x38\xab\xa6\xe8\x6b\x3f\xf8\xe8\x0f\x8b\xb6\x6a\xef\x56\x3b\x34\xb8\x25\x0b\x53\x5b\x88\x7c\x56\xb8\x2e\x0a\x65\x66\x61\x7c\xaf\xfe\xf3\xc2\x80\x5c\xa4\x04\x50\x25\x8b\xfa\x6d\x48\xdf\xb5\x4d\x5b\xac\xe7\x39\xce\xc5\x46\x90\x14\x05\x66\xf9\x26\x9c\xdb\x26\xa3\x14\xc3\xd2\x8b\x50\xcf\x2e\x6d\x29\x09\x10\xa3\x6d\xa8\x91\x2c\xe1\xc0\x59\xb2\x31\xcb\x58\xab\xe2\x35\x33\xe5\x5d\xdd\x6a\x20\x25\x17\xa2\xcc\x4b\x79\xd7\x4a\x14\x58\x9a\x40\x87\x2c\xb6\x39\xb2\x98\xad\x2b\xe2\x69\x0f\x70\x00\x95\x80\xc4\xff\xc2\x81\x56\x15\x1c\xac\xd1\x7b\x5d\xe6\x53\x69\x77\x5a\xa5\x39\x95\xbe\xd0\xbc\xe4\x7c\x47\x0f\x9c\x9e\xcc\x62\x0c\x89\xa3\xbb\x44\xe1\x94\xe6\x6f\xbc\x07\xd0\x26\x89\x91\x41\x2f\x30\xb8\xc7\x76\xed\xbc\xe7\x24\xc3\x82\x30\x35\x62\xb7\x7a\x14\xe6\x8b\x22\x12\xc3\xc5\xe1\x38\x2c\x7a\xa8\xfe\x3a\x45\xd8\x7e\x05\x8b\xde\x14\x08\x27\xc7\xe6\x25\x50\x4d\x5f\x30\xc9\xfe\x3b\xf3\x8e\xc1\x3c\xb0\x98\x3f\x7a\xaa\x74\x5a\xa8\xf1\x5a\x80\x8c\xe6\x14\x20\x07\x62\x22\xed\x85\x44\x95\xc5\x94\xf0\xe2\x77\x4e\x1c\xfa\x32\x7c\xe6\xf9\x57\x1d\xc3\x76\x86\x02\xe6\x0c\x74\x72\xc4\x82\x3e\x56\x80\x75\x1a\x65\x7d\x4b\x55\x02\xf6\x99\xc6\xde\xf1\x05\xff\x34\x3b\xc4\x05\x9d\x51\x16\x94\x4c\xb2\xd3\x4b\x71\x06\xe6\x5d\x73\x06\xf9\xd4\xdf\x69\xf7\x36\xcb\xe0\x18\x46\xfc\x3f\xff\xfd\xb7\x63\xda\xe4\xfd\x90\x63\xbb\x02\x87\xb0\x93\x9b\x6d\x4b\xb8\xf3\x01\x8a\x48\x03\x3a\x45\xa0\xd3\xca\x52\xe6\x44\xf1\xab\xbd\xdc\x34\xd1\x70\x35\x37\xee\xde\x32\xb9\x83\x6f\x44\xe4\xab\xab\x08\x04\x2c\xae\x08\x08\x28\xbc\xbe\x41\xd0\xad\xab\x11\x61\x82\x25\x75\xfb\x95\x0b\xa5\xc2\xa0\x02\x30\xbf\x5d\x82\x13\xe7\x58\xbe\x5c\x04\x4a\x6d\x6d\x23\x63\x34\x0e\xef\xc8\x75\xb1\x28\x66\x90\x26\xa9\x51\xef\x4a\x2e\x89\x30\x07\xda\xa3\x3e\x59\xe2\x09\xa1\x0a\x21\x14\x71\x8d\x4b\x8d\xa4\x98\x6e\x14\x36\xaf\xdf\xaf\x07\x52\x2c\xd9\xd4\xf1\x8c\x88\x71\x9c\x97\x62\xa4\xd7\xb5\x7d\xa3\x3f\x3a\xcf\xd5\x62\x7d\xfb\x32\xc1\xcb\xb5\x5d\x56\x81\x57\xea\xf7\x1b\x9a\x5d\x2f\x18\x06\x91\x2c\x65\xe1\xb0\x01\x1a\x92\x54\xa0\x21\x6d\x68\x65\xc9\x12\x00\x17\x0d\x83\xba\xfa\x81\xc2\x60\x6f\x22\x03\x60\x0d\x23\x47\x93\xbc\xb0\x9c\xf8\x92\x00\xf1\xf1\x88\x7d\x34\x35\x35\x40\x99\x31\x03\x88\x20\xaf\x85\x7c\xce\xb8\x24\xa5\x44\xab\x1a\x98\x7f\x9b\x28\x69\x87\x51\x2f\x93\x16\x1f\xed\x2e\x92\xbe\x39\xc8\xe7\xf2\x86\x2f\x4f\xb9\x9e\x02\x77\x92\x7a\x22\x9a\x51\x4d\x3b\xe3\xda\x93\xb6\xf9\xd4\xdb\x56\x89\x29\x42\x97\x00\xee\x49\x25\x8b\x1e\xf2\xd3\xab\x10\x44\x42\x9e\x08\x58\x8d\x61\x8c\x61\x31\x87\xb2\xf9\xaa\x81\x9d\xac\x3b\x40\x45\x96\x23\xb0\x05\x14\x57\x47\x50\xce\x05\xab\xa3\xc5\x72\x96\xcb\xce\x09\x59\x75\xf1\x17\x1b\x48\xa1\xfd\xb0\xa8\xc5\x82\x28\x44\x3e\x2b\x62\xcb\x5e\xde\xbb\x94\xb9\xe5\x28\x7b\x54\x9f\xf5\xd3\x2c\x22\xed\x9f\x2a\x96\x26\x62\x13\xa5\x5d\x4e\x60\xec\xee\x7d\x9b\x23\x37\xc7\x2c\xb6\x89\x9f\x56\x96\xd6\x32\x05\xcc\xce\xd8\x96\x7c\x48\xbc\x4d\x5f\x0c\xd0\xc0\x4d\x9b\x06\xb6\x1c\x2e\x32\xa7\x17\x69\xc9\x1c\xa2\x08\xb8\xd0\x02\x6a\xce\x14\x4d\x34\x71\xd8\x31\x68\xad\x39\x67\x1e\x8f\x0f\x02\xb8\x9b\x20\xdf\xa8\x94\x94\xcd\xc6\x76\x25\x5d\x0e\x63\xbb\x8b\xa1\x4c\x53\x97\xa6\x29\xf3\xe3\x77\xae\xa1\xd5\xb6\x63\x43\xd6\x00\xc7\xe5\xb2\x27\x41\xb0\x66\xdc\x4d\xc6\xe2\xa8\xb9\xa4\xcb\x31\x8d\xcd\x52\x50\x53\x5d\x19\x26\xba\x89\x79\x19\xc4\xba\x65\xb8\x82\xe2\x0a\x91\x36\x23\xd2\xe4\x39\x41\x40\xba\x6a\x48\xf9\x94\x8d\xa9\x9e\x43\xe6\x45\x34\x5b\xdb\xc9\x27\xb4\x57\xb2\x46\xb1\xeb\xce\x46\xdd\xe3\x24\x99\xe0\xe8\xd1\x2b\x1b\x5e\xe5\xe6\xc2\x61\xe3\x6b\x01\x15\x8a\x7f\x19\xe2\xd2\x03\x8d\x40\xba\x09\x9d\x62\x06\xb0\xc6\x0e\xbb\xe8\xdc\xac\x9a\x45\x02\x33\x08\x45\x66\xf4\x26\x84\x3f\x26\x59\xc2\x17\x69\xc3\x7d\x56\xcd\x94\xdb\x25\x20\xa5\x29\x51\x6f\xaf\x57\x59\x85\xe9\x6d\x7c\x99\x2d\xa5\xdd\xec\x01\x3e\x69\x03\x2e\xf9\x29\xe1\x13\xb0\x1c\x5a\x2d\xdb\xa5\x92\x04\x19\x0d\xd5\xf3\xbc\x69\x82\x4b\xf5\x44\x52\x99\x25\x78\xb1\xaa\x07\x93\x5a\xf1\xb2\xfb\x66\x52\xf1\xd7\x1b\xc1\xda\x07\x25\xd7\x7e\xfe\x12\x40\xbd\x17\x4e\x12\x30\xef\x1a\xfe\x55\x31\x26\x99\x9c\xb6\x63\xe3\x8b\x55\x7c\xc4\x14\x9e\xb9\xcd\xb5\xc2\x25\x7f\x66\x44\xc8\x39\xcd\x4a\x45\x01\x77\x8e\x82\xb6\x14\x6d\xff\x63\x62\x7e\x37\xe0\x9d\x3c\x3b\x32\x40\x1c\x9a\x3e\x64\x86\xa3\xc2\xf8\x17\x25\x58\x4a\x3a\x5d\x04\xf8\x19\x3e\xa0\x14\xb2\x94\xca\xda\x72\x50\x87\xab\x8e\xd1\x98\xf1\xed\x27\x81\x7c\xf7\xe4\xb9\x87\xf2\xf1\xa3\x71\x08\x54\xa6\xef\x93\x65\xb0\x14\x77\x53\x5b\xd0\x94\x46\xc0\x55\x93\x29\xbf\x5d\xc2\xf7\x4a\x8c\x9b\x66\x33\x42\x21\x4c\xda\x61\x5b\x45\xc6\xe3\x5a\x84\x98\x2f\xaa\x94\x31\x08\x9b\xaf\x15\x27\x67\xfe\xd4\xc4\xe9\x31\x31\x00\x3a\xa0\xf8\xb8\x87\xe4\x4e\x58\x52\x6d\xe8\xe2\x9c\x24\x64\x2f\x81\xc5\x5b\x10\x49\xd5\x6b\x1f\x90\xc7\x4a\xd2\x28\xb0\xf4\xd7\x1b\x17\xb6\x88\x77\x6e\x40\xa4\xa9\x1f\xfa\x4f\x66\xa0\x36\xe4\xb9\x6e\x17\xc1\xfe\x05\xab\xdc\x56\x77\xa9\x83\xb6\x33\x2d\x58\x92\x2b\xba\x29\xd1\x55\xd1\xa9\x97\x57\x0e\x91\xd4\xde\x38\x32\x78\x69\x5c\x9f\x48\x9b\x28\x86\xb5\x07\x60\x2b\x0e\xb4\xcc\xa7\xdb\xd1\x85\xf5\x13\x2a\x8e\x66\x44\x99\x12\xf7\xbe\x8e\xff\x7b\xa2\x89\xbd\xe5\x35\xec\x69\xf5\xeb\x0f\xf9\x66\xa7\xf6\x8e\x28\xe9\xae\x84\x25\xb4\x40\xbb\x39\x07\xb8\x05\x87\x71\x2c\x8d\xe0\xfa\xc5\xcb\x2d\x3b\x63\x01\xd8\x91\xd9\x8c\xf8\xdf\x90\x40\x65\xe6\x18\xdb\x2f\x7c\xf6\x7b\x09\xf7\x09\x97\xb0\xf2\xcc\x1a\xbd\x3d\xd7\xab\x92\xf6\x97\x2e\x7a\x6d\x4e\xe3\xd5\x51\x15\xd4\xdd\xc9\x83\x9b\xc9\x83\x0e\x4b\xf2\x00\x2f\xff\xa6\x63\x70\x98\xf7\xcf\x01\x08\x87\x4b\x57\xe2\xfe\x44\xc4\x77\x44\x26\x07\x21\x29\x2e\x6d\xc5\x6b\xc9\x8b\x47\x0e\xcc\xa7\x80\xc6\x39\xdc\x2d\x3a\x8c\x93\x7c\x6b\xdd\x40\x2f\x77\xc1\xae\xa7\x97\xbd\xd0\x07\xe0\x5a\x62\x48\xff\xcd\x6d\xa1\x0c\x38\xbc\x41\xc8\xd8\x92\xef\x61\x4d\x30\x9e\x1d\x5e\xab\x30\xbc\xa5\xe5\x7c\x89\xed\xb5\xb9\x5e\xad\x37\xf7\x25\x49\x6d\xd3\xb1\xec\x43\x47\x79\x61\x2f\x8e\xa5\xc6\xe0\x83\x2e\x26\xb6\xdd\x2d\x5a\x83\x20\xe3\xb6\x6c\x9f\x87\xac\xae\xba\xd9\xee\xd9\xea\x2e\x95\x6d\x9c\x09\x32\xa5\x9f\xb7\x12\xc5\x6f\xe0\x53\xab\x5e\xea\x65\xae\xd4\x4b\x03\xf7\x0c\xd4\x57\x0b\xe2\xf6\xec\x4a\xdb\x9a\x4a\x23\x56\x24\x00\xda\xec\xbf\x47\xb2\x40\x5c\x94\x7e\xda\x16\xeb\x70\xff\xb5\xdd\xcc\xbe\xce\x95\xca\xe4\xe9\xc9\xc9\x8c\xaa\x79\x3e\x39\x8e\x78\x6a\xc2\xcd\xb9\x98\x99\x3f\x4e\xa8\x94\x39\x91\x27\x7f\xfc\xc3\x1f\x8a\x2d\x9e\xe0\xe8\x71\x66\xd0\x63\x96\xfd\x4e\xe5\x2d\x27\x58\xee\x16\xd9\xe3\x32\xb5\x5e\x38\x63\x37\xe8\xc6\xe5\x48\xea\x6f\xa4\xc2\x69\x16\x46\x8f\x9a\xea\x68\x52\xe1\xa2\x26\x03\xa4\xdf\xe9\x69\xa2\x39\xce\x32\xc2\x9a\xcd\x0e\x26\x9f\x72\x07\xd6\xe3\x32\x32\xed\x08\xc9\xe7\x2c\xc1\xac\x8c\x32\x00\x05\x86\x04\x89\x08\x53\x36\x03\xbe\xa8\x97\x0c\xd4\x68\x90\x6e\x0c\xff\xdf\x2c\xe3\x0e\xe6\x48\x65\x51\x39\xcc\x0d\xc7\x56\xf1\x74\xb5\x1d\x71\xb0\x74\xd5\xca\xa9\xc5\xda\x11\xb7\x6a\xab\x72\xf1\xee\x96\xeb\x67\x6f\x5e\xb9\x45\x70\x36\x26\x9f\x35\x93\x93\xdb\xe2\x52\x3d\x48\x22\x51\xff\xa7\x3b\x24\x17\x4c\xe1\xcf\xa7\xe8\x92\x32\x10\x60\xbf\xe7\xb9\x90\xe8\x1c\x2f\x8e\xf8\xf4\x28\xe5\x4c\xcd\xd1\x25\xfc\xaf\xfd\xe9\x99\x90\x47\xf4\x33\xc1\xc2\xf2\x07\x5b\x79\xcd\x17\xf1\xd6\x24\x24\x72\x26\x11\x79\xd2\x27\xf4\x0f\xff\x89\x52\xd3\xf2\x29\xfa\xf6\xe4\x0f\xff\x89\x7e\x07\xff\xff\xff\x47\xbf\x6b\xd0\xf4\x37\x43\xb6\x82\xfa\xbc\xb7\x65\x77\x6e\xaf\xb2\x52\x5b\x94\x2c\x3f\x13\xbc\xd8\xa9\xda\x96\x1f\x69\xf4\xc8\xa7\xd3\xb1\x26\x0c\x93\xaf\x36\xc6\x62\x09\x15\x79\x4b\x98\x50\x6a\x0b\x2c\x9b\x82\x6d\x45\xa9\x14\xdb\xa9\x01\x36\x70\xec\x5a\xe6\x45\x81\x59\x08\x22\x2a\x15\xed\xa5\x12\xbe\x22\xb1\xe6\xaa\x9b\x9c\x0e\x67\xdd\x73\x39\xce\xce\x82\x13\x02\x81\x84\x45\xc3\x7d\xe0\x5f\x18\xc5\x6a\x02\x7d\xec\x42\xd6\x1e\x87\xa5\xf0\xda\x2f\x26\x66\x12\xa6\xf6\x56\xf1\x92\x72\xa9\xf3\xf5\xa1\x92\x77\x5c\xec\xa4\x6f\x3d\x92\xa5\x98\xed\x96\x65\x81\x5c\xa9\xda\xb0\x7c\x3d\x24\x42\x73\xe1\xe1\x7a\x8d\x5d\xc4\x16\x0f\x5c\x6f\xc5\xa4\xc2\x04\x97\xb5\x3b\xf4\x7a\xea\xe7\xfe\x93\x75\xc3\x84\x48\x33\xf7\x76\x51\x16\x0d\x46\xab\x45\x24\xcd\x12\x6b\x46\x5c\x83\xe9\xb7\x6e\x43\xef\x3c\x8c\x03\x34\x0e\x61\x8f\x90\xf2\xc1\x9c\x64\x6b\xf3\xe4\xeb\xf7\x33\x17\x11\x39\xe3\xbb\x85\xbd\x26\x94\x2d\xc5\xcb\xb7\xaf\xb8\xe3\x57\xef\xc2\xd6\x56\x72\xb0\xb7\x3c\x2e\x94\x05\xe3\x16\xb0\xc5\x16\x02\xbc\xcd\xf2\x6c\x00\xb7\x6d\x1f\x90\x8e\x4b\x25\x00\x76\xe0\xda\xc6\x70\x5c\x30\x3c\x57\x41\xa2\x52\x38\x42\x60\xcd\x0b\x57\xc4\xae\x41\x50\xd1\xce\xe3\x08\x8a\xa1\x14\x91\x4a\x95\xa2\xe3\xd8\x54\x04\x11\x5b\x42\x72\x9a\xba\x44\x3d\x24\x30\x04\x65\xaa\xb9\x6e\x4f\x12\x71\x34\xc5\x11\x65\xb3\x5e\x80\xc6\x08\xc8\x08\xe1\x75\x50\x47\xa4\xf7\x58\x3e\xee\x37\xd0\x70\xe7\x3a\x8d\x34\x2e\x6a\x85\x59\xfc\x14\xe3\xd8\xa0\x4b\x50\x74\x0a\xcb\xc7\x26\x00\xa1\x25\xf4\xb2\x15\xa3\xf3\x4b\xe1\x30\xcf\x56\x8d\xcf\x65\x5a\x93\x50\x9f\x82\xd2\x04\xae\x72\xb0\xc5\x32\x74\x89\x6d\xd8\x83\x8d\x54\x41\x3c\x57\x8c\x5f\xce\xb9\x50\xe3\x2d\xe1\x4f\xab\xd9\xe2\x8c\x1c\x25\x80\x5b\xc2\x9f\x88\x78\xa2\xe4\xb9\x8c\x22\xba\x09\x2d\x1a\xa3\x59\x10\x55\x07\x30\x93\x69\xc6\x21\x85\x66\x8a\x52\xcc\x16\x86\x51\x6a\xe6\x82\xe5\xa3\xf4\xf5\x4a\x91\x4c\x71\x92\xf4\x90\x20\xb9\x34\x75\x7c\x25\x49\xa6\x47\xae\xe2\x43\x8c\x12\x3e\xa3\x11\x4e\xd0\x24\xe1\xd1\xa3\x1c\x31\x2d\x28\xb0\x99\x61\x52\x99\xe0\x11\x91\x32\x90\xac\x8a\xa4\x6d\x9b\x4a\x07\xc5\x4a\x15\x11\x29\x65\x54\x2a\x1a\x39\x91\xa9\xc0\x5e\x30\x25\xb3\x23\x0c\x26\x61\x48\x4c\x84\xe1\x6a\x49\x8f\x18\x0c\xca\x9c\xd9\xda\x40\x70\x5d\x5b\x68\x39\x17\x24\xde\x74\x80\xf6\x80\x94\xe7\x28\x64\xac\xca\x07\x72\xcd\x91\x3a\xb3\x9f\xc1\x31\x5e\x45\x02\xb7\xe5\x13\xe5\x09\xd2\x9f\xb4\x12\x7a\x0f\xc4\x94\xfb\x10\xf8\x92\xe4\xe2\x23\xc3\x0f\x0c\xb8\x0b\x86\xdc\x00\xd7\xb5\x8e\xa6\xf5\x2a\x82\xc8\x03\xe5\xa8\xaa\x5e\x73\xca\xa2\x24\x8f\x7d\x41\x42\x2d\x02\x3c\x69\x22\x71\xcb\xa3\xd7\x5e\x0b\x0a\x3d\x84\x25\x7a\x26\x49\xa2\xff\x6b\x22\xe0\x8f\x7c\x7d\x00\xcd\x92\x4d\x0d\x07\xe8\xc4\x71\xe9\x26\x8a\x3a\x38\x10\xc6\x1b\xac\xe6\x26\xb5\x3d\xe5\xca\xd4\x82\x34\x20\x8c\xce\xbe\x65\x50\xfb\x26\x09\x9f\xc0\x49\x07\x7c\x46\x97\x1a\x1b\xa4\xd5\xe5\x51\x44\x48\x4c\x62\xf4\x75\x70\x70\x3d\xec\xc2\x37\xf5\x68\x81\xa5\x15\x39\x00\x6c\xc6\xaa\x61\xad\x11\xa1\xb1\x5c\xce\xec\x18\xdd\x54\xf0\x47\xc2\x32\xe5\xb8\x8a\x46\xd5\x5b\xda\xc2\xb7\xc1\x73\xac\x4c\xe2\xe5\x76\x68\x43\x3c\xc7\x52\x9f\x7b\xc0\x73\xac\xcc\xb3\x21\x76\x9f\xcf\x5e\x34\xe7\x58\x4f\xea\x82\xb7\x4f\x04\x33\x38\x58\xe6\xee\x2c\x91\xa0\x3b\x90\x8b\x3a\x42\x3c\x2c\xac\xca\x4a\xd1\xbf\xb7\xc5\xaa\xac\x0c\xe6\x90\xb1\x2a\x2b\x43\x3d\x5c\xac\xca\x9a\x81\xb6\xc0\xaa\x34\xce\xfd\xb1\x26\xea\x76\x4c\x01\x12\x5b\x26\xf9\xf4\x0e\x52\xbd\x57\x8e\xf1\xcc\x04\x0e\x98\x6b\xcc\xdd\xd1\x16\xba\x19\x46\x6b\x73\x20\x9b\xc2\xa1\x2a\x4e\x88\x4d\x69\xcf\x7b\xdf\xa8\x34\x1a\xda\x66\x66\xf7\x5e\x68\xed\x06\x3b\x64\x84\x33\x9b\x53\xde\x54\x51\xe5\x70\xb2\x67\x37\x83\x01\x05\x88\xbd\x12\xab\x6f\x05\x90\x75\x59\x29\x4a\x30\xe7\xcf\xb6\x30\x10\x90\x9f\x21\xc6\x46\xd2\x83\x4e\xc7\x56\x59\x6b\x5a\x31\xca\x14\x99\x55\x75\xd9\xe2\xb0\x50\xa6\xfe\xf4\xc7\xb5\x1c\xc8\x20\x08\x3a\xb5\x30\x28\x0d\xe0\x9d\x1c\xf6\x19\x89\x51\x34\xd7\xda\x90\xd4\x6a\x8b\x9e\x8e\xb9\x51\x25\x4a\x31\x75\x0a\x54\x2e\x8d\x4b\x89\xca\x11\x2b\x41\x6e\x1e\xa3\x8f\x50\xef\x14\xa7\x99\xd6\xbb\xfc\xfc\xa8\xa6\xa0\x51\xfe\xed\xb7\x7f\x22\xe8\x5b\x94\x12\xcc\x4a\xba\x2b\xa8\x4b\xfa\xca\x03\x88\x3a\x35\x27\x23\x56\xbb\x15\x68\xf0\xd9\x94\x50\x72\x71\x7e\x43\x36\xe5\x4e\x17\x86\x3a\x7e\x38\x9a\x23\x99\x4f\x4c\x21\xda\xc0\x76\xe1\x04\xe8\x0b\x3e\x03\x07\x35\xdc\xc4\x6e\xd0\xab\x4e\xdf\xcb\xfa\xfe\xad\x9b\xb1\xed\x2d\xdc\x87\xfb\xe3\x48\x92\x12\x74\x51\x8d\xb3\xcc\x70\xbc\xf0\xc0\x4b\x83\x7b\xda\x33\xbe\x03\xad\x97\x61\x6b\xd1\xd7\x32\x34\x84\xf1\x82\x77\x2c\x4f\xb0\xb0\x47\x7e\xc4\xb4\x82\x21\xc8\x13\xe5\xb9\x4c\x16\x28\xe6\x8c\xf4\x80\x12\xf2\x68\x6e\x1c\xaa\x5a\x57\xc1\xb6\x1e\xc3\x13\x95\xb9\x56\x64\xa1\x2d\x57\xfe\x41\x2a\x6c\x20\x97\xe6\x14\xfa\xd1\x6a\x37\x81\xaf\xc2\xec\x38\xd4\x4e\x7b\x0a\x51\x51\x2b\xbc\xbe\x25\x2a\x6a\x89\xaa\x3a\x54\xd4\x7a\xc6\x77\xb0\xa8\xa8\x95\x3d\x6f\x87\x8a\x5a\xb7\xe5\x5b\xa0\xa2\x96\x9a\xf9\x62\x50\x51\x2b\x2b\xfa\xc5\xa0\xa2\x56\xe6\xd5\xa1\xa2\x7e\x79\xa8\xa8\x3b\xe2\x7e\xd6\xf3\x62\x83\xab\xa4\x28\x5b\x6c\x4c\x64\x5f\x49\x34\xbc\xd6\x04\x16\x3d\x96\x83\xd9\xfc\x75\xb5\x3b\xd6\x68\x3d\x13\xda\x0c\x6b\xb4\x56\x45\x6f\x66\x75\xbb\x02\x3b\x81\x42\xf0\xca\x58\xa3\xa5\x09\x74\x71\x95\x9b\xc7\x55\xd6\x12\x9f\xed\x5b\x0f\xcf\x05\x5b\x56\x2f\xe4\x96\x68\xa3\xa5\xfd\x69\x15\x81\x09\xa2\xfb\x1e\x28\xf1\x65\xa5\xf9\xfb\xd2\x21\x5f\x2b\xcb\x87\xab\x28\x2d\xee\xb1\x96\xf0\x1c\x4a\x9c\x51\xbe\x43\xbf\x7f\x47\xb9\x5b\x44\x04\x57\x96\xd7\xfb\x53\x0c\x2d\xb6\x20\xd5\xd6\x14\xea\xb4\xd2\xfd\x24\xc8\xba\xa4\xc9\x0d\x5d\xcb\x6e\x10\x77\x19\x89\x1a\x6c\xcb\x34\xa5\xfb\x6a\x76\xdd\x45\xe6\x31\xb0\x40\x21\x5f\xca\x07\xd5\xd7\x93\x19\x8e\x91\xf1\x2b\x69\xb0\x00\xd0\x61\xbe\x9c\x51\xa9\x44\x63\x4c\xd3\xd2\x08\x77\x71\x91\x66\x79\xeb\x40\x98\x60\x55\x67\xdb\x7d\x96\x92\x94\x8b\x75\x01\x55\xb5\x5f\xda\x4a\x2e\xdb\x7c\x4a\xb2\x39\x49\xb5\x24\x33\xde\xb4\x91\xb6\xfb\xed\x93\x85\x6d\xce\x9a\x09\x70\x2c\x11\x41\xe0\x00\xd5\xef\xc6\x06\x89\xb2\xf5\x76\xef\xba\xcd\x16\x2b\x73\x43\x47\x90\xc3\x0a\x5e\x6d\x70\xb3\x2f\x95\xdc\xdc\x40\xdf\xb5\xb1\x1c\x3e\x94\x66\x7d\xb4\xc6\x8a\x38\x8d\x55\x78\x53\xc5\x57\xb6\xce\xf1\x06\x2e\xfc\xb2\x57\x5e\x73\xc2\xb0\xc8\xed\xe6\x81\x1d\x0d\x68\xa9\xcb\xcb\x03\x11\x39\x92\x88\xa3\x50\x33\x28\x0d\x66\x79\xbd\x4a\x54\xe2\x34\xca\x1d\x88\x24\x17\x8d\xd1\xa5\x6d\x0c\xd9\x91\xca\x71\x02\x9a\x44\x58\x9c\xb1\xba\xa9\x93\x45\x4d\xba\x63\x3b\x4f\x09\x65\xea\xcf\xff\xb1\xd1\x6e\x6a\xd5\xca\xae\x1b\x14\x94\xc2\x51\x44\xa4\xb1\xad\xdb\xe8\x63\x3c\xe1\x4f\x50\x4b\x6a\x97\x5d\xd5\x47\x59\xcf\x5b\x33\x78\x0f\x41\x1c\x17\xa4\x6e\xc4\x85\xb9\xe0\xf9\x6c\xee\x6c\x48\xfa\xcc\xe8\xa9\xd5\xed\xe5\x8f\x4b\x36\xf2\x8d\xf7\xf2\xbb\x9c\x26\xdb\x59\xe8\xee\x4a\x55\xb6\x3e\x0d\xef\x91\x9c\xfb\xd3\x3a\x81\x66\x6b\x37\x76\x79\xd0\xed\xfb\xb4\xdf\x7a\x3f\x0d\x74\xd3\x73\xb0\x9b\x53\x9e\x24\xe0\x69\x90\x24\x7d\x0a\x8b\xe3\x87\xdd\xc3\x84\xef\xe9\x66\x88\x79\x7e\x00\xf0\x75\x91\x10\xd1\x4a\xfe\xba\x31\xa2\xa1\x44\x6e\xf4\xd5\x60\x05\x13\xa2\xc6\x19\x61\x75\x36\xb6\x9f\x96\x0b\x9c\xbc\xb3\x40\x41\x17\x35\xb6\xb7\x60\x41\xb7\x24\xaf\x1c\x30\xb8\x66\x1e\x87\x1a\x34\x58\x61\x76\x3e\x86\xaf\xb8\x66\x5c\xc0\x90\x51\x7c\xfa\x7a\x89\x47\xac\x5f\xca\xa3\x70\x85\xa0\x27\x8b\x22\x10\xdb\xe8\x10\x21\x33\x83\x32\x12\xd6\xb0\x02\x6e\x34\xfd\x17\x68\x3a\x06\xb4\xd6\x84\x12\xba\x70\x41\x88\x22\x27\xf1\x11\x8e\x16\x51\x42\xa3\x40\x67\x9e\x09\x9c\xcd\xeb\x38\x9e\xdb\xf9\x0e\x6d\xe7\xad\xd0\x76\x9a\xea\x2d\x6d\x12\xaf\xed\xe8\x8a\xe1\x94\x74\x28\x40\x75\x28\x40\x3d\x8f\x73\xc1\x8a\xca\x51\x6f\x08\x9f\xb0\x7c\xee\x3a\x28\xa0\x37\x80\x02\xda\xe6\xf0\x15\x38\x3f\xa5\x63\xd7\xc1\x13\x7d\x68\x05\x4f\xe4\x2f\xc1\x83\x42\x9c\x69\x3e\x8f\x6f\x8c\x64\xb2\x3c\xb0\xb7\x84\x23\xaa\x11\x17\x36\x91\x9b\x56\xe1\x11\xad\xa2\x8b\x56\xeb\xf2\xb6\xe8\x40\x9b\xad\xcc\x46\xc0\x3f\xb5\x77\xd7\x81\xc0\x00\x35\x6f\xc3\x81\x9c\x9b\x7d\x66\xb3\x6c\x56\x1a\x33\xcc\x68\xd9\x44\xc1\xda\x2c\xb9\xc5\xd3\xc3\xfb\x4a\x70\x29\x6a\x88\x6d\x97\xe4\xd2\x77\x3e\x68\x22\xd0\x9c\x27\xb1\x03\x9f\xf0\xab\xe5\x3b\xf0\x19\x00\x7e\x81\xdc\x66\x40\x2d\x6f\xd0\xb6\x8a\x42\x60\xab\x52\x59\xfc\x26\xc2\x70\xf7\xc0\x68\xf6\x61\x45\xf0\x9c\x64\x1b\xfb\xc1\x5a\x59\x44\x96\xcd\xdf\x2b\xc6\x58\x5a\x21\xb0\x9a\xd7\x0f\x73\xad\xdd\x77\xcd\xe0\x56\x89\x1e\x81\x71\x50\xd4\x55\xb2\x34\x74\x06\x4f\x9f\xa8\x33\x44\xe0\xb0\xc7\x95\x5e\x3a\x37\xbb\x56\x9e\xba\x2a\xb1\x6c\x11\x0c\xb6\x54\xb1\x6d\x77\x50\xa0\x14\x7f\x1e\x67\x58\xe0\x24\x21\x09\x95\xe9\x8b\x05\x03\x9f\x95\xdd\xb5\xfa\xac\x0a\x6e\x4c\x44\x2c\x4f\x27\x86\x14\xdd\x40\x6c\x9d\x48\xc5\x91\xc8\x59\x08\x69\xf6\xbc\x54\x4c\x3f\x87\x7b\x01\xac\x4a\xd1\x1c\x8a\x92\x4e\x31\x15\x8c\xc8\xc6\x12\x90\x24\xca\x05\x55\x8b\xb1\xad\xa8\xd9\xfe\xc0\xdd\xd9\x2f\xcf\xec\x87\xab\x3d\xdc\x2e\x9b\xdf\xf5\xe7\x2b\x78\x66\x44\x40\x79\x20\x57\xe8\x26\xa8\x1a\x6a\xd1\x1a\x88\xaf\x31\x04\xe1\xcf\x4b\xd7\x76\x53\xe0\x30\x7e\x1e\x07\x99\x54\xe3\xa8\x4a\x1c\xeb\x0e\x6b\x1d\xde\xd4\xaa\x49\xbe\x30\xe2\x52\x83\x17\xf9\x05\xaa\x8b\xd8\x74\x09\xd3\xb4\x1e\x70\xe0\x0a\x06\x7b\x65\xb1\x31\x41\xaa\xbb\x55\xaa\x1a\xc6\x69\x31\x7e\xea\x82\x8f\x56\x0c\xb6\x1f\x7c\xd5\x62\xc4\x41\x27\x7b\x1a\xb6\x3e\xe8\x42\xe4\x99\xa2\x93\x65\x48\x1b\xb5\xbf\x6a\xa3\xfd\x04\xd2\xab\x9d\x9b\xa1\xd4\xad\x29\x41\x5a\xe2\xc4\x76\x76\x5a\xfe\xb7\xf8\x61\x0e\x19\xc8\x20\x2b\x85\xf9\x7b\xd7\x29\x55\xca\x25\x0a\x18\x03\xb4\xa6\xce\xb2\x6d\xf6\x2b\x17\xee\x81\xa1\x90\xa9\x31\x11\x1d\x8f\x58\x5f\xa2\x67\x82\x18\xb1\xd0\x11\x35\x25\x4a\xbd\x55\x1b\x6a\x3e\x4d\x88\xee\xc9\xc7\xa6\x68\xe1\x81\x2a\xe9\xcb\x8e\x99\x3e\xa6\x38\x91\xa4\xa7\x1b\x86\x6a\xa5\x8a\x43\xf0\x27\x46\xcf\x02\x67\x19\x11\x23\x66\xb3\x38\xc0\xe1\xc2\x79\x62\xda\x6f\x0a\x71\xb5\x6b\x40\xc6\x11\x8e\xe6\xaf\xb4\x47\x18\x92\x70\xa2\x39\x89\x5d\x9e\x70\x79\x7b\xdc\xbc\x8d\xc1\x7a\x83\xcd\x1a\x4e\x5d\xd9\xac\x9e\xed\x24\x89\x34\x47\xf1\x55\x94\x33\x22\xf4\xa8\x35\x0d\x3f\x11\x86\xe8\xd4\x8d\xc3\xc6\xee\xa0\x67\xf0\x4c\x69\xd2\x7f\xc2\x34\x31\x89\xf7\xae\x6b\x27\x04\x1a\xf3\xfb\x88\x19\x77\x37\x8b\x4a\x99\xa9\x94\x51\x39\xd7\x9c\x3a\x07\x9f\x24\xa8\x19\x4d\x89\x33\xec\x69\x93\xd3\x3c\xd0\xaf\xaf\xe6\xa0\x4f\x54\x70\x96\x42\x92\x8c\xc5\x63\x72\xcb\x27\x89\xf2\xc7\xa3\x36\xb5\x71\xad\x44\x1c\xc7\xb2\x6c\xfc\x34\x6a\x25\xfd\xb5\x64\x76\x39\x2a\x65\x03\x46\x01\x9c\x10\x04\x71\xba\x8a\x62\xab\xe4\xdf\x2e\xb5\x61\x39\xb5\xa1\x7e\x6d\x0e\x31\xbd\xc1\x1f\xe2\x4d\x53\x1c\x9a\xb6\x7f\x1f\x92\xed\x1e\x53\x1d\xde\x38\x27\xe0\x65\xd2\x01\xde\x36\x7f\xe3\x25\x52\x37\xba\x04\x87\x37\x4c\x70\x68\x6d\xa9\x2d\xc7\x66\x37\x1f\xdb\x8d\x92\x03\xd6\x80\x38\xd5\xf5\x72\x49\x94\xa0\x91\xdc\x07\x7f\x90\x19\x6e\x19\xd5\x06\x5a\x60\xb6\x46\x6a\xd2\x2f\x78\x27\x24\xc4\x89\xf9\xfa\x7e\x13\x41\xf0\x63\xcc\x9f\x97\x6c\x75\x32\x44\xd1\xb8\xe4\x5a\xec\x11\x24\xa2\x92\x94\x22\x59\xa8\x44\x8c\x48\x6b\xec\xc4\x23\x36\xa7\x44\x60\x11\xcd\x21\xbb\xb1\xd8\x18\x93\x25\x6b\x80\x8c\x4c\x2c\x43\xe8\x6d\xda\x60\xd3\x5b\xac\x7b\xd5\xc2\xe4\x71\xe9\xec\x9e\xeb\x91\xa4\xe6\x13\x2f\xcc\x58\x29\x23\x34\xc9\xb5\xda\xfe\x5d\x03\xf1\xfd\x62\xbf\x68\x30\xbe\x0f\x26\x0a\xbe\x68\x19\x90\x5f\x50\x43\x17\x94\xff\x42\x41\xf9\x35\x4b\xbc\x59\x60\xfe\x56\x26\xbf\xd7\x8f\x19\x76\x3d\xbf\x46\xdc\xf0\xba\xa0\xad\x7c\x32\x7e\xf1\xa3\x57\x3b\xe7\xb6\x27\xf0\x27\x4f\x14\x46\x22\x16\x9a\xce\x26\x24\x8e\x81\xd3\x2a\x6e\x2b\x44\x17\xb4\xe3\xcc\x03\xfa\xee\xc5\x52\x13\x3b\x4e\x38\x9b\x49\x1a\x1b\x90\x95\x0c\x43\xa5\xd6\xd0\x78\x01\xe0\x02\xb0\xbf\x49\x42\x84\xf3\x4a\x08\xf4\xb5\xa4\xcc\xa2\x28\xfa\xdf\x62\x4e\x24\xfb\x4a\x19\x63\x01\x66\x0b\xf4\xc8\xf8\x73\x42\xe2\x19\xec\x50\x75\x30\x47\x88\x92\x1e\xa2\xca\x7f\x26\x00\x8d\x80\xe7\x6a\xa4\xc7\x0e\xb1\x66\x46\x03\x20\xf6\xdb\xa0\x16\xba\x6f\xe6\x9b\x63\x84\x86\x0c\x4d\x71\xa4\x7a\x48\xe6\x93\xa2\xfd\x98\x9b\xe2\xd6\x5a\xfb\x0e\x26\x5e\x34\xd2\xc5\x8c\xd7\x74\x5e\x7f\x36\x1c\x77\xd0\xe4\xda\x4f\x28\xde\x29\xb6\xee\x09\xef\x02\x2d\x7a\x99\x4b\x1b\x84\x81\x38\xf3\x47\xdf\xc2\x2a\x79\x6c\x68\xc0\xf9\x34\x38\xcb\x8c\xc7\x8d\xb6\xce\xca\x54\x36\x1d\x4b\x11\x08\x69\x05\x25\xeb\xa8\x82\x76\xcd\x72\x6b\xa9\x49\x2a\x41\x70\x6a\x9d\x03\xfa\xaa\x01\xb1\xc6\x84\x41\xea\xd1\x53\x61\x24\xcc\x4d\xb6\xf8\x82\xb2\x47\xbd\xbb\x05\x1a\x36\xd4\x95\x87\x9e\xeb\x36\x2d\xd3\x37\x1e\x39\xe3\xcc\x38\x08\x77\x92\x3b\xe9\x8c\xe1\x64\x43\x1b\xc7\xd2\xca\x2d\xfb\xf4\x9c\x9c\x65\xc5\x05\x2d\x45\x18\x63\x1f\x32\x3d\x6e\x64\x43\xaa\xcc\x37\x94\xf7\x30\x8a\x49\x46\x58\x4c\x58\xb4\x00\x12\x61\x80\x98\x23\x18\x4e\x10\x86\xef\x70\x72\x8c\xce\x4d\x7e\x8d\x97\xf0\xec\xb5\x0e\x17\x7a\x8a\x19\x9d\x6a\x3d\x01\x8c\xb0\x76\x94\x23\x66\x86\xe9\x7c\x20\x41\xb1\x7e\xbf\x62\x75\x3b\xa3\x6f\x90\xab\x1d\xd1\x88\x59\xf9\x7b\xb4\xfa\xc2\x81\xde\x56\xed\x8e\x6e\xce\xd5\x1e\x90\xf9\xe4\x08\xfe\x5d\x4a\x38\x73\x40\x3d\x05\x8a\x0c\x49\x08\x98\x03\xad\xc7\x0b\x2e\xc6\x26\x40\xb9\x7d\xf8\xed\xd6\xe4\x71\x04\x7d\x94\x94\x9a\x94\x32\x9a\xe6\x69\xe0\xbc\x33\x95\x0a\x22\x6b\xbf\x34\x99\x18\x99\xd6\x03\x22\x07\x5a\x8e\xf4\xe5\xca\x16\x68\x46\x9f\x08\x1b\xb1\x8c\x53\xa6\x8e\xd1\x15\x57\x24\x28\x0d\x61\x20\xa3\x78\xa6\x68\x6a\x50\x4e\x05\xd1\xe7\xc0\x80\x61\x03\xc0\xe4\x1c\xab\x1e\x8a\x73\x38\xaa\x8c\x28\xcd\x3a\xf4\x8d\xab\x60\x67\x20\x3e\x5a\x8c\x98\xb9\xe9\xa6\x98\x26\xb9\x20\x56\x66\xc5\x26\x2f\xa6\x18\x72\x31\x32\x8b\x80\x16\x4c\x22\xa5\xb3\xb9\xd2\x5b\xa4\x65\x3c\xeb\x6f\x9c\x6b\x6e\xc4\x47\x6c\x42\x10\x46\x19\x97\x54\xd1\x27\xef\xbf\xa4\x53\x84\xa5\x04\x0b\xca\x31\x3a\x2f\xd9\xff\xa9\x04\xd5\xbb\x29\xae\x96\xb2\xb1\xb5\x3d\x37\xe7\xe3\xec\xbc\x91\xa5\x5e\xec\x2a\xe3\x89\xe4\x49\xae\x42\x17\x6c\xfd\xde\x16\xa6\x71\x07\xd8\x0f\x06\x62\x3e\x1d\x31\x47\xd7\xf2\x18\xf5\x25\x92\x5c\xef\x92\x34\x5b\x19\x09\xaa\x88\xa0\x06\xc5\x89\x28\xb3\x09\xfe\x9c\xfa\x33\x90\x62\xf1\xa8\x45\xa8\xd0\x02\x6f\xb0\x44\x4b\xd6\x8e\x89\x91\x90\x00\xd6\x2a\xdc\x0e\x30\xfd\x23\xc6\xd9\x11\x23\x33\xbc\x6e\x47\x46\xac\xb4\x25\xe8\x6b\x3a\x2d\x14\xd2\x26\x9f\x63\xb0\x76\x63\x88\x7c\x6a\xda\x25\xd3\x71\xd3\x26\x4d\x13\x8e\xd7\xb8\x8d\xa7\xc5\xa1\x47\x7f\xe7\x13\x33\x46\xad\xf7\x73\x05\x52\xa0\x56\xaf\xa6\x5c\x90\x39\x66\x71\xcf\x6d\x56\x79\x6c\x70\x33\x5a\x53\x9b\x53\xc6\x40\x12\x74\xe0\xc1\xc4\x60\x31\x61\x16\xec\x85\x55\xdc\xec\x56\x14\xfb\xb0\xd1\x5d\xe1\x5b\x83\x9a\x27\xc6\x00\x61\x58\xde\x22\xb3\x47\x5c\xd2\x34\x4b\x8a\x9c\xa6\xc0\x36\x3a\xd5\x22\x96\xe3\x91\xfc\x09\x4c\x57\x4e\x6b\x83\x5b\xdd\xee\x9c\xa6\xb3\x9a\x91\x7b\x46\x0a\xb7\x86\xb3\x79\x99\xf2\x97\x01\x0b\xfb\x5a\x12\xfd\x4f\x45\x0a\xb5\xcf\x08\xeb\x23\xe6\x44\x90\x6f\x80\xcb\xd8\x66\x03\xe3\x99\x16\xa1\x0d\xbc\xab\x5d\x3f\x14\x19\x27\x77\xe9\x9c\xd8\xc3\xe0\x5e\xad\xb9\xa8\xbe\xa3\x0c\x97\x32\x6f\xb7\x10\xfc\x92\x7c\xa3\xe4\xaa\xc0\xed\xb7\x68\xaa\x65\xa2\xf0\xba\xf2\x22\x1b\x50\x82\xd9\x67\x82\x74\x77\x96\x9a\x5d\xa5\x1b\x0c\x11\x01\x73\x92\x64\x28\xa6\x53\x30\x4b\x29\x60\xdf\x1e\x58\xcc\x60\xc0\xeb\xc3\x9e\xe6\xcc\x80\xc4\x19\x8f\xc8\xb3\xc5\xd9\xb6\x57\x63\xd1\xf8\xf1\x88\x0d\xd5\x57\x52\x8b\xe8\x9c\xcd\xf4\x45\x13\x3f\x51\x59\x14\x37\x89\x38\x93\x79\x4a\x84\xed\x42\xdf\xc8\x9a\x22\x6d\x61\x00\xec\x64\x28\x3d\x36\xbd\xf7\x4f\x38\xa1\xb1\x2b\xc0\xa3\x7f\x34\x67\x4e\x8f\x52\x3a\x8f\x62\x4d\x48\x98\xdd\xdc\x58\xaf\xd5\x9b\x89\xf5\x3f\x86\x92\x3b\x4a\x0b\x21\x1f\x5b\x5b\xfd\x49\x55\xc4\xb7\xab\xbe\x42\xbc\x9f\x2c\x4d\x0a\xad\x16\x8c\xec\x2a\x9c\xaf\x43\x31\x74\x48\xba\xb9\x09\x01\xd6\xfd\x38\xa3\x8f\x19\xdc\x46\xec\xa7\x32\x41\x3b\x6a\xc3\x59\x42\xf1\x9e\x50\x90\x0d\xa4\xc2\x5a\xbc\x30\xd7\x01\x17\x56\xc3\xb1\x77\x4e\xf3\xd6\x9e\xef\x58\x1e\x42\x46\x38\x59\xde\xe1\x15\xf6\x66\xf3\xfe\x6a\x25\xc0\x1e\x37\xd3\xf6\xca\xa4\xdf\x88\x27\xc9\x26\xa5\x4b\x2a\x33\x3f\x2b\x3e\x5f\x3d\xa2\xa2\x1f\xbd\x01\x6e\x2f\xe0\xd4\x98\xcb\x1b\x27\xd6\x94\x22\x95\xdd\xa5\xf0\x25\xa3\x86\x2d\x2c\x6b\x1d\x31\x3e\x85\xe2\x36\x49\x53\x54\x57\x26\x78\x4a\x37\x41\x57\x36\x81\x4e\xb7\xce\x2e\xbe\xc6\xca\xe0\xac\xe7\x20\x9a\x1a\xf2\xb2\x3d\x42\xbe\x1e\xb6\xe2\xe6\x8a\x33\x94\xe2\x6c\xab\x05\x5f\xe7\x15\xea\xa3\xd4\xb8\xe4\xec\xea\x01\xde\x22\x81\x3a\x31\xb0\xc8\xcf\x78\x51\xa4\x46\x37\xe1\xe6\xb2\x8d\xc8\xe1\x41\xbf\x3e\x64\x53\xbe\xc1\xe1\x2c\x52\x99\xed\xe9\xc3\x8e\x66\x83\xf3\xe7\xbd\x14\x66\xf7\xcd\x9a\xb6\x39\x8f\x67\x75\x44\xbd\xf1\xc9\x74\x2b\xf8\x92\x36\xca\x90\x89\x84\xe6\xc9\x4d\xee\xd6\xf2\xd1\x0a\x5a\x44\x30\x9c\xd5\x4b\x75\x59\xa2\xc3\xbd\xaf\x51\xa5\x1d\x64\x4c\xe1\x2e\x98\xfa\xa6\xbe\xd5\x57\x58\x33\x7b\x48\x5a\x2d\xd6\x8e\xd8\x0d\x9b\xe1\xff\xba\x1e\x3d\xea\x6f\xfd\x09\x5d\x5b\xdc\xa0\xfd\x62\x00\x37\x93\xd6\xce\x55\x44\x66\xda\x14\xb5\x29\x4d\xb4\x88\x3d\xac\x31\x70\xba\x04\x31\x1f\x50\x65\x42\xe5\x9d\xf4\x94\x0b\x1a\x14\x04\x75\x32\x12\xa2\x50\x98\x24\x74\xf2\x04\x0a\x3d\x98\x16\xe7\xfc\xd9\x44\xa7\x0b\xaa\x79\x96\x11\x56\x15\x98\x7b\x34\x2f\xa0\xd6\x5a\x62\x8c\x4d\xfe\x03\x6e\x62\x06\xb1\xad\x79\x5c\x8c\xaa\x61\x4b\xf7\x51\xda\xa9\x7d\xfe\x9d\xeb\xf5\x5e\x7f\xb1\xbc\x37\xb5\x23\xbc\x2f\xb7\xbe\xf1\xe8\xbc\x94\xbf\x79\xc0\xd4\x47\xf8\xd4\x29\x3d\x18\x4d\x05\x01\x07\x7f\xea\x31\x35\x0c\xa8\x2e\xe7\x70\xdf\xdd\x9d\xff\x70\xf2\x30\x44\x44\x45\x28\xa1\x8f\x64\xc4\x22\xf9\xd4\xd3\xe2\xf1\x3f\x72\xa2\xf4\xcf\x0d\x1e\x01\x9a\x12\x26\x81\x13\x50\xb5\x84\x3d\x54\xbf\x90\x6e\x61\xf4\x7f\xcf\xcb\xdf\xaf\x20\xf9\xa5\xf4\x61\xa0\x5d\x57\xe7\x06\xc8\x14\x4a\x79\x98\xa5\x95\x35\x14\x63\x6c\x91\x83\xba\x2a\x98\x5b\xa4\x0b\xb1\xbf\xe7\x6c\x43\xa1\xeb\xac\xf8\x28\x18\x45\x83\x4c\x97\x66\x18\xb0\xae\x37\xcb\x43\x32\xdf\xd4\xb6\xbe\x8e\x89\x14\x69\xd9\xce\xb6\x5c\x14\x0c\x45\x4a\x10\x02\x2c\xc4\xd3\x93\xbd\xeb\x2d\x12\x87\x9f\x58\xf0\xd1\xf1\x88\x5d\x3a\x8f\x73\xf1\xab\x2c\xf4\xf0\x74\x12\x40\x80\x97\x5b\x81\x66\x63\x2a\xfd\x0f\x50\xc8\x45\xe6\x89\x32\x95\xec\xa6\x94\xe1\xc4\x0f\xd4\x3c\xa9\xe3\x12\x02\xb3\x68\xbe\xab\x09\x99\x4e\xc7\x24\xd9\x44\x12\x1d\x4e\x07\x89\xd4\xf4\x1d\x3d\x36\x9c\xce\x6d\x6a\x35\x16\x93\xb1\x15\x68\x4d\xbd\x27\x54\x98\xa0\x71\x62\x2a\xc9\x11\x04\x3e\xca\x6a\xf6\x98\x01\x88\xd0\xbb\x68\x25\x75\xe3\xa2\x34\x69\x1b\x3e\x24\x1b\x7a\x41\x58\x8d\x98\xc8\x19\x14\x99\xf0\x11\x0b\x18\x15\x78\xe1\x91\xf3\x1f\x58\x6f\xce\x4c\xb3\x09\x03\xc7\x6d\x5e\xd6\xfa\x19\xcf\x25\xd8\x6a\x52\xa2\xf4\x05\xf5\x35\xd4\x7f\x35\x21\x43\x3d\x94\x09\x9a\x82\xb9\x55\x7e\x53\xb3\x75\x67\x58\xe1\x84\xcf\xfa\x42\xd1\x29\x8e\xd4\x3d\xde\x49\x03\xc7\xb6\x99\x6d\xc3\x4f\xdd\x30\xd0\xf0\x5c\x2f\xfe\x8c\x30\x22\x60\xa2\x5a\x27\xaf\x3f\xc2\xf0\x64\x2b\xce\x0d\x56\x36\x6b\x18\x95\xde\x62\x81\x73\xc5\x53\xad\xdf\xe2\x24\x59\xf4\x8c\x45\x96\xa0\x39\x96\x73\xb7\xd1\xc6\x98\xd6\xe6\x6e\xb2\x8b\x7b\x86\xa3\x39\xb9\x83\x6a\xc8\x75\x8b\x5b\x19\xe5\x07\xc2\xf2\xf4\xc3\x29\xfa\x9f\x62\x8e\x67\xfd\xb3\xef\x07\xe3\xf3\xe1\x5d\xff\xbb\x8b\xc1\x79\x30\x1f\xfb\xe4\x72\x78\x77\xb7\xfc\xeb\xf7\xc3\xfb\xe5\x1f\x6f\xae\x6f\x1e\x2e\xfa\xf7\x75\xad\x5c\x5c\x5f\xff\xf0\x70\x33\xfe\xd8\x1f\x5e\x3c\xdc\x0e\x6a\x3e\x7d\xb8\x6f\x7e\x78\xf7\xc3\xf0\xe6\x66\x70\xee\x56\xe5\x6f\xc1\xe9\x02\xeb\x31\xa4\x5e\xd4\x4f\xa3\x7a\x00\x8f\x50\xf9\xc5\x53\xf4\x50\x2d\x7d\x60\x63\x91\x0d\x8e\xc5\x33\x96\x9a\x87\x41\x28\xfc\x88\x21\xf7\xb9\x5e\x94\xa6\x4f\x4d\xb8\x4e\x34\x27\x28\xe1\xfc\x31\xcf\x2c\x6b\x33\xf1\x61\x8c\x1b\xc3\x0f\x91\x41\x6b\xdf\x0f\xef\x4f\x97\x4b\x30\xf8\xc6\x02\xc4\x2c\x77\x06\x60\x5c\xd8\xb1\x53\xb0\xa5\x38\x68\xfe\xc2\x7a\x1b\xf4\xe0\x77\x66\x55\x3f\xa6\x35\xcc\x54\xa5\x9b\x38\xb6\xc5\x7e\xdd\xc4\x82\x86\xcb\xfb\xba\x6a\x35\xfd\x72\x98\x9a\x53\x68\x42\x22\x9c\x9b\xa0\x26\x7d\x4f\x09\xc1\x45\x38\xe0\x82\x1e\xf6\xd7\xa8\xa5\xa3\xda\x06\x2b\x7b\xa6\x27\x2e\x1f\x69\x96\x91\xf8\xc3\xb2\xfc\x52\xae\x0a\x6b\x6b\x91\xf3\x29\x0a\xce\xa4\xd6\xeb\x41\xe7\x77\x05\x53\xe6\x0b\xef\x49\x83\xc0\x8d\x22\x94\x05\x80\x9c\xf5\x9d\xe0\x0b\x5b\x50\x70\x8d\x61\x85\x9e\x09\xa4\x54\xe7\xb6\x62\x94\xd1\xbd\xf5\xd9\x86\xee\x8c\x4d\xdb\xd5\x7f\x2b\xa5\x5a\x37\x32\xe3\x7d\x08\xdc\xfa\x7b\x49\xea\x18\xf1\x0e\x79\xb1\xe7\xa6\x51\xe0\xce\x2e\xe6\x0d\x46\xdc\x10\xdc\xe0\x6e\x83\x1a\x0b\xf9\x0a\xf9\x6a\xf9\x46\x5a\x73\x59\x68\xb6\xdd\x66\x3c\x0e\x0b\xa4\x04\x70\xdd\x7e\x60\x25\x10\xe4\xb5\x6b\x75\xcf\x63\xbc\xd0\xc4\x01\xb1\xc6\x32\xcf\x32\x2e\x14\x6a\x68\xc3\xb8\xf1\xcd\xf8\xe0\xce\xb1\xf3\xf0\x3c\x0e\x1a\xd1\x12\x86\xac\xa9\xa5\xd1\x0e\x1e\xc1\xae\x6b\xc1\x38\xc2\x00\x59\x50\x04\x7d\xbd\xa3\xb4\xa4\x52\x97\x28\xb4\x4e\xf8\xdd\x25\xc3\x20\xd3\x17\x7c\xdb\xf2\x7b\x75\xbd\x5f\xbb\x16\x6a\xb7\x3c\x21\x53\x35\xae\xf5\xfa\xac\x30\x70\xea\x16\x59\x13\xa2\x0c\x9d\xcd\xf7\xd0\x62\x7b\x2d\xe1\x8f\x36\xb0\x47\xab\x06\x81\x85\x40\x70\xae\x8c\x7c\x5a\xe8\x30\xc8\xad\x26\x98\x17\x6c\xa7\x36\x17\xcc\x0b\x81\x5a\xe6\x37\xfe\x50\x9f\x36\x75\x3c\x62\x03\x08\xa0\x28\x14\x11\x97\x22\x06\x5a\xc0\x5a\xf9\xbf\x54\x6c\xf4\x55\xa3\x35\x9b\x11\x5e\x0b\xba\xb7\x75\xf2\x93\x05\x2a\x0a\xca\x96\xbe\x6b\x73\x7a\x8c\xd5\xdb\x89\x80\x66\xc2\xb6\x7c\xbb\x22\x99\xb5\xcc\x9b\x79\x16\x91\x3e\x10\x1f\xa6\xbb\x3a\x46\x3f\x39\xcb\x0f\x04\xbe\x16\xb5\x98\x6d\xec\x46\x82\x17\x0e\x14\xb2\x6e\x61\xf7\x81\xb3\xb8\xef\x50\xd8\xd5\x0b\xec\x01\x9d\x6a\x56\xb9\xa4\x80\x33\x66\x2c\xb2\x1b\xa4\x7d\x9c\xf9\x8f\xee\xc8\xea\xa8\x80\x8f\x50\x7e\xd3\x46\x56\x81\xd0\xc1\x92\xc5\xff\x32\x9b\x65\x32\x51\x5d\x61\x2d\x5b\x0e\xd1\x7a\x50\xf5\xf9\x01\x0f\xa0\x49\x54\x45\x53\x9a\x24\x20\x07\x1c\xa3\x3e\x94\x05\x86\x44\x4e\x7d\x15\xba\x00\x0b\x3a\x63\x7c\x5d\x8e\x59\x03\x31\x45\x01\x31\xdd\x35\x13\x93\x04\x6a\x2a\xf2\xf8\xf7\x43\x51\x7b\xc0\x74\xd1\xbc\x05\x2f\x23\x62\xb7\x47\x72\xd9\x40\x79\x7f\x8b\xe8\xe8\xa5\xe1\x06\x1f\xfe\xab\x7e\xe8\x9f\x72\x2c\x30\x53\x10\xf3\x6b\x45\x77\x41\x82\xd4\x23\xf2\x19\xe2\x33\x98\x31\x04\xc3\x4f\xe1\xe6\x3a\x97\x3f\x84\x7b\x21\x1a\xf7\x10\x3d\x26\xc7\x50\x9d\x4d\x68\x59\x62\x52\xbc\x39\xd7\x92\xc3\x88\x2d\xc5\x32\x1e\xa3\x7e\x22\xb9\xfd\x82\xb0\x28\x81\x32\xdc\x41\x78\xb2\xa7\x7c\xeb\x56\x9a\x2c\x40\x41\x81\xad\x2c\x9a\xe7\xf6\x41\xf0\x21\x14\x19\x03\x9f\x78\x02\x27\xbd\xf8\xfd\xf7\x3c\x33\xde\x8a\xa6\x38\x89\x17\x2c\xe7\xb0\x74\x0d\xbd\xd8\x26\x99\x52\x81\xab\x36\x08\xde\x80\x8d\x29\x62\x4c\x03\x04\x16\xf4\x35\x56\x28\x21\x58\x2a\xf4\x87\x6f\x36\x8a\x0d\x71\x13\x2c\xb8\xab\x3d\xbe\x45\xa2\x98\x4b\x35\x08\x85\x3b\xdf\x31\xd4\x8e\xc3\x42\x21\x8c\x18\x79\x0e\x23\x4b\x39\x04\x03\xbb\x82\x70\x24\xc8\x6d\x35\xf1\x64\x26\x33\x1f\xb2\x35\x8c\xca\xd4\xc0\x47\x1c\xdc\xb1\x75\x9f\xda\x61\xd5\x50\x96\x55\x9e\x6c\x88\x27\x40\x72\x15\x41\xff\x73\xac\x46\xcc\x72\x56\x17\x36\x12\xa4\x79\xf5\x93\xa4\x1c\x68\x8f\x21\x97\x84\xe9\x09\x43\x5d\xf6\x63\xbf\x40\x57\xa0\x7e\xf9\x68\xe7\x92\x9d\xae\x38\x2c\x26\x1e\xcf\xe3\x1d\x85\x6d\xd7\x4a\x3b\x75\xf6\xe5\x57\x14\x82\x6b\xba\xbf\x30\x05\xf2\x5b\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\x87\xdd\xbf\x96\xc7\xb7\x34\xf4\x61\x0c\x49\x7f\xeb\xb9\x60\x91\x44\xe7\x58\x87\x89\xbd\x8e\x83\x9c\x9e\x20\x85\x00\x82\xff\x1c\xe3\xb3\x6f\x36\x78\x5e\xb3\xf7\x3d\xfd\x5e\x31\x7f\x37\x15\x1f\x04\xb7\x3c\xf1\x66\x61\xaf\x1f\xff\x1d\x47\x10\xe9\x0f\x3d\xb9\x1c\x83\x65\x40\x26\x07\x63\x8d\xc1\x98\x5f\x2b\x1e\x66\x82\x47\x44\xca\x63\x34\x80\x8b\xc6\xfe\x13\xe1\xa9\x73\x48\x04\x2f\x8f\x98\xd6\x4c\x1c\x7e\x4b\xd0\x7e\x99\xc4\xeb\x4e\x80\x01\x83\xdb\xc9\x97\x93\xae\xaf\x51\xd2\xa4\x4d\x38\x2c\x3a\x68\x03\xca\x1a\xa0\xc1\xec\x14\xc5\x3c\x7a\x24\xe2\x44\x90\x98\xca\x53\xf0\xad\xab\x46\xa7\x5e\xaa\xb5\xed\x9d\x25\x8d\xa6\x40\x81\x35\x49\x71\x67\xa6\x7f\x1b\x60\xed\xc2\x6b\x7b\x88\x4e\x41\x9d\x70\x39\x19\x26\x08\xd9\xc1\xdd\x10\xa6\xc4\x02\xe2\xfa\xbd\x29\xab\xb2\x10\x4e\xd3\xd0\x42\x5b\x53\x36\x91\xd8\x47\x0c\xce\x96\xd3\xbe\x9f\x13\x49\x5c\xc0\x81\x99\x94\xe2\x36\x96\xd9\xb0\x8b\x0c\xab\xb9\x84\xd4\xd5\xf2\x1a\x58\xa5\x0b\x3e\xd5\x2b\x84\x33\x88\x57\x30\x56\x8a\xe2\x23\x9f\x60\x29\x15\x4d\x92\x11\x63\x84\xc4\x12\x41\x96\xe9\x57\xb5\x19\xf2\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\x3c\x41\x46\x2c\x1c\xa9\xc3\x0e\xd0\x4f\x24\x71\x91\xae\x56\x4c\xf1\x10\x8a\x76\x0f\x1b\x2b\x16\x1b\x9b\xdf\x06\xca\xef\xad\xff\x64\x35\x0d\x3a\xe2\xf1\x5d\x38\x31\x10\x72\x64\xb0\x0c\x92\xc9\xad\xee\x5b\x10\x1c\x61\x33\xca\x9a\xe2\xf1\x08\x7b\x7a\x49\x21\xfe\x07\xb2\xf8\x51\xab\xd7\x37\x98\x8a\xd6\xb4\x57\x8f\x06\xe4\x4e\x8c\xd6\xd3\xb1\xac\x1e\x2a\x69\x64\x61\x93\x6d\xd3\x18\xf3\x59\x07\x04\xf7\xe6\xd3\xb5\xf0\x52\xe4\xb3\x12\x0e\xa5\xc2\xe7\x73\x38\x28\x27\x7f\xd1\x14\x34\x38\x62\xf7\xd7\xe7\xd7\xa7\x88\x24\x78\xc2\x21\x94\xdf\x86\x04\xb9\x26\xec\x82\x45\x3c\x0d\x1a\x2a\x21\x94\xf4\x50\x56\x20\x94\x84\x46\xb4\x63\xd3\xc6\x1a\xa4\x92\x8c\x8b\x65\x7c\x8f\xfd\xaa\x80\x76\xb2\x37\x5c\xb4\xb9\xfe\xf5\x6b\xb0\x74\x3c\xd3\x8a\x5c\x85\xf3\xda\xbb\x79\x4a\xb0\xa9\xa1\x6f\xdc\x42\xd6\x96\x6f\x03\x58\x93\xa4\x54\x4f\x51\x1f\x1c\x79\x6c\x5d\xf0\xc5\x9b\x9c\xa1\x1f\xfe\x22\xd1\x24\x57\x23\x56\x6e\x83\x33\xd4\xff\xe9\x0e\x7d\x87\x55\x34\xff\x66\xc4\xae\xb5\x9a\xf9\xc3\x5f\x1a\xa0\x94\x36\x46\x27\xd4\x6b\x72\x8e\x15\xbe\xe0\x38\xa6\x6c\x56\x07\x4d\x58\xd4\x8f\x19\xdc\xf7\x4f\xd1\xb5\xd5\xe1\x8b\x4c\x10\x9f\x12\x1c\x34\x04\x0c\x19\x26\xe2\xb8\x08\xb0\x72\x56\x86\x6f\x33\x9a\x19\x5c\x58\x23\x76\x6f\x30\x19\x35\x57\xa5\x0a\x65\xdc\xd6\x30\xd2\x5a\x99\x41\xab\xc4\x2e\x43\x8a\x24\x0b\xa4\x57\x07\xc8\xd8\x6f\x86\x95\xc7\x40\x9e\x59\x66\xf6\x23\x06\x0a\xba\xcf\x4d\x49\x78\x84\x13\x88\xc9\x3b\x0a\x6c\x7a\x5a\x6d\xe7\x39\xe4\x87\x9b\xa2\xe7\x8b\x72\xe8\xac\x87\x2c\xf0\x42\x59\xb8\x51\x60\x00\x80\x7d\xb4\xde\xd8\x94\x6b\x8e\x63\xb0\xd8\xc0\xf8\x96\x98\xd5\xd1\x1f\x7a\x6c\x36\xb3\x2c\xfa\xa9\x4f\xdb\xe2\x39\x73\x58\x24\x11\x98\xef\xd9\x02\xc2\xb7\xa1\xe8\x08\x87\xd0\x8f\x82\x3b\x5b\xa2\x5c\xda\x45\x7f\x27\x06\x9f\x8d\x98\x89\x14\x2c\xed\x4b\x88\xde\x13\xf4\xce\x19\x04\x32\x2e\xe7\x8a\xe5\x99\x0d\x6c\xb4\xb2\x7e\x26\xc8\x91\xcf\x80\x8a\x4b\x6b\xaa\x6f\xd8\x63\x74\x1b\xaa\xd7\x31\x8f\xf2\xd4\x21\x2b\x43\xf6\x54\x51\x56\xbe\x24\xf1\x98\x8b\x7d\x1d\xc5\x03\x4a\x8b\x22\x90\x3e\xde\x5a\x3f\x36\x04\xd3\x0f\x3f\x5d\x96\xd4\x9b\x05\x5f\xe0\x1d\xbb\x45\xad\x99\x86\xc6\x59\xb9\xa5\x52\x6b\x3b\xe7\x25\x5e\x15\xe8\xaf\x5c\x80\xb0\x45\x3e\x67\x1c\x8c\xdc\x26\x3d\x8b\xc7\x5f\x49\x34\xbc\xd1\x12\x90\xd6\x78\xfd\x19\xcc\xa5\x32\xc1\x65\x90\xae\x63\xbe\x36\xe9\x02\x3d\xf4\x2d\x1a\xe5\xdf\x7e\xfb\xa7\x08\x7d\x76\x7f\xfc\xf9\x3f\xff\xf3\x4f\x7f\xde\x24\x9d\xc4\x29\xe4\xd0\x6e\xb1\x46\xbe\x9c\x54\x59\x24\x0a\x77\x60\x99\x53\xed\xb0\x0b\xf6\x00\x36\x2d\xff\x36\x28\x8f\x41\xec\x10\x9e\xd9\x13\x2e\xc3\x93\x89\x4a\x47\xb3\x88\x24\x90\x44\xf5\xca\x1c\xc2\x0b\xbb\x56\xa2\xff\x5f\x2b\xc0\xca\xc6\xfa\xa8\x6c\x17\xe3\x44\x13\x2f\x5e\xeb\x46\xd0\xd7\xd6\xfe\xa7\xc0\x81\xf8\x8d\xbb\xe0\x78\x12\x13\x61\xc6\xe4\x4d\x76\xde\x90\x08\xcc\x81\x7c\xce\x12\x1e\x3b\x78\xd4\x22\x17\x90\x82\x80\x30\xf8\x8c\x35\xe7\xee\x59\x18\x2d\xf3\x91\xf1\xbc\x4c\x71\x64\x50\x41\x25\xfa\xfa\xf3\xa9\xfe\xad\x87\x16\xa7\x10\x44\xda\x43\xbf\x9e\x5a\xb4\x1c\x2c\xd4\x58\xff\xf4\x8d\x93\xb5\x6d\x13\x30\x68\x2a\xd1\x57\x27\x4f\x58\x98\x9a\xd1\x27\x66\x44\x5f\x59\xce\xea\xeb\xe2\x85\xb2\x79\xc2\xf9\xa3\x0d\xb0\x5d\xfa\xf0\xc4\x01\xaf\x01\x79\x7b\xbf\x89\xd9\x7a\x9f\x98\xaf\xd0\x11\xbc\x40\xd0\x71\x36\x41\xc7\x7f\x97\x9c\xa1\xe3\x05\x4e\x13\xfb\xab\x7b\x6a\xe3\x7f\xb1\xb4\x39\x71\xb1\x0f\xf2\x49\x16\xc6\x52\xfa\x5d\xc2\x27\x30\xab\x4b\x37\x53\x13\x41\x0b\x03\x2d\x6e\x9f\xe2\xc2\xb2\x13\x71\x89\xa8\x80\x1f\x94\x72\x65\x5e\x01\x1e\x57\x37\xab\xcf\x7e\x48\xff\x6d\xfc\xc2\xb0\x28\x2e\x89\xcf\x18\x87\x7d\xf4\x9a\x6e\xf4\x33\xfa\xda\xb2\xa0\x6f\xf4\x1d\x63\xc3\x95\xcd\x32\xd4\x75\xb0\xf0\x1d\xfc\x1c\x74\x40\x19\x32\x69\x99\x2b\xbe\xfc\xf5\xe4\xf8\xf8\xd8\x7f\x0d\x59\xeb\xff\x2f\xa2\x4a\x92\x64\x6a\x5a\x72\x37\xd8\x62\xc4\x2e\x5d\xe1\x05\x67\xbc\x2e\x20\x1d\x33\xc1\x15\x8f\x78\x82\x8e\x0a\x83\x6e\xcc\x23\x89\xfe\x5d\x8b\xb5\xc1\x52\xc2\x8f\x5a\x8f\x6b\x80\x81\x35\x48\xcf\xaf\x74\xa8\xac\x41\xbc\x7a\xac\x42\x14\x37\xaf\xd8\x62\x19\x56\xf1\x00\x5a\xd0\x94\x73\x62\x91\xde\x84\xd0\x2f\x93\xcf\x0a\x1e\x35\x00\xe9\xd5\x86\xb2\xd7\xdf\x94\x4b\xec\xb6\xc0\xd3\x33\x64\xdd\xb0\x00\x16\xef\xca\x72\x06\x33\xcf\x5e\xe8\x3e\xd1\x97\x0b\x0b\x4b\x01\xc8\x3c\x4d\xb1\x58\x9c\x14\xa7\x6d\x99\x38\x0b\xa4\x35\xe0\x31\x89\x5b\x00\x70\xe1\x26\xf6\x68\xd9\x28\x06\x2b\x5e\xba\x1b\xcd\x9f\xdd\x08\x6a\x19\x06\x88\x05\x84\x45\x3c\xb6\x74\x5d\x64\x9f\x96\x25\x16\xff\xce\xb2\xac\xe2\x22\x62\x64\x61\x8c\x63\xca\x40\x78\xd8\x37\xdc\xc7\x0d\xec\x9b\x8f\xa1\x2a\x2e\x99\x6d\xe0\x1e\x1d\x5e\xdf\xb9\x6f\xda\x5f\xba\xb0\x0e\x65\x91\x1d\x27\x21\x3e\x1e\x9b\x21\x81\x9f\x8b\xeb\x17\x62\x3b\x8c\x75\x26\xf7\xb9\xb9\xe6\xdf\x67\xfc\x86\x26\xfa\xd6\x02\x1a\x3f\x1e\xb1\xd2\xcf\x3d\x44\x12\x9a\x52\xe6\x63\xeb\x0c\x73\xe7\x53\x23\x3d\x3f\x52\xa5\xb7\x4c\xc6\x8f\x9a\x83\x39\x5c\xa7\x40\xa5\xea\xb3\x85\x23\x1d\xef\x98\xb2\x16\x88\x5c\xea\x71\x15\x3a\xba\x16\x66\x75\x13\x47\x56\x20\xa5\x01\xe1\xc1\xf9\x1d\x31\xdd\x9a\x3b\x4b\x45\xb8\x70\xd0\x5e\xd0\xdc\x91\x03\xc4\x0f\x38\x00\xf4\x51\x8a\xf9\xf5\xf2\x6f\x8d\x80\x32\x60\x79\xba\x6b\xb2\x89\x0d\x1f\x7e\x2b\x33\xdd\x8d\x20\xee\xa6\xb2\x89\x4b\x84\xe5\xa9\x3b\x50\x1b\x50\xdc\xc0\x8a\x3f\x31\x89\x12\x6c\x90\x6a\x74\x43\x10\xf9\xd8\x33\x0e\xd2\x2c\xe8\xcb\x5c\x2f\xa6\x1b\x53\x63\x27\x21\xec\x6b\xf3\xef\x6f\x90\xbd\x1b\xbe\xed\xd9\xfb\x5c\x48\x8f\x00\x62\xf6\x1c\x6a\x34\x92\xd8\xd8\xd0\x01\x95\x78\x86\x45\x6c\xac\xe5\xa1\x56\x61\x32\x78\xb5\xfc\xb5\xe0\x39\x7a\xa6\x72\x3e\x62\xf7\xdc\x19\x1c\x11\xe3\x1e\xd7\xb9\x07\xca\xe8\x52\x7f\x58\x02\x13\x80\x51\xd7\x51\x80\x66\xc2\x3b\xe5\x1a\x41\x14\xec\x98\xf1\x98\xec\x06\x60\x74\x5f\xf8\x2a\x9c\xff\x5a\x10\x93\x0f\x06\x37\x45\x53\x3a\x2d\x91\x72\x43\xdb\x7c\x75\xe3\xe1\x1e\xb2\xed\x40\x49\xe0\xe7\x8d\xd0\xb5\x43\x6c\x30\x7f\xab\x41\x2b\x4e\xe3\x0c\xb2\x81\x4b\x6b\xef\xd1\x92\x77\xdd\x84\xa8\x06\xad\xa8\xd5\xdd\x6f\xe6\x1e\xc1\xb2\xfb\x00\x63\x8c\x66\x82\xe7\x99\x4f\x99\x77\xe9\x7e\x66\x1b\xac\x4c\x33\x64\x53\x7e\x6a\x75\xaa\x0b\xca\x1e\x0d\xc5\xbf\xd4\x1e\x19\x40\x6c\x12\x97\x60\xdc\x5c\x95\x56\x98\xc3\x11\xa2\x2c\x4a\x72\xb8\xf8\xa4\xc2\xd1\xa3\x01\xf5\x6e\x32\xfa\xea\x6f\xc6\xeb\x93\x29\x1b\x24\xa6\x3c\x49\x6c\xb7\xc5\x05\x5a\x94\xb1\x7e\xa2\x18\x61\xf4\x70\x3b\xac\xef\xfb\x91\x2e\x3b\x73\xea\x6f\xcf\x32\x81\xc0\xff\xfc\x40\x37\x8a\xbb\xac\xc0\xe2\x91\x12\xa9\x7b\xe3\x52\x13\xe8\xea\xff\xc7\xde\xb7\x35\xb7\x91\x24\xe7\xbe\xef\xaf\xa8\x08\x3f\x48\x3a\x07\x04\x77\x66\xc3\x8e\xb1\x22\xfc\x00\x51\xd4\x0e\x77\x25\x52\xcb\xcb\xcc\xfa\x18\x0e\xa8\xd0\x5d\x00\xda\x6c\x54\xb5\xba\xba\x49\xc1\x5e\xff\xf7\x13\x95\x99\x75\xe9\x2b\xba\x01\x52\x92\xd7\xf3\x60\xef\x88\xe8\xae\xae\x6b\x56\x56\xd6\x97\xdf\x67\x26\xe9\x1f\x79\x21\x8e\xcd\x84\x42\x0e\xb0\x11\x48\xbd\x06\xb9\x5a\x6f\xf4\xf8\x48\x66\x32\xcf\x2a\x06\xd0\xa0\x6e\x8a\xb4\x10\xac\x05\x3f\x8e\xe0\x6e\x80\xe7\x87\xb5\xa7\xf6\xec\x9e\xe6\xf4\x57\x33\x15\x62\x04\xdb\xc0\x8d\x79\x7c\x60\x25\x2b\x8f\xf6\xd5\xf1\x91\xa3\xfa\x42\x93\xf4\x37\x26\xcf\x6e\x8c\xb1\xb5\xd3\x11\xdd\x6b\xed\x72\x44\x5c\x4d\x2c\x0c\xc7\xf9\x62\xf6\xbb\x6b\xb8\xdb\x52\x15\x71\x07\x17\xa1\x6d\x99\xf8\x81\xdb\x7a\x24\x6c\xc2\xb8\x5f\x8b\xed\x60\x42\x39\xff\xe1\xb7\xf4\xf2\x87\x06\xbd\x9c\x33\x45\x1f\x20\x8b\xcf\x11\xa7\x6c\xb9\x34\x2b\xdb\x7e\xb5\x23\x08\x89\x1e\xe1\x41\x55\xba\xcb\x0e\xaa\x10\x7e\x71\xa0\xee\x21\x7d\xca\x96\xf2\x88\x71\x78\x9e\x62\x9c\xa9\xd8\x40\x08\xc2\xeb\x05\x19\x8b\x56\x0d\x45\xa0\xb6\x50\xca\xf3\x35\x1e\x90\xb4\x28\xf4\xab\x96\x11\xf6\x39\x0f\x47\x8c\xf0\x01\x9a\xac\xe1\xbd\x27\xb8\xdf\x7d\x2b\xcd\xd5\xb2\x4a\x2e\xea\x76\x65\xa7\x6e\x1c\x30\xe7\xf9\x44\x8c\x48\xe5\xc8\xc4\x1d\x9b\xb5\xd2\xcd\x99\x72\xa4\x36\xf7\x25\xdf\x3a\x46\x00\xab\x10\x4c\xf9\x5d\x58\xb9\xa5\x00\x5e\xdc\xee\x3a\x1c\x2d\xc2\x1d\x56\x81\x44\x31\xbb\x6a\x30\x97\x33\xfb\x88\x67\xf7\x32\x07\xb3\x1c\x1d\x70\xc0\x87\x22\x1a\x1a\xce\x57\xdc\xf7\x3a\x35\xae\xa3\x11\x63\x93\x37\xeb\x3a\xe2\xe6\x7c\xe7\x76\x23\x52\x0c\x72\x1c\x9e\xbd\x6a\x4d\x24\x9f\x7f\xc4\xc7\x6f\x6c\x13\x6b\x4a\xfc\x6d\x1f\xde\x7f\x96\xb2\x8c\x11\x54\x50\x28\xfe\x8f\x18\xd2\x74\xe7\xa7\xa9\x27\x89\xab\x7d\xac\xb9\x5a\x8b\xa3\xac\x71\xc2\xb7\x8b\x5c\x75\xcb\x59\x0d\xe8\x26\x5b\x44\x25\xbe\xb3\x41\x79\x8b\x1d\xfb\x5c\xf2\x14\x37\x37\x49\xd3\xd1\x56\x1b\x5c\xe5\x1f\xff\x89\xcd\x60\xf7\x61\x1f\xc0\x2e\xc2\x05\x3f\x94\x56\x28\x96\x6c\x33\x91\x6b\x25\x79\xa7\xae\xdb\xfd\x4f\x7a\x41\xda\x34\x0b\x1e\x45\xaa\x6c\xea\xd0\x8c\x68\x49\x4b\x69\x61\xa3\x38\xbb\x2f\x97\x22\x97\x02\xb5\xeb\xe0\x39\x66\x9f\x1b\x54\x5d\xc5\xcb\x62\xf3\xe3\x22\x4a\x93\xc1\x82\x39\x90\x5d\x34\x33\xaf\x9d\xe1\x5b\x7d\x0d\xa8\x94\x5f\xa9\xba\x64\xf8\x1b\xc3\xdf\xa6\xec\x0d\x8f\xee\x85\x8c\x59\x96\x96\xeb\x84\xc8\x04\x60\x87\x02\x73\x19\x84\x67\xab\x0d\x43\xdf\x02\xcb\x37\xdb\xd0\x5c\x6e\xf9\x3d\x92\xd8\x92\x13\x19\xf1\xb4\x93\x8a\xca\xb9\xd5\x8b\xa4\x39\x77\xf7\x8e\x96\xdb\x0f\x9b\xc5\xd4\xe7\x9e\x2e\x31\xb7\xe2\x71\xa3\xe8\x46\xba\xe2\xd5\x8f\x58\xb8\x6e\xb6\x36\x38\x5f\x6c\x5e\xbe\x53\x31\xa4\xca\xe0\xea\x85\x70\x2f\x10\x31\x97\x92\x71\xa0\x8d\x79\xa1\x59\x99\x59\xff\x0c\xe2\x90\x29\xdc\x0a\xe3\x10\x98\x1f\xb2\xc4\x9c\xd2\x36\x62\x2e\x01\x69\xcb\x5c\xf3\x1a\x62\x57\x4c\x78\x40\x4c\x9b\x69\x58\x21\x69\xc2\x71\x77\x9c\x0d\x1e\xe7\x3d\xf3\x74\x20\x8a\xb8\xd8\x08\xb9\x38\x80\x4e\x78\xf8\xa0\x55\x10\xc3\xe4\x06\xbb\x78\xae\xeb\xc2\x52\x26\x24\x20\x45\x21\xfc\x90\x2b\x33\x59\xd5\xdc\xe8\x44\x33\xcd\x8b\x44\x1b\x5b\xd6\xda\xe3\x9e\xaa\xe2\x98\x5e\xe7\xe3\xf8\x31\x5a\xb8\x31\x6a\x7d\xe1\xb2\x12\xa6\xec\x1d\x44\xc1\x82\x93\x81\x72\x4c\x13\x5d\x06\xab\xd8\x88\x4e\xca\xc5\xa7\x80\xf3\xd8\x16\x04\xcf\xf7\x06\x37\x5d\x06\xca\x94\xcd\xfc\xed\x03\x72\x6d\xe0\xbd\xc2\x9e\x16\x89\x54\x8b\x43\x26\xdf\xa0\x40\x1d\xdc\xd0\xc3\x04\x62\xe0\x49\x69\xf3\x77\xcf\x20\xef\xaa\xf9\x08\x49\x9e\xfc\x5e\xc8\xbe\x68\xcc\xf0\x1a\x62\xb8\xac\x37\x24\xe0\xe2\x70\x0a\x43\x71\x87\x54\x70\xf8\xb2\xf3\xf4\x26\xc9\xea\xd4\x74\xb9\x39\x86\x44\xf7\x94\x5a\x82\xd1\x58\x22\x48\x79\xdc\x28\x1d\xae\x33\x3b\x7e\x78\x92\xcd\x4b\xc7\x12\x0e\xa9\x39\xae\x83\x11\x93\x23\x55\xc8\x9f\x02\xb5\x76\x8b\x14\x23\xcd\x6e\xbc\x99\x35\xa1\xd0\x0d\x70\x8b\x65\x8b\x6a\xae\xe6\x3f\xff\xa4\xaf\x60\xc5\x3e\x45\xa6\x7e\xbb\x2c\xeb\xf1\x28\xf9\x03\xef\x07\x1c\xfe\xcb\x6b\xba\xf2\xd8\x71\x4b\x64\x2a\x66\x7e\x7a\x8d\x17\x70\xfd\xf6\xcd\xaa\x09\xbf\x0e\x6a\xdb\xbe\x99\xfd\x21\x00\x11\xb0\x65\x99\xa0\x86\x7a\xc5\x21\x54\xd6\xe3\x00\xfe\x63\xd8\xfe\x13\xed\xf6\x93\xf6\x39\xf6\x51\xc5\xc7\x4c\xac\xf1\x74\x7a\xcd\x79\x3d\x00\x63\xac\xdb\x34\xdf\x7b\x7a\x22\x53\xdd\xe8\xd0\x78\x31\x5c\x25\x1d\xe0\x00\xcb\x72\x75\x03\xea\x22\x5d\x8c\x15\x01\xf1\xbe\x4d\x41\x33\xe3\x6c\x3e\xe3\x12\x22\xba\x06\x85\x6e\x97\xfd\xf6\xcf\xd9\x9f\x6e\xae\x2e\x4f\xb6\x3c\xd7\x1b\x0e\x19\xc1\xb6\xac\x89\x15\x6c\xc3\xe3\xb1\xbd\xf5\x4a\xe4\x5c\x9e\xb0\xb5\x9a\xe0\x1d\xeb\x6b\xb6\x29\x8a\x4c\xbf\x3e\x3d\x5d\x27\xc5\xa6\x5c\x4e\x23\xb5\x3d\xf5\x5d\x73\xca\xb3\xe4\x74\x99\xaa\xe5\x69\x2e\x00\x65\x7b\xf2\xc3\xf4\xc7\x1f\x60\x64\x4e\x1f\x7e\x38\x85\x9b\xb5\xe9\x5a\xfd\xc3\xfb\x1f\xff\xf9\x0f\xff\x64\x0a\xce\x76\xc5\x46\xc9\xd7\x74\x81\xdb\x5b\xf6\x09\x7a\xe5\xa7\xf8\x4a\xed\x2b\xff\x3c\xfd\x7d\x58\x0d\x7a\x74\xab\x62\x91\xea\xd3\x87\x1f\x16\x76\x60\xa6\xd9\xee\x37\x5c\xea\x37\xc3\xa5\xde\x27\xc5\x6f\xb8\xd4\x6f\x8a\x4b\x1d\xee\xe1\x38\x1b\x03\x44\x9f\xde\x3e\x9a\xbf\x3b\x1b\x69\x43\xef\xfb\xec\x50\xcb\xe6\x10\x66\x0d\x1c\xb1\x45\xdc\x8b\x51\x47\xec\x5a\x73\xdd\xd1\xa1\x23\xc4\x36\x96\x6c\xbf\xd3\x99\x1f\x95\x24\x0d\x28\x90\x24\x02\x22\x67\x0c\x09\x66\x3c\x69\x43\x9b\x12\xda\xe9\x98\xfe\x7b\x4e\x4a\xf2\xa7\xe6\x22\xa7\xe6\x1e\xc8\x43\x9e\xe2\xdb\x16\x9b\xa5\x1e\x2d\xff\xf8\x53\xb0\x76\x0f\xd4\x71\x75\x64\xc4\x38\x79\xa0\x2e\xb6\x5e\x1d\xd5\xd8\x70\x7d\x18\xc8\x6f\x86\x94\x7f\xee\x9e\xce\xa9\xe2\xd3\x07\xed\xc6\x61\x59\x14\x40\x24\x9c\xc8\x9a\xb2\x32\xcf\x94\x16\x7a\xca\xde\xd5\x94\x0e\x3d\x70\xf1\xfa\xdd\x19\xfb\xe1\xa7\x7f\xfe\xc3\x5c\xbe\x6c\xd9\xb7\xc1\xde\xab\x7c\x4d\x38\x4a\xd8\xad\xb7\x5c\x17\x22\x3f\xcd\x57\xd1\x29\x5a\xb9\x53\xf3\xfe\x09\x7d\xf4\x44\xad\x4e\x1c\x25\xf1\x09\xb1\xb3\x4e\xb7\xf1\x38\x82\x81\xca\xd4\xc3\xbd\x86\x36\x1a\x0d\x9b\x12\x52\x11\xa9\x95\x23\x9f\xc7\x3c\x17\xd4\xa9\x50\xab\x96\xff\x78\x93\xaa\xa5\x7e\xe5\x08\xd0\xb8\xb6\xdf\xf0\x8c\x44\xdd\x4b\xf3\x69\xd8\xc9\xed\x14\x79\xce\x40\x85\xb5\x25\xe1\x71\x64\x4c\xc7\xb7\x2f\x36\xbf\xdd\x23\x1f\x03\xcf\x55\x29\x2d\xbb\xb3\x92\x42\xad\x00\xc5\x07\x9e\xb0\x45\x29\x40\xac\xd6\xec\xb4\x9e\x7b\x21\x17\x19\x6e\x30\x70\xab\xd0\xdd\xdd\x47\x32\x9c\xef\xeb\xe7\xe7\x60\x38\x3f\xb6\xdf\xc9\xa0\x7c\xa3\x0e\x3f\x16\x4a\x88\x4b\x69\x0c\xaa\xc2\x3c\xbf\xf7\x06\xd5\xd9\x01\xaf\x3e\xe4\xc9\x84\x33\x9e\x83\x93\x26\x4e\x0a\x75\x02\xa4\x35\x40\x85\x82\x9a\x03\x5d\xb0\x0a\xb8\x79\x1e\xb3\x4d\x9a\xe7\x07\xd4\x13\x1d\xf3\x2f\x41\x45\xc9\x27\xd1\x48\xe1\x49\x90\xac\x44\x4a\x91\xd3\x9d\xda\xde\x1d\x75\xe4\xbd\x74\x38\x94\xfd\x88\xac\x40\xd7\x3a\xe0\x83\x77\x78\x7c\x1e\x18\x81\x29\x03\xef\x73\xa3\xb6\xca\xb8\x33\xaa\xd4\xc1\x8f\x78\x7a\x81\x4d\xb8\xd3\xf7\xda\xf2\x0c\x49\xea\xbe\x5d\x6b\xcc\xd2\x32\x3f\x61\x50\x2f\x7c\x68\x94\xc4\xc6\xb2\x2a\x2a\xb0\xa7\xfe\x8e\x0d\xbe\x7f\xde\x00\xea\x01\x75\xea\x40\x2a\x96\x38\x9e\x93\xff\x34\xe7\x1a\x33\xa5\xdc\x49\xc1\xed\xdc\x08\xd2\x41\x2e\xc6\x90\xee\xd5\x7a\xf3\x9d\xd9\xd2\xe5\x76\xe4\x18\x38\x90\xf1\x90\x01\xe0\x12\x61\xb7\x16\x6f\x7b\xd2\x0a\xb8\xed\x5a\x97\x56\x98\x35\x5e\x58\xbe\xd0\x71\x55\xbd\x71\x05\x10\x35\x68\xb3\xde\x9e\x6e\x09\xd0\xd9\xd8\xc7\x68\x10\xac\x6f\xd1\x01\xba\x91\xe3\x17\x23\x08\xac\x8c\xe9\x3b\xf8\x08\x4e\xce\x46\x0f\x06\x6b\xa1\xab\x03\xc7\x85\xd8\xfa\x22\x56\x6d\x70\x7e\x64\xa8\xf3\xd9\x3b\xa6\x96\x8d\xc3\xa3\x7b\xf1\xc1\xab\x50\xef\x32\x31\x61\xcb\x12\x7e\xbf\xbc\xba\x0d\xd1\x1a\x09\xb6\xf6\x24\xda\x88\xe8\x1e\x02\x26\xb8\xe5\x39\xd1\x46\x62\xc3\x9b\x4b\x2f\xfd\x55\x28\x0b\x3d\xd8\x39\x36\x74\xa7\x08\xa0\x72\x16\x27\x3a\x4b\xf9\x0e\x2e\x79\x25\xe2\xf4\xfd\x05\xb1\x4b\x70\x31\xa6\x60\x5f\xbc\x78\xf8\x48\x9b\x51\x99\xf9\xf7\xc6\xf6\x25\xcf\x97\x49\x91\xf3\x7c\xc7\x7c\x67\x36\xed\x01\xd3\x62\xcb\x65\x91\x44\x73\xb9\x15\x5c\x86\xa8\x3c\xba\xe4\x36\x9d\x1c\x2b\x41\x7c\xc1\xab\x95\x88\x0a\x4f\x38\x08\xce\xbb\xeb\xa9\x7d\x6b\x70\x5c\xdb\xdd\xca\xeb\x6d\xfa\xcf\x89\xc4\xf4\xf6\x64\x0b\x98\x4f\x9a\x43\xb4\x35\x1e\x78\x79\x03\x52\x71\xb4\xe5\xda\xc3\x20\xfc\xcb\xce\x29\xb6\x14\xc5\xa3\x80\x7c\x7a\x4a\x00\x6c\xf3\xf1\x8f\x96\x0b\x38\x4e\xfd\xb7\x5d\x37\x39\x40\x82\xe1\x02\x0b\xc1\x64\x8e\xf8\x47\xd6\x18\x7c\x5e\x50\x4a\x22\x44\x7b\x5e\x50\xdc\xea\x05\x6c\xd3\xe6\xf4\x98\x3f\x88\x78\x2e\xab\xb4\x4a\xe4\x33\xfa\x05\xc7\xbc\x10\xd6\xd3\x58\x1b\xdb\xc7\x83\x62\xf9\xe7\x40\x25\xe1\x49\x24\x5d\xd2\x5d\x8f\x30\x17\x36\xfa\x39\x4f\x55\x56\x13\x30\xf4\xee\x07\x40\xb2\x84\xb6\x42\x37\xa4\x8b\x57\xc1\x53\xb8\x49\xe9\x48\x63\x90\x51\xce\x01\x60\x29\x2e\xd9\x88\x74\xb6\x95\x31\x97\x36\x9b\x7a\x55\xa6\xc8\x12\xda\x25\x15\x46\x1c\x52\x36\xf3\xe3\xdb\x65\x00\xb9\xb8\x1a\x0b\xb4\xc5\x1c\xec\x21\x00\x23\xa3\xad\xb3\xb3\x5e\x48\x8d\x82\xd4\x56\x56\x08\x02\xcf\x6b\x51\xc0\x6e\x1e\x97\x29\x26\x07\x43\xc4\x1c\xf8\xa8\x78\x9a\xb2\xa4\xd0\x73\xe9\xe8\xb3\x90\x0c\x1d\x2c\xac\x0d\xa9\x5b\x45\x5a\xe9\x74\x6d\x49\xbb\x1f\xfc\xb0\x24\x4a\x8a\x06\x84\x7b\x17\x4a\x71\x64\x99\xe0\x98\xcb\x86\xc3\x36\x97\xe1\x99\xab\x3e\x08\x94\xf8\x05\x1a\xe5\x4f\x91\x83\xd5\x83\xc8\x07\x61\xf7\xd1\x43\x32\x65\x33\x6c\x9d\x39\x70\x59\x95\x4d\xac\x2d\xe5\xcf\x13\xd2\xd2\x9c\x6a\x0a\x6d\x63\xe4\xfe\xdc\x0a\x72\xce\x51\x99\xf2\x3c\x05\x4e\xfa\x55\x99\xb2\x64\x15\x08\x86\xc2\x18\x20\x79\x92\x19\xae\x48\xc1\x5e\x6d\xa3\xe4\x9a\x6f\x45\x90\xb7\x4d\xe1\x9d\x34\xc0\x50\x20\x23\x34\x5e\xce\x9b\xb2\x5e\x4d\xd9\xdb\xba\xc2\x3c\xac\x89\x80\x74\x31\xd1\x68\xfe\x5c\x7d\x83\x94\x43\x54\xaa\x4f\x56\xe6\x48\xf9\x22\x58\x75\x1d\x23\x08\xe4\xed\xe3\x00\x1a\x96\xba\xbf\x1f\x35\xdc\x9a\x72\x6c\x5e\xad\xc1\x36\xdc\x82\xe8\xa8\xa0\xdd\x15\x46\x56\x32\x24\xac\x3c\xa0\xa2\x8e\x10\xb4\xa5\xb2\xdb\x1e\x7d\x52\x18\xc7\x91\x55\x0d\xd4\x7e\xc6\x57\x34\x98\x39\x21\x1c\x67\x48\xcf\xae\x79\x31\x16\x9b\xe3\x92\x71\xc6\x57\xb4\x15\x07\x35\xa4\x9a\x60\x3d\x46\xd6\xd3\x4b\xf0\x8f\xaf\xa8\x93\x7e\xf6\x7a\x00\x5e\x13\xbf\x92\x43\x69\x99\x0e\x5d\x0b\xf4\x5c\xd2\x66\x37\x3e\xfd\x73\xe6\xe7\x1c\x08\x1e\x31\x53\xfd\x29\xbb\x92\x02\x91\x73\x6a\x15\x6c\x2a\x54\x01\x52\x46\x02\xb2\x79\x19\x48\x50\xa7\x89\xbc\xb7\xd4\x12\x66\xc9\x4d\x18\xf7\xa5\x83\xd5\xc3\x69\x83\x56\xa4\xc3\x97\x6c\x93\x66\x38\xc2\xbd\x1c\x96\xa0\xd9\x7e\xe6\x0f\x00\xa8\xe3\x2d\x40\x5b\x3b\x86\x0f\x4b\x2f\x92\xdc\x9d\xe2\x2a\x1a\xe3\x21\x6a\xb4\x48\x8a\xdd\xbe\xfe\xfd\xb8\xa9\xa2\x10\x47\x08\x19\xdd\x5d\xbe\x3d\x7f\x77\x71\x59\x55\x1f\xfa\xcb\xdd\xf9\x5d\xf5\x2f\xd7\x77\x97\x97\x17\x97\x7f\x0c\xff\x74\x73\x77\x76\x76\x7e\xfe\xb6\xfa\xdc\xbb\xd9\xc5\xfb\xda\x73\xe6\x4f\xd5\x87\x66\x6f\xae\xae\x6b\x7a\x47\x56\xac\x28\xf8\xd3\xed\xc5\x87\xf3\xb7\x8b\xab\xbb\x8a\x64\xd2\xdb\x7f\xbd\x9c\x7d\xb8\x38\x5b\xb4\xd4\xe7\xfa\xfc\xec\xea\x97\xf3\xeb\x3d\x8a\x47\xbe\xbd\xad\x5d\xfa\x14\xf0\xb1\x83\xf5\xaf\x66\x6c\x95\x27\x42\xc6\xe9\x0e\xb1\xf7\xf6\x64\x5b\x03\xd3\x86\x7b\x6f\xb2\x15\xaa\x3c\x06\x42\x7f\xbb\x41\x85\x7a\x60\xc1\xc0\xd2\x28\x65\x96\xeb\xfb\x4e\x8e\xc4\x22\x6f\xde\x0a\xf4\x66\x0a\x15\xf9\xce\xe5\xa2\xf5\x55\xc7\x33\x28\xd1\x47\x58\x26\xf2\xbe\xba\x80\x67\x94\x97\x59\x91\x2c\xbb\x93\x22\x06\x32\x0b\x8d\x3f\x7b\x23\xdf\x5f\x3b\x39\xca\x65\xbb\x61\xac\xe4\x06\x1c\x03\x3c\x86\x12\x0e\x95\x75\x73\x6f\x5b\xb0\x66\x56\x2e\xd3\x24\x62\x49\x5c\x8f\xa7\x60\x0a\x1b\x86\x8c\xeb\xb4\xa0\x99\xc8\xc1\x55\x35\x27\x80\x2c\x17\x27\xbc\x2c\x36\x56\x71\xde\x65\x32\x22\x4d\xa7\x88\x72\x81\x77\x01\x42\x43\x90\x16\xf5\xbc\x82\x2f\x41\x65\x28\x83\x3b\x06\xb2\x98\x69\x40\xd1\xde\x71\x47\x80\x6f\x62\xe9\x23\x82\xa4\xf8\x7c\x6f\xd7\x50\x8d\x13\x5d\x17\x73\x86\x1d\x1e\x7f\xb4\xaa\x60\xa6\xdd\xc6\x52\x3b\x55\x2c\x1c\x64\x9b\xbb\xd1\xde\x8c\x7d\x73\x2c\x9c\x28\xd5\x64\x06\x2a\x9d\x7e\x3a\xcb\x05\x6c\x22\x04\x05\xb0\xf1\x0b\x80\xae\x50\xae\x07\xa4\x78\x98\xa3\xda\x52\x6c\x78\xba\x42\x8f\xc3\x0c\x8d\x5f\x57\xcd\x29\x7a\xab\xee\x85\xbc\xc6\x01\xfb\x26\xe6\x50\xe2\xc9\xc7\xe7\xf4\xbb\x88\x90\x0f\x61\x9a\x3a\xda\x59\x65\x73\xdd\xc0\x99\x2a\xf0\x9c\x10\xfc\x8c\x29\x1d\x9e\xb1\xd7\xa6\xc9\xad\x56\xc9\x17\x53\xe0\x5c\x8a\x56\xce\x52\xc0\x0b\x59\x76\x25\x67\x97\x01\x1b\x85\x14\x35\xf7\x42\x82\x9e\x18\xca\x0d\xef\x9d\xb3\xe3\xe2\xe7\xcd\xb1\xe8\x09\xe8\x43\xcc\x2f\xa9\xc8\xac\x85\xb7\x3c\xb6\x9f\x0a\xcc\xb1\x99\xb2\xb7\x44\xbc\x61\xfe\x72\xf6\xfe\xe2\xfc\xf2\x76\x71\x76\x7d\xfe\xf6\xfc\xf2\xf6\x62\xf6\xfe\x66\xe8\xf2\x7b\x8a\xbc\xa8\xda\xea\xab\xa7\x07\x39\x0b\x71\x4a\x2b\xcf\xa7\xe7\xba\x46\xf9\x65\x07\x43\xb2\xbf\xf6\x49\x9c\x2d\xe2\x44\x47\x66\xfb\xdb\x2d\x84\x8c\x81\xec\xf9\xa0\xa9\xda\x5e\x54\xbd\x15\xee\x09\xe6\x9e\xb0\x16\x04\x77\xbb\x07\x3b\xa3\xdd\xef\x80\xba\x83\x30\x64\x2e\xcc\xe2\x8f\xcd\xf9\xc0\xed\x36\xd3\xfd\x0a\x1f\xa6\xb8\xe3\xda\x56\x2d\xa2\xde\x26\xac\x6f\xa2\x75\xc9\x8d\x7d\xb4\x8f\x01\xe4\xb0\xa3\x57\x88\x81\x2f\x64\x9c\x4e\x02\xb5\x54\x96\xe8\xb9\xdc\x72\x19\xf3\x42\xe5\xbb\x8e\x26\x0e\x33\x9e\xe1\xb2\xa9\x9a\xd0\x70\xcb\x96\x42\xc4\x76\x14\xf0\x51\x2e\xeb\x53\x09\x79\xa9\x6f\xaf\xfe\x7c\x7e\x79\xb3\x38\xbf\xfc\x65\xf1\xf1\xfa\xfc\xdd\xc5\x5f\x1d\x12\x32\xe3\xba\x4d\x1d\x31\xcb\x85\xb1\x2e\x96\xe6\xa3\xd5\xbe\xa0\x64\xa1\x2d\x87\x64\xaa\x92\xd5\x5c\x5a\xcb\x92\xfb\xe2\x37\xb9\x2a\xd7\x9b\xf6\x82\xea\xb5\xfc\x38\xbb\xfd\xf9\xa0\x6a\x02\x09\x13\xea\x9a\xe1\x6a\x6b\x22\x42\x93\x15\xd9\x3d\x84\x91\xd6\xaa\x07\x54\x62\xf0\x68\xdb\x2d\x43\x87\x45\x3b\xe8\xf4\xd2\x34\x5a\xbd\xce\x7f\xcb\xe3\x5d\x13\xe8\x36\xb0\x9b\x95\x6d\x04\x10\xca\x28\x8f\xd9\x28\xed\x75\xcb\xdf\x2a\x3b\xd8\x8f\x27\xa9\x58\xaf\x45\x8c\xd3\xab\x5e\x30\xc5\xe0\xc8\x04\x46\x7e\x5f\x6f\xeb\x45\x12\xb0\x3b\x62\x63\x76\x78\xaf\xe1\x06\xfc\xa3\x7b\xa5\xdd\x56\x9c\x59\x91\xec\x48\x49\x5d\x70\xd9\x71\x91\xfc\xd0\x44\x68\x0e\x32\x45\x57\x39\x73\xc9\x4f\x14\x30\xb1\x57\x06\x7e\x1d\x1c\x72\x85\x46\x42\x7d\x92\x22\x1e\x81\x80\x5f\xa0\xea\xdd\x32\x08\x10\x3b\xbd\xb6\x16\xf1\xf9\x83\x1b\xbd\x47\x27\x62\x9e\x82\x50\x2f\x2a\x25\x11\xf8\x1c\xa3\x41\x20\x3f\xd6\x09\x0c\x1e\x35\x20\xb5\x2f\xff\x42\x5d\x8f\xa7\xd6\x6a\xa8\x99\x5b\x6e\x37\x37\x40\xce\x79\xab\x47\xec\xf6\xc7\xb7\x2a\x7e\xb8\x2f\x39\xcb\x55\x5c\x46\x96\xfd\x06\x8a\xf5\x08\x17\x0a\x68\xd9\x0d\x36\x66\x27\x66\x98\xe9\x90\x22\xe2\x13\xc0\xae\xcf\x65\xd7\x75\x92\xb5\x01\x1d\x61\xae\x8f\x76\xd7\x3a\x66\xec\x5b\x7a\xbf\x7b\x09\xda\xce\x1e\x96\x43\xca\xec\xe3\xe0\xec\x75\x00\x84\x68\x5c\x96\x1c\xef\x8a\xab\xdb\x71\x17\xd9\x85\xb3\xaa\xe3\x70\x4c\xc3\x60\x20\xd5\xe4\x10\xdc\x22\x37\x5c\xa3\xe7\x5a\x44\x9b\x6a\xc5\xa1\x35\x55\x82\xb8\x7a\x75\x9d\x27\x78\x5c\x84\x60\xd0\x8d\xd1\x04\xcf\xd4\x09\xc5\x70\x2b\x62\x5f\x4e\xb9\x70\xdc\xc4\x0f\x9d\x23\x77\x78\x41\xbb\x07\x06\x2b\xe5\xa5\x8c\x36\x2c\x4b\x39\xe6\x4d\x6f\xb8\xc6\x29\x6d\x61\x13\x7c\x99\xa4\x49\x01\x84\x34\x78\x9b\x57\xeb\x61\x73\xa2\xe1\xf9\xbd\xe5\x80\xe5\x9e\x7d\xa8\x6f\xd2\x1f\x09\x4f\xf5\x02\xf9\x5f\x13\xa0\xea\x97\x6c\xf0\x46\xef\x5d\xa0\x9f\x96\x04\x4e\xf5\xc3\x61\x2c\x1e\x4c\x4b\xdf\x96\x71\x23\x4b\x25\x7e\xac\xbf\x5e\xe9\xef\x96\x8d\x7a\x3c\x38\x83\xc8\xcd\x47\x98\xf9\x3a\xf5\x79\xeb\xca\x5a\xa5\x8a\x77\xc8\xef\xda\xb2\x91\xc9\xbc\xab\xec\x58\x95\xcb\x2e\xee\x5c\xac\x55\x7f\xe9\x7d\x71\x7f\xbb\x6e\x9f\x2a\x2e\x18\x1a\x40\x5e\x88\x22\x19\x17\xda\x08\x1a\xcd\x0b\x71\x02\xaf\xb7\x17\x4e\xc9\x74\x83\xdb\xdc\x98\x68\x5e\x4f\xc3\x31\xf4\x02\x6c\xae\x39\xbb\xfe\x52\x72\x63\x1a\xae\x56\x37\xc8\x90\x72\xcc\x24\x2b\x92\xe6\x0c\x6b\x5f\x89\xf5\xaf\xde\x56\x2f\x55\xc2\x39\x30\x38\xff\xb4\xad\x35\x37\xe6\xed\xe1\x0b\xb2\xaa\x51\x9f\xe5\x89\x02\xa6\x10\x52\xc6\xef\x21\x19\x6c\xfd\xee\x11\x3d\xf9\xb9\x14\xa5\x30\x73\x7f\x59\xc6\xeb\x66\x6c\x73\x84\x77\xe6\x9b\xb4\x51\x8f\x6c\x5b\x46\x1b\x66\x0b\x67\xb1\x48\xf9\xae\xd2\x34\xf0\x97\x0a\x95\x02\x6d\xef\x81\x1c\xa2\x51\xa9\x0b\xb5\x05\x58\xa9\x2f\x37\x2f\x25\x4c\x78\xc6\x8b\x22\x4f\x96\x65\xd1\x0a\x41\xab\x70\x8a\x1d\x78\xa1\x75\xf3\xf1\xfc\xec\xe2\xdd\x45\xed\x36\x69\x76\xf3\xe7\xf0\xdf\xbf\x5e\x5d\xff\xf9\xdd\xfb\xab\x5f\xc3\xbf\xbd\x9f\xdd\x5d\x9e\xfd\xbc\xf8\xf8\x7e\x76\x59\xb9\x73\x9a\xdd\xce\x6e\xce\x6f\xf7\x5c\x2b\x35\xbf\xda\x3d\x10\x3c\xa0\x3c\xb3\x40\x57\xcb\xfd\x6c\x4f\x97\xf4\xd5\xd7\x6c\x66\x09\xe0\x2a\x14\x85\xf6\x6a\x10\xb0\x04\xa8\x84\x4c\x37\x88\x6f\x79\xc1\x49\x59\x7e\xca\x66\x8c\x60\xc0\x08\xef\xd6\xc6\x59\x20\x76\x2c\x33\x3a\x58\x84\xf1\x18\x22\x7f\x72\xf3\xe2\x76\x6a\x45\xbc\x74\xa9\x08\x69\xd0\x6d\x2e\xd3\x5c\x9e\x3f\x08\x59\x94\xc0\xd1\xcc\xd3\x94\x59\x41\x7b\x7a\x20\xc8\xd3\xb6\xb5\xd4\xc9\x36\x49\x79\xee\x75\xc8\xae\xa8\x2c\x70\xd8\x6d\x5d\x1d\x2d\x4f\x33\x09\xd8\x1e\x1e\xee\x2e\x18\xd4\xfb\xec\xfd\x05\xb8\x40\x51\x61\x45\x36\xec\xc7\xe7\x12\x79\xcf\xe8\x8b\x5b\x0e\x29\x07\x85\xa2\x78\x1a\x7e\x9e\x1e\xee\x9e\x88\xfa\x98\x45\x6c\x23\xcf\xcf\x05\x6b\x72\x95\xb4\xff\x71\x2e\x8b\x7c\x37\xd8\xaf\xb9\x85\x1c\x5b\x0d\xbe\x29\x21\x98\xaa\xda\x64\x18\xee\x60\xb6\xf4\x4b\x70\x76\x2c\xbc\x8e\xa2\xf1\x2e\xe8\x8e\x68\x86\x0e\xff\x3b\x35\x9b\xd0\xf7\xda\x0f\x21\x0d\x0a\xf4\xc2\x52\x95\x32\xd6\x84\xb5\xda\x26\xf2\x74\xcb\xbf\xbc\xb2\x2d\x45\x5a\x01\xa7\x10\x00\x94\x51\x22\x35\x27\x91\x9d\x31\x72\xfd\xdd\x35\x97\x3d\xfd\xb5\xdf\x5b\xb4\x96\x15\x8e\x3d\xfe\x8c\x8a\xa8\xb1\x07\xb1\x6b\x1b\xbf\x86\xca\x0b\x22\xd3\x68\xc1\x43\x21\x59\x2e\xcc\x83\x0e\x92\x96\x22\xd2\xd0\xfd\x1b\xa0\xe7\x15\x25\xba\x76\xdb\x1d\xde\xf2\x1e\xb5\x6c\x5a\xef\x97\x9f\x41\xa6\x87\xbe\x64\xc6\x0c\x6f\x9b\x6d\xa0\x93\xa0\xf6\x74\x8d\x66\x06\xeb\x3f\xd4\x92\xad\x20\xef\x84\x94\xa6\x73\x01\x81\x6d\x18\x0a\xcb\x2b\x0d\xc4\x42\x8d\x2b\x6c\x3b\x05\x52\xa1\x21\xdc\x2b\xcd\x71\x4b\x7c\x2e\xe9\xc6\xee\x87\xdf\x8f\xdb\x67\x8b\x7c\xc7\xac\x86\x41\x98\xf7\x42\x69\x5f\xb4\xe7\x42\xbd\x4a\x99\xb4\xb1\x8d\x5d\x97\xd2\x6c\xc5\x4f\x01\x76\x18\x7e\x9b\x55\xfb\x28\xfd\x73\x6f\x6a\x88\x0d\xc4\xe6\xf8\xfc\xb3\x91\x47\xfe\x52\xe3\x8c\xa4\xcf\x01\x10\x99\x4a\x0f\x37\xb4\x25\x8f\xee\x1f\x79\x1e\x63\xac\x10\xd0\x07\x53\xf6\xb3\x7a\x14\x0f\x22\x9f\xb0\x48\xe4\x05\x27\xc2\x26\x0d\xd7\xaf\xb0\xa0\xa8\x9c\xb9\x04\x5c\x3e\xb2\x5f\x49\x10\xe9\x2e\x92\xf5\xc6\x9c\x27\x83\xcb\x73\x95\x1b\x73\x54\x20\x57\x5f\x26\x22\xa2\xc8\xe9\xe8\x80\x55\xca\x1f\x9a\x0c\x54\x87\xe4\xf6\xb3\x0b\x97\x5c\x68\x6f\xa7\x2c\x57\x7f\x1f\xdc\x81\x3a\x8c\x8c\x26\x92\x9a\x4c\xd8\x5a\xa5\x5c\xae\xa7\xd3\x29\x13\x45\x34\x7d\x35\x6a\xa2\x53\x81\xe1\x7d\x97\x03\xd5\xa6\x4a\x69\x91\xee\x1c\xad\x8b\x4b\x7b\x00\x9c\xdd\x97\x42\x48\x9d\x60\xc8\xa3\x65\xfa\xdf\xd4\x39\x02\xbe\x6e\xe8\xbc\xfd\xa4\x3a\x3a\xa9\xae\xa3\x1c\x90\xfe\x19\x51\x12\x3e\xdf\x7e\xf2\x3a\x28\x49\xb4\x83\x57\x56\xc9\xb1\x99\x8f\xbf\xa8\x2e\x21\xeb\x83\xd8\xd6\x5a\x4b\x22\x6a\x8a\x83\xb2\xc5\xba\x22\x16\xb5\x04\xbe\x23\x72\xf7\x7a\xd2\xf0\x46\x66\xe0\xb5\xac\xbb\x96\x65\x51\x1b\xee\xd1\xcb\x62\xbf\x1a\x41\x6b\x83\x46\x66\x38\xfa\x54\xe4\x31\xae\x13\x26\x49\xa5\x3b\x38\x71\xb9\x7c\x47\x88\x2c\xc7\x41\x64\xbc\x12\xf8\x87\xcc\x1b\x7f\x73\xe0\x28\x83\x82\x8b\x02\x5d\xa8\x9c\xaf\x05\xdb\x8a\x38\x29\xb7\xad\xc6\xc6\x55\xf7\x18\xb4\x97\x4a\xcb\x6d\x37\x79\xdb\xb1\x0e\xb4\xaf\x24\xfe\xd7\x19\x7c\x6e\xb0\x03\xed\x25\xdb\xad\x28\x0c\xd5\x17\xc3\xe0\xd4\xd7\x66\xa7\xcc\x13\x0d\x34\x83\x87\x24\xba\xb9\x62\xb0\x68\xb8\xad\xdb\x65\x18\x7e\xad\x8c\xee\x89\xbd\xdd\xa1\x57\x34\x8e\x2a\x5c\xf1\x75\x6f\x0a\x75\x0c\xd9\xe8\x31\x02\xc9\x91\x83\xee\x35\xc1\x6d\x0c\xc8\xbf\x09\xe4\x02\x05\xd2\x4d\x7c\xa1\xd8\xca\xa6\x4e\xdd\x8b\x80\x8c\x2a\x06\x5a\xf0\x47\x64\x36\xf9\xf3\x4f\xda\xde\xd9\x13\xac\xc2\x7b\x2c\x85\xff\x08\xde\x0d\x3c\xfc\x60\xd1\x34\xd8\x42\x2c\x02\x28\xa3\x62\x2e\x8b\xd6\x02\x3c\xd8\x0c\xca\xc2\x57\x7e\xe1\x65\xda\xfe\x38\x95\x0f\x8f\xa2\xc4\xd0\xec\xd7\x1b\x86\x5d\x4d\x04\xd2\x79\x5f\x45\x83\x42\xf6\xe3\x79\xa0\xbb\x16\x07\x78\x82\x95\x71\xc0\x4e\xb7\x0c\xe2\xa6\xdb\x45\x11\x6d\xbc\xe7\x51\xd5\x0a\x26\xfd\x38\x6a\xe7\xd6\x53\x62\x23\x54\x32\xc4\x9c\x25\x6b\xa9\x42\x35\x07\x25\x05\x5c\xd2\x18\x03\xa4\xc2\x62\x59\x52\xec\x07\xf6\x8c\xe4\x89\xda\x37\xd5\x0a\x85\x80\x0d\x6a\x67\xe5\xae\x0d\x8e\x14\x09\xb2\xcb\x58\x54\x24\x9e\x89\x48\x8e\xac\x4e\x95\x5c\xcd\xd7\x9f\xcb\xea\xa7\x1a\x9d\x64\x91\x37\x49\x2e\x90\xe1\x54\x1b\xef\xad\x48\x1e\xcc\x42\x6d\x4e\x6b\x37\x41\xc1\x02\x34\xe7\xde\x5c\x62\xb5\x03\x9a\xd4\x7b\xb1\xd3\xa1\xf6\x19\xcd\x28\xd6\x35\x21\x13\xd3\x1e\x1a\xaf\xfd\x43\x01\x1d\xb7\x08\xb4\xdc\x87\xed\x65\xf8\xd1\x0f\xe6\xe5\x1e\x48\x5f\xa3\x70\x33\x07\x7d\x6e\x9a\x8f\x29\x92\x99\xf0\xfd\x4c\x63\xe8\x51\x3b\x2d\x3a\xff\x3e\x3c\x0b\x07\x5f\x73\xbe\x9d\x4b\x62\x52\x0e\x36\x39\x63\x70\x9a\xc3\x46\x09\xb3\xc8\xdf\xba\xab\x90\x7d\x00\xd9\x9d\x25\xfe\xab\x7e\xd2\xde\x3b\x5a\xe9\xcc\xb9\x84\x4f\x63\x4a\xa1\x8d\xe1\xb5\x7e\x70\xff\x48\x08\xf9\xb0\x18\x7c\x99\x1e\xf4\xff\xb9\x7c\xf8\x85\x77\x78\x88\x20\xec\x38\xb6\xc0\x77\x55\x35\xc8\x7d\x3b\x1c\xcd\xbf\x4e\x84\x5a\x90\x5a\x84\x4f\x12\x25\x1d\xea\xfc\xe1\x01\x2d\x12\x66\x84\x67\xb2\x15\x1c\x66\xa1\x61\x37\xe7\x67\xd7\xe7\xb7\x5f\x0d\xc1\x66\xe1\x63\xa3\x21\x6c\xb6\x9e\x6f\xcf\xdf\xcd\xee\xde\xdf\x2e\xde\x5e\x5c\x3f\x07\x86\x8d\x7e\x3a\x00\xc4\x76\x43\x1c\xf2\x67\x4a\x16\xe2\xcb\x51\x6e\x43\x5e\xca\x05\x1f\x91\x4c\xe1\x54\x24\xfa\x3c\x32\x2c\xb4\xc9\x81\xef\x08\xea\x89\x10\x11\x37\x5d\x47\x79\xbf\xf2\x71\xcd\x55\x92\xa6\x90\x5b\xea\x6e\x00\x28\x6f\xc9\x74\x2a\x98\x48\xcb\x01\x49\x66\x7f\x2e\x97\x15\x89\x02\x88\x4a\x6e\xcc\x39\x1d\xb3\x4a\x33\xd3\x01\x79\x02\x39\x7b\x7d\x34\xf9\xeb\x44\x0a\x5f\x0d\xd4\xe4\x2d\x25\xeb\xe4\x36\xa6\x41\x7c\xce\xd4\x61\xf2\x0d\x87\xba\xc3\x76\xc6\x55\xe6\xa7\xf5\x90\xed\x8f\xae\x85\xb8\x88\x13\x89\xbe\x73\x65\x35\xdf\xb4\x4f\xdd\x53\xbf\x04\xa0\xdf\xcd\x48\x72\xb8\x26\x01\xd9\x5b\x3f\x90\x34\x10\x28\x9f\xe3\xef\x4f\xee\x13\x04\xfa\xa8\x55\xad\x9f\x8d\xb5\x36\x7d\x9d\xc0\x65\x0a\x27\xba\x8c\x28\x2d\x75\x21\x72\x8a\xec\xcc\x7e\xbd\x99\xcb\x37\x66\x87\x7d\x45\x1b\x25\x49\xac\xe0\x27\x10\x66\xa2\x2a\xdf\xb7\x4e\x54\x68\xc1\x5e\x62\x18\x7d\x2b\xb8\xd4\x28\x49\x9e\xa6\x22\xf7\x33\x03\xeb\x23\x44\x4c\xb2\x74\xc0\x0f\xea\xdf\x27\x55\x6a\x05\xab\xd6\xd4\x97\x7e\x25\x5d\xe6\xfa\x7c\xea\x4a\x5d\x06\x0c\xeb\x73\xce\x9c\x96\x54\x8a\xa1\xb3\x88\xe0\xbf\xad\x93\xa8\x9a\xd8\x30\x68\x2e\xdd\x62\x71\xbf\x4d\xa5\x27\x9c\x4a\x03\xf6\xf5\x70\x97\x60\x1b\x65\x0c\xa8\xd3\x1f\xf1\x37\xe1\x8e\x3a\x21\x05\x88\x96\xe9\xc6\xd6\x5d\xa7\xa6\xc1\x77\xc4\xae\x83\xa2\x7b\xc7\x21\x4e\x67\x2d\x1c\x2d\x5e\xec\xc9\x5e\x3f\xf5\xca\xfb\x3d\x0f\x17\xda\xcc\x42\x02\xa5\x2a\x2c\xab\x81\x43\xe1\x11\xa4\xd0\x3c\xe0\xe8\x34\x7a\xeb\x48\x14\x15\xd6\x4b\x59\x1c\x29\x91\x75\x1b\x42\x17\x2b\x79\x9e\x58\x8b\x30\x43\xdc\x66\x85\x3b\x56\x89\x31\x93\xef\x70\x11\xc6\xea\x9c\x73\x0c\x85\x07\xe1\x31\x2e\xaf\x2e\xcf\x43\x34\xc5\xc5\xe5\xed\xf9\x1f\xcf\xaf\x2b\x19\xc2\xef\xaf\x66\x95\x2c\xdf\x9b\xdb\xeb\x5a\x72\xef\x9b\xab\xab\xf7\xe7\x0d\x58\xc6\xf9\xed\xc5\x87\x4a\xe1\x6f\xef\xae\x67\xb7\x17\x57\x95\xe7\xde\x5c\x5c\xce\xae\xff\x35\xfc\xcb\xf9\xf5\xf5\xd5\x75\xed\x7b\x77\x67\xfd\x00\x8f\x4a\x33\xda\x23\x54\xfe\xfe\x38\x20\x6b\x6c\x5d\xc6\x55\x91\xca\x23\x56\xf1\x40\x9c\xd8\xbe\xe9\x68\x13\x80\xe3\x90\xc3\x1d\x17\x86\xa9\xea\xa8\x59\xf7\xf4\xaa\x9a\x95\xae\xcb\xf8\x71\x66\xcf\xec\x6a\x8b\xa7\xc0\xed\xf5\x3a\x80\xee\x2b\xb5\xd8\xb2\x2e\x20\x4b\x0a\xbb\x36\x83\x4b\xb6\x35\xef\xd4\x94\x91\xf1\xb3\xd7\xd4\x7e\x63\x5f\x3d\x3d\x39\xd0\x1e\x8e\x95\xa7\xe2\x57\xe8\xab\x74\xf0\x31\x9b\xbe\x9c\xc4\xd6\x51\xb0\x3f\x06\x1b\x37\x34\xc3\xcc\x9c\x60\x3a\x76\xc9\x1f\xb6\xa7\x61\xf4\xf3\x79\x8d\xad\x3f\x7d\xa4\x59\xf7\x1a\xf9\xc3\x88\x7a\x03\x09\xcf\x98\x7a\xdf\x72\x7d\x3f\xb6\xde\xf4\x91\x66\xbd\xc1\xed\x3b\xa8\xde\x10\x93\x2f\xda\x89\x39\x46\x18\xb1\xb0\x98\x6a\xf5\x5c\xd6\xb0\x7b\x24\x50\x19\x1d\x56\x47\xb3\x00\x9e\xf7\x78\x99\xf1\xe1\x77\x2d\x50\x1b\xb7\x5c\x79\x8d\xa7\xfa\x06\x7e\x85\x16\x2e\x73\xc1\xef\x63\xf5\x48\xe3\x51\x07\xaf\xb2\x41\xd6\xbc\xda\x41\xc6\x86\xdb\x2d\x02\xb4\xc9\xcd\x27\x11\x48\xe7\x8b\x07\x24\x5f\x42\x4c\xcb\xe8\x83\x05\xf2\x98\x75\x6a\x13\x20\x93\x91\x7e\x74\xe6\x12\xbd\xf9\x36\x89\x4d\x33\xaa\xa6\x46\x44\x46\x00\x4d\x75\x3e\x34\xde\xff\xeb\x60\x60\x29\xdd\xa2\xcc\x01\xef\xb7\xcc\xe1\xcc\x04\x1d\x92\x48\x88\x77\xe7\xe6\xc0\x93\x8b\x28\xd1\x22\x90\x19\x6a\xdd\xb1\x3f\x1f\x27\x4a\x50\xf0\xa2\x35\x32\x3c\x38\x64\xcf\xa3\xa2\xe4\x29\xfb\x5c\x8a\x7c\x47\x9c\x6e\x18\x4e\xc5\xbf\x44\x5c\x62\x5e\x47\x21\xb6\x19\xe4\x09\x87\x09\x09\x73\xf9\x2b\x60\x39\x70\x08\x5e\x68\xf6\x47\x40\x65\xd8\x87\x69\x13\xde\xf2\x02\xf6\xe2\xbf\xe0\x37\xdc\x6f\xd3\xb9\xac\xc8\x76\x04\x6f\x55\x14\x3c\xa6\x73\x69\x79\xf3\x63\x15\xe9\x29\x9c\xf8\xa6\x2a\x5f\x9f\x92\xe2\xac\x99\xec\xea\x7e\xa9\xd4\xfd\xa9\x90\xa7\x10\x93\x2a\x4e\x79\x59\xa8\x53\x40\x74\xe1\xf8\xeb\x53\x2b\x4c\x69\x95\x3d\xf5\xe9\x26\x79\x10\xf0\xff\xa6\x9b\x62\x9b\xfe\x83\xce\x36\x5f\x4e\xd6\x69\x7e\x62\xde\x3d\x09\xdf\x3d\xb1\xef\x9e\xd8\x77\x4f\xcc\x6b\xf8\xff\xb2\x1d\xde\x40\x89\x2f\xdc\xec\x65\x93\xb9\x4c\xa4\x16\x79\x01\xde\xcf\x63\x9e\x14\x5e\x1f\x65\xc7\x5e\xfc\xd7\x7f\xb1\x69\xce\x1f\x31\xc3\xef\x2d\x2f\xf8\x47\x8c\x2f\xfe\xf7\x7f\xbf\x80\x3b\x5f\x4c\xc1\xc9\x78\xfe\xb9\x14\xc5\x5c\x6a\x61\x16\x21\xfb\x3f\x73\x09\x97\xc4\xdb\xdd\xa2\xc0\xb8\x2b\xc6\x20\x63\xcd\xfe\x05\xcb\xbc\x40\x7e\xc3\x58\x9b\x92\x3a\xc0\xff\x09\x4f\x5b\xb4\x8c\x3b\x82\xce\x9f\xd3\xb7\xf4\xfc\x88\x65\xfd\x39\xad\xae\x6a\xab\xd0\xa1\x3f\xa7\xb0\x81\xa6\x8a\x5b\x3c\x19\x73\x93\x17\xce\xc9\x54\xb9\xb6\x35\xd2\x40\x2f\x3c\x2b\x92\xa0\x7d\xad\xdc\x20\xc7\xb2\xbd\x5c\x68\x98\x11\xb8\xce\xf0\x57\x25\x70\xc1\x9f\x98\x15\x72\x83\x91\x50\xf0\xdc\xb0\xe5\xe0\x93\xd2\xed\xbe\x2b\x0f\x03\x17\xfa\x0f\xaf\x4f\x4f\x27\x6c\xad\xe1\x7f\x96\x9f\xe1\x7f\x00\xe0\xf4\x54\x34\xa1\x8d\xce\x74\x58\xbd\xe6\x28\xef\x1f\x89\xa7\x00\xfa\x7d\x0d\x66\xea\xda\x34\x7d\x53\xca\x38\x15\x3e\x61\xb1\x72\x25\x92\x2a\xab\xa5\x8e\x81\xb1\xba\x06\x08\x8c\xf1\x52\x44\xdc\x18\xbe\xc6\xb7\x11\xff\xaa\x56\x85\x90\x18\x0d\xcb\xbd\x44\x18\xc7\xc8\x15\xb8\xc5\x80\xd6\xe4\x05\xa1\xe2\x05\xfc\x11\x3e\x02\x54\xcf\x93\xfa\x4f\x6c\xa7\x4a\x62\x2d\x06\x2e\xce\x58\x44\x29\x50\xc3\x5b\x3e\x12\x96\x8b\xa2\xcc\x25\xe3\x2c\xe3\x32\xe6\x1a\x66\xe0\x2a\x87\x0b\xd9\x9c\xf1\x66\x45\x27\x88\x18\x56\x65\x01\x2c\x3b\x08\x7e\x08\x7b\x02\x69\xa5\x83\x3a\x4f\x82\x4a\xe0\x9e\x00\xec\xb6\x8d\x17\xa7\x73\x69\x45\xac\x08\xae\x87\x91\xb2\x48\x65\x3b\xe2\x50\xa9\x77\x7a\x62\x23\x67\xd4\xdd\x13\x0f\x89\xa9\x3f\x3b\x61\x49\xf5\xf6\x0f\x18\xac\x8b\x40\x86\xd7\x0a\x19\xbf\x14\x32\x52\xb1\xc8\xf5\x2b\xb3\x0c\x13\x77\xee\x40\xff\x21\xd1\x7e\x30\xc0\x4a\x99\xcd\x8d\xa2\x85\xa6\x78\x27\xf5\x62\x7a\xa7\xc2\x79\xdc\xe6\xe7\xec\x5f\x2a\xdf\x3b\x50\xa7\xad\xbe\xf4\x9f\x5f\x15\xb4\x13\xde\x90\xda\x33\xe7\xe1\x21\x08\x5c\xb2\xa1\xc5\xc5\x42\xd1\xc7\x21\xe7\xc4\x6a\x9e\x26\x05\xc8\xaa\xe5\x42\x17\x73\x49\x3b\xf0\x84\xad\x04\x37\x7e\xde\x84\x45\xfa\x01\x8d\x31\x6e\xf7\xc5\xa3\xf2\x30\x21\x2b\x98\x01\x78\xdd\x4a\xe1\x3e\x48\x8c\x8f\x01\xe8\x81\x47\x05\x62\x20\x3a\xe5\xb1\xad\xab\x02\x9d\xd5\x6a\x10\x0f\xe8\x07\xab\xbf\x50\xd7\x3a\x0a\xe5\x3f\xa0\x27\x76\x78\x51\xcc\xea\xf5\xc0\x1f\x8c\xe1\xc1\xd6\x21\x52\x25\x30\x8e\xe0\x71\x13\xdc\x17\xd7\x99\xbf\xc3\x0d\x49\xb0\x21\x36\xd3\xb5\xa8\x7a\x3a\x02\x2a\x70\x58\xdc\xc2\xbc\xba\x37\x60\xa5\x45\x6e\xc5\x21\xb0\xad\x48\x59\xb7\x49\xf2\xf8\x24\xe3\x79\xb1\xb3\xd3\x37\x4d\x96\xc0\x29\x9f\x26\xf7\x82\xcd\xf2\x5c\x3d\x3e\x75\x2f\x74\x9a\x96\xae\x13\xf6\x31\x60\xfb\xb1\xa7\xfc\x56\xc2\xca\x7a\xb8\xe3\x30\x72\xcc\xae\xc0\x47\xeb\x77\x72\x51\xe4\xbb\x85\x99\x88\xdb\xac\xd3\x52\x0c\xca\xeb\x18\xee\xe4\x8e\xe3\xdd\xac\x85\x30\x3a\x79\x37\x2b\xa3\xfa\xfd\xf0\x6e\xb6\x50\x6a\x36\x79\x37\x2f\x2e\x2f\x6e\x2f\x66\xef\x2f\xfe\x5f\xad\xc4\x5f\x67\x17\xb7\x17\x97\x7f\x5c\xbc\xbb\xba\x5e\x5c\x9f\xdf\x5c\xdd\x5d\x9f\x9d\xf7\x13\xe9\x34\x6b\xef\x5d\xf0\x13\x16\x7e\xe7\x35\xbb\x0d\x80\x1a\x98\x0f\x41\xfe\x37\x89\x2a\xc2\xac\x32\x8b\x39\x91\xeb\x09\x2c\xd4\xd7\xec\x3c\xcf\x2f\xb6\x7c\x2d\x3e\x96\x69\x0a\x88\x2f\x4c\x3e\x3a\xcb\x05\x1c\x3c\x27\xec\xa3\x8a\x2f\x82\xf7\x20\x63\xb2\xb5\x19\xf0\x7d\x1e\xc7\xb9\xd0\x1a\x3f\x3f\xa1\xef\x07\xf8\x26\x97\x8d\x49\xf8\x3e\xfe\xc0\x93\xd4\x9c\xdf\x5e\xb3\x37\x3c\xba\x57\xab\x15\x66\xf8\x4c\x5c\x6e\x17\xfb\x5c\xaa\x82\x33\xf1\x25\x02\xf2\xa8\xf6\x79\xf2\x5e\xad\xbf\x01\x9a\x7a\xc0\xf5\x54\xc7\x21\x05\xc4\xb3\x16\xed\xdb\x79\xbb\x21\xa0\x56\x7e\xc0\x57\xdf\xe1\x9b\xed\x01\xca\x22\x7d\x82\x64\xf6\xf7\x6a\xdd\x2e\x65\x02\xde\x35\xe9\xaf\xd0\x45\x42\x44\xd4\x18\x6a\xcd\x74\x22\xef\xe7\xf2\xd7\x8d\x90\x4c\x95\x39\xfe\x09\x8e\xf9\xc6\xcd\x4c\x4b\xbd\x11\xa0\x6d\x3a\x61\x8f\x82\x6d\xf9\x0e\xdd\x66\x38\x13\x38\xfd\x05\x98\x32\xb0\x8b\x98\xb7\xd3\x44\x1a\x6b\x91\x25\x36\x75\xa2\x3e\xf4\x4f\x71\xe2\xb2\xd4\x69\xfc\x78\x66\xd3\xbe\xfd\xb4\x02\x21\x84\x50\x99\x87\x76\x5a\x80\x10\x59\x6e\x90\x77\x54\xea\xbe\xcc\x3c\xc9\xe2\x0b\x7b\x39\x09\xdd\xfd\xa0\x92\x98\xc5\x65\x96\x26\x91\xb3\xbb\x8f\x2a\xef\x64\x92\xc5\x1c\x9f\xe1\xbb\x4e\x3d\x73\xad\xaf\x61\x2d\x09\x44\x01\x92\xae\x87\x53\xf6\x99\x59\x75\x59\x22\xa3\xb4\x04\xe1\xaa\x52\x8b\xfc\xa4\xc8\x93\xf5\x1a\x1c\x70\x9b\x8e\xf8\xfd\xd3\xee\x7a\x5a\xbf\xe3\x33\xef\xc2\xbc\xf8\x54\xad\x93\x88\xa7\x21\xfe\xda\xa3\x22\x1c\xaf\xa7\x5d\xf6\x24\xeb\x09\xa9\x1a\xb6\x42\x9d\x7c\x45\x59\x2e\x80\x5a\x76\x01\xa6\x7c\x41\xe6\xee\x98\x7a\xaf\x98\x39\xa0\x63\xbd\x42\xd6\x4d\x7b\xbd\x60\x77\x38\xff\x6d\xab\xed\x04\x2e\x26\xea\x3e\x33\xf5\x28\x45\x0e\x1e\x2c\xc0\x3e\x4c\x4b\xa5\x02\xdf\xc4\xe9\x3d\x39\x08\xb5\xd5\x3b\x5b\x39\xac\x38\x26\xf7\xae\x93\x07\x21\xbf\x3e\x4d\x72\xf0\x81\x88\x47\x1b\xb1\xb0\x7e\xf9\x53\x9b\x2c\xb7\x01\x8c\x34\x56\x56\x78\x21\x34\xa5\xee\x7a\x13\x8e\x4e\x58\xe3\xa6\xed\xc2\x8b\xc4\x9e\xa4\x31\x53\x89\x45\x2c\xa2\xfb\xaf\x6e\x9a\x3d\xc8\xca\x56\x84\x71\xf6\x56\x44\xf7\xec\xee\xfa\x02\x13\x96\x93\x82\x19\x53\xa0\x37\x5e\x48\xa6\xf3\xec\x56\xf0\xf5\x33\xf0\x2f\x0d\x55\xc2\xf1\xe4\xe7\x4e\xff\xcb\x54\x88\x00\x51\x90\xd2\x69\x8c\x24\xa5\xfb\x00\x10\x8c\x17\x56\x1f\x05\x02\xf1\x4c\x6f\x41\x0e\xa5\x2c\x02\x0d\xb1\x94\x2f\x45\xaa\xdb\x1b\x9c\xa9\x78\x61\xef\x49\x8e\x05\xf3\x34\xca\xb2\x71\x0c\xba\x75\xb4\xa9\x16\xdc\x78\xac\xb7\xf4\x20\xbb\xff\x49\x07\x0c\x20\x2a\x64\x24\x86\x73\x3d\xd7\xa2\x26\xaa\x9f\xac\x48\xb4\x05\x39\x07\x40\x9e\xdc\xd8\x4b\x53\xd2\x47\x15\x13\x4c\xcf\x51\x8e\x19\x2f\x48\x50\xf4\xc4\xe3\x2a\xc2\x2a\x38\x09\x77\x0d\xb1\x01\x5d\x08\x1e\x33\xb5\xa2\x68\x62\x96\xa5\x09\x70\xcd\xc6\x48\x6b\x0d\x04\x1f\xba\x0a\xe0\x0f\x4b\xb3\x95\x0d\x78\x48\x3e\x5a\x20\x5e\xef\x7d\xa3\xbf\xe4\x32\xed\xaa\x06\xb9\xeb\x3e\xd5\xb1\xf2\x64\x2e\x65\xea\xd0\x23\x74\x7f\x34\x6d\x9d\xaa\x25\x74\x54\x37\x28\xae\xc7\x40\x1b\xeb\x94\x27\xf1\x98\xed\xdd\xf6\xc9\x95\x7b\xb5\xaf\x82\x57\x36\xd2\xe1\xbe\x64\x87\x99\x11\x13\x78\x78\x83\x5f\xcb\xb4\xdf\x77\xd6\x86\x0b\x42\xed\x6e\x08\x9d\x37\x6e\x79\xf0\x61\x55\x38\x73\xdc\x71\xac\xae\xb6\xe5\xa8\x81\x6e\x72\xb7\xec\xe9\x4b\x4f\xf7\xd2\x3f\xc8\x47\x10\x70\xe0\xca\x75\x2c\x1c\x63\xc8\x8c\xed\xd0\x21\xc6\xd7\xf4\xa7\x1f\xc4\x4a\xf2\xc5\xa0\x11\xad\xf7\xbb\x5d\xc5\xc7\x74\xf9\x73\xac\xa8\xb2\x50\x3e\xe4\x0f\xed\xb9\x00\x8a\xcf\x30\xf3\x0c\xcc\xc6\x45\xdc\x01\x17\xb0\x3e\x98\x5d\x9a\x23\x40\xa8\xa3\x60\xb0\x59\x2e\xec\xe5\xd1\x4e\x14\x8e\x7f\x20\xb5\x72\x55\x70\x37\xe2\x5a\x5d\x25\x60\xb1\x1c\x0b\x8e\x34\x0b\x6e\x32\xc8\xdf\x8b\xd4\x36\x53\x12\xb0\x29\x98\x4d\x35\x97\x54\xb8\x15\x1d\x76\xd7\x2b\x95\x94\xbc\x09\x45\xb5\x30\x7b\x42\x68\x95\x3e\xd0\x3d\x5a\xc0\x8d\x0f\x72\x65\xa6\x82\x67\xe6\x80\x60\x8e\xc3\x70\xc1\x4b\xe6\x1d\xe0\xe0\x35\xe5\xdd\x5c\xac\x13\x5d\x88\x30\x8b\x31\x7c\xff\xc9\x44\x12\x2b\x27\xe8\xbe\xae\xef\x14\x49\xdc\xe7\x0a\x9b\x55\x3b\xa2\x3e\xbb\x4c\xc4\x17\xee\xbd\xfe\xc9\x50\x4b\x34\xf7\x46\xa2\xb2\x0b\xe0\x1c\xc0\x23\x80\x46\x4a\x2a\xed\x58\xed\xdd\x20\x11\x59\x10\xf7\xa8\x36\x33\x44\xeb\x92\xe7\x5c\x16\x42\xe8\xb9\xa4\xdb\x47\xa4\x56\x0b\xd9\x43\x6a\x68\x38\xe7\xe0\x46\x4a\x17\xc8\x54\x04\xaf\xac\x78\x92\x96\x79\xe7\x99\x13\x67\xe5\x41\xf4\x08\x7d\xbd\x74\x06\xc5\xb2\xb6\x41\x73\x89\xb6\xc1\x2a\x72\xec\x1e\xf5\xbb\xc3\x6a\x1e\x6a\x47\x13\xac\xc9\x1d\x3e\xde\x2e\xe0\xd8\x91\x7b\xfb\x93\x5e\x64\x6a\x84\xc5\xfb\xf3\x4f\xfa\xa3\xea\xc8\x5a\xd6\x9f\x1b\x81\xb1\x9e\x3b\xf4\xcf\x5d\x3c\xff\x5c\xdf\xc3\xf5\xd3\xbe\xf3\xf8\xfe\x20\xfb\x1f\x7e\xdc\x7f\x49\xd5\x69\xbb\x60\xd6\x6e\xb8\x8c\x53\x73\x4e\xe5\x45\x6d\x07\xf2\x60\x5f\xe3\x17\x17\xd6\x38\x76\x67\x76\x41\xa2\xc4\x22\x6a\x64\xd9\xed\xeb\xa7\x5a\x7a\x5e\x2f\xa0\xae\xf6\x95\x6a\xd2\x5c\x5b\xb2\x86\xdf\xd9\x49\x5d\xd3\x2d\xd8\xee\x29\xb8\x4a\xd6\xdf\xc1\x21\xeb\x43\xd3\x52\x46\xb4\x14\x69\xff\x72\xc8\xef\x23\x17\x23\x24\xd9\x18\x63\x16\x52\x09\xcf\x25\x89\xef\xe2\xcd\x2b\x5c\xb9\x21\x5d\x96\x66\x3f\xb8\xcc\xcb\x1f\xfe\xd1\x92\x25\xed\xd8\x0a\xfa\x1a\x18\xc9\x54\x14\x95\x39\x5c\x8b\x52\xe8\x86\x09\xdc\x9b\xc6\x30\xbe\xcf\x70\x47\x76\x60\x16\x74\x9f\xda\xbc\x07\x17\xab\xab\x34\xea\x16\x42\x34\x28\x23\xec\xf6\x42\x52\x87\xc9\x75\xc1\x74\x21\xb2\x56\xab\x54\x71\xba\xaa\x4a\xd9\x47\xb8\x5d\x5e\xa7\x7b\xa0\xaf\x3b\xc2\x46\xcf\x82\xe3\xf4\x9f\x6e\xae\x2e\x59\xc6\x77\x80\x0b\x2b\x14\x49\x9c\x03\x5f\x64\x7d\xfd\xee\x1b\x81\x6a\xe3\xab\x8b\x0d\xfb\xd4\x02\x4c\xdb\x63\xb7\xf4\xc5\xa6\x0f\x05\x73\x86\xa6\xa4\x59\xca\xb9\x4a\x4f\xb2\x94\xcb\x00\xfa\xab\xa7\xac\xf6\xf9\xf0\xae\xd7\xdd\xfa\x10\x9a\x06\x2a\x00\xe1\x14\x9a\x0b\x79\xd9\x0a\x0e\xad\x8a\x7f\x1f\x75\xbd\xdb\x69\x23\x7a\x41\x6f\x1f\x90\xf1\x9f\x47\x66\x99\x20\xf9\x81\xbd\xb2\x76\xa8\x07\xae\x01\x90\x38\x62\xa0\xfa\x95\xca\xe7\xd2\x0a\xd1\xaa\x47\xcd\x62\xa4\x87\x28\x13\xbd\x81\xf8\x24\x5e\x08\x00\x38\x88\xec\x0b\x22\x17\x72\x2e\xb5\x19\x50\x88\x69\x8a\x07\x41\x81\x8d\xca\x65\xdc\xc5\xdb\xf7\xee\x7e\x1f\x07\x89\xb4\xc2\x3a\xba\x3e\x70\xcc\x8e\x39\xc0\xb4\x4a\x67\xef\xa7\xe1\xff\xc0\xb3\xbe\xac\xb1\xa3\x4b\xdc\x37\x4a\x8e\x1c\xa7\xee\x75\x82\x88\x28\xc8\x07\x55\x52\xc7\xc2\xde\xbb\x93\x47\x9a\x9f\x56\x5e\xee\xfd\x12\x00\x83\x0f\x61\xc3\x32\x01\x47\xd8\x9e\x80\xa7\xce\x61\x6b\x9c\xbf\x6c\x56\x39\x88\xb3\x00\xc1\x16\x46\xd2\xa6\xec\x46\x08\xf6\x09\x7a\xca\x7c\xec\x13\x89\x7f\x01\x5c\xb0\xe0\x49\xab\x36\x0b\x3c\x7d\x21\x57\xea\x38\x63\x90\xaf\x1b\x70\xb4\xa3\x7a\xa5\xbd\x9e\xc7\x02\xde\x20\x95\x51\x3e\x6f\xfe\x7d\x6b\xbb\xf6\xc0\xdb\x3e\xfa\x33\x39\x65\xe5\xd9\x9a\x9a\xfd\x19\x86\xf8\x10\x12\xaa\xda\x24\x31\xad\x9c\x20\xb1\xf2\xbd\x54\x8f\x12\x7d\x01\xfa\x12\x7b\x69\xd6\x1f\x6c\x60\x18\x40\x45\xb7\xa0\x44\x6b\xf8\x0a\x98\x9e\x67\xee\xdf\xec\x06\xef\x8a\xb0\xce\x20\x65\xa2\xc1\xf9\x21\x11\x12\xb0\xe6\x2f\x67\x13\xf6\x66\xc2\xce\x26\x6c\x3a\x9d\xbe\x9a\xa0\xa4\x30\xd5\x08\x5f\x41\xe4\x58\xc1\xd7\xa6\x6c\x12\x77\x58\x05\x1f\x00\x65\x1e\xb3\x59\x59\x42\x33\xee\x9f\x0a\x22\x0f\xb6\x09\x98\xc3\x48\x09\x17\x74\xaf\x1e\x6d\x54\xe2\x2b\x05\x10\x4d\x11\xa9\xdc\x82\x3c\x75\xa1\x72\x0b\x58\x7b\xe0\x39\x4f\x24\xa4\x76\xf3\x26\x5c\x97\xbe\x1c\xf0\x4f\x8b\x2f\x7c\x0b\xed\x4f\xa4\xa3\xe0\x34\xdd\x74\xeb\xea\x5f\xec\x32\x0a\x48\x3f\xe6\x49\x51\x98\xdd\x59\xcf\xe5\x0d\x7b\xfd\x2f\x6c\x96\x65\xa9\x60\x33\xf6\x37\xf6\x86\x4b\x2e\x39\x7b\xc3\xfe\xc6\xce\xb8\x2c\x78\xaa\xca\x4c\xb0\x33\xf6\x37\xd3\x6d\xa6\xbc\x4b\x65\xb6\xc3\xdd\x84\x71\x26\xcb\x14\x77\xfd\x97\x16\x0c\xf6\xca\xb5\x8b\xfb\xd1\x59\x8a\xe2\x51\x08\xc9\xb4\xda\xd2\x56\xf8\x57\x77\x27\xa1\x13\xb9\x4e\x45\x41\xf3\xa1\x0a\xdb\xc3\x0f\x9c\x40\x4b\x5f\xcf\xa5\x8b\xe5\xfd\xd5\xd4\xf8\xaf\xec\x6f\xec\xb2\x4c\x53\x53\x25\x63\x68\xcc\x44\x7a\xcd\x6c\x1a\x85\x90\xd3\xc7\xe4\x3e\xc9\x44\x9c\x70\x48\xa4\x30\xff\x3a\xbd\x85\xd1\x5e\x94\x9e\xd6\x2f\x5c\xd3\x4e\x1e\xe6\x18\xd3\xf3\x2c\x49\xd9\x4e\x25\xc8\x0e\x7e\xcf\xc9\xaf\xfa\xea\x78\x8f\xc8\x93\x99\xd2\x7a\x20\x87\x15\xa5\x7d\x42\x35\xa2\x83\x4c\x40\x6d\xb3\xb5\x65\xb5\x6c\x05\xe1\xa6\x7e\xac\x91\x05\x71\xab\x27\x3f\x43\x0e\x50\x1a\x1a\x6a\x72\x1b\x3a\x29\x95\x34\x77\xf0\x25\x3d\xd5\xcf\xa0\x5b\x21\xa7\x8f\xf2\x4b\x55\xdd\xab\xd2\xc5\x2a\x19\x24\x83\x56\xab\xec\x1d\xc5\x2e\x30\x41\xcd\x2c\xd3\x24\x3d\x35\x4b\xf5\xf4\x52\x49\x73\x6c\xd5\xc9\x1a\xe9\x89\x00\x46\xa4\x81\x33\xd6\x3a\x05\xb7\x55\x97\x35\x58\x02\xe0\x1f\x98\x2a\x21\xb4\xad\x30\x56\xc0\x0c\x41\xba\x9b\x4b\xf3\x06\xed\x48\x00\x73\x4f\x1c\xd1\x2e\x7e\xcd\x0a\xae\xd3\xb7\xc8\x20\x07\x85\xb7\x4c\xb0\xbe\x1c\xda\x23\x26\x1c\xa5\x6c\x1d\x11\x15\xbf\x0c\x48\xe6\xa8\x34\x4b\xef\x81\xf7\x9e\x4b\x91\x2a\xb9\x36\xb3\xa2\xcb\x08\xa8\x2d\x4f\x8e\x01\x96\x84\x55\xc0\xc2\x3a\x6b\x60\x36\x4b\x7a\x84\x86\xc4\xec\x93\x49\xec\xcf\xf7\xba\x5c\x1a\x3f\xc2\x45\x64\xdd\x6e\x48\x8d\xeb\x4a\x28\x3e\xee\x7e\xf9\x4e\x8b\x1c\x98\xa0\x11\xe1\xe0\xa2\xfd\xb8\x71\x7a\xb2\x0d\x6c\xd1\xb0\x45\xd5\x0b\x8c\x6d\x0f\x85\xd0\x6d\x42\x23\xb5\x7a\xc0\x7c\xfc\x96\x18\xd9\xe7\x54\xac\x6f\x95\xa7\x87\xe7\x4c\x69\xf4\xa7\xb1\x12\xf4\xb6\xf7\x9e\x02\x3e\xf8\x19\x15\x69\x16\x6a\x65\x33\x29\x87\xef\xe9\x0d\x4d\xa0\x61\x28\x95\x90\x07\x3c\xd4\xce\x69\x4e\x9c\xce\x7c\x70\xb9\xa0\x1b\x89\x61\x95\xad\x77\xd8\x95\x7c\x87\xaf\x7f\x54\x69\x12\xf5\x83\xde\xec\x76\xb5\x51\x8f\x2d\x28\xa2\xa5\x00\x14\x28\xc5\x7f\xa8\x52\xe8\xa1\x17\x22\x2a\xfc\x8d\x5b\xb3\x71\xff\xab\x81\x36\xfb\xcf\xe0\x18\x51\x76\xdd\x06\xba\x94\xee\x0e\x0f\xf6\x56\xe0\x00\x05\xea\x7b\x8c\xb5\x42\x2e\x1d\xdc\x6d\x47\x9c\x42\xd0\x95\x9e\x07\x03\xfd\xb8\x51\xa9\x39\x8b\xc9\x98\xf8\x54\xe7\x32\x13\x79\xa4\x00\xa0\x82\x79\xf0\x8a\x45\x9b\x24\x8d\xbd\xbe\xcc\x4b\x40\xf4\x02\xee\xee\x15\x89\xe8\x09\x77\xc7\x6c\x8b\xef\xd9\x75\xed\xb4\xb3\x42\xda\xc7\x45\xa0\x9e\x0e\xa2\xd7\x37\xed\x7f\x25\x28\x19\x76\x05\xd1\x0b\xd5\x6e\x0b\x4d\xa7\x57\xea\x33\x2a\xc2\x0b\x52\xd7\x2b\x2b\xd5\x69\x0f\x4e\x45\x6d\x5c\x69\x9a\xd5\xbb\x12\x78\x71\x11\x45\x85\x00\x12\x2d\xa0\x3a\x5b\xc1\xd1\x17\xf3\x14\x90\x34\xa8\x73\xe9\xef\x47\x5f\xe8\xd0\x2f\x6b\x1d\x67\xa4\x7d\xb5\x20\xc0\x09\x7b\x51\x69\xe8\x0b\xe0\x4d\x95\x0a\xbe\x47\x77\x58\x95\xae\x81\xe9\x3a\x61\x49\x31\x97\x89\xc6\x99\x99\x8b\x54\x3c\x98\xda\x85\xc1\x62\xc2\xba\xd8\xb3\xb3\x6d\x36\xe0\xc8\xb9\x4d\x3f\x76\xfa\xeb\xb0\x08\xf3\x90\xdc\x92\x43\x60\x3a\x16\xda\xf8\x8d\xa0\x1c\x22\xbe\x98\x05\x90\xc0\x5d\x08\xc2\x3f\x62\x21\x6d\xfd\x00\x15\x82\x12\xaf\x73\x79\xb1\x82\x1c\x50\xc8\x3c\x8d\x63\x3c\x85\x5a\x2d\x09\xc7\x34\x96\x50\x70\x58\xd1\x99\xdc\x0e\x04\x69\x40\xe2\x4a\x12\x0f\x22\xdf\x15\x10\xd4\x85\x7e\x95\x82\x17\x1b\x96\x14\x13\xa0\x88\xb3\x96\x72\x2e\x79\x4c\x12\xda\x54\x9c\xe9\x1a\x98\xf7\x3d\xe3\x4c\xbf\x2f\xd5\x43\x9f\x63\x7b\x2c\xea\x0b\x57\x75\x96\x72\xb9\xc0\x1d\xe4\x1b\xe0\xbe\x02\x79\xce\xae\xab\xce\x72\xb9\x70\xb4\x36\x4f\x52\x4f\x67\xef\xaf\x2b\xa2\xb9\xc6\x8f\xb5\x1f\x9a\xe0\x64\xf0\xcc\xdb\xf6\x78\xe2\xe2\x34\x84\x2e\xc8\x99\xbd\x81\x1d\x6e\x05\x3c\x24\x8c\xd7\x90\x08\x76\xb6\xee\xc3\x84\xd9\x19\xf0\xbd\xe2\x93\x86\x8c\x7c\x6d\x0f\xa9\x0f\xfb\x78\x68\x4c\xc3\x43\x3c\x08\x1e\xb3\xa7\x5a\xcf\x0b\x91\xe9\x8c\xa3\x34\xa1\x32\xb6\xb5\xc1\x75\x1f\x26\x4f\x08\x8c\xc3\xb9\x30\x4f\xbb\xfc\x6a\x78\x0e\x53\x2d\xd8\xca\xa7\x8c\x51\x83\x9d\x1a\x1a\x29\xf1\xb9\xd7\x50\xaf\x29\xbb\x90\xcc\xba\x7b\x13\xf6\x02\x27\x96\x7e\x41\x21\x48\xd2\xf0\xa5\xbb\xf3\x98\x56\x0f\x65\xab\xd6\xa1\x18\x98\x33\xe0\x97\x1b\xde\x04\xf5\x52\x1b\x3e\x6b\xbf\xbc\x49\x20\x67\xe1\x90\xb4\x74\xbc\x45\x5c\x62\x01\xb4\x49\xe2\xb1\x7b\x87\x4e\xbb\xf2\xd1\x6c\xdf\x60\x7b\xdf\xc5\xde\xd8\x17\x4d\x17\x65\x25\xed\xa7\xf6\x77\xa6\xf2\xb9\xb4\xa5\x51\x48\x52\xa3\xdc\x53\xbd\xa8\x00\x42\x4d\x3e\x7f\x30\x53\x01\xc4\x60\x15\xbe\x40\x38\xce\xf3\xaf\xd6\xad\x00\x80\x22\x96\xc2\xab\x8f\x4f\xd9\xcc\x7f\xcd\x38\x1e\x66\x82\x6f\x71\x9b\xaf\x73\x34\xa6\xa9\xe9\x94\xa4\xb0\x94\x90\x41\x7a\x83\x2e\x81\xd8\x74\x55\x1a\x63\x14\xb0\xbf\xce\xa5\xe9\x3c\xb6\x4a\x00\xf7\x4b\xfd\x32\x97\x1f\x94\xb6\xd9\xf4\xda\xf7\x87\xc5\x90\x52\xb7\xbd\x70\x42\x67\xf4\x87\xb7\xb0\x69\x53\xcc\xbf\xa6\x7c\x0f\x79\x2d\x44\x89\xb1\x53\x65\xee\x1b\x15\x71\x39\x97\xff\x61\xba\x07\x75\xa7\x9d\x68\xbb\x5a\xe1\x12\x86\x11\x84\xcb\x92\x4f\x58\xe8\xcb\x7f\x7c\xf5\xe9\x15\xe2\xd0\x4b\x0d\xda\x92\x93\xea\x06\xe2\x88\xc0\xcb\x34\x85\x9b\x68\xdb\x02\x47\x46\xe1\x3f\xc1\xfb\x60\x39\x74\xa8\x5b\xc8\xaa\x8b\x31\x64\xa1\xf7\xcd\x60\x1f\x7c\x9e\xb1\x88\x17\xd1\xe6\xc4\xfa\x72\x64\xc6\xec\xee\x47\xc3\x87\x22\x73\xc6\xd3\x6a\xe7\xc2\x36\x07\xce\x7c\xeb\xd8\xf9\x2a\xf3\xc5\x34\x01\x80\x35\xb7\x75\xed\x1a\x47\x1e\x8a\x93\xd3\xcb\xa6\x7b\x3f\xcf\x3d\x6e\x95\xe3\xfc\x89\x93\xa2\xe4\x92\x6f\x45\xcc\x5e\x40\xc6\xd4\x0b\x3b\xf8\x73\x99\x2d\xa7\xe9\x6e\x55\x10\xc5\x93\xe9\x94\x29\x68\x2c\xed\xd9\xe5\x16\x71\xf3\x98\xb4\xa7\xb3\x3b\x0f\x5a\xed\xbe\x8e\xeb\x1b\xf7\xa5\xe1\x0e\x0b\xc6\xb8\x5c\xef\xdc\x54\x21\x42\x55\x26\x75\xae\xef\x27\x6c\x99\x73\x09\xf2\x18\x71\xe8\x54\xf9\xd5\x09\x87\x67\xe4\x4f\xb2\x29\x14\x92\xa7\x3b\xc0\x8e\x4f\xe6\x12\xc9\xa6\x80\x95\x78\x17\xa5\x49\xc4\xd6\x39\xcf\x36\x35\x3f\x48\x3c\x08\x59\x9c\x13\xbb\x82\x05\xa9\x1f\x7b\xb5\xec\xd8\x1a\x8e\xe2\xdc\xbb\xa8\x7a\x3b\xdc\xd3\x50\xf8\x08\x2b\x26\xaa\xd0\x89\xda\x82\x5a\xdd\x04\x9f\x90\x5a\x1b\xf0\x71\xb1\xbf\x94\x4b\x95\x5a\x42\xb3\x8b\xb7\x4c\xe5\xa0\x25\x50\x28\xfa\x53\x12\x77\xed\x62\x89\x8c\xc5\x97\xa3\x58\x05\xfa\x37\x24\xeb\xde\x99\xcf\x04\x94\xf5\xf5\xc6\xc2\x2a\xca\x85\xd9\x2c\x0a\x7b\x82\x6b\x3c\xa5\xeb\x08\xbb\x59\x5a\x6c\x00\xf6\x86\x80\x6b\xdf\xa9\x5b\xbe\x63\xd1\x86\xcb\x75\x70\x84\x06\x14\x92\xc8\x54\x8e\xb2\x80\x0f\x40\xdf\xa5\x72\x9b\xb5\x49\xb9\x88\x84\xfa\x76\x01\x6f\x04\x5b\x2a\x9b\x70\xc8\xd7\xeb\x5c\xac\x21\x91\x7e\x2e\x2b\xd9\xd4\x40\x5d\x66\xe9\xfe\xf1\x3b\x7d\xc9\xa8\x4f\xc3\xe8\xd0\x75\x6a\x29\xf2\x9d\x4b\xe5\x23\x4d\x4d\xd7\x75\x8d\x6e\x9d\xb0\x44\x4c\x27\xec\x47\x0f\x30\x15\x91\x92\x2e\x17\xb0\x23\x11\xac\x16\x9a\xde\x63\x8b\x5a\xa8\x1f\xda\xeb\x0e\xbf\x35\x94\x39\x5b\x27\x4d\x6f\x32\x65\xc1\x8b\x72\x84\xad\x24\xf5\xe5\x33\xf3\xf2\x0d\xbe\xdb\x8b\xc1\xe6\x99\x31\x6f\x96\x76\xc7\x3c\x6f\x2c\xbc\xf9\xb6\xa7\xe5\x6d\xeb\xeb\xbd\x81\xce\x54\x75\x07\x3a\x9f\xc2\xa5\xb4\xdc\x0a\xfb\x63\x9d\x69\x07\x5f\x40\x4f\x9b\xc6\x86\x32\x2d\x18\x95\x60\xe6\xba\x7e\xdc\x6a\xb1\x00\x59\xae\xe2\x32\x12\xb1\x59\xb9\xe0\xb7\x23\x72\xc3\xd1\x16\x54\x8c\x64\xdb\x86\x50\xe1\x5e\x01\x0d\xee\xaf\x75\x36\x1e\x44\x77\xeb\xba\xff\xae\xe3\x5c\x6c\x3d\x93\xb6\x4e\x0f\xd7\x27\xf6\x53\x3e\x72\x9f\x72\x9f\xaf\x92\xd4\xaa\x3c\x59\x27\x92\x17\x2a\x67\x2f\x5d\x72\xe2\x2b\xa7\x6c\x03\xbd\xf8\x14\x66\xa2\xd2\x45\x68\x26\xda\xcf\x5e\x80\x67\x16\xf1\x62\x1c\x77\xd6\x58\x86\x67\x98\xa4\xe6\x29\x5d\xf0\x6d\x16\xd2\x3e\x3a\x69\x63\xea\x99\x14\x3b\x81\xd9\x8a\x41\x8c\x2f\xd1\x3e\x07\x6b\x2e\x29\x32\x8e\xe3\xa6\xf2\x90\xb7\xb8\x73\x6f\xce\xca\x62\x71\x20\x95\x09\xbe\x3c\x2e\x40\x42\xd7\xe5\x1f\x78\xd6\x4f\x0e\xc1\xe9\x68\x8c\x49\x28\x4e\xef\xd9\x7a\x2a\xd5\xf9\xd9\xaf\x0c\x30\x92\xac\xb2\x7e\xc5\x7b\xfd\xde\x5e\x68\xf8\x73\x4b\xe5\x20\x00\x03\x81\x2c\x79\x1a\xbc\x0a\x3c\x82\x3a\xb3\x66\x76\x71\xcb\x28\x71\x96\xaa\x32\x66\x64\xd4\xe8\xba\x38\x9f\xe2\xee\x08\xb4\x95\xd3\x69\x17\x87\xd7\x48\x51\x55\x67\x7f\xe0\xbd\xf6\x15\x08\xbf\x75\x58\xe0\xde\xa5\x4f\x3d\xfb\x6c\x43\x4f\x3d\x0d\x63\xef\xcc\xf1\xa8\xb1\x77\xd1\x5a\xe0\xd0\x1a\x17\xc8\x83\x73\x53\x12\xa7\xb0\xde\xc2\x40\x77\x0b\xcb\x67\xe5\x02\x51\xdf\x1f\xfd\x39\x9b\x69\xdb\xff\xa9\x8c\xe7\x42\x16\x0b\xf8\xe2\xb8\x8f\xc1\x47\x3e\xc2\xeb\x15\x87\x69\x50\xc0\xf2\xdf\x6e\x15\xc6\xa1\x2d\x61\xc6\xbf\xb3\x1b\x8a\xbd\x68\x2b\xbc\x6f\x76\xc7\x97\x09\x60\x63\x82\x3b\x3b\x37\x70\x1d\xc3\x45\x0d\x3a\xa0\xf7\x82\x06\x55\x4c\xfb\xa0\x06\xf9\xda\xc3\x95\x2a\x94\x42\x61\x28\xca\xf0\x34\xa6\xd6\xfe\x2d\x20\xd1\xbe\xac\xfc\x1b\x08\x0f\xcd\xf8\xa5\xec\x3f\x45\xae\x7c\xda\x02\x06\x55\xc2\x82\x7b\xfd\xf5\xc3\x25\x4a\xd1\x1f\x47\x71\xcc\x50\x7a\x0d\xfe\x42\x9c\x24\x78\xf2\x5d\xee\xec\x71\xa4\x8b\x4e\x5d\x44\x8b\x0e\x9e\xfd\x41\x55\x09\x0e\x9e\x21\x6f\x7e\x52\xdb\xcc\xec\x02\x3d\x85\x73\x35\xb1\xfe\x6d\x79\x46\x38\x34\x82\xbc\xd6\x2f\x19\xa6\xd0\x88\x7f\xfb\xeb\xbf\x4f\xbb\xc4\xa7\xa1\xea\x63\x61\x3d\xae\xf2\xef\xf2\x44\xc8\x18\x2e\x0d\x79\xdc\x94\x80\x91\x95\x28\x72\xc5\x3c\x9b\x69\xf8\x24\xd9\x7d\xed\x5b\xad\x5e\xe0\x24\xfa\x0a\x37\xcf\xde\xc8\xba\xe5\x5b\xb9\x97\xea\x72\x25\xf4\x22\xde\x49\xbe\x6d\xca\x75\x3f\x6b\x1d\x77\x89\x48\x63\xa8\x22\x7d\x7d\xdf\xed\x49\x2c\xa2\xfb\xb1\x3e\xc1\xc1\x04\xd6\x22\xba\x67\x3f\xdf\x7e\x78\x8f\x7a\x85\x89\x9e\xcb\x4b\x5e\x24\x0f\xe2\x2e\x4f\x5d\xd8\x9a\x18\x49\xf2\xd4\xae\x91\x2a\xa1\x6a\x40\xde\x61\xd9\x57\xad\xe3\x10\xf2\x5d\x6f\x77\x27\xcb\x32\xba\x17\xc5\x69\xce\x65\xac\xb6\xd8\x8c\x53\x5d\xae\x56\xc9\x97\x69\xc1\xf3\x0e\xf2\x6b\x8c\x23\x7c\x43\x3f\xd7\x4b\x9a\x14\xde\xe7\x45\x57\xf7\x11\xb2\x13\x49\xcb\xb7\xe2\xdc\xc2\x11\x38\xe7\x5b\x01\xec\x65\xac\x4a\x1c\x0f\xa5\x60\xc2\x1f\xe8\xab\x69\x4d\x48\x6f\x45\x02\xb3\x9f\x02\xe7\xfe\x53\x50\xab\xaa\xc8\xb1\xad\x94\xd7\x2c\xdb\xf2\x7b\x3c\x1f\xae\x73\xa1\xf5\x84\x69\x05\x35\x9e\x4b\x8b\x99\xb6\x79\x3d\x80\xcf\x00\xfe\xc3\x74\xc7\x22\x95\x25\x20\xf1\xe6\xda\xb5\x51\x8f\x10\x4f\x0e\xd3\xdb\x40\x95\xb3\x94\x45\x92\x32\xbe\x2a\x28\xd8\x0c\x64\xcf\x56\xdc\x45\x4f\xe7\x12\xae\x0c\x23\x68\x3e\x5c\xe5\xbb\x6b\x02\xd7\x08\xcd\x56\x3c\x4a\xd2\xa4\x20\x0a\x1a\x48\x86\xe1\xa6\xbd\x66\x3f\x30\x7d\x99\xf3\x1d\x4f\xfd\xc1\x8a\xa7\xa5\xcf\xe8\x3b\xd1\xa2\x4e\x71\xf6\xbb\xf0\x7f\x2b\xe7\xdc\xbe\x5d\xf7\x88\x03\xef\x31\x9b\x4f\xf3\x48\xeb\x14\x47\xfd\x3e\x9e\xc4\x16\x27\x5a\x71\x75\x3d\xf3\xac\xdb\x7e\x20\x76\xde\x71\xa8\x9e\x5a\x9d\x98\xe6\x17\x46\xf4\x5e\xbb\x13\xf6\x95\xc2\x05\x5d\x1c\xb8\x43\xaa\x6f\xa3\xdd\x1f\x95\x4a\x8f\x8d\x78\xf3\xd4\x1a\xd4\x05\x48\x27\x1e\x73\x5c\xc3\x09\xe0\x02\x47\x17\x6f\xdd\xdd\xab\x23\x95\xad\x0a\xae\x10\x2c\x88\xaa\x00\x86\x02\x2a\xd1\x83\x18\xd6\x59\xcb\xe5\xfb\x48\xe4\x33\x94\x81\xa8\x1d\xeb\x3a\x37\x43\xf0\x41\x2e\x3b\xf7\x75\x04\xe2\xbd\x5a\x0d\x47\x05\xc3\x50\xe8\xb0\xf6\x29\x17\x18\x0b\x09\x3a\x5d\x3f\x06\xdf\xb6\xfd\x89\x0a\xd0\x66\x7f\x22\x2f\x79\x2e\x03\x8f\x18\x59\x75\x2c\xb4\xdc\xf5\x5a\x5b\xbc\xac\x32\x0d\x8f\x8e\x97\x1d\xc3\xc2\xdc\x7b\xa1\xf2\x36\xd4\x53\x02\x4c\x40\xa4\xb6\xcb\x44\xda\x54\x65\x0a\x22\x83\x2b\x3f\xb3\x24\x77\x2e\xe0\x6f\x5d\x72\x64\xd9\xaf\xf5\xbd\x73\x23\x42\xbe\xc0\xd0\x64\xed\x3b\xee\x86\xe7\xa7\xa7\x25\x8c\xee\x40\xa9\xd6\x5b\x90\x68\xc6\xd3\x47\xbe\xd3\xa0\x39\x2a\x8c\x55\x5c\x61\xe0\xb4\x5a\xff\x49\xb0\xbd\x5b\x02\x45\xd2\x18\x2f\x49\x8a\x98\xda\x92\x20\x7f\x83\x48\xad\xba\xaa\xe7\xc5\x79\xa1\xdb\x3b\xe7\xdb\xdc\x85\xe4\xbd\x77\x21\x78\x19\xf9\x3f\xe3\xfa\xa3\x27\xc8\x7a\x64\xac\x37\xd8\x26\xd1\x23\x23\xb8\x08\x24\xf0\x80\x39\x36\xdf\x9e\xb0\x2d\x4f\x24\x2d\x03\x54\xb0\x8a\xc5\xb2\x5c\xaf\x3b\x43\x90\xdf\xff\x5d\x46\x75\x9d\xfc\xdd\xc7\x9a\x7b\x99\x9d\x9e\x22\x1a\x7b\x61\xbf\x84\xe1\x61\x73\xae\xfa\x3a\x01\xd8\x6f\x18\xed\x6e\xbd\x72\x6a\x4c\xa2\xa7\x89\x76\x5f\x0c\x89\x76\x5b\x8c\x0f\xa4\x5a\xd1\x71\xd5\xe2\x30\x7e\x0b\x83\x7f\x9d\x30\xf8\xa0\x49\x81\xf4\x1e\x8b\xa4\xea\xa0\xf7\xd4\xf0\x40\x96\x30\x47\x27\x09\xb5\x22\x35\x70\x2d\x64\xac\xd9\x92\x47\xcf\x40\x1b\x06\xbb\xe3\xf1\xf1\xb6\x3d\xe0\x92\x1b\xb5\x15\x0c\x3e\xa5\x51\xfb\x80\x51\x36\xdb\x04\x50\x8b\xa6\x81\x1e\x91\x41\x78\x0f\xd8\x4e\x11\x19\x12\x7b\xa7\xfa\xa5\x14\x8f\xcc\xec\x56\x93\x10\xc6\x15\x0c\x0f\x88\xe2\xbc\x32\xde\x61\x05\xf3\xed\x52\xf7\x73\xb1\xe6\x79\x0c\x99\x06\xb4\x24\x53\x1e\xdd\x9b\xff\x86\xfa\xd1\x17\x09\x6a\x66\xf9\xb9\x11\xfe\xe8\x4b\x4b\x64\x94\x03\x29\x13\xa1\xda\x7c\xfd\xf0\x75\xcd\x78\x94\x2b\x8d\x41\x19\xa7\x25\x09\x99\xae\xe0\xc0\x3e\x24\x71\xc9\x53\xfc\x62\x67\x24\x9b\xeb\xa3\xf8\xc6\x67\x81\xec\x8b\xf8\x92\xa5\x5c\x56\xd7\x24\x36\x17\xb8\x6a\x92\x9e\x99\xef\x28\xd7\x8e\xa9\xca\x68\xea\xc8\x8b\x40\x71\xd5\x2f\x2b\xf4\x8e\x73\xc1\xe3\x5d\x48\x4c\x95\x48\xd2\xdd\xe7\xf1\x36\x91\x66\xe8\xad\xaa\x97\xb3\xaf\x96\xe0\x17\x01\x97\x20\x7e\x91\xa6\xb5\xa5\xaf\x99\x14\xc6\xa5\xe2\x79\x92\xee\xc0\x8b\xce\x72\x71\x12\x7c\x27\x58\xdf\x94\xef\x01\x54\xc5\x44\xa2\x50\x6a\xb1\x2a\x53\xf4\xb5\xe1\x34\xea\x1a\x40\xeb\xf0\xee\x62\x62\xb6\xd9\x82\x28\xe7\x83\x0f\xa3\x90\xd3\x53\x60\xe7\x9b\xe7\xc0\x41\xf7\x37\x9e\x30\x2d\x07\x68\xef\x46\x3d\xda\x04\x9f\x47\xee\x11\x9c\x5d\x7b\xc9\x93\xc5\xec\xfb\xbd\x2e\x7b\xde\xb1\xab\x12\x3b\x3d\xae\x5c\xd4\xd0\x6f\x22\x76\x2b\x31\x91\xd0\x1c\xd2\x40\xf4\x71\xd0\x52\x63\x9e\x90\x19\x43\xb0\xd6\xf6\x58\x5f\x0d\x83\x32\xd7\xba\x44\x2b\xc9\xe6\xe5\xef\x7f\xff\x07\xc1\x7e\x0f\x89\x53\xe4\x7d\xe3\x6d\x0b\x50\xa6\x61\xe9\x60\xa0\xdc\x07\x04\xf2\xa9\x35\x46\x84\xb5\x01\x1e\x6d\x96\x32\x40\x06\x79\xb4\x61\xba\x5c\x22\x1e\x8e\x53\xc0\x9e\x4b\xc7\x48\xfa\x5e\x01\xb4\x0d\xf7\x31\x5b\xfb\xff\x25\xe1\x69\x64\x05\x9f\xcb\x4c\x21\x69\x2e\x00\x09\x97\x82\x6d\x79\x7e\x0f\x22\x6f\xa4\xe4\xcd\x78\xc1\x5e\x26\x62\x5a\x0d\x56\xbf\xaa\xd4\x87\xae\x07\x90\x0c\x93\xe5\xa5\x94\x56\xb5\x82\x19\x37\xcc\x47\x8e\x27\x73\xb9\x2c\xc3\x93\x56\x25\xf4\xec\xa7\x16\x84\x9f\xc1\xc8\x2a\x60\x48\xa0\x4a\x71\x1d\x28\x8c\xb3\x01\x31\xe8\xb9\x7c\xa6\x20\x74\x57\x78\xeb\x23\x79\x1c\x36\x74\x15\xa0\xb4\xa1\xb9\xa1\xb0\x22\x0c\x07\x4e\x7b\xd8\xd2\x3f\x82\xba\xe2\x84\xfd\x9c\x3c\x88\x09\xbb\xc9\x78\x7e\x3f\x61\x6f\xf1\x32\xe9\x4f\x6a\xb9\x37\x62\xf5\x14\x51\x5b\x77\xb0\x3a\x96\xf1\x1e\xe3\x9f\x93\x80\x99\x39\xb8\xc0\x6c\xc6\x17\x2d\xbe\xad\x00\x5e\xfb\xe8\x5e\xc8\x4e\x63\x69\x51\xc9\x9d\xf4\xdd\x4f\x75\xee\xee\x06\x55\x77\x9e\xc2\xeb\xfb\xb6\xf7\xb0\x28\x67\xb5\x0d\xe7\x67\x3c\x1b\xd4\x9e\xe6\xd1\xfd\x09\xf8\xaa\x2a\x77\x79\xd5\x9a\x2e\xd7\x70\x56\x20\xfa\x19\x7d\xb4\x5a\x26\xf2\x50\x57\xdc\x7e\x78\x91\x29\x95\xb6\x7a\xe4\x4f\xda\x81\x8d\xf8\xfc\xd0\xce\xbb\xc0\x0c\x2e\x1d\xfa\xa9\xb6\x17\x7d\xac\xd7\x47\x86\x31\x0c\x0c\x54\x2c\x30\x9b\xe2\x12\xae\x48\x7d\x77\x84\x92\x7e\xc6\xd6\x20\xe6\x1c\x5d\x53\xab\x00\xcb\xed\x99\x21\xe2\x2e\xe8\x1d\x62\x9d\x1b\x51\x68\xdd\xfc\x4e\xc7\x41\x01\xca\x5d\x24\x6d\xbc\x2b\x63\x17\x17\x4a\xa7\x37\xae\x96\xb0\xe6\x76\x4b\xb7\x59\x3f\xfb\x58\x67\x6d\x8a\xf3\x22\x4a\xb9\x1e\x88\x23\x6e\xb5\x3b\x17\x54\xd0\x19\x94\x33\xdc\x66\xfe\x0c\xb7\x00\xdb\x81\x2e\xd4\x5c\xce\x1c\xeb\xaa\x77\xbe\xdd\x81\x01\xcd\x2c\x1e\x95\x1a\x43\x83\xa9\x44\x9e\xa2\x77\xc2\x74\x19\x6d\x20\x59\xaa\x6a\xa7\x42\xbb\xd5\x5c\xb1\x93\xb9\x34\xee\x2b\x2a\x7f\x71\x80\xbb\x3c\x82\x48\x4c\xf2\x9f\xc2\xf9\xc7\x84\xc9\x0f\x5d\xe2\x25\x37\x43\xa3\x64\xeb\xf1\xc1\xe6\xad\xe1\x4e\xe7\x37\xf7\x32\x33\x9e\xc3\x74\xee\xdd\x1e\x98\xbf\x7e\xbb\xa5\xf3\x88\x0e\x1b\x16\x1e\x9f\x6a\x96\x36\x4d\x56\x22\xda\x45\x0d\x1a\xaa\x0a\xc8\xec\xe9\x6e\x41\x0e\xbb\x04\xe8\xa3\x2b\x6a\x8f\x9d\xfc\xda\xa0\xd7\x60\x5d\xc8\x9c\xff\x99\x78\xe1\x0e\xc6\x9c\xbf\xf7\x38\xee\x1e\x10\xcd\x6f\xd0\xda\xbf\xcb\x98\x62\x3f\x59\xce\xef\xc2\xff\xb5\xf6\xcb\xa2\x57\x21\x86\x41\x5e\x73\x2b\x66\xf6\xfb\xa2\x07\x48\xe2\xfa\x21\xaf\xc9\x12\x30\x6c\x29\x10\x09\x43\xec\x08\x22\x46\xa4\x04\xd1\xab\xb6\xbf\xce\x52\xa5\xcb\xbc\x7f\xf1\x5f\x57\x6b\x6d\xbf\xde\x42\x98\x0b\x93\x6d\xbb\x14\xc0\xfd\x31\x14\x1c\x87\x8f\x2d\xfe\x43\x2d\x17\x80\x04\x3d\x6e\x85\xb7\x15\x67\x25\xb8\x1c\x9e\x80\xaa\xea\x4f\x5c\x37\x99\x00\xde\x36\x1f\xda\xf0\xe7\x97\xda\x0c\x73\x81\xe5\xb9\xb4\x34\xf6\x98\x77\x9e\xe7\x02\xf8\xb6\x73\x01\xca\x72\x2c\xe3\xb9\x83\x63\xd9\x13\x76\x10\x41\xf3\x90\xbd\x30\x57\x14\x52\xbe\x29\x6e\xb7\x14\x42\xba\xde\x1e\x73\x34\x35\xa7\xcd\x7a\xef\x13\x16\xf7\x51\xb0\x08\xd3\xbc\x3a\x54\x30\x1b\xef\x05\x31\x45\xf0\x5b\xd6\x22\xf4\xa1\x6a\xae\x45\x65\x69\x56\xee\xf7\xbf\xab\x7c\xa4\xd6\x13\x6c\x8d\xe2\xae\x12\x7e\x1e\x84\x88\x78\x8a\xdb\xc6\x8f\xbc\xd8\x60\x60\x74\xab\x0a\x81\x36\x13\xb9\xb6\x70\xbe\xe0\x9d\xdd\x32\x55\x4b\x90\x74\x33\xbf\x74\x1d\x9f\x23\x5a\xda\x83\xba\xae\x39\x60\x43\x2c\x83\xb1\x26\x90\xaf\x9e\x0b\x0d\xb4\x45\xcd\x3b\xfe\xa1\xd9\x13\xe3\x82\xb7\xcd\xea\x1a\xa3\xff\xb6\x11\xbc\x6d\xea\x5c\x98\x65\x0d\x50\xfa\xf3\x03\xf2\xfb\xce\xc3\x9c\x6f\xe3\x1c\x10\xe5\x37\x81\x68\x90\xf5\xb7\xd6\x5e\xab\x1c\x3e\x97\x33\xfc\x25\xd8\x04\xb8\xd7\x73\x72\x68\x75\x12\x89\x75\xeb\x0f\x93\xc0\xd9\x2c\xc4\x47\xd3\xa9\x68\xe2\xcf\xab\x10\x5c\x9a\x40\xce\xb5\x2c\x92\xdc\x9c\x46\x34\x38\x5b\xba\x5c\x9e\x78\x7a\x1f\x95\x83\x7b\x06\xec\x4f\x19\x87\xd0\x18\xb0\x7e\x9d\xb4\x6c\xc3\x78\xaf\xe3\x75\x59\x2c\x0d\x26\x4f\xc9\xf8\xc3\xa9\x1a\xf9\x25\x5c\xdb\x5d\x39\xe6\x70\x04\x51\x59\xcb\x6d\x80\x9b\x5d\x9f\xbd\x00\xe5\x28\xc8\x0f\xbf\xc6\xe3\xf8\xb7\xde\xc0\x43\x2c\xc9\xd0\xad\x1b\x8e\xdf\x73\xf9\x7f\xed\xde\xd0\x9d\xf2\x30\x62\xa6\x9b\x9e\x31\x5b\x54\x67\x2a\x46\xa5\x6e\x36\x24\x19\x38\x81\xdd\x95\x6a\x4c\xf9\xb6\x52\xb9\x0b\x90\x04\x3a\x29\x8a\x92\xf9\xe1\xd7\x87\x44\x07\xa4\xf9\xf0\xb5\x1b\x21\xd8\xeb\x5c\xac\x5e\x7f\xca\xc5\x6a\x61\x47\x7a\x0a\x0d\x9a\x9a\x16\x35\xa9\xf3\x07\x4e\x0e\x9d\x29\xd9\x4e\x21\xba\x87\xe2\xb7\xd6\x24\x2c\x27\x68\x53\xb2\x62\x5e\x4e\x13\xa2\x08\x65\x14\x09\x11\xd7\x39\xfd\x1b\x35\xfb\xea\xdb\x5c\x17\x8e\x76\x00\x50\xb5\x43\x86\xf2\xef\x7f\x7b\xab\xf4\xd9\x90\xed\xed\xb6\x1a\x4f\xb1\xc6\x9e\x4b\xb7\xe1\x75\x27\xa6\x7c\xdd\xdc\x19\x18\x40\x9d\xf1\x47\x49\x6c\x50\xa3\xae\x32\x86\x6d\x6b\xb5\xe8\x52\xb0\xad\x35\x10\xc4\x7e\x95\x49\x7b\x73\x94\x38\xcd\xc6\x49\x20\x77\xce\xd3\x34\x54\x26\xf1\xf1\xdf\xb9\xf4\x51\x42\xe3\xb5\xa6\xa9\xbd\x12\xaa\xf8\x1b\xc4\xfd\x15\x03\x5d\x81\x98\x58\xea\x22\x22\xfd\x24\x34\xc1\x09\x46\xe3\x7c\xcc\x6c\xdf\x6a\x7e\xaa\x43\xe4\x77\xc6\xda\xb0\x07\xb7\x83\x9f\x5d\xdc\x8b\xdd\xe8\xba\xb6\xdf\x9c\x7b\x29\xdf\x0d\x2c\x66\x6b\x65\x23\x9e\xe7\x36\x07\x89\xbe\xca\xcc\x59\x69\xc5\xa3\xca\xb5\x59\x47\x3d\x37\x22\xba\xcf\x54\x22\x47\xdb\xa2\xa0\x3e\xc6\x91\x2a\xcc\x7e\xe6\x4b\x73\xa7\xc3\x41\x9b\x63\xc5\x9f\xc4\x86\x68\x00\xa7\x59\x60\xbd\xa7\x34\xe4\xcc\x69\x15\x77\x4f\xbb\xa7\x8e\x5f\x08\xbf\x37\x3c\x43\x2c\xb6\xff\x92\x02\xad\x46\xd3\xa3\xac\xdc\x62\xf1\x46\x6e\xea\xc0\xce\xe6\xac\x42\x04\xda\xda\xa5\x10\x82\xfc\x2d\x32\xf4\x5b\x64\xe8\x7f\x78\x64\xe8\x6b\x86\x85\x00\x59\xf8\x9c\x31\xa1\x76\xb2\x81\xdf\xb6\xd7\xef\x6b\x7b\x45\x4e\x51\xcc\x8c\x1b\xd3\xb5\x54\xd5\x6b\xff\xfa\x71\x9d\x2b\x58\x50\x13\x3d\xa2\x9f\xbf\xa2\x7b\xd0\x62\xab\xc6\xd9\xdd\xc1\xfb\x55\x3f\x7a\xc2\x3b\x20\xfe\x30\x10\x24\xd2\x37\x96\x6f\x18\x04\x2e\xc2\xa9\x63\x0c\xcf\xe0\xeb\x97\x6e\xae\x92\xef\xea\x12\x79\x88\x83\x61\x2c\xa3\xbb\x56\xbe\xb4\x16\x51\x0a\x34\xe0\x3d\x96\x31\xe0\xb0\xe6\xc5\x0b\xed\x7a\xbd\x6a\x01\x2d\xc2\xfd\x7d\xa2\x8b\x5f\x6a\x0a\x89\x87\x49\x2c\x3e\x1b\x12\xca\x56\x15\xab\x19\xbc\xd1\x0b\xe0\xb9\xae\x42\x6c\xd4\xca\xce\x39\xd8\xe4\xac\x26\x96\xa9\xf7\x98\xfd\xea\x93\xeb\xaf\x4f\xe8\x47\x3f\xe6\x3c\xcb\x44\x6e\x71\x23\x0d\x68\x0f\x08\x4c\xc1\x57\x40\x21\x6e\x23\x50\xa6\xb6\xe6\x8d\x18\x53\x52\x2b\x1a\x1e\x83\xae\x9b\xb6\x8f\xdc\x65\x99\xa6\x9d\x23\xb7\x5f\xb7\xe6\xf2\xee\xfd\xfb\xc5\x2f\xb3\xf7\x77\xe7\xb6\xf9\xad\x3a\x30\xc1\x63\x9d\x7d\xe2\x6a\x42\x7d\xe2\x95\xe6\xcc\x67\x85\x95\xca\x55\xbe\xd5\x78\x18\x29\xd3\xb4\xaa\x11\x34\x97\x9f\xa8\x1c\x80\x65\xa3\xfe\xa1\xe9\x37\xd6\xdb\x71\xd5\xef\xc3\x63\x9f\x4c\xe1\x9f\xf0\xdd\x13\xe6\x1b\xf1\x1a\x94\xec\x48\x21\xab\xbd\x5f\x29\xe7\xe3\x88\xe5\x80\x20\xe0\xae\xe5\xf0\xd4\x2a\x68\x87\x2d\x8f\x3b\x09\xfc\xcb\x22\xb6\xe2\x65\x4f\xb2\x3a\xb0\xef\x3e\x55\xef\x13\x9c\x2d\x8f\x31\xb8\x06\xe5\x4e\x50\xbb\x0a\x14\x79\xbd\xbc\xd3\x5c\xe2\x59\xd5\xd4\xa9\x50\xdd\x75\x62\x17\x84\xa6\x4a\xb9\x5c\x97\x7c\x2d\xf4\x84\xd9\x8f\xcf\xe5\x36\x59\x6f\x90\x4d\xa2\xcc\x3c\x2e\x99\x33\x09\xa4\x23\xb5\x29\x54\xc3\x25\x27\x72\x2e\xa9\x4d\x72\xed\x8b\x47\x8c\xec\x9f\x6e\x5c\x73\x08\x8c\x8e\x05\x91\xfc\x96\x9c\x4b\x1c\x5c\x64\xb9\xb0\x11\x2b\xf0\xdf\x79\x51\x9f\xba\x1c\x62\xcc\x28\x51\x6d\x6c\xfa\x1a\x62\x67\x73\xe9\x12\x51\xd1\xc3\xa7\x36\x04\x32\x0d\x58\xa5\xfd\xf6\xc4\x0e\x86\x5d\x13\x54\xb7\xf6\x59\x7f\xf4\x1e\x60\x16\xdc\x62\x84\xd6\x6e\xd3\x8c\x0d\x3c\xd5\xf1\xc0\x70\x74\xb1\x13\x40\xf6\x71\x7b\x6d\x6c\xbb\xf0\x99\x4e\x08\x92\x2a\x97\xe9\x88\x2a\xe1\xf3\xbd\x95\x42\x93\xdc\x5f\xa9\x01\x47\xc6\xeb\xda\xd2\x32\xd3\xb4\xef\xb3\x4b\xa5\x3a\xc6\xe5\x09\x03\xbf\x95\x4a\xd1\x0b\xfb\x3a\xa3\x8c\x8a\x43\xe6\xcb\x80\x94\xbc\x7a\x17\x59\xeb\xd3\x57\xa1\x34\xd1\x07\x55\xc7\xfb\x4f\x83\x6b\xe4\x3c\x04\xda\xec\x46\x59\x58\xda\xe7\x2a\x06\xb6\xc3\x4c\x52\xdc\xcf\x8a\xd6\x26\x68\x5e\xcc\xe2\x41\x45\x59\x33\xff\x27\x6e\x12\x4d\xfc\xc8\x4d\xa0\x92\x51\x99\x6b\x63\x2e\xc9\xde\x91\xd5\x56\x39\xe3\x73\x69\xd5\x0f\xac\x39\x9e\x59\x10\x55\xee\xfe\x8a\x69\x8e\x19\xb2\x87\x83\xc7\x5a\x30\x25\x85\xb5\x86\x73\x69\x95\x8e\x27\x8c\x2f\xb5\x15\x10\xe6\x72\xe7\x54\x7d\x13\x27\xd9\xc6\x25\x03\x74\xda\x7e\x9b\x57\x73\x03\x2a\xfb\xfc\xef\xcc\xff\xfd\xf7\xef\xfe\x7f\x00\x00\x00\xff\xff\x3c\x1f\xc0\x41\x5d\xaa\x04\x00") func adminSwaggerJsonBytes() ([]byte, error) { return bindataRead( @@ -93,7 +93,7 @@ func adminSwaggerJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "admin.swagger.json", size: 305134, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 305757, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/gen/pb-java/flyteidl/core/Security.java b/gen/pb-java/flyteidl/core/Security.java index b88fb9750..e13fc55e1 100644 --- a/gen/pb-java/flyteidl/core/Security.java +++ b/gen/pb-java/flyteidl/core/Security.java @@ -96,9 +96,9 @@ public interface SecretOrBuilder extends * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 4; + * .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; */ - int getMountRequirementValue(); + @java.lang.Deprecated int getMountRequirementValue(); /** *
      * mount_requirement is optional. Indicates where the secret has to be mounted. If provided, the execution will fail
@@ -107,31 +107,37 @@ public interface SecretOrBuilder extends
      * +optional
      * 
* - * .flyteidl.core.Secret.MountType mount_requirement = 4; + * .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; */ - flyteidl.core.Security.Secret.MountType getMountRequirement(); + @java.lang.Deprecated flyteidl.core.Security.Secret.MountType getMountRequirement(); /** - *
-     * The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default
-     * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
-     * +optional
-     * 
- * - * string env_name = 5; + * .flyteidl.core.Secret.MountEnvVar env_var = 5; */ - java.lang.String getEnvName(); + boolean hasEnvVar(); /** - *
-     * The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default
-     * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
-     * +optional
-     * 
- * - * string env_name = 5; + * .flyteidl.core.Secret.MountEnvVar env_var = 5; */ - com.google.protobuf.ByteString - getEnvNameBytes(); + flyteidl.core.Security.Secret.MountEnvVar getEnvVar(); + /** + * .flyteidl.core.Secret.MountEnvVar env_var = 5; + */ + flyteidl.core.Security.Secret.MountEnvVarOrBuilder getEnvVarOrBuilder(); + + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + boolean hasFile(); + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + flyteidl.core.Security.Secret.MountFile getFile(); + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + flyteidl.core.Security.Secret.MountFileOrBuilder getFileOrBuilder(); + + public flyteidl.core.Security.Secret.MountTargetCase getMountTargetCase(); } /** *
@@ -158,7 +164,6 @@ private Secret() {
       groupVersion_ = "";
       key_ = "";
       mountRequirement_ = 0;
-      envName_ = "";
     }
 
     @java.lang.Override
@@ -210,9 +215,31 @@ private Secret(
               break;
             }
             case 42: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              envName_ = s;
+              flyteidl.core.Security.Secret.MountEnvVar.Builder subBuilder = null;
+              if (mountTargetCase_ == 5) {
+                subBuilder = ((flyteidl.core.Security.Secret.MountEnvVar) mountTarget_).toBuilder();
+              }
+              mountTarget_ =
+                  input.readMessage(flyteidl.core.Security.Secret.MountEnvVar.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom((flyteidl.core.Security.Secret.MountEnvVar) mountTarget_);
+                mountTarget_ = subBuilder.buildPartial();
+              }
+              mountTargetCase_ = 5;
+              break;
+            }
+            case 50: {
+              flyteidl.core.Security.Secret.MountFile.Builder subBuilder = null;
+              if (mountTargetCase_ == 6) {
+                subBuilder = ((flyteidl.core.Security.Secret.MountFile) mountTarget_).toBuilder();
+              }
+              mountTarget_ =
+                  input.readMessage(flyteidl.core.Security.Secret.MountFile.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom((flyteidl.core.Security.Secret.MountFile) mountTarget_);
+                mountTarget_ = subBuilder.buildPartial();
+              }
+              mountTargetCase_ = 6;
               break;
             }
             default: {
@@ -369,13 +396,1169 @@ public static MountType valueOf(
         return VALUES[desc.getIndex()];
       }
 
-      private final int value;
+      private final int value;
+
+      private MountType(int value) {
+        this.value = value;
+      }
+
+      // @@protoc_insertion_point(enum_scope:flyteidl.core.Secret.MountType)
+    }
+
+    public interface MountEnvVarOrBuilder extends
+        // @@protoc_insertion_point(interface_extends:flyteidl.core.Secret.MountEnvVar)
+        com.google.protobuf.MessageOrBuilder {
+
+      /**
+       * string name = 1;
+       */
+      java.lang.String getName();
+      /**
+       * string name = 1;
+       */
+      com.google.protobuf.ByteString
+          getNameBytes();
+    }
+    /**
+     * 
+     * The name of the environment variable if the Secret is injected as environment variable. If ommitted, the default
+     * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
+     * 
+ * + * Protobuf type {@code flyteidl.core.Secret.MountEnvVar} + */ + public static final class MountEnvVar extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.core.Secret.MountEnvVar) + MountEnvVarOrBuilder { + private static final long serialVersionUID = 0L; + // Use MountEnvVar.newBuilder() to construct. + private MountEnvVar(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MountEnvVar() { + name_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MountEnvVar( + 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(); + + name_ = 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.core.Security.internal_static_flyteidl_core_Secret_MountEnvVar_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.core.Security.internal_static_flyteidl_core_Secret_MountEnvVar_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.core.Security.Secret.MountEnvVar.class, flyteidl.core.Security.Secret.MountEnvVar.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + private volatile java.lang.Object name_; + /** + * string name = 1; + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + 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(); + name_ = s; + return s; + } + } + /** + * string name = 1; + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = 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 (!getNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + 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.core.Security.Secret.MountEnvVar)) { + return super.equals(obj); + } + flyteidl.core.Security.Secret.MountEnvVar other = (flyteidl.core.Security.Secret.MountEnvVar) obj; + + if (!getName() + .equals(other.getName())) 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) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.core.Security.Secret.MountEnvVar parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.core.Security.Secret.MountEnvVar parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.core.Security.Secret.MountEnvVar parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.core.Security.Secret.MountEnvVar parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.core.Security.Secret.MountEnvVar parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.core.Security.Secret.MountEnvVar parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.core.Security.Secret.MountEnvVar parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.core.Security.Secret.MountEnvVar 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.core.Security.Secret.MountEnvVar parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.core.Security.Secret.MountEnvVar 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.core.Security.Secret.MountEnvVar parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.core.Security.Secret.MountEnvVar 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.core.Security.Secret.MountEnvVar 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; + } + /** + *
+       * The name of the environment variable if the Secret is injected as environment variable. If ommitted, the default
+       * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
+       * 
+ * + * Protobuf type {@code flyteidl.core.Secret.MountEnvVar} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.core.Secret.MountEnvVar) + flyteidl.core.Security.Secret.MountEnvVarOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.core.Security.internal_static_flyteidl_core_Secret_MountEnvVar_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.core.Security.internal_static_flyteidl_core_Secret_MountEnvVar_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.core.Security.Secret.MountEnvVar.class, flyteidl.core.Security.Secret.MountEnvVar.Builder.class); + } + + // Construct using flyteidl.core.Security.Secret.MountEnvVar.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(); + name_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.core.Security.internal_static_flyteidl_core_Secret_MountEnvVar_descriptor; + } + + @java.lang.Override + public flyteidl.core.Security.Secret.MountEnvVar getDefaultInstanceForType() { + return flyteidl.core.Security.Secret.MountEnvVar.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.core.Security.Secret.MountEnvVar build() { + flyteidl.core.Security.Secret.MountEnvVar result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.core.Security.Secret.MountEnvVar buildPartial() { + flyteidl.core.Security.Secret.MountEnvVar result = new flyteidl.core.Security.Secret.MountEnvVar(this); + result.name_ = name_; + 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.core.Security.Secret.MountEnvVar) { + return mergeFrom((flyteidl.core.Security.Secret.MountEnvVar)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.core.Security.Secret.MountEnvVar other) { + if (other == flyteidl.core.Security.Secret.MountEnvVar.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + 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.core.Security.Secret.MountEnvVar parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.core.Security.Secret.MountEnvVar) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object name_ = ""; + /** + * string name = 1; + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string name = 1; + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string name = 1; + */ + public Builder setName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + name_ = value; + onChanged(); + return this; + } + /** + * string name = 1; + */ + public Builder clearName() { + + name_ = getDefaultInstance().getName(); + onChanged(); + return this; + } + /** + * string name = 1; + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + name_ = 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.core.Secret.MountEnvVar) + } + + // @@protoc_insertion_point(class_scope:flyteidl.core.Secret.MountEnvVar) + private static final flyteidl.core.Security.Secret.MountEnvVar DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.core.Security.Secret.MountEnvVar(); + } + + public static flyteidl.core.Security.Secret.MountEnvVar getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MountEnvVar parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MountEnvVar(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.core.Security.Secret.MountEnvVar getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface MountFileOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.core.Secret.MountFile) + com.google.protobuf.MessageOrBuilder { + + /** + * string path = 1; + */ + java.lang.String getPath(); + /** + * string path = 1; + */ + com.google.protobuf.ByteString + getPathBytes(); + } + /** + *
+     * The path where the Secret will be mounted. The execution will fail if the underlying key management system cannot 
+     * satisfy that requirement. If not provided, the default location will depend on the key management system.
+     * 
+ * + * Protobuf type {@code flyteidl.core.Secret.MountFile} + */ + public static final class MountFile extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.core.Secret.MountFile) + MountFileOrBuilder { + private static final long serialVersionUID = 0L; + // Use MountFile.newBuilder() to construct. + private MountFile(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MountFile() { + path_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MountFile( + 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(); + + path_ = 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.core.Security.internal_static_flyteidl_core_Secret_MountFile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.core.Security.internal_static_flyteidl_core_Secret_MountFile_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.core.Security.Secret.MountFile.class, flyteidl.core.Security.Secret.MountFile.Builder.class); + } + + public static final int PATH_FIELD_NUMBER = 1; + private volatile java.lang.Object path_; + /** + * string path = 1; + */ + public java.lang.String getPath() { + java.lang.Object ref = path_; + 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(); + path_ = s; + return s; + } + } + /** + * string path = 1; + */ + public com.google.protobuf.ByteString + getPathBytes() { + java.lang.Object ref = path_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + path_ = 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 (!getPathBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, path_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getPathBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, path_); + } + 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.core.Security.Secret.MountFile)) { + return super.equals(obj); + } + flyteidl.core.Security.Secret.MountFile other = (flyteidl.core.Security.Secret.MountFile) obj; + + if (!getPath() + .equals(other.getPath())) 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) + PATH_FIELD_NUMBER; + hash = (53 * hash) + getPath().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.core.Security.Secret.MountFile parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.core.Security.Secret.MountFile parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.core.Security.Secret.MountFile parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.core.Security.Secret.MountFile parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.core.Security.Secret.MountFile parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.core.Security.Secret.MountFile parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.core.Security.Secret.MountFile parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.core.Security.Secret.MountFile 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.core.Security.Secret.MountFile parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.core.Security.Secret.MountFile 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.core.Security.Secret.MountFile parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.core.Security.Secret.MountFile 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.core.Security.Secret.MountFile 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; + } + /** + *
+       * The path where the Secret will be mounted. The execution will fail if the underlying key management system cannot 
+       * satisfy that requirement. If not provided, the default location will depend on the key management system.
+       * 
+ * + * Protobuf type {@code flyteidl.core.Secret.MountFile} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.core.Secret.MountFile) + flyteidl.core.Security.Secret.MountFileOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.core.Security.internal_static_flyteidl_core_Secret_MountFile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.core.Security.internal_static_flyteidl_core_Secret_MountFile_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.core.Security.Secret.MountFile.class, flyteidl.core.Security.Secret.MountFile.Builder.class); + } + + // Construct using flyteidl.core.Security.Secret.MountFile.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(); + path_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.core.Security.internal_static_flyteidl_core_Secret_MountFile_descriptor; + } + + @java.lang.Override + public flyteidl.core.Security.Secret.MountFile getDefaultInstanceForType() { + return flyteidl.core.Security.Secret.MountFile.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.core.Security.Secret.MountFile build() { + flyteidl.core.Security.Secret.MountFile result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.core.Security.Secret.MountFile buildPartial() { + flyteidl.core.Security.Secret.MountFile result = new flyteidl.core.Security.Secret.MountFile(this); + result.path_ = path_; + 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.core.Security.Secret.MountFile) { + return mergeFrom((flyteidl.core.Security.Secret.MountFile)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.core.Security.Secret.MountFile other) { + if (other == flyteidl.core.Security.Secret.MountFile.getDefaultInstance()) return this; + if (!other.getPath().isEmpty()) { + path_ = other.path_; + 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.core.Security.Secret.MountFile parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.core.Security.Secret.MountFile) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object path_ = ""; + /** + * string path = 1; + */ + public java.lang.String getPath() { + java.lang.Object ref = path_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + path_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string path = 1; + */ + public com.google.protobuf.ByteString + getPathBytes() { + java.lang.Object ref = path_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + path_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string path = 1; + */ + public Builder setPath( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + path_ = value; + onChanged(); + return this; + } + /** + * string path = 1; + */ + public Builder clearPath() { + + path_ = getDefaultInstance().getPath(); + onChanged(); + return this; + } + /** + * string path = 1; + */ + public Builder setPathBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + path_ = 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.core.Secret.MountFile) + } + + // @@protoc_insertion_point(class_scope:flyteidl.core.Secret.MountFile) + private static final flyteidl.core.Security.Secret.MountFile DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.core.Security.Secret.MountFile(); + } + + public static flyteidl.core.Security.Secret.MountFile getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MountFile parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MountFile(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } - private MountType(int value) { + @java.lang.Override + public flyteidl.core.Security.Secret.MountFile getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private int mountTargetCase_ = 0; + private java.lang.Object mountTarget_; + public enum MountTargetCase + implements com.google.protobuf.Internal.EnumLite { + ENV_VAR(5), + FILE(6), + MOUNTTARGET_NOT_SET(0); + private final int value; + private MountTargetCase(int value) { this.value = value; } + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static MountTargetCase valueOf(int value) { + return forNumber(value); + } - // @@protoc_insertion_point(enum_scope:flyteidl.core.Secret.MountType) + public static MountTargetCase forNumber(int value) { + switch (value) { + case 5: return ENV_VAR; + case 6: return FILE; + case 0: return MOUNTTARGET_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public MountTargetCase + getMountTargetCase() { + return MountTargetCase.forNumber( + mountTargetCase_); } public static final int GROUP_FIELD_NUMBER = 1; @@ -530,9 +1713,9 @@ public java.lang.String getKey() { * +optional *
* - * .flyteidl.core.Secret.MountType mount_requirement = 4; + * .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; */ - public int getMountRequirementValue() { + @java.lang.Deprecated public int getMountRequirementValue() { return mountRequirement_; } /** @@ -543,58 +1726,64 @@ public int getMountRequirementValue() { * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 4; + * .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; */ - public flyteidl.core.Security.Secret.MountType getMountRequirement() { + @java.lang.Deprecated public flyteidl.core.Security.Secret.MountType getMountRequirement() { @SuppressWarnings("deprecation") flyteidl.core.Security.Secret.MountType result = flyteidl.core.Security.Secret.MountType.valueOf(mountRequirement_); return result == null ? flyteidl.core.Security.Secret.MountType.UNRECOGNIZED : result; } - public static final int ENV_NAME_FIELD_NUMBER = 5; - private volatile java.lang.Object envName_; + public static final int ENV_VAR_FIELD_NUMBER = 5; /** - *
-     * The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default
-     * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
-     * +optional
-     * 
- * - * string env_name = 5; + * .flyteidl.core.Secret.MountEnvVar env_var = 5; */ - public java.lang.String getEnvName() { - java.lang.Object ref = envName_; - 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(); - envName_ = s; - return s; + public boolean hasEnvVar() { + return mountTargetCase_ == 5; + } + /** + * .flyteidl.core.Secret.MountEnvVar env_var = 5; + */ + public flyteidl.core.Security.Secret.MountEnvVar getEnvVar() { + if (mountTargetCase_ == 5) { + return (flyteidl.core.Security.Secret.MountEnvVar) mountTarget_; } + return flyteidl.core.Security.Secret.MountEnvVar.getDefaultInstance(); } /** - *
-     * The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default
-     * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
-     * +optional
-     * 
- * - * string env_name = 5; + * .flyteidl.core.Secret.MountEnvVar env_var = 5; */ - public com.google.protobuf.ByteString - getEnvNameBytes() { - java.lang.Object ref = envName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - envName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public flyteidl.core.Security.Secret.MountEnvVarOrBuilder getEnvVarOrBuilder() { + if (mountTargetCase_ == 5) { + return (flyteidl.core.Security.Secret.MountEnvVar) mountTarget_; + } + return flyteidl.core.Security.Secret.MountEnvVar.getDefaultInstance(); + } + + public static final int FILE_FIELD_NUMBER = 6; + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public boolean hasFile() { + return mountTargetCase_ == 6; + } + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public flyteidl.core.Security.Secret.MountFile getFile() { + if (mountTargetCase_ == 6) { + return (flyteidl.core.Security.Secret.MountFile) mountTarget_; + } + return flyteidl.core.Security.Secret.MountFile.getDefaultInstance(); + } + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public flyteidl.core.Security.Secret.MountFileOrBuilder getFileOrBuilder() { + if (mountTargetCase_ == 6) { + return (flyteidl.core.Security.Secret.MountFile) mountTarget_; } + return flyteidl.core.Security.Secret.MountFile.getDefaultInstance(); } private byte memoizedIsInitialized = -1; @@ -623,8 +1812,11 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (mountRequirement_ != flyteidl.core.Security.Secret.MountType.ANY.getNumber()) { output.writeEnum(4, mountRequirement_); } - if (!getEnvNameBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, envName_); + if (mountTargetCase_ == 5) { + output.writeMessage(5, (flyteidl.core.Security.Secret.MountEnvVar) mountTarget_); + } + if (mountTargetCase_ == 6) { + output.writeMessage(6, (flyteidl.core.Security.Secret.MountFile) mountTarget_); } unknownFields.writeTo(output); } @@ -648,8 +1840,13 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(4, mountRequirement_); } - if (!getEnvNameBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, envName_); + if (mountTargetCase_ == 5) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, (flyteidl.core.Security.Secret.MountEnvVar) mountTarget_); + } + if (mountTargetCase_ == 6) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, (flyteidl.core.Security.Secret.MountFile) mountTarget_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -673,8 +1870,19 @@ public boolean equals(final java.lang.Object obj) { if (!getKey() .equals(other.getKey())) return false; if (mountRequirement_ != other.mountRequirement_) return false; - if (!getEnvName() - .equals(other.getEnvName())) return false; + if (!getMountTargetCase().equals(other.getMountTargetCase())) return false; + switch (mountTargetCase_) { + case 5: + if (!getEnvVar() + .equals(other.getEnvVar())) return false; + break; + case 6: + if (!getFile() + .equals(other.getFile())) return false; + break; + case 0: + default: + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -694,8 +1902,18 @@ public int hashCode() { hash = (53 * hash) + getKey().hashCode(); hash = (37 * hash) + MOUNT_REQUIREMENT_FIELD_NUMBER; hash = (53 * hash) + mountRequirement_; - hash = (37 * hash) + ENV_NAME_FIELD_NUMBER; - hash = (53 * hash) + getEnvName().hashCode(); + switch (mountTargetCase_) { + case 5: + hash = (37 * hash) + ENV_VAR_FIELD_NUMBER; + hash = (53 * hash) + getEnvVar().hashCode(); + break; + case 6: + hash = (37 * hash) + FILE_FIELD_NUMBER; + hash = (53 * hash) + getFile().hashCode(); + break; + case 0: + default: + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -845,8 +2063,8 @@ public Builder clear() { mountRequirement_ = 0; - envName_ = ""; - + mountTargetCase_ = 0; + mountTarget_ = null; return this; } @@ -877,7 +2095,21 @@ public flyteidl.core.Security.Secret buildPartial() { result.groupVersion_ = groupVersion_; result.key_ = key_; result.mountRequirement_ = mountRequirement_; - result.envName_ = envName_; + if (mountTargetCase_ == 5) { + if (envVarBuilder_ == null) { + result.mountTarget_ = mountTarget_; + } else { + result.mountTarget_ = envVarBuilder_.build(); + } + } + if (mountTargetCase_ == 6) { + if (fileBuilder_ == null) { + result.mountTarget_ = mountTarget_; + } else { + result.mountTarget_ = fileBuilder_.build(); + } + } + result.mountTargetCase_ = mountTargetCase_; onBuilt(); return result; } @@ -941,9 +2173,18 @@ public Builder mergeFrom(flyteidl.core.Security.Secret other) { if (other.mountRequirement_ != 0) { setMountRequirementValue(other.getMountRequirementValue()); } - if (!other.getEnvName().isEmpty()) { - envName_ = other.envName_; - onChanged(); + switch (other.getMountTargetCase()) { + case ENV_VAR: { + mergeEnvVar(other.getEnvVar()); + break; + } + case FILE: { + mergeFile(other.getFile()); + break; + } + case MOUNTTARGET_NOT_SET: { + break; + } } this.mergeUnknownFields(other.unknownFields); onChanged(); @@ -973,6 +2214,21 @@ public Builder mergeFrom( } return this; } + private int mountTargetCase_ = 0; + private java.lang.Object mountTarget_; + public MountTargetCase + getMountTargetCase() { + return MountTargetCase.forNumber( + mountTargetCase_); + } + + public Builder clearMountTarget() { + mountTargetCase_ = 0; + mountTarget_ = null; + onChanged(); + return this; + } + private java.lang.Object group_ = ""; /** @@ -1290,9 +2546,9 @@ public Builder setKeyBytes( * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 4; + * .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; */ - public int getMountRequirementValue() { + @java.lang.Deprecated public int getMountRequirementValue() { return mountRequirement_; } /** @@ -1303,9 +2559,9 @@ public int getMountRequirementValue() { * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 4; + * .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; */ - public Builder setMountRequirementValue(int value) { + @java.lang.Deprecated public Builder setMountRequirementValue(int value) { mountRequirement_ = value; onChanged(); return this; @@ -1318,9 +2574,9 @@ public Builder setMountRequirementValue(int value) { * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 4; + * .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; */ - public flyteidl.core.Security.Secret.MountType getMountRequirement() { + @java.lang.Deprecated public flyteidl.core.Security.Secret.MountType getMountRequirement() { @SuppressWarnings("deprecation") flyteidl.core.Security.Secret.MountType result = flyteidl.core.Security.Secret.MountType.valueOf(mountRequirement_); return result == null ? flyteidl.core.Security.Secret.MountType.UNRECOGNIZED : result; @@ -1333,9 +2589,9 @@ public flyteidl.core.Security.Secret.MountType getMountRequirement() { * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 4; + * .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; */ - public Builder setMountRequirement(flyteidl.core.Security.Secret.MountType value) { + @java.lang.Deprecated public Builder setMountRequirement(flyteidl.core.Security.Secret.MountType value) { if (value == null) { throw new NullPointerException(); } @@ -1352,113 +2608,286 @@ public Builder setMountRequirement(flyteidl.core.Security.Secret.MountType value * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 4; + * .flyteidl.core.Secret.MountType mount_requirement = 4 [deprecated = true]; */ - public Builder clearMountRequirement() { + @java.lang.Deprecated public Builder clearMountRequirement() { mountRequirement_ = 0; onChanged(); return this; } - private java.lang.Object envName_ = ""; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.Security.Secret.MountEnvVar, flyteidl.core.Security.Secret.MountEnvVar.Builder, flyteidl.core.Security.Secret.MountEnvVarOrBuilder> envVarBuilder_; /** - *
-       * The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default
-       * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
-       * +optional
-       * 
- * - * string env_name = 5; + * .flyteidl.core.Secret.MountEnvVar env_var = 5; */ - public java.lang.String getEnvName() { - java.lang.Object ref = envName_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - envName_ = s; - return s; + public boolean hasEnvVar() { + return mountTargetCase_ == 5; + } + /** + * .flyteidl.core.Secret.MountEnvVar env_var = 5; + */ + public flyteidl.core.Security.Secret.MountEnvVar getEnvVar() { + if (envVarBuilder_ == null) { + if (mountTargetCase_ == 5) { + return (flyteidl.core.Security.Secret.MountEnvVar) mountTarget_; + } + return flyteidl.core.Security.Secret.MountEnvVar.getDefaultInstance(); } else { - return (java.lang.String) ref; + if (mountTargetCase_ == 5) { + return envVarBuilder_.getMessage(); + } + return flyteidl.core.Security.Secret.MountEnvVar.getDefaultInstance(); } } /** - *
-       * The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default
-       * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
-       * +optional
-       * 
- * - * string env_name = 5; + * .flyteidl.core.Secret.MountEnvVar env_var = 5; */ - public com.google.protobuf.ByteString - getEnvNameBytes() { - java.lang.Object ref = envName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - envName_ = b; - return b; + public Builder setEnvVar(flyteidl.core.Security.Secret.MountEnvVar value) { + if (envVarBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + mountTarget_ = value; + onChanged(); } else { - return (com.google.protobuf.ByteString) ref; + envVarBuilder_.setMessage(value); } + mountTargetCase_ = 5; + return this; } /** - *
-       * The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default
-       * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
-       * +optional
-       * 
- * - * string env_name = 5; + * .flyteidl.core.Secret.MountEnvVar env_var = 5; */ - public Builder setEnvName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - envName_ = value; - onChanged(); + public Builder setEnvVar( + flyteidl.core.Security.Secret.MountEnvVar.Builder builderForValue) { + if (envVarBuilder_ == null) { + mountTarget_ = builderForValue.build(); + onChanged(); + } else { + envVarBuilder_.setMessage(builderForValue.build()); + } + mountTargetCase_ = 5; return this; } /** - *
-       * The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default
-       * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
-       * +optional
-       * 
- * - * string env_name = 5; + * .flyteidl.core.Secret.MountEnvVar env_var = 5; */ - public Builder clearEnvName() { - - envName_ = getDefaultInstance().getEnvName(); - onChanged(); + public Builder mergeEnvVar(flyteidl.core.Security.Secret.MountEnvVar value) { + if (envVarBuilder_ == null) { + if (mountTargetCase_ == 5 && + mountTarget_ != flyteidl.core.Security.Secret.MountEnvVar.getDefaultInstance()) { + mountTarget_ = flyteidl.core.Security.Secret.MountEnvVar.newBuilder((flyteidl.core.Security.Secret.MountEnvVar) mountTarget_) + .mergeFrom(value).buildPartial(); + } else { + mountTarget_ = value; + } + onChanged(); + } else { + if (mountTargetCase_ == 5) { + envVarBuilder_.mergeFrom(value); + } + envVarBuilder_.setMessage(value); + } + mountTargetCase_ = 5; return this; } /** - *
-       * The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default
-       * FLYTE_SECRETS_ENV_PREFIX prefix will be used.
-       * +optional
-       * 
- * - * string env_name = 5; + * .flyteidl.core.Secret.MountEnvVar env_var = 5; */ - public Builder setEnvNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - envName_ = value; - onChanged(); + public Builder clearEnvVar() { + if (envVarBuilder_ == null) { + if (mountTargetCase_ == 5) { + mountTargetCase_ = 0; + mountTarget_ = null; + onChanged(); + } + } else { + if (mountTargetCase_ == 5) { + mountTargetCase_ = 0; + mountTarget_ = null; + } + envVarBuilder_.clear(); + } + return this; + } + /** + * .flyteidl.core.Secret.MountEnvVar env_var = 5; + */ + public flyteidl.core.Security.Secret.MountEnvVar.Builder getEnvVarBuilder() { + return getEnvVarFieldBuilder().getBuilder(); + } + /** + * .flyteidl.core.Secret.MountEnvVar env_var = 5; + */ + public flyteidl.core.Security.Secret.MountEnvVarOrBuilder getEnvVarOrBuilder() { + if ((mountTargetCase_ == 5) && (envVarBuilder_ != null)) { + return envVarBuilder_.getMessageOrBuilder(); + } else { + if (mountTargetCase_ == 5) { + return (flyteidl.core.Security.Secret.MountEnvVar) mountTarget_; + } + return flyteidl.core.Security.Secret.MountEnvVar.getDefaultInstance(); + } + } + /** + * .flyteidl.core.Secret.MountEnvVar env_var = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.Security.Secret.MountEnvVar, flyteidl.core.Security.Secret.MountEnvVar.Builder, flyteidl.core.Security.Secret.MountEnvVarOrBuilder> + getEnvVarFieldBuilder() { + if (envVarBuilder_ == null) { + if (!(mountTargetCase_ == 5)) { + mountTarget_ = flyteidl.core.Security.Secret.MountEnvVar.getDefaultInstance(); + } + envVarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.Security.Secret.MountEnvVar, flyteidl.core.Security.Secret.MountEnvVar.Builder, flyteidl.core.Security.Secret.MountEnvVarOrBuilder>( + (flyteidl.core.Security.Secret.MountEnvVar) mountTarget_, + getParentForChildren(), + isClean()); + mountTarget_ = null; + } + mountTargetCase_ = 5; + onChanged();; + return envVarBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.Security.Secret.MountFile, flyteidl.core.Security.Secret.MountFile.Builder, flyteidl.core.Security.Secret.MountFileOrBuilder> fileBuilder_; + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public boolean hasFile() { + return mountTargetCase_ == 6; + } + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public flyteidl.core.Security.Secret.MountFile getFile() { + if (fileBuilder_ == null) { + if (mountTargetCase_ == 6) { + return (flyteidl.core.Security.Secret.MountFile) mountTarget_; + } + return flyteidl.core.Security.Secret.MountFile.getDefaultInstance(); + } else { + if (mountTargetCase_ == 6) { + return fileBuilder_.getMessage(); + } + return flyteidl.core.Security.Secret.MountFile.getDefaultInstance(); + } + } + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public Builder setFile(flyteidl.core.Security.Secret.MountFile value) { + if (fileBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + mountTarget_ = value; + onChanged(); + } else { + fileBuilder_.setMessage(value); + } + mountTargetCase_ = 6; + return this; + } + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public Builder setFile( + flyteidl.core.Security.Secret.MountFile.Builder builderForValue) { + if (fileBuilder_ == null) { + mountTarget_ = builderForValue.build(); + onChanged(); + } else { + fileBuilder_.setMessage(builderForValue.build()); + } + mountTargetCase_ = 6; + return this; + } + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public Builder mergeFile(flyteidl.core.Security.Secret.MountFile value) { + if (fileBuilder_ == null) { + if (mountTargetCase_ == 6 && + mountTarget_ != flyteidl.core.Security.Secret.MountFile.getDefaultInstance()) { + mountTarget_ = flyteidl.core.Security.Secret.MountFile.newBuilder((flyteidl.core.Security.Secret.MountFile) mountTarget_) + .mergeFrom(value).buildPartial(); + } else { + mountTarget_ = value; + } + onChanged(); + } else { + if (mountTargetCase_ == 6) { + fileBuilder_.mergeFrom(value); + } + fileBuilder_.setMessage(value); + } + mountTargetCase_ = 6; + return this; + } + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public Builder clearFile() { + if (fileBuilder_ == null) { + if (mountTargetCase_ == 6) { + mountTargetCase_ = 0; + mountTarget_ = null; + onChanged(); + } + } else { + if (mountTargetCase_ == 6) { + mountTargetCase_ = 0; + mountTarget_ = null; + } + fileBuilder_.clear(); + } return this; } + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public flyteidl.core.Security.Secret.MountFile.Builder getFileBuilder() { + return getFileFieldBuilder().getBuilder(); + } + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + public flyteidl.core.Security.Secret.MountFileOrBuilder getFileOrBuilder() { + if ((mountTargetCase_ == 6) && (fileBuilder_ != null)) { + return fileBuilder_.getMessageOrBuilder(); + } else { + if (mountTargetCase_ == 6) { + return (flyteidl.core.Security.Secret.MountFile) mountTarget_; + } + return flyteidl.core.Security.Secret.MountFile.getDefaultInstance(); + } + } + /** + * .flyteidl.core.Secret.MountFile file = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.Security.Secret.MountFile, flyteidl.core.Security.Secret.MountFile.Builder, flyteidl.core.Security.Secret.MountFileOrBuilder> + getFileFieldBuilder() { + if (fileBuilder_ == null) { + if (!(mountTargetCase_ == 6)) { + mountTarget_ = flyteidl.core.Security.Secret.MountFile.getDefaultInstance(); + } + fileBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.Security.Secret.MountFile, flyteidl.core.Security.Secret.MountFile.Builder, flyteidl.core.Security.Secret.MountFileOrBuilder>( + (flyteidl.core.Security.Secret.MountFile) mountTarget_, + getParentForChildren(), + isClean()); + mountTarget_ = null; + } + mountTargetCase_ = 6; + onChanged();; + return fileBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -6937,6 +8366,16 @@ public flyteidl.core.Security.SecurityContext getDefaultInstanceForType() { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_flyteidl_core_Secret_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_core_Secret_MountEnvVar_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_core_Secret_MountEnvVar_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_core_Secret_MountFile_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_core_Secret_MountFile_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_flyteidl_core_OAuth2Client_descriptor; private static final @@ -6967,28 +8406,32 @@ public flyteidl.core.Security.SecurityContext getDefaultInstanceForType() { static { java.lang.String[] descriptorData = { "\n\034flyteidl/core/security.proto\022\rflyteidl" + - ".core\"\266\001\n\006Secret\022\r\n\005group\030\001 \001(\t\022\025\n\rgroup" + - "_version\030\002 \001(\t\022\013\n\003key\030\003 \001(\t\022:\n\021mount_req" + + ".core\"\327\002\n\006Secret\022\r\n\005group\030\001 \001(\t\022\025\n\rgroup" + + "_version\030\002 \001(\t\022\013\n\003key\030\003 \001(\t\022>\n\021mount_req" + "uirement\030\004 \001(\0162\037.flyteidl.core.Secret.Mo" + - "untType\022\020\n\010env_name\030\005 \001(\t\"+\n\tMountType\022\007" + - "\n\003ANY\020\000\022\013\n\007ENV_VAR\020\001\022\010\n\004FILE\020\002\"O\n\014OAuth2" + - "Client\022\021\n\tclient_id\030\001 \001(\t\022,\n\rclient_secr" + - "et\030\002 \001(\0132\025.flyteidl.core.Secret\"\211\001\n\010Iden" + - "tity\022\020\n\010iam_role\030\001 \001(\t\022\033\n\023k8s_service_ac" + - "count\030\002 \001(\t\0222\n\roauth2_client\030\003 \001(\0132\033.fly" + - "teidl.core.OAuth2Client\022\032\n\022execution_ide" + - "ntity\030\004 \001(\t\"\335\001\n\022OAuth2TokenRequest\022\014\n\004na" + - "me\030\001 \001(\t\0224\n\004type\030\002 \001(\0162&.flyteidl.core.O" + - "Auth2TokenRequest.Type\022+\n\006client\030\003 \001(\0132\033" + - ".flyteidl.core.OAuth2Client\022\036\n\026idp_disco" + - "very_endpoint\030\004 \001(\t\022\026\n\016token_endpoint\030\005 " + - "\001(\t\"\036\n\004Type\022\026\n\022CLIENT_CREDENTIALS\020\000\"\225\001\n\017" + - "SecurityContext\022\'\n\006run_as\030\001 \001(\0132\027.flytei" + - "dl.core.Identity\022&\n\007secrets\030\002 \003(\0132\025.flyt" + - "eidl.core.Secret\0221\n\006tokens\030\003 \003(\0132!.flyte" + - "idl.core.OAuth2TokenRequestB6Z4github.co" + - "m/flyteorg/flyteidl/gen/pb-go/flyteidl/c" + - "oreb\006proto3" + "untTypeB\002\030\001\0224\n\007env_var\030\005 \001(\0132!.flyteidl." + + "core.Secret.MountEnvVarH\000\022/\n\004file\030\006 \001(\0132" + + "\037.flyteidl.core.Secret.MountFileH\000\032\033\n\013Mo" + + "untEnvVar\022\014\n\004name\030\001 \001(\t\032\031\n\tMountFile\022\014\n\004" + + "path\030\001 \001(\t\"+\n\tMountType\022\007\n\003ANY\020\000\022\013\n\007ENV_" + + "VAR\020\001\022\010\n\004FILE\020\002B\016\n\014mount_target\"O\n\014OAuth" + + "2Client\022\021\n\tclient_id\030\001 \001(\t\022,\n\rclient_sec" + + "ret\030\002 \001(\0132\025.flyteidl.core.Secret\"\211\001\n\010Ide" + + "ntity\022\020\n\010iam_role\030\001 \001(\t\022\033\n\023k8s_service_a" + + "ccount\030\002 \001(\t\0222\n\roauth2_client\030\003 \001(\0132\033.fl" + + "yteidl.core.OAuth2Client\022\032\n\022execution_id" + + "entity\030\004 \001(\t\"\335\001\n\022OAuth2TokenRequest\022\014\n\004n" + + "ame\030\001 \001(\t\0224\n\004type\030\002 \001(\0162&.flyteidl.core." + + "OAuth2TokenRequest.Type\022+\n\006client\030\003 \001(\0132" + + "\033.flyteidl.core.OAuth2Client\022\036\n\026idp_disc" + + "overy_endpoint\030\004 \001(\t\022\026\n\016token_endpoint\030\005" + + " \001(\t\"\036\n\004Type\022\026\n\022CLIENT_CREDENTIALS\020\000\"\225\001\n" + + "\017SecurityContext\022\'\n\006run_as\030\001 \001(\0132\027.flyte" + + "idl.core.Identity\022&\n\007secrets\030\002 \003(\0132\025.fly" + + "teidl.core.Secret\0221\n\006tokens\030\003 \003(\0132!.flyt" + + "eidl.core.OAuth2TokenRequestB6Z4github.c" + + "om/flyteorg/flyteidl/gen/pb-go/flyteidl/" + + "coreb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -7007,7 +8450,19 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_core_Secret_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_core_Secret_descriptor, - new java.lang.String[] { "Group", "GroupVersion", "Key", "MountRequirement", "EnvName", }); + new java.lang.String[] { "Group", "GroupVersion", "Key", "MountRequirement", "EnvVar", "File", "MountTarget", }); + internal_static_flyteidl_core_Secret_MountEnvVar_descriptor = + internal_static_flyteidl_core_Secret_descriptor.getNestedTypes().get(0); + internal_static_flyteidl_core_Secret_MountEnvVar_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_core_Secret_MountEnvVar_descriptor, + new java.lang.String[] { "Name", }); + internal_static_flyteidl_core_Secret_MountFile_descriptor = + internal_static_flyteidl_core_Secret_descriptor.getNestedTypes().get(1); + internal_static_flyteidl_core_Secret_MountFile_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_core_Secret_MountFile_descriptor, + new java.lang.String[] { "Path", }); internal_static_flyteidl_core_OAuth2Client_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_flyteidl_core_OAuth2Client_fieldAccessorTable = new diff --git a/gen/pb-js/flyteidl.d.ts b/gen/pb-js/flyteidl.d.ts index f00b9313f..2d0236078 100644 --- a/gen/pb-js/flyteidl.d.ts +++ b/gen/pb-js/flyteidl.d.ts @@ -5912,8 +5912,11 @@ export namespace flyteidl { /** Secret mountRequirement */ mountRequirement?: (flyteidl.core.Secret.MountType|null); - /** Secret envName */ - envName?: (string|null); + /** Secret envVar */ + envVar?: (flyteidl.core.Secret.IMountEnvVar|null); + + /** Secret file */ + file?: (flyteidl.core.Secret.IMountFile|null); } /** Represents a Secret. */ @@ -5937,8 +5940,14 @@ export namespace flyteidl { /** Secret mountRequirement. */ public mountRequirement: flyteidl.core.Secret.MountType; - /** Secret envName. */ - public envName: string; + /** Secret envVar. */ + public envVar?: (flyteidl.core.Secret.IMountEnvVar|null); + + /** Secret file. */ + public file?: (flyteidl.core.Secret.IMountFile|null); + + /** Secret mountTarget. */ + public mountTarget?: ("envVar"|"file"); /** * Creates a new Secret instance using the specified properties. @@ -5981,6 +5990,110 @@ export namespace flyteidl { ENV_VAR = 1, FILE = 2 } + + /** Properties of a MountEnvVar. */ + interface IMountEnvVar { + + /** MountEnvVar name */ + name?: (string|null); + } + + /** Represents a MountEnvVar. */ + class MountEnvVar implements IMountEnvVar { + + /** + * Constructs a new MountEnvVar. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.core.Secret.IMountEnvVar); + + /** MountEnvVar name. */ + public name: string; + + /** + * Creates a new MountEnvVar instance using the specified properties. + * @param [properties] Properties to set + * @returns MountEnvVar instance + */ + public static create(properties?: flyteidl.core.Secret.IMountEnvVar): flyteidl.core.Secret.MountEnvVar; + + /** + * Encodes the specified MountEnvVar message. Does not implicitly {@link flyteidl.core.Secret.MountEnvVar.verify|verify} messages. + * @param message MountEnvVar message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.core.Secret.IMountEnvVar, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MountEnvVar message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MountEnvVar + * @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.core.Secret.MountEnvVar; + + /** + * Verifies a MountEnvVar 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 MountFile. */ + interface IMountFile { + + /** MountFile path */ + path?: (string|null); + } + + /** Represents a MountFile. */ + class MountFile implements IMountFile { + + /** + * Constructs a new MountFile. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.core.Secret.IMountFile); + + /** MountFile path. */ + public path: string; + + /** + * Creates a new MountFile instance using the specified properties. + * @param [properties] Properties to set + * @returns MountFile instance + */ + public static create(properties?: flyteidl.core.Secret.IMountFile): flyteidl.core.Secret.MountFile; + + /** + * Encodes the specified MountFile message. Does not implicitly {@link flyteidl.core.Secret.MountFile.verify|verify} messages. + * @param message MountFile message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.core.Secret.IMountFile, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MountFile message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MountFile + * @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.core.Secret.MountFile; + + /** + * Verifies a MountFile 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 OAuth2Client. */ diff --git a/gen/pb-js/flyteidl.js b/gen/pb-js/flyteidl.js index ce811ee6c..872d44636 100644 --- a/gen/pb-js/flyteidl.js +++ b/gen/pb-js/flyteidl.js @@ -14161,7 +14161,8 @@ * @property {string|null} [groupVersion] Secret groupVersion * @property {string|null} [key] Secret key * @property {flyteidl.core.Secret.MountType|null} [mountRequirement] Secret mountRequirement - * @property {string|null} [envName] Secret envName + * @property {flyteidl.core.Secret.IMountEnvVar|null} [envVar] Secret envVar + * @property {flyteidl.core.Secret.IMountFile|null} [file] Secret file */ /** @@ -14212,12 +14213,34 @@ Secret.prototype.mountRequirement = 0; /** - * Secret envName. - * @member {string} envName + * Secret envVar. + * @member {flyteidl.core.Secret.IMountEnvVar|null|undefined} envVar * @memberof flyteidl.core.Secret * @instance */ - Secret.prototype.envName = ""; + Secret.prototype.envVar = null; + + /** + * Secret file. + * @member {flyteidl.core.Secret.IMountFile|null|undefined} file + * @memberof flyteidl.core.Secret + * @instance + */ + Secret.prototype.file = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Secret mountTarget. + * @member {"envVar"|"file"|undefined} mountTarget + * @memberof flyteidl.core.Secret + * @instance + */ + Object.defineProperty(Secret.prototype, "mountTarget", { + get: $util.oneOfGetter($oneOfFields = ["envVar", "file"]), + set: $util.oneOfSetter($oneOfFields) + }); /** * Creates a new Secret instance using the specified properties. @@ -14251,8 +14274,10 @@ writer.uint32(/* id 3, wireType 2 =*/26).string(message.key); if (message.mountRequirement != null && message.hasOwnProperty("mountRequirement")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.mountRequirement); - if (message.envName != null && message.hasOwnProperty("envName")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.envName); + if (message.envVar != null && message.hasOwnProperty("envVar")) + $root.flyteidl.core.Secret.MountEnvVar.encode(message.envVar, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.file != null && message.hasOwnProperty("file")) + $root.flyteidl.core.Secret.MountFile.encode(message.file, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); return writer; }; @@ -14287,7 +14312,10 @@ message.mountRequirement = reader.int32(); break; case 5: - message.envName = reader.string(); + message.envVar = $root.flyteidl.core.Secret.MountEnvVar.decode(reader, reader.uint32()); + break; + case 6: + message.file = $root.flyteidl.core.Secret.MountFile.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -14308,6 +14336,7 @@ Secret.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; + var properties = {}; if (message.group != null && message.hasOwnProperty("group")) if (!$util.isString(message.group)) return "group: string expected"; @@ -14326,9 +14355,24 @@ case 2: break; } - if (message.envName != null && message.hasOwnProperty("envName")) - if (!$util.isString(message.envName)) - return "envName: string expected"; + if (message.envVar != null && message.hasOwnProperty("envVar")) { + properties.mountTarget = 1; + { + var error = $root.flyteidl.core.Secret.MountEnvVar.verify(message.envVar); + if (error) + return "envVar." + error; + } + } + if (message.file != null && message.hasOwnProperty("file")) { + if (properties.mountTarget === 1) + return "mountTarget: multiple values"; + properties.mountTarget = 1; + { + var error = $root.flyteidl.core.Secret.MountFile.verify(message.file); + if (error) + return "file." + error; + } + } return null; }; @@ -14348,6 +14392,226 @@ return values; })(); + Secret.MountEnvVar = (function() { + + /** + * Properties of a MountEnvVar. + * @memberof flyteidl.core.Secret + * @interface IMountEnvVar + * @property {string|null} [name] MountEnvVar name + */ + + /** + * Constructs a new MountEnvVar. + * @memberof flyteidl.core.Secret + * @classdesc Represents a MountEnvVar. + * @implements IMountEnvVar + * @constructor + * @param {flyteidl.core.Secret.IMountEnvVar=} [properties] Properties to set + */ + function MountEnvVar(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]]; + } + + /** + * MountEnvVar name. + * @member {string} name + * @memberof flyteidl.core.Secret.MountEnvVar + * @instance + */ + MountEnvVar.prototype.name = ""; + + /** + * Creates a new MountEnvVar instance using the specified properties. + * @function create + * @memberof flyteidl.core.Secret.MountEnvVar + * @static + * @param {flyteidl.core.Secret.IMountEnvVar=} [properties] Properties to set + * @returns {flyteidl.core.Secret.MountEnvVar} MountEnvVar instance + */ + MountEnvVar.create = function create(properties) { + return new MountEnvVar(properties); + }; + + /** + * Encodes the specified MountEnvVar message. Does not implicitly {@link flyteidl.core.Secret.MountEnvVar.verify|verify} messages. + * @function encode + * @memberof flyteidl.core.Secret.MountEnvVar + * @static + * @param {flyteidl.core.Secret.IMountEnvVar} message MountEnvVar message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MountEnvVar.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + return writer; + }; + + /** + * Decodes a MountEnvVar message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.core.Secret.MountEnvVar + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.core.Secret.MountEnvVar} MountEnvVar + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MountEnvVar.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.core.Secret.MountEnvVar(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a MountEnvVar message. + * @function verify + * @memberof flyteidl.core.Secret.MountEnvVar + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MountEnvVar.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + return MountEnvVar; + })(); + + Secret.MountFile = (function() { + + /** + * Properties of a MountFile. + * @memberof flyteidl.core.Secret + * @interface IMountFile + * @property {string|null} [path] MountFile path + */ + + /** + * Constructs a new MountFile. + * @memberof flyteidl.core.Secret + * @classdesc Represents a MountFile. + * @implements IMountFile + * @constructor + * @param {flyteidl.core.Secret.IMountFile=} [properties] Properties to set + */ + function MountFile(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]]; + } + + /** + * MountFile path. + * @member {string} path + * @memberof flyteidl.core.Secret.MountFile + * @instance + */ + MountFile.prototype.path = ""; + + /** + * Creates a new MountFile instance using the specified properties. + * @function create + * @memberof flyteidl.core.Secret.MountFile + * @static + * @param {flyteidl.core.Secret.IMountFile=} [properties] Properties to set + * @returns {flyteidl.core.Secret.MountFile} MountFile instance + */ + MountFile.create = function create(properties) { + return new MountFile(properties); + }; + + /** + * Encodes the specified MountFile message. Does not implicitly {@link flyteidl.core.Secret.MountFile.verify|verify} messages. + * @function encode + * @memberof flyteidl.core.Secret.MountFile + * @static + * @param {flyteidl.core.Secret.IMountFile} message MountFile message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MountFile.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.path != null && message.hasOwnProperty("path")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.path); + return writer; + }; + + /** + * Decodes a MountFile message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.core.Secret.MountFile + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.core.Secret.MountFile} MountFile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MountFile.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.core.Secret.MountFile(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.path = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a MountFile message. + * @function verify + * @memberof flyteidl.core.Secret.MountFile + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MountFile.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.path != null && message.hasOwnProperty("path")) + if (!$util.isString(message.path)) + return "path: string expected"; + return null; + }; + + return MountFile; + })(); + return Secret; })(); diff --git a/gen/pb_python/flyteidl/core/security_pb2.py b/gen/pb_python/flyteidl/core/security_pb2.py index 85f9dd91b..5523c1b19 100644 --- a/gen/pb_python/flyteidl/core/security_pb2.py +++ b/gen/pb_python/flyteidl/core/security_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/core/security.proto\x12\rflyteidl.core\"\xeb\x01\n\x06Secret\x12\x14\n\x05group\x18\x01 \x01(\tR\x05group\x12#\n\rgroup_version\x18\x02 \x01(\tR\x0cgroupVersion\x12\x10\n\x03key\x18\x03 \x01(\tR\x03key\x12L\n\x11mount_requirement\x18\x04 \x01(\x0e\x32\x1f.flyteidl.core.Secret.MountTypeR\x10mountRequirement\x12\x19\n\x08\x65nv_name\x18\x05 \x01(\tR\x07\x65nvName\"+\n\tMountType\x12\x07\n\x03\x41NY\x10\x00\x12\x0b\n\x07\x45NV_VAR\x10\x01\x12\x08\n\x04\x46ILE\x10\x02\"g\n\x0cOAuth2Client\x12\x1b\n\tclient_id\x18\x01 \x01(\tR\x08\x63lientId\x12:\n\rclient_secret\x18\x02 \x01(\x0b\x32\x15.flyteidl.core.SecretR\x0c\x63lientSecret\"\xc6\x01\n\x08Identity\x12\x19\n\x08iam_role\x18\x01 \x01(\tR\x07iamRole\x12.\n\x13k8s_service_account\x18\x02 \x01(\tR\x11k8sServiceAccount\x12@\n\roauth2_client\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.OAuth2ClientR\x0coauth2Client\x12-\n\x12\x65xecution_identity\x18\x04 \x01(\tR\x11\x65xecutionIdentity\"\x96\x02\n\x12OAuth2TokenRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12:\n\x04type\x18\x02 \x01(\x0e\x32&.flyteidl.core.OAuth2TokenRequest.TypeR\x04type\x12\x33\n\x06\x63lient\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.OAuth2ClientR\x06\x63lient\x12\x34\n\x16idp_discovery_endpoint\x18\x04 \x01(\tR\x14idpDiscoveryEndpoint\x12%\n\x0etoken_endpoint\x18\x05 \x01(\tR\rtokenEndpoint\"\x1e\n\x04Type\x12\x16\n\x12\x43LIENT_CREDENTIALS\x10\x00\"\xad\x01\n\x0fSecurityContext\x12.\n\x06run_as\x18\x01 \x01(\x0b\x32\x17.flyteidl.core.IdentityR\x05runAs\x12/\n\x07secrets\x18\x02 \x03(\x0b\x32\x15.flyteidl.core.SecretR\x07secrets\x12\x39\n\x06tokens\x18\x03 \x03(\x0b\x32!.flyteidl.core.OAuth2TokenRequestR\x06tokensB\xad\x01\n\x11\x63om.flyteidl.coreB\rSecurityProtoP\x01Z4github.com/flyteorg/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\x1c\x66lyteidl/core/security.proto\x12\rflyteidl.core\"\x9d\x03\n\x06Secret\x12\x14\n\x05group\x18\x01 \x01(\tR\x05group\x12#\n\rgroup_version\x18\x02 \x01(\tR\x0cgroupVersion\x12\x10\n\x03key\x18\x03 \x01(\tR\x03key\x12P\n\x11mount_requirement\x18\x04 \x01(\x0e\x32\x1f.flyteidl.core.Secret.MountTypeB\x02\x18\x01R\x10mountRequirement\x12<\n\x07\x65nv_var\x18\x05 \x01(\x0b\x32!.flyteidl.core.Secret.MountEnvVarH\x00R\x06\x65nvVar\x12\x35\n\x04\x66ile\x18\x06 \x01(\x0b\x32\x1f.flyteidl.core.Secret.MountFileH\x00R\x04\x66ile\x1a!\n\x0bMountEnvVar\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x1a\x1f\n\tMountFile\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\"+\n\tMountType\x12\x07\n\x03\x41NY\x10\x00\x12\x0b\n\x07\x45NV_VAR\x10\x01\x12\x08\n\x04\x46ILE\x10\x02\x42\x0e\n\x0cmount_target\"g\n\x0cOAuth2Client\x12\x1b\n\tclient_id\x18\x01 \x01(\tR\x08\x63lientId\x12:\n\rclient_secret\x18\x02 \x01(\x0b\x32\x15.flyteidl.core.SecretR\x0c\x63lientSecret\"\xc6\x01\n\x08Identity\x12\x19\n\x08iam_role\x18\x01 \x01(\tR\x07iamRole\x12.\n\x13k8s_service_account\x18\x02 \x01(\tR\x11k8sServiceAccount\x12@\n\roauth2_client\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.OAuth2ClientR\x0coauth2Client\x12-\n\x12\x65xecution_identity\x18\x04 \x01(\tR\x11\x65xecutionIdentity\"\x96\x02\n\x12OAuth2TokenRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12:\n\x04type\x18\x02 \x01(\x0e\x32&.flyteidl.core.OAuth2TokenRequest.TypeR\x04type\x12\x33\n\x06\x63lient\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.OAuth2ClientR\x06\x63lient\x12\x34\n\x16idp_discovery_endpoint\x18\x04 \x01(\tR\x14idpDiscoveryEndpoint\x12%\n\x0etoken_endpoint\x18\x05 \x01(\tR\rtokenEndpoint\"\x1e\n\x04Type\x12\x16\n\x12\x43LIENT_CREDENTIALS\x10\x00\"\xad\x01\n\x0fSecurityContext\x12.\n\x06run_as\x18\x01 \x01(\x0b\x32\x17.flyteidl.core.IdentityR\x05runAs\x12/\n\x07secrets\x18\x02 \x03(\x0b\x32\x15.flyteidl.core.SecretR\x07secrets\x12\x39\n\x06tokens\x18\x03 \x03(\x0b\x32!.flyteidl.core.OAuth2TokenRequestR\x06tokensB\xad\x01\n\x11\x63om.flyteidl.coreB\rSecurityProtoP\x01Z4github.com/flyteorg/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,18 +22,24 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\rSecurityProtoP\001Z4github.com/flyteorg/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' + _SECRET.fields_by_name['mount_requirement']._options = None + _SECRET.fields_by_name['mount_requirement']._serialized_options = b'\030\001' _globals['_SECRET']._serialized_start=48 - _globals['_SECRET']._serialized_end=283 - _globals['_SECRET_MOUNTTYPE']._serialized_start=240 - _globals['_SECRET_MOUNTTYPE']._serialized_end=283 - _globals['_OAUTH2CLIENT']._serialized_start=285 - _globals['_OAUTH2CLIENT']._serialized_end=388 - _globals['_IDENTITY']._serialized_start=391 - _globals['_IDENTITY']._serialized_end=589 - _globals['_OAUTH2TOKENREQUEST']._serialized_start=592 - _globals['_OAUTH2TOKENREQUEST']._serialized_end=870 - _globals['_OAUTH2TOKENREQUEST_TYPE']._serialized_start=840 - _globals['_OAUTH2TOKENREQUEST_TYPE']._serialized_end=870 - _globals['_SECURITYCONTEXT']._serialized_start=873 - _globals['_SECURITYCONTEXT']._serialized_end=1046 + _globals['_SECRET']._serialized_end=461 + _globals['_SECRET_MOUNTENVVAR']._serialized_start=334 + _globals['_SECRET_MOUNTENVVAR']._serialized_end=367 + _globals['_SECRET_MOUNTFILE']._serialized_start=369 + _globals['_SECRET_MOUNTFILE']._serialized_end=400 + _globals['_SECRET_MOUNTTYPE']._serialized_start=402 + _globals['_SECRET_MOUNTTYPE']._serialized_end=445 + _globals['_OAUTH2CLIENT']._serialized_start=463 + _globals['_OAUTH2CLIENT']._serialized_end=566 + _globals['_IDENTITY']._serialized_start=569 + _globals['_IDENTITY']._serialized_end=767 + _globals['_OAUTH2TOKENREQUEST']._serialized_start=770 + _globals['_OAUTH2TOKENREQUEST']._serialized_end=1048 + _globals['_OAUTH2TOKENREQUEST_TYPE']._serialized_start=1018 + _globals['_OAUTH2TOKENREQUEST_TYPE']._serialized_end=1048 + _globals['_SECURITYCONTEXT']._serialized_start=1051 + _globals['_SECURITYCONTEXT']._serialized_end=1224 # @@protoc_insertion_point(module_scope) diff --git a/gen/pb_python/flyteidl/core/security_pb2.pyi b/gen/pb_python/flyteidl/core/security_pb2.pyi index 0cf1c3586..c10f7dfe0 100644 --- a/gen/pb_python/flyteidl/core/security_pb2.pyi +++ b/gen/pb_python/flyteidl/core/security_pb2.pyi @@ -7,7 +7,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map DESCRIPTOR: _descriptor.FileDescriptor class Secret(_message.Message): - __slots__ = ["group", "group_version", "key", "mount_requirement", "env_name"] + __slots__ = ["group", "group_version", "key", "mount_requirement", "env_var", "file"] class MountType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = [] ANY: _ClassVar[Secret.MountType] @@ -16,17 +16,29 @@ class Secret(_message.Message): ANY: Secret.MountType ENV_VAR: Secret.MountType FILE: Secret.MountType + class MountEnvVar(_message.Message): + __slots__ = ["name"] + NAME_FIELD_NUMBER: _ClassVar[int] + name: str + def __init__(self, name: _Optional[str] = ...) -> None: ... + class MountFile(_message.Message): + __slots__ = ["path"] + PATH_FIELD_NUMBER: _ClassVar[int] + path: str + def __init__(self, path: _Optional[str] = ...) -> None: ... GROUP_FIELD_NUMBER: _ClassVar[int] GROUP_VERSION_FIELD_NUMBER: _ClassVar[int] KEY_FIELD_NUMBER: _ClassVar[int] MOUNT_REQUIREMENT_FIELD_NUMBER: _ClassVar[int] - ENV_NAME_FIELD_NUMBER: _ClassVar[int] + ENV_VAR_FIELD_NUMBER: _ClassVar[int] + FILE_FIELD_NUMBER: _ClassVar[int] group: str group_version: str key: str mount_requirement: Secret.MountType - env_name: str - def __init__(self, group: _Optional[str] = ..., group_version: _Optional[str] = ..., key: _Optional[str] = ..., mount_requirement: _Optional[_Union[Secret.MountType, str]] = ..., env_name: _Optional[str] = ...) -> None: ... + env_var: Secret.MountEnvVar + file: Secret.MountFile + def __init__(self, group: _Optional[str] = ..., group_version: _Optional[str] = ..., key: _Optional[str] = ..., mount_requirement: _Optional[_Union[Secret.MountType, str]] = ..., env_var: _Optional[_Union[Secret.MountEnvVar, _Mapping]] = ..., file: _Optional[_Union[Secret.MountFile, _Mapping]] = ...) -> None: ... class OAuth2Client(_message.Message): __slots__ = ["client_id", "client_secret"] diff --git a/gen/pb_python/flyteidl/service/flyteadmin/README.md b/gen/pb_python/flyteidl/service/flyteadmin/README.md index a9632dffc..3be1e8eda 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/README.md +++ b/gen/pb_python/flyteidl/service/flyteadmin/README.md @@ -390,6 +390,8 @@ Class | Method | HTTP request | Description - [RuntimeMetadataRuntimeType](docs/RuntimeMetadataRuntimeType.md) - [SchemaColumnSchemaColumnType](docs/SchemaColumnSchemaColumnType.md) - [SchemaTypeSchemaColumn](docs/SchemaTypeSchemaColumn.md) + - [SecretMountEnvVar](docs/SecretMountEnvVar.md) + - [SecretMountFile](docs/SecretMountFile.md) - [SecretMountType](docs/SecretMountType.md) - [SortDirection](docs/SortDirection.md) - [SqlDialect](docs/SqlDialect.md) diff --git a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py index 22f0de799..88ca7d6bf 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py +++ b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py @@ -281,6 +281,8 @@ from flyteadmin.models.runtime_metadata_runtime_type import RuntimeMetadataRuntimeType from flyteadmin.models.schema_column_schema_column_type import SchemaColumnSchemaColumnType from flyteadmin.models.schema_type_schema_column import SchemaTypeSchemaColumn +from flyteadmin.models.secret_mount_env_var import SecretMountEnvVar +from flyteadmin.models.secret_mount_file import SecretMountFile from flyteadmin.models.secret_mount_type import SecretMountType from flyteadmin.models.sort_direction import SortDirection from flyteadmin.models.sql_dialect import SqlDialect diff --git a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py index 1f271478d..c25683215 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py +++ b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py @@ -274,6 +274,8 @@ from flyteadmin.models.runtime_metadata_runtime_type import RuntimeMetadataRuntimeType from flyteadmin.models.schema_column_schema_column_type import SchemaColumnSchemaColumnType from flyteadmin.models.schema_type_schema_column import SchemaTypeSchemaColumn +from flyteadmin.models.secret_mount_env_var import SecretMountEnvVar +from flyteadmin.models.secret_mount_file import SecretMountFile from flyteadmin.models.secret_mount_type import SecretMountType from flyteadmin.models.sort_direction import SortDirection from flyteadmin.models.sql_dialect import SqlDialect diff --git a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_secret.py b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_secret.py index 0ea0f894a..3eb5855f7 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_secret.py +++ b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_secret.py @@ -16,6 +16,8 @@ import six +from flyteadmin.models.secret_mount_env_var import SecretMountEnvVar # noqa: F401,E501 +from flyteadmin.models.secret_mount_file import SecretMountFile # noqa: F401,E501 from flyteadmin.models.secret_mount_type import SecretMountType # noqa: F401,E501 @@ -37,7 +39,8 @@ class CoreSecret(object): 'group_version': 'str', 'key': 'str', 'mount_requirement': 'SecretMountType', - 'env_name': 'str' + 'env_var': 'SecretMountEnvVar', + 'file': 'SecretMountFile' } attribute_map = { @@ -45,17 +48,19 @@ class CoreSecret(object): 'group_version': 'group_version', 'key': 'key', 'mount_requirement': 'mount_requirement', - 'env_name': 'env_name' + 'env_var': 'env_var', + 'file': 'file' } - def __init__(self, group=None, group_version=None, key=None, mount_requirement=None, env_name=None): # noqa: E501 + def __init__(self, group=None, group_version=None, key=None, mount_requirement=None, env_var=None, file=None): # noqa: E501 """CoreSecret - a model defined in Swagger""" # noqa: E501 self._group = None self._group_version = None self._key = None self._mount_requirement = None - self._env_name = None + self._env_var = None + self._file = None self.discriminator = None if group is not None: @@ -66,8 +71,10 @@ def __init__(self, group=None, group_version=None, key=None, mount_requirement=N self.key = key if mount_requirement is not None: self.mount_requirement = mount_requirement - if env_name is not None: - self.env_name = env_name + if env_var is not None: + self.env_var = env_var + if file is not None: + self.file = file @property def group(self): @@ -154,25 +161,46 @@ def mount_requirement(self, mount_requirement): self._mount_requirement = mount_requirement @property - def env_name(self): - """Gets the env_name of this CoreSecret. # noqa: E501 + def env_var(self): + """Gets the env_var of this CoreSecret. # noqa: E501 - :return: The env_name of this CoreSecret. # noqa: E501 - :rtype: str + :return: The env_var of this CoreSecret. # noqa: E501 + :rtype: SecretMountEnvVar """ - return self._env_name + return self._env_var - @env_name.setter - def env_name(self, env_name): - """Sets the env_name of this CoreSecret. + @env_var.setter + def env_var(self, env_var): + """Sets the env_var of this CoreSecret. - :param env_name: The env_name of this CoreSecret. # noqa: E501 - :type: str + :param env_var: The env_var of this CoreSecret. # noqa: E501 + :type: SecretMountEnvVar + """ + + self._env_var = env_var + + @property + def file(self): + """Gets the file of this CoreSecret. # noqa: E501 + + + :return: The file of this CoreSecret. # noqa: E501 + :rtype: SecretMountFile + """ + return self._file + + @file.setter + def file(self, file): + """Sets the file of this CoreSecret. + + + :param file: The file of this CoreSecret. # noqa: E501 + :type: SecretMountFile """ - self._env_name = env_name + self._file = file def to_dict(self): """Returns the model properties as a dict""" diff --git a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_env_var.py b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_env_var.py new file mode 100644 index 000000000..78eefe29f --- /dev/null +++ b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_env_var.py @@ -0,0 +1,115 @@ +# 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 SecretMountEnvVar(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 = { + 'name': 'str' + } + + attribute_map = { + 'name': 'name' + } + + def __init__(self, name=None): # noqa: E501 + """SecretMountEnvVar - a model defined in Swagger""" # noqa: E501 + + self._name = None + self.discriminator = None + + if name is not None: + self.name = name + + @property + def name(self): + """Gets the name of this SecretMountEnvVar. # noqa: E501 + + + :return: The name of this SecretMountEnvVar. # noqa: E501 + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """Sets the name of this SecretMountEnvVar. + + + :param name: The name of this SecretMountEnvVar. # noqa: E501 + :type: str + """ + + self._name = name + + 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(SecretMountEnvVar, 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, SecretMountEnvVar): + 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/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_file.py b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_file.py new file mode 100644 index 000000000..0ab642085 --- /dev/null +++ b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_file.py @@ -0,0 +1,115 @@ +# 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 SecretMountFile(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 = { + 'path': 'str' + } + + attribute_map = { + 'path': 'path' + } + + def __init__(self, path=None): # noqa: E501 + """SecretMountFile - a model defined in Swagger""" # noqa: E501 + + self._path = None + self.discriminator = None + + if path is not None: + self.path = path + + @property + def path(self): + """Gets the path of this SecretMountFile. # noqa: E501 + + + :return: The path of this SecretMountFile. # noqa: E501 + :rtype: str + """ + return self._path + + @path.setter + def path(self, path): + """Sets the path of this SecretMountFile. + + + :param path: The path of this SecretMountFile. # noqa: E501 + :type: str + """ + + self._path = path + + 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(SecretMountFile, 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, SecretMountFile): + 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/gen/pb_python/flyteidl/service/flyteadmin/test/test_secret_mount_env_var.py b/gen/pb_python/flyteidl/service/flyteadmin/test/test_secret_mount_env_var.py new file mode 100644 index 000000000..0bb47c916 --- /dev/null +++ b/gen/pb_python/flyteidl/service/flyteadmin/test/test_secret_mount_env_var.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.secret_mount_env_var import SecretMountEnvVar # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestSecretMountEnvVar(unittest.TestCase): + """SecretMountEnvVar unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testSecretMountEnvVar(self): + """Test SecretMountEnvVar""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.secret_mount_env_var.SecretMountEnvVar() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/gen/pb_python/flyteidl/service/flyteadmin/test/test_secret_mount_file.py b/gen/pb_python/flyteidl/service/flyteadmin/test/test_secret_mount_file.py new file mode 100644 index 000000000..bd922eb6f --- /dev/null +++ b/gen/pb_python/flyteidl/service/flyteadmin/test/test_secret_mount_file.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.secret_mount_file import SecretMountFile # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestSecretMountFile(unittest.TestCase): + """SecretMountFile unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testSecretMountFile(self): + """Test SecretMountFile""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.secret_mount_file.SecretMountFile() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/gen/pb_rust/flyteidl.core.rs b/gen/pb_rust/flyteidl.core.rs index 6687fc9e0..824da0aab 100644 --- a/gen/pb_rust/flyteidl.core.rs +++ b/gen/pb_rust/flyteidl.core.rs @@ -758,16 +758,33 @@ pub struct Secret { /// if the underlying key management system cannot satisfy that requirement. If not provided, the default location /// will depend on the key management system. /// +optional + #[deprecated] #[prost(enumeration="secret::MountType", tag="4")] pub mount_requirement: i32, - /// The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default - /// FLYTE_SECRETS_ENV_PREFIX prefix will be used. + /// mount_target is optional. Indicates how the secret should be mounted. Secrets can be mounted as file, or as + /// environment variable. /// +optional - #[prost(string, tag="5")] - pub env_name: ::prost::alloc::string::String, + #[prost(oneof="secret::MountTarget", tags="5, 6")] + pub mount_target: ::core::option::Option, } /// Nested message and enum types in `Secret`. pub mod secret { + /// The name of the environment variable if the Secret is injected as environment variable. If ommitted, the default + /// FLYTE_SECRETS_ENV_PREFIX prefix will be used. + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] + pub struct MountEnvVar { + #[prost(string, tag="1")] + pub name: ::prost::alloc::string::String, + } + /// The path where the Secret will be mounted. The execution will fail if the underlying key management system cannot + /// satisfy that requirement. If not provided, the default location will depend on the key management system. + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] + pub struct MountFile { + #[prost(string, tag="1")] + pub path: ::prost::alloc::string::String, + } #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum MountType { @@ -800,6 +817,17 @@ pub mod secret { } } } + /// mount_target is optional. Indicates how the secret should be mounted. Secrets can be mounted as file, or as + /// environment variable. + /// +optional + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum MountTarget { + #[prost(message, tag="5")] + EnvVar(MountEnvVar), + #[prost(message, tag="6")] + File(MountFile), + } } /// OAuth2Client encapsulates OAuth2 Client Credentials to be used when making calls on behalf of that task. #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/protos/flyteidl/core/security.proto b/protos/flyteidl/core/security.proto index 1c2d28ad4..6d2f1057e 100644 --- a/protos/flyteidl/core/security.proto +++ b/protos/flyteidl/core/security.proto @@ -42,12 +42,27 @@ message Secret { // if the underlying key management system cannot satisfy that requirement. If not provided, the default location // will depend on the key management system. // +optional - MountType mount_requirement = 4; + MountType mount_requirement = 4 [deprecated=true]; - // The name of the environment variable, if the Secret is injected as environment variable. If ommitted, the default - // FLYTE_SECRETS_ENV_PREFIX prefix will be used. + // mount_target is optional. Indicates how the secret should be mounted. Secrets can be mounted as file, or as + // environment variable. // +optional - string env_name = 5; + oneof mount_target { + MountEnvVar env_var = 5; + MountFile file = 6; + } + + // The name of the environment variable if the Secret is injected as environment variable. If ommitted, the default + // FLYTE_SECRETS_ENV_PREFIX prefix will be used. + message MountEnvVar { + string name = 1; + } + + // The path where the Secret will be mounted. The execution will fail if the underlying key management system cannot + // satisfy that requirement. If not provided, the default location will depend on the key management system. + message MountFile { + string path = 1; + } } // OAuth2Client encapsulates OAuth2 Client Credentials to be used when making calls on behalf of that task.