<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/107767>107767</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang frontend crashes when splitting declaration and definition of variadic concept template
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Toeger
</td>
</tr>
</table>
<pre>
### Executing clang command:
```
% clang-18 -std=c++20 test.cpp
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: /usr/lib/llvm-18/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name test.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/tmp -fcoverage-compilation-dir=/tmp -resource-dir /usr/lib/llvm-18/lib/clang/18 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/x86_64-linux-gnu/c++/13 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/backward -internal-isystem /usr/lib/llvm-18/lib/clang/18/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++20 -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/test-d05e84.o -x c++ test.cpp
1. test.cpp:9:61: current parser token '{'
#0 0x000073a8883a63bf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) build-llvm/tools/clang/stage2-bins/llvm/lib/Support/Unix/Signals.inc:723:13
#1 0x000073a8883a44f9 llvm::sys::RunSignalHandlers() build-llvm/tools/clang/stage2-bins/llvm/lib/Support/Signals.cpp:106:18
#2 0x000073a8883a6b00 SignalHandler build-llvm/tools/clang/stage2-bins/llvm/lib/Support/Unix/Signals.inc:413:1
#3 0x000073a886e45320 (/lib/x86_64-linux-gnu/libc.so.6+0x45320)
#4 0x000073a88ff0b7d8 clang::TemplateArgument::isPackExpansion() const build-llvm/tools/clang/stage2-bins/clang/lib/AST/TemplateBase.cpp:318:3
#5 0x000073a89097f052 getPackSubstitutedTemplateArgument build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaTemplateInstantiate.cpp:1601:7
#6 0x000073a89097f052 TransformTemplateTypeParmType build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaTemplateInstantiate.cpp:2288:13
#7 0x000073a890959d76 TransformQualifiedType build-llvm/tools/clang/stage2-bins/clang/lib/Sema/TreeTransform.h:0:27
#8 0x000073a890959d76 TransformType build-llvm/tools/clang/stage2-bins/clang/include/clang/AST/TypeLocNodes.def:31:1
#9 0x000073a89098015a isNull build-llvm/tools/clang/stage2-bins/llvm/include/llvm/ADT/PointerUnion.h:142:33
#10 0x000073a89098015a isNull build-llvm/tools/clang/stage2-bins/clang/include/clang/AST/Type.h:805:31
#11 0x000073a89098015a TransformReferenceType build-llvm/tools/clang/stage2-bins/clang/lib/Sema/TreeTransform.h:5275:19
#12 0x000073a8909599c4 isNull build-llvm/tools/clang/stage2-bins/llvm/include/llvm/ADT/PointerUnion.h:142:33
#13 0x000073a8909599c4 isNull build-llvm/tools/clang/stage2-bins/clang/include/clang/AST/Type.h:805:31
#14 0x000073a8909599c4 TransformType build-llvm/tools/clang/stage2-bins/clang/lib/Sema/TreeTransform.h:4899:14
#15 0x000073a890970a28 TransformTemplateArgument build-llvm/tools/clang/stage2-bins/clang/lib/Sema/TreeTransform.h:4628:10
#16 0x000073a890960207 TransformTemplateArguments<const clang::TemplateArgumentLoc *> build-llvm/tools/clang/stage2-bins/clang/lib/Sema/TreeTransform.h:4820:13
#17 0x000073a89096af04 TransformTemplateArguments build-llvm/tools/clang/stage2-bins/clang/lib/Sema/TreeTransform.h:0:12
#18 0x000073a89096af04 TransformConceptSpecializationExpr build-llvm/tools/clang/stage2-bins/clang/lib/Sema/TreeTransform.h:12972:20
#19 0x000073a890960be1 clang::Sema::SubstConstraintExprWithoutSatisfaction(clang::Expr*, clang::MultiLevelTemplateArgumentList const&) build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaTemplateInstantiate.cpp:4137:23
#20 0x000073a890325d9f SubstituteConstraintExpressionWithoutSatisfaction build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaConcept.cpp:805:33
#21 0x000073a890325b52 clang::Sema::AreConstraintExpressionsEqual(clang::NamedDecl const*, clang::Expr const*, clang::Sema::TemplateCompareNewDeclInfo const&, clang::Expr const*) build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaConcept.cpp:825:21
#22 0x000073a89085f612 MatchTemplateParameterKind build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaTemplate.cpp:8359:11
#23 0x000073a890848a6f clang::Sema::TemplateParameterListsAreEqual(clang::Sema::TemplateCompareNewDeclInfo const&, clang::TemplateParameterList*, clang::NamedDecl const*, clang::TemplateParameterList*, bool, clang::Sema::TemplateParameterListEqualKind, clang::SourceLocation) build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaTemplate.cpp:8449:12
#24 0x000073a8907bbacd IsOverloadOrOverrideImpl build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaOverload.cpp:1306:46
#25 0x000073a8907bb4b4 clang::Sema::CheckOverload(clang::Scope*, clang::FunctionDecl*, clang::LookupResult const&, clang::NamedDecl*&, bool) build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaOverload.cpp:1160:11
#26 0x000073a89038cecf clang::Sema::CheckFunctionDeclaration(clang::Scope*, clang::FunctionDecl*, clang::LookupResult&, bool, bool) build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaDecl.cpp:0:15
#27 0x000073a890381526 setRedeclaration build-llvm/tools/clang/stage2-bins/clang/include/clang/Sema/DeclSpec.h:2682:51
#28 0x000073a890381526 clang::Sema::ActOnFunctionDeclarator(clang::Scope*, clang::Declarator&, clang::DeclContext*, clang::TypeSourceInfo*, clang::LookupResult&, llvm::MutableArrayRef<clang::TemplateParameterList*>, bool&) build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaDecl.cpp:10589:9
#29 0x000073a89037cd56 clang::Sema::HandleDeclarator(clang::Scope*, clang::Declarator&, llvm::MutableArrayRef<clang::TemplateParameterList*>) build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaDecl.cpp:0:11
#30 0x000073a89039b28b clang::Sema::ActOnStartOfFunctionDef(clang::Scope*, clang::Declarator&, llvm::MutableArrayRef<clang::TemplateParameterList*>, clang::Sema::SkipBodyInfo*, clang::Sema::FnBodyKind) build-llvm/tools/clang/stage2-bins/clang/lib/Sema/SemaDecl.cpp:15453:15
#31 0x000073a88fa63e0e clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) build-llvm/tools/clang/stage2-bins/clang/lib/Parse/Parser.cpp:1440:23
#32 0x000073a88fa51294 clang::Parser::ParseSingleDeclarationAfterTemplate(clang::DeclaratorContext, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) build-llvm/tools/clang/stage2-bins/clang/lib/Parse/ParseTemplate.cpp:361:12
#33 0x000073a88fa4fa56 clang::Parser::ParseTemplateDeclarationOrSpecialization(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) build-llvm/tools/clang/stage2-bins/clang/lib/Parse/ParseTemplate.cpp:0:0
#34 0x000073a88fa4f3d5 ObjCDeclContextSwitch build-llvm/tools/clang/stage2-bins/clang/include/clang/Parse/Parser.h:1059:11
#35 0x000073a88fa4f3d5 clang::Parser::ParseDeclarationStartingWithTemplate(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) build-llvm/tools/clang/stage2-bins/clang/lib/Parse/ParseTemplate.cpp:42:25
#36 0x000073a88f9ab2cd clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) build-llvm/tools/clang/stage2-bins/clang/lib/Parse/ParseDecl.cpp:1960:10
#37 0x000073a88fa6148f clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) build-llvm/tools/clang/stage2-bins/clang/lib/Parse/Parser.cpp:0:0
#38 0x000073a88fa5ff7b clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) build-llvm/tools/clang/stage2-bins/clang/lib/Parse/Parser.cpp:760:10
#39 0x000073a88f99747e clang::ParseAST(clang::Sema&, bool, bool) build-llvm/tools/clang/stage2-bins/clang/lib/Parse/ParseAST.cpp:162:5
#40 0x000073a89180662c clang::FrontendAction::Execute() build-llvm/tools/clang/stage2-bins/clang/lib/Frontend/FrontendAction.cpp:1073:10
#41 0x000073a8917830b4 getPtr build-llvm/tools/clang/stage2-bins/llvm/include/llvm/Support/Error.h:279:12
#42 0x000073a8917830b4 operator bool build-llvm/tools/clang/stage2-bins/llvm/include/llvm/Support/Error.h:239:16
#43 0x000073a8917830b4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) build-llvm/tools/clang/stage2-bins/clang/lib/Frontend/CompilerInstance.cpp:1057:23
#44 0x000073a89188263d clang::ExecuteCompilerInvocation(clang::CompilerInstance*) build-llvm/tools/clang/stage2-bins/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:272:25
#45 0x000062814b96d42e cc1_main(llvm::ArrayRef<char const*>, char const*, void*) build-llvm/tools/clang/stage2-bins/clang/tools/driver/cc1_main.cpp:294:15
#46 0x000062814b96a894 ExecuteCC1Tool build-llvm/tools/clang/stage2-bins/clang/tools/driver/driver.cpp:365:12
#47 0x000062814b969a26 clang_main(int, char**, llvm::ToolContext const&) build-llvm/tools/clang/stage2-bins/clang/tools/driver/driver.cpp:405:12
#48 0x000062814b977383 main build-llvm/tools/clang/stage2-bins/build-llvm/tools/clang/stage2-bins/tools/clang/tools/driver/clang-driver.cpp:17:10
#49 0x000073a886e2a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#50 0x000073a886e2a28b call_init ./csu/../csu/libc-start.c:128:20
#51 0x000073a886e2a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#52 0x000062814b967255 _start (/usr/lib/llvm-18/bin/clang+0xe255)
clang-18: error: unable to execute command: Segmentation fault (core dumped)
clang-18: error: clang frontend command failed due to signal (use -v to see invocation)
Ubuntu clang version 18.1.3 (1ubuntu1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-18: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-18: note: diagnostic msg: /tmp/test-046902.cpp
clang-18: note: diagnostic msg: /tmp/test-046902.sh
clang-18: note: diagnostic msg:
********************
```
### test.cpp
```cpp
#include <concepts>
template <class... Args> struct Signal_binder {
Signal_binder(std::regular_invocable<const Args &...> auto &&functor);
};
template <class... Args>
Signal_binder<Args...>::Signal_binder(
std::regular_invocable<const Args &...> auto &&functor) {}
```
Versions:
Clang-16.0.0 succeeds
Clang-18.1.0 fails to compile
Clang-18.1.3 crashes
Clang-20.0.0 succeeds
Files:
[test.zip](https://github.com/user-attachments/files/16922809/test.zip)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUW1tzozj2_zTkRYULxP0hD44dz6T-6U7-nczOY0qIg60JIFYS6fR--i0JMBc77u7EvVPTlbaxEEc_nbvEEZGSbSuASyu4soL1BWnUjovLRw5bEBcpz75dWthr_9D1K9BGsWqLaEH0Jy9LUmWWt7ScteUsrdDp_tqfOGg72m6MbKkyy1tTC19Z-Ao7SIFUC1rXqO18f3u9fLhGsklLphBBabNFAmouFFIc7ZSqpR4Hbyy82TK1a9IF5aWFN0Xx0n_ZteB_AVUW3jApG5AW3iBSZYhVtGgyQGoHiAoidygl9FkJQsHCK1QLqAWnICVkSPJGtM36SSIlp4woyJBoKiSpYLVatJAfFKHPKGvKes8BZ4HuBd8KUiIitk0JldKwkYU3jRQaJkt7sG5s4U3KKgtvWnbalLrIVoLVBaDXOHwKfbumdsGq5tXeVg2yoWTK5ulfyC4FFOTVJkWBbI0gYwIRG9kZkyQtwM4FALJpAUTYRCo7hZwLsPW0ocqGfgbJCwiWMxCmmRKR2S-kaMCuSAkS2SVhlZ2zom0YBGdAcEoU45Vd8gwKVDOK7JpRu4AXKBBufzBp1wyQXeaClGDXnFUKhOWtDfy8JGpngxAVR3ae1zbllRaNsrw1r5CdV9wWvKkyVm1t3RfZJeWVVKKhigubFIxIjTNvqq-symylZyYtb42RrYjYgrJp3WiO2qGPbNVUYBq2UIHQgDNIm-0WhL7Fqq3lrbdZiuzctNuUlzUr2llmTMO28EaVNbJzyl9AkC2c6COgVSjd_LYatL-NGlh4o83FsKgihc3kN6mgHJ5tVWax2D-2pdTCm05h9tqi6Xh9x9lHZw96yNYeTef_2aBHnvpbcIwH1bQJff5KRHZq_O8JbqB_kgqnpPixrmeY8JG-hwPDq76ghwDeFtvpp39-iMMYoU2wFkC1_7VLQoX2ECAEF3bBdJxwE2Tn26qh2odJxivLW_sLvHBbt8HKumCUKe2dmsL4CPnMaptnwqY7oM82q-xtmWtTfn214ZVCrW1Yd5z8oLzgws4Y2VZcKkZ1G8kyIdkW2eunp99Wq6ffl_-6flr_ufyywU-rzc3T8uGT5a1dZHPUOgP9CVLZmRNA7C84sl9RN9e9U23DiLtA5t--1VsmlrcMXR1LaCMEVArVREgQSPFnqJCFIyu60p-GALKw5yDn1XEcJ_JIHMceCb00RyZaekvLW8pvsr24F6xSJpY9tgExHjoJ8vWJSyWAlBYOdVBklbJwgtKGFZndxV7FeSFHZiAV2QK2U1bJUYA22vvQ1DqmW3jzR8VedQPbVqSQC1ZRy1tG2LO8pesNs3Bns_D9PDk2iy9N1ZL6nVRZAUJaOD4P0B5hKwfXCfVnPCDEcz6njoMmWH4Vt3zXcGuA4o2hhOAHHnaQYURH8IgrKFhKF5IvQgtfOa_mEQsnA01_TDPPnTTK4jataxn_CGVdEAXLLt9pW5m8J_T5-rUmlTHLVhgmbP8MN_rWFv3y4dHCm37AKyKhE4rnxvpzAB2MQCdOEuVOgNEWlAb10KRSMdUoyObY3w_tAUrSffVEbyqpSKV08tjrTuhoCx7ZaHgM56Mglcy5KHtKj99quCei1N-_GCLGcTyzwGiKMUiyKBww_n9DCp08ZmcB9ygA9qQXO8tbOhrUiGPxSTTvBTHKCbqWTte-1XDL6WeegVxkkBtdm9pcMgUUO25AEJOfm6J4h90PQLqG5VrjuG9T5j8qxivDFtfHGovXr7Q81zkPjh_hiEEQO0HLjT0C9xiCvWi-QA4CKgq_SFECHGlAbjIAwnNdSaj_d4jGOw-OD4jGP4bgw1bzHYn4cZIYfgw45n7ZITg-9Hdnc8dHMIXY-DdnwDTzwaGDnehtTNLyVm0YOxEDbzlFFl5a3vUvYSt2Ri5aT2HmokOSO_6JKfwiN-3iAVF8EtGKVzq5fqiBMlKw_5iF8_Vr_VOZ0g8ic3ESaYPEI5Enc5Gn4I7laYi1VzpZWJndBsIqpTH-ydSON-qBKCZzQlWb3oye1p209PFqTPNTUyh2Cy9QHGgL09qkxzA59k_lrO8I8b7rRZofg_7gaezwcJAlORrypOn8QeqM7ggXzoK7U40Oa-fJRlDdOdQ0wMdFtxRHgcvrfzd68T2W2GdSQrYGWvRimAvP6OYb94YRe56veFkTAZ_hq6Z5U-V8JN5TdM8j-hkLsWYhHoIBnobFOMhDF6NPRNFdP4F7IkgJCsT_sSo7qzr2oLzAhIYRqmmQjP2YhPlpNu9RagOSSwFHJPsR4Rwd51D-31WeU3RSzovv6tPkQTNJLZf5Y2ab8bbbjz23G-nl5vvJ1NPjaWoRpSmhGbqRdy8gCk6yO6GvBMvgpqzfle4cYOpJ96sqzyzJ_XDAFMwx-al_nMWrHdDnnuBMdSiv4VCam6Yy3k5L_PDuLefPTf0FZFOot_RqrzDm8XBQg_OIbM4eN3RmpjbNeLyYAn3D1Ax7xjMmghwGvA9zasKF83JDD95xwrAhGNgQzdjgBjhEEtQXyIaZnidB7wBpMDrpMYkJDmOdlwQjwcTHEB0PblTdVXPBcPFDchl3n-umvrfilYLXY47sWw2tm9Fu84dEOuzUfWrMe5mlEOTbF72SXv2Ii_SuB4U4W2400gnXCeLEbK_uhTBNDr2IZsEbQmi39z7K_XOw6NfYyqCZ3ixDTFIcpyc080ERoe7yQUHzv483bwTXh2dWX_Hs23FVHvptKt2rDbjnV7_AD7ypW5rueOck9MCBMbR7s-8_uh5xmVXs0D3rTqzanjL7A5rZsH54O0EaP3Xbsl9CtlRqyHA-wDFDrf8WPcN835kuXqb77zkJXJz4J-f2wKrtYLaMV8tcgegnPOXdwLS9VzwT4zqJfFne3NylbdXCvNs8pTvKf8NvljYK5GGPJaUgpVln5wzE-eQxyws982pqlBZOX0XkxM_J1IseMK6nOJLLnZjuEPycaP453HPM_z3r_DnrvCxAd-lfq1FwfvjKFN2dJzmZGdquDYuz9dnklcoe1SmBjgRpwgGrtn8ytXufnf1zhGl2f_HIn4cTxiUkxTT7Ucb9r5n0_R7zMc7o48dxMWkXLSOriGZh0fXj_CQbr1_buoM32XkOdow8uVatXxLzZu4hnsW7PI_S056V12bfsV2HjTlwV5N_N3CvxDSd0h1_E1yn8rlJoQ6UYJ8dfTKFFTdlzYV6UMasP5amH-VAdKANydSoksiPDpMk81rkYDfozGvNCeDlw-P-Xa9Z3O0R-5MM2o2dMMR0sloW2qarbNnuKHfbg0Ab4yo_BLEnPbpsR9kvgiJvyl9_ss3qRrHnpL55ga7eU81w8OpsKGy4FoK3MQdHs60lHx8DwWswLtBI7pdh8QyWYUvJ945hGYlvZSoAQbT77RQmAlweeUswk_cHzWYk4jmSYaU72_b3_alKxjj0sunutEE_EHzZu_341NQ_6AT7uTwa09y8iaIvWYhmEdfvU5UQx66fJmHmY0CUuk8lYdWkvmm8nNyR0VZ8t3CctOEVeuEse__0-l6ZYC86A9n0mPqZJP50LeiHs5mQOPFRz5CV-_iTJvAmkPZin8wHM0OMZjAS0u9L9Sw1ZWEtwwx_ltPVuwba5SwffdN1GrvvzLHHU-xR5MUe0qh_ZvCf6Dq_eyh0fcOeoHajmftNpoVcmLiUoKengqX0Sepk-omSojDMRwtNUzZ9taf8JjOo9YhVrYquwGv-kHFykT8UTVnYC5z5oGaPRz_CKqbm47SXmrhtiC-oYXw8fdUauMeITmZybBJHiXt-NAmpAZ6pZYSDALVUu6q37xbdm6I3wEGwr3lrxWMKypApNdUXTUXSApDiCFrjG519QA-wLaFS7XZxTprCjE65AHM4ALLTtE0jyjun1xNGOWEFZChrzLDSFP5puo0EZL-YNgDERj65G-SPtKlU05HtymKRGy_chaefdxtz3933fzQl8hrJkTMHXZedAJIhU-OvO9Zcstf2lnH6RQHZmonJSQfN5INJV1zpyIiGSlpUyq15rpPqB_5aCuPTJMvHx-Xqd_T4-zXa3N3e3v158_k3tLm5vX5Aj3em-eqP39CX6_u7L4_7Mxz3x06DxFK7qzdPhOw7CEDmSARkiKg9yR9kwaRK2PHDxMFDTfAHaMjdOyRxLnnMzgT1xtsdKZrWPe87Dy3Y66vD28IbCrWSOjyPyKluBY7aZYyUi8UCLcVW90PtOZGuIPcpZVUGAlnRVVfBN2nXYlRZV_oM26Yg4qm1sLSAfeGPpowsHC4WCz0AaRRHJp6FeVNRs7-aWF43gBWth-vvou0OFk0weSt9sx2sW8bMMHdTORN0w5xoPZHXVIj_ap2K3Ov3qlWscOEsHCQbSgEyObml3Y9jfJrUrqs9LwMHXbz2eBZMHsbOEbrt54aZkz49zODK6NN_WG0FawvHJ46NNRKETZQidNeWdeFNbojhjRsmGMdO0lmRIYeTi-zSyxIvIRdw6UY4iF3Xi-KL3WVCgCQhzqmv88wgDLGfJpg4aRqlkDnZBbvEDvadxInd0MGBvyBB4kRR7iZJHjtpkli-AyVhxUKHqAUX2wtzfO3SdaIojC4KkkIhzQk9jLuoha1gfSEuTUxLm620fKdgUsmBhGKqgMvVLLi03EVfd1AhWRdMmeN84_ed2sdl-zcJiOfohQhGMkZRZ36o1-CLRhSX7z-a103v5RL_NwAA__8-AakW">