<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/120922>120922</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang] Compilation error when a constructor of derived type with extends (derived type with private attribute is specified in extends)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ohno-fj
</td>
</tr>
</table>
<pre>
```
Version of flang : 20.0.0(8d550aa0f027eb2cf32850f3905dc1db22317587)/AArch64
```
When a constructor of `derived type` with `extends` (`derived type` with `private` attribute is specified in `extends`) is accessed, a compilation error occurs.
The following are the test program, Flang, Gfortran and ifx compilation/execution result.
snfm0301_027_2.f90:
```fortran
program main
call test02()
print *,"pass"
end program main
module mod2
type,private:: tt
integer :: ip = 1
end type tt
type,extends(tt):: ty1
integer :: i1 = 1
type(tt) :: i1p = tt(2)
integer,allocatable :: i1a(:)
end type ty1
type(ty1) :: str
end module mod2
subroutine test02()
use mod2
integer,allocatable :: ia(:)
allocate(ia(10))
ia=2
str=ty1(i1a=ia)
if (str%i1.ne.1) print *,'ng'
end subroutine test02
```
```
$ flang snfm0301_027_2.f90
flang: /work/groups/ssoft/compiler/llvm/src/llvm-main/flang/lib/Lower/ConvertExprToHLFIR.cpp:1715: hlfir::EntityWithAttributes {anonymous}::HlfirBuilder::gen(const Fortran::evaluate::StructureConstructor&): Assertion `parentCompType && "failed to retrieve parent component type"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang -fc1 -triple aarch64-unknown-linux-gnu -emit-obj -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu generic -target-feature +outline-atomics -target-feature +v8a -target-feature +fp-armv8 -target-feature +neon -resource-dir /work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/lib/clang/20 -mframe-pointer=non-leaf -o /tmp/snfm0301_027_2-cb3172.o -x f95-cpp-input snfm0301_027_2.f90
#0 0x0000400017702180 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/work/groups/ssoft/compiler/llvm/aarch64/main-latest/lib/libLLVM.so.20.0git+0x5952180)
#1 0x0000400017700208 llvm::sys::RunSignalHandlers() (/work/groups/ssoft/compiler/llvm/aarch64/main-latest/lib/libLLVM.so.20.0git+0x5950208)
#2 0x0000400017700360 SignalHandler(int) Signals.cpp:0:0
#3 0x000040000ce507a0 (linux-vdso.so.1+0x7a0)
#4 0x000040001c516274 raise (/lib64/libc.so.6+0x36274)
#5 0x000040001c500a2c abort (/lib64/libc.so.6+0x20a2c)
#6 0x000040001c50fba0 __assert_fail_base (/lib64/libc.so.6+0x2fba0)
#7 0x000040001c50fc18 __assert_perror_fail (/lib64/libc.so.6+0x2fc18)
#8 0x000000000546359c (anonymous namespace)::HlfirBuilder::gen(Fortran::evaluate::StructureConstructor const&) ConvertExprToHLFIR.cpp:0:0
#9 0x0000000005463618 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<hlfir::EntityWithAttributes (*)(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>> const&)::'lambda'(Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5> const&)&&, std::variant<Fortran::evaluate::Constant<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::StructureConstructor, Fortran::evaluate::Designator<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::Parentheses<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>> const&)>, std::tuple<std::variant<Fortran::evaluate::Constant<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::StructureConstructor, Fortran::evaluate::Designator<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::Parentheses<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>> const&>, std::integer_sequence<unsigned long, 2ul>>::__visit_invoke(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>> const&)::'lambda'(Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5> const&)&&, std::variant<Fortran::evaluate::Constant<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::StructureConstructor, Fortran::evaluate::Designator<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::Parentheses<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>> const&) ConvertExprToHLFIR.cpp:0:0
#10 0x000000000541ff34 hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>> const&) ConvertExprToHLFIR.cpp:0:0
#11 0x000000000541ff68 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<hlfir::EntityWithAttributes (*)(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeType>(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&)::'lambda'(Fortran::evaluate::SomeType const&)&&, std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long, 128>, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)2>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)3>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>> const&)>, std::tuple<std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long, 128>, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)2>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)3>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>> const&>, std::integer_sequence<unsigned long, 9ul>>::__visit_invoke(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeType>(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&)::'lambda'(Fortran::evaluate::SomeType const&)&&, std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long, 128>, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)2>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)3>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>> const&) ConvertExprToHLFIR.cpp:0:0
#12 0x000000000541f868 hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeType>(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&) ConvertExprToHLFIR.cpp:0:0
#13 0x000000000541f8cc Fortran::lower::convertExprToHLFIR(mlir::Location, Fortran::lower::AbstractConverter&, Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&, Fortran::lower::SymMap&, Fortran::lower::StatementContext&) (/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang+0x541f8cc)
#14 0x000000000521b77c (anonymous namespace)::FirConverter::genDataAssignment(Fortran::evaluate::Assignment const&, Fortran::evaluate::ProcedureRef const*)::'lambda'(Fortran::lower::StatementContext&)::operator()(Fortran::lower::StatementContext&) const Bridge.cpp:0:0
#15 0x000000000523f4a8 (anonymous namespace)::FirConverter::genDataAssignment(Fortran::evaluate::Assignment const&, Fortran::evaluate::ProcedureRef const*) Bridge.cpp:0:0
#16 0x0000000005231ea4 (anonymous namespace)::FirConverter::genAssignment(Fortran::evaluate::Assignment const&) Bridge.cpp:0:0
#17 0x000000000524c994 (anonymous namespace)::FirConverter::lowerFunc(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0
#18 0x0000000005232de4 Fortran::lower::LoweringBridge::lower(Fortran::parser::Program const&, Fortran::semantics::SemanticsContext const&) (/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang+0x5232de4)
#19 0x00000000051d79e4 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang+0x51d79e4)
#20 0x00000000050ee2d4 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang+0x50ee2d4)
#21 0x00000000050df408 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang+0x50df408)
#22 0x00000000050f2aa4 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang+0x50f2aa4)
#23 0x00000000050d7be0 fc1_main(llvm::ArrayRef<char const*>, char const*) (/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang+0x50d7be0)
#24 0x00000000050d7638 main (/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang+0x50d7638)
#25 0x000040001c504384 __libc_start_main (/lib64/libc.so.6+0x24384)
#26 0x00000000050d5b04 _start (/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang+0x50d5b04)
flang-20: error: unable to execute command: Aborted (core dumped)
flang-20: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 20.0.0git (https://github.com/llvm/llvm-project.git 8d550aa0f027eb2cf32850f3905dc1db22317587)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin
Build config: +assertions
flang-20: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang-20: note: diagnostic msg: /tmp/snfm0301_027_2-00d2ab
flang-20: note: diagnostic msg: /tmp/snfm0301_027_2-00d2ab.sh
flang-20: note: diagnostic msg:
********************
$
```
```
$ cat /tmp/snfm0301_027_2-00d2ab
#line "./snfm0301_027_2.f90" 1
program main
call test02()
print *,"pass"
end program main
module mod2
type,private:: tt
integer :: ip = 1
end type tt
type,extends(tt):: ty1
integer :: i1 = 1
type(tt) :: i1p = tt(2)
integer,allocatable :: i1a(:)
end type ty1
type(ty1) :: str
end module mod2
subroutine test02()
use mod2
integer,allocatable :: ia(:)
allocate(ia(10))
ia=2
str=ty1(i1a=ia)
if(str%i1.ne.1) print *,'ng'
end subroutine test02
$
```
```
$ cat /tmp/snfm0301_027_2-00d2ab.sh
# Crash reproducer for clang version 20.0.0git (https://github.com/llvm/llvm-project.git 8d550aa0f027eb2cf32850f3905dc1db22317587)
# Driver args: "snfm0301_027_2.f90"
# Original command: "/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang" "-fc1" "-triple" "aarch64-unknown-linux-gnu" "-emit-obj" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-target-cpu" "generic" "-target-feature" "+outline-atomics" "-target-feature" "+v8a" "-target-feature" "+fp-armv8" "-target-feature" "+neon" "-resource-dir" "/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/lib/clang/20" "-mframe-pointer=non-leaf" "-o" "/tmp/snfm0301_027_2-cb3172.o" "-x" "f95-cpp-input" "snfm0301_027_2.f90"
"/work/groups/ssoft/compiler/llvm/aarch64/main-20241216-8d550aa0f027/bin/flang" "-fc1" "-triple" "aarch64-unknown-linux-gnu" "-emit-obj" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-target-cpu" "generic" "-target-feature" "+outline-atomics" "-target-feature" "+v8a" "-target-feature" "+fp-armv8" "-target-feature" "+neon" "-mframe-pointer=non-leaf" "-x" "f95-cpp-input" "snfm0301_027_2-00d2ab"
$
```
```
$ gfortran snfm0301_027_2.f90; ./a.out
pass
$
```
```
$ ifx snfm0301_027_2.f90; ./a.out
pass
$
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsXNty2zjSfhr6BkUVCOpAXfiClq0k9Xs2qdi7c6kCQVDChAT4A6Biv_0WDhQpWScncbwzpZR3hwQaje5Gd6NJ4SNWii05pdfB6CYY3V7hRq-EvBYrLsLir6tM5M_XwRj6P5j-h0rFBAeiAEWJ-RIEcQoQHMABDFCS5KMRxBgWEE1ohkgRo2QEi3gKRzmJ8gyhOJqMkkmApgGap6kkq_EwgGl_hgCmf64oBxgQwZWWDdFCmvmCMcypZGuaA_1c02AMwXemV6adPmnKc2WaApQcIawlW2Ntm7DWkmWNpoApoGpKWMFoDhjfZhigqSHAhFClaB6gmZWsqlmJtbEEldLIR0gj1cDJ_7iioBBlKb4zvgRYUqBXFGiqNKilWEpcGTZzYz9z8aEQUkvMAeY5YMVTn32A5vSJksZOJalqSu0nUbyoYAyjBUSTBRoUUxjEad-WnmsAUz8pqDAztwAQXJZWHoiMvdDUttaScQ0ClAZoFiBUY6UChAKYUp6DHR4BTCuRNyUFlcgNjTM1mrUWjlPjGVpbzgAAxjVdUgl8B6tBEN-CyHYb_ma4J_ec2jVAidZGRM_xOTrEMuqxBMCzcYM7GjevaUxQq3jHK0AzXJaCYI2zknajsDFTnLYDOoG9NO1cz1FvMqWlN962qcziNZkUjWacvlyGRnVGPS7WjlSexAhiuyJo48x1MhzEt5anlSu-tbImRrX41pBbMlaYADIEaMSiAacDq9C2Z0yM2068ai81eRHOW7do6BPHHv-Fqe0yugVo_l3IbwGaL6VoahWguVKi0AGau-gwRpmX5boyPZL4m9C6J5o7PmhesixA83vx3ZLPBF9Tqe-eavkoPt7PP30dkLoO4jSaRCMz66osmHTWveOa6ec_mV6lbaJQIJjcYC74cyUaFUxuHeVHM-imYWVO_dgl5QFKbPoCcx-FtoOucdlsouPBJrdG0lmX6AI0dr4OUqWotGFv8haWlOuZqOpH43aWagwChArMSpPnBJBUS0bXFDham0QEN1fOOVGAJsCRmwzy5f4ufbgzy1cxDTDImiWQtBZSG2YrrWtlXWtuloDpVZMNiKg6m1tr11L8RYlZFKZUQ80quSTGSdnkLu0RidUKZJh80xITauZ-0Jh8A3lT1S5lwYGNQfDF5xgsl01FuVav9gSM3ZaC5sYRQgTRMELROOxvTAGaZ52TgLAgEQi1ZHVJgR8fNvwbF995WDLePIVL3oCQVkyHIvsLhJWkNtCY4GElclqCmhEQ1oyEJV3TEiB3w1RYMwpCjeWS6pDUDVhSTqUh9m0FxcYBQIBuRKNLxmmItagYUftI1gne11zUIZbVOtnXx6ngIJRUiUYSGuZMvolBXZwRH3UIgrAqJK5oWAuTwky-4YKHJcUFCIURQVe1mXgrCYQki6MJGggQPoFiOgpJXYeM143eny1AgGII4BOEEA4hhNFkAlGUQGCFtzGmnpW7-GJSmHW8R-OGAUo6Iom_L4TSkpqNeWy2ZMbdrmGy8o9bq8QmJW7MU7Ls_v4_fwyUGJiKacl0gG7g02g6MkL7DBygONpRCSKY7FPpa8Mf2JLj8iPmeUmlcpvIb5PayNVJjXaljscQbMlnthtnV9esfPaF9n-OS9zjAgkdwQm2NZ0LxHWuhBEksiJMcM9ow_70ZBSN0WQIJGaKenuULLM6liwjhsfY8ogNXcdltM0FQowIwJnJise4IEPXcRnvcCkyDMFigW1GX5gcvMjwCcGQGdSxnOyyJFHSsaxtEWo5n2BKot6SJZ6p_TcajuPRlJjxmz0OcFxRVdt4mR7f7V65z7ni3u124OC-3PeM6a6w4ygBSudujsUipxqzsr1bY8kw1-3tkvLF2hZPC1bVZRDPzhz5R1NqtsBS4ucgnp2sD4ztbT2GkjNoX2_neHbMzqKi_8d4HsSz3QUhoqqEvzYVxAxruhTyOUDTURDfmb-jS2iW5g0n73uDowvQpMRVlmNTaR73rh-eeGtWW1GZ1L9xjI0jHFPbuvRJqp9cmdmxKjI1vtmvIN9Nkv317NEht1SZreBdxZ43nJha7ist3k-IL7ZoX1FF1VsKsRtqd1ser5u6pP3ceAmBSwj8k0Ngx__925aFov_fUE5MKDTcvh_NQSncyzrUlC0jXy8wxfSC8bX4Ri_b_mXbv-S8S877X8555zxvBSiO4PbzVlQU8fD0C9JLdtub3c4zefTC5OPLI-6LBTHW_kVr61n97D5k38n_gl3F3PjLT_6Hn3gWGYPPgJYNNf-Nkfn_TVliX6j17tsyxYw6mX3-1ZTlF_-C9kSekoLQvJG0l7nPHGHy63HSt4pDeFYKfqvZo3edHb3r7PG7zj5819nf8lH7kiAuCeKSIP6BCeIHXkRM_ydfRFyKs0vuveTeS-79G-Xec5_O0e7TeTJO3umFyNtm2fPMEb8wByHbS1raY3d-SXY5BiipytZ09_441Quv6LFIM6UlJtoLR6XP4m9ggcNCPDxXf-D6FJHGmlb2vB7X9Km16k8eyznjLJs7mOOWwp3yMAs13FooFGWTyclTHnMmOzu3fnmLNU7teXGj3HHn6-gO2_XwntSOSc_a80-a3vWJmkq3Nybu9dUr18-d57yRLF_SPfEw2jZzXAxx8jcy82HFxjuKRRQPf0ixn1LqiICTbQGHZDr9AQGtA8wbTo54Rl34l6btjwf37Bv9N2cnRUx2bIhyOjyYP-xxZcaXjlu_e0eyGkvVDmrPzh50A0UrzDUj_vDgQ3vrnXzL1L8rVTlDdKlq-4xXlE-mu2YqpBGX-8J9JnL6gfLUroVryuiS8Qd72nXOSuq7fsnByLPVcoJv1ELbP6VASlF-VK25vzui164r7NrFqfLJ_kpp3P6lP-yf8hOvG20meBd_cKbpDLf9gwjMiyFMjvvDjt4uu1gATecK51v-N2tv9eu03y44YYEwPuo2Xs_OCOtNWfU6Z0l_q9ZWr07reGfNJxmFoCDRwkE7ese27U_g7udbssKy283c48V2229dRyNzp9FwV6NxnFgc1e-UaBz3PGv3mPMwToZgsShZRhZKY6kXPfEOHCU2YzqO4x0dRxkcAsfrN2ppZnUy2eYQmT3YIfTMRcMtfEoL4EMFmEdFbAMBpJmQmubAIncktfAUmh_h5uAjbSy1rDzEBuSNnci-kLGHshtFQbi2bZQC1gvOzQxg7dGVDlC5ZNZ2r8PiDMyo1-AwYfpoUSNGpYPwFwtqlBRbKBstDW0tFHsKYGrTRlnS_NY-zb0ZXgem9jnZRHTBPEbsBrcgKbWzSlzYahLkDC-5UJoRUCkzyvrrT_xZRJsHT6WPj-nsI3j8eAfmn-_vP__56V8fwPzT_d0DePxsm2_-_QF8vfvy-eujm_qLpLUpwJWiOXCYnAAlymQn4ztYKUEYNm4oGw4UkazWGwJJgQP45QBrx-8slQ_CbSDMEc5-EZuBWr1mDX5-GdAe5PAu1JBgfVr7AMUl4xQECA1ekFmoEUIdrHQXCesa9yNqHfkBVK3r3o-t3UGMgh6g9SDC9ijEtp2qB7Pt8zyJtT0Gtn0V0PaVSNttuXvyHEHcdqNe4G5d1zH0rfnXR-CeIfO2yEdRuJZZh8S1whxG4zry4hWI3E71vbjcXxMyLtIDFIOZxXbanJY3hEpQCAnIO25lRqhbydZUAiyXHj-K9ka0p_4s2ZKZLbpXCliw7BsXLMjMEhYkai8dAtXfHd6IPXWLRm3vX2BSfUfNSEuywaf6BtTvcFjVjSwbxKpv8bjVnX6PM_WtLzGsp8jXCT5F0mJbT9FxaiopR9NHu24o3h7zulmKQ8jXlkB0Qh1Fwbb0T_5iCxHr2w659sWH_94-fNKJzneKttBBZ28By_aDJPu-MXIDTJGEB6KxVYStZ87ky4qnn2J5lV_H-TSe4it6HU3i4RROx5P4anWdTXNKI4ILgsgwi4tRhIdZTJNpkUcwn6Ardu0cGiEUoyiKBwTCfEpynGfTKEryLBhCWmFWDkw4DIRcXtkvGlxHCE4RuipxRktlP5KDUOv9wej2Sl7bHStrlioYwpIprToWmunSflnHfepldAtmLz4c833vt276369xH6_xFZrZRV92-pLwyDdtNgXe9KqR5fWPf9_BG2R9jf4bAAD__2XnEE4">