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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] `ForOpIterArgsFolder::matchAndRewrite` crashed with assertion failure "cast<Ty>() argument of incompatible type!"
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    MLIR built at commit  5624e86a
Reproduced with:  
`mlir-opt inline temp.mlir`

temp.mlir:
``` milr 
module { 
  func.func private @__mlir_math_fpowi_f32_i32(%arg0: f32, %arg1: i32) -> f32 attributes {llvm.linkage = #llvm.linkage<linkonce_odr>} {
    %cst = arith.constant 1.000000e+00 : f32
    %c0_i32 = arith.constant 0 : i32
    %c1_i32 = arith.constant 1 : i32
 %c-2147483648_i32 = arith.constant -2147483648 : i32
    %c2147483647_i32 = arith.constant 2147483647 : i32
    %1 = arith.cmpi sle, %arg1, %c0_i32 : i32
    %2 = arith.cmpi eq, %arg1, %c-2147483648_i32 : i32
    %3 = arith.subi %c0_i32, %arg1 : i32
    %4 = arith.select %1, %3, %arg1 : i32
    %5 = arith.select %2, %c2147483647_i32, %4 : i32
    cf.br ^bb3(%cst, %arg0, %5 : f32, f32, i32)
  ^bb3(%6: f32, %7: f32, %8: i32): // 2 preds: ^bb2, ^bb6
    %11 = arith.mulf %6, %7 : f32
    cf.br ^bb5(%11 : f32)
  ^bb5(%12: f32):  // 2 preds: ^bb3, ^bb4
    %13 = arith.shrui %8, %c1_i32 : i32
    %15 = arith.mulf %7, %7 : f32
 cf.br ^bb3(%12, %15, %13 : f32, f32, i32)
  }
  func.func private @__mlir_math_ipowi_i16(%arg0: i16, %arg1: i16) -> i16 attributes {llvm.linkage = #llvm.linkage<linkonce_odr>} {
    %c0_i16 = arith.constant 0 : i16
    %c1_i16 = arith.constant 1 : i16
 %c-1_i16 = arith.constant -1 : i16
    %0 = arith.cmpi eq, %arg1, %c0_i16 : i16
    cf.cond_br %0, ^bb1(%c1_i16 : i16), ^bb2
  ^bb1(%1: i16):  // 6 preds: ^bb0, ^bb5, ^bb6, ^bb7, ^bb7, ^bb10
    return %1 : i16
 ^bb2:  // pred: ^bb0
    %7 = arith.andi %arg1, %c1_i16 : i16
    %8 = arith.cmpi ne, %7, %c0_i16 : i16
    cf.cond_br %8, ^bb1(%c-1_i16 : i16), ^bb1(%c1_i16 : i16)
  ^bb8(%9: i16, %10: i16, %11: i16):  // 2 preds: ^bb2, ^bb11
    %12 = arith.andi %11, %c1_i16 : i16
    %14 = arith.muli %9, %10 : i16
    cf.br ^bb10(%14 : i16)
  ^bb10(%15: i16): // 2 preds: ^bb8, ^bb9
    %16 = arith.shrui %11, %c1_i16 : i16
    %18 = arith.muli %10, %10 : i16
    cf.br ^bb8(%15, %18, %16 : i16, i16, i16)
  }
  func.func private @__mlir_math_ipowi_i1(%arg0: i1, %arg1: i1) -> i1 attributes {llvm.linkage = #llvm.linkage<linkonce_odr>} {
 %false = arith.constant false
    %true = arith.constant true
    %0 = arith.cmpi eq, %arg1, %false : i1
    cf.cond_br %0, ^bb1(%true : i1), ^bb2
  ^bb1(%1: i1):  // 6 preds: ^bb0, ^bb5, ^bb6, ^bb7, ^bb7, ^bb10
 return %1 : i1
  ^bb2:  // pred: ^bb0
    %6 = arith.cmpi eq, %arg0, %true : i1
    cf.cond_br %6, ^bb7, ^bb1(%false : i1)
  ^bb7:  // pred: ^bb6
    %7 = arith.cmpi ne, %arg1, %false : i1
    cf.cond_br %7, ^bb1(%true : i1), ^bb1(%true : i1)
  ^bb8(%8: i1, %9: i1, %10: i1):  // 2 preds: ^bb2, ^bb11
    %12 = arith.muli %8, %9 : i1
    cf.br ^bb10(%12 : i1)
  ^bb10(%13: i1):  // 2 preds: ^bb8, ^bb9
    %14 = arith.shrui %10, %true : i1
    %16 = arith.muli %9, %9 : i1
    cf.br ^bb8(%13, %16, %14 : i1, i1, i1)
  }
  func.func private @__mlir_math_fpowi_f16_i32(%arg0: f16, %arg1: i32) -> f16 attributes {llvm.linkage = #llvm.linkage<linkonce_odr>} {
    %cst = arith.constant 1.000000e+00 : f16
    %c0_i32 = arith.constant 0 : i32
    %c1_i32 = arith.constant 1 : i32
    %c-2147483648_i32 = arith.constant -2147483648 : i32
    %c2147483647_i32 = arith.constant 2147483647 : i32
    %1 = arith.cmpi sle, %arg1, %c0_i32 : i32
    %2 = arith.cmpi eq, %arg1, %c-2147483648_i32 : i32
    %3 = arith.subi %c0_i32, %arg1 : i32
    %4 = arith.select %1, %3, %arg1 : i32
    %5 = arith.select %2, %c2147483647_i32, %4 : i32
    cf.br ^bb3(%cst, %arg0, %5 : f16, f16, i32)
  ^bb3(%6: f16, %7: f16, %8: i32):  // 2 preds: ^bb2, ^bb6
    %11 = arith.mulf %6, %7 : f16
    cf.br ^bb5(%11 : f16)
  ^bb5(%12: f16): // 2 preds: ^bb3, ^bb4
    %13 = arith.shrui %8, %c1_i32 : i32
    %15 = arith.mulf %7, %7 : f16
    cf.br ^bb3(%12, %15, %13 : f16, f16, i32)
  ^bb9(%18: f16):  // 2 preds: ^bb7, ^bb8
    %19 = arith.divf %cst, %18 : f16
    cf.br ^bb11(%19 : f16)
  ^bb11(%20: f16):  // 2 preds: ^bb9, ^bb10
    return %20 : f16
  }
  func.func private @parallel_compute_fn(%arg0: index, %arg1: index, %arg2: index, %arg3: index, %arg4: index, %arg5: index, %arg6: index, %arg7: index, %arg8: index, %arg9: index, %arg10: i1, %arg11: memref<?xi16>, %arg12: i1, %arg13: i1, %arg14: index, %arg15: memref<?xi16>) {
    %cst = arith.constant dense<25277> : vector<8xi16>
    %c0 = arith.constant 0 : index
    %c1 = arith.constant 1 : index
    %0 = arith.muli %arg2, %arg3 : index
 %1 = arith.muli %arg0, %arg1 : index
    %2 = arith.addi %1, %arg1 : index
    %3 = arith.minsi %2, %0 : index
    %4 = arith.subi %3, %c1 : index
    %5 = arith.remsi %1, %arg3 : index
    %6 = arith.divsi %1, %arg3 : index
    %7 = arith.remsi %6, %arg2 : index
    %8 = arith.remsi %4, %arg3 : index
    %9 = arith.divsi %4, %arg3 : index
 %10 = arith.remsi %9, %arg2 : index
    %11 = arith.addi %10, %c1 : index
    %12 = arith.addi %8, %c1 : index
    scf.for %arg16 = %7 to %11 step %c1 {
      %13 = arith.cmpi eq, %arg16, %7 : index
      %14 = arith.cmpi eq, %arg16, %10 : index
      %15 = arith.select %13, %5, %c0 : index
      %16 = arith.select %14, %12, %arg3 : index
      scf.for %arg17 = %15 to %16 step %c1 {
        %18 = func.call @__mlir_math_ipowi_i1(%arg12, %arg13) : (i1, i1) -> i1
        %19 = vector.broadcast %arg14 : index to vector<8xindex>
        %20 = vector.broadcast %arg10 : i1 to vector<8xi1>
        vector.scatter %arg15[%c0] [%19], %20, %cst : memref<?xi16>, vector<8xindex>, vector<8xi1>, vector<8xi16>
      }
    }
    return
  }
  func.func private @async_dispatch_fn(%arg0: !async.group, %arg1: index, %arg2: index, %arg3: index, %arg4: index, %arg5: index, %arg6: index, %arg7: index, %arg8: index, %arg9: index, %arg10: index, %arg11: index, %arg12: i1, %arg13: memref<?xi16>, %arg14: i1, %arg15: i1, %arg16: index, %arg17: memref<?xi16>) {
    call @parallel_compute_fn(%arg1, %arg3, %arg4, %arg5, %arg6, %arg7, %arg8, %arg9, %arg10, %arg11, %arg12, %arg13, %arg14, %arg15, %arg16, %arg17) : (index, index, index, index, index, index, index, index, index, index, i1, memref<?xi16>, i1, i1, index, memref<?xi16>) -> ()
    return
 }
}


```
 
trace:
```console
Assertion failed: (isa<To>(Val) && "cast<Ty>() argument of incompatible type!"), function cast, file Casting.h, line 578.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: mlir-opt -inline temp.mlir
 #0 0x0000000102653774 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/workspace/build/bin/mlir-opt+0x1002f7774)
 #1 0x0000000102651910 llvm::sys::RunSignalHandlers() (/workspace/build/bin/mlir-opt+0x1002f5910)
 #2 0x0000000102653e3c SignalHandler(int) (/workspace/build/bin/mlir-opt+0x1002f7e3c)
 #3 0x00000001b0a454c4 (/usr/lib/system/libsystem_platform.dylib+0x1803414c4)
 #4 0x00000001b0a2dee0 (/usr/lib/system/libsystem_pthread.dylib+0x180329ee0)
 #5 0x00000001b0968340 (/usr/lib/system/libsystem_c.dylib+0x180264340)
 #6 0x00000001b0967754 (/usr/lib/system/libsystem_c.dylib+0x180263754)
 #7 0x0000000106ae9a90 (anonymous namespace)::ForOpIterArgsFolder::matchAndRewrite(mlir::scf::ForOp, mlir::PatternRewriter&) const (.cold.4) (/workspace/build/bin/mlir-opt+0x10478da90)
 #8 0x0000000103bf1130 (anonymous namespace)::ForOpIterArgsFolder::matchAndRewrite(mlir::scf::ForOp, mlir::PatternRewriter&) const (/workspace/build/bin/mlir-opt+0x101895130)
 #9 0x00000001065214e8 mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<mlir::LogicalResult (mlir::Pattern const&)>)::$_2::operator()() const (/workspace/build/bin/mlir-opt+0x1041c54e8)
#10 0x000000010651e7e4 mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<mlir::LogicalResult (mlir::Pattern const&)>) (/workspace/build/bin/mlir-opt+0x1041c27e4)
#11 0x0000000104ede7b4 (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() (/workspace/build/bin/mlir-opt+0x102b827b4)
#12 0x0000000104edbfe4 mlir::applyPatternsAndFoldGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) (/workspace/build/bin/mlir-opt+0x102b7ffe4)
#13 0x0000000104e87c64 (anonymous namespace)::Canonicalizer::runOnOperation() (/workspace/build/bin/mlir-opt+0x102b2bc64)
#14 0x0000000104e70ecc mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/workspace/build/bin/mlir-opt+0x102b14ecc)
#15 0x0000000104e715bc mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/workspace/build/bin/mlir-opt+0x102b155bc)
#16 0x0000000104e96d18 (anonymous namespace)::InlinerPass::optimizeSCCAsync(llvm::MutableArrayRef<mlir::CallGraphNode*>, mlir::MLIRContext*)::$_0::operator()(mlir::CallGraphNode*) const (/workspace/build/bin/mlir-opt+0x102b3ad18)
#17 0x0000000104e9683c (anonymous namespace)::InlinerPass::inlineSCC((anonymous namespace)::Inliner&, (anonymous namespace)::CGUseList&, (anonymous namespace)::CallGraphSCC&, mlir::MLIRContext*) (/workspace/build/bin/mlir-opt+0x102b3a83c)
#18 0x0000000104e8ead4 (anonymous namespace)::InlinerPass::runOnOperation() (/workspace/build/bin/mlir-opt+0x102b32ad4)
#19 0x0000000104e70ecc mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/workspace/build/bin/mlir-opt+0x102b14ecc)
#20 0x0000000104e715bc mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/workspace/build/bin/mlir-opt+0x102b155bc)
#21 0x0000000104e73474 mlir::PassManager::run(mlir::Operation*) (/workspace/build/bin/mlir-opt+0x102b17474)
#22 0x0000000104e6b6d8 performActions(llvm::raw_ostream&, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) (/workspace/build/bin/mlir-opt+0x102b0f6d8)
#23 0x0000000104e6ac00 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_1>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) (/workspace/build/bin/mlir-opt+0x102b0ec00)
#24 0x0000000104ef80c8 mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) (/workspace/build/bin/mlir-opt+0x102b9c0c8)
#25 0x0000000104e655b4 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/workspace/build/bin/mlir-opt+0x102b095b4)
#26 0x0000000104e65a24 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/workspace/build/bin/mlir-opt+0x102b09a24)
#27 0x000000010235ed40 main (/workspace/build/bin/mlir-opt+0x100002d40)
#28 0x000000010df65088 

``` 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsXEtz2zgS_jX0BRUVAL4PPiiyPZuqZOOyZ3ePKpAEJWz4GgB04vn1WwBJCeBDkjXJztQ8asqiQKDR_XXj625SFSIE21WU3jr-e8e_uyGt3Nf8dlMXRd3UXLYC3iR19nr76eOHJ5C0rJCASJDWZckkAH6APRoFxIF3Dlw_0YbXWZvSDHxlcu-4awC6O04Ay4Lxd3UjAasKVlEgadms1KATwH6S_nscd9eHxd3_oGQF7yWWddYWFDjh-34AgLyt0pX6AxrOXoikwPHgdqtkbUsi99u8qb-ybe7iLXOxgyMH-4TvoNIzVwMb0I0gNaKnxOCd496ru4BIyVnSSirUpkXxUq4KVn0hOwoc9w442DXHHHejruoqpds6445774R3auGgLFB7pULqxYQzuV-ldSUkqSRAK6j_ow5-DyEY9LNWQmXD3OJuPhvPR0vz0Wi-mvwOIy_0IjfwoqVlxpT5DQ_3wyURxxmzEpC5pmwYEAU1fdRdHoCYCsBjAfSXmfVTW6eSXEOSaBN23NgQOLvSM1fSgqZSm9Yvc88t92eXD7uOMO5HvamkNF8lHDj-fZK4XdynQh73hv2lD4yj0H90x2AQZYoI7HMT2l-j4xlSVw5-cPADwKDhNBN6RInqZqurwPa96fyyLXKgN-x3mp4Iw0C_0w6hozG2-sMEbNzXTDWvontQ0bNVtIJiz1vWmd27Bi0GE_JnbAsXbJt6Dg0II3-4cM_7Lby7mCWZZkmGApsh9YDNkGqkZ0iGgh_DkFBpcoLnUDDhufn5aDRfn_3F2e_G0zvx8CJKGXQerU9zJT_bKodiHx7iCvVHElnLcHyYgK347acbLjDDNxiF73Eb3zhrw1U4c4XgUWVOZcurgY0t-DrFjJ3Vvsa2JmyhARupMjYGDM0Dps7TGPCKHvjmLWhHE7TfLcK96A_TC1E3KbaPBhodFbTgpWUeRMgmCzwDHboAOOTZLKMXxgc1Z_EamAbBPsS8JesPM3zbvgXzjujHtpLBHIdeZF40Yx6Cl9kXHZTvpw-sbbp7Y338JiYdE-mERw0a_c4s6mA_J4Wgcxynb1ioSt7OzlTjb-fBYWNt4aUs2KvQo3IRBf44BpzSn6XGpfQXnEJriFnT8AWw5rTuobCwHh3WcFHNYJGlba59o1Mn2i04df7uDMtG1rmJrW8IzkbBdQw7MMlACPGcpROaxAvaHya4F6m4yJLeLEueDJwxuY4zwEnDooPaAy0OFx44Yn_8exU59s04Cmaa8WmpaTbjP6rUvLwZHxedP6wZ7-f_3Y__lfvx7jT0H-f68cPRCe2vo378RzTkC9XWqCGfFpN2Q36ulvxd-vEF08625OdcF_cCItv0JduPiTWyTYgNEzL2kgMrpFB00go0lFPxkoeGGRhepmd8ppnEEx49lzkawklR0GKb1mXTSrrNq1FVXWX02zhr2GN4ZsydGfNmxvyZsWBmLJwZi2bG4jmdp-2BNqOkJae5424c9-Gb6kbce2MKnixyJyNzFnWt26zs-NLcmNFKqOyKfRyGKjcrkS80lTV33E00CLRz5Yk8qTW0M-WJLDmZDWcKHu33o7snK0eJzVgGJ8lgsqHVnGd9c35-mclUJasEM5PIEhTeTM5zD-y2sMikNk5LMdZwise0Y8nYy8Xrwrn9jGIOL6yL5tZ55_eL5_Q8uW54OjDZLT6vpZUED_6G55yA5sIkOrlKpPkqr_kQR0Ff1fohkHWviZC0GQSYp3WaDKe1lp24R3tPe45lAWg2Wqdp1Si1hpj1DwXjsohgXsTgYHTyZIMZIMMBSOQPSAYnkDQfNem0lJKiOPuUx1RLmdulVQdHRsc0PO6Z7taFdEeiq4TXJEuJkAcmP5qpDDC5Vptusu1AUvCkxOFR2VgcmsjqJYiUSEn5MY3477UbHf8OdNcodvy7HgN8OB46hSxmszlLRsNobiwYqWkUEqMvXflxacFBxGuVbjMmGiLT_aTccDDSM1Y7XrfNn6LuGA3OWbJUbJyuULzJIn8yMmcTCi-tUIZjeapKNLOXibkBtYGwAayBpwGjiZ4JmomVxQIGHCYQU07tLDdYY0Dl-19odRecZz3kGVYsOEOTmUY6Xjhvh-N2vDD_Dr_wGGbrD8lJSqe_AlFlYF30z6PXQlAuWV2BnLCif7SJIyaI425-rrV-0b9JofHEgYMD4GCs-E_df-3uq5uE79qSVhLUOWCVih8iWVJQIF8b6mDkYNw_ulRMoXfUUtQAKyjYECFZtVvt1Yj-gYsfRqtOyceP9-vneyDapGQSEJC0O8BpU3OpSHcvZaNap66X2jG5b5NVWpcOfiiKl-HjXcPr_9JUOviBCdFSofouUmVK2aLNKJB7ClJOxB4kJP2iseu3f5Yk_QKytmwOYMKVA-NHXu84KQ-m6_7t8DOdd5Pf6QwFlAsB_NY9FIMI4sB3w9ADWld37bhr8Sq6i0fOKql3_1m7EkfHSZx83dZCckpK7RcVZLLzUuTgh681_yIaveghaVmRqU9WOfhhUNDB7-E3BCHOwzD0jpHnYBeN9EMxgnP6PbXVM9tVpPgHqbKCctHHwttV8GNFA4YKeAwRdVNgbaZP9rUWUze1tnON7RJIPN9LvV5uK7gKIZY4-EG8CknL7mt3vW0KIvOal6vsVc9RW0TQ9ZCX2qB69hY4oxReuIXcc0qy0Q44ptTGzLd2iIPI9S7cIbVl48BzPVt2MJIdhv6FAE1ku6FvIxOavg4IjUms9SZVXb2WdStARUra-zbuQu-h5p-bD5LyNd-Jh7rIKO9ulKrcWFfZE_3KmVRnZvgtnLsWaW6s1nx8uPeoi7KqX8b1mYqBbpmVLqu0LrKVd0W4eWGUkdhGMzItdpMcIfcPZ_FbbERR7CPXtjG2vOpj5NFouvu6aQqWEl2PnjPmc0M5UZnDwevzpmwMxhpSzrZLvkldF8AS3QvorO-Q6NP4opCXmmW_Wchx8cd6x1JSPFHRFvIyuX1gONjb4u6y1gjVvC8lOja-yqMeSn2PHgsSlRWg7VFEQ-r97dHv6tEr3IRD6llusrK3RzMaJt45cvmJU5q92qDfcfYycEzD65QK8Z-afymYUvmaPI-TCIeJrSweKZvkVkyRpikGtcS6yhTvaV1Z8Woh-kR3OowCO4weeP0rHQzq5TxTaQBvzu5Q6Gdv6ipnOzVBBZcO0CssDvN85B7XtjgK0-Csezbqpgom9uvgEd5Wnyvj_FznEJykga2eZ6sXQpqmBkQZlYQVw-n9uf7cPBIh1hlpDgeet9Uo2IWYnO_lk7-uSPEqmPhEKrJTJ39wwAa0lf6xfXZlqYsT5NE0tcz1R-YiP3m7uY-soarWH3GbmnqwIvju9tt0KcSHSkiuGxGVACZ8ak7odu5u9Lo_Ek4r-aHK6-FwXBfwyPcTG-LAhjgOMhSdC_gPunfiOnT6zCZZyX6lz5vNWrxWqdULfWolSQq65py8Po1YeEOK4idOmv0_64wqozr-Pk749PHD06auJP3W23zMqnAhq56Qfm2-xYlLMmTn23AMXOSmbwau60KfNxut0CVr-1g9R0k__UvQj-zAomcZrAdKaxKcccE16EWuHXbRiGcpyc7y7AS978OyLiaZzbLxX4plMfybZX8wy-JR1Re6XuiNNBtsnY0fG6prVAq90ApyPKrtgiTIItBQnte8XOuaWZx5pCVk1t3ablHf0O4Jp9m2kdxxN8elz3XLU_ppxx33fqG4G5OMda9g_HMjPxFWdWWfWZm_HQqYB5lF5XhU9AUkhRAstQrX9BZTpNqK_dLSCVKfaFnz1_dtnndRP12Y0Zy0hdxmtKCSLi927ye90NiDuqvRd1JSFAlJv2zzyjLEQP7NsfD_s_Co7x0jBU2lajeE5K_TKDsVScfKonsVFxV1tfu9bTvhvSsin6YQWpE_6ifyCKbmYyDRFEyuq-yxazAHy_4g8fynOH8nZxzTXvd5hc_jFKY2242aqsD3E2_-jPz5z_wVZyj27YckOBjjSfAynn3Vku5JV5-s7QB4lpxVO9UlnbXxKt0JtnW3mhjs-jTzICgJq9782gZCnHk2uVg1fpYHPowiMPtiFNxkt24WuzG5obcoiHHsuxjhm_1t6CYZyVwXJgnM3cRLSJ7meZznMEcZduENu8UQuzDCPoy8wPNXGKc0ICiIYEQiHCHHg7QkrFjp38zXfHej3zDeBl4cRjcFSWgh9L8PgHFFvwJ908HY8e9u-K1-N5m0O-F4sGBCiqMUyWSh_2EB7Sb_DjgBvPgtQAC7t5n9vyUAiPWit-X0-ve4Ny0vbq9_66ph-V8AAAD__1itLxs">