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

    <tr>
        <th>Summary</th>
        <td>
            Clang-19: Unable to find instantiation of declaration! UNREACHABLE executed at /llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6437!
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    ### Description

The bug arises during Clang's template instantiation process when attempting to specialize a template for multi-dimensional arrays. The compiler fails with an internal error, specifically producing the message:

```
Unable to find instantiation of declaration!
UNREACHABLE executed at /root/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6437!
```
The issue can also be reproduced on Compiler Explorer: https://godbolt.org/z/MPrzKqPP1
### Code
```cpp
#include <typeinfo>
#include <iostream>

// generic template
template<class T>
struct Array_traits
{
  template<class U>
  struct Rebind
  {
    typedef U Type;
  };
};

// partial specialization for arrays
template<class T, int N>
struct Array_traits<T[N]>
{
  template<class U>
  struct Rebind
  {
 typedef Array_traits<T>::Rebind<U>::Type Type[N];
  };
};

int main()
{
  typedef int array_of_int[10][20][30];
 Array_traits<array_of_int>::Rebind<float>::Type array_of_float;

  // it prints out A10_A20_A30_i
  std::cout << typeid(array_of_int).name() << std::endl;

  // it should print A10_A20_A30_f, but it prints A10_f
 std::cout << typeid(array_of_float).name() << std::endl;
}

// Fix:
// generic template
template<class T, class U> 
struct Array_rebind
{
  typedef U Type;
};

// partial specialization
template<class T, int N, class U>
struct Array_rebind<T[N], U>
{
  typedef Array_rebind<T,U>::Type Type[N];
};
```

### Command
```sh
# clang++ bugreport_0_1.cpp -std=c++11 -O0 -g -Wall -Wextra -pedantic
bugreport_0_1.cpp:22:13: warning: missing 'typename' prior to dependent type name Array_traits<T>::Rebind<U>::Type; implicit 'typename' is a C++20 extension [-Wc++20-extensions]
   22 |     typedef Array_traits<T>::Rebind<U>::Type Type[N];
      |             ^
      | typename 
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-19/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 bugreport_0_1.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 -debug-info-kind=constructor -dwarf-version=5 -debugger-tuning=gdb -fdebug-compilation-dir=/root/gdbtest/gcctest/gcc_llvm/gcc/log2/NoAttachment/fixed/6327 -fcoverage-compilation-dir=/root/gdbtest/gcctest/gcc_llvm/gcc/log2/NoAttachment/fixed/6327 -resource-dir /usr/lib/llvm-19/lib/clang/19 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7/../../../../include/c++/7 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7/../../../../include/x86_64-linux-gnu/c++/7 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7/../../../../include/c++/7/backward -internal-isystem /usr/lib/llvm-19/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O0 -Wall -Wextra -pedantic -std=c++11 -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/bugreport_0_1-2e2edc.o -x c++ bugreport_0_1.cpp
1. bugreport_0_1.cpp:29:46: current parser token 'Type'
2. bugreport_0_1.cpp:27:1: parsing function body 'main'
3. bugreport_0_1.cpp:27:1: in compound statement ('{}')
4. bugreport_0_1.cpp:20:10: instantiating class definition 'Array_traits<int[10][20][30]>::Rebind<float>'
 #0 0x00007f327e812216 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xdc1216)
 #1 0x00007f327e80fec0 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xdbeec0)
 #2 0x00007f327e8128f0 (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xdc18f0)
 #3 0x00007f3289201980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #4 0x00007f3286d846bd clang::Sema::FindInstantiatedDecl(clang::SourceLocation, clang::NamedDecl*, clang::MultiLevelTemplateArgumentList const&, bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1bda6bd)
 #5 0x00007f3286d53ceb (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1ba9ceb)
 #6 0x00007f3286d6989f (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1bbf89f)
 #7 0x00007f3286d53011 (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1ba9011)
 #8 0x00007f3286d6b047 (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1bc1047)
 #9 0x00007f3286d6be3a (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1bc1e3a)
#10 0x00007f3286d4b090 (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1ba1090)
#11 0x00007f3286d4ad5c clang::Sema::SubstType(clang::TypeSourceInfo*, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName, bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1ba0d5c)
#12 0x00007f3286d8394a clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(clang::TypedefNameDecl*, bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1bd994a)
#13 0x00007f3286d848cb clang::TemplateDeclInstantiator::VisitTypedefDecl(clang::TypedefDecl*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1bda8cb)
#14 0x00007f3286d4e8b6 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1ba48b6)
#15 0x00007f3286d506a7 clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation, clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind, bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1ba66a7)
#16 0x00007f3286e0102e (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1c5702e)
#17 0x00007f32865e178d clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x143778d)
#18 0x00007f3286df2191 clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1c48191)
#19 0x00007f3286df194f clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1c4794f)
#20 0x00007f3286662ba8 clang::Sema::RequireCompleteDeclContext(clang::CXXScopeSpec&, clang::DeclContext*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x14b8ba8)
#21 0x00007f3286acdd3d clang::Sema::LookupParsedName(clang::LookupResult&, clang::Scope*, clang::CXXScopeSpec*, bool, bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x1923d3d)
#22 0x00007f32867626c8 clang::Sema::ClassifyName(clang::Scope*, clang::CXXScopeSpec&, clang::IdentifierInfo*&, clang::SourceLocation, clang::Token const&, clang::CorrectionCandidateCallback*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x15b86c8)
#23 0x00007f3285e26ea8 clang::Parser::TryAnnotateName(clang::CorrectionCandidateCallback*, clang::ImplicitTypenameContext) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc7cea8)
#24 0x00007f3285e026ed clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc586ed)
#25 0x00007f3285e022cb clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc582cb)
#26 0x00007f3285e0ac80 clang::Parser::ParseCompoundStatementBody(bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc60c80)
#27 0x00007f3285e0bdef clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc61def)
#28 0x00007f3285e25c36 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc7bc36)
#29 0x00007f3285d703a7 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xbc63a7)
#30 0x00007f3285e24cb4 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc7acb4)
#31 0x00007f3285e2469b clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc7a69b)
#32 0x00007f3285e238ed clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc798ed)
#33 0x00007f3285e21d3c clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xc77d3c)
#34 0x00007f3285d5a11e clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0xbb011e)
#35 0x00007f3287c57825 clang::FrontendAction::Execute() (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2aad825)
#36 0x00007f3287bd30d4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2a290d4)
#37 0x00007f3287cd0f7e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.0+0x2b26f7e)
#38 0x0000561f24649fad cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-19/bin/clang+0x12fad)
#39 0x0000561f24647075 (/usr/lib/llvm-19/bin/clang+0x10075)
#40 0x0000561f24646213 clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm-19/bin/clang+0xf213)
#41 0x0000561f24654556 main (/usr/lib/llvm-19/bin/clang+0x1d556)
#42 0x00007f327cc60c87 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c87)
#43 0x0000561f24643bfa _start (/usr/lib/llvm-19/bin/clang+0xcbfa)
clang++: error: unable to execute command: Segmentation fault (core dumped)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
Ubuntu clang version 19.0.0 (++20240301064251+dd426fa5f931-1~exp1~20240301184412.1845)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-19/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/bugreport_0_1-399865.cpp
clang++: note: diagnostic msg: /tmp/bugreport_0_1-399865.sh
clang++: note: diagnostic msg: 

********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMW11zmzj3_zTkRoMHxKsvcuHY8TbzpG3-SbrdO4-QDo6eAmKFSJ29eD77fyTAtrCdJl13ZzuexgZJ55wf5-UnIZGm4esK4NKJrpxocUFa9STkJSclqUT1Uoq2oc1FJtjLpYOD7oMW0FDJa8VF5XgLx5t1_z8-AcraNSKSN9Ag1kperdG8INXawUmDFJR1QRQgXjWKVIoTPQKqpaDQNOj7E1SIKN1K6Y5KoKYGyknB_wJEdt1zIVHZFoq7jJdQNVxUpEBESvLSTJDWgoqy5gVIlBNeNOg7V0-IVIhXCqRuC1IK6eB5JyDnlBTFi1aEtdSIfgJUQtOQNTjBbN9GJ_b6j_n5pSJZAVrVnFdsZJjIEQNaEGl-Otjv-3y6v57NP8yubq8RbIC2ChgiCjl4KYVQDl4WxXPp1lL8F6j-STsElwXPHLx8gJL0fx57RG62YmEBtJjQunaCWRwGyVboSG8NEm-aFhAlFSJFI1AGSEIHATAkKjQfQLze1IWQIJ1ghp6UqhuNCV46eLkWLBOFmgip9fvLwcuPd_Kv__x5dzeI3frMXDAYqaLVHFrxihYtA-QEc_VSA69y4QTXx25z0SgJpNzd7htphdAaKpCcbp2lu7n9FcxpQZoGPW57N0q2VKGZ9p6VkoSrph8wueq-IHTQ_cu2O0L9APeQ8YoNF_c6I6QNYpCjL-jxpQYnuNq1Wmx_Wd_3LaqJVJwUu1jonEsHQefyJ03Ec-3x6NOrtgbzRye6-uREix2g57F8MPtAXHCtHSiY9R2D-ZftJQ1Qh9Kg0xvB0oaWhFcOTh08PbSj10U3M6itRL7ilXKiK9_TcqIr3P8NPEvuSHur84EheSGIso3ZdujvWVoj1D9krlAteaUaJFqFZr63mmFvNQu8Fd-hzbphqW7iBHMnmBu7OHNwaumFp5OKlNBhMTTd9oeKFa_o0TyJtmCdOpYmuXaorFV7yurbeT_EG_XrYHiPhsniSFQs-WaXmd8Z-niOds6MjoSG3PPoI040iuN3Ru6Pw9XS77R6e5GL53ttj2h80A-_JeYsw-z6cZjdy5JsIRvaNk_bdqgvYlcOvtIkQUItpFp5K19XK-SaZ7-gXQPfR-5nD7lr5H4lRYHcr7BRkiC3BqbrHO2GPRjGCWYYO8HMD3Sp-k5kxau1_lryptF13cGJhqRzvUR7sZC6eDOooWJQKYMY0vffnbac4Arxsi445WosiDeIoHlnHPYQbFRHW5ATXblf6XDD3d5o9HMYCgjGyEnmaL-UnCmn6n_D0MM_J7oe3x5M6WPl7vZ69nCNmjYruULEcL7uQWgsRwyBq6c2m1BR9rzmkN4YHtLogCGGQnWVXlMwKknzhDJCvylJKGg3rw1H0XwRGGpEK7vLuidpGkE1B2JIthXqKOqkU_lBEfoNsbast1nDm6A7KdaSlIjIdVtCpaGc6UzYNnJLt4yy_tTBy0xXl46MIZdSH7lK8roAtEnjVRy6NXULXrUbd121yIWSK1dk_0VuKaEgG9c4staAcYmIi1zGG00e3VwCIJcWQKRLGuVmkAsJrjYbKrZrZzR5BslzDtJcpkQy95kULbj68TTI1SXQzXnRXTgWaFobQU0mckvBoEA1p8itOXULeIYC4e4Hb9yaA3LLXJIS3FoY8uwEC2NHXhL15IKUlUBuntcuFZV-RsoJFqJCbl4JV4q2Yrxau7otcksqqi6NCemSghM9R3DztvrOK-YqbWLjBAuMXEXkGpRL61ZD68YhclVbgbkwJHmXQdauXc0T3W_G4xd74yOXfScy12jpaHKCRdT3WIPUg5m8sFizDLl5N1I3ZehwYVwbuuPja5YpaMw3SnffVr0_rynVjiLW2MHLT2KmFKFP2p8cvMz5BpiDl3GAE-TmVDyDJGv4Z8RJ6CJESzjt193vYZLhT5E7zJNc3rw0Cspx306D3u23Pu_gZeLg5WRy-F8f1FpMl-t0218q50inf0r0nhydNQj99p1I9mORp5_IbvhXRxGUFG9s-nM2Hml6KEzXMFnRQ6GnH87rvd8vomMPx6nDEaqRM6glUF053JJQqVOaWSFwC64rnA6JfF21dC-fhBM80V2bb7x2BZMufQL6zeWVuy5zHeibjQsbCmaRROc56wcVhZAu42RdiUZxqq8RxmTD18hdrFa_zeerD7Pfr1eLr7P7JV7Nlzer2cNHJ1j4yBXaXlXW2rn287uLAQOjE4HcDaKnqFZX_PzJkTvBDE-dYBbGugzSVkpNiGoiG9Ak6RtUmtYYIoGTbhh8YphEkzA9iu6tiVfeVtRMWzPBXvQw3VytHyb40TC8Mks6uqCgRhEFOt0hM3tINN1NFvrLMO8LTwzn6eG8brztOk217sk2g5xX3Cjp4GREsF6dKp6cBQ72IQcHHvI2nud5SR7gBFIfYz9GJqObzs1L03250zMrQ1ceO86T7hpJ8n01rH7guJ8wmAmURuJV2mLit7_Fs9vb3z9OGjHxpxPPwVfehlEf-_EWQa2wbyvs5UC9Ywrft9UDX1ek-EAqVoBshknd39YpA6CepRMeg5jm3lmMT3NbULAnKJ1iz5-mHlqtJDRKSFjJ3vn6QY_kxYJntXqSQJgW1cnx8TS1xYT7YmKWhnHG-pmSwdas9ZlvS16xvWU-tgBaODjdb2tK_W3P7fpJ5HDzEymHPrPRrY9tofitpn7DcuKsp8O3vFHIsKre2zIhip95tEaaS-vagt3PGIkzZgES2YBEAYXsbOLIlEJmiYttcfE0neZnE5fl6TS3xCVj6zzfP6N1nu9b4tKRdZkXJmcTR30vTCxx07E4CMgZxUFAdit7OPA9W1yYedP354KTYPre1LPE-SNxhEX0eKg-tFmjujK5H5_6ShejN1Uu_lYcvjXqF7u3D5_MSsT5Q5h4LKIWUHiU04JpSPaVGqzTyu0ympDd3b0c99itdWjND7Pdwc3ZL0lQ02loe10wztgpzd5u3e-84apX_aRNW3vOmWhTmll2jCpPCGkWH3fnvScy10TpHVVn_scf90CFPFF5fnD75wJiaPtgLbr-RzOzX-H-YZrFFrDjCubFJHkbsMc1fw_cp0c5jvA_jFUck8TCyi6_4PkehnOJo1HiYbDE2eU3Aj9JT7At2VZfuXp6aPOcUw49IX-oO0L-6vPYMeRhzrOSkDvB_FlwhvrXU3pucDZgwyBJUmZZOqr8Ofan_nFL7-HPlkuYi7IuoMu5N2X9Hmr5fy0pumo3Py5if-zBt4421A0W3ZwY5HkzIA1Tf-pbGI3oSu5Pw_zNGP0b8InPik8yDfN9fLDNr-IYZyR9Ez4618xFpWCjbJjmf_zxQEVt0s1h4ra6nfPZh1makdSyzSZzhDIWnMgEt0J8a-s7IhtgHYfat6i7ew9NWxzjZtrYo2VvD4Y93nL2lDvFAQuszIBtdpbEOKYnnqqpJjx_ObT6TXaNwbhhUCnz6mJLf9_FZR_NAtSJoj8XUoJJtnNSMc50SSVFkRH67by-FGVpTG1fshhhBDgGO06M7_T871G-zKpKKKLgENYfGWHD2b9pfOxfzW0j51ym0oTCKGpC21IPx8BOWWq-PwxLdZ_l3lRkliuQM6Ukz1oFjbXC9VCSovgdqGHM833fUKXqUQhwawro2AkOxDPdaQvMq642hrfrv6_kUWnjFmcDP0pjsAM3GoOP7YnHG8H_t6B9RqSwPbXB8QgpQlPvVc3n_dLyFrErwV4cnJ43G9PYo6m1poCTkaYZg_xVTZc9pRxrOiqjJ_zZ8o4uh5_TZ2OfgU0h0lFqjGgQv8m-xXYt3jburnudMPizkG_xy90uyVycKiD7vW6Jgl1067nmeT02yWhgzRmxRUUjlniBPWc8sEkD8JsUbX0SntMcqwPueKC-Me2dhPfHNf01x1wKeU-qNdxU_LyQZzQO7Kmn9TpGu2ZIs_CHkH-Wew5607-NPHwEP1E4Dlq8-hhnlELTPHR7l_VU4Hy-SWgWWkD5Y6Di6et1Z6_YWHidDOizwzX2sV8JVzy1io_1hkrDFaQ_4EjXm86N7Br9D0B0PhCmqc1VgjEl9llAXwXhUdRmoe9wTfRzTf5s4U6NCMo2Ad5DfpSe7OYxHwVrC7gpayGVqZvnrXpJwgJrAdx-qRexiPg-HFg_e3gcTarMtv74180Gs8zzfWtBzH7bltAoSXG0r-lS6ipRsZmJ4e7adXdi4Sdf8h5XDRPCUhxZulksLslY4LHQnvJ1pxO6VVQKlna9whbAI2PO6QSY4KnH7LyZ2NgyL08sL-g13ZnxvK2R6WtmnjN0cYbjPLF9YuBsUeznOIzDaU4YotRf9bvrd7MHs0XCxN-cPhE5UKuZicc5sq_hOXoWnL1Z_Q6C7q15Tuz0Mh2pmHhJ9L4hPS-xvC30RkPG2O-3LA92m50WnVXGiJm92PsoxLB6tccx32dpjv3A0sq3tYrCKIrNKYf3WcuiyOKbobWNgpqJSYJWK-0nq0YRqVZ7Ql7b4kC1O8WdL_k0tShWGIwwDbKcoG78d-lPs3z3Dm64rD_BrD_IFcxQuz2I1R-pQrTfkh7M0AOs9WSpPzhD2sIoQIUEsyV4r3qdGt5cR3mfQoaxzfEyYIi1RnJjtsHoodsGkPtsrgEgvhfbvZwvWVupth-231WGdFxO-nfY3YZwHHqB53txiCPfwVeMhTjOSZRPA9_1_web2v_f0MhPw9DHEz8Nd579aDbSav2PbFEeDoJJIAyZncBmw5Zo-Ka7ZVJOUQBbcPnDjdHH0KuE0mkZ7fa5obIx-_EHJ_kbn71jCP1-9Nnj42z-AT1-uEbLz7e3n7_efPoNLW9urx_Q42dz-erLb-j--u7z_aMz7AK_O7afPG106J7cU75tIAGZvdTm_N52yLejcHwbXzCdpnG026t3pvGGwxjvfUjnelTDoZALdhmwaTAlF3DpJzhNPN8Pg4unSz8NY98L_DhjeTglvp9CloXpNMNJkgONL_ildnbf8_WfKMQT38uSPM9j8EkS5Sx1Qg9KwouJ9s2JkOsLc7bg0vexF08vCpJB0ZiTrhj3MGAnWlzIS-PMWbtunNAreKOa3RCKqwIuzSlW7e7BDL3v0Cd65bznWQ96XrSyuPz50xc9SM-X-P8DAAD__x5OGkg">