<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/74412>74412</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang trunk crashes with OpenMP task directive
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
rkchang
</td>
</tr>
</table>
<pre>
Reduced test case:
```
# 1 "<built-in>"
# 1 "hello.c"
char a;
void foo() {
int b;
#pragma omp task
(char(*)[b]) a;
}
```
https://godbolt.org/z/Mh3qzzq4r
Program arguments: `-c -fopenmp -emit-llvm -Xclang -disable-llvm-passes`
Crash reproducer:
```
# Crash reproducer for clang version 18.0.0 (git@github.com:llvm/llvm-project.git 8628ca29aa4714f99e865c99b9d510ad14897fdc)
# Driver args: "-c" "-fopenmp" "-emit-llvm" "-Xclang" "-disable-llvm-passes" "hello.c"
# Original command: "/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang-18" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-llvm-bc" "-emit-llvm-uselists" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "hello.c" "-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=/home/rkchang/dev/omp" "-fcoverage-compilation-dir=/home/rkchang/dev/omp" "-resource-dir" "/home/rkchang/dev/omp/compilers/llvm-project/build/lib/clang/18" "-internal-isystem" "/home/rkchang/dev/omp/compilers/llvm-project/build/lib/clang/18/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include" "-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-ferror-limit" "19" "-fopenmp" "-fgnuc-version=4.2.1" "-fcolor-diagnostics" "-disable-llvm-passes" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" "hello.bc" "-x" "c" "hello.c"
"/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang-18" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-llvm-bc" "-emit-llvm-uselists" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "hello.c" "-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=/home/rkchang/dev/omp" "-fcoverage-compilation-dir=/home/rkchang/dev/omp" "-ferror-limit" "19" "-fopenmp" "-fgnuc-version=4.2.1" "-fcolor-diagnostics" "-disable-llvm-passes" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-x" "c" "hello-76ba63.c"
```
Stack trace:
```
hello.c:5:3: warning: cast to 'char (*)[b]' from smaller integer type 'char' [-Wint-to-pointer-cast]
5 | (char(*)[b]) a;
| ^~~~~~~~~~~~~~
hello.c:5:3: warning: expression result unused [-Wunused-value]
5 | (char(*)[b]) a;
| ^ ~
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: /home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang -c -fopenmp -emit-llvm -Xclang -disable-llvm-passes hello.c
1. <eof> parser at end of file
2. Per-file LLVM IR generation
3. hello.c:2:6: Generating code for declaration 'foo'
#0 0x000055e30a314200 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x418e200)
#1 0x000055e30a31160f llvm::sys::RunSignalHandlers() (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x418b60f)
#2 0x000055e30a256238 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007f73b1842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x000055e30a568de4 clang::Decl::getDeclContext() CGDebugInfo.cpp:0:0
#5 0x000055e30a6b6c77 clang::CodeGen::CodeGenFunction::EmitLValueForLambdaField(clang::FieldDecl const*, llvm::Value*) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4530c77)
#6 0x000055e30a6c518a clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(clang::DeclRefExpr const*) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x453f18a)
#7 0x000055e30a6c195e clang::CodeGen::CodeGenFunction::EmitLValueHelper(clang::Expr const*, clang::CodeGen::KnownNonNull_t) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x453b95e)
#8 0x000055e30a6cbff0 clang::CodeGen::CodeGenFunction::EmitCheckedLValue(clang::Expr const*, clang::CodeGen::CodeGenFunction::TypeCheckKind) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4545ff0)
#9 0x000055e30a719d83 (anonymous namespace)::ScalarExprEmitter::EmitLoadOfLValue(clang::Expr const*) CGExprScalar.cpp:0:0
#10 0x000055e30a71666b (anonymous namespace)::ScalarExprEmitter::Visit(clang::Expr*) CGExprScalar.cpp:0:0
#11 0x000055e30a71a82b (anonymous namespace)::ScalarExprEmitter::VisitCastExpr(clang::CastExpr*) CGExprScalar.cpp:0:0
#12 0x000055e30a71975d clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x459375d)
#13 0x000055e30a67a0a8 clang::CodeGen::CodeGenFunction::EmitVariablyModifiedType(clang::QualType) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x44f40a8)
#14 0x000055e30a6a4b48 clang::CodeGen::CodeGenModule::EmitExplicitCastExprType(clang::ExplicitCastExpr const*, clang::CodeGen::CodeGenFunction*) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x451eb48)
#15 0x000055e30a71c72c (anonymous namespace)::ScalarExprEmitter::VisitExplicitCastExpr(clang::ExplicitCastExpr*) CGExprScalar.cpp:0:0
#16 0x000055e30a71975d clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x459375d)
#17 0x000055e30a6aa616 clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*, clang::CodeGen::AggValueSlot, bool) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4524616)
#18 0x000055e30a6cd39b clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x454739b)
#19 0x000055e30a698fdc clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4512fdc)
#20 0x000055e30a9fd04d clang::CodeGen::RegionCodeGenTy::operator()(clang::CodeGen::CodeGenFunction&) const (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x487704d)
#21 0x000055e30aa9ef98 clang::CodeGen::CodeGenFunction::EmitOMPTaskBasedDirective(clang::OMPExecutableDirective const&, llvm::omp::Directive, clang::CodeGen::RegionCodeGenTy const&, llvm::function_ref<void (clang::CodeGen::CodeGenFunction&, llvm::Function*, clang::CodeGen::OMPTaskDataTy const&)> const&, clang::CodeGen::OMPTaskDataTy&)::'lambda'(clang::CodeGen::CodeGenFunction&, clang::CodeGen::PrePostActionTy&)::operator()(clang::CodeGen::CodeGenFunction&, clang::CodeGen::PrePostActionTy&) const CGStmtOpenMP.cpp:0:0
#22 0x000055e30a9fd00e clang::CodeGen::RegionCodeGenTy::operator()(clang::CodeGen::CodeGenFunction&) const (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x487700e)
#23 0x000055e30a9fd14c (anonymous namespace)::CGOpenMPRegionInfo::EmitBody(clang::CodeGen::CodeGenFunction&, clang::Stmt const*) CGOpenMPRuntime.cpp:0:0
#24 0x000055e30a698338 clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction(clang::CapturedStmt const&) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4512338)
#25 0x000055e30aa33cc9 clang::CodeGen::CGOpenMPRuntime::emitTaskOutlinedFunction(clang::OMPExecutableDirective const&, clang::VarDecl const*, clang::VarDecl const*, clang::VarDecl const*, llvm::omp::Directive, clang::CodeGen::RegionCodeGenTy const&, bool, unsigned int&) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x48adcc9)
#26 0x000055e30aa9bc2d clang::CodeGen::CodeGenFunction::EmitOMPTaskBasedDirective(clang::OMPExecutableDirective const&, llvm::omp::Directive, clang::CodeGen::RegionCodeGenTy const&, llvm::function_ref<void (clang::CodeGen::CodeGenFunction&, llvm::Function*, clang::CodeGen::OMPTaskDataTy const&)> const&, clang::CodeGen::OMPTaskDataTy&) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4915c2d)
#27 0x000055e30aa9ccc4 clang::CodeGen::CodeGenFunction::EmitOMPTaskDirective(clang::OMPTaskDirective const&) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4916cc4)
#28 0x000055e30a6a0054 clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x451a054)
#29 0x000055e30a66e3e7 clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x44e83e7)
#30 0x000055e30a681d34 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x44fbd34)
#31 0x000055e30a628a89 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x44a2a89)
#32 0x000055e30a622ab5 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x449cab5)
#33 0x000055e30a62df0b clang::CodeGen::CodeGenModule::EmitDeferred() (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x44a7f0b)
#34 0x000055e30a630774 clang::CodeGen::CodeGenModule::Release() (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x44aa774)
#35 0x000055e30ac8dee2 (anonymous namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) ModuleBuilder.cpp:0:0
#36 0x000055e30ac8c845 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4b06845)
#37 0x000055e30cb109b9 clang::ParseAST(clang::Sema&, bool, bool) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x698a9b9)
#38 0x000055e30b06d6c9 clang::FrontendAction::Execute() (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4ee76c9)
#39 0x000055e30afe5405 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4e5f405)
#40 0x000055e30b147e75 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4fc1e75)
#41 0x000055e308d7bce9 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x2bf5ce9)
#42 0x000055e308d73563 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#43 0x000055e30ae26e2d 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
#44 0x000055e30a256700 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x40d0700)
#45 0x000055e30ae276ae 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
#46 0x000055e30ade88aa clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4c628aa)
#47 0x000055e30ade937d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4c6337d)
#48 0x000055e30adf4be4 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x4c6ebe4)
#49 0x000055e308d78aa0 clang_main(int, char**, llvm::ToolContext const&) (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x2bf2aa0)
#50 0x000055e308d89033 main (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x2c03033)
#51 0x00007f73b1829d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#52 0x00007f73b1829e40 call_init ./csu/../csu/libc-start.c:128:20
#53 0x00007f73b1829e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#54 0x000055e308d721a5 _start (/home/rkchang/dev/omp/compilers/llvm-project/build/bin/clang+0x2bec1a5)
clang: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 18.0.0 (git@github.com:llvm/llvm-project.git 8628ca29aa4714f99e865c99b9d510ad14897fdc)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/rkchang/dev/omp/compilers/llvm-project/build/bin
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/hello-76ba63.c
clang: note: diagnostic msg: /tmp/hello-76ba63.sh
clang: note: diagnostic msg:
********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsfFtT47i28K8xLyqnbPn-wENICNOz6YEP2D3fGyVLy0GnbSlblmmYh_PbT0l2LjJJc-lO19n7TBfDJPLS0rpp3WRB2pYvBcCpl5x5yfyEdPpBqlP1lT4QsTwpJXs-vQHWUWBIQ6sRJS140dQL5l4w9dJg-Om_4giFyMPYi2Zlx2vtc-FF52bAff4AdS0ndPOAPhCFiBed9V8fJWeoktLDuYcL5GXDOEJcaFRu4DwcrRRZNgTJZoU0ab-u4TycG5wWwdTDhZeclV4yN9i2y3jZfD8b9veD1qvWcIoXHl4sJStlrSdSLT28-MvDi88P0b_--utfserBr5VcKtIgopZdA0KbqchLA58iv5IrEM0K-dBw7df1Y4P8_09rIpbIZ7wlZQ121F-RtoV2REj_e6ZI-4AUrJQ02lBbHRzSxHgGqqRC_aqPoFouBQrzSTAJjLSWXHtxsOT6oSsnVDZeNDUUeXjRE6bkfwHVkyXXKE9xTgkuCImzMK6KAvI0oUVRFiwJA8LCOC-yilEj9g0xc8UfQRnp9ILB2Dfqtx8G8ay_boS0HuhFtf62T2D9o7FVmXWvFF9yQWpEZdMQwYbFPbx4kA14eDFYuocXDB49vJCGkAWVzYrXoNqRADy8MIbNzP-5MICGND_M19RRGq4_asVXNQzfnvL0Po39TnwV8pvway66J38puhdM-yV9Oda1UPNWt2MZVApgs3INRPmk1X4JlVTgl4R-BcHWzxvChV_xGnxBGnghsh5GQS0p0VwKv5EM6uHBim9AVpz6NTxuHuHdB7z1V3xDUVMp0oC_klxoY7BzUtcbnTdEP_iglJCboWrlUym0IlR70VyKzQMhfSU7wbhY-mbeZgEqRatVR7VUPqk52dqCX3XiGxfM10ZQrRfNN4Rqopagfbrqtrrx03jzuBOw83AJAtSWfQZlt1yCMmBcLL1ovmTlZk371O-Np5ci44bxV8xtmE3lIyiyhI8iUNDKTlGwc_qxn2DnNS_Xdu7hxdbSrVIFqX3ePrcammOuuOCC1h2D19fuWmUwSErqD0yzCy8p9fBi2LA7G3URGsjJ5OWvPbCHVoYn84EeomAzbQ_Ot2L60aUHawSlpPJr3nA9jIXFAY9dLUVH_SGoeNE8nuBJuGPWtVQ-42QpZKs5feHFXnpyvyKMqZZvnP78_v5iNrv_bfrl_H7-5_Rmge9ni0_309vPXjTfLCUdr7Z1pE_DB3ogUPwdEf6OCP-REeHfcRPv3ax-lpYkjXaTu305e__7VhP6FRmrOViprK08miZeNI1MVviNqF5_U1PjaKQl8nBmK5OXZUSGKiUb1DakrkGZsgSWoJB-XsF6lgHykjP_Ty60r-Xa6H2D3OAYKhWEEuRlM_TGmmUNm5z_9-6_t3AFTysFrc37FbRdrVEnuhZYT2X_2X8kdQc_QJ79t6ERDYRdX55Pb89R25UN14igsluawkQqK-ZRpbWtQXpP-9Lh8rbtjJktEBEMDYEL6QdA1NY8xs_16scztLIVEIXWsNonSGbYzCRtKyknGhhSnUAtVXylJ7tGxLpmtbGhYIL2V3k_NXSgD1SMaK15S2c4GdQQzUBWXnSOVkS1pvrSCARDskLG6_fAeAC-BmVjAbq8_PIZfbpB1s1Zj9MDRgPg1siwF01TI4CLAVQsEZUMbKHJgNakn292hK3ms024jQIUPAVBECQJRAGJwhgHAbLajqZeNG2f2_7DteJCW13c9QrNt0CKfLuXrVZAGg-nRqlcaNswMDb6M3Xi4bPgKQ5zwEGwKWsNG-GIjTANqn1s3HTili8FqX8jgvXL5keltEyDyqEUO5TiJMVR3rcIbsCGmWeHQA_ngzAdmJkUGp70hK7Mtgjsf5slomGJrMqiMsxjnOBg4LDPrPfkyTUv6aSVk7Qn3ExxyI4dspM0ZxD3TYxesHOgdf9pCdp8GSgc5Du7mJsA_ElUcj_NiYM_LVOaZbv4Z5LBBQjny6IT1O4LO3jecH35xbjNhVSXpCkZWXAwesl38NghQx-yGYp1obMdS7EIesd6LKNIooBmmSPd1OWeJmFO3s-9YesGqsuBh3yknhuozp9WaofxI7JYhTlxWMxGLIZFAh9V8G9Qr-zW2Jk_Ym12EPc_TJr_hxR_dHV9f0w3lURlkYAjhHwkhLKqgvcLYfYA9CuwfXp-sxT2Ir97XoFF_g9uqpPjSSZOqsr1L4UjmSwsWB6Z5YmQ4rmRXYtMbdSubOwpenJvKamJMiwbqei-FzvYiSTsau9OeLEFZhdmqMf10jeZ2BKMaEvTtPwgbV94ayqAMUFvJiUckUJy_EOkzEirewJ2SdqOvpEsPNZelrD32_WW0FeMupSyPqZ5FlGWsN22eRi5GzcjAcnfz-AXojgp6-fPkvGKAzP7zWX1_3Wk7kePxl1cxQHJHe7c4J6SuIxf5e6zZF0NW97On1Y1p1uLesnbGOJDfuq4YSuEMnZFk4wsm2aY_siGGwvh-yJ68wZM_9M34Ch9ICQN0_czOBXPb-DuENrpcmkDym0t9a-QAo7TMHWkMM4fWFSU75fCp6WQCtirkjhi_M-ionQ4c-N_WuQVox8wYN2MoqsZOZDqT5UizzdQedFsZ8JU6x0ZROdHdTd4dDyL3VSjqFgQH97HN7DkUgxDd8_9oFyBIlr2_aFiFNe_61mNqfWcH4vhPMuC2NnX2E1oSAFV8YHAevX5-o60X89IC2zOFVDNH0fR5-rz9fkT0M52nTcwa02nrmnIvtsUTXeQHfYLIz0cwFkNVN8ra3L23Yp3qmcXnRMRD9M2SGZONHEoK7zo3CH0TQjWU6e2S5jVtsr2cPZuPg5BXyu4lq2eWlh3vR8y7HeuOGyD2YVxH1crEJ-v98ZdjF_s1-BwVftvuV8DcPZrNGY4jF_Nh2YXvQh7_j-JSm537plkzz-iy5F_N7nSsFgnNG9gv9ricbSJond6naHVCjOy0p0CZujYUukWU1uI3Q14xKgSRU4Si90klkQRpcVhdl0B9oPQcG3cwFWnay6A7Wf1DT52B_oLUS8acT_2-BgOvE_yZqgT9gU91ve2j6nAnDBKC0eB6ShKlhR_IL3_O0r-yih5LPMowoRiN4nKRuZBKY0_bB6HLcN5-itcWRGmlMYOq6MKiARB8gFWZ7JZyU5Yn_wn1w-y07dUjhsWu1B7fcLbCsUjenoSJK54RmVUChF84BhlPfIyOL8It8dqUkEeQbbL2uikMs1DFr1T85uYLdlI0xe1LEltz7A-4j5mF2tAk9z8ip0RVyWLHNWPjkBTnJP8O0F-fxOvl8OamTlUXPCXYf6QtPrxX3CCFhNMcidCjo5VU4xJmXyM-_-9XBeUlInD9agtjVkVvNoPGnM9hwqUAnbck_CYZFXgtHxGR8ppFGTZqxt6l_gbqIG0cGy6SZa5G83NpmnOAPCrJVBPfl_qfWpWw1l5f8h_p4ho-5fK_inGx0PT27vNUbr1KL0IzgzBsL8bPDpOpjnNY2cznPXvH86kaLtm3Z7-CC1HEnoZpHnsWrqT4tAyDIrS8W7XRLUwvb0bhStoyChmH7dpmxY5KUrXNTkpSxmkLHWrr4UyMhVsuhuFbRJ-ZNsGyFK30Bgdw1aQxMHIjfbLfBKtJoKCQ-10T0k4Yu6oZgNJFQeO2cRO0lCGcQaZw89A-Zatx-El25eZoMP2UR19RUPIXD6c4J6zrKRQIErD-4aY2fn-rvYDGbWyZ8gdwzNkKqyjsoPLKqHgmFmMR-xESRqhtS5m4Z3doztM3Takrr8A3TjPPbyNKj-DY3BWTkLG7AWovX4zdsMp4BQwswJ6vUDta8UehJK6Lgn9el8J92yhX3swqVk421yFcnb8Xl22mq37hWZ1YmSwIx-tuFhayPNB0ZsJ9_f06SkM-y8laTm9by34IEUH2Azca0W4btePR-hIbd9Dl2rnuQHZORecbhqTezvFg6hwXktjIgX6XZb79RGP35XLnJcT970RN6QGnbglFdTPjji_r7rj7eeABdnO-4qGs2RkaVlKnL7x_zlLMbKfrIjSk-C7JuGmNgzynJCDgtu-rD_29laajosfTTQAhzo_3wGdOtnGkdvz1BR5xLGrbCSeIsrYe8Xzuyzbw7L5XZaXvNUH2ncvHfXGHFaEG0uw7dO3i3OwmV8p1CjKnPZa7PacWBWX7ruvuwzMdz47ycWerOKQMn6hUI_m82gKJTh1U1yMgn5OyPDy4zqLWbNhfc30RVP_UEg_Wt6CCXHcdhK4LORFEEXIEH8sGmgQBVHk0BC6b3fjghUBur-veWncNVH63uQfVqRoYrC13fp-ZPvcMliZ9cVK18Nb3-NJkwcvmia5F03DdLsqHq8KcYDsHC64Hi_UfzTYfYvdXlMIsUGKt848ifYhdVjZx8Ve5FFW2Os2G9zxyNpwSBLUYz2awQANyTZvX-9GZC9_2ftMZgRVQ0m0vgqPKsJrYOgb1w8InrjuL2-EkbXsrgXkPyItUQuA-E6BsrvML_5LAnf2op5h6eDtyR7uQQFhqL-wGE3RSrb8qX9kS6m6tidRP_Hyjit5IbUpUdH2vhxqWvtkbSg_8LNz0224VzW9u5vOfkN3v52jxdXl5dWfn_64QItPl-e36O7KDp_98wLdnF9f3dx569tM1_vuReWtvc916G7UBkABskkWMET0BuVb-McLbeU6utb3Y_Pbh_cq4Gepwb1WeMJOI1ZEBTmB0zALwizBYRidPJzmJChphZOwiMsqS-IMsjLJi5xWWUVYHp7wUxzgKMRBEsRJEkaTLI0AaEmDMk6zMqVeHEBDeD0xRjiRanlib8GdZnEc4pOalFC39o-4YDy4Buwl8xN12l8h7patFwf2yvAWg-a6htOZ3chadeJrf38O2t4n9Ofx9u-qILY-fzvpVH368Rt7ltz_CQAA___01HTa">