<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61959>61959</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Cannot include <ranges> -- Assertion failure Arg.getKind() == TemplateArgument::Type && "Template argument kind mismatch"
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          davidstone
      </td>
    </tr>
</table>

<pre>
    Given the following valid translation unit:

```cpp
template<typename>
concept c = true;

template<typename...>
struct s {
};

template<typename T>
struct s<T> {
        template<typename> requires c<T>
        void f() {
        }

        template<typename> requires true
        void f() {
        }
};
```

clang crashes with

```console
clang++: /root/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:2152: clang::QualType {anonymous}::TemplateInstantiator::TransformTemplateTypeParmType(clang::TypeLocBuilder&, clang::TemplateTypeParmTypeLoc, bool): Assertion `Arg.getKind() == TemplateArgument::Type && "Template argument kind mismatch"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>
1.      <source>:15:11: current parser token '{'
2.      <source>:9:1: parsing struct/union/class body 's<T>'
 #0 0x000055abb4709bef llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3c75bef)
 #1 0x000055abb470792c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3c7392c)
 #2 0x000055abb4654c78 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007fc72e712420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007fc72e1df00b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #5 0x00007fc72e1be859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #6 0x00007fc72e1be729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #7 0x00007fc72e1cffd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x000055abb79060d7 (anonymous namespace)::TemplateInstantiator::TransformTemplateTypeParmType(clang::TypeLocBuilder&, clang::TemplateTypeParmTypeLoc, bool) SemaTemplateInstantiate.cpp:0:0
 #9 0x000055abb792864d clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) SemaTemplateInstantiate.cpp:0:0
#10 0x000055abb792e07f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) SemaTemplateInstantiate.cpp:0:0
#11 0x000055abb7932608 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc const&, clang::TemplateArgumentLoc&, bool) SemaTemplateInstantiate.cpp:0:0
#12 0x000055abb7933e88 bool clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArguments<clang::TemplateArgumentLoc const*>(clang::TemplateArgumentLoc const*, clang::TemplateArgumentLoc const*, clang::TemplateArgumentListInfo&, bool) (.constprop.0) SemaTemplateInstantiate.cpp:0:0
#13 0x000055abb79343bd clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformConceptSpecializationExpr(clang::ConceptSpecializationExpr*) SemaTemplateInstantiate.cpp:0:0
#14 0x000055abb79184c7 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#15 0x000055abb795611c clang::Sema::SubstConstraintExpr(clang::Expr*, clang::MultiLevelTemplateArgumentList const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6ec211c)
#16 0x000055abb7093c4f SubstituteConstraintExpression(clang::Sema&, clang::NamedDecl const*, clang::Expr const*) SemaConcept.cpp:0:0
#17 0x000055abb709b20a clang::Sema::AreConstraintExpressionsEqual(clang::NamedDecl const*, clang::Expr const*, clang::NamedDecl const*, clang::Expr const*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x660720a)
#18 0x000055abb77ba680 clang::Sema::TemplateParameterListsAreEqual(clang::NamedDecl const*, clang::TemplateParameterList*, clang::NamedDecl const*, clang::TemplateParameterList*, bool, clang::Sema::TemplateParameterListEqualKind, clang::SourceLocation) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6d26680)
#19 0x000055abb76d563b clang::Sema::IsOverload(clang::FunctionDecl*, clang::FunctionDecl*, bool, bool, bool) (.part.0) SemaOverload.cpp:0:0
#20 0x000055abb76d628f clang::Sema::CheckOverload(clang::Scope*, clang::FunctionDecl*, clang::LookupResult const&, clang::NamedDecl*&, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6c4228f)
#21 0x000055abb716b36d clang::Sema::CheckFunctionDeclaration(clang::Scope*, clang::FunctionDecl*, clang::LookupResult&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66d736d)
#22 0x000055abb71733c3 clang::Sema::ActOnFunctionDeclarator(clang::Scope*, clang::Declarator&, clang::DeclContext*, clang::TypeSourceInfo*, clang::LookupResult&, llvm::MutableArrayRef<clang::TemplateParameterList*>, bool&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66df3c3)
#23 0x000055abb717727f clang::Sema::HandleDeclarator(clang::Scope*, clang::Declarator&, llvm::MutableArrayRef<clang::TemplateParameterList*>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66e327f)
#24 0x000055abb7242d9f clang::Sema::ActOnCXXMemberDeclarator(clang::Scope*, clang::AccessSpecifier, clang::Declarator&, llvm::MutableArrayRef<clang::TemplateParameterList*>, clang::Expr*, clang::VirtSpecifiers const&, clang::InClassInitStyle) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x67aed9f)
#25 0x000055abb6e1b37c clang::Parser::ParseCXXInlineMethodDef(clang::AccessSpecifier, clang::ParsedAttributesView const&, clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::VirtSpecifiers const&, clang::SourceLocation) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x638737c)
#26 0x000055abb6e5ad1c clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63c6d1c)
#27 0x000055abb6ef6575 clang::Parser::ParseSingleDeclarationAfterTemplate(clang::DeclaratorContext, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6462575)
#28 0x000055abb6f04756 clang::Parser::ParseTemplateDeclarationOrSpecialization(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (.part.0) ParseTemplate.cpp:0:0
#29 0x000055abb6e5b0ad clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63c70ad)
#30 0x000055abb6e5d255 clang::Parser::ParseCXXClassMemberDeclarationWithPragmas(clang::AccessSpecifier&, clang::ParsedAttributes&, clang::TypeSpecifierType, clang::Decl*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63c9255)
#31 0x000055abb6e5d78d clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributes&, unsigned int, clang::Decl*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63c978d)
#32 0x000055abb6e5f943 clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::ParsedAttributes&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63cb943)
#33 0x000055abb6e2fab0 clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x639bab0)
#34 0x000055abb6ef5b9f clang::Parser::ParseSingleDeclarationAfterTemplate(clang::DeclaratorContext, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6461b9f)
#35 0x000055abb6f04756 clang::Parser::ParseTemplateDeclarationOrSpecialization(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (.part.0) ParseTemplate.cpp:0:0
#36 0x000055abb6f049d3 clang::Parser::ParseDeclarationStartingWithTemplate(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x64709d3)
#37 0x000055abb6e3ed60 clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63aad60)
#38 0x000055abb6e0adc3 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6376dc3)
#39 0x000055abb6e0bced clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6377ced)
#40 0x000055abb6dffcca clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x636bcca)
#41 0x000055abb59313d8 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4e9d3d8)
#42 0x000055abb5192e79 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x46fee79)
#43 0x000055abb5117476 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4683476)
#44 0x000055abb5276d97 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x47e2d97)
#45 0x000055abb1c6dea6 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x11d9ea6)
#46 0x000055abb1c69cca ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#47 0x000055abb4f7f39d void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#48 0x000055abb4655160 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3bc1160)
#49 0x000055abb4f7fc5f clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#50 0x000055abb4f4769c clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x44b369c)
#51 0x000055abb4f4813d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x44b413d)
#52 0x000055abb4f5000d clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x44bc00d)
#53 0x000055abb1c6c350 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x11d8350)
#54 0x000055abb1b77665 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x10e3665)
#55 0x00007fc72e1c0083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#56 0x000055abb1c649de _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x11d09de)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134
```

See it live: https://godbolt.org/z/zvc3ETrdz

This started occurring within the past couple days on trunk.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW11z3CiX_jXyDdVdEujzwhedtj3r2WTjjV2zuXMhQN2s1aAB5Njz67dA6rZQq9t2xp3drXeqktgRcDjnOQ-HwxfWmq8EY-dB8ilILs5wa9ZSnVP8yKk2UrCzUtLn89_4IxPArBmoZF3LH1yswCOuOQVGYaFrbLgUoBXcBGgRhBdBuP03Dbs_pGm6L4ZtmhobFqCleW6YwBsWoMuujEhBWGMAAQG6AEa1LECfhuImGs_n8117bVRLDNAgyLbNsovXRYC7PQkBWtqPA0FhMa05UOzPliumAekb7Ro8Sk5BFcA8gIUnyWo1BOl12Q6Ld8gdmr11wbBLUmOxAkRhvWYa_OBmPe01KbSs2aBNAD_ZP2gBAnilpDQBvKrrx82sUfK_GbH_7etd1bwM4NUt2-D-x11v5LXQBgvDsWFzywu0gFECrcyuKVoEaPGfLa7vnhtmDcRCiueNbLWzy5bui5KqL7GErKTabKtYITdYbezPAOaDLuyXz5J8anlNmQpgGsDlUIUpCZ8lsbVKKesAFlbnhdZMOf4HabhQq_mKmX_ngm79gy4smbeyFmrVbpgwLxoA13EKAgi3lQDua4EHLijYcL3BhqwDCAOYgQrzmtF555Sbz5eL20ug23LDDcCgbFdAsUYqA4wEa2MabbuCVwG8WnGzbss5kZveafu-41q3TAfwCmBBARekbilzA99xBZSYPBiFCbMgNIo1ShKmNaNAy1Z1n21LrLUk1sEUqFYATRRvTK_yrcHkAdB20-yCRTgPwuJGyZXCm53xumeZbByr5KbhNVMz9tTUUll_dUyb4a0D9MyoVjwE8Krk4oWIlrBgtqI_sKpmMZitwExaubhprPTWNK2ZazDbWCzAbPaUpzOsNzP9LAx-CtAFF4bVYHYLZrMVITMjZU3WmAvr2mPq2cpa4EavpQGzishaqhnleCWkNpxoMKuEnDlg_c_a0ABdkE51GIIALXt4t9ElsoB5n9EiSuw_kRtHrVKWPg1Wmilg5AMTIICZDRYw60TACRGW0E6AbWiDfBcPA3jVCi57TLUGdlKw8rZxcicUBBCFIHwKwzBMElyWcRYWJauAo5vjvH7W3S83igvjyHDXMSp_qaTwj3upjWJ4049LLowbTnZUfQglAvgpfEIkS0pW2aG80z8a6Z8VkEzpv6wZFm3zVdzylcB1APNWuNmUglraXk6hLSog8bSFnrZpEpMsB0vLqW-MyEemnjv1_g0LWttO8x5Jr85SCsOeTB-OQ_d31wXqu8gqkkGWRTCGIbi_V0wbqdi9Mr2dXcB_ytP7NJ7VXLRPs5Vou4LGrBXDdK7lPHS2RHEMQ8-S2OsmolUYlkBhrtkb5BMrOXWSYxSGpSc58SWXLE8KgEv5Js0HkiHMk8KTnI4lZzuvv1lmBn2ZmS-TVBVN3ycToYqmnsx8yJKsCNOQZlbmbmYFNuXQjRuHxf-pORYcTx1GXC18Q2GextTrTzG2Uz9Ay5_C4HIMw_vN3pr5DvNsaApH5rEwq_6XzLt188a1qGQAF-82JPINQTAN89MbMk7CfKNGpZ8lATYBNodZO6jaV3o3aS0YcAQGYnnuJP1yROyE_jZIFm7afyN-i9fxe3NVrk1HOg_vAOZzJ6FRsrFTzDtdgEYuiFF5-rix7Na7tw0jHNf8L7eMvnxqlA_skWrvH3ixb2iUxyQ7uaH7Nv2s-omvfpJGERmq75ab3W9tqc3SUkJhLswRFTy-fWlrwz-zR1ZPMW8QED48u0sZgVH0kt1Zc1PP3LBAJK6As4yb1jDfPKa1S9LzMR578es_8IbRC0bqQ6POihuUdU7qeTjtmGykaQlDPO2YhZrUW1_-2bos-m_o-TeN_GiHpmEGQ-w51E_EshKneTgN05Z-N1jhDTNMWf7phWI_g9OksJ-A7JicLhQv32GNs6TbK_GbudTisyQu0p3CMxSmaR56nvEzx5QmKSqnbbnWXx-ZqiWmvheuWkFs7xbAfegmSreI-T-7yazByrzMY9sOJ8ceDEeqpzCvplVfrhl5mNb-lkib5r1B7UHpZykf2uYb021tDiVLO1K55uNZ-0PdSmII82roVugnmlFaopQewWZoLlY9_z4UJg-C00GR0gyl1IPCTzOjDCGCDoRoYr6KMRRSvQmJYfUxFWxZv9UwEVv2FxWvgfiyK_OlNbis2UIp_PyNVdNp7F7Usins1gUnmdJTWiGCPC-gkRcymB0YrN2Wzd-F_yMwOgEwDMHMH6l-ZgpjSIsDwDh6Lr9__8I2JVPvBGhBCNPaJdMVt7qfHr69rGNfqz-4Mjud9KFQei2WNdb6WnBza55rdgrPZJjRwveMl3SnLCpR5iXdN26befD78vv3a1Fzwb4ws5b0glW-a477wImgC2MUL1vD9B-c_TiEyE23UX0s6OxpR19WG5U8JPhtDjl9poLyDGXeogCmvjsSTKNX3eF444-XvantfV75KKAHHvy2uL7-WnZHUSdJyBFJqb_CgpkPZpUmWXLUqFsuVi9RmUuxqAxTW0t9RF9ouZv1TofYa9ycdNdRh-4R4uM9EqcwyRLPI94SKa3COEvSo6BtMRv45Kvyd0ve55ZTITdI6j3Fp7P6YjTMyxDTf4b524Z5FmIv9_UPJVOWUJgcH-YHwfwvbtY3Cq82WL-C6_tp41LgrYBu230vOzkZZgVMvIHoH4RazLL8VQJ2cPU2kKn102hsHR14b4Fvd-jqzjV_IVxZ7lMMjuCqihgdh8vya8CXIUxGPvSUkA9MvGGPZM9wK_ijBu9EyJjY7RnK3mpwZN4bu_IUTiqL2Ft9IeQ7CVa4DI_iMxj5L-ng_nRyYrR_HuW-5udubdKjPr37d71pak64uetvoO2knsAzRYlLb_8NxaNELCn95d8_idiJE7Go9Jd9KPknEXM4pGMcCno8sA9jhsHKcLGyWcPPUfP_B3uysKB-pB0trBCj6Zsj7a9G6PUa4z5Ok1RgTFM_KvqLIRZiSo5z7_LJMCVwfRDNj0BjEPi6ie80cGQp9TdP0WhNFJaEHU9J72TjDnO7VHCIw9cG_9myG6P8jTxb8Tcl28Zt8V1OMGG3DflF0rZm15tGKnNr3MA-TRqTZYR5uWbsL2doVRGC93BY3N4dPAw-9fEDSktCvKPP2FtOJAWKEPWu_CwlZb8xsXCHDtu9UkZaw_pP_YXqj9U0ZgVFNPc09TL5JCogywrvsEfZOCTohKonUjKtGMsKT0nkKxllcZb6cHbddlcqCJtG9LBVJ-FynOYozlLPEC_xS2CW0iLzN8ydyi_2PMqpheWevScJSnHGIC0yzwAvT4pIShlOASHR_QZbGYNrzcOzgzVW_l2qJfC_wSV4lJyexo4oogXDviPSkR2FDSpb9JfRnQsVA2tuN7iu_2DESGWXDpNGjc5QrIx-Eveu0lDFH5maTL9iL5GIq6xCBXXIDORW_VnlvXLgutJuKO4uIxFc1yUmD_eV8CN-13dPomW0lJsNFnQ8qied6C7q22-ysb1ji8EAH6O4WPXzSOfhXYP7e_L05C7rB2hRYs3JvXbVexS9yvbDvVGYd_fzbPFIHK5rOyikGpTbKoNrBo5FHeauSQCzGm9KigOYvUAF8-3d9d9lOe2PfHTjPInScOCKqXvlXcm3VtziitXPHpzHXXeCS_QliSI_y4qLMcVI4q09_-UoMlokHeJC4r_1qOIsLchB4Jzv8N6UuUXTi-ajhrbCoVX4karj-yY72z50SohLlBbeqVISjXDJI0Tfi8vvstSHQfldlqMLicM4ux-adzxoMLcU2N8tPYpjT5ZfgmYcIS_bTfw3LlUShuFBNC8Gv3uZw0TKcMgLvxDNj09Q4pKEoY8fGk3sxA5c13Cbomz1d2Fl0QeF16ftj09KcpR4oTnxssOozLI0TYDV-sM7DxlKU-8EJBk9HCJhmCNwf1_z0sZirMz9QJO3PviJw9xb1CbjvCsuKAOd_BMgHBaU7boflqMFYEq5Nz4dOUDVrwgA6QncPT1174UBe-KWDJSBCMVWz1YzMHsERgLNGOCDNL3vbJuhA8VMqwSzQ8g2PvJO-dZKMqDmj3b9Mn7PKmkpazOXahXAq7_s30eCLu8U_Wso427NNXBoMgokIa2yk6gzgneP2hvsAmnb1AxQ_KyBFMDhOD-j54gWqMBn7DxK8zCDWYjg2fo8LZMoxCVmaQjzMIyyrIjKEqdlwSjKYnzGz2EIURiHCQxRFsE5LmJSlQjGhaVShYI4ZBvM67kdZtaGM_f49jyNiqQ4q3HJau2e5UMo2A_gCgMIg-TiTJ27Z7tlu9JBHNZcG_0ixXBTs_MlFkKa3QveAC0VFiumA3QJZrPBo2Xr0lYxcOqXy2etqs9__j2yQ-V_AgAA__9DbkOA">