diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2017-11-26 17:15:42 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2017-11-26 17:15:42 +0300 |
commit | 1e9ee1812929192869a84aecaf2c643b895953be (patch) | |
tree | db03301de05dee64077ec46ae37c08c56d1e4445 /dev-util | |
parent | d0750e7129699d70e8fd7ae3cd9233506ef5ac7d (diff) |
valgrind: amd-fx cpu patch from https://bugs.kde.org/show_bug.cgi?id=322586
Diffstat (limited to 'dev-util')
-rw-r--r-- | dev-util/valgrind/files/support_for_TBM_bextr.patch | 1300 | ||||
-rw-r--r-- | dev-util/valgrind/files/valgrind-3.7.0-fno-stack-protector.patch | 12 | ||||
-rw-r--r-- | dev-util/valgrind/files/valgrind-3.7.0-respect-flags.patch | 13 | ||||
-rw-r--r-- | dev-util/valgrind/metadata.xml | 28 | ||||
-rw-r--r-- | dev-util/valgrind/valgrind-3.13.0-r1.ebuild | 97 | ||||
-rw-r--r-- | dev-util/valgrind/valgrind-scm.ebuild | 7 |
6 files changed, 1456 insertions, 1 deletions
diff --git a/dev-util/valgrind/files/support_for_TBM_bextr.patch b/dev-util/valgrind/files/support_for_TBM_bextr.patch new file mode 100644 index 0000000..719b4e4 --- /dev/null +++ b/dev-util/valgrind/files/support_for_TBM_bextr.patch @@ -0,0 +1,1300 @@ +--- valgrind-orig/VEX/priv/guest_amd64_toIR.c (revision 2763) ++++ valgrind-patched/VEX/priv/guest_amd64_toIR.c (working copy) +@@ -1,4 +1,3 @@ +- + /*--------------------------------------------------------------------*/ + /*--- begin guest_amd64_toIR.c ---*/ + /*--------------------------------------------------------------------*/ +@@ -673,6 +672,8 @@ + #define PFX_VEXnV1 (1<<19) /* ~VEX vvvv[1], if VEX present, else 0 */ + #define PFX_VEXnV2 (1<<20) /* ~VEX vvvv[2], if VEX present, else 0 */ + #define PFX_VEXnV3 (1<<21) /* ~VEX vvvv[3], if VEX present, else 0 */ ++#define PFX_VEXnvvvv (PFX_VEXnV0 | PFX_VEXnV1 | PFX_VEXnV2 | PFX_VEXnV3) ++#define PFX_XOP (1<<22) /* XOP prefix present (0x8F) */ + + + #define PFX_EMPTY 0x55000000 +@@ -30569,6 +30570,100 @@ + + /*------------------------------------------------------------*/ + /*--- ---*/ ++/*--- Top-level post-escape decoders: dis_ESC_0F3A__XOP ---*/ ++/*--- ---*/ ++/*------------------------------------------------------------*/ ++__attribute__((noinline)) ++static ++Long dis_ESC_0F3A__XOP( ++ /*MB_OUT*/DisResult* dres, ++ /*OUT*/ Bool* uses_vvvv, ++ Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ), ++ Bool resteerCisOk, ++ void* callback_opaque, ++ VexArchInfo* archinfo, ++ VexAbiInfo* vbi, ++ Prefix pfx, Int sz, Long deltaIN ++ ) ++{ ++ IRTemp addr = IRTemp_INVALID; ++ Int alen = 0; ++ HChar dis_buf[50]; ++ Long delta = deltaIN; ++ UChar opc = getUChar(delta); ++ delta++; ++ *uses_vvvv = False; ++ ++ switch (opc) { ++ /* BEXTR r32b, r/m32, imm32 = XOP.0.vvvv.LZ.00 0x10 /r /id */ ++ /* BEXTR r64b, r/m64, imm32 = VEX.W.vvvv.LZ.00 0x10 /r /id */ ++ case 0x10: ++ if ((pfx & PFX_VEXnvvvv) == 0 && 0==getVexL(pfx)/*LZ*/) { ++ Int size = getRexW(pfx) ? 8 : 4, ctrl; ++ UChar start, len, opsize; ++ IRType ty = szToITy(size); ++ IRTemp dst = newTemp(ty); ++ IRTemp src1 = newTemp(ty); ++ UChar rm = getUChar(delta); ++ ++ if (epartIsReg(rm)) { ++ delta++; ++ ctrl = getSDisp32(delta); ++ assign( src1, getIRegE(size,pfx,rm) ); ++ DIP("bextr %x,%s,%s\n", ctrl, ++ nameIRegE(size,pfx,rm), nameIRegG(size,pfx,rm)); ++ } else { ++ addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 ); ++ delta += alen; ++ ctrl = getSDisp32(delta); ++ assign( src1, loadLE(ty, mkexpr(addr)) ); ++ DIP("bextr %x,%s,%s\n", ctrl, dis_buf, nameIRegG(size,pfx,rm)); ++ } ++ ++ delta += 4; /* += control immediate */ ++ ++ start = ctrl & 0xff; ++ len = (ctrl >> 8) & 0xff; ++ opsize = 8*size; ++ ++ if ((start + len) < opsize) { ++ if (len == 0) { ++ assign(dst, mkU(ty, 0)); ++ } else { ++ assign (dst, ++ binop(mkSizedOp(ty,Iop_Shr8), ++ binop( ++ mkSizedOp(ty,Iop_Shl8), ++ mkexpr(src1), ++ mkU8(opsize-start-len)), ++ mkU8(opsize - len))); ++ } ++ } else { ++ if (start < opsize) { ++ assign(dst, binop( ++ mkSizedOp(ty,Iop_Shr8), mkexpr(src1), mkU8(start))); ++ } else { ++ assign(dst, mkU(ty, 0)); ++ } ++ } ++ ++ putIRegG( size, pfx, rm, mkexpr(dst) ); ++ stmt( IRStmt_Put( OFFB_CC_OP, mkU64(size == 8 ++ ? AMD64G_CC_OP_ANDN64 ++ : AMD64G_CC_OP_ANDN32)) ); ++ stmt( IRStmt_Put( OFFB_CC_DEP1, widenUto64(mkexpr(dst))) ); ++ stmt( IRStmt_Put( OFFB_CC_DEP2, mkU64(0)) ); ++ *uses_vvvv = True; ++ goto decode_success; ++ } ++ } ++ return deltaIN; ++decode_success: ++ return delta; ++} ++ ++/*------------------------------------------------------------*/ ++/*--- ---*/ + /*--- Disassemble a single instruction ---*/ + /*--- ---*/ + /*------------------------------------------------------------*/ +@@ -30742,24 +30837,39 @@ + if (archinfo->hwcaps & VEX_HWCAPS_AMD64_AVX) { + /* Used temporarily for holding VEX prefixes. */ + UChar vex0 = getUChar(delta); +- if (vex0 == 0xC4) { +- /* 3-byte VEX */ ++ ++ if (vex0 == 0xC4 || vex0 == 0x8f) { ++ /* 3-byte VEX or XOP */ + UChar vex1 = getUChar(delta+1); + UChar vex2 = getUChar(delta+2); + delta += 3; +- pfx |= PFX_VEX; ++ ++ pfx |= (vex0 == 0xC4) ? PFX_VEX : PFX_XOP; + /* Snarf contents of byte 1 */ + /* R */ pfx |= (vex1 & (1<<7)) ? 0 : PFX_REXR; + /* X */ pfx |= (vex1 & (1<<6)) ? 0 : PFX_REXX; + /* B */ pfx |= (vex1 & (1<<5)) ? 0 : PFX_REXB; + /* m-mmmm */ +- switch (vex1 & 0x1F) { +- case 1: esc = ESC_0F; break; +- case 2: esc = ESC_0F38; break; +- case 3: esc = ESC_0F3A; break; +- /* Any other m-mmmm field will #UD */ +- default: goto decode_failure; ++ if (pfx & PFX_VEX) { ++ switch (vex1 & 0x1F) { ++ case 1: esc = ESC_0F; break; ++ case 2: esc = ESC_0F38; break; ++ case 3: esc = ESC_0F3A; break; ++ /* Any other m-mmmm field will #UD */ ++ default: ++ goto decode_failure; ++ } ++ } else if (pfx & PFX_XOP) { ++ switch (vex1 & 0x1F) { ++ case 8: esc = ESC_0F; break; ++ case 9: esc = ESC_0F38; break; ++ case 10: esc = ESC_0F3A; break; ++ /* Any other m-mmmm field will #UD */ ++ default: goto decode_failure; ++ } + } ++ ++ + /* Snarf contents of byte 2 */ + /* W */ pfx |= (vex2 & (1<<7)) ? PFX_REXW : 0; + /* ~v3 */ pfx |= (vex2 & (1<<6)) ? 0 : PFX_VEXnV3; +@@ -30800,7 +30910,7 @@ + esc = ESC_0F; + } + /* Can't have both VEX and REX */ +- if ((pfx & PFX_VEX) && (pfx & PFX_REX)) ++ if ((pfx & (PFX_VEX | PFX_XOP)) && (pfx & PFX_REX)) + goto decode_failure; /* can't have both */ + } + +@@ -30849,7 +30959,7 @@ + + /* Eat up opcode escape bytes, until we're really looking at the + primary opcode byte. But only if there's no VEX present. */ +- if (!(pfx & PFX_VEX)) { ++ if (!(pfx & (PFX_VEX | PFX_XOP))) { + vassert(esc == ESC_NONE); + pre = getUChar(delta); + if (pre == 0x0F) { +@@ -30867,7 +30977,7 @@ + byte. */ + Long delta_at_primary_opcode = delta; + +- if (!(pfx & PFX_VEX)) { ++ if (!(pfx & (PFX_VEX | PFX_XOP))) { + /* Handle non-VEX prefixed instructions. "Legacy" (non-VEX) SSE + instructions preserve the upper 128 bits of YMM registers; + iow we can simply ignore the presence of the upper halves of +@@ -30896,7 +31006,7 @@ + default: + vassert(0); + } +- } else { ++ } else if (pfx & PFX_VEX) { + /* VEX prefixed instruction */ + /* Sloppy Intel wording: "An instruction encoded with a VEX.128 + prefix that loads a YMM register operand ..." zeroes out bits +@@ -30934,6 +31044,28 @@ + if (getVexNvvvv(pfx) != 0) + goto decode_failure; + } ++ } else { ++ /* XOP */ ++ Bool uses_vvvv = False; ++ switch (esc) { ++ case ESC_0F: goto decode_failure; /* XXX */ ++ case ESC_0F38: goto decode_failure; /* XXX */ ++ case ESC_0F3A: ++ delta = dis_ESC_0F3A__XOP ( &dres, &uses_vvvv, ++ resteerOkFn, resteerCisOk, ++ callback_opaque, ++ archinfo, vbi, pfx, sz, delta ); ++ break; ++ case ESC_NONE: goto decode_failure; ++ default: ++ vassert(0); ++ } ++ /* If the insn doesn't use VEX.vvvv then it must be all ones. Check this. */ ++ if (!uses_vvvv) { ++ if (getVexNvvvv(pfx) != 0) ++ goto decode_failure; ++ ++ } + } + + vassert(delta - delta_at_primary_opcode >= 0); +Index: none/tests/amd64/tbm.c +=================================================================== +--- none/tests/amd64/tbm.c (revision 0) ++++ none/tests/amd64/tbm.c (working copy) +@@ -0,0 +1,65 @@ ++#include <stdint.h> ++#include <stdio.h> ++ ++#define decl_imm_bextr(t,n,k) \ ++__attribute__((noinline)) \ ++void do_bextr##t##_##n (/*OUT*/uint32_t* flags, /*OUT*/uint64_t* res, uint##t##_t src) \ ++{ \ ++ uint64_t tem, flag; \ ++ __asm__ __volatile__( \ ++ "movabsq $0x5555555555555555, %0" "\n\t" \ ++ "bextr $" #n ", %2, %"#k "\n\t" \ ++ "pushfq" "\n\t" \ ++ "popq %1" "\n" \ ++ : "=&r" (tem), "=&r" (flag) : "r" (src) : "cc" ); \ ++ *res = tem; \ ++ *flags = flag & 0x8d5; \ ++ __asm__ __volatile__( \ ++ "movabsq $0x5555555555555555, %0" "\n\t" \ ++ "bextr $" #n ", %2, %"#k "\n\t" \ ++ "pushfq" "\n\t" \ ++ "popq %1" "\n" \ ++ : "=&r" (tem), "=&r" (flag) : "m" (src) : "cc" ); \ ++ if (*res != tem || *flags != (flag & 0x8d5)) \ ++ printf ("Difference between r and m variants\n"); } ++ ++#define decl_imm_bextr32(n) decl_imm_bextr(32,n,k0) ++#define decl_imm_bextr64(n) decl_imm_bextr(64,n,0) ++ ++#define do_imm_bextr(t,n,flags,res,src) do_bextr##t##_##n(flags,res,src) ++ ++#define decl_imm_bextr_pair(x) \ ++decl_imm_bextr64(x) \ ++decl_imm_bextr32(x) ++ ++/* constants from libpython2.7 */ ++decl_imm_bextr_pair(0x117); ++decl_imm_bextr_pair(0x404); ++decl_imm_bextr_pair(0xc08); ++decl_imm_bextr_pair(0x1f01); ++ ++#define bextr_loop(t, imm) \ ++ w1 = 0x57657438291CDEF0ULL; \ ++ while (1) { \ ++ do_imm_bextr(t, imm, &flags, &res, w1); \ ++ printf("bextr"#t" %016lx -> %016lx %04x\n", w1, res, flags); \ ++ if (w1 == 0) break; \ ++ w1 = ((w1 >> 2) | (w1 >> 1)) + (w1 / 17ULL); \ ++ } ++#define bextr_loop_pair(imm) \ ++bextr_loop(32, imm) \ ++bextr_loop(64, imm) ++ ++int main ( void ) ++{ ++ uint64_t w1; ++ uint64_t res; ++ uint32_t flags; ++ ++ bextr_loop_pair(0x117); ++ bextr_loop_pair(0x404); ++ bextr_loop_pair(0xc08); ++ bextr_loop_pair(0x1f01); ++ ++ return 0; ++} +Index: none/tests/amd64/tbm.stderr.exp +=================================================================== +Index: none/tests/amd64/tbm.stdout.exp +=================================================================== +--- none/tests/amd64/tbm.stdout.exp (revision 0) ++++ none/tests/amd64/tbm.stdout.exp (working copy) +@@ -0,0 +1,984 @@ ++bextr32 57657438291cdef0 -> 0000000000000000 0054 ++bextr32 452015034e67c955 -> 0000000000000000 0054 ++bextr32 37e901ef56b302d6 -> 0000000000000001 0010 ++bextr32 2348b20e142667cf -> 0000000000000000 0054 ++bextr32 1c09d34c26e1c212 -> 0000000000000001 0010 ++bextr32 10ad37922d51847f -> 0000000000000000 0054 ++bextr32 0d7b015093984564 -> 0000000000000001 0010 ++bextr32 08cac1103a60926a -> 0000000000000000 0054 ++bextr32 06fc5681c8cd2b10 -> 0000000000000001 0010 ++bextr32 04687224d51a87fa -> 0000000000000000 0054 ++bextr32 03809eacb986283a -> 0000000000000001 0010 ++bextr32 02152e09a7eb825e -> 0000000000000001 0010 ++bextr32 01af3c969c7725a6 -> 0000000000000000 0054 ++bextr32 01193d5aad28c013 -> 0000000000000000 0054 ++bextr32 00df6b2373776c4a -> 0000000000000000 0054 ++bextr32 008d24457d4341d1 -> 0000000000000000 0054 ++bextr32 007028a17fc8b89e -> 0000000000000001 0010 ++bextr32 0042b77370e42ef0 -> 0000000000000001 0010 ++bextr32 0035ecaa6c888c28 -> 0000000000000001 0010 ++bextr32 00232b89c5c8c9b6 -> 0000000000000001 0010 ++bextr32 001bf185a53e82dc -> 0000000000000000 0054 ++bextr32 0011a1af9c2edaa2 -> 0000000000000000 0054 ++bextr32 000e0282bc13b27b -> 0000000000000000 0054 ++bextr32 000854daa0b4cc02 -> 0000000000000001 0010 ++bextr32 0006bcf63e2fbf3d -> 0000000000000000 0054 ++bextr32 000464f7852a566a -> 0000000000000000 0054 ++bextr32 00037dac915ab5c5 -> 0000000000000000 0054 ++bextr32 000234911b32831c -> 0000000000000000 0054 ++bextr32 0001c0a2862c25c1 -> 0000000000000000 0054 ++bextr32 00010addcd657882 -> 0000000000000000 0054 ++bextr32 0000d7b2a9b6ab1d -> 0000000000000001 0010 ++bextr32 00008cae2719cda3 -> 0000000000000000 0054 ++bextr32 00006fc61694404d -> 0000000000000001 0010 ++bextr32 00004686be70612c -> 0000000000000000 0054 ++bextr32 0000380a0af0025a -> 0000000000000001 0010 ++bextr32 000021536a829879 -> 0000000000000001 0010 ++bextr32 00001af3d8f8abea -> 0000000000000001 0010 ++bextr32 00001193de14a839 -> 0000000000000000 0054 ++bextr32 00000df6b24569e5 -> 0000000000000000 0054 ++bextr32 000008d2446cc8f9 -> 0000000000000000 0054 ++bextr32 000007028a18af7d -> 0000000000000000 0054 ++bextr32 0000042b77359960 -> 0000000000000000 0054 ++bextr32 0000035ecaa6d9df -> 0000000000000001 0010 ++bextr32 00000232b89c662a -> 0000000000000001 0010 ++bextr32 000001bf185a50b0 -> 0000000000000000 0054 ++bextr32 0000011a1af9c13b -> 0000000000000001 0010 ++bextr32 000000e0282bc000 -> 0000000000000000 0054 ++bextr32 000000854daa0a5a -> 0000000000000001 0010 ++bextr32 0000006bcf63e2b5 -> 0000000000000000 0054 ++bextr32 000000464f7852a0 -> 0000000000000000 0054 ++bextr32 00000037dac915a7 -> 0000000000000001 0010 ++bextr32 000000234911b322 -> 0000000000000000 0054 ++bextr32 0000001c0a2862bc -> 0000000000000000 0054 ++bextr32 00000010addcd664 -> 0000000000000001 0010 ++bextr32 0000000d7b2a9b66 -> 0000000000000000 0054 ++bextr32 00000008cae27197 -> 0000000000000001 0010 ++bextr32 00000006fc616943 -> 0000000000000000 0054 ++bextr32 00000004686be704 -> 0000000000000000 0054 ++bextr32 0000000380a0aeff -> 0000000000000001 0010 ++bextr32 000000021536a868 -> 0000000000000000 0054 ++bextr32 00000001af3d8fad -> 0000000000000000 0054 ++bextr32 00000001193de163 -> 0000000000000000 0054 ++bextr32 00000000df6b2459 -> 0000000000000000 0054 ++bextr32 000000008d2446ca -> 0000000000000000 0054 ++bextr32 000000007028a18a -> 0000000000000000 0054 ++bextr32 0000000042b77358 -> 0000000000000001 0010 ++bextr32 0000000035ecaa6c -> 0000000000000001 0010 ++bextr32 00000000232b89c5 -> 0000000000000000 0054 ++bextr32 000000001bf185a4 -> 0000000000000001 0010 ++bextr32 0000000011a1af9b -> 0000000000000001 0010 ++bextr32 000000000e0282bb -> 0000000000000000 0054 ++bextr32 000000000854daa0 -> 0000000000000000 0054 ++bextr32 0000000006bcf63d -> 0000000000000001 0010 ++bextr32 000000000464f784 -> 0000000000000000 0054 ++bextr32 00000000037dac90 -> 0000000000000000 0054 ++bextr32 000000000234911a -> 0000000000000000 0054 ++bextr32 0000000001c0a285 -> 0000000000000001 0010 ++bextr32 00000000010addcc -> 0000000000000000 0054 ++bextr32 0000000000d7b2a8 -> 0000000000000001 0010 ++bextr32 00000000008cae26 -> 0000000000000001 0010 ++bextr32 00000000006fc615 -> 0000000000000000 0054 ++bextr32 00000000004686bd -> 0000000000000000 0054 ++bextr32 0000000000380a0a -> 0000000000000000 0054 ++bextr32 0000000000215369 -> 0000000000000000 0054 ++bextr32 00000000001af3d7 -> 0000000000000000 0054 ++bextr32 00000000001193de -> 0000000000000000 0054 ++bextr32 00000000000df6b1 -> 0000000000000000 0054 ++bextr32 000000000008d242 -> 0000000000000000 0054 ++bextr32 0000000000070287 -> 0000000000000000 0054 ++bextr32 0000000000042b72 -> 0000000000000000 0054 ++bextr32 0000000000035ec7 -> 0000000000000000 0054 ++bextr32 00000000000232b3 -> 0000000000000000 0054 ++bextr32 000000000001bf16 -> 0000000000000000 0054 ++bextr32 0000000000011a1b -> 0000000000000000 0054 ++bextr32 000000000000e027 -> 0000000000000000 0054 ++bextr32 000000000000854a -> 0000000000000000 0054 ++bextr32 0000000000006bce -> 0000000000000000 0054 ++bextr32 000000000000464e -> 0000000000000000 0054 ++bextr32 00000000000037d9 -> 0000000000000000 0054 ++bextr32 0000000000002347 -> 0000000000000000 0054 ++bextr32 0000000000001c06 -> 0000000000000000 0054 ++bextr32 00000000000010a9 -> 0000000000000000 0054 ++bextr32 0000000000000d78 -> 0000000000000000 0054 ++bextr32 00000000000008c8 -> 0000000000000000 0054 ++bextr32 00000000000006fa -> 0000000000000000 0054 ++bextr32 0000000000000468 -> 0000000000000000 0054 ++bextr32 0000000000000380 -> 0000000000000000 0054 ++bextr32 0000000000000214 -> 0000000000000000 0054 ++bextr32 00000000000001ae -> 0000000000000000 0054 ++bextr32 0000000000000118 -> 0000000000000000 0054 ++bextr32 00000000000000de -> 0000000000000000 0054 ++bextr32 000000000000008c -> 0000000000000000 0054 ++bextr32 000000000000006f -> 0000000000000000 0054 ++bextr32 0000000000000045 -> 0000000000000000 0054 ++bextr32 0000000000000037 -> 0000000000000000 0054 ++bextr32 0000000000000022 -> 0000000000000000 0054 ++bextr32 000000000000001b -> 0000000000000000 0054 ++bextr32 0000000000000010 -> 0000000000000000 0054 ++bextr32 000000000000000c -> 0000000000000000 0054 ++bextr32 0000000000000007 -> 0000000000000000 0054 ++bextr32 0000000000000003 -> 0000000000000000 0054 ++bextr32 0000000000000001 -> 0000000000000000 0054 ++bextr32 0000000000000000 -> 0000000000000000 0054 ++bextr64 57657438291cdef0 -> 0000000000000000 0054 ++bextr64 452015034e67c955 -> 0000000000000000 0054 ++bextr64 37e901ef56b302d6 -> 0000000000000001 0010 ++bextr64 2348b20e142667cf -> 0000000000000000 0054 ++bextr64 1c09d34c26e1c212 -> 0000000000000001 0010 ++bextr64 10ad37922d51847f -> 0000000000000000 0054 ++bextr64 0d7b015093984564 -> 0000000000000001 0010 ++bextr64 08cac1103a60926a -> 0000000000000000 0054 ++bextr64 06fc5681c8cd2b10 -> 0000000000000001 0010 ++bextr64 04687224d51a87fa -> 0000000000000000 0054 ++bextr64 03809eacb986283a -> 0000000000000001 0010 ++bextr64 02152e09a7eb825e -> 0000000000000001 0010 ++bextr64 01af3c969c7725a6 -> 0000000000000000 0054 ++bextr64 01193d5aad28c013 -> 0000000000000000 0054 ++bextr64 00df6b2373776c4a -> 0000000000000000 0054 ++bextr64 008d24457d4341d1 -> 0000000000000000 0054 ++bextr64 007028a17fc8b89e -> 0000000000000001 0010 ++bextr64 0042b77370e42ef0 -> 0000000000000001 0010 ++bextr64 0035ecaa6c888c28 -> 0000000000000001 0010 ++bextr64 00232b89c5c8c9b6 -> 0000000000000001 0010 ++bextr64 001bf185a53e82dc -> 0000000000000000 0054 ++bextr64 0011a1af9c2edaa2 -> 0000000000000000 0054 ++bextr64 000e0282bc13b27b -> 0000000000000000 0054 ++bextr64 000854daa0b4cc02 -> 0000000000000001 0010 ++bextr64 0006bcf63e2fbf3d -> 0000000000000000 0054 ++bextr64 000464f7852a566a -> 0000000000000000 0054 ++bextr64 00037dac915ab5c5 -> 0000000000000000 0054 ++bextr64 000234911b32831c -> 0000000000000000 0054 ++bextr64 0001c0a2862c25c1 -> 0000000000000000 0054 ++bextr64 00010addcd657882 -> 0000000000000000 0054 ++bextr64 0000d7b2a9b6ab1d -> 0000000000000001 0010 ++bextr64 00008cae2719cda3 -> 0000000000000000 0054 ++bextr64 00006fc61694404d -> 0000000000000001 0010 ++bextr64 00004686be70612c -> 0000000000000000 0054 ++bextr64 0000380a0af0025a -> 0000000000000001 0010 ++bextr64 000021536a829879 -> 0000000000000001 0010 ++bextr64 00001af3d8f8abea -> 0000000000000001 0010 ++bextr64 00001193de14a839 -> 0000000000000000 0054 ++bextr64 00000df6b24569e5 -> 0000000000000000 0054 ++bextr64 000008d2446cc8f9 -> 0000000000000000 0054 ++bextr64 000007028a18af7d -> 0000000000000000 0054 ++bextr64 0000042b77359960 -> 0000000000000000 0054 ++bextr64 0000035ecaa6d9df -> 0000000000000001 0010 ++bextr64 00000232b89c662a -> 0000000000000001 0010 ++bextr64 000001bf185a50b0 -> 0000000000000000 0054 ++bextr64 0000011a1af9c13b -> 0000000000000001 0010 ++bextr64 000000e0282bc000 -> 0000000000000000 0054 ++bextr64 000000854daa0a5a -> 0000000000000001 0010 ++bextr64 0000006bcf63e2b5 -> 0000000000000000 0054 ++bextr64 000000464f7852a0 -> 0000000000000000 0054 ++bextr64 00000037dac915a7 -> 0000000000000001 0010 ++bextr64 000000234911b322 -> 0000000000000000 0054 ++bextr64 0000001c0a2862bc -> 0000000000000000 0054 ++bextr64 00000010addcd664 -> 0000000000000001 0010 ++bextr64 0000000d7b2a9b66 -> 0000000000000000 0054 ++bextr64 00000008cae27197 -> 0000000000000001 0010 ++bextr64 00000006fc616943 -> 0000000000000000 0054 ++bextr64 00000004686be704 -> 0000000000000000 0054 ++bextr64 0000000380a0aeff -> 0000000000000001 0010 ++bextr64 000000021536a868 -> 0000000000000000 0054 ++bextr64 00000001af3d8fad -> 0000000000000000 0054 ++bextr64 00000001193de163 -> 0000000000000000 0054 ++bextr64 00000000df6b2459 -> 0000000000000000 0054 ++bextr64 000000008d2446ca -> 0000000000000000 0054 ++bextr64 000000007028a18a -> 0000000000000000 0054 ++bextr64 0000000042b77358 -> 0000000000000001 0010 ++bextr64 0000000035ecaa6c -> 0000000000000001 0010 ++bextr64 00000000232b89c5 -> 0000000000000000 0054 ++bextr64 000000001bf185a4 -> 0000000000000001 0010 ++bextr64 0000000011a1af9b -> 0000000000000001 0010 ++bextr64 000000000e0282bb -> 0000000000000000 0054 ++bextr64 000000000854daa0 -> 0000000000000000 0054 ++bextr64 0000000006bcf63d -> 0000000000000001 0010 ++bextr64 000000000464f784 -> 0000000000000000 0054 ++bextr64 00000000037dac90 -> 0000000000000000 0054 ++bextr64 000000000234911a -> 0000000000000000 0054 ++bextr64 0000000001c0a285 -> 0000000000000001 0010 ++bextr64 00000000010addcc -> 0000000000000000 0054 ++bextr64 0000000000d7b2a8 -> 0000000000000001 0010 ++bextr64 00000000008cae26 -> 0000000000000001 0010 ++bextr64 00000000006fc615 -> 0000000000000000 0054 ++bextr64 00000000004686bd -> 0000000000000000 0054 ++bextr64 0000000000380a0a -> 0000000000000000 0054 ++bextr64 0000000000215369 -> 0000000000000000 0054 ++bextr64 00000000001af3d7 -> 0000000000000000 0054 ++bextr64 00000000001193de -> 0000000000000000 0054 ++bextr64 00000000000df6b1 -> 0000000000000000 0054 ++bextr64 000000000008d242 -> 0000000000000000 0054 ++bextr64 0000000000070287 -> 0000000000000000 0054 ++bextr64 0000000000042b72 -> 0000000000000000 0054 ++bextr64 0000000000035ec7 -> 0000000000000000 0054 ++bextr64 00000000000232b3 -> 0000000000000000 0054 ++bextr64 000000000001bf16 -> 0000000000000000 0054 ++bextr64 0000000000011a1b -> 0000000000000000 0054 ++bextr64 000000000000e027 -> 0000000000000000 0054 ++bextr64 000000000000854a -> 0000000000000000 0054 ++bextr64 0000000000006bce -> 0000000000000000 0054 ++bextr64 000000000000464e -> 0000000000000000 0054 ++bextr64 00000000000037d9 -> 0000000000000000 0054 ++bextr64 0000000000002347 -> 0000000000000000 0054 ++bextr64 0000000000001c06 -> 0000000000000000 0054 ++bextr64 00000000000010a9 -> 0000000000000000 0054 ++bextr64 0000000000000d78 -> 0000000000000000 0054 ++bextr64 00000000000008c8 -> 0000000000000000 0054 ++bextr64 00000000000006fa -> 0000000000000000 0054 ++bextr64 0000000000000468 -> 0000000000000000 0054 ++bextr64 0000000000000380 -> 0000000000000000 0054 ++bextr64 0000000000000214 -> 0000000000000000 0054 ++bextr64 00000000000001ae -> 0000000000000000 0054 ++bextr64 0000000000000118 -> 0000000000000000 0054 ++bextr64 00000000000000de -> 0000000000000000 0054 ++bextr64 000000000000008c -> 0000000000000000 0054 ++bextr64 000000000000006f -> 0000000000000000 0054 ++bextr64 0000000000000045 -> 0000000000000000 0054 ++bextr64 0000000000000037 -> 0000000000000000 0054 ++bextr64 0000000000000022 -> 0000000000000000 0054 ++bextr64 000000000000001b -> 0000000000000000 0054 ++bextr64 0000000000000010 -> 0000000000000000 0054 ++bextr64 000000000000000c -> 0000000000000000 0054 ++bextr64 0000000000000007 -> 0000000000000000 0054 ++bextr64 0000000000000003 -> 0000000000000000 0054 ++bextr64 0000000000000001 -> 0000000000000000 0054 ++bextr64 0000000000000000 -> 0000000000000000 0054 ++bextr32 57657438291cdef0 -> 000000000000000f 0014 ++bextr32 452015034e67c955 -> 0000000000000005 0014 ++bextr32 37e901ef56b302d6 -> 000000000000000d 0010 ++bextr32 2348b20e142667cf -> 000000000000000c 0014 ++bextr32 1c09d34c26e1c212 -> 0000000000000001 0010 ++bextr32 10ad37922d51847f -> 0000000000000007 0010 ++bextr32 0d7b015093984564 -> 0000000000000006 0014 ++bextr32 08cac1103a60926a -> 0000000000000006 0014 ++bextr32 06fc5681c8cd2b10 -> 0000000000000001 0010 ++bextr32 04687224d51a87fa -> 000000000000000f 0014 ++bextr32 03809eacb986283a -> 0000000000000003 0014 ++bextr32 02152e09a7eb825e -> 0000000000000005 0014 ++bextr32 01af3c969c7725a6 -> 000000000000000a 0014 ++bextr32 01193d5aad28c013 -> 0000000000000001 0010 ++bextr32 00df6b2373776c4a -> 0000000000000004 0010 ++bextr32 008d24457d4341d1 -> 000000000000000d 0010 ++bextr32 007028a17fc8b89e -> 0000000000000009 0014 ++bextr32 0042b77370e42ef0 -> 000000000000000f 0014 ++bextr32 0035ecaa6c888c28 -> 0000000000000002 0010 ++bextr32 00232b89c5c8c9b6 -> 000000000000000b 0010 ++bextr32 001bf185a53e82dc -> 000000000000000d 0010 ++bextr32 0011a1af9c2edaa2 -> 000000000000000a 0014 ++bextr32 000e0282bc13b27b -> 0000000000000007 0010 ++bextr32 000854daa0b4cc02 -> 0000000000000000 0054 ++bextr32 0006bcf63e2fbf3d -> 0000000000000003 0014 ++bextr32 000464f7852a566a -> 0000000000000006 0014 ++bextr32 00037dac915ab5c5 -> 000000000000000c 0014 ++bextr32 000234911b32831c -> 0000000000000001 0010 ++bextr32 0001c0a2862c25c1 -> 000000000000000c 0014 ++bextr32 00010addcd657882 -> 0000000000000008 0010 ++bextr32 0000d7b2a9b6ab1d -> 0000000000000001 0010 ++bextr32 00008cae2719cda3 -> 000000000000000a 0014 ++bextr32 00006fc61694404d -> 0000000000000004 0010 ++bextr32 00004686be70612c -> 0000000000000002 0010 ++bextr32 0000380a0af0025a -> 0000000000000005 0014 ++bextr32 000021536a829879 -> 0000000000000007 0010 ++bextr32 00001af3d8f8abea -> 000000000000000e 0010 ++bextr32 00001193de14a839 -> 0000000000000003 0014 ++bextr32 00000df6b24569e5 -> 000000000000000e 0010 ++bextr32 000008d2446cc8f9 -> 000000000000000f 0014 ++bextr32 000007028a18af7d -> 0000000000000007 0010 ++bextr32 0000042b77359960 -> 0000000000000006 0014 ++bextr32 0000035ecaa6d9df -> 000000000000000d 0010 ++bextr32 00000232b89c662a -> 0000000000000002 0010 ++bextr32 000001bf185a50b0 -> 000000000000000b 0010 ++bextr32 0000011a1af9c13b -> 0000000000000003 0014 ++bextr32 000000e0282bc000 -> 0000000000000000 0054 ++bextr32 000000854daa0a5a -> 0000000000000005 0014 ++bextr32 0000006bcf63e2b5 -> 000000000000000b 0010 ++bextr32 000000464f7852a0 -> 000000000000000a 0014 ++bextr32 00000037dac915a7 -> 000000000000000a 0014 ++bextr32 000000234911b322 -> 0000000000000002 0010 ++bextr32 0000001c0a2862bc -> 000000000000000b 0010 ++bextr32 00000010addcd664 -> 0000000000000006 0014 ++bextr32 0000000d7b2a9b66 -> 0000000000000006 0014 ++bextr32 00000008cae27197 -> 0000000000000009 0014 ++bextr32 00000006fc616943 -> 0000000000000004 0010 ++bextr32 00000004686be704 -> 0000000000000000 0054 ++bextr32 0000000380a0aeff -> 000000000000000f 0014 ++bextr32 000000021536a868 -> 0000000000000006 0014 ++bextr32 00000001af3d8fad -> 000000000000000a 0014 ++bextr32 00000001193de163 -> 0000000000000006 0014 ++bextr32 00000000df6b2459 -> 0000000000000005 0014 ++bextr32 000000008d2446ca -> 000000000000000c 0014 ++bextr32 000000007028a18a -> 0000000000000008 0010 ++bextr32 0000000042b77358 -> 0000000000000005 0014 ++bextr32 0000000035ecaa6c -> 0000000000000006 0014 ++bextr32 00000000232b89c5 -> 000000000000000c 0014 ++bextr32 000000001bf185a4 -> 000000000000000a 0014 ++bextr32 0000000011a1af9b -> 0000000000000009 0014 ++bextr32 000000000e0282bb -> 000000000000000b 0010 ++bextr32 000000000854daa0 -> 000000000000000a 0014 ++bextr32 0000000006bcf63d -> 0000000000000003 0014 ++bextr32 000000000464f784 -> 0000000000000008 0010 ++bextr32 00000000037dac90 -> 0000000000000009 0014 ++bextr32 000000000234911a -> 0000000000000001 0010 ++bextr32 0000000001c0a285 -> 0000000000000008 0010 ++bextr32 00000000010addcc -> 000000000000000c 0014 ++bextr32 0000000000d7b2a8 -> 000000000000000a 0014 ++bextr32 00000000008cae26 -> 0000000000000002 0010 ++bextr32 00000000006fc615 -> 0000000000000001 0010 ++bextr32 00000000004686bd -> 000000000000000b 0010 ++bextr32 0000000000380a0a -> 0000000000000000 0054 ++bextr32 0000000000215369 -> 0000000000000006 0014 ++bextr32 00000000001af3d7 -> 000000000000000d 0010 ++bextr32 00000000001193de -> 000000000000000d 0010 ++bextr32 00000000000df6b1 -> 000000000000000b 0010 ++bextr32 000000000008d242 -> 0000000000000004 0010 ++bextr32 0000000000070287 -> 0000000000000008 0010 ++bextr32 0000000000042b72 -> 0000000000000007 0010 ++bextr32 0000000000035ec7 -> 000000000000000c 0014 ++bextr32 00000000000232b3 -> 000000000000000b 0010 ++bextr32 000000000001bf16 -> 0000000000000001 0010 ++bextr32 0000000000011a1b -> 0000000000000001 0010 ++bextr32 000000000000e027 -> 0000000000000002 0010 ++bextr32 000000000000854a -> 0000000000000004 0010 ++bextr32 0000000000006bce -> 000000000000000c 0014 ++bextr32 000000000000464e -> 0000000000000004 0010 ++bextr32 00000000000037d9 -> 000000000000000d 0010 ++bextr32 0000000000002347 -> 0000000000000004 0010 ++bextr32 0000000000001c06 -> 0000000000000000 0054 ++bextr32 00000000000010a9 -> 000000000000000a 0014 ++bextr32 0000000000000d78 -> 0000000000000007 0010 ++bextr32 00000000000008c8 -> 000000000000000c 0014 ++bextr32 00000000000006fa -> 000000000000000f 0014 ++bextr32 0000000000000468 -> 0000000000000006 0014 ++bextr32 0000000000000380 -> 0000000000000008 0010 ++bextr32 0000000000000214 -> 0000000000000001 0010 ++bextr32 00000000000001ae -> 000000000000000a 0014 ++bextr32 0000000000000118 -> 0000000000000001 0010 ++bextr32 00000000000000de -> 000000000000000d 0010 ++bextr32 000000000000008c -> 0000000000000008 0010 ++bextr32 000000000000006f -> 0000000000000006 0014 ++bextr32 0000000000000045 -> 0000000000000004 0010 ++bextr32 0000000000000037 -> 0000000000000003 0014 ++bextr32 0000000000000022 -> 0000000000000002 0010 ++bextr32 000000000000001b -> 0000000000000001 0010 ++bextr32 0000000000000010 -> 0000000000000001 0010 ++bextr32 000000000000000c -> 0000000000000000 0054 ++bextr32 0000000000000007 -> 0000000000000000 0054 ++bextr32 0000000000000003 -> 0000000000000000 0054 ++bextr32 0000000000000001 -> 0000000000000000 0054 ++bextr32 0000000000000000 -> 0000000000000000 0054 ++bextr64 57657438291cdef0 -> 000000000000000f 0014 ++bextr64 452015034e67c955 -> 0000000000000005 0014 ++bextr64 37e901ef56b302d6 -> 000000000000000d 0010 ++bextr64 2348b20e142667cf -> 000000000000000c 0014 ++bextr64 1c09d34c26e1c212 -> 0000000000000001 0010 ++bextr64 10ad37922d51847f -> 0000000000000007 0010 ++bextr64 0d7b015093984564 -> 0000000000000006 0014 ++bextr64 08cac1103a60926a -> 0000000000000006 0014 ++bextr64 06fc5681c8cd2b10 -> 0000000000000001 0010 ++bextr64 04687224d51a87fa -> 000000000000000f 0014 ++bextr64 03809eacb986283a -> 0000000000000003 0014 ++bextr64 02152e09a7eb825e -> 0000000000000005 0014 ++bextr64 01af3c969c7725a6 -> 000000000000000a 0014 ++bextr64 01193d5aad28c013 -> 0000000000000001 0010 ++bextr64 00df6b2373776c4a -> 0000000000000004 0010 ++bextr64 008d24457d4341d1 -> 000000000000000d 0010 ++bextr64 007028a17fc8b89e -> 0000000000000009 0014 ++bextr64 0042b77370e42ef0 -> 000000000000000f 0014 ++bextr64 0035ecaa6c888c28 -> 0000000000000002 0010 ++bextr64 00232b89c5c8c9b6 -> 000000000000000b 0010 ++bextr64 001bf185a53e82dc -> 000000000000000d 0010 ++bextr64 0011a1af9c2edaa2 -> 000000000000000a 0014 ++bextr64 000e0282bc13b27b -> 0000000000000007 0010 ++bextr64 000854daa0b4cc02 -> 0000000000000000 0054 ++bextr64 0006bcf63e2fbf3d -> 0000000000000003 0014 ++bextr64 000464f7852a566a -> 0000000000000006 0014 ++bextr64 00037dac915ab5c5 -> 000000000000000c 0014 ++bextr64 000234911b32831c -> 0000000000000001 0010 ++bextr64 0001c0a2862c25c1 -> 000000000000000c 0014 ++bextr64 00010addcd657882 -> 0000000000000008 0010 ++bextr64 0000d7b2a9b6ab1d -> 0000000000000001 0010 ++bextr64 00008cae2719cda3 -> 000000000000000a 0014 ++bextr64 00006fc61694404d -> 0000000000000004 0010 ++bextr64 00004686be70612c -> 0000000000000002 0010 ++bextr64 0000380a0af0025a -> 0000000000000005 0014 ++bextr64 000021536a829879 -> 0000000000000007 0010 ++bextr64 00001af3d8f8abea -> 000000000000000e 0010 ++bextr64 00001193de14a839 -> 0000000000000003 0014 ++bextr64 00000df6b24569e5 -> 000000000000000e 0010 ++bextr64 000008d2446cc8f9 -> 000000000000000f 0014 ++bextr64 000007028a18af7d -> 0000000000000007 0010 ++bextr64 0000042b77359960 -> 0000000000000006 0014 ++bextr64 0000035ecaa6d9df -> 000000000000000d 0010 ++bextr64 00000232b89c662a -> 0000000000000002 0010 ++bextr64 000001bf185a50b0 -> 000000000000000b 0010 ++bextr64 0000011a1af9c13b -> 0000000000000003 0014 ++bextr64 000000e0282bc000 -> 0000000000000000 0054 ++bextr64 000000854daa0a5a -> 0000000000000005 0014 ++bextr64 0000006bcf63e2b5 -> 000000000000000b 0010 ++bextr64 000000464f7852a0 -> 000000000000000a 0014 ++bextr64 00000037dac915a7 -> 000000000000000a 0014 ++bextr64 000000234911b322 -> 0000000000000002 0010 ++bextr64 0000001c0a2862bc -> 000000000000000b 0010 ++bextr64 00000010addcd664 -> 0000000000000006 0014 ++bextr64 0000000d7b2a9b66 -> 0000000000000006 0014 ++bextr64 00000008cae27197 -> 0000000000000009 0014 ++bextr64 00000006fc616943 -> 0000000000000004 0010 ++bextr64 00000004686be704 -> 0000000000000000 0054 ++bextr64 0000000380a0aeff -> 000000000000000f 0014 ++bextr64 000000021536a868 -> 0000000000000006 0014 ++bextr64 00000001af3d8fad -> 000000000000000a 0014 ++bextr64 00000001193de163 -> 0000000000000006 0014 ++bextr64 00000000df6b2459 -> 0000000000000005 0014 ++bextr64 000000008d2446ca -> 000000000000000c 0014 ++bextr64 000000007028a18a -> 0000000000000008 0010 ++bextr64 0000000042b77358 -> 0000000000000005 0014 ++bextr64 0000000035ecaa6c -> 0000000000000006 0014 ++bextr64 00000000232b89c5 -> 000000000000000c 0014 ++bextr64 000000001bf185a4 -> 000000000000000a 0014 ++bextr64 0000000011a1af9b -> 0000000000000009 0014 ++bextr64 000000000e0282bb -> 000000000000000b 0010 ++bextr64 000000000854daa0 -> 000000000000000a 0014 ++bextr64 0000000006bcf63d -> 0000000000000003 0014 ++bextr64 000000000464f784 -> 0000000000000008 0010 ++bextr64 00000000037dac90 -> 0000000000000009 0014 ++bextr64 000000000234911a -> 0000000000000001 0010 ++bextr64 0000000001c0a285 -> 0000000000000008 0010 ++bextr64 00000000010addcc -> 000000000000000c 0014 ++bextr64 0000000000d7b2a8 -> 000000000000000a 0014 ++bextr64 00000000008cae26 -> 0000000000000002 0010 ++bextr64 00000000006fc615 -> 0000000000000001 0010 ++bextr64 00000000004686bd -> 000000000000000b 0010 ++bextr64 0000000000380a0a -> 0000000000000000 0054 ++bextr64 0000000000215369 -> 0000000000000006 0014 ++bextr64 00000000001af3d7 -> 000000000000000d 0010 ++bextr64 00000000001193de -> 000000000000000d 0010 ++bextr64 00000000000df6b1 -> 000000000000000b 0010 ++bextr64 000000000008d242 -> 0000000000000004 0010 ++bextr64 0000000000070287 -> 0000000000000008 0010 ++bextr64 0000000000042b72 -> 0000000000000007 0010 ++bextr64 0000000000035ec7 -> 000000000000000c 0014 ++bextr64 00000000000232b3 -> 000000000000000b 0010 ++bextr64 000000000001bf16 -> 0000000000000001 0010 ++bextr64 0000000000011a1b -> 0000000000000001 0010 ++bextr64 000000000000e027 -> 0000000000000002 0010 ++bextr64 000000000000854a -> 0000000000000004 0010 ++bextr64 0000000000006bce -> 000000000000000c 0014 ++bextr64 000000000000464e -> 0000000000000004 0010 ++bextr64 00000000000037d9 -> 000000000000000d 0010 ++bextr64 0000000000002347 -> 0000000000000004 0010 ++bextr64 0000000000001c06 -> 0000000000000000 0054 ++bextr64 00000000000010a9 -> 000000000000000a 0014 ++bextr64 0000000000000d78 -> 0000000000000007 0010 ++bextr64 00000000000008c8 -> 000000000000000c 0014 ++bextr64 00000000000006fa -> 000000000000000f 0014 ++bextr64 0000000000000468 -> 0000000000000006 0014 ++bextr64 0000000000000380 -> 0000000000000008 0010 ++bextr64 0000000000000214 -> 0000000000000001 0010 ++bextr64 00000000000001ae -> 000000000000000a 0014 ++bextr64 0000000000000118 -> 0000000000000001 0010 ++bextr64 00000000000000de -> 000000000000000d 0010 ++bextr64 000000000000008c -> 0000000000000008 0010 ++bextr64 000000000000006f -> 0000000000000006 0014 ++bextr64 0000000000000045 -> 0000000000000004 0010 ++bextr64 0000000000000037 -> 0000000000000003 0014 ++bextr64 0000000000000022 -> 0000000000000002 0010 ++bextr64 000000000000001b -> 0000000000000001 0010 ++bextr64 0000000000000010 -> 0000000000000001 0010 ++bextr64 000000000000000c -> 0000000000000000 0054 ++bextr64 0000000000000007 -> 0000000000000000 0054 ++bextr64 0000000000000003 -> 0000000000000000 0054 ++bextr64 0000000000000001 -> 0000000000000000 0054 ++bextr64 0000000000000000 -> 0000000000000000 0054 ++bextr32 57657438291cdef0 -> 0000000000000cde 0014 ++bextr32 452015034e67c955 -> 00000000000007c9 0014 ++bextr32 37e901ef56b302d6 -> 0000000000000302 0010 ++bextr32 2348b20e142667cf -> 0000000000000667 0010 ++bextr32 1c09d34c26e1c212 -> 00000000000001c2 0010 ++bextr32 10ad37922d51847f -> 0000000000000184 0014 ++bextr32 0d7b015093984564 -> 0000000000000845 0010 ++bextr32 08cac1103a60926a -> 0000000000000092 0010 ++bextr32 06fc5681c8cd2b10 -> 0000000000000d2b 0014 ++bextr32 04687224d51a87fa -> 0000000000000a87 0014 ++bextr32 03809eacb986283a -> 0000000000000628 0014 ++bextr32 02152e09a7eb825e -> 0000000000000b82 0014 ++bextr32 01af3c969c7725a6 -> 0000000000000725 0010 ++bextr32 01193d5aad28c013 -> 00000000000008c0 0014 ++bextr32 00df6b2373776c4a -> 000000000000076c 0014 ++bextr32 008d24457d4341d1 -> 0000000000000341 0014 ++bextr32 007028a17fc8b89e -> 00000000000008b8 0014 ++bextr32 0042b77370e42ef0 -> 000000000000042e 0014 ++bextr32 0035ecaa6c888c28 -> 000000000000088c 0010 ++bextr32 00232b89c5c8c9b6 -> 00000000000008c9 0014 ++bextr32 001bf185a53e82dc -> 0000000000000e82 0014 ++bextr32 0011a1af9c2edaa2 -> 0000000000000eda 0010 ++bextr32 000e0282bc13b27b -> 00000000000003b2 0014 ++bextr32 000854daa0b4cc02 -> 00000000000004cc 0014 ++bextr32 0006bcf63e2fbf3d -> 0000000000000fbf 0010 ++bextr32 000464f7852a566a -> 0000000000000a56 0014 ++bextr32 00037dac915ab5c5 -> 0000000000000ab5 0010 ++bextr32 000234911b32831c -> 0000000000000283 0010 ++bextr32 0001c0a2862c25c1 -> 0000000000000c25 0010 ++bextr32 00010addcd657882 -> 0000000000000578 0014 ++bextr32 0000d7b2a9b6ab1d -> 00000000000006ab 0010 ++bextr32 00008cae2719cda3 -> 00000000000009cd 0010 ++bextr32 00006fc61694404d -> 0000000000000440 0010 ++bextr32 00004686be70612c -> 0000000000000061 0010 ++bextr32 0000380a0af0025a -> 0000000000000002 0010 ++bextr32 000021536a829879 -> 0000000000000298 0010 ++bextr32 00001af3d8f8abea -> 00000000000008ab 0010 ++bextr32 00001193de14a839 -> 00000000000004a8 0010 ++bextr32 00000df6b24569e5 -> 0000000000000569 0014 ++bextr32 000008d2446cc8f9 -> 0000000000000cc8 0010 ++bextr32 000007028a18af7d -> 00000000000008af 0014 ++bextr32 0000042b77359960 -> 0000000000000599 0014 ++bextr32 0000035ecaa6d9df -> 00000000000006d9 0010 ++bextr32 00000232b89c662a -> 0000000000000c66 0014 ++bextr32 000001bf185a50b0 -> 0000000000000a50 0014 ++bextr32 0000011a1af9c13b -> 00000000000009c1 0010 ++bextr32 000000e0282bc000 -> 0000000000000bc0 0014 ++bextr32 000000854daa0a5a -> 0000000000000a0a 0014 ++bextr32 0000006bcf63e2b5 -> 00000000000003e2 0014 ++bextr32 000000464f7852a0 -> 0000000000000852 0010 ++bextr32 00000037dac915a7 -> 0000000000000915 0010 ++bextr32 000000234911b322 -> 00000000000001b3 0010 ++bextr32 0000001c0a2862bc -> 0000000000000862 0010 ++bextr32 00000010addcd664 -> 0000000000000cd6 0010 ++bextr32 0000000d7b2a9b66 -> 0000000000000a9b 0010 ++bextr32 00000008cae27197 -> 0000000000000271 0014 ++bextr32 00000006fc616943 -> 0000000000000169 0014 ++bextr32 00000004686be704 -> 0000000000000be7 0014 ++bextr32 0000000380a0aeff -> 00000000000000ae 0010 ++bextr32 000000021536a868 -> 00000000000006a8 0010 ++bextr32 00000001af3d8fad -> 0000000000000d8f 0010 ++bextr32 00000001193de163 -> 0000000000000de1 0014 ++bextr32 00000000df6b2459 -> 0000000000000b24 0014 ++bextr32 000000008d2446ca -> 0000000000000446 0010 ++bextr32 000000007028a18a -> 00000000000008a1 0010 ++bextr32 0000000042b77358 -> 0000000000000773 0010 ++bextr32 0000000035ecaa6c -> 0000000000000caa 0014 ++bextr32 00000000232b89c5 -> 0000000000000b89 0010 ++bextr32 000000001bf185a4 -> 0000000000000185 0010 ++bextr32 0000000011a1af9b -> 00000000000001af 0014 ++bextr32 000000000e0282bb -> 0000000000000282 0014 ++bextr32 000000000854daa0 -> 00000000000004da 0010 ++bextr32 0000000006bcf63d -> 0000000000000cf6 0014 ++bextr32 000000000464f784 -> 00000000000004f7 0010 ++bextr32 00000000037dac90 -> 0000000000000dac 0014 ++bextr32 000000000234911a -> 0000000000000491 0010 ++bextr32 0000000001c0a285 -> 00000000000000a2 0010 ++bextr32 00000000010addcc -> 0000000000000add 0014 ++bextr32 0000000000d7b2a8 -> 00000000000007b2 0014 ++bextr32 00000000008cae26 -> 0000000000000cae 0010 ++bextr32 00000000006fc615 -> 0000000000000fc6 0014 ++bextr32 00000000004686bd -> 0000000000000686 0010 ++bextr32 0000000000380a0a -> 000000000000080a 0014 ++bextr32 0000000000215369 -> 0000000000000153 0014 ++bextr32 00000000001af3d7 -> 0000000000000af3 0014 ++bextr32 00000000001193de -> 0000000000000193 0014 ++bextr32 00000000000df6b1 -> 0000000000000df6 0014 ++bextr32 000000000008d242 -> 00000000000008d2 0014 ++bextr32 0000000000070287 -> 0000000000000702 0010 ++bextr32 0000000000042b72 -> 000000000000042b 0014 ++bextr32 0000000000035ec7 -> 000000000000035e 0010 ++bextr32 00000000000232b3 -> 0000000000000232 0010 ++bextr32 000000000001bf16 -> 00000000000001bf 0010 ++bextr32 0000000000011a1b -> 000000000000011a 0010 ++bextr32 000000000000e027 -> 00000000000000e0 0010 ++bextr32 000000000000854a -> 0000000000000085 0010 ++bextr32 0000000000006bce -> 000000000000006b 0010 ++bextr32 000000000000464e -> 0000000000000046 0010 ++bextr32 00000000000037d9 -> 0000000000000037 0010 ++bextr32 0000000000002347 -> 0000000000000023 0010 ++bextr32 0000000000001c06 -> 000000000000001c 0010 ++bextr32 00000000000010a9 -> 0000000000000010 0010 ++bextr32 0000000000000d78 -> 000000000000000d 0010 ++bextr32 00000000000008c8 -> 0000000000000008 0010 ++bextr32 00000000000006fa -> 0000000000000006 0014 ++bextr32 0000000000000468 -> 0000000000000004 0010 ++bextr32 0000000000000380 -> 0000000000000003 0014 ++bextr32 0000000000000214 -> 0000000000000002 0010 ++bextr32 00000000000001ae -> 0000000000000001 0010 ++bextr32 0000000000000118 -> 0000000000000001 0010 ++bextr32 00000000000000de -> 0000000000000000 0054 ++bextr32 000000000000008c -> 0000000000000000 0054 ++bextr32 000000000000006f -> 0000000000000000 0054 ++bextr32 0000000000000045 -> 0000000000000000 0054 ++bextr32 0000000000000037 -> 0000000000000000 0054 ++bextr32 0000000000000022 -> 0000000000000000 0054 ++bextr32 000000000000001b -> 0000000000000000 0054 ++bextr32 0000000000000010 -> 0000000000000000 0054 ++bextr32 000000000000000c -> 0000000000000000 0054 ++bextr32 0000000000000007 -> 0000000000000000 0054 ++bextr32 0000000000000003 -> 0000000000000000 0054 ++bextr32 0000000000000001 -> 0000000000000000 0054 ++bextr32 0000000000000000 -> 0000000000000000 0054 ++bextr64 57657438291cdef0 -> 0000000000000cde 0014 ++bextr64 452015034e67c955 -> 00000000000007c9 0014 ++bextr64 37e901ef56b302d6 -> 0000000000000302 0010 ++bextr64 2348b20e142667cf -> 0000000000000667 0010 ++bextr64 1c09d34c26e1c212 -> 00000000000001c2 0010 ++bextr64 10ad37922d51847f -> 0000000000000184 0014 ++bextr64 0d7b015093984564 -> 0000000000000845 0010 ++bextr64 08cac1103a60926a -> 0000000000000092 0010 ++bextr64 06fc5681c8cd2b10 -> 0000000000000d2b 0014 ++bextr64 04687224d51a87fa -> 0000000000000a87 0014 ++bextr64 03809eacb986283a -> 0000000000000628 0014 ++bextr64 02152e09a7eb825e -> 0000000000000b82 0014 ++bextr64 01af3c969c7725a6 -> 0000000000000725 0010 ++bextr64 01193d5aad28c013 -> 00000000000008c0 0014 ++bextr64 00df6b2373776c4a -> 000000000000076c 0014 ++bextr64 008d24457d4341d1 -> 0000000000000341 0014 ++bextr64 007028a17fc8b89e -> 00000000000008b8 0014 ++bextr64 0042b77370e42ef0 -> 000000000000042e 0014 ++bextr64 0035ecaa6c888c28 -> 000000000000088c 0010 ++bextr64 00232b89c5c8c9b6 -> 00000000000008c9 0014 ++bextr64 001bf185a53e82dc -> 0000000000000e82 0014 ++bextr64 0011a1af9c2edaa2 -> 0000000000000eda 0010 ++bextr64 000e0282bc13b27b -> 00000000000003b2 0014 ++bextr64 000854daa0b4cc02 -> 00000000000004cc 0014 ++bextr64 0006bcf63e2fbf3d -> 0000000000000fbf 0010 ++bextr64 000464f7852a566a -> 0000000000000a56 0014 ++bextr64 00037dac915ab5c5 -> 0000000000000ab5 0010 ++bextr64 000234911b32831c -> 0000000000000283 0010 ++bextr64 0001c0a2862c25c1 -> 0000000000000c25 0010 ++bextr64 00010addcd657882 -> 0000000000000578 0014 ++bextr64 0000d7b2a9b6ab1d -> 00000000000006ab 0010 ++bextr64 00008cae2719cda3 -> 00000000000009cd 0010 ++bextr64 00006fc61694404d -> 0000000000000440 0010 ++bextr64 00004686be70612c -> 0000000000000061 0010 ++bextr64 0000380a0af0025a -> 0000000000000002 0010 ++bextr64 000021536a829879 -> 0000000000000298 0010 ++bextr64 00001af3d8f8abea -> 00000000000008ab 0010 ++bextr64 00001193de14a839 -> 00000000000004a8 0010 ++bextr64 00000df6b24569e5 -> 0000000000000569 0014 ++bextr64 000008d2446cc8f9 -> 0000000000000cc8 0010 ++bextr64 000007028a18af7d -> 00000000000008af 0014 ++bextr64 0000042b77359960 -> 0000000000000599 0014 ++bextr64 0000035ecaa6d9df -> 00000000000006d9 0010 ++bextr64 00000232b89c662a -> 0000000000000c66 0014 ++bextr64 000001bf185a50b0 -> 0000000000000a50 0014 ++bextr64 0000011a1af9c13b -> 00000000000009c1 0010 ++bextr64 000000e0282bc000 -> 0000000000000bc0 0014 ++bextr64 000000854daa0a5a -> 0000000000000a0a 0014 ++bextr64 0000006bcf63e2b5 -> 00000000000003e2 0014 ++bextr64 000000464f7852a0 -> 0000000000000852 0010 ++bextr64 00000037dac915a7 -> 0000000000000915 0010 ++bextr64 000000234911b322 -> 00000000000001b3 0010 ++bextr64 0000001c0a2862bc -> 0000000000000862 0010 ++bextr64 00000010addcd664 -> 0000000000000cd6 0010 ++bextr64 0000000d7b2a9b66 -> 0000000000000a9b 0010 ++bextr64 00000008cae27197 -> 0000000000000271 0014 ++bextr64 00000006fc616943 -> 0000000000000169 0014 ++bextr64 00000004686be704 -> 0000000000000be7 0014 ++bextr64 0000000380a0aeff -> 00000000000000ae 0010 ++bextr64 000000021536a868 -> 00000000000006a8 0010 ++bextr64 00000001af3d8fad -> 0000000000000d8f 0010 ++bextr64 00000001193de163 -> 0000000000000de1 0014 ++bextr64 00000000df6b2459 -> 0000000000000b24 0014 ++bextr64 000000008d2446ca -> 0000000000000446 0010 ++bextr64 000000007028a18a -> 00000000000008a1 0010 ++bextr64 0000000042b77358 -> 0000000000000773 0010 ++bextr64 0000000035ecaa6c -> 0000000000000caa 0014 ++bextr64 00000000232b89c5 -> 0000000000000b89 0010 ++bextr64 000000001bf185a4 -> 0000000000000185 0010 ++bextr64 0000000011a1af9b -> 00000000000001af 0014 ++bextr64 000000000e0282bb -> 0000000000000282 0014 ++bextr64 000000000854daa0 -> 00000000000004da 0010 ++bextr64 0000000006bcf63d -> 0000000000000cf6 0014 ++bextr64 000000000464f784 -> 00000000000004f7 0010 ++bextr64 00000000037dac90 -> 0000000000000dac 0014 ++bextr64 000000000234911a -> 0000000000000491 0010 ++bextr64 0000000001c0a285 -> 00000000000000a2 0010 ++bextr64 00000000010addcc -> 0000000000000add 0014 ++bextr64 0000000000d7b2a8 -> 00000000000007b2 0014 ++bextr64 00000000008cae26 -> 0000000000000cae 0010 ++bextr64 00000000006fc615 -> 0000000000000fc6 0014 ++bextr64 00000000004686bd -> 0000000000000686 0010 ++bextr64 0000000000380a0a -> 000000000000080a 0014 ++bextr64 0000000000215369 -> 0000000000000153 0014 ++bextr64 00000000001af3d7 -> 0000000000000af3 0014 ++bextr64 00000000001193de -> 0000000000000193 0014 ++bextr64 00000000000df6b1 -> 0000000000000df6 0014 ++bextr64 000000000008d242 -> 00000000000008d2 0014 ++bextr64 0000000000070287 -> 0000000000000702 0010 ++bextr64 0000000000042b72 -> 000000000000042b 0014 ++bextr64 0000000000035ec7 -> 000000000000035e 0010 ++bextr64 00000000000232b3 -> 0000000000000232 0010 ++bextr64 000000000001bf16 -> 00000000000001bf 0010 ++bextr64 0000000000011a1b -> 000000000000011a 0010 ++bextr64 000000000000e027 -> 00000000000000e0 0010 ++bextr64 000000000000854a -> 0000000000000085 0010 ++bextr64 0000000000006bce -> 000000000000006b 0010 ++bextr64 000000000000464e -> 0000000000000046 0010 ++bextr64 00000000000037d9 -> 0000000000000037 0010 ++bextr64 0000000000002347 -> 0000000000000023 0010 ++bextr64 0000000000001c06 -> 000000000000001c 0010 ++bextr64 00000000000010a9 -> 0000000000000010 0010 ++bextr64 0000000000000d78 -> 000000000000000d 0010 ++bextr64 00000000000008c8 -> 0000000000000008 0010 ++bextr64 00000000000006fa -> 0000000000000006 0014 ++bextr64 0000000000000468 -> 0000000000000004 0010 ++bextr64 0000000000000380 -> 0000000000000003 0014 ++bextr64 0000000000000214 -> 0000000000000002 0010 ++bextr64 00000000000001ae -> 0000000000000001 0010 ++bextr64 0000000000000118 -> 0000000000000001 0010 ++bextr64 00000000000000de -> 0000000000000000 0054 ++bextr64 000000000000008c -> 0000000000000000 0054 ++bextr64 000000000000006f -> 0000000000000000 0054 ++bextr64 0000000000000045 -> 0000000000000000 0054 ++bextr64 0000000000000037 -> 0000000000000000 0054 ++bextr64 0000000000000022 -> 0000000000000000 0054 ++bextr64 000000000000001b -> 0000000000000000 0054 ++bextr64 0000000000000010 -> 0000000000000000 0054 ++bextr64 000000000000000c -> 0000000000000000 0054 ++bextr64 0000000000000007 -> 0000000000000000 0054 ++bextr64 0000000000000003 -> 0000000000000000 0054 ++bextr64 0000000000000001 -> 0000000000000000 0054 ++bextr64 0000000000000000 -> 0000000000000000 0054 ++bextr32 57657438291cdef0 -> 00000000148e6f78 0014 ++bextr32 452015034e67c955 -> 000000002733e4aa 0014 ++bextr32 37e901ef56b302d6 -> 000000002b59816b 0010 ++bextr32 2348b20e142667cf -> 000000000a1333e7 0014 ++bextr32 1c09d34c26e1c212 -> 000000001370e109 0014 ++bextr32 10ad37922d51847f -> 0000000016a8c23f 0014 ++bextr32 0d7b015093984564 -> 0000000049cc22b2 0014 ++bextr32 08cac1103a60926a -> 000000001d304935 0014 ++bextr32 06fc5681c8cd2b10 -> 0000000064669588 0014 ++bextr32 04687224d51a87fa -> 000000006a8d43fd 0010 ++bextr32 03809eacb986283a -> 000000005cc3141d 0014 ++bextr32 02152e09a7eb825e -> 0000000053f5c12f 0010 ++bextr32 01af3c969c7725a6 -> 000000004e3b92d3 0010 ++bextr32 01193d5aad28c013 -> 0000000056946009 0014 ++bextr32 00df6b2373776c4a -> 0000000039bbb625 0010 ++bextr32 008d24457d4341d1 -> 000000003ea1a0e8 0014 ++bextr32 007028a17fc8b89e -> 000000003fe45c4f 0010 ++bextr32 0042b77370e42ef0 -> 0000000038721778 0014 ++bextr32 0035ecaa6c888c28 -> 0000000036444614 0014 ++bextr32 00232b89c5c8c9b6 -> 0000000062e464db 0014 ++bextr32 001bf185a53e82dc -> 00000000529f416e 0010 ++bextr32 0011a1af9c2edaa2 -> 000000004e176d51 0010 ++bextr32 000e0282bc13b27b -> 000000005e09d93d 0010 ++bextr32 000854daa0b4cc02 -> 00000000505a6601 0010 ++bextr32 0006bcf63e2fbf3d -> 000000001f17df9e 0010 ++bextr32 000464f7852a566a -> 0000000042952b35 0014 ++bextr32 00037dac915ab5c5 -> 0000000048ad5ae2 0014 ++bextr32 000234911b32831c -> 000000000d99418e 0014 ++bextr32 0001c0a2862c25c1 -> 00000000431612e0 0010 ++bextr32 00010addcd657882 -> 0000000066b2bc41 0014 ++bextr32 0000d7b2a9b6ab1d -> 0000000054db558e 0014 ++bextr32 00008cae2719cda3 -> 00000000138ce6d1 0014 ++bextr32 00006fc61694404d -> 000000000b4a2026 0010 ++bextr32 00004686be70612c -> 000000005f383096 0014 ++bextr32 0000380a0af0025a -> 000000000578012d 0014 ++bextr32 000021536a829879 -> 0000000035414c3c 0014 ++bextr32 00001af3d8f8abea -> 000000006c7c55f5 0014 ++bextr32 00001193de14a839 -> 000000006f0a541c 0010 ++bextr32 00000df6b24569e5 -> 000000005922b4f2 0010 ++bextr32 000008d2446cc8f9 -> 000000002236647c 0010 ++bextr32 000007028a18af7d -> 00000000450c57be 0014 ++bextr32 0000042b77359960 -> 000000003b9accb0 0010 ++bextr32 0000035ecaa6d9df -> 0000000065536cef 0010 ++bextr32 00000232b89c662a -> 000000005c4e3315 0010 ++bextr32 000001bf185a50b0 -> 000000000c2d2858 0010 ++bextr32 0000011a1af9c13b -> 000000000d7ce09d 0010 ++bextr32 000000e0282bc000 -> 000000001415e000 0014 ++bextr32 000000854daa0a5a -> 0000000026d5052d 0014 ++bextr32 0000006bcf63e2b5 -> 0000000067b1f15a 0014 ++bextr32 000000464f7852a0 -> 0000000027bc2950 0014 ++bextr32 00000037dac915a7 -> 000000006d648ad3 0010 ++bextr32 000000234911b322 -> 000000002488d991 0010 ++bextr32 0000001c0a2862bc -> 000000000514315e 0010 ++bextr32 00000010addcd664 -> 0000000056ee6b32 0010 ++bextr32 0000000d7b2a9b66 -> 000000003d954db3 0010 ++bextr32 00000008cae27197 -> 00000000657138cb 0010 ++bextr32 00000006fc616943 -> 000000007e30b4a1 0010 ++bextr32 00000004686be704 -> 000000003435f382 0014 ++bextr32 0000000380a0aeff -> 000000004050577f 0010 ++bextr32 000000021536a868 -> 000000000a9b5434 0010 ++bextr32 00000001af3d8fad -> 00000000579ec7d6 0010 ++bextr32 00000001193de163 -> 000000000c9ef0b1 0014 ++bextr32 00000000df6b2459 -> 000000006fb5922c 0010 ++bextr32 000000008d2446ca -> 0000000046922365 0014 ++bextr32 000000007028a18a -> 00000000381450c5 0014 ++bextr32 0000000042b77358 -> 00000000215bb9ac 0014 ++bextr32 0000000035ecaa6c -> 000000001af65536 0014 ++bextr32 00000000232b89c5 -> 000000001195c4e2 0014 ++bextr32 000000001bf185a4 -> 000000000df8c2d2 0014 ++bextr32 0000000011a1af9b -> 0000000008d0d7cd 0010 ++bextr32 000000000e0282bb -> 000000000701415d 0010 ++bextr32 000000000854daa0 -> 00000000042a6d50 0014 ++bextr32 0000000006bcf63d -> 00000000035e7b1e 0014 ++bextr32 000000000464f784 -> 0000000002327bc2 0010 ++bextr32 00000000037dac90 -> 0000000001bed648 0014 ++bextr32 000000000234911a -> 00000000011a488d 0014 ++bextr32 0000000001c0a285 -> 0000000000e05142 0014 ++bextr32 00000000010addcc -> 0000000000856ee6 0010 ++bextr32 0000000000d7b2a8 -> 00000000006bd954 0010 ++bextr32 00000000008cae26 -> 0000000000465713 0010 ++bextr32 00000000006fc615 -> 000000000037e30a 0014 ++bextr32 00000000004686bd -> 000000000023435e 0010 ++bextr32 0000000000380a0a -> 00000000001c0505 0014 ++bextr32 0000000000215369 -> 000000000010a9b4 0014 ++bextr32 00000000001af3d7 -> 00000000000d79eb 0014 ++bextr32 00000000001193de -> 000000000008c9ef 0010 ++bextr32 00000000000df6b1 -> 000000000006fb58 0010 ++bextr32 000000000008d242 -> 0000000000046921 0014 ++bextr32 0000000000070287 -> 0000000000038143 0010 ++bextr32 0000000000042b72 -> 00000000000215b9 0010 ++bextr32 0000000000035ec7 -> 000000000001af63 0014 ++bextr32 00000000000232b3 -> 0000000000011959 0014 ++bextr32 000000000001bf16 -> 000000000000df8b 0014 ++bextr32 0000000000011a1b -> 0000000000008d0d 0010 ++bextr32 000000000000e027 -> 0000000000007013 0010 ++bextr32 000000000000854a -> 00000000000042a5 0014 ++bextr32 0000000000006bce -> 00000000000035e7 0014 ++bextr32 000000000000464e -> 0000000000002327 0014 ++bextr32 00000000000037d9 -> 0000000000001bec 0010 ++bextr32 0000000000002347 -> 00000000000011a3 0014 ++bextr32 0000000000001c06 -> 0000000000000e03 0014 ++bextr32 00000000000010a9 -> 0000000000000854 0010 ++bextr32 0000000000000d78 -> 00000000000006bc 0010 ++bextr32 00000000000008c8 -> 0000000000000464 0010 ++bextr32 00000000000006fa -> 000000000000037d 0014 ++bextr32 0000000000000468 -> 0000000000000234 0010 ++bextr32 0000000000000380 -> 00000000000001c0 0014 ++bextr32 0000000000000214 -> 000000000000010a 0014 ++bextr32 00000000000001ae -> 00000000000000d7 0014 ++bextr32 0000000000000118 -> 000000000000008c 0010 ++bextr32 00000000000000de -> 000000000000006f 0014 ++bextr32 000000000000008c -> 0000000000000046 0010 ++bextr32 000000000000006f -> 0000000000000037 0010 ++bextr32 0000000000000045 -> 0000000000000022 0014 ++bextr32 0000000000000037 -> 000000000000001b 0014 ++bextr32 0000000000000022 -> 0000000000000011 0014 ++bextr32 000000000000001b -> 000000000000000d 0010 ++bextr32 0000000000000010 -> 0000000000000008 0010 ++bextr32 000000000000000c -> 0000000000000006 0014 ++bextr32 0000000000000007 -> 0000000000000003 0014 ++bextr32 0000000000000003 -> 0000000000000001 0010 ++bextr32 0000000000000001 -> 0000000000000000 0054 ++bextr32 0000000000000000 -> 0000000000000000 0054 ++bextr64 57657438291cdef0 -> 00000000148e6f78 0014 ++bextr64 452015034e67c955 -> 000000002733e4aa 0014 ++bextr64 37e901ef56b302d6 -> 000000002b59816b 0010 ++bextr64 2348b20e142667cf -> 000000000a1333e7 0014 ++bextr64 1c09d34c26e1c212 -> 000000001370e109 0014 ++bextr64 10ad37922d51847f -> 0000000016a8c23f 0014 ++bextr64 0d7b015093984564 -> 0000000049cc22b2 0014 ++bextr64 08cac1103a60926a -> 000000001d304935 0014 ++bextr64 06fc5681c8cd2b10 -> 0000000064669588 0014 ++bextr64 04687224d51a87fa -> 000000006a8d43fd 0010 ++bextr64 03809eacb986283a -> 000000005cc3141d 0014 ++bextr64 02152e09a7eb825e -> 0000000053f5c12f 0010 ++bextr64 01af3c969c7725a6 -> 000000004e3b92d3 0010 ++bextr64 01193d5aad28c013 -> 0000000056946009 0014 ++bextr64 00df6b2373776c4a -> 0000000039bbb625 0010 ++bextr64 008d24457d4341d1 -> 000000003ea1a0e8 0014 ++bextr64 007028a17fc8b89e -> 000000003fe45c4f 0010 ++bextr64 0042b77370e42ef0 -> 0000000038721778 0014 ++bextr64 0035ecaa6c888c28 -> 0000000036444614 0014 ++bextr64 00232b89c5c8c9b6 -> 0000000062e464db 0014 ++bextr64 001bf185a53e82dc -> 00000000529f416e 0010 ++bextr64 0011a1af9c2edaa2 -> 000000004e176d51 0010 ++bextr64 000e0282bc13b27b -> 000000005e09d93d 0010 ++bextr64 000854daa0b4cc02 -> 00000000505a6601 0010 ++bextr64 0006bcf63e2fbf3d -> 000000001f17df9e 0010 ++bextr64 000464f7852a566a -> 0000000042952b35 0014 ++bextr64 00037dac915ab5c5 -> 0000000048ad5ae2 0014 ++bextr64 000234911b32831c -> 000000000d99418e 0014 ++bextr64 0001c0a2862c25c1 -> 00000000431612e0 0010 ++bextr64 00010addcd657882 -> 0000000066b2bc41 0014 ++bextr64 0000d7b2a9b6ab1d -> 0000000054db558e 0014 ++bextr64 00008cae2719cda3 -> 00000000138ce6d1 0014 ++bextr64 00006fc61694404d -> 000000000b4a2026 0010 ++bextr64 00004686be70612c -> 000000005f383096 0014 ++bextr64 0000380a0af0025a -> 000000000578012d 0014 ++bextr64 000021536a829879 -> 0000000035414c3c 0014 ++bextr64 00001af3d8f8abea -> 000000006c7c55f5 0014 ++bextr64 00001193de14a839 -> 000000006f0a541c 0010 ++bextr64 00000df6b24569e5 -> 000000005922b4f2 0010 ++bextr64 000008d2446cc8f9 -> 000000002236647c 0010 ++bextr64 000007028a18af7d -> 00000000450c57be 0014 ++bextr64 0000042b77359960 -> 000000003b9accb0 0010 ++bextr64 0000035ecaa6d9df -> 0000000065536cef 0010 ++bextr64 00000232b89c662a -> 000000005c4e3315 0010 ++bextr64 000001bf185a50b0 -> 000000000c2d2858 0010 ++bextr64 0000011a1af9c13b -> 000000000d7ce09d 0010 ++bextr64 000000e0282bc000 -> 000000001415e000 0014 ++bextr64 000000854daa0a5a -> 0000000026d5052d 0014 ++bextr64 0000006bcf63e2b5 -> 0000000067b1f15a 0014 ++bextr64 000000464f7852a0 -> 0000000027bc2950 0014 ++bextr64 00000037dac915a7 -> 000000006d648ad3 0010 ++bextr64 000000234911b322 -> 000000002488d991 0010 ++bextr64 0000001c0a2862bc -> 000000000514315e 0010 ++bextr64 00000010addcd664 -> 0000000056ee6b32 0010 ++bextr64 0000000d7b2a9b66 -> 000000003d954db3 0010 ++bextr64 00000008cae27197 -> 00000000657138cb 0010 ++bextr64 00000006fc616943 -> 000000007e30b4a1 0010 ++bextr64 00000004686be704 -> 000000003435f382 0014 ++bextr64 0000000380a0aeff -> 000000004050577f 0010 ++bextr64 000000021536a868 -> 000000000a9b5434 0010 ++bextr64 00000001af3d8fad -> 00000000579ec7d6 0010 ++bextr64 00000001193de163 -> 000000000c9ef0b1 0014 ++bextr64 00000000df6b2459 -> 000000006fb5922c 0010 ++bextr64 000000008d2446ca -> 0000000046922365 0014 ++bextr64 000000007028a18a -> 00000000381450c5 0014 ++bextr64 0000000042b77358 -> 00000000215bb9ac 0014 ++bextr64 0000000035ecaa6c -> 000000001af65536 0014 ++bextr64 00000000232b89c5 -> 000000001195c4e2 0014 ++bextr64 000000001bf185a4 -> 000000000df8c2d2 0014 ++bextr64 0000000011a1af9b -> 0000000008d0d7cd 0010 ++bextr64 000000000e0282bb -> 000000000701415d 0010 ++bextr64 000000000854daa0 -> 00000000042a6d50 0014 ++bextr64 0000000006bcf63d -> 00000000035e7b1e 0014 ++bextr64 000000000464f784 -> 0000000002327bc2 0010 ++bextr64 00000000037dac90 -> 0000000001bed648 0014 ++bextr64 000000000234911a -> 00000000011a488d 0014 ++bextr64 0000000001c0a285 -> 0000000000e05142 0014 ++bextr64 00000000010addcc -> 0000000000856ee6 0010 ++bextr64 0000000000d7b2a8 -> 00000000006bd954 0010 ++bextr64 00000000008cae26 -> 0000000000465713 0010 ++bextr64 00000000006fc615 -> 000000000037e30a 0014 ++bextr64 00000000004686bd -> 000000000023435e 0010 ++bextr64 0000000000380a0a -> 00000000001c0505 0014 ++bextr64 0000000000215369 -> 000000000010a9b4 0014 ++bextr64 00000000001af3d7 -> 00000000000d79eb 0014 ++bextr64 00000000001193de -> 000000000008c9ef 0010 ++bextr64 00000000000df6b1 -> 000000000006fb58 0010 ++bextr64 000000000008d242 -> 0000000000046921 0014 ++bextr64 0000000000070287 -> 0000000000038143 0010 ++bextr64 0000000000042b72 -> 00000000000215b9 0010 ++bextr64 0000000000035ec7 -> 000000000001af63 0014 ++bextr64 00000000000232b3 -> 0000000000011959 0014 ++bextr64 000000000001bf16 -> 000000000000df8b 0014 ++bextr64 0000000000011a1b -> 0000000000008d0d 0010 ++bextr64 000000000000e027 -> 0000000000007013 0010 ++bextr64 000000000000854a -> 00000000000042a5 0014 ++bextr64 0000000000006bce -> 00000000000035e7 0014 ++bextr64 000000000000464e -> 0000000000002327 0014 ++bextr64 00000000000037d9 -> 0000000000001bec 0010 ++bextr64 0000000000002347 -> 00000000000011a3 0014 ++bextr64 0000000000001c06 -> 0000000000000e03 0014 ++bextr64 00000000000010a9 -> 0000000000000854 0010 ++bextr64 0000000000000d78 -> 00000000000006bc 0010 ++bextr64 00000000000008c8 -> 0000000000000464 0010 ++bextr64 00000000000006fa -> 000000000000037d 0014 ++bextr64 0000000000000468 -> 0000000000000234 0010 ++bextr64 0000000000000380 -> 00000000000001c0 0014 ++bextr64 0000000000000214 -> 000000000000010a 0014 ++bextr64 00000000000001ae -> 00000000000000d7 0014 ++bextr64 0000000000000118 -> 000000000000008c 0010 ++bextr64 00000000000000de -> 000000000000006f 0014 ++bextr64 000000000000008c -> 0000000000000046 0010 ++bextr64 000000000000006f -> 0000000000000037 0010 ++bextr64 0000000000000045 -> 0000000000000022 0014 ++bextr64 0000000000000037 -> 000000000000001b 0014 ++bextr64 0000000000000022 -> 0000000000000011 0014 ++bextr64 000000000000001b -> 000000000000000d 0010 ++bextr64 0000000000000010 -> 0000000000000008 0010 ++bextr64 000000000000000c -> 0000000000000006 0014 ++bextr64 0000000000000007 -> 0000000000000003 0014 ++bextr64 0000000000000003 -> 0000000000000001 0010 ++bextr64 0000000000000001 -> 0000000000000000 0054 ++bextr64 0000000000000000 -> 0000000000000000 0054 +Index: none/tests/amd64/tbm.vgtest +=================================================================== +--- none/tests/amd64/tbm.vgtest (revision 0) ++++ none/tests/amd64/tbm.vgtest (working copy) +@@ -0,0 +1,3 @@ ++prog: tbm ++prereq: test -x tbm && ../../../tests/x86_amd64_features amd64-avx ++vgopts: -q diff --git a/dev-util/valgrind/files/valgrind-3.7.0-fno-stack-protector.patch b/dev-util/valgrind/files/valgrind-3.7.0-fno-stack-protector.patch new file mode 100644 index 0000000..6af4553 --- /dev/null +++ b/dev-util/valgrind/files/valgrind-3.7.0-fno-stack-protector.patch @@ -0,0 +1,12 @@ +diff -Naur valgrind-3.7.0.orig//Makefile.all.am valgrind-3.7.0/Makefile.all.am +--- valgrind-3.7.0.orig//Makefile.all.am 2011-10-26 17:24:45.000000000 -0400 ++++ valgrind-3.7.0/Makefile.all.am 2011-11-10 16:18:18.000000000 -0500 +@@ -82,7 +82,7 @@ + # performance and get whatever useful warnings we can out of gcc. + # -fno-builtin is important for defeating LLVM's idiom recognition + # that somehow causes VG_(memset) to get into infinite recursion. +-AM_CFLAGS_BASE = \ ++AM_CFLAGS_BASE = -fno-stack-protector \ + -O2 -g \ + -Wall \ + -Wmissing-prototypes \ diff --git a/dev-util/valgrind/files/valgrind-3.7.0-respect-flags.patch b/dev-util/valgrind/files/valgrind-3.7.0-respect-flags.patch new file mode 100644 index 0000000..860e09c --- /dev/null +++ b/dev-util/valgrind/files/valgrind-3.7.0-respect-flags.patch @@ -0,0 +1,13 @@ +diff -Naur valgrind-3.7.0.orig//mpi/Makefile.am valgrind-3.7.0/mpi/Makefile.am +--- valgrind-3.7.0.orig//mpi/Makefile.am 2011-10-26 17:24:23.000000000 -0400 ++++ valgrind-3.7.0/mpi/Makefile.am 2011-11-10 16:03:14.000000000 -0500 +@@ -7,9 +7,6 @@ + CC = $(MPI_CC) + DEFS = + DEFAULT_INCLUDES = +-CPPFLAGS = +-CFLAGS = +-LDFLAGS = + + EXTRA_DIST = \ + mpiwrap_type_test.c diff --git a/dev-util/valgrind/metadata.xml b/dev-util/valgrind/metadata.xml new file mode 100644 index 0000000..31d1b4f --- /dev/null +++ b/dev-util/valgrind/metadata.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>blueness@gentoo.org</email> + <name>Anthony G. Basile</name> + </maintainer> + <maintainer type="person"> + <email>wizardedit@gentoo.org</email> + <name>Austin English</name> + </maintainer> + <longdescription> + Valgrind is a GPL'd tool to help you find memory-management problems + in your programs. When a program is run under Valgrind's supervision, + all reads and writes of memory are checked, and calls to + malloc/new/free/delete are intercepted. As a result, Valgrind can + detect problems such as + + - Use of uninitialised memory + - Reading/writing memory after it has been free'd + - Reading/writing off the end of malloc'd blocks + - Reading/writing inappropriate areas on the stack + - Memory leaks -- where pointers to malloc'd blocks are lost forever + - Passing of uninitialised and/or unaddressible memory to system calls + - Mismatched use of malloc/new/new [] vs free/delete/delete [] + - Some abuses of the POSIX Pthreads API + </longdescription> +</pkgmetadata> diff --git a/dev-util/valgrind/valgrind-3.13.0-r1.ebuild b/dev-util/valgrind/valgrind-3.13.0-r1.ebuild new file mode 100644 index 0000000..cbec58b --- /dev/null +++ b/dev-util/valgrind/valgrind-3.13.0-r1.ebuild @@ -0,0 +1,97 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +inherit autotools flag-o-matic toolchain-funcs multilib pax-utils + +DESCRIPTION="An open-source memory debugger for GNU/Linux" +HOMEPAGE="http://www.valgrind.org" +SRC_URI="ftp://sourceware.org/pub/valgrind/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* ~amd64 ~arm ~arm64 ppc ppc64 x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" +IUSE="mpi" + +DEPEND="mpi? ( virtual/mpi )" +RDEPEND="${DEPEND}" + +src_prepare() { + # Correct hard coded doc location + sed -i -e "s:doc/valgrind:doc/${PF}:" docs/Makefile.am || die + + # Don't force multiarch stuff on OSX, bug #306467 + sed -i -e 's:-arch \(i386\|x86_64\)::g' Makefile.all.am || die + + # Respect CFLAGS, LDFLAGS + eapply "${FILESDIR}"/${PN}-3.7.0-respect-flags.patch + + # Changing Makefile.all.am to disable SSP + eapply "${FILESDIR}"/${PN}-3.7.0-fno-stack-protector.patch + + eapply "${FILESDIR}/support_for_TBM_bextr.patch" + + # Allow users to test their own patches + eapply_user + + # Regenerate autotools files + eautoreconf +} + +src_configure() { + local myconf + + # Respect ar, bug #468114 + tc-export AR + + # -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression" + # while compiling insn_sse.c in none/tests/x86 + # -fstack-protector more undefined references to __guard and __stack_smash_handler + # because valgrind doesn't link to glibc (bug #114347) + # -m64 -mx32 for multilib-portage, bug #398825 + # -ggdb3 segmentation fault on startup + filter-flags -fomit-frame-pointer + filter-flags -fstack-protector + filter-flags -m64 -mx32 + replace-flags -ggdb3 -ggdb2 + + if use amd64 || use ppc64; then + ! has_multilib_profile && myconf="${myconf} --enable-only64bit" + fi + + # Force bitness on darwin, bug #306467 + use x86-macos && myconf="${myconf} --enable-only32bit" + use x64-macos && myconf="${myconf} --enable-only64bit" + + # Don't use mpicc unless the user asked for it (bug #258832) + if ! use mpi; then + myconf="${myconf} --without-mpicc" + fi + + econf ${myconf} +} + +src_install() { + emake DESTDIR="${D}" install + dodoc AUTHORS FAQ.txt NEWS README* + + pax-mark m "${ED}"/usr/$(get_libdir)/valgrind/*-*-linux + + if [[ ${CHOST} == *-darwin* ]] ; then + # fix install_names on shared libraries, can't turn them into bundles, + # as dyld won't load them any more then, bug #306467 + local l + for l in "${ED}"/usr/lib/valgrind/*.so ; do + install_name_tool -id "${EPREFIX}"/usr/lib/valgrind/${l##*/} "${l}" + done + fi +} + +pkg_postinst() { + elog "Valgrind will not work if glibc does not have debug symbols." + elog "To fix this you can add splitdebug to FEATURES in make.conf" + elog "and remerge glibc. See:" + elog "https://bugs.gentoo.org/show_bug.cgi?id=214065" + elog "https://bugs.gentoo.org/show_bug.cgi?id=274771" + elog "https://bugs.gentoo.org/show_bug.cgi?id=388703" +} diff --git a/dev-util/valgrind/valgrind-scm.ebuild b/dev-util/valgrind/valgrind-scm.ebuild index 381ba6f..7c229d4 100644 --- a/dev-util/valgrind/valgrind-scm.ebuild +++ b/dev-util/valgrind/valgrind-scm.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-util/valgrind/valgrind-3.6.0.ebuild,v 1.1 2010/11/10 01:40:41 blueness Exp $ -EAPI=2 +EAPI=6 inherit autotools eutils flag-o-matic toolchain-funcs multilib pax-utils subversion DESCRIPTION="An open-source memory debugger for GNU/Linux" @@ -19,6 +19,10 @@ IUSE="mpi" DEPEND="mpi? ( virtual/mpi )" RDEPEND="${DEPEND}" +PATCHES=( + "${FILESDIR}/support_for_TBM_bextr.patch" +) + src_prepare() { # Respect CFLAGS, LDFLAGS sed -i -e '/^CPPFLAGS =/d' -e '/^CFLAGS =/d' -e '/^LDFLAGS =/d' \ @@ -36,6 +40,7 @@ src_prepare() { # Regenerate autotools files eautoreconf + default } src_configure() { |