# -*- 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 change_pb2 as eolymp_dot_atlas_dot_change__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.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\x19\x65olymp/atlas/change.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 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\"M\n\x14ListStatementsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12&\n\x05items\x18\x02 \x03(\x0b\x32\x17.eolymp.atlas.Statement\"B\n\x16\x44\x65scribeStatementInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x14\n\x0cstatement_id\x18\x02 \x01(\t\"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\"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\"K\n\x18\x44\x65scribeInteractorOutput\x12/\n\ninteractor\x18\x01 \x01(\x0b\x32\x1b.eolymp.executor.Interactor\"\'\n\x11ListTestsetsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"I\n\x12ListTestsetsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12$\n\x05items\x18\x02 \x03(\x0b\x32\x15.eolymp.atlas.Testset\">\n\x14\x44\x65scribeTestsetInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x12\n\ntestset_id\x18\x02 \x01(\t\"?\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\"\'\n\x11ListExamplesInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\":\n\x12ListExamplesOutput\x12$\n\x08\x65xamples\x18\x02 \x03(\x0b\x32\x12.eolymp.atlas.Test\"8\n\x0eListTestsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x12\n\ntestset_id\x18\x02 \x01(\t\"C\n\x0fListTestsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12!\n\x05items\x18\x02 \x03(\x0b\x32\x12.eolymp.atlas.Test\"L\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\"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\"O\n\x17ListCodeTemplatesOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12%\n\x05items\x18\x02 \x03(\x0b\x32\x16.eolymp.atlas.Template\"[\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\"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\"\xec\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\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\"D\n\x17\x44\x65scribeAttachmentInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x15\n\rattachment_id\x18\x02 \x01(\t\"H\n\x18\x44\x65scribeAttachmentOutput\x12,\n\nattachment\x18\x01 \x01(\x0b\x32\x18.eolymp.atlas.Attachment\"<\n\x13\x44\x65scribeChangeInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x11\n\tchange_id\x18\x02 \x01(\t\"<\n\x14\x44\x65scribeChangeOutput\x12$\n\x06\x63hange\x18\x01 \x01(\x0b\x32\x14.eolymp.atlas.Change\"\x82\x03\n\x10ListChangesInput\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\x36\n\x07\x66ilters\x18( \x01(\x0b\x32%.eolymp.atlas.ListChangesInput.Filter\x1a\x83\x02\n\x06\x46ilter\x12*\n\x02id\x18\x01 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x32\n\nip_address\x18\x02 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12/\n\x07user_id\x18\x03 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x38\n\ttimestamp\x18\x04 \x03(\x0b\x32%.eolymp.wellknown.ExpressionTimestamp\x12.\n\x04type\x18\x05 \x03(\x0b\x32 .eolymp.wellknown.ExpressionEnum\"G\n\x11ListChangesOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12#\n\x05items\x18\x02 \x03(\x0b\x32\x14.eolymp.atlas.Change\")\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\x88X\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\xa6\x01\n\x0e\x44\x65scribeChange\x12!.eolymp.atlas.DescribeChangeInput\x1a\".eolymp.atlas.DescribeChangeOutput\"M\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\x82\xd3\xe4\x93\x02,\x12*/problems/{problem_id}/changes/{change_id}\x12\x91\x01\n\x0bListChanges\x12\x1e.eolymp.atlas.ListChangesInput\x1a\x1f.eolymp.atlas.ListChangesOutput\"A\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\x82\xd3\xe4\x93\x02 \x12\x1e/problems/{problem_id}/changes\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['DescribeChange']._options = None
  _ATLAS.methods_by_name['DescribeChange']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\202\323\344\223\002,\022*/problems/{problem_id}/changes/{change_id}'
  _ATLAS.methods_by_name['ListChanges']._options = None
  _ATLAS.methods_by_name['ListChanges']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\202\323\344\223\002 \022\036/problems/{problem_id}/changes'
  _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=621
  _LISTPROBLEMSINPUT._serialized_end=992
  _LISTPROBLEMSINPUT_FILTER._serialized_start=730
  _LISTPROBLEMSINPUT_FILTER._serialized_end=992
  _LISTPROBLEMSOUTPUT._serialized_start=994
  _LISTPROBLEMSOUTPUT._serialized_end=1067
  _CREATEPROBLEMINPUT._serialized_start=1069
  _CREATEPROBLEMINPUT._serialized_end=1173
  _CREATEPROBLEMOUTPUT._serialized_start=1175
  _CREATEPROBLEMOUTPUT._serialized_end=1216
  _DELETEPROBLEMINPUT._serialized_start=1218
  _DELETEPROBLEMINPUT._serialized_end=1258
  _DELETEPROBLEMOUTPUT._serialized_start=1260
  _DELETEPROBLEMOUTPUT._serialized_end=1281
  _DESCRIBEPROBLEMINPUT._serialized_start=1283
  _DESCRIBEPROBLEMINPUT._serialized_end=1346
  _DESCRIBEPROBLEMOUTPUT._serialized_start=1348
  _DESCRIBEPROBLEMOUTPUT._serialized_end=1411
  _LISTSTATEMENTSINPUT._serialized_start=1413
  _LISTSTATEMENTSINPUT._serialized_end=1454
  _LISTSTATEMENTSOUTPUT._serialized_start=1456
  _LISTSTATEMENTSOUTPUT._serialized_end=1533
  _DESCRIBESTATEMENTINPUT._serialized_start=1535
  _DESCRIBESTATEMENTINPUT._serialized_end=1601
  _DESCRIBESTATEMENTOUTPUT._serialized_start=1603
  _DESCRIBESTATEMENTOUTPUT._serialized_end=1672
  _CREATESTATEMENTINPUT._serialized_start=1674
  _CREATESTATEMENTINPUT._serialized_end=1760
  _CREATESTATEMENTOUTPUT._serialized_start=1762
  _CREATESTATEMENTOUTPUT._serialized_end=1807
  _UPDATESTATEMENTINPUT._serialized_start=1809
  _UPDATESTATEMENTINPUT._serialized_end=1917
  _UPDATESTATEMENTOUTPUT._serialized_start=1919
  _UPDATESTATEMENTOUTPUT._serialized_end=1942
  _DELETESTATEMENTINPUT._serialized_start=1944
  _DELETESTATEMENTINPUT._serialized_end=2008
  _DELETESTATEMENTOUTPUT._serialized_start=2010
  _DELETESTATEMENTOUTPUT._serialized_end=2033
  _UPDATEVERIFIERINPUT._serialized_start=2035
  _UPDATEVERIFIERINPUT._serialized_end=2121
  _UPDATEVERIFIEROUTPUT._serialized_start=2123
  _UPDATEVERIFIEROUTPUT._serialized_end=2145
  _DESCRIBEVERIFIERINPUT._serialized_start=2147
  _DESCRIBEVERIFIERINPUT._serialized_end=2190
  _DESCRIBEVERIFIEROUTPUT._serialized_start=2192
  _DESCRIBEVERIFIEROUTPUT._serialized_end=2261
  _UPDATEINTERACTORINPUT._serialized_start=2263
  _UPDATEINTERACTORINPUT._serialized_end=2355
  _UPDATEINTERACTOROUTPUT._serialized_start=2357
  _UPDATEINTERACTOROUTPUT._serialized_end=2381
  _DESCRIBEINTERACTORINPUT._serialized_start=2383
  _DESCRIBEINTERACTORINPUT._serialized_end=2428
  _DESCRIBEINTERACTOROUTPUT._serialized_start=2430
  _DESCRIBEINTERACTOROUTPUT._serialized_end=2505
  _LISTTESTSETSINPUT._serialized_start=2507
  _LISTTESTSETSINPUT._serialized_end=2546
  _LISTTESTSETSOUTPUT._serialized_start=2548
  _LISTTESTSETSOUTPUT._serialized_end=2621
  _DESCRIBETESTSETINPUT._serialized_start=2623
  _DESCRIBETESTSETINPUT._serialized_end=2685
  _DESCRIBETESTSETOUTPUT._serialized_start=2687
  _DESCRIBETESTSETOUTPUT._serialized_end=2750
  _CREATETESTSETINPUT._serialized_start=2752
  _CREATETESTSETINPUT._serialized_end=2832
  _CREATETESTSETOUTPUT._serialized_start=2834
  _CREATETESTSETOUTPUT._serialized_end=2867
  _UPDATETESTSETINPUT._serialized_start=2869
  _UPDATETESTSETINPUT._serialized_end=2969
  _UPDATETESTSETOUTPUT._serialized_start=2971
  _UPDATETESTSETOUTPUT._serialized_end=2992
  _DELETETESTSETINPUT._serialized_start=2994
  _DELETETESTSETINPUT._serialized_end=3054
  _DELETETESTSETOUTPUT._serialized_start=3056
  _DELETETESTSETOUTPUT._serialized_end=3077
  _LISTEXAMPLESINPUT._serialized_start=3079
  _LISTEXAMPLESINPUT._serialized_end=3118
  _LISTEXAMPLESOUTPUT._serialized_start=3120
  _LISTEXAMPLESOUTPUT._serialized_end=3178
  _LISTTESTSINPUT._serialized_start=3180
  _LISTTESTSINPUT._serialized_end=3236
  _LISTTESTSOUTPUT._serialized_start=3238
  _LISTTESTSOUTPUT._serialized_end=3305
  _DESCRIBETESTINPUT._serialized_start=3307
  _DESCRIBETESTINPUT._serialized_end=3383
  _DESCRIBETESTOUTPUT._serialized_start=3385
  _DESCRIBETESTOUTPUT._serialized_end=3439
  _CREATETESTINPUT._serialized_start=3441
  _CREATETESTINPUT._serialized_end=3532
  _CREATETESTOUTPUT._serialized_start=3534
  _CREATETESTOUTPUT._serialized_end=3569
  _UPDATETESTINPUT._serialized_start=3571
  _UPDATETESTINPUT._serialized_end=3679
  _UPDATETESTOUTPUT._serialized_start=3681
  _UPDATETESTOUTPUT._serialized_end=3699
  _DELETETESTINPUT._serialized_start=3701
  _DELETETESTINPUT._serialized_end=3775
  _DELETETESTOUTPUT._serialized_start=3777
  _DELETETESTOUTPUT._serialized_end=3795
  _LISTPERMISSIONSINPUT._serialized_start=3797
  _LISTPERMISSIONSINPUT._serialized_end=3839
  _LISTPERMISSIONSOUTPUT._serialized_start=3841
  _LISTPERMISSIONSOUTPUT._serialized_end=3905
  _GRANTPERMISSIONINPUT._serialized_start=3907
  _GRANTPERMISSIONINPUT._serialized_end=3995
  _GRANTPERMISSIONOUTPUT._serialized_start=3997
  _GRANTPERMISSIONOUTPUT._serialized_end=4020
  _REVOKEPERMISSIONINPUT._serialized_start=4022
  _REVOKEPERMISSIONINPUT._serialized_end=4082
  _REVOKEPERMISSIONOUTPUT._serialized_start=4084
  _REVOKEPERMISSIONOUTPUT._serialized_end=4108
  _CREATECODETEMPLATEINPUT._serialized_start=4110
  _CREATECODETEMPLATEINPUT._serialized_end=4197
  _CREATECODETEMPLATEOUTPUT._serialized_start=4199
  _CREATECODETEMPLATEOUTPUT._serialized_end=4246
  _UPDATECODETEMPLATEINPUT._serialized_start=4248
  _UPDATECODETEMPLATEINPUT._serialized_end=4356
  _UPDATECODETEMPLATEOUTPUT._serialized_start=4358
  _UPDATECODETEMPLATEOUTPUT._serialized_end=4384
  _DELETECODETEMPLATEINPUT._serialized_start=4386
  _DELETECODETEMPLATEINPUT._serialized_end=4452
  _DELETECODETEMPLATEOUTPUT._serialized_start=4454
  _DELETECODETEMPLATEOUTPUT._serialized_end=4480
  _LISTCODETEMPLATESINPUT._serialized_start=4482
  _LISTCODETEMPLATESINPUT._serialized_end=4526
  _LISTCODETEMPLATESOUTPUT._serialized_start=4528
  _LISTCODETEMPLATESOUTPUT._serialized_end=4607
  _DESCRIBECODETEMPLATEINPUT._serialized_start=4609
  _DESCRIBECODETEMPLATEINPUT._serialized_end=4700
  _DESCRIBECODETEMPLATEOUTPUT._serialized_start=4702
  _DESCRIBECODETEMPLATEOUTPUT._serialized_end=4772
  _CREATEATTACHMENTINPUT._serialized_start=4774
  _CREATEATTACHMENTINPUT._serialized_end=4863
  _CREATEATTACHMENTOUTPUT._serialized_start=4865
  _CREATEATTACHMENTOUTPUT._serialized_end=4912
  _UPDATEATTACHMENTINPUT._serialized_start=4914
  _UPDATEATTACHMENTINPUT._serialized_end=5026
  _UPDATEATTACHMENTOUTPUT._serialized_start=5028
  _UPDATEATTACHMENTOUTPUT._serialized_end=5052
  _DELETEATTACHMENTINPUT._serialized_start=5054
  _DELETEATTACHMENTINPUT._serialized_end=5120
  _DELETEATTACHMENTOUTPUT._serialized_start=5122
  _DELETEATTACHMENTOUTPUT._serialized_end=5146
  _LISTATTACHMENTSINPUT._serialized_start=5149
  _LISTATTACHMENTSINPUT._serialized_end=5385
  _LISTATTACHMENTSINPUT_FILTER._serialized_start=5283
  _LISTATTACHMENTSINPUT_FILTER._serialized_end=5385
  _LISTATTACHMENTSOUTPUT._serialized_start=5387
  _LISTATTACHMENTSOUTPUT._serialized_end=5466
  _DESCRIBEATTACHMENTINPUT._serialized_start=5468
  _DESCRIBEATTACHMENTINPUT._serialized_end=5536
  _DESCRIBEATTACHMENTOUTPUT._serialized_start=5538
  _DESCRIBEATTACHMENTOUTPUT._serialized_end=5610
  _DESCRIBECHANGEINPUT._serialized_start=5612
  _DESCRIBECHANGEINPUT._serialized_end=5672
  _DESCRIBECHANGEOUTPUT._serialized_start=5674
  _DESCRIBECHANGEOUTPUT._serialized_end=5734
  _LISTCHANGESINPUT._serialized_start=5737
  _LISTCHANGESINPUT._serialized_end=6123
  _LISTCHANGESINPUT_FILTER._serialized_start=5864
  _LISTCHANGESINPUT_FILTER._serialized_end=6123
  _LISTCHANGESOUTPUT._serialized_start=6125
  _LISTCHANGESOUTPUT._serialized_end=6196
  _LISTPROBLEMTOPINPUT._serialized_start=6198
  _LISTPROBLEMTOPINPUT._serialized_end=6239
  _LISTPROBLEMTOPOUTPUT._serialized_start=6241
  _LISTPROBLEMTOPOUTPUT._serialized_end=6304
  _DESCRIBEPROBLEMGRADINGINPUT._serialized_start=6306
  _DESCRIBEPROBLEMGRADINGINPUT._serialized_end=6355
  _DESCRIBEPROBLEMGRADINGOUTPUT._serialized_start=6358
  _DESCRIBEPROBLEMGRADINGOUTPUT._serialized_end=6499
  _DESCRIBEPROBLEMGRADINGOUTPUT_RANGE._serialized_start=6456
  _DESCRIBEPROBLEMGRADINGOUTPUT_RANGE._serialized_end=6499
  _CREATESOLUTIONINPUT._serialized_start=6501
  _CREATESOLUTIONINPUT._serialized_end=6584
  _CREATESOLUTIONOUTPUT._serialized_start=6586
  _CREATESOLUTIONOUTPUT._serialized_end=6629
  _UPDATESOLUTIONINPUT._serialized_start=6631
  _UPDATESOLUTIONINPUT._serialized_end=6735
  _UPDATESOLUTIONOUTPUT._serialized_start=6737
  _UPDATESOLUTIONOUTPUT._serialized_end=6759
  _DELETESOLUTIONINPUT._serialized_start=6761
  _DELETESOLUTIONINPUT._serialized_end=6823
  _DELETESOLUTIONOUTPUT._serialized_start=6825
  _DELETESOLUTIONOUTPUT._serialized_end=6847
  _LISTSOLUTIONSINPUT._serialized_start=6850
  _LISTSOLUTIONSINPUT._serialized_end=7298
  _LISTSOLUTIONSINPUT_FILTER._serialized_start=6981
  _LISTSOLUTIONSINPUT_FILTER._serialized_end=7298
  _LISTSOLUTIONSOUTPUT._serialized_start=7300
  _LISTSOLUTIONSOUTPUT._serialized_end=7375
  _DESCRIBESOLUTIONINPUT._serialized_start=7377
  _DESCRIBESOLUTIONINPUT._serialized_end=7441
  _DESCRIBESOLUTIONOUTPUT._serialized_start=7443
  _DESCRIBESOLUTIONOUTPUT._serialized_end=7509
  _PUBLISHSOLUTIONINPUT._serialized_start=7511
  _PUBLISHSOLUTIONINPUT._serialized_end=7574
  _PUBLISHSOLUTIONOUTPUT._serialized_start=7576
  _PUBLISHSOLUTIONOUTPUT._serialized_end=7599
  _UNPUBLISHSOLUTIONINPUT._serialized_start=7601
  _UNPUBLISHSOLUTIONINPUT._serialized_end=7666
  _UNPUBLISHSOLUTIONOUTPUT._serialized_start=7668
  _UNPUBLISHSOLUTIONOUTPUT._serialized_end=7693
  _APPROVESOLUTIONINPUT._serialized_start=7695
  _APPROVESOLUTIONINPUT._serialized_end=7758
  _APPROVESOLUTIONOUTPUT._serialized_start=7760
  _APPROVESOLUTIONOUTPUT._serialized_end=7783
  _REFUSESOLUTIONINPUT._serialized_start=7785
  _REFUSESOLUTIONINPUT._serialized_end=7864
  _REFUSESOLUTIONOUTPUT._serialized_start=7866
  _REFUSESOLUTIONOUTPUT._serialized_end=7888
  _LISTCATEGORIESINPUT._serialized_start=7891
  _LISTCATEGORIESINPUT._serialized_end=8213
  _LISTCATEGORIESINPUT_FILTER._serialized_start=8004
  _LISTCATEGORIESINPUT_FILTER._serialized_end=8213
  _LISTCATEGORIESOUTPUT._serialized_start=8215
  _LISTCATEGORIESOUTPUT._serialized_end=8291
  _CREATECATEGORYINPUT._serialized_start=8293
  _CREATECATEGORYINPUT._serialized_end=8356
  _CREATECATEGORYOUTPUT._serialized_start=8358
  _CREATECATEGORYOUTPUT._serialized_end=8401
  _UPDATECATEGORYINPUT._serialized_start=8403
  _UPDATECATEGORYINPUT._serialized_end=8487
  _UPDATECATEGORYOUTPUT._serialized_start=8489
  _UPDATECATEGORYOUTPUT._serialized_end=8511
  _DELETECATEGORYINPUT._serialized_start=8513
  _DELETECATEGORYINPUT._serialized_end=8555
  _DELETECATEGORYOUTPUT._serialized_start=8557
  _DELETECATEGORYOUTPUT._serialized_end=8579
  _DESCRIBECATEGORYINPUT._serialized_start=8581
  _DESCRIBECATEGORYINPUT._serialized_end=8625
  _DESCRIBECATEGORYOUTPUT._serialized_start=8627
  _DESCRIBECATEGORYOUTPUT._serialized_end=8693
  _ASSIGNCATEGORYINPUT._serialized_start=8695
  _ASSIGNCATEGORYINPUT._serialized_end=8772
  _ASSIGNCATEGORYOUTPUT._serialized_start=8774
  _ASSIGNCATEGORYOUTPUT._serialized_end=8796
  _UNASSIGNCATEGORYINPUT._serialized_start=8798
  _UNASSIGNCATEGORYINPUT._serialized_end=8862
  _UNASSIGNCATEGORYOUTPUT._serialized_start=8864
  _UNASSIGNCATEGORYOUTPUT._serialized_end=8888
  _CREATESUBMISSIONINPUT._serialized_start=8890
  _CREATESUBMISSIONINPUT._serialized_end=8963
  _CREATESUBMISSIONOUTPUT._serialized_start=8965
  _CREATESUBMISSIONOUTPUT._serialized_end=9012
  _DESCRIBESUBMISSIONINPUT._serialized_start=9014
  _DESCRIBESUBMISSIONINPUT._serialized_end=9082
  _DESCRIBESUBMISSIONOUTPUT._serialized_start=9084
  _DESCRIBESUBMISSIONOUTPUT._serialized_end=9156
  _RETESTSUBMISSIONINPUT._serialized_start=9158
  _RETESTSUBMISSIONINPUT._serialized_end=9239
  _RETESTSUBMISSIONOUTPUT._serialized_start=9241
  _RETESTSUBMISSIONOUTPUT._serialized_end=9265
  _DESCRIBESCOREINPUT._serialized_start=9267
  _DESCRIBESCOREINPUT._serialized_end=9324
  _DESCRIBESCOREOUTPUT._serialized_start=9326
  _DESCRIBESCOREOUTPUT._serialized_end=9383
  _UPDATEVISIBILITYINPUT._serialized_start=9385
  _UPDATEVISIBILITYINPUT._serialized_end=9445
  _UPDATEVISIBILITYOUTPUT._serialized_start=9447
  _UPDATEVISIBILITYOUTPUT._serialized_end=9471
  _UPDATEPRIVACYINPUT._serialized_start=9473
  _UPDATEPRIVACYINPUT._serialized_end=9530
  _UPDATEPRIVACYOUTPUT._serialized_start=9532
  _UPDATEPRIVACYOUTPUT._serialized_end=9553
  _ATLAS._serialized_start=9556
  _ATLAS._serialized_end=20828
# @@protoc_insertion_point(module_scope)
