<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/122008>122008</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] CHECK(rightIter != rightArrConst.end()) failed at flang/lib/Evaluate/fold-implementation.h(1481)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
yype
</td>
</tr>
</table>
<pre>
Hi there, flang crashes from an assertion failure on the following test case:
```fortran
subroutine s()
real(16), parameter :: a(128:0) = SUM([1])
integer(8) :: e1
y = x * y
y = b + (s * ((SUM([1]) + cmplx([sinh(a)]) + 3.14) ** (nint(a, 1)))) + 3.14
end
```
Tested version(s): 19.1.0, trunk (ASAN + Assertions).
I can stably reproduce this locally with 19.1.0, trunk, but cannot reproduce it on Compiler Explorer.
Build command:
```
export ASAN_OPTIONS=detect_leaks=0,abort_on_error=1,symbolize=0
CC=clang-14 CXX=clang++-14 cmake \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALLDIR \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DLLVM_USE_SANITIZER=Address \
-DFLANG_ENABLE_WERROR=ON \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DLLVM_TARGETS_TO_BUILD=host \
-DLLVM_LIT_ARGS=-v \
-DLLVM_ENABLE_PROJECTS="clang;mlir;flang;openmp" \
-DLLVM_ENABLE_RUNTIMES="compiler-rt" \
../llvm
CC=clang-14 CXX=clang++-14 ninja
```
Stack dump from trunk:
<details>
<summary>Click me</summary>
```
fatal internal error: CHECK(rightIter != rightArrConst.end()) failed at /repo/llvm-project-250107-trunk/flang/lib/Evaluate/fold-implementation.h(1481)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: <path>/bin/flang -fc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu x86-64 -resource-dir <path>/lib/clang/20 -mframe-pointer=all -o /tmp/asan_crash4-70c95e.o -x f95-cpp-input /tmp/asan_crash4.f90
#0 0x000055a6ca50884b backtrace (<path>/bin/flang+0x2e6884b)
#1 0x000055a6cb6b891d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /repo/llvm-project-250107-trunk/llvm/lib/Support/Unix/Signals.inc:727:8
#2 0x000055a6cb6b0e37 llvm::sys::RunSignalHandlers() /repo/llvm-project-250107-trunk/llvm/lib/Support/Signals.cpp:0:5
#3 0x000055a6cb6ba5e4 SignalHandler(int) /repo/llvm-project-250107-trunk/llvm/lib/Support/Unix/Signals.inc:0:3
#4 0x00007f5f05325520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#5 0x00007f5f053799fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#6 0x00007f5f053799fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#7 0x00007f5f053799fc pthread_kill ./nptl/pthread_kill.c:89:10
#8 0x00007f5f05325476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#9 0x00007f5f0530b7f3 abort ./stdlib/abort.c:81:7
#10 0x000055a6d33a039a Fortran::common::die(char const*, ...) /repo/llvm-project-250107-trunk/flang/lib/Common/idioms.cpp:19:42
#11 0x000055a6d075e8b8 __do_visit<void, (lambda at /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/variant:427:24), std::variant<Fortran::evaluate::Parentheses<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::Negate<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::Add<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::Subtract<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::Multiply<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::Divide<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::Power<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::Extremum<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8>, Fortran::common::TypeCategory::Integer>, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8>, Fortran::common::TypeCategory::Real>, Fortran::evaluate::Convert<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8>, Fortran::common::TypeCategory::Unsigned>, Fortran::evaluate::ImpliedDoIndex, Fortran::evaluate::TypeParamInquiry, Fortran::evaluate::DescriptorInquiry, Fortran::evaluate::Constant<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::Designator<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> > > &> /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/variant:1760:34
#12 0x000055a6d075e8b8 _M_reset /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/variant:427:2
#13 0x000055a6d075e8b8 ~_Variant_storage /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/variant:436:9
#14 0x000055a6d075e8b8 ~Expr /repo/llvm-project-250107-trunk/flang/include/flang/Evaluate/expression.h:619:1
#15 0x000055a6d075e8b8 _M_destroy /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/optional:260:23
#16 0x000055a6d075e8b8 _M_reset /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/optional:280:4
#17 0x000055a6d075e8b8 ~_Optional_payload /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/optional:401:57
#18 0x000055a6d075e8b8 ~_Optional_base /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/optional:472:12
#19 0x000055a6d075e8b8 _Destroy<std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> > > > /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:151:19
#20 0x000055a6d075e8b8 __destroy<std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> > > *> /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:163:6
#21 0x000055a6d075e8b8 _Destroy<std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> > > *> /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:195:7
#22 0x000055a6d075e8b8 _Destroy<std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> > > *, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> > > > /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:848:7
#23 0x000055a6d075e8b8 ~vector /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:680:2
#24 0x000055a6d075e8b8 _M_destroy /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/optional:260:23
#25 0x000055a6d075e8b8 _M_reset /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/optional:280:4
#26 0x000055a6d075e8b8 ~_Optional_payload /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/optional:401:57
#27 0x000055a6d075e8b8 ~_Optional_base /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/optional:472:12
#28 0x000055a6d075e8b8 bool Fortran::evaluate::ShapesMatch<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>, Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 1>>(Fortran::evaluate::FoldingContext&, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>> const&, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 1>> const&) /repo/llvm-project-250107-trunk/flang/lib/Evaluate/fold-implementation.h:1493:3
#29 0x000055a6d075a9bc bool std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>> Fortran::evaluate::MapOperation<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>, Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>, Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>(Fortran::evaluate::FoldingContext&, std::function<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>> (Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>&&, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>&&)>&&, std::vector<std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 8>>>, std::allocator<std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 8>>>>> const&, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 8>>>&&, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>&&, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>&&)::'lambda'(Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>&&)::operator()<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 1>>>(Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>&&) const /repo/llvm-project-250107-trunk/flang/lib/Evaluate/fold-implementation.h:0:16
#30 0x000055a6d075692f visit<(lambda at /repo/llvm-project-250107-trunk/flang/lib/Evaluate/fold-implementation.h:1508:9), std::variant<Fortran::evaluate::Expr<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 1> >, Fortran::evaluate::Expr<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 2> >, Fortran::evaluate::Expr<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 4> >, Fortran::evaluate::Expr<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 8> >, Fortran::evaluate::Expr<Fortran::evaluate::Type<Fortran::common::TypeCategory::Integer, 16> > > > /repo/llvm-project-250107-trunk/flang/include/flang/Common/visit.h:0:12
#31 0x000055a6d075692f std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>> Fortran::evaluate::MapOperation<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>, Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>, Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>(Fortran::evaluate::FoldingContext&, std::function<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>> (Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>&&, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>&&)>&&, std::vector<std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 8>>>, std::allocator<std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 8>>>>> const&, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 8>>>&&, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>&&, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>&&) /repo/llvm-project-250107-trunk/flang/lib/Evaluate/fold-implementation.h:1507:17
#32 0x000055a6d0754043 std::optional<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>> Fortran::evaluate::ApplyElementwise<Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>, Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>, Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>, Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>(Fortran::evaluate::FoldingContext&, Fortran::evaluate::Operation<Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>, Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>, Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>, Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>&, std::function<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>> (Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>&&, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>&&)>&&) /repo/llvm-project-250107-trunk/flang/lib/Evaluate/fold-implementation.h:1658:24
#33 0x000055a6d07534a5 ~_Function_base /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:243:11
#34 0x000055a6d07534a5 ApplyElementwise<Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 4> >, Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 4>, Fortran::evaluate::Type<Fortran::common::TypeCategory::Complex, 4>, Fortran::evaluate::SomeKind<Fortran::common::TypeCategory::Integer> > /repo/llvm-project-250107-trunk/flang/lib/Evaluate/fold-implementation.h:1691:3
#35 0x000055a6d07534a5 Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>> Fortran::evaluate::FoldOperation<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>(Fortran::evaluate::FoldingContext&, Fortran::evaluate::RealToIntPower<Fortran::evaluate::Type<(Fortran::common::TypeCategory)3, 4>>&&) /repo/llvm-project-250107-trunk/flang/lib/Evaluate/fold-implementation.h:2141:18
... manually truncated
#96 0x000055a6cee011be ~map /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_map.h:302:22
#97 0x000055a6cee011be ~ExpressionAnalyzer /repo/llvm-project-250107-trunk/flang/include/flang/Semantics/expression.h:102:7
#98 0x000055a6cee011be ~ExprChecker /repo/llvm-project-250107-trunk/flang/include/flang/Semantics/expression.h:450:7
#99 0x000055a6cee011be PerformStatementSemantics /repo/llvm-project-250107-trunk/flang/lib/Semantics/semantics.cpp:212:3
#100 0x000055a6cee011be Fortran::semantics::Semantics::Perform() /repo/llvm-project-250107-trunk/flang/lib/Semantics/semantics.cpp:648:7
#101 0x000055a6cb75df0b Fortran::frontend::FrontendAction::runSemanticChecks() /repo/llvm-project-250107-trunk/flang/lib/Frontend/FrontendAction.cpp:0:13
#102 0x000055a6ccd18185 Fortran::frontend::CodeGenAction::beginSourceFileAction() /repo/llvm-project-250107-trunk/flang/lib/Frontend/FrontendActions.cpp:287:34
#103 0x000055a6cb75c21c Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) /repo/llvm-project-250107-trunk/flang/lib/Frontend/FrontendAction.cpp:0:8
#104 0x000055a6cb70d5df Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) /repo/llvm-project-250107-trunk/flang/lib/Frontend/CompilerInstance.cpp:172:9
#105 0x000055a6cb7687b7 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) /repo/llvm-project-250107-trunk/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:222:25
#106 0x000055a6ca5889ed fc1_main(llvm::ArrayRef<char const*>, char const*) /repo/llvm-project-250107-trunk/flang/tools/flang-driver/fc1_main.cpp:91:13
#107 0x000055a6ca583dc2 executeFC1Tool /repo/llvm-project-250107-trunk/flang/tools/flang-driver/driver.cpp:66:12
#108 0x000055a6ca583dc2 main /repo/llvm-project-250107-trunk/flang/tools/flang-driver/driver.cpp:110:14
#109 0x00007f5f0530cd90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#110 0x00007f5f0530ce40 call_init ./csu/../csu/libc-start.c:128:20
#111 0x00007f5f0530ce40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#112 0x000055a6ca4ce945 _start (<path>/bin/flang+0x2e2e945)
flang-20: error: unable to execute command: Aborted
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 ac604b2fa6ff0344a555954069721c0db7b874f9)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: <path>/bin
Build config: +assertions, +asan
```
</details>
The test case was generated by a fuzzer.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsXN-Tm7iT_2s0LypcQoAND_PAYDvr28nMlO18L3cvlADZ1gYQJ4nJeB_2b7-SAP-KM7-S8ThbqZrdAG61PupudbeEaCIlW5aUXgLvCnjDC1KrFReX63VFLxKerS__YFCtqKAAR3CRk3IJU0Hkikq4ELyApIRESioU4yVcEJbXgkJe6jZwwfOcf2XlEioqFUyJpMAJATJ_fdT8LbhQgpQAhbJOBK8VKymUAPsABwCFEApKcoB9u68f4AhWRJCCKiqgZuaEkOhfsQ-cEAEcQOAM4ezTR83Bu7KBN-wYsVLRJRUA-35DZ1pT2_y4Nu0eIMAhXO88SSDAVxBgX5qfDC7_kL2hSYsqf2geS1auAPaJ7nlL4PRst7kOW1YlK1VDF0HbDK_929KjkJbZrrwa8c2pVDSD91RIxksNTzd0QmgHPbuHNEMl6vKL7iWchTeGYdgpShP3GkYTmJISSkWSfA0FrQTP6pRCtWIS5jwleb6GX5laHTLWF0mtlVqWXO20ZEqrP-JFxXIq4Oihyrmgou0OoPCqZnkGU14UpMy-tQc94oeKCwU17vj2bj65vZkBZ5hRRVMV55R8kcAZaigk4ULFvIypEFwAZ2gDHMl1kfCc_U0NEQqjCDjDVFuuZbsw-vy5uwX4CuAr_TAtyBcKgRcZxVsf4A0r_yLbB8PoY_jnKL76NLkexvP_uRsBZzilOSVy06qjmdzM5uH1dXw3HY0nuiuA3fbZcDL9hmX0-XM8m4c3w3A61PgHh_xGn-9up_M4uv14N7ke6X8_hjdDLY_bmx1u19f_-Rh_mo3iWXgzmU_-dzQFzjDMMkGl3LIcX4c3H-LRTXh1PYr_ezSd3k6PMmopwtlsNO3Ev6Vqiebh9MNoPovnt41ggDNccakOeV1P5nE4_aBZWPcHLNp-7qa3_zWK5jMjLdzoxrkqciaAc7Vob3lFy6ICGB_nMf10M598HHU8WvOzhNppAXs9gMd5fl-Yu-fZRqlN4dsJOFMk_QKzuqgaP9hMio01O1FGFWG5BM6ouZd1URCxBs4oyln6BRYUOBHA4-3zbycCQOGCKJIb1yVKksPW0EMY_TGK_gTYF2y5UhPjDbGtHZZ5EAoR8VKqnnYejSvFgXHPNINEQYDHgla8lYZVCf4XTZWFPWSjgdVO8HEjejzOWQLweHRP8pooqn_geWaxosppQUtFtEvpaYdnu77deNu761E4G0FZJwVTkMCkXmofoae14nClVCW1sPAY4PGSqVWd9FJedNrZhwXwmElZUwnwGJIyg6xM8zqjJsaYYAQTkn5RgqS0t6eaRh-oB1BwJ_hSkAISsaw1aN09BE5UEbXSssfjhJXdmKG1SG1oKcGqnMIHvx_3Xasuv5T8a2nlrKwfrGVZQ4sWTFk8-QtahaDaW2pJWAXPaA4rlkKrYqmV03uaQ9zcMGlVjEJLEbGkykqrWrO3-i60BJW8Fim1Mib2kTXyb-1yjBG0ioWOgVbFjWEAZ0jyHFpc61XpSTImkpSxkY1rDVAaeLTHofUAF4FnpVVlsbKq1VHy3iLQpgcBdhBEDwgh5HmknxIP-b6bbEVtYuF3BAjwFXrAtK9btOEXYMfe5Zf0Ez-wM2gUbkKxXMvm4k6wUhktznVHAPtbIkG-xlwqQUkBcF9HIRNDg2eadGdeRqKzutIWCfD4U8ke9AO2LEkue6xMgRMO8AA4od-CxwfgEXUGx8BP67Jh8wcps5yKNpX5MXwdsLSqTJrjhF4LyzmARTzqwj0AAPtvJiKNxGmRuC2SwcJbIM_BnodRky-1vNp5tJk_zQ9pT_Je3xiMiz2Mtubi7TMcBMEihXFcqZWgJIu_sDyP950Q1P69rFQO8HiXrKexuq7Wab9l3n8O887rPsZ2oBNPu5syg2Nsd9s8yssPdnn5hwJ1B324lEYBhk1zCfDYxDW5lhmttJOsuDS6EoRJahgbS-6GHuzzRclg4UCTSjVcVdboyzxqcNl6oDogYcfe9QqZ4xDkBASO2yzeTAGd2_H2OmN6_qYrImCqI5JJfiPY05Cfa5H7cShquOMxyxgvujlha9G5uMW462kyNPCon_gwjjMe3zPJFHCie84yDUQ7F1IkGWnDYi3FxpU16YLpdJmmxy3YtjvCg_-1QUo77iaZ6IjviWCkVAauVgt224WNVFkjsw1FtCdW2gXgxkkSQUu1opLKxwnn64oeUuxqSP8eEUWXXGch-smkWyhF0AfOCBr3HsFH-rihS3P93jjCLHt_ELM60QHyCf2dAsnHOlesytfvj2TI7ll2BgZyx7_qfOm9YYwelKBFXbw_koiX91S8ta1-A-J5rX9N9FNK8l8U-qfS7AZmT8OfFFXOaDbkkzKjD08Q647uiCDFpPy_mon1U86CylSwSnHxPHqz1H0yYJ4k_ghB1gaOqFPFz8DTDKnJEs8Cy7guU52mT-niBGCa_3C_-eekiZ096JuVkdumo_hoOvoxFlTS98o6W2jOMWj_xP9pyGOpuCBLenKMTh84YdBidI9iHD1U4oULiG3P3ZOdTS36UAkqZbOX5YR9s6KwWwjedzSYUakEX59GPrzSs0cHlxAbA8NOC6___ga2C87X4DrjHxy3sNuWPq7IOuckOzlKF-lVrdcta_0nYCZms__UGAdYG2E3WYOjah42NgicaLOC3LJ4zM3qGXQyR3wqL5wwJc0uRh6nXSA2E9r27GafwMgSo-9sEfwSwsThGciz77SbSlqcx3dcfg3TPAtpBt52jw0fTxh-GWnubmadIcITK5vkOU9jJQhT0ujad_0dXR_PwO6pXj-c3CibbpsEyETxNvTgoznY2SRA-Hv52RkkQPhocnZ2CRB-Kk87gwQIH03SEs7zR_djV6Si8iNR6epZLgZg_3leBgeOdi7u0yvfl3NGzZkgZ2SY-4-tqnmesXIZ8VLRB9W-FP3ZexSvkokz6t75vDemXWnuYHrdC6gnD0I4oe0GTvtqVJvtYd5OgiRtzPatwuQr9aXF89j7BFLdVlSYcf46U-m5nGe8oH-yMnupab12jm50v2j3xd5X9_DxIby56WmhPOUnngbxg0psMAR7eLbvZWnrm85g1qLNDn-LfAenSTjJ2UL9NjKcIcifY43_qimhiQAeNMclAB487i9-yE_v9clNyOGiPcj4PqZh75jGWw-7mRtvlZsgs3fTZCbO4S5YP8AL2J2ROTwb8yaZkod8s9X_mjMwb7xrYD_3Zf6bosBngcI9CxTPPl7xtnbRP7Kd9EOvoTZn2szU207Tdt3rHO6umml6BlHz99rh99rh99rh99rhZFB_rx1-xSnxhsnjwBy3acPk4WszF7nOORjIC8JkWFX5etQM9CuTTxyZnVKSz_mkVM8_1_pqe3qnyPrvidmP0D8zM_qt7vdT9--067xjzEniTd_zmy92mnhz-OrecYkH_4m7c64nfGW6eYWfxZ1pGsTYdTTu9hijc_gW3wB-85DzglV2xLXUH16w4_DDfbwz_x3rf8VuxKv2H15g74G9fY3pHB6yMNbznu7viQh8gv2Gn50InDLCv7GzxLZrDlz6AIW9Xg8WpKxNORHNMSWKZo1ZBbvnY1JKkW0nFP5TkOrkp58KUhnoDsJ6AO3uWzA4CnC0OS8eliRf_01__DT6jBakVCyV3x5Htw2kdqET-N9FFK1o-uVtobge2oESHINyR8WCi2KmiDJWseH2KmPbxSK76_a7X2zjrYeyETqGZm96bBi07nf_tgX-om_2nw-2v3vwz0b79RAGXrZAyT7YhdCOo2yTznF7F7app34m6rLr0aj-ZeUG9qF3_Hcum6526g7YG1HvFURIM9u3fe8x9BHP6Ada7oJP6JKVM1P1Ysxy2v70BgPYWIs_2P0uBzkHGkixnb5UAweDOHTHh0JoCtNMzBdrKT0WEY53OSmrWukOfvj80nPU7HcScvclhDIvWzyu5YMBNoHrgaa12ir4-SL-KcM8BNXVDDCHC7uvjJC3P9S-P0gGjw21HdSW-X1bAealJhD-6BDnnOc6KH8PUGf92IQ1rxtwf7--i-8HNIOL1I4LouPtTtUVcz6v-Wxvv5RDk94elHd46WAU57ns7q1MsHuqg36HpEVvUtGt-xkcgHeyFMNWJePI1iL5OTCai86D93e_x0H-MRAa8xt0bdvG_25812EZjzQLEIzjnCVpLBURKk5JnhsJmroeqay_LRXSViI51sjEerPe7U4L2JvaH5s-qYugacFKpg67aS41b8vwNrVEmkp9GHUs7WMs94ZxbARHWTuDoK2MYzjvBSjipjRwPdjwfEbtIqzJm2I0jVYwMuUCuwJcdUmSnELFO6PbKWkHw4SLJsE92rYpMtW5ha5hV58rqw3bttALwH4tKbTuzTNKIdvxMxt0XSVAiFEP9dCSmSG-rM5WT7ciaR-5CV6Q_mKBHNclnucFnov6wQDbKcqSQeIP3EXQ9D03Zaz0kL5XJEsTmSo30JTF0qRNeRoUGgeY5zQbMnG0Gte2VmC5YEtDgq_IThHDqHlgqkfu1U0zldX2K7BpHHRbiBJ-JRIuaalXiDSDyRoSuKj__puK3kV26WSBE5ALemkPnD4O7IHnXawuU3sxIJhmfex5C4Swl_VT3_UD3x3YPnGyC3aJUTPDsWN7ntfzXSdBFPcXfd8nXkaBi2hBWN7Tcu9xsbwwlc0ubYwR8i9yktBcmlKcGLfGiIE3vBCXRlFJvZTARTmTSm5ZKKZyU7-zaeENf7A43GvLvl3UIr98fWm3Vgb3l_j_AwAA__9G6YkU">