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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>223226</bug_id>
          
          <creation_ts>2021-03-15 17:20:01 -0700</creation_ts>
          <short_desc>Add assertions to guard against heap allocations on the audio thread</short_desc>
          <delta_ts>2021-04-05 09:35:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223529</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=224188</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>223227</dependson>
    
    <dependson>223228</dependson>
    
    <dependson>223230</dependson>
    
    <dependson>223272</dependson>
    
    <dependson>223444</dependson>
    
    <dependson>223445</dependson>
    
    <dependson>223449</dependson>
    
    <dependson>223452</dependson>
    
    <dependson>223461</dependson>
    
    <dependson>223466</dependson>
    
    <dependson>223477</dependson>
    
    <dependson>223549</dependson>
          <blocked>223640</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1739752</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 17:20:01 -0700</bug_when>
    <thetext>Avoid heap allocations on the audio rendering thread, for performance reasons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739756</commentid>
    <comment_count>1</comment_count>
      <attachid>423269</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 17:23:54 -0700</bug_when>
    <thetext>Created attachment 423269
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739768</commentid>
    <comment_count>2</comment_count>
      <attachid>423269</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-15 17:40:23 -0700</bug_when>
    <thetext>Comment on attachment 423269
WIP Patch

How about,
1. Adding a `setForbidMallocUseInCurrentThread(bool)`
2. Use ForbidMallocUse scoped variable which set and reset the configuration.
such an utility can be useful for the other cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739769</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-15 17:41:23 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #2)
&gt; Comment on attachment 423269 [details]
&gt; WIP Patch
&gt; 
&gt; How about,
&gt; 1. Adding a `setForbidMallocUseInCurrentThread(bool)`
&gt; 2. Use ForbidMallocUse scoped variable which set and reset the configuration.
&gt; such an utility can be useful for the other cases.

BTW, in JSC, we have DisallowScope&lt;T&gt; and some implementations like, DisallowGC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739779</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 18:09:55 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #2)
&gt; Comment on attachment 423269 [details]
&gt; WIP Patch
&gt; 
&gt; How about,
&gt; 1. Adding a `setForbidMallocUseInCurrentThread(bool)`
&gt; 2. Use ForbidMallocUse scoped variable which set and reset the configuration.
&gt; such an utility can be useful for the other cases.

As it turns out, it is useful for WebAudio to turn it off too. I&apos;ll make the changes you suggest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739790</commentid>
    <comment_count>5</comment_count>
      <attachid>423279</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 18:57:52 -0700</bug_when>
    <thetext>Created attachment 423279
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739802</commentid>
    <comment_count>6</comment_count>
      <attachid>423285</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 19:30:49 -0700</bug_when>
    <thetext>Created attachment 423285
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740956</commentid>
    <comment_count>7</comment_count>
      <attachid>423540</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-17 16:49:47 -0700</bug_when>
    <thetext>Created attachment 423540
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741311</commentid>
    <comment_count>8</comment_count>
      <attachid>423630</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-18 11:54:45 -0700</bug_when>
    <thetext>Created attachment 423630
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741401</commentid>
    <comment_count>9</comment_count>
      <attachid>423648</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-18 13:57:02 -0700</bug_when>
    <thetext>Created attachment 423648
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741517</commentid>
    <comment_count>10</comment_count>
      <attachid>423672</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-18 16:59:56 -0700</bug_when>
    <thetext>Created attachment 423672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741712</commentid>
    <comment_count>11</comment_count>
      <attachid>423733</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-19 08:10:24 -0700</bug_when>
    <thetext>Created attachment 423733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741854</commentid>
    <comment_count>12</comment_count>
      <attachid>423765</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-19 13:04:17 -0700</bug_when>
    <thetext>Created attachment 423765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742411</commentid>
    <comment_count>13</comment_count>
      <attachid>423923</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-22 13:11:43 -0700</bug_when>
    <thetext>Created attachment 423923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742441</commentid>
    <comment_count>14</comment_count>
      <attachid>423932</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-22 13:34:17 -0700</bug_when>
    <thetext>Created attachment 423932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742466</commentid>
    <comment_count>15</comment_count>
      <attachid>423937</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-22 14:14:36 -0700</bug_when>
    <thetext>Created attachment 423937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742520</commentid>
    <comment_count>16</comment_count>
      <attachid>423948</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-22 15:29:33 -0700</bug_when>
    <thetext>Created attachment 423948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742528</commentid>
    <comment_count>17</comment_count>
      <attachid>423948</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-22 15:53:19 -0700</bug_when>
    <thetext>Comment on attachment 423948
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=423948&amp;action=review

What’s the overall strategy here? Why do we forbid memory allocation and exactly where? When we are done, can there be any remaining exceptions, or do we have to do this 100% to get the result we are looking for?

&gt; Source/WTF/wtf/FastMalloc.cpp:58
&gt; +thread_local static unsigned forbidMallocUseScopeCount;
&gt; +thread_local static unsigned disableMallocRestrictionScopeCount;

Wow, I have never heard of the C++ thread_local keyword until today! For use outside assertions: How does it compare in efficiency to the other kinds of per-thread stuff?

&gt; Source/WTF/wtf/FastMalloc.h:132
&gt; +    ~ForbidMallocUseForCurrentThreadScope() { }

Why not use = default here too? Or omit explicit constructor and destructors entirely?

&gt; Source/WTF/wtf/FastMalloc.h:148
&gt; +    ~DisableMallocRestrictionsForCurrentThreadScope() { }

Why not use = default here too? Or omit explicit constructor and destructors entirely?

&gt; Source/WebCore/Modules/webaudio/AudioDestinationNode.cpp:90
&gt; +        ForbidMallocUseForCurrentThreadScope forbidMallocUse;

I don’t understand why this is scoped to only cover this part of the rendering and doesn’t cover pre-render and post-render. Should that be obvious?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742550</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-22 16:24:18 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #17)
&gt; Comment on attachment 423948 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423948&amp;action=review
&gt; 
&gt; What’s the overall strategy here? Why do we forbid memory allocation and
&gt; exactly where? When we are done, can there be any remaining exceptions, or
&gt; do we have to do this 100% to get the result we are looking for?

Basically, the audio thread should avoid waiting on a lock and doing a heap allocation may require grabbing a lock, which would negatively impact audio performance.
As a result, we want to get heap allocations as close to 0 as possible on the audio thread. I don&apos;t think we can realistically get to 0 though so I think some exceptions will remain.
However, the assertions will help make sure we avoid introducing new heap allocations without realizing the impact on performance. If someone does introduce such a heap allocation in the
future, they will hit the assertion and will need to either get rid of the heap allocation (ideally) OR add a DisableMallocRestrictionScope to allow it (because no other choice). Because
of the DisableMallocRestrictionScope, it will be obvious when reviewing that we are consciously introducing a new heap allocation on the audio thread.
 
&gt; &gt; Source/WTF/wtf/FastMalloc.cpp:58
&gt; &gt; +thread_local static unsigned forbidMallocUseScopeCount;
&gt; &gt; +thread_local static unsigned disableMallocRestrictionScopeCount;
&gt; 
&gt; Wow, I have never heard of the C++ thread_local keyword until today! For use
&gt; outside assertions: How does it compare in efficiency to the other kinds of
&gt; per-thread stuff?

I did not compare the performance with other kinds of per-thread stuff. I honestly don&apos;t have much experience with per-thread stuff. I initially tried to add these counts to WTF::Thread but calling Thread::current() can do a heap allocation and I would end up in an infinite loop :)

&gt; 
&gt; &gt; Source/WTF/wtf/FastMalloc.h:132
&gt; &gt; +    ~ForbidMallocUseForCurrentThreadScope() { }
&gt; 
&gt; Why not use = default here too? Or omit explicit constructor and destructors
&gt; entirely?
&gt; 
&gt; &gt; Source/WTF/wtf/FastMalloc.h:148
&gt; &gt; +    ~DisableMallocRestrictionsForCurrentThreadScope() { }
&gt; 
&gt; Why not use = default here too? Or omit explicit constructor and destructors
&gt; entirely?

Ok, so this is intentional or the compiler complains about unused scope variables. I did not want to have to UNUSED_PARAM() the scope variables.

&gt; &gt; Source/WebCore/Modules/webaudio/AudioDestinationNode.cpp:90
&gt; &gt; +        ForbidMallocUseForCurrentThreadScope forbidMallocUse;
&gt; 
&gt; I don’t understand why this is scoped to only cover this part of the
&gt; rendering and doesn’t cover pre-render and post-render. Should that be
&gt; obvious?

I tried to explain in the changelog but basically, the idea is to expand to cover pre-render / post-render in the future. However, those have quite a few heap allocations and I have not had time to go through those yet.
I figure I should land the assertions ASAP for what&apos;s already done and we can work to expand the scope later on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742558</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-22 16:28:00 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #18)
&gt; (In reply to Darin Adler from comment #17)
&gt; &gt; Comment on attachment 423948 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=423948&amp;action=review
&gt; &gt; 
&gt; &gt; What’s the overall strategy here? Why do we forbid memory allocation and
&gt; &gt; exactly where? When we are done, can there be any remaining exceptions, or
&gt; &gt; do we have to do this 100% to get the result we are looking for?
&gt; 
&gt; Basically, the audio thread should avoid waiting on a lock and doing a heap
&gt; allocation may require grabbing a lock, which would negatively impact audio
&gt; performance.
&gt; As a result, we want to get heap allocations as close to 0 as possible on
&gt; the audio thread. I don&apos;t think we can realistically get to 0 though so I
&gt; think some exceptions will remain.
&gt; However, the assertions will help make sure we avoid introducing new heap
&gt; allocations without realizing the impact on performance. If someone does
&gt; introduce such a heap allocation in the
&gt; future, they will hit the assertion and will need to either get rid of the
&gt; heap allocation (ideally) OR add a DisableMallocRestrictionScope to allow it
&gt; (because no other choice). Because
&gt; of the DisableMallocRestrictionScope, it will be obvious when reviewing that
&gt; we are consciously introducing a new heap allocation on the audio thread.
&gt;  
&gt; &gt; &gt; Source/WTF/wtf/FastMalloc.cpp:58
&gt; &gt; &gt; +thread_local static unsigned forbidMallocUseScopeCount;
&gt; &gt; &gt; +thread_local static unsigned disableMallocRestrictionScopeCount;
&gt; &gt; 
&gt; &gt; Wow, I have never heard of the C++ thread_local keyword until today! For use
&gt; &gt; outside assertions: How does it compare in efficiency to the other kinds of
&gt; &gt; per-thread stuff?
&gt; 
&gt; I did not compare the performance with other kinds of per-thread stuff. I
&gt; honestly don&apos;t have much experience with per-thread stuff. I initially tried
&gt; to add these counts to WTF::Thread but calling Thread::current() can do a
&gt; heap allocation and I would end up in an infinite loop :)
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WTF/wtf/FastMalloc.h:132
&gt; &gt; &gt; +    ~ForbidMallocUseForCurrentThreadScope() { }
&gt; &gt; 
&gt; &gt; Why not use = default here too? Or omit explicit constructor and destructors
&gt; &gt; entirely?
&gt; &gt; 
&gt; &gt; &gt; Source/WTF/wtf/FastMalloc.h:148
&gt; &gt; &gt; +    ~DisableMallocRestrictionsForCurrentThreadScope() { }
&gt; &gt; 
&gt; &gt; Why not use = default here too? Or omit explicit constructor and destructors
&gt; &gt; entirely?
&gt; 
&gt; Ok, so this is intentional or the compiler complains about unused scope
&gt; variables. I did not want to have to UNUSED_PARAM() the scope variables.

I am curious if there is a better way to deal with those compiler warnings in release?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742595</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-22 17:20:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/75716380&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742805</commentid>
    <comment_count>21</comment_count>
      <attachid>423948</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-23 08:33:43 -0700</bug_when>
    <thetext>Comment on attachment 423948
Patch

Clearing flags on attachment: 423948

Committed r274871 (235653@main): &lt;https://commits.webkit.org/235653@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742806</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-23 08:33:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423269</attachid>
            <date>2021-03-15 17:23:54 -0700</date>
            <delta_ts>2021-03-15 18:57:52 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>WebAudio_CannotMalloc_Assertions.patch</filename>
            <type>text/plain</type>
            <size>6672</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">Y29tbWl0IDljZjM3MmFhNDg3YjYwYzZhNjRmY2Q5ZjNjMTY1M2MzMmI3ODZhMDEKQXV0aG9yOiBD
aHJpcyBEdW1leiA8Y2R1bWV6QGFwcGxlLmNvbT4KRGF0ZTogICBNb24gTWFyIDE1IDE1OjA4OjQ0
IDIwMjEgLTA3MDAKCiAgICBXZWJBdWRpb19DYW5ub3RNYWxsb2NfQXNzZXJ0aW9ucwoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvU291cmNlL1dURi93dGYvRmFz
dE1hbGxvYy5jcHAKaW5kZXggYzIyOGQzYjJhMjhjLi41ODNhYmExNGExYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RN
YWxsb2MuY3BwCkBAIC01Myw2ICs1MywxNSBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmIEFT
U0VSVF9FTkFCTEVECit0aHJlYWRfbG9jYWwgc3RhdGljIGJvb2wgdGhyZWFkQ2FuVXNlTWFsbG9j
IHsgdHJ1ZSB9OworCit2b2lkIGZvcmJpZE1hbGxvY1VzZUluQ3VycmVudFRocmVhZCgpCit7Cisg
ICAgIHRocmVhZENhblVzZU1hbGxvYyA9IGZhbHNlOworfQorI2VuZGlmCisKICNpZiAhZGVmaW5l
ZChOREVCVUcpCiBuYW1lc3BhY2UgewogLy8gV2UgZG8gbm90IHVzZSBzdGQ6Om51bWVyaWNfbGlt
aXRzPHNpemVfdD46Om1heCgpIGhlcmUgZHVlIHRvIHRoZSBlZGdlIGNhc2UgaW4gVkMrKy4KQEAg
LTE4NCwxMiArMTkzLDE0IEBAIHZvaWQgZmFzdEFsaWduZWRGcmVlKHZvaWQqIHApCiBUcnlNYWxs
b2NSZXR1cm5WYWx1ZSB0cnlGYXN0TWFsbG9jKHNpemVfdCBuKSAKIHsKICAgICBGQUlMX0lGX0VY
Q0VFRFNfTElNSVQobik7CisgICAgQVNTRVJUKHRocmVhZENhblVzZU1hbGxvYyk7CiAgICAgcmV0
dXJuIG1hbGxvYyhuKTsKIH0KIAogdm9pZCogZmFzdE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAg
QVNTRVJUX0lTX1dJVEhJTl9MSU1JVChuKTsKKyAgICBBU1NFUlQodGhyZWFkQ2FuVXNlTWFsbG9j
KTsKICAgICB2b2lkKiByZXN1bHQgPSBtYWxsb2Mobik7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAg
ICAgIENSQVNIKCk7CkBAIC0yMDAsMTIgKzIxMSwxNCBAQCB2b2lkKiBmYXN0TWFsbG9jKHNpemVf
dCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50
cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobl9l
bGVtZW50cyAqIGVsZW1lbnRfc2l6ZSk7CisgICAgQVNTRVJUKHRocmVhZENhblVzZU1hbGxvYyk7
CiAgICAgcmV0dXJuIGNhbGxvYyhuX2VsZW1lbnRzLCBlbGVtZW50X3NpemUpOwogfQogCiB2b2lk
KiBmYXN0Q2FsbG9jKHNpemVfdCBuX2VsZW1lbnRzLCBzaXplX3QgZWxlbWVudF9zaXplKQogewog
ICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQobl9lbGVtZW50cyAqIGVsZW1lbnRfc2l6ZSk7Cisg
ICAgQVNTRVJUKHRocmVhZENhblVzZU1hbGxvYyk7CiAgICAgdm9pZCogcmVzdWx0ID0gY2FsbG9j
KG5fZWxlbWVudHMsIGVsZW1lbnRfc2l6ZSk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIENS
QVNIKCk7CkBAIC0yMjEsNiArMjM0LDcgQEAgdm9pZCBmYXN0RnJlZSh2b2lkKiBwKQogdm9pZCog
ZmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9M
SU1JVChuKTsKKyAgICBBU1NFUlQodGhyZWFkQ2FuVXNlTWFsbG9jKTsKICAgICB2b2lkKiByZXN1
bHQgPSByZWFsbG9jKHAsIG4pOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICBDUkFTSCgpOwpA
QCAtMjMwLDYgKzI0NCw3IEBAIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQog
VHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7
CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAgIEFTU0VSVCh0aHJlYWRDYW5Vc2VN
YWxsb2MpOwogICAgIHJldHVybiByZWFsbG9jKHAsIG4pOwogfQogCkBAIC00NzgsNiArNDkzLDcg
QEAgYm9vbCBpc0Zhc3RNYWxsb2NFbmFibGVkKCkKIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90IHNp
emUpCiB7CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChzaXplKTsKKyAgICBBU1NFUlQodGhy
ZWFkQ2FuVXNlTWFsbG9jKTsKICAgICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjphcGk6Om1hbGxv
YyhzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxM
T0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGlu
Z0NvdW50KCkpCkBAIC01MDAsNiArNTE2LDcgQEAgdm9pZCogZmFzdENhbGxvYyhzaXplX3QgbnVt
RWxlbWVudHMsIHNpemVfdCBlbGVtZW50U2l6ZSkKIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIG9i
amVjdCwgc2l6ZV90IHNpemUpCiB7CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChzaXplKTsK
KyAgICBBU1NFUlQodGhyZWFkQ2FuVXNlTWFsbG9jKTsKICAgICB2b2lkKiByZXN1bHQgPSBibWFs
bG9jOjphcGk6OnJlYWxsb2Mob2JqZWN0LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBf
QlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29y
ZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01MzMsNiArNTUwLDcgQEAgc2l6
ZV90IGZhc3RNYWxsb2NHb29kU2l6ZShzaXplX3Qgc2l6ZSkKIHZvaWQqIGZhc3RBbGlnbmVkTWFs
bG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19XSVRI
SU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKHRocmVhZENhblVzZU1hbGxvYyk7CiAgICAgdm9p
ZCogcmVzdWx0ID0gYm1hbGxvYzo6YXBpOjptZW1hbGlnbihhbGlnbm1lbnQsIHNpemUpOwogI2lm
IEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19DQUxMU1RBQ0sK
ICAgICBpZiAoIUF2b2lkUmVjb3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291bnQoKSkKQEAg
LTU0NCw2ICs1NjIsNyBAQCB2b2lkKiBmYXN0QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxpZ25tZW50
LCBzaXplX3Qgc2l6ZSkKIHZvaWQqIHRyeUZhc3RBbGlnbmVkTWFsbG9jKHNpemVfdCBhbGlnbm1l
bnQsIHNpemVfdCBzaXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChzaXplKTsKKyAg
ICBBU1NFUlQodGhyZWFkQ2FuVXNlTWFsbG9jKTsKICAgICB2b2lkKiByZXN1bHQgPSBibWFsbG9j
OjphcGk6OnRyeU1lbWFsaWduKGFsaWdubWVudCwgc2l6ZSk7CiAjaWYgRU5BQkxFKE1BTExPQ19I
RUFQX0JSRUFLRE9XTikgJiYgVFJBQ0tfTUFMTE9DX0NBTExTVEFDSwogICAgIGlmICghQXZvaWRS
ZWNvcmRpbmdTY29wZTo6YXZvaWRSZWNvcmRpbmdDb3VudCgpKQpAQCAtNTYwLDYgKzU3OSw3IEBA
IHZvaWQgZmFzdEFsaWduZWRGcmVlKHZvaWQqIHApCiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlG
YXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChzaXpl
KTsKKyAgICBBU1NFUlQodGhyZWFkQ2FuVXNlTWFsbG9jKTsKICAgICByZXR1cm4gYm1hbGxvYzo6
YXBpOjp0cnlNYWxsb2Moc2l6ZSk7CiB9CiAKQEAgLTU3Niw2ICs1OTYsNyBAQCBUcnlNYWxsb2NS
ZXR1cm5WYWx1ZSB0cnlGYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1l
bnRTaXplKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogb2JqZWN0
LCBzaXplX3QgbmV3U2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobmV3U2l6ZSk7
CisgICAgQVNTRVJUKHRocmVhZENhblVzZU1hbGxvYyk7CiAgICAgcmV0dXJuIGJtYWxsb2M6OmFw
aTo6dHJ5UmVhbGxvYyhvYmplY3QsIG5ld1NpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9GYXN0TWFsbG9jLmggYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKaW5kZXgg
ZDZmZTNlYTU3ZWY3Li4wYmYwNjg1MzViNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zh
c3RNYWxsb2MuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKQEAgLTEyMSw2ICsx
MjEsMTIgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZmFzdEVuYWJsZU1pbmlNb2RlKCk7CiAK
IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGZhc3REaXNhYmxlU2NhdmVuZ2VyKCk7CiAKKyNpZiBB
U1NFUlRfRU5BQkxFRAorV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZm9yYmlkTWFsbG9jVXNlSW5D
dXJyZW50VGhyZWFkKCk7CisjZWxzZQorQUxXQVlTX0lOTElORSB2b2lkIGZvcmJpZE1hbGxvY1Vz
ZUluQ3VycmVudFRocmVhZCgpIHsgfQorI2VuZGlmCisKIHN0cnVjdCBGYXN0TWFsbG9jU3RhdGlz
dGljcyB7CiAgICAgc2l6ZV90IHJlc2VydmVkVk1CeXRlczsKICAgICBzaXplX3QgY29tbWl0dGVk
Vk1CeXRlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCBmNDFmYjgwMmRhZGMu
LjBlM2NmY2EwMDNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtMTAwLDYg
KzEwMCw3IEBAIHZvaWQgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJlbmRlcmlu
ZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsCiAgICAgYXV0byBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyk7CiAKICAgICBhdXRvIG9mZlRocmVhZFJlbmRlcmluZyA9IFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgV1RGOjpmb3JiaWRNYWxsb2NVc2VJbkN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgYXV0
byByZXN1bHQgPSBvZmZsaW5lUmVuZGVyKCk7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHJlc3VsdCwgY3VycmVudFNhbXBsZUZyYW1lID0gbV9jdXJyZW50U2FtcGxlRnJhbWUubG9h
ZCgpLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGNvbnRleHQoKS5wb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdU
Rk1vdmUocHJvdGVjdGVkVGhpcyksIHJlc3VsdCwgY3VycmVudFNhbXBsZUZyYW1lXSgpIG11dGFi
bGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggMTc2Yjc3YjRkOTRlLi4zMDkzYzIx
ZDgxMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtMTk5LDYgKzE5OSw3IEBAIGJv
b2wgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpoYXNFbm91Z2hGcmFtZXMoVUludDMyIG51bWJlck9m
RnJhbWVzKSBjb25zdAogT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXIoZG91
YmxlIHNhbXBsZVRpbWUsIHVpbnQ2NF90IGhvc3RUaW1lLCBVSW50MzIgbnVtYmVyT2ZGcmFtZXMs
IEF1ZGlvQnVmZmVyTGlzdCogaW9EYXRhKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OworICAgIFdURjo6Zm9yYmlkTWFsbG9jVXNlSW5DdXJyZW50VGhyZWFkKCk7CiAKICAgICBpZiAo
IWhhc0Vub3VnaEZyYW1lcyhudW1iZXJPZkZyYW1lcykpCiAgICAgICAgIHJldHVybiBub0VycjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAppbmRleCAwMTllY2MxZTc0ZmQuLjY5
YmJlOGQxMGI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcApAQCAtNzgs
NiArNzgsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnRSZW5kZXJp
bmdUaHJlYWQoKQogICAgIEFTU0VSVCghbV9yZW5kZXJUaHJlYWQpOwogCiAgICAgYXV0byBvZmZU
aHJlYWRSZW5kZXJpbmcgPSBbdGhpc10oKSBtdXRhYmxlIHsKKyAgICAgICAgV1RGOjpmb3JiaWRN
YWxsb2NVc2VJbkN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgZG8gewogICAgICAgICAgICAgbV9y
ZW5kZXJTZW1hcGhvcmUud2FpdCgpOwogICAgICAgICAgICAgaWYgKG1fc2hvdWxkU3RvcFRocmVh
ZCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423279</attachid>
            <date>2021-03-15 18:57:52 -0700</date>
            <delta_ts>2021-03-15 19:31:13 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>WebAudio_CannotMalloc_Assertions.patch</filename>
            <type>text/plain</type>
            <size>7394</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvU291cmNlL1dURi93
dGYvRmFzdE1hbGxvYy5jcHAKaW5kZXggYzIyOGQzYjJhMjhjLi5jOGNhZGQyMzZlZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0Zhc3RNYWxsb2MuY3BwCkBAIC01Myw2ICs1MywyMSBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAor
I2lmIEFTU0VSVF9FTkFCTEVECit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQ7CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29w
ZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkKK3sKKyAgICArK2ZvcmJp
ZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit9CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJl
YWRTY29wZTo6fkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAg
QVNTRVJUKGZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOworICAgIC0tZm9yYmlkTWFsbG9jVXNl
U2NvcGVDb3VudDsKK30KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTkRFQlVHKQogbmFtZXNwYWNl
IHsKIC8vIFdlIGRvIG5vdCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSBo
ZXJlIGR1ZSB0byB0aGUgZWRnZSBjYXNlIGluIFZDKysuCkBAIC0xODQsMTIgKzE5OSwxNCBAQCB2
b2lkIGZhc3RBbGlnbmVkRnJlZSh2b2lkKiBwKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFz
dE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAg
IEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCk7CiAgICAgcmV0dXJuIG1hbGxvYyhu
KTsKIH0KIAogdm9pZCogZmFzdE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAgQVNTRVJUX0lTX1dJ
VEhJTl9MSU1JVChuKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOwog
ICAgIHZvaWQqIHJlc3VsdCA9IG1hbGxvYyhuKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
Q1JBU0goKTsKQEAgLTIwMCwxMiArMjE3LDE0IEBAIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90IG4p
CiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0Q2FsbG9jKHNpemVfdCBuX2VsZW1lbnRzLCBz
aXplX3QgZWxlbWVudF9zaXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChuX2VsZW1l
bnRzICogZWxlbWVudF9zaXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291
bnQpOwogICAgIHJldHVybiBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKIH0KIAog
dm9pZCogZmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkK
IHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG5fZWxlbWVudHMgKiBlbGVtZW50X3NpemUp
OworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCk7CiAgICAgdm9pZCogcmVz
dWx0ID0gY2FsbG9jKG5fZWxlbWVudHMsIGVsZW1lbnRfc2l6ZSk7CiAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgIENSQVNIKCk7CkBAIC0yMjEsNiArMjQwLDcgQEAgdm9pZCBmYXN0RnJlZSh2b2lk
KiBwKQogdm9pZCogZmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7CiAgICAgQVNTRVJU
X0lTX1dJVEhJTl9MSU1JVChuKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291
bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IHJlYWxsb2MocCwgbik7CiAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgIENSQVNIKCk7CkBAIC0yMzAsNiArMjUwLDcgQEAgdm9pZCogZmFzdFJlYWxsb2Mo
dm9pZCogcCwgc2l6ZV90IG4pCiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2
b2lkKiBwLCBzaXplX3QgbikKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobik7CisgICAg
QVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50KTsKICAgICByZXR1cm4gcmVhbGxvYyhw
LCBuKTsKIH0KIApAQCAtNDc4LDYgKzQ5OSw3IEBAIGJvb2wgaXNGYXN0TWFsbG9jRW5hYmxlZCgp
CiB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19XSVRISU5f
TElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50KTsKICAg
ICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjphcGk6Om1hbGxvYyhzaXplKTsKICNpZiBFTkFCTEUo
TUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYg
KCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01MDAsNiAr
NTIyLDcgQEAgdm9pZCogZmFzdENhbGxvYyhzaXplX3QgbnVtRWxlbWVudHMsIHNpemVfdCBlbGVt
ZW50U2l6ZSkKIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIG9iamVjdCwgc2l6ZV90IHNpemUpCiB7
CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChzaXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6cmVh
bGxvYyhvYmplY3QsIHNpemUpOwogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pICYm
IFRSQUNLX01BTExPQ19DQUxMU1RBQ0sKICAgICBpZiAoIUF2b2lkUmVjb3JkaW5nU2NvcGU6OmF2
b2lkUmVjb3JkaW5nQ291bnQoKSkKQEAgLTUzMyw2ICs1NTYsNyBAQCBzaXplX3QgZmFzdE1hbGxv
Y0dvb2RTaXplKHNpemVfdCBzaXplKQogdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFs
aWdubWVudCwgc2l6ZV90IHNpemUpCiB7CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChzaXpl
KTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJl
c3VsdCA9IGJtYWxsb2M6OmFwaTo6bWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFC
TEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAg
aWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NDQs
NiArNTY4LDcgQEAgdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6
ZV90IHNpemUpCiB2b2lkKiB0cnlGYXN0QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxpZ25tZW50LCBz
aXplX3Qgc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQoc2l6ZSk7CisgICAgQVNT
RVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBibWFs
bG9jOjphcGk6OnRyeU1lbWFsaWduKGFsaWdubWVudCwgc2l6ZSk7CiAjaWYgRU5BQkxFKE1BTExP
Q19IRUFQX0JSRUFLRE9XTikgJiYgVFJBQ0tfTUFMTE9DX0NBTExTVEFDSwogICAgIGlmICghQXZv
aWRSZWNvcmRpbmdTY29wZTo6YXZvaWRSZWNvcmRpbmdDb3VudCgpKQpAQCAtNTYwLDYgKzU4NSw3
IEBAIHZvaWQgZmFzdEFsaWduZWRGcmVlKHZvaWQqIHApCiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0
cnlGYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChz
aXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOwogICAgIHJldHVy
biBibWFsbG9jOjphcGk6OnRyeU1hbGxvYyhzaXplKTsKIH0KIApAQCAtNTc2LDYgKzYwMiw3IEBA
IFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRzLCBz
aXplX3QgZWxlbWVudFNpemUpCiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2
b2lkKiBvYmplY3QsIHNpemVfdCBuZXdTaXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1J
VChuZXdTaXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOwogICAg
IHJldHVybiBibWFsbG9jOjphcGk6OnRyeVJlYWxsb2Mob2JqZWN0LCBuZXdTaXplKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oIGIvU291cmNlL1dURi93dGYv
RmFzdE1hbGxvYy5oCmluZGV4IGQ2ZmUzZWE1N2VmNy4uZjMyNjYyNmQwMDU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKKysrIGIvU291cmNlL1dURi93dGYvRmFzdE1h
bGxvYy5oCkBAIC0xMjEsNiArMTIxLDIyIEBAIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGZhc3RF
bmFibGVNaW5pTW9kZSgpOwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBmYXN0RGlzYWJsZVNj
YXZlbmdlcigpOwogCitjbGFzcyBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUg
eworcHVibGljOgorI2lmIEFTU0VSVF9FTkFCTEVECisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCk7CisjZWxzZQorICAg
IEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpID0gZGVmYXVsdDsKKyAgICB+
Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkgPSBkZWZhdWx0OworI2VuZGlm
CisKKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoY29uc3QgRm9yYmlk
TWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJikgPSBkZWxldGU7CisgICAgRm9yYmlkTWFs
bG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJl
YWRTY29wZSYmKSA9IGRlbGV0ZTsKKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFk
U2NvcGUmIG9wZXJhdG9yPShjb25zdCBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2Nv
cGUmKSA9IGRlbGV0ZTsKKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUm
IG9wZXJhdG9yPShGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUmJikgPSBkZWxl
dGU7Cit9OworCiBzdHJ1Y3QgRmFzdE1hbGxvY1N0YXRpc3RpY3MgewogICAgIHNpemVfdCByZXNl
cnZlZFZNQnl0ZXM7CiAgICAgc2l6ZV90IGNvbW1pdHRlZFZNQnl0ZXM7CkBAIC0zMDIsNiArMzE4
LDcgQEAgdXNpbmcgV1RGOjpmYXN0U2V0TWF4U2luZ2xlQWxsb2NhdGlvblNpemU7CiB1c2luZyBX
VEY6OkZhc3RBbGxvY2F0b3I7CiB1c2luZyBXVEY6OkZhc3RNYWxsb2M7CiB1c2luZyBXVEY6OkZh
c3RGcmVlOwordXNpbmcgV1RGOjpGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU7
CiB1c2luZyBXVEY6OmlzRmFzdE1hbGxvY0VuYWJsZWQ7CiB1c2luZyBXVEY6OmZhc3RDYWxsb2M7
CiB1c2luZyBXVEY6OmZhc3RGcmVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4
IGY0MWZiODAyZGFkYy4uZDY1N2U1ZDcyMzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUu
Y3BwCkBAIC0xMzUsNiArMTM1LDcgQEAgYXV0byBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6
Om9mZmxpbmVSZW5kZXIoKSAtPiBPZmZsaW5lUmVuZGVyUmVzdWx0CiB7CiAgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fcmVuZGVyQnVzLmdldCgpKTsKKyAgICBGb3Ji
aWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUgZm9yYmlkTWFsbG9jVXNlOwogCiAgICAg
aWYgKCFtX3JlbmRlckJ1cy5nZXQoKSkKICAgICAgICAgcmV0dXJuIE9mZmxpbmVSZW5kZXJSZXN1
bHQ6OkZhaWx1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAppbmRleCAxNzZiNzdiNGQ5NGUu
LjI0N2RjNzc1NDcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC0xOTksNiArMTk5
LDcgQEAgYm9vbCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6Omhhc0Vub3VnaEZyYW1lcyhVSW50MzIg
bnVtYmVyT2ZGcmFtZXMpIGNvbnN0CiBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJl
bmRlcihkb3VibGUgc2FtcGxlVGltZSwgdWludDY0X3QgaG9zdFRpbWUsIFVJbnQzMiBudW1iZXJP
ZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpCiB7CiAgICAgQVNTRVJUKCFpc01haW5U
aHJlYWQoKSk7CisgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlIGZvcmJp
ZE1hbGxvY1VzZTsKIAogICAgIGlmICghaGFzRW5vdWdoRnJhbWVzKG51bWJlck9mRnJhbWVzKSkK
ICAgICAgICAgcmV0dXJuIG5vRXJyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3Bw
CmluZGV4IDAxOWVjYzFlNzRmZC4uYTZhODgyYTFlOWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuY3BwCkBAIC03OCw2ICs3OCw3IEBAIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5OjpzdGFydFJlbmRlcmluZ1RocmVhZCgpCiAgICAgQVNTRVJUKCFtX3JlbmRlclRo
cmVhZCk7CiAKICAgICBhdXRvIG9mZlRocmVhZFJlbmRlcmluZyA9IFt0aGlzXSgpIG11dGFibGUg
eworICAgICAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUgZm9yYmlkTWFs
bG9jVXNlOwogICAgICAgICBkbyB7CiAgICAgICAgICAgICBtX3JlbmRlclNlbWFwaG9yZS53YWl0
KCk7CiAgICAgICAgICAgICBpZiAobV9zaG91bGRTdG9wVGhyZWFkKQo=
</data>
<flag name="commit-queue"
          id="442615"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423285</attachid>
            <date>2021-03-15 19:30:49 -0700</date>
            <delta_ts>2021-03-17 16:49:47 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>WebAudio_CannotMalloc_Assertions.patch</filename>
            <type>text/plain</type>
            <size>7387</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvU291cmNlL1dURi93
dGYvRmFzdE1hbGxvYy5jcHAKaW5kZXggYzIyOGQzYjJhMjhjLi5jOGNhZGQyMzZlZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0Zhc3RNYWxsb2MuY3BwCkBAIC01Myw2ICs1MywyMSBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAor
I2lmIEFTU0VSVF9FTkFCTEVECit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQ7CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29w
ZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkKK3sKKyAgICArK2ZvcmJp
ZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit9CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJl
YWRTY29wZTo6fkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAg
QVNTRVJUKGZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOworICAgIC0tZm9yYmlkTWFsbG9jVXNl
U2NvcGVDb3VudDsKK30KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTkRFQlVHKQogbmFtZXNwYWNl
IHsKIC8vIFdlIGRvIG5vdCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSBo
ZXJlIGR1ZSB0byB0aGUgZWRnZSBjYXNlIGluIFZDKysuCkBAIC0xODQsMTIgKzE5OSwxNCBAQCB2
b2lkIGZhc3RBbGlnbmVkRnJlZSh2b2lkKiBwKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFz
dE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAg
IEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCk7CiAgICAgcmV0dXJuIG1hbGxvYyhu
KTsKIH0KIAogdm9pZCogZmFzdE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAgQVNTRVJUX0lTX1dJ
VEhJTl9MSU1JVChuKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOwog
ICAgIHZvaWQqIHJlc3VsdCA9IG1hbGxvYyhuKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
Q1JBU0goKTsKQEAgLTIwMCwxMiArMjE3LDE0IEBAIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90IG4p
CiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0Q2FsbG9jKHNpemVfdCBuX2VsZW1lbnRzLCBz
aXplX3QgZWxlbWVudF9zaXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChuX2VsZW1l
bnRzICogZWxlbWVudF9zaXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291
bnQpOwogICAgIHJldHVybiBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKIH0KIAog
dm9pZCogZmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkK
IHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG5fZWxlbWVudHMgKiBlbGVtZW50X3NpemUp
OworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCk7CiAgICAgdm9pZCogcmVz
dWx0ID0gY2FsbG9jKG5fZWxlbWVudHMsIGVsZW1lbnRfc2l6ZSk7CiAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgIENSQVNIKCk7CkBAIC0yMjEsNiArMjQwLDcgQEAgdm9pZCBmYXN0RnJlZSh2b2lk
KiBwKQogdm9pZCogZmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7CiAgICAgQVNTRVJU
X0lTX1dJVEhJTl9MSU1JVChuKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291
bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IHJlYWxsb2MocCwgbik7CiAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgIENSQVNIKCk7CkBAIC0yMzAsNiArMjUwLDcgQEAgdm9pZCogZmFzdFJlYWxsb2Mo
dm9pZCogcCwgc2l6ZV90IG4pCiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2
b2lkKiBwLCBzaXplX3QgbikKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobik7CisgICAg
QVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50KTsKICAgICByZXR1cm4gcmVhbGxvYyhw
LCBuKTsKIH0KIApAQCAtNDc4LDYgKzQ5OSw3IEBAIGJvb2wgaXNGYXN0TWFsbG9jRW5hYmxlZCgp
CiB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19XSVRISU5f
TElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50KTsKICAg
ICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjphcGk6Om1hbGxvYyhzaXplKTsKICNpZiBFTkFCTEUo
TUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYg
KCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01MDAsNiAr
NTIyLDcgQEAgdm9pZCogZmFzdENhbGxvYyhzaXplX3QgbnVtRWxlbWVudHMsIHNpemVfdCBlbGVt
ZW50U2l6ZSkKIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIG9iamVjdCwgc2l6ZV90IHNpemUpCiB7
CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChzaXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6cmVh
bGxvYyhvYmplY3QsIHNpemUpOwogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pICYm
IFRSQUNLX01BTExPQ19DQUxMU1RBQ0sKICAgICBpZiAoIUF2b2lkUmVjb3JkaW5nU2NvcGU6OmF2
b2lkUmVjb3JkaW5nQ291bnQoKSkKQEAgLTUzMyw2ICs1NTYsNyBAQCBzaXplX3QgZmFzdE1hbGxv
Y0dvb2RTaXplKHNpemVfdCBzaXplKQogdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFs
aWdubWVudCwgc2l6ZV90IHNpemUpCiB7CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChzaXpl
KTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJl
c3VsdCA9IGJtYWxsb2M6OmFwaTo6bWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFC
TEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAg
aWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NDQs
NiArNTY4LDcgQEAgdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6
ZV90IHNpemUpCiB2b2lkKiB0cnlGYXN0QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxpZ25tZW50LCBz
aXplX3Qgc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQoc2l6ZSk7CisgICAgQVNT
RVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBibWFs
bG9jOjphcGk6OnRyeU1lbWFsaWduKGFsaWdubWVudCwgc2l6ZSk7CiAjaWYgRU5BQkxFKE1BTExP
Q19IRUFQX0JSRUFLRE9XTikgJiYgVFJBQ0tfTUFMTE9DX0NBTExTVEFDSwogICAgIGlmICghQXZv
aWRSZWNvcmRpbmdTY29wZTo6YXZvaWRSZWNvcmRpbmdDb3VudCgpKQpAQCAtNTYwLDYgKzU4NSw3
IEBAIHZvaWQgZmFzdEFsaWduZWRGcmVlKHZvaWQqIHApCiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0
cnlGYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChz
aXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOwogICAgIHJldHVy
biBibWFsbG9jOjphcGk6OnRyeU1hbGxvYyhzaXplKTsKIH0KIApAQCAtNTc2LDYgKzYwMiw3IEBA
IFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRzLCBz
aXplX3QgZWxlbWVudFNpemUpCiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2
b2lkKiBvYmplY3QsIHNpemVfdCBuZXdTaXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1J
VChuZXdTaXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOwogICAg
IHJldHVybiBibWFsbG9jOjphcGk6OnRyeVJlYWxsb2Mob2JqZWN0LCBuZXdTaXplKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oIGIvU291cmNlL1dURi93dGYv
RmFzdE1hbGxvYy5oCmluZGV4IGQ2ZmUzZWE1N2VmNy4uMDQ5YTBlNzU1OGM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKKysrIGIvU291cmNlL1dURi93dGYvRmFzdE1h
bGxvYy5oCkBAIC0xMjEsNiArMTIxLDIyIEBAIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGZhc3RF
bmFibGVNaW5pTW9kZSgpOwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBmYXN0RGlzYWJsZVNj
YXZlbmdlcigpOwogCitjbGFzcyBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUg
eworcHVibGljOgorI2lmIEFTU0VSVF9FTkFCTEVECisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCk7CisjZWxzZQorICAg
IEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpID0gZGVmYXVsdDsKKyAgICB+
Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkgeyB9CisjZW5kaWYKKworICAg
IEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZShjb25zdCBGb3JiaWRNYWxsb2NV
c2VGb3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9IGRlbGV0ZTsKKyAgICBGb3JiaWRNYWxsb2NVc2VG
b3JDdXJyZW50VGhyZWFkU2NvcGUoRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3Bl
JiYpID0gZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYg
b3BlcmF0b3I9KGNvbnN0IEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYpID0g
ZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYgb3BlcmF0
b3I9KEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYmKSA9IGRlbGV0ZTsKK307
CisKIHN0cnVjdCBGYXN0TWFsbG9jU3RhdGlzdGljcyB7CiAgICAgc2l6ZV90IHJlc2VydmVkVk1C
eXRlczsKICAgICBzaXplX3QgY29tbWl0dGVkVk1CeXRlczsKQEAgLTMwMiw2ICszMTgsNyBAQCB1
c2luZyBXVEY6OmZhc3RTZXRNYXhTaW5nbGVBbGxvY2F0aW9uU2l6ZTsKIHVzaW5nIFdURjo6RmFz
dEFsbG9jYXRvcjsKIHVzaW5nIFdURjo6RmFzdE1hbGxvYzsKIHVzaW5nIFdURjo6RmFzdEZyZWU7
Cit1c2luZyBXVEY6OkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTsKIHVzaW5n
IFdURjo6aXNGYXN0TWFsbG9jRW5hYmxlZDsKIHVzaW5nIFdURjo6ZmFzdENhbGxvYzsKIHVzaW5n
IFdURjo6ZmFzdEZyZWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggZjQxZmI4
MDJkYWRjLi5kNjU3ZTVkNzIzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAg
LTEzNSw2ICsxMzUsNyBAQCBhdXRvIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6b2ZmbGlu
ZVJlbmRlcigpIC0+IE9mZmxpbmVSZW5kZXJSZXN1bHQKIHsKICAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKICAgICBBU1NFUlQobV9yZW5kZXJCdXMuZ2V0KCkpOworICAgIEZvcmJpZE1hbGxv
Y1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSBmb3JiaWRNYWxsb2NVc2U7CiAKICAgICBpZiAoIW1f
cmVuZGVyQnVzLmdldCgpKQogICAgICAgICByZXR1cm4gT2ZmbGluZVJlbmRlclJlc3VsdDo6RmFp
bHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDE3NmI3N2I0ZDk0ZS4uMjQ3ZGM3
NzU0NzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTE5OSw2ICsxOTksNyBAQCBi
b29sIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6aGFzRW5vdWdoRnJhbWVzKFVJbnQzMiBudW1iZXJP
ZkZyYW1lcykgY29uc3QKIE9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKGRv
dWJsZSBzYW1wbGVUaW1lLCB1aW50NjRfdCBob3N0VGltZSwgVUludDMyIG51bWJlck9mRnJhbWVz
LCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUgZm9yYmlkTWFsbG9j
VXNlOwogCiAgICAgaWYgKCFoYXNFbm91Z2hGcmFtZXMobnVtYmVyT2ZGcmFtZXMpKQogICAgICAg
ICByZXR1cm4gbm9FcnI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKaW5kZXgg
MzZjNTI1OTRjYzlkLi5iNmZmNDY2NTYyY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5jcHAKQEAgLTc4LDYgKzc4LDcgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHk6OnN0YXJ0UmVuZGVyaW5nVGhyZWFkKCkKICAgICBBU1NFUlQoIW1fcmVuZGVyVGhyZWFkKTsK
IAogICAgIGF1dG8gb2ZmVGhyZWFkUmVuZGVyaW5nID0gW3RoaXNdKCkgbXV0YWJsZSB7CisgICAg
ICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSBmb3JiaWRNYWxsb2NVc2U7
CiAgICAgICAgIGRvIHsKICAgICAgICAgICAgIG1fcmVuZGVyU2VtYXBob3JlLndhaXQoKTsKICAg
ICAgICAgICAgIGlmIChtX3Nob3VsZFN0b3BUaHJlYWQpCg==
</data>
<flag name="commit-queue"
          id="442657"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423540</attachid>
            <date>2021-03-17 16:49:47 -0700</date>
            <delta_ts>2021-03-18 11:54:45 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>WebAudio_CannotMalloc_Assertions.patch</filename>
            <type>text/plain</type>
            <size>10427</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvU291cmNlL1dURi93
dGYvRmFzdE1hbGxvYy5jcHAKaW5kZXggNjAzYzYzODlhNTEwLi5hZmMxNmU0MjE1YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0Zhc3RNYWxsb2MuY3BwCkBAIC01Myw2ICs1MywzMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAor
I2lmIEFTU0VSVF9FTkFCTEVECit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQ7Cit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGRpc2FibGVN
YWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQ7CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkKK3sKKyAg
ICArK2ZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit9CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1
cnJlbnRUaHJlYWRTY29wZTo6fkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgp
Cit7CisgICAgQVNTRVJUKGZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOworICAgIC0tZm9yYmlk
TWFsbG9jVXNlU2NvcGVDb3VudDsKK30KKworRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1
cnJlbnRUaHJlYWRTY29wZTo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJl
YWRTY29wZSgpCit7CisgICAgKytkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50Owor
fQorCitEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlz
YWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNT
RVJUKGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOworICAgIC0tZGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudDsKK30KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTkRF
QlVHKQogbmFtZXNwYWNlIHsKIC8vIFdlIGRvIG5vdCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxz
aXplX3Q+OjptYXgoKSBoZXJlIGR1ZSB0byB0aGUgZWRnZSBjYXNlIGluIFZDKysuCkBAIC0xOTQs
MTIgKzIyMSwxNCBAQCB2b2lkIGZhc3RBbGlnbmVkRnJlZSh2b2lkKiBwKQogVHJ5TWFsbG9jUmV0
dXJuVmFsdWUgdHJ5RmFzdE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAgRkFJTF9JRl9FWENFRURT
X0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gbWFsbG9jKG4pOwog
fQogCiB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKSAKIHsKICAgICBBU1NFUlRfSVNfV0lUSElO
X0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBtYWxs
b2Mobik7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIENSQVNIKCk7CkBAIC0yMTAsMTIgKzIz
OSwxNCBAQCB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUg
dHJ5RmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsK
ICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobl9lbGVtZW50cyAqIGVsZW1lbnRfc2l6ZSk7Cisg
ICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0
cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVu
dF9zaXplKTsKIH0KIAogdm9pZCogZmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90
IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG5fZWxlbWVudHMg
KiBlbGVtZW50X3NpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8
fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQg
PSBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAg
ICAgICAgQ1JBU0goKTsKQEAgLTIzMSw2ICsyNjIsNyBAQCB2b2lkIGZhc3RGcmVlKHZvaWQqIHAp
CiB2b2lkKiBmYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3QgbikKIHsKICAgICBBU1NFUlRfSVNf
V0lUSElOX0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8
fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQg
PSByZWFsbG9jKHAsIG4pOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICBDUkFTSCgpOwpAQCAt
MjQwLDYgKzI3Miw3IEBAIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogVHJ5
TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7CiAg
ICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNl
U2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICBy
ZXR1cm4gcmVhbGxvYyhwLCBuKTsKIH0KIApAQCAtNDg4LDYgKzUyMSw3IEBAIGJvb2wgaXNGYXN0
TWFsbG9jRW5hYmxlZCgpCiB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEFT
U0VSVF9JU19XSVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VT
Y29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZv
aWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6bWFsbG9jKHNpemUpOwogI2lmIEVOQUJMRShNQUxM
T0NfSEVBUF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19DQUxMU1RBQ0sKICAgICBpZiAoIUF2
b2lkUmVjb3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291bnQoKSkKQEAgLTUxMCw2ICs1NDQs
NyBAQCB2b2lkKiBmYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRT
aXplKQogdm9pZCogZmFzdFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSkKIHsKICAg
ICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9j
VXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAg
ICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjphcGk6OnJlYWxsb2Mob2JqZWN0LCBzaXplKTsKICNp
ZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNL
CiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBA
IC01NDMsNiArNTc4LDcgQEAgc2l6ZV90IGZhc3RNYWxsb2NHb29kU2l6ZShzaXplX3Qgc2l6ZSkK
IHZvaWQqIGZhc3RBbGlnbmVkTWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQog
ewogICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRN
YWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQp
OwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6bWVtYWxpZ24oYWxpZ25tZW50LCBz
aXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0Nf
Q0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0Nv
dW50KCkpCkBAIC01NTQsNiArNTkwLDcgQEAgdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90
IGFsaWdubWVudCwgc2l6ZV90IHNpemUpCiB2b2lkKiB0cnlGYXN0QWxpZ25lZE1hbGxvYyhzaXpl
X3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQo
c2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVN
YWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6
OmFwaTo6dHJ5TWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hF
QVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJl
Y29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NzAsNiArNjA3LDcgQEAg
dm9pZCBmYXN0QWxpZ25lZEZyZWUodm9pZCogcCkKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZh
c3RNYWxsb2Moc2l6ZV90IHNpemUpCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNpemUp
OworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9j
UmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gYm1hbGxvYzo6YXBpOjp0cnlNYWxs
b2Moc2l6ZSk7CiB9CiAKQEAgLTU4Niw2ICs2MjQsNyBAQCBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0
cnlGYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogVHJ5
TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3QgbmV3
U2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobmV3U2l6ZSk7CisgICAgQVNTRVJU
KCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNj
b3BlQ291bnQpOwogICAgIHJldHVybiBibWFsbG9jOjphcGk6OnRyeVJlYWxsb2Mob2JqZWN0LCBu
ZXdTaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oIGIv
U291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oCmluZGV4IDlhNTAwYTAxYzczNC4uMDI0ZjFiOTFj
YjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKKysrIGIvU291cmNl
L1dURi93dGYvRmFzdE1hbGxvYy5oCkBAIC0xMjIsNiArMTIyLDM4IEBAIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGZhc3RFbmFibGVNaW5pTW9kZSgpOwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBmYXN0RGlzYWJsZVNjYXZlbmdlcigpOwogCitjbGFzcyBGb3JiaWRNYWxsb2NVc2VGb3JDdXJy
ZW50VGhyZWFkU2NvcGUgeworcHVibGljOgorI2lmIEFTU0VSVF9FTkFCTEVECisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpOworICAg
IFdURl9FWFBPUlRfUFJJVkFURSB+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3Bl
KCk7CisjZWxzZQorICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpID0g
ZGVmYXVsdDsKKyAgICB+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkgeyB9
CisjZW5kaWYKKworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZShjb25z
dCBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9IGRlbGV0ZTsKKyAgICBG
b3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoRm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlJiYpID0gZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJl
bnRUaHJlYWRTY29wZSYgb3BlcmF0b3I9KGNvbnN0IEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJl
YWRTY29wZSYgb3BlcmF0b3I9KEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYm
KSA9IGRlbGV0ZTsKK307CisKK2NsYXNzIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJy
ZW50VGhyZWFkU2NvcGUgeworcHVibGljOgorI2lmIEFTU0VSVF9FTkFCTEVECisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgfkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUoKTsKKyNlbHNlCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0
aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpID0gZGVmYXVsdDsKKyAgICB+RGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpIHsgfQorI2VuZGlmCisKKyAgICBE
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKGNvbnN0IERpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9IGRlbGV0ZTsKKyAg
ICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKERpc2FibGVN
YWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmJikgPSBkZWxldGU7CisgICAg
RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYgb3BlcmF0b3I9
KGNvbnN0IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9
IGRlbGV0ZTsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNj
b3BlJiBvcGVyYXRvcj0oRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRT
Y29wZSYmKSA9IGRlbGV0ZTsKK307CisKIHN0cnVjdCBGYXN0TWFsbG9jU3RhdGlzdGljcyB7CiAg
ICAgc2l6ZV90IHJlc2VydmVkVk1CeXRlczsKICAgICBzaXplX3QgY29tbWl0dGVkVk1CeXRlczsK
QEAgLTMwMCw5ICszMzIsMTEgQEAgc3RydWN0IEZhc3RGcmVlPFRbXT4gewogdXNpbmcgV1RGOjpm
YXN0U2V0TWF4U2luZ2xlQWxsb2NhdGlvblNpemU7CiAjZW5kaWYKIAordXNpbmcgV1RGOjpEaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOwogdXNpbmcgV1RGOjpG
YXN0QWxsb2NhdG9yOwogdXNpbmcgV1RGOjpGYXN0TWFsbG9jOwogdXNpbmcgV1RGOjpGYXN0RnJl
ZTsKK3VzaW5nIFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlOwogdXNp
bmcgV1RGOjppc0Zhc3RNYWxsb2NFbmFibGVkOwogdXNpbmcgV1RGOjpmYXN0Q2FsbG9jOwogdXNp
bmcgV1RGOjpmYXN0RnJlZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGVJbnB1dC5jcHAKaW5kZXggODkyMGQ5MTZiMTM0Li5hZTlmZWYyOGEyNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQu
Y3BwCkBAIC0xMzQsNyArMTM0LDExIEBAIHZvaWQgQXVkaW9Ob2RlSW5wdXQ6OnVwZGF0ZUludGVy
bmFsQnVzKCkKICAgICBpZiAobnVtYmVyT2ZJbnB1dENoYW5uZWxzID09IG1faW50ZXJuYWxTdW1t
aW5nQnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faW50
ZXJuYWxTdW1taW5nQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZklucHV0Q2hhbm5lbHMs
IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgeworICAgICAgICAvLyBG
SVhNRTogVGhpcyBkb2VzIGEgaGVhcCBhbGxvY2F0aW9uIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisg
ICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlz
YWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKyAgICAgICAgbV9pbnRlcm5hbFN1bW1pbmdCdXMgPSBB
dWRpb0J1czo6Y3JlYXRlKG51bWJlck9mSW5wdXRDaGFubmVscywgQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplKTsKKyAgICB9CiB9CiAKIHVuc2lnbmVkIEF1ZGlvTm9kZUlucHV0Ojpu
dW1iZXJPZkNoYW5uZWxzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcAppbmRleCBiYTNiYzkxOWZhYWIuLjEzYTZjYmU0
NTFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGVPdXRwdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9O
b2RlT3V0cHV0LmNwcApAQCAtNjgsNyArNjgsMTEgQEAgdm9pZCBBdWRpb05vZGVPdXRwdXQ6OnVw
ZGF0ZUludGVybmFsQnVzKCkKICAgICBpZiAobnVtYmVyT2ZDaGFubmVscygpID09IG1faW50ZXJu
YWxCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pbnRl
cm5hbEJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscygpLCBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMg
ZG9lcyBhIGhlYXAgYWxsb2NhdGlvbiBvbiB0aGUgYXVkaW8gdGhyZWFkLgorICAgICAgICBEaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NS
ZXN0cmljdGlvbnM7CisgICAgICAgIG1faW50ZXJuYWxCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51
bWJlck9mQ2hhbm5lbHMoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKKyAg
ICB9CiB9CiAKIHZvaWQgQXVkaW9Ob2RlT3V0cHV0Ojp1cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggZjQxZmI4MDJkYWRjLi5kNjU3ZTVkNzIz
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTEzNSw2ICsxMzUsNyBAQCBh
dXRvIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6b2ZmbGluZVJlbmRlcigpIC0+IE9mZmxp
bmVSZW5kZXJSZXN1bHQKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NF
UlQobV9yZW5kZXJCdXMuZ2V0KCkpOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJl
YWRTY29wZSBmb3JiaWRNYWxsb2NVc2U7CiAKICAgICBpZiAoIW1fcmVuZGVyQnVzLmdldCgpKQog
ICAgICAgICByZXR1cm4gT2ZmbGluZVJlbmRlclJlc3VsdDo6RmFpbHVyZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2Nv
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0
aW9uQ29jb2EuY3BwCmluZGV4IGJjZGU0N2I4OTYwNC4uNTRmYzRlNzdmNGZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVz
dGluYXRpb25Db2NvYS5jcHAKQEAgLTIyNSw5ICsyMjUsMTAgQEAgT1NTdGF0dXMgQXVkaW9EZXN0
aW5hdGlvbkNvY29hOjpyZW5kZXIoZG91YmxlIHNhbXBsZVRpbWUsIHVpbnQ2NF90IGhvc3RUaW1l
LCBVSW4KICAgICBpZiAoIWxvY2tlcikKICAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgaWYgKCFt
X2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCisgICAgaWYgKCFtX2Rpc3BhdGNoVG9SZW5kZXJUaHJl
YWQpIHsKKyAgICAgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlIGZvcmJp
ZE1hbGxvY1VzZTsKICAgICAgICAgcmVuZGVyT25SZW5kZXJpbmdUaGVhZElmUGxheWluZyhmcmFt
ZXNUb1JlbmRlcik7Ci0gICAgZWxzZSB7CisgICAgfSBlbHNlIHsKICAgICAgICAgbV9kaXNwYXRj
aFRvUmVuZGVyVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lc1Rv
UmVuZGVyXSgpIG11dGFibGUgewogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+cmVuZGVyT25S
ZW5kZXJpbmdUaGVhZElmUGxheWluZyhmcmFtZXNUb1JlbmRlcik7CiAgICAgICAgIH0pOwo=
</data>
<flag name="commit-queue"
          id="442958"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423630</attachid>
            <date>2021-03-18 11:54:45 -0700</date>
            <delta_ts>2021-03-18 13:57:02 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>WebAudio_CannotMalloc_Assertions.patch</filename>
            <type>text/plain</type>
            <size>11120</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvU291cmNlL1dURi93
dGYvRmFzdE1hbGxvYy5jcHAKaW5kZXggNjAzYzYzODlhNTEwLi5hZmMxNmU0MjE1YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0Zhc3RNYWxsb2MuY3BwCkBAIC01Myw2ICs1MywzMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAor
I2lmIEFTU0VSVF9FTkFCTEVECit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQ7Cit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGRpc2FibGVN
YWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQ7CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkKK3sKKyAg
ICArK2ZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit9CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1
cnJlbnRUaHJlYWRTY29wZTo6fkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgp
Cit7CisgICAgQVNTRVJUKGZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOworICAgIC0tZm9yYmlk
TWFsbG9jVXNlU2NvcGVDb3VudDsKK30KKworRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1
cnJlbnRUaHJlYWRTY29wZTo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJl
YWRTY29wZSgpCit7CisgICAgKytkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50Owor
fQorCitEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlz
YWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNT
RVJUKGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOworICAgIC0tZGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudDsKK30KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTkRF
QlVHKQogbmFtZXNwYWNlIHsKIC8vIFdlIGRvIG5vdCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxz
aXplX3Q+OjptYXgoKSBoZXJlIGR1ZSB0byB0aGUgZWRnZSBjYXNlIGluIFZDKysuCkBAIC0xOTQs
MTIgKzIyMSwxNCBAQCB2b2lkIGZhc3RBbGlnbmVkRnJlZSh2b2lkKiBwKQogVHJ5TWFsbG9jUmV0
dXJuVmFsdWUgdHJ5RmFzdE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAgRkFJTF9JRl9FWENFRURT
X0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gbWFsbG9jKG4pOwog
fQogCiB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKSAKIHsKICAgICBBU1NFUlRfSVNfV0lUSElO
X0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBtYWxs
b2Mobik7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIENSQVNIKCk7CkBAIC0yMTAsMTIgKzIz
OSwxNCBAQCB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUg
dHJ5RmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsK
ICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobl9lbGVtZW50cyAqIGVsZW1lbnRfc2l6ZSk7Cisg
ICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0
cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVu
dF9zaXplKTsKIH0KIAogdm9pZCogZmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90
IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG5fZWxlbWVudHMg
KiBlbGVtZW50X3NpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8
fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQg
PSBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAg
ICAgICAgQ1JBU0goKTsKQEAgLTIzMSw2ICsyNjIsNyBAQCB2b2lkIGZhc3RGcmVlKHZvaWQqIHAp
CiB2b2lkKiBmYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3QgbikKIHsKICAgICBBU1NFUlRfSVNf
V0lUSElOX0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8
fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQg
PSByZWFsbG9jKHAsIG4pOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICBDUkFTSCgpOwpAQCAt
MjQwLDYgKzI3Miw3IEBAIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogVHJ5
TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7CiAg
ICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNl
U2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICBy
ZXR1cm4gcmVhbGxvYyhwLCBuKTsKIH0KIApAQCAtNDg4LDYgKzUyMSw3IEBAIGJvb2wgaXNGYXN0
TWFsbG9jRW5hYmxlZCgpCiB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEFT
U0VSVF9JU19XSVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VT
Y29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZv
aWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6bWFsbG9jKHNpemUpOwogI2lmIEVOQUJMRShNQUxM
T0NfSEVBUF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19DQUxMU1RBQ0sKICAgICBpZiAoIUF2
b2lkUmVjb3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291bnQoKSkKQEAgLTUxMCw2ICs1NDQs
NyBAQCB2b2lkKiBmYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRT
aXplKQogdm9pZCogZmFzdFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSkKIHsKICAg
ICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9j
VXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAg
ICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjphcGk6OnJlYWxsb2Mob2JqZWN0LCBzaXplKTsKICNp
ZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNL
CiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBA
IC01NDMsNiArNTc4LDcgQEAgc2l6ZV90IGZhc3RNYWxsb2NHb29kU2l6ZShzaXplX3Qgc2l6ZSkK
IHZvaWQqIGZhc3RBbGlnbmVkTWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQog
ewogICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRN
YWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQp
OwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6bWVtYWxpZ24oYWxpZ25tZW50LCBz
aXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0Nf
Q0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0Nv
dW50KCkpCkBAIC01NTQsNiArNTkwLDcgQEAgdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90
IGFsaWdubWVudCwgc2l6ZV90IHNpemUpCiB2b2lkKiB0cnlGYXN0QWxpZ25lZE1hbGxvYyhzaXpl
X3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQo
c2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVN
YWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6
OmFwaTo6dHJ5TWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hF
QVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJl
Y29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NzAsNiArNjA3LDcgQEAg
dm9pZCBmYXN0QWxpZ25lZEZyZWUodm9pZCogcCkKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZh
c3RNYWxsb2Moc2l6ZV90IHNpemUpCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNpemUp
OworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9j
UmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gYm1hbGxvYzo6YXBpOjp0cnlNYWxs
b2Moc2l6ZSk7CiB9CiAKQEAgLTU4Niw2ICs2MjQsNyBAQCBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0
cnlGYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogVHJ5
TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3QgbmV3
U2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobmV3U2l6ZSk7CisgICAgQVNTRVJU
KCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNj
b3BlQ291bnQpOwogICAgIHJldHVybiBibWFsbG9jOjphcGk6OnRyeVJlYWxsb2Mob2JqZWN0LCBu
ZXdTaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oIGIv
U291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oCmluZGV4IDlhNTAwYTAxYzczNC4uMDI0ZjFiOTFj
YjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKKysrIGIvU291cmNl
L1dURi93dGYvRmFzdE1hbGxvYy5oCkBAIC0xMjIsNiArMTIyLDM4IEBAIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGZhc3RFbmFibGVNaW5pTW9kZSgpOwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBmYXN0RGlzYWJsZVNjYXZlbmdlcigpOwogCitjbGFzcyBGb3JiaWRNYWxsb2NVc2VGb3JDdXJy
ZW50VGhyZWFkU2NvcGUgeworcHVibGljOgorI2lmIEFTU0VSVF9FTkFCTEVECisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpOworICAg
IFdURl9FWFBPUlRfUFJJVkFURSB+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3Bl
KCk7CisjZWxzZQorICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpID0g
ZGVmYXVsdDsKKyAgICB+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkgeyB9
CisjZW5kaWYKKworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZShjb25z
dCBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9IGRlbGV0ZTsKKyAgICBG
b3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoRm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlJiYpID0gZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJl
bnRUaHJlYWRTY29wZSYgb3BlcmF0b3I9KGNvbnN0IEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJl
YWRTY29wZSYgb3BlcmF0b3I9KEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYm
KSA9IGRlbGV0ZTsKK307CisKK2NsYXNzIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJy
ZW50VGhyZWFkU2NvcGUgeworcHVibGljOgorI2lmIEFTU0VSVF9FTkFCTEVECisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgfkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUoKTsKKyNlbHNlCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0
aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpID0gZGVmYXVsdDsKKyAgICB+RGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpIHsgfQorI2VuZGlmCisKKyAgICBE
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKGNvbnN0IERpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9IGRlbGV0ZTsKKyAg
ICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKERpc2FibGVN
YWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmJikgPSBkZWxldGU7CisgICAg
RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYgb3BlcmF0b3I9
KGNvbnN0IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9
IGRlbGV0ZTsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNj
b3BlJiBvcGVyYXRvcj0oRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRT
Y29wZSYmKSA9IGRlbGV0ZTsKK307CisKIHN0cnVjdCBGYXN0TWFsbG9jU3RhdGlzdGljcyB7CiAg
ICAgc2l6ZV90IHJlc2VydmVkVk1CeXRlczsKICAgICBzaXplX3QgY29tbWl0dGVkVk1CeXRlczsK
QEAgLTMwMCw5ICszMzIsMTEgQEAgc3RydWN0IEZhc3RGcmVlPFRbXT4gewogdXNpbmcgV1RGOjpm
YXN0U2V0TWF4U2luZ2xlQWxsb2NhdGlvblNpemU7CiAjZW5kaWYKIAordXNpbmcgV1RGOjpEaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOwogdXNpbmcgV1RGOjpG
YXN0QWxsb2NhdG9yOwogdXNpbmcgV1RGOjpGYXN0TWFsbG9jOwogdXNpbmcgV1RGOjpGYXN0RnJl
ZTsKK3VzaW5nIFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlOwogdXNp
bmcgV1RGOjppc0Zhc3RNYWxsb2NFbmFibGVkOwogdXNpbmcgV1RGOjpmYXN0Q2FsbG9jOwogdXNp
bmcgV1RGOjpmYXN0RnJlZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggOTdjOTZkNmZlNWVlLi44N2U4
ZTMxYTgwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC04NiwyMCArODYsMjQgQEAgdm9pZCBBdWRp
b0Rlc3RpbmF0aW9uTm9kZTo6cmVuZGVyKEF1ZGlvQnVzKiwgQXVkaW9CdXMqIGRlc3RpbmF0aW9u
QnVzLCBzaXplX3QgbnUKICAgICBpZiAod29ya2xldEdsb2JhbFNjb3BlKQogICAgICAgICB3b3Jr
bGV0R2xvYmFsU2NvcGUtPmhhbmRsZVByZVJlbmRlclRhc2tzKCk7CiAKLSAgICAvLyBUaGlzIHdp
bGwgY2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGlu
IHR1cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAotICAgIC8vIGFsbCB0aGUgd2F5IGJh
Y2t3YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJpbmcgZ3JhcGguCi0gICAgQXVkaW9CdXMqIHJlbmRl
cmVkQnVzID0gaW5wdXQoMCktPnB1bGwoZGVzdGluYXRpb25CdXMsIG51bWJlck9mRnJhbWVzKTsK
LSAgICAKLSAgICBpZiAoIXJlbmRlcmVkQnVzKQotICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+emVy
bygpOwotICAgIGVsc2UgaWYgKHJlbmRlcmVkQnVzICE9IGRlc3RpbmF0aW9uQnVzKSB7Ci0gICAg
ICAgIC8vIGluLXBsYWNlIHByb2Nlc3Npbmcgd2FzIG5vdCBwb3NzaWJsZSAtIHNvIGNvcHkKLSAg
ICAgICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKCpyZW5kZXJlZEJ1cyk7CisgICAgeworICAg
ICAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUgZm9yYmlkTWFsbG9jVXNl
OworCisgICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB0aGUgbm9kZShzKSBjb25uZWN0ZWQgdG8g
dXMgdG8gcHJvY2Vzcywgd2hpY2ggaW4gdHVybiB3aWxsIHB1bGwgb24gdGhlaXIgaW5wdXQocyks
CisgICAgICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJpbmcg
Z3JhcGguCisgICAgICAgIEF1ZGlvQnVzKiByZW5kZXJlZEJ1cyA9IGlucHV0KDApLT5wdWxsKGRl
c3RpbmF0aW9uQnVzLCBudW1iZXJPZkZyYW1lcyk7CisKKyAgICAgICAgaWYgKCFyZW5kZXJlZEJ1
cykKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgICAgIGVsc2UgaWYg
KHJlbmRlcmVkQnVzICE9IGRlc3RpbmF0aW9uQnVzKSB7CisgICAgICAgICAgICAvLyBpbi1wbGFj
ZSBwcm9jZXNzaW5nIHdhcyBub3QgcG9zc2libGUgLSBzbyBjb3B5CisgICAgICAgICAgICBkZXN0
aW5hdGlvbkJ1cy0+Y29weUZyb20oKnJlbmRlcmVkQnVzKTsKKyAgICAgICAgfQorCisgICAgICAg
IC8vIFByb2Nlc3Mgbm9kZXMgd2hpY2ggbmVlZCBhIGxpdHRsZSBleHRyYSBoZWxwIGJlY2F1c2Ug
dGhleSBhcmUgbm90IGNvbm5lY3RlZCB0byBhbnl0aGluZywgYnV0IHN0aWxsIG5lZWQgdG8gcHJv
Y2Vzcy4KKyAgICAgICAgY29udGV4dCgpLnByb2Nlc3NBdXRvbWF0aWNQdWxsTm9kZXMobnVtYmVy
T2ZGcmFtZXMpOwogICAgIH0KIAotICAgIC8vIFByb2Nlc3Mgbm9kZXMgd2hpY2ggbmVlZCBhIGxp
dHRsZSBleHRyYSBoZWxwIGJlY2F1c2UgdGhleSBhcmUgbm90IGNvbm5lY3RlZCB0byBhbnl0aGlu
ZywgYnV0IHN0aWxsIG5lZWQgdG8gcHJvY2Vzcy4KLSAgICBjb250ZXh0KCkucHJvY2Vzc0F1dG9t
YXRpY1B1bGxOb2RlcyhudW1iZXJPZkZyYW1lcyk7Ci0KICAgICAvLyBMZXQgdGhlIGNvbnRleHQg
dGFrZSBjYXJlIG9mIGFueSBidXNpbmVzcyBhdCB0aGUgZW5kIG9mIGVhY2ggcmVuZGVyIHF1YW50
dW0uCiAgICAgY29udGV4dCgpLmhhbmRsZVBvc3RSZW5kZXJUYXNrcygpOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNz
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9j
ZXNzb3IuY3BwCmluZGV4IDhhNjgyMDVkNWY2Ny4uOTYyNzFkY2JmMzg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNz
b3IuY3BwCkBAIC0yNTEsNiArMjUxLDcgQEAgdm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1
aWxkSlNBcmd1bWVudHMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWMKIAogYm9v
bCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRp
b0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFz
aE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1
ZXNNYXAsIGJvb2wmIHRocmV3RXhjZXB0aW9uKQogeworICAgIERpc2FibGVNYWxsb2NSZXN0cmlj
dGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAg
ICBBU1NFUlQobV9wcm9jZXNzQ2FsbGJhY2spOwogICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpt
X3Byb2Nlc3NDYWxsYmFjay0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgQVNTRVJUKGdsb2JhbE9iamVj
dC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggYjQ4NDNjNDQx
ZjNjLi5mYmZkMWNhOWU5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApAQCAtMjEwLDYgKzIxMCw5IEBAIHZv
aWQgU2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQog
ICAgIC8vIG1fYnVmZmVyUmVhZFdyaXRlSW5kZXggd2lsbCB3cmFwIGJhY2sgYXJvdW5kIHRvIDAg
d2hlbiB0aGUgY3VycmVudCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgYXJlIGZ1bGwuCiAgICAg
Ly8gV2hlbiB0aGlzIGhhcHBlbnMsIGZpcmUgYW4gZXZlbnQgYW5kIHN3YXAgYnVmZmVycy4KICAg
ICBpZiAoIW1fYnVmZmVyUmVhZFdyaXRlSW5kZXgpIHsKKyAgICAgICAgLy8gRGlzcGF0Y2hpbmcg
YSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4K
KyAgICAgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBk
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOworCiAgICAgICAgIC8vIFJlZmVyZW5jZSBvdXJzZWxm
IHNvIHdlIGRvbid0IGFjY2lkZW50YWxseSBnZXQgZGVsZXRlZCBiZWZvcmUgZmlyZVByb2Nlc3NF
dmVudCgpIGdldHMgY2FsbGVkLgogICAgICAgICAvLyBXZSBvbmx5IHdhaXQgZm9yIHNjcmlwdCBj
b2RlIGV4ZWN1dGlvbiB3aGVuIHRoZSBjb250ZXh0IGlzIGFuIG9mZmxpbmUgb25lIGZvciBwZXJm
b3JtYW5jZSByZWFzb25zLgogICAgICAgICBpZiAoY29udGV4dCgpLmlzT2ZmbGluZUNvbnRleHQo
KSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423648</attachid>
            <date>2021-03-18 13:57:02 -0700</date>
            <delta_ts>2021-03-18 16:59:53 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>WebAudio_CannotMalloc_Assertions.patch</filename>
            <type>text/plain</type>
            <size>12767</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">Y29tbWl0IDI0YWJiMDU2MGEyZjg1YWQyZjhjMmE0YTk1ODMxMGVlOGMyOGEzZjAKQXV0aG9yOiBD
aHJpcyBEdW1leiA8Y2R1bWV6QGFwcGxlLmNvbT4KRGF0ZTogICBNb24gTWFyIDE1IDE1OjA4OjQ0
IDIwMjEgLTA3MDAKCiAgICBXZWJBdWRpb19DYW5ub3RNYWxsb2NfQXNzZXJ0aW9ucwoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvU291cmNlL1dURi93dGYvRmFz
dE1hbGxvYy5jcHAKaW5kZXggNjAzYzYzODlhNTEwLi5hZmMxNmU0MjE1YjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RN
YWxsb2MuY3BwCkBAIC01Myw2ICs1MywzMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmIEFT
U0VSVF9FTkFCTEVECit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGZvcmJpZE1hbGxvY1Vz
ZVNjb3BlQ291bnQ7Cit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGRpc2FibGVNYWxsb2NS
ZXN0cmljdGlvblNjb3BlQ291bnQ7CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRT
Y29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkKK3sKKyAgICArK2Zv
cmJpZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit9CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZTo6fkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7Cisg
ICAgQVNTRVJUKGZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOworICAgIC0tZm9yYmlkTWFsbG9j
VXNlU2NvcGVDb3VudDsKK30KKworRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRU
aHJlYWRTY29wZTo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZSgpCit7CisgICAgKytkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50OworfQorCitE
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNTRVJUKGRp
c2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOworICAgIC0tZGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uU2NvcGVDb3VudDsKK30KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTkRFQlVHKQog
bmFtZXNwYWNlIHsKIC8vIFdlIGRvIG5vdCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+
OjptYXgoKSBoZXJlIGR1ZSB0byB0aGUgZWRnZSBjYXNlIGluIFZDKysuCkBAIC0xOTQsMTIgKzIy
MSwxNCBAQCB2b2lkIGZhc3RBbGlnbmVkRnJlZSh2b2lkKiBwKQogVHJ5TWFsbG9jUmV0dXJuVmFs
dWUgdHJ5RmFzdE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlU
KG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gbWFsbG9jKG4pOwogfQogCiB2
b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKSAKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlU
KG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBtYWxsb2Mobik7
CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIENSQVNIKCk7CkBAIC0yMTAsMTIgKzIzOSwxNCBA
QCB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFz
dENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBG
QUlMX0lGX0VYQ0VFRFNfTElNSVQobl9lbGVtZW50cyAqIGVsZW1lbnRfc2l6ZSk7CisgICAgQVNT
RVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlv
blNjb3BlQ291bnQpOwogICAgIHJldHVybiBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXpl
KTsKIH0KIAogdm9pZCogZmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1l
bnRfc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG5fZWxlbWVudHMgKiBlbGVt
ZW50X3NpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBjYWxs
b2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
Q1JBU0goKTsKQEAgLTIzMSw2ICsyNjIsNyBAQCB2b2lkIGZhc3RGcmVlKHZvaWQqIHApCiB2b2lk
KiBmYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3QgbikKIHsKICAgICBBU1NFUlRfSVNfV0lUSElO
X0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSByZWFs
bG9jKHAsIG4pOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICBDUkFTSCgpOwpAQCAtMjQwLDYg
KzI3Miw3IEBAIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogVHJ5TWFsbG9j
UmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7CiAgICAgRkFJ
TF9JRl9FWENFRURTX0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVD
b3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4g
cmVhbGxvYyhwLCBuKTsKIH0KIApAQCAtNDg4LDYgKzUyMSw3IEBAIGJvb2wgaXNGYXN0TWFsbG9j
RW5hYmxlZCgpCiB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9J
U19XSVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNv
dW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJl
c3VsdCA9IGJtYWxsb2M6OmFwaTo6bWFsbG9jKHNpemUpOwogI2lmIEVOQUJMRShNQUxMT0NfSEVB
UF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19DQUxMU1RBQ0sKICAgICBpZiAoIUF2b2lkUmVj
b3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291bnQoKSkKQEAgLTUxMCw2ICs1NDQsNyBAQCB2
b2lkKiBmYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQog
dm9pZCogZmFzdFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NF
UlRfSVNfV0lUSElOX0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2Nv
cGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lk
KiByZXN1bHQgPSBibWFsbG9jOjphcGk6OnJlYWxsb2Mob2JqZWN0LCBzaXplKTsKICNpZiBFTkFC
TEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAg
aWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NDMs
NiArNTc4LDcgQEAgc2l6ZV90IGZhc3RNYWxsb2NHb29kU2l6ZShzaXplX3Qgc2l6ZSkKIHZvaWQq
IGZhc3RBbGlnbmVkTWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQogewogICAg
IEFTU0VSVF9JU19XSVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NV
c2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAg
IHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6bWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsK
ICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNU
QUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkp
CkBAIC01NTQsNiArNTkwLDcgQEAgdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFsaWdu
bWVudCwgc2l6ZV90IHNpemUpCiB2b2lkKiB0cnlGYXN0QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxp
Z25tZW50LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQoc2l6ZSk7
CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NS
ZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6
dHJ5TWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJF
QUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGlu
Z1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NzAsNiArNjA3LDcgQEAgdm9pZCBm
YXN0QWxpZ25lZEZyZWUodm9pZCogcCkKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxs
b2Moc2l6ZV90IHNpemUpCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNpemUpOworICAg
IEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gYm1hbGxvYzo6YXBpOjp0cnlNYWxsb2Moc2l6
ZSk7CiB9CiAKQEAgLTU4Niw2ICs2MjQsNyBAQCBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0
Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogVHJ5TWFsbG9j
UmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkK
IHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobmV3U2l6ZSk7CisgICAgQVNTRVJUKCFmb3Ji
aWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291
bnQpOwogICAgIHJldHVybiBibWFsbG9jOjphcGk6OnRyeVJlYWxsb2Mob2JqZWN0LCBuZXdTaXpl
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oIGIvU291cmNl
L1dURi93dGYvRmFzdE1hbGxvYy5oCmluZGV4IDlhNTAwYTAxYzczNC4uMDI0ZjFiOTFjYjlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKKysrIGIvU291cmNlL1dURi93
dGYvRmFzdE1hbGxvYy5oCkBAIC0xMjIsNiArMTIyLDM4IEBAIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGZhc3RFbmFibGVNaW5pTW9kZSgpOwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBmYXN0
RGlzYWJsZVNjYXZlbmdlcigpOwogCitjbGFzcyBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhy
ZWFkU2NvcGUgeworcHVibGljOgorI2lmIEFTU0VSVF9FTkFCTEVECisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpOworICAgIFdURl9F
WFBPUlRfUFJJVkFURSB+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCk7Cisj
ZWxzZQorICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpID0gZGVmYXVs
dDsKKyAgICB+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkgeyB9CisjZW5k
aWYKKworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZShjb25zdCBGb3Ji
aWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9IGRlbGV0ZTsKKyAgICBGb3JiaWRN
YWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRo
cmVhZFNjb3BlJiYpID0gZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJl
YWRTY29wZSYgb3BlcmF0b3I9KGNvbnN0IEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRT
Y29wZSYpID0gZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29w
ZSYgb3BlcmF0b3I9KEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYmKSA9IGRl
bGV0ZTsKK307CisKK2NsYXNzIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhy
ZWFkU2NvcGUgeworcHVibGljOgorI2lmIEFTU0VSVF9FTkFCTEVECisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoKTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgfkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJy
ZW50VGhyZWFkU2NvcGUoKTsKKyNlbHNlCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0Zv
ckN1cnJlbnRUaHJlYWRTY29wZSgpID0gZGVmYXVsdDsKKyAgICB+RGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpIHsgfQorI2VuZGlmCisKKyAgICBEaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKGNvbnN0IERpc2FibGVNYWxs
b2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9IGRlbGV0ZTsKKyAgICBEaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKERpc2FibGVNYWxsb2NS
ZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmJikgPSBkZWxldGU7CisgICAgRGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYgb3BlcmF0b3I9KGNvbnN0
IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9IGRlbGV0
ZTsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlJiBv
cGVyYXRvcj0oRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYm
KSA9IGRlbGV0ZTsKK307CisKIHN0cnVjdCBGYXN0TWFsbG9jU3RhdGlzdGljcyB7CiAgICAgc2l6
ZV90IHJlc2VydmVkVk1CeXRlczsKICAgICBzaXplX3QgY29tbWl0dGVkVk1CeXRlczsKQEAgLTMw
MCw5ICszMzIsMTEgQEAgc3RydWN0IEZhc3RGcmVlPFRbXT4gewogdXNpbmcgV1RGOjpmYXN0U2V0
TWF4U2luZ2xlQWxsb2NhdGlvblNpemU7CiAjZW5kaWYKIAordXNpbmcgV1RGOjpEaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOwogdXNpbmcgV1RGOjpGYXN0QWxs
b2NhdG9yOwogdXNpbmcgV1RGOjpGYXN0TWFsbG9jOwogdXNpbmcgV1RGOjpGYXN0RnJlZTsKK3Vz
aW5nIFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlOwogdXNpbmcgV1RG
Ojppc0Zhc3RNYWxsb2NFbmFibGVkOwogdXNpbmcgV1RGOjpmYXN0Q2FsbG9jOwogdXNpbmcgV1RG
OjpmYXN0RnJlZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggOTdjOTZkNmZlNWVlLi44N2U4ZTMxYTgw
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0
aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC04NiwyMCArODYsMjQgQEAgdm9pZCBBdWRpb0Rlc3Rp
bmF0aW9uTm9kZTo6cmVuZGVyKEF1ZGlvQnVzKiwgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBz
aXplX3QgbnUKICAgICBpZiAod29ya2xldEdsb2JhbFNjb3BlKQogICAgICAgICB3b3JrbGV0R2xv
YmFsU2NvcGUtPmhhbmRsZVByZVJlbmRlclRhc2tzKCk7CiAKLSAgICAvLyBUaGlzIHdpbGwgY2F1
c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGluIHR1cm4g
d2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAotICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3YXJk
cyB0aHJvdWdoIHRoZSByZW5kZXJpbmcgZ3JhcGguCi0gICAgQXVkaW9CdXMqIHJlbmRlcmVkQnVz
ID0gaW5wdXQoMCktPnB1bGwoZGVzdGluYXRpb25CdXMsIG51bWJlck9mRnJhbWVzKTsKLSAgICAK
LSAgICBpZiAoIXJlbmRlcmVkQnVzKQotICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOwot
ICAgIGVsc2UgaWYgKHJlbmRlcmVkQnVzICE9IGRlc3RpbmF0aW9uQnVzKSB7Ci0gICAgICAgIC8v
IGluLXBsYWNlIHByb2Nlc3Npbmcgd2FzIG5vdCBwb3NzaWJsZSAtIHNvIGNvcHkKLSAgICAgICAg
ZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKCpyZW5kZXJlZEJ1cyk7CisgICAgeworICAgICAgICBG
b3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUgZm9yYmlkTWFsbG9jVXNlOworCisg
ICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB0aGUgbm9kZShzKSBjb25uZWN0ZWQgdG8gdXMgdG8g
cHJvY2Vzcywgd2hpY2ggaW4gdHVybiB3aWxsIHB1bGwgb24gdGhlaXIgaW5wdXQocyksCisgICAg
ICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJpbmcgZ3JhcGgu
CisgICAgICAgIEF1ZGlvQnVzKiByZW5kZXJlZEJ1cyA9IGlucHV0KDApLT5wdWxsKGRlc3RpbmF0
aW9uQnVzLCBudW1iZXJPZkZyYW1lcyk7CisKKyAgICAgICAgaWYgKCFyZW5kZXJlZEJ1cykKKyAg
ICAgICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgICAgIGVsc2UgaWYgKHJlbmRl
cmVkQnVzICE9IGRlc3RpbmF0aW9uQnVzKSB7CisgICAgICAgICAgICAvLyBpbi1wbGFjZSBwcm9j
ZXNzaW5nIHdhcyBub3QgcG9zc2libGUgLSBzbyBjb3B5CisgICAgICAgICAgICBkZXN0aW5hdGlv
bkJ1cy0+Y29weUZyb20oKnJlbmRlcmVkQnVzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFBy
b2Nlc3Mgbm9kZXMgd2hpY2ggbmVlZCBhIGxpdHRsZSBleHRyYSBoZWxwIGJlY2F1c2UgdGhleSBh
cmUgbm90IGNvbm5lY3RlZCB0byBhbnl0aGluZywgYnV0IHN0aWxsIG5lZWQgdG8gcHJvY2Vzcy4K
KyAgICAgICAgY29udGV4dCgpLnByb2Nlc3NBdXRvbWF0aWNQdWxsTm9kZXMobnVtYmVyT2ZGcmFt
ZXMpOwogICAgIH0KIAotICAgIC8vIFByb2Nlc3Mgbm9kZXMgd2hpY2ggbmVlZCBhIGxpdHRsZSBl
eHRyYSBoZWxwIGJlY2F1c2UgdGhleSBhcmUgbm90IGNvbm5lY3RlZCB0byBhbnl0aGluZywgYnV0
IHN0aWxsIG5lZWQgdG8gcHJvY2Vzcy4KLSAgICBjb250ZXh0KCkucHJvY2Vzc0F1dG9tYXRpY1B1
bGxOb2RlcyhudW1iZXJPZkZyYW1lcyk7Ci0KICAgICAvLyBMZXQgdGhlIGNvbnRleHQgdGFrZSBj
YXJlIG9mIGFueSBidXNpbmVzcyBhdCB0aGUgZW5kIG9mIGVhY2ggcmVuZGVyIHF1YW50dW0uCiAg
ICAgY29udGV4dCgpLmhhbmRsZVBvc3RSZW5kZXJUYXNrcygpOwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuY3BwCmluZGV4IDYwNTQwNTA4OTFlOS4uMWY4N2Q4ODhjM2JjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNv
dXJjZU5vZGUuY3BwCkBAIC0xOTcsNiArMTk3LDggQEAgdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGU6OmZpbmlzaCgpCiAgICAgbV9wbGF5YmFja1N0YXRlID0gRklOSVNIRURfU1RBVEU7CiAg
ICAgY29udGV4dCgpLmRlY3JlbWVudEFjdGl2ZVNvdXJjZUNvdW50KCk7CiAKKyAgICAvLyBEaXNw
YXRjaGluZyBhIEZ1bmN0aW9uIHRvIHRoZSBtYWluIHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9j
YXRpb25zLgorICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgYXV0byByZWxlYXNl
ID0gbWFrZVNjb3BlRXhpdChbJl0gKCkgewogICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRv
TG9ja2VyIGxvY2tlcihjb250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggZDEwOWE2NTgxNmZiLi5jYjky
MDY0YTk3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmNwcApAQCAtMjgwLDYgKzI4MCw4IEBAIHZvaWQgQXVkaW9Xb3JrbGV0
Tm9kZTo6ZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3NvckVycm9yIGVycm9y
KQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCisgICAgLy8gRGlzcGF0Y2hpbmcg
YSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4K
KyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlcnJvcl0oKSBtdXRhYmxlIHsKICAgICAgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKICAgICAgICAgc3dpdGNoIChlcnJvcikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3Iu
Y3BwCmluZGV4IDhhNjgyMDVkNWY2Ny4uOTYyNzFkY2JmMzg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3Bw
CkBAIC0yNTEsNiArMjUxLDcgQEAgdm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNB
cmd1bWVudHMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWMKIAogYm9vbCBBdWRp
b1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+
JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxT
dHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAs
IGJvb2wmIHRocmV3RXhjZXB0aW9uKQogeworICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBBU1NF
UlQobV9wcm9jZXNzQ2FsbGJhY2spOwogICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX3Byb2Nl
c3NDYWxsYmFjay0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgQVNTRVJUKGdsb2JhbE9iamVjdC5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggYjQ4NDNjNDQxZjNjLi5m
YmZkMWNhOWU5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
U2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApAQCAtMjEwLDYgKzIxMCw5IEBAIHZvaWQgU2Ny
aXB0UHJvY2Vzc29yTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIC8v
IG1fYnVmZmVyUmVhZFdyaXRlSW5kZXggd2lsbCB3cmFwIGJhY2sgYXJvdW5kIHRvIDAgd2hlbiB0
aGUgY3VycmVudCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgYXJlIGZ1bGwuCiAgICAgLy8gV2hl
biB0aGlzIGhhcHBlbnMsIGZpcmUgYW4gZXZlbnQgYW5kIHN3YXAgYnVmZmVycy4KICAgICBpZiAo
IW1fYnVmZmVyUmVhZFdyaXRlSW5kZXgpIHsKKyAgICAgICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5j
dGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4KKyAgICAg
ICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25zOworCiAgICAgICAgIC8vIFJlZmVyZW5jZSBvdXJzZWxmIHNvIHdl
IGRvbid0IGFjY2lkZW50YWxseSBnZXQgZGVsZXRlZCBiZWZvcmUgZmlyZVByb2Nlc3NFdmVudCgp
IGdldHMgY2FsbGVkLgogICAgICAgICAvLyBXZSBvbmx5IHdhaXQgZm9yIHNjcmlwdCBjb2RlIGV4
ZWN1dGlvbiB3aGVuIHRoZSBjb250ZXh0IGlzIGFuIG9mZmxpbmUgb25lIGZvciBwZXJmb3JtYW5j
ZSByZWFzb25zLgogICAgICAgICBpZiAoY29udGV4dCgpLmlzT2ZmbGluZUNvbnRleHQoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423672</attachid>
            <date>2021-03-18 16:59:56 -0700</date>
            <delta_ts>2021-03-19 08:10:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223226-20210318165955.patch</filename>
            <type>text/plain</type>
            <size>16140</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Njg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDMwOGRjYzdjZDA1ODU1NzhlZmJiOWE3
NWViZGNhOGYwOTZmZjY4NDUuLjhlNjEyZmNlMTU1YWUwOTEzZDgyMDA1OTZiZTIzN2Y4NTRkOWZi
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDMtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBndWFyZCBhZ2FpbnN0IGhl
YXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZSB0byBGYXN0TWFsbG9jLmggdG8gZW5hYmxlIGFzc2VydGlvbnMgZ3VhcmRpbmcg
YWdhaW5zdAorICAgICAgICBkb2luZyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBjdXJyZW50IHRo
cmVhZCAoZHVyaW5nIHRoZSBsaWZldGltZSBvZiB0aGUgU2NvcGUgb2JqZWN0KS4KKworICAgICAg
ICBBbHNvIGFkZCBhIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSB0aG9zZSBjaGVja3MKKyAgICAgICAgdG8gYWxsb3cg
Zm9yIHNvbWUgdmVyeSBzcGVjaWZpYyBhc3NlcnRpb25zIChlaXRoZXIgYmVjYXVzZSB0aGV5IGFy
ZSByZXF1aXJlZCwgb3Igc2ltcGx5IGJlY2F1c2UKKyAgICAgICAgdGhleSBhcmUgbm90IGZpeGVk
IHlldCkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAgIChXVEY6OkZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlKToKKyAgICAgICAgKFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVu
dFRocmVhZFNjb3BlOjp+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAg
ICAgICAgKFdURjo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZTo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisgICAg
ICAgIChXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGU6
On5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAgICAg
ICAgKFdURjo6dHJ5RmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OmZhc3RNYWxsb2MpOgorICAg
ICAgICAoV1RGOjp0cnlGYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6ZmFzdENhbGxvYyk6Cisg
ICAgICAgIChXVEY6OmZhc3RSZWFsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxsb2Mp
OgorICAgICAgICAoV1RGOjpmYXN0QWxpZ25lZE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZh
c3RBbGlnbmVkTWFsbG9jKToKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5oOgorICAgICAgICAo
V1RGOjpGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU6On5Gb3JiaWRNYWxsb2NV
c2VGb3JDdXJyZW50VGhyZWFkU2NvcGUpOgorICAgICAgICAoV1RGOjpEaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
c0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisKIDIwMjEtMDMtMTggIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgY2FtZXJhIEdQVSBQcm9jZXNzIGZsYWcg
dG8gZXhwZXJpbWVudGFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYwNjgzMDJiYWQ4MTg3ZTBhNTU4NTc0YjNl
NDc4YTRmNDZiMmE0Yy4uNTY4OWNiZDE2NTFjYjBhZDQ5NDc1Yzk3NDBjMWU5ZWFkZTkyMDRiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTAzLTE4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbnMgdG8gZ3VhcmQgYWdhaW5z
dCBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzIyNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhc3NlcnRpb25zIHRvIGd1YXJkIGFn
YWluc3QgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkIGR1cmluZworICAgICAg
ICBhdWRpbyBwcm9jZXNzaW5nLCBzaW5jZSB0aG9zZSBhcmUgYmFkIGZvciBwZXJmb3JtYW5jZS4g
SSBmaXhlZCBhbnkgb2YgdGhlCisgICAgICAgIGlzc3VlcyBmb3VuZCBieSB0aGVzZSBhc3NlcnRp
b25zIGluIGRlcGVuZGVuY3kgYnVncy4gU29tZSBpc3N1ZXMgcmVtYWluCisgICAgICAgIGFuZCBh
cmUgcHJvdGVjdGVkIGJ5IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFk
U2NvcGUgdG8gYXZvaWQKKyAgICAgICAgdHJpcHBpbmcgdGhlIG5ldyBhc3NlcnRpb25zLgorCisg
ICAgICAgIFJpZ2h0IG5vdywgdGhlIGFzc2VydGlvbnMgb25seSBwcm90ZWN0IGF1ZGlvIHByb2Nl
c3NpbmcsIG5vdCBwcmUvcG9zdCBxdWFudHVtCisgICAgICAgIHJlbmRlcmluZyBjYXN0cy4gSWRl
YWxseSwgd2UnZCBleHBhbmQgdGhlIHNjb3BlIG9mIHRoZXNlIGFzc2VydGlvbnMgdG8gY292ZXIK
KyAgICAgICAgZXZlcnl0aGluZyB0aGF0J3MgZG9uZSBvbiB0aGUgYXVkaW8gdGhyZWFkIGJ1dCB0
aGlzIHdpbGwgcmVxdWlyZSBtb3JlIGZpeGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3Rp
bmF0aW9uTm9kZTo6cmVuZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NjaGVkdWxlZFNv
dXJjZU5vZGU6OmZpbmlzaCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OmZpcmVQcm9j
ZXNzb3JFcnJvck9uTWFpblRocmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0UHJv
Y2Vzc29yOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nl
c3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJv
Y2Vzcyk6CisKIDIwMjEtMDMtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgQXZvaWQgY29weWluZyBpdGVtIGRhdGEgd2hlbiBpdGVyYXRpbmcgaW4t
cHJvY2VzcyBkaXNwbGF5IGxpc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFs
bG9jLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCmluZGV4IDYwM2M2Mzg5YTUx
MGE2NmY5YWM5NWYwNjNmMzVlMDM3MGE3NzRiNTkuLmFmYzE2ZTQyMTViMDUzYTUyNTA3MTI2M2M4
MjJmZDQ0NzljMzk5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCkBAIC01Myw2ICs1MywzMyBAQAog
CiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmIEFTU0VSVF9FTkFCTEVECit0aHJlYWRfbG9jYWwgc3Rh
dGljIHVuc2lnbmVkIGZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit0aHJlYWRfbG9jYWwgc3Rh
dGljIHVuc2lnbmVkIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQ7CisKK0ZvcmJp
ZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVu
dFRocmVhZFNjb3BlKCkKK3sKKyAgICArK2ZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit9CisK
K0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6fkZvcmJpZE1hbGxvY1VzZUZv
ckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNTRVJUKGZvcmJpZE1hbGxvY1VzZVNjb3Bl
Q291bnQpOworICAgIC0tZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudDsKK30KKworRGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZTo6RGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgKytkaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25TY29wZUNvdW50OworfQorCitEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3Vy
cmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJl
YWRTY29wZSgpCit7CisgICAgQVNTRVJUKGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291
bnQpOworICAgIC0tZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudDsKK30KKyNlbmRp
ZgorCiAjaWYgIWRlZmluZWQoTkRFQlVHKQogbmFtZXNwYWNlIHsKIC8vIFdlIGRvIG5vdCB1c2Ug
c3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSBoZXJlIGR1ZSB0byB0aGUgZWRnZSBj
YXNlIGluIFZDKysuCkBAIC0xOTQsMTIgKzIyMSwxNCBAQCB2b2lkIGZhc3RBbGlnbmVkRnJlZSh2
b2lkKiBwKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdE1hbGxvYyhzaXplX3QgbikgCiB7
CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9j
VXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAg
ICByZXR1cm4gbWFsbG9jKG4pOwogfQogCiB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKSAKIHsK
ICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9j
VXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAg
ICB2b2lkKiByZXN1bHQgPSBtYWxsb2Mobik7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIENS
QVNIKCk7CkBAIC0yMTAsMTIgKzIzOSwxNCBAQCB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKQog
VHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6
ZV90IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobl9lbGVtZW50
cyAqIGVsZW1lbnRfc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50
IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBjYWxs
b2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKIH0KIAogdm9pZCogZmFzdENhbGxvYyhzaXpl
X3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lU
SElOX0xJTUlUKG5fZWxlbWVudHMgKiBlbGVtZW50X3NpemUpOworICAgIEFTU0VSVCghZm9yYmlk
TWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50
KTsKICAgICB2b2lkKiByZXN1bHQgPSBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsK
ICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgQ1JBU0goKTsKQEAgLTIzMSw2ICsyNjIsNyBAQCB2
b2lkIGZhc3RGcmVlKHZvaWQqIHApCiB2b2lkKiBmYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3Qg
bikKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlk
TWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50
KTsKICAgICB2b2lkKiByZXN1bHQgPSByZWFsbG9jKHAsIG4pOwogICAgIGlmICghcmVzdWx0KQog
ICAgICAgICBDUkFTSCgpOwpAQCAtMjQwLDYgKzI3Miw3IEBAIHZvaWQqIGZhc3RSZWFsbG9jKHZv
aWQqIHAsIHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9p
ZCogcCwgc2l6ZV90IG4pCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAgIEFT
U0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25TY29wZUNvdW50KTsKICAgICByZXR1cm4gcmVhbGxvYyhwLCBuKTsKIH0KIApAQCAtNDg4LDYg
KzUyMSw3IEBAIGJvb2wgaXNGYXN0TWFsbG9jRW5hYmxlZCgpCiB2b2lkKiBmYXN0TWFsbG9jKHNp
emVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNT
RVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlv
blNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6bWFsbG9jKHNp
emUpOwogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19D
QUxMU1RBQ0sKICAgICBpZiAoIUF2b2lkUmVjb3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291
bnQoKSkKQEAgLTUxMCw2ICs1NDQsNyBAQCB2b2lkKiBmYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVt
ZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogdm9pZCogZmFzdFJlYWxsb2Modm9pZCogb2JqZWN0
LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKHNpemUpOworICAg
IEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjphcGk6OnJlYWxs
b2Mob2JqZWN0LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBU
UkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9p
ZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NDMsNiArNTc4LDcgQEAgc2l6ZV90IGZhc3RNYWxsb2NH
b29kU2l6ZShzaXplX3Qgc2l6ZSkKIHZvaWQqIGZhc3RBbGlnbmVkTWFsbG9jKHNpemVfdCBhbGln
bm1lbnQsIHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQoc2l6ZSk7
CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NS
ZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6
bWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtE
T1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Nj
b3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NTQsNiArNTkwLDcgQEAgdm9pZCogZmFz
dEFsaWduZWRNYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpCiB2b2lkKiB0cnlG
YXN0QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBG
QUlMX0lGX0VYQ0VFRFNfTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VT
Y29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZv
aWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6dHJ5TWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsK
ICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNU
QUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkp
CkBAIC01NzAsNiArNjA3LDcgQEAgdm9pZCBmYXN0QWxpZ25lZEZyZWUodm9pZCogcCkKIFRyeU1h
bGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IHNpemUpCiB7CiAgICAgRkFJTF9J
Rl9FWENFRURTX0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVD
b3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4g
Ym1hbGxvYzo6YXBpOjp0cnlNYWxsb2Moc2l6ZSk7CiB9CiAKQEAgLTU4Niw2ICs2MjQsNyBAQCBU
cnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6
ZV90IGVsZW1lbnRTaXplKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9p
ZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQo
bmV3U2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBibWFsbG9jOjphcGk6
OnRyeVJlYWxsb2Mob2JqZWN0LCBuZXdTaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvRmFzdE1hbGxvYy5oIGIvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oCmluZGV4IDlh
NTAwYTAxYzczNDNhMzZhYTAwM2QwZTIyYzhiZGQ2NWExMDc2Y2EuLmFhMjZjZWM0NWMyNGVjZThl
YmFkYzk4ZDk4ZmQ3NGI5NTliOTQ3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RN
YWxsb2MuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKQEAgLTIzLDYgKzIzLDcg
QEAKICNpbmNsdWRlIDxuZXc+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8d3RmL0Rl
YnVnSGVhcC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC0xMjIsNiArMTIzLDMwIEBAIFdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIGZhc3RFbmFibGVNaW5pTW9kZSgpOwogCiBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBmYXN0RGlzYWJsZVNjYXZlbmdlcigpOwogCitjbGFzcyBGb3JiaWRNYWxs
b2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSk7CitwdWJsaWM6CisjaWYgQVNTRVJU
X0VOQUJMRUQKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVu
dFRocmVhZFNjb3BlKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIH5Gb3JiaWRNYWxsb2NVc2VG
b3JDdXJyZW50VGhyZWFkU2NvcGUoKTsKKyNlbHNlCisgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlKCkgPSBkZWZhdWx0OworICAgIH5Gb3JiaWRNYWxsb2NVc2VGb3JDdXJy
ZW50VGhyZWFkU2NvcGUoKSB7IH0KKyNlbmRpZgorfTsKKworY2xhc3MgRGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSk7CitwdWJs
aWM6CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpOworICAgIFdURl9FWFBPUlRf
UFJJVkFURSB+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgp
OworI2Vsc2UKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNj
b3BlKCkgPSBkZWZhdWx0OworICAgIH5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVu
dFRocmVhZFNjb3BlKCkgeyB9CisjZW5kaWYKK307CisKIHN0cnVjdCBGYXN0TWFsbG9jU3RhdGlz
dGljcyB7CiAgICAgc2l6ZV90IHJlc2VydmVkVk1CeXRlczsKICAgICBzaXplX3QgY29tbWl0dGVk
Vk1CeXRlczsKQEAgLTMwMCw5ICszMjUsMTEgQEAgc3RydWN0IEZhc3RGcmVlPFRbXT4gewogdXNp
bmcgV1RGOjpmYXN0U2V0TWF4U2luZ2xlQWxsb2NhdGlvblNpemU7CiAjZW5kaWYKIAordXNpbmcg
V1RGOjpEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOwogdXNp
bmcgV1RGOjpGYXN0QWxsb2NhdG9yOwogdXNpbmcgV1RGOjpGYXN0TWFsbG9jOwogdXNpbmcgV1RG
OjpGYXN0RnJlZTsKK3VzaW5nIFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNj
b3BlOwogdXNpbmcgV1RGOjppc0Zhc3RNYWxsb2NFbmFibGVkOwogdXNpbmcgV1RGOjpmYXN0Q2Fs
bG9jOwogdXNpbmcgV1RGOjpmYXN0RnJlZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggOTdjOTZkNmZl
NWVlNTQ2MzQ4N2FmN2Y1NWVmNmNmY2NjZTRjNzJjNi4uODdlOGUzMWE4MGQ1OTI5MTM0MTExYjU1
MjU0MDY1YmM2M2YwNzFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTg2LDIwICs4NiwyNCBAQCB2
b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyogZGVz
dGluYXRpb25CdXMsIHNpemVfdCBudQogICAgIGlmICh3b3JrbGV0R2xvYmFsU2NvcGUpCiAgICAg
ICAgIHdvcmtsZXRHbG9iYWxTY29wZS0+aGFuZGxlUHJlUmVuZGVyVGFza3MoKTsKIAotICAgIC8v
IFRoaXMgd2lsbCBjYXVzZSB0aGUgbm9kZShzKSBjb25uZWN0ZWQgdG8gdXMgdG8gcHJvY2Vzcywg
d2hpY2ggaW4gdHVybiB3aWxsIHB1bGwgb24gdGhlaXIgaW5wdXQocyksCi0gICAgLy8gYWxsIHRo
ZSB3YXkgYmFja3dhcmRzIHRocm91Z2ggdGhlIHJlbmRlcmluZyBncmFwaC4KLSAgICBBdWRpb0J1
cyogcmVuZGVyZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5hdGlvbkJ1cywgbnVtYmVyT2ZG
cmFtZXMpOwotICAgIAotICAgIGlmICghcmVuZGVyZWRCdXMpCi0gICAgICAgIGRlc3RpbmF0aW9u
QnVzLT56ZXJvKCk7Ci0gICAgZWxzZSBpZiAocmVuZGVyZWRCdXMgIT0gZGVzdGluYXRpb25CdXMp
IHsKLSAgICAgICAgLy8gaW4tcGxhY2UgcHJvY2Vzc2luZyB3YXMgbm90IHBvc3NpYmxlIC0gc28g
Y29weQotICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20oKnJlbmRlcmVkQnVzKTsKKyAg
ICB7CisgICAgICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSBmb3JiaWRN
YWxsb2NVc2U7CisKKyAgICAgICAgLy8gVGhpcyB3aWxsIGNhdXNlIHRoZSBub2RlKHMpIGNvbm5l
Y3RlZCB0byB1cyB0byBwcm9jZXNzLCB3aGljaCBpbiB0dXJuIHdpbGwgcHVsbCBvbiB0aGVpciBp
bnB1dChzKSwKKyAgICAgICAgLy8gYWxsIHRoZSB3YXkgYmFja3dhcmRzIHRocm91Z2ggdGhlIHJl
bmRlcmluZyBncmFwaC4KKyAgICAgICAgQXVkaW9CdXMqIHJlbmRlcmVkQnVzID0gaW5wdXQoMCkt
PnB1bGwoZGVzdGluYXRpb25CdXMsIG51bWJlck9mRnJhbWVzKTsKKworICAgICAgICBpZiAoIXJl
bmRlcmVkQnVzKQorICAgICAgICAgICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKKyAgICAgICAg
ZWxzZSBpZiAocmVuZGVyZWRCdXMgIT0gZGVzdGluYXRpb25CdXMpIHsKKyAgICAgICAgICAgIC8v
IGluLXBsYWNlIHByb2Nlc3Npbmcgd2FzIG5vdCBwb3NzaWJsZSAtIHNvIGNvcHkKKyAgICAgICAg
ICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5RnJvbSgqcmVuZGVyZWRCdXMpOworICAgICAgICB9CisK
KyAgICAgICAgLy8gUHJvY2VzcyBub2RlcyB3aGljaCBuZWVkIGEgbGl0dGxlIGV4dHJhIGhlbHAg
YmVjYXVzZSB0aGV5IGFyZSBub3QgY29ubmVjdGVkIHRvIGFueXRoaW5nLCBidXQgc3RpbGwgbmVl
ZCB0byBwcm9jZXNzLgorICAgICAgICBjb250ZXh0KCkucHJvY2Vzc0F1dG9tYXRpY1B1bGxOb2Rl
cyhudW1iZXJPZkZyYW1lcyk7CiAgICAgfQogCi0gICAgLy8gUHJvY2VzcyBub2RlcyB3aGljaCBu
ZWVkIGEgbGl0dGxlIGV4dHJhIGhlbHAgYmVjYXVzZSB0aGV5IGFyZSBub3QgY29ubmVjdGVkIHRv
IGFueXRoaW5nLCBidXQgc3RpbGwgbmVlZCB0byBwcm9jZXNzLgotICAgIGNvbnRleHQoKS5wcm9j
ZXNzQXV0b21hdGljUHVsbE5vZGVzKG51bWJlck9mRnJhbWVzKTsKLQogICAgIC8vIExldCB0aGUg
Y29udGV4dCB0YWtlIGNhcmUgb2YgYW55IGJ1c2luZXNzIGF0IHRoZSBlbmQgb2YgZWFjaCByZW5k
ZXIgcXVhbnR1bS4KICAgICBjb250ZXh0KCkuaGFuZGxlUG9zdFJlbmRlclRhc2tzKCk7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1
bGVkU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
U2NoZWR1bGVkU291cmNlTm9kZS5jcHAKaW5kZXggNjA1NDA1MDg5MWU5NjhlZGUxOGQzNDQwZTVm
NWU2Mjg4NDVhODVhNy4uMWY4N2Q4ODhjM2JjNDc2YWVhYmNlYTgxZjU4ZjM4YTIxNzc2MTllYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcApAQCAtMTk3LDYgKzE5Nyw4IEBAIHZvaWQgQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlOjpmaW5pc2goKQogICAgIG1fcGxheWJhY2tTdGF0ZSA9IEZJTklT
SEVEX1NUQVRFOwogICAgIGNvbnRleHQoKS5kZWNyZW1lbnRBY3RpdmVTb3VyY2VDb3VudCgpOwog
CisgICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWly
ZXMgaGVhcCBhbGxvY2F0aW9ucy4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3Vy
cmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgY2FsbE9uTWFp
blRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAg
IGF1dG8gcmVsZWFzZSA9IG1ha2VTY29wZUV4aXQoWyZdICgpIHsKICAgICAgICAgICAgIEF1ZGlv
Q29udGV4dDo6QXV0b0xvY2tlciBsb2NrZXIoY29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCmluZGV4IDUzODIw
NTE1MmRjMmIzNDA0MTBiNmY3ZjlhZjhjZjUwYTFkMjM2MDIuLmM1MzlkNDk2ZDczNjRjMjNjYmJj
NTVlMzE3ZWI4NzcxYzcxYTZkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcApAQCAtMjc2LDYgKzI3Niw4IEBAIHZvaWQg
QXVkaW9Xb3JrbGV0Tm9kZTo6ZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3Nv
ckVycm9yIGVycm9yKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCisgICAgLy8g
RGlzcGF0Y2hpbmcgYSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBh
bGxvY2F0aW9ucy4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVh
ZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgY2FsbE9uTWFpblRocmVhZChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlcnJvcl0oKSBtdXRhYmxlIHsK
ICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKICAgICAgICAgc3dpdGNoIChlcnJvcikgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQ
cm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXRQcm9jZXNzb3IuY3BwCmluZGV4IDhhNjgyMDVkNWY2NzcxNmIxZGM4YTBjYTRjOGUyZWQxYmM0
OWUyZTMuLjk2MjcxZGNiZjM4NDY3YmVlYjc1ZTU2YjRhODJmNDgxMzc4ZGEzMDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFBy
b2Nlc3Nvci5jcHAKQEAgLTI1MSw2ICsyNTEsNyBAQCB2b2lkIEF1ZGlvV29ya2xldFByb2Nlc3Nv
cjo6YnVpbGRKU0FyZ3VtZW50cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplYwog
CiBib29sIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBWZWN0b3I8UmVmUHRy
PEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBjb25z
dCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJh
bVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pCiB7CisgICAgRGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25z
OwogICAgIEFTU0VSVChtX3Byb2Nlc3NDYWxsYmFjayk7CiAgICAgYXV0byYgZ2xvYmFsT2JqZWN0
ID0gKm1fcHJvY2Vzc0NhbGxiYWNrLT5nbG9iYWxPYmplY3QoKTsKICAgICBBU1NFUlQoZ2xvYmFs
T2JqZWN0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAppbmRleCBiNDg0
M2M0NDFmM2NjZDYzY2Y3MjY5OWUwODI1YTc5M2M0MTA2NThhLi5mYmZkMWNhOWU5ZTRiMWJlY2Jk
NTY1ZDA1MzliY2Y3MTdmMGM4OGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTIxMCw2ICsyMTAsOSBA
QCB2b2lkIFNjcmlwdFByb2Nlc3Nvck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKICAgICAvLyBtX2J1ZmZlclJlYWRXcml0ZUluZGV4IHdpbGwgd3JhcCBiYWNrIGFyb3VuZCB0
byAwIHdoZW4gdGhlIGN1cnJlbnQgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIGFyZSBmdWxsLgog
ICAgIC8vIFdoZW4gdGhpcyBoYXBwZW5zLCBmaXJlIGFuIGV2ZW50IGFuZCBzd2FwIGJ1ZmZlcnMu
CiAgICAgaWYgKCFtX2J1ZmZlclJlYWRXcml0ZUluZGV4KSB7CisgICAgICAgIC8vIERpc3BhdGNo
aW5nIGEgRnVuY3Rpb24gdG8gdGhlIG1haW4gdGhyZWFkIHJlcXVpcmVzIGhlYXAgYWxsb2NhdGlv
bnMuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKwogICAgICAgICAvLyBSZWZlcmVuY2Ugb3Vy
c2VsZiBzbyB3ZSBkb24ndCBhY2NpZGVudGFsbHkgZ2V0IGRlbGV0ZWQgYmVmb3JlIGZpcmVQcm9j
ZXNzRXZlbnQoKSBnZXRzIGNhbGxlZC4KICAgICAgICAgLy8gV2Ugb25seSB3YWl0IGZvciBzY3Jp
cHQgY29kZSBleGVjdXRpb24gd2hlbiB0aGUgY29udGV4dCBpcyBhbiBvZmZsaW5lIG9uZSBmb3Ig
cGVyZm9ybWFuY2UgcmVhc29ucy4KICAgICAgICAgaWYgKGNvbnRleHQoKS5pc09mZmxpbmVDb250
ZXh0KCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423733</attachid>
            <date>2021-03-19 08:10:24 -0700</date>
            <delta_ts>2021-03-19 13:04:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223226-20210319081023.patch</filename>
            <type>text/plain</type>
            <size>17783</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1ODAzMzg1ODcwMDIxY2JlOWQyOGY4
YmM1MTNlMjI3MTU4MDg0OTcuLmZjZjFlOTU1YzYyMjQwMWNlNzAxYjllYjk0ZmMyMjMwYzhmYjgx
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xICsxLDMyIEBACisyMDIxLTAzLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbnMgdG8gZ3VhcmQgYWdhaW5zdCBoZWFw
IGFsbG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzIyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhy
ZWFkU2NvcGUgdG8gRmFzdE1hbGxvYy5oIHRvIGVuYWJsZSBhc3NlcnRpb25zIGd1YXJkaW5nIGFn
YWluc3QKKyAgICAgICAgZG9pbmcgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgY3VycmVudCB0aHJl
YWQgKGR1cmluZyB0aGUgbGlmZXRpbWUgb2YgdGhlIFNjb3BlIG9iamVjdCkuCisKKyAgICAgICAg
QWxzbyBhZGQgYSBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3Bl
IHRvIHRlbXBvcmFyaWx5IGRpc2FibGUgdGhvc2UgY2hlY2tzCisgICAgICAgIHRvIGFsbG93IGZv
ciBzb21lIHZlcnkgc3BlY2lmaWMgYXNzZXJ0aW9ucyAoZWl0aGVyIGJlY2F1c2UgdGhleSBhcmUg
cmVxdWlyZWQsIG9yIHNpbXBseSBiZWNhdXNlCisgICAgICAgIHRoZXkgYXJlIG5vdCBmaXhlZCB5
ZXQpLgorCisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAoV1RGOjpGb3Ji
aWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU6OkZvcmJpZE1hbGxvY1VzZUZvckN1cnJl
bnRUaHJlYWRTY29wZSk6CisgICAgICAgIChXVEY6OkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZTo6fkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisgICAg
ICAgIChXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGU6
OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUpOgorICAgICAg
ICAoV1RGOjpEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+
RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisgICAgICAg
IChXVEY6OnRyeUZhc3RNYWxsb2MpOgorICAgICAgICAoV1RGOjpmYXN0TWFsbG9jKToKKyAgICAg
ICAgKFdURjo6dHJ5RmFzdENhbGxvYyk6CisgICAgICAgIChXVEY6OmZhc3RDYWxsb2MpOgorICAg
ICAgICAoV1RGOjpmYXN0UmVhbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZhc3RSZWFsbG9jKToK
KyAgICAgICAgKFdURjo6ZmFzdEFsaWduZWRNYWxsb2MpOgorICAgICAgICAoV1RGOjp0cnlGYXN0
QWxpZ25lZE1hbGxvYyk6CisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuaDoKKyAgICAgICAgKFdU
Rjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+Rm9yYmlkTWFsbG9jVXNl
Rm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAgICAgICAgKFdURjo6RGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZTo6fkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUpOgorCiA9PSBSb2xsZWQgb3ZlciB0byBDaGFuZ2VMb2ctMjAy
MS0wMy0xOCA9PQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIzM2JlMWMyNDNiZWMwNjAxYTcyMGIwNGUyMWJjMjVk
NGFkYWIxZmEuLmE2NzEyYTM1YzVkMjM5MTE0ZGNmYjIzODdmMjAwYjA5OWFjNGM4ZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMS0wMy0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhc3NlcnRpb25zIHRvIGd1YXJkIGFnYWluc3QgaGVh
cCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBndWFyZCBhZ2FpbnN0
IGhlYXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZCBkdXJpbmcKKyAgICAgICAgYXVk
aW8gcHJvY2Vzc2luZywgc2luY2UgdGhvc2UgYXJlIGJhZCBmb3IgcGVyZm9ybWFuY2UuIEkgZml4
ZWQgYW55IG9mIHRoZQorICAgICAgICBpc3N1ZXMgZm91bmQgYnkgdGhlc2UgYXNzZXJ0aW9ucyBp
biBkZXBlbmRlbmN5IGJ1Z3MuIFNvbWUgaXNzdWVzIHJlbWFpbgorICAgICAgICBhbmQgYXJlIHBy
b3RlY3RlZCBieSBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3Bl
IHRvIGF2b2lkCisgICAgICAgIHRyaXBwaW5nIHRoZSBuZXcgYXNzZXJ0aW9ucy4KKworICAgICAg
ICBSaWdodCBub3csIHRoZSBhc3NlcnRpb25zIG9ubHkgcHJvdGVjdCBhdWRpbyBwcm9jZXNzaW5n
LCBub3QgcHJlL3Bvc3QgcXVhbnR1bQorICAgICAgICByZW5kZXJpbmcgY2FzdHMuIElkZWFsbHks
IHdlJ2QgZXhwYW5kIHRoZSBzY29wZSBvZiB0aGVzZSBhc3NlcnRpb25zIHRvIGNvdmVyCisgICAg
ICAgIGV2ZXJ5dGhpbmcgdGhhdCdzIGRvbmUgb24gdGhlIGF1ZGlvIHRocmVhZCBidXQgdGhpcyB3
aWxsIHJlcXVpcmUgbW9yZSBmaXhlcy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bk5vZGU6OnJlbmRlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlOjpmaW5pc2gpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjpmaXJlUHJvY2Vzc29y
RXJyb3JPbk1haW5UaHJlYWQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nv
cjo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nl
c3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJv
Y2Vzcyk6CisKIDIwMjEtMDMtMTkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgog
CiAgICAgICAgIENTUCBoZWFkZXJzIGNhbiBibG9jayBkZWZhdWx0IDx2aWRlbz4gY29udHJvbHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvU291cmNlL1dURi93
dGYvRmFzdE1hbGxvYy5jcHAKaW5kZXggNjAzYzYzODlhNTEwYTY2ZjlhYzk1ZjA2M2YzNWUwMzcw
YTc3NGI1OS4uYWZjMTZlNDIxNWIwNTNhNTI1MDcxMjYzYzgyMmZkNDQ3OWMzOTlhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
RmFzdE1hbGxvYy5jcHAKQEAgLTUzLDYgKzUzLDMzIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCisj
aWYgQVNTRVJUX0VOQUJMRUQKK3RocmVhZF9sb2NhbCBzdGF0aWMgdW5zaWduZWQgZm9yYmlkTWFs
bG9jVXNlU2NvcGVDb3VudDsKK3RocmVhZF9sb2NhbCBzdGF0aWMgdW5zaWduZWQgZGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudDsKKworRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRo
cmVhZFNjb3BlOjpGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKQoreworICAg
ICsrZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudDsKK30KKworRm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlOjp+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkK
K3sKKyAgICBBU1NFUlQoZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCk7CisgICAgLS1mb3JiaWRN
YWxsb2NVc2VTY29wZUNvdW50OworfQorCitEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3Vy
cmVudFRocmVhZFNjb3BlOjpEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVh
ZFNjb3BlKCkKK3sKKyAgICArK2Rpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQ7Cit9
CisKK0Rpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGU6On5EaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKCkKK3sKKyAgICBBU1NF
UlQoZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7CisgICAgLS1kaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25TY29wZUNvdW50OworfQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChOREVC
VUcpCiBuYW1lc3BhY2UgewogLy8gV2UgZG8gbm90IHVzZSBzdGQ6Om51bWVyaWNfbGltaXRzPHNp
emVfdD46Om1heCgpIGhlcmUgZHVlIHRvIHRoZSBlZGdlIGNhc2UgaW4gVkMrKy4KQEAgLTE5NCwx
MiArMjIxLDE0IEBAIHZvaWQgZmFzdEFsaWduZWRGcmVlKHZvaWQqIHApCiBUcnlNYWxsb2NSZXR1
cm5WYWx1ZSB0cnlGYXN0TWFsbG9jKHNpemVfdCBuKSAKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNf
TElNSVQobik7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBtYWxsb2Mobik7CiB9
CiAKIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90IG4pIAogewogICAgIEFTU0VSVF9JU19XSVRISU5f
TElNSVQobik7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IG1hbGxv
YyhuKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgQ1JBU0goKTsKQEAgLTIxMCwxMiArMjM5
LDE0IEBAIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90IG4pCiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0
cnlGYXN0Q2FsbG9jKHNpemVfdCBuX2VsZW1lbnRzLCBzaXplX3QgZWxlbWVudF9zaXplKQogewog
ICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChuX2VsZW1lbnRzICogZWxlbWVudF9zaXplKTsKKyAg
ICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uU2NvcGVDb3VudCk7CiAgICAgcmV0dXJuIGNhbGxvYyhuX2VsZW1lbnRzLCBlbGVtZW50
X3NpemUpOwogfQogCiB2b2lkKiBmYXN0Q2FsbG9jKHNpemVfdCBuX2VsZW1lbnRzLCBzaXplX3Qg
ZWxlbWVudF9zaXplKQogewogICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQobl9lbGVtZW50cyAq
IGVsZW1lbnRfc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8
IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9
IGNhbGxvYyhuX2VsZW1lbnRzLCBlbGVtZW50X3NpemUpOwogICAgIGlmICghcmVzdWx0KQogICAg
ICAgICBDUkFTSCgpOwpAQCAtMjMxLDYgKzI2Miw3IEBAIHZvaWQgZmFzdEZyZWUodm9pZCogcCkK
IHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogewogICAgIEFTU0VSVF9JU19X
SVRISU5fTElNSVQobik7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8
IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9
IHJlYWxsb2MocCwgbik7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIENSQVNIKCk7CkBAIC0y
NDAsNiArMjcyLDcgQEAgdm9pZCogZmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiBUcnlN
YWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3QgbikKIHsKICAg
ICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobik7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VT
Y29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJl
dHVybiByZWFsbG9jKHAsIG4pOwogfQogCkBAIC00ODgsNiArNTIxLDcgQEAgYm9vbCBpc0Zhc3RN
YWxsb2NFbmFibGVkKCkKIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90IHNpemUpCiB7CiAgICAgQVNT
RVJUX0lTX1dJVEhJTl9MSU1JVChzaXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNj
b3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7CiAgICAgdm9p
ZCogcmVzdWx0ID0gYm1hbGxvYzo6YXBpOjptYWxsb2Moc2l6ZSk7CiAjaWYgRU5BQkxFKE1BTExP
Q19IRUFQX0JSRUFLRE9XTikgJiYgVFJBQ0tfTUFMTE9DX0NBTExTVEFDSwogICAgIGlmICghQXZv
aWRSZWNvcmRpbmdTY29wZTo6YXZvaWRSZWNvcmRpbmdDb3VudCgpKQpAQCAtNTEwLDYgKzU0NCw3
IEBAIHZvaWQqIGZhc3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNp
emUpCiB2b2lkKiBmYXN0UmVhbGxvYyh2b2lkKiBvYmplY3QsIHNpemVfdCBzaXplKQogewogICAg
IEFTU0VSVF9JU19XSVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NV
c2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAg
IHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6cmVhbGxvYyhvYmplY3QsIHNpemUpOwogI2lm
IEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19DQUxMU1RBQ0sK
ICAgICBpZiAoIUF2b2lkUmVjb3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291bnQoKSkKQEAg
LTU0Myw2ICs1NzgsNyBAQCBzaXplX3QgZmFzdE1hbGxvY0dvb2RTaXplKHNpemVfdCBzaXplKQog
dm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpCiB7
CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChzaXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7
CiAgICAgdm9pZCogcmVzdWx0ID0gYm1hbGxvYzo6YXBpOjptZW1hbGlnbihhbGlnbm1lbnQsIHNp
emUpOwogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19D
QUxMU1RBQ0sKICAgICBpZiAoIUF2b2lkUmVjb3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291
bnQoKSkKQEAgLTU1NCw2ICs1OTAsNyBAQCB2b2lkKiBmYXN0QWxpZ25lZE1hbGxvYyhzaXplX3Qg
YWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKIHZvaWQqIHRyeUZhc3RBbGlnbmVkTWFsbG9jKHNpemVf
dCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChz
aXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7CiAgICAgdm9pZCogcmVzdWx0ID0gYm1hbGxvYzo6
YXBpOjp0cnlNZW1hbGlnbihhbGlnbm1lbnQsIHNpemUpOwogI2lmIEVOQUJMRShNQUxMT0NfSEVB
UF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19DQUxMU1RBQ0sKICAgICBpZiAoIUF2b2lkUmVj
b3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291bnQoKSkKQEAgLTU3MCw2ICs2MDcsNyBAQCB2
b2lkIGZhc3RBbGlnbmVkRnJlZSh2b2lkKiBwKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFz
dE1hbGxvYyhzaXplX3Qgc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQoc2l6ZSk7
CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NS
ZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBibWFsbG9jOjphcGk6OnRyeU1hbGxv
YyhzaXplKTsKIH0KIApAQCAtNTg2LDYgKzYyNCw3IEBAIFRyeU1hbGxvY1JldHVyblZhbHVlIHRy
eUZhc3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNpemUpCiBUcnlN
YWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2b2lkKiBvYmplY3QsIHNpemVfdCBuZXdT
aXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChuZXdTaXplKTsKKyAgICBBU1NFUlQo
IWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2Nv
cGVDb3VudCk7CiAgICAgcmV0dXJuIGJtYWxsb2M6OmFwaTo6dHJ5UmVhbGxvYyhvYmplY3QsIG5l
d1NpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmggYi9T
b3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKaW5kZXggOWE1MDBhMDFjNzM0M2EzNmFhMDAzZDBl
MjJjOGJkZDY1YTEwNzZjYS4uMDI0ZjFiOTFjYjlhYTFkMDRhOGNlNjQ0ZjFiZjVkZmZmMWE1YzRk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0Zhc3RNYWxsb2MuaApAQCAtMTIyLDYgKzEyMiwzOCBAQCBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBmYXN0RW5hYmxlTWluaU1vZGUoKTsKIAogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZmFzdERpc2FibGVTY2F2ZW5nZXIoKTsKIAorY2xhc3MgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVu
dFRocmVhZFNjb3BlIHsKK3B1YmxpYzoKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIFdURl9FWFBP
UlRfUFJJVkFURSBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKTsKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgfkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgp
OworI2Vsc2UKKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKSA9IGRl
ZmF1bHQ7CisgICAgfkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpIHsgfQor
I2VuZGlmCisKKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoY29uc3Qg
Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJikgPSBkZWxldGU7CisgICAgRm9y
YmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKEZvcmJpZE1hbGxvY1VzZUZvckN1cnJl
bnRUaHJlYWRTY29wZSYmKSA9IGRlbGV0ZTsKKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50
VGhyZWFkU2NvcGUmIG9wZXJhdG9yPShjb25zdCBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhy
ZWFkU2NvcGUmKSA9IGRlbGV0ZTsKKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFk
U2NvcGUmIG9wZXJhdG9yPShGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUmJikg
PSBkZWxldGU7Cit9OworCitjbGFzcyBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVu
dFRocmVhZFNjb3BlIHsKK3B1YmxpYzoKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIFdURl9FWFBP
UlRfUFJJVkFURSBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3Bl
KCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIH5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9y
Q3VycmVudFRocmVhZFNjb3BlKCk7CisjZWxzZQorICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlv
bnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoKSA9IGRlZmF1bHQ7CisgICAgfkRpc2FibGVNYWxsb2NS
ZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoKSB7IH0KKyNlbmRpZgorCisgICAgRGlz
YWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZShjb25zdCBEaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlJikgPSBkZWxldGU7CisgICAg
RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZShEaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlJiYpID0gZGVsZXRlOworICAgIERp
c2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmIG9wZXJhdG9yPShj
b25zdCBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlJikgPSBk
ZWxldGU7CisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZSYgb3BlcmF0b3I9KERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUmJikgPSBkZWxldGU7Cit9OworCiBzdHJ1Y3QgRmFzdE1hbGxvY1N0YXRpc3RpY3MgewogICAg
IHNpemVfdCByZXNlcnZlZFZNQnl0ZXM7CiAgICAgc2l6ZV90IGNvbW1pdHRlZFZNQnl0ZXM7CkBA
IC0zMDAsOSArMzMyLDExIEBAIHN0cnVjdCBGYXN0RnJlZTxUW10+IHsKIHVzaW5nIFdURjo6ZmFz
dFNldE1heFNpbmdsZUFsbG9jYXRpb25TaXplOwogI2VuZGlmCiAKK3VzaW5nIFdURjo6RGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZTsKIHVzaW5nIFdURjo6RmFz
dEFsbG9jYXRvcjsKIHVzaW5nIFdURjo6RmFzdE1hbGxvYzsKIHVzaW5nIFdURjo6RmFzdEZyZWU7
Cit1c2luZyBXVEY6OkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTsKIHVzaW5n
IFdURjo6aXNGYXN0TWFsbG9jRW5hYmxlZDsKIHVzaW5nIFdURjo6ZmFzdENhbGxvYzsKIHVzaW5n
IFdURjo6ZmFzdEZyZWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDk3Yzk2ZDZmZTVlZTU0NjM0ODdh
ZjdmNTVlZjZjZmNjY2U0YzcyYzYuLjg3ZThlMzFhODBkNTkyOTEzNDExMWI1NTI1NDA2NWJjNjNm
MDcxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC04NiwyMCArODYsMjQgQEAgdm9pZCBBdWRpb0Rl
c3RpbmF0aW9uTm9kZTo6cmVuZGVyKEF1ZGlvQnVzKiwgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVz
LCBzaXplX3QgbnUKICAgICBpZiAod29ya2xldEdsb2JhbFNjb3BlKQogICAgICAgICB3b3JrbGV0
R2xvYmFsU2NvcGUtPmhhbmRsZVByZVJlbmRlclRhc2tzKCk7CiAKLSAgICAvLyBUaGlzIHdpbGwg
Y2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGluIHR1
cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAotICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3
YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJpbmcgZ3JhcGguCi0gICAgQXVkaW9CdXMqIHJlbmRlcmVk
QnVzID0gaW5wdXQoMCktPnB1bGwoZGVzdGluYXRpb25CdXMsIG51bWJlck9mRnJhbWVzKTsKLSAg
ICAKLSAgICBpZiAoIXJlbmRlcmVkQnVzKQotICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygp
OwotICAgIGVsc2UgaWYgKHJlbmRlcmVkQnVzICE9IGRlc3RpbmF0aW9uQnVzKSB7Ci0gICAgICAg
IC8vIGluLXBsYWNlIHByb2Nlc3Npbmcgd2FzIG5vdCBwb3NzaWJsZSAtIHNvIGNvcHkKLSAgICAg
ICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKCpyZW5kZXJlZEJ1cyk7CisgICAgeworICAgICAg
ICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUgZm9yYmlkTWFsbG9jVXNlOwor
CisgICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB0aGUgbm9kZShzKSBjb25uZWN0ZWQgdG8gdXMg
dG8gcHJvY2Vzcywgd2hpY2ggaW4gdHVybiB3aWxsIHB1bGwgb24gdGhlaXIgaW5wdXQocyksCisg
ICAgICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJpbmcgZ3Jh
cGguCisgICAgICAgIEF1ZGlvQnVzKiByZW5kZXJlZEJ1cyA9IGlucHV0KDApLT5wdWxsKGRlc3Rp
bmF0aW9uQnVzLCBudW1iZXJPZkZyYW1lcyk7CisKKyAgICAgICAgaWYgKCFyZW5kZXJlZEJ1cykK
KyAgICAgICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgICAgIGVsc2UgaWYgKHJl
bmRlcmVkQnVzICE9IGRlc3RpbmF0aW9uQnVzKSB7CisgICAgICAgICAgICAvLyBpbi1wbGFjZSBw
cm9jZXNzaW5nIHdhcyBub3QgcG9zc2libGUgLSBzbyBjb3B5CisgICAgICAgICAgICBkZXN0aW5h
dGlvbkJ1cy0+Y29weUZyb20oKnJlbmRlcmVkQnVzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IFByb2Nlc3Mgbm9kZXMgd2hpY2ggbmVlZCBhIGxpdHRsZSBleHRyYSBoZWxwIGJlY2F1c2UgdGhl
eSBhcmUgbm90IGNvbm5lY3RlZCB0byBhbnl0aGluZywgYnV0IHN0aWxsIG5lZWQgdG8gcHJvY2Vz
cy4KKyAgICAgICAgY29udGV4dCgpLnByb2Nlc3NBdXRvbWF0aWNQdWxsTm9kZXMobnVtYmVyT2ZG
cmFtZXMpOwogICAgIH0KIAotICAgIC8vIFByb2Nlc3Mgbm9kZXMgd2hpY2ggbmVlZCBhIGxpdHRs
ZSBleHRyYSBoZWxwIGJlY2F1c2UgdGhleSBhcmUgbm90IGNvbm5lY3RlZCB0byBhbnl0aGluZywg
YnV0IHN0aWxsIG5lZWQgdG8gcHJvY2Vzcy4KLSAgICBjb250ZXh0KCkucHJvY2Vzc0F1dG9tYXRp
Y1B1bGxOb2RlcyhudW1iZXJPZkZyYW1lcyk7Ci0KICAgICAvLyBMZXQgdGhlIGNvbnRleHQgdGFr
ZSBjYXJlIG9mIGFueSBidXNpbmVzcyBhdCB0aGUgZW5kIG9mIGVhY2ggcmVuZGVyIHF1YW50dW0u
CiAgICAgY29udGV4dCgpLmhhbmRsZVBvc3RSZW5kZXJUYXNrcygpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNv
dXJjZU5vZGUuY3BwCmluZGV4IDYwNTQwNTA4OTFlOTY4ZWRlMThkMzQ0MGU1ZjVlNjI4ODQ1YTg1
YTcuLjFmODdkODg4YzNiYzQ3NmFlYWJjZWE4MWY1OGYzOGEyMTc3NjE5ZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVk
U291cmNlTm9kZS5jcHAKQEAgLTE5Nyw2ICsxOTcsOCBAQCB2b2lkIEF1ZGlvU2NoZWR1bGVkU291
cmNlTm9kZTo6ZmluaXNoKCkKICAgICBtX3BsYXliYWNrU3RhdGUgPSBGSU5JU0hFRF9TVEFURTsK
ICAgICBjb250ZXh0KCkuZGVjcmVtZW50QWN0aXZlU291cmNlQ291bnQoKTsKIAorICAgIC8vIERp
c3BhdGNoaW5nIGEgRnVuY3Rpb24gdG8gdGhlIG1haW4gdGhyZWFkIHJlcXVpcmVzIGhlYXAgYWxs
b2NhdGlvbnMuCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRT
Y29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBhdXRvIHJlbGVh
c2UgPSBtYWtlU2NvcGVFeGl0KFsmXSAoKSB7CiAgICAgICAgICAgICBBdWRpb0NvbnRleHQ6OkF1
dG9Mb2NrZXIgbG9ja2VyKGNvbnRleHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcAppbmRleCA1MzgyMDUxNTJkYzJiMzQw
NDEwYjZmN2Y5YWY4Y2Y1MGExZDIzNjAyLi5jNTM5ZDQ5NmQ3MzY0YzIzY2JiYzU1ZTMxN2ViODc3
MWM3MWE2ZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5jcHAKQEAgLTI3Niw2ICsyNzYsOCBAQCB2b2lkIEF1ZGlvV29ya2xl
dE5vZGU6OmZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZChQcm9jZXNzb3JFcnJvciBlcnJv
cikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAorICAgIC8vIERpc3BhdGNoaW5n
IGEgRnVuY3Rpb24gdG8gdGhlIG1haW4gdGhyZWFkIHJlcXVpcmVzIGhlYXAgYWxsb2NhdGlvbnMu
CisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZXJyb3JdKCkgbXV0YWJsZSB7CiAgICAgICAgIFN0
cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgICAgIHN3aXRjaCAoZXJyb3IpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
LmNwcAppbmRleCA4YTY4MjA1ZDVmNjc3MTZiMWRjOGEwY2E0YzhlMmVkMWJjNDllMmUzLi45NjI3
MWRjYmYzODQ2N2JlZWI3NWU1NmI0YTgyZjQ4MTM3OGRhMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3Bw
CkBAIC0yNTEsNiArMjUxLDcgQEAgdm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNB
cmd1bWVudHMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWMKIAogYm9vbCBBdWRp
b1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+
JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxT
dHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAs
IGJvb2wmIHRocmV3RXhjZXB0aW9uKQogeworICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBBU1NF
UlQobV9wcm9jZXNzQ2FsbGJhY2spOwogICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX3Byb2Nl
c3NDYWxsYmFjay0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgQVNTRVJUKGdsb2JhbE9iamVjdC5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4
IDI3NjU1NGQ5MTkyMzI5NjA5YTU0ODRjNzQyZGI1MDI2MmZkM2NlZjQuLjg3NWI5MjRjOGVjMTFi
MzcyYTZmODhlMTRiZTczNDY1MTgwMmMyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5j
cHAKQEAgLTc5LDYgKzc5LDggQEAgdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjb25zdW1l
QXVkaW8oQXVkaW9CdXMmIGJ1cywgc2l6ZV90IG51bWJlck9mRnJhbWVzKQogCiAgICAgYXV0byBk
ZXNjcmlwdGlvbiA9IHN0cmVhbURlc2NyaXB0aW9uKG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJh
dGUoKSwgYnVzLm51bWJlck9mQ2hhbm5lbHMoKSk7CiAgICAgaWYgKCFhdWRpb0J1ZmZlciB8fCBh
dWRpb0J1ZmZlci0+Y2hhbm5lbENvdW50KCkgIT0gYnVzLm51bWJlck9mQ2hhbm5lbHMoKSkgewor
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGF2b2lkIHRoaXMgV2ViQXVkaW9CdWZmZXJMaXN0
IGFsbG9jYXRpb24gb24gdGhlIGF1ZGlvIHRocmVhZC4KKyAgICAgICAgRGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25z
OwogICAgICAgICBtX2F1ZGlvQnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+
KGRlc2NyaXB0aW9uLCBXVEY6OnNhZmVDYXN0PHVpbnQzMl90PihudW1iZXJPZkZyYW1lcykpOwog
ICAgICAgICBhdWRpb0J1ZmZlciA9ICZkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KCptX2F1
ZGlvQnVmZmVyKTsKICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCmluZGV4IGI0ODQzYzQ0MWYzY2Nk
NjNjZjcyNjk5ZTA4MjVhNzkzYzQxMDY1OGEuLmZiZmQxY2E5ZTllNGIxYmVjYmQ1NjVkMDUzOWJj
ZjcxN2YwYzg4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
U2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApAQCAtMjEwLDYgKzIxMCw5IEBAIHZvaWQgU2Ny
aXB0UHJvY2Vzc29yTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIC8v
IG1fYnVmZmVyUmVhZFdyaXRlSW5kZXggd2lsbCB3cmFwIGJhY2sgYXJvdW5kIHRvIDAgd2hlbiB0
aGUgY3VycmVudCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgYXJlIGZ1bGwuCiAgICAgLy8gV2hl
biB0aGlzIGhhcHBlbnMsIGZpcmUgYW4gZXZlbnQgYW5kIHN3YXAgYnVmZmVycy4KICAgICBpZiAo
IW1fYnVmZmVyUmVhZFdyaXRlSW5kZXgpIHsKKyAgICAgICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5j
dGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4KKyAgICAg
ICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25zOworCiAgICAgICAgIC8vIFJlZmVyZW5jZSBvdXJzZWxmIHNvIHdl
IGRvbid0IGFjY2lkZW50YWxseSBnZXQgZGVsZXRlZCBiZWZvcmUgZmlyZVByb2Nlc3NFdmVudCgp
IGdldHMgY2FsbGVkLgogICAgICAgICAvLyBXZSBvbmx5IHdhaXQgZm9yIHNjcmlwdCBjb2RlIGV4
ZWN1dGlvbiB3aGVuIHRoZSBjb250ZXh0IGlzIGFuIG9mZmxpbmUgb25lIGZvciBwZXJmb3JtYW5j
ZSByZWFzb25zLgogICAgICAgICBpZiAoY29udGV4dCgpLmlzT2ZmbGluZUNvbnRleHQoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423765</attachid>
            <date>2021-03-19 13:04:17 -0700</date>
            <delta_ts>2021-03-22 13:11:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223226-20210319130416.patch</filename>
            <type>text/plain</type>
            <size>18695</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE3ZTY3NzU1MjFkMDdmZjlhZDlhYTBk
M2YyNzExZDJhNjIwNzYwYzAuLjc2Mjg1ZjQzMzZiMmUxOTNkNTM3ZTcwNjU1ZmQ5ZmE0YTgyNDBm
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDMtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBndWFyZCBhZ2FpbnN0IGhl
YXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZSB0byBGYXN0TWFsbG9jLmggdG8gZW5hYmxlIGFzc2VydGlvbnMgZ3VhcmRpbmcg
YWdhaW5zdAorICAgICAgICBkb2luZyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBjdXJyZW50IHRo
cmVhZCAoZHVyaW5nIHRoZSBsaWZldGltZSBvZiB0aGUgU2NvcGUgb2JqZWN0KS4KKworICAgICAg
ICBBbHNvIGFkZCBhIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSB0aG9zZSBjaGVja3MKKyAgICAgICAgdG8gYWxsb3cg
Zm9yIHNvbWUgdmVyeSBzcGVjaWZpYyBhc3NlcnRpb25zIChlaXRoZXIgYmVjYXVzZSB0aGV5IGFy
ZSByZXF1aXJlZCwgb3Igc2ltcGx5IGJlY2F1c2UKKyAgICAgICAgdGhleSBhcmUgbm90IGZpeGVk
IHlldCkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAgIChXVEY6OkZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlKToKKyAgICAgICAgKFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVu
dFRocmVhZFNjb3BlOjp+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAg
ICAgICAgKFdURjo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZTo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisgICAg
ICAgIChXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGU6
On5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAgICAg
ICAgKFdURjo6dHJ5RmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OmZhc3RNYWxsb2MpOgorICAg
ICAgICAoV1RGOjp0cnlGYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6ZmFzdENhbGxvYyk6Cisg
ICAgICAgIChXVEY6OmZhc3RSZWFsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxsb2Mp
OgorICAgICAgICAoV1RGOjpmYXN0QWxpZ25lZE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZh
c3RBbGlnbmVkTWFsbG9jKToKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5oOgorICAgICAgICAo
V1RGOjpGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU6On5Gb3JiaWRNYWxsb2NV
c2VGb3JDdXJyZW50VGhyZWFkU2NvcGUpOgorICAgICAgICAoV1RGOjpEaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
c0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisKIDIwMjEtMDMtMTkgIFNhbSBXZWluaWcgIDx3ZWlu
aWdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBQcm9wZXJ0eU5hbWUgcGFyYW1ldGVyIHRvIGN1
c3RvbSBzZXR0ZXJzIHRvIGFsbG93IHNoYXJlZCBpbXBsZW1lbnRhdGlvbnMgdG8gZG8gbGF0ZSBu
YW1lIGxvb2t1cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE1OTRmMjcwOTZhMWZkZWFhNmJmZjYzOTU4NzdhY2Fi
OWZiZTBmN2MuLjU1MDI1Y2NkNTk2YTIwMDQ2NGJlZmU2MzA3YWQ5NDM0OWYzNjBjOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMS0wMy0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhc3NlcnRpb25zIHRvIGd1YXJkIGFnYWluc3QgaGVh
cCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBndWFyZCBhZ2FpbnN0
IGhlYXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZCBkdXJpbmcKKyAgICAgICAgYXVk
aW8gcHJvY2Vzc2luZywgc2luY2UgdGhvc2UgYXJlIGJhZCBmb3IgcGVyZm9ybWFuY2UuIEkgZml4
ZWQgYW55IG9mIHRoZQorICAgICAgICBpc3N1ZXMgZm91bmQgYnkgdGhlc2UgYXNzZXJ0aW9ucyBp
biBkZXBlbmRlbmN5IGJ1Z3MuIFNvbWUgaXNzdWVzIHJlbWFpbgorICAgICAgICBhbmQgYXJlIHBy
b3RlY3RlZCBieSBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3Bl
IHRvIGF2b2lkCisgICAgICAgIHRyaXBwaW5nIHRoZSBuZXcgYXNzZXJ0aW9ucy4KKworICAgICAg
ICBSaWdodCBub3csIHRoZSBhc3NlcnRpb25zIG9ubHkgcHJvdGVjdCBhdWRpbyBwcm9jZXNzaW5n
LCBub3QgcHJlL3Bvc3QgcXVhbnR1bQorICAgICAgICByZW5kZXJpbmcgY2FzdHMuIElkZWFsbHks
IHdlJ2QgZXhwYW5kIHRoZSBzY29wZSBvZiB0aGVzZSBhc3NlcnRpb25zIHRvIGNvdmVyCisgICAg
ICAgIGV2ZXJ5dGhpbmcgdGhhdCdzIGRvbmUgb24gdGhlIGF1ZGlvIHRocmVhZCBidXQgdGhpcyB3
aWxsIHJlcXVpcmUgbW9yZSBmaXhlcy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bk5vZGU6OnJlbmRlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlOjpmaW5pc2gpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjpmaXJlUHJvY2Vzc29y
RXJyb3JPbk1haW5UaHJlYWQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nv
cjo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nl
c3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJv
Y2Vzcyk6CisKIDIwMjEtMDMtMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFueSBtZWRpYS9tZWRpYS1mcmFnbWVudHMvIHRlc3RzIGFyZSBjcmFzaGluZyBk
dWUgdG8gb3RoZXIgdGVzdHMgdGhhdCBydW4gYmVmb3JlIHRoZW0uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3Bw
CmluZGV4IDYwM2M2Mzg5YTUxMGE2NmY5YWM5NWYwNjNmMzVlMDM3MGE3NzRiNTkuLmFmYzE2ZTQy
MTViMDUzYTUyNTA3MTI2M2M4MjJmZDQ0NzljMzk5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCkBA
IC01Myw2ICs1MywzMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmIEFTU0VSVF9FTkFCTEVE
Cit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQ7
Cit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNj
b3BlQ291bnQ7CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6Rm9yYmlk
TWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkKK3sKKyAgICArK2ZvcmJpZE1hbGxvY1Vz
ZVNjb3BlQ291bnQ7Cit9CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6
fkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNTRVJUKGZv
cmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOworICAgIC0tZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3Vu
dDsKK30KKworRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZTo6
RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAg
KytkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50OworfQorCitEaXNhYmxlTWFsbG9j
UmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0
aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNTRVJUKGRpc2FibGVNYWxsb2NS
ZXN0cmljdGlvblNjb3BlQ291bnQpOworICAgIC0tZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2Nv
cGVDb3VudDsKK30KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTkRFQlVHKQogbmFtZXNwYWNlIHsK
IC8vIFdlIGRvIG5vdCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSBoZXJl
IGR1ZSB0byB0aGUgZWRnZSBjYXNlIGluIFZDKysuCkBAIC0xOTQsMTIgKzIyMSwxNCBAQCB2b2lk
IGZhc3RBbGlnbmVkRnJlZSh2b2lkKiBwKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdE1h
bGxvYyhzaXplX3QgbikgCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAgIEFT
U0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25TY29wZUNvdW50KTsKICAgICByZXR1cm4gbWFsbG9jKG4pOwogfQogCiB2b2lkKiBmYXN0TWFs
bG9jKHNpemVfdCBuKSAKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG4pOworICAgIEFT
U0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBtYWxsb2Mobik7CiAgICAgaWYgKCFy
ZXN1bHQpCiAgICAgICAgIENSQVNIKCk7CkBAIC0yMTAsMTIgKzIzOSwxNCBAQCB2b2lkKiBmYXN0
TWFsbG9jKHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENhbGxvYyhzaXpl
X3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VF
RFNfTElNSVQobl9lbGVtZW50cyAqIGVsZW1lbnRfc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRN
YWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQp
OwogICAgIHJldHVybiBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKIH0KIAogdm9p
ZCogZmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsK
ICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG5fZWxlbWVudHMgKiBlbGVtZW50X3NpemUpOwor
ICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBjYWxsb2Mobl9lbGVtZW50
cywgZWxlbWVudF9zaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgQ1JBU0goKTsKQEAg
LTIzMSw2ICsyNjIsNyBAQCB2b2lkIGZhc3RGcmVlKHZvaWQqIHApCiB2b2lkKiBmYXN0UmVhbGxv
Yyh2b2lkKiBwLCBzaXplX3QgbikKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG4pOwor
ICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSByZWFsbG9jKHAsIG4pOwog
ICAgIGlmICghcmVzdWx0KQogICAgICAgICBDUkFTSCgpOwpAQCAtMjQwLDYgKzI3Miw3IEBAIHZv
aWQqIGZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUg
dHJ5RmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7CiAgICAgRkFJTF9JRl9FWENFRURT
X0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gcmVhbGxvYyhwLCBu
KTsKIH0KIApAQCAtNDg4LDYgKzUyMSw3IEBAIGJvb2wgaXNGYXN0TWFsbG9jRW5hYmxlZCgpCiB2
b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19XSVRISU5fTElN
SVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxs
b2M6OmFwaTo6bWFsbG9jKHNpemUpOwogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04p
ICYmIFRSQUNLX01BTExPQ19DQUxMU1RBQ0sKICAgICBpZiAoIUF2b2lkUmVjb3JkaW5nU2NvcGU6
OmF2b2lkUmVjb3JkaW5nQ291bnQoKSkKQEAgLTUxMCw2ICs1NDQsNyBAQCB2b2lkKiBmYXN0Q2Fs
bG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogdm9pZCogZmFzdFJl
YWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElO
X0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBk
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBi
bWFsbG9jOjphcGk6OnJlYWxsb2Mob2JqZWN0LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hF
QVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJl
Y29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NDMsNiArNTc4LDcgQEAg
c2l6ZV90IGZhc3RNYWxsb2NHb29kU2l6ZShzaXplX3Qgc2l6ZSkKIHZvaWQqIGZhc3RBbGlnbmVk
TWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19X
SVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50
IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3Vs
dCA9IGJtYWxsb2M6OmFwaTo6bWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFCTEUo
TUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYg
KCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NTQsNiAr
NTkwLDcgQEAgdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90
IHNpemUpCiB2b2lkKiB0cnlGYXN0QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxpZ25tZW50LCBzaXpl
X3Qgc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQoc2l6ZSk7CisgICAgQVNTRVJU
KCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNj
b3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6dHJ5TWVtYWxpZ24o
YWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBU
UkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9p
ZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NzAsNiArNjA3LDcgQEAgdm9pZCBmYXN0QWxpZ25lZEZy
ZWUodm9pZCogcCkKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IHNp
emUpCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9y
YmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNv
dW50KTsKICAgICByZXR1cm4gYm1hbGxvYzo6YXBpOjp0cnlNYWxsb2Moc2l6ZSk7CiB9CiAKQEAg
LTU4Niw2ICs2MjQsNyBAQCBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0Q2FsbG9jKHNpemVf
dCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUg
dHJ5RmFzdFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkKIHsKICAgICBGQUlM
X0lGX0VYQ0VFRFNfTElNSVQobmV3U2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VT
Y29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJl
dHVybiBibWFsbG9jOjphcGk6OnRyeVJlYWxsb2Mob2JqZWN0LCBuZXdTaXplKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oIGIvU291cmNlL1dURi93dGYvRmFz
dE1hbGxvYy5oCmluZGV4IDlhNTAwYTAxYzczNDNhMzZhYTAwM2QwZTIyYzhiZGQ2NWExMDc2Y2Eu
LjAyNGYxYjkxY2I5YWExZDA0YThjZTY0NGYxYmY1ZGZmZjFhNWM0ZDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9j
LmgKQEAgLTEyMiw2ICsxMjIsMzggQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZmFzdEVuYWJs
ZU1pbmlNb2RlKCk7CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGZhc3REaXNhYmxlU2NhdmVu
Z2VyKCk7CiAKK2NsYXNzIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSB7Citw
dWJsaWM6CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRm9yYmlk
TWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IH5Gb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKTsKKyNlbHNlCisgICAgRm9y
YmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkgPSBkZWZhdWx0OworICAgIH5Gb3Ji
aWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKSB7IH0KKyNlbmRpZgorCisgICAgRm9y
YmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKGNvbnN0IEZvcmJpZE1hbGxvY1VzZUZv
ckN1cnJlbnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1
cnJlbnRUaHJlYWRTY29wZShGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUmJikg
PSBkZWxldGU7CisgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVy
YXRvcj0oY29uc3QgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJikgPSBkZWxl
dGU7CisgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVyYXRvcj0o
Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiYpID0gZGVsZXRlOworfTsKKwor
Y2xhc3MgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSB7Citw
dWJsaWM6CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpOworICAgIFdURl9FWFBP
UlRfUFJJVkFURSB+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZSgpOworI2Vsc2UKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVh
ZFNjb3BlKCkgPSBkZWZhdWx0OworICAgIH5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3Vy
cmVudFRocmVhZFNjb3BlKCkgeyB9CisjZW5kaWYKKworICAgIERpc2FibGVNYWxsb2NSZXN0cmlj
dGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoY29uc3QgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
c0ZvckN1cnJlbnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIERpc2FibGVNYWxsb2NSZXN0
cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0Zv
ckN1cnJlbnRUaHJlYWRTY29wZSYmKSA9IGRlbGV0ZTsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVyYXRvcj0oY29uc3QgRGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIERpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmIG9wZXJhdG9yPShEaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlJiYpID0gZGVsZXRlOwor
fTsKKwogc3RydWN0IEZhc3RNYWxsb2NTdGF0aXN0aWNzIHsKICAgICBzaXplX3QgcmVzZXJ2ZWRW
TUJ5dGVzOwogICAgIHNpemVfdCBjb21taXR0ZWRWTUJ5dGVzOwpAQCAtMzAwLDkgKzMzMiwxMSBA
QCBzdHJ1Y3QgRmFzdEZyZWU8VFtdPiB7CiB1c2luZyBXVEY6OmZhc3RTZXRNYXhTaW5nbGVBbGxv
Y2F0aW9uU2l6ZTsKICNlbmRpZgogCit1c2luZyBXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlv
bnNGb3JDdXJyZW50VGhyZWFkU2NvcGU7CiB1c2luZyBXVEY6OkZhc3RBbGxvY2F0b3I7CiB1c2lu
ZyBXVEY6OkZhc3RNYWxsb2M7CiB1c2luZyBXVEY6OkZhc3RGcmVlOwordXNpbmcgV1RGOjpGb3Ji
aWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU7CiB1c2luZyBXVEY6OmlzRmFzdE1hbGxv
Y0VuYWJsZWQ7CiB1c2luZyBXVEY6OmZhc3RDYWxsb2M7CiB1c2luZyBXVEY6OmZhc3RGcmVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcAppbmRleCA5N2M5NmQ2ZmU1ZWU1NDYzNDg3YWY3ZjU1ZWY2Y2ZjY2NlNGM3
MmM2Li44N2U4ZTMxYTgwZDU5MjkxMzQxMTFiNTUyNTQwNjViYzYzZjA3MWVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcApAQCAtODYsMjAgKzg2LDI0IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJl
bmRlcihBdWRpb0J1cyosIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51CiAgICAg
aWYgKHdvcmtsZXRHbG9iYWxTY29wZSkKICAgICAgICAgd29ya2xldEdsb2JhbFNjb3BlLT5oYW5k
bGVQcmVSZW5kZXJUYXNrcygpOwogCi0gICAgLy8gVGhpcyB3aWxsIGNhdXNlIHRoZSBub2RlKHMp
IGNvbm5lY3RlZCB0byB1cyB0byBwcm9jZXNzLCB3aGljaCBpbiB0dXJuIHdpbGwgcHVsbCBvbiB0
aGVpciBpbnB1dChzKSwKLSAgICAvLyBhbGwgdGhlIHdheSBiYWNrd2FyZHMgdGhyb3VnaCB0aGUg
cmVuZGVyaW5nIGdyYXBoLgotICAgIEF1ZGlvQnVzKiByZW5kZXJlZEJ1cyA9IGlucHV0KDApLT5w
dWxsKGRlc3RpbmF0aW9uQnVzLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgCi0gICAgaWYgKCFyZW5k
ZXJlZEJ1cykKLSAgICAgICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKLSAgICBlbHNlIGlmIChy
ZW5kZXJlZEJ1cyAhPSBkZXN0aW5hdGlvbkJ1cykgewotICAgICAgICAvLyBpbi1wbGFjZSBwcm9j
ZXNzaW5nIHdhcyBub3QgcG9zc2libGUgLSBzbyBjb3B5Ci0gICAgICAgIGRlc3RpbmF0aW9uQnVz
LT5jb3B5RnJvbSgqcmVuZGVyZWRCdXMpOworICAgIHsKKyAgICAgICAgRm9yYmlkTWFsbG9jVXNl
Rm9yQ3VycmVudFRocmVhZFNjb3BlIGZvcmJpZE1hbGxvY1VzZTsKKworICAgICAgICAvLyBUaGlz
IHdpbGwgY2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNo
IGluIHR1cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAorICAgICAgICAvLyBhbGwgdGhl
IHdheSBiYWNrd2FyZHMgdGhyb3VnaCB0aGUgcmVuZGVyaW5nIGdyYXBoLgorICAgICAgICBBdWRp
b0J1cyogcmVuZGVyZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5hdGlvbkJ1cywgbnVtYmVy
T2ZGcmFtZXMpOworCisgICAgICAgIGlmICghcmVuZGVyZWRCdXMpCisgICAgICAgICAgICBkZXN0
aW5hdGlvbkJ1cy0+emVybygpOworICAgICAgICBlbHNlIGlmIChyZW5kZXJlZEJ1cyAhPSBkZXN0
aW5hdGlvbkJ1cykgeworICAgICAgICAgICAgLy8gaW4tcGxhY2UgcHJvY2Vzc2luZyB3YXMgbm90
IHBvc3NpYmxlIC0gc28gY29weQorICAgICAgICAgICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9t
KCpyZW5kZXJlZEJ1cyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBQcm9jZXNzIG5vZGVzIHdo
aWNoIG5lZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBjb25uZWN0
ZWQgdG8gYW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nlc3MuCisgICAgICAgIGNvbnRl
eHQoKS5wcm9jZXNzQXV0b21hdGljUHVsbE5vZGVzKG51bWJlck9mRnJhbWVzKTsKICAgICB9CiAK
LSAgICAvLyBQcm9jZXNzIG5vZGVzIHdoaWNoIG5lZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNh
dXNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8gYW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRv
IHByb2Nlc3MuCi0gICAgY29udGV4dCgpLnByb2Nlc3NBdXRvbWF0aWNQdWxsTm9kZXMobnVtYmVy
T2ZGcmFtZXMpOwotCiAgICAgLy8gTGV0IHRoZSBjb250ZXh0IHRha2UgY2FyZSBvZiBhbnkgYnVz
aW5lc3MgYXQgdGhlIGVuZCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgogICAgIGNvbnRleHQoKS5o
YW5kbGVQb3N0UmVuZGVyVGFza3MoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcAppbmRl
eCA2MDU0MDUwODkxZTk2OGVkZTE4ZDM0NDBlNWY1ZTYyODg0NWE4NWE3Li4xZjg3ZDg4OGMzYmM0
NzZhZWFiY2VhODFmNThmMzhhMjE3NzYxOWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCkBA
IC0xOTcsNiArMTk3LDggQEAgdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OmZpbmlzaCgp
CiAgICAgbV9wbGF5YmFja1N0YXRlID0gRklOSVNIRURfU1RBVEU7CiAgICAgY29udGV4dCgpLmRl
Y3JlbWVudEFjdGl2ZVNvdXJjZUNvdW50KCk7CiAKKyAgICAvLyBEaXNwYXRjaGluZyBhIEZ1bmN0
aW9uIHRvIHRoZSBtYWluIHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9jYXRpb25zLgorICAgIERp
c2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uczsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgYXV0byByZWxlYXNlID0gbWFrZVNjb3BlRXhp
dChbJl0gKCkgewogICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGxvY2tlcihj
b250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggNTM4MjA1MTUyZGMyYjM0MDQxMGI2ZjdmOWFmOGNmNTBh
MWQyMzYwMi4uYzUzOWQ0OTZkNzM2NGMyM2NiYmM1NWUzMTdlYjg3NzFjNzFhNmQzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
Y3BwCkBAIC0yNzYsNiArMjc2LDggQEAgdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpmaXJlUHJvY2Vz
c29yRXJyb3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJyb3IgZXJyb3IpCiB7CiAgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CiAKKyAgICAvLyBEaXNwYXRjaGluZyBhIEZ1bmN0aW9uIHRvIHRo
ZSBtYWluIHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9jYXRpb25zLgorICAgIERpc2FibGVNYWxs
b2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0
aW9uczsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGVycm9yXSgpIG11dGFibGUgewogICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdl
OwogICAgICAgICBzd2l0Y2ggKGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKaW5kZXggOGE2ODIw
NWQ1ZjY3NzE2YjFkYzhhMGNhNGM4ZTJlZDFiYzQ5ZTJlMy4uOTYyNzFkY2JmMzg0NjdiZWViNzVl
NTZiNGE4MmY0ODEzNzhkYTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcApAQCAtMjUxLDYgKzI1MSw3
IEBAIHZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjCiAKIGJvb2wgQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
Ojpwcm9jZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8
UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2Vw
dGlvbikKIHsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNj
b3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgQVNTRVJUKG1fcHJvY2Vzc0NhbGxi
YWNrKTsKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9wcm9jZXNzQ2FsbGJhY2stPmdsb2Jh
bE9iamVjdCgpOwogICAgIEFTU0VSVChnbG9iYWxPYmplY3Quc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCAyNzY1NTRkOTE5MjMyOTYw
OWE1NDg0Yzc0MmRiNTAyNjJmZDNjZWY0Li44NzViOTI0YzhlYzExYjM3MmE2Zjg4ZTE0YmU3MzQ2
NTE4MDJjMmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC03OSw2ICs3OSw4
IEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKEF1ZGlvQnVzJiBi
dXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKIAogICAgIGF1dG8gZGVzY3JpcHRpb24gPSBzdHJl
YW1EZXNjcmlwdGlvbihtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCksIGJ1cy5udW1iZXJP
ZkNoYW5uZWxzKCkpOwogICAgIGlmICghYXVkaW9CdWZmZXIgfHwgYXVkaW9CdWZmZXItPmNoYW5u
ZWxDb3VudCgpICE9IGJ1cy5udW1iZXJPZkNoYW5uZWxzKCkpIHsKKyAgICAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBhdm9pZCB0aGlzIFdlYkF1ZGlvQnVmZmVyTGlzdCBhbGxvY2F0aW9uIG9uIHRo
ZSBhdWRpbyB0aHJlYWQuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJy
ZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICAgICAgbV9hdWRp
b0J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgV1RG
OjpzYWZlQ2FzdDx1aW50MzJfdD4obnVtYmVyT2ZGcmFtZXMpKTsKICAgICAgICAgYXVkaW9CdWZm
ZXIgPSAmZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PigqbV9hdWRpb0J1ZmZlcik7CiAgICAg
fSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Njcmlw
dFByb2Nlc3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3Jp
cHRQcm9jZXNzb3JOb2RlLmNwcAppbmRleCBiNDg0M2M0NDFmM2NjZDYzY2Y3MjY5OWUwODI1YTc5
M2M0MTA2NThhLi5mYmZkMWNhOWU5ZTRiMWJlY2JkNTY1ZDA1MzliY2Y3MTdmMGM4OGU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vz
c29yTm9kZS5jcHAKQEAgLTIxMCw2ICsyMTAsOSBAQCB2b2lkIFNjcmlwdFByb2Nlc3Nvck5vZGU6
OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAvLyBtX2J1ZmZlclJlYWRXcml0
ZUluZGV4IHdpbGwgd3JhcCBiYWNrIGFyb3VuZCB0byAwIHdoZW4gdGhlIGN1cnJlbnQgaW5wdXQg
YW5kIG91dHB1dCBidWZmZXJzIGFyZSBmdWxsLgogICAgIC8vIFdoZW4gdGhpcyBoYXBwZW5zLCBm
aXJlIGFuIGV2ZW50IGFuZCBzd2FwIGJ1ZmZlcnMuCiAgICAgaWYgKCFtX2J1ZmZlclJlYWRXcml0
ZUluZGV4KSB7CisgICAgICAgIC8vIERpc3BhdGNoaW5nIGEgRnVuY3Rpb24gdG8gdGhlIG1haW4g
dGhyZWFkIHJlcXVpcmVzIGhlYXAgYWxsb2NhdGlvbnMuCisgICAgICAgIERpc2FibGVNYWxsb2NS
ZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
czsKKwogICAgICAgICAvLyBSZWZlcmVuY2Ugb3Vyc2VsZiBzbyB3ZSBkb24ndCBhY2NpZGVudGFs
bHkgZ2V0IGRlbGV0ZWQgYmVmb3JlIGZpcmVQcm9jZXNzRXZlbnQoKSBnZXRzIGNhbGxlZC4KICAg
ICAgICAgLy8gV2Ugb25seSB3YWl0IGZvciBzY3JpcHQgY29kZSBleGVjdXRpb24gd2hlbiB0aGUg
Y29udGV4dCBpcyBhbiBvZmZsaW5lIG9uZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4KICAgICAg
ICAgaWYgKGNvbnRleHQoKS5pc09mZmxpbmVDb250ZXh0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKaW5kZXggZWJiMjI0M2MxMWJmMTMyMjUxNmY3ODEzMzAxYTNlZWJiMzA1MzdhZS4uYzdlMDM4
Mjg4MDAyYmVlMzBiNGQyZGI2ZGJkMGJlYmU4NjY0ZmE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKQEAgLTE3NSw2ICsxNzUsOCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnVwZGF0ZUhh
c1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKCkKICAgICBpZiAobV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0
YSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5jdGlvbiB0byB0
aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4KKyAgICBEaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmlj
dGlvbnM7CiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423923</attachid>
            <date>2021-03-22 13:11:43 -0700</date>
            <delta_ts>2021-03-22 13:34:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223226-20210322131143.patch</filename>
            <type>text/plain</type>
            <size>21651</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQyM2VmZmEyYmVmMzM0MjlkNDk1N2Nj
Nzg4MzlmZWEyNmQxOTVmODUuLjY4Y2E0MWJmZDQyZWUxMmMzNzlmNzEyNzE0M2VmM2E5OTJmYjkx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDMtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBndWFyZCBhZ2FpbnN0IGhl
YXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZSB0byBGYXN0TWFsbG9jLmggdG8gZW5hYmxlIGFzc2VydGlvbnMgZ3VhcmRpbmcg
YWdhaW5zdAorICAgICAgICBkb2luZyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBjdXJyZW50IHRo
cmVhZCAoZHVyaW5nIHRoZSBsaWZldGltZSBvZiB0aGUgU2NvcGUgb2JqZWN0KS4KKworICAgICAg
ICBBbHNvIGFkZCBhIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSB0aG9zZSBjaGVja3MKKyAgICAgICAgdG8gYWxsb3cg
Zm9yIHNvbWUgdmVyeSBzcGVjaWZpYyBhc3NlcnRpb25zIChlaXRoZXIgYmVjYXVzZSB0aGV5IGFy
ZSByZXF1aXJlZCwgb3Igc2ltcGx5IGJlY2F1c2UKKyAgICAgICAgdGhleSBhcmUgbm90IGZpeGVk
IHlldCkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAgIChXVEY6OkZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlKToKKyAgICAgICAgKFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVu
dFRocmVhZFNjb3BlOjp+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAg
ICAgICAgKFdURjo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZTo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisgICAg
ICAgIChXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGU6
On5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAgICAg
ICAgKFdURjo6dHJ5RmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OmZhc3RNYWxsb2MpOgorICAg
ICAgICAoV1RGOjp0cnlGYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6ZmFzdENhbGxvYyk6Cisg
ICAgICAgIChXVEY6OmZhc3RSZWFsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxsb2Mp
OgorICAgICAgICAoV1RGOjpmYXN0QWxpZ25lZE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZh
c3RBbGlnbmVkTWFsbG9jKToKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5oOgorICAgICAgICAo
V1RGOjpGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU6On5Gb3JiaWRNYWxsb2NV
c2VGb3JDdXJyZW50VGhyZWFkU2NvcGUpOgorICAgICAgICAoV1RGOjpEaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
c0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisKIDIwMjEtMDMtMTkgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gTWFrZSBpdCBwb3NzaWJsZSB0byByZWxl
YXNlIGEgV0tXZWJWaWV3IG9uIGEgbm9uLW1haW4gdGhyZWFkIHdpdGhvdXQgYSBjcmFzaCBkdWUg
dG8gV0tTY3JpcHRNZXNzYWdlIHJhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxN2NjOGQwOGI5ZjkxMDYwMDJj
MDQyOWQ1MGZlOTViYzJjOGVkNDlhLi5hNTAxN2RlMDJmNmQ1Yjk1MGU4NjgwNmEyMWMzNThkNTgy
ZjBjN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDMtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBndWFy
ZCBhZ2FpbnN0IGhlYXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjI2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFzc2VydGlvbnMgdG8g
Z3VhcmQgYWdhaW5zdCBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQgZHVyaW5n
CisgICAgICAgIGF1ZGlvIHByb2Nlc3NpbmcsIHNpbmNlIHRob3NlIGFyZSBiYWQgZm9yIHBlcmZv
cm1hbmNlLiBJIGZpeGVkIGFueSBvZiB0aGUKKyAgICAgICAgaXNzdWVzIGZvdW5kIGJ5IHRoZXNl
IGFzc2VydGlvbnMgaW4gZGVwZW5kZW5jeSBidWdzLiBTb21lIGlzc3VlcyByZW1haW4KKyAgICAg
ICAgYW5kIGFyZSBwcm90ZWN0ZWQgYnkgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJl
bnRUaHJlYWRTY29wZSB0byBhdm9pZAorICAgICAgICB0cmlwcGluZyB0aGUgbmV3IGFzc2VydGlv
bnMuCisKKyAgICAgICAgUmlnaHQgbm93LCB0aGUgYXNzZXJ0aW9ucyBvbmx5IHByb3RlY3QgYXVk
aW8gcHJvY2Vzc2luZywgbm90IHByZS9wb3N0IHF1YW50dW0KKyAgICAgICAgcmVuZGVyaW5nIGNh
c3RzLiBJZGVhbGx5LCB3ZSdkIGV4cGFuZCB0aGUgc2NvcGUgb2YgdGhlc2UgYXNzZXJ0aW9ucyB0
byBjb3ZlcgorICAgICAgICBldmVyeXRoaW5nIHRoYXQncyBkb25lIG9uIHRoZSBhdWRpbyB0aHJl
YWQgYnV0IHRoaXMgd2lsbCByZXF1aXJlIG1vcmUgZml4ZXMuCisKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZTo6ZmluaXNoKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6
ZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dv
cmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2Nl
c3Nvck5vZGU6OnByb2Nlc3MpOgorCiAyMDIxLTAzLTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBBc3luYyBDbGlwYm9hcmQgcmVhZCBwcmV2ZW50cyBXZWJS
VEMgSU9TdXJmYWNlcyBmcm9tIGJlaW5nIHJlbGVhc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9GYXN0TWFsbG9jLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCmluZGV4
IDYwM2M2Mzg5YTUxMGE2NmY5YWM5NWYwNjNmMzVlMDM3MGE3NzRiNTkuLmFmYzE2ZTQyMTViMDUz
YTUyNTA3MTI2M2M4MjJmZDQ0NzljMzk5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zh
c3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCkBAIC01Myw2
ICs1MywzMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmIEFTU0VSVF9FTkFCTEVECit0aHJl
YWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit0aHJl
YWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291
bnQ7CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9j
VXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkKK3sKKyAgICArK2ZvcmJpZE1hbGxvY1VzZVNjb3Bl
Q291bnQ7Cit9CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6fkZvcmJp
ZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNTRVJUKGZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQpOworICAgIC0tZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudDsKK30K
KworRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZTo6RGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgKytkaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50OworfQorCitEaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0Zv
ckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNTRVJUKGRpc2FibGVNYWxsb2NSZXN0cmlj
dGlvblNjb3BlQ291bnQpOworICAgIC0tZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3Vu
dDsKK30KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTkRFQlVHKQogbmFtZXNwYWNlIHsKIC8vIFdl
IGRvIG5vdCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSBoZXJlIGR1ZSB0
byB0aGUgZWRnZSBjYXNlIGluIFZDKysuCkBAIC0xOTQsMTIgKzIyMSwxNCBAQCB2b2lkIGZhc3RB
bGlnbmVkRnJlZSh2b2lkKiBwKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdE1hbGxvYyhz
aXplX3QgbikgCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAgIEFTU0VSVCgh
Zm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29w
ZUNvdW50KTsKICAgICByZXR1cm4gbWFsbG9jKG4pOwogfQogCiB2b2lkKiBmYXN0TWFsbG9jKHNp
emVfdCBuKSAKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG4pOworICAgIEFTU0VSVCgh
Zm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29w
ZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBtYWxsb2Mobik7CiAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgIENSQVNIKCk7CkBAIC0yMTAsMTIgKzIzOSwxNCBAQCB2b2lkKiBmYXN0TWFsbG9j
KHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENhbGxvYyhzaXplX3Qgbl9l
bGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElN
SVQobl9lbGVtZW50cyAqIGVsZW1lbnRfc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NV
c2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAg
IHJldHVybiBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKIH0KIAogdm9pZCogZmFz
dENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBB
U1NFUlRfSVNfV0lUSElOX0xJTUlUKG5fZWxlbWVudHMgKiBlbGVtZW50X3NpemUpOworICAgIEFT
U0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBjYWxsb2Mobl9lbGVtZW50cywgZWxl
bWVudF9zaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgQ1JBU0goKTsKQEAgLTIzMSw2
ICsyNjIsNyBAQCB2b2lkIGZhc3RGcmVlKHZvaWQqIHApCiB2b2lkKiBmYXN0UmVhbGxvYyh2b2lk
KiBwLCBzaXplX3QgbikKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG4pOworICAgIEFT
U0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSByZWFsbG9jKHAsIG4pOwogICAgIGlm
ICghcmVzdWx0KQogICAgICAgICBDUkFTSCgpOwpAQCAtMjQwLDYgKzI3Miw3IEBAIHZvaWQqIGZh
c3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFz
dFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlU
KG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gcmVhbGxvYyhwLCBuKTsKIH0K
IApAQCAtNDg4LDYgKzUyMSw3IEBAIGJvb2wgaXNGYXN0TWFsbG9jRW5hYmxlZCgpCiB2b2lkKiBm
YXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQoc2l6
ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxs
b2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFw
aTo6bWFsbG9jKHNpemUpOwogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pICYmIFRS
QUNLX01BTExPQ19DQUxMU1RBQ0sKICAgICBpZiAoIUF2b2lkUmVjb3JkaW5nU2NvcGU6OmF2b2lk
UmVjb3JkaW5nQ291bnQoKSkKQEAgLTUxMCw2ICs1NDQsNyBAQCB2b2lkKiBmYXN0Q2FsbG9jKHNp
emVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogdm9pZCogZmFzdFJlYWxsb2Mo
dm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlU
KHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBibWFsbG9j
OjphcGk6OnJlYWxsb2Mob2JqZWN0LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJF
QUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGlu
Z1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NDMsNiArNTc4LDcgQEAgc2l6ZV90
IGZhc3RNYWxsb2NHb29kU2l6ZShzaXplX3Qgc2l6ZSkKIHZvaWQqIGZhc3RBbGlnbmVkTWFsbG9j
KHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19XSVRISU5f
TElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRp
c2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJt
YWxsb2M6OmFwaTo6bWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9D
X0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9p
ZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NTQsNiArNTkwLDcg
QEAgdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUp
CiB2b2lkKiB0cnlGYXN0QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6
ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3Ji
aWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291
bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6dHJ5TWVtYWxpZ24oYWxpZ25t
ZW50LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19N
QUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29y
ZGluZ0NvdW50KCkpCkBAIC01NzAsNiArNjA3LDcgQEAgdm9pZCBmYXN0QWxpZ25lZEZyZWUodm9p
ZCogcCkKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IHNpemUpCiB7
CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFs
bG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsK
ICAgICByZXR1cm4gYm1hbGxvYzo6YXBpOjp0cnlNYWxsb2Moc2l6ZSk7CiB9CiAKQEAgLTU4Niw2
ICs2MjQsNyBAQCBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0Q2FsbG9jKHNpemVfdCBudW1F
bGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFz
dFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkKIHsKICAgICBGQUlMX0lGX0VY
Q0VFRFNfTElNSVQobmV3U2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNv
dW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBi
bWFsbG9jOjphcGk6OnRyeVJlYWxsb2Mob2JqZWN0LCBuZXdTaXplKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oIGIvU291cmNlL1dURi93dGYvRmFzdE1hbGxv
Yy5oCmluZGV4IDlhNTAwYTAxYzczNDNhMzZhYTAwM2QwZTIyYzhiZGQ2NWExMDc2Y2EuLjAyNGYx
YjkxY2I5YWExZDA0YThjZTY0NGYxYmY1ZGZmZjFhNWM0ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0Zhc3RNYWxsb2MuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKQEAg
LTEyMiw2ICsxMjIsMzggQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZmFzdEVuYWJsZU1pbmlN
b2RlKCk7CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGZhc3REaXNhYmxlU2NhdmVuZ2VyKCk7
CiAKK2NsYXNzIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSB7CitwdWJsaWM6
CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRm9yYmlkTWFsbG9j
VXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIH5Gb3Ji
aWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKTsKKyNlbHNlCisgICAgRm9yYmlkTWFs
bG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkgPSBkZWZhdWx0OworICAgIH5Gb3JiaWRNYWxs
b2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKSB7IH0KKyNlbmRpZgorCisgICAgRm9yYmlkTWFs
bG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKGNvbnN0IEZvcmJpZE1hbGxvY1VzZUZvckN1cnJl
bnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZShGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUmJikgPSBkZWxl
dGU7CisgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVyYXRvcj0o
Y29uc3QgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJikgPSBkZWxldGU7Cisg
ICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVyYXRvcj0oRm9yYmlk
TWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiYpID0gZGVsZXRlOworfTsKKworY2xhc3Mg
RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSB7CitwdWJsaWM6
CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpOwor
I2Vsc2UKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3Bl
KCkgPSBkZWZhdWx0OworICAgIH5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRo
cmVhZFNjb3BlKCkgeyB9CisjZW5kaWYKKworICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUoY29uc3QgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1
cnJlbnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlv
bnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJl
bnRUaHJlYWRTY29wZSYmKSA9IGRlbGV0ZTsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25z
Rm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVyYXRvcj0oY29uc3QgRGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIERpc2FibGVNYWxs
b2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmIG9wZXJhdG9yPShEaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlJiYpID0gZGVsZXRlOworfTsKKwog
c3RydWN0IEZhc3RNYWxsb2NTdGF0aXN0aWNzIHsKICAgICBzaXplX3QgcmVzZXJ2ZWRWTUJ5dGVz
OwogICAgIHNpemVfdCBjb21taXR0ZWRWTUJ5dGVzOwpAQCAtMzAwLDkgKzMzMiwxMSBAQCBzdHJ1
Y3QgRmFzdEZyZWU8VFtdPiB7CiB1c2luZyBXVEY6OmZhc3RTZXRNYXhTaW5nbGVBbGxvY2F0aW9u
U2l6ZTsKICNlbmRpZgogCit1c2luZyBXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JD
dXJyZW50VGhyZWFkU2NvcGU7CiB1c2luZyBXVEY6OkZhc3RBbGxvY2F0b3I7CiB1c2luZyBXVEY6
OkZhc3RNYWxsb2M7CiB1c2luZyBXVEY6OkZhc3RGcmVlOwordXNpbmcgV1RGOjpGb3JiaWRNYWxs
b2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU7CiB1c2luZyBXVEY6OmlzRmFzdE1hbGxvY0VuYWJs
ZWQ7CiB1c2luZyBXVEY6OmZhc3RDYWxsb2M7CiB1c2luZyBXVEY6OmZhc3RGcmVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcAppbmRleCA5N2M5NmQ2ZmU1ZWU1NDYzNDg3YWY3ZjU1ZWY2Y2ZjY2NlNGM3MmM2Li44
N2U4ZTMxYTgwZDU5MjkxMzQxMTFiNTUyNTQwNjViYzYzZjA3MWVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cApAQCAtODYsMjAgKzg2LDI0IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlcihB
dWRpb0J1cyosIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51CiAgICAgaWYgKHdv
cmtsZXRHbG9iYWxTY29wZSkKICAgICAgICAgd29ya2xldEdsb2JhbFNjb3BlLT5oYW5kbGVQcmVS
ZW5kZXJUYXNrcygpOwogCi0gICAgLy8gVGhpcyB3aWxsIGNhdXNlIHRoZSBub2RlKHMpIGNvbm5l
Y3RlZCB0byB1cyB0byBwcm9jZXNzLCB3aGljaCBpbiB0dXJuIHdpbGwgcHVsbCBvbiB0aGVpciBp
bnB1dChzKSwKLSAgICAvLyBhbGwgdGhlIHdheSBiYWNrd2FyZHMgdGhyb3VnaCB0aGUgcmVuZGVy
aW5nIGdyYXBoLgotICAgIEF1ZGlvQnVzKiByZW5kZXJlZEJ1cyA9IGlucHV0KDApLT5wdWxsKGRl
c3RpbmF0aW9uQnVzLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgCi0gICAgaWYgKCFyZW5kZXJlZEJ1
cykKLSAgICAgICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKLSAgICBlbHNlIGlmIChyZW5kZXJl
ZEJ1cyAhPSBkZXN0aW5hdGlvbkJ1cykgewotICAgICAgICAvLyBpbi1wbGFjZSBwcm9jZXNzaW5n
IHdhcyBub3QgcG9zc2libGUgLSBzbyBjb3B5Ci0gICAgICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5
RnJvbSgqcmVuZGVyZWRCdXMpOworICAgIHsKKyAgICAgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlIGZvcmJpZE1hbGxvY1VzZTsKKworICAgICAgICAvLyBUaGlzIHdpbGwg
Y2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGluIHR1
cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAorICAgICAgICAvLyBhbGwgdGhlIHdheSBi
YWNrd2FyZHMgdGhyb3VnaCB0aGUgcmVuZGVyaW5nIGdyYXBoLgorICAgICAgICBBdWRpb0J1cyog
cmVuZGVyZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5hdGlvbkJ1cywgbnVtYmVyT2ZGcmFt
ZXMpOworCisgICAgICAgIGlmICghcmVuZGVyZWRCdXMpCisgICAgICAgICAgICBkZXN0aW5hdGlv
bkJ1cy0+emVybygpOworICAgICAgICBlbHNlIGlmIChyZW5kZXJlZEJ1cyAhPSBkZXN0aW5hdGlv
bkJ1cykgeworICAgICAgICAgICAgLy8gaW4tcGxhY2UgcHJvY2Vzc2luZyB3YXMgbm90IHBvc3Np
YmxlIC0gc28gY29weQorICAgICAgICAgICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKCpyZW5k
ZXJlZEJ1cyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBQcm9jZXNzIG5vZGVzIHdoaWNoIG5l
ZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8g
YW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nlc3MuCisgICAgICAgIGNvbnRleHQoKS5w
cm9jZXNzQXV0b21hdGljUHVsbE5vZGVzKG51bWJlck9mRnJhbWVzKTsKICAgICB9CiAKLSAgICAv
LyBQcm9jZXNzIG5vZGVzIHdoaWNoIG5lZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRo
ZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8gYW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nl
c3MuCi0gICAgY29udGV4dCgpLnByb2Nlc3NBdXRvbWF0aWNQdWxsTm9kZXMobnVtYmVyT2ZGcmFt
ZXMpOwotCiAgICAgLy8gTGV0IHRoZSBjb250ZXh0IHRha2UgY2FyZSBvZiBhbnkgYnVzaW5lc3Mg
YXQgdGhlIGVuZCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgogICAgIGNvbnRleHQoKS5oYW5kbGVQ
b3N0UmVuZGVyVGFza3MoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcAppbmRleCA2MDU0
MDUwODkxZTk2OGVkZTE4ZDM0NDBlNWY1ZTYyODg0NWE4NWE3Li4xZjg3ZDg4OGMzYmM0NzZhZWFi
Y2VhODFmNThmMzhhMjE3NzYxOWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCkBAIC0xOTcs
NiArMTk3LDggQEAgdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OmZpbmlzaCgpCiAgICAg
bV9wbGF5YmFja1N0YXRlID0gRklOSVNIRURfU1RBVEU7CiAgICAgY29udGV4dCgpLmRlY3JlbWVu
dEFjdGl2ZVNvdXJjZUNvdW50KCk7CiAKKyAgICAvLyBEaXNwYXRjaGluZyBhIEZ1bmN0aW9uIHRv
IHRoZSBtYWluIHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9jYXRpb25zLgorICAgIERpc2FibGVN
YWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uczsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldIHsKICAgICAgICAgYXV0byByZWxlYXNlID0gbWFrZVNjb3BlRXhpdChbJl0g
KCkgewogICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGxvY2tlcihjb250ZXh0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5jcHAKaW5kZXggNTM4MjA1MTUyZGMyYjM0MDQxMGI2ZjdmOWFmOGNmNTBhMWQyMzYw
Mi4uYzUzOWQ0OTZkNzM2NGMyM2NiYmM1NWUzMTdlYjg3NzFjNzFhNmQzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCkBA
IC0yNzYsNiArMjc2LDggQEAgdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpmaXJlUHJvY2Vzc29yRXJy
b3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJyb3IgZXJyb3IpCiB7CiAgICAgQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7CiAKKyAgICAvLyBEaXNwYXRjaGluZyBhIEZ1bmN0aW9uIHRvIHRoZSBtYWlu
IHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9jYXRpb25zLgorICAgIERpc2FibGVNYWxsb2NSZXN0
cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsK
ICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGVycm9yXSgpIG11dGFibGUgewogICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwogICAg
ICAgICBzd2l0Y2ggKGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKaW5kZXggNTVmNzExOGIxNGMy
Y2FkM2FmODg4ZWFiNTkwZjI3MjUxMjM4MzVkMy4uMDJlNGNjOTIwN2U4MDAzNTI1YzdlY2IyNzI2
ODA2NmYxMWIxYWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcApAQCAtMjMxLDYgKzIzMSw3IEBAIHZv
aWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjCiAKIGJvb2wgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9j
ZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1
ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbikK
IHsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRp
c2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgQVNTRVJUKG1fcHJvY2Vzc0NhbGxiYWNrKTsK
ICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9wcm9jZXNzQ2FsbGJhY2stPmdsb2JhbE9iamVj
dCgpOwogICAgIEFTU0VSVChnbG9iYWxPYmplY3Quc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCAyNzY1NTRkOTE5MjMyOTYwOWE1NDg0
Yzc0MmRiNTAyNjJmZDNjZWY0Li44NzViOTI0YzhlYzExYjM3MmE2Zjg4ZTE0YmU3MzQ2NTE4MDJj
MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC03OSw2ICs3OSw4IEBAIHZv
aWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKEF1ZGlvQnVzJiBidXMsIHNp
emVfdCBudW1iZXJPZkZyYW1lcykKIAogICAgIGF1dG8gZGVzY3JpcHRpb24gPSBzdHJlYW1EZXNj
cmlwdGlvbihtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCksIGJ1cy5udW1iZXJPZkNoYW5u
ZWxzKCkpOwogICAgIGlmICghYXVkaW9CdWZmZXIgfHwgYXVkaW9CdWZmZXItPmNoYW5uZWxDb3Vu
dCgpICE9IGJ1cy5udW1iZXJPZkNoYW5uZWxzKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhdm9pZCB0aGlzIFdlYkF1ZGlvQnVmZmVyTGlzdCBhbGxvY2F0aW9uIG9uIHRoZSBhdWRp
byB0aHJlYWQuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhy
ZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICAgICAgbV9hdWRpb0J1ZmZl
ciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgV1RGOjpzYWZl
Q2FzdDx1aW50MzJfdD4obnVtYmVyT2ZGcmFtZXMpKTsKICAgICAgICAgYXVkaW9CdWZmZXIgPSAm
ZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PigqbV9hdWRpb0J1ZmZlcik7CiAgICAgfSBlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nl
c3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmNwcAppbmRleCBiNDg0M2M0NDFmM2NjZDYzY2Y3MjY5OWUwODI1YTc5M2M0MTA2
NThhLi5mYmZkMWNhOWU5ZTRiMWJlY2JkNTY1ZDA1MzliY2Y3MTdmMGM4OGU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9k
ZS5jcHAKQEAgLTIxMCw2ICsyMTAsOSBAQCB2b2lkIFNjcmlwdFByb2Nlc3Nvck5vZGU6OnByb2Nl
c3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAvLyBtX2J1ZmZlclJlYWRXcml0ZUluZGV4
IHdpbGwgd3JhcCBiYWNrIGFyb3VuZCB0byAwIHdoZW4gdGhlIGN1cnJlbnQgaW5wdXQgYW5kIG91
dHB1dCBidWZmZXJzIGFyZSBmdWxsLgogICAgIC8vIFdoZW4gdGhpcyBoYXBwZW5zLCBmaXJlIGFu
IGV2ZW50IGFuZCBzd2FwIGJ1ZmZlcnMuCiAgICAgaWYgKCFtX2J1ZmZlclJlYWRXcml0ZUluZGV4
KSB7CisgICAgICAgIC8vIERpc3BhdGNoaW5nIGEgRnVuY3Rpb24gdG8gdGhlIG1haW4gdGhyZWFk
IHJlcXVpcmVzIGhlYXAgYWxsb2NhdGlvbnMuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmlj
dGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKwog
ICAgICAgICAvLyBSZWZlcmVuY2Ugb3Vyc2VsZiBzbyB3ZSBkb24ndCBhY2NpZGVudGFsbHkgZ2V0
IGRlbGV0ZWQgYmVmb3JlIGZpcmVQcm9jZXNzRXZlbnQoKSBnZXRzIGNhbGxlZC4KICAgICAgICAg
Ly8gV2Ugb25seSB3YWl0IGZvciBzY3JpcHQgY29kZSBleGVjdXRpb24gd2hlbiB0aGUgY29udGV4
dCBpcyBhbiBvZmZsaW5lIG9uZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4KICAgICAgICAgaWYg
KGNvbnRleHQoKS5pc09mZmxpbmVDb250ZXh0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpp
bmRleCA1NThjMzgyYTJlODQ1YjFlMDhkMDFkMzNkYjdmMjhjN2ExZmVjZGNkLi5lMzQ5NWYzMmY1
NDVjZGVlYWY5MzVhMDgxZDMwMDQ4YTBiMTU4OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1t
CkBAIC0xMDEsNiArMTAxLDkgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVEYXRhU291cmNlOjpzZXRJ
bnB1dEZvcm1hdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGYKIHsKICAgICBBU1NF
UlQoZm9ybWF0LnNhbXBsZVJhdGUoKSA+PSAwKTsKIAorICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMg
aGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgorICAgIERpc2FibGVNYWxsb2NS
ZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
czsKKwogICAgIG1faW5wdXREZXNjcmlwdGlvbiA9IG1ha2VVbmlxdWU8Q0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uPihmb3JtYXQpOwogICAgIGlmIChtX291dHB1dERlc2NyaXB0aW9uKQogICAgICAg
ICByZXR1cm4gc2V0dXBDb252ZXJ0ZXIoKTsKQEAgLTExMyw2ICsxMTYsOSBAQCBPU1N0YXR1cyBB
dWRpb1NhbXBsZURhdGFTb3VyY2U6OnNldE91dHB1dEZvcm1hdChjb25zdCBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mCiAgICAgQVNTRVJUKG1faW5wdXREZXNjcmlwdGlvbik7CiAgICAgQVNTRVJU
KGZvcm1hdC5zYW1wbGVSYXRlKCkgPj0gMCk7CiAKKyAgICAvLyBGSVhNRTogVGhpcyBkb2VzIGhl
YXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZC4KKyAgICBEaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7
CisKICAgICBtX291dHB1dERlc2NyaXB0aW9uID0gbWFrZVVuaXF1ZTxDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24+KGZvcm1hdCk7CiAgICAgaWYgKCFtX3JpbmdCdWZmZXIpCiAgICAgICAgIG1fcmlu
Z0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZU1vY2suY3BwCmluZGV4IDExYjM4ZjA1ZDI0OTc1NDJmODgzZjU2MTYwMjNiYzJiYzEy
ZWQzNWEuLjRhZWQ0ZjYzMjZmYWQ3ZWY3MGQ4ZjkxMGY5NzRjMzFkMWVjYWRlMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAKQEAgLTc3LDYgKzc3LDcgQEAgdm9pZCBNZWRp
YVJlY29yZGVyUHJpdmF0ZU1vY2s6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikK
IAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkKIHsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2J1ZmZlckxvY2spOwogICAgIG1fYnVmZmVyLmFw
cGVuZCgiQXVkaW8gVHJhY2sgSUQ6ICIpOwogICAgIG1fYnVmZmVyLmFwcGVuZChtX2F1ZGlvVHJh
Y2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IGViYjIyNDNjMTFiZjEzMjI1MTZmNzgx
MzMwMWEzZWViYjMwNTM3YWUuLmM3ZTAzODI4ODAwMmJlZTMwYjRkMmRiNmRiZDBiZWJlODY2NGZh
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0xNzUsNiArMTc1LDggQEAgdm9pZCBSZWFs
dGltZU1lZGlhU291cmNlOjp1cGRhdGVIYXNTdGFydGVkUHJvZHVjaW5nRGF0YSgpCiAgICAgaWYg
KG1faGFzU3RhcnRlZFByb2R1Y2luZ0RhdGEpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIERp
c3BhdGNoaW5nIGEgRnVuY3Rpb24gdG8gdGhlIG1haW4gdGhyZWFkIHJlcXVpcmVzIGhlYXAgYWxs
b2NhdGlvbnMuCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRT
Y29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCBjMTAz
ODdkYzFkNTQ4NGZmMjAzN2JkZTYzMjNkZTVjNTVlM2RlNDIxLi4xOGYxYWM2ODc0ZTY5NjI4ZjM1
MzcyNTc4M2Q0YzVjOTVmZDZmMTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC0xNDQs
NiArMTQ0LDkgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGwKIAogdm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlLCBjb25zdCBXZWJD
b3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQp
CiB7CisgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBhdWRp
byB0aHJlYWQuCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRT
Y29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOworCiAgICAgU2hhcmVkTWVtb3J5OjpIYW5k
bGUgaGFuZGxlOwogICAgIGlmIChzdG9yYWdlKQogICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5k
bGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423932</attachid>
            <date>2021-03-22 13:34:17 -0700</date>
            <delta_ts>2021-03-22 14:14:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223226-20210322133416.patch</filename>
            <type>text/plain</type>
            <size>22348</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQyM2VmZmEyYmVmMzM0MjlkNDk1N2Nj
Nzg4MzlmZWEyNmQxOTVmODUuLjY4Y2E0MWJmZDQyZWUxMmMzNzlmNzEyNzE0M2VmM2E5OTJmYjkx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDMtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBndWFyZCBhZ2FpbnN0IGhl
YXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZSB0byBGYXN0TWFsbG9jLmggdG8gZW5hYmxlIGFzc2VydGlvbnMgZ3VhcmRpbmcg
YWdhaW5zdAorICAgICAgICBkb2luZyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBjdXJyZW50IHRo
cmVhZCAoZHVyaW5nIHRoZSBsaWZldGltZSBvZiB0aGUgU2NvcGUgb2JqZWN0KS4KKworICAgICAg
ICBBbHNvIGFkZCBhIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSB0aG9zZSBjaGVja3MKKyAgICAgICAgdG8gYWxsb3cg
Zm9yIHNvbWUgdmVyeSBzcGVjaWZpYyBhc3NlcnRpb25zIChlaXRoZXIgYmVjYXVzZSB0aGV5IGFy
ZSByZXF1aXJlZCwgb3Igc2ltcGx5IGJlY2F1c2UKKyAgICAgICAgdGhleSBhcmUgbm90IGZpeGVk
IHlldCkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAgIChXVEY6OkZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlKToKKyAgICAgICAgKFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVu
dFRocmVhZFNjb3BlOjp+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAg
ICAgICAgKFdURjo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZTo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisgICAg
ICAgIChXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGU6
On5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAgICAg
ICAgKFdURjo6dHJ5RmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OmZhc3RNYWxsb2MpOgorICAg
ICAgICAoV1RGOjp0cnlGYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6ZmFzdENhbGxvYyk6Cisg
ICAgICAgIChXVEY6OmZhc3RSZWFsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxsb2Mp
OgorICAgICAgICAoV1RGOjpmYXN0QWxpZ25lZE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZh
c3RBbGlnbmVkTWFsbG9jKToKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5oOgorICAgICAgICAo
V1RGOjpGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU6On5Gb3JiaWRNYWxsb2NV
c2VGb3JDdXJyZW50VGhyZWFkU2NvcGUpOgorICAgICAgICAoV1RGOjpEaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
c0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisKIDIwMjEtMDMtMTkgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gTWFrZSBpdCBwb3NzaWJsZSB0byByZWxl
YXNlIGEgV0tXZWJWaWV3IG9uIGEgbm9uLW1haW4gdGhyZWFkIHdpdGhvdXQgYSBjcmFzaCBkdWUg
dG8gV0tTY3JpcHRNZXNzYWdlIHJhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxN2NjOGQwOGI5ZjkxMDYwMDJj
MDQyOWQ1MGZlOTViYzJjOGVkNDlhLi5hNTAxN2RlMDJmNmQ1Yjk1MGU4NjgwNmEyMWMzNThkNTgy
ZjBjN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDMtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBndWFy
ZCBhZ2FpbnN0IGhlYXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjI2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFzc2VydGlvbnMgdG8g
Z3VhcmQgYWdhaW5zdCBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQgZHVyaW5n
CisgICAgICAgIGF1ZGlvIHByb2Nlc3NpbmcsIHNpbmNlIHRob3NlIGFyZSBiYWQgZm9yIHBlcmZv
cm1hbmNlLiBJIGZpeGVkIGFueSBvZiB0aGUKKyAgICAgICAgaXNzdWVzIGZvdW5kIGJ5IHRoZXNl
IGFzc2VydGlvbnMgaW4gZGVwZW5kZW5jeSBidWdzLiBTb21lIGlzc3VlcyByZW1haW4KKyAgICAg
ICAgYW5kIGFyZSBwcm90ZWN0ZWQgYnkgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJl
bnRUaHJlYWRTY29wZSB0byBhdm9pZAorICAgICAgICB0cmlwcGluZyB0aGUgbmV3IGFzc2VydGlv
bnMuCisKKyAgICAgICAgUmlnaHQgbm93LCB0aGUgYXNzZXJ0aW9ucyBvbmx5IHByb3RlY3QgYXVk
aW8gcHJvY2Vzc2luZywgbm90IHByZS9wb3N0IHF1YW50dW0KKyAgICAgICAgcmVuZGVyaW5nIGNh
c3RzLiBJZGVhbGx5LCB3ZSdkIGV4cGFuZCB0aGUgc2NvcGUgb2YgdGhlc2UgYXNzZXJ0aW9ucyB0
byBjb3ZlcgorICAgICAgICBldmVyeXRoaW5nIHRoYXQncyBkb25lIG9uIHRoZSBhdWRpbyB0aHJl
YWQgYnV0IHRoaXMgd2lsbCByZXF1aXJlIG1vcmUgZml4ZXMuCisKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZTo6ZmluaXNoKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6
ZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dv
cmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2Nl
c3Nvck5vZGU6OnByb2Nlc3MpOgorCiAyMDIxLTAzLTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBBc3luYyBDbGlwYm9hcmQgcmVhZCBwcmV2ZW50cyBXZWJS
VEMgSU9TdXJmYWNlcyBmcm9tIGJlaW5nIHJlbGVhc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9GYXN0TWFsbG9jLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCmluZGV4
IDYwM2M2Mzg5YTUxMGE2NmY5YWM5NWYwNjNmMzVlMDM3MGE3NzRiNTkuLmFmYzE2ZTQyMTViMDUz
YTUyNTA3MTI2M2M4MjJmZDQ0NzljMzk5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zh
c3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCkBAIC01Myw2
ICs1MywzMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmIEFTU0VSVF9FTkFCTEVECit0aHJl
YWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit0aHJl
YWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291
bnQ7CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9j
VXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkKK3sKKyAgICArK2ZvcmJpZE1hbGxvY1VzZVNjb3Bl
Q291bnQ7Cit9CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6fkZvcmJp
ZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNTRVJUKGZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQpOworICAgIC0tZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudDsKK30K
KworRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZTo6RGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgKytkaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50OworfQorCitEaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0Zv
ckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNTRVJUKGRpc2FibGVNYWxsb2NSZXN0cmlj
dGlvblNjb3BlQ291bnQpOworICAgIC0tZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3Vu
dDsKK30KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTkRFQlVHKQogbmFtZXNwYWNlIHsKIC8vIFdl
IGRvIG5vdCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSBoZXJlIGR1ZSB0
byB0aGUgZWRnZSBjYXNlIGluIFZDKysuCkBAIC0xOTQsMTIgKzIyMSwxNCBAQCB2b2lkIGZhc3RB
bGlnbmVkRnJlZSh2b2lkKiBwKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdE1hbGxvYyhz
aXplX3QgbikgCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAgIEFTU0VSVCgh
Zm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29w
ZUNvdW50KTsKICAgICByZXR1cm4gbWFsbG9jKG4pOwogfQogCiB2b2lkKiBmYXN0TWFsbG9jKHNp
emVfdCBuKSAKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG4pOworICAgIEFTU0VSVCgh
Zm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29w
ZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBtYWxsb2Mobik7CiAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgIENSQVNIKCk7CkBAIC0yMTAsMTIgKzIzOSwxNCBAQCB2b2lkKiBmYXN0TWFsbG9j
KHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENhbGxvYyhzaXplX3Qgbl9l
bGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElN
SVQobl9lbGVtZW50cyAqIGVsZW1lbnRfc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NV
c2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAg
IHJldHVybiBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKIH0KIAogdm9pZCogZmFz
dENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBB
U1NFUlRfSVNfV0lUSElOX0xJTUlUKG5fZWxlbWVudHMgKiBlbGVtZW50X3NpemUpOworICAgIEFT
U0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBjYWxsb2Mobl9lbGVtZW50cywgZWxl
bWVudF9zaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgQ1JBU0goKTsKQEAgLTIzMSw2
ICsyNjIsNyBAQCB2b2lkIGZhc3RGcmVlKHZvaWQqIHApCiB2b2lkKiBmYXN0UmVhbGxvYyh2b2lk
KiBwLCBzaXplX3QgbikKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG4pOworICAgIEFT
U0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSByZWFsbG9jKHAsIG4pOwogICAgIGlm
ICghcmVzdWx0KQogICAgICAgICBDUkFTSCgpOwpAQCAtMjQwLDYgKzI3Miw3IEBAIHZvaWQqIGZh
c3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFz
dFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlU
KG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gcmVhbGxvYyhwLCBuKTsKIH0K
IApAQCAtNDg4LDYgKzUyMSw3IEBAIGJvb2wgaXNGYXN0TWFsbG9jRW5hYmxlZCgpCiB2b2lkKiBm
YXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQoc2l6
ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxs
b2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFw
aTo6bWFsbG9jKHNpemUpOwogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pICYmIFRS
QUNLX01BTExPQ19DQUxMU1RBQ0sKICAgICBpZiAoIUF2b2lkUmVjb3JkaW5nU2NvcGU6OmF2b2lk
UmVjb3JkaW5nQ291bnQoKSkKQEAgLTUxMCw2ICs1NDQsNyBAQCB2b2lkKiBmYXN0Q2FsbG9jKHNp
emVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogdm9pZCogZmFzdFJlYWxsb2Mo
dm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlU
KHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBibWFsbG9j
OjphcGk6OnJlYWxsb2Mob2JqZWN0LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJF
QUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGlu
Z1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NDMsNiArNTc4LDcgQEAgc2l6ZV90
IGZhc3RNYWxsb2NHb29kU2l6ZShzaXplX3Qgc2l6ZSkKIHZvaWQqIGZhc3RBbGlnbmVkTWFsbG9j
KHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVF9JU19XSVRISU5f
TElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRp
c2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJt
YWxsb2M6OmFwaTo6bWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9D
X0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9p
ZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NTQsNiArNTkwLDcg
QEAgdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUp
CiB2b2lkKiB0cnlGYXN0QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6
ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3Ji
aWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291
bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6dHJ5TWVtYWxpZ24oYWxpZ25t
ZW50LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19N
QUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29y
ZGluZ0NvdW50KCkpCkBAIC01NzAsNiArNjA3LDcgQEAgdm9pZCBmYXN0QWxpZ25lZEZyZWUodm9p
ZCogcCkKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IHNpemUpCiB7
CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFs
bG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsK
ICAgICByZXR1cm4gYm1hbGxvYzo6YXBpOjp0cnlNYWxsb2Moc2l6ZSk7CiB9CiAKQEAgLTU4Niw2
ICs2MjQsNyBAQCBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0Q2FsbG9jKHNpemVfdCBudW1F
bGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFz
dFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkKIHsKICAgICBGQUlMX0lGX0VY
Q0VFRFNfTElNSVQobmV3U2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNv
dW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBi
bWFsbG9jOjphcGk6OnRyeVJlYWxsb2Mob2JqZWN0LCBuZXdTaXplKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oIGIvU291cmNlL1dURi93dGYvRmFzdE1hbGxv
Yy5oCmluZGV4IDlhNTAwYTAxYzczNDNhMzZhYTAwM2QwZTIyYzhiZGQ2NWExMDc2Y2EuLjAyNGYx
YjkxY2I5YWExZDA0YThjZTY0NGYxYmY1ZGZmZjFhNWM0ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0Zhc3RNYWxsb2MuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKQEAg
LTEyMiw2ICsxMjIsMzggQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZmFzdEVuYWJsZU1pbmlN
b2RlKCk7CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGZhc3REaXNhYmxlU2NhdmVuZ2VyKCk7
CiAKK2NsYXNzIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSB7CitwdWJsaWM6
CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRm9yYmlkTWFsbG9j
VXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIH5Gb3Ji
aWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKTsKKyNlbHNlCisgICAgRm9yYmlkTWFs
bG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkgPSBkZWZhdWx0OworICAgIH5Gb3JiaWRNYWxs
b2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKSB7IH0KKyNlbmRpZgorCisgICAgRm9yYmlkTWFs
bG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKGNvbnN0IEZvcmJpZE1hbGxvY1VzZUZvckN1cnJl
bnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZShGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUmJikgPSBkZWxl
dGU7CisgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVyYXRvcj0o
Y29uc3QgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJikgPSBkZWxldGU7Cisg
ICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVyYXRvcj0oRm9yYmlk
TWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiYpID0gZGVsZXRlOworfTsKKworY2xhc3Mg
RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSB7CitwdWJsaWM6
CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpOwor
I2Vsc2UKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3Bl
KCkgPSBkZWZhdWx0OworICAgIH5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRo
cmVhZFNjb3BlKCkgeyB9CisjZW5kaWYKKworICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUoY29uc3QgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1
cnJlbnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlv
bnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJl
bnRUaHJlYWRTY29wZSYmKSA9IGRlbGV0ZTsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25z
Rm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVyYXRvcj0oY29uc3QgRGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIERpc2FibGVNYWxs
b2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUmIG9wZXJhdG9yPShEaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlJiYpID0gZGVsZXRlOworfTsKKwog
c3RydWN0IEZhc3RNYWxsb2NTdGF0aXN0aWNzIHsKICAgICBzaXplX3QgcmVzZXJ2ZWRWTUJ5dGVz
OwogICAgIHNpemVfdCBjb21taXR0ZWRWTUJ5dGVzOwpAQCAtMzAwLDkgKzMzMiwxMSBAQCBzdHJ1
Y3QgRmFzdEZyZWU8VFtdPiB7CiB1c2luZyBXVEY6OmZhc3RTZXRNYXhTaW5nbGVBbGxvY2F0aW9u
U2l6ZTsKICNlbmRpZgogCit1c2luZyBXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JD
dXJyZW50VGhyZWFkU2NvcGU7CiB1c2luZyBXVEY6OkZhc3RBbGxvY2F0b3I7CiB1c2luZyBXVEY6
OkZhc3RNYWxsb2M7CiB1c2luZyBXVEY6OkZhc3RGcmVlOwordXNpbmcgV1RGOjpGb3JiaWRNYWxs
b2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU7CiB1c2luZyBXVEY6OmlzRmFzdE1hbGxvY0VuYWJs
ZWQ7CiB1c2luZyBXVEY6OmZhc3RDYWxsb2M7CiB1c2luZyBXVEY6OmZhc3RGcmVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcAppbmRleCA5N2M5NmQ2ZmU1ZWU1NDYzNDg3YWY3ZjU1ZWY2Y2ZjY2NlNGM3MmM2Li44
N2U4ZTMxYTgwZDU5MjkxMzQxMTFiNTUyNTQwNjViYzYzZjA3MWVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cApAQCAtODYsMjAgKzg2LDI0IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlcihB
dWRpb0J1cyosIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51CiAgICAgaWYgKHdv
cmtsZXRHbG9iYWxTY29wZSkKICAgICAgICAgd29ya2xldEdsb2JhbFNjb3BlLT5oYW5kbGVQcmVS
ZW5kZXJUYXNrcygpOwogCi0gICAgLy8gVGhpcyB3aWxsIGNhdXNlIHRoZSBub2RlKHMpIGNvbm5l
Y3RlZCB0byB1cyB0byBwcm9jZXNzLCB3aGljaCBpbiB0dXJuIHdpbGwgcHVsbCBvbiB0aGVpciBp
bnB1dChzKSwKLSAgICAvLyBhbGwgdGhlIHdheSBiYWNrd2FyZHMgdGhyb3VnaCB0aGUgcmVuZGVy
aW5nIGdyYXBoLgotICAgIEF1ZGlvQnVzKiByZW5kZXJlZEJ1cyA9IGlucHV0KDApLT5wdWxsKGRl
c3RpbmF0aW9uQnVzLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgCi0gICAgaWYgKCFyZW5kZXJlZEJ1
cykKLSAgICAgICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKLSAgICBlbHNlIGlmIChyZW5kZXJl
ZEJ1cyAhPSBkZXN0aW5hdGlvbkJ1cykgewotICAgICAgICAvLyBpbi1wbGFjZSBwcm9jZXNzaW5n
IHdhcyBub3QgcG9zc2libGUgLSBzbyBjb3B5Ci0gICAgICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5
RnJvbSgqcmVuZGVyZWRCdXMpOworICAgIHsKKyAgICAgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlIGZvcmJpZE1hbGxvY1VzZTsKKworICAgICAgICAvLyBUaGlzIHdpbGwg
Y2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGluIHR1
cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAorICAgICAgICAvLyBhbGwgdGhlIHdheSBi
YWNrd2FyZHMgdGhyb3VnaCB0aGUgcmVuZGVyaW5nIGdyYXBoLgorICAgICAgICBBdWRpb0J1cyog
cmVuZGVyZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5hdGlvbkJ1cywgbnVtYmVyT2ZGcmFt
ZXMpOworCisgICAgICAgIGlmICghcmVuZGVyZWRCdXMpCisgICAgICAgICAgICBkZXN0aW5hdGlv
bkJ1cy0+emVybygpOworICAgICAgICBlbHNlIGlmIChyZW5kZXJlZEJ1cyAhPSBkZXN0aW5hdGlv
bkJ1cykgeworICAgICAgICAgICAgLy8gaW4tcGxhY2UgcHJvY2Vzc2luZyB3YXMgbm90IHBvc3Np
YmxlIC0gc28gY29weQorICAgICAgICAgICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKCpyZW5k
ZXJlZEJ1cyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBQcm9jZXNzIG5vZGVzIHdoaWNoIG5l
ZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8g
YW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nlc3MuCisgICAgICAgIGNvbnRleHQoKS5w
cm9jZXNzQXV0b21hdGljUHVsbE5vZGVzKG51bWJlck9mRnJhbWVzKTsKICAgICB9CiAKLSAgICAv
LyBQcm9jZXNzIG5vZGVzIHdoaWNoIG5lZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRo
ZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8gYW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nl
c3MuCi0gICAgY29udGV4dCgpLnByb2Nlc3NBdXRvbWF0aWNQdWxsTm9kZXMobnVtYmVyT2ZGcmFt
ZXMpOwotCiAgICAgLy8gTGV0IHRoZSBjb250ZXh0IHRha2UgY2FyZSBvZiBhbnkgYnVzaW5lc3Mg
YXQgdGhlIGVuZCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgogICAgIGNvbnRleHQoKS5oYW5kbGVQ
b3N0UmVuZGVyVGFza3MoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcAppbmRleCA2MDU0
MDUwODkxZTk2OGVkZTE4ZDM0NDBlNWY1ZTYyODg0NWE4NWE3Li4xZjg3ZDg4OGMzYmM0NzZhZWFi
Y2VhODFmNThmMzhhMjE3NzYxOWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCkBAIC0xOTcs
NiArMTk3LDggQEAgdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OmZpbmlzaCgpCiAgICAg
bV9wbGF5YmFja1N0YXRlID0gRklOSVNIRURfU1RBVEU7CiAgICAgY29udGV4dCgpLmRlY3JlbWVu
dEFjdGl2ZVNvdXJjZUNvdW50KCk7CiAKKyAgICAvLyBEaXNwYXRjaGluZyBhIEZ1bmN0aW9uIHRv
IHRoZSBtYWluIHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9jYXRpb25zLgorICAgIERpc2FibGVN
YWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uczsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldIHsKICAgICAgICAgYXV0byByZWxlYXNlID0gbWFrZVNjb3BlRXhpdChbJl0g
KCkgewogICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGxvY2tlcihjb250ZXh0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5jcHAKaW5kZXggNTM4MjA1MTUyZGMyYjM0MDQxMGI2ZjdmOWFmOGNmNTBhMWQyMzYw
Mi4uYzUzOWQ0OTZkNzM2NGMyM2NiYmM1NWUzMTdlYjg3NzFjNzFhNmQzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCkBA
IC0yNzYsNiArMjc2LDggQEAgdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpmaXJlUHJvY2Vzc29yRXJy
b3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJyb3IgZXJyb3IpCiB7CiAgICAgQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7CiAKKyAgICAvLyBEaXNwYXRjaGluZyBhIEZ1bmN0aW9uIHRvIHRoZSBtYWlu
IHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9jYXRpb25zLgorICAgIERpc2FibGVNYWxsb2NSZXN0
cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsK
ICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGVycm9yXSgpIG11dGFibGUgewogICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwogICAg
ICAgICBzd2l0Y2ggKGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKaW5kZXggNTVmNzExOGIxNGMy
Y2FkM2FmODg4ZWFiNTkwZjI3MjUxMjM4MzVkMy4uMDJlNGNjOTIwN2U4MDAzNTI1YzdlY2IyNzI2
ODA2NmYxMWIxYWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcApAQCAtMjMxLDYgKzIzMSw3IEBAIHZv
aWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjCiAKIGJvb2wgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9j
ZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1
ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbikK
IHsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRp
c2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgQVNTRVJUKG1fcHJvY2Vzc0NhbGxiYWNrKTsK
ICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9wcm9jZXNzQ2FsbGJhY2stPmdsb2JhbE9iamVj
dCgpOwogICAgIEFTU0VSVChnbG9iYWxPYmplY3Quc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCAyNzY1NTRkOTE5MjMyOTYwOWE1NDg0
Yzc0MmRiNTAyNjJmZDNjZWY0Li44NzViOTI0YzhlYzExYjM3MmE2Zjg4ZTE0YmU3MzQ2NTE4MDJj
MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC03OSw2ICs3OSw4IEBAIHZv
aWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKEF1ZGlvQnVzJiBidXMsIHNp
emVfdCBudW1iZXJPZkZyYW1lcykKIAogICAgIGF1dG8gZGVzY3JpcHRpb24gPSBzdHJlYW1EZXNj
cmlwdGlvbihtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCksIGJ1cy5udW1iZXJPZkNoYW5u
ZWxzKCkpOwogICAgIGlmICghYXVkaW9CdWZmZXIgfHwgYXVkaW9CdWZmZXItPmNoYW5uZWxDb3Vu
dCgpICE9IGJ1cy5udW1iZXJPZkNoYW5uZWxzKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhdm9pZCB0aGlzIFdlYkF1ZGlvQnVmZmVyTGlzdCBhbGxvY2F0aW9uIG9uIHRoZSBhdWRp
byB0aHJlYWQuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhy
ZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICAgICAgbV9hdWRpb0J1ZmZl
ciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgV1RGOjpzYWZl
Q2FzdDx1aW50MzJfdD4obnVtYmVyT2ZGcmFtZXMpKTsKICAgICAgICAgYXVkaW9CdWZmZXIgPSAm
ZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PigqbV9hdWRpb0J1ZmZlcik7CiAgICAgfSBlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nl
c3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmNwcAppbmRleCBiNDg0M2M0NDFmM2NjZDYzY2Y3MjY5OWUwODI1YTc5M2M0MTA2
NThhLi5mYmZkMWNhOWU5ZTRiMWJlY2JkNTY1ZDA1MzliY2Y3MTdmMGM4OGU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9k
ZS5jcHAKQEAgLTIxMCw2ICsyMTAsOSBAQCB2b2lkIFNjcmlwdFByb2Nlc3Nvck5vZGU6OnByb2Nl
c3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAvLyBtX2J1ZmZlclJlYWRXcml0ZUluZGV4
IHdpbGwgd3JhcCBiYWNrIGFyb3VuZCB0byAwIHdoZW4gdGhlIGN1cnJlbnQgaW5wdXQgYW5kIG91
dHB1dCBidWZmZXJzIGFyZSBmdWxsLgogICAgIC8vIFdoZW4gdGhpcyBoYXBwZW5zLCBmaXJlIGFu
IGV2ZW50IGFuZCBzd2FwIGJ1ZmZlcnMuCiAgICAgaWYgKCFtX2J1ZmZlclJlYWRXcml0ZUluZGV4
KSB7CisgICAgICAgIC8vIERpc3BhdGNoaW5nIGEgRnVuY3Rpb24gdG8gdGhlIG1haW4gdGhyZWFk
IHJlcXVpcmVzIGhlYXAgYWxsb2NhdGlvbnMuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmlj
dGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKwog
ICAgICAgICAvLyBSZWZlcmVuY2Ugb3Vyc2VsZiBzbyB3ZSBkb24ndCBhY2NpZGVudGFsbHkgZ2V0
IGRlbGV0ZWQgYmVmb3JlIGZpcmVQcm9jZXNzRXZlbnQoKSBnZXRzIGNhbGxlZC4KICAgICAgICAg
Ly8gV2Ugb25seSB3YWl0IGZvciBzY3JpcHQgY29kZSBleGVjdXRpb24gd2hlbiB0aGUgY29udGV4
dCBpcyBhbiBvZmZsaW5lIG9uZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4KICAgICAgICAgaWYg
KGNvbnRleHQoKS5pc09mZmxpbmVDb250ZXh0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpp
bmRleCA1NThjMzgyYTJlODQ1YjFlMDhkMDFkMzNkYjdmMjhjN2ExZmVjZGNkLi40NzM5MGM4YWFl
ZTA3NDI2MDhhNjA3N2ExZWVmZTZhNTkwYWNmYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1t
CkBAIC0xMDAsNiArMTAwLDggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVEYXRhU291cmNlOjpzZXR1
cENvbnZlcnRlcigpCiBPU1N0YXR1cyBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OnNldElucHV0Rm9y
bWF0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQogewogICAgIEFTU0VS
VChmb3JtYXQuc2FtcGxlUmF0ZSgpID49IDApOworICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgaGVh
cCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgorICAgIERpc2FibGVNYWxsb2NSZXN0
cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsK
IAogICAgIG1faW5wdXREZXNjcmlwdGlvbiA9IG1ha2VVbmlxdWU8Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uPihmb3JtYXQpOwogICAgIGlmIChtX291dHB1dERlc2NyaXB0aW9uKQpAQCAtMTEzLDYg
KzExNSw5IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6c2V0T3V0cHV0Rm9ybWF0
KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYKICAgICBBU1NFUlQobV9pbnB1dERlc2Ny
aXB0aW9uKTsKICAgICBBU1NFUlQoZm9ybWF0LnNhbXBsZVJhdGUoKSA+PSAwKTsKIAorICAgIC8v
IEZJWE1FOiBUaGlzIGRvZXMgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgor
ICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uczsKKwogICAgIG1fb3V0cHV0RGVzY3JpcHRpb24gPSBtYWtlVW5p
cXVlPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4oZm9ybWF0KTsKICAgICBpZiAoIW1fcmluZ0J1
ZmZlcikKICAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAKaW5kZXggMTFiMzhmMDVkMjQ5NzU0
MmY4ODNmNTYxNjAyM2JjMmJjMTJlZDM1YS4uNGFlZDRmNjMyNmZhZDdlZjcwZDhmOTEwZjk3NGMz
MWQxZWNhZGUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcApAQCAtNzcs
NiArNzcsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6dmlkZW9TYW1wbGVBdmFp
bGFibGUoTWVkaWFTYW1wbGUmKQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6YXVk
aW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KQogeworICAg
IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uczsKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVyTG9j
ayk7CiAgICAgbV9idWZmZXIuYXBwZW5kKCJBdWRpbyBUcmFjayBJRDogIik7CiAgICAgbV9idWZm
ZXIuYXBwZW5kKG1fYXVkaW9UcmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggZWJi
MjI0M2MxMWJmMTMyMjUxNmY3ODEzMzAxYTNlZWJiMzA1MzdhZS4uYzdlMDM4Mjg4MDAyYmVlMzBi
NGQyZGI2ZGJkMGJlYmU4NjY0ZmE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTE3NSw2
ICsxNzUsOCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnVwZGF0ZUhhc1N0YXJ0ZWRQcm9k
dWNpbmdEYXRhKCkKICAgICBpZiAobV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSkKICAgICAgICAg
cmV0dXJuOwogCisgICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJl
YWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewog
ICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuY3BwCmluZGV4IGMxMDM4N2RjMWQ1NDg0ZmYyMDM3YmRlNjMyM2RlNWM1NWUzZGU0MjEu
LjYxY2NjZmQxYmMyZjMxNjc5OGM3MDY4ZWM5NDNhODlkNGJlZmVhNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5jcHAKQEAgLTExOCw2ICsxMTgsOSBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
Ojp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogCiB2b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0
aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQogeworICAg
IC8vIEZJWE1FOiBUaGlzIGRvZXMgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFk
LgorICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlz
YWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKwogICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2Ny
aXB0aW9uKSB7CiAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9u
KCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsK
ICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRp
b24pOwpAQCAtMTQ0LDYgKzE0Nyw5IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsCiAKIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFn
ZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVf
dCBmcmFtZUNvdW50KQogeworICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgaGVhcCBhbGxvY2F0aW9u
cyBvbiB0aGUgYXVkaW8gdGhyZWFkLgorICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JD
dXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKwogICAgIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAoc3RvcmFnZSkKICAgICAgICAgc3RvcmFn
ZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25s
eSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423937</attachid>
            <date>2021-03-22 14:14:36 -0700</date>
            <delta_ts>2021-03-22 15:29:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223226-20210322141435.patch</filename>
            <type>text/plain</type>
            <size>24843</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDllMTVjYjQxOTc0ZGU5YjBlMDg4OGMy
NjI3YTk2NDlmNzIwNDdjMGUuLjE2Y2FmNDFjMDk1OTA5YTA3NmU1YWYyOGYwYzgzNzhhNzkwMTVj
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDMtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBndWFyZCBhZ2FpbnN0IGhl
YXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZSB0byBGYXN0TWFsbG9jLmggdG8gZW5hYmxlIGFzc2VydGlvbnMgZ3VhcmRpbmcg
YWdhaW5zdAorICAgICAgICBkb2luZyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBjdXJyZW50IHRo
cmVhZCAoZHVyaW5nIHRoZSBsaWZldGltZSBvZiB0aGUgU2NvcGUgb2JqZWN0KS4KKworICAgICAg
ICBBbHNvIGFkZCBhIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSB0aG9zZSBjaGVja3MKKyAgICAgICAgdG8gYWxsb3cg
Zm9yIHNvbWUgdmVyeSBzcGVjaWZpYyBhc3NlcnRpb25zIChlaXRoZXIgYmVjYXVzZSB0aGV5IGFy
ZSByZXF1aXJlZCwgb3Igc2ltcGx5IGJlY2F1c2UKKyAgICAgICAgdGhleSBhcmUgbm90IGZpeGVk
IHlldCkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAgIChXVEY6OkZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlKToKKyAgICAgICAgKFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVu
dFRocmVhZFNjb3BlOjp+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAg
ICAgICAgKFdURjo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZTo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisgICAg
ICAgIChXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGU6
On5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAgICAg
ICAgKFdURjo6dHJ5RmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OmZhc3RNYWxsb2MpOgorICAg
ICAgICAoV1RGOjp0cnlGYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6ZmFzdENhbGxvYyk6Cisg
ICAgICAgIChXVEY6OmZhc3RSZWFsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxsb2Mp
OgorICAgICAgICAoV1RGOjpmYXN0QWxpZ25lZE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZh
c3RBbGlnbmVkTWFsbG9jKToKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5oOgorICAgICAgICAo
V1RGOjpGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU6On5Gb3JiaWRNYWxsb2NV
c2VGb3JDdXJyZW50VGhyZWFkU2NvcGUpOgorICAgICAgICAoV1RGOjpEaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
c0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisKIDIwMjEtMDMtMjIgIFJvYiBCdWlzICA8cmJ1aXNA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWNvbnRhaW5dIFBhcnNlIENTUyBjb250YWluIHBy
b3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNjM1MGQ1YTlkNjgwNzkwMDUyMGQ2NzA3N2Q2MDI5ZjNhY2I3
YjNmNy4uMDdlYjRkMmY3MmRjMDJiMWViNjYzMDUyYTllNDRmN2U5MjRjMjU1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAzLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbnMgdG8gZ3VhcmQgYWdhaW5zdCBoZWFwIGFs
bG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzIyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhc3NlcnRpb25zIHRvIGd1YXJkIGFnYWluc3QgaGVh
cCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkIGR1cmluZworICAgICAgICBhdWRpbyBw
cm9jZXNzaW5nLCBzaW5jZSB0aG9zZSBhcmUgYmFkIGZvciBwZXJmb3JtYW5jZS4gSSBmaXhlZCBh
bnkgb2YgdGhlCisgICAgICAgIGlzc3VlcyBmb3VuZCBieSB0aGVzZSBhc3NlcnRpb25zIGluIGRl
cGVuZGVuY3kgYnVncy4gU29tZSBpc3N1ZXMgcmVtYWluCisgICAgICAgIGFuZCBhcmUgcHJvdGVj
dGVkIGJ5IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgdG8g
YXZvaWQKKyAgICAgICAgdHJpcHBpbmcgdGhlIG5ldyBhc3NlcnRpb25zLgorCisgICAgICAgIFJp
Z2h0IG5vdywgdGhlIGFzc2VydGlvbnMgb25seSBwcm90ZWN0IGF1ZGlvIHByb2Nlc3NpbmcsIG5v
dCBwcmUvcG9zdCBxdWFudHVtCisgICAgICAgIHJlbmRlcmluZyBjYXN0cy4gSWRlYWxseSwgd2Un
ZCBleHBhbmQgdGhlIHNjb3BlIG9mIHRoZXNlIGFzc2VydGlvbnMgdG8gY292ZXIKKyAgICAgICAg
ZXZlcnl0aGluZyB0aGF0J3MgZG9uZSBvbiB0aGUgYXVkaW8gdGhyZWFkIGJ1dCB0aGlzIHdpbGwg
cmVxdWlyZSBtb3JlIGZpeGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uTm9k
ZTo6cmVuZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291
cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6
OmZpbmlzaCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OmZpcmVQcm9jZXNzb3JFcnJv
ck9uTWFpblRocmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQ
cm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpj
b25zdW1lQXVkaW8pOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29y
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9jZXNzb3JOb2RlOjpwcm9jZXNz
KToKKwogMjAyMS0wMy0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBbaU9TXSBDb21wb3NpdGlvbiB0ZXh0IGlzIG5vdCBpbml0aWFsbHkgaGlnaGxp
Z2h0ZWQgd2hlbiB0eXBpbmcgaW4gdGV4dCBmaWVsZHMgdXNpbmcgUGlueWluIGtleWJvYXJkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L0Zhc3RNYWxsb2MuY3BwCmluZGV4IDYwM2M2Mzg5YTUxMGE2NmY5YWM5NWYwNjNmMzVlMDM3MGE3
NzRiNTkuLmFmYzE2ZTQyMTViMDUzYTUyNTA3MTI2M2M4MjJmZDQ0NzljMzk5YWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zh
c3RNYWxsb2MuY3BwCkBAIC01Myw2ICs1MywzMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lm
IEFTU0VSVF9FTkFCTEVECit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGZvcmJpZE1hbGxv
Y1VzZVNjb3BlQ291bnQ7Cit0aHJlYWRfbG9jYWwgc3RhdGljIHVuc2lnbmVkIGRpc2FibGVNYWxs
b2NSZXN0cmljdGlvblNjb3BlQ291bnQ7CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJl
YWRTY29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkKK3sKKyAgICAr
K2ZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit9CisKK0ZvcmJpZE1hbGxvY1VzZUZvckN1cnJl
bnRUaHJlYWRTY29wZTo6fkZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7
CisgICAgQVNTRVJUKGZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQpOworICAgIC0tZm9yYmlkTWFs
bG9jVXNlU2NvcGVDb3VudDsKK30KKworRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJl
bnRUaHJlYWRTY29wZTo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRT
Y29wZSgpCit7CisgICAgKytkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50OworfQor
CitEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgQVNTRVJU
KGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOworICAgIC0tZGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uU2NvcGVDb3VudDsKK30KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTkRFQlVH
KQogbmFtZXNwYWNlIHsKIC8vIFdlIGRvIG5vdCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxzaXpl
X3Q+OjptYXgoKSBoZXJlIGR1ZSB0byB0aGUgZWRnZSBjYXNlIGluIFZDKysuCkBAIC0xOTQsMTIg
KzIyMSwxNCBAQCB2b2lkIGZhc3RBbGlnbmVkRnJlZSh2b2lkKiBwKQogVHJ5TWFsbG9jUmV0dXJu
VmFsdWUgdHJ5RmFzdE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJ
TUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gbWFsbG9jKG4pOwogfQog
CiB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKSAKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJ
TUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBtYWxsb2Mo
bik7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIENSQVNIKCk7CkBAIC0yMTAsMTIgKzIzOSwx
NCBAQCB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKQogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5
RmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKIHsKICAg
ICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobl9lbGVtZW50cyAqIGVsZW1lbnRfc2l6ZSk7CisgICAg
QVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmlj
dGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBjYWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9z
aXplKTsKIH0KIAogdm9pZCogZmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVs
ZW1lbnRfc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG5fZWxlbWVudHMgKiBl
bGVtZW50X3NpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBk
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBj
YWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAg
ICAgQ1JBU0goKTsKQEAgLTIzMSw2ICsyNjIsNyBAQCB2b2lkIGZhc3RGcmVlKHZvaWQqIHApCiB2
b2lkKiBmYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3QgbikKIHsKICAgICBBU1NFUlRfSVNfV0lU
SElOX0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBk
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBy
ZWFsbG9jKHAsIG4pOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICBDUkFTSCgpOwpAQCAtMjQw
LDYgKzI3Miw3IEBAIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogVHJ5TWFs
bG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCiB7CiAgICAg
RkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2Nv
cGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1
cm4gcmVhbGxvYyhwLCBuKTsKIH0KIApAQCAtNDg4LDYgKzUyMSw3IEBAIGJvb2wgaXNGYXN0TWFs
bG9jRW5hYmxlZCgpCiB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEFTU0VS
VF9JU19XSVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29w
ZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQq
IHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6bWFsbG9jKHNpemUpOwogI2lmIEVOQUJMRShNQUxMT0Nf
SEVBUF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19DQUxMU1RBQ0sKICAgICBpZiAoIUF2b2lk
UmVjb3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291bnQoKSkKQEAgLTUxMCw2ICs1NDQsNyBA
QCB2b2lkKiBmYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXpl
KQogdm9pZCogZmFzdFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBB
U1NFUlRfSVNfV0lUSElOX0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNl
U2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2
b2lkKiByZXN1bHQgPSBibWFsbG9jOjphcGk6OnJlYWxsb2Mob2JqZWN0LCBzaXplKTsKICNpZiBF
TkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAg
ICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01
NDMsNiArNTc4LDcgQEAgc2l6ZV90IGZhc3RNYWxsb2NHb29kU2l6ZShzaXplX3Qgc2l6ZSkKIHZv
aWQqIGZhc3RBbGlnbmVkTWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQogewog
ICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQoc2l6ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxs
b2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwog
ICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6bWVtYWxpZ24oYWxpZ25tZW50LCBzaXpl
KTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FM
TFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50
KCkpCkBAIC01NTQsNiArNTkwLDcgQEAgdm9pZCogZmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFs
aWdubWVudCwgc2l6ZV90IHNpemUpCiB2b2lkKiB0cnlGYXN0QWxpZ25lZE1hbGxvYyhzaXplX3Qg
YWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQoc2l6
ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxs
b2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFw
aTo6dHJ5TWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBf
QlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29y
ZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCkBAIC01NzAsNiArNjA3LDcgQEAgdm9p
ZCBmYXN0QWxpZ25lZEZyZWUodm9pZCogcCkKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RN
YWxsb2Moc2l6ZV90IHNpemUpCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNpemUpOwor
ICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gYm1hbGxvYzo6YXBpOjp0cnlNYWxsb2Mo
c2l6ZSk7CiB9CiAKQEAgLTU4Niw2ICs2MjQsNyBAQCBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlG
YXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogVHJ5TWFs
bG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6
ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobmV3U2l6ZSk7CisgICAgQVNTRVJUKCFm
b3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3Bl
Q291bnQpOwogICAgIHJldHVybiBibWFsbG9jOjphcGk6OnRyeVJlYWxsb2Mob2JqZWN0LCBuZXdT
aXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oIGIvU291
cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oCmluZGV4IDlhNTAwYTAxYzczNDNhMzZhYTAwM2QwZTIy
YzhiZGQ2NWExMDc2Y2EuLjAyNGYxYjkxY2I5YWExZDA0YThjZTY0NGYxYmY1ZGZmZjFhNWM0ZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9GYXN0TWFsbG9jLmgKQEAgLTEyMiw2ICsxMjIsMzggQEAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgZmFzdEVuYWJsZU1pbmlNb2RlKCk7CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGZh
c3REaXNhYmxlU2NhdmVuZ2VyKCk7CiAKK2NsYXNzIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZSB7CitwdWJsaWM6CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCk7CisgICAgV1RG
X0VYUE9SVF9QUklWQVRFIH5Gb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKTsK
KyNlbHNlCisgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCkgPSBkZWZh
dWx0OworICAgIH5Gb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKSB7IH0KKyNl
bmRpZgorCisgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKGNvbnN0IEZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIEZvcmJp
ZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZShGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50
VGhyZWFkU2NvcGUmJikgPSBkZWxldGU7CisgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRo
cmVhZFNjb3BlJiBvcGVyYXRvcj0oY29uc3QgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVh
ZFNjb3BlJikgPSBkZWxldGU7CisgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNj
b3BlJiBvcGVyYXRvcj0oRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiYpID0g
ZGVsZXRlOworfTsKKworY2xhc3MgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRU
aHJlYWRTY29wZSB7CitwdWJsaWM6CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgp
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSB+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1
cnJlbnRUaHJlYWRTY29wZSgpOworI2Vsc2UKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25z
Rm9yQ3VycmVudFRocmVhZFNjb3BlKCkgPSBkZWZhdWx0OworICAgIH5EaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKCkgeyB9CisjZW5kaWYKKworICAgIERpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoY29uc3QgRGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIERp
c2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoRGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYmKSA9IGRlbGV0ZTsKKyAgICBEaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVyYXRvcj0oY29u
c3QgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYpID0gZGVs
ZXRlOworICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUm
IG9wZXJhdG9yPShEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3Bl
JiYpID0gZGVsZXRlOworfTsKKwogc3RydWN0IEZhc3RNYWxsb2NTdGF0aXN0aWNzIHsKICAgICBz
aXplX3QgcmVzZXJ2ZWRWTUJ5dGVzOwogICAgIHNpemVfdCBjb21taXR0ZWRWTUJ5dGVzOwpAQCAt
MzAwLDkgKzMzMiwxMSBAQCBzdHJ1Y3QgRmFzdEZyZWU8VFtdPiB7CiB1c2luZyBXVEY6OmZhc3RT
ZXRNYXhTaW5nbGVBbGxvY2F0aW9uU2l6ZTsKICNlbmRpZgogCit1c2luZyBXVEY6OkRpc2FibGVN
YWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGU7CiB1c2luZyBXVEY6OkZhc3RB
bGxvY2F0b3I7CiB1c2luZyBXVEY6OkZhc3RNYWxsb2M7CiB1c2luZyBXVEY6OkZhc3RGcmVlOwor
dXNpbmcgV1RGOjpGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU7CiB1c2luZyBX
VEY6OmlzRmFzdE1hbGxvY0VuYWJsZWQ7CiB1c2luZyBXVEY6OmZhc3RDYWxsb2M7CiB1c2luZyBX
VEY6OmZhc3RGcmVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA5N2M5NmQ2ZmU1ZWU1NDYzNDg3YWY3
ZjU1ZWY2Y2ZjY2NlNGM3MmM2Li44N2U4ZTMxYTgwZDU5MjkxMzQxMTFiNTUyNTQwNjViYzYzZjA3
MWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtODYsMjAgKzg2LDI0IEBAIHZvaWQgQXVkaW9EZXN0
aW5hdGlvbk5vZGU6OnJlbmRlcihBdWRpb0J1cyosIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywg
c2l6ZV90IG51CiAgICAgaWYgKHdvcmtsZXRHbG9iYWxTY29wZSkKICAgICAgICAgd29ya2xldEds
b2JhbFNjb3BlLT5oYW5kbGVQcmVSZW5kZXJUYXNrcygpOwogCi0gICAgLy8gVGhpcyB3aWxsIGNh
dXNlIHRoZSBub2RlKHMpIGNvbm5lY3RlZCB0byB1cyB0byBwcm9jZXNzLCB3aGljaCBpbiB0dXJu
IHdpbGwgcHVsbCBvbiB0aGVpciBpbnB1dChzKSwKLSAgICAvLyBhbGwgdGhlIHdheSBiYWNrd2Fy
ZHMgdGhyb3VnaCB0aGUgcmVuZGVyaW5nIGdyYXBoLgotICAgIEF1ZGlvQnVzKiByZW5kZXJlZEJ1
cyA9IGlucHV0KDApLT5wdWxsKGRlc3RpbmF0aW9uQnVzLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAg
Ci0gICAgaWYgKCFyZW5kZXJlZEJ1cykKLSAgICAgICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsK
LSAgICBlbHNlIGlmIChyZW5kZXJlZEJ1cyAhPSBkZXN0aW5hdGlvbkJ1cykgewotICAgICAgICAv
LyBpbi1wbGFjZSBwcm9jZXNzaW5nIHdhcyBub3QgcG9zc2libGUgLSBzbyBjb3B5Ci0gICAgICAg
IGRlc3RpbmF0aW9uQnVzLT5jb3B5RnJvbSgqcmVuZGVyZWRCdXMpOworICAgIHsKKyAgICAgICAg
Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlIGZvcmJpZE1hbGxvY1VzZTsKKwor
ICAgICAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRv
IHByb2Nlc3MsIHdoaWNoIGluIHR1cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAorICAg
ICAgICAvLyBhbGwgdGhlIHdheSBiYWNrd2FyZHMgdGhyb3VnaCB0aGUgcmVuZGVyaW5nIGdyYXBo
LgorICAgICAgICBBdWRpb0J1cyogcmVuZGVyZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5h
dGlvbkJ1cywgbnVtYmVyT2ZGcmFtZXMpOworCisgICAgICAgIGlmICghcmVuZGVyZWRCdXMpCisg
ICAgICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOworICAgICAgICBlbHNlIGlmIChyZW5k
ZXJlZEJ1cyAhPSBkZXN0aW5hdGlvbkJ1cykgeworICAgICAgICAgICAgLy8gaW4tcGxhY2UgcHJv
Y2Vzc2luZyB3YXMgbm90IHBvc3NpYmxlIC0gc28gY29weQorICAgICAgICAgICAgZGVzdGluYXRp
b25CdXMtPmNvcHlGcm9tKCpyZW5kZXJlZEJ1cyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBQ
cm9jZXNzIG5vZGVzIHdoaWNoIG5lZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRoZXkg
YXJlIG5vdCBjb25uZWN0ZWQgdG8gYW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nlc3Mu
CisgICAgICAgIGNvbnRleHQoKS5wcm9jZXNzQXV0b21hdGljUHVsbE5vZGVzKG51bWJlck9mRnJh
bWVzKTsKICAgICB9CiAKLSAgICAvLyBQcm9jZXNzIG5vZGVzIHdoaWNoIG5lZWQgYSBsaXR0bGUg
ZXh0cmEgaGVscCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8gYW55dGhpbmcsIGJ1
dCBzdGlsbCBuZWVkIHRvIHByb2Nlc3MuCi0gICAgY29udGV4dCgpLnByb2Nlc3NBdXRvbWF0aWNQ
dWxsTm9kZXMobnVtYmVyT2ZGcmFtZXMpOwotCiAgICAgLy8gTGV0IHRoZSBjb250ZXh0IHRha2Ug
Y2FyZSBvZiBhbnkgYnVzaW5lc3MgYXQgdGhlIGVuZCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgog
ICAgIGNvbnRleHQoKS5oYW5kbGVQb3N0UmVuZGVyVGFza3MoKTsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3Vy
Y2VOb2RlLmNwcAppbmRleCA2MDU0MDUwODkxZTk2OGVkZTE4ZDM0NDBlNWY1ZTYyODg0NWE4NWE3
Li4xZjg3ZDg4OGMzYmM0NzZhZWFiY2VhODFmNThmMzhhMjE3NzYxOWViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNv
dXJjZU5vZGUuY3BwCkBAIC0xOTcsNiArMTk3LDggQEAgdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGU6OmZpbmlzaCgpCiAgICAgbV9wbGF5YmFja1N0YXRlID0gRklOSVNIRURfU1RBVEU7CiAg
ICAgY29udGV4dCgpLmRlY3JlbWVudEFjdGl2ZVNvdXJjZUNvdW50KCk7CiAKKyAgICAvLyBEaXNw
YXRjaGluZyBhIEZ1bmN0aW9uIHRvIHRoZSBtYWluIHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9j
YXRpb25zLgorICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgYXV0byByZWxlYXNl
ID0gbWFrZVNjb3BlRXhpdChbJl0gKCkgewogICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRv
TG9ja2VyIGxvY2tlcihjb250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggNTM4MjA1MTUyZGMyYjM0MDQx
MGI2ZjdmOWFmOGNmNTBhMWQyMzYwMi4uYzUzOWQ0OTZkNzM2NGMyM2NiYmM1NWUzMTdlYjg3NzFj
NzFhNmQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuY3BwCkBAIC0yNzYsNiArMjc2LDggQEAgdm9pZCBBdWRpb1dvcmtsZXRO
b2RlOjpmaXJlUHJvY2Vzc29yRXJyb3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJyb3IgZXJyb3Ip
CiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKKyAgICAvLyBEaXNwYXRjaGluZyBh
IEZ1bmN0aW9uIHRvIHRoZSBtYWluIHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9jYXRpb25zLgor
ICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yXSgpIG11dGFibGUgewogICAgICAgICBTdHJp
bmcgZXJyb3JNZXNzYWdlOwogICAgICAgICBzd2l0Y2ggKGVycm9yKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5j
cHAKaW5kZXggNTVmNzExOGIxNGMyY2FkM2FmODg4ZWFiNTkwZjI3MjUxMjM4MzVkMy4uMDJlNGNj
OTIwN2U4MDAzNTI1YzdlY2IyNzI2ODA2NmYxMWIxYWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcApA
QCAtMjMxLDYgKzIzMSw3IEBAIHZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJn
dW1lbnRzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjCiAKIGJvb2wgQXVkaW9X
b3JrbGV0UHJvY2Vzc29yOjpwcm9jZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYg
aW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBi
b29sJiB0aHJld0V4Y2VwdGlvbikKIHsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9y
Q3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgQVNTRVJU
KG1fcHJvY2Vzc0NhbGxiYWNrKTsKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9wcm9jZXNz
Q2FsbGJhY2stPmdsb2JhbE9iamVjdCgpOwogICAgIEFTU0VSVChnbG9iYWxPYmplY3Quc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCAy
NzY1NTRkOTE5MjMyOTYwOWE1NDg0Yzc0MmRiNTAyNjJmZDNjZWY0Li44NzViOTI0YzhlYzExYjM3
MmE2Zjg4ZTE0YmU3MzQ2NTE4MDJjMmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3Bw
CkBAIC03OSw2ICs3OSw4IEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1
ZGlvKEF1ZGlvQnVzJiBidXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKIAogICAgIGF1dG8gZGVz
Y3JpcHRpb24gPSBzdHJlYW1EZXNjcmlwdGlvbihtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRl
KCksIGJ1cy5udW1iZXJPZkNoYW5uZWxzKCkpOwogICAgIGlmICghYXVkaW9CdWZmZXIgfHwgYXVk
aW9CdWZmZXItPmNoYW5uZWxDb3VudCgpICE9IGJ1cy5udW1iZXJPZkNoYW5uZWxzKCkpIHsKKyAg
ICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhdm9pZCB0aGlzIFdlYkF1ZGlvQnVmZmVyTGlzdCBh
bGxvY2F0aW9uIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0
cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsK
ICAgICAgICAgbV9hdWRpb0J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0Pihk
ZXNjcmlwdGlvbiwgV1RGOjpzYWZlQ2FzdDx1aW50MzJfdD4obnVtYmVyT2ZGcmFtZXMpKTsKICAg
ICAgICAgYXVkaW9CdWZmZXIgPSAmZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PigqbV9hdWRp
b0J1ZmZlcik7CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAppbmRleCBiNDg0M2M0NDFmM2NjZDYz
Y2Y3MjY5OWUwODI1YTc5M2M0MTA2NThhLi5mYmZkMWNhOWU5ZTRiMWJlY2JkNTY1ZDA1MzliY2Y3
MTdmMGM4OGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Nj
cmlwdFByb2Nlc3Nvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTIxMCw2ICsyMTAsOSBAQCB2b2lkIFNjcmlw
dFByb2Nlc3Nvck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAvLyBt
X2J1ZmZlclJlYWRXcml0ZUluZGV4IHdpbGwgd3JhcCBiYWNrIGFyb3VuZCB0byAwIHdoZW4gdGhl
IGN1cnJlbnQgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIGFyZSBmdWxsLgogICAgIC8vIFdoZW4g
dGhpcyBoYXBwZW5zLCBmaXJlIGFuIGV2ZW50IGFuZCBzd2FwIGJ1ZmZlcnMuCiAgICAgaWYgKCFt
X2J1ZmZlclJlYWRXcml0ZUluZGV4KSB7CisgICAgICAgIC8vIERpc3BhdGNoaW5nIGEgRnVuY3Rp
b24gdG8gdGhlIG1haW4gdGhyZWFkIHJlcXVpcmVzIGhlYXAgYWxsb2NhdGlvbnMuCisgICAgICAg
IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uczsKKwogICAgICAgICAvLyBSZWZlcmVuY2Ugb3Vyc2VsZiBzbyB3ZSBk
b24ndCBhY2NpZGVudGFsbHkgZ2V0IGRlbGV0ZWQgYmVmb3JlIGZpcmVQcm9jZXNzRXZlbnQoKSBn
ZXRzIGNhbGxlZC4KICAgICAgICAgLy8gV2Ugb25seSB3YWl0IGZvciBzY3JpcHQgY29kZSBleGVj
dXRpb24gd2hlbiB0aGUgY29udGV4dCBpcyBhbiBvZmZsaW5lIG9uZSBmb3IgcGVyZm9ybWFuY2Ug
cmVhc29ucy4KICAgICAgICAgaWYgKGNvbnRleHQoKS5pc09mZmxpbmVDb250ZXh0KCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxl
RGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
U2FtcGxlRGF0YVNvdXJjZS5tbQppbmRleCA1NThjMzgyYTJlODQ1YjFlMDhkMDFkMzNkYjdmMjhj
N2ExZmVjZGNkLi4yNGEzYzIxMTQyZWNkYzcxMTcwOWJlYTg5MDczYjViMTY0ZmYxODZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURh
dGFTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9TYW1wbGVEYXRhU291cmNlLm1tCkBAIC0xMDAsNiArMTAwLDggQEAgT1NTdGF0dXMgQXVkaW9T
YW1wbGVEYXRhU291cmNlOjpzZXR1cENvbnZlcnRlcigpCiBPU1N0YXR1cyBBdWRpb1NhbXBsZURh
dGFTb3VyY2U6OnNldElucHV0Rm9ybWF0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYg
Zm9ybWF0KQogewogICAgIEFTU0VSVChmb3JtYXQuc2FtcGxlUmF0ZSgpID49IDApOworICAgIC8v
IEZJWE1FOiBUaGlzIGRvZXMgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgor
ICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uczsKIAogICAgIG1faW5wdXREZXNjcmlwdGlvbiA9IG1ha2VVbmlx
dWU8Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uPihmb3JtYXQpOwogICAgIGlmIChtX291dHB1dERl
c2NyaXB0aW9uKQpAQCAtMTEzLDYgKzExNSw5IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZTo6c2V0T3V0cHV0Rm9ybWF0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYKICAg
ICBBU1NFUlQobV9pbnB1dERlc2NyaXB0aW9uKTsKICAgICBBU1NFUlQoZm9ybWF0LnNhbXBsZVJh
dGUoKSA+PSAwKTsKIAorICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgaGVhcCBhbGxvY2F0aW9ucyBv
biB0aGUgYXVkaW8gdGhyZWFkLgorICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJy
ZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKwogICAgIG1fb3V0cHV0
RGVzY3JpcHRpb24gPSBtYWtlVW5pcXVlPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4oZm9ybWF0
KTsKICAgICBpZiAoIW1fcmluZ0J1ZmZlcikKICAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVu
aXF1ZTxDQVJpbmdCdWZmZXI+KCk7CkBAIC0xNjAsMTIgKzE2NSw5IEBAIHZvaWQgQXVkaW9TYW1w
bGVEYXRhU291cmNlOjpwdXNoU2FtcGxlc0ludGVybmFsKGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCYg
YnVmZmVyTGlzCiAgICAgICAgIHNhbXBsZVRpbWUgPSBtX2V4cGVjdGVkTmV4dFB1c2hlZFNhbXBs
ZVRpbWU7CiAgICAgbV9leHBlY3RlZE5leHRQdXNoZWRTYW1wbGVUaW1lID0gc2FtcGxlVGltZSAr
IE1lZGlhVGltZShzYW1wbGVDb3VudCwgc2FtcGxlVGltZS50aW1lU2NhbGUoKSk7CiAKLSAgICBp
ZiAobV9pbnB1dFNhbXBsZU9mZnNldCA9PSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpIHsKKyAg
ICBpZiAobV9pbnB1dFNhbXBsZU9mZnNldCA9PSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCiAg
ICAgICAgIG1faW5wdXRTYW1wbGVPZmZzZXQgPSBNZWRpYVRpbWUoMSAtIHNhbXBsZVRpbWUudGlt
ZVZhbHVlKCksIHNhbXBsZVRpbWUudGltZVNjYWxlKCkpOwotICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW2xvZ0lkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSLCBpbnB1dFNhbXBsZU9m
ZnNldCA9IG1faW5wdXRTYW1wbGVPZmZzZXQudGltZVZhbHVlKCksIG1heGltdW1TYW1wbGVDb3Vu
dCA9IG1fbWF4aW11bVNhbXBsZUNvdW50LCB0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cigqdGhpcyldIHsKLSAgICAgICAgICAgIEFMV0FZU19MT0cobG9nSWRlbnRpZmllciwgImlucHV0
IHNhbXBsZSBvZmZzZXQgaXMgIiwgaW5wdXRTYW1wbGVPZmZzZXQsICIsIG1heGltdW1TYW1wbGVD
b3VudCBpcyAiLCBtYXhpbXVtU2FtcGxlQ291bnQpOwotICAgICAgICB9KTsKLSAgICB9CisKICAg
ICBzYW1wbGVUaW1lICs9IG1faW5wdXRTYW1wbGVPZmZzZXQ7CiAKICNpZiAhTE9HX0RJU0FCTEVE
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAKaW5kZXggMTFiMzhmMDVkMjQ5NzU0
MmY4ODNmNTYxNjAyM2JjMmJjMTJlZDM1YS4uNGFlZDRmNjMyNmZhZDdlZjcwZDhmOTEwZjk3NGMz
MWQxZWNhZGUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcApAQCAtNzcs
NiArNzcsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6dmlkZW9TYW1wbGVBdmFp
bGFibGUoTWVkaWFTYW1wbGUmKQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6YXVk
aW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KQogeworICAg
IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uczsKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVyTG9j
ayk7CiAgICAgbV9idWZmZXIuYXBwZW5kKCJBdWRpbyBUcmFjayBJRDogIik7CiAgICAgbV9idWZm
ZXIuYXBwZW5kKG1fYXVkaW9UcmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggOWZlMGY3MDgwNTBhN2Y3YTg2NDE0NmQ5NmI4M2Vh
NGUxN2ZkMWU5YS4uMjBlMDE3MzQ2M2ZmYWZhZmU3Y2JmNDYzZWJmOTI2OWM3OWE0NTU2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAgLTUw
OSw2ICs1MDksNyBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1Nh
bXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIHZvaWQgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjphZGRTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVy
KQogeworICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUg
ZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBtX3NlcmlhbERpc3BhdGNoUXVldWUtPmRp
c3BhdGNoU3luYyhbdGhpcywgYnVmZmVyXSB7CiAgICAgICAgIGlmIChtX2lzRW5jb2RpbmcpCiAg
ICAgICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyKGJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCmluZGV4IDEyMTZiZDQ5MjIzN2E4YzUxY2YwODMzNzEwNDI4NzY1YjhjZmY0YjEuLjdiMWQ4
ZTViYWI2ODAzMThmMGI0MTQ2ZGEwNGQ2Yzg0YjVmNTIxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCkBAIC0xNzUsNiArMTc1LDggQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjp1cGRhdGVI
YXNTdGFydGVkUHJvZHVjaW5nRGF0YSgpCiAgICAgaWYgKG1faGFzU3RhcnRlZFByb2R1Y2luZ0Rh
dGEpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIERpc3BhdGNoaW5nIGEgRnVuY3Rpb24gdG8g
dGhlIG1haW4gdGhyZWFkIHJlcXVpcmVzIGhlYXAgYWxsb2NhdGlvbnMuCisgICAgRGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKV0gewogICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9oYXNTdGFydGVkUHJvZHVjaW5n
RGF0YSkKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDg3N2VmMjhhZTU1ZWUwZjM0OThlYTNmYWRl
YTg5N2ZlNTQ2ZjRjZTAuLmE2Y2Y4ZDRlZDZhODI1ODJkMzRmZWRmOGE5MjJkNTEyMGZhNzI4YjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cApAQCAtMTE4LDYgKzExOCw3IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29j
b2E6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjCiAgICAgaWYgKCFo
YXNCdWZmZXJlZEVub3VnaERhdGEoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgRGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zOwogICAgIExpYldlYlJUQ1Byb3ZpZGVyOjpjYWxsT25XZWJSVENTaWduYWxpbmdUaHJl
YWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5wdWxsQXVkaW9EYXRhKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKaW5k
ZXggYzEwMzg3ZGMxZDU0ODRmZjIwMzdiZGU2MzIzZGU1YzU1ZTNkZTQyMS4uNjFjY2NmZDFiYzJm
MzE2Nzk4YzcwNjhlYzk0M2E4OWQ0YmVmZWE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApA
QCAtMTE4LDYgKzExOCw5IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7CisgICAgLy8gRklYTUU6IFRo
aXMgZG9lcyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisgICAgRGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zOworCiAgICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKICAg
ICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBs
YXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwogICAgICAgICBtX2Rl
c2NyaXB0aW9uID0gKldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+
KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CkBAIC0xNDQs
NiArMTQ3LDkgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGwKIAogdm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlLCBjb25zdCBXZWJD
b3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQp
CiB7CisgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBhdWRp
byB0aHJlYWQuCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRT
Y29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOworCiAgICAgU2hhcmVkTWVtb3J5OjpIYW5k
bGUgaGFuZGxlOwogICAgIGlmIChzdG9yYWdlKQogICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5k
bGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423948</attachid>
            <date>2021-03-22 15:29:33 -0700</date>
            <delta_ts>2021-03-23 08:33:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223226-20210322152932.patch</filename>
            <type>text/plain</type>
            <size>23783</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDllMTVjYjQxOTc0ZGU5YjBlMDg4OGMy
NjI3YTk2NDlmNzIwNDdjMGUuLjE2Y2FmNDFjMDk1OTA5YTA3NmU1YWYyOGYwYzgzNzhhNzkwMTVj
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDMtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBndWFyZCBhZ2FpbnN0IGhl
YXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRU
aHJlYWRTY29wZSB0byBGYXN0TWFsbG9jLmggdG8gZW5hYmxlIGFzc2VydGlvbnMgZ3VhcmRpbmcg
YWdhaW5zdAorICAgICAgICBkb2luZyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBjdXJyZW50IHRo
cmVhZCAoZHVyaW5nIHRoZSBsaWZldGltZSBvZiB0aGUgU2NvcGUgb2JqZWN0KS4KKworICAgICAg
ICBBbHNvIGFkZCBhIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSB0aG9zZSBjaGVja3MKKyAgICAgICAgdG8gYWxsb3cg
Zm9yIHNvbWUgdmVyeSBzcGVjaWZpYyBhc3NlcnRpb25zIChlaXRoZXIgYmVjYXVzZSB0aGV5IGFy
ZSByZXF1aXJlZCwgb3Igc2ltcGx5IGJlY2F1c2UKKyAgICAgICAgdGhleSBhcmUgbm90IGZpeGVk
IHlldCkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAgIChXVEY6OkZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZTo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3Vy
cmVudFRocmVhZFNjb3BlKToKKyAgICAgICAgKFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVu
dFRocmVhZFNjb3BlOjp+Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAg
ICAgICAgKFdURjo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZTo6RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisgICAg
ICAgIChXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGU6
On5EaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlKToKKyAgICAg
ICAgKFdURjo6dHJ5RmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OmZhc3RNYWxsb2MpOgorICAg
ICAgICAoV1RGOjp0cnlGYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6ZmFzdENhbGxvYyk6Cisg
ICAgICAgIChXVEY6OmZhc3RSZWFsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxsb2Mp
OgorICAgICAgICAoV1RGOjpmYXN0QWxpZ25lZE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZh
c3RBbGlnbmVkTWFsbG9jKToKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5oOgorICAgICAgICAo
V1RGOjpGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU6On5Gb3JiaWRNYWxsb2NV
c2VGb3JDdXJyZW50VGhyZWFkU2NvcGUpOgorICAgICAgICAoV1RGOjpEaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlOjp+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
c0ZvckN1cnJlbnRUaHJlYWRTY29wZSk6CisKIDIwMjEtMDMtMjIgIFJvYiBCdWlzICA8cmJ1aXNA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWNvbnRhaW5dIFBhcnNlIENTUyBjb250YWluIHBy
b3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggODc2M2E3MDFiZmJmYjY1ZjhiMDkyNDk3NWMyNWJiNGQzNmY4
N2QwOC4uMjcwYjNmNGMyYjJjYjFjN2Y4YWI5NTNkMjc5OWI0NTQ1MWU3NjQzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAzLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGFzc2VydGlvbnMgdG8gZ3VhcmQgYWdhaW5zdCBoZWFwIGFs
bG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzIyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhc3NlcnRpb25zIHRvIGd1YXJkIGFnYWluc3QgaGVh
cCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkIGR1cmluZworICAgICAgICBhdWRpbyBw
cm9jZXNzaW5nLCBzaW5jZSB0aG9zZSBhcmUgYmFkIGZvciBwZXJmb3JtYW5jZS4gSSBmaXhlZCBh
bnkgb2YgdGhlCisgICAgICAgIGlzc3VlcyBmb3VuZCBieSB0aGVzZSBhc3NlcnRpb25zIGluIGRl
cGVuZGVuY3kgYnVncy4gU29tZSBpc3N1ZXMgcmVtYWluCisgICAgICAgIGFuZCBhcmUgcHJvdGVj
dGVkIGJ5IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgdG8g
YXZvaWQKKyAgICAgICAgdHJpcHBpbmcgdGhlIG5ldyBhc3NlcnRpb25zLgorCisgICAgICAgIFJp
Z2h0IG5vdywgdGhlIGFzc2VydGlvbnMgb25seSBwcm90ZWN0IGF1ZGlvIHByb2Nlc3NpbmcsIG5v
dCBwcmUvcG9zdCBxdWFudHVtCisgICAgICAgIHJlbmRlcmluZyBjYXN0cy4gSWRlYWxseSwgd2Un
ZCBleHBhbmQgdGhlIHNjb3BlIG9mIHRoZXNlIGFzc2VydGlvbnMgdG8gY292ZXIKKyAgICAgICAg
ZXZlcnl0aGluZyB0aGF0J3MgZG9uZSBvbiB0aGUgYXVkaW8gdGhyZWFkIGJ1dCB0aGlzIHdpbGwg
cmVxdWlyZSBtb3JlIGZpeGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uTm9k
ZTo6cmVuZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291
cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6
OmZpbmlzaCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OmZpcmVQcm9jZXNzb3JFcnJv
ck9uTWFpblRocmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQ
cm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpj
b25zdW1lQXVkaW8pOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29y
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9jZXNzb3JOb2RlOjpwcm9jZXNz
KToKKwogMjAyMS0wMy0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlZHVjZSBudW1iZXIgb2YgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFk
IGluIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFz
dE1hbGxvYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAppbmRleCA2MDNjNjM4
OWE1MTBhNjZmOWFjOTVmMDYzZjM1ZTAzNzBhNzc0YjU5Li5hZmMxNmU0MjE1YjA1M2E1MjUwNzEy
NjNjODIyZmQ0NDc5YzM5OWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9j
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcApAQCAtNTMsNiArNTMsMzMg
QEAKIAogbmFtZXNwYWNlIFdURiB7CiAKKyNpZiBBU1NFUlRfRU5BQkxFRAordGhyZWFkX2xvY2Fs
IHN0YXRpYyB1bnNpZ25lZCBmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50OwordGhyZWFkX2xvY2Fs
IHN0YXRpYyB1bnNpZ25lZCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50OworCitG
b3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU6OkZvcmJpZE1hbGxvY1VzZUZvckN1
cnJlbnRUaHJlYWRTY29wZSgpCit7CisgICAgKytmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50Owor
fQorCitGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGU6On5Gb3JiaWRNYWxsb2NV
c2VGb3JDdXJyZW50VGhyZWFkU2NvcGUoKQoreworICAgIEFTU0VSVChmb3JiaWRNYWxsb2NVc2VT
Y29wZUNvdW50KTsKKyAgICAtLWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQ7Cit9CisKK0Rpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGU6OkRpc2FibGVNYWxsb2NS
ZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoKQoreworICAgICsrZGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uU2NvcGVDb3VudDsKK30KKworRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0Zv
ckN1cnJlbnRUaHJlYWRTY29wZTo6fkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50
VGhyZWFkU2NvcGUoKQoreworICAgIEFTU0VSVChkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29w
ZUNvdW50KTsKKyAgICAtLWRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQ7Cit9Cisj
ZW5kaWYKKwogI2lmICFkZWZpbmVkKE5ERUJVRykKIG5hbWVzcGFjZSB7CiAvLyBXZSBkbyBub3Qg
dXNlIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgaGVyZSBkdWUgdG8gdGhlIGVk
Z2UgY2FzZSBpbiBWQysrLgpAQCAtMTk0LDEyICsyMjEsMTQgQEAgdm9pZCBmYXN0QWxpZ25lZEZy
ZWUodm9pZCogcCkKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IG4p
IAogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChuKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7
CiAgICAgcmV0dXJuIG1hbGxvYyhuKTsKIH0KIAogdm9pZCogZmFzdE1hbGxvYyhzaXplX3Qgbikg
CiB7CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChuKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1h
bGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7
CiAgICAgdm9pZCogcmVzdWx0ID0gbWFsbG9jKG4pOwogICAgIGlmICghcmVzdWx0KQogICAgICAg
ICBDUkFTSCgpOwpAQCAtMjEwLDEyICsyMzksMTQgQEAgdm9pZCogZmFzdE1hbGxvYyhzaXplX3Qg
bikKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RDYWxsb2Moc2l6ZV90IG5fZWxlbWVudHMs
IHNpemVfdCBlbGVtZW50X3NpemUpCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG5fZWxl
bWVudHMgKiBlbGVtZW50X3NpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVD
b3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4g
Y2FsbG9jKG5fZWxlbWVudHMsIGVsZW1lbnRfc2l6ZSk7CiB9CiAKIHZvaWQqIGZhc3RDYWxsb2Mo
c2l6ZV90IG5fZWxlbWVudHMsIHNpemVfdCBlbGVtZW50X3NpemUpCiB7CiAgICAgQVNTRVJUX0lT
X1dJVEhJTl9MSU1JVChuX2VsZW1lbnRzICogZWxlbWVudF9zaXplKTsKKyAgICBBU1NFUlQoIWZv
cmJpZE1hbGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVD
b3VudCk7CiAgICAgdm9pZCogcmVzdWx0ID0gY2FsbG9jKG5fZWxlbWVudHMsIGVsZW1lbnRfc2l6
ZSk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIENSQVNIKCk7CkBAIC0yMzEsNiArMjYyLDcg
QEAgdm9pZCBmYXN0RnJlZSh2b2lkKiBwKQogdm9pZCogZmFzdFJlYWxsb2Modm9pZCogcCwgc2l6
ZV90IG4pCiB7CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChuKTsKKyAgICBBU1NFUlQoIWZv
cmJpZE1hbGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVD
b3VudCk7CiAgICAgdm9pZCogcmVzdWx0ID0gcmVhbGxvYyhwLCBuKTsKICAgICBpZiAoIXJlc3Vs
dCkKICAgICAgICAgQ1JBU0goKTsKQEAgLTI0MCw2ICsyNzIsNyBAQCB2b2lkKiBmYXN0UmVhbGxv
Yyh2b2lkKiBwLCBzaXplX3QgbikKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RSZWFsbG9j
KHZvaWQqIHAsIHNpemVfdCBuKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChuKTsKKyAg
ICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uU2NvcGVDb3VudCk7CiAgICAgcmV0dXJuIHJlYWxsb2MocCwgbik7CiB9CiAKQEAgLTQ4
OCw2ICs1MjEsNyBAQCBib29sIGlzRmFzdE1hbGxvY0VuYWJsZWQoKQogdm9pZCogZmFzdE1hbGxv
YyhzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKHNpemUpOworICAg
IEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjphcGk6Om1hbGxv
YyhzaXplKTsKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxM
T0NfQ0FMTFNUQUNLCiAgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGlu
Z0NvdW50KCkpCkBAIC01MTAsNiArNTQ0LDcgQEAgdm9pZCogZmFzdENhbGxvYyhzaXplX3QgbnVt
RWxlbWVudHMsIHNpemVfdCBlbGVtZW50U2l6ZSkKIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIG9i
amVjdCwgc2l6ZV90IHNpemUpCiB7CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChzaXplKTsK
KyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uU2NvcGVDb3VudCk7CiAgICAgdm9pZCogcmVzdWx0ID0gYm1hbGxvYzo6YXBpOjpy
ZWFsbG9jKG9iamVjdCwgc2l6ZSk7CiAjaWYgRU5BQkxFKE1BTExPQ19IRUFQX0JSRUFLRE9XTikg
JiYgVFJBQ0tfTUFMTE9DX0NBTExTVEFDSwogICAgIGlmICghQXZvaWRSZWNvcmRpbmdTY29wZTo6
YXZvaWRSZWNvcmRpbmdDb3VudCgpKQpAQCAtNTQzLDYgKzU3OCw3IEBAIHNpemVfdCBmYXN0TWFs
bG9jR29vZFNpemUoc2l6ZV90IHNpemUpCiB2b2lkKiBmYXN0QWxpZ25lZE1hbGxvYyhzaXplX3Qg
YWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKHNp
emUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjph
cGk6Om1lbWFsaWduKGFsaWdubWVudCwgc2l6ZSk7CiAjaWYgRU5BQkxFKE1BTExPQ19IRUFQX0JS
RUFLRE9XTikgJiYgVFJBQ0tfTUFMTE9DX0NBTExTVEFDSwogICAgIGlmICghQXZvaWRSZWNvcmRp
bmdTY29wZTo6YXZvaWRSZWNvcmRpbmdDb3VudCgpKQpAQCAtNTU0LDYgKzU5MCw3IEBAIHZvaWQq
IGZhc3RBbGlnbmVkTWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQogdm9pZCog
dHJ5RmFzdEFsaWduZWRNYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpCiB7CiAg
ICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9j
VXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAg
ICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjphcGk6OnRyeU1lbWFsaWduKGFsaWdubWVudCwgc2l6
ZSk7CiAjaWYgRU5BQkxFKE1BTExPQ19IRUFQX0JSRUFLRE9XTikgJiYgVFJBQ0tfTUFMTE9DX0NB
TExTVEFDSwogICAgIGlmICghQXZvaWRSZWNvcmRpbmdTY29wZTo6YXZvaWRSZWNvcmRpbmdDb3Vu
dCgpKQpAQCAtNTcwLDYgKzYwNyw3IEBAIHZvaWQgZmFzdEFsaWduZWRGcmVlKHZvaWQqIHApCiBU
cnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIEZB
SUxfSUZfRVhDRUVEU19MSU1JVChzaXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNj
b3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7CiAgICAgcmV0
dXJuIGJtYWxsb2M6OmFwaTo6dHJ5TWFsbG9jKHNpemUpOwogfQogCkBAIC01ODYsNiArNjI0LDcg
QEAgVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENhbGxvYyhzaXplX3QgbnVtRWxlbWVudHMs
IHNpemVfdCBlbGVtZW50U2l6ZSkKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RSZWFsbG9j
KHZvaWQqIG9iamVjdCwgc2l6ZV90IG5ld1NpemUpCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJ
TUlUKG5ld1NpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBk
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKICAgICByZXR1cm4gYm1hbGxvYzo6
YXBpOjp0cnlSZWFsbG9jKG9iamVjdCwgbmV3U2l6ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaCBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaAppbmRl
eCA5YTUwMGEwMWM3MzQzYTM2YWEwMDNkMGUyMmM4YmRkNjVhMTA3NmNhLi4wMjRmMWI5MWNiOWFh
MWQwNGE4Y2U2NDRmMWJmNWRmZmYxYTVjNGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9G
YXN0TWFsbG9jLmgKKysrIGIvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oCkBAIC0xMjIsNiAr
MTIyLDM4IEBAIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGZhc3RFbmFibGVNaW5pTW9kZSgpOwog
CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBmYXN0RGlzYWJsZVNjYXZlbmdlcigpOwogCitjbGFz
cyBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUgeworcHVibGljOgorI2lmIEFT
U0VSVF9FTkFCTEVECisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZvcmJpZE1hbGxvY1VzZUZvckN1
cnJlbnRUaHJlYWRTY29wZSgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB+Rm9yYmlkTWFsbG9j
VXNlRm9yQ3VycmVudFRocmVhZFNjb3BlKCk7CisjZWxzZQorICAgIEZvcmJpZE1hbGxvY1VzZUZv
ckN1cnJlbnRUaHJlYWRTY29wZSgpID0gZGVmYXVsdDsKKyAgICB+Rm9yYmlkTWFsbG9jVXNlRm9y
Q3VycmVudFRocmVhZFNjb3BlKCkgeyB9CisjZW5kaWYKKworICAgIEZvcmJpZE1hbGxvY1VzZUZv
ckN1cnJlbnRUaHJlYWRTY29wZShjb25zdCBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFk
U2NvcGUmKSA9IGRlbGV0ZTsKKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2Nv
cGUoRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlJiYpID0gZGVsZXRlOworICAg
IEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYgb3BlcmF0b3I9KGNvbnN0IEZv
cmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYpID0gZGVsZXRlOworICAgIEZvcmJp
ZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSYgb3BlcmF0b3I9KEZvcmJpZE1hbGxvY1Vz
ZUZvckN1cnJlbnRUaHJlYWRTY29wZSYmKSA9IGRlbGV0ZTsKK307CisKK2NsYXNzIERpc2FibGVN
YWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgeworcHVibGljOgorI2lmIEFT
U0VSVF9FTkFCTEVECisgICAgV1RGX0VYUE9SVF9QUklWQVRFIERpc2FibGVNYWxsb2NSZXN0cmlj
dGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgfkRp
c2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUoKTsKKyNlbHNlCisg
ICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSgpID0gZGVm
YXVsdDsKKyAgICB+RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZSgpIHsgfQorI2VuZGlmCisKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVu
dFRocmVhZFNjb3BlKGNvbnN0IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhy
ZWFkU2NvcGUmKSA9IGRlbGV0ZTsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3Vy
cmVudFRocmVhZFNjb3BlKERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFk
U2NvcGUmJikgPSBkZWxldGU7CisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJl
bnRUaHJlYWRTY29wZSYgb3BlcmF0b3I9KGNvbnN0IERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUmKSA9IGRlbGV0ZTsKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlJiBvcGVyYXRvcj0oRGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSYmKSA9IGRlbGV0ZTsKK307CisKIHN0cnVjdCBG
YXN0TWFsbG9jU3RhdGlzdGljcyB7CiAgICAgc2l6ZV90IHJlc2VydmVkVk1CeXRlczsKICAgICBz
aXplX3QgY29tbWl0dGVkVk1CeXRlczsKQEAgLTMwMCw5ICszMzIsMTEgQEAgc3RydWN0IEZhc3RG
cmVlPFRbXT4gewogdXNpbmcgV1RGOjpmYXN0U2V0TWF4U2luZ2xlQWxsb2NhdGlvblNpemU7CiAj
ZW5kaWYKIAordXNpbmcgV1RGOjpEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRo
cmVhZFNjb3BlOwogdXNpbmcgV1RGOjpGYXN0QWxsb2NhdG9yOwogdXNpbmcgV1RGOjpGYXN0TWFs
bG9jOwogdXNpbmcgV1RGOjpGYXN0RnJlZTsKK3VzaW5nIFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9y
Q3VycmVudFRocmVhZFNjb3BlOwogdXNpbmcgV1RGOjppc0Zhc3RNYWxsb2NFbmFibGVkOwogdXNp
bmcgV1RGOjpmYXN0Q2FsbG9jOwogdXNpbmcgV1RGOjpmYXN0RnJlZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAK
aW5kZXggOTdjOTZkNmZlNWVlNTQ2MzQ4N2FmN2Y1NWVmNmNmY2NjZTRjNzJjNi4uODdlOGUzMWE4
MGQ1OTI5MTM0MTExYjU1MjU0MDY1YmM2M2YwNzFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTg2
LDIwICs4NiwyNCBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIoQXVkaW9CdXMq
LCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudQogICAgIGlmICh3b3JrbGV0R2xv
YmFsU2NvcGUpCiAgICAgICAgIHdvcmtsZXRHbG9iYWxTY29wZS0+aGFuZGxlUHJlUmVuZGVyVGFz
a3MoKTsKIAotICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB0aGUgbm9kZShzKSBjb25uZWN0ZWQgdG8g
dXMgdG8gcHJvY2Vzcywgd2hpY2ggaW4gdHVybiB3aWxsIHB1bGwgb24gdGhlaXIgaW5wdXQocyks
Ci0gICAgLy8gYWxsIHRoZSB3YXkgYmFja3dhcmRzIHRocm91Z2ggdGhlIHJlbmRlcmluZyBncmFw
aC4KLSAgICBBdWRpb0J1cyogcmVuZGVyZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5hdGlv
bkJ1cywgbnVtYmVyT2ZGcmFtZXMpOwotICAgIAotICAgIGlmICghcmVuZGVyZWRCdXMpCi0gICAg
ICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7Ci0gICAgZWxzZSBpZiAocmVuZGVyZWRCdXMgIT0g
ZGVzdGluYXRpb25CdXMpIHsKLSAgICAgICAgLy8gaW4tcGxhY2UgcHJvY2Vzc2luZyB3YXMgbm90
IHBvc3NpYmxlIC0gc28gY29weQotICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20oKnJl
bmRlcmVkQnVzKTsKKyAgICB7CisgICAgICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJl
YWRTY29wZSBmb3JiaWRNYWxsb2NVc2U7CisKKyAgICAgICAgLy8gVGhpcyB3aWxsIGNhdXNlIHRo
ZSBub2RlKHMpIGNvbm5lY3RlZCB0byB1cyB0byBwcm9jZXNzLCB3aGljaCBpbiB0dXJuIHdpbGwg
cHVsbCBvbiB0aGVpciBpbnB1dChzKSwKKyAgICAgICAgLy8gYWxsIHRoZSB3YXkgYmFja3dhcmRz
IHRocm91Z2ggdGhlIHJlbmRlcmluZyBncmFwaC4KKyAgICAgICAgQXVkaW9CdXMqIHJlbmRlcmVk
QnVzID0gaW5wdXQoMCktPnB1bGwoZGVzdGluYXRpb25CdXMsIG51bWJlck9mRnJhbWVzKTsKKwor
ICAgICAgICBpZiAoIXJlbmRlcmVkQnVzKQorICAgICAgICAgICAgZGVzdGluYXRpb25CdXMtPnpl
cm8oKTsKKyAgICAgICAgZWxzZSBpZiAocmVuZGVyZWRCdXMgIT0gZGVzdGluYXRpb25CdXMpIHsK
KyAgICAgICAgICAgIC8vIGluLXBsYWNlIHByb2Nlc3Npbmcgd2FzIG5vdCBwb3NzaWJsZSAtIHNv
IGNvcHkKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5RnJvbSgqcmVuZGVyZWRCdXMp
OworICAgICAgICB9CisKKyAgICAgICAgLy8gUHJvY2VzcyBub2RlcyB3aGljaCBuZWVkIGEgbGl0
dGxlIGV4dHJhIGhlbHAgYmVjYXVzZSB0aGV5IGFyZSBub3QgY29ubmVjdGVkIHRvIGFueXRoaW5n
LCBidXQgc3RpbGwgbmVlZCB0byBwcm9jZXNzLgorICAgICAgICBjb250ZXh0KCkucHJvY2Vzc0F1
dG9tYXRpY1B1bGxOb2RlcyhudW1iZXJPZkZyYW1lcyk7CiAgICAgfQogCi0gICAgLy8gUHJvY2Vz
cyBub2RlcyB3aGljaCBuZWVkIGEgbGl0dGxlIGV4dHJhIGhlbHAgYmVjYXVzZSB0aGV5IGFyZSBu
b3QgY29ubmVjdGVkIHRvIGFueXRoaW5nLCBidXQgc3RpbGwgbmVlZCB0byBwcm9jZXNzLgotICAg
IGNvbnRleHQoKS5wcm9jZXNzQXV0b21hdGljUHVsbE5vZGVzKG51bWJlck9mRnJhbWVzKTsKLQog
ICAgIC8vIExldCB0aGUgY29udGV4dCB0YWtlIGNhcmUgb2YgYW55IGJ1c2luZXNzIGF0IHRoZSBl
bmQgb2YgZWFjaCByZW5kZXIgcXVhbnR1bS4KICAgICBjb250ZXh0KCkuaGFuZGxlUG9zdFJlbmRl
clRhc2tzKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKaW5kZXggNjA1NDA1MDg5MWU5
NjhlZGUxOGQzNDQwZTVmNWU2Mjg4NDVhODVhNy4uMWY4N2Q4ODhjM2JjNDc2YWVhYmNlYTgxZjU4
ZjM4YTIxNzc2MTllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcApAQCAtMTk3LDYgKzE5Nyw4
IEBAIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpmaW5pc2goKQogICAgIG1fcGxheWJh
Y2tTdGF0ZSA9IEZJTklTSEVEX1NUQVRFOwogICAgIGNvbnRleHQoKS5kZWNyZW1lbnRBY3RpdmVT
b3VyY2VDb3VudCgpOwogCisgICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5jdGlvbiB0byB0aGUgbWFp
biB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4KKyAgICBEaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7
CiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSB7CiAgICAgICAgIGF1dG8gcmVsZWFzZSA9IG1ha2VTY29wZUV4aXQoWyZdICgpIHsKICAg
ICAgICAgICAgIEF1ZGlvQ29udGV4dDo6QXV0b0xvY2tlciBsb2NrZXIoY29udGV4dCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
Y3BwCmluZGV4IDUzODIwNTE1MmRjMmIzNDA0MTBiNmY3ZjlhZjhjZjUwYTFkMjM2MDIuLmM1Mzlk
NDk2ZDczNjRjMjNjYmJjNTVlMzE3ZWI4NzcxYzcxYTZkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcApAQCAtMjc2LDYg
KzI3Niw4IEBAIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6ZmlyZVByb2Nlc3NvckVycm9yT25NYWlu
VGhyZWFkKFByb2Nlc3NvckVycm9yIGVycm9yKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwogCisgICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQg
cmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25z
Rm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlcnJv
cl0oKSBtdXRhYmxlIHsKICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKICAgICAgICAgc3dp
dGNoIChlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCmluZGV4IDU1ZjcxMThiMTRjMmNhZDNhZjg4
OGVhYjU5MGYyNzI1MTIzODM1ZDMuLjAyZTRjYzkyMDdlODAwMzUyNWM3ZWNiMjcyNjgwNjZmMTFi
MWFhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKQEAgLTIzMSw2ICsyMzEsNyBAQCB2b2lkIEF1ZGlv
V29ya2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplYwogCiBib29sIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25z
dCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRpb0J1cz4+
JiBvdXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxv
YXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pCiB7CisgICAg
RGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25zOwogICAgIEFTU0VSVChtX3Byb2Nlc3NDYWxsYmFjayk7CiAgICAgYXV0
byYgZ2xvYmFsT2JqZWN0ID0gKm1fcHJvY2Vzc0NhbGxiYWNrLT5nbG9iYWxPYmplY3QoKTsKICAg
ICBBU1NFUlQoZ2xvYmFsT2JqZWN0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggMjc2NTU0ZDkxOTIzMjk2MDlhNTQ4NGM3NDJkYjUw
MjYyZmQzY2VmNC4uODc1YjkyNGM4ZWMxMWIzNzJhNmY4OGUxNGJlNzM0NjUxODAyYzJkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtNzksNiArNzksOCBAQCB2b2lkIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyhBdWRpb0J1cyYgYnVzLCBzaXplX3QgbnVt
YmVyT2ZGcmFtZXMpCiAKICAgICBhdXRvIGRlc2NyaXB0aW9uID0gc3RyZWFtRGVzY3JpcHRpb24o
bV9jdXJyZW50U2V0dGluZ3Muc2FtcGxlUmF0ZSgpLCBidXMubnVtYmVyT2ZDaGFubmVscygpKTsK
ICAgICBpZiAoIWF1ZGlvQnVmZmVyIHx8IGF1ZGlvQnVmZmVyLT5jaGFubmVsQ291bnQoKSAhPSBi
dXMubnVtYmVyT2ZDaGFubmVscygpKSB7CisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXZv
aWQgdGhpcyBXZWJBdWRpb0J1ZmZlckxpc3QgYWxsb2NhdGlvbiBvbiB0aGUgYXVkaW8gdGhyZWFk
LgorICAgICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3Bl
IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgICAgIG1fYXVkaW9CdWZmZXIgPSBtYWtl
VW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIFdURjo6c2FmZUNhc3Q8dWlu
dDMyX3Q+KG51bWJlck9mRnJhbWVzKSk7CiAgICAgICAgIGF1ZGlvQnVmZmVyID0gJmRvd25jYXN0
PFdlYkF1ZGlvQnVmZmVyTGlzdD4oKm1fYXVkaW9CdWZmZXIpOwogICAgIH0gZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9k
ZS5jcHAKaW5kZXggYjQ4NDNjNDQxZjNjY2Q2M2NmNzI2OTllMDgyNWE3OTNjNDEwNjU4YS4uZmJm
ZDFjYTllOWU0YjFiZWNiZDU2NWQwNTM5YmNmNzE3ZjBjODhlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBA
IC0yMTAsNiArMjEwLDkgQEAgdm9pZCBTY3JpcHRQcm9jZXNzb3JOb2RlOjpwcm9jZXNzKHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgLy8gbV9idWZmZXJSZWFkV3JpdGVJbmRleCB3aWxsIHdy
YXAgYmFjayBhcm91bmQgdG8gMCB3aGVuIHRoZSBjdXJyZW50IGlucHV0IGFuZCBvdXRwdXQgYnVm
ZmVycyBhcmUgZnVsbC4KICAgICAvLyBXaGVuIHRoaXMgaGFwcGVucywgZmlyZSBhbiBldmVudCBh
bmQgc3dhcCBidWZmZXJzLgogICAgIGlmICghbV9idWZmZXJSZWFkV3JpdGVJbmRleCkgeworICAg
ICAgICAvLyBEaXNwYXRjaGluZyBhIEZ1bmN0aW9uIHRvIHRoZSBtYWluIHRocmVhZCByZXF1aXJl
cyBoZWFwIGFsbG9jYXRpb25zLgorICAgICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9y
Q3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CisKICAgICAgICAg
Ly8gUmVmZXJlbmNlIG91cnNlbGYgc28gd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IGdldCBkZWxldGVk
IGJlZm9yZSBmaXJlUHJvY2Vzc0V2ZW50KCkgZ2V0cyBjYWxsZWQuCiAgICAgICAgIC8vIFdlIG9u
bHkgd2FpdCBmb3Igc2NyaXB0IGNvZGUgZXhlY3V0aW9uIHdoZW4gdGhlIGNvbnRleHQgaXMgYW4g
b2ZmbGluZSBvbmUgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuCiAgICAgICAgIGlmIChjb250ZXh0
KCkuaXNPZmZsaW5lQ29udGV4dCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KaW5kZXggMGI1
OGIyZjFhZjEyNTM1OGFkNjk1Mjc2ZDliZTk1NzNmZjkwOTg0YS4uYWQ5YWE5NmU3MWYzZWQ3NjRl
NDUwM2YzMjAwMmE4ZWFlYTZhYTQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtMTEx
LDggKzExMSwxMiBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OnNldE91dHB1dEZv
cm1hdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mCiAKICAgICBtX291dHB1dERlc2Ny
aXB0aW9uID0gQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIHsgZm9ybWF0IH07CiAKLSAgICBtX3Jp
bmdCdWZmZXItPmFsbG9jYXRlKGZvcm1hdCwgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX21heGltdW1T
YW1wbGVDb3VudCkpOwotICAgIG1fc2NyYXRjaEJ1ZmZlciA9IEF1ZGlvU2FtcGxlQnVmZmVyTGlz
dDo6Y3JlYXRlKG1fb3V0cHV0RGVzY3JpcHRpb24tPnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbWF4
aW11bVNhbXBsZUNvdW50KTsKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgaGVh
cCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgorICAgICAgICBEaXNhYmxlTWFsbG9j
UmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlv
bnM7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZm9ybWF0LCBzdGF0aWNfY2FzdDxz
aXplX3Q+KG1fbWF4aW11bVNhbXBsZUNvdW50KSk7CisgICAgICAgIG1fc2NyYXRjaEJ1ZmZlciA9
IEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y3JlYXRlKG1fb3V0cHV0RGVzY3JpcHRpb24tPnN0cmVh
bURlc2NyaXB0aW9uKCksIG1fbWF4aW11bVNhbXBsZUNvdW50KTsKKyAgICB9CiAKICAgICByZXR1
cm4gc2V0dXBDb252ZXJ0ZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNw
cAppbmRleCAxMWIzOGYwNWQyNDk3NTQyZjg4M2Y1NjE2MDIzYmMyYmMxMmVkMzVhLi40YWVkNGY2
MzI2ZmFkN2VmNzBkOGY5MTBmOTc0YzMxZDFlY2FkZTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZU1vY2suY3BwCkBAIC03Nyw2ICs3Nyw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVNb2NrOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYpCiAKIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpCiB7CisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJl
bnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9idWZmZXJMb2NrKTsKICAgICBtX2J1ZmZlci5hcHBlbmQoIkF1ZGlvIFRy
YWNrIElEOiAiKTsKICAgICBtX2J1ZmZlci5hcHBlbmQobV9hdWRpb1RyYWNrSUQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCA5ZmUwZjcw
ODA1MGE3ZjdhODY0MTQ2ZDk2YjgzZWE0ZTE3ZmQxZTlhLi4yMGUwMTczNDYzZmZhZmFmZTdjYmY0
NjNlYmY5MjY5Yzc5YTQ1NTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvci5tbQpAQCAtNTA5LDYgKzUwOSw3IEBAIHZvaWQgQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZl
cikKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihD
TVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
c0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIG1f
c2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzLCBidWZmZXJdIHsKICAgICAg
ICAgaWYgKG1faXNFbmNvZGluZykKICAgICAgICAgICAgIHByb2Nlc3NTYW1wbGVCdWZmZXIoYnVm
ZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggMTIxNmJkNDkyMjM3YThjNTFjZjA4MzM3
MTA0Mjg3NjViOGNmZjRiMS4uN2IxZDhlNWJhYjY4MDMxOGYwYjQxNDZkYTA0ZDZjODRiNWY1MjE5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTE3NSw2ICsxNzUsOCBAQCB2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnVwZGF0ZUhhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKCkKICAgICBpZiAo
bV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRGlz
cGF0Y2hpbmcgYSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxv
Y2F0aW9ucy4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNj
b3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlz
LT5tX2hhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggMzZi
YTYyOTA0ZWYxNjMyN2E2YmJlYzA3MjQ3ZDgzYTRmN2NmMzY4OC4uZmM4M2RkMmRmMTZmZWRmNjI0
OWY2NWQxODBhMmExMTVjMjIyZDI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAgdm9pZCBSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1l
ZGlhVGltZSYsIGMKICAgICBpZiAoIWhhc0J1ZmZlcmVkRW5vdWdoRGF0YSgpKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNj
b3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgTGliV2ViUlRDUHJvdmlkZXI6OmNh
bGxPbldlYlJUQ1NpZ25hbGluZ1RocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
XSB7CiAgICAgICAgIHByb3RlY3RlZFRoaXMtPnB1bGxBdWRpb0RhdGEoKTsKICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCBjMTAzODdkYzFkNTQ4NGZmMjAzN2JkZTYzMjNkZTVj
NTVlM2RlNDIxLi42MWNjY2ZkMWJjMmYzMTY3OThjNzA2OGVjOTQzYTg5ZDRiZWZlYTU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC0xMTgsNiArMTE4LDkgQEAgdm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIAog
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1l
ZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1l
cykKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBkb2VzIGhlYXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1
ZGlvIHRocmVhZC4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVh
ZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CisKICAgICBpZiAobV9kZXNjcmlwdGlv
biAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJh
c2ljVHlwZSk7CiAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigp
LmRlc2NyaXB0aW9uKTsKQEAgLTE0NCw2ICsxNDcsOSBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2
YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQ
bAogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1v
cnkqIHN0b3JhZ2UsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9y
bWF0LCBzaXplX3QgZnJhbWVDb3VudCkKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBkb2VzIGhlYXAg
YWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZC4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CisK
ICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CiAgICAgaWYgKHN0b3JhZ2UpCiAgICAg
ICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>