<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJzdWttS67gS_ZrwokrKlq954CFA2Dun2AMFOTOPLlmWiQfH8kgyl_n605KdxAohJMCZmT1UKjG21L16tbqllpXy7OV0vigkooLIBXoiEuW8qTKUviBCaZGxSqGnRVEytCyqYln8WVT3SC0YYs9kWcPtnAs0wF6AY8dHwyHiFUM8N01qohbSXHV9mUCK8wdUC541lGWIVAgUFIKVLygr8pwJra_Fwisk-RL6khJ0LKH1-QCfwQdRnrHRwLkYOJP2-1x3YFJ3cb2RM3JAcIZcDJfuAJ_r-89xmIS-1QtQwwfdsg6O6D-cKEXoQkOU3e3grCZCMpEYeKM_i3oQXAxwvFCqlgMPxF3C575QiyYdUb6Ef8rycfUzBCW_M6rg3xzYlPAbRb7vOQDw8pVgPG6Vos4-vqy1C55AOBqEDi1Jdd-RMZQqG3gXtP0XO2hIocUOO68bVTfKegDt2k__ZtfHR-9oQaNt5LSuO8CzCmkrUVHRssmAxVzw5c4OQJyryeu0XjZSwHfXD67SQmmunrjIJAyg0aLr4AbwhZgQXJiL5xrIBUUDHA2iM_1tJFZkyWRNKENgABp4Zx2v1t8gmB6lH2Nv3ME4GkE3lo5V6Dv65yCFQHpZQBBuFCeJi3SLbkgdrTzwzc9u7U31R0PKIi9YNiyyVjKMHClBrWogQyQlI3kyq3UgJt_NjxIN2-WID_sj1P7w33MIIrmCFJQSyVALsSyk2gDRveomLQtqYR9458msyp6NAXMYsdPRaLQH_pdYFMXaoviTFklgmiqU3BD6MH2uISvKOdf5fq6tMwbnpJQsUS81eys8vt46z9PRuyeCvfONcXClGEw1RLHNGIe_JCFKiSJtFEsSaBVD1tx5s-fg44FG2g2RhRSmMJSzJ7RChYi4b5YwcUkzGUIwwCy6fgiYk2lF0pLNcgv_poV33gXMpCw5nYj7uR5q_Xtm6K2lADveFLpdoKopy1qJj3jtWC7cyFnlvIqDKzQRKwtg_ZAxwCvAfQuYw1vBjdRrhTVs2zfGNcY74DVtih6BOmWh5AdT5AxGtI67c17BvDPVM4Q3Wetby5zBjZaO9dj9oI9DO3k8krJp1zEmMHDUMZ0oPTDBXuAAFaC9oIWCxQvl1SMTqgBUMD50h6JS_yR3v3Z-9OpzHG0-_gtjWBMsFcgXn4lm_69MO18EWU8B0ecgfyhXfgRs4P5EYMce_Iw_C_aDcD8EOPy5APuu_7MBjv4ZgG-uppO7KZJNuiwUIiht7pFgNRdKTy52wQnP5EhXmCMuoFq7NKVvZ6ipvdtqOoUVoBJQDei5pRa65qVMSjBM8ka0t3VPmIQ4LYi2WDRQgVNR1Kpb7d5BSfyAsmZZrys2Bx6NbwS_F2S5WQdp4takp0UF3-8Vk8Oc8pKLYVaQ-4pLVVCJhhxZ5SLfXUEaIK4GcrCjTVZ1jadpI8ymQysW-H1gVevsTUmFjxHe1mpGtpap10CbUkyvBhN3M2CgMHeQ8-zAX5T7eTgmY3dMQmR2DsyiR77I9uJGwJLCuGDe-jHeNBLkKQHSBCPLAQ61L83yY9wOs8uySEO__b26-vXH0PVGkgP1znMa5KCut9-APdfGE-eR5-_Cc9tUd8V9RcrvMG5KJmQ3zt9XmYFESyW2VI6pm-L4XTmALO0HEcjx-nLi1E-j0IG4E0wqLlgC4fNKKAVxo9AI9DE0t-T5PXmRE9PAC9IdIvTQHsJI1KJcz8hyxx4UOaklLdiSFkbU6TZZDKF3bEnaq4t2MT3r1pcXLIMqruDVt6bI9NZR3Os175KQ7jPAk24puZZpgvuKU6L773TPG_B9QGfBDy34IXUj5h0oLcI5NLakRdvSsjQ_XBo0tqTFtrTUzWJ3N7XndX3F-UNT_wIxaTPZ3r9lsilVF0V9EZTXzBB8KIeRmwMMC-d4Cyf242A3zs-CPEcp5-URYLEDWNZgdR5wLLBehnMI1J1g2wzQjloCoWZD7oPq3e43N3ZscsyPRunaZyIEeblleVsxbQ_4G-i8ZDAVX-ktDxAPReDB5vq-A9ZY5rp2ePrxOH_DNxOqrqt-3L1n9VdYto-7Q62O0xCMsqy2Um-exm6mK5eNphszLfauV6ohnUz0QmgDZVJlk9UKZytJvfL1Pg3ZiodZlfO2itrf65KLW3gA7Qt1TISmLM_MBsSGDmsGySnOfBzuBXsH83v5ipT5emW4m4VzXkFlqL6MCQChhd9OZrPrtH3N8Co1bM0EOwm1HLjdYkL1ivEO1sN6t1ccTDMdpz4OLZp9m2bPwwHZy8R2tIEJ18JAIWXxZ2fSMVz_jXQQF6y16Ai26QgCemgQwopQKPD_b4VafGzY_a1UgKUWFaGdj8YeGaeHUvH_NVsTbNLM-7F1eAqijgsGWgxE9mDw_czP9zIwfYaMA-vwN5k4wpJeMtHuPMqUFLJlbpkS284kkRfun1xmVcXEL6tqySpx7pakLH-F1Kbr8vM3hNj9ddbU9vmN3kDtp8-mklC6sKwtk744Gs4IXFOWXbCygPodZgOo1x7YUVM1dQPgyiJzvE1mDovofWT2efzCuPhgSQEWAeC-RdjZjvU0-5fHOhhoMeD-a2Id4y1TgjyK90_pvL5ij6xsC9e-Ddc1-aNhN2or0HXDb4Lr6ic3S-Lw6DKHph7AsnDbK740zL30dY6a3M23Vve6GOgDOBJImmWgxwJibTa4vpNRO1leCj20YY1ttgLae9NnRhsz3x-sGftRSu3Ugq2dCdcjKXYt1d35EzGDDKpTm6W8w2PRs4X1iMSHfXcM2i14oc1MlIW-lSc6IBuUj-vojPdZccSAxz6D53bwribqIHTGUC3i2PccRKmbLIne8uzNXf1yb0HEaipaF3bWPbjxyIvMQvfGTmpb1YWg1wIWbwELwOOHCPKgnSXI2q5wHRrl0aF8uR4kAMuNWxudepcvj3qlsTnEdcsof2TiZZXG1zuNJGfli0Vq3lRmdCXCEKs5W-2qv7ETsGMDMbdmJGvvUxscxy472OAQGlvSsC1tnGW5NW4zUTyuUmI7OMmr0Ib7S1Jl9kje6qgbvFUd7mk66eLS_HuolU4KRlhWeltWsiBlx1r5H57Kt02Ep3onxDJx58KwOw5gXi_oRzUp9BzyepG3lxXzsn36IXIo2G6RYyd1h8SBvYfWB3LRu7ZS2o5c9hapfy05B9LihoG917beCl9lKM8LHaTT5iFpCiLNynfWznQYp14YmG1_jSeRujxOKLCQ9OTvfgGAs2BLcrQtOXSoLdnket_5djU7O0_wCI-Cd1SABEvFdrL20zxArfBDyMBpb0Ovpd_VL7Y3bzDNTX0A08zI4MnWozmBuTBrj5Sy50KZU7XI9YxXG8nQ8FG_bJRMn-LcTKh9TQiGiSw2h26h4yXLuCDdjaE3yqm3gTcn4p7pnN6dxh0Kli2IGpZF1TwP76uma7YQjGRoCXhK3bjmsnhenSsFYkrAfVEY2yx2XlGwOqe0eaeIlvLe9Ovo_8Snd1i2e107mc8n59_R_PsUXV5fXV3_NvvlG7qcXU3v0Pza3D777zd0O725vp3r6Gr77noVG0sdXW--jl03EAyV2jP6mLJaizyQAnyplvXW-9ShF8U0dTavVb9Allx8wDNf5Z_VCeeT7NTLxt6YnJBGLbg4_Z3K-qQR5enRx7cLKRtzflsfeQ9OFqck9Yl-e8JIHlIc49CDdQOkPEaYF4c-OylJykp5OgggZnHFnpARAdeD4OLk8wiKU-xAksXY0RkE-yMWpSmGbOUxPwjI2IP8BOVKUa6PCZyIUyNSnx2Ah_rM6OYMwQmMOb05wgxgQKgKVbLTy3UCWZ3O3xzMB4LXZyEg9aYwKB_kiYF5ajD-D6xuUqo>52805</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Frontend crash on malformed `template` blocks
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jcsp
</td>
</tr>
</table>
<pre>
This crash was found by accident while minimizing the example for #52804 -- one of the paths the minimizer took produced an entirely different crash on some malformed C++ code.
Crashes on 13.0.0 and 12.0.1, on x86_64.
## Reproducer
Attached as
[parser_crash.zip](https://github.com/llvm/llvm-project/files/7744301/parser_crash.zip)
Compile with `clang++ -std=c++20 -c`
## Output
```
$ clang++ -std=c++20 -c ./parser_crash.cpp
In file included from ./parser_crash.cpp:1:
/usr/include/bits/wordsize.h:1:15: error: expected '{'
namespace std ;
^
/usr/include/bits/wordsize.h:2239:1: error: expected '{'
namespace std
^
/usr/include/bits/wordsize.h:2240:2: error: expected '{'
inline namespace __1 {
^
/usr/include/bits/wordsize.h:2254:22: error: expected unqualified-id
class __tuple_leaf_Ip, _Hp, true
^
/usr/include/bits/wordsize.h:2269:41: error: expected '{' after base class list
: public __tuple_leaf<_Indx, _Tp>...
^
/usr/include/bits/wordsize.h:2278:48: error: expected '{' after base class list
struct _PackExpandsToThisTuple : false_type ;
^
/usr/include/bits/wordsize.h:2335:5: error: expected '<' after 'template'
__attribute__ () __attribute__ ()
^
/usr/include/bits/wordsize.h:2337:47: error: too few template arguments for alias template '_EnableIf'
template <class _AllocArgT, class _Alloc, _EnableIf<> = nullptr
^
/usr/include/bits/wordsize.h:170:1: note: template is declared here
using _EnableIf __attribute__(()) = typename _MetaBase<_Cond>::template _EnableIfImpl<>;
^
/usr/include/bits/wordsize.h:2337:61: error: value of type 'nullptr_t' is not implicitly convertible to 'int'
template <class _AllocArgT, class _Alloc, _EnableIf<> = nullptr
^~~~~~~
/usr/include/bits/wordsize.h:2342:5: error: expected '<' after 'template'
__attribute__ () __attribute__ () constexpr
^
/usr/include/bits/wordsize.h:2345:5: error: expected '<' after 'template'
__attribute__ () __attribute__ () constexpr
^
/usr/include/bits/wordsize.h:2348:7: error: expected '<' after 'template'
__attribute__ () __attribute__ ()
^
/usr/include/bits/wordsize.h:2351:7: error: expected '<' after 'template'
__attribute__ () __attribute__ ()
^
/usr/include/bits/wordsize.h:2393:9: error: expected '<' after 'template'
__attribute__ () __attribute__ ()
^
/usr/include/bits/wordsize.h:2396:9: error: expected '<' after 'template'
__attribute__ () __attribute__ ()
^
/usr/include/bits/wordsize.h:2414:9: error: expected '<' after 'template'
__attribute__ () __attribute__ ()
^
/usr/include/bits/wordsize.h:2417:9: error: expected '<' after 'template'
__attribute__ () __attribute__ ()
^
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /usr/bin/clang++ -std=c++20 -c -fcolor-diagnostics -o parser_crash.o ./parser_crash.cpp
1. /usr/include/bits/wordsize.h:2448:19: current parser token ';'
2. /usr/include/bits/wordsize.h:2240:9: parsing namespace '__1'
#0 0x00007f4f69a919a6 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib64/libLLVM-13.so+0xb5f9a6)
#1 0x00007f4f69a8f734 llvm::sys::RunSignalHandlers() (/lib64/libLLVM-13.so+0xb5d734)
#2 0x00007f4f699c1b28 (/lib64/libLLVM-13.so+0xa8fb28)
#3 0x00007f4f68b4b760 __restore_rt (/lib64/libc.so.6+0x42760)
#4 0x00007f4f708c535b (/lib64/libclang-cpp.so.13+0x193335b)
#5 0x00007f4f708c67c0 clang::Sema::DeclareImplicitDeductionGuides(clang::TemplateDecl*, clang::SourceLocation) (/lib64/libclang-cpp.so.13+0x19347c0)
#6 0x00007f4f706c17e3 (/lib64/libclang-cpp.so.13+0x172f7e3)
#7 0x00007f4f706c1dbf (/lib64/libclang-cpp.so.13+0x172fdbf)
#8 0x00007f4f706b1d81 clang::Sema::CppLookupName(clang::LookupResult&, clang::Scope*) (/lib64/libclang-cpp.so.13+0x171fd81)
#9 0x00007f4f706b2485 clang::Sema::LookupName(clang::LookupResult&, clang::Scope*, bool) (/lib64/libclang-cpp.so.13+0x1720485)
#10 0x00007f4f703d2f32 clang::Sema::HandleDeclarator(clang::Scope*, clang::Declarator&, llvm::MutableArrayRef<clang::TemplateParameterList*>) (/lib64/libclang-cpp.so.13+0x1440f32)
#11 0x00007f4f708489f5 clang::Sema::ActOnTemplateDeclarator(clang::Scope*, llvm::MutableArrayRef<clang::TemplateParameterList*>, clang::Declarator&) (/lib64/libclang-cpp.so.13+0x18b69f5)
#12 0x00007f4f6fb81d29 clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/lib64/libclang-cpp.so.13+0xbefd29)
#13 0x00007f4f6fc2d426 clang::Parser::ParseSingleDeclarationAfterTemplate(clang::DeclaratorContext, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (/lib64/libclang-cpp.so.13+0xc9b426)
#14 0x00007f4f6fc3325a clang::Parser::ParseTemplateDeclarationOrSpecialization(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (/lib64/libclang-cpp.so.13+0xca125a)
#15 0x00007f4f6fc3355c clang::Parser::ParseDeclarationStartingWithTemplate(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (/lib64/libclang-cpp.so.13+0xca155c)
#16 0x00007f4f6fb93a9b clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributesWithRange&, clang::SourceLocation*) (/lib64/libclang-cpp.so.13+0xc01a9b)
#17 0x00007f4f6fc44d4f clang::Parser::ParseExternalDeclaration(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) (/lib64/libclang-cpp.so.13+0xcb2d4f)
#18 0x00007f4f6fba7369 clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) (/lib64/libclang-cpp.so.13+0xc15369)
#19 0x00007f4f6fba7f37 clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) (/lib64/libclang-cpp.so.13+0xc15f37)
#20 0x00007f4f6fb93bdb clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributesWithRange&, clang::SourceLocation*) (/lib64/libclang-cpp.so.13+0xc01bdb)
#21 0x00007f4f6fc44d4f clang::Parser::ParseExternalDeclaration(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) (/lib64/libclang-cpp.so.13+0xcb2d4f)
#22 0x00007f4f6fc45f78 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) (/lib64/libclang-cpp.so.13+0xcb3f78)
#23 0x00007f4f6fb6f3b9 clang::ParseAST(clang::Sema&, bool, bool) (/lib64/libclang-cpp.so.13+0xbdd3b9)
#24 0x00007f4f7140dc69 clang::FrontendAction::Execute() (/lib64/libclang-cpp.so.13+0x247bc69)
#25 0x00007f4f713ab219 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib64/libclang-cpp.so.13+0x2419219)
#26 0x00007f4f7147d64b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/lib64/libclang-cpp.so.13+0x24eb64b)
#27 0x0000560948928430 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang+++0x16430)
#28 0x00005609489257bc (/usr/bin/clang+++0x137bc)
#29 0x00007f4f710c7f79 (/lib64/libclang-cpp.so.13+0x2135f79)
#30 0x00007f4f699c1bf7 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/lib64/libLLVM-13.so+0xa8fbf7)
#31 0x00007f4f710c881e (/lib64/libclang-cpp.so.13+0x213681e)
#32 0x00007f4f7109ddfb clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/lib64/libclang-cpp.so.13+0x210bdfb)
#33 0x00007f4f7109e5be clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/lib64/libclang-cpp.so.13+0x210c5be)
#34 0x00007f4f710a8532 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/lib64/libclang-cpp.so.13+0x2116532)
#35 0x0000560948923360 main (/usr/bin/clang+++0x11360)
#36 0x00007f4f68b36560 __libc_start_call_main (/lib64/libc.so.6+0x2d560)
#37 0x00007f4f68b3660c __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x2d60c)
#38 0x0000560948924bf5 _start (/usr/bin/clang+++0x12bf5)
clang-13: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 13.0.0 (Fedora 13.0.0-3.fc35)
Target: x86_64-redhat-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-13: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-13: note: diagnostic msg: /tmp/parser_crash-378cb0.cpp
clang-13: note: diagnostic msg: /tmp/parser_crash-378cb0.sh
clang-13: note: diagnostic msg:
********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzdWtty6rgS_RryooLy3eYhD4SQvTmVmaQSzsyjS5bk4ImxPJKcy3z9ackGLEIIZOfMLUWBY0vdq1erW2pZGaev54tlIRERWC7RM5Yo501FUfaKMCEFZZVCz8uiZGhVVMWq-KOoHpBaMsRe8KqG2zkXaOD5oZc4ARoOEa8Y4rlpUmO1lOaq68sEUpw_olpw2hBGEa4QKCgEK18RLfKcCa2vxcIrJPkK-uISdKyg9XTgXcAHEU7ZaOBcDpxJ-z3VHZjUXVx_5IwcEEyR68GlO_Cm-v5LEqVRYPUC1PBBd6yDI_oPJ0phstQQZXc7vKixkEykBt7oj6IehJcDL1kqVcuBD-Ku4PNQqGWTjQhfwT9l-bT-GYKS3xhR8G8ObEr4jeMg8B0AePVGsDdulaLOPr6qtQueQTgaRA4pcfXQkTGUig78S9L-6zloSKDFHjtvGlU3ynoA7dpP_2bXJ0AfaEGjXeSkrjvA8wppK1FRkbKhwGIu-GpvByDO1eR1Wq8aKeC76wdXWaE0V89cUAkDaLTsOrghfCEmBBfm4qUGckHRwIsH8YX-NhIrvGKyxoQhMAAN_IuOV-tvEM5O0u95_riDcTKCbiydqjBw9M9RCoH0soAg3CpOUxfpFt2QOll5GJif_dqb6vcGl0VeMDosaCsZRo6UoFY1kCHSkuE8ndc6ENPv5keJhu1zxKf9EWl_BB85BOFcQQrKsGSohVgWUm2B6F51k5UFsbAP_Gk6r-iLMWABI3Y2Go0OwP8Si-JEW5T8oEUSmCYKpbeYPM5easiKcsF1vl9o64zBOS4lS9Vrzd4Lj6-3zvd19B6IYH-6NQ6uFIOpBiu2HePwl6ZYKVFkjWJpCq0SyJp7b_YcfDrQWLshtpDCFIZy9ozWqBAWD80KJi5pJkMIBphFNw8BczqrcFayeW7h37bwp13ATMqSk4l4WOih1r9nht5GCrDjz6DbJaqasqyV-IzXTuXCjZ11zqs4uEITsbYA1g-UAV4B7lvCHN4KbqReK2xg274xrjHeAa9pU_QI1CkLpT8xhS9gROu4m_IK5p2ZniH8yUbfRuYcbrR0bMbuJ30c2cnjCZdNu44xgeHFHdOp0gMT7AUOUAHaC1IoWLwQXj0xoQpABeNDdygq9Xdy91vnx28-p9EWeH9iDGuCpQL54keiOfgz084XQdZTQPxjkD-VKz8DNnT_QWDHPvyMfxTsJ-F-CnD0zwIcuME_DXD89wB8ez2b3M-QbLJVoRBGWfOABKu5UHpysQtOeCZHusIccQHV2pUpfTtDTe3dVtMZrACVgGpAzy210DUvYVKCYZI3or2te8IkxEmBtcWigQqciKJW3Wr3HkriR0SbVb2p2Bx4NL4V_EHg1XYdpInbkJ4VFXx_VEwOc8JLLoa0wA8Vl6ogEg05sspFvr-CNEBcDeRoR5us6hpPk0aYTYdWLPD7yKrW2duSyjtFeFurGdlapl4DbUsxvRpM3e2AgcLcQc6LA39xHuTRGI_dMY6Q2Tkwix75KtuLWwFLCuOCRevHZNtI4OcUSBMMrwZepH1plh_jdphdlUUWBe3v9fUvPw1dfyQ5UO-8ZGEO6nr7DZ7v2niSPPaDfXjumuq-eKhw-R3GTcmE7Mb5xyopSLRUepbKMXEzL_lQDiDL-kEEcvy-nCQLsjhyIO4Ek4oLlkL4vBFKQNwoMgIDD5pb8oKevNhJSOiH2R4RemgPYSRqUa5vZLljH4qczJIW7kiLYuJ0myyG0Hu2wu3VZbuYnnfry0tGoYorePWtKajeOkp6vRZdEtJ9Bt6kW0puZJrgvuYE6_573fMO_ADQWfAjC35E3Jj5R0qLvRwaW9LiXWk0y4-XBo0taYktLXNp4u6ndlrX15w_NvXPEJM2k-39OyabUnVR1BdBeM0MwcdyGLs5wLBwjndwekES7sf5oyCnKOO8PAGs5wCWDVidBxwLrE-9HAJ1L9g2A7SjFkOo2ZD7oHq3-82NHdsc81OjdO0zEQK_3rG8rZh2B_wtdF4xmIqv9ZYHiIci8Ghzg8ABayxzXTs8g2Scv-ObCVE3VT_uPrL6Kyw7xN2xVidZBEZZVlupN88Sl-rKZavp1kyLveu1akgnE70Q2kKZVHSyXuHsJKk3vj6kga55mFc5b6uow72uuLiDB9C-UKdEaMZyajYgtnRYM0hOPBp40UGw9zC_l29IWWxWhvtZmPIKKkP1ZUwACC38bjKf32Tta4Y3qWFnJthLqOXA3RYToleM97Ae1ru94miayTgLvMiiObBp9n0vxAeZ2I02MOFGGCi4LP7oTDqF67-QDuyCtRYd4S4dYUiODUJYEQoF_v-1UMvPDbu_lAqw1KIisvPR2Mfj7Fgq_r9ma4JNmvk4to5PQcRxwUCLgdgeDEFAg_wgA7MXyDiwDn-XiRMs6SUT7c6TTMkgW-aWKYntTBz70eHJZV5VTPy8rpasEud-hcvyF0htui6fviPE7q-zprYvaPQGaj99NpWE0oXRtkz64mi4wHBNGL1kZQH1O8wGUK89spOmauKGwJVF5niXzBwW0YfI7PP4hXHxyZICLALAfYs8ZzfWM_ovj3Uw0GLA_dfEuuftmBLmcXJ4Suf1NXtiZVu49m24qfHvDbtVO4GuG34TXFc_uVkSRyeXOSTzAZaF217xZVHuZ29z1OR-sbO618VAH8CJQDJKQY8FxNpscAOHEjtZXgk9tGGNbbYC2nuzF0YaM98frdkL4ozYqcWzdiZcH2eea6nuzp-IOWRQndos5R0ei54drCckPi9wx6DdghfZzMQ0Cqw80QHZonzaRGdyyIoTBrwXMHhuB-96og4jZwzVopcEvoMIcdMV1luevbmrX-4tsVhPRZvCzroHN554QS107-yktlVdBHotYMkOsBA8fowgH9pZgqztCtchcR4fy5frQwKw3Liz0al3-fK4VxqbQ1x3jPAnJl7XaXyz04hzVr5apOZNZUZXKgyxmrP1rvo7OwF7NhBza0ay9j61wUnisqMNjqCxJc2zpY0pza1xS0XxtE6J7eDEb0Ib7q9wRe2RvNNRN3ivOjzQdNLFpfn3WCudDIywrPR3rGRhxk618j88k--bCE_1Tohl4t6FYXccwLxe0I9qXOg55O0i7yAr5mX77FPkELDdIsdO6g5OQnsPrQ_ksndtpbQ9uew9Uv9cco6kxY1Ce69tsxW-zlC-HzlIp81j0hREmpXvrJ3pKMn8KDTb_hpPKnV5nBJgIe3J3_8CwKPhjuR4V3LkEFuyyfWB8-16fjFNvZE3Cj9QARIsFbvJOsjyELXCjyHDy3obei39rn6xvX2DaW7qA5hmRgZPth7NMcyFtD1Syl4KZU7VItc3Xm0kQ8Mn_bJRMn2Kczuh9jUhGCay2B66hY5XjHKBuxtDf5QTfwtvgcUD0zm9O407FIwusRqWRdW8DB-qpmu2FAxTtAI8pW5cc1m8rM-VAjEl4L4sjG0WO28oWJ9T2r5TRCv5YPp19P_Ap3dYtntdO1ksJtPvaPF9hq5urq9vfp3__A1dza9n92hxY25f_Pcbupvd3twtdHS1ffe9ik2kjq53X8duGgiGSu0ZfUxZbUQeSYF3pVb1zvvUoR8nJHO2r1W_QJZcfsIzX-Wf9QnnM3ru07E_xmeqUCU7v9qEw_qs-faYOTTfvNmHRJIBxY_yrBHl-clHvQspG3PWWx-PD8-W5yxxHOZl3hgz5lCHuXkcUkrjiCVJnrDkrMQZK-X5IIT49ir2jIwIuB6El2fFuedAOvU8R-cKLxixOMs8yEs-C8IQj33IRFCYFOXmQMCZODeQ9CkBeKhPh25PC5zB6NLbIMyoA_m4UUsuzn8jsj4zes8N7v8BJDw90g">