<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/88081>88081</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[LLVM-18.1.3] Parser CRASHING on requires expression
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
nyyakko
</td>
</tr>
</table>
<pre>
System:
`Windows 10 Pro 21H2`
clang++:
```
PS C:\Users\Wellington> clang++ --version
clang version 18.1.3
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin
```
Snippet:
```cpp
struct S
{
S(auto value)
requires (requires () { [&] -> decltype(value) {}; })
{}
};
```
Backtrace:
```
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-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++23 <source>
1. <source>:4:54: current parser token ')'
2. <source>:1:1: parsing struct/union/class body 'S'
3. <source>:4:33: lambda expression parsing
#0 0x00000000036ae888 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x36ae888)
#1 0x00000000036ac9d4 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x36ac9d4)
#2 0x00000000035f5508 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007fdf34242520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x000000000634a8c7 clang::Sema::tryCaptureVariable(clang::ValueDecl*, clang::SourceLocation, clang::Sema::TryCaptureKind, clang::SourceLocation, bool, clang::QualType&, clang::QualType&, unsigned int const*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x634a8c7)
#5 0x00000000063779ed clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x63779ed)
#6 0x000000000637807f clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::CXXScopeSpec const*, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x637807f)
#7 0x000000000637d15d clang::Sema::BuildDeclarationNameExpr(clang::CXXScopeSpec const&, clang::DeclarationNameInfo const&, clang::NamedDecl*, clang::NamedDecl*, clang::TemplateArgumentListInfo const*, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x637d15d)
#8 0x000000000637d692 clang::Sema::BuildDeclarationNameExpr(clang::CXXScopeSpec const&, clang::LookupResult&, bool, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x637d692)
#9 0x0000000006382c3c clang::Sema::ActOnIdExpression(clang::Scope*, clang::CXXScopeSpec&, clang::SourceLocation, clang::UnqualifiedId&, bool, bool, clang::CorrectionCandidateCallback*, bool, clang::Token*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x6382c3c)
#10 0x0000000005e3b70f clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3b70f)
#11 0x0000000005e3d6ba clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3d6ba)
#12 0x0000000005e3d859 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3d859)
#13 0x0000000005e42a39 clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e42a39)
#14 0x0000000005e1de3e clang::Parser::ParseDecltypeSpecifier(clang::DeclSpec&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e1de3e)
#15 0x0000000005e588ab clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&, clang::OpaquePtr<clang::QualType>, bool, bool, bool*, bool, clang::IdentifierInfo**, bool, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e588ab)
#16 0x0000000005dc12ec clang::Parser::TryAnnotateCXXScopeToken(bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5dc12ec)
#17 0x0000000005e01a00 clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e01a00)
#18 0x0000000005e02d11 clang::Parser::ParseSpecifierQualifierList(clang::DeclSpec&, clang::ImplicitTypenameContext, clang::AccessSpecifier, clang::Parser::DeclSpecContext) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e02d11)
#19 0x0000000005e0319f clang::Parser::ParseTypeName(clang::SourceRange*, clang::DeclaratorContext, clang::AccessSpecifier, clang::Decl**, clang::ParsedAttributes*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e0319f)
#20 0x0000000005e5e170 clang::Parser::ParseLambdaExpressionAfterIntroducer(clang::LambdaIntroducer&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e5e170)
#21 0x0000000005e5ea5b clang::Parser::ParseLambdaExpression() (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e5ea5b)
#22 0x0000000005e3bb4b clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3bb4b)
#23 0x0000000005e3d6ba clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3d6ba)
#24 0x0000000005e3d859 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3d859)
#25 0x0000000005e42a39 clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e42a39)
#26 0x0000000005e53a10 clang::Parser::ParseRequiresExpression() (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e53a10)
#27 0x0000000005e3aa6e clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3aa6e)
#28 0x0000000005e3d6ba clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3d6ba)
#29 0x0000000005e3d859 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3d859)
#30 0x0000000005e42a39 clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e42a39)
#31 0x0000000005e47f0d clang::Parser::ParseParenExpression(clang::Parser::ParenParseOption&, bool, bool, clang::OpaquePtr<clang::QualType>&, clang::SourceLocation&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e47f0d)
#32 0x0000000005e3b2c4 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3b2c4)
#33 0x0000000005e3d6ba clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e3d6ba)
#34 0x0000000005e4725a clang::Parser::ParseConstraintLogicalAndExpression(bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e4725a)
#35 0x0000000005e476fd clang::Parser::ParseConstraintLogicalOrExpression(bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e476fd)
#36 0x0000000005e1c282 clang::Parser::ParseTrailingRequiresClause(clang::Declarator&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e1c282)
#37 0x0000000005e27609 clang::Parser::ParseCXXMemberDeclaratorBeforeInitializer(clang::Declarator&, clang::VirtSpecifiers&, clang::ActionResult<clang::Expr*, true>&, clang::Parser::LateParsedAttrList&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e27609)
#38 0x0000000005e2ce13 clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e2ce13)
#39 0x0000000005e2f7fc clang::Parser::ParseCXXClassMemberDeclarationWithPragmas(clang::AccessSpecifier&, clang::ParsedAttributes&, clang::TypeSpecifierType, clang::Decl*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e2f7fc)
#40 0x0000000005e2ff6e clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributes&, unsigned int, clang::Decl*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5e2ff6e)
#41 0x0000000005e339b8 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-trunk/bin/clang+++0x5e339b8)
#42 0x0000000005dffcee clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5dffcee)
#43 0x0000000005dc3b37 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5dc3b37)
#44 0x0000000005dc4ab3 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5dc4ab3)
#45 0x0000000005dcd152 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5dcd152)
#46 0x0000000005dcecc7 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5dcecc7)
#47 0x0000000005dcf2e0 clang::Parser::ParseFirstTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5dcf2e0)
#48 0x0000000005dbdc9c clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5dbdc9c)
#49 0x0000000003f11195 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3f11195)
#50 0x00000000041a65b1 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-trunk/bin/clang+++0x41a65b1)
#51 0x000000000412c93b clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x412c93b)
#52 0x000000000428a013 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x428a013)
#53 0x0000000000c4db5c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0xc4db5c)
#54 0x0000000000c47b0d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#55 0x0000000003f59fe9 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
#56 0x00000000035f5933 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x35f5933)
#57 0x0000000003f5a209 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
#58 0x0000000003f207e7 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3f207e7)
#59 0x0000000003f2119d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3f2119d)
#60 0x0000000003f2af8c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3f2af8c)
#61 0x0000000000c4afc1 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0xc4afc1)
#62 0x0000000000b2f084 main (/opt/compiler-explorer/clang-trunk/bin/clang+++0xb2f084)
#63 0x00007fdf34229d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#64 0x00007fdf34229e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#65 0x0000000000c4766e _start (/opt/compiler-explorer/clang-trunk/bin/clang+++0xc4766e)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsXFFzmzi0_jXkReMMSGDDQx4cJ9nN3nSbjbPdvmWEEI5usMRKInXur78jgR2EMU47ZHfabadNHSSk73zn6OiTEMZKsRWn9MyLzr3o4gRX-lHIM_7ygp-exEkqspez5YvSdO2huedfeP7cm_p_MZ6JLwoEPriVAsDgV-hN_abY_iQF5isPnpu_rRubv_bX2yVYmLJo8aeiUnnR4i9aFIyvtOAeugStJsBk8kylYoK3WgfNJRDEp8EpqkvusVxR7aE52MTTh2k4KcnkS412slbPpKn1KCnOwFpktDB1S6HYpi665krjoqDZBZOmqIF4K8VK4jW4YgU1UG9uPn3wokXKeK9t9c8lZ2Vp0XQqkbKsrygtK6LBsimfndcfwNKDMa60AM-4qKgHk-Z680fSvysmqQIejNufPZgAb3YOjDPh1IsuwMQwmVFS6JeSejDetmeqebMLD50D81-7g6akQWSqDJh4jsmTlpjQg16-uZwvL4Gq0jXTAIO0WgFJSyE10AI8al0qcyu88uDViunHKj0lYu3Bq6J43v43KaX4X0q0B6-YUhVVHrwCmGeAcVJUGQX6kQIisXoE6Q4PXIBS0lIKQpWiGVCikvVlcydWShCGNc2ArDhQRLJSnzZu05g8gaxalzuj_FPPT7YxgOWqWlOuDXDgwStRGmRErEtWUDmhm7IQkkpzzcTpRMuKP3nwygRLc20b1qvsC5b5JASTFZgI0xguS9NkpctKnyowWRsCwGSyiacTrNYT9cI13njognFNCzBZgslkRchEC1GQR8y4hy4GMZnKiuNSPQoNJjkRhZCTjOEVF0ozosAk52Ji2XQvK5156ILU0CECHlo0nKLLmqXAsORcRvPQQ_PI_ACkkpJyDUosFZVAiyfKgQdnJvjgrG4B9rQQNP_sjYyvQD1oPHhVcZMRLKVKAZOrTHvLXWvoAB6ETHMFXqcZBnRTSqpsImk6aIaCB5EP_I2__YOmmMZxDGxgormH5upF1R9uJePahs19HXvxayWJvzwIpSXFazMm4QIwru0INOP124PHg-f-psH0On49iIIOaJJkYR_oRUExr8qPfMlWHBcejCtuJ4MMFML0MhpEg8CBCB2IUR5FfgwWJuTuKBHPVL7UmH7FPCtMT3HDmVNnIbimG31qsima-_bfrgvUdDHLsxyFMIQR9Bt7CpZ68KqZHwrGq81kxau6gJwqcTq1wO0tDuywDXuKQhyTWTNNWUaXdI3rT1q-LHCpK0k_YclwWpiYaNX8ZNLwBSWFB-cmJNqN2GC9EQRrG92L_h7udz38D-PZ0TZSIYpOpT8qXNzbWWE6XLILC8Y1IIIrbVGPEx4NjQ7PkcvzbJbQrJ-F84oVmeHxjuaXm1K-meVXE53Lpg17Vw-ppiEsLaO_4zW95rnYstEl8HeqNM1MrWVJCcsZlTeCdCvhNc2-IQbu6bossKbzZhq6YUq3wYzoGsu845ppxzWxP8u_K9csPn9eElFax7QY--48Y4h3PDPreCYLomODpkXZvof6iOqS-TVD4jCnA0VvYHSb20Zj1hDnMBt3mZ0m8L2ZvRHiqSrvqKqKbek2hY9t7jSBjrmJa24MCSL95s6J_sivs8udgnLttEbu-7Rt_r7hgwPsT_53hQuTT7PrrJcWtychJSWmnQXmGcuwpgtcFGaN4ISOG3JGl446Vi2DO4qNQnN0ZURROvOdLHprJXLr8wIrfYjmdmVTz_6-TZIuO12y27ealGtuX2qs6f6to_HRmOvwEXT4yKYpfl8-_n0SjI0OCbBLQhwlgyTM7d6NSYtvoaJj2nh2xFHi2IFcO0KI0bAd_yJ6C85BH7rog4wiOoj-otlc2Sk91whTvMt0Y8G2qBzYkQs7imOcDsL-WJq8iIt2Nu6BP5ysP5b474reaumhRZ-CQ5d9GXo3lnqH43VGubZIzERv683fa_priHKYdBRulJEAUnIwXciXOefCxOSWqGb6iEeFWaNwYM5ch_sB9v2jcdrIkp2v1UCsHsyR9nO2VWZDmm9OCFWqFVkH29z23CzpB2reYE1rBHOtpdGD-wrjel0WjDBtYpDjNd21OlbUWLYdd8Qdd8AsCAYJ3LHyR6NoGlve5o-DFo7F_2hMGSIcppIOUyhIhrWPsdEI6Y64tDrxDvNVj8TcxrqQ30LMbinSbfY17lhaaapGFQSWiDZTsKMSIxrMhof4jd3RfJ1O57k2WVRLkVWkm9nryu3SEScoi9UxJugag6PhCaprzPbxxkj4cOSkfdhVX2kaDuP7wSR5Grp8oJ-SHMHwx5DkMPqeJTmcdlIHwsFwHrxrHom-V_IwAByEHTGGMJ4OLxp-rORhzHX4iH8mDwSTHyN5IP97Th6oozvCWe5ng-hvsaT8LSbYiq219PH9yLcsl4_th44o0iwXDll7IgiS8D-Ux4y5Dh8_RRBEKOyOIBgdIUFwpSVmXN-IFSO4mHP3GcG4WzgWkIO4K3dm03x4zO8h_ijfFfA0d8ddR-EEBMZweE0sMSsYX22VzqLAlaL7uwf1InjcvUcDzkHfUT9wNvWHJ4jF588f6Dql8hXiOc2FpNecaYYL9n99u6gtW5xx8olJ3d7R2t-FMpmzeZTmJN760Zxd5WtZ9effY3tPIzJriXOY7egoSGiAjjG7KLBSLr17qegNG0PONsc424G39fEqeyZgfn39Ma3P9I2YvCxBDoMdEQbzWX5wN3eYwb-YfryVeLXG6giZvWwN8nnffn7Qc_ZhtyM1GlGGhzZRod8lKj-2hNkO4gY46Ymz4bNMQ4UHOGsfRXp_jnJ3WRN2H1OiJI2HOTKRdODJihZPjfPFE-VvOsT1z27VH5Ekb9iy7_pvNI1iiHc84wrXLM8JPf7U7ufTkHEeTlm2HXegzjM0lKLZUXd8lFcVt3P1Bc2vuaayPpX69TPT0RrNLNTv3T0_jfYQz9Dg8BR2eApxOjy_t8LWoYsZ4dS74BibrW50vR9bhgyHrajDVhZEwyr5clMH0UEd9F4MjcaBMdHhoPt0mhIyPLLuRXlDn2lRT4_x8d0IU_EXKaryjub9OxK7818fRFYV9HpdCrldmY6X5WvbHONnHeNzSIc3gq-YVPo7ZsAY6DDgLgiyNCPJvpydL-87Mszgfb9DhA0OB6iju1EeBEESuUfzMvoL5fXabLsao6TStLk03oZ903sbXuSo3TDA0yh1HtdfSTNJ8qwH34jImo4dZIGLDJIEpS5xdV_2PTVev3e1z91hU8aLzwacg97RYSGMse8uWBucr0Y8i751w56R4yXVBpSD2pErPgmzNCKAkOBhjU0brZd55lLiF5sWFuQRy9djyPVJJ_caXIBnwbIRwdfQHOxhB_ss9TOwpXkR3Ntx3rJgucZF8YkSLaQRhr2G2EzxeotpoxGNLW2bgEyyZyr3X78xsCJ3_EdJThPLRqvdvNEvD9ISakvr0VW_quWhOWmO6z7k3M3Rdd9NtCyChVivMc-6A7XXcfY9NnNNNEfgPLRo8aOl3Vezmb_26u6Ghwey2QRB_UuKFSMPylZvWHQqmwsPWmKm1ba40xwuChP9QrbKTZV5Z2O35tze4sFZ_dqafW9uSxWMty9s_SbSfn9Mu29cJQi1XNH3XlVdclfxJc5p8eLQOey6sRJ3DdMJ91knrjB09xr_c3FhmD4tsdSn_mAAxC5x0J_R2UHirMPw3tS3ZdPJ1Z0bTYVDK-CBqnNHn7RsG2H6t7Y6UdRRJzAIkuxryfhNpOowE7-J1KzGHSaGkvDO-SVmxu_7-1uD5DUR8n4UGobaFE79DoU4j8khuBetz44C6Jn6D1H_D1I4luy0nDikBZ3JGuekkZ1bqbEFbbPG9gji8al4HHFh4Dh4HTnnpzD34xAYpKN0WLfndNh5axcmWfKVb-3aW5w2w26bNPTBw4O57UFpLPVDy6I390JDt5eoq8OmUwrq9kfyjmnxtcvttyycZGcoS1CCT-hZMAvgFPlJlJw8nk1TP0E-yYMUZSgmKSTTKM3DmZ-gMAwjdMLOoA9DP_QTH4ZJkJwmaRD7GZpiFNIYJb4X-nSNWXFq4u9UyNWJ_faFszj24-CkwCktlP3eEAg5_QJsoQehF12cyDP7vQ1ptVJe6BdMafXaima6sF84cnPz6cOk-faO6ALUy3ewuJsvf73-_Rcg-OsXXby-pX9SyeLs2783woL__wAAAP__mQMNmg">