<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>365327</bug_id>
          
          <creation_ts>2016-07-10 17:03:44 +0000</creation_ts>
          <short_desc>Support macOS Sierra (10.12)</short_desc>
          <delta_ts>2025-12-06 06:52:26 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>6</classification_id>
          <classification>Developer tools</classification>
          <product>valgrind</product>
          <component>general</component>
          <version>3.12 SVN</version>
          <rep_platform>macOS (DMG)</rep_platform>
          <op_sys>macOS</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>366138</dependson>
    
    <dependson>379371</dependson>
    
    <dependson>379372</dependson>
    
    <dependson>379373</dependson>
    
    <dependson>379390</dependson>
    
    <dependson>379748</dependson>
    
    <dependson>379754</dependson>
    
    <dependson>379893</dependson>
    
    <dependson>380269</dependson>
    
    <dependson>385279</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rhys Kidd">rhyskidd</reporter>
          <assigned_to name="Paul Floyd">pjfloyd</assigned_to>
          <cc>anton</cc>
    
    <cc>austinenglish</cc>
    
    <cc>bartel.eerdekens</cc>
    
    <cc>bjoern.d.rasmussen</cc>
    
    <cc>chrischavez</cc>
    
    <cc>hmijail</cc>
    
    <cc>ibrahim</cc>
    
    <cc>jdlferreira90</cc>
    
    <cc>jseward</cc>
    
    <cc>louis.brunner.fr</cc>
    
    <cc>mark.j.abraham</cc>
    
    <cc>pjfloyd</cc>
    
    <cc>plaborie</cc>
    
    <cc>sanssecours</cc>
    
    <cc>vlasov</cc>
    
    <cc>zac.oler</cc>
    
    <cc>zalbiraw</cc>
    
    <cc>zerderr+kde</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>130</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1606685</commentid>
    <comment_count>0</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2016-07-10 17:03:44 +0000</bug_when>
    <thetext>Valgrind should support Apple&apos;s macOS Sierra (10.12) once a public, general release is made available in late 2016.

This is a meta bug for tracking any issues raised during the developer beta and public beta review process with Valgrind.

Reproducible: Always</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621042</commentid>
    <comment_count>1</comment_count>
      <attachid>101036</attachid>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2016-09-11 16:47:15 +0000</bug_when>
    <thetext>Created attachment 101036
Initial support for macOS 10.12 (incomplete) patch set</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621045</commentid>
    <comment_count>2</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2016-09-11 16:55:58 +0000</bug_when>
    <thetext>Initial patch set attached that brings up macOS 10.12 support.

Patches against r15949, that allow valgrind and test suite to build on macOS 10.12.

Valgrind binaries do not yet run on macOS 10.12, due to an error mapping the NULL page during load of /usr/lib/dyld, see output below:

$ uname -v
Darwin Kernel Version 16.0.0: Tue Aug 23 17:02:44 PDT 2016; root:xnu-3789.1.31~2/RELEASE_X86_64
$ ./vg-in-place -d -d ls
...
--42669:1: initimg Loading client
--42669:1:     ume load_thin_file: begin:   /bin/ls
--42669:2:     ume   mmap fixed (file) (0x100000000, 20480)
--42669:2:     ume   mmap fixed (file) (0x100005000, 4096)
--42669:2:     ume   mmap fixed (file) (0x100006000, 16384)
--42669:1:     ume load_thin_file: begin:   /usr/lib/dyld
--42669:2:     ume   mmap fixed (file) (0x0, 253952)
valgrind: mmap-FIXED(0x0, 253952) failed in UME (load_segment1) with error 12 (Cannot allocate memory).

On OS X 10.11, that equivalent last mmap is at a higher base address:

$ uname -v
Darwin Kernel Version 15.6.0: Thu Jun 23 18:25:34 PDT 2016; root:xnu-3248.60.10~1/RELEASE_X86_64
$ ./vg-in-place -d -d ls
...
--64933:1: initimg Loading client
--64933:1:     ume load_thin_file: begin:   /bin/ls
--64933:2:     ume   mmap fixed (file) (0x100000000, 20480)
--64933:2:     ume   mmap fixed (file) (0x100005000, 4096)
--64933:2:     ume   mmap fixed (file) (0x100006000, 16384)
--64933:1:     ume load_thin_file: begin:   /usr/lib/dyld
--64933:2:     ume   mmap fixed (file) (0x7fff5fc00000, 229376)
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623564</commentid>
    <comment_count>3</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2016-09-20 11:21:04 +0000</bug_when>
    <thetext>The patches look OK to me.  Only one nit:

--- coregrind/m_syswrap/syswrap-amd64-darwin.c	(revision 15949)
+++ coregrind/m_syswrap/syswrap-amd64-darwin.c	(working copy)
+#      elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10 || DARWIN_VERS == DARWIN_10_11 || DARWIN_VERS == DARWIN_10_12

Please break such long lines so as to remain within 80 cols where possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623942</commentid>
    <comment_count>4</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2016-09-22 02:55:56 +0000</bug_when>
    <thetext>Preliminary support added in r15976.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633229</commentid>
    <comment_count>5</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2016-10-18 11:15:54 +0000</bug_when>
    <thetext>(In reply to Rhys Kidd from comment #4)
&gt; Preliminary support added in r15976.

Merged to 3_12_BRANCH in r16071.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636939</commentid>
    <comment_count>6</comment_count>
    <who name="joaodlf">jdlferreira90</who>
    <bug_when>2016-11-01 19:38:41 +0000</bug_when>
    <thetext>I&apos;m running macOS (10.12.1) and valgrind-devel @3.13.0-r16104 (devel) and facing the following error when running valgrind --leak-check=yes on a very simple executable:

valgrind: mmap-FIXED(0x0, 253952) failed in UME (load_segment1) with error 12 (Cannot allocate memory).

I&apos;m going to assume &quot;preliminary support&quot; doesn&apos;t quite get us there yet :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636980</commentid>
    <comment_count>7</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2016-11-02 04:05:25 +0000</bug_when>
    <thetext>Thanks for testing the code and reporting here.

Yes, the preliminary support is just that. There&apos;s known issues, including this one that appears to relate to the way NULL pages are mapped.

Unfortunately, Apple is still yet to release their APSL-licensed kernel xnu from Sierra as source code (have written their open source team two emails thus far with no response). It makes solving it harder than it should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642593</commentid>
    <comment_count>8</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2016-11-30 05:23:32 +0000</bug_when>
    <thetext>*** Bug 372772 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642603</commentid>
    <comment_count>9</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2016-11-30 07:23:43 +0000</bug_when>
    <thetext>Apple have just this week finally released the source code for critical system components that shipped in macOS Sierra (10.12). This includes xnu, the kernel.

https://opensource.apple.com/release/macos-1012.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661517</commentid>
    <comment_count>10</comment_count>
    <who name="Bartel">bartel.eerdekens</who>
    <bug_when>2017-02-17 11:17:03 +0000</bug_when>
    <thetext>Any idea when Sierra support can be expected?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664291</commentid>
    <comment_count>11</comment_count>
    <who name="zwing99">zac.oler</who>
    <bug_when>2017-03-03 20:32:41 +0000</bug_when>
    <thetext>Re: Bartel&apos;s comment is there any progress on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670824</commentid>
    <comment_count>12</comment_count>
      <attachid>104964</attachid>
    <who name="Louis Brunner">louis.brunner.fr</who>
    <bug_when>2017-04-11 10:40:28 +0000</bug_when>
    <thetext>Created attachment 104964
macOS Sierra incomplete support

I have been working on a patch to support macOS Sierra.
At the moment, it works for a variety of programs (python, GIMP, most basic commands like ls, mkdir) but it is still incomplete (warnings in dyld, libsystem_kernel... crash for some GUI programs).

The patch adds a few required syscalls with placeholder implementations (faccessat, fstatat64, csrctl, getentropy and ulock_wake) and the new way of loading dylib (placing them at the end of the currently loaded segments). The second change means we need to know where the last segment was loaded, which means carrying around one more pointer on pointer in every function (which already have 6-9 arguments), that&apos;s why I created a structure (load_info_t) to store all this information and easily carry it around.

It also adds one assert in is_in_syscall in coregrind/m_syswrap/syswrap-main.c to match the other syscall related functions in the same file. I had a difficult to diagnose crash in this function because it didn&apos;t check for the existence of the syscall table.

Tell me if you need any change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673001</commentid>
    <comment_count>13</comment_count>
      <attachid>105168</attachid>
    <who name="">julien.aubert.mail</who>
    <bug_when>2017-04-24 07:25:59 +0000</bug_when>
    <thetext>Created attachment 105168
attachment-8447-0.html

Thanks. Works fine for me so far!

2017-04-11 12:40 GMT+02:00 Louis Brunner &lt;bugzilla_noreply@kde.org&gt;:

&gt; https://bugs.kde.org/show_bug.cgi?id=365327
&gt;
&gt; Louis Brunner &lt;louis.brunner.fr@gmail.com&gt; changed:
&gt;
&gt;            What    |Removed                     |Added
&gt; ------------------------------------------------------------
&gt; ----------------
&gt;                  CC|                            |
&gt; louis.brunner.fr@gmail.com
&gt;
&gt; --- Comment #12 from Louis Brunner &lt;louis.brunner.fr@gmail.com&gt; ---
&gt; Created attachment 104964
&gt;   --&gt; https://bugs.kde.org/attachment.cgi?id=104964&amp;action=edit
&gt; macOS Sierra incomplete support
&gt;
&gt; I have been working on a patch to support macOS Sierra.
&gt; At the moment, it works for a variety of programs (python, GIMP, most basic
&gt; commands like ls, mkdir) but it is still incomplete (warnings in dyld,
&gt; libsystem_kernel... crash for some GUI programs).
&gt;
&gt; The patch adds a few required syscalls with placeholder implementations
&gt; (faccessat, fstatat64, csrctl, getentropy and ulock_wake) and the new way
&gt; of
&gt; loading dylib (placing them at the end of the currently loaded segments).
&gt; The
&gt; second change means we need to know where the last segment was loaded,
&gt; which
&gt; means carrying around one more pointer on pointer in every function (which
&gt; already have 6-9 arguments), that&apos;s why I created a structure
&gt; (load_info_t) to
&gt; store all this information and easily carry it around.
&gt;
&gt; It also adds one assert in is_in_syscall in coregrind/m_syswrap/syswrap-
&gt; main.c
&gt; to match the other syscall related functions in the same file. I had a
&gt; difficult to diagnose crash in this function because it didn&apos;t check for
&gt; the
&gt; existence of the syscall table.
&gt;
&gt; Tell me if you need any change
&gt;
&gt; --
&gt; You are receiving this mail because:
&gt; You voted for the bug.
&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673158</commentid>
    <comment_count>14</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2017-04-25 06:03:36 +0000</bug_when>
    <thetext>(In reply to Louis Brunner from comment #12)

Louis, thanks for working on this.  A question: with your patch applied,
does it still work on earlier MacOS versions (10.11, 10.10) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673347</commentid>
    <comment_count>15</comment_count>
    <who name="Austin English">austinenglish</who>
    <bug_when>2017-04-26 00:03:28 +0000</bug_when>
    <thetext>(In reply to Louis Brunner from comment #12)
&gt; Created attachment 104964 [details]
&gt; macOS Sierra incomplete support
&gt; 
&gt; I have been working on a patch to support macOS Sierra.
&gt; At the moment, it works for a variety of programs (python, GIMP, most basic
&gt; commands like ls, mkdir) but it is still incomplete (warnings in dyld,
&gt; libsystem_kernel... crash for some GUI programs).
&gt; 
&gt; The patch adds a few required syscalls with placeholder implementations
&gt; (faccessat, fstatat64, csrctl, getentropy and ulock_wake) and the new way of
&gt; loading dylib (placing them at the end of the currently loaded segments).
&gt; The second change means we need to know where the last segment was loaded,
&gt; which means carrying around one more pointer on pointer in every function
&gt; (which already have 6-9 arguments), that&apos;s why I created a structure
&gt; (load_info_t) to store all this information and easily carry it around.
&gt; 
&gt; It also adds one assert in is_in_syscall in
&gt; coregrind/m_syswrap/syswrap-main.c to match the other syscall related
&gt; functions in the same file. I had a difficult to diagnose crash in this
&gt; function because it didn&apos;t check for the existence of the syscall table.
&gt; 
&gt; Tell me if you need any change

I can confirm that the situation is improved on 10.12 with this patch. E.g., valgrind will at least attempt things now. I noticed that `./vg-in-place ls -al` crashes valgrind, though `./vg-in-place true` works fine (does show some uninitialized memory in OSX though).

A basic sanity check on 10.11 also worked for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673671</commentid>
    <comment_count>16</comment_count>
      <attachid>105218</attachid>
    <who name="Louis Brunner">louis.brunner.fr</who>
    <bug_when>2017-04-27 09:43:04 +0000</bug_when>
    <thetext>Created attachment 105218
macOS Sierra incomplete support v2

Thank you for the feedback!

Austin, I just added a new patch that solves this issue (I can&apos;t believe that I didn&apos;t check that...). Thanks for the check on 10.11!

Julian, I don&apos;t have access to any 10.10 or 10.11, but I am trying to install one in a VM right now. Technically, most of the changes are scoped in the proper `#if DARWIN_VERS &gt;= DARWIN_10_XX`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673707</commentid>
    <comment_count>17</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2017-04-27 12:29:45 +0000</bug_when>
    <thetext>I&apos;ll test this patch on my 10.10 and 10.9 VMs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674089</commentid>
    <comment_count>18</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2017-04-29 19:10:18 +0000</bug_when>
    <thetext>With this patch I saw a regression in massif/tests/mmapunmap on macOS 10.11, due to the vg_assert(syscallInfo) added in VG_(is_in_syscall)().

For now I&apos;m going to hold off committing that specific part of your v2 patch, although you could well have uncovered an existing bug that is only being tickled with this change. 

--- mmapunmap.stderr.exp	2016-04-05 21:07:04.000000000 -0400
+++ mmapunmap.stderr.out	2017-04-29 14:42:38.000000000 -0400
@@ -0,0 +1,19 @@
+
+valgrind: m_syswrap/syswrap-main.c:1691 (Bool vgPlain_is_in_syscall(Int)): Assertion &apos;syscallInfo&apos; failed.
+
+host stacktrace:
+   at 0x238014AA3: ???
+   by 0x238014E4C: ???
+   by 0x238014E2A: ???
+   by 0x2380B1228: ???
+   by 0x238030C77: ???
+   by 0x238031030: ???
+   by 0x238003A7A: ???
+   by 0x2380038AE: ???
+   by 0x23801DADC: ???
+   by 0x23801C943: ???
+
+sched status:
+  running_tid=1
+
+Thread 1: status = VgTs_Init (lwpid 0)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674090</commentid>
    <comment_count>19</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2017-04-29 19:11:18 +0000</bug_when>
    <thetext>There are some new warnings due to scope issues with the patch as is, i.e. see the below warnings that creep in on pre macOS 10.12 systems [0].

&gt; m_syswrap/syswrap-darwin.c:9781:1: warning: no previous prototype for function &apos;vgSysWrap_darwin_getentropy_before&apos; [-Wmissing-prototypes]
&gt; PRE(getentropy)
&gt; ^
&gt; m_syswrap/syswrap-darwin.c:9788:1: warning: no previous prototype for function &apos;vgSysWrap_darwin_ulock_wake_before&apos; [-Wmissing-prototypes]
&gt; PRE(ulock_wake)
&gt; ^

Before I commit this, the patch v2 will be broken up into smaller discrete patches to ease bisecting later on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674126</commentid>
    <comment_count>20</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2017-04-30 01:36:06 +0000</bug_when>
    <thetext>Louis Brunner,

Thank you for the macOS 10.12 patch to improve Valgrind&apos;s support on that platform. You may have seen that I&apos;ve committed most of the changes to the SVN master version today.

A short summary follows, including the items that haven&apos;t been committed and why:

Committed to SVN master
1. Improve consistency of VG_(printf)() usage in coregrind/m_ume/macho.c (r16317)
2. New macOS 10.12 way of loading dylib (r16318 - biggest improvement)
3. Add a no-op wrapper for a new-in-10.12 syscall: getentropy (r16319)
4. Add a no-op wrapper for a new-in-10.12 syscall: ulock_wake (r16320)
5. Add a no-op wrapper for a new-in-10.10 syscall: csrctl (r16321)
6. Add a no-op wrapper for a new-in-10.10 syscall: faccessat (r16322)
7. Add a no-op wrapper for a new-in-10.10 syscall: fstatat64 (r16323)

Patches not committed and to discuss:

1. is_in_syscall-assert as noted above this caused one regression. The rebased, standalone patch attached is to be investigated further.

2. host_create_mach_voucher_trap or VG_DARWIN_SYSCALL_CONSTRUCT_MACH(70). Can you provide details of the reproducible bug this is fixing? I was unable to identify a fix this caused. Note we already have a host_create_mach_voucher() implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674127</commentid>
    <comment_count>21</comment_count>
      <attachid>105282</attachid>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2017-04-30 01:37:11 +0000</bug_when>
    <thetext>Created attachment 105282
0001-is_in_syscall-assert.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674228</commentid>
    <comment_count>22</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2017-04-30 20:38:31 +0000</bug_when>
    <thetext>Regarding outstanding patch #2 above in my Comment 20, I&apos;ve now been able to reproduce the missing mach syscall 70 within Valgrind&apos;s regression test suite.

bz#379390 is tracking that issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674250</commentid>
    <comment_count>23</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2017-05-01 02:18:34 +0000</bug_when>
    <thetext>So some progress has been made. As of r16328 Valgrind SVN trunk on macOS 10.12 is reporting as follows via its regression test suite:

== 629 tests, 450 stderr failures, 79 stdout failures, 1 stderrB failure, 1 stdoutB failure, 31 post failures ==

Whilst this might seem poor, it&apos;s only about 200 stderr failures above a similar OS X 10.11 system. And the regressions are predominantly caused solely by bz#379373.

Getting that fixed should greatly improve the support of Valgrind on this modern macOS. Thanks for the patches!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674309</commentid>
    <comment_count>24</comment_count>
    <who name="Louis Brunner">louis.brunner.fr</who>
    <bug_when>2017-05-01 14:37:01 +0000</bug_when>
    <thetext>Hi Rhys,

Thank you for the merge!

While making the changes for the new dylib loading, I encountered a crash coming from is_in_syscall.
I blamed it on the experimental nature of my patch at the time and I can&apos;t remember what triggered the crash.

You mentioned that you had older macOS VMs, do you have any advice/guide of any sort to help me set one up for testing?
I could look into the failing test and the warnings linked to `getentropy` and `ulock_wake` (if you didn&apos;t fix them already).

I was also working on a new version that included a pselect syscall wrapper (found it missing while testing python with valgrind), I will add it later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674322</commentid>
    <comment_count>25</comment_count>
    <who name="Rhys Kidd">rhyskidd</who>
    <bug_when>2017-05-01 17:37:29 +0000</bug_when>
    <thetext>I&apos;d strongly suggest running through the regression test suite on your local setup to provide coverage of a reasonable amount of the Darwin code base. It is run with &apos;make regtest&apos;.

The regression test is not quite automated on Darwin. You will probably need to kill one of the pthread-related tests that hangs at present.

Suggested areas to focus on:
1. pselect syscall
2. Any other missing syscalls that prevent you using a program of interest to you - more motivated to fix bugs in open source you&apos;re personally motivated in!
3. ulock_wait syscall - grep through the regression tests *.stderr.diff for the test that triggers it
4. Find a fix for the pthread-related hang in the regression test suite.

Create a separate bug report for each, then attach a patch and make it a blocker for this bug report.

The compiler warnings for &apos;getentropy&apos; and &apos;ulock_wake&apos; were fixed before commiting to SVN.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675964</commentid>
    <comment_count>26</comment_count>
      <attachid>105483</attachid>
    <who name="Louis Brunner">louis.brunner.fr</who>
    <bug_when>2017-05-12 15:22:58 +0000</bug_when>
    <thetext>Created attachment 105483
Checks in new syscalls/traps

Rhys,

I created new issue for pselect and ulock_wait (couldn&apos;t find the failing test though).
Could we simply disable pth_term_signal (the pthread test that hang) while we search for a fix? It makes testing pretty cumbersome. Do you have any idea what the problem could be? Maybe linked to another pthread problem (like 349128)?

I have also included a patch based on the one for ulock_wait (379754) which includes more checks for the newly added syscalls/traps. Do you want me to create an issue per syscall?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2474790</commentid>
    <comment_count>27</comment_count>
    <who name="Paul Floyd">pjfloyd</who>
    <bug_when>2025-12-06 06:52:26 +0000</bug_when>
    <thetext>I&apos;m marking this as fixed. More accurately, it&apos;s as fixed as it is ever likely to get. I don&apos;t have access to anything running macOS 10.8 to 10.12.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>101036</attachid>
            <date>2016-09-11 16:47:15 +0000</date>
            <delta_ts>2016-09-22 02:56:26 +0000</delta_ts>
            <desc>Initial support for macOS 10.12 (incomplete) patch set</desc>
            <filename>macOS_10.12_valgrind_v1.tar.gz</filename>
            <type>application/gzip</type>
            <size>3377</size>
            <attacher name="Rhys Kidd">rhyskidd</attacher>
            
              <data encoding="base64">H4sIADeJ1VcAA+0ca3ebOHa+xr9C28yZTexgA8avdDPTNHFan8mjGyed7s70MBjkmA0GHx55dfrf
VwJsEAYBNk7aOdxzYlvS1X3p6upKELEsx1jObGZCy1INnRmrGqzPJFue/FAYsCzbFgSAvzvtlvvN
8l4ZgcCxQhtwPGpqogLPAZZrcx3hB8AWJ0IyOJYtmUgUx4KmRMFDaOMxpd1TBiy+vxMY6Ap82Adn
0i10h16aVg7WhwrDMGGaWzsmvFOxgwGu1RN6u5VarUYi3BvmrarfANmYPe5W3rwBjNDZa4Ma+uyA
N28qYEuRzHtV79WxuwK/wCim4lX8scDg2DAKx8bicAQOT5SaREkgSq05pdqcUjugPUIKqnJQtgxN
MlVrzmxe9LhVwHH/5PD69EocXn/4IJ4MTvtDcADehGvfVPzxIXgVNkIE1a0d3dDhg2rZULe9AYq0
Lw8Ru8eCGrfXaXN4iGqV2jYYBsHEAmPDBMcuEYCoPIAGmEryxRCgIeJ4MFShaUputxyAscEplG6t
OgAniIFhT6AJLNsZj4EFIRhBzbivY7JfKjUAwMXwE8dy/D7H4F5u1RmcyhMo3+4vaqY45DEaKjJI
R8XaBzMDKTHSoNs8dvT9qaRphiw+ISuJv7i/3aZ6vb5AEU0oKaI6lW6gVal9XZaBzyeDguaHrtrF
ytDcjAy4yYSyY1rqHRSnjg0fRNxxWUDDEo3R/6BsB+24XlNHimq5a89Sw/ARueXUrVYlTX2CZkA2
RkWBpmJGOyqPmoJseYMnhOnZU0SLgA1FeSLpqIA+FS1FkFY+W6OhQ8TDTrdJ4drrCpfBilNp5vui
qBsI4ZZo4Rd+ShGzs/l5W4CU3TVnVYJk+X2/9wyjml8qtAxvZiZkEWX7C16ZQsLMl4LtZWm2U4Zr
m7BSUEaBz0QLJ6qTsNDbiPF2DGc+L+fAnZM4208WtO9RpTiSLDXUgCKC6DYuGuIGJudyQPeXKUQl
9UZfDvr/PRdw0OKFYJjOJFXvP6Alw8b0+nd0B6LG9EIcSLJRvnKLIqiqKXRZ1g7rU3LdFEVripLh
kTNeEm9mqro9pouTM5AvRchVMwkuZ2jOPCbpnHOG25WiXLoUOWPtKktT9fxT9UyaVWMq4vLLnGEW
faooabPTBiR/wOdzptvUNLPIsLLCbuPc0F1ZAdqvGKbl0fjiNgUKHxkmPDEcXZFsfJDC+c0L3Y8M
XfHrUPa7XyXx62NTmkK8w4o0VJ+zT8w4RtTiyQH1lMrPat4jlPPX0Tiqo5S2dAGbxQqYv0csNoGZ
roTw0kp4kx3xHas3jhntFtOaSa3WS6v1fjCE5p0qQyuEHVRmUqJdrBKrWHqzo9T5dhTMzi1drW6x
ag0uflXtEKJbziRIr1hB0uPNHPNwNiNl9ioyCc2xxUr9fnBlGNrIeCAmol+XAy+D5Fyxkh/2wxbs
U1sySFfwglr8SGTQ4cXX3EyW97ydobpD8hQpAiNZKKoXFCFUYjIVPaHwBWpGjij87DWd4TaNI73x
a3xi7UskpCXUFJly4ayZMPviUnOdIkZ0pTzTF46awxTBep25QM0/VvP0nFsKXxBqxlCklVbcMmiG
OXzUZXpEW6ARjuzXVYvHiw0qgax8JK58lDQHdkORIY3+BhATVrh3pjSbqLKVZt8AMxIr5tXVvNgJ
NgyJlMGMWRhtGD3NsKl5w9qGRVP8cvAhB1666QX6yvgihl+In2ry1C14dpOvFGippm2/pGnT8uA4
0wZHB/QgkX7u8Az7olPJ0eVJNoFJ3BAPsmFzeXFEWGp+nF/YAnKEfzuSaT9hZ6JbMsALCRZUbgIx
dqLdDfBzDPdYmjLFPKwQXa+img9l9eXhCdmbOaLYs+FYZgMh4b+netUdoJTGJDaR9G6+hBbKqMmP
VHtfRM0PM3np2UmKipZ7NoZ/er9EuZ4gBhXTfU6SIEFUGe84rv420r3qDvGpISnQPJPkyUVVMc4M
ZYConaAphpPUhMNT/HAmcYJESVfvoXT7VtWVanyzpuq3oSZMe16XxDopcGAC8MF/yWgx7zFBypwP
7HsLTR1q9Jkfxa7GRBo6wtrHn/PQN9BtxEFKETiuR4RptLka3ztLDM6Kn1W11IO0YlR7rt5Z1U7N
oV9S7UKcN7vTFul2K7np8uFVMMdn9gS/T5D+YHipyyIuBDhuVBxchJ8/eDU5sOIPPjRVdsclm/Vj
OoQTvKthbLiL6hWDobkv40xp0XiR7qbl3sVk1Gtk3pfS/RFCNSW6pAu0+sjBb28GFWvvumLfVggy
wtQXFaI536Ju6eS0KMwEuS3b1OXZI1VqvLb7eFGeOcNZAd1j3MF3f9G8x6+aBu86x2cpSdipMzwL
TlzoPXmL3xZ8L1mTxATZTb9CiNVwbeKZqgaxYbT3xwLLsvONwLvTY1O9gybDMYeKYkaS8qBqEW5o
ROYTJw2v+r2Q/FqcGYXvRefNmDG3IXm6P7rOPl+m8AtqU+MOfk8GWckc/LI5+L+HOXIbpPnN+ce7
075+o+pw3nVeXmm8m9/ceG9APW5ZPe7bVC+3gkI2xxw9QdP4W8/T9t8mryh0AnhmifGS7y5PKHji
dJ7bJPnkvxge2sZUlZFczZjoLARznMAM7wcuDmUZamhbaRsm8QZjqD4s34dr/E+9hhl+dhNUnkFT
dszHeGkJmtHdb8S0zynXVJIn4tS6EW00LlG5PkiInFuFMJifFWjJdZeNjrgs7EuQSD7UXdqkF/TS
LqkBX6AGL/JG8jYYQggmtj2z9huNkXNj1W8VWDfMm4Y1Me5FVFOXb9RfVOWA63ZbHR5II8OxgT1R
rdcAqPY/LUzE0aU7Q1XwP34AxYHANsDb4TGwoA31u51d9GMq6TZ+LDW3JzKCYTGi6KF4/5JiQcgY
jskgpozHjTRv/n9jWRRF416HijizTZFs8PivYI1eu8V3XW3mqsScGJAq+V0i5w2Jhw1fKy99S0UJ
mwKW5RnZn5CFX/yy4EG7/wX95IP7X9imAFhOaLe48v6X5wD/fpHABSS5sOtFwkTjb4AhMZbvF2m2
mvgOGPzlXQIzh8Mj8bh/Mjjv7/x+fHj52+Bc5Fix93kPcCzbY9k9MK/+2L8cgjt8culeRnImyWgF
BZ/wDSS9z7spBDnWpYhoZqOI8FNJch5JLitJDpGs0UnyHkmeQjJ07QoWsQK2EKmz4Tvx6H3/6NfB
+bud3zGaPYHAS1sAylHxaGHsLa/q4E8Hpw+AMf/07ufh2ns9UBO4zh7X8q7o2QLEpTYHr8hbc378
Em79+orSI3RrT3yv168rtS3XKFy7XkU2wpW+Upf9IUJHNgpdPbPz4xdPja+7sdfQfA5IREyMTYks
HDY4trNHuxGMVmCxWqJa7QSVknvQDFHzDQEIqO4Cz0QRazi65WXGUAlbA8nLhLD7l5cXlzu/f5S0
GxOlNABPSgugaTs3Jlt/QO7GuZ+8+9l0PwVkZAl1QIONrB324Xaj0+g2eg2ObXDc7mdyrNbht+cx
c7m2qVxdnNCg77p+7VtvC1oo6i3sh6peOio/H7BsE+WEqqYwY/UBWhvJAFLWf7TWs8H632HR+o9q
+HL9fw5YrP8mdOdfA7mBMxPx1tAQNUNS5Kli1YvMCeiMkvKEtF7LuQPH8yhpqHlfeHXaVscgvDr+
4yAU01vgp5+SW9v4OjcMNKQOtbWbhUSP2oqmyR8VJo2G//+OKTj0Zh5ZC3i3HYBX1/qtjnatYCmz
qANwhbbfAN/hhyK29oisP52hQih+19FyvQ11RR2jrGPJ2aai9Wjdm9Ks4X8z0lRpC4y39m3E7dJY
pjlgev+4mwx72BW9r1Aae/2bYeJl6UaVRQVqtgQOAPvatT0GqEU89oB0t7/+Sm7t0pk8tBEfJhOf
HpUP8klqs/++8aa50Jv5FGP0CaNbcFFYzIFQj318qDSCrq87OJdCnqLDe5x3+BngqyyO/tBtP6+b
hxnmd3Kyd4yL8x3XxfkO4eJ0Dy/EweOHVOgu/PtZ3Ptb8O54S7wN2zvs22u5tqrLmqPAxt2tiv8Y
S9adqTV3kUlhHp3CJ96RUzst+2+n1cYnDfiryfub2a1GFQi9HtpRNeaLGEBV4ZH4OTJQGLNSazTA
1cXxBbieKZINwb1qT4gdp7/F3nnQnV1gGY4pY5srEJhQg5KF73qLeNPPkRGvedK1UKaJeS6KHFnk
yWKTLApksUUW22SxQxa7ZLFHFDlSKo6UiiOl4kipOFIqjpSKI6XiSKk4UiqOlIonpeJ9qbIMLO9i
LqeQ/wrniKjZPf2HW6J4fimeHX4a/md4dHh6SuzOP74T/T5+q3h0cT68urw+uhKvzwefdlAI3cXu
Fg0oYV4dz2fbXddne8Jez8twPf5gPf49NpZ/NPAVww158C4eAzo3PphT7tMjcwqkG0nVLRsln7qk
hSZOIULxvGcCN1x6cdLxs2AviMzj4SK5fel9XAkllFBCCSWUUEIJJZRQQgkllFBCCSWUUEIJJZRQ
QgklYPg/wJov3gB4AAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104964</attachid>
            <date>2017-04-11 10:40:28 +0000</date>
            <delta_ts>2017-04-27 09:43:04 +0000</delta_ts>
            <desc>macOS Sierra incomplete support</desc>
            <filename>valgrind_sierra.diff</filename>
            <type>text/plain</type>
            <size>29958</size>
            <attacher name="Louis Brunner">louis.brunner.fr</attacher>
            
              <data encoding="base64">SW5kZXg6IGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCShyZXZpc2lv
biAxNjI5NykKKysrIGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NjksMTEgKzU2OSwxMSBAQAogLy8gTllJIG9wZW5hdCAgICAgICAg
ICAvLyA0NjMKIC8vIE5ZSSBvcGVuYXRfbm9jYW5jZWwgLy8gNDY0CiAvLyBOWUkgcmVuYW1lYXQg
ICAgICAgIC8vIDQ2NQotLy8gTllJIGZhY2Nlc3NhdCAgICAgICAvLyA0NjYKK0RFQ0xfVEVNUExB
VEUoZGFyd2luLCBmYWNjZXNzYXQpOyAgICAgICAgICAgICAgICAvLyA0NjYKIC8vIE5ZSSBmY2ht
b2RhdCAgICAgICAgLy8gNDY3CiAvLyBOWUkgZmNob3duYXQgICAgICAgIC8vIDQ2OAogLy8gTllJ
IGZzdGF0YXQgICAgICAgICAvLyA0NjkKLS8vIE5ZSSBmc3RhdGF0NjQgICAgICAgLy8gNDcwCitE
RUNMX1RFTVBMQVRFKGRhcndpbiwgZnN0YXRhdDY0KTsgICAgICAgICAgICAgICAgLy8gNDcwCiAv
LyBOWUkgbGlua2F0ICAgICAgICAgIC8vIDQ3MQogLy8gTllJIHVubGlua2F0ICAgICAgICAvLyA0
NzIKIERFQ0xfVEVNUExBVEUoZGFyd2luLCByZWFkbGlua2F0KTsgICAgICAgICAgICAgICAvLyA0
NzMKQEAgLTU4Niw3ICs1ODYsNyBAQAogLy8gTllJIHJlY3Ztc2dfeCAgICAgICAvLyA0ODAKIC8v
IE5ZSSBzZW5kbXNnX3ggICAgICAgLy8gNDgxCiAvLyBOWUkgdGhyZWFkX3NlbGZ1c2FnZSAgLy8g
NDgyCi0vLyBOWUkgY3NyY3RsICAgICAgICAgIC8vIDQ4MworREVDTF9URU1QTEFURShkYXJ3aW4s
IGNzcmN0bCk7ICAgICAgICAgICAgICAgICAgICAgIC8vIDQ4MwogREVDTF9URU1QTEFURShkYXJ3
aW4sIGd1YXJkZWRfb3Blbl9kcHJvdGVjdGVkX25wKTsgIC8vIDQ4NAogREVDTF9URU1QTEFURShk
YXJ3aW4sIGd1YXJkZWRfd3JpdGVfbnApOyAgICAgICAgICAgIC8vIDQ4NQogREVDTF9URU1QTEFU
RShkYXJ3aW4sIGd1YXJkZWRfcHdyaXRlX25wKTsgICAgICAgICAgIC8vIDQ4NgpAQCAtNjA3LDcg
KzYwNyw3IEBACiAvLyBOWUkgd29ya19pbnRlcnZhbF9jdGwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gNDk5CiAjZW5kaWYgLyogREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzExICovCiAj
aWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEyCi0vLyBOWUkgZ2V0ZW50cm9weSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNTAwCitERUNMX1RFTVBMQVRFKGRhcndpbiwg
Z2V0ZW50cm9weSk7ICAgICAgICAgICAgICAgICAgLy8gNTAwCiAvLyBOWUkgbmVjcF9vcGVuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNTAxCiAvLyBOWUkgbmVjcF9jbGll
bnRfYWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNTAyCiAvLyA1MDMKQEAgLTYy
Myw3ICs2MjMsNyBAQAogLy8gNTEzCiAvLyA1MTQKIC8vIE5ZSSB1bG9ja193YWl0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1MTUKLS8vIE5ZSSB1bG9ja193YWtlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1MTYKK0RFQ0xfVEVNUExBVEUoZGFyd2lu
LCB1bG9ja193YWtlKTsgICAgICAgICAgICAgICAgICAvLyA1MTYKIC8vIE5ZSSBmY2xvbmVmaWxl
YXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1MTcKIC8vIE5ZSSBmc19zbmFw
c2hvdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1MTgKIC8vIDUxOQpJbmRl
eDogY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWRhcndpbi5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNv
cmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1kYXJ3aW4uYwkocmV2aXNpb24gMTYyOTcpCisrKyBj
b3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtZGFyd2luLmMJKHdvcmtpbmcgY29weSkKQEAgLTk3
MjIsNiArOTcyMiwyMCBAQAogICAgICAgICBQT1NUX01FTV9XUklURSggQVJHMywgUkVTICk7CiB9
CiAKK1BSRShmYWNjZXNzYXQpCit7CisgICBQUklOVCgiZmFjY2Vzc2F0KEZJWE1FKSglbHgsJWx4
LCVseCwlbHgpIiwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CisgICBQUkVfUkVHX1JFQUQ0KGlu
dCwgImZhY2Nlc3NhdCIsCisgICAgICAgICAgICAgICAgIGludCwgZmQsIHVzZXJfYWRkcl90LCBw
YXRoLCBpbnQsIGFtb2RlLCBpbnQsIGZsYWcpOworfQorCitQUkUoZnN0YXRhdDY0KQoreworICAg
UFJJTlQoImZzdGF0YXQ2NChGSVhNRSkoJWx4LCVseCwlbHgsJWx4KSIsIEFSRzEsIEFSRzIsIEFS
RzMsIEFSRzQpOworICAgUFJFX1JFR19SRUFENChpbnQsICJmc3RhdGF0NjQiLAorICAgICAgICAg
ICAgICAgICBpbnQsIGZkLCB1c2VyX2FkZHJfdCwgcGF0aCwgdXNlcl9hZGRyX3QsIHViLCBpbnQs
IGZsYWcpOworfQorCiBQUkUoYnNkdGhyZWFkX2N0bCkKIHsKICAgIC8vIGludCBic2R0aHJlYWRf
Y3RsKHVzZXJfYWRkcl90IGNtZCwgdXNlcl9hZGRyX3QgYXJnMSwgCkBAIC05NzMxLDYgKzk3NDUs
MTMgQEAKICAgICAgICAgICAgICAgICAgdm9pZCosIGNtZCwgdm9pZCosIGFyZzEsIHZvaWQqLCBh
cmcyLCB2b2lkKiwgYXJnMyk7CiB9CiAKK1BSRShjc3JjdGwpCit7CisgICBQUklOVCgiY3NyY3Rs
KEZJWE1FKSglbHgsJWx4LCVseCkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSRV9SRUdfUkVB
RDMoaW50LCAiY3NyY3RsIiwKKyAgICAgICAgICAgICAgICAgdWludDMyX3QsIG9wLCB1c2VyX2Fk
ZHJfdCwgdXNlcmFkZHIsIHVzZXJfYWRkcl90LCB1c2Vyc2l6ZSk7Cit9CisKIFBSRShndWFyZGVk
X29wZW5fZHByb3RlY3RlZF9ucCkKIHsKICAgICBQUklOVCgiZ3VhcmRlZF9vcGVuX2Rwcm90ZWN0
ZWRfbnAoIgpAQCAtOTc1Nyw2ICs5Nzc4LDIwIEBACiAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMs
IChVTG9uZylBUkc0KTsKIH0KIAorUFJFKGdldGVudHJvcHkpCit7CisgICBQUklOVCgiZ2V0ZW50
cm9weShGSVhNRSkoJWx4LCVseCkiLCBBUkcxLCBBUkcyKTsKKyAgIFBSRV9SRUdfUkVBRDIoaW50
LCAiZ2V0ZW50cm9weSIsCisgICAgICAgICAgICAgICAgIHZvaWQqLCBidWZmZXIsIHNpemVfdCwg
c2l6ZSk7Cit9CisKK1BSRSh1bG9ja193YWtlKQoreworICAgUFJJTlQoInVsb2NrX3dha2UoRklY
TUUpKCVseCwlbHgsJWx4KSIsIEFSRzEsIEFSRzIsIEFSRzMpOworICAgUFJFX1JFR19SRUFEMyhp
bnQsICJ1bG9ja193YWtlIiwKKyAgICAgICAgICAgICAgICAgdWludDMyX3QsIG9wZXJhdGlvbiwg
dm9pZCosIGFkZHIsIHVpbnQ2NF90LCB3YWtlX3ZhbHVlKTsKK30KKwogI2VuZGlmIC8qIERBUldJ
Tl9WRVJTID49IERBUldJTl8xMF8xMCAqLwogCiAKQEAgLTEwMzE1LDggKzEwMzUwLDExIEBACiAj
aWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEyCiAvLyBfX19fXyhfX05SX2tkZWJ1Z190eXBl
ZmlsdGVyKSwgICAgICAgICAgICAgICAgICAgICAgIC8vIDE3NwogLy8gX19fX18oX19OUl9jbG9u
ZWZpbGVhdCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA0NjIKKyAgIE1BQ1hfKF9f
TlJfZmFjY2Vzc2F0LCBmYWNjZXNzYXQpLCAgICAgICAgICAgICAgICAgICAgLy8gNDY2CisgICBN
QUNYXyhfX05SX2ZzdGF0YXQ2NCwgZnN0YXRhdDY0KSwgICAgICAgICAgICAgICAgICAgIC8vIDQ3
MAorICAgTUFDWF8oX19OUl9jc3JjdGwsIGNzcmN0bCksICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyA0ODMKIC8vIF9fX19fKF9fTlJfcmVuYW1lYXR4X25wKSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gNDg4Ci0vLyBfX19fXyhfX05SX2dldGVudHJvcHkpLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIDUwMAorICAgTUFDWF8oX19OUl9nZXRlbnRyb3B5LCBnZXRlbnRy
b3B5KSwgICAgICAgICAgICAgICAgICAvLyA1MDAKIC8vIF9fX19fKF9fTlJfbmVjcF9vcGVuKSwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNTAxCiAvLyBfX19fXyhfX05SX25lY3Bf
Y2xpZW50X2FjdGlvbiksICAgICAgICAgICAgICAgICAgICAgIC8vIDUwMgogICAgX19fX18oVkdf
REFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoNTAzKSksICAgICAgICAvLyA/Pz8KQEAgLTEw
MzMyLDcgKzEwMzcwLDcgQEAKICAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9V
TklYKDUxMykpLCAgICAgICAgLy8gPz8/CiAgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05T
VFJVQ1RfVU5JWCg1MTQpKSwgICAgICAgIC8vID8/PwogLy8gX19fX18oX19OUl91bG9ja193YWl0
KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1MTUKLS8vIF9fX19fKF9fTlJfdWxv
Y2tfd2FrZSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNTE2CisgICBNQUNYXyhf
X05SX3Vsb2NrX3dha2UsIHVsb2NrX3dha2UpLCAgICAgICAgICAgICAgICAgIC8vIDUxNgogLy8g
X19fX18oX19OUl9mY2xvbmVmaWxlYXQpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1
MTcKIC8vIF9fX19fKF9fTlJfZnNfc25hcHNob3QpLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gNTE4CiAgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCg1MTkp
KSwgICAgICAgIC8vID8/PwpJbmRleDogY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLW1haW4u
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBjb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbWFpbi5jCShyZXZp
c2lvbiAxNjI5NykKKysrIGNvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1tYWluLmMJKHdvcmtp
bmcgY29weSkKQEAgLTE2ODgsNiArMTY4OCw3IEBACiAKIEJvb2wgVkdfKGlzX2luX3N5c2NhbGwp
ICggSW50IHRpZCApCiB7CisgICB2Z19hc3NlcnQoc3lzY2FsbEluZm8pOwogICAgdmdfYXNzZXJ0
KHRpZCA+PSAwICYmIHRpZCA8IFZHX05fVEhSRUFEUyk7CiAgICByZXR1cm4gKHN5c2NhbGxJbmZv
W3RpZF0uc3RhdHVzLndoYXQgIT0gU3NJZGxlKTsKIH0KSW5kZXg6IGNvcmVncmluZC9tX3VtZS9t
YWNoby5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGNvcmVncmluZC9tX3VtZS9tYWNoby5jCShyZXZpc2lvbiAx
NjI5NykKKysrIGNvcmVncmluZC9tX3VtZS9tYWNoby5jCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw2
ICs2NywxNSBAQAogI2RlZmluZSBTRUNUSU9OIHNlY3Rpb25fNjQKICNlbmRpZgogCit0eXBlZGVm
IHN0cnVjdCBsb2FkX2luZm9fdCB7CisgIHZraV91aW50OF90ICpzdGFja19zdGFydDsgLy8gYWxs
b2NhdGVkIHRocmVhZCBzdGFjayAoaG90IGVuZCkKKyAgdmtpX3VpbnQ4X3QgKnN0YWNrX2VuZDsg
Ly8gYWxsb2NhdGVkIHRocmVhZCBzdGFjayAoY29sZCBlbmQpCisgIHZraV91aW50OF90ICp0ZXh0
OyAvLyBzdGFydCBvZiB0ZXh0IHNlZ21lbnQgKGkuZS4gdGhlIG1hY2ggaGVhZGVycykKKyAgdmtp
X3VpbnQ4X3QgKmVudHJ5OyAvLyBzdGF0aWMgZW50cnkgcG9pbnQKKyAgdmtpX3VpbnQ4X3QgKmxp
bmtlcl9lbnRyeTsgLy8gZHlsaW5rZXIgZW50cnkgcG9pbnQKKyAgQWRkciBsaW5rZXJfb2Zmc2V0
OyAvLyBkeWxpbmtlciB0ZXh0IG9mZnNldAorICB2a2lfc2l6ZV90IG1heF9hZGRyOyAvLyBiaWdn
ZXN0IGFkZHJlc3MgcmVhY2hlZCB3aGlsZSBsb2FkaW5nIHNlZ21lbnRzCit9IGxvYWRfaW5mb190
OwogCiBzdGF0aWMgdm9pZCBwcmludChjb25zdCBIQ2hhciAqc3RyKQogewpAQCAtOTksMzAgKzEw
OCwyNCBAQAogCiBzdGF0aWMgaW50IAogbG9hZF90aGluX2ZpbGUoaW50IGZkLCB2a2lfb2ZmX3Qg
b2Zmc2V0LCB2a2lfb2ZmX3Qgc2l6ZSwgdW5zaWduZWQgbG9uZyBmaWxldHlwZSwgCi0gICAgICAg
ICAgICAgICBjb25zdCBIQ2hhciAqZmlsZW5hbWUsIAotICAgICAgICAgICAgICAgdmtpX3VpbnQ4
X3QgKipvdXRfc3RhY2tfc3RhcnQsIHZraV91aW50OF90ICoqb3V0X3N0YWNrX2VuZCwgCi0gICAg
ICAgICAgICAgICB2a2lfdWludDhfdCAqKm91dF90ZXh0LCB2a2lfdWludDhfdCAqKm91dF9lbnRy
eSwgdmtpX3VpbnQ4X3QgKipvdXRfbGlua2VyX2VudHJ5KTsKKyAgICAgICAgICAgICAgIGNvbnN0
IEhDaGFyICpmaWxlbmFtZSwgbG9hZF9pbmZvX3QgKm91dF9pbmZvKTsKIAogc3RhdGljIGludCAK
IGxvYWRfZmF0X2ZpbGUoaW50IGZkLCB2a2lfb2ZmX3Qgb2Zmc2V0LCB2a2lfb2ZmX3Qgc2l6ZSwg
dW5zaWduZWQgbG9uZyBmaWxldHlwZSwgCi0gICAgICAgICAgICAgIGNvbnN0IEhDaGFyICpmaWxl
bmFtZSwgCi0gICAgICAgICAgICAgIHZraV91aW50OF90ICoqb3V0X3N0YWNrX3N0YXJ0LCB2a2lf
dWludDhfdCAqKm91dF9zdGFja19lbmQsIAotICAgICAgICAgICAgICB2a2lfdWludDhfdCAqKm91
dF90ZXh0LCB2a2lfdWludDhfdCAqKm91dF9lbnRyeSwgdmtpX3VpbnQ4X3QgKipvdXRfbGlua2Vy
X2VudHJ5KTsKKyAgICAgICAgICAgICAgY29uc3QgSENoYXIgKmZpbGVuYW1lLCBsb2FkX2luZm9f
dCAqb3V0X2luZm8pOwogCiBzdGF0aWMgaW50IAogbG9hZF9tYWNoX2ZpbGUoaW50IGZkLCB2a2lf
b2ZmX3Qgb2Zmc2V0LCB2a2lfb2ZmX3Qgc2l6ZSwgdW5zaWduZWQgbG9uZyBmaWxldHlwZSwgCi0g
ICAgICAgICAgICAgICBjb25zdCBIQ2hhciAqZmlsZW5hbWUsIAotICAgICAgICAgICAgICAgdmtp
X3VpbnQ4X3QgKipvdXRfc3RhY2tfc3RhcnQsIHZraV91aW50OF90ICoqb3V0X3N0YWNrX2VuZCwg
Ci0gICAgICAgICAgICAgICB2a2lfdWludDhfdCAqKm91dF90ZXh0LCB2a2lfdWludDhfdCAqKm91
dF9lbnRyeSwgdmtpX3VpbnQ4X3QgKipvdXRfbGlua2VyX2VudHJ5KTsKKyAgICAgICAgICAgICAg
IGNvbnN0IEhDaGFyICpmaWxlbmFtZSwgbG9hZF9pbmZvX3QgKm91dF9pbmZvKTsKIAogCiAvKiBP
cGVuIGFuZCBtYXAgYSBkeWxpbmtlciBmaWxlLgogICAgUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC0x
IG9uIGFueSBmYWlsdXJlLgogICAgZmlsZW5hbWUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLgot
ICAgVGhlIGR5bGlua2VyJ3MgZW50cnkgcG9pbnQgaXMgcmV0dXJuZWQgaW4gKm91dF9saW5rZXJf
ZW50cnkuCisgICBUaGUgZHlsaW5rZXIncyBlbnRyeSBwb2ludCBpcyByZXR1cm5lZCBpbiBvdXRf
aW5mby0+bGlua2VyX2VudHJ5LgogICovCiBzdGF0aWMgaW50IAotb3Blbl9keWxpbmtlcihjb25z
dCBIQ2hhciAqZmlsZW5hbWUsIHZraV91aW50OF90ICoqb3V0X2xpbmtlcl9lbnRyeSkKK29wZW5f
ZHlsaW5rZXIoY29uc3QgSENoYXIgKmZpbGVuYW1lLCBsb2FkX2luZm9fdCAqb3V0X2luZm8pCiB7
CiAgICBzdHJ1Y3Qgdmdfc3RhdCBzYjsKICAgIHZraV9zaXplX3QgZmlsZXNpemU7CkBAIC0xMzgs
MjcgKzE0MSwyMCBAQAogICAgcmVzID0gVkdfKG9wZW4pKGZpbGVuYW1lLCBWS0lfT19SRE9OTFks
IDApOwogICAgZmQgPSBzcl9SZXMocmVzKTsKICAgIGlmIChzcl9pc0Vycm9yKHJlcykpIHsKLSAg
ICAgIHByaW50KCJjb3VsZG4ndCBvcGVuIGR5bGlua2VyOiAiKTsKLSAgICAgIHByaW50KGZpbGVu
YW1lKTsKLSAgICAgIHByaW50KCJcbiIpOworICAgICAgVkdfKHByaW50ZikoImNvdWxkbid0IG9w
ZW4gZHlsaW5rZXI6ICVzXG4iLCBmaWxlbmFtZSk7CiAgICAgICByZXR1cm4gLTE7CiAgICB9CiAg
ICBlcnIgPSBWR18oZnN0YXQpKGZkLCAmc2IpOwogICAgaWYgKGVycikgewotICAgICAgcHJpbnQo
ImNvdWxkbid0IHN0YXQgZHlsaW5rZXI6ICIpOwotICAgICAgcHJpbnQoZmlsZW5hbWUpOwotICAg
ICAgcHJpbnQoIlxuIik7CisgICAgICBWR18ocHJpbnRmKSgiY291bGRuJ3Qgc3RhdCBkeWxpbmtl
cjogJXNcbiIsIGZpbGVuYW1lKTsKICAgICAgIFZHXyhjbG9zZSkoZmQpOwogICAgICAgcmV0dXJu
IC0xOwogICAgfQogICAgZmlsZXNpemUgPSBzYi5zaXplOwogCi0gICBlcnIgPSBsb2FkX21hY2hf
ZmlsZShmZCwgMCwgZmlsZXNpemUsIE1IX0RZTElOS0VSLCBmaWxlbmFtZSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBOVUxMLCBvdXRfbGlua2VyX2VudHJ5LCBOVUxMKTsK
KyAgIGVyciA9IGxvYWRfbWFjaF9maWxlKGZkLCAwLCBmaWxlc2l6ZSwgTUhfRFlMSU5LRVIsIGZp
bGVuYW1lLCBvdXRfaW5mbyk7CiAgICBpZiAoZXJyKSB7Ci0gICAgICBwcmludCgiLi4ud2hpbGUg
bG9hZGluZyBkeWxpbmtlcjogIik7Ci0gICAgICBwcmludChmaWxlbmFtZSk7Ci0gICAgICBwcmlu
dCgiXG4iKTsKKyAgICAgIFZHXyhwcmludGYpKCIuLi53aGlsZSBsb2FkaW5nIGR5bGlua2VyOiAl
c1xuIiwgZmlsZW5hbWUpOwogICAgfQogICAgVkdfKGNsb3NlKShmZCk7CiAgICByZXR1cm4gZXJy
OwpAQCAtMTcwLDIwICsxNjYsMjIgQEAKICAgIGZkW29mZnNldC4uc2l6ZSkgaXMgYSBNYWNoLU8g
dGhpbiBmaWxlLiAKICAgIFJldHVybnMgMCBvbiBzdWNjZXNzLCAtMSBvbiBhbnkgZmFpbHVyZS4K
ICAgIElmIHRoaXMgc2VnbWVudCBjb250YWlucyB0aGUgZXhlY3V0YWJsZSdzIE1hY2ggaGVhZGVy
cywgdGhlaXIgCi0gICAgIGxvYWRlZCBhZGRyZXNzIGlzIHJldHVybmVkIGluICp0ZXh0LgorICAg
ICBsb2FkZWQgYWRkcmVzcyBpcyByZXR1cm5lZCBpbiBvdXRfaW5mby0+dGV4dC4KICAgIElmIHRo
aXMgc2VnbWVudCBpcyBhIF9fVU5JWFNUQUNLLCBpdHMgc3RhcnQgYWRkcmVzcyBpcyByZXR1cm5l
ZCBpbiAKLSAgICAgKnN0YWNrX3N0YXJ0LgorICAgICBvdXRfaW5mby0+c3RhY2tfc3RhcnQuCiAq
Lwogc3RhdGljIGludAogbG9hZF9zZWdtZW50KGludCBmZCwgdmtpX29mZl90IG9mZnNldCwgdmtp
X29mZl90IHNpemUsIAotICAgICAgICAgICAgIHZraV91aW50OF90ICoqdGV4dCwgdmtpX3VpbnQ4
X3QgKipzdGFja19zdGFydCwgCi0gICAgICAgICAgICAgc3RydWN0IFNFR01FTlRfQ09NTUFORCAq
c2VnY21kLCBjb25zdCBIQ2hhciAqZmlsZW5hbWUpCisgICAgICAgICAgICAgc3RydWN0IFNFR01F
TlRfQ09NTUFORCAqc2VnY21kLCBjb25zdCBIQ2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAg
bG9hZF9pbmZvX3QgKm91dF9pbmZvKQogewogICAgU3lzUmVzIHJlczsKICAgIEFkZHIgYWRkcjsK
ICAgIHZraV9zaXplX3QgZmlsZXNpemU7IC8vIHBhZ2UtYWxpZ25lZCAKICAgIHZraV9zaXplX3Qg
dm1zaXplOyAgIC8vIHBhZ2UtYWxpZ25lZAorICAgdmtpX3NpemVfdCB2bWVuZDsgICAgLy8gcGFn
ZS1hbGlnbmVkCiAgICB1bnNpZ25lZCBpbnQgcHJvdDsKKyAgIEFkZHIgc2xpZGVkX2FkZHIgPSBz
ZWdjbWQtPnZtYWRkciArIG91dF9pbmZvLT5saW5rZXJfb2Zmc2V0OwogCiAgICAvLyBHclAgZml4
bWUgbWFyayBfX1VOSVhTVEFDSyBhcyBTRl9TVEFDSwogICAgIApAQCAtMjEyLDEyICsyMTAsMTIg
QEAKIAogICAgLy8gUmVjb3JkIHRoZSBzZWdtZW50IGNvbnRhaW5pbmcgdGhlIE1hY2ggaGVhZGVy
cyB0aGVtc2VsdmVzCiAgICBpZiAoc2VnY21kLT5maWxlb2ZmID09IDAgICYmICBzZWdjbWQtPmZp
bGVzaXplICE9IDApIHsKLSAgICAgIGlmICh0ZXh0KSAqdGV4dCA9ICh2a2lfdWludDhfdCAqKXNl
Z2NtZC0+dm1hZGRyOworICAgICAgb3V0X2luZm8tPnRleHQgPSAodmtpX3VpbnQ4X3QgKilzbGlk
ZWRfYWRkcjsKICAgIH0KIAogICAgLy8gUmVjb3JkIHRoZSBfX1VOSVhTVEFDSyBzdGFydAogICAg
aWYgKDAgPT0gVkdfKHN0cmNtcCkoc2VnY21kLT5zZWduYW1lLCBTRUdfVU5JWFNUQUNLKSkgewot
ICAgICAgaWYgKHN0YWNrX3N0YXJ0KSAqc3RhY2tfc3RhcnQgPSAodmtpX3VpbnQ4X3QgKilzZWdj
bWQtPnZtYWRkcjsKKyAgICAgIG91dF9pbmZvLT5zdGFja19zdGFydCA9ICh2a2lfdWludDhfdCAq
KXNsaWRlZF9hZGRyOwogICAgfQogCiAgICAvLyBTYW5pdHktY2hlY2sgdGhlIHNlZ21lbnQKQEAg
LTIyNSw2ICsyMjMsMTIgQEAKICAgICAgIHByaW50KCJiYWQgZXhlY3V0YWJsZSAoaW52YWxpZCBz
ZWdtZW50IGNvbW1hbmQpXG4iKTsKICAgICAgIHJldHVybiAtMTsKICAgIH0KKworICAgdm1lbmQg
PSBWR19QR1JPVU5EVVAoc2xpZGVkX2FkZHIgKyBzZWdjbWQtPnZtc2l6ZSk7CisgICBpZiAodm1l
bmQgPiBvdXRfaW5mby0+bWF4X2FkZHIpIHsKKyAgICAgb3V0X2luZm8tPm1heF9hZGRyID0gdm1l
bmQ7CisgICB9CisKICAgIGlmIChzZWdjbWQtPnZtc2l6ZSA9PSAwKSB7CiAgICAgICByZXR1cm4g
MDsgIC8vIG5vdGhpbmcgdG8gbWFwIC0gb2sKICAgIH0KQEAgLTIzOSw3ICsyNDMsNyBAQAogICAg
ZmlsZXNpemUgPSBWR19QR1JPVU5EVVAoc2VnY21kLT5maWxlc2l6ZSk7CiAgICB2bXNpemUgPSBW
R19QR1JPVU5EVVAoc2VnY21kLT52bXNpemUpOwogICAgaWYgKGZpbGVzaXplID4gMCkgewotICAg
ICAgYWRkciA9IChBZGRyKXNlZ2NtZC0+dm1hZGRyOworICAgICAgYWRkciA9IHNsaWRlZF9hZGRy
OwogICAgICAgVkdfKGRlYnVnTG9nKSgyLCAidW1lIiwgIm1tYXAgZml4ZWQgKGZpbGUpICglI2x4
LCAlbHUpXG4iLCBhZGRyLCBmaWxlc2l6ZSk7CiAgICAgICByZXMgPSBWR18oYW1fbW1hcF9uYW1l
ZF9maWxlX2ZpeGVkX2NsaWVudCkoYWRkciwgZmlsZXNpemUsIHByb3QsIGZkLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKyBzZWdjbWQt
PmZpbGVvZmYsIApAQCAtMjU2LDcgKzI2MCw3IEBACiAgICBpZiAoZmlsZXNpemUgIT0gdm1zaXpl
KSB7CiAgICAgICAvLyBwYWdlLWFsaWduZWQgcGFydAogICAgICAgU2l6ZVQgbGVuZ3RoID0gdm1z
aXplIC0gZmlsZXNpemU7Ci0gICAgICBhZGRyID0gKEFkZHIpKGZpbGVzaXplICsgc2VnY21kLT52
bWFkZHIpOworICAgICAgYWRkciA9IChBZGRyKShmaWxlc2l6ZSArIHNsaWRlZF9hZGRyKTsKICAg
ICAgIFZHXyhkZWJ1Z0xvZykoMiwgInVtZSIsICJtbWFwIGZpeGVkIChhbm9uKSAoJSNseCwgJWx1
KVxuIiwgYWRkciwgbGVuZ3RoKTsKICAgICAgIHJlcyA9IFZHXyhhbV9tbWFwX2Fub25fZml4ZWRf
Y2xpZW50KShhZGRyLCBsZW5ndGgsIHByb3QpOwogICAgICAgY2hlY2tfbW1hcChyZXMsIGFkZHIs
IGxlbmd0aCwgImxvYWRfc2VnbWVudDIiKTsKQEAgLTI2OSwxNiArMjczLDE1IEBACiAvKiAKICAg
IFBhcnNlIGEgTENfVEhSRUFEIG9yIExDX1VOSVhUSFJFQUQgY29tbWFuZC4gCiAgICBSZXR1cm4g
MCBvbiBzdWNjZXNzLCAtMSBvbiBhbnkgZmFpbHVyZS4KLSAgIFRoZSBzdGFjayBhZGRyZXNzIGlz
IHJldHVybmVkIGluICpzdGFjay4gSWYgdGhlIGV4ZWN1dGFibGUgcmVxdWVzdGVkIAotICAgYSBu
b24tZGVmYXVsdCBzdGFjayBhZGRyZXNzLCAqY3VzdG9tc3RhY2sgaXMgc2V0IHRvIFRSVUUuIFRo
ZSB0aHJlYWQncyAKLSAgIGVudHJ5IHBvaW50IGlzIHJldHVybmVkIGluICplbnRyeS4KKyAgIElm
IHRoZSB0aHJlYWQgaXMgYSBMQ19VTklYVEhSRUFELCB0aGUgc3RhY2sgYWRkcmVzcyBpcyByZXR1
cm5lZCBpbiBvdXRfaW5mby0+c3RhY2tfZW5kLgorICAgSWYgdGhlIGV4ZWN1dGFibGUgcmVxdWVz
dGVkIGEgbm9uLWRlZmF1bHQgc3RhY2sgYWRkcmVzcywKKyAgICpjdXN0b21zdGFjayBpcyBzZXQg
dG8gVFJVRS4gVGhlIHRocmVhZCdzIGVudHJ5IHBvaW50IGlzIHJldHVybmVkIGluIG91dF9pbmZv
LT5lbnRyeS4KICAgIFRoZSBzdGFjayBpdHNlbGYgKGlmIGFueSkgaXMgbm90IG1hcHBlZC4KICAg
IE90aGVyIGN1c3RvbSByZWdpc3RlciBzZXR0aW5ncyBhcmUgc2lsZW50bHkgaWdub3JlZCAoR3JQ
IGZpeG1lKS4KICovCiBzdGF0aWMgaW50IAotbG9hZF9nZW5lcmljdGhyZWFkKHZraV91aW50OF90
ICoqc3RhY2tfZW5kLCAKLSAgICAgICAgICAgICAgICAgICBpbnQgKmN1c3RvbXN0YWNrLCB2a2lf
dWludDhfdCAqKmVudHJ5LCAKLSAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGhyZWFkX2NvbW1h
bmQgKnRocmVhZGNtZCkKK2xvYWRfZ2VuZXJpY3RocmVhZChzdHJ1Y3QgdGhyZWFkX2NvbW1hbmQg
KnRocmVhZGNtZCwgaW50IHR5cGUsCisgICAgICAgICAgICAgICAgICAgIGludCAqY3VzdG9tc3Rh
Y2ssIGxvYWRfaW5mb190ICpvdXRfaW5mbykKIHsKICAgIHVuc2lnbmVkIGludCBmbGF2b3I7CiAg
ICB1bnNpZ25lZCBpbnQgY291bnQ7CkBAIC0zMDQsMTIgKzMwNywxMiBAQAogI2lmIGRlZmluZWQo
VkdBX3g4NikKICAgICAgIGlmIChmbGF2b3IgPT0gaTM4Nl9USFJFQURfU1RBVEUgJiYgY291bnQg
PT0gaTM4Nl9USFJFQURfU1RBVEVfQ09VTlQpIHsKICAgICAgICAgIGkzODZfdGhyZWFkX3N0YXRl
X3QgKnN0YXRlID0gKGkzODZfdGhyZWFkX3N0YXRlX3QgKilwOwotICAgICAgICAgaWYgKGVudHJ5
KSAqZW50cnkgPSAodmtpX3VpbnQ4X3QgKilzdGF0ZS0+X19laXA7Ci0gICAgICAgICBpZiAoc3Rh
Y2tfZW5kKSB7Ci0gICAgICAgICAgICAqc3RhY2tfZW5kID0gKHZraV91aW50OF90ICopKHN0YXRl
LT5fX2VzcCA/IHN0YXRlLT5fX2VzcAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOiBWS0lfVVNSU1RBQ0spOwotICAgICAgICAgICAgdmdfYXNz
ZXJ0KFZHX0lTX1BBR0VfQUxJR05FRCgqc3RhY2tfZW5kKSk7Ci0gICAgICAgICAgICAoKnN0YWNr
X2VuZCktLTsKKyAgICAgICAgIG91dF9pbmZvLT5lbnRyeSA9ICh2a2lfdWludDhfdCAqKXN0YXRl
LT5fX2VpcDsKKyAgICAgICAgIGlmICh0eXBlID09IExDX1VOSVhUSFJFQUQpIHsKKyAgICAgICAg
ICAgIG91dF9pbmZvLT5zdGFja19lbmQgPQorICAgICAgICAgICAgICAodmtpX3VpbnQ4X3QgKiko
c3RhdGUtPl9fZXNwID8gc3RhdGUtPl9fZXNwIDogVktJX1VTUlNUQUNLKTsKKyAgICAgICAgICAg
IHZnX2Fzc2VydChWR19JU19QQUdFX0FMSUdORUQob3V0X2luZm8tPnN0YWNrX2VuZCkpOworICAg
ICAgICAgICAgb3V0X2luZm8tPnN0YWNrX2VuZC0tOwogICAgICAgICAgfQogICAgICAgICAgaWYg
KGN1c3RvbXN0YWNrKSAqY3VzdG9tc3RhY2sgPSBzdGF0ZS0+X19lc3A7CiAgICAgICAgICByZXR1
cm4gMDsKQEAgLTMxOCwxMiArMzIxLDEyIEBACiAjZWxpZiBkZWZpbmVkKFZHQV9hbWQ2NCkKICAg
ICAgIGlmIChmbGF2b3IgPT0geDg2X1RIUkVBRF9TVEFURTY0ICYmIGNvdW50ID09IHg4Nl9USFJF
QURfU1RBVEU2NF9DT1VOVCl7CiAgICAgICAgICB4ODZfdGhyZWFkX3N0YXRlNjRfdCAqc3RhdGUg
PSAoeDg2X3RocmVhZF9zdGF0ZTY0X3QgKilwOwotICAgICAgICAgaWYgKGVudHJ5KSAqZW50cnkg
PSAodmtpX3VpbnQ4X3QgKilzdGF0ZS0+X19yaXA7Ci0gICAgICAgICBpZiAoc3RhY2tfZW5kKSB7
Ci0gICAgICAgICAgICAqc3RhY2tfZW5kID0gKHZraV91aW50OF90ICopKHN0YXRlLT5fX3JzcCA/
IHN0YXRlLT5fX3JzcCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDogVktJX1VTUlNUQUNLNjQpOwotICAgICAgICAgICAgdmdfYXNzZXJ0KFZH
X0lTX1BBR0VfQUxJR05FRCgqc3RhY2tfZW5kKSk7Ci0gICAgICAgICAgICAoKnN0YWNrX2VuZCkt
LTsKKyAgICAgICAgIG91dF9pbmZvLT5lbnRyeSA9ICh2a2lfdWludDhfdCAqKXN0YXRlLT5fX3Jp
cDsKKyAgICAgICAgIGlmICh0eXBlID09IExDX1VOSVhUSFJFQUQpIHsKKyAgICAgICAgICAgIG91
dF9pbmZvLT5zdGFja19lbmQgPQorICAgICAgICAgICAgICAodmtpX3VpbnQ4X3QgKikoc3RhdGUt
Pl9fcnNwID8gc3RhdGUtPl9fcnNwIDogVktJX1VTUlNUQUNLNjQpOworICAgICAgICAgICAgdmdf
YXNzZXJ0KFZHX0lTX1BBR0VfQUxJR05FRChvdXRfaW5mby0+c3RhY2tfZW5kKSk7CisgICAgICAg
ICAgICBvdXRfaW5mby0+c3RhY2tfZW5kLS07CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY3Vz
dG9tc3RhY2spICpjdXN0b21zdGFjayA9IHN0YXRlLT5fX3JzcDsKICAgICAgICAgIHJldHVybiAw
OwpAQCAtMzU2LDIxICszNTksMTkgQEAKIC8qIAogICAgUHJvY2Vzc2VzIGEgTENfVU5JWFRIUkVB
RCBjb21tYW5kLgogICAgUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGFueSBmYWlsdXJlLgot
ICAgVGhlIHN0YWNrIGlzIG1hcHBlZCBpbiBhbmQgcmV0dXJuZWQgaW4gKm91dF9zdGFjay4gCi0g
ICBUaGUgdGhyZWFkJ3MgZW50cnkgcG9pbnQgaXMgcmV0dXJuZWQgaW4gKm91dF9lbnRyeS4KKyAg
IFRoZSBzdGFjayBpcyBtYXBwZWQgaW4gYW5kIHJldHVybmVkIGluIG91dF9pbmZvLT5zdGFja19z
dGFydCBhbmQgb3V0X2luZm8tPnN0YWNrX2VuZC4KKyAgIFRoZSB0aHJlYWQncyBlbnRyeSBwb2lu
dCBpcyByZXR1cm5lZCBpbiBvdXRfaW5mby0+ZW50cnkuCiAqLwogc3RhdGljIGludCAKLWxvYWRf
dW5peHRocmVhZCh2a2lfdWludDhfdCAqKm91dF9zdGFja19zdGFydCwgdmtpX3VpbnQ4X3QgKipv
dXRfc3RhY2tfZW5kLCAKLSAgICAgICAgICAgICAgICB2a2lfdWludDhfdCAqKm91dF9lbnRyeSwg
c3RydWN0IHRocmVhZF9jb21tYW5kICp0aHJlYWRjbWQpCitsb2FkX3VuaXh0aHJlYWQoc3RydWN0
IHRocmVhZF9jb21tYW5kICp0aHJlYWRjbWQsIGxvYWRfaW5mb190ICpvdXRfaW5mbykKIHsKICAg
IGludCBlcnI7Ci0gICB2a2lfdWludDhfdCAqc3RhY2tfZW5kOwogICAgaW50IGN1c3RvbXN0YWNr
OwogCi0gICBlcnIgPSBsb2FkX2dlbmVyaWN0aHJlYWQoJnN0YWNrX2VuZCwgJmN1c3RvbXN0YWNr
LCBvdXRfZW50cnksIHRocmVhZGNtZCk7CisgICBlcnIgPSBsb2FkX2dlbmVyaWN0aHJlYWQodGhy
ZWFkY21kLCBMQ19VTklYVEhSRUFELCAmY3VzdG9tc3RhY2ssIG91dF9pbmZvKTsKICAgIGlmIChl
cnIpIHJldHVybiAtMTsKIAotICAgaWYgKCFzdGFja19lbmQpIHsKKyAgIGlmICghb3V0X2luZm8t
PnN0YWNrX2VuZCkgewogICAgICAgcHJpbnQoImJhZCBleGVjdXRhYmxlIChubyB0aHJlYWQgc3Rh
Y2spXG4iKTsKICAgICAgIHJldHVybiAtMTsKICAgIH0KQEAgLTM3OCwxOCArMzc5LDE2IEBACiAg
ICBpZiAoIWN1c3RvbXN0YWNrKSB7CiAgICAgICAvLyBNYXAgdGhlIHN0YWNrCiAgICAgICB2a2lf
c2l6ZV90IHN0YWNrc2l6ZSA9IFZHX1BHUk9VTkRVUChkZWZhdWx0X3N0YWNrX3NpemUoKSk7Ci0g
ICAgICB2bV9hZGRyZXNzX3Qgc3RhY2tiYXNlID0gVkdfUEdST1VOREROKHN0YWNrX2VuZCsxLXN0
YWNrc2l6ZSk7CisgICAgICB2bV9hZGRyZXNzX3Qgc3RhY2tiYXNlID0gVkdfUEdST1VOREROKG91
dF9pbmZvLT5zdGFja19lbmQrMS1zdGFja3NpemUpOwogICAgICAgU3lzUmVzIHJlczsKICAgICAg
ICAgCiAgICAgICByZXMgPSBWR18oYW1fbW1hcF9hbm9uX2ZpeGVkX2NsaWVudCkoc3RhY2tiYXNl
LCBzdGFja3NpemUsIFZLSV9QUk9UX1JFQUR8VktJX1BST1RfV1JJVEV8VktJX1BST1RfRVhFQyk7
CiAgICAgICBjaGVja19tbWFwKHJlcywgc3RhY2tiYXNlLCBzdGFja3NpemUsICJsb2FkX3VuaXh0
aHJlYWQxIik7Ci0gICAgICBpZiAob3V0X3N0YWNrX3N0YXJ0KSAqb3V0X3N0YWNrX3N0YXJ0ID0g
KHZraV91aW50OF90ICopc3RhY2tiYXNlOworICAgICAgb3V0X2luZm8tPnN0YWNrX3N0YXJ0ID0g
KHZraV91aW50OF90ICopc3RhY2tiYXNlOwogICAgfSBlbHNlIHsKICAgICAgIC8vIGN1c3RvbSBz
dGFjayAtIG1hcHBlZCB2aWEgX19VTklYVEhSRUFEIHNlZ21lbnQKICAgIH0KIAotICAgaWYgKG91
dF9zdGFja19lbmQpICpvdXRfc3RhY2tfZW5kID0gc3RhY2tfZW5kOwotCiAgICByZXR1cm4gMDsK
IH0KIApAQCAtNDAyLDkgKzQwMSw4IEBACiAgICBhYm92ZSB6ZXJvLiAqLwogI2lmIERBUldJTl9W
RVJTID49IERBUldJTl8xMF84CiBzdGF0aWMgaW50Ci1oYW5kbGVfbGNtYWluICggdmtpX3VpbnQ4
X3QgKipvdXRfc3RhY2tfc3RhcnQsCi0gICAgICAgICAgICAgICAgdmtpX3VpbnQ4X3QgKipvdXRf
c3RhY2tfZW5kLAotICAgICAgICAgICAgICAgIHZraV9zaXplX3QgcmVxdWVzdGVkX3NpemUgKQor
aGFuZGxlX2xjbWFpbiAoIHZraV9zaXplX3QgcmVxdWVzdGVkX3NpemUsCisgICAgICAgICAgICAg
ICAgbG9hZF9pbmZvX3QgKm91dF9pbmZvICkKIHsKICAgIGlmIChyZXF1ZXN0ZWRfc2l6ZSA9PSAw
KSB7CiAgICAgICByZXF1ZXN0ZWRfc2l6ZSA9IGRlZmF1bHRfc3RhY2tfc2l6ZSgpOwpAQCAtNDE4
LDE1ICs0MTYsMTUgQEAKICAgICAgICAgICAgICAgICAgICBWS0lfUFJPVF9SRUFEfFZLSV9QUk9U
X1dSSVRFfFZLSV9QUk9UX0VYRUMpOwogICAgY2hlY2tfbW1hcF9mbG9hdChyZXMsIHJlcXVlc3Rl
ZF9zaXplLCAiaGFuZGxlX2xjbWFpbiIpOwogICAgdmdfYXNzZXJ0KCFzcl9pc0Vycm9yKHJlcykp
OwotICAgKm91dF9zdGFja19zdGFydCA9ICh2a2lfdWludDhfdCopc3JfUmVzKHJlcyk7Ci0gICAq
b3V0X3N0YWNrX2VuZCAgID0gKm91dF9zdGFja19zdGFydCArIHJlcXVlc3RlZF9zaXplIC0gMTsK
KyAgIG91dF9pbmZvLT5zdGFja19zdGFydCA9ICh2a2lfdWludDhfdCopc3JfUmVzKHJlcyk7Cisg
ICBvdXRfaW5mby0+c3RhY2tfZW5kICAgPSBvdXRfaW5mby0+c3RhY2tfc3RhcnQgKyByZXF1ZXN0
ZWRfc2l6ZSAtIDE7CiAKICAgIEJvb2wgbmVlZF9kaXNjYXJkID0gRmFsc2U7Ci0gICByZXMgPSBW
R18oYW1fbXVubWFwX2NsaWVudCkoJm5lZWRfZGlzY2FyZCwgKEFkZHIpKm91dF9zdGFja19zdGFy
dCwgSEFDSyk7CisgICByZXMgPSBWR18oYW1fbXVubWFwX2NsaWVudCkoJm5lZWRfZGlzY2FyZCwg
KEFkZHIpb3V0X2luZm8tPnN0YWNrX3N0YXJ0LCBIQUNLKTsKICAgIGlmIChzcl9pc0Vycm9yKHJl
cykpIHJldHVybiAtMTsKICAgIHZnX2Fzc2VydCghbmVlZF9kaXNjYXJkKTsgLy8gVHJ1ZSA9PSB3
dGY/CiAKLSAgICpvdXRfc3RhY2tfc3RhcnQgKz0gSEFDSzsKKyAgIG91dF9pbmZvLT5zdGFja19z
dGFydCArPSBIQUNLOwogCiAgICByZXR1cm4gMDsKIH0KQEAgLTQzOCwxMiArNDM2LDIxIEBACiAg
ICBQcm9jZXNzZXMgYW4gTENfTE9BRF9EWUxJTktFUiBjb21tYW5kLiAKICAgIFJldHVybnMgMCBv
biBzdWNjZXNzLCAtMSBvbiBhbnkgZXJyb3IuCiAgICBUaGUgbGlua2VyIGl0c2VsZiBpcyBtYXBw
ZWQgaW50byBtZW1vcnkuCi0gICBUaGUgbGlua2VyJ3MgZW50cnkgcG9pbnQgaXMgcmV0dXJuZWQg
aW4gKmxpbmtlcl9lbnRyeS4KKyAgIFRoZSBsaW5rZXIncyBlbnRyeSBwb2ludCBpcyByZXR1cm5l
ZCBpbiBvdXRfaW5mby0+bGlua2VyX2VudHJ5LgogKi8KIHN0YXRpYyBpbnQgCi1sb2FkX2R5bGlu
a2VyKHZraV91aW50OF90ICoqbGlua2VyX2VudHJ5LCBzdHJ1Y3QgZHlsaW5rZXJfY29tbWFuZCAq
ZHljbWQpCitsb2FkX2R5bGlua2VyKHN0cnVjdCBkeWxpbmtlcl9jb21tYW5kICpkeWNtZCwgbG9h
ZF9pbmZvX3QgKm91dF9pbmZvKQogewogICAgY29uc3QgSENoYXIgKm5hbWU7CisgICBpbnQgcmV0
OworICAgbG9hZF9pbmZvX3QgbGlua2VyX2luZm87CisgICBsaW5rZXJfaW5mby5zdGFja19zdGFy
dCA9IE5VTEw7CisgICBsaW5rZXJfaW5mby5zdGFja19lbmQgPSBOVUxMOworICAgbGlua2VyX2lu
Zm8udGV4dCA9IE5VTEw7CisgICBsaW5rZXJfaW5mby5lbnRyeSA9IE5VTEw7CisgICBsaW5rZXJf
aW5mby5saW5rZXJfZW50cnkgPSBOVUxMOworICAgbGlua2VyX2luZm8ubGlua2VyX29mZnNldCA9
IDA7CisgICBsaW5rZXJfaW5mby5tYXhfYWRkciA9IG91dF9pbmZvLT5tYXhfYWRkcjsKIAogICAg
aWYgKGR5Y21kLT5uYW1lLm9mZnNldCA+PSBkeWNtZC0+Y21kc2l6ZSkgewogICAgICAgcHJpbnQo
ImJhZCBleGVjdXRhYmxlIChpbnZhbGlkIGR5bGlua2VyIGNvbW1hbmQpXG4iKTsKQEAgLTQ1Mywy
MiArNDYwLDI3IEBACiAgICBuYW1lID0gZHljbWQtPm5hbWUub2Zmc2V0ICsgKEhDaGFyICopZHlj
bWQ7CiAgICAgCiAgICAvLyBHclAgZml4bWUgYXNzdW1lcyBuYW1lIGlzIHRlcm1pbmF0ZWQgc29t
ZXdoZXJlCi0gICByZXR1cm4gb3Blbl9keWxpbmtlcihuYW1lLCBsaW5rZXJfZW50cnkpOworICAg
cmV0ID0gb3Blbl9keWxpbmtlcihuYW1lLCAmbGlua2VyX2luZm8pOworICAgaWYgKGxpbmtlcl9p
bmZvLmVudHJ5KSB7CisgICAgIG91dF9pbmZvLT5saW5rZXJfZW50cnkgPSBsaW5rZXJfaW5mby5l
bnRyeSArIGxpbmtlcl9pbmZvLmxpbmtlcl9vZmZzZXQ7CiB9CisgICBvdXRfaW5mby0+bWF4X2Fk
ZHIgPSBsaW5rZXJfaW5mby5tYXhfYWRkcjsKKyAgIHJldHVybiByZXQ7Cit9CiAKIAogLyogCiAg
ICAgUHJvY2VzcyBhbiBMQ19USFJFQUQgY29tbWFuZC4gCiAgICAgUmV0dXJucyAwIG9uIHN1Y2Nl
c3MsIC0xIG9uIGFueSBmYWlsdXJlLgotICAgIFRoZSB0aHJlYWQncyBlbnRyeSBwb2ludCBpcyBy
ZXR1cm5lZCBpbiAqb3V0X2VudHJ5LgorICAgIFRoZSB0aHJlYWQncyBlbnRyeSBwb2ludCBpcyBy
ZXR1cm5lZCBpbiBvdXRfaW5mby0+ZW50cnkuCiAqLwogc3RhdGljIGludCAKLWxvYWRfdGhyZWFk
KHZraV91aW50OF90ICoqb3V0X2VudHJ5LCBzdHJ1Y3QgdGhyZWFkX2NvbW1hbmQgKnRocmVhZGNt
ZCkKK2xvYWRfdGhyZWFkKHN0cnVjdCB0aHJlYWRfY29tbWFuZCAqdGhyZWFkY21kLCBsb2FkX2lu
Zm9fdCAqb3V0X2luZm8pCiB7CiAgICBpbnQgY3VzdG9tc3RhY2s7CiAgICBpbnQgZXJyOwogCi0g
ICBlcnIgPSBsb2FkX2dlbmVyaWN0aHJlYWQoTlVMTCwgJmN1c3RvbXN0YWNrLCBvdXRfZW50cnks
IHRocmVhZGNtZCk7CisgICBlcnIgPSBsb2FkX2dlbmVyaWN0aHJlYWQodGhyZWFkY21kLCBMQ19U
SFJFQUQsICZjdXN0b21zdGFjaywgb3V0X2luZm8pOwogICAgaWYgKGVycikgcmV0dXJuIC0xOwog
ICAgaWYgKGN1c3RvbXN0YWNrKSB7CiAgICAgICBwcmludCgiYmFkIGV4ZWN1dGFibGUgKHN0YWNr
bGVzcyB0aHJlYWQgaGFzIHN0YWNrKVxuIik7CkBAIC00ODQsMTcgKzQ5NiwxNiBAQAogICBSZXR1
cm5zIDAgb24gc3VjY2VzcywgLTEgb24gYW55IGZhaWx1cmUuCiAgIGZkW29mZnNldC4ub2Zmc2V0
K3NpemUpIGlzIGEgTWFjaC1PIHRoaW4gZmlsZS4KICAgZmlsZXR5cGUgaXMgTUhfRVhFQ1VURSBv
ciBNSF9EWUxJTktFUi4KLSAgVGhlIG1hcHBlZCBidXQgZW1wdHkgc3RhY2sgaXMgcmV0dXJuZWQg
aW4gKm91dF9zdGFjay4KLSAgVGhlIGV4ZWN1dGFibGUncyBNYWNoIGhlYWRlcnMgYXJlIHJldHVy
bmVkIGluICpvdXRfdGV4dC4KLSAgVGhlIGV4ZWN1dGFibGUncyBlbnRyeSBwb2ludCBpcyByZXR1
cm5lZCBpbiAqb3V0X2VudHJ5LgotICBUaGUgZHlsaW5rZXIncyBlbnRyeSBwb2ludCAoaWYgYW55
KSBpcyByZXR1cm5lZCBpbiAqb3V0X2xpbmtlcl9lbnRyeS4KKyAgVGhlIG1hcHBlZCBidXQgZW1w
dHkgc3RhY2sgaXMgcmV0dXJuZWQgaW4gb3V0X2luZm8tPnN0YWNrX3N0YXJ0LgorICBUaGUgZXhl
Y3V0YWJsZSdzIE1hY2ggaGVhZGVycyBhcmUgcmV0dXJuZWQgaW4gb3V0X2luZm8tPnRleHQuCisg
IFRoZSBleGVjdXRhYmxlJ3MgZW50cnkgcG9pbnQgaXMgcmV0dXJuZWQgaW4gb3V0X2luZm8tPmVu
dHJ5LgorICBUaGUgZHlsaW5rZXIncyBlbnRyeSBwb2ludCAoaWYgYW55KSBpcyByZXR1cm5lZCBp
biBvdXRfaW5mby0+bGlua2VyX2VudHJ5LgorICBUaGUgZHlsaW5rZXIncyBvZmZzZXQgKE1hYyBP
UyBYIDEwLjEyKSBpcyByZXR1cm5lZCBpbiBvdXRfaW5mby0+bGlua2VyX29mZnNldC4KICAgR3JQ
IGZpeG1lIG5lZWQgdG8gcmV0dXJuIHdoZXRoZXIgZHlsaW5rZXIgd2FzIGZvdW5kIC0gc3RhY2sg
bGF5b3V0IGlzIGRpZmZlcmVudAogKi8KIHN0YXRpYyBpbnQgCiBsb2FkX3RoaW5fZmlsZShpbnQg
ZmQsIHZraV9vZmZfdCBvZmZzZXQsIHZraV9vZmZfdCBzaXplLCB1bnNpZ25lZCBsb25nIGZpbGV0
eXBlLCAKLSAgICAgICAgICAgICAgIGNvbnN0IEhDaGFyICpmaWxlbmFtZSwgCi0gICAgICAgICAg
ICAgICB2a2lfdWludDhfdCAqKm91dF9zdGFja19zdGFydCwgdmtpX3VpbnQ4X3QgKipvdXRfc3Rh
Y2tfZW5kLCAKLSAgICAgICAgICAgICAgIHZraV91aW50OF90ICoqb3V0X3RleHQsIHZraV91aW50
OF90ICoqb3V0X2VudHJ5LCB2a2lfdWludDhfdCAqKm91dF9saW5rZXJfZW50cnkpCisgICAgICAg
ICAgICAgICBjb25zdCBIQ2hhciAqZmlsZW5hbWUsIGxvYWRfaW5mb190ICpvdXRfaW5mbykKIHsK
ICAgIFZHXyhkZWJ1Z0xvZykoMSwgInVtZSIsICJsb2FkX3RoaW5fZmlsZTogYmVnaW46ICAgJXNc
biIsIGZpbGVuYW1lKTsKICAgIHN0cnVjdCBNQUNIX0hFQURFUiBtaDsKQEAgLTUwOSwxMiArNTIw
LDYgQEAKICAgIFN5c1JlcyByZXM7CiAgICB2a2lfc2l6ZV90IGxlbjsKIAotICAgdmtpX3VpbnQ4
X3QgKnN0YWNrX3N0YXJ0ID0gTlVMTDsgICAvLyBhbGxvY2F0ZWQgdGhyZWFkIHN0YWNrIChob3Qg
ZW5kKQotICAgdmtpX3VpbnQ4X3QgKnN0YWNrX2VuZCA9IE5VTEw7ICAgLy8gYWxsb2NhdGVkIHRo
cmVhZCBzdGFjayAoY29sZCBlbmQpCi0gICB2a2lfdWludDhfdCAqZW50cnkgPSBOVUxMOyAgIC8v
IHN0YXRpYyBlbnRyeSBwb2ludAotICAgdmtpX3VpbnQ4X3QgKnRleHQgPSBOVUxMOyAgICAvLyBz
dGFydCBvZiB0ZXh0IHNlZ21lbnQgKGkuZS4gdGhlIG1hY2ggaGVhZGVycykKLSAgIHZraV91aW50
OF90ICpsaW5rZXJfZW50cnkgPSBOVUxMOyAvLyBkeWxpbmtlciBlbnRyeSBwb2ludAotCiAgICAv
LyBSZWFkIE1hY2gtTyBoZWFkZXIKICAgIGlmIChzaXplb2YobWgpID4gc2l6ZSkgewogICAgICAg
cHJpbnQoImJhZCBleGVjdXRhYmxlIChubyBNYWNoLU8gaGVhZGVyKVxuIik7CkBAIC01NzYsMTQg
KzU4MSwxNCBAQAogICAgICAgY2FzZSBMQ19NQUlOOiB7IC8qIE5ldyBpbiAxMC44ICovCiAgICAg
ICAgICBzdHJ1Y3QgZW50cnlfcG9pbnRfY29tbWFuZCogZXBjbWQKICAgICAgICAgICAgID0gKHN0
cnVjdCBlbnRyeV9wb2ludF9jb21tYW5kKilsYzsKLSAgICAgICAgIGlmIChzdGFja19zdGFydCB8
fCBzdGFja19lbmQpIHsKKyAgICAgICAgIGlmIChvdXRfaW5mby0+c3RhY2tfc3RhcnQgfHwgb3V0
X2luZm8tPnN0YWNrX2VuZCkgewogICAgICAgICAgICAgcHJpbnQoImJhZCBleGVjdXRhYmxlICht
dWx0aXBsZSBpbmRpY2F0aW9ucyBvZiBzdGFjaykiKTsKICAgICAgICAgICAgIHJldHVybiAtMTsK
ICAgICAgICAgIH0KLSAgICAgICAgIGVyciA9IGhhbmRsZV9sY21haW4gKCAmc3RhY2tfc3RhcnQs
ICZzdGFja19lbmQsIGVwY21kLT5zdGFja3NpemUgKTsKKyAgICAgICAgIGVyciA9IGhhbmRsZV9s
Y21haW4oZXBjbWQtPnN0YWNrc2l6ZSwgb3V0X2luZm8pOwogICAgICAgICAgaWYgKGVycikgcmV0
dXJuIC0xOwogICAgICAgICAgVkdfKGRlYnVnTG9nKSgyLCAidW1lIiwgImxjX21haW46IGNyZWF0
ZWQgc3RhY2sgJXAtJXBcbiIsCi0JICAgICAgICAgICAgICAgc3RhY2tfc3RhcnQsIHN0YWNrX2Vu
ZCk7CisJICAgICAgICAgICAgICAgb3V0X2luZm8tPnN0YWNrX3N0YXJ0LCBvdXRfaW5mby0+c3Rh
Y2tfZW5kKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgfQogIyAgICAgZW5kaWYKQEAgLTU5NCwx
NCArNTk5LDE5IEBACiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICB9CiAgICAgICAg
ICBzZWdjbWQgPSAoc3RydWN0IFNFR01FTlRfQ09NTUFORCAqKWxjOwotICAgICAgICAgZXJyID0g
bG9hZF9zZWdtZW50KGZkLCBvZmZzZXQsIHNpemUsICZ0ZXh0LCAmc3RhY2tfc3RhcnQsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ2NtZCwgZmlsZW5hbWUpOworI2lmICAgREFSV0lO
X1ZFUlMgPj0gREFSV0lOXzEwXzEyCisgICAgICAgICAvKiBkeWxkIHRleHQgYWRkcmVzcyBpcyBy
ZWxhdGl2ZSBpbnN0ZWFkIG9mIGFic29sdXRlIGluIDEwLjEyICovCisgICAgICAgICBpZiAoZmls
ZXR5cGUgPT0gTUhfRFlMSU5LRVIgJiYgc2VnY21kLT52bWFkZHIgPT0gMCAmJiBzZWdjbWQtPmZp
bGVvZmYgPT0gMCkgeworICAgICAgICAgICBvdXRfaW5mby0+bGlua2VyX29mZnNldCA9IG91dF9p
bmZvLT5tYXhfYWRkcjsKKyAgICAgICAgIH0KKyMgICAgIGVuZGlmCisgICAgICAgICBlcnIgPSBs
b2FkX3NlZ21lbnQoZmQsIG9mZnNldCwgc2l6ZSwgc2VnY21kLCBmaWxlbmFtZSwgb3V0X2luZm8p
OwogICAgICAgICAgaWYgKGVycikgcmV0dXJuIC0xOwogICAgICAgICAgIAogICAgICAgICAgYnJl
YWs7CiAKICAgICAgIGNhc2UgTENfVU5JWFRIUkVBRDoKLSAgICAgICAgIGlmIChzdGFja19lbmQg
IHx8ICBlbnRyeSkgeworICAgICAgICAgaWYgKG91dF9pbmZvLT5zdGFja19lbmQgfHwgb3V0X2lu
Zm8tPmVudHJ5KSB7CiAgICAgICAgICAgICBwcmludCgiYmFkIGV4ZWN1dGFibGUgKG11bHRpcGxl
IHRocmVhZCBjb21tYW5kcylcbiIpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAg
fQpAQCAtNjEwLDcgKzYyMCw3IEBACiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICB9
CiAgICAgICAgICB0aHJlYWRjbWQgPSAoc3RydWN0IHRocmVhZF9jb21tYW5kICopbGM7Ci0gICAg
ICAgICBlcnIgPSBsb2FkX3VuaXh0aHJlYWQoJnN0YWNrX3N0YXJ0LCAmc3RhY2tfZW5kLCAmZW50
cnksIHRocmVhZGNtZCk7CisgICAgICAgICBlcnIgPSBsb2FkX3VuaXh0aHJlYWQodGhyZWFkY21k
LCBvdXRfaW5mbyk7CiAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gLTE7CiAgICAgICAgICBicmVh
azsKIApAQCAtNjE5LDcgKzYyOSw3IEBACiAgICAgICAgICAgICBwcmludCgiYmFkIGV4ZWN1dGFi
bGUgKGR5bGlua2VyIG5lZWRzIGEgZHlsaW5rZXIpXG4iKTsKICAgICAgICAgICAgIHJldHVybiAt
MTsKICAgICAgICAgIH0KLSAgICAgICAgIGlmIChsaW5rZXJfZW50cnkpIHsKKyAgICAgICAgIGlm
IChvdXRfaW5mby0+bGlua2VyX2VudHJ5KSB7CiAgICAgICAgICAgICBwcmludCgiYmFkIGV4ZWN1
dGFibGUgKG11bHRpcGxlIGR5bGlua2VyIGNvbW1hbmRzKVxuIik7CiAgICAgICAgICB9CiAgICAg
ICAgICBpZiAobGMtPmNtZHNpemUgPCBzaXplb2Yoc3RydWN0IGR5bGlua2VyX2NvbW1hbmQpKSB7
CkBAIC02MjcsNyArNjM3LDcgQEAKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgIH0K
ICAgICAgICAgIGR5Y21kID0gKHN0cnVjdCBkeWxpbmtlcl9jb21tYW5kICopbGM7Ci0gICAgICAg
ICBlcnIgPSBsb2FkX2R5bGlua2VyKCZsaW5rZXJfZW50cnksIGR5Y21kKTsKKyAgICAgICAgIGVy
ciA9IGxvYWRfZHlsaW5rZXIoZHljbWQsIG91dF9pbmZvKTsKICAgICAgICAgIGlmIChlcnIpIHJl
dHVybiAtMTsKICAgICAgICAgIGJyZWFrOwogCkBAIC02MzYsNyArNjQ2LDcgQEAKICAgICAgICAg
ICAgIHByaW50KCJiYWQgZXhlY3V0YWJsZSAoc3RhY2tsZXNzIHRocmVhZClcbiIpOwogICAgICAg
ICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgfQotICAgICAgICAgaWYgKHN0YWNrX2VuZCAgfHwg
IGVudHJ5KSB7CisgICAgICAgICBpZiAob3V0X2luZm8tPnN0YWNrX2VuZCB8fCBvdXRfaW5mby0+
ZW50cnkpIHsKICAgICAgICAgICAgIHByaW50KCJiYWQgZXhlY3V0YWJsZSAobXVsdGlwbGUgdGhy
ZWFkIGNvbW1hbmRzKVxuIik7CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICB9CkBA
IC02NDUsNyArNjU1LDcgQEAKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgIH0KICAg
ICAgICAgIHRocmVhZGNtZCA9IChzdHJ1Y3QgdGhyZWFkX2NvbW1hbmQgKilsYzsKLSAgICAgICAg
IGVyciA9IGxvYWRfdGhyZWFkKCZlbnRyeSwgdGhyZWFkY21kKTsKKyAgICAgICAgIGVyciA9IGxv
YWRfdGhyZWFkKHRocmVhZGNtZCwgb3V0X2luZm8pOwogICAgICAgICAgaWYgKGVycikgcmV0dXJu
IC0xOwogICAgICAgICAgYnJlYWs7CiAKQEAgLTY2MywxNSArNjczLDE1IEBACiAgICAgICAvLyBh
IHN0YWNrCiAgICAgICAvLyBhIHRleHQgc2VnbWVudAogICAgICAgLy8gYW4gZW50cnkgcG9pbnQg
KHN0YXRpYyBvciBsaW5rZXIpCi0gICAgICBpZiAoIXN0YWNrX2VuZCB8fCAhc3RhY2tfc3RhcnQp
IHsKKyAgICAgIGlmICghb3V0X2luZm8tPnN0YWNrX2VuZCB8fCAhb3V0X2luZm8tPnN0YWNrX3N0
YXJ0KSB7CiAgICAgICAgICBWR18ocHJpbnRmKSgiYmFkIGV4ZWN1dGFibGUgJXMgKG5vIHN0YWNr
KVxuIiwgZmlsZW5hbWUpOwogICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgfQotICAgICAgaWYg
KCF0ZXh0KSB7CisgICAgICBpZiAoIW91dF9pbmZvLT50ZXh0KSB7CiAgICAgICAgICBwcmludCgi
YmFkIGV4ZWN1dGFibGUgKG5vIHRleHQgc2VnbWVudClcbiIpOwogICAgICAgICAgcmV0dXJuIC0x
OwogICAgICAgfQotICAgICAgaWYgKCFlbnRyeSAgJiYgICFsaW5rZXJfZW50cnkpIHsKKyAgICAg
IGlmICghb3V0X2luZm8tPmVudHJ5ICYmICFvdXRfaW5mby0+bGlua2VyX2VudHJ5KSB7CiAgICAg
ICAgICBwcmludCgiYmFkIGV4ZWN1dGFibGUgKG5vIGVudHJ5IHBvaW50KVxuIik7CiAgICAgICAg
ICByZXR1cm4gLTE7CiAgICAgICB9CkBAIC02NzksMTggKzY4OSwxMiBAQAogICAgZWxzZSBpZiAo
ZmlsZXR5cGUgPT0gTUhfRFlMSU5LRVIpIHsKICAgICAgIC8vIFZlcmlmeSB0aGUgbmVjZXNzYXJ5
IHBpZWNlcyBmb3IgYSBkeWxpbmtlcjoKICAgICAgIC8vIGFuIGVudHJ5IHBvaW50Ci0gICAgICBp
ZiAoIWVudHJ5KSB7CisgICAgICBpZiAoIW91dF9pbmZvLT5lbnRyeSkgewogICAgICAgICAgcHJp
bnQoImJhZCBleGVjdXRhYmxlIChubyBlbnRyeSBwb2ludClcbiIpOwogICAgICAgICAgcmV0dXJu
IC0xOwogICAgICAgfQogICAgfQogCi0gICBpZiAob3V0X3N0YWNrX3N0YXJ0KSAqb3V0X3N0YWNr
X3N0YXJ0ID0gc3RhY2tfc3RhcnQ7Ci0gICBpZiAob3V0X3N0YWNrX2VuZCkgKm91dF9zdGFja19l
bmQgPSBzdGFja19lbmQ7Ci0gICBpZiAob3V0X3RleHQpICAqb3V0X3RleHQgPSB0ZXh0OwotICAg
aWYgKG91dF9lbnRyeSkgKm91dF9lbnRyeSA9IGVudHJ5OwotICAgaWYgKG91dF9saW5rZXJfZW50
cnkpICpvdXRfbGlua2VyX2VudHJ5ID0gbGlua2VyX2VudHJ5OwotICAgCiAgICBWR18oZGVidWdM
b2cpKDEsICJ1bWUiLCAibG9hZF90aGluX2ZpbGU6IHN1Y2Nlc3M6ICVzXG4iLCBmaWxlbmFtZSk7
CiAgICByZXR1cm4gMDsKIH0KQEAgLTcwMSw5ICs3MDUsNyBAQAogKi8KIHN0YXRpYyBpbnQgCiBs
b2FkX2ZhdF9maWxlKGludCBmZCwgdmtpX29mZl90IG9mZnNldCwgdmtpX29mZl90IHNpemUsIHVu
c2lnbmVkIGxvbmcgZmlsZXR5cGUsIAotICAgICAgICAgICAgIGNvbnN0IEhDaGFyICpmaWxlbmFt
ZSwgCi0gICAgICAgICAgICAgdmtpX3VpbnQ4X3QgKipvdXRfc3RhY2tfc3RhcnQsIHZraV91aW50
OF90ICoqb3V0X3N0YWNrX2VuZCwgCi0gICAgICAgICAgICAgdmtpX3VpbnQ4X3QgKipvdXRfdGV4
dCwgdmtpX3VpbnQ4X3QgKipvdXRfZW50cnksIHZraV91aW50OF90ICoqb3V0X2xpbmtlcl9lbnRy
eSkKKyAgICAgICAgICAgICBjb25zdCBIQ2hhciAqZmlsZW5hbWUsIGxvYWRfaW5mb190ICpvdXRf
aW5mbykKIHsKICAgIHN0cnVjdCBmYXRfaGVhZGVyIGZoOwogICAgdmtpX29mZl90IGFyY2hfb2Zm
c2V0OwpAQCAtNzY2LDkgKzc2OCw3IEBACiAgICAgICAgICAgICBwcmludCgiYmFkIGV4ZWN1dGFi
bGUgKGNvcnJ1cHQgZmF0IGFyY2ggMilcbiIpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAg
ICAgICAgfQotICAgICAgICAgcmV0dXJuIGxvYWRfbWFjaF9maWxlKGZkLCBvZmZzZXQrYXJjaC5v
ZmZzZXQsIGFyY2guc2l6ZSwgZmlsZXR5cGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbGVuYW1lLCBvdXRfc3RhY2tfc3RhcnQsIG91dF9zdGFja19lbmQsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG91dF90ZXh0LCBvdXRfZW50cnksIG91dF9saW5rZXJfZW50
cnkpOworICAgICAgICAgcmV0dXJuIGxvYWRfbWFjaF9maWxlKGZkLCBvZmZzZXQrYXJjaC5vZmZz
ZXQsIGFyY2guc2l6ZSwgZmlsZXR5cGUsIGZpbGVuYW1lLCBvdXRfaW5mbyk7CiAgICAgICB9CiAg
ICB9CiAKQEAgLTc4Miw5ICs3ODIsNyBAQAogKi8KIHN0YXRpYyBpbnQgCiBsb2FkX21hY2hfZmls
ZShpbnQgZmQsIHZraV9vZmZfdCBvZmZzZXQsIHZraV9vZmZfdCBzaXplLCB1bnNpZ25lZCBsb25n
IGZpbGV0eXBlLCAKLSAgICAgICAgICAgICAgY29uc3QgSENoYXIgKmZpbGVuYW1lLCAKLSAgICAg
ICAgICAgICAgdmtpX3VpbnQ4X3QgKipvdXRfc3RhY2tfc3RhcnQsIHZraV91aW50OF90ICoqb3V0
X3N0YWNrX2VuZCwgCi0gICAgICAgICAgICAgIHZraV91aW50OF90ICoqb3V0X3RleHQsIHZraV91
aW50OF90ICoqb3V0X2VudHJ5LCB2a2lfdWludDhfdCAqKm91dF9saW5rZXJfZW50cnkpCisgICAg
ICAgICAgICAgIGNvbnN0IEhDaGFyICpmaWxlbmFtZSwgbG9hZF9pbmZvX3QgKm91dF9pbmZvKQog
ewogICAgdmtpX3VpbnQzMl90IG1hZ2ljOwogICAgU3lzUmVzIHJlczsKQEAgLTgwMSwxNCArNzk5
LDEwIEBACiAgICAKICAgIGlmIChtYWdpYyA9PSBNQUdJQykgewogICAgICAgLy8gdGhpbgotICAg
ICAgcmV0dXJuIGxvYWRfdGhpbl9maWxlKGZkLCBvZmZzZXQsIHNpemUsIGZpbGV0eXBlLCBmaWxl
bmFtZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0X3N0YWNrX3N0YXJ0LCBvdXRf
c3RhY2tfZW5kLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRfdGV4dCwgb3V0X2Vu
dHJ5LCBvdXRfbGlua2VyX2VudHJ5KTsKKyAgICAgIHJldHVybiBsb2FkX3RoaW5fZmlsZShmZCwg
b2Zmc2V0LCBzaXplLCBmaWxldHlwZSwgZmlsZW5hbWUsIG91dF9pbmZvKTsKICAgIH0gZWxzZSBp
ZiAobWFnaWMgPT0gVkdfKGh0b25sKShGQVRfTUFHSUMpKSB7CiAgICAgICAvLyBmYXQKLSAgICAg
IHJldHVybiBsb2FkX2ZhdF9maWxlKGZkLCBvZmZzZXQsIHNpemUsIGZpbGV0eXBlLCBmaWxlbmFt
ZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRfc3RhY2tfc3RhcnQsIG91dF9zdGFj
a19lbmQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0X3RleHQsIG91dF9lbnRyeSwg
b3V0X2xpbmtlcl9lbnRyeSk7CisgICAgICByZXR1cm4gbG9hZF9mYXRfZmlsZShmZCwgb2Zmc2V0
LCBzaXplLCBmaWxldHlwZSwgZmlsZW5hbWUsIG91dF9pbmZvKTsKICAgIH0gZWxzZSB7CiAgICAg
ICAvLyBodWg/CiAgICAgICBwcmludCgiYmFkIGV4ZWN1dGFibGUgKGJhZCBNYWNoLU8gbWFnaWMp
XG4iKTsKQEAgLTgzMywxMSArODI3LDE0IEBACiB7CiAgICBpbnQgZXJyOwogICAgc3RydWN0IHZn
X3N0YXQgc2I7Ci0gICB2a2lfdWludDhfdCAqc3RhY2tfc3RhcnQ7Ci0gICB2a2lfdWludDhfdCAq
c3RhY2tfZW5kOwotICAgdmtpX3VpbnQ4X3QgKnRleHQ7Ci0gICB2a2lfdWludDhfdCAqZW50cnk7
Ci0gICB2a2lfdWludDhfdCAqbGlua2VyX2VudHJ5OworICAgbG9hZF9pbmZvX3QgbG9hZF9pbmZv
OworICAgbG9hZF9pbmZvLnN0YWNrX3N0YXJ0ID0gTlVMTDsKKyAgIGxvYWRfaW5mby5zdGFja19l
bmQgPSBOVUxMOworICAgbG9hZF9pbmZvLnRleHQgPSBOVUxMOworICAgbG9hZF9pbmZvLmVudHJ5
ID0gTlVMTDsKKyAgIGxvYWRfaW5mby5saW5rZXJfZW50cnkgPSBOVUxMOworICAgbG9hZF9pbmZv
Lmxpbmtlcl9vZmZzZXQgPSAwOworICAgbG9hZF9pbmZvLm1heF9hZGRyID0gMDsKIAogICAgZXJy
ID0gVkdfKGZzdGF0KShmZCwgJnNiKTsKICAgIGlmIChlcnIpIHsKQEAgLTg0NSwyMiArODQyLDIw
IEBACiAgICAgICByZXR1cm4gVktJX0VOT0VYRUM7CiAgICB9CiAgICAKLSAgIGVyciA9IGxvYWRf
bWFjaF9maWxlKGZkLCAwLCBzYi5zaXplLCBNSF9FWEVDVVRFLCBuYW1lLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICZzdGFja19zdGFydCwgJnN0YWNrX2VuZCwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAmdGV4dCwgJmVudHJ5LCAmbGlua2VyX2VudHJ5KTsKKyAgIGVyciA9IGxvYWRfbWFj
aF9maWxlKGZkLCAwLCBzYi5zaXplLCBNSF9FWEVDVVRFLCBuYW1lLCAmbG9hZF9pbmZvKTsKICAg
IGlmIChlcnIpIHJldHVybiBWS0lfRU5PRVhFQzsKIAogICAgLy8gR3JQIGZpeG1lIGV4ZV9iYXNl
CiAgICAvLyBHclAgZml4bWUgZXhlX2VuZAotICAgaW5mby0+ZW50cnkgPSAoQWRkcillbnRyeTsK
LSAgIGluZm8tPmluaXRfaXAgPSAoQWRkcikobGlua2VyX2VudHJ5ID8gbGlua2VyX2VudHJ5IDog
ZW50cnkpOworICAgaW5mby0+ZW50cnkgPSAoQWRkcikgbG9hZF9pbmZvLmVudHJ5OworICAgaW5m
by0+aW5pdF9pcCA9IChBZGRyKShsb2FkX2luZm8ubGlua2VyX2VudHJ5ID8gbG9hZF9pbmZvLmxp
bmtlcl9lbnRyeSA6IGxvYWRfaW5mby5lbnRyeSk7CiAgICBpbmZvLT5icmtiYXNlID0gMHhmZmZm
ZmZmZjsgLy8gR3JQIGZpeG1lIGhhY2sKICAgIGluZm8tPmluaXRfdG9jID0gMDsgLy8gR3JQIGZp
eG1lIHVudXNlZAogCi0gICBpbmZvLT5zdGFja19zdGFydCA9IChBZGRyKXN0YWNrX3N0YXJ0Owot
ICAgaW5mby0+c3RhY2tfZW5kID0gKEFkZHIpc3RhY2tfZW5kOwotICAgaW5mby0+dGV4dCA9IChB
ZGRyKXRleHQ7Ci0gICBpbmZvLT5keW5hbWljID0gbGlua2VyX2VudHJ5ID8gVHJ1ZSA6IEZhbHNl
OworICAgaW5mby0+c3RhY2tfc3RhcnQgPSAoQWRkcikgbG9hZF9pbmZvLnN0YWNrX3N0YXJ0Owor
ICAgaW5mby0+c3RhY2tfZW5kID0gKEFkZHIpIGxvYWRfaW5mby5zdGFja19lbmQ7CisgICBpbmZv
LT50ZXh0ID0gKEFkZHIpIGxvYWRfaW5mby50ZXh0OworICAgaW5mby0+ZHluYW1pYyA9IGxvYWRf
aW5mby5saW5rZXJfZW50cnkgPyBUcnVlIDogRmFsc2U7CiAKICAgIGluZm8tPmV4ZWN1dGFibGVf
cGF0aCA9IFZHXyhzdHJkdXApKCJ1bWUubWFjaG8uZXhlY3V0YWJsZV9wYXRoIiwgbmFtZSk7CiAK
QEAgLTg3Miw0ICs4NjcsMyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8q
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0qLwotCkluZGV4OiBpbmNsdWRlL3ZraS92a2ktc2NudW1zLWRhcndpbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGluY2x1ZGUvdmtpL3ZraS1zY251bXMtZGFyd2luLmgJKHJldmlzaW9uIDE2
Mjk3KQorKysgaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1kYXJ3aW4uaAkod29ya2luZyBjb3B5KQpA
QCAtNzQzLDYgKzc0Myw4IEBACiAKICNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTIKICNk
ZWZpbmUgX19OUl9jbG9uZWZpbGVhdCAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNU
UlVDVF9VTklYKDQ2MikKKyNkZWZpbmUgX19OUl9mYWNjZXNzYXQgICAgICAgICAgICAgIFZHX0RB
UldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDQ2NikKKyNkZWZpbmUJX19OUl9mc3RhdGF0NjQg
ICAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDQ3MCkKICNlbmRp
ZiAvKiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTIgKi8KIAogI2lmIERBUldJTl9WRVJTID49
IERBUldJTl8xMF8xMApAQCAtNzU1LDYgKzc1Nyw3IEBACiAjZW5kaWYgLyogREFSV0lOX1ZFUlMg
Pj0gREFSV0lOXzEwXzEwICovCiAKICNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTIKKyNk
ZWZpbmUJX19OUl9jc3JjdGwgICAgICAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNU
UlVDVF9VTklYKDQ4MykKICNkZWZpbmUJX19OUl9yZW5hbWVhdHhfbnAgICAgICAgICAgIFZHX0RB
UldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDQ4OCkKICNlbmRpZiAvKiBEQVJXSU5fVkVSUyA+
PSBEQVJXSU5fMTBfMTIgKi8KIAkJCS8qIDQ4OSAgKi8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>105168</attachid>
            <date>2017-04-24 07:26:06 +0000</date>
            <delta_ts>2017-04-24 07:26:06 +0000</delta_ts>
            <desc>attachment-8447-0.html</desc>
            <filename>attachment-8447-0.html</filename>
            <type>text/html</type>
            <size>2691</size>
            <attacher>julien.aubert.mail</attacher>
            
              <data encoding="base64">PGRpdiBkaXI9Imx0ciI+VGhhbmtzLiBXb3JrcyBmaW5lIGZvciBtZSBzbyBmYXIhwqA8ZGl2IGNs
YXNzPSJnbWFpbF9leHRyYSI+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj4yMDE3LTA0LTEx
IDEyOjQwIEdNVCswMjowMCBMb3VpcyBCcnVubmVyIDxzcGFuIGRpcj0ibHRyIj4mbHQ7PGEgaHJl
Zj0ibWFpbHRvOmJ1Z3ppbGxhX25vcmVwbHlAa2RlLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmJ1Z3pp
bGxhX25vcmVwbHlAa2RlLm9yZzwvYT4mZ3Q7PC9zcGFuPjo8YnI+PGJsb2NrcXVvdGUgY2xhc3M9
ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4ICNj
Y2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLmtkZS5vcmcv
c2hvd19idWcuY2dpP2lkPTM2NTMyNyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+
aHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuPHdicj5jZ2k/aWQ9MzY1MzI3PC9hPjxicj4N
Cjxicj4NCkxvdWlzIEJydW5uZXIgJmx0OzxhIGhyZWY9Im1haWx0bzpsb3Vpcy5icnVubmVyLmZy
QGdtYWlsLmNvbSI+bG91aXMuYnJ1bm5lci5mckBnbWFpbC5jb208L2E+Jmd0OyBjaGFuZ2VkOjxi
cj4NCjxicj4NCsKgIMKgIMKgIMKgIMKgIMKgV2hhdMKgIMKgIHxSZW1vdmVkwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqB8QWRkZWQ8YnI+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS08d2JyPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTx3YnI+LS0tLS0tLS0tLS0t
LS0tLTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgQ0N8wqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxhIGhyZWY9Im1haWx0bzpsb3Vpcy5icnVubmVyLmZy
QGdtYWlsLmNvbSI+bG91aXMuYnJ1bm5lci5mckBnbWFpbC5jb208L2E+PGJyPg0KPGJyPg0KLS0t
IENvbW1lbnQgIzEyIGZyb20gTG91aXMgQnJ1bm5lciAmbHQ7PGEgaHJlZj0ibWFpbHRvOmxvdWlz
LmJydW5uZXIuZnJAZ21haWwuY29tIj5sb3Vpcy5icnVubmVyLmZyQGdtYWlsLmNvbTwvYT4mZ3Q7
IC0tLTxicj4NCkNyZWF0ZWQgYXR0YWNobWVudCAxMDQ5NjQ8YnI+DQrCoCAtLSZndDsgPGEgaHJl
Zj0iaHR0cHM6Ly9idWdzLmtkZS5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MTA0OTY0JmFtcDthY3Rp
b249ZWRpdCIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9idWdzLmtk
ZS5vcmcvPHdicj5hdHRhY2htZW50LmNnaT9pZD0xMDQ5NjQmYW1wOzx3YnI+YWN0aW9uPWVkaXQ8
L2E+PGJyPg0KbWFjT1MgU2llcnJhIGluY29tcGxldGUgc3VwcG9ydDxicj4NCjxicj4NCkkgaGF2
ZSBiZWVuIHdvcmtpbmcgb24gYSBwYXRjaCB0byBzdXBwb3J0IG1hY09TIFNpZXJyYS48YnI+DQpB
dCB0aGUgbW9tZW50LCBpdCB3b3JrcyBmb3IgYSB2YXJpZXR5IG9mIHByb2dyYW1zIChweXRob24s
IEdJTVAsIG1vc3QgYmFzaWM8YnI+DQpjb21tYW5kcyBsaWtlIGxzLCBta2RpcikgYnV0IGl0IGlz
IHN0aWxsIGluY29tcGxldGUgKHdhcm5pbmdzIGluIGR5bGQsPGJyPg0KbGlic3lzdGVtX2tlcm5l
bC4uLiBjcmFzaCBmb3Igc29tZSBHVUkgcHJvZ3JhbXMpLjxicj4NCjxicj4NClRoZSBwYXRjaCBh
ZGRzIGEgZmV3IHJlcXVpcmVkIHN5c2NhbGxzIHdpdGggcGxhY2Vob2xkZXIgaW1wbGVtZW50YXRp
b25zPGJyPg0KKGZhY2Nlc3NhdCwgZnN0YXRhdDY0LCBjc3JjdGwsIGdldGVudHJvcHkgYW5kIHVs
b2NrX3dha2UpIGFuZCB0aGUgbmV3IHdheSBvZjxicj4NCmxvYWRpbmcgZHlsaWIgKHBsYWNpbmcg
dGhlbSBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50bHkgbG9hZGVkIHNlZ21lbnRzKS4gVGhlPGJy
Pg0Kc2Vjb25kIGNoYW5nZSBtZWFucyB3ZSBuZWVkIHRvIGtub3cgd2hlcmUgdGhlIGxhc3Qgc2Vn
bWVudCB3YXMgbG9hZGVkLCB3aGljaDxicj4NCm1lYW5zIGNhcnJ5aW5nIGFyb3VuZCBvbmUgbW9y
ZSBwb2ludGVyIG9uIHBvaW50ZXIgaW4gZXZlcnkgZnVuY3Rpb24gKHdoaWNoPGJyPg0KYWxyZWFk
eSBoYXZlIDYtOSBhcmd1bWVudHMpLCB0aGF0JiMzOTtzIHdoeSBJIGNyZWF0ZWQgYSBzdHJ1Y3R1
cmUgKGxvYWRfaW5mb190KSB0bzxicj4NCnN0b3JlIGFsbCB0aGlzIGluZm9ybWF0aW9uIGFuZCBl
YXNpbHkgY2FycnkgaXQgYXJvdW5kLjxicj4NCjxicj4NCkl0IGFsc28gYWRkcyBvbmUgYXNzZXJ0
IGluIGlzX2luX3N5c2NhbGwgaW4gY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLTx3YnI+bWFp
bi5jPGJyPg0KdG8gbWF0Y2ggdGhlIG90aGVyIHN5c2NhbGwgcmVsYXRlZCBmdW5jdGlvbnMgaW4g
dGhlIHNhbWUgZmlsZS4gSSBoYWQgYTxicj4NCmRpZmZpY3VsdCB0byBkaWFnbm9zZSBjcmFzaCBp
biB0aGlzIGZ1bmN0aW9uIGJlY2F1c2UgaXQgZGlkbiYjMzk7dCBjaGVjayBmb3IgdGhlPGJyPg0K
ZXhpc3RlbmNlIG9mIHRoZSBzeXNjYWxsIHRhYmxlLjxicj4NCjxicj4NClRlbGwgbWUgaWYgeW91
IG5lZWQgYW55IGNoYW5nZTxicj4NCjxkaXYgY2xhc3M9IkhPRW5aYiI+PGRpdiBjbGFzcz0iaDUi
Pjxicj4NCi0tPGJyPg0KWW91IGFyZSByZWNlaXZpbmcgdGhpcyBtYWlsIGJlY2F1c2U6PGJyPg0K
WW91IHZvdGVkIGZvciB0aGUgYnVnLjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48YnI+
PC9kaXY+PC9kaXY+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105218</attachid>
            <date>2017-04-27 09:43:04 +0000</date>
            <delta_ts>2017-04-30 01:37:11 +0000</delta_ts>
            <desc>macOS Sierra incomplete support v2</desc>
            <filename>valgrind_sierra_v3.diff</filename>
            <type>text/plain</type>
            <size>32533</size>
            <attacher name="Louis Brunner">louis.brunner.fr</attacher>
            
              <data encoding="base64">SW5kZXg6IGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCShyZXZpc2lv
biAxNjI5NykKKysrIGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NjksMTEgKzU2OSwxMSBAQAogLy8gTllJIG9wZW5hdCAgICAgICAg
ICAvLyA0NjMKIC8vIE5ZSSBvcGVuYXRfbm9jYW5jZWwgLy8gNDY0CiAvLyBOWUkgcmVuYW1lYXQg
ICAgICAgIC8vIDQ2NQotLy8gTllJIGZhY2Nlc3NhdCAgICAgICAvLyA0NjYKK0RFQ0xfVEVNUExB
VEUoZGFyd2luLCBmYWNjZXNzYXQpOyAgICAgICAgICAgICAgICAvLyA0NjYKIC8vIE5ZSSBmY2ht
b2RhdCAgICAgICAgLy8gNDY3CiAvLyBOWUkgZmNob3duYXQgICAgICAgIC8vIDQ2OAogLy8gTllJ
IGZzdGF0YXQgICAgICAgICAvLyA0NjkKLS8vIE5ZSSBmc3RhdGF0NjQgICAgICAgLy8gNDcwCitE
RUNMX1RFTVBMQVRFKGRhcndpbiwgZnN0YXRhdDY0KTsgICAgICAgICAgICAgICAgLy8gNDcwCiAv
LyBOWUkgbGlua2F0ICAgICAgICAgIC8vIDQ3MQogLy8gTllJIHVubGlua2F0ICAgICAgICAvLyA0
NzIKIERFQ0xfVEVNUExBVEUoZGFyd2luLCByZWFkbGlua2F0KTsgICAgICAgICAgICAgICAvLyA0
NzMKQEAgLTU4Niw3ICs1ODYsNyBAQAogLy8gTllJIHJlY3Ztc2dfeCAgICAgICAvLyA0ODAKIC8v
IE5ZSSBzZW5kbXNnX3ggICAgICAgLy8gNDgxCiAvLyBOWUkgdGhyZWFkX3NlbGZ1c2FnZSAgLy8g
NDgyCi0vLyBOWUkgY3NyY3RsICAgICAgICAgIC8vIDQ4MworREVDTF9URU1QTEFURShkYXJ3aW4s
IGNzcmN0bCk7ICAgICAgICAgICAgICAgICAgICAgIC8vIDQ4MwogREVDTF9URU1QTEFURShkYXJ3
aW4sIGd1YXJkZWRfb3Blbl9kcHJvdGVjdGVkX25wKTsgIC8vIDQ4NAogREVDTF9URU1QTEFURShk
YXJ3aW4sIGd1YXJkZWRfd3JpdGVfbnApOyAgICAgICAgICAgIC8vIDQ4NQogREVDTF9URU1QTEFU
RShkYXJ3aW4sIGd1YXJkZWRfcHdyaXRlX25wKTsgICAgICAgICAgIC8vIDQ4NgpAQCAtNjA3LDcg
KzYwNyw3IEBACiAvLyBOWUkgd29ya19pbnRlcnZhbF9jdGwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gNDk5CiAjZW5kaWYgLyogREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzExICovCiAj
aWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEyCi0vLyBOWUkgZ2V0ZW50cm9weSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNTAwCitERUNMX1RFTVBMQVRFKGRhcndpbiwg
Z2V0ZW50cm9weSk7ICAgICAgICAgICAgICAgICAgLy8gNTAwCiAvLyBOWUkgbmVjcF9vcGVuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNTAxCiAvLyBOWUkgbmVjcF9jbGll
bnRfYWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNTAyCiAvLyA1MDMKQEAgLTYy
Myw3ICs2MjMsNyBAQAogLy8gNTEzCiAvLyA1MTQKIC8vIE5ZSSB1bG9ja193YWl0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1MTUKLS8vIE5ZSSB1bG9ja193YWtlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1MTYKK0RFQ0xfVEVNUExBVEUoZGFyd2lu
LCB1bG9ja193YWtlKTsgICAgICAgICAgICAgICAgICAvLyA1MTYKIC8vIE5ZSSBmY2xvbmVmaWxl
YXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1MTcKIC8vIE5ZSSBmc19zbmFw
c2hvdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1MTgKIC8vIDUxOQpAQCAt
NzM2LDYgKzczNiw5IEBACiBERUNMX1RFTVBMQVRFKGRhcndpbiwgbWFjaF9ob3N0X3NlbGYpOwog
REVDTF9URU1QTEFURShkYXJ3aW4sIG1hY2hfdGFza19zZWxmKTsKIERFQ0xfVEVNUExBVEUoZGFy
d2luLCBzeXNjYWxsX3RocmVhZF9zd2l0Y2gpOworI2lmIERBUldJTl9WRVJTID49IERBUldJTl8x
MF8xMgorREVDTF9URU1QTEFURShkYXJ3aW4sIGhvc3RfY3JlYXRlX21hY2hfdm91Y2hlcl90cmFw
KTsKKyNlbmRpZiAvKiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTIgKi8KIERFQ0xfVEVNUExB
VEUoZGFyd2luLCBzZW1hcGhvcmVfc2lnbmFsKTsKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBzZW1h
cGhvcmVfc2lnbmFsX2FsbCk7CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgc2VtYXBob3JlX3NpZ25h
bF90aHJlYWQpOwpJbmRleDogY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWRhcndpbi5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGNvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1kYXJ3aW4uYwkocmV2aXNp
b24gMTYyOTcpCisrKyBjb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtZGFyd2luLmMJKHdvcmtp
bmcgY29weSkKQEAgLTk3MjIsNiArOTcyMiwyMCBAQAogICAgICAgICBQT1NUX01FTV9XUklURSgg
QVJHMywgUkVTICk7CiB9CiAKK1BSRShmYWNjZXNzYXQpCit7CisgICBQUklOVCgiZmFjY2Vzc2F0
KEZJWE1FKShmZDolbGQsIHBhdGg6JSNseCglcyksIGFtb2RlOiUjbHgsIGZsYWc6JSNseCkiLCBB
UkcxLCBBUkcyLCAoSENoYXIqKUFSRzIsIEFSRzMsIEFSRzQpOworICAgUFJFX1JFR19SRUFENChp
bnQsICJmYWNjZXNzYXQiLAorICAgICAgICAgICAgICAgICBpbnQsIGZkLCB1c2VyX2FkZHJfdCwg
cGF0aCwgaW50LCBhbW9kZSwgaW50LCBmbGFnKTsKK30KKworUFJFKGZzdGF0YXQ2NCkKK3sKKyAg
IFBSSU5UKCJmc3RhdGF0NjQoRklYTUUpKGZkOiVsZCwgcGF0aDolI2x4KCVzKSwgdWI6JSNseCwg
ZmxhZzolI2x4KSIsIEFSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgQVJHMywgQVJHNCk7CisgICBQ
UkVfUkVHX1JFQUQ0KGludCwgImZzdGF0YXQ2NCIsCisgICAgICAgICAgICAgICAgIGludCwgZmQs
IHVzZXJfYWRkcl90LCBwYXRoLCB1c2VyX2FkZHJfdCwgdWIsIGludCwgZmxhZyk7Cit9CisKIFBS
RShic2R0aHJlYWRfY3RsKQogewogICAgLy8gaW50IGJzZHRocmVhZF9jdGwodXNlcl9hZGRyX3Qg
Y21kLCB1c2VyX2FkZHJfdCBhcmcxLCAKQEAgLTk3MzEsNiArOTc0NSwxMyBAQAogICAgICAgICAg
ICAgICAgICB2b2lkKiwgY21kLCB2b2lkKiwgYXJnMSwgdm9pZCosIGFyZzIsIHZvaWQqLCBhcmcz
KTsKIH0KIAorUFJFKGNzcmN0bCkKK3sKKyAgIFBSSU5UKCJjc3JjdGwoRklYTUUpKG9wOiVsZCwg
dXNlcmFkZHI6JSNseCwgdXNlcnNpemU6JSNseCkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBS
RV9SRUdfUkVBRDMoaW50LCAiY3NyY3RsIiwKKyAgICAgICAgICAgICAgICAgdWludDMyX3QsIG9w
LCB1c2VyX2FkZHJfdCwgdXNlcmFkZHIsIHVzZXJfYWRkcl90LCB1c2Vyc2l6ZSk7Cit9CisKIFBS
RShndWFyZGVkX29wZW5fZHByb3RlY3RlZF9ucCkKIHsKICAgICBQUklOVCgiZ3VhcmRlZF9vcGVu
X2Rwcm90ZWN0ZWRfbnAoIgpAQCAtOTc1NywxMCArOTc3OCw0MCBAQAogICAgICAgICBBUkcxLCBB
UkcyLCBBUkczLCAoVUxvbmcpQVJHNCk7CiB9CiAKK1BSRShnZXRlbnRyb3B5KQoreworICAgUFJJ
TlQoImdldGVudHJvcHkoRklYTUUpKGJ1ZmZlcjolI2x4LCBzaXplOiVsZCkiLCBBUkcxLCBBUkcy
KTsKKyAgIFBSRV9SRUdfUkVBRDIoaW50LCAiZ2V0ZW50cm9weSIsCisgICAgICAgICAgICAgICAg
IHZvaWQqLCBidWZmZXIsIHNpemVfdCwgc2l6ZSk7Cit9CisKK1BSRSh1bG9ja193YWtlKQorewor
ICAgUFJJTlQoInVsb2NrX3dha2UoRklYTUUpKG9wZXJhdGlvbjolbGQsIGFkZHI6JSNseCwgd2Fr
ZV92YWx1ZTolbGQpIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUkVfUkVHX1JFQUQzKGludCwg
InVsb2NrX3dha2UiLAorICAgICAgICAgICAgICAgICB1aW50MzJfdCwgb3BlcmF0aW9uLCB2b2lk
KiwgYWRkciwgdWludDY0X3QsIHdha2VfdmFsdWUpOworfQorCiAjZW5kaWYgLyogREFSV0lOX1ZF
UlMgPj0gREFSV0lOXzEwXzEwICovCiAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBBZGRlZCBmb3Ig
T1NYIDEwLjEyIChTaWVycmEpCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2lmIERBUldJTl9WRVJTID49
IERBUldJTl8xMF8xMgorCitQUkUoaG9zdF9jcmVhdGVfbWFjaF92b3VjaGVyX3RyYXApCit7Cisg
IC8vIG11bmdlX3d3d3cgLS0gbm8gbmVlZCB0byBjYWxsIGhlbHBlcgorICBQUklOVCgiaG9zdF9j
cmVhdGVfbWFjaF92b3VjaGVyX3RyYXAoRklYTUUpIgorICAgICAgICAiKGhvc3Q6JSNseCwgcmVj
aXBlczolI2x4LCByZWNpcGVzX3NpemU6JWxkLCB2b3VjaGVyOiUjbHgpIiwgQVJHMSwgQVJHMiwg
QVJHMywgQVJHNCk7Cit9CisKKyNlbmRpZiAvKiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTIg
Ki8KKworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIHN5c2NhbGwgdGFibGVzCiAgICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
Ki8KIApAQCAtMTAzMTUsOCArMTAzNjYsMTEgQEAKICNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5f
MTBfMTIKIC8vIF9fX19fKF9fTlJfa2RlYnVnX3R5cGVmaWx0ZXIpLCAgICAgICAgICAgICAgICAg
ICAgICAgLy8gMTc3CiAvLyBfX19fXyhfX05SX2Nsb25lZmlsZWF0KSwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIDQ2MgorICAgTUFDWF8oX19OUl9mYWNjZXNzYXQsIGZhY2Nlc3NhdCks
ICAgICAgICAgICAgICAgICAgICAvLyA0NjYKKyAgIE1BQ1hfKF9fTlJfZnN0YXRhdDY0LCBmc3Rh
dGF0NjQpLCAgICAgICAgICAgICAgICAgICAgLy8gNDcwCisgICBNQUNYXyhfX05SX2NzcmN0bCwg
Y3NyY3RsKSwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDQ4MwogLy8gX19fX18oX19OUl9y
ZW5hbWVhdHhfbnApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA0ODgKLS8vIF9fX19f
KF9fTlJfZ2V0ZW50cm9weSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNTAwCisg
ICBNQUNYXyhfX05SX2dldGVudHJvcHksIGdldGVudHJvcHkpLCAgICAgICAgICAgICAgICAgIC8v
IDUwMAogLy8gX19fX18oX19OUl9uZWNwX29wZW4pLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyA1MDEKIC8vIF9fX19fKF9fTlJfbmVjcF9jbGllbnRfYWN0aW9uKSwgICAgICAgICAg
ICAgICAgICAgICAgLy8gNTAyCiAgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1Rf
VU5JWCg1MDMpKSwgICAgICAgIC8vID8/PwpAQCAtMTAzMzIsNyArMTAzODYsNyBAQAogICAgX19f
X18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoNTEzKSksICAgICAgICAvLyA/Pz8K
ICAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDUxNCkpLCAgICAgICAg
Ly8gPz8/CiAvLyBfX19fXyhfX05SX3Vsb2NrX3dhaXQpLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIDUxNQotLy8gX19fX18oX19OUl91bG9ja193YWtlKSwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyA1MTYKKyAgIE1BQ1hfKF9fTlJfdWxvY2tfd2FrZSwgdWxvY2tfd2Fr
ZSksICAgICAgICAgICAgICAgICAgLy8gNTE2CiAvLyBfX19fXyhfX05SX2ZjbG9uZWZpbGVhdCks
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDUxNwogLy8gX19fX18oX19OUl9mc19zbmFw
c2hvdCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA1MTgKICAgIF9fX19fKFZHX0RB
UldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDUxOSkpLCAgICAgICAgLy8gPz8/CkBAIC0xMDQ5
MCw3ICsxMDU0NCwxMSBAQAogICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX01B
Q0goNjcpKSwgCiAgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfTUFDSCg2OCkp
LCAKICAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDY5KSksIAorI2lm
IERBUldJTl9WRVJTID49IERBUldJTl8xMF8xMgorICAgTUFDWF8oX19OUl9ob3N0X2NyZWF0ZV9t
YWNoX3ZvdWNoZXJfdHJhcCwgaG9zdF9jcmVhdGVfbWFjaF92b3VjaGVyX3RyYXApLAorI2Vsc2UK
ICAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDcwKSksIAorI2VuZGlm
CiAgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfTUFDSCg3MSkpLCAKICAgIF9f
X19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDcyKSksIAogICAgX19fX18oVkdf
REFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX01BQ0goNzMpKSwgCkluZGV4OiBjb3JlZ3JpbmQvbV9z
eXN3cmFwL3N5c3dyYXAtbWFpbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNvcmVncmluZC9tX3N5c3dyYXAv
c3lzd3JhcC1tYWluLmMJKHJldmlzaW9uIDE2Mjk3KQorKysgY29yZWdyaW5kL21fc3lzd3JhcC9z
eXN3cmFwLW1haW4uYwkod29ya2luZyBjb3B5KQpAQCAtMTY4OCw2ICsxNjg4LDcgQEAKIAogQm9v
bCBWR18oaXNfaW5fc3lzY2FsbCkgKCBJbnQgdGlkICkKIHsKKyAgIHZnX2Fzc2VydChzeXNjYWxs
SW5mbyk7CiAgICB2Z19hc3NlcnQodGlkID49IDAgJiYgdGlkIDwgVkdfTl9USFJFQURTKTsKICAg
IHJldHVybiAoc3lzY2FsbEluZm9bdGlkXS5zdGF0dXMud2hhdCAhPSBTc0lkbGUpOwogfQpJbmRl
eDogY29yZWdyaW5kL21fdW1lL21hY2hvLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY29yZWdyaW5kL21fdW1l
L21hY2hvLmMJKHJldmlzaW9uIDE2Mjk3KQorKysgY29yZWdyaW5kL21fdW1lL21hY2hvLmMJKHdv
cmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDE1IEBACiAjZGVmaW5lIFNFQ1RJT04gc2VjdGlvbl82
NAogI2VuZGlmCiAKK3R5cGVkZWYgc3RydWN0IGxvYWRfaW5mb190IHsKKyAgdmtpX3VpbnQ4X3Qg
KnN0YWNrX3N0YXJ0OyAvLyBhbGxvY2F0ZWQgdGhyZWFkIHN0YWNrIChob3QgZW5kKQorICB2a2lf
dWludDhfdCAqc3RhY2tfZW5kOyAvLyBhbGxvY2F0ZWQgdGhyZWFkIHN0YWNrIChjb2xkIGVuZCkK
KyAgdmtpX3VpbnQ4X3QgKnRleHQ7IC8vIHN0YXJ0IG9mIHRleHQgc2VnbWVudCAoaS5lLiB0aGUg
bWFjaCBoZWFkZXJzKQorICB2a2lfdWludDhfdCAqZW50cnk7IC8vIHN0YXRpYyBlbnRyeSBwb2lu
dAorICB2a2lfdWludDhfdCAqbGlua2VyX2VudHJ5OyAvLyBkeWxpbmtlciBlbnRyeSBwb2ludAor
ICBBZGRyIGxpbmtlcl9vZmZzZXQ7IC8vIGR5bGlua2VyIHRleHQgb2Zmc2V0CisgIHZraV9zaXpl
X3QgbWF4X2FkZHI7IC8vIGJpZ2dlc3QgYWRkcmVzcyByZWFjaGVkIHdoaWxlIGxvYWRpbmcgc2Vn
bWVudHMKK30gbG9hZF9pbmZvX3Q7CiAKIHN0YXRpYyB2b2lkIHByaW50KGNvbnN0IEhDaGFyICpz
dHIpCiB7CkBAIC05OSwzMCArMTA4LDI0IEBACiAKIHN0YXRpYyBpbnQgCiBsb2FkX3RoaW5fZmls
ZShpbnQgZmQsIHZraV9vZmZfdCBvZmZzZXQsIHZraV9vZmZfdCBzaXplLCB1bnNpZ25lZCBsb25n
IGZpbGV0eXBlLCAKLSAgICAgICAgICAgICAgIGNvbnN0IEhDaGFyICpmaWxlbmFtZSwgCi0gICAg
ICAgICAgICAgICB2a2lfdWludDhfdCAqKm91dF9zdGFja19zdGFydCwgdmtpX3VpbnQ4X3QgKipv
dXRfc3RhY2tfZW5kLCAKLSAgICAgICAgICAgICAgIHZraV91aW50OF90ICoqb3V0X3RleHQsIHZr
aV91aW50OF90ICoqb3V0X2VudHJ5LCB2a2lfdWludDhfdCAqKm91dF9saW5rZXJfZW50cnkpOwor
ICAgICAgICAgICAgICAgY29uc3QgSENoYXIgKmZpbGVuYW1lLCBsb2FkX2luZm9fdCAqb3V0X2lu
Zm8pOwogCiBzdGF0aWMgaW50IAogbG9hZF9mYXRfZmlsZShpbnQgZmQsIHZraV9vZmZfdCBvZmZz
ZXQsIHZraV9vZmZfdCBzaXplLCB1bnNpZ25lZCBsb25nIGZpbGV0eXBlLCAKLSAgICAgICAgICAg
ICAgY29uc3QgSENoYXIgKmZpbGVuYW1lLCAKLSAgICAgICAgICAgICAgdmtpX3VpbnQ4X3QgKipv
dXRfc3RhY2tfc3RhcnQsIHZraV91aW50OF90ICoqb3V0X3N0YWNrX2VuZCwgCi0gICAgICAgICAg
ICAgIHZraV91aW50OF90ICoqb3V0X3RleHQsIHZraV91aW50OF90ICoqb3V0X2VudHJ5LCB2a2lf
dWludDhfdCAqKm91dF9saW5rZXJfZW50cnkpOworICAgICAgICAgICAgICBjb25zdCBIQ2hhciAq
ZmlsZW5hbWUsIGxvYWRfaW5mb190ICpvdXRfaW5mbyk7CiAKIHN0YXRpYyBpbnQgCiBsb2FkX21h
Y2hfZmlsZShpbnQgZmQsIHZraV9vZmZfdCBvZmZzZXQsIHZraV9vZmZfdCBzaXplLCB1bnNpZ25l
ZCBsb25nIGZpbGV0eXBlLCAKLSAgICAgICAgICAgICAgIGNvbnN0IEhDaGFyICpmaWxlbmFtZSwg
Ci0gICAgICAgICAgICAgICB2a2lfdWludDhfdCAqKm91dF9zdGFja19zdGFydCwgdmtpX3VpbnQ4
X3QgKipvdXRfc3RhY2tfZW5kLCAKLSAgICAgICAgICAgICAgIHZraV91aW50OF90ICoqb3V0X3Rl
eHQsIHZraV91aW50OF90ICoqb3V0X2VudHJ5LCB2a2lfdWludDhfdCAqKm91dF9saW5rZXJfZW50
cnkpOworICAgICAgICAgICAgICAgY29uc3QgSENoYXIgKmZpbGVuYW1lLCBsb2FkX2luZm9fdCAq
b3V0X2luZm8pOwogCiAKIC8qIE9wZW4gYW5kIG1hcCBhIGR5bGlua2VyIGZpbGUuCiAgICBSZXR1
cm5zIDAgb24gc3VjY2VzcywgLTEgb24gYW55IGZhaWx1cmUuCiAgICBmaWxlbmFtZSBtdXN0IGJl
IGFuIGFic29sdXRlIHBhdGguCi0gICBUaGUgZHlsaW5rZXIncyBlbnRyeSBwb2ludCBpcyByZXR1
cm5lZCBpbiAqb3V0X2xpbmtlcl9lbnRyeS4KKyAgIFRoZSBkeWxpbmtlcidzIGVudHJ5IHBvaW50
IGlzIHJldHVybmVkIGluIG91dF9pbmZvLT5saW5rZXJfZW50cnkuCiAgKi8KIHN0YXRpYyBpbnQg
Ci1vcGVuX2R5bGlua2VyKGNvbnN0IEhDaGFyICpmaWxlbmFtZSwgdmtpX3VpbnQ4X3QgKipvdXRf
bGlua2VyX2VudHJ5KQorb3Blbl9keWxpbmtlcihjb25zdCBIQ2hhciAqZmlsZW5hbWUsIGxvYWRf
aW5mb190ICpvdXRfaW5mbykKIHsKICAgIHN0cnVjdCB2Z19zdGF0IHNiOwogICAgdmtpX3NpemVf
dCBmaWxlc2l6ZTsKQEAgLTEzOCwyNyArMTQxLDIwIEBACiAgICByZXMgPSBWR18ob3BlbikoZmls
ZW5hbWUsIFZLSV9PX1JET05MWSwgMCk7CiAgICBmZCA9IHNyX1JlcyhyZXMpOwogICAgaWYgKHNy
X2lzRXJyb3IocmVzKSkgewotICAgICAgcHJpbnQoImNvdWxkbid0IG9wZW4gZHlsaW5rZXI6ICIp
OwotICAgICAgcHJpbnQoZmlsZW5hbWUpOwotICAgICAgcHJpbnQoIlxuIik7CisgICAgICBWR18o
cHJpbnRmKSgiY291bGRuJ3Qgb3BlbiBkeWxpbmtlcjogJXNcbiIsIGZpbGVuYW1lKTsKICAgICAg
IHJldHVybiAtMTsKICAgIH0KICAgIGVyciA9IFZHXyhmc3RhdCkoZmQsICZzYik7CiAgICBpZiAo
ZXJyKSB7Ci0gICAgICBwcmludCgiY291bGRuJ3Qgc3RhdCBkeWxpbmtlcjogIik7Ci0gICAgICBw
cmludChmaWxlbmFtZSk7Ci0gICAgICBwcmludCgiXG4iKTsKKyAgICAgIFZHXyhwcmludGYpKCJj
b3VsZG4ndCBzdGF0IGR5bGlua2VyOiAlc1xuIiwgZmlsZW5hbWUpOwogICAgICAgVkdfKGNsb3Nl
KShmZCk7CiAgICAgICByZXR1cm4gLTE7CiAgICB9CiAgICBmaWxlc2l6ZSA9IHNiLnNpemU7CiAK
LSAgIGVyciA9IGxvYWRfbWFjaF9maWxlKGZkLCAwLCBmaWxlc2l6ZSwgTUhfRFlMSU5LRVIsIGZp
bGVuYW1lLCAKLSAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIE5VTEwsIG91dF9s
aW5rZXJfZW50cnksIE5VTEwpOworICAgZXJyID0gbG9hZF9tYWNoX2ZpbGUoZmQsIDAsIGZpbGVz
aXplLCBNSF9EWUxJTktFUiwgZmlsZW5hbWUsIG91dF9pbmZvKTsKICAgIGlmIChlcnIpIHsKLSAg
ICAgIHByaW50KCIuLi53aGlsZSBsb2FkaW5nIGR5bGlua2VyOiAiKTsKLSAgICAgIHByaW50KGZp
bGVuYW1lKTsKLSAgICAgIHByaW50KCJcbiIpOworICAgICAgVkdfKHByaW50ZikoIi4uLndoaWxl
IGxvYWRpbmcgZHlsaW5rZXI6ICVzXG4iLCBmaWxlbmFtZSk7CiAgICB9CiAgICBWR18oY2xvc2Up
KGZkKTsKICAgIHJldHVybiBlcnI7CkBAIC0xNzAsMjAgKzE2NiwyMiBAQAogICAgZmRbb2Zmc2V0
Li5zaXplKSBpcyBhIE1hY2gtTyB0aGluIGZpbGUuIAogICAgUmV0dXJucyAwIG9uIHN1Y2Nlc3Ms
IC0xIG9uIGFueSBmYWlsdXJlLgogICAgSWYgdGhpcyBzZWdtZW50IGNvbnRhaW5zIHRoZSBleGVj
dXRhYmxlJ3MgTWFjaCBoZWFkZXJzLCB0aGVpciAKLSAgICAgbG9hZGVkIGFkZHJlc3MgaXMgcmV0
dXJuZWQgaW4gKnRleHQuCisgICAgIGxvYWRlZCBhZGRyZXNzIGlzIHJldHVybmVkIGluIG91dF9p
bmZvLT50ZXh0LgogICAgSWYgdGhpcyBzZWdtZW50IGlzIGEgX19VTklYU1RBQ0ssIGl0cyBzdGFy
dCBhZGRyZXNzIGlzIHJldHVybmVkIGluIAotICAgICAqc3RhY2tfc3RhcnQuCisgICAgIG91dF9p
bmZvLT5zdGFja19zdGFydC4KICovCiBzdGF0aWMgaW50CiBsb2FkX3NlZ21lbnQoaW50IGZkLCB2
a2lfb2ZmX3Qgb2Zmc2V0LCB2a2lfb2ZmX3Qgc2l6ZSwgCi0gICAgICAgICAgICAgdmtpX3VpbnQ4
X3QgKip0ZXh0LCB2a2lfdWludDhfdCAqKnN0YWNrX3N0YXJ0LCAKLSAgICAgICAgICAgICBzdHJ1
Y3QgU0VHTUVOVF9DT01NQU5EICpzZWdjbWQsIGNvbnN0IEhDaGFyICpmaWxlbmFtZSkKKyAgICAg
ICAgICAgICBzdHJ1Y3QgU0VHTUVOVF9DT01NQU5EICpzZWdjbWQsIGNvbnN0IEhDaGFyICpmaWxl
bmFtZSwKKyAgICAgICAgICAgICBsb2FkX2luZm9fdCAqb3V0X2luZm8pCiB7CiAgICBTeXNSZXMg
cmVzOwogICAgQWRkciBhZGRyOwogICAgdmtpX3NpemVfdCBmaWxlc2l6ZTsgLy8gcGFnZS1hbGln
bmVkIAogICAgdmtpX3NpemVfdCB2bXNpemU7ICAgLy8gcGFnZS1hbGlnbmVkCisgICB2a2lfc2l6
ZV90IHZtZW5kOyAgICAvLyBwYWdlLWFsaWduZWQKICAgIHVuc2lnbmVkIGludCBwcm90OworICAg
QWRkciBzbGlkZWRfYWRkciA9IHNlZ2NtZC0+dm1hZGRyICsgb3V0X2luZm8tPmxpbmtlcl9vZmZz
ZXQ7CiAKICAgIC8vIEdyUCBmaXhtZSBtYXJrIF9fVU5JWFNUQUNLIGFzIFNGX1NUQUNLCiAgICAg
CkBAIC0yMTIsMTIgKzIxMCwxMiBAQAogCiAgICAvLyBSZWNvcmQgdGhlIHNlZ21lbnQgY29udGFp
bmluZyB0aGUgTWFjaCBoZWFkZXJzIHRoZW1zZWx2ZXMKICAgIGlmIChzZWdjbWQtPmZpbGVvZmYg
PT0gMCAgJiYgIHNlZ2NtZC0+ZmlsZXNpemUgIT0gMCkgewotICAgICAgaWYgKHRleHQpICp0ZXh0
ID0gKHZraV91aW50OF90ICopc2VnY21kLT52bWFkZHI7CisgICAgICBvdXRfaW5mby0+dGV4dCA9
ICh2a2lfdWludDhfdCAqKXNsaWRlZF9hZGRyOwogICAgfQogCiAgICAvLyBSZWNvcmQgdGhlIF9f
VU5JWFNUQUNLIHN0YXJ0CiAgICBpZiAoMCA9PSBWR18oc3RyY21wKShzZWdjbWQtPnNlZ25hbWUs
IFNFR19VTklYU1RBQ0spKSB7Ci0gICAgICBpZiAoc3RhY2tfc3RhcnQpICpzdGFja19zdGFydCA9
ICh2a2lfdWludDhfdCAqKXNlZ2NtZC0+dm1hZGRyOworICAgICAgb3V0X2luZm8tPnN0YWNrX3N0
YXJ0ID0gKHZraV91aW50OF90ICopc2xpZGVkX2FkZHI7CiAgICB9CiAKICAgIC8vIFNhbml0eS1j
aGVjayB0aGUgc2VnbWVudApAQCAtMjI1LDYgKzIyMywxMiBAQAogICAgICAgcHJpbnQoImJhZCBl
eGVjdXRhYmxlIChpbnZhbGlkIHNlZ21lbnQgY29tbWFuZClcbiIpOwogICAgICAgcmV0dXJuIC0x
OwogICAgfQorCisgICB2bWVuZCA9IFZHX1BHUk9VTkRVUChzbGlkZWRfYWRkciArIHNlZ2NtZC0+
dm1zaXplKTsKKyAgIGlmICh2bWVuZCA+IG91dF9pbmZvLT5tYXhfYWRkcikgeworICAgICBvdXRf
aW5mby0+bWF4X2FkZHIgPSB2bWVuZDsKKyAgIH0KKwogICAgaWYgKHNlZ2NtZC0+dm1zaXplID09
IDApIHsKICAgICAgIHJldHVybiAwOyAgLy8gbm90aGluZyB0byBtYXAgLSBvawogICAgfQpAQCAt
MjM5LDcgKzI0Myw3IEBACiAgICBmaWxlc2l6ZSA9IFZHX1BHUk9VTkRVUChzZWdjbWQtPmZpbGVz
aXplKTsKICAgIHZtc2l6ZSA9IFZHX1BHUk9VTkRVUChzZWdjbWQtPnZtc2l6ZSk7CiAgICBpZiAo
ZmlsZXNpemUgPiAwKSB7Ci0gICAgICBhZGRyID0gKEFkZHIpc2VnY21kLT52bWFkZHI7CisgICAg
ICBhZGRyID0gc2xpZGVkX2FkZHI7CiAgICAgICBWR18oZGVidWdMb2cpKDIsICJ1bWUiLCAibW1h
cCBmaXhlZCAoZmlsZSkgKCUjbHgsICVsdSlcbiIsIGFkZHIsIGZpbGVzaXplKTsKICAgICAgIHJl
cyA9IFZHXyhhbV9tbWFwX25hbWVkX2ZpbGVfZml4ZWRfY2xpZW50KShhZGRyLCBmaWxlc2l6ZSwg
cHJvdCwgZmQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9mZnNldCArIHNlZ2NtZC0+ZmlsZW9mZiwgCkBAIC0yNTYsNyArMjYwLDcgQEAKICAgIGlm
IChmaWxlc2l6ZSAhPSB2bXNpemUpIHsKICAgICAgIC8vIHBhZ2UtYWxpZ25lZCBwYXJ0CiAgICAg
ICBTaXplVCBsZW5ndGggPSB2bXNpemUgLSBmaWxlc2l6ZTsKLSAgICAgIGFkZHIgPSAoQWRkciko
ZmlsZXNpemUgKyBzZWdjbWQtPnZtYWRkcik7CisgICAgICBhZGRyID0gKEFkZHIpKGZpbGVzaXpl
ICsgc2xpZGVkX2FkZHIpOwogICAgICAgVkdfKGRlYnVnTG9nKSgyLCAidW1lIiwgIm1tYXAgZml4
ZWQgKGFub24pICglI2x4LCAlbHUpXG4iLCBhZGRyLCBsZW5ndGgpOwogICAgICAgcmVzID0gVkdf
KGFtX21tYXBfYW5vbl9maXhlZF9jbGllbnQpKGFkZHIsIGxlbmd0aCwgcHJvdCk7CiAgICAgICBj
aGVja19tbWFwKHJlcywgYWRkciwgbGVuZ3RoLCAibG9hZF9zZWdtZW50MiIpOwpAQCAtMjY5LDE2
ICsyNzMsMTUgQEAKIC8qIAogICAgUGFyc2UgYSBMQ19USFJFQUQgb3IgTENfVU5JWFRIUkVBRCBj
b21tYW5kLiAKICAgIFJldHVybiAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGFueSBmYWlsdXJlLgotICAg
VGhlIHN0YWNrIGFkZHJlc3MgaXMgcmV0dXJuZWQgaW4gKnN0YWNrLiBJZiB0aGUgZXhlY3V0YWJs
ZSByZXF1ZXN0ZWQgCi0gICBhIG5vbi1kZWZhdWx0IHN0YWNrIGFkZHJlc3MsICpjdXN0b21zdGFj
ayBpcyBzZXQgdG8gVFJVRS4gVGhlIHRocmVhZCdzIAotICAgZW50cnkgcG9pbnQgaXMgcmV0dXJu
ZWQgaW4gKmVudHJ5LgorICAgSWYgdGhlIHRocmVhZCBpcyBhIExDX1VOSVhUSFJFQUQsIHRoZSBz
dGFjayBhZGRyZXNzIGlzIHJldHVybmVkIGluIG91dF9pbmZvLT5zdGFja19lbmQuCisgICBJZiB0
aGUgZXhlY3V0YWJsZSByZXF1ZXN0ZWQgYSBub24tZGVmYXVsdCBzdGFjayBhZGRyZXNzLAorICAg
KmN1c3RvbXN0YWNrIGlzIHNldCB0byBUUlVFLiBUaGUgdGhyZWFkJ3MgZW50cnkgcG9pbnQgaXMg
cmV0dXJuZWQgaW4gb3V0X2luZm8tPmVudHJ5LgogICAgVGhlIHN0YWNrIGl0c2VsZiAoaWYgYW55
KSBpcyBub3QgbWFwcGVkLgogICAgT3RoZXIgY3VzdG9tIHJlZ2lzdGVyIHNldHRpbmdzIGFyZSBz
aWxlbnRseSBpZ25vcmVkIChHclAgZml4bWUpLgogKi8KIHN0YXRpYyBpbnQgCi1sb2FkX2dlbmVy
aWN0aHJlYWQodmtpX3VpbnQ4X3QgKipzdGFja19lbmQsIAotICAgICAgICAgICAgICAgICAgIGlu
dCAqY3VzdG9tc3RhY2ssIHZraV91aW50OF90ICoqZW50cnksIAotICAgICAgICAgICAgICAgICAg
IHN0cnVjdCB0aHJlYWRfY29tbWFuZCAqdGhyZWFkY21kKQorbG9hZF9nZW5lcmljdGhyZWFkKHN0
cnVjdCB0aHJlYWRfY29tbWFuZCAqdGhyZWFkY21kLCBpbnQgdHlwZSwKKyAgICAgICAgICAgICAg
ICAgICAgaW50ICpjdXN0b21zdGFjaywgbG9hZF9pbmZvX3QgKm91dF9pbmZvKQogewogICAgdW5z
aWduZWQgaW50IGZsYXZvcjsKICAgIHVuc2lnbmVkIGludCBjb3VudDsKQEAgLTMwNCwxMiArMzA3
LDEyIEBACiAjaWYgZGVmaW5lZChWR0FfeDg2KQogICAgICAgaWYgKGZsYXZvciA9PSBpMzg2X1RI
UkVBRF9TVEFURSAmJiBjb3VudCA9PSBpMzg2X1RIUkVBRF9TVEFURV9DT1VOVCkgewogICAgICAg
ICAgaTM4Nl90aHJlYWRfc3RhdGVfdCAqc3RhdGUgPSAoaTM4Nl90aHJlYWRfc3RhdGVfdCAqKXA7
Ci0gICAgICAgICBpZiAoZW50cnkpICplbnRyeSA9ICh2a2lfdWludDhfdCAqKXN0YXRlLT5fX2Vp
cDsKLSAgICAgICAgIGlmIChzdGFja19lbmQpIHsKLSAgICAgICAgICAgICpzdGFja19lbmQgPSAo
dmtpX3VpbnQ4X3QgKikoc3RhdGUtPl9fZXNwID8gc3RhdGUtPl9fZXNwCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFZLSV9VU1JTVEFDSyk7
Ci0gICAgICAgICAgICB2Z19hc3NlcnQoVkdfSVNfUEFHRV9BTElHTkVEKCpzdGFja19lbmQpKTsK
LSAgICAgICAgICAgICgqc3RhY2tfZW5kKS0tOworICAgICAgICAgb3V0X2luZm8tPmVudHJ5ID0g
KHZraV91aW50OF90ICopc3RhdGUtPl9fZWlwOworICAgICAgICAgaWYgKHR5cGUgPT0gTENfVU5J
WFRIUkVBRCkgeworICAgICAgICAgICAgb3V0X2luZm8tPnN0YWNrX2VuZCA9CisgICAgICAgICAg
ICAgICh2a2lfdWludDhfdCAqKShzdGF0ZS0+X19lc3AgPyBzdGF0ZS0+X19lc3AgOiBWS0lfVVNS
U1RBQ0spOworICAgICAgICAgICAgdmdfYXNzZXJ0KFZHX0lTX1BBR0VfQUxJR05FRChvdXRfaW5m
by0+c3RhY2tfZW5kKSk7CisgICAgICAgICAgICBvdXRfaW5mby0+c3RhY2tfZW5kLS07CiAgICAg
ICAgICB9CiAgICAgICAgICBpZiAoY3VzdG9tc3RhY2spICpjdXN0b21zdGFjayA9IHN0YXRlLT5f
X2VzcDsKICAgICAgICAgIHJldHVybiAwOwpAQCAtMzE4LDEyICszMjEsMTIgQEAKICNlbGlmIGRl
ZmluZWQoVkdBX2FtZDY0KQogICAgICAgaWYgKGZsYXZvciA9PSB4ODZfVEhSRUFEX1NUQVRFNjQg
JiYgY291bnQgPT0geDg2X1RIUkVBRF9TVEFURTY0X0NPVU5UKXsKICAgICAgICAgIHg4Nl90aHJl
YWRfc3RhdGU2NF90ICpzdGF0ZSA9ICh4ODZfdGhyZWFkX3N0YXRlNjRfdCAqKXA7Ci0gICAgICAg
ICBpZiAoZW50cnkpICplbnRyeSA9ICh2a2lfdWludDhfdCAqKXN0YXRlLT5fX3JpcDsKLSAgICAg
ICAgIGlmIChzdGFja19lbmQpIHsKLSAgICAgICAgICAgICpzdGFja19lbmQgPSAodmtpX3VpbnQ4
X3QgKikoc3RhdGUtPl9fcnNwID8gc3RhdGUtPl9fcnNwIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBWS0lfVVNSU1RBQ0s2NCk7Ci0gICAg
ICAgICAgICB2Z19hc3NlcnQoVkdfSVNfUEFHRV9BTElHTkVEKCpzdGFja19lbmQpKTsKLSAgICAg
ICAgICAgICgqc3RhY2tfZW5kKS0tOworICAgICAgICAgb3V0X2luZm8tPmVudHJ5ID0gKHZraV91
aW50OF90ICopc3RhdGUtPl9fcmlwOworICAgICAgICAgaWYgKHR5cGUgPT0gTENfVU5JWFRIUkVB
RCkgeworICAgICAgICAgICAgb3V0X2luZm8tPnN0YWNrX2VuZCA9CisgICAgICAgICAgICAgICh2
a2lfdWludDhfdCAqKShzdGF0ZS0+X19yc3AgPyBzdGF0ZS0+X19yc3AgOiBWS0lfVVNSU1RBQ0s2
NCk7CisgICAgICAgICAgICB2Z19hc3NlcnQoVkdfSVNfUEFHRV9BTElHTkVEKG91dF9pbmZvLT5z
dGFja19lbmQpKTsKKyAgICAgICAgICAgIG91dF9pbmZvLT5zdGFja19lbmQtLTsKICAgICAgICAg
IH0KICAgICAgICAgIGlmIChjdXN0b21zdGFjaykgKmN1c3RvbXN0YWNrID0gc3RhdGUtPl9fcnNw
OwogICAgICAgICAgcmV0dXJuIDA7CkBAIC0zNTYsMjEgKzM1OSwxOSBAQAogLyogCiAgICBQcm9j
ZXNzZXMgYSBMQ19VTklYVEhSRUFEIGNvbW1hbmQuCiAgICBSZXR1cm5zIDAgb24gc3VjY2Vzcywg
LTEgb24gYW55IGZhaWx1cmUuCi0gICBUaGUgc3RhY2sgaXMgbWFwcGVkIGluIGFuZCByZXR1cm5l
ZCBpbiAqb3V0X3N0YWNrLiAKLSAgIFRoZSB0aHJlYWQncyBlbnRyeSBwb2ludCBpcyByZXR1cm5l
ZCBpbiAqb3V0X2VudHJ5LgorICAgVGhlIHN0YWNrIGlzIG1hcHBlZCBpbiBhbmQgcmV0dXJuZWQg
aW4gb3V0X2luZm8tPnN0YWNrX3N0YXJ0IGFuZCBvdXRfaW5mby0+c3RhY2tfZW5kLgorICAgVGhl
IHRocmVhZCdzIGVudHJ5IHBvaW50IGlzIHJldHVybmVkIGluIG91dF9pbmZvLT5lbnRyeS4KICov
CiBzdGF0aWMgaW50IAotbG9hZF91bml4dGhyZWFkKHZraV91aW50OF90ICoqb3V0X3N0YWNrX3N0
YXJ0LCB2a2lfdWludDhfdCAqKm91dF9zdGFja19lbmQsIAotICAgICAgICAgICAgICAgIHZraV91
aW50OF90ICoqb3V0X2VudHJ5LCBzdHJ1Y3QgdGhyZWFkX2NvbW1hbmQgKnRocmVhZGNtZCkKK2xv
YWRfdW5peHRocmVhZChzdHJ1Y3QgdGhyZWFkX2NvbW1hbmQgKnRocmVhZGNtZCwgbG9hZF9pbmZv
X3QgKm91dF9pbmZvKQogewogICAgaW50IGVycjsKLSAgIHZraV91aW50OF90ICpzdGFja19lbmQ7
CiAgICBpbnQgY3VzdG9tc3RhY2s7CiAKLSAgIGVyciA9IGxvYWRfZ2VuZXJpY3RocmVhZCgmc3Rh
Y2tfZW5kLCAmY3VzdG9tc3RhY2ssIG91dF9lbnRyeSwgdGhyZWFkY21kKTsKKyAgIGVyciA9IGxv
YWRfZ2VuZXJpY3RocmVhZCh0aHJlYWRjbWQsIExDX1VOSVhUSFJFQUQsICZjdXN0b21zdGFjaywg
b3V0X2luZm8pOwogICAgaWYgKGVycikgcmV0dXJuIC0xOwogCi0gICBpZiAoIXN0YWNrX2VuZCkg
eworICAgaWYgKCFvdXRfaW5mby0+c3RhY2tfZW5kKSB7CiAgICAgICBwcmludCgiYmFkIGV4ZWN1
dGFibGUgKG5vIHRocmVhZCBzdGFjaylcbiIpOwogICAgICAgcmV0dXJuIC0xOwogICAgfQpAQCAt
Mzc4LDE4ICszNzksMTYgQEAKICAgIGlmICghY3VzdG9tc3RhY2spIHsKICAgICAgIC8vIE1hcCB0
aGUgc3RhY2sKICAgICAgIHZraV9zaXplX3Qgc3RhY2tzaXplID0gVkdfUEdST1VORFVQKGRlZmF1
bHRfc3RhY2tfc2l6ZSgpKTsKLSAgICAgIHZtX2FkZHJlc3NfdCBzdGFja2Jhc2UgPSBWR19QR1JP
VU5ERE4oc3RhY2tfZW5kKzEtc3RhY2tzaXplKTsKKyAgICAgIHZtX2FkZHJlc3NfdCBzdGFja2Jh
c2UgPSBWR19QR1JPVU5ERE4ob3V0X2luZm8tPnN0YWNrX2VuZCsxLXN0YWNrc2l6ZSk7CiAgICAg
ICBTeXNSZXMgcmVzOwogICAgICAgICAKICAgICAgIHJlcyA9IFZHXyhhbV9tbWFwX2Fub25fZml4
ZWRfY2xpZW50KShzdGFja2Jhc2UsIHN0YWNrc2l6ZSwgVktJX1BST1RfUkVBRHxWS0lfUFJPVF9X
UklURXxWS0lfUFJPVF9FWEVDKTsKICAgICAgIGNoZWNrX21tYXAocmVzLCBzdGFja2Jhc2UsIHN0
YWNrc2l6ZSwgImxvYWRfdW5peHRocmVhZDEiKTsKLSAgICAgIGlmIChvdXRfc3RhY2tfc3RhcnQp
ICpvdXRfc3RhY2tfc3RhcnQgPSAodmtpX3VpbnQ4X3QgKilzdGFja2Jhc2U7CisgICAgICBvdXRf
aW5mby0+c3RhY2tfc3RhcnQgPSAodmtpX3VpbnQ4X3QgKilzdGFja2Jhc2U7CiAgICB9IGVsc2Ug
ewogICAgICAgLy8gY3VzdG9tIHN0YWNrIC0gbWFwcGVkIHZpYSBfX1VOSVhUSFJFQUQgc2VnbWVu
dAogICAgfQogCi0gICBpZiAob3V0X3N0YWNrX2VuZCkgKm91dF9zdGFja19lbmQgPSBzdGFja19l
bmQ7Ci0KICAgIHJldHVybiAwOwogfQogCkBAIC00MDIsOSArNDAxLDggQEAKICAgIGFib3ZlIHpl
cm8uICovCiAjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzgKIHN0YXRpYyBpbnQKLWhhbmRs
ZV9sY21haW4gKCB2a2lfdWludDhfdCAqKm91dF9zdGFja19zdGFydCwKLSAgICAgICAgICAgICAg
ICB2a2lfdWludDhfdCAqKm91dF9zdGFja19lbmQsCi0gICAgICAgICAgICAgICAgdmtpX3NpemVf
dCByZXF1ZXN0ZWRfc2l6ZSApCitoYW5kbGVfbGNtYWluICggdmtpX3NpemVfdCByZXF1ZXN0ZWRf
c2l6ZSwKKyAgICAgICAgICAgICAgICBsb2FkX2luZm9fdCAqb3V0X2luZm8gKQogewogICAgaWYg
KHJlcXVlc3RlZF9zaXplID09IDApIHsKICAgICAgIHJlcXVlc3RlZF9zaXplID0gZGVmYXVsdF9z
dGFja19zaXplKCk7CkBAIC00MTgsMTUgKzQxNiwxNSBAQAogICAgICAgICAgICAgICAgICAgIFZL
SV9QUk9UX1JFQUR8VktJX1BST1RfV1JJVEV8VktJX1BST1RfRVhFQyk7CiAgICBjaGVja19tbWFw
X2Zsb2F0KHJlcywgcmVxdWVzdGVkX3NpemUsICJoYW5kbGVfbGNtYWluIik7CiAgICB2Z19hc3Nl
cnQoIXNyX2lzRXJyb3IocmVzKSk7Ci0gICAqb3V0X3N0YWNrX3N0YXJ0ID0gKHZraV91aW50OF90
Kilzcl9SZXMocmVzKTsKLSAgICpvdXRfc3RhY2tfZW5kICAgPSAqb3V0X3N0YWNrX3N0YXJ0ICsg
cmVxdWVzdGVkX3NpemUgLSAxOworICAgb3V0X2luZm8tPnN0YWNrX3N0YXJ0ID0gKHZraV91aW50
OF90Kilzcl9SZXMocmVzKTsKKyAgIG91dF9pbmZvLT5zdGFja19lbmQgICA9IG91dF9pbmZvLT5z
dGFja19zdGFydCArIHJlcXVlc3RlZF9zaXplIC0gMTsKIAogICAgQm9vbCBuZWVkX2Rpc2NhcmQg
PSBGYWxzZTsKLSAgIHJlcyA9IFZHXyhhbV9tdW5tYXBfY2xpZW50KSgmbmVlZF9kaXNjYXJkLCAo
QWRkcikqb3V0X3N0YWNrX3N0YXJ0LCBIQUNLKTsKKyAgIHJlcyA9IFZHXyhhbV9tdW5tYXBfY2xp
ZW50KSgmbmVlZF9kaXNjYXJkLCAoQWRkcilvdXRfaW5mby0+c3RhY2tfc3RhcnQsIEhBQ0spOwog
ICAgaWYgKHNyX2lzRXJyb3IocmVzKSkgcmV0dXJuIC0xOwogICAgdmdfYXNzZXJ0KCFuZWVkX2Rp
c2NhcmQpOyAvLyBUcnVlID09IHd0Zj8KIAotICAgKm91dF9zdGFja19zdGFydCArPSBIQUNLOwor
ICAgb3V0X2luZm8tPnN0YWNrX3N0YXJ0ICs9IEhBQ0s7CiAKICAgIHJldHVybiAwOwogfQpAQCAt
NDM4LDEyICs0MzYsMjEgQEAKICAgIFByb2Nlc3NlcyBhbiBMQ19MT0FEX0RZTElOS0VSIGNvbW1h
bmQuIAogICAgUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGFueSBlcnJvci4KICAgIFRoZSBs
aW5rZXIgaXRzZWxmIGlzIG1hcHBlZCBpbnRvIG1lbW9yeS4KLSAgIFRoZSBsaW5rZXIncyBlbnRy
eSBwb2ludCBpcyByZXR1cm5lZCBpbiAqbGlua2VyX2VudHJ5LgorICAgVGhlIGxpbmtlcidzIGVu
dHJ5IHBvaW50IGlzIHJldHVybmVkIGluIG91dF9pbmZvLT5saW5rZXJfZW50cnkuCiAqLwogc3Rh
dGljIGludCAKLWxvYWRfZHlsaW5rZXIodmtpX3VpbnQ4X3QgKipsaW5rZXJfZW50cnksIHN0cnVj
dCBkeWxpbmtlcl9jb21tYW5kICpkeWNtZCkKK2xvYWRfZHlsaW5rZXIoc3RydWN0IGR5bGlua2Vy
X2NvbW1hbmQgKmR5Y21kLCBsb2FkX2luZm9fdCAqb3V0X2luZm8pCiB7CiAgICBjb25zdCBIQ2hh
ciAqbmFtZTsKKyAgIGludCByZXQ7CisgICBsb2FkX2luZm9fdCBsaW5rZXJfaW5mbzsKKyAgIGxp
bmtlcl9pbmZvLnN0YWNrX3N0YXJ0ID0gTlVMTDsKKyAgIGxpbmtlcl9pbmZvLnN0YWNrX2VuZCA9
IE5VTEw7CisgICBsaW5rZXJfaW5mby50ZXh0ID0gTlVMTDsKKyAgIGxpbmtlcl9pbmZvLmVudHJ5
ID0gTlVMTDsKKyAgIGxpbmtlcl9pbmZvLmxpbmtlcl9lbnRyeSA9IE5VTEw7CisgICBsaW5rZXJf
aW5mby5saW5rZXJfb2Zmc2V0ID0gMDsKKyAgIGxpbmtlcl9pbmZvLm1heF9hZGRyID0gb3V0X2lu
Zm8tPm1heF9hZGRyOwogCiAgICBpZiAoZHljbWQtPm5hbWUub2Zmc2V0ID49IGR5Y21kLT5jbWRz
aXplKSB7CiAgICAgICBwcmludCgiYmFkIGV4ZWN1dGFibGUgKGludmFsaWQgZHlsaW5rZXIgY29t
bWFuZClcbiIpOwpAQCAtNDUzLDIyICs0NjAsMjcgQEAKICAgIG5hbWUgPSBkeWNtZC0+bmFtZS5v
ZmZzZXQgKyAoSENoYXIgKilkeWNtZDsKICAgICAKICAgIC8vIEdyUCBmaXhtZSBhc3N1bWVzIG5h
bWUgaXMgdGVybWluYXRlZCBzb21ld2hlcmUKLSAgIHJldHVybiBvcGVuX2R5bGlua2VyKG5hbWUs
IGxpbmtlcl9lbnRyeSk7CisgICByZXQgPSBvcGVuX2R5bGlua2VyKG5hbWUsICZsaW5rZXJfaW5m
byk7CisgICBpZiAobGlua2VyX2luZm8uZW50cnkpIHsKKyAgICAgb3V0X2luZm8tPmxpbmtlcl9l
bnRyeSA9IGxpbmtlcl9pbmZvLmVudHJ5ICsgbGlua2VyX2luZm8ubGlua2VyX29mZnNldDsKIH0K
KyAgIG91dF9pbmZvLT5tYXhfYWRkciA9IGxpbmtlcl9pbmZvLm1heF9hZGRyOworICAgcmV0dXJu
IHJldDsKK30KIAogCiAvKiAKICAgICBQcm9jZXNzIGFuIExDX1RIUkVBRCBjb21tYW5kLiAKICAg
ICBSZXR1cm5zIDAgb24gc3VjY2VzcywgLTEgb24gYW55IGZhaWx1cmUuCi0gICAgVGhlIHRocmVh
ZCdzIGVudHJ5IHBvaW50IGlzIHJldHVybmVkIGluICpvdXRfZW50cnkuCisgICAgVGhlIHRocmVh
ZCdzIGVudHJ5IHBvaW50IGlzIHJldHVybmVkIGluIG91dF9pbmZvLT5lbnRyeS4KICovCiBzdGF0
aWMgaW50IAotbG9hZF90aHJlYWQodmtpX3VpbnQ4X3QgKipvdXRfZW50cnksIHN0cnVjdCB0aHJl
YWRfY29tbWFuZCAqdGhyZWFkY21kKQorbG9hZF90aHJlYWQoc3RydWN0IHRocmVhZF9jb21tYW5k
ICp0aHJlYWRjbWQsIGxvYWRfaW5mb190ICpvdXRfaW5mbykKIHsKICAgIGludCBjdXN0b21zdGFj
azsKICAgIGludCBlcnI7CiAKLSAgIGVyciA9IGxvYWRfZ2VuZXJpY3RocmVhZChOVUxMLCAmY3Vz
dG9tc3RhY2ssIG91dF9lbnRyeSwgdGhyZWFkY21kKTsKKyAgIGVyciA9IGxvYWRfZ2VuZXJpY3Ro
cmVhZCh0aHJlYWRjbWQsIExDX1RIUkVBRCwgJmN1c3RvbXN0YWNrLCBvdXRfaW5mbyk7CiAgICBp
ZiAoZXJyKSByZXR1cm4gLTE7CiAgICBpZiAoY3VzdG9tc3RhY2spIHsKICAgICAgIHByaW50KCJi
YWQgZXhlY3V0YWJsZSAoc3RhY2tsZXNzIHRocmVhZCBoYXMgc3RhY2spXG4iKTsKQEAgLTQ4NCwx
NyArNDk2LDE2IEBACiAgIFJldHVybnMgMCBvbiBzdWNjZXNzLCAtMSBvbiBhbnkgZmFpbHVyZS4K
ICAgZmRbb2Zmc2V0Li5vZmZzZXQrc2l6ZSkgaXMgYSBNYWNoLU8gdGhpbiBmaWxlLgogICBmaWxl
dHlwZSBpcyBNSF9FWEVDVVRFIG9yIE1IX0RZTElOS0VSLgotICBUaGUgbWFwcGVkIGJ1dCBlbXB0
eSBzdGFjayBpcyByZXR1cm5lZCBpbiAqb3V0X3N0YWNrLgotICBUaGUgZXhlY3V0YWJsZSdzIE1h
Y2ggaGVhZGVycyBhcmUgcmV0dXJuZWQgaW4gKm91dF90ZXh0LgotICBUaGUgZXhlY3V0YWJsZSdz
IGVudHJ5IHBvaW50IGlzIHJldHVybmVkIGluICpvdXRfZW50cnkuCi0gIFRoZSBkeWxpbmtlcidz
IGVudHJ5IHBvaW50IChpZiBhbnkpIGlzIHJldHVybmVkIGluICpvdXRfbGlua2VyX2VudHJ5Lgor
ICBUaGUgbWFwcGVkIGJ1dCBlbXB0eSBzdGFjayBpcyByZXR1cm5lZCBpbiBvdXRfaW5mby0+c3Rh
Y2tfc3RhcnQuCisgIFRoZSBleGVjdXRhYmxlJ3MgTWFjaCBoZWFkZXJzIGFyZSByZXR1cm5lZCBp
biBvdXRfaW5mby0+dGV4dC4KKyAgVGhlIGV4ZWN1dGFibGUncyBlbnRyeSBwb2ludCBpcyByZXR1
cm5lZCBpbiBvdXRfaW5mby0+ZW50cnkuCisgIFRoZSBkeWxpbmtlcidzIGVudHJ5IHBvaW50IChp
ZiBhbnkpIGlzIHJldHVybmVkIGluIG91dF9pbmZvLT5saW5rZXJfZW50cnkuCisgIFRoZSBkeWxp
bmtlcidzIG9mZnNldCAoTWFjIE9TIFggMTAuMTIpIGlzIHJldHVybmVkIGluIG91dF9pbmZvLT5s
aW5rZXJfb2Zmc2V0LgogICBHclAgZml4bWUgbmVlZCB0byByZXR1cm4gd2hldGhlciBkeWxpbmtl
ciB3YXMgZm91bmQgLSBzdGFjayBsYXlvdXQgaXMgZGlmZmVyZW50CiAqLwogc3RhdGljIGludCAK
IGxvYWRfdGhpbl9maWxlKGludCBmZCwgdmtpX29mZl90IG9mZnNldCwgdmtpX29mZl90IHNpemUs
IHVuc2lnbmVkIGxvbmcgZmlsZXR5cGUsIAotICAgICAgICAgICAgICAgY29uc3QgSENoYXIgKmZp
bGVuYW1lLCAKLSAgICAgICAgICAgICAgIHZraV91aW50OF90ICoqb3V0X3N0YWNrX3N0YXJ0LCB2
a2lfdWludDhfdCAqKm91dF9zdGFja19lbmQsIAotICAgICAgICAgICAgICAgdmtpX3VpbnQ4X3Qg
KipvdXRfdGV4dCwgdmtpX3VpbnQ4X3QgKipvdXRfZW50cnksIHZraV91aW50OF90ICoqb3V0X2xp
bmtlcl9lbnRyeSkKKyAgICAgICAgICAgICAgIGNvbnN0IEhDaGFyICpmaWxlbmFtZSwgbG9hZF9p
bmZvX3QgKm91dF9pbmZvKQogewogICAgVkdfKGRlYnVnTG9nKSgxLCAidW1lIiwgImxvYWRfdGhp
bl9maWxlOiBiZWdpbjogICAlc1xuIiwgZmlsZW5hbWUpOwogICAgc3RydWN0IE1BQ0hfSEVBREVS
IG1oOwpAQCAtNTA5LDEyICs1MjAsNiBAQAogICAgU3lzUmVzIHJlczsKICAgIHZraV9zaXplX3Qg
bGVuOwogCi0gICB2a2lfdWludDhfdCAqc3RhY2tfc3RhcnQgPSBOVUxMOyAgIC8vIGFsbG9jYXRl
ZCB0aHJlYWQgc3RhY2sgKGhvdCBlbmQpCi0gICB2a2lfdWludDhfdCAqc3RhY2tfZW5kID0gTlVM
TDsgICAvLyBhbGxvY2F0ZWQgdGhyZWFkIHN0YWNrIChjb2xkIGVuZCkKLSAgIHZraV91aW50OF90
ICplbnRyeSA9IE5VTEw7ICAgLy8gc3RhdGljIGVudHJ5IHBvaW50Ci0gICB2a2lfdWludDhfdCAq
dGV4dCA9IE5VTEw7ICAgIC8vIHN0YXJ0IG9mIHRleHQgc2VnbWVudCAoaS5lLiB0aGUgbWFjaCBo
ZWFkZXJzKQotICAgdmtpX3VpbnQ4X3QgKmxpbmtlcl9lbnRyeSA9IE5VTEw7IC8vIGR5bGlua2Vy
IGVudHJ5IHBvaW50Ci0KICAgIC8vIFJlYWQgTWFjaC1PIGhlYWRlcgogICAgaWYgKHNpemVvZiht
aCkgPiBzaXplKSB7CiAgICAgICBwcmludCgiYmFkIGV4ZWN1dGFibGUgKG5vIE1hY2gtTyBoZWFk
ZXIpXG4iKTsKQEAgLTU3NiwxNCArNTgxLDE0IEBACiAgICAgICBjYXNlIExDX01BSU46IHsgLyog
TmV3IGluIDEwLjggKi8KICAgICAgICAgIHN0cnVjdCBlbnRyeV9wb2ludF9jb21tYW5kKiBlcGNt
ZAogICAgICAgICAgICAgPSAoc3RydWN0IGVudHJ5X3BvaW50X2NvbW1hbmQqKWxjOwotICAgICAg
ICAgaWYgKHN0YWNrX3N0YXJ0IHx8IHN0YWNrX2VuZCkgeworICAgICAgICAgaWYgKG91dF9pbmZv
LT5zdGFja19zdGFydCB8fCBvdXRfaW5mby0+c3RhY2tfZW5kKSB7CiAgICAgICAgICAgICBwcmlu
dCgiYmFkIGV4ZWN1dGFibGUgKG11bHRpcGxlIGluZGljYXRpb25zIG9mIHN0YWNrKSIpOwogICAg
ICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgfQotICAgICAgICAgZXJyID0gaGFuZGxlX2xj
bWFpbiAoICZzdGFja19zdGFydCwgJnN0YWNrX2VuZCwgZXBjbWQtPnN0YWNrc2l6ZSApOworICAg
ICAgICAgZXJyID0gaGFuZGxlX2xjbWFpbihlcGNtZC0+c3RhY2tzaXplLCBvdXRfaW5mbyk7CiAg
ICAgICAgICBpZiAoZXJyKSByZXR1cm4gLTE7CiAgICAgICAgICBWR18oZGVidWdMb2cpKDIsICJ1
bWUiLCAibGNfbWFpbjogY3JlYXRlZCBzdGFjayAlcC0lcFxuIiwKLQkgICAgICAgICAgICAgICBz
dGFja19zdGFydCwgc3RhY2tfZW5kKTsKKwkgICAgICAgICAgICAgICBvdXRfaW5mby0+c3RhY2tf
c3RhcnQsIG91dF9pbmZvLT5zdGFja19lbmQpOwogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAj
ICAgICBlbmRpZgpAQCAtNTk0LDE0ICs1OTksMTkgQEAKICAgICAgICAgICAgIHJldHVybiAtMTsK
ICAgICAgICAgIH0KICAgICAgICAgIHNlZ2NtZCA9IChzdHJ1Y3QgU0VHTUVOVF9DT01NQU5EICop
bGM7Ci0gICAgICAgICBlcnIgPSBsb2FkX3NlZ21lbnQoZmQsIG9mZnNldCwgc2l6ZSwgJnRleHQs
ICZzdGFja19zdGFydCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnY21kLCBmaWxl
bmFtZSk7CisjaWYgICBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTIKKyAgICAgICAgIC8qIGR5
bGQgdGV4dCBhZGRyZXNzIGlzIHJlbGF0aXZlIGluc3RlYWQgb2YgYWJzb2x1dGUgaW4gMTAuMTIg
Ki8KKyAgICAgICAgIGlmIChmaWxldHlwZSA9PSBNSF9EWUxJTktFUiAmJiBzZWdjbWQtPnZtYWRk
ciA9PSAwICYmIHNlZ2NtZC0+ZmlsZW9mZiA9PSAwKSB7CisgICAgICAgICAgIG91dF9pbmZvLT5s
aW5rZXJfb2Zmc2V0ID0gb3V0X2luZm8tPm1heF9hZGRyOworICAgICAgICAgfQorIyAgICAgZW5k
aWYKKyAgICAgICAgIGVyciA9IGxvYWRfc2VnbWVudChmZCwgb2Zmc2V0LCBzaXplLCBzZWdjbWQs
IGZpbGVuYW1lLCBvdXRfaW5mbyk7CiAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gLTE7CiAgICAg
ICAgICAgCiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSBMQ19VTklYVEhSRUFEOgotICAg
ICAgICAgaWYgKHN0YWNrX2VuZCAgfHwgIGVudHJ5KSB7CisgICAgICAgICBpZiAob3V0X2luZm8t
PnN0YWNrX2VuZCB8fCBvdXRfaW5mby0+ZW50cnkpIHsKICAgICAgICAgICAgIHByaW50KCJiYWQg
ZXhlY3V0YWJsZSAobXVsdGlwbGUgdGhyZWFkIGNvbW1hbmRzKVxuIik7CiAgICAgICAgICAgICBy
ZXR1cm4gLTE7CiAgICAgICAgICB9CkBAIC02MTAsNyArNjIwLDcgQEAKICAgICAgICAgICAgIHJl
dHVybiAtMTsKICAgICAgICAgIH0KICAgICAgICAgIHRocmVhZGNtZCA9IChzdHJ1Y3QgdGhyZWFk
X2NvbW1hbmQgKilsYzsKLSAgICAgICAgIGVyciA9IGxvYWRfdW5peHRocmVhZCgmc3RhY2tfc3Rh
cnQsICZzdGFja19lbmQsICZlbnRyeSwgdGhyZWFkY21kKTsKKyAgICAgICAgIGVyciA9IGxvYWRf
dW5peHRocmVhZCh0aHJlYWRjbWQsIG91dF9pbmZvKTsKICAgICAgICAgIGlmIChlcnIpIHJldHVy
biAtMTsKICAgICAgICAgIGJyZWFrOwogCkBAIC02MTksNyArNjI5LDcgQEAKICAgICAgICAgICAg
IHByaW50KCJiYWQgZXhlY3V0YWJsZSAoZHlsaW5rZXIgbmVlZHMgYSBkeWxpbmtlcilcbiIpOwog
ICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgfQotICAgICAgICAgaWYgKGxpbmtlcl9l
bnRyeSkgeworICAgICAgICAgaWYgKG91dF9pbmZvLT5saW5rZXJfZW50cnkpIHsKICAgICAgICAg
ICAgIHByaW50KCJiYWQgZXhlY3V0YWJsZSAobXVsdGlwbGUgZHlsaW5rZXIgY29tbWFuZHMpXG4i
KTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChsYy0+Y21kc2l6ZSA8IHNpemVvZihzdHJ1Y3Qg
ZHlsaW5rZXJfY29tbWFuZCkpIHsKQEAgLTYyNyw3ICs2MzcsNyBAQAogICAgICAgICAgICAgcmV0
dXJuIC0xOwogICAgICAgICAgfQogICAgICAgICAgZHljbWQgPSAoc3RydWN0IGR5bGlua2VyX2Nv
bW1hbmQgKilsYzsKLSAgICAgICAgIGVyciA9IGxvYWRfZHlsaW5rZXIoJmxpbmtlcl9lbnRyeSwg
ZHljbWQpOworICAgICAgICAgZXJyID0gbG9hZF9keWxpbmtlcihkeWNtZCwgb3V0X2luZm8pOwog
ICAgICAgICAgaWYgKGVycikgcmV0dXJuIC0xOwogICAgICAgICAgYnJlYWs7CiAKQEAgLTYzNiw3
ICs2NDYsNyBAQAogICAgICAgICAgICAgcHJpbnQoImJhZCBleGVjdXRhYmxlIChzdGFja2xlc3Mg
dGhyZWFkKVxuIik7CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICB9Ci0gICAgICAg
ICBpZiAoc3RhY2tfZW5kICB8fCAgZW50cnkpIHsKKyAgICAgICAgIGlmIChvdXRfaW5mby0+c3Rh
Y2tfZW5kIHx8IG91dF9pbmZvLT5lbnRyeSkgewogICAgICAgICAgICAgcHJpbnQoImJhZCBleGVj
dXRhYmxlIChtdWx0aXBsZSB0aHJlYWQgY29tbWFuZHMpXG4iKTsKICAgICAgICAgICAgIHJldHVy
biAtMTsKICAgICAgICAgIH0KQEAgLTY0NSw3ICs2NTUsNyBAQAogICAgICAgICAgICAgcmV0dXJu
IC0xOwogICAgICAgICAgfQogICAgICAgICAgdGhyZWFkY21kID0gKHN0cnVjdCB0aHJlYWRfY29t
bWFuZCAqKWxjOwotICAgICAgICAgZXJyID0gbG9hZF90aHJlYWQoJmVudHJ5LCB0aHJlYWRjbWQp
OworICAgICAgICAgZXJyID0gbG9hZF90aHJlYWQodGhyZWFkY21kLCBvdXRfaW5mbyk7CiAgICAg
ICAgICBpZiAoZXJyKSByZXR1cm4gLTE7CiAgICAgICAgICBicmVhazsKIApAQCAtNjYzLDE1ICs2
NzMsMTUgQEAKICAgICAgIC8vIGEgc3RhY2sKICAgICAgIC8vIGEgdGV4dCBzZWdtZW50CiAgICAg
ICAvLyBhbiBlbnRyeSBwb2ludCAoc3RhdGljIG9yIGxpbmtlcikKLSAgICAgIGlmICghc3RhY2tf
ZW5kIHx8ICFzdGFja19zdGFydCkgeworICAgICAgaWYgKCFvdXRfaW5mby0+c3RhY2tfZW5kIHx8
ICFvdXRfaW5mby0+c3RhY2tfc3RhcnQpIHsKICAgICAgICAgIFZHXyhwcmludGYpKCJiYWQgZXhl
Y3V0YWJsZSAlcyAobm8gc3RhY2spXG4iLCBmaWxlbmFtZSk7CiAgICAgICAgICByZXR1cm4gLTE7
CiAgICAgICB9Ci0gICAgICBpZiAoIXRleHQpIHsKKyAgICAgIGlmICghb3V0X2luZm8tPnRleHQp
IHsKICAgICAgICAgIHByaW50KCJiYWQgZXhlY3V0YWJsZSAobm8gdGV4dCBzZWdtZW50KVxuIik7
CiAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICB9Ci0gICAgICBpZiAoIWVudHJ5ICAmJiAgIWxp
bmtlcl9lbnRyeSkgeworICAgICAgaWYgKCFvdXRfaW5mby0+ZW50cnkgJiYgIW91dF9pbmZvLT5s
aW5rZXJfZW50cnkpIHsKICAgICAgICAgIHByaW50KCJiYWQgZXhlY3V0YWJsZSAobm8gZW50cnkg
cG9pbnQpXG4iKTsKICAgICAgICAgIHJldHVybiAtMTsKICAgICAgIH0KQEAgLTY3OSwxOCArNjg5
LDEyIEBACiAgICBlbHNlIGlmIChmaWxldHlwZSA9PSBNSF9EWUxJTktFUikgewogICAgICAgLy8g
VmVyaWZ5IHRoZSBuZWNlc3NhcnkgcGllY2VzIGZvciBhIGR5bGlua2VyOgogICAgICAgLy8gYW4g
ZW50cnkgcG9pbnQKLSAgICAgIGlmICghZW50cnkpIHsKKyAgICAgIGlmICghb3V0X2luZm8tPmVu
dHJ5KSB7CiAgICAgICAgICBwcmludCgiYmFkIGV4ZWN1dGFibGUgKG5vIGVudHJ5IHBvaW50KVxu
Iik7CiAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICB9CiAgICB9CiAKLSAgIGlmIChvdXRfc3Rh
Y2tfc3RhcnQpICpvdXRfc3RhY2tfc3RhcnQgPSBzdGFja19zdGFydDsKLSAgIGlmIChvdXRfc3Rh
Y2tfZW5kKSAqb3V0X3N0YWNrX2VuZCA9IHN0YWNrX2VuZDsKLSAgIGlmIChvdXRfdGV4dCkgICpv
dXRfdGV4dCA9IHRleHQ7Ci0gICBpZiAob3V0X2VudHJ5KSAqb3V0X2VudHJ5ID0gZW50cnk7Ci0g
ICBpZiAob3V0X2xpbmtlcl9lbnRyeSkgKm91dF9saW5rZXJfZW50cnkgPSBsaW5rZXJfZW50cnk7
Ci0gICAKICAgIFZHXyhkZWJ1Z0xvZykoMSwgInVtZSIsICJsb2FkX3RoaW5fZmlsZTogc3VjY2Vz
czogJXNcbiIsIGZpbGVuYW1lKTsKICAgIHJldHVybiAwOwogfQpAQCAtNzAxLDkgKzcwNSw3IEBA
CiAqLwogc3RhdGljIGludCAKIGxvYWRfZmF0X2ZpbGUoaW50IGZkLCB2a2lfb2ZmX3Qgb2Zmc2V0
LCB2a2lfb2ZmX3Qgc2l6ZSwgdW5zaWduZWQgbG9uZyBmaWxldHlwZSwgCi0gICAgICAgICAgICAg
Y29uc3QgSENoYXIgKmZpbGVuYW1lLCAKLSAgICAgICAgICAgICB2a2lfdWludDhfdCAqKm91dF9z
dGFja19zdGFydCwgdmtpX3VpbnQ4X3QgKipvdXRfc3RhY2tfZW5kLCAKLSAgICAgICAgICAgICB2
a2lfdWludDhfdCAqKm91dF90ZXh0LCB2a2lfdWludDhfdCAqKm91dF9lbnRyeSwgdmtpX3VpbnQ4
X3QgKipvdXRfbGlua2VyX2VudHJ5KQorICAgICAgICAgICAgIGNvbnN0IEhDaGFyICpmaWxlbmFt
ZSwgbG9hZF9pbmZvX3QgKm91dF9pbmZvKQogewogICAgc3RydWN0IGZhdF9oZWFkZXIgZmg7CiAg
ICB2a2lfb2ZmX3QgYXJjaF9vZmZzZXQ7CkBAIC03NjYsOSArNzY4LDcgQEAKICAgICAgICAgICAg
IHByaW50KCJiYWQgZXhlY3V0YWJsZSAoY29ycnVwdCBmYXQgYXJjaCAyKVxuIik7CiAgICAgICAg
ICAgICByZXR1cm4gLTE7CiAgICAgICAgICB9Ci0gICAgICAgICByZXR1cm4gbG9hZF9tYWNoX2Zp
bGUoZmQsIG9mZnNldCthcmNoLm9mZnNldCwgYXJjaC5zaXplLCBmaWxldHlwZSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIG91dF9zdGFja19zdGFydCwgb3V0X3N0
YWNrX2VuZCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0X3RleHQsIG91dF9l
bnRyeSwgb3V0X2xpbmtlcl9lbnRyeSk7CisgICAgICAgICByZXR1cm4gbG9hZF9tYWNoX2ZpbGUo
ZmQsIG9mZnNldCthcmNoLm9mZnNldCwgYXJjaC5zaXplLCBmaWxldHlwZSwgZmlsZW5hbWUsIG91
dF9pbmZvKTsKICAgICAgIH0KICAgIH0KIApAQCAtNzgyLDkgKzc4Miw3IEBACiAqLwogc3RhdGlj
IGludCAKIGxvYWRfbWFjaF9maWxlKGludCBmZCwgdmtpX29mZl90IG9mZnNldCwgdmtpX29mZl90
IHNpemUsIHVuc2lnbmVkIGxvbmcgZmlsZXR5cGUsIAotICAgICAgICAgICAgICBjb25zdCBIQ2hh
ciAqZmlsZW5hbWUsIAotICAgICAgICAgICAgICB2a2lfdWludDhfdCAqKm91dF9zdGFja19zdGFy
dCwgdmtpX3VpbnQ4X3QgKipvdXRfc3RhY2tfZW5kLCAKLSAgICAgICAgICAgICAgdmtpX3VpbnQ4
X3QgKipvdXRfdGV4dCwgdmtpX3VpbnQ4X3QgKipvdXRfZW50cnksIHZraV91aW50OF90ICoqb3V0
X2xpbmtlcl9lbnRyeSkKKyAgICAgICAgICAgICAgY29uc3QgSENoYXIgKmZpbGVuYW1lLCBsb2Fk
X2luZm9fdCAqb3V0X2luZm8pCiB7CiAgICB2a2lfdWludDMyX3QgbWFnaWM7CiAgICBTeXNSZXMg
cmVzOwpAQCAtODAxLDE0ICs3OTksMTAgQEAKICAgIAogICAgaWYgKG1hZ2ljID09IE1BR0lDKSB7
CiAgICAgICAvLyB0aGluCi0gICAgICByZXR1cm4gbG9hZF90aGluX2ZpbGUoZmQsIG9mZnNldCwg
c2l6ZSwgZmlsZXR5cGUsIGZpbGVuYW1lLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
dXRfc3RhY2tfc3RhcnQsIG91dF9zdGFja19lbmQsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dF90ZXh0LCBvdXRfZW50cnksIG91dF9saW5rZXJfZW50cnkpOworICAgICAgcmV0dXJu
IGxvYWRfdGhpbl9maWxlKGZkLCBvZmZzZXQsIHNpemUsIGZpbGV0eXBlLCBmaWxlbmFtZSwgb3V0
X2luZm8pOwogICAgfSBlbHNlIGlmIChtYWdpYyA9PSBWR18oaHRvbmwpKEZBVF9NQUdJQykpIHsK
ICAgICAgIC8vIGZhdAotICAgICAgcmV0dXJuIGxvYWRfZmF0X2ZpbGUoZmQsIG9mZnNldCwgc2l6
ZSwgZmlsZXR5cGUsIGZpbGVuYW1lLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9z
dGFja19zdGFydCwgb3V0X3N0YWNrX2VuZCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBv
dXRfdGV4dCwgb3V0X2VudHJ5LCBvdXRfbGlua2VyX2VudHJ5KTsKKyAgICAgIHJldHVybiBsb2Fk
X2ZhdF9maWxlKGZkLCBvZmZzZXQsIHNpemUsIGZpbGV0eXBlLCBmaWxlbmFtZSwgb3V0X2luZm8p
OwogICAgfSBlbHNlIHsKICAgICAgIC8vIGh1aD8KICAgICAgIHByaW50KCJiYWQgZXhlY3V0YWJs
ZSAoYmFkIE1hY2gtTyBtYWdpYylcbiIpOwpAQCAtODMzLDExICs4MjcsMTQgQEAKIHsKICAgIGlu
dCBlcnI7CiAgICBzdHJ1Y3Qgdmdfc3RhdCBzYjsKLSAgIHZraV91aW50OF90ICpzdGFja19zdGFy
dDsKLSAgIHZraV91aW50OF90ICpzdGFja19lbmQ7Ci0gICB2a2lfdWludDhfdCAqdGV4dDsKLSAg
IHZraV91aW50OF90ICplbnRyeTsKLSAgIHZraV91aW50OF90ICpsaW5rZXJfZW50cnk7CisgICBs
b2FkX2luZm9fdCBsb2FkX2luZm87CisgICBsb2FkX2luZm8uc3RhY2tfc3RhcnQgPSBOVUxMOwor
ICAgbG9hZF9pbmZvLnN0YWNrX2VuZCA9IE5VTEw7CisgICBsb2FkX2luZm8udGV4dCA9IE5VTEw7
CisgICBsb2FkX2luZm8uZW50cnkgPSBOVUxMOworICAgbG9hZF9pbmZvLmxpbmtlcl9lbnRyeSA9
IE5VTEw7CisgICBsb2FkX2luZm8ubGlua2VyX29mZnNldCA9IDA7CisgICBsb2FkX2luZm8ubWF4
X2FkZHIgPSAwOwogCiAgICBlcnIgPSBWR18oZnN0YXQpKGZkLCAmc2IpOwogICAgaWYgKGVycikg
ewpAQCAtODQ1LDIyICs4NDIsMjAgQEAKICAgICAgIHJldHVybiBWS0lfRU5PRVhFQzsKICAgIH0K
ICAgIAotICAgZXJyID0gbG9hZF9tYWNoX2ZpbGUoZmQsIDAsIHNiLnNpemUsIE1IX0VYRUNVVEUs
IG5hbWUsIAotICAgICAgICAgICAgICAgICAgICAgICAgJnN0YWNrX3N0YXJ0LCAmc3RhY2tfZW5k
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICZ0ZXh0LCAmZW50cnksICZsaW5rZXJfZW50cnkp
OworICAgZXJyID0gbG9hZF9tYWNoX2ZpbGUoZmQsIDAsIHNiLnNpemUsIE1IX0VYRUNVVEUsIG5h
bWUsICZsb2FkX2luZm8pOwogICAgaWYgKGVycikgcmV0dXJuIFZLSV9FTk9FWEVDOwogCiAgICAv
LyBHclAgZml4bWUgZXhlX2Jhc2UKICAgIC8vIEdyUCBmaXhtZSBleGVfZW5kCi0gICBpbmZvLT5l
bnRyeSA9IChBZGRyKWVudHJ5OwotICAgaW5mby0+aW5pdF9pcCA9IChBZGRyKShsaW5rZXJfZW50
cnkgPyBsaW5rZXJfZW50cnkgOiBlbnRyeSk7CisgICBpbmZvLT5lbnRyeSA9IChBZGRyKSBsb2Fk
X2luZm8uZW50cnk7CisgICBpbmZvLT5pbml0X2lwID0gKEFkZHIpKGxvYWRfaW5mby5saW5rZXJf
ZW50cnkgPyBsb2FkX2luZm8ubGlua2VyX2VudHJ5IDogbG9hZF9pbmZvLmVudHJ5KTsKICAgIGlu
Zm8tPmJya2Jhc2UgPSAweGZmZmZmZmZmOyAvLyBHclAgZml4bWUgaGFjawogICAgaW5mby0+aW5p
dF90b2MgPSAwOyAvLyBHclAgZml4bWUgdW51c2VkCiAKLSAgIGluZm8tPnN0YWNrX3N0YXJ0ID0g
KEFkZHIpc3RhY2tfc3RhcnQ7Ci0gICBpbmZvLT5zdGFja19lbmQgPSAoQWRkcilzdGFja19lbmQ7
Ci0gICBpbmZvLT50ZXh0ID0gKEFkZHIpdGV4dDsKLSAgIGluZm8tPmR5bmFtaWMgPSBsaW5rZXJf
ZW50cnkgPyBUcnVlIDogRmFsc2U7CisgICBpbmZvLT5zdGFja19zdGFydCA9IChBZGRyKSBsb2Fk
X2luZm8uc3RhY2tfc3RhcnQ7CisgICBpbmZvLT5zdGFja19lbmQgPSAoQWRkcikgbG9hZF9pbmZv
LnN0YWNrX2VuZDsKKyAgIGluZm8tPnRleHQgPSAoQWRkcikgbG9hZF9pbmZvLnRleHQ7CisgICBp
bmZvLT5keW5hbWljID0gbG9hZF9pbmZvLmxpbmtlcl9lbnRyeSA/IFRydWUgOiBGYWxzZTsKIAog
ICAgaW5mby0+ZXhlY3V0YWJsZV9wYXRoID0gVkdfKHN0cmR1cCkoInVtZS5tYWNoby5leGVjdXRh
YmxlX3BhdGgiLCBuYW1lKTsKIApAQCAtODcyLDQgKzg2NywzIEBACiAvKi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8K
IC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KSW5kZXg6IGluY2x1ZGUvdmtpL3Zr
aS1zY251bXMtZGFyd2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1k
YXJ3aW4uaAkocmV2aXNpb24gMTYyOTcpCisrKyBpbmNsdWRlL3ZraS92a2ktc2NudW1zLWRhcndp
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDIsNiArMjAyLDEwIEBACiAjZGVmaW5lIF9fTlJfc3lz
Y2FsbF90aHJlYWRfc3dpdGNoICAgICAgICAgICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNU
X01BQ0goNjEpCiAjZGVmaW5lIF9fTlJfY2xvY2tfc2xlZXBfdHJhcCAgICAgICAgICAgICAgICAg
VkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX01BQ0goNjIpCiAKKyNpZiBEQVJXSU5fVkVSUyA+
PSBEQVJXSU5fMTBfMTIKKyNkZWZpbmUgX19OUl9ob3N0X2NyZWF0ZV9tYWNoX3ZvdWNoZXJfdHJh
cCAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDcwKQorI2VuZGlmCisKICNkZWZp
bmUgX19OUl9tYWNoX3RpbWViYXNlX2luZm8gICAgICAgICAgICAgICBWR19EQVJXSU5fU1lTQ0FM
TF9DT05TVFJVQ1RfTUFDSCg4OSkKICNkZWZpbmUgX19OUl9tYWNoX3dhaXRfdW50aWwgICAgICAg
ICAgICAgICAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfTUFDSCg5MCkKICNkZWZpbmUg
X19OUl9ta190aW1lcl9jcmVhdGUgICAgICAgICAgICAgICAgICBWR19EQVJXSU5fU1lTQ0FMTF9D
T05TVFJVQ1RfTUFDSCg5MSkKQEAgLTczOSw2ICs3NDMsOCBAQAogI2lmIERBUldJTl9WRVJTID49
IERBUldJTl8xMF8xMAogI2RlZmluZSBfX05SX25lY3BfbWF0Y2hfcG9saWN5ICAgICAgVkdfREFS
V0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoNDYwKQogI2RlZmluZSBfX05SX2dldGF0dHJsaXN0
YnVsayAgICAgICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoNDYxKQorI2RlZmlu
ZSBfX05SX2ZhY2Nlc3NhdCAgICAgICAgICAgICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNU
X1VOSVgoNDY2KQorI2RlZmluZSBfX05SX2ZzdGF0YXQ2NCAgICAgICAgICAgICAgVkdfREFSV0lO
X1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoNDcwKQogI2VuZGlmIC8qIERBUldJTl9WRVJTID49IERB
UldJTl8xMF8xMCAqLwogCiAjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEyCkBAIC03NDgs
NiArNzU0LDcgQEAKICNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTAKICNkZWZpbmUgX19O
Ul9yZWFkbGlua2F0ICAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklY
KDQ3MykKICNkZWZpbmUgX19OUl9ic2R0aHJlYWRfY3RsICAgICAgICAgIFZHX0RBUldJTl9TWVND
QUxMX0NPTlNUUlVDVF9VTklYKDQ3OCkKKyNkZWZpbmUgX19OUl9jc3JjdGwgICAgICAgICAgICAg
ICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDQ4MykKICNkZWZpbmUgX19OUl9n
dWFyZGVkX29wZW5fZHByb3RlY3RlZF9ucCBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5J
WCg0ODQpCiAjZGVmaW5lIF9fTlJfZ3VhcmRlZF93cml0ZV9ucCAgICAgICBWR19EQVJXSU5fU1lT
Q0FMTF9DT05TVFJVQ1RfVU5JWCg0ODUpCiAjZGVmaW5lIF9fTlJfZ3VhcmRlZF9wd3JpdGVfbnAg
ICAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCg0ODYpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105282</attachid>
            <date>2017-04-30 01:37:11 +0000</date>
            <delta_ts>2017-04-30 01:37:11 +0000</delta_ts>
            <desc>0001-is_in_syscall-assert.patch</desc>
            <filename>0001-is_in_syscall-assert.patch</filename>
            <type>text/plain</type>
            <size>415</size>
            <attacher name="Rhys Kidd">rhyskidd</attacher>
            
              <data encoding="base64">SW5kZXg6IGNvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1tYWluLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
Y29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLW1haW4uYwkocmV2aXNpb24gMTYzMTcpCisrKyBj
b3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbWFpbi5jCSh3b3JraW5nIGNvcHkpCkBAIC0xNjg4
LDYgKzE2ODgsNyBAQAogCiBCb29sIFZHXyhpc19pbl9zeXNjYWxsKSAoIEludCB0aWQgKQogewor
ICAgdmdfYXNzZXJ0KHN5c2NhbGxJbmZvKTsKICAgIHZnX2Fzc2VydCh0aWQgPj0gMCAmJiB0aWQg
PCBWR19OX1RIUkVBRFMpOwogICAgcmV0dXJuIChzeXNjYWxsSW5mb1t0aWRdLnN0YXR1cy53aGF0
ICE9IFNzSWRsZSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105483</attachid>
            <date>2017-05-12 15:22:58 +0000</date>
            <delta_ts>2017-05-12 15:22:58 +0000</delta_ts>
            <desc>Checks in new syscalls/traps</desc>
            <filename>sierra_syscalls_checks.patch</filename>
            <type>text/plain</type>
            <size>7823</size>
            <attacher name="Louis Brunner">louis.brunner.fr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1kYXJ3aW4uYyBiL2NvcmVn
cmluZC9tX3N5c3dyYXAvc3lzd3JhcC1kYXJ3aW4uYwppbmRleCBjNThmMzc1Li41MTQ0MTFlIDEw
MDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtZGFyd2luLmMKKysrIGIvY29y
ZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWRhcndpbi5jCkBAIC05NzExLDE4ICs5NzExLDMzIEBA
IFBPU1QoZ2V0YXR0cmxpc3RidWxrKQogCiBQUkUoZmFjY2Vzc2F0KQogewotICAgIFBSSU5UKCJm
YWNjZXNzYXQoRklYTUUpKGZkOiVsZCwgcGF0aDolI2x4KCVzKSwgYW1vZGU6JSNseCwgZmxhZzol
I2x4KSIsCi0gICAgICAgIEFSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgQVJHMywgQVJHNCk7Cisg
ICAgdWludDMyX3QgZmQgPSBBUkcxOworICAgIFBSSU5UKCJmYWNjZXNzYXQoZmQ6JWQsIHBhdGg6
JSNseCglcyksIGFtb2RlOiUjbHgsIGZsYWc6JSNseCkiLAorICAgICAgICAgIGZkLCBBUkcyLCBB
UkcyID8gKEhDaGFyKilBUkcyIDogIm51bGwiLCBBUkczLCBBUkc0KTsKICAgICBQUkVfUkVHX1JF
QUQ0KGludCwgImZhY2Nlc3NhdCIsCiAgICAgICAgICAgICAgICAgICBpbnQsIGZkLCB1c2VyX2Fk
ZHJfdCwgcGF0aCwgaW50LCBhbW9kZSwgaW50LCBmbGFnKTsKKworICAgIGlmIChmZCA9PSBWS0lf
QVRfRkRDV0QgfHwgTUxfKGZkX2FsbG93ZWQpKGZkLCAiZmFjY2Vzc2F0IiwgdGlkLCBGYWxzZSkp
IHsKKyAgICAgICBQUkVfTUVNX1JBU0NJSVooICJmYWNjZXNzYXQocGF0aCkiLCBBUkcyICk7Cit9
CiB9CiAKIFBSRShmc3RhdGF0NjQpCiB7Ci0gICAgUFJJTlQoImZzdGF0YXQ2NChGSVhNRSkoZmQ6
JWxkLCBwYXRoOiUjbHgoJXMpLCB1YjolI2x4LCBmbGFnOiUjbHgpIiwKLSAgICAgICAgQVJHMSwg
QVJHMiwgKEhDaGFyKilBUkcyLCBBUkczLCBBUkc0KTsKKyAgICB1aW50MzJfdCBmZCA9IEFSRzE7
CisgICAgUFJJTlQoImZzdGF0YXQ2NChmZDolZCwgcGF0aDolI2x4KCVzKSwgdWI6JSNseCwgZmxh
ZzolI2x4KSIsCisgICAgICAgICAgZmQsIEFSRzIsIEFSRzIgPyAoSENoYXIqKUFSRzIgOiAibnVs
bCIsIEFSRzMsIEFSRzQpOwogICAgIFBSRV9SRUdfUkVBRDQoaW50LCAiZnN0YXRhdDY0IiwKICAg
ICAgICAgICAgICAgICAgIGludCwgZmQsIHVzZXJfYWRkcl90LCBwYXRoLCB1c2VyX2FkZHJfdCwg
dWIsIGludCwgZmxhZyk7CisKKyAgICBpZiAoZmQgPT0gVktJX0FUX0ZEQ1dEIHx8IE1MXyhmZF9h
bGxvd2VkKShmZCwgImZzdGF0YXQ2NCIsIHRpZCwgRmFsc2UpKSB7CisgICAgICAgUFJFX01FTV9S
QVNDSUlaKCAiZnN0YXRhdDY0KHBhdGgpIiwgQVJHMiApOworICAgICAgIFBSRV9NRU1fV1JJVEUo
ICJmc3RhdGF0NjQodWIpIiwgQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdDY0KSApOworfQor
fQorUE9TVChmc3RhdGF0NjQpCit7CisgICAgUE9TVF9NRU1fV1JJVEUoIEFSRzMsIHNpemVvZihz
dHJ1Y3QgdmtpX3N0YXQ2NCkgKTsKIH0KIAogUFJFKHJlYWRsaW5rYXQpCkBAIC05NzU5LDkgKzk3
NzQsMzggQEAgUFJFKGJzZHRocmVhZF9jdGwpCiAKIFBSRShjc3JjdGwpCiB7Ci0gICBQUklOVCgi
Y3NyY3RsKG9wOiVsZCwgdXNlcmFkZHI6JSNseCwgdXNlcnNpemU6JSNseCkgRklYTUUiLCBBUkcx
LCBBUkcyLCBBUkczKTsKKyAgIHN3aXRjaCAoQVJHMSkgeworICAgY2FzZSBWS0lfQ1NSX0NIRUNL
OgorICAgICBQUklOVCgiY3NyY3RsKG9wOkNTUl9DSEVDSywgdXNlcmFkZHI6JSNseCwgdXNlcnNp
emU6JSNseCkiLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMoaW50LCAiY3NyY3RsIiwK
ICAgICAgICAgICAgICAgICAgdWludDMyX3QsIG9wLCB1c2VyX2FkZHJfdCwgdXNlcmFkZHIsIHVz
ZXJfYWRkcl90LCB1c2Vyc2l6ZSk7CisgICAgIFBSRV9NRU1fUkVBRCggImNzcmN0bCh1c2VyYWRk
cikiLCBBUkcyLCBBUkczICk7CisgICAgIGJyZWFrOworCisgICBjYXNlIFZLSV9DU1JfR0VUX0FD
VElWRV9DT05GSUc6CisgICAgICBQUklOVCgiY3NyY3RsKG9wOkNTUl9HRVRfQUNUSVZFX0NPTkZJ
RywgdXNlcmFkZHI6JSNseCwgdXNlcnNpemU6JSNseCkiLCBBUkcyLCBBUkczKTsKKyAgICAgIFBS
RV9SRUdfUkVBRDMoaW50LCAiY3NyY3RsIiwKKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qs
IG9wLCB1c2VyX2FkZHJfdCwgdXNlcmFkZHIsIHVzZXJfYWRkcl90LCB1c2Vyc2l6ZSk7CisgICAg
ICBQUkVfTUVNX1dSSVRFKCAiY3NyY3RsKHVzZXJhZGRyKSIsIEFSRzIsIEFSRzMgKTsKKyAgICAg
IGJyZWFrOworCisgICBkZWZhdWx0OgorICAgICAgUFJJTlQoImNzcmN0bChvcDolbGQgWz8/XSwg
dXNlcmFkZHI6JSNseCwgdXNlcnNpemU6JSNseCkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgICAg
IGxvZ19kZWNheWluZygiVU5LTk9XTiBjc3JjdGwgJWxkISIsIEFSRzEpOworICAgICAgYnJlYWs7
Cit9Cit9CitQT1NUKGNzcmN0bCkKK3sKKyAgIHZnX2Fzc2VydChTVUNDRVNTKTsKKyAgIHN3aXRj
aCAoQVJHMSkgeworICAgY2FzZSBWS0lfQ1NSX0dFVF9BQ1RJVkVfQ09ORklHOgorICAgICAgUE9T
VF9NRU1fV1JJVEUoIEFSRzIsIEFSRzMgKTsKKyAgICAgIGJyZWFrOworCisgICBkZWZhdWx0Ogor
ICAgICAgYnJlYWs7CisgICB9CiB9CiAKIFBSRShndWFyZGVkX29wZW5fZHByb3RlY3RlZF9ucCkK
QEAgLTk4MDEsOSArOTg0NSwxNSBAQCBQUkUoZ3VhcmRlZF93cml0ZXZfbnApCiAKIFBSRShnZXRl
bnRyb3B5KQogewotICAgIFBSSU5UKCJnZXRlbnRyb3B5KGJ1ZmZlcjolI2x4LCBzaXplOiVsZCkg
RklYTUUiLCBBUkcxLCBBUkcyKTsKKyAgICBQUklOVCgiZ2V0ZW50cm9weShidWZmZXI6JSNseCwg
c2l6ZTolbGQpIiwgQVJHMSwgQVJHMik7CiAgICAgUFJFX1JFR19SRUFEMihpbnQsICJnZXRlbnRy
b3B5IiwKICAgICAgICAgICAgICAgICAgIHZvaWQqLCBidWZmZXIsIHNpemVfdCwgc2l6ZSk7Cisg
ICAgUFJFX01FTV9XUklURSggImdldGVudHJvcHkoYnVmZmVyKSIsIEFSRzEsIEFSRzIgKTsKK30K
K1BPU1QoZ2V0ZW50cm9weSkKK3sKKyAgICB2Z19hc3NlcnQoU1VDQ0VTUyk7CisgICAgUE9TVF9N
RU1fV1JJVEUoIEFSRzEsIEFSRzIgKTsKIH0KIAogc3RhdGljIGNvbnN0IEhDaGFyICp1bG9wX25h
bWUoaW50IG9wKQpAQCAtOTgxNywxMCArOTg2NywyOSBAQCBzdGF0aWMgY29uc3QgSENoYXIgKnVs
b3BfbmFtZShpbnQgb3ApCiAKIFBSRSh1bG9ja193YWtlKQogewotICAgIFBSSU5UKCJ1bG9ja193
YWtlKG9wZXJhdGlvbjolbGQsIGFkZHI6JSNseCwgd2FrZV92YWx1ZTolbGQpIEZJWE1FIiwKLSAg
ICAgICAgQVJHMSwgQVJHMiwgQVJHMyk7CisJIHVpbnQgdWxfb3Bjb2RlID0gQVJHMSAmIFZLSV9V
TF9PUENPREVfTUFTSzsKKwkgdWludCB1bF9mbGFncyA9IEFSRzEgJiBWS0lfVUxfRkxBR1NfTUFT
SzsKKyAgIHN3aXRjaCAodWxfb3Bjb2RlKSB7CisgICBjYXNlIFZLSV9VTF9VTkZBSVJfTE9DSzoK
KyAgIGNhc2UgVktJX1VMX0NPTVBBUkVfQU5EX1dBSVQ6IHsKKyAgICAgY29uc3QgY2hhciogbmFt
ZSA9IHVsb3BfbmFtZSh1bF9vcGNvZGUpOworICAgICBpZiAodWxfZmxhZ3MgJiBWS0lfVUxGX1dB
S0VfVEhSRUFEKSB7CisgICAgICAgUFJJTlQoInVsb2NrX3dha2Uob3BlcmF0aW9uOiVzIChmbGFn
czogJSN4KSwgYWRkcjolI2x4LCB3YWtlX3ZhbHVlOiVzKSIsCisgICAgICAgICAgICAgbmFtZSwg
dWxfZmxhZ3MsIEFSRzIsIG5hbWVfZm9yX3BvcnQoQVJHMykpOworICAgICB9IGVsc2UgeworICAg
ICAgIFBSSU5UKCJ1bG9ja193YWtlKG9wZXJhdGlvbjolcyAoZmxhZ3M6ICUjeCksIGFkZHI6JSNs
eCwgd2FrZV92YWx1ZTolbGQgLyp1bnVzZWQqLykiLAorICAgICAgICAgICAgIG5hbWUsIHVsX2Zs
YWdzLCBBUkcyLCBBUkczKTsKKyAgICAgfQogICAgIFBSRV9SRUdfUkVBRDMoaW50LCAidWxvY2tf
d2FrZSIsCiAgICAgICAgICAgICAgICAgICB1aW50MzJfdCwgb3BlcmF0aW9uLCB2b2lkKiwgYWRk
ciwgdWludDY0X3QsIHdha2VfdmFsdWUpOworICAgICBicmVhazsKK30KKworICAgZGVmYXVsdDoK
KyAgICAgIFBSSU5UKCJ1bG9ja193YWtlKG9wZXJhdGlvbjolbGQgKG9wY29kZTogJXUgWz8/XSwg
ZmxhZ3M6ICUjeCksIGFkZHI6JSNseCwgd2FrZV92YWx1ZTolbGQpIiwgQVJHMSwgdWxfb3Bjb2Rl
LCB1bF9mbGFncywgQVJHMiwgQVJHMyk7CisgICAgICBsb2dfZGVjYXlpbmcoIlVOS05PV04gdWxv
Y2tfd2FrZSAlbGQgKG9wY29kZTogJXUgWz8/XSwgZmxhZ3M6ICUjeCkhIiwgQVJHMSwgdWxfb3Bj
b2RlLCB1bF9mbGFncyk7CisgICAgICBicmVhazsKKyAgIH0KIH0KIAogUFJFKHVsb2NrX3dhaXQp
CkBAIC05ODUwLDggKzk5MTksMTUgQEAgUFJFKGhvc3RfY3JlYXRlX21hY2hfdm91Y2hlcl90cmFw
KQogewogICAgIC8vIG11bmdlX3d3d3cgLS0gbm8gbmVlZCB0byBjYWxsIGhlbHBlcgogICAgIFBS
SU5UKCJob3N0X2NyZWF0ZV9tYWNoX3ZvdWNoZXJfdHJhcCIKLSAgICAgICAgIihob3N0OiUjbHgs
IHJlY2lwZXM6JSNseCwgcmVjaXBlc19zaXplOiVsZCwgdm91Y2hlcjolI2x4KSBGSVhNRSIsCi0g
ICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworICAgICAgICAiKGhvc3Q6JXMsIHJlY2lw
ZXM6JSNseCwgcmVjaXBlc19zaXplOiVsZCwgdm91Y2hlcjolI2x4KSIsCisgICAgICAgIG5hbWVf
Zm9yX3BvcnQoQVJHMSksIEFSRzIsIEFSRzMsIEFSRzQpOworICAgIFBSRV9NRU1fUkVBRCggImhv
c3RfY3JlYXRlX21hY2hfdm91Y2hlcl90cmFwKHJlY2lwZXMpIiwgQVJHMiwgQVJHMyApOworICAg
IFBSRV9NRU1fV1JJVEUoICJob3N0X2NyZWF0ZV9tYWNoX3ZvdWNoZXJfdHJhcCh2b3VjaGVyKSIs
IEFSRzQsIHNpemVvZihtYWNoX3BvcnRfbmFtZV90KSApOworfQorUE9TVChob3N0X2NyZWF0ZV9t
YWNoX3ZvdWNoZXJfdHJhcCkKK3sKKyAgdmdfYXNzZXJ0KFNVQ0NFU1MpOworICBQT1NUX01FTV9X
UklURSggQVJHNCwgc2l6ZW9mKG1hY2hfcG9ydF9uYW1lX3QpICk7CiB9CiAKIFBSRSh0YXNrX3Jl
Z2lzdGVyX2R5bGRfaW1hZ2VfaW5mb3MpCkBAIC0xMDQ3MywxMCArMTA1NDksMTAgQEAgY29uc3Qg
U3lzY2FsbFRhYmxlRW50cnkgTUxfKHN5c2NhbGxfdGFibGUpW10gPSB7CiAgICBNQUNYWShfX05S
X25lY3BfbWF0Y2hfcG9saWN5LCAgIG5lY3BfbWF0Y2hfcG9saWN5KSwgIC8vIDQ2MAogICAgTUFD
WFkoX19OUl9nZXRhdHRybGlzdGJ1bGssICAgICBnZXRhdHRybGlzdGJ1bGspLCAgICAvLyA0NjEK
ICAgIE1BQ1hfKF9fTlJfZmFjY2Vzc2F0LCAgICAgICAgICAgZmFjY2Vzc2F0KSwgICAgICAgICAg
Ly8gNDY2Ci0gICBNQUNYXyhfX05SX2ZzdGF0YXQ2NCwgICAgICAgICAgIGZzdGF0YXQ2NCksICAg
ICAgICAgIC8vIDQ3MAorICAgTUFDWFkoX19OUl9mc3RhdGF0NjQsICAgICAgICAgICBmc3RhdGF0
NjQpLCAgICAgICAgICAvLyA0NzAKICAgIE1BQ1hfKF9fTlJfcmVhZGxpbmthdCwgICAgICAgICAg
cmVhZGxpbmthdCksICAgICAgICAgLy8gNDczCiAgICBNQUNYXyhfX05SX2JzZHRocmVhZF9jdGws
ICAgICAgIGJzZHRocmVhZF9jdGwpLCAgICAgIC8vIDQ3OAotICAgTUFDWF8oX19OUl9jc3JjdGws
ICAgICAgICAgICAgICBjc3JjdGwpLCAgICAgICAgICAgICAvLyA0ODMKKyAgIE1BQ1hZKF9fTlJf
Y3NyY3RsLCAgICAgICAgICAgICAgY3NyY3RsKSwgICAgICAgICAgICAgLy8gNDgzCiAgICBNQUNY
XyhfX05SX2d1YXJkZWRfb3Blbl9kcHJvdGVjdGVkX25wLCBndWFyZGVkX29wZW5fZHByb3RlY3Rl
ZF9ucCksICAvLyA0ODQKICAgIE1BQ1hfKF9fTlJfZ3VhcmRlZF93cml0ZV9ucCwgZ3VhcmRlZF93
cml0ZV9ucCksICAgICAgLy8gNDg1CiAgICBNQUNYXyhfX05SX2d1YXJkZWRfcHdyaXRlX25wLCBn
dWFyZGVkX3B3cml0ZV9ucCksICAgIC8vIDQ4NgpAQCAtMTA1MDEsNyArMTA1NzcsNyBAQCBjb25z
dCBTeXNjYWxsVGFibGVFbnRyeSBNTF8oc3lzY2FsbF90YWJsZSlbXSA9IHsKIC8vIF9fX19fKF9f
TlJfa2RlYnVnX3R5cGVmaWx0ZXIpLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTc3CiAvLyBf
X19fXyhfX05SX2Nsb25lZmlsZWF0KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDQ2
MgogLy8gX19fX18oX19OUl9yZW5hbWVhdHhfbnApLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyA0ODgKLSAgIE1BQ1hfKF9fTlJfZ2V0ZW50cm9weSwgZ2V0ZW50cm9weSksICAgICAgICAg
ICAgICAgICAgLy8gNTAwCisgICBNQUNYWShfX05SX2dldGVudHJvcHksIGdldGVudHJvcHkpLCAg
ICAgICAgICAgICAgICAgIC8vIDUwMAogLy8gX19fX18oX19OUl9uZWNwX29wZW4pLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyA1MDEKIC8vIF9fX19fKF9fTlJfbmVjcF9jbGllbnRf
YWN0aW9uKSwgICAgICAgICAgICAgICAgICAgICAgLy8gNTAyCiAgICBfX19fXyhWR19EQVJXSU5f
U1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCg1MDMpKSwgICAgICAgIC8vID8/PwpAQCAtMTA2NzYsNyAr
MTA3NTIsNyBAQCBjb25zdCBTeXNjYWxsVGFibGVFbnRyeSBNTF8obWFjaF90cmFwX3RhYmxlKVtd
ID0gewogICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX01BQ0goNjgpKSwgCiAg
ICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfTUFDSCg2OSkpLAogI2lmIERBUldJ
Tl9WRVJTID49IERBUldJTl8xMF8xMgotICAgTUFDWF8oX19OUl9ob3N0X2NyZWF0ZV9tYWNoX3Zv
dWNoZXJfdHJhcCwgaG9zdF9jcmVhdGVfbWFjaF92b3VjaGVyX3RyYXApLAorICAgTUFDWFkoX19O
Ul9ob3N0X2NyZWF0ZV9tYWNoX3ZvdWNoZXJfdHJhcCwgaG9zdF9jcmVhdGVfbWFjaF92b3VjaGVy
X3RyYXApLAogI2Vsc2UgCiAgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfTUFD
SCg3MCkpLCAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLWRhcndpbi5oIGIv
aW5jbHVkZS92a2kvdmtpLWRhcndpbi5oCmluZGV4IDU0MTk3OWYuLjBjZGQyZjggMTAwNjQ0Ci0t
LSBhL2luY2x1ZGUvdmtpL3ZraS1kYXJ3aW4uaAorKysgYi9pbmNsdWRlL3ZraS92a2ktZGFyd2lu
LmgKQEAgLTExMTAsNiArMTExMCwxMyBAQCBzdHJ1Y3QgdmtpX25lY3BfYWdncmVnYXRlX3Jlc3Vs
dCB7CiB9OwogI2VuZGlmIC8qIERBUldJTl9WRVJTID09IERBUldJTl8xMF8xMCAqLwogCisjZGVm
aW5lIFZLSV9BVF9GRENXRCBBVF9GRENXRAorCisjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEw
XzEwCisjZGVmaW5lIFZLSV9DU1JfQ0hFQ0sgMAorI2RlZmluZSBWS0lfQ1NSX0dFVF9BQ1RJVkVf
Q09ORklHIDEKKyNlbmRpZiAvKiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTAgKi8KKwogI2lm
IERBUldJTl9WRVJTID49IERBUldJTl8xMF8xMgogLy8gdWxvY2tfd2FrZSAmIHVsb2NrX3dhaXQg
b3BlcmF0aW9ucwogI2RlZmluZSBWS0lfVUxfT1BDT0RFX01BU0sJMHgwMDAwMDBGRgpAQCAtMTEx
OSw2ICsxMTI2LDEwIEBAIHN0cnVjdCB2a2lfbmVjcF9hZ2dyZWdhdGVfcmVzdWx0IHsKIC8vIHVs
b2NrX3dha2UgJiB1bG9ja193YWl0IGZsYWdzCiAjZGVmaW5lIFVMRl9OT19FUlJOTwkJCQkweDAx
MDAwMDAwCiAKKy8vIHVsb2NrX3dha2UgZmxhZ3MKKyNkZWZpbmUgVktJX1VMRl9XQUtFX0FMTCAg
ICAgICAgICAweDAwMDAwMTAwCisjZGVmaW5lIFZLSV9VTEZfV0FLRV9USFJFQUQgICAgICAgMHgw
MDAwMDIwMAorCiAvLyB1bG9ja193YWl0IGZsYWdzCiAjZGVmaW5lIFdLSV9VTEZfV0FJVF9XT1JL
UV9EQVRBX0NPTlRFTlRJT04JMHgwMDAxMDAwMAogI2VuZGlmIC8qIERBUldJTl9WRVJTID49IERB
UldJTl8xMF8xMiAqLwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>