<?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>233888</bug_id>
          
          <creation_ts>2021-12-06 11:44:54 -0800</creation_ts>
          <short_desc>AX: Use RefPtr&lt;AXCoreObject&gt; instead of raw AXCoreObject* pointers in Accessibility::findMatchingObjects and downstream functions</short_desc>
          <delta_ts>2021-12-09 07:42:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820695</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-12-06 11:44:54 -0800</bug_when>
    <thetext>Move some usages of raw pointers to RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820696</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-06 11:45:09 -0800</bug_when>
    <thetext>&lt;rdar://problem/86115809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820705</commentid>
    <comment_count>2</comment_count>
      <attachid>446064</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-12-06 11:54:20 -0800</bug_when>
    <thetext>Created attachment 446064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820707</commentid>
    <comment_count>3</comment_count>
      <attachid>446064</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-12-06 11:59:28 -0800</bug_when>
    <thetext>Comment on attachment 446064
Patch

will this cause more RefPtr churn than its worth? what&apos;s the main benefit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821239</commentid>
    <comment_count>4</comment_count>
      <attachid>446242</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-12-07 15:20:49 -0800</bug_when>
    <thetext>Created attachment 446242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821240</commentid>
    <comment_count>5</comment_count>
      <attachid>446243</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-12-07 15:24:07 -0800</bug_when>
    <thetext>Created attachment 446243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821242</commentid>
    <comment_count>6</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-12-07 15:24:48 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #3)
&gt; Comment on attachment 446064 [details]
&gt; Patch
&gt; 
&gt; will this cause more RefPtr churn than its worth? what&apos;s the main benefit
This fixes two isolated tree mode only crashes (updated the changelog to say this, too).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821253</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-12-07 15:41:13 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #6)
&gt; (In reply to chris fleizach from comment #3)
&gt; &gt; Comment on attachment 446064 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; will this cause more RefPtr churn than its worth? what&apos;s the main benefit
&gt; This fixes two isolated tree mode only crashes (updated the changelog to say
&gt; this, too).

I think we need to get to the bottom of why the pointers become dangling in ITM. Otherwise, this may be masking the actual bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821268</commentid>
    <comment_count>8</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-12-07 16:23:03 -0800</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #7)
&gt; (In reply to Tyler Wilcock from comment #6)
&gt; &gt; (In reply to chris fleizach from comment #3)
&gt; &gt; &gt; Comment on attachment 446064 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; will this cause more RefPtr churn than its worth? what&apos;s the main benefit
&gt; &gt; This fixes two isolated tree mode only crashes (updated the changelog to say
&gt; &gt; this, too).
&gt; 
&gt; I think we need to get to the bottom of why the pointers become dangling in
&gt; ITM. Otherwise, this may be masking the actual bug.
They dangle in ITM because this sequence of events can happen:

1. Search begins on secondary thread. We store potential candidate object pointers on the stack.

2. Simultaneously, one or more searches begin on the main thread (or any other operation that could change the tree). Searches call the update version of children(). This queues up changes to children for the isolated tree that can result in any object losing refcounts, and therefore potentially being destroyed (including the ones we stored above as a raw pointer rather than RefPtrs)

3. In the secondary thread, AXIsolatedObject::children can then be called as the search continues, which calls AXIsolatedTree::applyPendingChanges.

4. The changes from step 2 are applied, and the objects we only hold raw pointers to could have been destroyed.

By holding RefPtrs during search, we delay dropping objects until the search is over.

As a follow-up to this patch, Chris and I discussed introducing a mechanism to defer applying any pending changes to the isolated tree while a search is running. This patch may prevent dangling pointers in ITM, but doesn&apos;t prevent unexpected search results due to tree changes mid-search.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821618</commentid>
    <comment_count>9</comment_count>
      <attachid>446383</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-12-08 10:32:40 -0800</bug_when>
    <thetext>Created attachment 446383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821806</commentid>
    <comment_count>10</comment_count>
      <attachid>446436</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-12-08 15:18:16 -0800</bug_when>
    <thetext>Created attachment 446436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822131</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-09 07:42:13 -0800</bug_when>
    <thetext>Committed r286780 (245021@main): &lt;https://commits.webkit.org/245021@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446436.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446064</attachid>
            <date>2021-12-06 11:54:20 -0800</date>
            <delta_ts>2021-12-07 15:20:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233888-20211206135419.patch</filename>
            <type>text/plain</type>
            <size>8642</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYzNDUxZjJlZjJkZDli
MTMyMjViMDM3NWViZjg4NzAzZTk4OTdjYi4uN2ZjYWYxYWFkY2NjYjE0ZWI3NjJlZjE3NDUwMmQy
Y2RkOTRlOWM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEyLTA2ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFVzZSBSZWZQdHI8
QVhDb3JlT2JqZWN0PiBpbnN0ZWFkIG9mIHJhdyBBWENvcmVPYmplY3QqIHBvaW50ZXJzIGluIG1v
cmUgcGxhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNb3ZlIG1vc3QgdXNhZ2VzIG9mIHJhdyBBWENvcmVPYmplY3QqIHBvaW50ZXJzIHRvIFJlZlB0
cjxBWENvcmVPYmplY3Q+IGluCisgICAgICAgIEFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09i
amVjdHMgYW5kIGRvd25zdHJlYW0gZnVuY3Rpb25zLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZEFjY2Vz
c2liaWxpdHlPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6aXNSYWRp
b0J1dHRvbkluRGlmZmVyZW50QWRob2NHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5Ojppc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaEF0SW5kZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6aXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0
Y2gpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6aXNBY2Nlc3NpYmlsaXR5VGV4
dFNlYXJjaE1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6Om9iamVjdE1h
dGNoZXNTZWFyY2hDcml0ZXJpYVdpdGhSZXN1bHRMaW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5OjphcHBlbmRDaGlsZHJlblRvQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eTo6ZmluZE1hdGNoaW5nT2JqZWN0cyk6CisgICAgICAgIFVzZSBSZWZQdHI8
QVhDb3JlT2JqZWN0PiBpbnN0ZWFkIG9mIHJhdyBBWENvcmVPYmplY3QqIHBvaW50ZXJzLgorCiAy
MDIxLTEyLTA0ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtJRkNdIENvbXB1dGUgaXNGaXJzdEJveC9pc0xhc3RCb3ggZm9yIHRleHQgY29udGVudApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKaW5kZXggZDY0OWYxY2QyY2VjN2E4ZGE2ZjA0ZGViZTU1MjRhNzcwZDA5YjlmNS4uZmRlYzMy
YjY0ZWFhMzVjYzQ5Mjc0ZWNmZDJkNWQ0NTQyYmI3Yjc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC01MzMsNyAr
NTMzLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0Rlc2NlbmRhbnRPZlJvbGUoQWNj
ZXNzaWJpbGl0eVJvbGUgcm9sZSkgY29uc3QKICAgICB9KSAhPSBudWxscHRyOwogfQogCi1zdGF0
aWMgdm9pZCBhcHBlbmRBY2Nlc3NpYmlsaXR5T2JqZWN0KEFYQ29yZU9iamVjdCogb2JqZWN0LCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdHMp
CitzdGF0aWMgdm9pZCBhcHBlbmRBY2Nlc3NpYmlsaXR5T2JqZWN0KFJlZlB0cjxBWENvcmVPYmpl
Y3Q+IG9iamVjdCwgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yJiByZXN1bHRzKQogewogICAgIC8vIEZpbmQgdGhlIG5leHQgZGVzY2VuZGFudCBvZiB0aGlz
IGF0dGFjaG1lbnQgb2JqZWN0IHNvIHNlYXJjaCBjYW4gY29udGludWUgdGhyb3VnaCBmcmFtZXMu
CiAgICAgaWYgKG9iamVjdC0+aXNBdHRhY2htZW50KCkpIHsKQEAgLTM5MDcsNyArMzkwNyw3IEBA
IFN0cmluZyByb2xlVG9QbGF0Zm9ybVN0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogCiAv
LyBUaGlzIGZ1bmN0aW9uIGRldGVybWluZXMgaWYgdGhlIGdpdmVuIGBheE9iamVjdGAgaXMgYSBy
YWRpbyBidXR0b24gcGFydCBvZiBhIGRpZmZlcmVudCBhZC1ob2MgcmFkaW8gZ3JvdXAKIC8vIHRo
YW4gYHJlZmVyZW5jZU9iamVjdGAsIHdoZXJlIGFkLWhvYyByYWRpbyBncm91cCBtZW1iZXJzaGlw
IGlzIGRldGVybWluZWQgYnkgY29tcGFyaW5nIGBuYW1lYCBhdHRyaWJ1dGVzLgotc3RhdGljIGJv
b2wgaXNSYWRpb0J1dHRvbkluRGlmZmVyZW50QWRob2NHcm91cChBWENvcmVPYmplY3QqIGF4T2Jq
ZWN0LCBBWENvcmVPYmplY3QqIHJlZmVyZW5jZU9iamVjdCkKK3N0YXRpYyBib29sIGlzUmFkaW9C
dXR0b25JbkRpZmZlcmVudEFkaG9jR3JvdXAoUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhPYmplY3Qs
IEFYQ29yZU9iamVjdCogcmVmZXJlbmNlT2JqZWN0KQogewogICAgIGlmICghYXhPYmplY3QgfHwg
IWF4T2JqZWN0LT5pc1JhZGlvQnV0dG9uKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5
MjAsNyArMzkyMCw3IEBAIHN0YXRpYyBib29sIGlzUmFkaW9CdXR0b25JbkRpZmZlcmVudEFkaG9j
R3JvdXAoQVhDb3JlT2JqZWN0KiBheE9iamVjdCwgQVhDb3JlT2JqCiAgICAgcmV0dXJuIGF4T2Jq
ZWN0LT5hdHRyaWJ1dGVWYWx1ZSgibmFtZSIpICE9IHJlZmVyZW5jZU9iamVjdC0+YXR0cmlidXRl
VmFsdWUoIm5hbWUiKTsKIH0KIAotc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2Vh
cmNoTWF0Y2hBdEluZGV4KEFYQ29yZU9iamVjdCogYXhPYmplY3QsIEFjY2Vzc2liaWxpdHlTZWFy
Y2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIHNpemVfdCBpbmRleCkKK3N0YXRpYyBib29sIGlz
QWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleChSZWZQdHI8QVhDb3JlT2JqZWN0
PiBheE9iamVjdCwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwg
c2l6ZV90IGluZGV4KQogewogICAgIHN3aXRjaCAoY3JpdGVyaWEuc2VhcmNoS2V5c1tpbmRleF0p
IHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkFueVR5cGU6CkBAIC00MDI4LDcg
KzQwMjgsNyBAQCBzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaEF0
SW5kZXgoQVhDb3JlT2JqZWN0KiBheE9iamVjdCwgQWNjZQogICAgIH0KIH0KIAotc3RhdGljIGJv
b2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2goQVhDb3JlT2JqZWN0KiBheE9iamVj
dCwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSkKK3N0YXRpYyBi
b29sIGlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKFJlZlB0cjxBWENvcmVPYmplY3Q+
IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhKQog
ewogICAgIGlmICghYXhPYmplY3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQwNDQsNyAr
NDA0NCw3IEBAIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKEFY
Q29yZU9iamVjdCogYXhPYmplY3QsIEFjY2Vzc2liaWxpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1zdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlUZXh0U2VhcmNoTWF0Y2goQVhDb3JlT2JqZWN0
KiBheE9iamVjdCwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSkK
K3N0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChSZWZQdHI8QVhDb3Jl
T2JqZWN0PiBheE9iamVjdCwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0
ZXJpYSkKIHsKICAgICBpZiAoIWF4T2JqZWN0KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00
MDU4LDcgKzQwNTgsNyBAQCBzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlUZXh0U2VhcmNoTWF0
Y2goQVhDb3JlT2JqZWN0KiBheE9iamVjdCwgQWNjZXNzaWJpbGl0eQogICAgICAgICB8fCBjb250
YWluc1BsYWluVGV4dChheE9iamVjdC0+c3RyaW5nVmFsdWUoKSwgY3JpdGVyaWEuc2VhcmNoVGV4
dCwgQ2FzZUluc2Vuc2l0aXZlKTsKIH0KIAotc3RhdGljIGJvb2wgb2JqZWN0TWF0Y2hlc1NlYXJj
aENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KEFYQ29yZU9iamVjdCogb2JqZWN0LCBBY2Nlc3NpYmls
aXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBBWENvcmVPYmplY3Q6OkFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0cykKK3N0YXRpYyBib29sIG9iamVjdE1hdGNoZXNT
ZWFyY2hDcml0ZXJpYVdpdGhSZXN1bHRMaW1pdChSZWZQdHI8QVhDb3JlT2JqZWN0PiBvYmplY3Qs
IEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIEFYQ29yZU9iamVj
dDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRzKQogewogICAgIGlmIChpc0Fj
Y2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaChvYmplY3QsIGNyaXRlcmlhKSAmJiBpc0FjY2Vz
c2liaWxpdHlUZXh0U2VhcmNoTWF0Y2gob2JqZWN0LCBjcml0ZXJpYSkpIHsKICAgICAgICAgcmVz
dWx0cy5hcHBlbmQob2JqZWN0KTsKQEAgLTQwNzEsNyArNDA3MSw3IEBAIHN0YXRpYyBib29sIG9i
amVjdE1hdGNoZXNTZWFyY2hDcml0ZXJpYVdpdGhSZXN1bHRMaW1pdChBWENvcmVPYmplY3QqIG9i
amVjdCwgQWNjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgdm9pZCBhcHBlbmRDaGls
ZHJlblRvQXJyYXkoQVhDb3JlT2JqZWN0KiBvYmplY3QsIGJvb2wgaXNGb3J3YXJkLCBBWENvcmVP
YmplY3QqIHN0YXJ0T2JqZWN0LCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3ImIHJlc3VsdHMpCitzdGF0aWMgdm9pZCBhcHBlbmRDaGlsZHJlblRvQXJyYXko
UmVmUHRyPEFYQ29yZU9iamVjdD4gb2JqZWN0LCBib29sIGlzRm9yd2FyZCwgUmVmUHRyPEFYQ29y
ZU9iamVjdD4gc3RhcnRPYmplY3QsIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciYgcmVzdWx0cykKIHsKICAgICAvLyBBIHRhYmxlJ3MgY2hpbGRyZW4gaW5j
bHVkZXMgZWxlbWVudHMgd2hvc2Ugb3duIGNoaWxkcmVuIGFyZSBhbHNvIHRoZSB0YWJsZSdzIGNo
aWxkcmVuIChkdWUgdG8gdGhlIHdheSB0aGUgTWFjIGV4cG9zZXMgdGFibGVzKS4KICAgICAvLyBU
aGUgcm93cyBmcm9tIHRoZSB0YWJsZSBzaG91bGQgYmUgcXVlcmllZCwgc2luY2UgdGhvc2UgYXJl
IGRpcmVjdCBkZXNjZW5kYW50cyBvZiB0aGUgdGFibGUsIGFuZCB0aGV5IGNvbnRhaW4gY29udGVu
dC4KQEAgLTQwODMsNyArNDA4Myw3IEBAIHN0YXRpYyB2b2lkIGFwcGVuZENoaWxkcmVuVG9BcnJh
eShBWENvcmVPYmplY3QqIG9iamVjdCwgYm9vbCBpc0ZvcndhcmQsIEFYQ29yZU9iCiAgICAgc2l6
ZV90IGVuZEluZGV4ID0gaXNGb3J3YXJkID8gMCA6IGNoaWxkcmVuU2l6ZTsKIAogICAgIC8vIElm
IHRoZSBzdGFydE9iamVjdCBpcyBpZ25vcmVkLCB3ZSBzaG91bGQgdXNlIGFuIGFjY2Vzc2libGUg
c2libGluZyBhcyBhIHN0YXJ0IGVsZW1lbnQgaW5zdGVhZC4KLSAgICBpZiAoc3RhcnRPYmplY3Qg
JiYgc3RhcnRPYmplY3QtPmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSAmJiBzdGFydE9iamVjdC0+
aXNEZXNjZW5kYW50T2ZPYmplY3Qob2JqZWN0KSkgeworICAgIGlmIChzdGFydE9iamVjdCAmJiBz
dGFydE9iamVjdC0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpICYmIHN0YXJ0T2JqZWN0LT5pc0Rl
c2NlbmRhbnRPZk9iamVjdChvYmplY3QuZ2V0KCkpKSB7CiAgICAgICAgIEFYQ29yZU9iamVjdCog
cGFyZW50T2JqZWN0ID0gc3RhcnRPYmplY3QtPnBhcmVudE9iamVjdCgpOwogICAgICAgICAvLyBH
byB1cCB0aGUgcGFyZW50IGNoYWluIHRvIGZpbmQgdGhlIGhpZ2hlc3QgYW5jZXN0b3IgdGhhdCdz
IGFsc28gYmVpbmcgaWdub3JlZC4KICAgICAgICAgd2hpbGUgKHBhcmVudE9iamVjdCAmJiBwYXJl
bnRPYmplY3QtPmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSkgewpAQCAtNDEwOSwxMCArNDEwOSwx
MCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRDaGlsZHJlblRvQXJyYXkoQVhDb3JlT2JqZWN0KiBvYmpl
Y3QsIGJvb2wgaXNGb3J3YXJkLCBBWENvcmVPYgogICAgIC8vIFRoaXMgaXMgYnJva2VuIGludG8g
dHdvIHN0YXRlbWVudHMgc28gdGhhdCBpdCdzIGVhc2llciByZWFkLgogICAgIGlmIChpc0Zvcndh
cmQpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IHN0YXJ0SW5kZXg7IGkgPiBlbmRJbmRleDsg
aS0tKQotICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdChzZWFyY2hDaGlsZHJl
bi5hdChpIC0gMSkuZ2V0KCksIHJlc3VsdHMpOworICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJp
bGl0eU9iamVjdChzZWFyY2hDaGlsZHJlbi5hdChpIC0gMSksIHJlc3VsdHMpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBzdGFydEluZGV4OyBpIDwgZW5kSW5kZXg7IGkr
KykKLSAgICAgICAgICAgIGFwcGVuZEFjY2Vzc2liaWxpdHlPYmplY3Qoc2VhcmNoQ2hpbGRyZW4u
YXQoaSkuZ2V0KCksIHJlc3VsdHMpOworICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9i
amVjdChzZWFyY2hDaGlsZHJlbi5hdChpKSwgcmVzdWx0cyk7CiAgICAgfQogfQogCkBAIC00MTI1
LDcgKzQxMjUsNyBAQCB2b2lkIGZpbmRNYXRjaGluZ09iamVjdHMoQWNjZXNzaWJpbGl0eVNlYXJj
aENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZQogICAgIC8vIEl0IGRvZXMgdGhp
cyBieSBzdGVwcGluZyB1cCB0aGUgcGFyZW50IGNoYWluIGFuZCBhdCBlYWNoIGxldmVsIGRvaW5n
IGEgREZTLgogCiAgICAgLy8gSWYgdGhlcmUncyBubyBzdGFydCBvYmplY3QsIGl0IG1lYW5zIHdl
IHdhbnQgdG8gc2VhcmNoIGV2ZXJ5dGhpbmcuCi0gICAgQVhDb3JlT2JqZWN0KiBzdGFydE9iamVj
dCA9IGNyaXRlcmlhLnN0YXJ0T2JqZWN0OworICAgIFJlZlB0cjxBWENvcmVPYmplY3Q+IHN0YXJ0
T2JqZWN0ID0gY3JpdGVyaWEuc3RhcnRPYmplY3Q7CiAgICAgaWYgKCFzdGFydE9iamVjdCkKICAg
ICAgICAgc3RhcnRPYmplY3QgPSBjcml0ZXJpYS5hbmNob3JPYmplY3Q7CiAKQEAgLTQxMzQsNyAr
NDEzNCw3IEBAIHZvaWQgZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmlsaXR5U2VhcmNoQ3Jp
dGVyaWEgY29uc3QmIGNyaXRlcmlhLCBBWENvcmVPYmplCiAgICAgLy8gVGhlIGZpcnN0IGl0ZXJh
dGlvbiBvZiB0aGUgb3V0ZXIgbG9vcCB3aWxsIGV4YW1pbmUgdGhlIGNoaWxkcmVuIG9mIHRoZSBz
dGFydCBvYmplY3QgZm9yIG1hdGNoZXMuIEhvd2V2ZXIsIHdoZW4KICAgICAvLyBpdGVyYXRpbmcg
YmFja3dhcmRzLCB0aGUgc3RhcnQgb2JqZWN0IGNoaWxkcmVuIHNob3VsZCBub3QgYmUgY29uc2lk
ZXJlZCwgc28gdGhlIGxvb3AgaXMgc2tpcHBlZCBhaGVhZC4gV2UgbWFrZSBhbgogICAgIC8vIGV4
Y2VwdGlvbiB3aGVuIG5vIHN0YXJ0IG9iamVjdCB3YXMgc3BlY2lmaWVkIGJlY2F1c2Ugd2Ugd2Fu
dCB0byBzZWFyY2ggZXZlcnl0aGluZyByZWdhcmRsZXNzIG9mIHNlYXJjaCBkaXJlY3Rpb24uCi0g
ICAgQVhDb3JlT2JqZWN0KiBwcmV2aW91c09iamVjdCA9IG51bGxwdHI7CisgICAgUmVmUHRyPEFY
Q29yZU9iamVjdD4gcHJldmlvdXNPYmplY3Q7CiAgICAgaWYgKCFpc0ZvcndhcmQgJiYgc3RhcnRP
YmplY3QgIT0gY3JpdGVyaWEuYW5jaG9yT2JqZWN0KSB7CiAgICAgICAgIHByZXZpb3VzT2JqZWN0
ID0gc3RhcnRPYmplY3Q7CiAgICAgICAgIHN0YXJ0T2JqZWN0ID0gc3RhcnRPYmplY3QtPnBhcmVu
dE9iamVjdFVuaWdub3JlZCgpOwpAQCAtNDE1MCw3ICs0MTUwLDcgQEAgdm9pZCBmaW5kTWF0Y2hp
bmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIEFY
Q29yZU9iamUKIAogICAgICAgICAvLyBUaGlzIG5vdyBkb2VzIGEgREZTIGF0IHRoZSBjdXJyZW50
IGxldmVsIG9mIHRoZSBwYXJlbnQuCiAgICAgICAgIHdoaWxlICghc2VhcmNoU3RhY2suaXNFbXB0
eSgpKSB7Ci0gICAgICAgICAgICBBWENvcmVPYmplY3QqIHNlYXJjaE9iamVjdCA9IHNlYXJjaFN0
YWNrLmxhc3QoKS5nZXQoKTsKKyAgICAgICAgICAgIGF1dG8gc2VhcmNoT2JqZWN0ID0gc2VhcmNo
U3RhY2subGFzdCgpOwogICAgICAgICAgICAgc2VhcmNoU3RhY2sucmVtb3ZlTGFzdCgpOwogCiAg
ICAgICAgICAgICBpZiAob2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0
KHNlYXJjaE9iamVjdCwgY3JpdGVyaWEsIHJlc3VsdHMpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446242</attachid>
            <date>2021-12-07 15:20:49 -0800</date>
            <delta_ts>2021-12-07 15:24:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233888-20211207172048.patch</filename>
            <type>text/plain</type>
            <size>8870</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODliNmU1ZGYyYWNlMzcy
NDEyMzhjODYxNzVlNjg0MjJlYWE2MWVjYy4uMGExYmExNTU2NDNmMzIwZThiMjA4YTkyYzcwYTgz
MmE0MDg1ZmMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEyLTA3ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFVzZSBSZWZQdHI8
QVhDb3JlT2JqZWN0PiBpbnN0ZWFkIG9mIHJhdyBBWENvcmVPYmplY3QqIHBvaW50ZXJzIGluIG1v
cmUgcGxhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNb3ZlIG1vc3QgdXNhZ2VzIG9mIHJhdyBBWENvcmVPYmplY3QqIHBvaW50ZXJzIHRvIFJlZlB0
cjxBWENvcmVPYmplY3Q+IGluCisgICAgICAgIEFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09i
amVjdHMgYW5kIGRvd25zdHJlYW0gZnVuY3Rpb25zLgorCisgICAgICAgIFRoaXMgZml4ZXMgdHdv
IGlzb2xhdGVkIHRyZWUgbW9kZSBvbmx5IGNyYXNoZXMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kQWNj
ZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojppc1Jh
ZGlvQnV0dG9uSW5EaWZmZXJlbnRBZGhvY0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHk6OmlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojppc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hN
YXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojppc0FjY2Vzc2liaWxpdHlU
ZXh0U2VhcmNoTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6b2JqZWN0
TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHk6OmFwcGVuZENoaWxkcmVuVG9BcnJheSk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzKToKKyAgICAgICAgVXNlIFJlZlB0
cjxBWENvcmVPYmplY3Q+IGluc3RlYWQgb2YgcmF3IEFYQ29yZU9iamVjdCogcG9pbnRlcnMuCisK
IDIwMjEtMTItMDcgIEt5bGUgUGlkZGluZ3RvbiAgPGtwaWRkaW5ndG9uQGFwcGxlLmNvbT4KICAg
ICAgICAgUm9sbCBBTkdMRSB0byBpbmNsdWRlIHVwc3RyZWFtZWQgTWV0YWwgYmFja2VuZAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwODk2CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cAppbmRleCBkNjQ5ZjFjZDJjZWM3YThkYTZmMDRkZWJlNTUyNGE3NzBkMDliOWY1Li44ZTYyMjg4
ZTgwZjI0YzRlM2QzZTc4ZmIzODU0M2JlMTEwMjk3YWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTUzMyw3ICs1
MzMsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzRGVzY2VuZGFudE9mUm9sZShBY2Nl
c3NpYmlsaXR5Um9sZSByb2xlKSBjb25zdAogICAgIH0pICE9IG51bGxwdHI7CiB9CiAKLXN0YXRp
YyB2b2lkIGFwcGVuZEFjY2Vzc2liaWxpdHlPYmplY3QoQVhDb3JlT2JqZWN0KiBvYmplY3QsIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0cykK
K3N0YXRpYyB2b2lkIGFwcGVuZEFjY2Vzc2liaWxpdHlPYmplY3QoUmVmUHRyPEFYQ29yZU9iamVj
dD4gb2JqZWN0LCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3ImIHJlc3VsdHMpCiB7CiAgICAgLy8gRmluZCB0aGUgbmV4dCBkZXNjZW5kYW50IG9mIHRoaXMg
YXR0YWNobWVudCBvYmplY3Qgc28gc2VhcmNoIGNhbiBjb250aW51ZSB0aHJvdWdoIGZyYW1lcy4K
ICAgICBpZiAob2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkgewpAQCAtMzkwNyw3ICszOTA3LDcgQEAg
U3RyaW5nIHJvbGVUb1BsYXRmb3JtU3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAKIC8v
IFRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gYGF4T2JqZWN0YCBpcyBhIHJh
ZGlvIGJ1dHRvbiBwYXJ0IG9mIGEgZGlmZmVyZW50IGFkLWhvYyByYWRpbyBncm91cAogLy8gdGhh
biBgcmVmZXJlbmNlT2JqZWN0YCwgd2hlcmUgYWQtaG9jIHJhZGlvIGdyb3VwIG1lbWJlcnNoaXAg
aXMgZGV0ZXJtaW5lZCBieSBjb21wYXJpbmcgYG5hbWVgIGF0dHJpYnV0ZXMuCi1zdGF0aWMgYm9v
bCBpc1JhZGlvQnV0dG9uSW5EaWZmZXJlbnRBZGhvY0dyb3VwKEFYQ29yZU9iamVjdCogYXhPYmpl
Y3QsIEFYQ29yZU9iamVjdCogcmVmZXJlbmNlT2JqZWN0KQorc3RhdGljIGJvb2wgaXNSYWRpb0J1
dHRvbkluRGlmZmVyZW50QWRob2NHcm91cChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwg
QVhDb3JlT2JqZWN0KiByZWZlcmVuY2VPYmplY3QpCiB7CiAgICAgaWYgKCFheE9iamVjdCB8fCAh
YXhPYmplY3QtPmlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzky
MCw3ICszOTIwLDcgQEAgc3RhdGljIGJvb2wgaXNSYWRpb0J1dHRvbkluRGlmZmVyZW50QWRob2NH
cm91cChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBBWENvcmVPYmoKICAgICByZXR1cm4gYXhPYmpl
Y3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIikgIT0gcmVmZXJlbmNlT2JqZWN0LT5hdHRyaWJ1dGVW
YWx1ZSgibmFtZSIpOwogfQogCi1zdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFy
Y2hNYXRjaEF0SW5kZXgoQVhDb3JlT2JqZWN0KiBheE9iamVjdCwgQWNjZXNzaWJpbGl0eVNlYXJj
aENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgc2l6ZV90IGluZGV4KQorc3RhdGljIGJvb2wgaXNB
Y2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hBdEluZGV4KFJlZlB0cjxBWENvcmVPYmplY3Q+
IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBz
aXplX3QgaW5kZXgpCiB7CiAgICAgc3dpdGNoIChjcml0ZXJpYS5zZWFyY2hLZXlzW2luZGV4XSkg
ewogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6QW55VHlwZToKQEAgLTQwMjgsNyAr
NDAyOCw3IEBAIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoQXRJ
bmRleChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBBY2NlCiAgICAgfQogfQogCi1zdGF0aWMgYm9v
bCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaChBWENvcmVPYmplY3QqIGF4T2JqZWN0
LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhKQorc3RhdGljIGJv
b2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2goUmVmUHRyPEFYQ29yZU9iamVjdD4g
YXhPYmplY3QsIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEpCiB7
CiAgICAgaWYgKCFheE9iamVjdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDA0NCw3ICs0
MDQ0LDcgQEAgc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2goQVhD
b3JlT2JqZWN0KiBheE9iamVjdCwgQWNjZXNzaWJpbGkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChBWENvcmVPYmplY3Qq
IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhKQor
c3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGV4dFNlYXJjaE1hdGNoKFJlZlB0cjxBWENvcmVP
YmplY3Q+IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRl
cmlhKQogewogICAgIGlmICghYXhPYmplY3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQw
NTgsNyArNDA1OCw3IEBAIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRj
aChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5CiAgICAgICAgIHx8IGNvbnRh
aW5zUGxhaW5UZXh0KGF4T2JqZWN0LT5zdHJpbmdWYWx1ZSgpLCBjcml0ZXJpYS5zZWFyY2hUZXh0
LCBDYXNlSW5zZW5zaXRpdmUpOwogfQogCi1zdGF0aWMgYm9vbCBvYmplY3RNYXRjaGVzU2VhcmNo
Q3JpdGVyaWFXaXRoUmVzdWx0TGltaXQoQVhDb3JlT2JqZWN0KiBvYmplY3QsIEFjY2Vzc2liaWxp
dHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRzKQorc3RhdGljIGJvb2wgb2JqZWN0TWF0Y2hlc1Nl
YXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KFJlZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCwg
QWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZWN0
OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdHMpCiB7CiAgICAgaWYgKGlzQWNj
ZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKG9iamVjdCwgY3JpdGVyaWEpICYmIGlzQWNjZXNz
aWJpbGl0eVRleHRTZWFyY2hNYXRjaChvYmplY3QsIGNyaXRlcmlhKSkgewogICAgICAgICByZXN1
bHRzLmFwcGVuZChvYmplY3QpOwpAQCAtNDA3MSw3ICs0MDcxLDcgQEAgc3RhdGljIGJvb2wgb2Jq
ZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KEFYQ29yZU9iamVjdCogb2Jq
ZWN0LCBBY2MKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGFwcGVuZENoaWxk
cmVuVG9BcnJheShBWENvcmVPYmplY3QqIG9iamVjdCwgYm9vbCBpc0ZvcndhcmQsIEFYQ29yZU9i
amVjdCogc3RhcnRPYmplY3QsIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciYgcmVzdWx0cykKK3N0YXRpYyB2b2lkIGFwcGVuZENoaWxkcmVuVG9BcnJheShS
ZWZQdHI8QVhDb3JlT2JqZWN0PiBvYmplY3QsIGJvb2wgaXNGb3J3YXJkLCBSZWZQdHI8QVhDb3Jl
T2JqZWN0PiBzdGFydE9iamVjdCwgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yJiByZXN1bHRzKQogewogICAgIC8vIEEgdGFibGUncyBjaGlsZHJlbiBpbmNs
dWRlcyBlbGVtZW50cyB3aG9zZSBvd24gY2hpbGRyZW4gYXJlIGFsc28gdGhlIHRhYmxlJ3MgY2hp
bGRyZW4gKGR1ZSB0byB0aGUgd2F5IHRoZSBNYWMgZXhwb3NlcyB0YWJsZXMpLgogICAgIC8vIFRo
ZSByb3dzIGZyb20gdGhlIHRhYmxlIHNob3VsZCBiZSBxdWVyaWVkLCBzaW5jZSB0aG9zZSBhcmUg
ZGlyZWN0IGRlc2NlbmRhbnRzIG9mIHRoZSB0YWJsZSwgYW5kIHRoZXkgY29udGFpbiBjb250ZW50
LgpAQCAtNDA4Myw4ICs0MDgzLDggQEAgc3RhdGljIHZvaWQgYXBwZW5kQ2hpbGRyZW5Ub0FycmF5
KEFYQ29yZU9iamVjdCogb2JqZWN0LCBib29sIGlzRm9yd2FyZCwgQVhDb3JlT2IKICAgICBzaXpl
X3QgZW5kSW5kZXggPSBpc0ZvcndhcmQgPyAwIDogY2hpbGRyZW5TaXplOwogCiAgICAgLy8gSWYg
dGhlIHN0YXJ0T2JqZWN0IGlzIGlnbm9yZWQsIHdlIHNob3VsZCB1c2UgYW4gYWNjZXNzaWJsZSBz
aWJsaW5nIGFzIGEgc3RhcnQgZWxlbWVudCBpbnN0ZWFkLgotICAgIGlmIChzdGFydE9iamVjdCAm
JiBzdGFydE9iamVjdC0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpICYmIHN0YXJ0T2JqZWN0LT5p
c0Rlc2NlbmRhbnRPZk9iamVjdChvYmplY3QpKSB7Ci0gICAgICAgIEFYQ29yZU9iamVjdCogcGFy
ZW50T2JqZWN0ID0gc3RhcnRPYmplY3QtPnBhcmVudE9iamVjdCgpOworICAgIGlmIChzdGFydE9i
amVjdCAmJiBzdGFydE9iamVjdC0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpICYmIHN0YXJ0T2Jq
ZWN0LT5pc0Rlc2NlbmRhbnRPZk9iamVjdChvYmplY3QuZ2V0KCkpKSB7CisgICAgICAgIFJlZlB0
cjxBWENvcmVPYmplY3Q+IHBhcmVudE9iamVjdCA9IHN0YXJ0T2JqZWN0LT5wYXJlbnRPYmplY3Qo
KTsKICAgICAgICAgLy8gR28gdXAgdGhlIHBhcmVudCBjaGFpbiB0byBmaW5kIHRoZSBoaWdoZXN0
IGFuY2VzdG9yIHRoYXQncyBhbHNvIGJlaW5nIGlnbm9yZWQuCiAgICAgICAgIHdoaWxlIChwYXJl
bnRPYmplY3QgJiYgcGFyZW50T2JqZWN0LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkpIHsKICAg
ICAgICAgICAgIGlmIChwYXJlbnRPYmplY3QgPT0gb2JqZWN0KQpAQCAtNDEwOSwxMCArNDEwOSwx
MCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRDaGlsZHJlblRvQXJyYXkoQVhDb3JlT2JqZWN0KiBvYmpl
Y3QsIGJvb2wgaXNGb3J3YXJkLCBBWENvcmVPYgogICAgIC8vIFRoaXMgaXMgYnJva2VuIGludG8g
dHdvIHN0YXRlbWVudHMgc28gdGhhdCBpdCdzIGVhc2llciByZWFkLgogICAgIGlmIChpc0Zvcndh
cmQpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IHN0YXJ0SW5kZXg7IGkgPiBlbmRJbmRleDsg
aS0tKQotICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdChzZWFyY2hDaGlsZHJl
bi5hdChpIC0gMSkuZ2V0KCksIHJlc3VsdHMpOworICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJp
bGl0eU9iamVjdChzZWFyY2hDaGlsZHJlbi5hdChpIC0gMSksIHJlc3VsdHMpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBzdGFydEluZGV4OyBpIDwgZW5kSW5kZXg7IGkr
KykKLSAgICAgICAgICAgIGFwcGVuZEFjY2Vzc2liaWxpdHlPYmplY3Qoc2VhcmNoQ2hpbGRyZW4u
YXQoaSkuZ2V0KCksIHJlc3VsdHMpOworICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9i
amVjdChzZWFyY2hDaGlsZHJlbi5hdChpKSwgcmVzdWx0cyk7CiAgICAgfQogfQogCkBAIC00MTI1
LDcgKzQxMjUsNyBAQCB2b2lkIGZpbmRNYXRjaGluZ09iamVjdHMoQWNjZXNzaWJpbGl0eVNlYXJj
aENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZQogICAgIC8vIEl0IGRvZXMgdGhp
cyBieSBzdGVwcGluZyB1cCB0aGUgcGFyZW50IGNoYWluIGFuZCBhdCBlYWNoIGxldmVsIGRvaW5n
IGEgREZTLgogCiAgICAgLy8gSWYgdGhlcmUncyBubyBzdGFydCBvYmplY3QsIGl0IG1lYW5zIHdl
IHdhbnQgdG8gc2VhcmNoIGV2ZXJ5dGhpbmcuCi0gICAgQVhDb3JlT2JqZWN0KiBzdGFydE9iamVj
dCA9IGNyaXRlcmlhLnN0YXJ0T2JqZWN0OworICAgIFJlZlB0cjxBWENvcmVPYmplY3Q+IHN0YXJ0
T2JqZWN0ID0gY3JpdGVyaWEuc3RhcnRPYmplY3Q7CiAgICAgaWYgKCFzdGFydE9iamVjdCkKICAg
ICAgICAgc3RhcnRPYmplY3QgPSBjcml0ZXJpYS5hbmNob3JPYmplY3Q7CiAKQEAgLTQxMzQsNyAr
NDEzNCw3IEBAIHZvaWQgZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmlsaXR5U2VhcmNoQ3Jp
dGVyaWEgY29uc3QmIGNyaXRlcmlhLCBBWENvcmVPYmplCiAgICAgLy8gVGhlIGZpcnN0IGl0ZXJh
dGlvbiBvZiB0aGUgb3V0ZXIgbG9vcCB3aWxsIGV4YW1pbmUgdGhlIGNoaWxkcmVuIG9mIHRoZSBz
dGFydCBvYmplY3QgZm9yIG1hdGNoZXMuIEhvd2V2ZXIsIHdoZW4KICAgICAvLyBpdGVyYXRpbmcg
YmFja3dhcmRzLCB0aGUgc3RhcnQgb2JqZWN0IGNoaWxkcmVuIHNob3VsZCBub3QgYmUgY29uc2lk
ZXJlZCwgc28gdGhlIGxvb3AgaXMgc2tpcHBlZCBhaGVhZC4gV2UgbWFrZSBhbgogICAgIC8vIGV4
Y2VwdGlvbiB3aGVuIG5vIHN0YXJ0IG9iamVjdCB3YXMgc3BlY2lmaWVkIGJlY2F1c2Ugd2Ugd2Fu
dCB0byBzZWFyY2ggZXZlcnl0aGluZyByZWdhcmRsZXNzIG9mIHNlYXJjaCBkaXJlY3Rpb24uCi0g
ICAgQVhDb3JlT2JqZWN0KiBwcmV2aW91c09iamVjdCA9IG51bGxwdHI7CisgICAgUmVmUHRyPEFY
Q29yZU9iamVjdD4gcHJldmlvdXNPYmplY3Q7CiAgICAgaWYgKCFpc0ZvcndhcmQgJiYgc3RhcnRP
YmplY3QgIT0gY3JpdGVyaWEuYW5jaG9yT2JqZWN0KSB7CiAgICAgICAgIHByZXZpb3VzT2JqZWN0
ID0gc3RhcnRPYmplY3Q7CiAgICAgICAgIHN0YXJ0T2JqZWN0ID0gc3RhcnRPYmplY3QtPnBhcmVu
dE9iamVjdFVuaWdub3JlZCgpOwpAQCAtNDE1MCw3ICs0MTUwLDcgQEAgdm9pZCBmaW5kTWF0Y2hp
bmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIEFY
Q29yZU9iamUKIAogICAgICAgICAvLyBUaGlzIG5vdyBkb2VzIGEgREZTIGF0IHRoZSBjdXJyZW50
IGxldmVsIG9mIHRoZSBwYXJlbnQuCiAgICAgICAgIHdoaWxlICghc2VhcmNoU3RhY2suaXNFbXB0
eSgpKSB7Ci0gICAgICAgICAgICBBWENvcmVPYmplY3QqIHNlYXJjaE9iamVjdCA9IHNlYXJjaFN0
YWNrLmxhc3QoKS5nZXQoKTsKKyAgICAgICAgICAgIGF1dG8gc2VhcmNoT2JqZWN0ID0gc2VhcmNo
U3RhY2subGFzdCgpOwogICAgICAgICAgICAgc2VhcmNoU3RhY2sucmVtb3ZlTGFzdCgpOwogCiAg
ICAgICAgICAgICBpZiAob2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0
KHNlYXJjaE9iamVjdCwgY3JpdGVyaWEsIHJlc3VsdHMpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446243</attachid>
            <date>2021-12-07 15:24:07 -0800</date>
            <delta_ts>2021-12-08 10:32:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233888-20211207172406.patch</filename>
            <type>text/plain</type>
            <size>9011</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODliNmU1ZGYyYWNlMzcy
NDEyMzhjODYxNzVlNjg0MjJlYWE2MWVjYy4uNzAwMmYwYTNiMjdmOWM2NjVmNzJlNmI4NDI5MDVm
MWNjMDM1Y2ZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTEyLTA3ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFVzZSBSZWZQdHI8
QVhDb3JlT2JqZWN0PiBpbnN0ZWFkIG9mIHJhdyBBWENvcmVPYmplY3QqIHBvaW50ZXJzIGluIG1v
cmUgcGxhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNb3ZlIG1vc3QgdXNhZ2VzIG9mIHJhdyBBWENvcmVPYmplY3QqIHBvaW50ZXJzIHRvIFJlZlB0
cjxBWENvcmVPYmplY3Q+IGluCisgICAgICAgIEFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09i
amVjdHMgYW5kIGRvd25zdHJlYW0gZnVuY3Rpb25zLgorCisgICAgICAgIFRoaXMgZml4ZXMgaXNv
bGF0ZWQgdHJlZSBtb2RlIG9ubHkgY3Jhc2hlcyBmb3IgdGVzdHM6CisgICAgICAgICAgLSBhY2Nl
c3NpYmlsaXR5L21hYy9zZWFyY2gtcHJlZGljYXRlLWVsZW1lbnQtY291bnQuaHRtbAorICAgICAg
ICAgIC0gYWNjZXNzaWJpbGl0eS9tYWMvc2VhcmNoLXByZWRpY2F0ZS12aXNpYmxlLWJ1dHRvbi5o
dG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6YXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojppc1JhZGlvQnV0dG9uSW5EaWZmZXJlbnRBZGhvY0dyb3Vw
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmlzQWNjZXNzaWJpbGl0eU9iamVj
dFNlYXJjaE1hdGNoQXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojpp
c0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5Ojppc0FjY2Vzc2liaWxpdHlUZXh0U2VhcmNoTWF0Y2gpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eTo6b2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3Vs
dExpbWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmFwcGVuZENoaWxkcmVu
VG9BcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdP
YmplY3RzKToKKyAgICAgICAgVXNlIFJlZlB0cjxBWENvcmVPYmplY3Q+IGluc3RlYWQgb2YgcmF3
IEFYQ29yZU9iamVjdCogcG9pbnRlcnMuCisKIDIwMjEtMTItMDcgIEt5bGUgUGlkZGluZ3RvbiAg
PGtwaWRkaW5ndG9uQGFwcGxlLmNvbT4KICAgICAgICAgUm9sbCBBTkdMRSB0byBpbmNsdWRlIHVw
c3RyZWFtZWQgTWV0YWwgYmFja2VuZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBkNjQ5ZjFjZDJjZWM3YThkYTZmMDRk
ZWJlNTUyNGE3NzBkMDliOWY1Li44ZTYyMjg4ZTgwZjI0YzRlM2QzZTc4ZmIzODU0M2JlMTEwMjk3
YWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKQEAgLTUzMyw3ICs1MzMsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmlzRGVzY2VuZGFudE9mUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKSBjb25zdAogICAg
IH0pICE9IG51bGxwdHI7CiB9CiAKLXN0YXRpYyB2b2lkIGFwcGVuZEFjY2Vzc2liaWxpdHlPYmpl
Y3QoQVhDb3JlT2JqZWN0KiBvYmplY3QsIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYgcmVzdWx0cykKK3N0YXRpYyB2b2lkIGFwcGVuZEFjY2Vzc2liaWxp
dHlPYmplY3QoUmVmUHRyPEFYQ29yZU9iamVjdD4gb2JqZWN0LCBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdHMpCiB7CiAgICAgLy8gRmluZCB0
aGUgbmV4dCBkZXNjZW5kYW50IG9mIHRoaXMgYXR0YWNobWVudCBvYmplY3Qgc28gc2VhcmNoIGNh
biBjb250aW51ZSB0aHJvdWdoIGZyYW1lcy4KICAgICBpZiAob2JqZWN0LT5pc0F0dGFjaG1lbnQo
KSkgewpAQCAtMzkwNyw3ICszOTA3LDcgQEAgU3RyaW5nIHJvbGVUb1BsYXRmb3JtU3RyaW5nKEFj
Y2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAKIC8vIFRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyBpZiB0
aGUgZ2l2ZW4gYGF4T2JqZWN0YCBpcyBhIHJhZGlvIGJ1dHRvbiBwYXJ0IG9mIGEgZGlmZmVyZW50
IGFkLWhvYyByYWRpbyBncm91cAogLy8gdGhhbiBgcmVmZXJlbmNlT2JqZWN0YCwgd2hlcmUgYWQt
aG9jIHJhZGlvIGdyb3VwIG1lbWJlcnNoaXAgaXMgZGV0ZXJtaW5lZCBieSBjb21wYXJpbmcgYG5h
bWVgIGF0dHJpYnV0ZXMuCi1zdGF0aWMgYm9vbCBpc1JhZGlvQnV0dG9uSW5EaWZmZXJlbnRBZGhv
Y0dyb3VwKEFYQ29yZU9iamVjdCogYXhPYmplY3QsIEFYQ29yZU9iamVjdCogcmVmZXJlbmNlT2Jq
ZWN0KQorc3RhdGljIGJvb2wgaXNSYWRpb0J1dHRvbkluRGlmZmVyZW50QWRob2NHcm91cChSZWZQ
dHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwgQVhDb3JlT2JqZWN0KiByZWZlcmVuY2VPYmplY3Qp
CiB7CiAgICAgaWYgKCFheE9iamVjdCB8fCAhYXhPYmplY3QtPmlzUmFkaW9CdXR0b24oKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzkyMCw3ICszOTIwLDcgQEAgc3RhdGljIGJvb2wgaXNS
YWRpb0J1dHRvbkluRGlmZmVyZW50QWRob2NHcm91cChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBB
WENvcmVPYmoKICAgICByZXR1cm4gYXhPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIikgIT0g
cmVmZXJlbmNlT2JqZWN0LT5hdHRyaWJ1dGVWYWx1ZSgibmFtZSIpOwogfQogCi1zdGF0aWMgYm9v
bCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaEF0SW5kZXgoQVhDb3JlT2JqZWN0KiBh
eE9iamVjdCwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgc2l6
ZV90IGluZGV4KQorc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hB
dEluZGV4KFJlZlB0cjxBWENvcmVPYmplY3Q+IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNo
Q3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBzaXplX3QgaW5kZXgpCiB7CiAgICAgc3dpdGNoIChj
cml0ZXJpYS5zZWFyY2hLZXlzW2luZGV4XSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJj
aEtleTo6QW55VHlwZToKQEAgLTQwMjgsNyArNDAyOCw3IEBAIHN0YXRpYyBib29sIGlzQWNjZXNz
aWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBB
Y2NlCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hN
YXRjaChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEg
Y29uc3QmIGNyaXRlcmlhKQorc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNo
TWF0Y2goUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhPYmplY3QsIEFjY2Vzc2liaWxpdHlTZWFyY2hD
cml0ZXJpYSBjb25zdCYgY3JpdGVyaWEpCiB7CiAgICAgaWYgKCFheE9iamVjdCkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDA0NCw3ICs0MDQ0LDcgQEAgc3RhdGljIGJvb2wgaXNBY2Nlc3Np
YmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2goQVhDb3JlT2JqZWN0KiBheE9iamVjdCwgQWNjZXNzaWJp
bGkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRl
eHRTZWFyY2hNYXRjaChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNo
Q3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhKQorc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGV4
dFNlYXJjaE1hdGNoKFJlZlB0cjxBWENvcmVPYmplY3Q+IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5
U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhKQogewogICAgIGlmICghYXhPYmplY3QpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQwNTgsNyArNDA1OCw3IEBAIHN0YXRpYyBib29sIGlz
QWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBBY2Nl
c3NpYmlsaXR5CiAgICAgICAgIHx8IGNvbnRhaW5zUGxhaW5UZXh0KGF4T2JqZWN0LT5zdHJpbmdW
YWx1ZSgpLCBjcml0ZXJpYS5zZWFyY2hUZXh0LCBDYXNlSW5zZW5zaXRpdmUpOwogfQogCi1zdGF0
aWMgYm9vbCBvYmplY3RNYXRjaGVzU2VhcmNoQ3JpdGVyaWFXaXRoUmVzdWx0TGltaXQoQVhDb3Jl
T2JqZWN0KiBvYmplY3QsIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVy
aWEsIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRzKQor
c3RhdGljIGJvb2wgb2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KFJl
ZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNv
bnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Im
IHJlc3VsdHMpCiB7CiAgICAgaWYgKGlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKG9i
amVjdCwgY3JpdGVyaWEpICYmIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChvYmplY3Qs
IGNyaXRlcmlhKSkgewogICAgICAgICByZXN1bHRzLmFwcGVuZChvYmplY3QpOwpAQCAtNDA3MSw3
ICs0MDcxLDcgQEAgc3RhdGljIGJvb2wgb2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJl
c3VsdExpbWl0KEFYQ29yZU9iamVjdCogb2JqZWN0LCBBY2MKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXN0YXRpYyB2b2lkIGFwcGVuZENoaWxkcmVuVG9BcnJheShBWENvcmVPYmplY3QqIG9iamVj
dCwgYm9vbCBpc0ZvcndhcmQsIEFYQ29yZU9iamVjdCogc3RhcnRPYmplY3QsIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0cykKK3N0YXRpYyB2
b2lkIGFwcGVuZENoaWxkcmVuVG9BcnJheShSZWZQdHI8QVhDb3JlT2JqZWN0PiBvYmplY3QsIGJv
b2wgaXNGb3J3YXJkLCBSZWZQdHI8QVhDb3JlT2JqZWN0PiBzdGFydE9iamVjdCwgQWNjZXNzaWJp
bGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRzKQogewogICAg
IC8vIEEgdGFibGUncyBjaGlsZHJlbiBpbmNsdWRlcyBlbGVtZW50cyB3aG9zZSBvd24gY2hpbGRy
ZW4gYXJlIGFsc28gdGhlIHRhYmxlJ3MgY2hpbGRyZW4gKGR1ZSB0byB0aGUgd2F5IHRoZSBNYWMg
ZXhwb3NlcyB0YWJsZXMpLgogICAgIC8vIFRoZSByb3dzIGZyb20gdGhlIHRhYmxlIHNob3VsZCBi
ZSBxdWVyaWVkLCBzaW5jZSB0aG9zZSBhcmUgZGlyZWN0IGRlc2NlbmRhbnRzIG9mIHRoZSB0YWJs
ZSwgYW5kIHRoZXkgY29udGFpbiBjb250ZW50LgpAQCAtNDA4Myw4ICs0MDgzLDggQEAgc3RhdGlj
IHZvaWQgYXBwZW5kQ2hpbGRyZW5Ub0FycmF5KEFYQ29yZU9iamVjdCogb2JqZWN0LCBib29sIGlz
Rm9yd2FyZCwgQVhDb3JlT2IKICAgICBzaXplX3QgZW5kSW5kZXggPSBpc0ZvcndhcmQgPyAwIDog
Y2hpbGRyZW5TaXplOwogCiAgICAgLy8gSWYgdGhlIHN0YXJ0T2JqZWN0IGlzIGlnbm9yZWQsIHdl
IHNob3VsZCB1c2UgYW4gYWNjZXNzaWJsZSBzaWJsaW5nIGFzIGEgc3RhcnQgZWxlbWVudCBpbnN0
ZWFkLgotICAgIGlmIChzdGFydE9iamVjdCAmJiBzdGFydE9iamVjdC0+YWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpICYmIHN0YXJ0T2JqZWN0LT5pc0Rlc2NlbmRhbnRPZk9iamVjdChvYmplY3QpKSB7
Ci0gICAgICAgIEFYQ29yZU9iamVjdCogcGFyZW50T2JqZWN0ID0gc3RhcnRPYmplY3QtPnBhcmVu
dE9iamVjdCgpOworICAgIGlmIChzdGFydE9iamVjdCAmJiBzdGFydE9iamVjdC0+YWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpICYmIHN0YXJ0T2JqZWN0LT5pc0Rlc2NlbmRhbnRPZk9iamVjdChvYmpl
Y3QuZ2V0KCkpKSB7CisgICAgICAgIFJlZlB0cjxBWENvcmVPYmplY3Q+IHBhcmVudE9iamVjdCA9
IHN0YXJ0T2JqZWN0LT5wYXJlbnRPYmplY3QoKTsKICAgICAgICAgLy8gR28gdXAgdGhlIHBhcmVu
dCBjaGFpbiB0byBmaW5kIHRoZSBoaWdoZXN0IGFuY2VzdG9yIHRoYXQncyBhbHNvIGJlaW5nIGln
bm9yZWQuCiAgICAgICAgIHdoaWxlIChwYXJlbnRPYmplY3QgJiYgcGFyZW50T2JqZWN0LT5hY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkpIHsKICAgICAgICAgICAgIGlmIChwYXJlbnRPYmplY3QgPT0g
b2JqZWN0KQpAQCAtNDEwOSwxMCArNDEwOSwxMCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRDaGlsZHJl
blRvQXJyYXkoQVhDb3JlT2JqZWN0KiBvYmplY3QsIGJvb2wgaXNGb3J3YXJkLCBBWENvcmVPYgog
ICAgIC8vIFRoaXMgaXMgYnJva2VuIGludG8gdHdvIHN0YXRlbWVudHMgc28gdGhhdCBpdCdzIGVh
c2llciByZWFkLgogICAgIGlmIChpc0ZvcndhcmQpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9
IHN0YXJ0SW5kZXg7IGkgPiBlbmRJbmRleDsgaS0tKQotICAgICAgICAgICAgYXBwZW5kQWNjZXNz
aWJpbGl0eU9iamVjdChzZWFyY2hDaGlsZHJlbi5hdChpIC0gMSkuZ2V0KCksIHJlc3VsdHMpOwor
ICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdChzZWFyY2hDaGlsZHJlbi5hdChp
IC0gMSksIHJlc3VsdHMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBz
dGFydEluZGV4OyBpIDwgZW5kSW5kZXg7IGkrKykKLSAgICAgICAgICAgIGFwcGVuZEFjY2Vzc2li
aWxpdHlPYmplY3Qoc2VhcmNoQ2hpbGRyZW4uYXQoaSkuZ2V0KCksIHJlc3VsdHMpOworICAgICAg
ICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdChzZWFyY2hDaGlsZHJlbi5hdChpKSwgcmVz
dWx0cyk7CiAgICAgfQogfQogCkBAIC00MTI1LDcgKzQxMjUsNyBAQCB2b2lkIGZpbmRNYXRjaGlu
Z09iamVjdHMoQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgQVhD
b3JlT2JqZQogICAgIC8vIEl0IGRvZXMgdGhpcyBieSBzdGVwcGluZyB1cCB0aGUgcGFyZW50IGNo
YWluIGFuZCBhdCBlYWNoIGxldmVsIGRvaW5nIGEgREZTLgogCiAgICAgLy8gSWYgdGhlcmUncyBu
byBzdGFydCBvYmplY3QsIGl0IG1lYW5zIHdlIHdhbnQgdG8gc2VhcmNoIGV2ZXJ5dGhpbmcuCi0g
ICAgQVhDb3JlT2JqZWN0KiBzdGFydE9iamVjdCA9IGNyaXRlcmlhLnN0YXJ0T2JqZWN0OworICAg
IFJlZlB0cjxBWENvcmVPYmplY3Q+IHN0YXJ0T2JqZWN0ID0gY3JpdGVyaWEuc3RhcnRPYmplY3Q7
CiAgICAgaWYgKCFzdGFydE9iamVjdCkKICAgICAgICAgc3RhcnRPYmplY3QgPSBjcml0ZXJpYS5h
bmNob3JPYmplY3Q7CiAKQEAgLTQxMzQsNyArNDEzNCw3IEBAIHZvaWQgZmluZE1hdGNoaW5nT2Jq
ZWN0cyhBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBBWENvcmVP
YmplCiAgICAgLy8gVGhlIGZpcnN0IGl0ZXJhdGlvbiBvZiB0aGUgb3V0ZXIgbG9vcCB3aWxsIGV4
YW1pbmUgdGhlIGNoaWxkcmVuIG9mIHRoZSBzdGFydCBvYmplY3QgZm9yIG1hdGNoZXMuIEhvd2V2
ZXIsIHdoZW4KICAgICAvLyBpdGVyYXRpbmcgYmFja3dhcmRzLCB0aGUgc3RhcnQgb2JqZWN0IGNo
aWxkcmVuIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCwgc28gdGhlIGxvb3AgaXMgc2tpcHBlZCBh
aGVhZC4gV2UgbWFrZSBhbgogICAgIC8vIGV4Y2VwdGlvbiB3aGVuIG5vIHN0YXJ0IG9iamVjdCB3
YXMgc3BlY2lmaWVkIGJlY2F1c2Ugd2Ugd2FudCB0byBzZWFyY2ggZXZlcnl0aGluZyByZWdhcmRs
ZXNzIG9mIHNlYXJjaCBkaXJlY3Rpb24uCi0gICAgQVhDb3JlT2JqZWN0KiBwcmV2aW91c09iamVj
dCA9IG51bGxwdHI7CisgICAgUmVmUHRyPEFYQ29yZU9iamVjdD4gcHJldmlvdXNPYmplY3Q7CiAg
ICAgaWYgKCFpc0ZvcndhcmQgJiYgc3RhcnRPYmplY3QgIT0gY3JpdGVyaWEuYW5jaG9yT2JqZWN0
KSB7CiAgICAgICAgIHByZXZpb3VzT2JqZWN0ID0gc3RhcnRPYmplY3Q7CiAgICAgICAgIHN0YXJ0
T2JqZWN0ID0gc3RhcnRPYmplY3QtPnBhcmVudE9iamVjdFVuaWdub3JlZCgpOwpAQCAtNDE1MCw3
ICs0MTUwLDcgQEAgdm9pZCBmaW5kTWF0Y2hpbmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hD
cml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIEFYQ29yZU9iamUKIAogICAgICAgICAvLyBUaGlzIG5v
dyBkb2VzIGEgREZTIGF0IHRoZSBjdXJyZW50IGxldmVsIG9mIHRoZSBwYXJlbnQuCiAgICAgICAg
IHdoaWxlICghc2VhcmNoU3RhY2suaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBBWENvcmVPYmpl
Y3QqIHNlYXJjaE9iamVjdCA9IHNlYXJjaFN0YWNrLmxhc3QoKS5nZXQoKTsKKyAgICAgICAgICAg
IGF1dG8gc2VhcmNoT2JqZWN0ID0gc2VhcmNoU3RhY2subGFzdCgpOwogICAgICAgICAgICAgc2Vh
cmNoU3RhY2sucmVtb3ZlTGFzdCgpOwogCiAgICAgICAgICAgICBpZiAob2JqZWN0TWF0Y2hlc1Nl
YXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KHNlYXJjaE9iamVjdCwgY3JpdGVyaWEsIHJlc3Vs
dHMpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446383</attachid>
            <date>2021-12-08 10:32:40 -0800</date>
            <delta_ts>2021-12-08 15:18:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233888-20211208123239.patch</filename>
            <type>text/plain</type>
            <size>11482</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODliNmU1ZGYyYWNlMzcy
NDEyMzhjODYxNzVlNjg0MjJlYWE2MWVjYy4uYzhjODYxODVkZmU4ZjRkYWYyMTU4YzAxNTg2NmU0
NTliOTBkZGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTEyLTA4ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFVzZSBSZWZQdHI8
QVhDb3JlT2JqZWN0PiBpbnN0ZWFkIG9mIHJhdyBBWENvcmVPYmplY3QqIHBvaW50ZXJzIGluIEFj
Y2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09iamVjdHMgYW5kIGRvd25zdHJlYW0gZnVuY3Rpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4ODgK
KworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKworICAgICAgICBNb3ZlIHVz
YWdlcyBvZiByYXcgQVhDb3JlT2JqZWN0KiBwb2ludGVycyB0byBSZWZQdHI8QVhDb3JlT2JqZWN0
PiBpbgorICAgICAgICBBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzIGFuZCBkb3du
c3RyZWFtIGZ1bmN0aW9ucy4KKworICAgICAgICBUaGlzIGZpeGVzIGlzb2xhdGVkIHRyZWUgbW9k
ZSBvbmx5IGNyYXNoZXMgZm9yIHRlc3RzOgorICAgICAgICAgIC0gYWNjZXNzaWJpbGl0eS9tYWMv
c2VhcmNoLXByZWRpY2F0ZS1lbGVtZW50LWNvdW50Lmh0bWwKKyAgICAgICAgICAtIGFjY2Vzc2li
aWxpdHkvbWFjL3NlYXJjaC1wcmVkaWNhdGUtdmlzaWJsZS1idXR0b24uaHRtbAorCisgICAgICAg
IFRoZXNlIGNyYXNoZWQgYmVjYXVzZToKKworICAgICAgICAgIDEuIFRoZSBzZWNvbmRhcnkgdGhy
ZWFkIHN0YXJ0cyBhIHNlYXJjaCBhbmQgc3RvcmVzIHJhdyBwb2ludGVycyBvbgorICAgICAgICAg
ICAgIGl0cyBzdGFjay4KKyAgICAgICAgICAyLiBUaGUgbWFpbiB0aHJlYWQgcGVyZm9ybXMgc29t
ZSBvcGVyYXRpb24gdG8gcXVldWUgaXNvbGF0ZWQgdHJlZQorICAgICAgICAgICAgIGNoYW5nZXMu
CisgICAgICAgICAgMy4gVGhlIHNlYXJjaCBjb250aW51ZXMgb24gdGhlIHNlY29uZGFyeSB0aHJl
YWQsIGV2ZW50dWFsbHkgY2FsbGluZworICAgICAgICAgICAgIEFYSXNvbGF0ZWRPYmplY3Q6OmNo
aWxkcmVuLiBUaGlzIGluIHR1cm5zIGNhbGxzIEFYSXNvbGF0ZWRUcmVlOjpwZW5kaW5nQ2hhbmdl
cy4KKyAgICAgICAgICA0LiBUaGUgb2JqZWN0KHMpIHdoaWNoIHdlIGhlbGQgcG9pbnRlcnMgdG8g
YXJlIGRlc3Ryb3llZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRBY2Nlc3NpYmlsaXR5T2JqZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmlzUmFkaW9CdXR0b25JbkRpZmZlcmVu
dEFkaG9jR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6aXNBY2Nlc3Np
YmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHk6OmlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHk6OmlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpvYmplY3RNYXRjaGVzU2VhcmNoQ3JpdGVy
aWFXaXRoUmVzdWx0TGltaXQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6YXBw
ZW5kQ2hpbGRyZW5Ub0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmZp
bmRNYXRjaGluZ09iamVjdHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhDb3JlT2JqZWN0Ojppc0Rl
c2NlbmRhbnRPZk9iamVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWENvcmVPYmplY3Q6
OmlzQW5jZXN0b3JPZk9iamVjdCBjb25zdCk6CisgICAgICAgIFVzZSBSZWZQdHI8QVhDb3JlT2Jq
ZWN0PiBpbnN0ZWFkIG9mIHJhdyBBWENvcmVPYmplY3QqIHBvaW50ZXJzLgorCiAyMDIxLTEyLTA3
ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGluZ3RvbkBhcHBsZS5jb20+CiAgICAgICAgIFJvbGwg
QU5HTEUgdG8gaW5jbHVkZSB1cHN0cmVhbWVkIE1ldGFsIGJhY2tlbmQKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDg5NgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggZDY0
OWYxY2QyY2VjN2E4ZGE2ZjA0ZGViZTU1MjRhNzcwZDA5YjlmNS4uY2FiYWZiNTZiZTdiNzU4M2Jj
MmUxZGE4ZTg3YjY3YmQxZmI3NGIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC01MzMsNyArNTMzLDcgQEAgYm9v
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0Rlc2NlbmRhbnRPZlJvbGUoQWNjZXNzaWJpbGl0eVJv
bGUgcm9sZSkgY29uc3QKICAgICB9KSAhPSBudWxscHRyOwogfQogCi1zdGF0aWMgdm9pZCBhcHBl
bmRBY2Nlc3NpYmlsaXR5T2JqZWN0KEFYQ29yZU9iamVjdCogb2JqZWN0LCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdHMpCitzdGF0aWMgdm9p
ZCBhcHBlbmRBY2Nlc3NpYmlsaXR5T2JqZWN0KFJlZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCwg
QWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRz
KQogewogICAgIC8vIEZpbmQgdGhlIG5leHQgZGVzY2VuZGFudCBvZiB0aGlzIGF0dGFjaG1lbnQg
b2JqZWN0IHNvIHNlYXJjaCBjYW4gY29udGludWUgdGhyb3VnaCBmcmFtZXMuCiAgICAgaWYgKG9i
amVjdC0+aXNBdHRhY2htZW50KCkpIHsKQEAgLTM5MDcsNyArMzkwNyw3IEBAIFN0cmluZyByb2xl
VG9QbGF0Zm9ybVN0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogCiAvLyBUaGlzIGZ1bmN0
aW9uIGRldGVybWluZXMgaWYgdGhlIGdpdmVuIGBheE9iamVjdGAgaXMgYSByYWRpbyBidXR0b24g
cGFydCBvZiBhIGRpZmZlcmVudCBhZC1ob2MgcmFkaW8gZ3JvdXAKIC8vIHRoYW4gYHJlZmVyZW5j
ZU9iamVjdGAsIHdoZXJlIGFkLWhvYyByYWRpbyBncm91cCBtZW1iZXJzaGlwIGlzIGRldGVybWlu
ZWQgYnkgY29tcGFyaW5nIGBuYW1lYCBhdHRyaWJ1dGVzLgotc3RhdGljIGJvb2wgaXNSYWRpb0J1
dHRvbkluRGlmZmVyZW50QWRob2NHcm91cChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBBWENvcmVP
YmplY3QqIHJlZmVyZW5jZU9iamVjdCkKK3N0YXRpYyBib29sIGlzUmFkaW9CdXR0b25JbkRpZmZl
cmVudEFkaG9jR3JvdXAoUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhPYmplY3QsIEFYQ29yZU9iamVj
dCogcmVmZXJlbmNlT2JqZWN0KQogewogICAgIGlmICghYXhPYmplY3QgfHwgIWF4T2JqZWN0LT5p
c1JhZGlvQnV0dG9uKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5MjAsNyArMzkyMCw3
IEBAIHN0YXRpYyBib29sIGlzUmFkaW9CdXR0b25JbkRpZmZlcmVudEFkaG9jR3JvdXAoQVhDb3Jl
T2JqZWN0KiBheE9iamVjdCwgQVhDb3JlT2JqCiAgICAgcmV0dXJuIGF4T2JqZWN0LT5hdHRyaWJ1
dGVWYWx1ZSgibmFtZSIpICE9IHJlZmVyZW5jZU9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUi
KTsKIH0KIAotc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hBdElu
ZGV4KEFYQ29yZU9iamVjdCogYXhPYmplY3QsIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBj
b25zdCYgY3JpdGVyaWEsIHNpemVfdCBpbmRleCkKK3N0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0
eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwg
QWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgc2l6ZV90IGluZGV4
KQogewogICAgIHN3aXRjaCAoY3JpdGVyaWEuc2VhcmNoS2V5c1tpbmRleF0pIHsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkFueVR5cGU6CkBAIC00MDI4LDcgKzQwMjgsNyBAQCBz
dGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaEF0SW5kZXgoQVhDb3Jl
T2JqZWN0KiBheE9iamVjdCwgQWNjZQogICAgIH0KIH0KIAotc3RhdGljIGJvb2wgaXNBY2Nlc3Np
YmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2goQVhDb3JlT2JqZWN0KiBheE9iamVjdCwgQWNjZXNzaWJp
bGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSkKK3N0YXRpYyBib29sIGlzQWNjZXNz
aWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKFJlZlB0cjxBWENvcmVPYmplY3Q+IGF4T2JqZWN0LCBB
Y2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhKQogewogICAgIGlmICgh
YXhPYmplY3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQwNDQsNyArNDA0NCw3IEBAIHN0
YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKEFYQ29yZU9iamVjdCog
YXhPYmplY3QsIEFjY2Vzc2liaWxpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9v
bCBpc0FjY2Vzc2liaWxpdHlUZXh0U2VhcmNoTWF0Y2goQVhDb3JlT2JqZWN0KiBheE9iamVjdCwg
QWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSkKK3N0YXRpYyBib29s
IGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9i
amVjdCwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSkKIHsKICAg
ICBpZiAoIWF4T2JqZWN0KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00MDU4LDcgKzQwNTgs
NyBAQCBzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlUZXh0U2VhcmNoTWF0Y2goQVhDb3JlT2Jq
ZWN0KiBheE9iamVjdCwgQWNjZXNzaWJpbGl0eQogICAgICAgICB8fCBjb250YWluc1BsYWluVGV4
dChheE9iamVjdC0+c3RyaW5nVmFsdWUoKSwgY3JpdGVyaWEuc2VhcmNoVGV4dCwgQ2FzZUluc2Vu
c2l0aXZlKTsKIH0KIAotc3RhdGljIGJvb2wgb2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0
aFJlc3VsdExpbWl0KEFYQ29yZU9iamVjdCogb2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3Jp
dGVyaWEgY29uc3QmIGNyaXRlcmlhLCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciYgcmVzdWx0cykKK3N0YXRpYyBib29sIG9iamVjdE1hdGNoZXNTZWFyY2hDcml0ZXJp
YVdpdGhSZXN1bHRMaW1pdChSZWZQdHI8QVhDb3JlT2JqZWN0PiBvYmplY3QsIEFjY2Vzc2liaWxp
dHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRzKQogewogICAgIGlmIChpc0FjY2Vzc2liaWxpdHlP
YmplY3RTZWFyY2hNYXRjaChvYmplY3QsIGNyaXRlcmlhKSAmJiBpc0FjY2Vzc2liaWxpdHlUZXh0
U2VhcmNoTWF0Y2gob2JqZWN0LCBjcml0ZXJpYSkpIHsKICAgICAgICAgcmVzdWx0cy5hcHBlbmQo
b2JqZWN0KTsKQEAgLTQwNzEsNyArNDA3MSw3IEBAIHN0YXRpYyBib29sIG9iamVjdE1hdGNoZXNT
ZWFyY2hDcml0ZXJpYVdpdGhSZXN1bHRMaW1pdChBWENvcmVPYmplY3QqIG9iamVjdCwgQWNjCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgdm9pZCBhcHBlbmRDaGlsZHJlblRvQXJyYXko
QVhDb3JlT2JqZWN0KiBvYmplY3QsIGJvb2wgaXNGb3J3YXJkLCBBWENvcmVPYmplY3QqIHN0YXJ0
T2JqZWN0LCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Im
IHJlc3VsdHMpCitzdGF0aWMgdm9pZCBhcHBlbmRDaGlsZHJlblRvQXJyYXkoUmVmUHRyPEFYQ29y
ZU9iamVjdD4gb2JqZWN0LCBib29sIGlzRm9yd2FyZCwgUmVmUHRyPEFYQ29yZU9iamVjdD4gc3Rh
cnRPYmplY3QsIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciYgcmVzdWx0cykKIHsKICAgICAvLyBBIHRhYmxlJ3MgY2hpbGRyZW4gaW5jbHVkZXMgZWxlbWVu
dHMgd2hvc2Ugb3duIGNoaWxkcmVuIGFyZSBhbHNvIHRoZSB0YWJsZSdzIGNoaWxkcmVuIChkdWUg
dG8gdGhlIHdheSB0aGUgTWFjIGV4cG9zZXMgdGFibGVzKS4KICAgICAvLyBUaGUgcm93cyBmcm9t
IHRoZSB0YWJsZSBzaG91bGQgYmUgcXVlcmllZCwgc2luY2UgdGhvc2UgYXJlIGRpcmVjdCBkZXNj
ZW5kYW50cyBvZiB0aGUgdGFibGUsIGFuZCB0aGV5IGNvbnRhaW4gY29udGVudC4KQEAgLTQwODQs
NyArNDA4NCw3IEBAIHN0YXRpYyB2b2lkIGFwcGVuZENoaWxkcmVuVG9BcnJheShBWENvcmVPYmpl
Y3QqIG9iamVjdCwgYm9vbCBpc0ZvcndhcmQsIEFYQ29yZU9iCiAKICAgICAvLyBJZiB0aGUgc3Rh
cnRPYmplY3QgaXMgaWdub3JlZCwgd2Ugc2hvdWxkIHVzZSBhbiBhY2Nlc3NpYmxlIHNpYmxpbmcg
YXMgYSBzdGFydCBlbGVtZW50IGluc3RlYWQuCiAgICAgaWYgKHN0YXJ0T2JqZWN0ICYmIHN0YXJ0
T2JqZWN0LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgJiYgc3RhcnRPYmplY3QtPmlzRGVzY2Vu
ZGFudE9mT2JqZWN0KG9iamVjdCkpIHsKLSAgICAgICAgQVhDb3JlT2JqZWN0KiBwYXJlbnRPYmpl
Y3QgPSBzdGFydE9iamVjdC0+cGFyZW50T2JqZWN0KCk7CisgICAgICAgIFJlZlB0cjxBWENvcmVP
YmplY3Q+IHBhcmVudE9iamVjdCA9IHN0YXJ0T2JqZWN0LT5wYXJlbnRPYmplY3QoKTsKICAgICAg
ICAgLy8gR28gdXAgdGhlIHBhcmVudCBjaGFpbiB0byBmaW5kIHRoZSBoaWdoZXN0IGFuY2VzdG9y
IHRoYXQncyBhbHNvIGJlaW5nIGlnbm9yZWQuCiAgICAgICAgIHdoaWxlIChwYXJlbnRPYmplY3Qg
JiYgcGFyZW50T2JqZWN0LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkpIHsKICAgICAgICAgICAg
IGlmIChwYXJlbnRPYmplY3QgPT0gb2JqZWN0KQpAQCAtNDEwOSwxMCArNDEwOSwxMCBAQCBzdGF0
aWMgdm9pZCBhcHBlbmRDaGlsZHJlblRvQXJyYXkoQVhDb3JlT2JqZWN0KiBvYmplY3QsIGJvb2wg
aXNGb3J3YXJkLCBBWENvcmVPYgogICAgIC8vIFRoaXMgaXMgYnJva2VuIGludG8gdHdvIHN0YXRl
bWVudHMgc28gdGhhdCBpdCdzIGVhc2llciByZWFkLgogICAgIGlmIChpc0ZvcndhcmQpIHsKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IHN0YXJ0SW5kZXg7IGkgPiBlbmRJbmRleDsgaS0tKQotICAg
ICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdChzZWFyY2hDaGlsZHJlbi5hdChpIC0g
MSkuZ2V0KCksIHJlc3VsdHMpOworICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVj
dChzZWFyY2hDaGlsZHJlbi5hdChpIC0gMSksIHJlc3VsdHMpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSBzdGFydEluZGV4OyBpIDwgZW5kSW5kZXg7IGkrKykKLSAgICAg
ICAgICAgIGFwcGVuZEFjY2Vzc2liaWxpdHlPYmplY3Qoc2VhcmNoQ2hpbGRyZW4uYXQoaSkuZ2V0
KCksIHJlc3VsdHMpOworICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdChzZWFy
Y2hDaGlsZHJlbi5hdChpKSwgcmVzdWx0cyk7CiAgICAgfQogfQogCkBAIC00MTI1LDcgKzQxMjUs
NyBAQCB2b2lkIGZpbmRNYXRjaGluZ09iamVjdHMoQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlh
IGNvbnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZQogICAgIC8vIEl0IGRvZXMgdGhpcyBieSBzdGVw
cGluZyB1cCB0aGUgcGFyZW50IGNoYWluIGFuZCBhdCBlYWNoIGxldmVsIGRvaW5nIGEgREZTLgog
CiAgICAgLy8gSWYgdGhlcmUncyBubyBzdGFydCBvYmplY3QsIGl0IG1lYW5zIHdlIHdhbnQgdG8g
c2VhcmNoIGV2ZXJ5dGhpbmcuCi0gICAgQVhDb3JlT2JqZWN0KiBzdGFydE9iamVjdCA9IGNyaXRl
cmlhLnN0YXJ0T2JqZWN0OworICAgIFJlZlB0cjxBWENvcmVPYmplY3Q+IHN0YXJ0T2JqZWN0ID0g
Y3JpdGVyaWEuc3RhcnRPYmplY3Q7CiAgICAgaWYgKCFzdGFydE9iamVjdCkKICAgICAgICAgc3Rh
cnRPYmplY3QgPSBjcml0ZXJpYS5hbmNob3JPYmplY3Q7CiAKQEAgLTQxMzQsNyArNDEzNCw3IEBA
IHZvaWQgZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29u
c3QmIGNyaXRlcmlhLCBBWENvcmVPYmplCiAgICAgLy8gVGhlIGZpcnN0IGl0ZXJhdGlvbiBvZiB0
aGUgb3V0ZXIgbG9vcCB3aWxsIGV4YW1pbmUgdGhlIGNoaWxkcmVuIG9mIHRoZSBzdGFydCBvYmpl
Y3QgZm9yIG1hdGNoZXMuIEhvd2V2ZXIsIHdoZW4KICAgICAvLyBpdGVyYXRpbmcgYmFja3dhcmRz
LCB0aGUgc3RhcnQgb2JqZWN0IGNoaWxkcmVuIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCwgc28g
dGhlIGxvb3AgaXMgc2tpcHBlZCBhaGVhZC4gV2UgbWFrZSBhbgogICAgIC8vIGV4Y2VwdGlvbiB3
aGVuIG5vIHN0YXJ0IG9iamVjdCB3YXMgc3BlY2lmaWVkIGJlY2F1c2Ugd2Ugd2FudCB0byBzZWFy
Y2ggZXZlcnl0aGluZyByZWdhcmRsZXNzIG9mIHNlYXJjaCBkaXJlY3Rpb24uCi0gICAgQVhDb3Jl
T2JqZWN0KiBwcmV2aW91c09iamVjdCA9IG51bGxwdHI7CisgICAgUmVmUHRyPEFYQ29yZU9iamVj
dD4gcHJldmlvdXNPYmplY3Q7CiAgICAgaWYgKCFpc0ZvcndhcmQgJiYgc3RhcnRPYmplY3QgIT0g
Y3JpdGVyaWEuYW5jaG9yT2JqZWN0KSB7CiAgICAgICAgIHByZXZpb3VzT2JqZWN0ID0gc3RhcnRP
YmplY3Q7CiAgICAgICAgIHN0YXJ0T2JqZWN0ID0gc3RhcnRPYmplY3QtPnBhcmVudE9iamVjdFVu
aWdub3JlZCgpOwpAQCAtNDE1MCw3ICs0MTUwLDcgQEAgdm9pZCBmaW5kTWF0Y2hpbmdPYmplY3Rz
KEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIEFYQ29yZU9iamUK
IAogICAgICAgICAvLyBUaGlzIG5vdyBkb2VzIGEgREZTIGF0IHRoZSBjdXJyZW50IGxldmVsIG9m
IHRoZSBwYXJlbnQuCiAgICAgICAgIHdoaWxlICghc2VhcmNoU3RhY2suaXNFbXB0eSgpKSB7Ci0g
ICAgICAgICAgICBBWENvcmVPYmplY3QqIHNlYXJjaE9iamVjdCA9IHNlYXJjaFN0YWNrLmxhc3Qo
KS5nZXQoKTsKKyAgICAgICAgICAgIGF1dG8gc2VhcmNoT2JqZWN0ID0gc2VhcmNoU3RhY2subGFz
dCgpOwogICAgICAgICAgICAgc2VhcmNoU3RhY2sucmVtb3ZlTGFzdCgpOwogCiAgICAgICAgICAg
ICBpZiAob2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KHNlYXJjaE9i
amVjdCwgY3JpdGVyaWEsIHJlc3VsdHMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCAyNjZm
ODU0OTEzZDE4OWFiNmZjZGNiM2I0OTExYTQ1OWE1YjA5MDI2Li5kNTdmODBlMGU3NTUyZGFhMzYz
MGMwZjQxMjA0NTljMzk5YTBiMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtMTI5MSw4
ICsxMjkxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGb2N1c0FjdGl2ZURl
c2NlbmRhbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBBWENvcmVPYmplY3QqIGFjdGl2ZURl
c2NlbmRhbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUFjdGl2ZURlc2Nl
bmRhbnRDaGFuZ2VkKCkgPSAwOwotICAgIGJvb2wgaXNEZXNjZW5kYW50T2ZPYmplY3QoY29uc3Qg
QVhDb3JlT2JqZWN0KikgY29uc3Q7Ci0gICAgYm9vbCBpc0FuY2VzdG9yT2ZPYmplY3QoY29uc3Qg
QVhDb3JlT2JqZWN0KikgY29uc3Q7CisgICAgYm9vbCBpc0Rlc2NlbmRhbnRPZk9iamVjdChjb25z
dCBSZWZQdHI8QVhDb3JlT2JqZWN0PikgY29uc3Q7CisgICAgYm9vbCBpc0FuY2VzdG9yT2ZPYmpl
Y3QoY29uc3QgUmVmUHRyPEFYQ29yZU9iamVjdD4pIGNvbnN0OwogICAgIHZpcnR1YWwgQVhDb3Jl
T2JqZWN0KiBmaXJzdEFub255bW91c0Jsb2NrQ2hpbGQoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0
dWFsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBhdHRyaWJ1dGVWYWx1ZShjb25zdCBTdHJpbmcmKSBj
b25zdCA9IDA7CkBAIC0xNjc5LDE2ICsxNjc5LDE2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFU+IGlubGluZSBUIHJldHJpZXZlQXV0b3JlbGVhc2VkVmFsdWVGcm9tTWFpblRocmVh
CiAKIH0gLy8gbmFtZXNwYWNlIEFjY2Vzc2liaWxpdHkKIAotaW5saW5lIGJvb2wgQVhDb3JlT2Jq
ZWN0Ojppc0Rlc2NlbmRhbnRPZk9iamVjdChjb25zdCBBWENvcmVPYmplY3QqIGF4T2JqZWN0KSBj
b25zdAoraW5saW5lIGJvb2wgQVhDb3JlT2JqZWN0Ojppc0Rlc2NlbmRhbnRPZk9iamVjdChjb25z
dCBSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gYXhP
YmplY3QgJiYgQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2VzdG9yPEFYQ29yZU9iamVjdD4oKnRoaXMs
IGZhbHNlLCBbYXhPYmplY3RdIChjb25zdCBBWENvcmVPYmplY3QmIG9iamVjdCkgewotICAgICAg
ICAgICAgcmV0dXJuICZvYmplY3QgPT0gYXhPYmplY3Q7Ci0gICAgICAgIH0pICE9IG51bGxwdHI7
CisgICAgICAgIHJldHVybiAmb2JqZWN0ID09IGF4T2JqZWN0LmdldCgpOworICAgIH0pICE9IG51
bGxwdHI7CiB9CiAKLWlubGluZSBib29sIEFYQ29yZU9iamVjdDo6aXNBbmNlc3Rvck9mT2JqZWN0
KGNvbnN0IEFYQ29yZU9iamVjdCogYXhPYmplY3QpIGNvbnN0CitpbmxpbmUgYm9vbCBBWENvcmVP
YmplY3Q6OmlzQW5jZXN0b3JPZk9iamVjdChjb25zdCBSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9i
amVjdCkgY29uc3QKIHsKLSAgICByZXR1cm4gYXhPYmplY3QgJiYgKHRoaXMgPT0gYXhPYmplY3Qg
fHwgYXhPYmplY3QtPmlzRGVzY2VuZGFudE9mT2JqZWN0KHRoaXMpKTsKKyAgICByZXR1cm4gYXhP
YmplY3QgJiYgKHRoaXMgPT0gYXhPYmplY3QuZ2V0KCkgfHwgYXhPYmplY3QtPmlzRGVzY2VuZGFu
dE9mT2JqZWN0KFJlZlB0ciB7IGNvbnN0X2Nhc3Q8QVhDb3JlT2JqZWN0Kj4odGhpcykgfSkpOwog
fQogCiAvLyBMb2dnaW5nIGhlbHBlcnMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446436</attachid>
            <date>2021-12-08 15:18:16 -0800</date>
            <delta_ts>2021-12-09 07:42:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233888-20211208171815.patch</filename>
            <type>text/plain</type>
            <size>10378</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzExNDk1ZmUzYzhiMzlk
ZjYxNzAyYjM3YzcwNTgyMGExZmYwOTM2YS4uMTA0NTc3ZDZmYTA5YzA3OGU3YjlkOGViNGMyNTJm
YjJkNmQ0NDE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTEyLTA4ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFVzZSBSZWZQdHI8
QVhDb3JlT2JqZWN0PiBpbnN0ZWFkIG9mIHJhdyBBWENvcmVPYmplY3QqIHBvaW50ZXJzIGluIEFj
Y2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09iamVjdHMgYW5kIGRvd25zdHJlYW0gZnVuY3Rpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4ODgK
KworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKworICAgICAgICBNb3ZlIHVz
YWdlcyBvZiByYXcgQVhDb3JlT2JqZWN0KiBwb2ludGVycyB0byBSZWZQdHI8QVhDb3JlT2JqZWN0
PiBpbgorICAgICAgICBBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzIGFuZCBkb3du
c3RyZWFtIGZ1bmN0aW9ucy4KKworICAgICAgICBUaGlzIGZpeGVzIGlzb2xhdGVkIHRyZWUgbW9k
ZSBvbmx5IGNyYXNoZXMgZm9yIHRlc3RzOgorICAgICAgICAgIC0gYWNjZXNzaWJpbGl0eS9tYWMv
c2VhcmNoLXByZWRpY2F0ZS1lbGVtZW50LWNvdW50Lmh0bWwKKyAgICAgICAgICAtIGFjY2Vzc2li
aWxpdHkvbWFjL3NlYXJjaC1wcmVkaWNhdGUtdmlzaWJsZS1idXR0b24uaHRtbAorCisgICAgICAg
IFRoZXNlIGNyYXNoZWQgYmVjYXVzZToKKworICAgICAgICAgIDEuIFRoZSBzZWNvbmRhcnkgdGhy
ZWFkIHN0YXJ0cyBhIHNlYXJjaCBhbmQgc3RvcmVzIHJhdyBwb2ludGVycyBvbgorICAgICAgICAg
ICAgIGl0cyBzdGFjay4KKyAgICAgICAgICAyLiBUaGUgbWFpbiB0aHJlYWQgcGVyZm9ybXMgc29t
ZSBvcGVyYXRpb24gdG8gcXVldWUgaXNvbGF0ZWQgdHJlZQorICAgICAgICAgICAgIGNoYW5nZXMu
CisgICAgICAgICAgMy4gVGhlIHNlYXJjaCBjb250aW51ZXMgb24gdGhlIHNlY29uZGFyeSB0aHJl
YWQsIGV2ZW50dWFsbHkgY2FsbGluZworICAgICAgICAgICAgIEFYSXNvbGF0ZWRPYmplY3Q6OmNo
aWxkcmVuLiBUaGlzIGluIHR1cm5zIGNhbGxzIEFYSXNvbGF0ZWRUcmVlOjpwZW5kaW5nQ2hhbmdl
cy4KKyAgICAgICAgICA0LiBUaGUgb2JqZWN0KHMpIHdoaWNoIHdlIGhlbGQgcG9pbnRlcnMgdG8g
YXJlIGRlc3Ryb3llZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRBY2Nlc3NpYmlsaXR5T2JqZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmlzUmFkaW9CdXR0b25JbkRpZmZlcmVu
dEFkaG9jR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6aXNBY2Nlc3Np
YmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHk6OmlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHk6OmlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpvYmplY3RNYXRjaGVzU2VhcmNoQ3JpdGVy
aWFXaXRoUmVzdWx0TGltaXQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6YXBw
ZW5kQ2hpbGRyZW5Ub0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmZp
bmRNYXRjaGluZ09iamVjdHMpOgorICAgICAgICBVc2UgUmVmUHRyPEFYQ29yZU9iamVjdD4gaW5z
dGVhZCBvZiByYXcgQVhDb3JlT2JqZWN0KiBwb2ludGVycy4KKwogMjAyMS0xMi0wOCAgRG9uIE9s
bXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dIFdlYkNvcmU6
OmNmSERyb3BGb3JtYXQgaW1wbGVtZW50YXRpb24gaXMgbm90IENGIHNwZWNpZmljCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApp
bmRleCBkNjQ5ZjFjZDJjZWM3YThkYTZmMDRkZWJlNTUyNGE3NzBkMDliOWY1Li44ZTYyMjg4ZTgw
ZjI0YzRlM2QzZTc4ZmIzODU0M2JlMTEwMjk3YWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTUzMyw3ICs1MzMs
NyBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzRGVzY2VuZGFudE9mUm9sZShBY2Nlc3Np
YmlsaXR5Um9sZSByb2xlKSBjb25zdAogICAgIH0pICE9IG51bGxwdHI7CiB9CiAKLXN0YXRpYyB2
b2lkIGFwcGVuZEFjY2Vzc2liaWxpdHlPYmplY3QoQVhDb3JlT2JqZWN0KiBvYmplY3QsIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0cykKK3N0
YXRpYyB2b2lkIGFwcGVuZEFjY2Vzc2liaWxpdHlPYmplY3QoUmVmUHRyPEFYQ29yZU9iamVjdD4g
b2JqZWN0LCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Im
IHJlc3VsdHMpCiB7CiAgICAgLy8gRmluZCB0aGUgbmV4dCBkZXNjZW5kYW50IG9mIHRoaXMgYXR0
YWNobWVudCBvYmplY3Qgc28gc2VhcmNoIGNhbiBjb250aW51ZSB0aHJvdWdoIGZyYW1lcy4KICAg
ICBpZiAob2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkgewpAQCAtMzkwNyw3ICszOTA3LDcgQEAgU3Ry
aW5nIHJvbGVUb1BsYXRmb3JtU3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAKIC8vIFRo
aXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gYGF4T2JqZWN0YCBpcyBhIHJhZGlv
IGJ1dHRvbiBwYXJ0IG9mIGEgZGlmZmVyZW50IGFkLWhvYyByYWRpbyBncm91cAogLy8gdGhhbiBg
cmVmZXJlbmNlT2JqZWN0YCwgd2hlcmUgYWQtaG9jIHJhZGlvIGdyb3VwIG1lbWJlcnNoaXAgaXMg
ZGV0ZXJtaW5lZCBieSBjb21wYXJpbmcgYG5hbWVgIGF0dHJpYnV0ZXMuCi1zdGF0aWMgYm9vbCBp
c1JhZGlvQnV0dG9uSW5EaWZmZXJlbnRBZGhvY0dyb3VwKEFYQ29yZU9iamVjdCogYXhPYmplY3Qs
IEFYQ29yZU9iamVjdCogcmVmZXJlbmNlT2JqZWN0KQorc3RhdGljIGJvb2wgaXNSYWRpb0J1dHRv
bkluRGlmZmVyZW50QWRob2NHcm91cChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwgQVhD
b3JlT2JqZWN0KiByZWZlcmVuY2VPYmplY3QpCiB7CiAgICAgaWYgKCFheE9iamVjdCB8fCAhYXhP
YmplY3QtPmlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzkyMCw3
ICszOTIwLDcgQEAgc3RhdGljIGJvb2wgaXNSYWRpb0J1dHRvbkluRGlmZmVyZW50QWRob2NHcm91
cChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBBWENvcmVPYmoKICAgICByZXR1cm4gYXhPYmplY3Qt
PmF0dHJpYnV0ZVZhbHVlKCJuYW1lIikgIT0gcmVmZXJlbmNlT2JqZWN0LT5hdHRyaWJ1dGVWYWx1
ZSgibmFtZSIpOwogfQogCi1zdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hN
YXRjaEF0SW5kZXgoQVhDb3JlT2JqZWN0KiBheE9iamVjdCwgQWNjZXNzaWJpbGl0eVNlYXJjaENy
aXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgc2l6ZV90IGluZGV4KQorc3RhdGljIGJvb2wgaXNBY2Nl
c3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hBdEluZGV4KFJlZlB0cjxBWENvcmVPYmplY3Q+IGF4
T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBzaXpl
X3QgaW5kZXgpCiB7CiAgICAgc3dpdGNoIChjcml0ZXJpYS5zZWFyY2hLZXlzW2luZGV4XSkgewog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6QW55VHlwZToKQEAgLTQwMjgsNyArNDAy
OCw3IEBAIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRl
eChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBBY2NlCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCBp
c0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBB
Y2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhKQorc3RhdGljIGJvb2wg
aXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2goUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhP
YmplY3QsIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEpCiB7CiAg
ICAgaWYgKCFheE9iamVjdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDA0NCw3ICs0MDQ0
LDcgQEAgc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2goQVhDb3Jl
T2JqZWN0KiBheE9iamVjdCwgQWNjZXNzaWJpbGkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0
YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChBWENvcmVPYmplY3QqIGF4
T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhKQorc3Rh
dGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGV4dFNlYXJjaE1hdGNoKFJlZlB0cjxBWENvcmVPYmpl
Y3Q+IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlh
KQogewogICAgIGlmICghYXhPYmplY3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQwNTgs
NyArNDA1OCw3IEBAIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChB
WENvcmVPYmplY3QqIGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5CiAgICAgICAgIHx8IGNvbnRhaW5z
UGxhaW5UZXh0KGF4T2JqZWN0LT5zdHJpbmdWYWx1ZSgpLCBjcml0ZXJpYS5zZWFyY2hUZXh0LCBD
YXNlSW5zZW5zaXRpdmUpOwogfQogCi1zdGF0aWMgYm9vbCBvYmplY3RNYXRjaGVzU2VhcmNoQ3Jp
dGVyaWFXaXRoUmVzdWx0TGltaXQoQVhDb3JlT2JqZWN0KiBvYmplY3QsIEFjY2Vzc2liaWxpdHlT
ZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRzKQorc3RhdGljIGJvb2wgb2JqZWN0TWF0Y2hlc1NlYXJj
aENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KFJlZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCwgQWNj
ZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZWN0OjpB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdHMpCiB7CiAgICAgaWYgKGlzQWNjZXNz
aWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKG9iamVjdCwgY3JpdGVyaWEpICYmIGlzQWNjZXNzaWJp
bGl0eVRleHRTZWFyY2hNYXRjaChvYmplY3QsIGNyaXRlcmlhKSkgewogICAgICAgICByZXN1bHRz
LmFwcGVuZChvYmplY3QpOwpAQCAtNDA3MSw3ICs0MDcxLDcgQEAgc3RhdGljIGJvb2wgb2JqZWN0
TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KEFYQ29yZU9iamVjdCogb2JqZWN0
LCBBY2MKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGFwcGVuZENoaWxkcmVu
VG9BcnJheShBWENvcmVPYmplY3QqIG9iamVjdCwgYm9vbCBpc0ZvcndhcmQsIEFYQ29yZU9iamVj
dCogc3RhcnRPYmplY3QsIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciYgcmVzdWx0cykKK3N0YXRpYyB2b2lkIGFwcGVuZENoaWxkcmVuVG9BcnJheShSZWZQ
dHI8QVhDb3JlT2JqZWN0PiBvYmplY3QsIGJvb2wgaXNGb3J3YXJkLCBSZWZQdHI8QVhDb3JlT2Jq
ZWN0PiBzdGFydE9iamVjdCwgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yJiByZXN1bHRzKQogewogICAgIC8vIEEgdGFibGUncyBjaGlsZHJlbiBpbmNsdWRl
cyBlbGVtZW50cyB3aG9zZSBvd24gY2hpbGRyZW4gYXJlIGFsc28gdGhlIHRhYmxlJ3MgY2hpbGRy
ZW4gKGR1ZSB0byB0aGUgd2F5IHRoZSBNYWMgZXhwb3NlcyB0YWJsZXMpLgogICAgIC8vIFRoZSBy
b3dzIGZyb20gdGhlIHRhYmxlIHNob3VsZCBiZSBxdWVyaWVkLCBzaW5jZSB0aG9zZSBhcmUgZGly
ZWN0IGRlc2NlbmRhbnRzIG9mIHRoZSB0YWJsZSwgYW5kIHRoZXkgY29udGFpbiBjb250ZW50LgpA
QCAtNDA4Myw4ICs0MDgzLDggQEAgc3RhdGljIHZvaWQgYXBwZW5kQ2hpbGRyZW5Ub0FycmF5KEFY
Q29yZU9iamVjdCogb2JqZWN0LCBib29sIGlzRm9yd2FyZCwgQVhDb3JlT2IKICAgICBzaXplX3Qg
ZW5kSW5kZXggPSBpc0ZvcndhcmQgPyAwIDogY2hpbGRyZW5TaXplOwogCiAgICAgLy8gSWYgdGhl
IHN0YXJ0T2JqZWN0IGlzIGlnbm9yZWQsIHdlIHNob3VsZCB1c2UgYW4gYWNjZXNzaWJsZSBzaWJs
aW5nIGFzIGEgc3RhcnQgZWxlbWVudCBpbnN0ZWFkLgotICAgIGlmIChzdGFydE9iamVjdCAmJiBz
dGFydE9iamVjdC0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpICYmIHN0YXJ0T2JqZWN0LT5pc0Rl
c2NlbmRhbnRPZk9iamVjdChvYmplY3QpKSB7Ci0gICAgICAgIEFYQ29yZU9iamVjdCogcGFyZW50
T2JqZWN0ID0gc3RhcnRPYmplY3QtPnBhcmVudE9iamVjdCgpOworICAgIGlmIChzdGFydE9iamVj
dCAmJiBzdGFydE9iamVjdC0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpICYmIHN0YXJ0T2JqZWN0
LT5pc0Rlc2NlbmRhbnRPZk9iamVjdChvYmplY3QuZ2V0KCkpKSB7CisgICAgICAgIFJlZlB0cjxB
WENvcmVPYmplY3Q+IHBhcmVudE9iamVjdCA9IHN0YXJ0T2JqZWN0LT5wYXJlbnRPYmplY3QoKTsK
ICAgICAgICAgLy8gR28gdXAgdGhlIHBhcmVudCBjaGFpbiB0byBmaW5kIHRoZSBoaWdoZXN0IGFu
Y2VzdG9yIHRoYXQncyBhbHNvIGJlaW5nIGlnbm9yZWQuCiAgICAgICAgIHdoaWxlIChwYXJlbnRP
YmplY3QgJiYgcGFyZW50T2JqZWN0LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkpIHsKICAgICAg
ICAgICAgIGlmIChwYXJlbnRPYmplY3QgPT0gb2JqZWN0KQpAQCAtNDEwOSwxMCArNDEwOSwxMCBA
QCBzdGF0aWMgdm9pZCBhcHBlbmRDaGlsZHJlblRvQXJyYXkoQVhDb3JlT2JqZWN0KiBvYmplY3Qs
IGJvb2wgaXNGb3J3YXJkLCBBWENvcmVPYgogICAgIC8vIFRoaXMgaXMgYnJva2VuIGludG8gdHdv
IHN0YXRlbWVudHMgc28gdGhhdCBpdCdzIGVhc2llciByZWFkLgogICAgIGlmIChpc0ZvcndhcmQp
IHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IHN0YXJ0SW5kZXg7IGkgPiBlbmRJbmRleDsgaS0t
KQotICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdChzZWFyY2hDaGlsZHJlbi5h
dChpIC0gMSkuZ2V0KCksIHJlc3VsdHMpOworICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0
eU9iamVjdChzZWFyY2hDaGlsZHJlbi5hdChpIC0gMSksIHJlc3VsdHMpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBzdGFydEluZGV4OyBpIDwgZW5kSW5kZXg7IGkrKykK
LSAgICAgICAgICAgIGFwcGVuZEFjY2Vzc2liaWxpdHlPYmplY3Qoc2VhcmNoQ2hpbGRyZW4uYXQo
aSkuZ2V0KCksIHJlc3VsdHMpOworICAgICAgICAgICAgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVj
dChzZWFyY2hDaGlsZHJlbi5hdChpKSwgcmVzdWx0cyk7CiAgICAgfQogfQogCkBAIC00MTI1LDcg
KzQxMjUsNyBAQCB2b2lkIGZpbmRNYXRjaGluZ09iamVjdHMoQWNjZXNzaWJpbGl0eVNlYXJjaENy
aXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZQogICAgIC8vIEl0IGRvZXMgdGhpcyBi
eSBzdGVwcGluZyB1cCB0aGUgcGFyZW50IGNoYWluIGFuZCBhdCBlYWNoIGxldmVsIGRvaW5nIGEg
REZTLgogCiAgICAgLy8gSWYgdGhlcmUncyBubyBzdGFydCBvYmplY3QsIGl0IG1lYW5zIHdlIHdh
bnQgdG8gc2VhcmNoIGV2ZXJ5dGhpbmcuCi0gICAgQVhDb3JlT2JqZWN0KiBzdGFydE9iamVjdCA9
IGNyaXRlcmlhLnN0YXJ0T2JqZWN0OworICAgIFJlZlB0cjxBWENvcmVPYmplY3Q+IHN0YXJ0T2Jq
ZWN0ID0gY3JpdGVyaWEuc3RhcnRPYmplY3Q7CiAgICAgaWYgKCFzdGFydE9iamVjdCkKICAgICAg
ICAgc3RhcnRPYmplY3QgPSBjcml0ZXJpYS5hbmNob3JPYmplY3Q7CiAKQEAgLTQxMzQsNyArNDEz
NCw3IEBAIHZvaWQgZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVy
aWEgY29uc3QmIGNyaXRlcmlhLCBBWENvcmVPYmplCiAgICAgLy8gVGhlIGZpcnN0IGl0ZXJhdGlv
biBvZiB0aGUgb3V0ZXIgbG9vcCB3aWxsIGV4YW1pbmUgdGhlIGNoaWxkcmVuIG9mIHRoZSBzdGFy
dCBvYmplY3QgZm9yIG1hdGNoZXMuIEhvd2V2ZXIsIHdoZW4KICAgICAvLyBpdGVyYXRpbmcgYmFj
a3dhcmRzLCB0aGUgc3RhcnQgb2JqZWN0IGNoaWxkcmVuIHNob3VsZCBub3QgYmUgY29uc2lkZXJl
ZCwgc28gdGhlIGxvb3AgaXMgc2tpcHBlZCBhaGVhZC4gV2UgbWFrZSBhbgogICAgIC8vIGV4Y2Vw
dGlvbiB3aGVuIG5vIHN0YXJ0IG9iamVjdCB3YXMgc3BlY2lmaWVkIGJlY2F1c2Ugd2Ugd2FudCB0
byBzZWFyY2ggZXZlcnl0aGluZyByZWdhcmRsZXNzIG9mIHNlYXJjaCBkaXJlY3Rpb24uCi0gICAg
QVhDb3JlT2JqZWN0KiBwcmV2aW91c09iamVjdCA9IG51bGxwdHI7CisgICAgUmVmUHRyPEFYQ29y
ZU9iamVjdD4gcHJldmlvdXNPYmplY3Q7CiAgICAgaWYgKCFpc0ZvcndhcmQgJiYgc3RhcnRPYmpl
Y3QgIT0gY3JpdGVyaWEuYW5jaG9yT2JqZWN0KSB7CiAgICAgICAgIHByZXZpb3VzT2JqZWN0ID0g
c3RhcnRPYmplY3Q7CiAgICAgICAgIHN0YXJ0T2JqZWN0ID0gc3RhcnRPYmplY3QtPnBhcmVudE9i
amVjdFVuaWdub3JlZCgpOwpAQCAtNDE1MCw3ICs0MTUwLDcgQEAgdm9pZCBmaW5kTWF0Y2hpbmdP
YmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIEFYQ29y
ZU9iamUKIAogICAgICAgICAvLyBUaGlzIG5vdyBkb2VzIGEgREZTIGF0IHRoZSBjdXJyZW50IGxl
dmVsIG9mIHRoZSBwYXJlbnQuCiAgICAgICAgIHdoaWxlICghc2VhcmNoU3RhY2suaXNFbXB0eSgp
KSB7Ci0gICAgICAgICAgICBBWENvcmVPYmplY3QqIHNlYXJjaE9iamVjdCA9IHNlYXJjaFN0YWNr
Lmxhc3QoKS5nZXQoKTsKKyAgICAgICAgICAgIGF1dG8gc2VhcmNoT2JqZWN0ID0gc2VhcmNoU3Rh
Y2subGFzdCgpOwogICAgICAgICAgICAgc2VhcmNoU3RhY2sucmVtb3ZlTGFzdCgpOwogCiAgICAg
ICAgICAgICBpZiAob2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KHNl
YXJjaE9iamVjdCwgY3JpdGVyaWEsIHJlc3VsdHMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRl
eCAyNjZmODU0OTEzZDE4OWFiNmZjZGNiM2I0OTExYTQ1OWE1YjA5MDI2Li5kM2JjZDA5MDQxZjAz
YTJjMWY5MzIzZTAyM2M3Y2YzY2IyYTk3OWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAt
MTY4Miw4ICsxNjgyLDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5l
IFQgcmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWEKIGlubGluZSBib29sIEFY
Q29yZU9iamVjdDo6aXNEZXNjZW5kYW50T2ZPYmplY3QoY29uc3QgQVhDb3JlT2JqZWN0KiBheE9i
amVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gYXhPYmplY3QgJiYgQWNjZXNzaWJpbGl0eTo6Zmlu
ZEFuY2VzdG9yPEFYQ29yZU9iamVjdD4oKnRoaXMsIGZhbHNlLCBbYXhPYmplY3RdIChjb25zdCBB
WENvcmVPYmplY3QmIG9iamVjdCkgewotICAgICAgICAgICAgcmV0dXJuICZvYmplY3QgPT0gYXhP
YmplY3Q7Ci0gICAgICAgIH0pICE9IG51bGxwdHI7CisgICAgICAgIHJldHVybiAmb2JqZWN0ID09
IGF4T2JqZWN0OworICAgIH0pICE9IG51bGxwdHI7CiB9CiAKIGlubGluZSBib29sIEFYQ29yZU9i
amVjdDo6aXNBbmNlc3Rvck9mT2JqZWN0KGNvbnN0IEFYQ29yZU9iamVjdCogYXhPYmplY3QpIGNv
bnN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>