# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: eolymp/atlas/atlas.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 eolymp.annotations import http_pb2 as eolymp_dot_annotations_dot_http__pb2
from eolymp.annotations import ratelimit_pb2 as eolymp_dot_annotations_dot_ratelimit__pb2
from eolymp.annotations import scope_pb2 as eolymp_dot_annotations_dot_scope__pb2
from eolymp.annotations import service_pb2 as eolymp_dot_annotations_dot_service__pb2
from eolymp.atlas import attachment_pb2 as eolymp_dot_atlas_dot_attachment__pb2
from eolymp.atlas import category_pb2 as eolymp_dot_atlas_dot_category__pb2
from eolymp.atlas import permission_pb2 as eolymp_dot_atlas_dot_permission__pb2
from eolymp.atlas import problem_pb2 as eolymp_dot_atlas_dot_problem__pb2
from eolymp.atlas import score_pb2 as eolymp_dot_atlas_dot_score__pb2
from eolymp.atlas import solution_pb2 as eolymp_dot_atlas_dot_solution__pb2
from eolymp.atlas import statement_pb2 as eolymp_dot_atlas_dot_statement__pb2
from eolymp.atlas import submission_pb2 as eolymp_dot_atlas_dot_submission__pb2
from eolymp.atlas import template_pb2 as eolymp_dot_atlas_dot_template__pb2
from eolymp.atlas import test_pb2 as eolymp_dot_atlas_dot_test__pb2
from eolymp.atlas import testset_pb2 as eolymp_dot_atlas_dot_testset__pb2
from eolymp.atlas import version_pb2 as eolymp_dot_atlas_dot_version__pb2
from eolymp.executor import interactor_pb2 as eolymp_dot_executor_dot_interactor__pb2
from eolymp.executor import verifier_pb2 as eolymp_dot_executor_dot_verifier__pb2
from eolymp.wellknown import expression_pb2 as eolymp_dot_wellknown_dot_expression__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x65olymp/atlas/atlas.proto\x12\x0c\x65olymp.atlas\x1a\x1d\x65olymp/annotations/http.proto\x1a\"eolymp/annotations/ratelimit.proto\x1a\x1e\x65olymp/annotations/scope.proto\x1a eolymp/annotations/service.proto\x1a\x1d\x65olymp/atlas/attachment.proto\x1a\x1b\x65olymp/atlas/category.proto\x1a\x1d\x65olymp/atlas/permission.proto\x1a\x1a\x65olymp/atlas/problem.proto\x1a\x18\x65olymp/atlas/score.proto\x1a\x1b\x65olymp/atlas/solution.proto\x1a\x1c\x65olymp/atlas/statement.proto\x1a\x1d\x65olymp/atlas/submission.proto\x1a\x1b\x65olymp/atlas/template.proto\x1a\x17\x65olymp/atlas/test.proto\x1a\x1a\x65olymp/atlas/testset.proto\x1a\x1a\x65olymp/atlas/version.proto\x1a eolymp/executor/interactor.proto\x1a\x1e\x65olymp/executor/verifier.proto\x1a!eolymp/wellknown/expression.proto\"\xf3\x02\n\x11ListProblemsInput\x12\x0e\n\x06offset\x18\n \x01(\x05\x12\x0c\n\x04size\x18\x0b \x01(\x05\x12\x37\n\x07\x66ilters\x18( \x01(\x0b\x32&.eolymp.atlas.ListProblemsInput.Filter\x1a\x86\x02\n\x06\x46ilter\x12*\n\x02id\x18\x01 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x33\n\x0b\x63\x61tegory_id\x18\x02 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x34\n\nis_visible\x18\x03 \x03(\x0b\x32 .eolymp.wellknown.ExpressionBool\x12\x34\n\nis_private\x18\x04 \x03(\x0b\x32 .eolymp.wellknown.ExpressionBool\x12/\n\x06number\x18\x05 \x03(\x0b\x32\x1f.eolymp.wellknown.ExpressionInt\"I\n\x12ListProblemsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12$\n\x05items\x18\x02 \x03(\x0b\x32\x15.eolymp.atlas.Problem\"h\n\x12\x43reateProblemInput\x12&\n\x07problem\x18\x01 \x01(\x0b\x32\x15.eolymp.atlas.Problem\x12*\n\tstatement\x18\x02 \x01(\x0b\x32\x17.eolymp.atlas.Statement\")\n\x13\x43reateProblemOutput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"(\n\x12\x44\x65leteProblemInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65leteProblemOutput\"?\n\x14\x44\x65scribeProblemInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0bproblem_ern\x18\x02 \x01(\t\"?\n\x15\x44\x65scribeProblemOutput\x12&\n\x07problem\x18\x01 \x01(\x0b\x32\x15.eolymp.atlas.Problem\":\n\x13ListStatementsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"M\n\x14ListStatementsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12&\n\x05items\x18\x02 \x03(\x0b\x32\x17.eolymp.atlas.Statement\"S\n\x16\x44\x65scribeStatementInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x14\n\x0cstatement_id\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"E\n\x17\x44\x65scribeStatementOutput\x12*\n\tstatement\x18\x01 \x01(\x0b\x32\x17.eolymp.atlas.Statement\"V\n\x14\x43reateStatementInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12*\n\tstatement\x18\x02 \x01(\x0b\x32\x17.eolymp.atlas.Statement\"-\n\x15\x43reateStatementOutput\x12\x14\n\x0cstatement_id\x18\x01 \x01(\t\"l\n\x14UpdateStatementInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x14\n\x0cstatement_id\x18\x02 \x01(\t\x12*\n\tstatement\x18\x03 \x01(\x0b\x32\x17.eolymp.atlas.Statement\"\x17\n\x15UpdateStatementOutput\"@\n\x14\x44\x65leteStatementInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x14\n\x0cstatement_id\x18\x02 \x01(\t\"\x17\n\x15\x44\x65leteStatementOutput\"V\n\x13UpdateVerifierInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12+\n\x08verifier\x18\x02 \x01(\x0b\x32\x19.eolymp.executor.Verifier\"\x16\n\x14UpdateVerifierOutput\"<\n\x15\x44\x65scribeVerifierInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"E\n\x16\x44\x65scribeVerifierOutput\x12+\n\x08verifier\x18\x01 \x01(\x0b\x32\x19.eolymp.executor.Verifier\"\\\n\x15UpdateInteractorInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12/\n\ninteractor\x18\x02 \x01(\x0b\x32\x1b.eolymp.executor.Interactor\"\x18\n\x16UpdateInteractorOutput\">\n\x17\x44\x65scribeInteractorInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"K\n\x18\x44\x65scribeInteractorOutput\x12/\n\ninteractor\x18\x01 \x01(\x0b\x32\x1b.eolymp.executor.Interactor\"8\n\x11ListTestsetsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"I\n\x12ListTestsetsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12$\n\x05items\x18\x02 \x03(\x0b\x32\x15.eolymp.atlas.Testset\"O\n\x14\x44\x65scribeTestsetInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x12\n\ntestset_id\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"?\n\x15\x44\x65scribeTestsetOutput\x12&\n\x07testset\x18\x01 \x01(\x0b\x32\x15.eolymp.atlas.Testset\"P\n\x12\x43reateTestsetInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12&\n\x07testset\x18\x02 \x01(\x0b\x32\x15.eolymp.atlas.Testset\"!\n\x13\x43reateTestsetOutput\x12\n\n\x02id\x18\x01 \x01(\t\"d\n\x12UpdateTestsetInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x12\n\ntestset_id\x18\x02 \x01(\t\x12&\n\x07testset\x18\x03 \x01(\x0b\x32\x15.eolymp.atlas.Testset\"\x15\n\x13UpdateTestsetOutput\"<\n\x12\x44\x65leteTestsetInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x12\n\ntestset_id\x18\x02 \x01(\t\"\x15\n\x13\x44\x65leteTestsetOutput\"8\n\x11ListExamplesInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\":\n\x12ListExamplesOutput\x12$\n\x08\x65xamples\x18\x02 \x03(\x0b\x32\x12.eolymp.atlas.Test\"I\n\x0eListTestsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x12\n\ntestset_id\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"C\n\x0fListTestsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12!\n\x05items\x18\x02 \x03(\x0b\x32\x12.eolymp.atlas.Test\"]\n\x11\x44\x65scribeTestInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x12\n\ntestset_id\x18\x02 \x01(\t\x12\x0f\n\x07test_id\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"6\n\x12\x44\x65scribeTestOutput\x12 \n\x04test\x18\x01 \x01(\x0b\x32\x12.eolymp.atlas.Test\"[\n\x0f\x43reateTestInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x12\n\ntestset_id\x18\x02 \x01(\t\x12 \n\x04test\x18\x03 \x01(\x0b\x32\x12.eolymp.atlas.Test\"#\n\x10\x43reateTestOutput\x12\x0f\n\x07test_id\x18\x01 \x01(\t\"l\n\x0fUpdateTestInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x12\n\ntestset_id\x18\x02 \x01(\t\x12\x0f\n\x07test_id\x18\x03 \x01(\t\x12 \n\x04test\x18\x04 \x01(\x0b\x32\x12.eolymp.atlas.Test\"\x12\n\x10UpdateTestOutput\"J\n\x0f\x44\x65leteTestInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x12\n\ntestset_id\x18\x02 \x01(\t\x12\x0f\n\x07test_id\x18\x03 \x01(\t\"\x12\n\x10\x44\x65leteTestOutput\"*\n\x14ListPermissionsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"@\n\x15ListPermissionsOutput\x12\'\n\x05items\x18\x02 \x03(\x0b\x32\x18.eolymp.atlas.Permission\"X\n\x14GrantPermissionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12,\n\npermission\x18\x02 \x01(\x0b\x32\x18.eolymp.atlas.Permission\"\x17\n\x15GrantPermissionOutput\"<\n\x15RevokePermissionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"\x18\n\x16RevokePermissionOutput\"W\n\x17\x43reateCodeTemplateInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12(\n\x08template\x18\x02 \x01(\x0b\x32\x16.eolymp.atlas.Template\"/\n\x18\x43reateCodeTemplateOutput\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\"l\n\x17UpdateCodeTemplateInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0btemplate_id\x18\x02 \x01(\t\x12(\n\x08template\x18\x03 \x01(\x0b\x32\x16.eolymp.atlas.Template\"\x1a\n\x18UpdateCodeTemplateOutput\"B\n\x17\x44\x65leteCodeTemplateInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0btemplate_id\x18\x02 \x01(\t\"\x1a\n\x18\x44\x65leteCodeTemplateOutput\"=\n\x16ListCodeTemplatesInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"O\n\x17ListCodeTemplatesOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12%\n\x05items\x18\x02 \x03(\x0b\x32\x16.eolymp.atlas.Template\"l\n\x19\x44\x65scribeCodeTemplateInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0btemplate_id\x18\x02 \x01(\t\x12\x15\n\x0ctemplate_ern\x18\x8fN \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"F\n\x1a\x44\x65scribeCodeTemplateOutput\x12(\n\x08template\x18\x01 \x01(\x0b\x32\x16.eolymp.atlas.Template\"Y\n\x15\x43reateAttachmentInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12,\n\nattachment\x18\x02 \x01(\x0b\x32\x18.eolymp.atlas.Attachment\"/\n\x16\x43reateAttachmentOutput\x12\x15\n\rattachment_id\x18\x01 \x01(\t\"p\n\x15UpdateAttachmentInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x15\n\rattachment_id\x18\x02 \x01(\t\x12,\n\nattachment\x18\x03 \x01(\x0b\x32\x18.eolymp.atlas.Attachment\"\x18\n\x16UpdateAttachmentOutput\"B\n\x15\x44\x65leteAttachmentInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x15\n\rattachment_id\x18\x02 \x01(\t\"\x18\n\x16\x44\x65leteAttachmentOutput\"\xfd\x01\n\x14ListAttachmentsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\n \x01(\x05\x12\x0c\n\x04size\x18\x0b \x01(\x05\x12:\n\x07\x66ilters\x18( \x01(\x0b\x32).eolymp.atlas.ListAttachmentsInput.Filter\x12\x0f\n\x07version\x18\x64 \x01(\r\x1a\x66\n\x06\x46ilter\x12*\n\x02id\x18\x01 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x30\n\x04name\x18\x02 \x03(\x0b\x32\".eolymp.wellknown.ExpressionString\"O\n\x15ListAttachmentsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12\'\n\x05items\x18\x02 \x03(\x0b\x32\x18.eolymp.atlas.Attachment\"U\n\x17\x44\x65scribeAttachmentInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x15\n\rattachment_id\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x64 \x01(\r\"H\n\x18\x44\x65scribeAttachmentOutput\x12,\n\nattachment\x18\x01 \x01(\x0b\x32\x18.eolymp.atlas.Attachment\"\x97\x03\n\x11ListVersionsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\n \x01(\x05\x12\x0c\n\x04size\x18\x0b \x01(\x05\x12\x37\n\x07\x66ilters\x18( \x01(\x0b\x32&.eolymp.atlas.ListVersionsInput.Filter\x1a\x96\x02\n\x06\x46ilter\x12/\n\x06number\x18\x01 \x03(\x0b\x32\x1f.eolymp.wellknown.ExpressionInt\x12\x32\n\ncreated_by\x18\x02 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x39\n\ncreated_at\x18\x03 \x03(\x0b\x32%.eolymp.wellknown.ExpressionTimestamp\x12\x33\n\tchange_op\x18\x04 \x03(\x0b\x32 .eolymp.wellknown.ExpressionEnum\x12\x37\n\x0b\x63hange_path\x18\x05 \x03(\x0b\x32\".eolymp.wellknown.ExpressionString\"I\n\x12ListVersionsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12$\n\x05items\x18\x02 \x03(\x0b\x32\x15.eolymp.atlas.Version\")\n\x13ListProblemTopInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"?\n\x14ListProblemTopOutput\x12\'\n\x05items\x18\x02 \x03(\x0b\x32\x18.eolymp.atlas.Submission\"1\n\x1b\x44\x65scribeProblemGradingInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"\x8d\x01\n\x1c\x44\x65scribeProblemGradingOutput\x12@\n\x06ranges\x18\x02 \x03(\x0b\x32\x30.eolymp.atlas.DescribeProblemGradingOutput.Range\x1a+\n\x05Range\x12\r\n\x05grade\x18\x01 \x01(\r\x12\x13\n\x0bupper_bound\x18\x02 \x01(\x02\"S\n\x13\x43reateSolutionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12(\n\x08solution\x18\x02 \x01(\x0b\x32\x16.eolymp.atlas.Solution\"+\n\x14\x43reateSolutionOutput\x12\x13\n\x0bsolution_id\x18\x01 \x01(\t\"h\n\x13UpdateSolutionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0bsolution_id\x18\x02 \x01(\t\x12(\n\x08solution\x18\x03 \x01(\x0b\x32\x16.eolymp.atlas.Solution\"\x16\n\x14UpdateSolutionOutput\">\n\x13\x44\x65leteSolutionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0bsolution_id\x18\x02 \x01(\t\"\x16\n\x14\x44\x65leteSolutionOutput\"\xc0\x03\n\x12ListSolutionsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\n \x01(\x05\x12\x0c\n\x04size\x18\x0b \x01(\x05\x12\x38\n\x07\x66ilters\x18( \x01(\x0b\x32\'.eolymp.atlas.ListSolutionsInput.Filter\x1a\xbd\x02\n\x06\x46ilter\x12*\n\x02id\x18\x01 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x32\n\nproblem_id\x18\x02 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x31\n\tauthor_id\x18\x03 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12;\n\x11moderation_status\x18\x04 \x03(\x0b\x32 .eolymp.wellknown.ExpressionEnum\x12\x33\n\tpublished\x18\x05 \x03(\x0b\x32 .eolymp.wellknown.ExpressionBool\x12.\n\x04lang\x18\x06 \x03(\x0b\x32 .eolymp.wellknown.ExpressionEnum\"K\n\x13ListSolutionsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12%\n\x05items\x18\x02 \x03(\x0b\x32\x16.eolymp.atlas.Solution\"@\n\x15\x44\x65scribeSolutionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0bsolution_id\x18\x02 \x01(\t\"B\n\x16\x44\x65scribeSolutionOutput\x12(\n\x08solution\x18\x01 \x01(\x0b\x32\x16.eolymp.atlas.Solution\"?\n\x14PublishSolutionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0bsolution_id\x18\x02 \x01(\t\"\x17\n\x15PublishSolutionOutput\"A\n\x16UnpublishSolutionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0bsolution_id\x18\x02 \x01(\t\"\x19\n\x17UnpublishSolutionOutput\"?\n\x14\x41pproveSolutionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0bsolution_id\x18\x02 \x01(\t\"\x17\n\x15\x41pproveSolutionOutput\"O\n\x13RefuseSolutionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x13\n\x0bsolution_id\x18\x02 \x01(\t\x12\x0f\n\x07\x63omment\x18\x03 \x01(\t\"\x16\n\x14RefuseSolutionOutput\"\xc2\x02\n\x13ListCategoriesInput\x12\x0e\n\x06offset\x18\n \x01(\x05\x12\x0c\n\x04size\x18\x0b \x01(\x05\x12\x39\n\x07\x66ilters\x18( \x01(\x0b\x32(.eolymp.atlas.ListCategoriesInput.Filter\x1a\xd1\x01\n\x06\x46ilter\x12*\n\x02id\x18\x01 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x31\n\tparent_id\x18\x02 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x32\n\nproblem_id\x18\x04 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x34\n\nis_visible\x18\x03 \x03(\x0b\x32 .eolymp.wellknown.ExpressionBool\"L\n\x14ListCategoriesOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12%\n\x05items\x18\x02 \x03(\x0b\x32\x16.eolymp.atlas.Category\"?\n\x13\x43reateCategoryInput\x12(\n\x08\x63\x61tegory\x18\x01 \x01(\x0b\x32\x16.eolymp.atlas.Category\"+\n\x14\x43reateCategoryOutput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\"T\n\x13UpdateCategoryInput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\x12(\n\x08\x63\x61tegory\x18\x02 \x01(\x0b\x32\x16.eolymp.atlas.Category\"\x16\n\x14UpdateCategoryOutput\"*\n\x13\x44\x65leteCategoryInput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\"\x16\n\x14\x44\x65leteCategoryOutput\",\n\x15\x44\x65scribeCategoryInput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\"B\n\x16\x44\x65scribeCategoryOutput\x12(\n\x08\x63\x61tegory\x18\x01 \x01(\x0b\x32\x16.eolymp.atlas.Category\"M\n\x13\x41ssignCategoryInput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\x12\x12\n\nproblem_id\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\r\"\x16\n\x14\x41ssignCategoryOutput\"@\n\x15UnassignCategoryInput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\x12\x12\n\nproblem_id\x18\x02 \x01(\t\"\x18\n\x16UnassignCategoryOutput\"I\n\x15\x43reateSubmissionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0c\n\x04lang\x18\x02 \x01(\t\x12\x0e\n\x06source\x18\x03 \x01(\t\"/\n\x16\x43reateSubmissionOutput\x12\x15\n\rsubmission_id\x18\x01 \x01(\t\"D\n\x17\x44\x65scribeSubmissionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x15\n\rsubmission_id\x18\x02 \x01(\t\"H\n\x18\x44\x65scribeSubmissionOutput\x12,\n\nsubmission\x18\x01 \x01(\x0b\x32\x18.eolymp.atlas.Submission\"Q\n\x15RetestSubmissionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x15\n\rsubmission_id\x18\x02 \x01(\t\x12\r\n\x05\x64\x65\x62ug\x18\x03 \x01(\x08\"\x18\n\x16RetestSubmissionOutput\"9\n\x12\x44\x65scribeScoreInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"9\n\x13\x44\x65scribeScoreOutput\x12\"\n\x05score\x18\x01 \x01(\x0b\x32\x13.eolymp.atlas.Score\"<\n\x15UpdateVisibilityInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07visible\x18\x02 \x01(\x08\"\x18\n\x16UpdateVisibilityOutput\"9\n\x12UpdatePrivacyInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07private\x18\x02 \x01(\x08\"\x15\n\x13UpdatePrivacyOutput2\xe3V\n\x05\x41tlas\x12\x91\x01\n\rCreateProblem\x12 .eolymp.atlas.CreateProblemInput\x1a!.eolymp.atlas.CreateProblemOutput\";\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x0b\"\t/problems\x12\x9e\x01\n\rDeleteProblem\x12 .eolymp.atlas.DeleteProblemInput\x1a!.eolymp.atlas.DeleteProblemOutput\"H\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x18*\x16/problems/{problem_id}\x12\x8d\x01\n\x0cListProblems\x12\x1f.eolymp.atlas.ListProblemsInput\x1a .eolymp.atlas.ListProblemsOutput\":\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x0b\x12\t/problems\x12\xa3\x01\n\x0f\x44\x65scribeProblem\x12\".eolymp.atlas.DescribeProblemInput\x1a#.eolymp.atlas.DescribeProblemOutput\"G\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x18\x12\x16/problems/{problem_id}\x12\xb2\x01\n\x10UpdateVisibility\x12#.eolymp.atlas.UpdateVisibilityInput\x1a$.eolymp.atlas.UpdateVisibilityOutput\"S\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02#\"!/problems/{problem_id}/visibility\x12\xa6\x01\n\rUpdatePrivacy\x12 .eolymp.atlas.UpdatePrivacyInput\x1a!.eolymp.atlas.UpdatePrivacyOutput\"P\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02 \"\x1e/problems/{problem_id}/privacy\x12\xa3\x01\n\x0cListExamples\x12\x1f.eolymp.atlas.ListExamplesInput\x1a .eolymp.atlas.ListExamplesOutput\"P\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02!\x12\x1f/problems/{problem_id}/examples\x12\xaa\x01\n\x0eUpdateVerifier\x12!.eolymp.atlas.UpdateVerifierInput\x1a\".eolymp.atlas.UpdateVerifierOutput\"Q\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02!\x1a\x1f/problems/{problem_id}/verifier\x12\xb0\x01\n\x10\x44\x65scribeVerifier\x12#.eolymp.atlas.DescribeVerifierInput\x1a$.eolymp.atlas.DescribeVerifierOutput\"Q\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x00@\xf8\xe2\n\n\x82\xd3\xe4\x93\x02!\x12\x1f/problems/{problem_id}/verifier\x12\xb2\x01\n\x10UpdateInteractor\x12#.eolymp.atlas.UpdateInteractorInput\x1a$.eolymp.atlas.UpdateInteractorOutput\"S\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02#\x1a!/problems/{problem_id}/interactor\x12\xb8\x01\n\x12\x44\x65scribeInteractor\x12%.eolymp.atlas.DescribeInteractorInput\x1a&.eolymp.atlas.DescribeInteractorOutput\"S\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x00@\xf8\xe2\n\n\x82\xd3\xe4\x93\x02#\x12!/problems/{problem_id}/interactor\x12\xaf\x01\n\x0f\x43reateStatement\x12\".eolymp.atlas.CreateStatementInput\x1a#.eolymp.atlas.CreateStatementOutput\"S\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02#\x1a!/problems/{problem_id}/statements\x12\xbe\x01\n\x0fUpdateStatement\x12\".eolymp.atlas.UpdateStatementInput\x1a#.eolymp.atlas.UpdateStatementOutput\"b\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x32\x1a\x30/problems/{problem_id}/statements/{statement_id}\x12\xbe\x01\n\x0f\x44\x65leteStatement\x12\".eolymp.atlas.DeleteStatementInput\x1a#.eolymp.atlas.DeleteStatementOutput\"b\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x32*0/problems/{problem_id}/statements/{statement_id}\x12\xab\x01\n\x0eListStatements\x12!.eolymp.atlas.ListStatementsInput\x1a\".eolymp.atlas.ListStatementsOutput\"R\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02#\x12!/problems/{problem_id}/statements\x12\xc3\x01\n\x11\x44\x65scribeStatement\x12$.eolymp.atlas.DescribeStatementInput\x1a%.eolymp.atlas.DescribeStatementOutput\"a\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x32\x12\x30/problems/{problem_id}/statements/{statement_id}\x12\xa7\x01\n\rCreateTestset\x12 .eolymp.atlas.CreateTestsetInput\x1a!.eolymp.atlas.CreateTestsetOutput\"Q\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0@\xf8\xe2\n2\x82\xd3\xe4\x93\x02!\"\x1f/problems/{problem_id}/testsets\x12\xb4\x01\n\rUpdateTestset\x12 .eolymp.atlas.UpdateTestsetInput\x1a!.eolymp.atlas.UpdateTestsetOutput\"^\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0@\xf8\xe2\n2\x82\xd3\xe4\x93\x02.\x1a,/problems/{problem_id}/testsets/{testset_id}\x12\xb4\x01\n\rDeleteTestset\x12 .eolymp.atlas.DeleteTestsetInput\x1a!.eolymp.atlas.DeleteTestsetOutput\"^\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0@\xf8\xe2\n2\x82\xd3\xe4\x93\x02.*,/problems/{problem_id}/testsets/{testset_id}\x12\xa4\x01\n\x0cListTestsets\x12\x1f.eolymp.atlas.ListTestsetsInput\x1a .eolymp.atlas.ListTestsetsOutput\"Q\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00 A\xf8\xe2\n2\x82\xd3\xe4\x93\x02!\x12\x1f/problems/{problem_id}/testsets\x12\xba\x01\n\x0f\x44\x65scribeTestset\x12\".eolymp.atlas.DescribeTestsetInput\x1a#.eolymp.atlas.DescribeTestsetOutput\"^\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00 A\xf8\xe2\n2\x82\xd3\xe4\x93\x02.\x12,/problems/{problem_id}/testsets/{testset_id}\x12\xb2\x01\n\nCreateTest\x12\x1d.eolymp.atlas.CreateTestInput\x1a\x1e.eolymp.atlas.CreateTestOutput\"e\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0c\xf5\xe2\n\x00\x00 A\xf8\xe2\n\xc8\x01\x82\xd3\xe4\x93\x02\x34\"2/problems/{problem_id}/testsets/{testset_id}/tests\x12\xbc\x01\n\nUpdateTest\x12\x1d.eolymp.atlas.UpdateTestInput\x1a\x1e.eolymp.atlas.UpdateTestOutput\"o\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0c\xf5\xe2\n\x00\x00 A\xf8\xe2\n\xc8\x01\x82\xd3\xe4\x93\x02>\x1a</problems/{problem_id}/testsets/{testset_id}/tests/{test_id}\x12\xbc\x01\n\nDeleteTest\x12\x1d.eolymp.atlas.DeleteTestInput\x1a\x1e.eolymp.atlas.DeleteTestOutput\"o\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0c\xf5\xe2\n\x00\x00 A\xf8\xe2\n\xc8\x01\x82\xd3\xe4\x93\x02>*</problems/{problem_id}/testsets/{testset_id}/tests/{test_id}\x12\xae\x01\n\tListTests\x12\x1c.eolymp.atlas.ListTestsInput\x1a\x1d.eolymp.atlas.ListTestsOutput\"d\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00 A\xf8\xe2\n2\x82\xd3\xe4\x93\x02\x34\x12\x32/problems/{problem_id}/testsets/{testset_id}/tests\x12\xc1\x01\n\x0c\x44\x65scribeTest\x12\x1f.eolymp.atlas.DescribeTestInput\x1a .eolymp.atlas.DescribeTestOutput\"n\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00 A\xf8\xe2\n2\x82\xd3\xe4\x93\x02>\x12</problems/{problem_id}/testsets/{testset_id}/tests/{test_id}\x12\xb3\x01\n\x0fGrantPermission\x12\".eolymp.atlas.GrantPermissionInput\x1a#.eolymp.atlas.GrantPermissionOutput\"W\x82\xe3\n\x1a\x8a\xe3\n\x16\x61tlas:permission:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02$\"\"/problems/{problem_id}/permissions\x12\xc0\x01\n\x10RevokePermission\x12#.eolymp.atlas.RevokePermissionInput\x1a$.eolymp.atlas.RevokePermissionOutput\"a\x82\xe3\n\x1a\x8a\xe3\n\x16\x61tlas:permission:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02.*,/problems/{problem_id}/permissions/{user_id}\x12\xb2\x01\n\x0fListPermissions\x12\".eolymp.atlas.ListPermissionsInput\x1a#.eolymp.atlas.ListPermissionsOutput\"V\x82\xe3\n\x19\x8a\xe3\n\x15\x61tlas:permission:read\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02$\x12\"/problems/{problem_id}/permissions\x12\xb7\x01\n\x12\x43reateCodeTemplate\x12%.eolymp.atlas.CreateCodeTemplateInput\x1a&.eolymp.atlas.CreateCodeTemplateOutput\"R\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\"\" /problems/{problem_id}/templates\x12\xc5\x01\n\x12UpdateCodeTemplate\x12%.eolymp.atlas.UpdateCodeTemplateInput\x1a&.eolymp.atlas.UpdateCodeTemplateOutput\"`\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x30\"./problems/{problem_id}/templates/{template_id}\x12\xc5\x01\n\x12\x44\x65leteCodeTemplate\x12%.eolymp.atlas.DeleteCodeTemplateInput\x1a&.eolymp.atlas.DeleteCodeTemplateOutput\"`\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x30*./problems/{problem_id}/templates/{template_id}\x12\xb3\x01\n\x11ListCodeTemplates\x12$.eolymp.atlas.ListCodeTemplatesInput\x1a%.eolymp.atlas.ListCodeTemplatesOutput\"Q\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\"\x12 /problems/{problem_id}/templates\x12\xca\x01\n\x14\x44\x65scribeCodeTemplate\x12\'.eolymp.atlas.DescribeCodeTemplateInput\x1a(.eolymp.atlas.DescribeCodeTemplateOutput\"_\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x30\x12./problems/{problem_id}/templates/{template_id}\x12\xb3\x01\n\x10\x43reateAttachment\x12#.eolymp.atlas.CreateAttachmentInput\x1a$.eolymp.atlas.CreateAttachmentOutput\"T\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02$\"\"/problems/{problem_id}/attachments\x12\xc3\x01\n\x10UpdateAttachment\x12#.eolymp.atlas.UpdateAttachmentInput\x1a$.eolymp.atlas.UpdateAttachmentOutput\"d\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x34\"2/problems/{problem_id}/attachments/{attachment_id}\x12\xc3\x01\n\x10\x44\x65leteAttachment\x12#.eolymp.atlas.DeleteAttachmentInput\x1a$.eolymp.atlas.DeleteAttachmentOutput\"d\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x34*2/problems/{problem_id}/attachments/{attachment_id}\x12\xaf\x01\n\x0fListAttachments\x12\".eolymp.atlas.ListAttachmentsInput\x1a#.eolymp.atlas.ListAttachmentsOutput\"S\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02$\x12\"/problems/{problem_id}/attachments\x12\xc8\x01\n\x12\x44\x65scribeAttachment\x12%.eolymp.atlas.DescribeAttachmentInput\x1a&.eolymp.atlas.DescribeAttachmentOutput\"c\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x34\x12\x32/problems/{problem_id}/attachments/{attachment_id}\x12\x95\x01\n\x0cListVersions\x12\x1f.eolymp.atlas.ListVersionsInput\x1a .eolymp.atlas.ListVersionsOutput\"B\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\x82\xd3\xe4\x93\x02!\x12\x1f/problems/{problem_id}/versions\x12\x95\x01\n\x0eListProblemTop\x12!.eolymp.atlas.ListProblemTopInput\x1a\".eolymp.atlas.ListProblemTopOutput\"<\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\x82\xd3\xe4\x93\x02\x1c\x12\x1a/problems/{problem_id}/top\x12\xb1\x01\n\x16\x44\x65scribeProblemGrading\x12).eolymp.atlas.DescribeProblemGradingInput\x1a*.eolymp.atlas.DescribeProblemGradingOutput\"@\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\x82\xd3\xe4\x93\x02 \x12\x1e/problems/{problem_id}/grading\x12\x90\x01\n\x0e\x43reateSolution\x12!.eolymp.atlas.CreateSolutionInput\x1a\".eolymp.atlas.CreateSolutionOutput\"7\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\"\" /problems/{problem_id}/solutions\x12\x9e\x01\n\x0eUpdateSolution\x12!.eolymp.atlas.UpdateSolutionInput\x1a\".eolymp.atlas.UpdateSolutionOutput\"E\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02\x30\"./problems/{problem_id}/solutions/{solution_id}\x12\x9e\x01\n\x0e\x44\x65leteSolution\x12!.eolymp.atlas.DeleteSolutionInput\x1a\".eolymp.atlas.DeleteSolutionOutput\"E\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02\x30*./problems/{problem_id}/solutions/{solution_id}\x12\xa7\x01\n\rListSolutions\x12 .eolymp.atlas.ListSolutionsInput\x1a!.eolymp.atlas.ListSolutionsOutput\"Q\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\"\x12 /problems/{problem_id}/solutions\x12\xbe\x01\n\x10\x44\x65scribeSolution\x12#.eolymp.atlas.DescribeSolutionInput\x1a$.eolymp.atlas.DescribeSolutionOutput\"_\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x30\x12./problems/{problem_id}/solutions/{solution_id}\x12\xa9\x01\n\x0fPublishSolution\x12\".eolymp.atlas.PublishSolutionInput\x1a#.eolymp.atlas.PublishSolutionOutput\"M\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02\x38\"6/problems/{problem_id}/solutions/{solution_id}/publish\x12\xb1\x01\n\x11UnpublishSolution\x12$.eolymp.atlas.UnpublishSolutionInput\x1a%.eolymp.atlas.UnpublishSolutionOutput\"O\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02:\"8/problems/{problem_id}/solutions/{solution_id}/unpublish\x12\xc4\x01\n\x0f\x41pproveSolution\x12\".eolymp.atlas.ApproveSolutionInput\x1a#.eolymp.atlas.ApproveSolutionOutput\"h\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02\x38\"6/problems/{problem_id}/solutions/{solution_id}/approve\x12\xc0\x01\n\x0eRefuseSolution\x12!.eolymp.atlas.RefuseSolutionInput\x1a\".eolymp.atlas.RefuseSolutionOutput\"g\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02\x37\"5/problems/{problem_id}/solutions/{solution_id}/refuse\x12\x97\x01\n\x0e\x43reateCategory\x12!.eolymp.atlas.CreateCategoryInput\x1a\".eolymp.atlas.CreateCategoryOutput\">\x82\xe3\n\x18\x8a\xe3\n\x14\x61tlas:category:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\r\"\x0b/categories\x12\xa5\x01\n\x0eUpdateCategory\x12!.eolymp.atlas.UpdateCategoryInput\x1a\".eolymp.atlas.UpdateCategoryOutput\"L\x82\xe3\n\x18\x8a\xe3\n\x14\x61tlas:category:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x1b\"\x19/categories/{category_id}\x12\xa5\x01\n\x0e\x44\x65leteCategory\x12!.eolymp.atlas.DeleteCategoryInput\x1a\".eolymp.atlas.DeleteCategoryOutput\"L\x82\xe3\n\x18\x8a\xe3\n\x14\x61tlas:category:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x1b*\x19/categories/{category_id}\x12\x96\x01\n\x0eListCategories\x12!.eolymp.atlas.ListCategoriesInput\x1a\".eolymp.atlas.ListCategoriesOutput\"=\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:category:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\r\x12\x0b/categories\x12\xaa\x01\n\x10\x44\x65scribeCategory\x12#.eolymp.atlas.DescribeCategoryInput\x1a$.eolymp.atlas.DescribeCategoryOutput\"K\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:category:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x1b\x12\x19/categories/{category_id}\x12\xbb\x01\n\x0e\x41ssignCategory\x12!.eolymp.atlas.AssignCategoryInput\x1a\".eolymp.atlas.AssignCategoryOutput\"b\x82\xe3\n\x18\x8a\xe3\n\x14\x61tlas:category:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0@\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02\x31\"//categories/{category_id}/problems/{problem_id}\x12\xc1\x01\n\x10UnassignCategory\x12#.eolymp.atlas.UnassignCategoryInput\x1a$.eolymp.atlas.UnassignCategoryOutput\"b\x82\xe3\n\x18\x8a\xe3\n\x14\x61tlas:category:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0@\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02\x31*//categories/{category_id}/problems/{problem_id}\x12\xa7\x01\n\x10\x43reateSubmission\x12#.eolymp.atlas.CreateSubmissionInput\x1a$.eolymp.atlas.CreateSubmissionOutput\"H\x82\xe3\n\x1a\x8a\xe3\n\x16\x61tlas:submission:write\x82\xd3\xe4\x93\x02$\"\"/problems/{problem_id}/submissions\x12\xbc\x01\n\x12\x44\x65scribeSubmission\x12%.eolymp.atlas.DescribeSubmissionInput\x1a&.eolymp.atlas.DescribeSubmissionOutput\"W\x82\xe3\n\x19\x8a\xe3\n\x15\x61tlas:submission:read\x82\xd3\xe4\x93\x02\x34\x12\x32/problems/{problem_id}/submissions/{submission_id}\x12\xbe\x01\n\x10RetestSubmission\x12#.eolymp.atlas.RetestSubmissionInput\x1a$.eolymp.atlas.RetestSubmissionOutput\"_\x82\xe3\n\x1a\x8a\xe3\n\x16\x61tlas:submission:write\x82\xd3\xe4\x93\x02;\"9/problems/{problem_id}/submissions/{submission_id}/retest\x12\xa2\x01\n\rDescribeScore\x12 .eolymp.atlas.DescribeScoreInput\x1a!.eolymp.atlas.DescribeScoreOutput\"L\x82\xe3\n\x19\x8a\xe3\n\x15\x61tlas:submission:read\x82\xd3\xe4\x93\x02)\x12\'/problems/{problem_id}/scores/{user_id}\x1a\x06\xb2\xe3\n\x02\x08\x01\x42-Z+github.com/eolymp/go-sdk/eolymp/atlas;atlasb\x06proto3')

_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'eolymp.atlas.atlas_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  DESCRIPTOR._serialized_options = b'Z+github.com/eolymp/go-sdk/eolymp/atlas;atlas'
  _ATLAS._options = None
  _ATLAS._serialized_options = b'\262\343\n\002\010\001'
  _ATLAS.methods_by_name['CreateProblem']._options = None
  _ATLAS.methods_by_name['CreateProblem']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002\013\"\t/problems'
  _ATLAS.methods_by_name['DeleteProblem']._options = None
  _ATLAS.methods_by_name['DeleteProblem']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002\030*\026/problems/{problem_id}'
  _ATLAS.methods_by_name['ListProblems']._options = None
  _ATLAS.methods_by_name['ListProblems']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002\013\022\t/problems'
  _ATLAS.methods_by_name['DescribeProblem']._options = None
  _ATLAS.methods_by_name['DescribeProblem']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002\030\022\026/problems/{problem_id}'
  _ATLAS.methods_by_name['UpdateVisibility']._options = None
  _ATLAS.methods_by_name['UpdateVisibility']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002#\"!/problems/{problem_id}/visibility'
  _ATLAS.methods_by_name['UpdatePrivacy']._options = None
  _ATLAS.methods_by_name['UpdatePrivacy']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002 \"\036/problems/{problem_id}/privacy'
  _ATLAS.methods_by_name['ListExamples']._options = None
  _ATLAS.methods_by_name['ListExamples']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002!\022\037/problems/{problem_id}/examples'
  _ATLAS.methods_by_name['UpdateVerifier']._options = None
  _ATLAS.methods_by_name['UpdateVerifier']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002!\032\037/problems/{problem_id}/verifier'
  _ATLAS.methods_by_name['DescribeVerifier']._options = None
  _ATLAS.methods_by_name['DescribeVerifier']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\000@\370\342\n\n\202\323\344\223\002!\022\037/problems/{problem_id}/verifier'
  _ATLAS.methods_by_name['UpdateInteractor']._options = None
  _ATLAS.methods_by_name['UpdateInteractor']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002#\032!/problems/{problem_id}/interactor'
  _ATLAS.methods_by_name['DescribeInteractor']._options = None
  _ATLAS.methods_by_name['DescribeInteractor']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\000@\370\342\n\n\202\323\344\223\002#\022!/problems/{problem_id}/interactor'
  _ATLAS.methods_by_name['CreateStatement']._options = None
  _ATLAS.methods_by_name['CreateStatement']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\200?\370\342\n\005\202\323\344\223\002#\032!/problems/{problem_id}/statements'
  _ATLAS.methods_by_name['UpdateStatement']._options = None
  _ATLAS.methods_by_name['UpdateStatement']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\200?\370\342\n\005\202\323\344\223\0022\0320/problems/{problem_id}/statements/{statement_id}'
  _ATLAS.methods_by_name['DeleteStatement']._options = None
  _ATLAS.methods_by_name['DeleteStatement']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\200?\370\342\n\005\202\323\344\223\0022*0/problems/{problem_id}/statements/{statement_id}'
  _ATLAS.methods_by_name['ListStatements']._options = None
  _ATLAS.methods_by_name['ListStatements']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002#\022!/problems/{problem_id}/statements'
  _ATLAS.methods_by_name['DescribeStatement']._options = None
  _ATLAS.methods_by_name['DescribeStatement']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\0022\0220/problems/{problem_id}/statements/{statement_id}'
  _ATLAS.methods_by_name['CreateTestset']._options = None
  _ATLAS.methods_by_name['CreateTestset']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\240@\370\342\n2\202\323\344\223\002!\"\037/problems/{problem_id}/testsets'
  _ATLAS.methods_by_name['UpdateTestset']._options = None
  _ATLAS.methods_by_name['UpdateTestset']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\240@\370\342\n2\202\323\344\223\002.\032,/problems/{problem_id}/testsets/{testset_id}'
  _ATLAS.methods_by_name['DeleteTestset']._options = None
  _ATLAS.methods_by_name['DeleteTestset']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\240@\370\342\n2\202\323\344\223\002.*,/problems/{problem_id}/testsets/{testset_id}'
  _ATLAS.methods_by_name['ListTestsets']._options = None
  _ATLAS.methods_by_name['ListTestsets']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000 A\370\342\n2\202\323\344\223\002!\022\037/problems/{problem_id}/testsets'
  _ATLAS.methods_by_name['DescribeTestset']._options = None
  _ATLAS.methods_by_name['DescribeTestset']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000 A\370\342\n2\202\323\344\223\002.\022,/problems/{problem_id}/testsets/{testset_id}'
  _ATLAS.methods_by_name['CreateTest']._options = None
  _ATLAS.methods_by_name['CreateTest']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\014\365\342\n\000\000 A\370\342\n\310\001\202\323\344\223\0024\"2/problems/{problem_id}/testsets/{testset_id}/tests'
  _ATLAS.methods_by_name['UpdateTest']._options = None
  _ATLAS.methods_by_name['UpdateTest']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\014\365\342\n\000\000 A\370\342\n\310\001\202\323\344\223\002>\032</problems/{problem_id}/testsets/{testset_id}/tests/{test_id}'
  _ATLAS.methods_by_name['DeleteTest']._options = None
  _ATLAS.methods_by_name['DeleteTest']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\014\365\342\n\000\000 A\370\342\n\310\001\202\323\344\223\002>*</problems/{problem_id}/testsets/{testset_id}/tests/{test_id}'
  _ATLAS.methods_by_name['ListTests']._options = None
  _ATLAS.methods_by_name['ListTests']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000 A\370\342\n2\202\323\344\223\0024\0222/problems/{problem_id}/testsets/{testset_id}/tests'
  _ATLAS.methods_by_name['DescribeTest']._options = None
  _ATLAS.methods_by_name['DescribeTest']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000 A\370\342\n2\202\323\344\223\002>\022</problems/{problem_id}/testsets/{testset_id}/tests/{test_id}'
  _ATLAS.methods_by_name['GrantPermission']._options = None
  _ATLAS.methods_by_name['GrantPermission']._serialized_options = b'\202\343\n\032\212\343\n\026atlas:permission:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002$\"\"/problems/{problem_id}/permissions'
  _ATLAS.methods_by_name['RevokePermission']._options = None
  _ATLAS.methods_by_name['RevokePermission']._serialized_options = b'\202\343\n\032\212\343\n\026atlas:permission:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002.*,/problems/{problem_id}/permissions/{user_id}'
  _ATLAS.methods_by_name['ListPermissions']._options = None
  _ATLAS.methods_by_name['ListPermissions']._serialized_options = b'\202\343\n\031\212\343\n\025atlas:permission:read\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002$\022\"/problems/{problem_id}/permissions'
  _ATLAS.methods_by_name['CreateCodeTemplate']._options = None
  _ATLAS.methods_by_name['CreateCodeTemplate']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002\"\" /problems/{problem_id}/templates'
  _ATLAS.methods_by_name['UpdateCodeTemplate']._options = None
  _ATLAS.methods_by_name['UpdateCodeTemplate']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0020\"./problems/{problem_id}/templates/{template_id}'
  _ATLAS.methods_by_name['DeleteCodeTemplate']._options = None
  _ATLAS.methods_by_name['DeleteCodeTemplate']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0020*./problems/{problem_id}/templates/{template_id}'
  _ATLAS.methods_by_name['ListCodeTemplates']._options = None
  _ATLAS.methods_by_name['ListCodeTemplates']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002\"\022 /problems/{problem_id}/templates'
  _ATLAS.methods_by_name['DescribeCodeTemplate']._options = None
  _ATLAS.methods_by_name['DescribeCodeTemplate']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\0020\022./problems/{problem_id}/templates/{template_id}'
  _ATLAS.methods_by_name['CreateAttachment']._options = None
  _ATLAS.methods_by_name['CreateAttachment']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002$\"\"/problems/{problem_id}/attachments'
  _ATLAS.methods_by_name['UpdateAttachment']._options = None
  _ATLAS.methods_by_name['UpdateAttachment']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0024\"2/problems/{problem_id}/attachments/{attachment_id}'
  _ATLAS.methods_by_name['DeleteAttachment']._options = None
  _ATLAS.methods_by_name['DeleteAttachment']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0024*2/problems/{problem_id}/attachments/{attachment_id}'
  _ATLAS.methods_by_name['ListAttachments']._options = None
  _ATLAS.methods_by_name['ListAttachments']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002$\022\"/problems/{problem_id}/attachments'
  _ATLAS.methods_by_name['DescribeAttachment']._options = None
  _ATLAS.methods_by_name['DescribeAttachment']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\0024\0222/problems/{problem_id}/attachments/{attachment_id}'
  _ATLAS.methods_by_name['ListVersions']._options = None
  _ATLAS.methods_by_name['ListVersions']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\202\323\344\223\002!\022\037/problems/{problem_id}/versions'
  _ATLAS.methods_by_name['ListProblemTop']._options = None
  _ATLAS.methods_by_name['ListProblemTop']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\202\323\344\223\002\034\022\032/problems/{problem_id}/top'
  _ATLAS.methods_by_name['DescribeProblemGrading']._options = None
  _ATLAS.methods_by_name['DescribeProblemGrading']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\202\323\344\223\002 \022\036/problems/{problem_id}/grading'
  _ATLAS.methods_by_name['CreateSolution']._options = None
  _ATLAS.methods_by_name['CreateSolution']._serialized_options = b'\352\342\n\013\365\342\n\000\000\200?\370\342\n\005\202\323\344\223\002\"\" /problems/{problem_id}/solutions'
  _ATLAS.methods_by_name['UpdateSolution']._options = None
  _ATLAS.methods_by_name['UpdateSolution']._serialized_options = b'\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\0020\"./problems/{problem_id}/solutions/{solution_id}'
  _ATLAS.methods_by_name['DeleteSolution']._options = None
  _ATLAS.methods_by_name['DeleteSolution']._serialized_options = b'\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\0020*./problems/{problem_id}/solutions/{solution_id}'
  _ATLAS.methods_by_name['ListSolutions']._options = None
  _ATLAS.methods_by_name['ListSolutions']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002\"\022 /problems/{problem_id}/solutions'
  _ATLAS.methods_by_name['DescribeSolution']._options = None
  _ATLAS.methods_by_name['DescribeSolution']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\0020\022./problems/{problem_id}/solutions/{solution_id}'
  _ATLAS.methods_by_name['PublishSolution']._options = None
  _ATLAS.methods_by_name['PublishSolution']._serialized_options = b'\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\0028\"6/problems/{problem_id}/solutions/{solution_id}/publish'
  _ATLAS.methods_by_name['UnpublishSolution']._options = None
  _ATLAS.methods_by_name['UnpublishSolution']._serialized_options = b'\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\002:\"8/problems/{problem_id}/solutions/{solution_id}/unpublish'
  _ATLAS.methods_by_name['ApproveSolution']._options = None
  _ATLAS.methods_by_name['ApproveSolution']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\0028\"6/problems/{problem_id}/solutions/{solution_id}/approve'
  _ATLAS.methods_by_name['RefuseSolution']._options = None
  _ATLAS.methods_by_name['RefuseSolution']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\0027\"5/problems/{problem_id}/solutions/{solution_id}/refuse'
  _ATLAS.methods_by_name['CreateCategory']._options = None
  _ATLAS.methods_by_name['CreateCategory']._serialized_options = b'\202\343\n\030\212\343\n\024atlas:category:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002\r\"\013/categories'
  _ATLAS.methods_by_name['UpdateCategory']._options = None
  _ATLAS.methods_by_name['UpdateCategory']._serialized_options = b'\202\343\n\030\212\343\n\024atlas:category:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002\033\"\031/categories/{category_id}'
  _ATLAS.methods_by_name['DeleteCategory']._options = None
  _ATLAS.methods_by_name['DeleteCategory']._serialized_options = b'\202\343\n\030\212\343\n\024atlas:category:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002\033*\031/categories/{category_id}'
  _ATLAS.methods_by_name['ListCategories']._options = None
  _ATLAS.methods_by_name['ListCategories']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:category:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002\r\022\013/categories'
  _ATLAS.methods_by_name['DescribeCategory']._options = None
  _ATLAS.methods_by_name['DescribeCategory']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:category:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002\033\022\031/categories/{category_id}'
  _ATLAS.methods_by_name['AssignCategory']._options = None
  _ATLAS.methods_by_name['AssignCategory']._serialized_options = b'\202\343\n\030\212\343\n\024atlas:category:write\352\342\n\013\365\342\n\000\000\240@\370\342\n\024\202\323\344\223\0021\"//categories/{category_id}/problems/{problem_id}'
  _ATLAS.methods_by_name['UnassignCategory']._options = None
  _ATLAS.methods_by_name['UnassignCategory']._serialized_options = b'\202\343\n\030\212\343\n\024atlas:category:write\352\342\n\013\365\342\n\000\000\240@\370\342\n\024\202\323\344\223\0021*//categories/{category_id}/problems/{problem_id}'
  _ATLAS.methods_by_name['CreateSubmission']._options = None
  _ATLAS.methods_by_name['CreateSubmission']._serialized_options = b'\202\343\n\032\212\343\n\026atlas:submission:write\202\323\344\223\002$\"\"/problems/{problem_id}/submissions'
  _ATLAS.methods_by_name['DescribeSubmission']._options = None
  _ATLAS.methods_by_name['DescribeSubmission']._serialized_options = b'\202\343\n\031\212\343\n\025atlas:submission:read\202\323\344\223\0024\0222/problems/{problem_id}/submissions/{submission_id}'
  _ATLAS.methods_by_name['RetestSubmission']._options = None
  _ATLAS.methods_by_name['RetestSubmission']._serialized_options = b'\202\343\n\032\212\343\n\026atlas:submission:write\202\323\344\223\002;\"9/problems/{problem_id}/submissions/{submission_id}/retest'
  _ATLAS.methods_by_name['DescribeScore']._options = None
  _ATLAS.methods_by_name['DescribeScore']._serialized_options = b'\202\343\n\031\212\343\n\025atlas:submission:read\202\323\344\223\002)\022\'/problems/{problem_id}/scores/{user_id}'
  _LISTPROBLEMSINPUT._serialized_start=622
  _LISTPROBLEMSINPUT._serialized_end=993
  _LISTPROBLEMSINPUT_FILTER._serialized_start=731
  _LISTPROBLEMSINPUT_FILTER._serialized_end=993
  _LISTPROBLEMSOUTPUT._serialized_start=995
  _LISTPROBLEMSOUTPUT._serialized_end=1068
  _CREATEPROBLEMINPUT._serialized_start=1070
  _CREATEPROBLEMINPUT._serialized_end=1174
  _CREATEPROBLEMOUTPUT._serialized_start=1176
  _CREATEPROBLEMOUTPUT._serialized_end=1217
  _DELETEPROBLEMINPUT._serialized_start=1219
  _DELETEPROBLEMINPUT._serialized_end=1259
  _DELETEPROBLEMOUTPUT._serialized_start=1261
  _DELETEPROBLEMOUTPUT._serialized_end=1282
  _DESCRIBEPROBLEMINPUT._serialized_start=1284
  _DESCRIBEPROBLEMINPUT._serialized_end=1347
  _DESCRIBEPROBLEMOUTPUT._serialized_start=1349
  _DESCRIBEPROBLEMOUTPUT._serialized_end=1412
  _LISTSTATEMENTSINPUT._serialized_start=1414
  _LISTSTATEMENTSINPUT._serialized_end=1472
  _LISTSTATEMENTSOUTPUT._serialized_start=1474
  _LISTSTATEMENTSOUTPUT._serialized_end=1551
  _DESCRIBESTATEMENTINPUT._serialized_start=1553
  _DESCRIBESTATEMENTINPUT._serialized_end=1636
  _DESCRIBESTATEMENTOUTPUT._serialized_start=1638
  _DESCRIBESTATEMENTOUTPUT._serialized_end=1707
  _CREATESTATEMENTINPUT._serialized_start=1709
  _CREATESTATEMENTINPUT._serialized_end=1795
  _CREATESTATEMENTOUTPUT._serialized_start=1797
  _CREATESTATEMENTOUTPUT._serialized_end=1842
  _UPDATESTATEMENTINPUT._serialized_start=1844
  _UPDATESTATEMENTINPUT._serialized_end=1952
  _UPDATESTATEMENTOUTPUT._serialized_start=1954
  _UPDATESTATEMENTOUTPUT._serialized_end=1977
  _DELETESTATEMENTINPUT._serialized_start=1979
  _DELETESTATEMENTINPUT._serialized_end=2043
  _DELETESTATEMENTOUTPUT._serialized_start=2045
  _DELETESTATEMENTOUTPUT._serialized_end=2068
  _UPDATEVERIFIERINPUT._serialized_start=2070
  _UPDATEVERIFIERINPUT._serialized_end=2156
  _UPDATEVERIFIEROUTPUT._serialized_start=2158
  _UPDATEVERIFIEROUTPUT._serialized_end=2180
  _DESCRIBEVERIFIERINPUT._serialized_start=2182
  _DESCRIBEVERIFIERINPUT._serialized_end=2242
  _DESCRIBEVERIFIEROUTPUT._serialized_start=2244
  _DESCRIBEVERIFIEROUTPUT._serialized_end=2313
  _UPDATEINTERACTORINPUT._serialized_start=2315
  _UPDATEINTERACTORINPUT._serialized_end=2407
  _UPDATEINTERACTOROUTPUT._serialized_start=2409
  _UPDATEINTERACTOROUTPUT._serialized_end=2433
  _DESCRIBEINTERACTORINPUT._serialized_start=2435
  _DESCRIBEINTERACTORINPUT._serialized_end=2497
  _DESCRIBEINTERACTOROUTPUT._serialized_start=2499
  _DESCRIBEINTERACTOROUTPUT._serialized_end=2574
  _LISTTESTSETSINPUT._serialized_start=2576
  _LISTTESTSETSINPUT._serialized_end=2632
  _LISTTESTSETSOUTPUT._serialized_start=2634
  _LISTTESTSETSOUTPUT._serialized_end=2707
  _DESCRIBETESTSETINPUT._serialized_start=2709
  _DESCRIBETESTSETINPUT._serialized_end=2788
  _DESCRIBETESTSETOUTPUT._serialized_start=2790
  _DESCRIBETESTSETOUTPUT._serialized_end=2853
  _CREATETESTSETINPUT._serialized_start=2855
  _CREATETESTSETINPUT._serialized_end=2935
  _CREATETESTSETOUTPUT._serialized_start=2937
  _CREATETESTSETOUTPUT._serialized_end=2970
  _UPDATETESTSETINPUT._serialized_start=2972
  _UPDATETESTSETINPUT._serialized_end=3072
  _UPDATETESTSETOUTPUT._serialized_start=3074
  _UPDATETESTSETOUTPUT._serialized_end=3095
  _DELETETESTSETINPUT._serialized_start=3097
  _DELETETESTSETINPUT._serialized_end=3157
  _DELETETESTSETOUTPUT._serialized_start=3159
  _DELETETESTSETOUTPUT._serialized_end=3180
  _LISTEXAMPLESINPUT._serialized_start=3182
  _LISTEXAMPLESINPUT._serialized_end=3238
  _LISTEXAMPLESOUTPUT._serialized_start=3240
  _LISTEXAMPLESOUTPUT._serialized_end=3298
  _LISTTESTSINPUT._serialized_start=3300
  _LISTTESTSINPUT._serialized_end=3373
  _LISTTESTSOUTPUT._serialized_start=3375
  _LISTTESTSOUTPUT._serialized_end=3442
  _DESCRIBETESTINPUT._serialized_start=3444
  _DESCRIBETESTINPUT._serialized_end=3537
  _DESCRIBETESTOUTPUT._serialized_start=3539
  _DESCRIBETESTOUTPUT._serialized_end=3593
  _CREATETESTINPUT._serialized_start=3595
  _CREATETESTINPUT._serialized_end=3686
  _CREATETESTOUTPUT._serialized_start=3688
  _CREATETESTOUTPUT._serialized_end=3723
  _UPDATETESTINPUT._serialized_start=3725
  _UPDATETESTINPUT._serialized_end=3833
  _UPDATETESTOUTPUT._serialized_start=3835
  _UPDATETESTOUTPUT._serialized_end=3853
  _DELETETESTINPUT._serialized_start=3855
  _DELETETESTINPUT._serialized_end=3929
  _DELETETESTOUTPUT._serialized_start=3931
  _DELETETESTOUTPUT._serialized_end=3949
  _LISTPERMISSIONSINPUT._serialized_start=3951
  _LISTPERMISSIONSINPUT._serialized_end=3993
  _LISTPERMISSIONSOUTPUT._serialized_start=3995
  _LISTPERMISSIONSOUTPUT._serialized_end=4059
  _GRANTPERMISSIONINPUT._serialized_start=4061
  _GRANTPERMISSIONINPUT._serialized_end=4149
  _GRANTPERMISSIONOUTPUT._serialized_start=4151
  _GRANTPERMISSIONOUTPUT._serialized_end=4174
  _REVOKEPERMISSIONINPUT._serialized_start=4176
  _REVOKEPERMISSIONINPUT._serialized_end=4236
  _REVOKEPERMISSIONOUTPUT._serialized_start=4238
  _REVOKEPERMISSIONOUTPUT._serialized_end=4262
  _CREATECODETEMPLATEINPUT._serialized_start=4264
  _CREATECODETEMPLATEINPUT._serialized_end=4351
  _CREATECODETEMPLATEOUTPUT._serialized_start=4353
  _CREATECODETEMPLATEOUTPUT._serialized_end=4400
  _UPDATECODETEMPLATEINPUT._serialized_start=4402
  _UPDATECODETEMPLATEINPUT._serialized_end=4510
  _UPDATECODETEMPLATEOUTPUT._serialized_start=4512
  _UPDATECODETEMPLATEOUTPUT._serialized_end=4538
  _DELETECODETEMPLATEINPUT._serialized_start=4540
  _DELETECODETEMPLATEINPUT._serialized_end=4606
  _DELETECODETEMPLATEOUTPUT._serialized_start=4608
  _DELETECODETEMPLATEOUTPUT._serialized_end=4634
  _LISTCODETEMPLATESINPUT._serialized_start=4636
  _LISTCODETEMPLATESINPUT._serialized_end=4697
  _LISTCODETEMPLATESOUTPUT._serialized_start=4699
  _LISTCODETEMPLATESOUTPUT._serialized_end=4778
  _DESCRIBECODETEMPLATEINPUT._serialized_start=4780
  _DESCRIBECODETEMPLATEINPUT._serialized_end=4888
  _DESCRIBECODETEMPLATEOUTPUT._serialized_start=4890
  _DESCRIBECODETEMPLATEOUTPUT._serialized_end=4960
  _CREATEATTACHMENTINPUT._serialized_start=4962
  _CREATEATTACHMENTINPUT._serialized_end=5051
  _CREATEATTACHMENTOUTPUT._serialized_start=5053
  _CREATEATTACHMENTOUTPUT._serialized_end=5100
  _UPDATEATTACHMENTINPUT._serialized_start=5102
  _UPDATEATTACHMENTINPUT._serialized_end=5214
  _UPDATEATTACHMENTOUTPUT._serialized_start=5216
  _UPDATEATTACHMENTOUTPUT._serialized_end=5240
  _DELETEATTACHMENTINPUT._serialized_start=5242
  _DELETEATTACHMENTINPUT._serialized_end=5308
  _DELETEATTACHMENTOUTPUT._serialized_start=5310
  _DELETEATTACHMENTOUTPUT._serialized_end=5334
  _LISTATTACHMENTSINPUT._serialized_start=5337
  _LISTATTACHMENTSINPUT._serialized_end=5590
  _LISTATTACHMENTSINPUT_FILTER._serialized_start=5488
  _LISTATTACHMENTSINPUT_FILTER._serialized_end=5590
  _LISTATTACHMENTSOUTPUT._serialized_start=5592
  _LISTATTACHMENTSOUTPUT._serialized_end=5671
  _DESCRIBEATTACHMENTINPUT._serialized_start=5673
  _DESCRIBEATTACHMENTINPUT._serialized_end=5758
  _DESCRIBEATTACHMENTOUTPUT._serialized_start=5760
  _DESCRIBEATTACHMENTOUTPUT._serialized_end=5832
  _LISTVERSIONSINPUT._serialized_start=5835
  _LISTVERSIONSINPUT._serialized_end=6242
  _LISTVERSIONSINPUT_FILTER._serialized_start=5964
  _LISTVERSIONSINPUT_FILTER._serialized_end=6242
  _LISTVERSIONSOUTPUT._serialized_start=6244
  _LISTVERSIONSOUTPUT._serialized_end=6317
  _LISTPROBLEMTOPINPUT._serialized_start=6319
  _LISTPROBLEMTOPINPUT._serialized_end=6360
  _LISTPROBLEMTOPOUTPUT._serialized_start=6362
  _LISTPROBLEMTOPOUTPUT._serialized_end=6425
  _DESCRIBEPROBLEMGRADINGINPUT._serialized_start=6427
  _DESCRIBEPROBLEMGRADINGINPUT._serialized_end=6476
  _DESCRIBEPROBLEMGRADINGOUTPUT._serialized_start=6479
  _DESCRIBEPROBLEMGRADINGOUTPUT._serialized_end=6620
  _DESCRIBEPROBLEMGRADINGOUTPUT_RANGE._serialized_start=6577
  _DESCRIBEPROBLEMGRADINGOUTPUT_RANGE._serialized_end=6620
  _CREATESOLUTIONINPUT._serialized_start=6622
  _CREATESOLUTIONINPUT._serialized_end=6705
  _CREATESOLUTIONOUTPUT._serialized_start=6707
  _CREATESOLUTIONOUTPUT._serialized_end=6750
  _UPDATESOLUTIONINPUT._serialized_start=6752
  _UPDATESOLUTIONINPUT._serialized_end=6856
  _UPDATESOLUTIONOUTPUT._serialized_start=6858
  _UPDATESOLUTIONOUTPUT._serialized_end=6880
  _DELETESOLUTIONINPUT._serialized_start=6882
  _DELETESOLUTIONINPUT._serialized_end=6944
  _DELETESOLUTIONOUTPUT._serialized_start=6946
  _DELETESOLUTIONOUTPUT._serialized_end=6968
  _LISTSOLUTIONSINPUT._serialized_start=6971
  _LISTSOLUTIONSINPUT._serialized_end=7419
  _LISTSOLUTIONSINPUT_FILTER._serialized_start=7102
  _LISTSOLUTIONSINPUT_FILTER._serialized_end=7419
  _LISTSOLUTIONSOUTPUT._serialized_start=7421
  _LISTSOLUTIONSOUTPUT._serialized_end=7496
  _DESCRIBESOLUTIONINPUT._serialized_start=7498
  _DESCRIBESOLUTIONINPUT._serialized_end=7562
  _DESCRIBESOLUTIONOUTPUT._serialized_start=7564
  _DESCRIBESOLUTIONOUTPUT._serialized_end=7630
  _PUBLISHSOLUTIONINPUT._serialized_start=7632
  _PUBLISHSOLUTIONINPUT._serialized_end=7695
  _PUBLISHSOLUTIONOUTPUT._serialized_start=7697
  _PUBLISHSOLUTIONOUTPUT._serialized_end=7720
  _UNPUBLISHSOLUTIONINPUT._serialized_start=7722
  _UNPUBLISHSOLUTIONINPUT._serialized_end=7787
  _UNPUBLISHSOLUTIONOUTPUT._serialized_start=7789
  _UNPUBLISHSOLUTIONOUTPUT._serialized_end=7814
  _APPROVESOLUTIONINPUT._serialized_start=7816
  _APPROVESOLUTIONINPUT._serialized_end=7879
  _APPROVESOLUTIONOUTPUT._serialized_start=7881
  _APPROVESOLUTIONOUTPUT._serialized_end=7904
  _REFUSESOLUTIONINPUT._serialized_start=7906
  _REFUSESOLUTIONINPUT._serialized_end=7985
  _REFUSESOLUTIONOUTPUT._serialized_start=7987
  _REFUSESOLUTIONOUTPUT._serialized_end=8009
  _LISTCATEGORIESINPUT._serialized_start=8012
  _LISTCATEGORIESINPUT._serialized_end=8334
  _LISTCATEGORIESINPUT_FILTER._serialized_start=8125
  _LISTCATEGORIESINPUT_FILTER._serialized_end=8334
  _LISTCATEGORIESOUTPUT._serialized_start=8336
  _LISTCATEGORIESOUTPUT._serialized_end=8412
  _CREATECATEGORYINPUT._serialized_start=8414
  _CREATECATEGORYINPUT._serialized_end=8477
  _CREATECATEGORYOUTPUT._serialized_start=8479
  _CREATECATEGORYOUTPUT._serialized_end=8522
  _UPDATECATEGORYINPUT._serialized_start=8524
  _UPDATECATEGORYINPUT._serialized_end=8608
  _UPDATECATEGORYOUTPUT._serialized_start=8610
  _UPDATECATEGORYOUTPUT._serialized_end=8632
  _DELETECATEGORYINPUT._serialized_start=8634
  _DELETECATEGORYINPUT._serialized_end=8676
  _DELETECATEGORYOUTPUT._serialized_start=8678
  _DELETECATEGORYOUTPUT._serialized_end=8700
  _DESCRIBECATEGORYINPUT._serialized_start=8702
  _DESCRIBECATEGORYINPUT._serialized_end=8746
  _DESCRIBECATEGORYOUTPUT._serialized_start=8748
  _DESCRIBECATEGORYOUTPUT._serialized_end=8814
  _ASSIGNCATEGORYINPUT._serialized_start=8816
  _ASSIGNCATEGORYINPUT._serialized_end=8893
  _ASSIGNCATEGORYOUTPUT._serialized_start=8895
  _ASSIGNCATEGORYOUTPUT._serialized_end=8917
  _UNASSIGNCATEGORYINPUT._serialized_start=8919
  _UNASSIGNCATEGORYINPUT._serialized_end=8983
  _UNASSIGNCATEGORYOUTPUT._serialized_start=8985
  _UNASSIGNCATEGORYOUTPUT._serialized_end=9009
  _CREATESUBMISSIONINPUT._serialized_start=9011
  _CREATESUBMISSIONINPUT._serialized_end=9084
  _CREATESUBMISSIONOUTPUT._serialized_start=9086
  _CREATESUBMISSIONOUTPUT._serialized_end=9133
  _DESCRIBESUBMISSIONINPUT._serialized_start=9135
  _DESCRIBESUBMISSIONINPUT._serialized_end=9203
  _DESCRIBESUBMISSIONOUTPUT._serialized_start=9205
  _DESCRIBESUBMISSIONOUTPUT._serialized_end=9277
  _RETESTSUBMISSIONINPUT._serialized_start=9279
  _RETESTSUBMISSIONINPUT._serialized_end=9360
  _RETESTSUBMISSIONOUTPUT._serialized_start=9362
  _RETESTSUBMISSIONOUTPUT._serialized_end=9386
  _DESCRIBESCOREINPUT._serialized_start=9388
  _DESCRIBESCOREINPUT._serialized_end=9445
  _DESCRIBESCOREOUTPUT._serialized_start=9447
  _DESCRIBESCOREOUTPUT._serialized_end=9504
  _UPDATEVISIBILITYINPUT._serialized_start=9506
  _UPDATEVISIBILITYINPUT._serialized_end=9566
  _UPDATEVISIBILITYOUTPUT._serialized_start=9568
  _UPDATEVISIBILITYOUTPUT._serialized_end=9592
  _UPDATEPRIVACYINPUT._serialized_start=9594
  _UPDATEPRIVACYINPUT._serialized_end=9651
  _UPDATEPRIVACYOUTPUT._serialized_start=9653
  _UPDATEPRIVACYOUTPUT._serialized_end=9674
  _ATLAS._serialized_start=9677
  _ATLAS._serialized_end=20784
# @@protoc_insertion_point(module_scope)
