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

    <tr>
        <th>Summary</th>
        <td>
            Trying TySan: assert trying to build cmake: "Cannot get layout of forward declarations!"
        </td>
    </tr>

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

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

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

<pre>
    Was excited to see in llvm-weekly that TySan is in master, so I gave it a try.  I built clang and confirmed that build of clang could build my code. Then I added `-fsanitize=type` and rebuilt, and now I get an assert:

```
Assertion failed: (D && "Cannot get layout of forward declarations!"), function getASTRecordLayout, file RecordLayoutBuilder.cpp, line 3346.
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: /Users/sean/llvm/llvm-install/bin/clang++ -DLIBARCHIVE_STATIC -I/Users/sean/external/cmake-bin/Utilities -I/Users/sean/external/cmake-bin/Source -I/Users/sean/external/cmake/Source -I/Users/sean/external/cmake/Source/LexerParser -isystem /Users/sean/external/cmake/Utilities/std -isystem /Users/sean/external/cmake/Utilities -fsanitize=type -Wnon-virtual-dtor -Wcast-align -Wchar-subscripts -Wall -W -Wshadow -Wpointer-arith -Wformat-security -Wundef -std=c++17 -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk -mmacosx-version-min=14.7 -MD -MT Source/CMakeFiles/CMakeLib.dir/cmCMakeHostSystemInformationCommand.cxx.o -MF CMakeFiles/CMakeLib.dir/cmCMakeHostSystemInformationCommand.cxx.o.d -o CMakeFiles/CMakeLib.dir/cmCMakeHostSystemInformationCommand.cxx.o -c /Users/sean/external/cmake/Source/cmCMakeHostSystemInformationCommand.cxx
1.      <eof> parser at end of file
2.      Per-file LLVM IR generation
3.      /Users/sean/external/cmake/Source/cmCMakeHostSystemInformationCommand.cxx:566:6: Generating code for declaration '(anonymous namespace)::QueryWindowsRegistry'
[ 70%] Building CXX object Source/CMakeFiles/CMakeLib.dir/cmExecProgramCommand.cxx.o
 #0 0x0000000106c2d960 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102345960)
 #1 0x0000000106c2be7c llvm::sys::RunSignalHandlers() (/Users/sean/llvm/llvm-install/bin/clang-20+0x102343e7c)
 #2 0x0000000106c2d158 llvm::sys::CleanupOnSignal(unsigned long) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102345158)
 #3 0x0000000106b90d70 CrashRecoverySignalHandler(int) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1022a8d70)
 #4 0x0000000193f5e584 (/usr/lib/system/libsystem_platform.dylib+0x18047a584)
 #5 0x0000000193f2dc20 (/usr/lib/system/libsystem_pthread.dylib+0x180449c20)
 #6 0x0000000193e3aa30 (/usr/lib/system/libsystem_c.dylib+0x180356a30)
 #7 0x0000000193e39d20 (/usr/lib/system/libsystem_c.dylib+0x180355d20)
 #8 0x00000001095d125c clang::ASTContext::getASTRecordLayout(clang::RecordDecl const*) const (.cold.3) (/Users/sean/llvm/llvm-install/bin/clang-20+0x104ce925c)
 #9 0x0000000109045510 clang::ASTContext::getASTRecordLayout(clang::RecordDecl const*) const (/Users/sean/llvm/llvm-install/bin/clang-20+0x10475d510)
#10 0x0000000108b7e6c0 clang::ASTContext::getTypeInfoImpl(clang::Type const*) const (/Users/sean/llvm/llvm-install/bin/clang-20+0x1042966c0)
#11 0x0000000108b7f6a8 clang::ASTContext::getTypeInfo(clang::Type const*) const (/Users/sean/llvm/llvm-install/bin/clang-20+0x1042976a8)
#12 0x0000000108b7f564 clang::ASTContext::getTypeInfoInChars(clang::Type const*) const (/Users/sean/llvm/llvm-install/bin/clang-20+0x104297564)
#13 0x0000000108b7fc3c clang::ASTContext::getTypeSizeInChars(clang::Type const*) const (/Users/sean/llvm/llvm-install/bin/clang-20+0x104297c3c)
#14 0x00000001073b66ec clang::CodeGen::CodeGenTBAA::getTypeInfoHelper(clang::Type const*) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102ace6ec)
#15 0x00000001073b70f4 clang::CodeGen::CodeGenTBAA::getTypeInfo(clang::QualType) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102acf0f4)
#16 0x0000000107402274 clang::CodeGen::SanitizerMetadata::reportGlobal(llvm::GlobalVariable*, clang::SourceLocation, llvm::StringRef, clang::QualType, clang::SanitizerMask, bool) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102b1a274)
#17 0x0000000107402550 clang::CodeGen::SanitizerMetadata::reportGlobal(llvm::GlobalVariable*, clang::VarDecl const&, bool) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102b1a550)
#18 0x000000010737aa14 clang::CodeGen::CodeGenModule::GetOrCreateLLVMGlobal(llvm::StringRef, llvm::Type*, clang::LangAS, clang::VarDecl const*, clang::CodeGen::ForDefinition_t) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a92a14)
#19 0x000000010737cf1c clang::CodeGen::CodeGenModule::GetAddrOfGlobalVar(clang::VarDecl const*, llvm::Type*, clang::CodeGen::ForDefinition_t) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a94f1c)
#20 0x00000001071f2954 clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(clang::DeclRefExpr const*) (/Users/sean/llvm/llvm-install/bin/clang-20+0x10290a954)
#21 0x00000001071f10bc clang::CodeGen::CodeGenFunction::EmitLValueHelper(clang::Expr const*, clang::CodeGen::KnownNonNull_t) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1029090bc)
#22 0x0000000107207560 void llvm::function_ref<void ()>::callback_fn<clang::CodeGen::CodeGenFunction::EmitLValue(clang::Expr const*, clang::CodeGen::KnownNonNull_t)::$_0>(long) (/Users/sean/llvm/llvm-install/bin/clang-20+0x10291f560)
#23 0x0000000106f7795c clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/Users/sean/llvm/llvm-install/bin/clang-20+0x10268f95c)
#24 0x00000001071e7a80 clang::CodeGen::CodeGenFunction::EmitLValue(clang::Expr const*, clang::CodeGen::KnownNonNull_t) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1028ffa80)
#25 0x00000001071f1228 clang::CodeGen::CodeGenFunction::EmitLValueHelper(clang::Expr const*, clang::CodeGen::KnownNonNull_t) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102909228)
#26 0x0000000107207560 void llvm::function_ref<void ()>::callback_fn<clang::CodeGen::CodeGenFunction::EmitLValue(clang::Expr const*, clang::CodeGen::KnownNonNull_t)::$_0>(long) (/Users/sean/llvm/llvm-install/bin/clang-20+0x10291f560)
#27 0x0000000106f7795c clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/Users/sean/llvm/llvm-install/bin/clang-20+0x10268f95c)
#28 0x00000001071eb070 clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(clang::Expr const*) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102903070)
#29 0x0000000107167bc8 clang::CodeGen::CodeGenFunction::EmitCallArg(clang::CodeGen::CallArgList&, clang::Expr const*, clang::QualType) (/Users/sean/llvm/llvm-install/bin/clang-20+0x10287fbc8)
#30 0x00000001071672f0 clang::CodeGen::CodeGenFunction::EmitCallArgs(clang::CodeGen::CallArgList&, clang::CodeGen::CodeGenFunction::PrototypeWrapper, llvm::iterator_range<clang::Stmt::CastIterator<clang::Expr, clang::Expr const* const, clang::Stmt const* const>>, clang::CodeGen::CodeGenFunction::AbstractCallee, unsigned int, clang::CodeGen::CodeGenFunction::EvaluationOrder) (/Users/sean/llvm/llvm-install/bin/clang-20+0x10287f2f0)
#31 0x000000010717a9a0 clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(clang::CXXConstructorDecl const*, clang::CXXCtorType, bool, bool, clang::CodeGen::AggValueSlot, clang::CXXConstructExpr const*) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1028929a0)
#32 0x0000000107214b04 clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr(clang::CXXConstructExpr const*, clang::CodeGen::AggValueSlot) (/Users/sean/llvm/llvm-install/bin/clang-20+0x10292cb04)
#33 0x000000010720ca88 (anonymous namespace)::AggExprEmitter::VisitCXXConstructExpr(clang::CXXConstructExpr const*) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102924a88)
#34 0x0000000107207bc4 clang::CodeGen::CodeGenFunction::EmitAggExpr(clang::Expr const*, clang::CodeGen::AggValueSlot) (/Users/sean/llvm/llvm-install/bin/clang-20+0x10291fbc4)
#35 0x00000001071d3950 clang::CodeGen::CodeGenFunction::EmitExprAsInit(clang::Expr const*, clang::ValueDecl const*, clang::CodeGen::LValue, bool) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1028eb950)
#36 0x00000001071d11a8 clang::CodeGen::CodeGenFunction::EmitAutoVarInit(clang::CodeGen::CodeGenFunction::AutoVarEmission const&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1028e91a8)
#37 0x00000001071cd72c clang::CodeGen::CodeGenFunction::EmitVarDecl(clang::VarDecl const&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1028e572c)
#38 0x00000001071cd2b8 clang::CodeGen::CodeGenFunction::EmitDecl(clang::Decl const&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1028e52b8)
#39 0x0000000107309878 clang::CodeGen::CodeGenFunction::EmitDeclStmt(clang::DeclStmt const&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a21878)
#40 0x00000001073006b8 clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a186b8)
#41 0x00000001072ff16c clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a1716c)
#42 0x000000010730a7a4 clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a227a4)
#43 0x000000010735e330 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a76330)
#44 0x000000010737d9a8 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a959a8)
#45 0x0000000107377630 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a8f630)
#46 0x000000010736c90c clang::CodeGen::CodeGenModule::EmitDeferred() (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a8490c)
#47 0x000000010736a3a4 clang::CodeGen::CodeGenModule::Release() (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a823a4)
#48 0x00000001073ee964 (anonymous namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102b06964)
#49 0x00000001073505ec clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102a685ec)
#50 0x0000000108298828 clang::ParseAST(clang::Sema&, bool, bool) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1039b0828)
#51 0x0000000107635344 clang::FrontendAction::Execute() (/Users/sean/llvm/llvm-install/bin/clang-20+0x102d4d344)
#52 0x00000001075d1ba8 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102ce9ba8)
#53 0x00000001076a779c clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102dbf79c)
#54 0x00000001048f0d28 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/Users/sean/llvm/llvm-install/bin/clang-20+0x100008d28)
#55 0x00000001048ee4d8 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1000064d8)
#56 0x0000000107466f70 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0>(long) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102b7ef70)
#57 0x0000000106b90a90 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/Users/sean/llvm/llvm-install/bin/clang-20+0x1022a8a90)
#58 0x00000001074669f8 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const (/Users/sean/llvm/llvm-install/bin/clang-20+0x102b7e9f8)
#59 0x000000010743b3d4 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/Users/sean/llvm/llvm-install/bin/clang-20+0x102b533d4)
#60 0x000000010743b59c clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&, bool) const (/Users/sean/llvm/llvm-install/bin/clang-20+0x102b5359c)
#61 0x00000001074502c4 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x102b682c4)
#62 0x00000001048eda4c clang_main(int, char**, llvm::ToolContext const&) (/Users/sean/llvm/llvm-install/bin/clang-20+0x100005a4c)
#63 0x00000001048f8de0 main (/Users/sean/llvm/llvm-install/bin/clang-20+0x100010de0)
#64 0x0000000193ba3154
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 20.0.0git (https://github.com/seanm/llvm-project.git 1c25a3bfa57209e7a29eaae58ce5e0432aafe8c3)
Target: arm64-apple-darwin23.6.0
Thread model: posix
InstalledDir: /Users/sean/llvm/llvm-install/bin
Build config: +assertions
[ 70%] Building CXX object Source/CMakeFiles/CMakeLib.dir/cmExecuteProcessCommand.cxx.o
[ 70%] Building CXX object Source/CMakeFiles/CMakeLib.dir/cmExpandedCommandArgument.cxx.o
[ 71%] Building CXX object Source/CMakeFiles/CMakeLib.dir/cmExperimental.cxx.o
[ 71%] Building CXX object Source/CMakeFiles/CMakeLib.dir/cmExportCommand.cxx.o
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: /var/folders/dd/g1wv21gn4j92g56tff_60ptw0000gp/T/cmCMakeHostSystemInformationCommand-983a48.cpp
clang++: note: diagnostic msg: /var/folders/dd/g1wv21gn4j92g56tff_60ptw0000gp/T/cmCMakeHostSystemInformationCommand-983a48.sh
clang++: note: diagnostic msg: Crash backtrace is located in
clang++: note: diagnostic msg: /Users/sean/Library/Logs/DiagnosticReports/clang-20_<YYYY-MM-DD-HHMMSS>_<hostname>.crash
clang++: note: diagnostic msg: (choose the .crash file that corresponds to your crash)
clang++: note: diagnostic msg:

********************
make[2]: *** [Source/CMakeFiles/CMakeLib.dir/cmCMakeHostSystemInformationCommand.cxx.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Source/CMakeFiles/CMakeLib.dir/all] Error 2
make: *** [all] Error 2
```

Requested files:

[cmCMakeHostSystemInformationCommand-983a48.zip](https://github.com/user-attachments/files/18234332/cmCMakeHostSystemInformationCommand-983a48.zip)

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsXFtz27a2_jXMC4YaELw_-IGWrcR72022pcbpkwcEQAkNRegAoG31158BSFkkfZMVJrtzTjvuhCKBhW9dsNbCFSvFlxVjJ0546oRnH3CtV0KeKIar9Ydc0O3JDVaAPRCuGQVaAMUY4BUoy7u1e8_Y93IL9AprsNjOcQW4Mh_XWGkmHTQFSoALsMR3DHANMNByOwHgAuQ1LzUgJa6WAFcUEFEVXK5NC4aW-UyBKNoSRNQlbV-ut4AIyiZgsWIVuACYUkaBE0G3ULjimv_FHP9MbzfMiaClLZltzaAxPytxbyAxDXAFsFJMasfPHGj_Itj-wSyzn7ioQIF5yajjZ8BByRlwUOSgCDgITXFVCW1plXgram0gF0LeY0kBZaTEEhsKykGeg5CDUgOiqCti6S6ZzuaLa0aEpJe2vv3MSwa6L08N30xOyGZjvpe8YsD3g2jiwOzL5Xk2PweqztdWvnm9BJJthNRGVSutN8owh2YOmi25XtX5hIi1g2ZGfe0_7kaKPxnRDppxpWqmHDSzkuIVKWvKgF4xQCRWK5Bj8l1LTJgBspFsIwVhSjEKlKhl89rUxEoJwrGxGFlXQBHJN9rgnWtMvgNarzeNzOHEgekXKZYSrwGWy3rNKq0aUc9-V0waMMYWB5B5pTQuSwfNcm6-WTtx0KmDToF7dnlxml1PP118Pb-dL7LFxRS4F0_psQfNZIUNEbLG35nbkPpd85JrztR7Ks0t-wfVOLK0g2aX7IHJL1gqJoHL1VZptn5GTs-QeOTJlNL02NrgSR8D7k0lKveOS13j0qVaSODeEKy0i0u-rMyPFZauqvPGCBRwb3BZAvcGuDdqham4B-7NRvBKM-liyfUKuDeFkGusXcVILbneAvemrigrgKs0dfwz0mjai4GLJVkBLNdR0DAlhdCGq2yzKTnZ9b7ZN-szsOlBs6motLUyNDtjd6wUG-OqZl9KrE275v0VJp_n3yab9tWg5Pzs3_tCXjhBE0W_A3e9xkSoB_eOScVF5a555fhnXjCJgXt1BtyrBXhU5fQKf2czXlqN2B-XPJ9QLq3Y7YtPQum51dJF1ciDi2oq1mtc0Ql5eJgI4F7NwCiUJhS4YhxSwCWHWdWjLA4k7cDMM97C8adMFI5_DjZNV8AasMpGC-M6HZgh61SYdK0rvbz8egUursGSVaxxxw7MfEvpp8D0szCKHD8z_4OPbaM2iFFmgkM3MAAHxQ5KcCWq7VrUClR4zdTGOtjUeEg_-0_N5PaGV1Tcq2u25ErLrakFMyc8BTF0UOiEZ8AGCdPM9Ns3IHLjzw-1tvMHRloX3NOkA40X9iGAD7D5z4MRQTSNoI3-DT61Vc3DF8krbf37ookQyb6QxPe3QmnJ8NpGzynglXZQagLqEY7eRdBBp_DBg8gPwjSCRloNWm-ANmcxeQ7tdV3N-bLC5Sdc0dI2n4wEyGcx2QNCQ_F5YfIcoGnJcFVvPrewHJTUlc3MKCiFiW3jCMsLkz02v4ctTyGNIZiaSG_yjzsmtz0ZOSgZS20IJzTuqC3oIEn9ImRhErSt1MqYaclz05LteM3P5vl256MndGvLGPoJDGIcJsGeftinjyhB8ED6eiUZpgPyQUpQB37UI898jP0DyZM-YT-MsN8hHA8Ip_RQ3E8Ih7SLOOmqPg2ph0LSZNuNOWbzhY2TD7r5_VyumnTKN1_OGClNLq-0gzJjKPbZAJ4QUdKJP4bxBISlKOx0sbTHCwzC0IM_k5cfQx-HNPRaTRiH1fOvSR6ziLyFfrHdMBN9Ltabsg_dfPkZoFEaRaQD2huALiKcHAj6VwGOI5zsAaMh4DAKDpVyNV1hGyB-De4wCva4_SFu4r_VTw20Of-L_WrcxCd73F2HDmM_jyLWwz0VlH1kVe_H4jTLnkj_Eytt1v0qEz8cjzBhEevADwfwY1gER8HvA_9PjUvzZSTMBSw6phL1MAcQofhlzPN2HCevmMYUa9wmanbu4GMpcpuC7POU5tVXLDnOS2bFPu0Sb3LNS9EMuew8xWPduZa8Wl6zYlBnL40-qUdoWH0333IhylEklnsYxR2JxUOJhSH8ZRL7imU3xERjcxqGHX-d9O05xth7056vBK1L1jLD9Gc5lQxrZsZTz7DbU_L-daPfIe-XuFpm89cFMqzTgzgT8owV3GhEVLfj5KQ4RdjrWEc6kBkpvDdd2EBmGaXyc_FoCX1n8By_bwnuFwghKLy9I0S97CT2CpSGbxrOrJ3gbF6er7k2fF6z4vIrLmvWl0L76fxhI8d16SnEabhXJ_IGnHgwf1OdTzlpWHguKA04eFlt_67EffWbqH6ry3IkraUwhXlHa71sJ0YwDiMI7gSnHQPbTUPfSlY4_tR-bQbBjn_eFCG4LHNMvt8WleNPj5TVWFJqXjsouIUGIEpGGxanXhFGe2eJ-sPiIo7T_tjITnKcP6xwrQzDu9FxEw7q6obr1bwuCk44a2dE5s2UTnJgwHxdNWOwHCVFGnYMpp-ueSzGycuR8Bcp_Me5TIoCJx3FhkMXgFDyf8gFILQf8KDoHxfwAy4g_v_nApKBC8hhfIQLuGYFk6wi7JRXlFfLhTDqftUARjF-H8Yd9fVTNy-Kc3JER5_isszksg--X7UpcckfM_gD7XzUgWASFznZd30fDrlHxRGabHlTx7L_ditfpNBCbzfsRuLNptkvsO8BXDOJtZC3EldL1nc-c73WOwhKX7Ql-2Uau3tZI7uH_thTr_WwhHGF5-9mLsuVlphYMTI7xH2cz7eT6O8kd36Hy9r6ic-SGlGNYzeo2Pcaf5AhxzjFx9jNt29TIzdZEy3k1ALoWVDv-6sjvm_fplrI3RRBMzje__sSsmy5tFFnXooncu60Pb4XSlKU4o48B1m4F-TwiLHTEPPL0jw4sPYlNIb_RSSH-7FWf2EpRpDgJAFvLHRmy6VhwLCsd6H0K1c_IIBRGAtw0nGtwTCryskRKm1ZPTItGl97XpGTjvYGaTL101emxV5k0vCTqYuK68P5tHwdPAm0Sy5HnDdLWJ525s38aCAKz8NHJBJZrcVXLJ_K4oAw0lQ9X3OluKg6s4WjcJt6nUUSvz8f6hEaoyOmSNp5rVcnu8bCH8Zon8L6yRA_yo_Q1lPwPwU5yjuSH8w1wjSJj0RuU6Mn6Lt5zTgcYOQl8Z6DAA44gNExsp_z9aZkT3no5WX9PDGTEm-v7Sipuy6mdcfLjDRkwl4SdbQW9BMmVBRedER_-ftyG3vRvncFaKBhHONj0hmx3oi6ooZHM0wWtZ4TsWFDx7gv9cwKyS8MjhihGO-DY9BPbfyQmfHWu6TQ7glj5mOf62ahoPE_XaU_1n89Hk4_7gpeVIUYubvHke_vA2MwWN-Nafp2YOwujhhTaNjdYd4vZRwmlN2qik0BRloFTsO0Ew-DwSpwHEdv6_p5Jv8OzCVF1NVgP7XxI5LCdy1vNQGnYFIyOtbmOZwEKey4nHiAEftvu5wuxmtWMqzYePCQ3_UFg1VVxtIoeGuY06JsZizsBh77uplBXEhcqdIO839_kix2tnqM1KlzGKWdzSbBIAsJYdjftHGKyXdWUTPeqte7Mdp_BTmOkrCzXyPsb6JCaZL0Z_btrvlsvhjEWbbGg7gy1kjCT3OYdObjw36uEPmh8aEdLDNpt6XTrBsvHxip9WjmSwPqB3t1h_2AHlIvH_rw9YaXTF4YuhVhPVAtzp48BzyMpGvC0rzjlcN-BI5wHKekP8tnAe7R3z3OsA9TjB53I_lZmhdx2jHNXqQMkgJSY5rEu11jUz95Prdb4UFCNwX9d2hqV3NGQg0hTGjXXMM-asYCmoCdZKfewnaT7vaPNS7Lr4w8OrVnWIgGOxyEKFu3MGquAiGMAtrhZbAxKoqKeNSlMCr53c4bTqdeu4l-2IWf1bM9z2Le3d56zYPYGBjYSPC5zTWPk9FPa-ZYcXKrbNFW_s8XNF9utcRcq125l2jisjSdp5lbbwuastneV-53ETZVfsbyXB6zorO-E8bDjes47Z5J6G1h722PvK6rOS5Yue0p5OcvtiGc4LTDQDI0ybToud5_TGqkjanGdNKi4wz6OU7g5z4NXpS8DRH4SUDeqaMXTwYV1-2x1ueWxl4pmg12Ao4lhdD36T70R3AohbAfQw-Rwr9Erl4Wwb9EfslVf_D-Wrh4aigbzI2NPF0te1V8rTX9JCGGncge9VO6IISIvGhKZ53nXoLyTGbykvD_G0Icw3lHCeosL0RokFpQHLS2t0uJdmitu8mebo38eYlDiIOOgv1B6pZQBoHBOEJTHqRsHxCi_gGoHPteGDgwaxRmT7s6fgaYlMZvZu25-KLNtwFpFdicVAf3XK8Ae-C6OXTo-XZUWisG3Lv9Ef59WpzuWgLt2VWA4ARO4JLbXvPKMXJ7TYDTP0c-MdU8gkLs5wUOYwRTFmOUMoxZmBAWMhj4COOCJcRvGl9guWQmRDdHeV282ZTMpVje8wr5k2gCTSF7EAusBWVm0Aw2QvEHB2YXjagZPePyvSfHYWYPTjb3Dyyb2qd4d_JfjXzKstbsS3NifnjQcrxWNriijLb0s_ZEfb8db5R2mOSGNC5_BnEh9VBEg65QCW0GpIByvKyE0pyAtbK-DWY7p3HUn70Ior1XIVsssuknsPh0DmafLy8_31z89hHMLi7P52Dx2b4-_f0juD7_8vl60TT95blLERJl3NOLFyM8FpAM2NyIUYDbSykO5dpY_Z1xl7NClLSxfkpNd_Xu75C3rII_U7QMI10UtxHc6HvjaZYbB80Wh51tdtPEx0Fib6H4G8JSq_egmvZvswBcPQreOoX3sDfwNZc8l1huzZNY2jsGHitd26MiqhMNbh1_-scff_zhXl25Z2fup09XV_O545-b9yuhdIXXzPHPJ_b2jffhSshKCNVc3tHUb24WsferECElUxtRUWXiwVbUsrnhoxMLDuxqP9zb7Dn78BQ54VmDvP0EnPB03PsSjFs6NxEUeK-1e4O5PbBfCAnqquAVVytGwZ8iV5PJZLKv6h0N2QSgRzBoR3FI6kmp7vU0Dsyu2f_UTBmjLWwzjwoJT9_Rc_7iG8PHq2G-Vky6WGtMVuv26oyi5cxLkB_4PnpfdzWNWlP7QE98mvop_sBOvNgP0jSN_eDD6gQGJE0RzWlMY1QEOcS-nyMWh2lIYhSjD_wEQRR4CAUQIuQFkzwIIhyEXogKTFMcOAFka8zLiYn7EyGXH-z1Nice8qAXfChxzkplrz1CqGL3wH51kDGID_LEJgt5vVROAEuutNqT0VyX7GQht8ZK7LVHNnOxWQPQzWst2vuKyF61770v6EMty5Pj7_Bp-bw7Qf8bAAD__9X9ksU">