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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] SEGV mlir/lib/IR/AsmPrinter.cpp
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir
      </td>
    </tr>

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

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

<pre>
    PoC:
```
#map = affine_map<(d0)[s0, s1] -> (s1, -d0 + s0)>
#map1 = affine_map<(d0, d1, d2) -> (d0, d1, d2)>
#map2 = affine_map<(d0, d1, d2) -> (d0, d1)>
#map3 = affine_map<(d0, d1) -> (d0, d1)>
#map4 = affine_map<(d0, d1) -> (d0)>
module {
  func.func @B_multi_slice_fusion_with_broadcast(%arg0: tensor<?x?x?xf32>, %arg1: tensor<?x?xf32>, %arg2: tensor<?xf32>, %arg3: index, %arg4: index) -> tensor<?x?xf32> {
    %c0 = arith.constant 0 : index
    %c1 = arith.constant 1 : index
    %c2 = arith.constant 2 : index
    %dim = tensor.dim %arg0, %c0 : tensor<?x?x?xf32>
    %dim_0 = tensor.dim %arg0, %c1 : tensor<?x?x?xf32>
    %dim_1 = tensor.dim %arg0, %c2 : tensor<?x?x?xf32>
    %0:2 = scf.forall (%arg5, %arg6) = (%c0, %c0) to (%dim, %dim_0) step (%arg3, %arg4) shared_outs(%arg7 = %arg1, %arg8 = %arg2) -> (tensor<?x?xf32>, tensor<?xf32>) {
      %3 = affine.min #map(%arg5)[%dim, %arg3]
      %4 = affine.min #map(%arg6)[%dim_0, %arg4]
 %extracted_slice = tensor.extract_slice %arg0[%arg5, %arg6, 0] [%3, %4, %dim_1] [1, 1, 1] : tensor<?x?x?xf32> to tensor<?x?x?xf32>
 %extracted_slice_2 = tensor.extract_slice %arg7[%arg5, %arg6] [%3, %4] [1, 1] : tensor<?x?xf32> to tensor<?x?xf32>
      %5 = linalg.generic {indexing_maps = [#map1, #map2], iterator_types = ["parallel", "parallel", "reduction"]} ins(%extracted_slice : tensor<?x?x?xf32>) outs(%extracted_slice_2 : tensor<?x?xf32>) {
      ^bb0(%in: f32, %out: f32):
        %7 = arith.mulf %in, %out : f32
        linalg.yield %7 : f32
      } -> tensor<?x?xf32>
      %extracted_slice_3 = tensor.extract_slice %arg8[%arg5] [%3] [1] : tensor<?xf32> to tensor<?xf32>
 %6 = linalg.generic {indexing_maps = [#map3, #map4], iterator_types = ["parallel", "reduction"]} ins(%5 : tensor<?x?xf32>) outs(%extracted_slice_3 : tensor<?xf32>) {
      ^bb0(%in: f32, %out: f32):
        %7 = arith.addf %in, %out : f32
        linalg.yield %7 : f32
      } -> tensor<?xf32>
      scf.forall.in_parallel {
 tensor.parallel_insert_slice %6 into %arg8[%arg5] [%3] [1] : tensor<?xf32> into tensor<?xf32>
      }
    }
    %1 = tensor.empty(%dim, %dim_0) : tensor<?x?xf32>
    %2 = linalg.generic {indexing_maps = [#map3, #map4, #map3], iterator_types = ["parallel", "parallel"]} ins(%0#0, %0#1 : tensor<?x?xf32>, tensor<?xf32>) outs(%1 : tensor<?x?xf32>) {
    ^bb0(%in: f32, %in_2: f32, %out: f32):
      %3 = arith.addf %in, %in_2 : f32
 linalg.yield %3 : f32
    } -> tensor<?x?xf32>
    return %2 : tensor<?x?xf32>
  }
}
```

reproduce: `mlir-opt ./test.mlir -test-linalg-data-layout-propagation`

stderr:
```
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior llvm-project/mlir/lib/IR/AsmPrinter.cpp:3157:22 in 
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0.      Program arguments: llvm-mlir-build/bin/mlir-opt test.mlir -test-linalg-data-layout-propagation -split-input-file
 #0 0x00005e610077069b backtrace (llvm-mlir-build/bin/mlir-opt+0x83bd69b)
 #1 0x00005e610083dad7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) llvm-project/llvm/lib/Support/Unix/Signals.inc:838:8
 #2 0x00005e6100837dbf llvm::sys::RunSignalHandlers() llvm-project/llvm/lib/Support/Signals.cpp:105:18
 #3 0x00005e6100840e16 SignalHandler(int, siginfo_t*, void*) llvm-project/llvm/lib/Support/Unix/Signals.inc:426:38
 #4 0x00007ae4c52a5520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007ae4c52f99fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x00007ae4c52f99fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #7 0x00007ae4c52f99fc pthread_kill ./nptl/pthread_kill.c:89:10
 #8 0x00007ae4c52a5476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x00007ae4c528b7f3 abort ./stdlib/abort.c:81:7
#10 0x00005e61007dbd07 (llvm-mlir-build/bin/mlir-opt+0x8428d07)
#11 0x00005e61007d9ba1 (llvm-mlir-build/bin/mlir-opt+0x8426ba1)
#12 0x00005e61007ed8ec __ubsan::ScopedReport::~ScopedReport() (llvm-mlir-build/bin/mlir-opt+0x843a8ec)
#13 0x00005e61007ef12b handleNegateOverflowImpl(__ubsan::OverflowData*, unsigned long, __ubsan::ReportOptions) ubsan_handlers.cpp.o:0:0
#14 0x00005e61007ef16e __ubsan_handle_negate_overflow_abort (llvm-mlir-build/bin/mlir-opt+0x843c16e)
#15 0x00005e611366ba08 mlir::AsmPrinter::Impl::printAffineExprInternal(mlir::AffineExpr, mlir::AsmPrinter::Impl::BindingStrength, llvm::function_ref<void (unsigned int, bool)>) llvm-project/mlir/lib/IR/AsmPrinter.cpp:3094:10
#16 0x00005e611366c0d0 void llvm::interleave<mlir::AffineExpr const*, mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap)::$_56, void llvm::interleave<llvm::ArrayRef<mlir::AffineExpr>, mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap)::$_56, llvm::raw_ostream, mlir::AffineExpr const>(llvm::ArrayRef<mlir::AffineExpr> const&, llvm::raw_ostream&, mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap)::$_56, llvm::StringRef const&)::'lambda'(), void>(llvm::ArrayRef<mlir::AffineExpr>, llvm::ArrayRef<mlir::AffineExpr>, mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap)::$_56, llvm::raw_ostream) llvm-project/llvm/include/llvm/ADT/STLExtras.h:2200:3
#17 0x00005e611366c0d0 void llvm::interleave<llvm::ArrayRef<mlir::AffineExpr>, mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap)::$_56, llvm::raw_ostream, mlir::AffineExpr const>(llvm::ArrayRef<mlir::AffineExpr> const&, llvm::raw_ostream&, mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap)::$_56, llvm::StringRef const&) llvm-project/llvm/include/llvm/ADT/STLExtras.h:2221:3
#18 0x00005e611366c0d0 void llvm::interleaveComma<llvm::ArrayRef<mlir::AffineExpr>, mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap)::$_56, llvm::raw_ostream, mlir::AffineExpr const>(llvm::ArrayRef<mlir::AffineExpr> const&, llvm::raw_ostream&, mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap)::$_56) llvm-project/llvm/include/llvm/ADT/STLExtras.h:2235:3
#19 0x00005e611366c0d0 void mlir::AsmPrinter::Impl::interleaveComma<llvm::ArrayRef<mlir::AffineExpr>, mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap)::$_56>(llvm::ArrayRef<mlir::AffineExpr> const&, mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap)::$_56) const llvm-project/mlir/lib/IR/AsmPrinter.cpp:423:5
#20 0x00005e611366c0d0 mlir::AsmPrinter::Impl::printAffineMap(mlir::AffineMap) llvm-project/mlir/lib/IR/AsmPrinter.cpp:3199:3
#21 0x00005e61136626a5 mlir::AffineMap::print(llvm::raw_ostream&) const llvm-project/mlir/lib/IR/AsmPrinter.cpp:0:41
#22 0x00005e611365fdad mlir::AsmPrinter::Impl::printAttributeImpl(mlir::Attribute, mlir::AsmPrinter::Impl::AttrTypeElision) llvm-project/mlir/lib/IR/AsmPrinter.cpp:0:30
#23 0x00005e611368fdc6 (anonymous namespace)::AliasState::printAliases(mlir::AsmPrinter::Impl&, (anonymous namespace)::NewLineCounter&, bool) llvm-project/mlir/lib/IR/AsmPrinter.cpp:0:11
#24 0x00005e611366e6cb (anonymous namespace)::OperationPrinter::printTopLevelOperation(mlir::Operation*) llvm-project/mlir/lib/IR/AsmPrinter.cpp:3444:3
#25 0x00005e611366e6cb mlir::Operation::print(llvm::raw_ostream&, mlir::AsmState&) llvm-project/mlir/lib/IR/AsmPrinter.cpp:4128:13
#26 0x00005e61009f9fd1 mlir::operator<<(llvm::raw_ostream&, mlir::OpWithState const&) llvm-project/mlir/include/mlir/IR/Operation.h:1147:3
#27 0x00005e61009f8b6f performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:595:41
#28 0x00005e61009f7517 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, mlir::SourceMgrDiagnosticVerifierHandler*, llvm::ThreadPoolInterface*) llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:644:12
#29 0x00005e61009f7517 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_3::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef, llvm::raw_ostream&) const llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:733:12
#30 0x00005e61009f7517 llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_3>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&) llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#31 0x00005e61139bba64 std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>::~unique_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:360:6
#32 0x00005e61139bba64 llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&) const llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#33 0x00005e61139bc526 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0::operator()(llvm::StringRef) const llvm-project/mlir/lib/Support/ToolUtilities.cpp:94:13
#34 0x00005e61139bb447 void llvm::interleave<llvm::StringRef const*, mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, void llvm::interleave<llvm::SmallVector<llvm::StringRef, 8u>, mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::raw_ostream, llvm::StringRef>(llvm::SmallVector<llvm::StringRef, 8u> const&, llvm::raw_ostream&, mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::StringRef const&)::'lambda'(), void>(llvm::SmallVector<llvm::StringRef, 8u>, llvm::SmallVector<llvm::StringRef, 8u>, mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::raw_ostream) llvm-project/llvm/include/llvm/ADT/STLExtras.h:2201:24
#35 0x00005e61139bb447 void llvm::interleave<llvm::SmallVector<llvm::StringRef, 8u>, mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::raw_ostream, llvm::StringRef>(llvm::SmallVector<llvm::StringRef, 8u> const&, llvm::raw_ostream&, mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::StringRef const&) llvm-project/llvm/include/llvm/ADT/STLExtras.h:2221:3
#36 0x00005e61139bb447 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) llvm-project/mlir/lib/Support/ToolUtilities.cpp:97:3
#37 0x00005e61009dc432 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:26
#38 0x00005e61009dce6e llvm::LogicalResult::failed() const llvm-project/llvm/include/llvm/Support/LogicalResult.h:43:43
#39 0x00005e61009dce6e llvm::failed(llvm::LogicalResult) llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:58
#40 0x00005e61009dce6e mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:784:7
#41 0x00005e61009dd5c3 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:800:10
#42 0x00005e61007f53cf llvm::LogicalResult::succeeded() const llvm-project/llvm/include/llvm/Support/LogicalResult.h:40:45
#43 0x00005e61007f53cf mlir::asMainReturnCode(llvm::LogicalResult) llvm-project/mlir/include/mlir/Tools/mlir-opt/MlirOptMain.h:399:12
#44 0x00005e61007f53cf main llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:343:10
#45 0x00007ae4c528cd90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#46 0x00007ae4c528ce40 call_init ./csu/../csu/libc-start.c:128:20
#47 0x00007ae4c528ce40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#48 0x00005e6100734b65 _start (llvm-mlir-build/bin/mlir-opt+0x8381b65)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsXEtz27iy_jXwBmUVCPClhReybN2bW_EkZSdza1YskAQpnFAkDwE69lnMbz8FgBQfol52MpNMXJUoEh6Nr7s_NIAGGSoET3PGroBzDZybC1rLdVFd_VHTPFqzPP0_TvP0Iizi56uPxRKQBUAL4KLmD1oATDa0hIDcQJokPGfBhpaALAH2YwTwHDjXAgG8hMICzg28BOQWAuwLS5VdxggCfA2Fbklut_KsvQKXMNZdYwzwfCtup6YvDL9Y2EAMOSLmqAD7LAFN100R1xmDwLsGaAFhUufRTH1AYKPrYFNnkgci4xELklrwIg--crkOwqqgcUSFBNgH2KFVigBZQMlyUVRqXLJ6av8mBKuh8BKaltZky3ErvNNq3IKoFjyP2VNXZvfKGnX3jLTVGKquETK2q7hcz6IiF5LmEqrCVlzX1Jpqak02xVNN8VTTmG90W4N2pn82djXKRQbMIQv3hQXoiDjrPHHWEXH4dHGKKcYwIkpmSVHRLINbHjmdM13lQ9XOVEadKVSFLJrymG-aCq23qhOSlZ1I0ueHql3TisVBUUuxbeM1AxmCbtv7veLBHD7A30nSznt801boz_bZhufQzOG-HVRsG-indXFu-mLsI2LcvpgA9S1hBAHssCdZ0Uiy2Ez0vqebqrai8bmWt-OrJUQqApva1uZ2zzVWU63t23yoksPEUY4-wqtdHQJ8TAtvWosJBQag9-E9gHXAf-00R4PLeE6zdJaynFU8UvzQMYHnqQrewjBPYdELloGjlxvlObyEXLKKyqIK5HPJes1xSdWUYhnA2PSaKKlYXEeSF7kqcm6AdwN53kyHXT4ciexz2M2lKUccCPejeeHchiEygniuOqp2xhFFLbcFc7NPgHBrUq8XaTd1lkAjYdsVtn27Xo39nznL4lbEsI2yyqE1pO_Tsd7kGAH9HgF7rGvZNkW0PSQbTAT3fG6Rjlv2-dw6xCTnmPP384bsU__7cIbG8ffkzIgv3cI343nQ2rRVqyFNWxzwXLCqRx4X8lyvfq-jkRZyCCXw2qWm9w07g60A25Tyee86fMj7W3n4lYzdfiWvC4wj7iKASbtequ97NkxH1_2O4kck9Gl9iNQ8D_CJNO_2GdMkV6L6DB7Tm4zofWJArJisq7z17WEKGGo1n_1zH1pUrKyKuI6YkgFctMl4dVmUEs4AXkkm5EyVwEv19dJAv4yppJcZfS5qeVlWRUlTqmNTK1PImFXV7jHz4fPd3eL-DzXS5zxmajsVX7M1feRF9UBzLvl_mOoG67b2MmyqYZY9btRg_2KRBHilQAG8yngI8OrdPcCrhdh8rHguWTWLyhKQBbEcT-2CMVQ7NrT4-P528XALRR1uuIQUhnUKK1YWlVTBfi1lKRRkvAJ4lXK5rsNZVGzUINlj-08PAReiZgLgFaR5DHkeZXXMoFwzGFVUrGFIoy8q2rKmXsjKhHChhtuaXfcI63Sm7CNp9AXG9aY0tkMzgOYfqyKt6AbSKq03LJcKpLGGdlVY8ywGeBUqvq223jvPc_BSlBmXlzwva3mZ8IyZhY4giJ4QQshhroWQ5yF3HvY0A9g_hgTga_TkkzB256GaOEauNZDrk5jGnlZKKU4W4lmYL9qj2iyf1IDNeKauol-DQsiK0Q3AemvMc6lm-MhRrfs0VR7qUnkc4NXnnD-pAp7mNBMznkeALHziq88GJR6h9OIwmUJ5X-dGzP_SPM5YZULRqUBaBIa1FnLUZwuBDCHYiFkuHAwGsK_1XkLBU54nRSABXqjfjwWP9ddXmcTGrppMLSC7AeRRZkcOpo6DkTkFNuKefDdwbUW4-ukyzWtTEc1EMXM1GWzsYNRRwRkKTObzJIJBUMp1xWgcfOFZFvBNmTFFfsNWFZryUmYAr_rNZhquDcjCcxvh7inCVczIaXZQrOdr3zRivSmx_T4HZfnzvix_bFDbc2EqtA-0GPMV4NVM_3oWMStV3CkLod1VUS6YFoxVvGtVnw_l-qGXEEhDFe60HBkbf-kig8tSippMlzWa-XEYI-_0-W5jP0aecbKSZo2kzUNqnSPNDanVSRvOS4_FPlNerUNBczMjH6KiZPG9ju6m5M9BkZmfpwMg1GdRB4CMACQWDuFaz8ffWEol-_DIqiQrvr7blBnA_gBbW3dDJW1map3r_G0MsyJPVcGgg8H8odSLh8Kt64J1E2xU4JgVgCyQ_msQ2jsIXdZKbXoGuYYaFA2ewJDjDKNElss6ozi9IS3iuiFFPtTrtNaiW5_Nb20a_a1UxQudXbl9Kqt3zXwE2O_13lYr85wiVW1teZ4-yIrlqVyrbl3oTupcr8VBxRJAlipSKsW3fmgialgUWZPE3Q2ip2xB0Nxu57oykTsyUYRipMN0D5runzH6yABZThkA6iRnw5wz7Xuns1Zjqbp0bkoAtgPHbZePfbi64kVV0ed7bcVJb5lt-3eEuWdDMBhzbDsFyj9Hh9bmh0Z0_zJFH2TF8_SeJT1Y2-ZeRjdhTAH2TJTb7gTOVno46I_q6H2bm2ZH3hUsbj6pzc2n97dPsqJittaHA6SiJmnmp3fu_PzxzfPLzYPX0QFbPTr4Z9FhWWw29I0TfwMnXulz4vR8Pt_r81Pg_7hseJ1bv6Pr9DAv2FvZmACycIzbMJpy2zdE_aL803zeEQtbI4TYpc7OPFSDdbAOpjtebjm14tlWAwsPYTlJTE-jujGclBUPa8mag06vY1tzKn1Uh0_PJbvNuNAXHS-xuV7Mm902JkPV_CSOXLXLp3mRP2-KWsCcbpgodWKp4eUi41Q8SCpZX0tVyMRQvylFzGQ5MsRv7Ot7nrNlUevepk9z0nihylbrTXtEMuZG4TE8H0pW6bzKQB-t-KeifM8eWbZtMjBBr3QqyXTKFLF1uqadIuMTpEY_Nd6JU2REPOPWyU3CKfHGwjoH1IJ1ByfseTJPYqs3XlGa-xGdkF-eDPND-f9crjXSQ5uaBm-3wDUFGvrWTnp9syzb69nYG8H2QzeBJauSotosoibFcBCskLGpah7xKGU1WOceirqK2F16YBG5e__uflnkkj3tnmPvMl59KOUd5fmyyBOenmAH47dPRZGJQZpi1RPWuNGZO_3w54_M4TmWB8uqiJgQ13WS6PzqSdaoc_7vmu1Y445tiuq5FdVrH7OE1pkMYpYxyfb3Ibc7R7F-vVrDT7Zfv90NpxmL5D1LuZDV80791o03nKZ5ISSPfmcVTzirtpnnxRDXJ53o_FgUmc7hJDrKHA0NJ7nN1YHCwo3b5lNum7TBD-O-0y1_cAZ02ycyCjTNad__QRj5up3LSaTwCOmRYnRZ1ZCig_G-SHlEs3sm6kzuzwXu6_BjWPbEw5ZOWeqaiGZZSKMvQZIP9vq_yhTRx54mq_4T-e_sE-2qYTHNemdb2-3Pj-EJZB6G1LX_Kpvo8j97Y7Q3MKtaVNsLBn3DZQJAGkXTl4mW1TYcfXS2iQC-1n9M45BLFUq6wbVtiIua2zJlGzxlm18lRvyIS8jJE2VyLXnZdHHnXUaBkBEjIge7vQikH5hY5PHH0V7x7zDdP5adRxKKE5ngvcW9VQHtYf10vxM2K90TFGrb8lnyjEvO2ic6zBVgc_4i9jjQ2LZ34hXDTrp7dHJ6o-RPTMmTL1wfNjTLfmeRyS3sGc-vd7ZUb-z4udmx9y5nqvco2386Z15wmfNGrH8Ksb7JcwXnxae3uPZGv-_yWIel_rGbTZfzik3XGy3faPm23L4R6y9abr_d40vEnYp6b0T6aYn0mhxE7wqYjK6A48gm-Ne4PHv9lZP-fxXapLE_NiRz2b4Lp4bnlGcsbpLfZ2UuO_8OxJo0PzEfBtX8MKothH1AT49BhzB5KhI5vsFkoylM-yjXPHwfram5Yl6cO1OO8eUb8MDz7e5lGdsaqRc7Efkm6n13PXz9_HP7goI9erMmcUiUHGa0qKOIsfg7kFo_ptZk420yBayzDhVKp3v9SuyyiNlZ9N73MM0RA-pLJP2IX3vDZtuTKCnP9wwpd0dov26fkCJ9_4xelvOjeI5gEGQ8jAIhaSWDiGZZoIecAbyKRL374ljzXtpUJ62Uo59zaoKc7Y6HZDaCugPPuRyPYr4q0ZdatH6xzDw5hVslvCmJAyWm8E9KJl7vysYexmOP2KHrQCPyjFdVfSt0nea1pvbl5Yv4isRzMqcX7MryXIQ8CxPrYn3l-ihGCbKQH1k4sV3Hj5EdRcRLkrnlRe4Fv8IIOxayELJtRKxZEluW57suSxLP9Swf2IhtKM9mCt6sqNIL_WbxleViz7MvMhqyTFyZd-sNbTBwbi6qK61OWKcC2CjjQopOguQy0_8ZmO7g3MCH2__5HR57yO2irrKrl78H3QB-vML_DQAA__9fd1km">