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

    <tr>
        <th>Summary</th>
        <td>
            [SLPVectorizer] Miscompilation at O3
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            miscompilation,
            llvm:SLPVectorizer
      </td>
    </tr>

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

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

<pre>
    Reproducer:
```
; bin/opt -passes=slp-vectorizer reduced.ll -S
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@f = global i32 zeroinitializer
@.str = constant [4 x i8] c"%d\0A\00"

define i32 @main() {
entry:
  store i32 152, ptr @f, align 4
 %agg.tmp.sroa.0.0.copyload.i = load i32, ptr @f, align 4
  %add.i.i = shl i32 %agg.tmp.sroa.0.0.copyload.i, 24
  %sext.i = add i32 %add.i.i, 83886080
  %conv2.i = ashr i32 %sext.i, 24
  %and.i = and i32 %conv2.i, 66440127
  %cmp3.i.i = icmp ugt i32 %and.i, 33554431
  %shl.i.i = select i1 %cmp3.i.i, i32 0, i32 6
  %cond.i.i = shl i32 %and.i, %shl.i.i
  %0 = trunc i32 %cond.i.i to i8
  %sext.1.i = add i32 0, 83886080
  %conv2.1.i = ashr i32 %sext.1.i, 24
  %and.1.i = and i32 %conv2.1.i, 1
  %cmp3.i.1.i = icmp ugt i32 0, 0
  %shl.i.1.i = select i1 %cmp3.i.1.i, i32 0, i32 0
 %cond.i.1.i = shl i32 %and.1.i, %shl.i.1.i
  %1 = trunc i32 %cond.i.1.i to i8
  %conv17.1.i = and i8 %0, %1
  %sext.2.i = add i32 0, 83886080
 %conv2.2.i = ashr i32 %sext.2.i, 24
  %and.2.i = and i32 %conv2.2.i, 1
 %shl.i.2.i = select i1 false, i32 0, i32 0
  %cond.i.2.i = shl i32 %and.2.i, %shl.i.2.i
  %2 = trunc i32 %cond.i.2.i to i8
  %conv17.2.i = and i8 %conv17.1.i, %2
  %sext.3.i = add i32 0, 83886080
  %conv2.3.i = ashr i32 %sext.3.i, 24
  %and.3.i = and i32 %conv2.3.i, 1
  %shl.i.3.i = select i1 false, i32 0, i32 0
  %cond.i.3.i = shl i32 %and.3.i, %shl.i.3.i
  %3 = trunc i32 %cond.i.3.i to i8
  %conv17.3.i = and i8 %conv17.2.i, %3
 %sext.4.i = add i32 0, 83886080
  %conv2.4.i = ashr i32 %sext.4.i, 24
 %and.4.i = and i32 %conv2.4.i, 1
  %shl.i.4.i = select i1 false, i32 0, i32 0
  %cond.i.4.i = shl i32 %and.4.i, %shl.i.4.i
  %4 = trunc i32 %cond.i.4.i to i8
  %conv17.4.i = and i8 %conv17.3.i, %4
  %sext.5.i = add i32 0, 83886080
  %conv2.5.i = ashr i32 %sext.5.i, 24
  %and.5.i = and i32 %conv2.5.i, 1
  %shl.i.5.i = select i1 false, i32 0, i32 0
  %cond.i.5.i = shl i32 %and.5.i, %shl.i.5.i
  %5 = trunc i32 %cond.i.5.i to i8
 %conv17.5.i = and i8 %conv17.4.i, %5
  %sext.6.i = add i32 0, 83886080
 %conv2.6.i = ashr i32 %sext.6.i, 24
  %and.6.i = and i32 %conv2.6.i, 1
 %shl.i.6.i = select i1 false, i32 0, i32 0
  %cond.i.6.i = shl i32 %and.6.i, %shl.i.6.i
  %6 = trunc i32 %cond.i.6.i to i8
  %conv17.6.i = and i8 %conv17.5.i, %6
  %sext.7.i = add i32 0, 83886080
  %conv2.7.i = ashr i32 %sext.7.i, 24
  %and.7.i = and i32 %conv2.7.i, 1
  %shl.i.7.i = select i1 false, i32 0, i32 0
  %cond.i.7.i = shl i32 %and.7.i, %shl.i.7.i
  %7 = trunc i32 %cond.i.7.i to i8
  %conv17.7.i = and i8 %conv17.6.i, %7
  %conv = zext i8 %conv17.7.i to i32
  %call1 = call i32 (ptr, ...) @printf(ptr @.str, i32 %conv)
  ret i32 0
}

declare i32 @printf(ptr, ...)
```
```
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@f = global i32 0
@.str = constant [4 x i8] c"%d\0A\00"

define i32 @main() {
entry:
  store i32 152, ptr @f, align 4
  %agg.tmp.sroa.0.0.copyload.i = load i32, ptr @f, align 4
 %add.i.i = shl i32 %agg.tmp.sroa.0.0.copyload.i, 24
  %0 = insertelement <8 x i32> <i32 poison, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080>, i32 %add.i.i, i32 0
  %1 = add <8 x i32> <i32 83886080, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>, %0
 %2 = ashr <8 x i32> %1, splat (i32 24)
  %3 = trunc <8 x i32> %2 to <8 x i8>
  %4 = and <8 x i8> %3, <i8 -65, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %5 = zext <8 x i8> %4 to <8 x i32>
  %6 = shufflevector <8 x i32> %5, <8 x i32> poison, <2 x i32> <i32 0, i32 poison>
  %7 = shufflevector <2 x i32> %6, <2 x i32> <i32 poison, i32 0>, <2 x i32> <i32 0, i32 3>
  %8 = icmp ugt <2 x i32> %7, <i32 33554431, i32 0>
  %9 = call <8 x i1> @llvm.vector.insert.v8i1.v2i1(<8 x i1> <i1 poison, i1 poison, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false>, <2 x i1> %8, i64 0)
  %10 = select <8 x i1> %9, <8 x i8> zeroinitializer, <8 x i8> <i8 6, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>
  %11 = shl <8 x i8> %4, %10
  %12 = call i8 @llvm.vector.reduce.and.v8i8(<8 x i8> %11)
  %conv = zext i8 %12 to i32
 %call1 = call i32 (ptr, ...) @printf(ptr @.str, i32 %conv)
  ret i32 0
}

declare i32 @printf(ptr, ...)

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <8 x i1> @llvm.vector.insert.v8i1.v2i1(<8 x i1>, <2 x i1>, i64 immarg) #0

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i8 @llvm.vector.reduce.and.v8i8(<8 x i8>) #0

attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
```
llubi output:
Before SLP:
```
Entering function main
  store i32 152, ptr @f, align 4
 %agg.tmp.sroa.0.0.copyload.i = load i32, ptr @f, align 4 -> i32 152
 %add.i.i = shl i32 %agg.tmp.sroa.0.0.copyload.i, 24 -> i32 -1744830464
 %sext.i = add i32 %add.i.i, 83886080 -> i32 -1660944384
  %conv2.i = ashr i32 %sext.i, 24 -> i32 -99
  %and.i = and i32 %conv2.i, 66440127 -> i32 66440093
  %cmp3.i.i = icmp ugt i32 %and.i, 33554431 -> T
  %shl.i.i = select i1 %cmp3.i.i, i32 0, i32 6 -> i32 0
  %cond.i.i = shl i32 %and.i, %shl.i.i -> i32 66440093
  %0 = trunc i32 %cond.i.i to i8 -> i8 -99
 %sext.1.i = add i32 0, 83886080 -> i32 83886080
  %conv2.1.i = ashr i32 %sext.1.i, 24 -> i32 5
  %and.1.i = and i32 %conv2.1.i, 1 -> i32 1
 %cmp3.i.1.i = icmp ugt i32 0, 0 -> F
  %shl.i.1.i = select i1 %cmp3.i.1.i, i32 0, i32 0 -> i32 0
  %cond.i.1.i = shl i32 %and.1.i, %shl.i.1.i -> i32 1
  %1 = trunc i32 %cond.i.1.i to i8 -> i8 1
  %conv17.1.i = and i8 %0, %1 -> i8 1
  %sext.2.i = add i32 0, 83886080 -> i32 83886080
  %conv2.2.i = ashr i32 %sext.2.i, 24 -> i32 5
  %and.2.i = and i32 %conv2.2.i, 1 -> i32 1
  %shl.i.2.i = select i1 false, i32 0, i32 0 -> i32 0
  %cond.i.2.i = shl i32 %and.2.i, %shl.i.2.i -> i32 1
  %2 = trunc i32 %cond.i.2.i to i8 -> i8 1
  %conv17.2.i = and i8 %conv17.1.i, %2 -> i8 1
  %sext.3.i = add i32 0, 83886080 -> i32 83886080
  %conv2.3.i = ashr i32 %sext.3.i, 24 -> i32 5
 %and.3.i = and i32 %conv2.3.i, 1 -> i32 1
  %shl.i.3.i = select i1 false, i32 0, i32 0 -> i32 0
  %cond.i.3.i = shl i32 %and.3.i, %shl.i.3.i -> i32 1
  %3 = trunc i32 %cond.i.3.i to i8 -> i8 1
  %conv17.3.i = and i8 %conv17.2.i, %3 -> i8 1
  %sext.4.i = add i32 0, 83886080 -> i32 83886080
 %conv2.4.i = ashr i32 %sext.4.i, 24 -> i32 5
  %and.4.i = and i32 %conv2.4.i, 1 -> i32 1
  %shl.i.4.i = select i1 false, i32 0, i32 0 -> i32 0
  %cond.i.4.i = shl i32 %and.4.i, %shl.i.4.i -> i32 1
  %4 = trunc i32 %cond.i.4.i to i8 -> i8 1
  %conv17.4.i = and i8 %conv17.3.i, %4 -> i8 1
 %sext.5.i = add i32 0, 83886080 -> i32 83886080
  %conv2.5.i = ashr i32 %sext.5.i, 24 -> i32 5
  %and.5.i = and i32 %conv2.5.i, 1 -> i32 1
 %shl.i.5.i = select i1 false, i32 0, i32 0 -> i32 0
  %cond.i.5.i = shl i32 %and.5.i, %shl.i.5.i -> i32 1
  %5 = trunc i32 %cond.i.5.i to i8 -> i8 1
 %conv17.5.i = and i8 %conv17.4.i, %5 -> i8 1
  %sext.6.i = add i32 0, 83886080 -> i32 83886080
  %conv2.6.i = ashr i32 %sext.6.i, 24 -> i32 5
 %and.6.i = and i32 %conv2.6.i, 1 -> i32 1
  %shl.i.6.i = select i1 false, i32 0, i32 0 -> i32 0
  %cond.i.6.i = shl i32 %and.6.i, %shl.i.6.i -> i32 1
  %6 = trunc i32 %cond.i.6.i to i8 -> i8 1
  %conv17.6.i = and i8 %conv17.5.i, %6 -> i8 1
  %sext.7.i = add i32 0, 83886080 -> i32 83886080
 %conv2.7.i = ashr i32 %sext.7.i, 24 -> i32 5
  %and.7.i = and i32 %conv2.7.i, 1 -> i32 1
  %shl.i.7.i = select i1 false, i32 0, i32 0 -> i32 0
  %cond.i.7.i = shl i32 %and.7.i, %shl.i.7.i -> i32 1
  %7 = trunc i32 %cond.i.7.i to i8 -> i8 1
  %conv17.7.i = and i8 %conv17.6.i, %7 -> i8 1
 %conv = zext i8 %conv17.7.i to i32 -> i32 1
  %call1 = call i32 (ptr, ...) @printf(ptr @.str, i32 %conv)
    Printf: 1
   -> i32 2
  ret i32 0
Exiting function main
```
After SLP:
```
Entering function main
 store i32 152, ptr @f, align 4
  %agg.tmp.sroa.0.0.copyload.i = load i32, ptr @f, align 4 -> i32 152
  %add.i.i = shl i32 %agg.tmp.sroa.0.0.copyload.i, 24 -> i32 -1744830464
  %0 = insertelement <8 x i32> <i32 poison, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080>, i32 %add.i.i, i32 0 -> { i32 -1744830464, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080 }
  %1 = add <8 x i32> <i32 83886080, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>, %0 -> { i32 -1660944384, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080, i32 83886080 }
  %2 = ashr <8 x i32> %1, splat (i32 24) -> { i32 -99, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5 }
  %3 = trunc <8 x i32> %2 to <8 x i8> -> { i8 -99, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5 }
 %4 = and <8 x i8> %3, <i8 -65, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> -> { i8 -99, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1 }
  %5 = zext <8 x i8> %4 to <8 x i32> -> { i32 157, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1 }
  %6 = shufflevector <8 x i32> %5, <8 x i32> poison, <2 x i32> <i32 0, i32 poison> -> { i32 157, poison }
  %7 = shufflevector <2 x i32> %6, <2 x i32> <i32 poison, i32 0>, <2 x i32> <i32 0, i32 3> -> { i32 157, i32 0 }
  %8 = icmp ugt <2 x i32> %7, <i32 33554431, i32 0> -> { F, F }
  %9 = call <8 x i1> @llvm.vector.insert.v8i1.v2i1(<8 x i1> <i1 poison, i1 poison, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false>, <2 x i1> %8, i64 0) -> { F, F, F, F, F, F, F, F }
  %10 = select <8 x i1> %9, <8 x i8> zeroinitializer, <8 x i8> <i8 6, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0> -> { i8 6, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0 }
  %11 = shl <8 x i8> %4, %10 -> { i8 64, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1 }
  %12 = call i8 @llvm.vector.reduce.and.v8i8(<8 x i8> %11) -> i8 0
  %conv = zext i8 %12 to i32 -> i32 0
  %call1 = call i32 (ptr, ...) @printf(ptr @.str, i32 %conv)
 Printf: 0
   -> i32 2
  ret i32 0
Exiting function main
```
llvm version: a88f4f1962b47aa8db49b8687a7f8b9097a3d13b

C reproducer:
```
#include "csmith.h"
struct d {
  uint8_t a;
  uint16_t b
} f;
static uint64_t c[] = {66440127};
uint64_t e;
uint8_t h = 5;
uint32_t g(uint8_t, struct d);
int32_t j() {
  int16_t i = 10;
 struct d k = {152};
  for (e = 0; e < 22; ++e) {
    int32_t l[0];
 struct d *m = &f;
    h &= safe_lshift_func_int32_t_s_u(
 safe_add_func_int8_t_s_s(g(0, *m = k), 5) & c[0],
 safe_add_func_int16_t_s_s(6, (k.a > k.b) < l));
  }
  return i;
}
uint32_t g(uint8_t, struct d n) { return n.a; }
int main() {
 j();
  printf("%d\n", h);
}
```
```
> gcc -w -I/usr/include/csmith -fsanitize=address,undefined test.c && ./a.out
5
> bin/clang -w -I/usr/include/csmith -O3 test.c && ./a.out
0
```

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcm1tvo7r2wD-N-2IF4QuXPPQhTSfSX9p_7dGZo_NaOWAS7xKIwHTa-fRHtrkHF5Lp7szZUtUQsNflt4yx1wqsLMUh4_weeA_Ae7xjlTzmxX0so9cfb9_v9nn8dv8vfi7yuIp4AcgGuBvgu_WfuwHkAe5FBvAuP0u4OrOy5CUgj2V6Xr3wSOaF-MELWHDVP3bSFK6-AXcjWXHgEsZMspS95ZWEgDxCgDFfnQDZ8NUZBy4gG4L1P_UVDb-qI5_qfyvRHiAcArJBOFwloVsfZfqU33T36eqbaoZxZ4csxDnljQ2vof_k01WVPWf592yViqx6XR2yynRRf9RNdONDmu9ZCgXB8AcvcpEJKViqPDatnFIWumGUZ6VkmYTAe6DwFYoQeI8wUhKxFwNv627UP7dVEfNEZFxLBtQ9MYU4BHgNQfAA3A3PZPFmogFhKfPCNEUeBngLz0ordRN1zFJxyCBVDQH22OHgyNPZKYucOa7jOlF-fktzFjtC26kOlaR3pGgxceyIukt5NADel66E4LZ_yV9l3Z3FcdvdSFVNQxKGvhu6TYcoz15w06M8Fk0XI2gonGWNNyxrZdcCVEvfp9RFOGhln86k9UZEpzOsDrK1KauNJ8TzKCWodeGYdgh4yiMJBeqLU52UELc58HvOTONrdHXimy6ubiuLKot6HhkpMlfDqU8Wjdi6dqTIBhVNYUU2sHVrNGKKpqhqa9whR_QOSTTB0q3Hcw0BTcNEI5yoA4qsQNEYqfIQBUPfQx2UWjgawMdz8Fto1gGNp9hjG3vcY9-6ii-AJiwt-TTInvd4miQekcQdSWwliS0k8QXJDnGtBQ-QkuXjmdiYkimmxMaUjMaz8ZrcCJVMQyUjqKSDSqxQiQUqsUHtQkeaEaJ40OVMqY0p7TOtnaI2pHQSKb0RKZ1GSkdIaYeUWpFSC1JqQ9oFbvhE85Yz9WxMvalx6tmgepNQvRuhetNQvRFUr4PqWaF6fagdOs_GtIucN2DqL55OfRtSfwqpb0PqT02n_o1E_Wmi_oio3xH1rUR9yzD1bUi7uPkDpMHyYRrYmAZTTAMb02BymAY3Qg2moQYjqEEHNbBCDSxQAxvULnRBv4tu_IO_ymHrRjxpH2gRS1Oz-FBHtTXhWRZKquM4eo1P3XMhMpmYK7DeSTQ8avEAr7XQgssWEwgem_1DlLKi3UD0xXWKxnu53vE_b4Pm_o5bsg_ak33AlszsMERW8kLylJ-4IkO2oSKjwvJFfVNCz7ko86wZi-208Xd_J196w7-3UxxMEKid1yZNHwu_9cDYoncABj7uJsmRYrU7wFtYnlMm1Y2uBGDa3Lqjld5FX6wmj-ZsqPQOFjNqcupfNYs8ZRrZihCufE_bHEJ09WenyuumtrEu2jdPGz18ipXHKklSbvJAl955tam9s93gAmSLLwLYxqBu1ykMphXigULfKng4qNsIv2sD6akPh9vcC81BExXVr8kk9LXVctbdk6EBg7QI6qbpy8kxnjnmNnVeQoGcFyyQmogGzclWoL5Toy_dc_bW4yEgVLsZ6jY-VZDaEY7c_lN-aCf21v1BoAfWOJM2vm4Gt18PVffqz442Qu10eTG0m719N7fg3lM7HEfEJDgdtQ55CUXYC0gjEaEek6klA8K9pcJvuFIwyd5dlUVS5BncSFmUgGxgliv79ix6hlmeFJzDLC_fsghmeZV9F1kMyzOPqpRJtk85_C7StOCyKjJ44qe8eAM4zPKMGy2NNT8x-scDsxmT4nRixUFTw8T9dI-uHTNDQ5mUhdhXkpf6pFkJBQ8faCqsR0RvEZim1V7AvJLnSpqVzQNP1MLm2x9fL0sBXzLJC5EdYNIA1Wukz81Qw5UaMI2mn1sadbJWKKA0JC71aT-HsiSD3Rfi--6aUhLSa9LaPQHr9bU57q6zPuOuyW1ZbyPn3z-R_O4sGW_nluTB7X7MZsbrrmGDb1GSvNN3a9q8k-BdlUHvDeDmOTCbSzd9dj-ZUrdHaHl6fWQ9XJZpb0OElufcL_vMZ9_nojqfkLdEdTY3P8Hlyjy9PTrLU_YTVizI3lujsySPbwnTuxn9uTDN5_hHYVqa7bdGaXHi3x6l5TWACSsWlAOsUVpSGLBE6d0awXSUrigaWO6l2QKCNUqLawn2KC0vK0xYsaDCYI3SklrDsPOiosPcrTRfhrBEabYicfkcu7I2YQ_S8jLFRJAWVCwuOF9Ru7DcSe9WMeaCNF_YmJ7vZksc1jtpcbnDHqTllY8JKxYUQax30pJyiCVK7xZGZua7-UqJ5U6aLZpYo7S4fmKP0vJSyoQVC6oq1igtqa9M3oezhZYJQz8-kwLhV9OYbGo1nVp8kWv58irk1Ma4v3veJJIX126sP7HMcLGx_lt21vB_vRJhPAPBw4V3n2xmnc75NWWRMYUu8fELKdxQpBn5sV438r3bDvrmXFf46VkStoaE0Lv2s7Hgc2pIFquvFtXndlU9ahhAZOow5tlw00HfkE-rcU06Ya727flFJTAr4sHN97MFsk7LTp3e9WX_k4pmYz_f_zeY5H-7Mtvg7r9Z0MDHJQW7oVr6EXPOh9T-2uWsu6gKOLVo_-h1bLeIdT9kEauowBdelEJNXBvIwjChCVr7eE8DxsJ4T9f70A8DFiThfu2uA0ZiRPamxrWFxXtvmmAisiitYg4BxlF5EvLoHM2vc0pZVJGEcf1THAgrkcnwSUIGSHcC-U8S7k3tEybmSimZFJG-7NMnCSPzHkxTX2vfFQgeTfu2Ie--K0VH3cPrThL8JOEB4LBuoRcYtZmKvm7YtPtr8EsiCBtjzcoaubUXrZvPjX1qLd6YBmGiZnwcmt9JqU5QF1IhxuoY4AeAH3hfj9akLUiB9-AC73GsCeDNqf7ZlZ80eqByF_v6VmQJf0rLo0jkkxoZT7XAp_KpUk4pWaoJi-P2eqgvlwCHik-d0a_VPCs2eKsWLGulQwdEG4a3k8IUp1qaebbh8NlhUI3jZ2evpZAtTLXYdeNAc2vXpVBhzpuzc8GDWU2w6Z05TOPVvUUm4cVPw5r4NurbG7T7sVmmD7fw2Da7LMcO37v6Ag9RBFff4er_AN5VZQHwrr5BAN6Z-wOukpKpOf4HB-SRxXHByxLgbZWZH7PFUPJSOpGOJvahA_COOXklgbvxai3m7a4oZdlhVtuf5B2BYxfu4nsSr8ma3fF7FFDX90noB3fH-zVaU-ajiPiExTHx4z0N3WhNKKcRQwG-E_fYxZ6LcYAIpThwEoRplGCECPHDGEWAuvzEROroaTovDneiLCt-j_Da9YK7lO15WupX3jA-iTLKT2eRMjWrmTAAjFVPQDbf_vj6n_Y1NnXRe7wr7tXF1b46lOpJIEpZdoqkkKl-m27Y03uE_z9QBJmEf5K7qkjvj1KeSzXh4R3Au4OQx2rvRPkJ4J22wnyszkX-F4-kAq-cKQHe1f683OP_BgAA__88DWLK">