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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR] Assertion `llvm::isa<IntegerAttr>(memorySpace) && "Using `getMemorySpaceInteger` with non-Integer attribute"' failed.
        </td>
    </tr>

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

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

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

<pre>
    Test on commit: release 19.1.4
steps to reproduce:
`mlir-opt -affine-data-copy-generate=generate-dma=false    test.mlir `

test case:
```mlir
module {  
    func.func @tensor_computation(%X: memref<1024x1024xf32, "slowMemorySpace">, %Y: memref<1024x1024xf32, "slowMemorySpace">, %Z: memref<1024x1024xf32, "slowMemorySpace">) -> memref<1024x1024xf32, "slowMemorySpace"> {
        affine.for %i = 0 to 1024 step 64 {
            affine.for %j = 0 to 1024 step 64 {
 %valX = affine.load %X[%i, %j] : memref<1024x1024xf32, "slowMemorySpace">
                %valY = affine.load %Y[%i, %j] : memref<1024x1024xf32, "slowMemorySpace">
                %result = arith.addf %valX, %valY : f32
                affine.store %result, %Z[%i, %j] : memref<1024x1024xf32, "slowMemorySpace">
            }
        }
 return %Z : memref<1024x1024xf32, "slowMemorySpace">
 }
}
```

crash trace:

```
mlir-opt: /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/IR/BuiltinTypes.cpp:518: unsigned int mlir::detail::getMemorySpaceAsInt(mlir::Attribute): Assertion `llvm::isa<IntegerAttr>(memorySpace) && "Using `getMemorySpaceInteger` with non-Integer attribute"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/fuzzing/llvm-project-llvmorg-19.1.4/build/bin/mlir-opt -affine-data-copy-generate=generate-dma=false test.mlir
 #0 0x00000000013906e7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/lib/Support/Unix/Signals.inc:723:13
 #1 0x000000000138c27a llvm::sys::RunSignalHandlers() /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/lib/Support/Signals.cpp:0:5
 #2 0x0000000001391c24 SignalHandler(int) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/lib/Support/Unix/Signals.inc:413:1
 #3 0x0000736cc1d27520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x0000736cc1d7b9fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x0000736cc1d27476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x0000736cc1d0d7f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x0000736cc1d0d71b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x0000736cc1d1ee96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x0000000008b1b412 decltype(auto) llvm::cast<mlir::IntegerAttr, mlir::Attribute>(mlir::Attribute&) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/Support/Casting.h:572:3
#10 0x0000000008b1b412 mlir::detail::getMemorySpaceAsInt(mlir::Attribute) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/IR/BuiltinTypes.cpp:520:32
#11 0x00000000016ecd4b mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&)::$_5::operator()(mlir::Operation*) const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp:2305:12
#12 0x00000000016ecd4b void llvm::function_ref<void (mlir::Operation*)>::callback_fn<mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&)::$_5>(long, mlir::Operation*) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#13 0x0000000001601201 void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/Visitors.h:0:9
#14 0x0000000001601201 void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/Visitors.h:0:9
#15 0x00000000016d5f2b void mlir::Block::walk<(mlir::WalkOrder)1, mlir::ForwardIterator, mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&)::$_5, void>(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&)::$_5&&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/Block.h:343:19
#16 0x00000000016d5f2b mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp:2300:10
#17 0x00000000015ff886 (anonymous namespace)::AffineDataCopyGeneration::runOnBlock(mlir::Block*, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp:0:15
#18 0x00000000015f9d63 (anonymous namespace)::AffineDataCopyGeneration::runOnOperation() /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp:217:20
#19 0x0000000008792bb3 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:17
#20 0x0000000008792bb3 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7>(long) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#21 0x0000000008792bb3 llvm::function_ref<void ()>::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12
#22 0x0000000008792bb3 void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/MLIRContext.h:275:7
#23 0x0000000008792bb3 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:521:21
#24 0x0000000008793940 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:16
#25 0x00000000087a1e67 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:818:5
#26 0x00000000087963e3 llvm::LogicalResult mlir::failableParallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15&>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/Threading.h:0:18
#27 0x00000000087963e3 llvm::LogicalResult mlir::failableParallelForEach<std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> >&, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15&>(mlir::MLIRContext*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> >&, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/Threading.h:92:10
#28 0x00000000087963e3 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:823:14
#29 0x0000000008792997 mlir::detail::OpToOpPassAdaptor::runOnOperation(bool) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:5
#30 0x0000000008792997 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:525:20
#31 0x0000000008792997 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7>(long) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#32 0x0000000008792997 llvm::function_ref<void ()>::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12
#33 0x0000000008792997 void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/MLIRContext.h:275:7
#34 0x0000000008792997 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:521:21
#35 0x0000000008793940 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:16
#36 0x0000000008798b92 mlir::PassManager::run(mlir::Operation*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:0
#37 0x000000000878224b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:17
#38 0x0000000008781a78 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:473:12
#39 0x0000000008781a78 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::raw_ostream&) const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:548:12
#40 0x0000000008781a78 llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, 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::raw_ostream&) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#41 0x00000000089a9a3a llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&) const /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#42 0x00000000089a932d 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::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Support/ToolUtilities.cpp:0:12
#43 0x000000000877832a mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:10
#44 0x0000000008778b58 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:14
#45 0x00000000087796f3 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:605:10
#46 0x0000000001305e9d main /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/tools/mlir-opt/mlir-opt.cpp:0:33
#47 0x0000736cc1d0ed90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#48 0x0000736cc1d0ee40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#49 0x00000000013057f5 _start (/home/fuzzing/llvm-project-llvmorg-19.1.4/build/bin/mlir-opt+0x13057f5)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsXFtT27q3_zTiRUPGlnx94MEN5BxmysBQus_e5yUj23LQriL5L8kt7E__H8kOsXOhJISW7ibDJEaWltb6ad20fCFas5mg9AyEH0B4fkIacy_V2S27Zb4fnOSyfDy7o9pAKWAh53NmAM6gopwSTaGfjvxRALxMG1praCRUtFaybAoKcAa8DETenDN1KmsDT0lVMUFPS2LIaSHrx9MZFVQRQwE-XxyelnMC8HlFuKYQQmioNiNLAoLIswS9zDbBgujlFO2f7QW8bC7LhlMI4g8QAi-zRKpGFCP7BUHgGSq0VNNCzuvGEMOkACgBKPzTCjanc0UrgMe-h4IH91VhBNAYAoQ0l9-u6Fyqx081KShACOCL9lz416tG__--o1N4CvDFHkMtPh069tMuzaiSyrLDIMDn0LPraWlBu7owClbGrI_7-_lxAIVfCf_TdeoGcklK6MAPP9iJOzz-BuE53BOTIYP2087716Z5_3rjeRXVDTftzIqZ-xEpy2oBRDdpx1sG7QzrVDqOtZGKLkk-Kc4b8Q_i815L95-iplHCzfuKWVpi3ffCeFvTLhTR99Ao8uQ_hl0WvsRODtDkXs4pQJOq-ecfJmYATTj_Oj-tlfybFubU_iPV7LRzUmjiHASacJYDNLm8BWjyoWHcMHH3WFM9Kuoa4Cz0E0u9Ec4vlpAJA91AnAGcldQQxtvjGTU9-TJ9KQxAybJvZoxieWMoQKklmWlNlfU31pVZ5tpuTBOAx5fC0BlVdowz7GTehy6FAEUARRbXz5qJmSUxnL8jACIPfmPmHgopTrs2SJacIIBiWBHGaTkCXnbz8SL7dAF1k8-ZgQTmzcy6cKmMNeJ7Y2ptuUQTgCYzZu6bfFTIeYf0CuAATZjWDdUATSARFrqCNyWF5p7CdmVzUnxxq2vn_mRI8QWWzbxu19obtcp2o-RMkTkkatbMqTB6v9XOG8ZL-8tEt_Z7RqGnENT6MOxB78FbfHycehGN4XI99aNuD24UE8YJeecUGiXLTop8m0ptFCVzt7Jjq2ftOu8q52IlnFZ_amq7eABNPgv2YBvYTBCuR0wUAGcxwgBnPu4k8YeSJAWKySZJbhvR0vlfIkpOlXYR84DMLrhsTdCzZtixiFbA9gsUwAEzACU_BLvAd9h1fOGOrxhHReGXKA6RBx0sHbWHJJpGwSlnonk4nYmmPVGMtBxFAH3wHgIUIs-6hpZgMCQY52lVwNrcK0rK6RfG-W7U0yitiiX1cJXdII7gTDsBd2U7iKMl4WhI2CvjCkOSWweyE1mUxBVeko3XyPr5zgT9fEkwGRL0KU2j3QjilKY9wdO-Yia5nwc-giUtuHmsra2TxkirlEtzKog2AI-XAaLv89EYboocbSjYFFKiV2l855qXDUvlHxNtmJiN7q0VxgjgzLoL6y28TSK_Pja-WSRH1pG4nMpyP3R2ES3KIO9x34aF_vE5MWQs68f_WcSHvgNnnGkzZcaekQrg8eqpPhpClnQqaxv79UADrms73m1BxtCohtpfF3XswVfJyvWGdtPw1NYetI3vnL3NYGfu2AJ93bIACym06cKiNmXbreWP8AGDfxDerAt_ToWmn6jZJku2ofsVqS9FJZ8d0skH3YRRm9W57CiYhgsmO8BdfBxo_JBY2gr5WtU_Z4S3mVeLoo1dhnGbgX2UsnbHnTUg7Fkm_YU5oE3mYCXsIWO3zJblaZvlu7PPCWWB6Vwd5zbXm1ZigOjRyI5G9iojs-GQS2smfUlXbetwYTE7v7PB8e7jpDMFwi8ejCLahcdgYFF4aFGejzy_tajNMfIb4V8GUEyk-kZUefmkUBfPGNv4lXY6APD_CP9yrUqbTL8iHC_R6xpcZP6DaWakahGzETnt8AqOeO2EVzjEqwwrlK_i9YHL4ssAroFcfb79oUirYG51JUe_ffTbu_rtvvxHPXkDPTka5dEodzbKaO8qwrMBzMUgF71w4EpmiwAWbQpgR30-6vP--vxjN9A2G_O9TpvjgTaHVZUkrqJIhBSPc9loKMic6u4CTh_pFbW24rmzqhHXos3g-klb17IJs18U4jtFhK6kmuun1nVMehcD_LDDPFnBPC0jfADMexjseV3jkBIjP7bfCz0bFprjFOU53rJDuq7v5HV9Q7TOSlI7t9PJOFAo26Fb7e160KvVCsIfNdNXRJAZdTuDXEpuf_tXSQfRJd5SDztY5auVwf30FSVuQUPeJtBeVt16SR3r3YK-rI_8pCoI8jchvxPoB1Wa_USKkr5IaKsyLdfr6uPl7VgKQx9M20AfaNEYmhWtrxkPNeHCnWVSdOcHa9-qSrS6W3oeuoG3z5Qij7euW-9y0-1nwcxaJrCY7fCJYA8ThyqKraYsTBT_On7t8M4qRL7z9B0WwQoWOA28nbG4YTXlLtwMKlm265OI0cHBWVWlS6GNcvdtWAvOnuvQC8ML3m-IosLYJGWRg-5Z0H1JsIg69MMh-sSnUbwz-r0sItOPoric1xygpAWt56T9718qOtyE1_XNlcv4Wvt-o8ibuFumuhwNRSu6HGHaDwAf5YwVhN-2N8Ytha4I4yTnVgMI55RPpLogxT3A4-l0Jppp8fDQdpxOhVRzwvt7q7fFLhtsg77S4kdM2puRcC6LHyFpm_bDtRBxcAtYBLfN8bMF_LjsP2fZj7j_G83t8Nndnbs1bXGnkAuoSRcC4kOHgN9HG9ZStJ_ie494_1LGl6JeYRIlm6zvsAK-QQ7Z3pkcdDKsFb3S9FUp-Vuy7i2TX7xWd9qH79-gWBeisFfjxGtFIwvbsVz39uU6vFbbssj_0uU6vFZYelKmY7lu73IdXi1RvWPP9tblOhwey3U_r1yHVwtMSZ6iFaYXMGzUu9ffLfoCbheRbWUrlCAU5LCmqpJq3joT_Z0Hw54yY31PFC2ntRneTfBJNqqgVzNlM9r-hfvnEvzeOc7UdW2uCBNjKSo269F4NTZ3Urpr6fPFc5to0ptvw4U7vJK8Jj6JE1grWVCtPzRV5Z73ehFcjWD_aegaXO1jKQtSvf4lrUjDzbSknBq6fcymHftzIPb7dVeGb-mMaaMeu_PLidq0_kZKfikMVZW7jn0IJX3RQgQx7sfRdNNSbJT5PS7JZqhfqPfLJA1vSXJ-oEzboT1Qev4i5QiDfpIVeJuUY1uJZ2tStG3AuwH4u1uL38YK-k9evI-1-Tk7pmC4V01JSjD5N2j4v83F7bfWXn-p0epSY9TfROqaM5OJ8mYlPfkpwP2Kevdsj_65T0YxMbM75G3Nr86Qlg9A23D42TDODKODDchCLVYKDHGCEflNEqMftyHoNlBBsAp2Hm7PQrstbnFP2s1stqsafQ-oHwhAVwoPVooNcRpV-CAAvAdJo_ah5MViD58QwF5I0xLOCRP7M2PW2Vgc9tDG3TsOgtUXT9Ay3fG9Higt0-69HpZgskqQBh6cTu2YqTZEmWkn305T0KA3RbqKWlyFsCXe0T3Iq3Pc1B35dvIsl8pQV9YspKLuXT607BhbvLbppDzDZYpTckLP_DjwQpx4oXdyf4aKKEqqEhE_jCuS-xXBqeeTktIApUmVnLAz5KHQQyjyUBBjbxSHqKQ5ivIw9pMo9EDg0TlhfGQlGEk1O3EvIDrzURKn6QknOeXavdkOoVYdEAjPT9SZEz9vZhoEHmfa6CUFwwx3b8O7-nh5C8Lz9_fappNG8bP9X83UgfP1DP03AAD__95ix38">