<?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>202590</bug_id>
          
          <creation_ts>2019-10-04 10:51:29 -0700</creation_ts>
          <short_desc>DOMCache should not prevent pages from entering the back/forward cache</short_desc>
          <delta_ts>2019-10-11 15:32:46 -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>Page Loading</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=202850</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>
          
          <blocked>202293</blocked>
    
    <blocked>202608</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1576921</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-04 10:51:29 -0700</bug_when>
    <thetext>DOMCache should not prevent pages from entering the back/forward cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576957</commentid>
    <comment_count>1</comment_count>
      <attachid>380233</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-04 12:33:41 -0700</bug_when>
    <thetext>Created attachment 380233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576960</commentid>
    <comment_count>2</comment_count>
      <attachid>380235</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-04 12:38:32 -0700</bug_when>
    <thetext>Created attachment 380235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576998</commentid>
    <comment_count>3</comment_count>
      <attachid>380235</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-10-04 13:41:57 -0700</bug_when>
    <thetext>Comment on attachment 380235
Patch

EWS seems to be crashing in DOMCache tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577006</commentid>
    <comment_count>4</comment_count>
      <attachid>380251</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-04 14:08:23 -0700</bug_when>
    <thetext>Created attachment 380251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577352</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-07 08:14:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/56036489&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577356</commentid>
    <comment_count>6</comment_count>
      <attachid>380251</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-07 08:23:02 -0700</bug_when>
    <thetext>Comment on attachment 380251
Patch

Will investigate WK1 failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577357</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-07 08:25:17 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; Comment on attachment 380251 [details]
&gt; Patch
&gt; 
&gt; Will investigate WK1 failures.

Oh, it looks like DOMCache is WK2 only. Will skip the new test on WK1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577358</commentid>
    <comment_count>8</comment_count>
      <attachid>380329</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-07 08:29:07 -0700</bug_when>
    <thetext>Created attachment 380329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577397</commentid>
    <comment_count>9</comment_count>
      <attachid>380329</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-07 11:03:15 -0700</bug_when>
    <thetext>Comment on attachment 380329
Patch

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

&gt; Source/WebCore/Modules/cache/DOMCache.cpp:450
&gt; +    queryCache(request.releaseNonNull(), WTFMove(options), [this, protectedThis = makeRef(*this), promise = WTFMove(promise)](ExceptionOr&lt;Vector&lt;CacheStorageRecord&gt;&gt;&amp;&amp; result) mutable {

auto&amp;&amp; here and above as well if we want.

&gt; Source/WebCore/Modules/cache/DOMCache.h:61
&gt; +    using MatchCallback = WTF::Function&lt;void(ExceptionOr&lt;RefPtr&lt;FetchResponse&gt;&gt;)&gt;;

s/WTF:://

&gt; Source/WebCore/Modules/cache/DOMCacheStorage.cpp:63
&gt; +    cache.doMatch(WTFMove(info), WTFMove(options), [caches = WTFMove(caches), info, options, completionHandler = WTFMove(completionHandler), index](ExceptionOr&lt;RefPtr&lt;FetchResponse&gt;&gt;&amp;&amp; result) mutable {

auto&amp;&amp;

&gt; Source/WebCore/Modules/cache/DOMCacheStorage.cpp:88
&gt; +    startSequentialMatch(WTF::map(m_caches, copyCache), WTFMove(info), WTFMove(options), [this, pendingActivity = makePendingActivity(*this), promise = WTFMove(promise)](ExceptionOr&lt;RefPtr&lt;FetchResponse&gt;&gt;&amp;&amp; result) mutable {

auto&amp;&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577450</commentid>
    <comment_count>10</comment_count>
      <attachid>380348</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-07 13:11:41 -0700</bug_when>
    <thetext>Created attachment 380348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577475</commentid>
    <comment_count>11</comment_count>
      <attachid>380348</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-07 13:41:11 -0700</bug_when>
    <thetext>Comment on attachment 380348
Patch

Clearing flags on attachment: 380348

Committed r250786: &lt;https://trac.webkit.org/changeset/250786&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577476</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-07 13:41:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579270</commentid>
    <comment_count>13</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-10-11 15:10:42 -0700</bug_when>
    <thetext>&gt; Committed r250786: &lt;https://trac.webkit.org/changeset/250786&gt;
This commit seems to have broken API Test: WebKit.DefaultQuota (Bug 202850). EWS also indicated that failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579279</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-11 15:32:46 -0700</bug_when>
    <thetext>(In reply to Aakash Jain from comment #13)
&gt; &gt; Committed r250786: &lt;https://trac.webkit.org/changeset/250786&gt;
&gt; This commit seems to have broken API Test: WebKit.DefaultQuota (Bug 202850).
&gt; EWS also indicated that failure.

Odd, I am investigating.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380233</attachid>
            <date>2019-10-04 12:33:41 -0700</date>
            <delta_ts>2019-10-04 12:38:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202590-20191004123340.patch</filename>
            <type>text/plain</type>
            <size>15644</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjQyM2Y4NTcxNjg2OGJh
OTRkN2VmYmQzMWUwMDEyYTlmMDY1NmJlZC4uNGJmMjg5ODhiOTIxMTFiMzJkZDhmMmNlMDI4MDIw
OGEwZDI0MTdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEwLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRE9NQ2FjaGUgc2hvdWxkIG5v
dCBwcmV2ZW50IHBhZ2VzIGZyb20gZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNTkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgRE9NQ2Fj
aGUgdG8gc3VzcGVuZCBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHVuY29uZGl0aW9uYWxseSwg
YnkKKyAgICAgICAgYXBwZW5kaW5nIGFsbCBwcm9taXNlIHJlc29sdXRpb25zIHRvIGEgU3VzcGVu
ZGFibGVUYXNrUXVldWUuIFRoaXMgZ3VhcmFudGVlcworICAgICAgICB0aGF0IGFueSBhc3luY2hy
b25vdXMgcHJvbWlzZSByZXNvbHV0aW9uIGlzIGRlbGF5ZWQgd2hpbGUgaW4gdGhlIHBhZ2UgY2Fj
aGUsCisgICAgICAgIHVudGlsIHRoZSBwYWdlIGdldHMgcmVzdW1lZC4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21p
c2UuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01DYWNoZTo6RE9NQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2Fj
aGU6Om1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjptYXRjaEFsbCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01DYWNoZTo6YWRkQWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNh
Y2hlOjpwdXRXaXRoUmVzcG9uc2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpw
dXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01DYWNoZTo6a2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6Y2FuU3Vz
cGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9jYWNo
ZS9ET01DYWNoZS5oOgorCiAyMDE5LTEwLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBmb2xsb3ctdXAgZml4IGZvciByMjUwNjkzIHRvIGFk
ZHJlc3MgYXNzZXJ0aW9uIGhpdHMgaW4gZGVidWcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGUuY3BwCmluZGV4IGU2ZjcwMzk5ZGJiNDc3NTAyMjYzNmI3N2ZmMjgwMzNhZWJk
YzE2ZWEuLjVjN2VhOTM4MjFmNmY3MTQ3YjQ2ODVlODAwMGE2OWFkNjMyOTQwYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiSlNGZXRjaFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1DaHVu
ay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTdXNw
ZW5kYWJsZVRhc2tRdWV1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KIApAQCAtNDQsNiArNDUsNyBAQCBET01DYWNoZTo6RE9NQ2Fj
aGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgdWludDY0
X3QgaWRlbgogICAgICwgbV9uYW1lKFdURk1vdmUobmFtZSkpCiAgICAgLCBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAg
ICwgbV90YXNrUXVldWUoU3VzcGVuZGFibGVUYXNrUXVldWU6OmNyZWF0ZSgmY29udGV4dCkpCiB7
CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0aW9uLT5yZWZlcmVuY2UobV9p
ZGVudGlmaWVyKTsKQEAgLTU3LDE2ICs1OSwxOCBAQCBET01DYWNoZTo6fkRPTUNhY2hlKCkKIAog
dm9pZCBET01DYWNoZTo6bWF0Y2goUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9u
cyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBkb01h
dGNoKFdURk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oRXhjZXB0aW9uT3I8RmV0Y2hSZXNwb25zZSo+JiYgcmVzdWx0KSBtdXRhYmxlIHsK
LSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgcHJvbWlz
ZS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghcmVzdWx0LnJldHVyblZhbHVlKCkpIHsKLSAgICAg
ICAgICAgIHByb21pc2UtPnJlc29sdmUoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEludGVyZmFjZTxGZXRjaFJlc3BvbnNlPj4o
KnJlc3VsdC5yZXR1cm5WYWx1ZSgpKTsKKyAgICBkb01hdGNoKFdURk1vdmUoaW5mbyksIFdURk1v
dmUob3B0aW9ucyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlKj4mJiByZXN1
bHQpIG11dGFibGUgeworICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghcmVzdWx0LnJl
dHVyblZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvbWlzZS0+
cmVzb2x2ZTxJRExJbnRlcmZhY2U8RmV0Y2hSZXNwb25zZT4+KCpyZXN1bHQucmV0dXJuVmFsdWUo
KSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCkBAIC0xMjAsMjAgKzEyNCwyNCBAQCB2b2lk
IERPTUNhY2hlOjptYXRjaEFsbChPcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1
ZXJ5T3B0aW9ucyYmIG9wdGlvbgogCiAgICAgaWYgKCFyZXF1ZXN0KSB7CiAgICAgICAgIHJldHJp
ZXZlUmVjb3JkcyhVUkwgeyB9LCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9w
dGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICAgICAgaWYg
KGV4Y2VwdGlvbikgewotICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhj
ZXB0aW9uLnZhbHVlKCkpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoY2xvbmVSZXNwb25zZXMobV9yZWNvcmRzKSk7
CisgICAgICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJv
bWlzZS5yZXNvbHZlKGNsb25lUmVzcG9uc2VzKG1fcmVjb3JkcykpOworICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHF1ZXJ5Q2FjaGUocmVx
dWVzdC5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+
PiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
IHsKLSAgICAgICAgICAgIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHByb21pc2UucmVzb2x2
ZShjbG9uZVJlc3BvbnNlcyhyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICAgICAg
bV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYg
KHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0
KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShjbG9uZVJlc3BvbnNlcyhy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAK
QEAgLTIzNSwxMSArMjQzLDE1IEBAIHZvaWQgRE9NQ2FjaGU6OmFkZEFsbChWZWN0b3I8UmVxdWVz
dEluZm8+JiYgaW5mb3MsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByCiAKICAgICBhdXRv
IHRhc2tIYW5kbGVyID0gRmV0Y2hUYXNrc0hhbmRsZXI6OmNyZWF0ZSgqdGhpcywgW3RoaXMsIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxWZWN0b3I8UmVjb3JkPj4mJiBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0g
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAg
ICAgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIGV4Y2VwdGlvbiA9IHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCldKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKKyAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGJh
dGNoUHV0T3BlcmF0aW9uKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICBiYXRj
aFB1dE9wZXJhdGlvbihyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNl
cHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICBtX3Rhc2tRdWV1
ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZN
b3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUo
V1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMzAyLDE1ICszMTQsMTkgQEAgdm9pZCBET01DYWNoZTo6YWRkQWxsKFZlY3RvcjxSZXF1
ZXN0SW5mbz4mJiBpbmZvcywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHIKIHZvaWQgRE9N
Q2FjaGU6OnB1dFdpdGhSZXNwb25zZURhdGEoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSwgUmVmPEZldGNoUmVxdWVzdD4mJiByZXF1ZXN0LCBSZWY8RmV0Y2hSZXNwb25zZT4mJiBy
ZXNwb25zZSwgRXhjZXB0aW9uT3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiYgcmVzcG9uc2VCb2R5
KQogewogICAgIGlmIChyZXNwb25zZUJvZHkuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJv
bWlzZS5yZWplY3QocmVzcG9uc2VCb2R5LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgIG1f
dGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2Vw
dGlvbiA9IHJlc3BvbnNlQm9keS5yZWxlYXNlRXhjZXB0aW9uKCldKCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJv
ZHkgYm9keTsKICAgICBpZiAoYXV0byBidWZmZXIgPSByZXNwb25zZUJvZHkucmVsZWFzZVJldHVy
blZhbHVlKCkpCiAgICAgICAgIGJvZHkgPSBidWZmZXIucmVsZWFzZU5vbk51bGwoKTsKLSAgICBi
YXRjaFB1dE9wZXJhdGlvbihyZXF1ZXN0LmdldCgpLCByZXNwb25zZS5nZXQoKSwgV1RGTW92ZShi
b2R5KSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7
CisgICAgYmF0Y2hQdXRPcGVyYXRpb24ocmVxdWVzdC5nZXQoKSwgcmVzcG9uc2UuZ2V0KCksIFdU
Rk1vdmUoYm9keSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgIH0pOwogICAgIH0p
OwogfQogCkBAIC0zNzMsOCArMzg5LDEwIEBAIHZvaWQgRE9NQ2FjaGU6OnB1dChSZXF1ZXN0SW5m
byYmIGluZm8sIFJlZjxGZXRjaFJlc3BvbnNlPiYmIHJlc3BvbnNlLCBET01Qcm9taXNlCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBiYXRjaFB1dE9wZXJhdGlvbihyZXF1ZXN0LmdldCgp
LCByZXNwb25zZS5nZXQoKSwgcmVzcG9uc2UtPmNvbnN1bWVCb2R5KCksIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIGJhdGNoUHV0T3BlcmF0
aW9uKHJlcXVlc3QuZ2V0KCksIHJlc3BvbnNlLmdldCgpLCByZXNwb25zZS0+Y29uc3VtZUJvZHko
KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
cmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgeworICAgICAgICAgICAgcHJvbWlz
ZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAg
LTM4OSw4ICs0MDcsMTAgQEAgdm9pZCBET01DYWNoZTo6cmVtb3ZlKFJlcXVlc3RJbmZvJiYgaW5m
bywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBET01Qcm9taXMKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHJlcXVlc3RPckV4Y2VwdGlvbi5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSwgV1RGTW92ZShvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShFeGNlcHRpb25Pcjxib29sPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgYmF0Y2hEZWxldGVPcGVyYXRp
b24ocmVxdWVzdE9yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKG9wdGlv
bnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8Ym9vbD4mJiByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
LCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBwcm9t
aXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICB9KTsKICAgICB9KTsKIH0KIApA
QCAtNDE2LDIyICs0MzYsMjYgQEAgdm9pZCBET01DYWNoZTo6a2V5cyhPcHRpb25hbDxSZXF1ZXN0
SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIEsKIAogICAgIGlmICgh
cmVxdWVzdCkgewogICAgICAgICByZXRyaWV2ZVJlY29yZHMoVVJMIHsgfSwgW3RoaXMsIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBt
dXRhYmxlIHsKLSAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgICAgICAgICBw
cm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdU
Rjo6bWFwKG1fcmVjb3JkcywgY29weVJlcXVlc3RSZWYpKTsKKyAgICAgICAgICAgIG1fdGFza1F1
ZXVlLT5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2Vw
dGlvbiA9IFdURk1vdmUoZXhjZXB0aW9uKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1v
dmUoZXhjZXB0aW9uLnZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoV1RGOjptYXAo
bV9yZWNvcmRzLCBjb3B5UmVxdWVzdFJlZikpOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcXVlcnlDYWNoZShyZXF1ZXN0LnJlbGVh
c2VOb25OdWxsKCksIFdURk1vdmUob3B0aW9ucyksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0oRXhjZXB0aW9uT3I8VmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4+JiYgcmVzdWx0KSBtdXRh
YmxlIHsKLSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAg
cHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KKyAgICBxdWVyeUNhY2hlKHJlcXVlc3QucmVsZWFzZU5vbk51bGwo
KSwgV1RGTW92ZShvcHRpb25zKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPFZlY3RvcjxDYWNoZVN0
b3JhZ2VSZWNvcmQ+PiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIG1fdGFza1F1ZXVlLT5l
bnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUo
cmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAg
ICAgcHJvbWlzZS5yZXNvbHZlKFdURjo6bWFwKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwg
Y29weVJlcXVlc3RSZWYpKTsKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShXVEY6Om1hcChy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCksIGNvcHlSZXF1ZXN0UmVmKSk7CisgICAgICAgIH0p
OwogICAgIH0pOwogfQogCkBAIC01ODYsNyArNjEwLDcgQEAgY29uc3QgY2hhciogRE9NQ2FjaGU6
OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogCiBib29sIERPTUNhY2hlOjpjYW5TdXNwZW5k
Rm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yZWNvcmRzLmlz
RW1wdHkoKSAmJiAhaGFzUGVuZGluZ0FjdGl2aXR5KCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCmluZGV4IGZkNGZkM2Y3YTIy
YTE2ZjY4MWEyOGUwYmEyZmQzMjA0MjQ5MWE4OGEuLmJjNTUwOWFhYjkxMGZiMTAyNzc4MjhiMDhm
Yjc0OWFkZGMwNTFhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
RE9NQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgK
QEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKK2NsYXNzIFN1c3BlbmRhYmxlVGFza1F1ZXVlOwogCiBjbGFzcyBET01D
YWNoZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUNhY2hlPiwgcHVibGljIEFjdGl2ZURP
TU9iamVjdCB7CiBwdWJsaWM6CkBAIC05MCw2ICs5MSw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0
b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiBtX3JlY29yZHM7CiAgICAgYm9vbCBtX2lzU3RvcHBlZCB7
IGZhbHNlIH07CisgICAgVW5pcXVlUmVmPFN1c3BlbmRhYmxlVGFza1F1ZXVlPiBtX3Rhc2tRdWV1
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyYmM5NzgyNjAxMzlkYmQ0
MjIwOTQwY2Y1MDI3OTliYTk5OWE5ZTY5Li44NTYxNjY4YTQ5OTk2M2ZmZWRkZTZjYTk1ZTYwZGUw
OTRmZDgxY2JjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMTAtMDQgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBET01DYWNoZSBzaG91bGQgbm90IHByZXZl
bnQgcGFnZXMgZnJvbSBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI1OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292
ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGh0dHAvdGVz
dHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hl
LWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sOiBBZGRlZC4KKwogMjAxOS0xMC0wNCAgSm9v
bmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgTmVnYXRpdmUg
cmFkaWkgaW4gcmFkaWFsIGdyYWRpZW50cyBzaG91bGQgYmUgcmVqZWN0ZWQuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCAxYTAwNzhlODgzMzM5MzI3ZGE2NmIzNjIwODk1MGIzNDdjZDI0NzJmLi40OTBm
NDE5OWM0ZmMzNTQxZWU0NWFlMjYyYzIzMDVlNGMwYjIyMWNjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTQ1Myw2ICs0NTMsOCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtY3JlZGVudAogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9TaGFyZWRXb3JrZXIgWyBT
a2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFyZWRXb3Jr
ZXJfYmxvYlVybC5odG1sIFsgU2tpcCBdCiAKK2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KKwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWJh
c2ljLWJsb2IuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZGlyZWN0
LmFueS53b3JrZXIuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9hY2Nlc3MtY29udHJvbC1hbmQtcmVkaXJlY3RzLmh0
bSBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTBk
MzVjNDc2ZmY1YTg1NjE2ZDhiODY0OTlkODU5YzY0M2FjZTg0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVu
ZGluZy1wcm9taXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0aGF0IGEg
cGFnZSB3aXRoIHBlbmRpbmcgRE9NQ2FjaGUgYWN0aXZpdHkgZ29lcyBpbnRvIHRoZSBwYWdlIGNh
Y2hlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworcGFnZXNob3cgLSBub3QgZnJv
bSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQorcGFnZXNob3cgLSBmcm9tIGNhY2hl
CitQQVNTIFBhZ2Ugd2FzIHJlc3RvcmVkIGZyb20gUGFnZSBDYWNoZQorUEFTUyBDYWNoZS5hZGQo
KSBzdWNjZWVkZWQKK1BBU1MgISFyZXN0b3JlZEZyb21QYWdlQ2FjaGUgaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBl
bmRpbmctcHJvbWlzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJlNzY1
ZGZiYTBiZTUzYTUyYTU2MTAwOGQ2MWM2Y2MzODZmYmNlYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRp
bmctcHJvbWlzZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBh
IHBhZ2Ugd2l0aCBwZW5kaW5nIERPTUNhY2hlIGFjdGl2aXR5IGdvZXMgaW50byB0aGUgcGFnZSBj
YWNoZS4nKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworbGV0IHJlc3RvcmVkRnJvbVBhZ2VDYWNo
ZSA9IGZhbHNlOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLCBmdW5jdGlv
bihldmVudCkgeworICAgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8g
IiIgOiAibm90ICIpICsgImZyb20gY2FjaGUiKTsKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7
CisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2Ugd2FzIHJlc3RvcmVkIGZyb20gUGFnZSBDYWNoZSIp
OworICAgICAgICByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSB0cnVlOworICAgIH0KK30pOworCitm
dW5jdGlvbiB0cnlDYWNoZSgpCit7CisgICAgY2FjaGUuYWRkKCdyZXNvdXJjZXMvYmxhbmsudHh0
JykudGhlbigoKSA9PiB7CisgICAgICAgIHRlc3RQYXNzZWQoIkNhY2hlLmFkZCgpIHN1Y2NlZWRl
ZCIpOworICAgICAgICBzaG91bGRCZVRydWUoIiEhcmVzdG9yZWRGcm9tUGFnZUNhY2hlIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIChlKSA9PiB7CisgICAgICAgIHRyeUNhY2hl
KCk7CisgICAgfSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoInBhZ2VoaWRlIC0gIiArIChldmVudC5wZXJzaXN0
ZWQgPyAiIiA6ICJub3QgIikgKyAiZW50ZXJpbmcgY2FjaGUiKTsKKyAgICBpZiAoIWV2ZW50LnBl
cnNpc3RlZCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIGZhaWxlZCB0byBlbnRlciB0aGUg
UGFnZSBDYWNoZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisKKyAgICB0cnlD
YWNoZSgpOworfSk7CisKK29ubG9hZCA9ICgpID0+IHsKKyAgICBzZXRUaW1lb3V0KCgpID0+IHsK
KyAgICAgICAgY2FjaGVzLm9wZW4oJ3Rlc3QnKS50aGVuKChfY2FjaGUpID0+IHsKKyAgICAgICAg
ICAgIGNhY2hlID0gX2NhY2hlOworICAgICAgICAgICAgdGVzdExpbmsuY2xpY2soKTsKKyAgICAg
ICAgfSk7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKzxhIGlkPSJ0ZXN0TGluayIgaHJlZj0i
cmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiIHN0eWxlPSJkaXNwbGF5OiBub25lIj5M
aW5rPC9hPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380235</attachid>
            <date>2019-10-04 12:38:32 -0700</date>
            <delta_ts>2019-10-04 14:08:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202590-20191004123831.patch</filename>
            <type>text/plain</type>
            <size>15776</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjQyM2Y4NTcxNjg2OGJh
OTRkN2VmYmQzMWUwMDEyYTlmMDY1NmJlZC4uNGJmMjg5ODhiOTIxMTFiMzJkZDhmMmNlMDI4MDIw
OGEwZDI0MTdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEwLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRE9NQ2FjaGUgc2hvdWxkIG5v
dCBwcmV2ZW50IHBhZ2VzIGZyb20gZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNTkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgRE9NQ2Fj
aGUgdG8gc3VzcGVuZCBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHVuY29uZGl0aW9uYWxseSwg
YnkKKyAgICAgICAgYXBwZW5kaW5nIGFsbCBwcm9taXNlIHJlc29sdXRpb25zIHRvIGEgU3VzcGVu
ZGFibGVUYXNrUXVldWUuIFRoaXMgZ3VhcmFudGVlcworICAgICAgICB0aGF0IGFueSBhc3luY2hy
b25vdXMgcHJvbWlzZSByZXNvbHV0aW9uIGlzIGRlbGF5ZWQgd2hpbGUgaW4gdGhlIHBhZ2UgY2Fj
aGUsCisgICAgICAgIHVudGlsIHRoZSBwYWdlIGdldHMgcmVzdW1lZC4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21p
c2UuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01DYWNoZTo6RE9NQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2Fj
aGU6Om1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjptYXRjaEFsbCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01DYWNoZTo6YWRkQWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNh
Y2hlOjpwdXRXaXRoUmVzcG9uc2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpw
dXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01DYWNoZTo6a2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6Y2FuU3Vz
cGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9jYWNo
ZS9ET01DYWNoZS5oOgorCiAyMDE5LTEwLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBmb2xsb3ctdXAgZml4IGZvciByMjUwNjkzIHRvIGFk
ZHJlc3MgYXNzZXJ0aW9uIGhpdHMgaW4gZGVidWcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGUuY3BwCmluZGV4IGU2ZjcwMzk5ZGJiNDc3NTAyMjYzNmI3N2ZmMjgwMzNhZWJk
YzE2ZWEuLjVjN2VhOTM4MjFmNmY3MTQ3YjQ2ODVlODAwMGE2OWFkNjMyOTQwYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiSlNGZXRjaFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1DaHVu
ay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTdXNw
ZW5kYWJsZVRhc2tRdWV1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KIApAQCAtNDQsNiArNDUsNyBAQCBET01DYWNoZTo6RE9NQ2Fj
aGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgdWludDY0
X3QgaWRlbgogICAgICwgbV9uYW1lKFdURk1vdmUobmFtZSkpCiAgICAgLCBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAg
ICwgbV90YXNrUXVldWUoU3VzcGVuZGFibGVUYXNrUXVldWU6OmNyZWF0ZSgmY29udGV4dCkpCiB7
CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0aW9uLT5yZWZlcmVuY2UobV9p
ZGVudGlmaWVyKTsKQEAgLTU3LDE2ICs1OSwxOCBAQCBET01DYWNoZTo6fkRPTUNhY2hlKCkKIAog
dm9pZCBET01DYWNoZTo6bWF0Y2goUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9u
cyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBkb01h
dGNoKFdURk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oRXhjZXB0aW9uT3I8RmV0Y2hSZXNwb25zZSo+JiYgcmVzdWx0KSBtdXRhYmxlIHsK
LSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgcHJvbWlz
ZS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghcmVzdWx0LnJldHVyblZhbHVlKCkpIHsKLSAgICAg
ICAgICAgIHByb21pc2UtPnJlc29sdmUoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEludGVyZmFjZTxGZXRjaFJlc3BvbnNlPj4o
KnJlc3VsdC5yZXR1cm5WYWx1ZSgpKTsKKyAgICBkb01hdGNoKFdURk1vdmUoaW5mbyksIFdURk1v
dmUob3B0aW9ucyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlKj4mJiByZXN1
bHQpIG11dGFibGUgeworICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghcmVzdWx0LnJl
dHVyblZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvbWlzZS0+
cmVzb2x2ZTxJRExJbnRlcmZhY2U8RmV0Y2hSZXNwb25zZT4+KCpyZXN1bHQucmV0dXJuVmFsdWUo
KSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCkBAIC0xMjAsMjAgKzEyNCwyNCBAQCB2b2lk
IERPTUNhY2hlOjptYXRjaEFsbChPcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1
ZXJ5T3B0aW9ucyYmIG9wdGlvbgogCiAgICAgaWYgKCFyZXF1ZXN0KSB7CiAgICAgICAgIHJldHJp
ZXZlUmVjb3JkcyhVUkwgeyB9LCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9w
dGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICAgICAgaWYg
KGV4Y2VwdGlvbikgewotICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhj
ZXB0aW9uLnZhbHVlKCkpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoY2xvbmVSZXNwb25zZXMobV9yZWNvcmRzKSk7
CisgICAgICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJv
bWlzZS5yZXNvbHZlKGNsb25lUmVzcG9uc2VzKG1fcmVjb3JkcykpOworICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHF1ZXJ5Q2FjaGUocmVx
dWVzdC5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+
PiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
IHsKLSAgICAgICAgICAgIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHByb21pc2UucmVzb2x2
ZShjbG9uZVJlc3BvbnNlcyhyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICAgICAg
bV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYg
KHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0
KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShjbG9uZVJlc3BvbnNlcyhy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAK
QEAgLTIzNSwxMSArMjQzLDE1IEBAIHZvaWQgRE9NQ2FjaGU6OmFkZEFsbChWZWN0b3I8UmVxdWVz
dEluZm8+JiYgaW5mb3MsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByCiAKICAgICBhdXRv
IHRhc2tIYW5kbGVyID0gRmV0Y2hUYXNrc0hhbmRsZXI6OmNyZWF0ZSgqdGhpcywgW3RoaXMsIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxWZWN0b3I8UmVjb3JkPj4mJiBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0g
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAg
ICAgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIGV4Y2VwdGlvbiA9IHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCldKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKKyAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGJh
dGNoUHV0T3BlcmF0aW9uKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICBiYXRj
aFB1dE9wZXJhdGlvbihyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNl
cHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICBtX3Rhc2tRdWV1
ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZN
b3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUo
V1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMzAyLDE1ICszMTQsMTkgQEAgdm9pZCBET01DYWNoZTo6YWRkQWxsKFZlY3RvcjxSZXF1
ZXN0SW5mbz4mJiBpbmZvcywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHIKIHZvaWQgRE9N
Q2FjaGU6OnB1dFdpdGhSZXNwb25zZURhdGEoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSwgUmVmPEZldGNoUmVxdWVzdD4mJiByZXF1ZXN0LCBSZWY8RmV0Y2hSZXNwb25zZT4mJiBy
ZXNwb25zZSwgRXhjZXB0aW9uT3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiYgcmVzcG9uc2VCb2R5
KQogewogICAgIGlmIChyZXNwb25zZUJvZHkuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJv
bWlzZS5yZWplY3QocmVzcG9uc2VCb2R5LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgIG1f
dGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2Vw
dGlvbiA9IHJlc3BvbnNlQm9keS5yZWxlYXNlRXhjZXB0aW9uKCldKCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJv
ZHkgYm9keTsKICAgICBpZiAoYXV0byBidWZmZXIgPSByZXNwb25zZUJvZHkucmVsZWFzZVJldHVy
blZhbHVlKCkpCiAgICAgICAgIGJvZHkgPSBidWZmZXIucmVsZWFzZU5vbk51bGwoKTsKLSAgICBi
YXRjaFB1dE9wZXJhdGlvbihyZXF1ZXN0LmdldCgpLCByZXNwb25zZS5nZXQoKSwgV1RGTW92ZShi
b2R5KSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7
CisgICAgYmF0Y2hQdXRPcGVyYXRpb24ocmVxdWVzdC5nZXQoKSwgcmVzcG9uc2UuZ2V0KCksIFdU
Rk1vdmUoYm9keSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgIH0pOwogICAgIH0p
OwogfQogCkBAIC0zNzMsOCArMzg5LDEwIEBAIHZvaWQgRE9NQ2FjaGU6OnB1dChSZXF1ZXN0SW5m
byYmIGluZm8sIFJlZjxGZXRjaFJlc3BvbnNlPiYmIHJlc3BvbnNlLCBET01Qcm9taXNlCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBiYXRjaFB1dE9wZXJhdGlvbihyZXF1ZXN0LmdldCgp
LCByZXNwb25zZS5nZXQoKSwgcmVzcG9uc2UtPmNvbnN1bWVCb2R5KCksIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIGJhdGNoUHV0T3BlcmF0
aW9uKHJlcXVlc3QuZ2V0KCksIHJlc3BvbnNlLmdldCgpLCByZXNwb25zZS0+Y29uc3VtZUJvZHko
KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
cmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgeworICAgICAgICAgICAgcHJvbWlz
ZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAg
LTM4OSw4ICs0MDcsMTAgQEAgdm9pZCBET01DYWNoZTo6cmVtb3ZlKFJlcXVlc3RJbmZvJiYgaW5m
bywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBET01Qcm9taXMKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHJlcXVlc3RPckV4Y2VwdGlvbi5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSwgV1RGTW92ZShvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShFeGNlcHRpb25Pcjxib29sPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgYmF0Y2hEZWxldGVPcGVyYXRp
b24ocmVxdWVzdE9yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKG9wdGlv
bnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8Ym9vbD4mJiByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
LCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBwcm9t
aXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICB9KTsKICAgICB9KTsKIH0KIApA
QCAtNDE2LDIyICs0MzYsMjYgQEAgdm9pZCBET01DYWNoZTo6a2V5cyhPcHRpb25hbDxSZXF1ZXN0
SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIEsKIAogICAgIGlmICgh
cmVxdWVzdCkgewogICAgICAgICByZXRyaWV2ZVJlY29yZHMoVVJMIHsgfSwgW3RoaXMsIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBt
dXRhYmxlIHsKLSAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgICAgICAgICBw
cm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdU
Rjo6bWFwKG1fcmVjb3JkcywgY29weVJlcXVlc3RSZWYpKTsKKyAgICAgICAgICAgIG1fdGFza1F1
ZXVlLT5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2Vw
dGlvbiA9IFdURk1vdmUoZXhjZXB0aW9uKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1v
dmUoZXhjZXB0aW9uLnZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoV1RGOjptYXAo
bV9yZWNvcmRzLCBjb3B5UmVxdWVzdFJlZikpOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcXVlcnlDYWNoZShyZXF1ZXN0LnJlbGVh
c2VOb25OdWxsKCksIFdURk1vdmUob3B0aW9ucyksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0oRXhjZXB0aW9uT3I8VmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4+JiYgcmVzdWx0KSBtdXRh
YmxlIHsKLSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAg
cHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KKyAgICBxdWVyeUNhY2hlKHJlcXVlc3QucmVsZWFzZU5vbk51bGwo
KSwgV1RGTW92ZShvcHRpb25zKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPFZlY3RvcjxDYWNoZVN0
b3JhZ2VSZWNvcmQ+PiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIG1fdGFza1F1ZXVlLT5l
bnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUo
cmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAg
ICAgcHJvbWlzZS5yZXNvbHZlKFdURjo6bWFwKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwg
Y29weVJlcXVlc3RSZWYpKTsKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShXVEY6Om1hcChy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCksIGNvcHlSZXF1ZXN0UmVmKSk7CisgICAgICAgIH0p
OwogICAgIH0pOwogfQogCkBAIC01ODYsNyArNjEwLDcgQEAgY29uc3QgY2hhciogRE9NQ2FjaGU6
OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogCiBib29sIERPTUNhY2hlOjpjYW5TdXNwZW5k
Rm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yZWNvcmRzLmlz
RW1wdHkoKSAmJiAhaGFzUGVuZGluZ0FjdGl2aXR5KCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCmluZGV4IGZkNGZkM2Y3YTIy
YTE2ZjY4MWEyOGUwYmEyZmQzMjA0MjQ5MWE4OGEuLjFmNmY1NmQzMjBmODUwMDM0Mjc5NDE2ODI0
OTJiYzVlMDY5Y2YzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
RE9NQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgK
QEAgLTI4LDEwICsyOCwxMiBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1
ZGUgIkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VSZWNv
cmQuaCIKKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFN1c3BlbmRhYmxlVGFza1F1
ZXVlOwogCiBjbGFzcyBET01DYWNoZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUNhY2hl
PiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CkBAIC05MCw2ICs5Miw3IEBAIHBy
aXZhdGU6CiAKICAgICBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiBtX3JlY29yZHM7CiAgICAg
Ym9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CisgICAgVW5pcXVlUmVmPFN1c3BlbmRhYmxlVGFz
a1F1ZXVlPiBtX3Rhc2tRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAyYmM5NzgyNjAxMzlkYmQ0MjIwOTQwY2Y1MDI3OTliYTk5OWE5ZTY5Li44NTYxNjY4YTQ5OTk2
M2ZmZWRkZTZjYTk1ZTYwZGUwOTRmZDgxY2JjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTkt
MTAtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBET01DYWNo
ZSBzaG91bGQgbm90IHByZXZlbnQgcGFnZXMgZnJvbSBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJk
IGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDI1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRp
bmctcHJvbWlzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sOiBBZGRlZC4K
KwogMjAxOS0xMC0wNCAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgTmVnYXRpdmUgcmFkaWkgaW4gcmFkaWFsIGdyYWRpZW50cyBzaG91bGQgYmUgcmVq
ZWN0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYTAwNzhlODgzMzM5MzI3ZGE2NmIzNjIwODk1
MGIzNDdjZDI0NzJmLi40OTBmNDE5OWM0ZmMzNTQxZWU0NWFlMjYyYzIzMDVlNGMwYjIyMWNjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ1Myw2ICs0NTMsOCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtY3Jl
ZGVudAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9y
cy9TaGFyZWRXb3JrZXIgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9TaGFyZWRXb3JrZXJfYmxvYlVybC5odG1sIFsgU2tpcCBdCiAKK2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sIFsgRHVt
cEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KKwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9iZWFjb24vYmVhY29uLWJhc2ljLWJsb2IuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVy
ciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMt
cHJlZmxpZ2h0LXJlZGlyZWN0LmFueS53b3JrZXIuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0
ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9hY2Nlc3MtY29udHJv
bC1hbmQtcmVkaXJlY3RzLmh0bSBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNo
ZS1wZW5kaW5nLXByb21pc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jZTBkMzVjNDc2ZmY1YTg1NjE2ZDhiODY0OTlkODU5YzY0M2FjZTg0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2Ut
Y2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1
IEBACitUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIHBlbmRpbmcgRE9NQ2FjaGUgYWN0aXZpdHkgZ29l
cyBpbnRvIHRoZSBwYWdlIGNhY2hlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
cGFnZXNob3cgLSBub3QgZnJvbSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQorcGFn
ZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2Ugd2FzIHJlc3RvcmVkIGZyb20gUGFnZSBDYWNo
ZQorUEFTUyBDYWNoZS5hZGQoKSBzdWNjZWVkZWQKK1BBU1MgISFyZXN0b3JlZEZyb21QYWdlQ2Fj
aGUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGJlNzY1ZGZiYTBiZTUzYTUyYTU2MTAwOGQ2MWM2Y2MzODZmYmNlYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBwZW5kaW5nIERPTUNhY2hlIGFjdGl2aXR5IGdv
ZXMgaW50byB0aGUgcGFnZSBjYWNoZS4nKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworbGV0IHJl
c3RvcmVkRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
cGFnZXNob3ciLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAo
ZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImZyb20gY2FjaGUiKTsKKyAgICBpZiAo
ZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2Ugd2FzIHJlc3RvcmVk
IGZyb20gUGFnZSBDYWNoZSIpOworICAgICAgICByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSB0cnVl
OworICAgIH0KK30pOworCitmdW5jdGlvbiB0cnlDYWNoZSgpCit7CisgICAgY2FjaGUuYWRkKCdy
ZXNvdXJjZXMvYmxhbmsudHh0JykudGhlbigoKSA9PiB7CisgICAgICAgIHRlc3RQYXNzZWQoIkNh
Y2hlLmFkZCgpIHN1Y2NlZWRlZCIpOworICAgICAgICBzaG91bGRCZVRydWUoIiEhcmVzdG9yZWRG
cm9tUGFnZUNhY2hlIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIChlKSA9PiB7
CisgICAgICAgIHRyeUNhY2hlKCk7CisgICAgfSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoInBhZ2VoaWRlIC0g
IiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZW50ZXJpbmcgY2FjaGUiKTsK
KyAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIGZh
aWxlZCB0byBlbnRlciB0aGUgUGFnZSBDYWNoZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICB9CisKKyAgICB0cnlDYWNoZSgpOworfSk7CisKK29ubG9hZCA9ICgpID0+IHsKKyAgICBz
ZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgY2FjaGVzLm9wZW4oJ3Rlc3QnKS50aGVuKChfY2Fj
aGUpID0+IHsKKyAgICAgICAgICAgIGNhY2hlID0gX2NhY2hlOworICAgICAgICAgICAgdGVzdExp
bmsuY2xpY2soKTsKKyAgICAgICAgfSk7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKzxhIGlk
PSJ0ZXN0TGluayIgaHJlZj0icmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiIHN0eWxl
PSJkaXNwbGF5OiBub25lIj5MaW5rPC9hPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380251</attachid>
            <date>2019-10-04 14:08:23 -0700</date>
            <delta_ts>2019-10-07 08:29:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202590-20191004140822.patch</filename>
            <type>text/plain</type>
            <size>18699</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjQyM2Y4NTcxNjg2OGJh
OTRkN2VmYmQzMWUwMDEyYTlmMDY1NmJlZC4uNGJmMjg5ODhiOTIxMTFiMzJkZDhmMmNlMDI4MDIw
OGEwZDI0MTdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEwLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRE9NQ2FjaGUgc2hvdWxkIG5v
dCBwcmV2ZW50IHBhZ2VzIGZyb20gZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNTkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgRE9NQ2Fj
aGUgdG8gc3VzcGVuZCBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHVuY29uZGl0aW9uYWxseSwg
YnkKKyAgICAgICAgYXBwZW5kaW5nIGFsbCBwcm9taXNlIHJlc29sdXRpb25zIHRvIGEgU3VzcGVu
ZGFibGVUYXNrUXVldWUuIFRoaXMgZ3VhcmFudGVlcworICAgICAgICB0aGF0IGFueSBhc3luY2hy
b25vdXMgcHJvbWlzZSByZXNvbHV0aW9uIGlzIGRlbGF5ZWQgd2hpbGUgaW4gdGhlIHBhZ2UgY2Fj
aGUsCisgICAgICAgIHVudGlsIHRoZSBwYWdlIGdldHMgcmVzdW1lZC4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21p
c2UuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01DYWNoZTo6RE9NQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2Fj
aGU6Om1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjptYXRjaEFsbCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01DYWNoZTo6YWRkQWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNh
Y2hlOjpwdXRXaXRoUmVzcG9uc2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpw
dXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01DYWNoZTo6a2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6Y2FuU3Vz
cGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9jYWNo
ZS9ET01DYWNoZS5oOgorCiAyMDE5LTEwLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBmb2xsb3ctdXAgZml4IGZvciByMjUwNjkzIHRvIGFk
ZHJlc3MgYXNzZXJ0aW9uIGhpdHMgaW4gZGVidWcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGUuY3BwCmluZGV4IGU2ZjcwMzk5ZGJiNDc3NTAyMjYzNmI3N2ZmMjgwMzNhZWJk
YzE2ZWEuLmJjYjczYThmMmRlYjMzODczMTU0MWUwNzhhNDViODFlMTVjN2E5YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiSlNGZXRjaFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1DaHVu
ay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTdXNw
ZW5kYWJsZVRhc2tRdWV1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KIApAQCAtNDQsNiArNDUsNyBAQCBET01DYWNoZTo6RE9NQ2Fj
aGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgdWludDY0
X3QgaWRlbgogICAgICwgbV9uYW1lKFdURk1vdmUobmFtZSkpCiAgICAgLCBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAg
ICwgbV90YXNrUXVldWUoU3VzcGVuZGFibGVUYXNrUXVldWU6OmNyZWF0ZSgmY29udGV4dCkpCiB7
CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0aW9uLT5yZWZlcmVuY2UobV9p
ZGVudGlmaWVyKTsKQEAgLTU3LDE2ICs1OSwxOCBAQCBET01DYWNoZTo6fkRPTUNhY2hlKCkKIAog
dm9pZCBET01DYWNoZTo6bWF0Y2goUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9u
cyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBkb01h
dGNoKFdURk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oRXhjZXB0aW9uT3I8RmV0Y2hSZXNwb25zZSo+JiYgcmVzdWx0KSBtdXRhYmxlIHsK
LSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgcHJvbWlz
ZS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghcmVzdWx0LnJldHVyblZhbHVlKCkpIHsKLSAgICAg
ICAgICAgIHByb21pc2UtPnJlc29sdmUoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEludGVyZmFjZTxGZXRjaFJlc3BvbnNlPj4o
KnJlc3VsdC5yZXR1cm5WYWx1ZSgpKTsKKyAgICBkb01hdGNoKFdURk1vdmUoaW5mbyksIFdURk1v
dmUob3B0aW9ucyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxSZWZQdHI8RmV0Y2hSZXNwb25zZT4+
JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11
dGFibGUgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAg
ICAgICAgICAgIHByb21pc2UtPnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXJl
c3VsdC5yZXR1cm5WYWx1ZSgpKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZSgp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBy
b21pc2UtPnJlc29sdmU8SURMSW50ZXJmYWNlPEZldGNoUmVzcG9uc2U+PigqcmVzdWx0LnJldHVy
blZhbHVlKCkpOworICAgICAgICB9KTsKICAgICB9KTsKIH0KIApAQCAtOTEsNyArOTUsNyBAQCB2
b2lkIERPTUNhY2hlOjpkb01hdGNoKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlv
bnMmJiBvcHRpb25zLCBNYXRjaENhbAogICAgICAgICAgICAgY2FsbGJhY2sobnVsbHB0cik7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgY2FsbGJhY2socmVzdWx0LnJl
dHVyblZhbHVlKClbMF0ucmVzcG9uc2UtPmNsb25lKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKKyAgICAgICAgY2FsbGJhY2soUmVmUHRyPEZl
dGNoUmVzcG9uc2U+KHJlc3VsdC5yZXR1cm5WYWx1ZSgpWzBdLnJlc3BvbnNlLT5jbG9uZSgqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKS5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOwogICAgIH0pOwog
fQogCkBAIC0xMjAsMjAgKzEyNCwyNCBAQCB2b2lkIERPTUNhY2hlOjptYXRjaEFsbChPcHRpb25h
bDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbgogCiAgICAg
aWYgKCFyZXF1ZXN0KSB7CiAgICAgICAgIHJldHJpZXZlUmVjb3JkcyhVUkwgeyB9LCBbdGhpcywg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRp
b24pIG11dGFibGUgewotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewotICAgICAgICAgICAg
ICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcm9taXNlLnJlc29s
dmUoY2xvbmVSZXNwb25zZXMobV9yZWNvcmRzKSk7CisgICAgICAgICAgICBtX3Rhc2tRdWV1ZS0+
ZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24g
PSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGV4
Y2VwdGlvbikgeworICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4
Y2VwdGlvbi52YWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGNsb25lUmVzcG9uc2Vz
KG1fcmVjb3JkcykpOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIHF1ZXJ5Q2FjaGUocmVxdWVzdC5yZWxlYXNlTm9uTnVsbCgpLCBXVEZN
b3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlv
bk9yPFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+PiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAg
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIHByb21pc2UucmVq
ZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShjbG9uZVJlc3BvbnNlcyhyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0
aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQp
XSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewor
ICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBy
b21pc2UucmVzb2x2ZShjbG9uZVJlc3BvbnNlcyhyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkp
KTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTIzNSwxMSArMjQzLDE1IEBAIHZvaWQg
RE9NQ2FjaGU6OmFkZEFsbChWZWN0b3I8UmVxdWVzdEluZm8+JiYgaW5mb3MsIERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmIHByCiAKICAgICBhdXRvIHRhc2tIYW5kbGVyID0gRmV0Y2hUYXNrc0hh
bmRsZXI6OmNyZWF0ZSgqdGhpcywgW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShF
eGNlcHRpb25PcjxWZWN0b3I8UmVjb3JkPj4mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBp
ZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJlamVjdChy
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1
ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS5y
ZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGJhdGNoUHV0T3BlcmF0aW9uKHJlc3VsdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25P
cjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOworICAgICAgICBiYXRjaFB1dE9wZXJhdGlvbihyZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzAyLDE1ICszMTQsMTkgQEAgdm9p
ZCBET01DYWNoZTo6YWRkQWxsKFZlY3RvcjxSZXF1ZXN0SW5mbz4mJiBpbmZvcywgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHIKIHZvaWQgRE9NQ2FjaGU6OnB1dFdpdGhSZXNwb25zZURhdGEo
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSwgUmVmPEZldGNoUmVxdWVzdD4mJiBy
ZXF1ZXN0LCBSZWY8RmV0Y2hSZXNwb25zZT4mJiByZXNwb25zZSwgRXhjZXB0aW9uT3I8UmVmUHRy
PFNoYXJlZEJ1ZmZlcj4+JiYgcmVzcG9uc2VCb2R5KQogewogICAgIGlmIChyZXNwb25zZUJvZHku
aGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzcG9uc2VCb2R5LnJl
bGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IHJlc3BvbnNlQm9keS5yZWxlYXNl
RXhjZXB0aW9uKCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZN
b3ZlKGV4Y2VwdGlvbikpOworICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkgYm9keTsKICAgICBpZiAoYXV0byBidWZm
ZXIgPSByZXNwb25zZUJvZHkucmVsZWFzZVJldHVyblZhbHVlKCkpCiAgICAgICAgIGJvZHkgPSBi
dWZmZXIucmVsZWFzZU5vbk51bGwoKTsKLSAgICBiYXRjaFB1dE9wZXJhdGlvbihyZXF1ZXN0Lmdl
dCgpLCByZXNwb25zZS5nZXQoKSwgV1RGTW92ZShib2R5KSwgW3Byb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHBy
b21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgYmF0Y2hQdXRPcGVyYXRpb24ocmVx
dWVzdC5nZXQoKSwgcmVzcG9uc2UuZ2V0KCksIFdURk1vdmUoYm9keSksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNl
cHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIG1fdGFza1F1ZXVlLT5l
bnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUo
cmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUo
cmVzdWx0KSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCkBAIC0zNzMsOCArMzg5LDEwIEBA
IHZvaWQgRE9NQ2FjaGU6OnB1dChSZXF1ZXN0SW5mbyYmIGluZm8sIFJlZjxGZXRjaFJlc3BvbnNl
PiYmIHJlc3BvbnNlLCBET01Qcm9taXNlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBi
YXRjaFB1dE9wZXJhdGlvbihyZXF1ZXN0LmdldCgpLCByZXNwb25zZS5nZXQoKSwgcmVzcG9uc2Ut
PmNvbnN1bWVCb2R5KCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8
dm9pZD4mJiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3Zl
KHJlc3VsdCkpOworICAgIGJhdGNoUHV0T3BlcmF0aW9uKHJlcXVlc3QuZ2V0KCksIHJlc3BvbnNl
LmdldCgpLCByZXNwb25zZS0+Y29uc3VtZUJvZHkoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNr
KFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgp
IG11dGFibGUgeworICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsK
KyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTM4OSw4ICs0MDcsMTAgQEAgdm9pZCBET01D
YWNoZTo6cmVtb3ZlKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRp
b25zLCBET01Qcm9taXMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGJhdGNoRGVsZXRl
T3BlcmF0aW9uKHJlcXVlc3RPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgV1RGTW92
ZShvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjxib29s
PiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVz
dWx0KSk7CisgICAgYmF0Y2hEZWxldGVPcGVyYXRpb24ocmVxdWVzdE9yRXhjZXB0aW9uLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8
Ym9vbD4mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRh
c2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCld
KCkgbXV0YWJsZSB7CisgICAgICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkp
OworICAgICAgICB9KTsKICAgICB9KTsKIH0KIApAQCAtNDE2LDIyICs0MzYsMjYgQEAgdm9pZCBE
T01DYWNoZTo6a2V5cyhPcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0
aW9ucyYmIG9wdGlvbnMsIEsKIAogICAgIGlmICghcmVxdWVzdCkgewogICAgICAgICByZXRyaWV2
ZVJlY29yZHMoVVJMIHsgfSwgW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShPcHRp
b25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGlmIChl
eGNlcHRpb24pIHsKLSAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2Vw
dGlvbi52YWx1ZSgpKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdURjo6bWFwKG1fcmVjb3JkcywgY29weVJlcXVl
c3RSZWYpKTsKKyAgICAgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbdGhpcywgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IFdURk1vdmUoZXhjZXB0aW9uKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAg
ICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBwcm9taXNlLnJlc29sdmUoV1RGOjptYXAobV9yZWNvcmRzLCBjb3B5UmVxdWVzdFJlZikp
OworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgcXVlcnlDYWNoZShyZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUob3B0aW9u
cyksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8VmVjdG9yPENhY2hl
U3RvcmFnZVJlY29yZD4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICBxdWVy
eUNhY2hlKHJlcXVlc3QucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShvcHRpb25zKSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKEV4Y2VwdGlvbk9yPFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+PiYmIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICBwcm9t
aXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdURjo6bWFw
KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgY29weVJlcXVlc3RSZWYpKTsKKyAgICAgICAg
ICAgIHByb21pc2UucmVzb2x2ZShXVEY6Om1hcChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCks
IGNvcHlSZXF1ZXN0UmVmKSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCkBAIC01ODYsNyAr
NjEwLDcgQEAgY29uc3QgY2hhciogRE9NQ2FjaGU6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dAogCiBib29sIERPTUNhY2hlOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9yZWNvcmRzLmlzRW1wdHkoKSAmJiAhaGFzUGVuZGluZ0FjdGl2
aXR5KCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9ET01DYWNoZS5oCmluZGV4IGZkNGZkM2Y3YTIyYTE2ZjY4MWEyOGUwYmEyZmQzMjA0MjQ5MWE4
OGEuLjQ1NDE1NTQ1ZmQ4NWYzNTE0MmU2OTdmMmEwNDM3MGVjNDJhZDY0ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgKQEAgLTI4LDEwICsyOCwxMiBAQAogI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VSZWNvcmQuaCIKKyNpbmNsdWRlIDx3dGYvVW5pcXVl
UmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKK2NsYXNzIFN1c3BlbmRhYmxlVGFza1F1ZXVlOwogCiBjbGFzcyBET01DYWNoZSBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUNhY2hlPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7
CiBwdWJsaWM6CkBAIC01Niw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKLSAgICB1c2luZyBNYXRjaENhbGxiYWNr
ID0gV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPEZldGNoUmVzcG9uc2UqPik+OworICAg
IHVzaW5nIE1hdGNoQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uT3I8UmVm
UHRyPEZldGNoUmVzcG9uc2U+Pik+OwogICAgIHZvaWQgZG9NYXRjaChSZXF1ZXN0SW5mbyYmLCBD
YWNoZVF1ZXJ5T3B0aW9ucyYmLCBNYXRjaENhbGxiYWNrJiYpOwogCiAgICAgQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQpA
QCAtOTAsNiArOTIsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29y
ZD4gbV9yZWNvcmRzOwogICAgIGJvb2wgbV9pc1N0b3BwZWQgeyBmYWxzZSB9OworICAgIFVuaXF1
ZVJlZjxTdXNwZW5kYWJsZVRhc2tRdWV1ZT4gbV90YXNrUXVldWU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RP
TUNhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hl
U3RvcmFnZS5jcHAKaW5kZXggNmJhYjAzYTkyZTA5YTI2YmNhOTIzZDkzNGM2YWFkMDQ2YTM4NzNl
MS4uMTU2NjJiMjQ5MDYwMmY4NzIyOWFmNDc2MzMxYzRhMmViZTQzOTllZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmNwcApAQCAtNjAsMTMg
KzYwLDEzIEBAIHN0YXRpYyB2b2lkIGRvU2VxdWVudGlhbE1hdGNoKHNpemVfdCBpbmRleCwgVmVj
dG9yPFJlZjxET01DYWNoZT4+JiYgY2FjaGVzLCBET01DCiAgICAgfQogCiAgICAgYXV0byYgY2Fj
aGUgPSBjYWNoZXNbaW5kZXhdLmdldCgpOwotICAgIGNhY2hlLmRvTWF0Y2goV1RGTW92ZShpbmZv
KSwgV1RGTW92ZShvcHRpb25zKSwgW2NhY2hlcyA9IFdURk1vdmUoY2FjaGVzKSwgaW5mbywgb3B0
aW9ucywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgaW5k
ZXhdKEV4Y2VwdGlvbk9yPEZldGNoUmVzcG9uc2UqPiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
Y2FjaGUuZG9NYXRjaChXVEZNb3ZlKGluZm8pLCBXVEZNb3ZlKG9wdGlvbnMpLCBbY2FjaGVzID0g
V1RGTW92ZShjYWNoZXMpLCBpbmZvLCBvcHRpb25zLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpLCBpbmRleF0oRXhjZXB0aW9uT3I8UmVmUHRyPEZldGNoUmVz
cG9uc2U+PiYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChy
ZXN1bHQucmV0dXJuVmFsdWUoKSkgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVz
dWx0LnJldHVyblZhbHVlKCkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgICAgICBkb1NlcXVlbnRpYWxNYXRjaCgrK2luZGV4LCBXVEZNb3ZlKGNhY2hlcyksIFdURk1v
dmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
QEAgLTg1LDcgKzg1LDcgQEAgc3RhdGljIGlubGluZSBSZWY8RE9NQ2FjaGU+IGNvcHlDYWNoZShj
b25zdCBSZWY8RE9NQ2FjaGU+JiBjYWNoZSkKIAogdm9pZCBET01DYWNoZVN0b3JhZ2U6OmRvU2Vx
dWVudGlhbE1hdGNoKERPTUNhY2hlOjpSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRp
b25zJiYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIHN0
YXJ0U2VxdWVudGlhbE1hdGNoKFdURjo6bWFwKG1fY2FjaGVzLCBjb3B5Q2FjaGUpLCBXVEZNb3Zl
KGluZm8pLCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBl
bmRpbmdBY3Rpdml0eSgqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRp
b25PcjxGZXRjaFJlc3BvbnNlKj4mJiByZXN1bHQpIG11dGFibGUgeworICAgIHN0YXJ0U2VxdWVu
dGlhbE1hdGNoKFdURjo6bWFwKG1fY2FjaGVzLCBjb3B5Q2FjaGUpLCBXVEZNb3ZlKGluZm8pLCBX
VEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rp
dml0eSgqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxSZWZQ
dHI8RmV0Y2hSZXNwb25zZT4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1faXNT
dG9wcGVkKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMmJjOTc4MjYwMTM5ZGJkNDIyMDk0MGNmNTAyNzk5YmE5OTlhOWU2
OS4uODU2MTY2OGE0OTk5NjNmZmVkZGU2Y2E5NWU2MGRlMDk0ZmQ4MWNiYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE5LTEwLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgRE9NQ2FjaGUgc2hvdWxkIG5vdCBwcmV2ZW50IHBhZ2VzIGZyb20gZW50ZXJpbmcg
dGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNTkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNo
ZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21p
c2UuaHRtbDogQWRkZWQuCisKIDIwMTktMTAtMDQgIEpvb25naHVuIFBhcmsgIDxqaDcxOC5wYXJr
QHNhbXN1bmcuY29tPgogCiAgICAgICAgIE5lZ2F0aXZlIHJhZGlpIGluIHJhZGlhbCBncmFkaWVu
dHMgc2hvdWxkIGJlIHJlamVjdGVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWEwMDc4ZTg4MzMz
OTMyN2RhNjZiMzYyMDg5NTBiMzQ3Y2QyNDcyZi4uNDkwZjQxOTljNGZjMzU0MWVlNDVhZTI2MmMy
MzA1ZTRjMGIyMjFjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTMsNiArNDUzLDggQEAgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1vcHRpb25zLWNyZWRlbnQKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9jb25zdHJ1Y3RvcnMvU2hhcmVkV29ya2VyIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyX2Jsb2JVcmwuaHRtbCBbIFNraXAg
XQogCitodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXBy
b21pc2UuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCisKIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1iYXNpYy1ibG9iLmh0bWwgWyBEdW1wSlND
b25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWRpcmVjdC5hbnkud29ya2VyLmh0bWwgWyBEdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94
aHIvYWNjZXNzLWNvbnRyb2wtYW5kLXJlZGlyZWN0cy5odG0gWyBEdW1wSlNDb25zb2xlTG9nSW5T
dGRFcnIgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJv
bWlzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UwZDM1YzQ3NmZmNWE4NTYxNmQ4Yjg2NDk5
ZDg1OWM2NDNhY2U4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBwZW5kaW5nIERPTUNh
Y2hlIGFjdGl2aXR5IGdvZXMgaW50byB0aGUgcGFnZSBjYWNoZS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2VoaWRlIC0gZW50
ZXJpbmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIHdhcyByZXN0b3Jl
ZCBmcm9tIFBhZ2UgQ2FjaGUKK1BBU1MgQ2FjaGUuYWRkKCkgc3VjY2VlZGVkCitQQVNTICEhcmVz
dG9yZWRGcm9tUGFnZUNhY2hlIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRp
bmctcHJvbWlzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZTc2NWRmYmEwYmU1M2E1MmE1NjEwMDhkNjFj
NmNjMzg2ZmJjZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2UuaHRtbApAQCAtMCww
ICsxLDUzIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVl
IF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggcGVuZGluZyBET01D
YWNoZSBhY3Rpdml0eSBnb2VzIGludG8gdGhlIHBhZ2UgY2FjaGUuJyk7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKK2xldCByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsKKword2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1Zygi
cGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9tIGNh
Y2hlIik7CisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgICB0ZXN0UGFzc2VkKCJQ
YWdlIHdhcyByZXN0b3JlZCBmcm9tIFBhZ2UgQ2FjaGUiKTsKKyAgICAgICAgcmVzdG9yZWRGcm9t
UGFnZUNhY2hlID0gdHJ1ZTsKKyAgICB9Cit9KTsKKworZnVuY3Rpb24gdHJ5Q2FjaGUoKQorewor
ICAgIGNhY2hlLmFkZCgncmVzb3VyY2VzL2JsYW5rLnR4dCcpLnRoZW4oKCkgPT4geworICAgICAg
ICB0ZXN0UGFzc2VkKCJDYWNoZS5hZGQoKSBzdWNjZWVkZWQiKTsKKyAgICAgICAgc2hvdWxkQmVU
cnVlKCIhIXJlc3RvcmVkRnJvbVBhZ2VDYWNoZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICB9LCAoZSkgPT4geworICAgICAgICB0cnlDYWNoZSgpOworICAgIH0pOworfQorCit3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVudCkgeworICAgIGRl
YnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImVu
dGVyaW5nIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVz
dEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8gZW50ZXIgdGhlIFBhZ2UgQ2FjaGUiKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAgdHJ5Q2FjaGUoKTsKK30pOworCitvbmxvYWQg
PSAoKSA9PiB7CisgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgIGNhY2hlcy5vcGVuKCd0
ZXN0JykudGhlbigoX2NhY2hlKSA9PiB7CisgICAgICAgICAgICBjYWNoZSA9IF9jYWNoZTsKKyAg
ICAgICAgICAgIHRlc3RMaW5rLmNsaWNrKCk7CisgICAgICAgIH0pOworICAgIH0sIDApOworfQor
PC9zY3JpcHQ+Cis8YSBpZD0idGVzdExpbmsiIGhyZWY9InJlc291cmNlcy9wYWdlLWNhY2hlLWhl
bHBlci5odG1sIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+TGluazwvYT4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380329</attachid>
            <date>2019-10-07 08:29:07 -0700</date>
            <delta_ts>2019-10-07 13:11:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202590-20191007082906.patch</filename>
            <type>text/plain</type>
            <size>20931</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNiMTA3YWQzOTg3NjUz
MzhmMzhmYzA5Yjk5YTZjZjY2YmZjNzYwZS4uYWE4NGU3YmRiOTg3ZDFlMThiODFhNWZlNmEzNDAx
M2ZjY2ZkYjAxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEwLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRE9NQ2FjaGUgc2hvdWxkIG5v
dCBwcmV2ZW50IHBhZ2VzIGZyb20gZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNTkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgRE9NQ2Fj
aGUgdG8gc3VzcGVuZCBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHVuY29uZGl0aW9uYWxseSwg
YnkKKyAgICAgICAgYXBwZW5kaW5nIGFsbCBwcm9taXNlIHJlc29sdXRpb25zIHRvIGEgU3VzcGVu
ZGFibGVUYXNrUXVldWUuIFRoaXMgZ3VhcmFudGVlcworICAgICAgICB0aGF0IGFueSBhc3luY2hy
b25vdXMgcHJvbWlzZSByZXNvbHV0aW9uIGlzIGRlbGF5ZWQgd2hpbGUgaW4gdGhlIHBhZ2UgY2Fj
aGUsCisgICAgICAgIHVudGlsIHRoZSBwYWdlIGdldHMgcmVzdW1lZC4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21p
c2UuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01DYWNoZTo6RE9NQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2Fj
aGU6Om1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjptYXRjaEFsbCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01DYWNoZTo6YWRkQWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNh
Y2hlOjpwdXRXaXRoUmVzcG9uc2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpw
dXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01DYWNoZTo6a2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6Y2FuU3Vz
cGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9jYWNo
ZS9ET01DYWNoZS5oOgorCiAyMDE5LTEwLTA3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBVbm11dGluZyBjYXB0dXJlIG9mIGEgcGFnZSBpcyBub3Qg
d29ya2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAppbmRleCBl
NmY3MDM5OWRiYjQ3NzUwMjI2MzZiNzdmZjI4MDMzYWViZGMxNmVhLi5iY2I3M2E4ZjJkZWIzMzg3
MzE1NDFlMDc4YTQ1YjgxZTE1YzdhOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0RPTUNhY2hlLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkpTRmV0Y2hSZXNwb25z
ZS5oIgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtQ2h1bmsuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiU3VzcGVuZGFibGVUYXNrUXVldWUuaCIKICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAK
QEAgLTQ0LDYgKzQ1LDcgQEAgRE9NQ2FjaGU6OkRPTUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIHVpbnQ2NF90IGlkZW4KICAgICAsIG1fbmFtZShX
VEZNb3ZlKG5hbWUpKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAsIG1fdGFza1F1ZXVlKFN1c3BlbmRh
YmxlVGFza1F1ZXVlOjpjcmVhdGUoJmNvbnRleHQpKQogewogICAgIHN1c3BlbmRJZk5lZWRlZCgp
OwogICAgIG1fY29ubmVjdGlvbi0+cmVmZXJlbmNlKG1faWRlbnRpZmllcik7CkBAIC01NywxNiAr
NTksMTggQEAgRE9NQ2FjaGU6On5ET01DYWNoZSgpCiAKIHZvaWQgRE9NQ2FjaGU6Om1hdGNoKFJl
cXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgZG9NYXRjaChXVEZNb3ZlKGluZm8pLCBXVEZN
b3ZlKG9wdGlvbnMpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPEZl
dGNoUmVzcG9uc2UqPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChyZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoIXJlc3VsdC5yZXR1cm5WYWx1ZSgpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZl
KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgcHJvbWlzZS0+cmVz
b2x2ZTxJRExJbnRlcmZhY2U8RmV0Y2hSZXNwb25zZT4+KCpyZXN1bHQucmV0dXJuVmFsdWUoKSk7
CisgICAgZG9NYXRjaChXVEZNb3ZlKGluZm8pLCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
RXhjZXB0aW9uT3I8UmVmUHRyPEZldGNoUmVzcG9uc2U+PiYmIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWpl
Y3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFyZXN1bHQucmV0dXJuVmFsdWUoKSkgewor
ICAgICAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEludGVy
ZmFjZTxGZXRjaFJlc3BvbnNlPj4oKnJlc3VsdC5yZXR1cm5WYWx1ZSgpKTsKKyAgICAgICAgfSk7
CiAgICAgfSk7CiB9CiAKQEAgLTkxLDcgKzk1LDcgQEAgdm9pZCBET01DYWNoZTo6ZG9NYXRjaChS
ZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucywgTWF0Y2hDYWwK
ICAgICAgICAgICAgIGNhbGxiYWNrKG51bGxwdHIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgICAgIGNhbGxiYWNrKHJlc3VsdC5yZXR1cm5WYWx1ZSgpWzBdLnJlc3BvbnNl
LT5jbG9uZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS5yZWxlYXNlUmV0dXJuVmFsdWUoKS5w
dHIoKSk7CisgICAgICAgIGNhbGxiYWNrKFJlZlB0cjxGZXRjaFJlc3BvbnNlPihyZXN1bHQucmV0
dXJuVmFsdWUoKVswXS5yZXNwb25zZS0+Y2xvbmUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSku
cmVsZWFzZVJldHVyblZhbHVlKCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTIwLDIwICsxMjQsMjQg
QEAgdm9pZCBET01DYWNoZTo6bWF0Y2hBbGwoT3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywg
Q2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb24KIAogICAgIGlmICghcmVxdWVzdCkgewogICAgICAg
ICByZXRyaWV2ZVJlY29yZHMoVVJMIHsgfSwgW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZN
b3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGNsb25lUmVzcG9uc2VzKG1fcmVj
b3JkcykpOworICAgICAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0aGlzLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gV1RGTW92ZShleGNlcHRpb24pXSgp
IG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAg
ICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSkpOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHByb21pc2UucmVzb2x2ZShjbG9uZVJlc3BvbnNlcyhtX3JlY29yZHMpKTsKKyAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBxdWVyeUNh
Y2hlKHJlcXVlc3QucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShvcHRpb25zKSwgW3RoaXMsIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxWZWN0b3I8Q2FjaGVTdG9yYWdl
UmVjb3JkPj4mJiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBwcm9taXNl
LnJlc29sdmUoY2xvbmVSZXNwb25zZXMocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKSk7Cisg
ICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNl
LnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoY2xvbmVSZXNw
b25zZXMocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIH0pOwogICAgIH0p
OwogfQogCkBAIC0yMzUsMTEgKzI0MywxNSBAQCB2b2lkIERPTUNhY2hlOjphZGRBbGwoVmVjdG9y
PFJlcXVlc3RJbmZvPiYmIGluZm9zLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcgogCiAg
ICAgYXV0byB0YXNrSGFuZGxlciA9IEZldGNoVGFza3NIYW5kbGVyOjpjcmVhdGUoKnRoaXMsIFt0
aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8VmVjdG9yPFJlY29y
ZD4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24o
KSkgewotICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24o
KSk7CisgICAgICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpXSgpIG11
dGFibGUgeworICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9u
KSk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAg
ICAgICBiYXRjaFB1dE9wZXJhdGlvbihyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCksIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpIG11dGFi
bGUgewotICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAg
ICAgYmF0Y2hQdXRPcGVyYXRpb24ocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0oRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgbV90
YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0
ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIHByb21pc2Uu
c2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTMwMiwxNSArMzE0LDE5IEBAIHZvaWQgRE9NQ2FjaGU6OmFkZEFsbChWZWN0
b3I8UmVxdWVzdEluZm8+JiYgaW5mb3MsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByCiB2
b2lkIERPTUNhY2hlOjpwdXRXaXRoUmVzcG9uc2VEYXRhKERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmIHByb21pc2UsIFJlZjxGZXRjaFJlcXVlc3Q+JiYgcmVxdWVzdCwgUmVmPEZldGNoUmVzcG9u
c2U+JiYgcmVzcG9uc2UsIEV4Y2VwdGlvbk9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYmIHJlc3Bv
bnNlQm9keSkKIHsKICAgICBpZiAocmVzcG9uc2VCb2R5Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAg
ICAgIHByb21pc2UucmVqZWN0KHJlc3BvbnNlQm9keS5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAg
ICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
LCBleGNlcHRpb24gPSByZXNwb25zZUJvZHkucmVsZWFzZUV4Y2VwdGlvbigpXSgpIG11dGFibGUg
eworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICAg
ICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBET01DYWNoZUVuZ2luZTo6UmVz
cG9uc2VCb2R5IGJvZHk7CiAgICAgaWYgKGF1dG8gYnVmZmVyID0gcmVzcG9uc2VCb2R5LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKQogICAgICAgICBib2R5ID0gYnVmZmVyLnJlbGVhc2VOb25OdWxsKCk7
Ci0gICAgYmF0Y2hQdXRPcGVyYXRpb24ocmVxdWVzdC5nZXQoKSwgcmVzcG9uc2UuZ2V0KCksIFdU
Rk1vdmUoYm9keSksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8dm9p
ZD4mJiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJl
c3VsdCkpOworICAgIGJhdGNoUHV0T3BlcmF0aW9uKHJlcXVlc3QuZ2V0KCksIHJlc3BvbnNlLmdl
dCgpLCBXVEZNb3ZlKGJvZHkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICB9KTsK
ICAgICB9KTsKIH0KIApAQCAtMzczLDggKzM4OSwxMCBAQCB2b2lkIERPTUNhY2hlOjpwdXQoUmVx
dWVzdEluZm8mJiBpbmZvLCBSZWY8RmV0Y2hSZXNwb25zZT4mJiByZXNwb25zZSwgRE9NUHJvbWlz
ZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYmF0Y2hQdXRPcGVyYXRpb24ocmVxdWVz
dC5nZXQoKSwgcmVzcG9uc2UuZ2V0KCksIHJlc3BvbnNlLT5jb25zdW1lQm9keSgpLCBbcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KSBtdXRhYmxl
IHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICBiYXRjaFB1
dE9wZXJhdGlvbihyZXF1ZXN0LmdldCgpLCByZXNwb25zZS5nZXQoKSwgcmVzcG9uc2UtPmNvbnN1
bWVCb2R5KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgIH0pOwogICAgIH0pOwog
fQogCkBAIC0zODksOCArNDA3LDEwIEBAIHZvaWQgRE9NQ2FjaGU6OnJlbW92ZShSZXF1ZXN0SW5m
byYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucywgRE9NUHJvbWlzCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBiYXRjaERlbGV0ZU9wZXJhdGlvbihyZXF1ZXN0T3JFeGNl
cHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCksIFdURk1vdmUob3B0aW9ucyksIFtwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8Ym9vbD4mJiByZXN1bHQpIG11dGFibGUgewot
ICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIGJhdGNoRGVsZXRl
T3BlcmF0aW9uKHJlcXVlc3RPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgV1RGTW92
ZShvcHRpb25zKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPGJvb2w+JiYgcmVzdWx0KSBtdXRhYmxl
IHsKKyAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgeworICAgICAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7
CiB9CiAKQEAgLTQxNiwyMiArNDM2LDI2IEBAIHZvaWQgRE9NQ2FjaGU6OmtleXMoT3B0aW9uYWw8
UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBLCiAKICAg
ICBpZiAoIXJlcXVlc3QpIHsKICAgICAgICAgcmV0cmlldmVSZWNvcmRzKFVSTCB7IH0sIFt0aGlz
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2Vw
dGlvbikgbXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgICAgICAg
ICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSkpOwotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByb21pc2UucmVz
b2x2ZShXVEY6Om1hcChtX3JlY29yZHMsIGNvcHlSZXF1ZXN0UmVmKSk7CisgICAgICAgICAgICBt
X3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
LCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVj
dChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdU
Rjo6bWFwKG1fcmVjb3JkcywgY29weVJlcXVlc3RSZWYpKTsKKyAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHF1ZXJ5Q2FjaGUocmVxdWVz
dC5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKG9wdGlvbnMpLCBbcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKEV4Y2VwdGlvbk9yPFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+PiYmIHJlc3Vs
dCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAg
ICAgICAgIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgcXVlcnlDYWNoZShyZXF1ZXN0LnJlbGVhc2VO
b25OdWxsKCksIFdURk1vdmUob3B0aW9ucyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxWZWN0b3I8
Q2FjaGVTdG9yYWdlUmVjb3JkPj4mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBtX3Rhc2tR
dWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBX
VEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQog
Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShXVEY6Om1hcChyZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCksIGNvcHlSZXF1ZXN0UmVmKSk7CisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoV1RG
OjptYXAocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBjb3B5UmVxdWVzdFJlZikpOworICAg
ICAgICB9KTsKICAgICB9KTsKIH0KIApAQCAtNTg2LDcgKzYxMCw3IEBAIGNvbnN0IGNoYXIqIERP
TUNhY2hlOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIAogYm9vbCBET01DYWNoZTo6Y2Fu
U3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcmVj
b3Jkcy5pc0VtcHR5KCkgJiYgIWhhc1BlbmRpbmdBY3Rpdml0eSgpOworICAgIHJldHVybiB0cnVl
OwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2Fj
aGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaAppbmRleCBmZDRm
ZDNmN2EyMmExNmY2ODFhMjhlMGJhMmZkMzIwNDI0OTFhODhhLi40NTQxNTU0NWZkODVmMzUxNDJl
Njk3ZjJhMDQzNzBlYzQyYWQ2NGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NhY2hlL0RPTUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01D
YWNoZS5oCkBAIC0yOCwxMCArMjgsMTIgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
ICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiQ2FjaGVTdG9y
YWdlUmVjb3JkLmgiCisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBTdXNwZW5kYWJs
ZVRhc2tRdWV1ZTsKIAogY2xhc3MgRE9NQ2FjaGUgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxE
T01DYWNoZT4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgpAQCAtNTYsNyArNTgs
NyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9u
YW1lOyB9CiAgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRp
ZmllcjsgfQogCi0gICAgdXNpbmcgTWF0Y2hDYWxsYmFjayA9IFdURjo6RnVuY3Rpb248dm9pZChF
eGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlKj4pPjsKKyAgICB1c2luZyBNYXRjaENhbGxiYWNrID0g
V1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPFJlZlB0cjxGZXRjaFJlc3BvbnNlPj4pPjsK
ICAgICB2b2lkIGRvTWF0Y2goUmVxdWVzdEluZm8mJiwgQ2FjaGVRdWVyeU9wdGlvbnMmJiwgTWF0
Y2hDYWxsYmFjayYmKTsKIAogICAgIENhY2hlU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24o
KSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KQEAgLTkwLDYgKzkyLDcgQEAgcHJpdmF0
ZToKIAogICAgIFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+IG1fcmVjb3JkczsKICAgICBib29s
IG1faXNTdG9wcGVkIHsgZmFsc2UgfTsKKyAgICBVbmlxdWVSZWY8U3VzcGVuZGFibGVUYXNrUXVl
dWU+IG1fdGFza1F1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IDZiYWIw
M2E5MmUwOWEyNmJjYTkyM2Q5MzRjNmFhZDA0NmEzODczZTEuLjE1NjYyYjI0OTA2MDJmODcyMjlh
ZjQ3NjMzMWM0YTJlYmU0Mzk5ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0RPTUNhY2hlU3RvcmFnZS5jcHAKQEAgLTYwLDEzICs2MCwxMyBAQCBzdGF0aWMgdm9pZCBk
b1NlcXVlbnRpYWxNYXRjaChzaXplX3QgaW5kZXgsIFZlY3RvcjxSZWY8RE9NQ2FjaGU+PiYmIGNh
Y2hlcywgRE9NQwogICAgIH0KIAogICAgIGF1dG8mIGNhY2hlID0gY2FjaGVzW2luZGV4XS5nZXQo
KTsKLSAgICBjYWNoZS5kb01hdGNoKFdURk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFtj
YWNoZXMgPSBXVEZNb3ZlKGNhY2hlcyksIGluZm8sIG9wdGlvbnMsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGluZGV4XShFeGNlcHRpb25PcjxGZXRjaFJl
c3BvbnNlKj4mJiByZXN1bHQpIG11dGFibGUgeworICAgIGNhY2hlLmRvTWF0Y2goV1RGTW92ZShp
bmZvKSwgV1RGTW92ZShvcHRpb25zKSwgW2NhY2hlcyA9IFdURk1vdmUoY2FjaGVzKSwgaW5mbywg
b3B0aW9ucywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
aW5kZXhdKEV4Y2VwdGlvbk9yPFJlZlB0cjxGZXRjaFJlc3BvbnNlPj4mJiByZXN1bHQpIG11dGFi
bGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAocmVzdWx0LnJldHVyblZhbHVlKCkpIHsK
LSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC5yZXR1cm5WYWx1ZSgpKTsKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgZG9TZXF1ZW50aWFsTWF0
Y2goKytpbmRleCwgV1RGTW92ZShjYWNoZXMpLCBXVEZNb3ZlKGluZm8pLCBXVEZNb3ZlKG9wdGlv
bnMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC04NSw3ICs4NSw3IEBAIHN0YXRp
YyBpbmxpbmUgUmVmPERPTUNhY2hlPiBjb3B5Q2FjaGUoY29uc3QgUmVmPERPTUNhY2hlPiYgY2Fj
aGUpCiAKIHZvaWQgRE9NQ2FjaGVTdG9yYWdlOjpkb1NlcXVlbnRpYWxNYXRjaChET01DYWNoZTo6
UmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBzdGFydFNlcXVlbnRpYWxNYXRjaChXVEY6
Om1hcChtX2NhY2hlcywgY29weUNhY2hlKSwgV1RGTW92ZShpbmZvKSwgV1RGTW92ZShvcHRpb25z
KSwgW3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8RmV0Y2hSZXNwb25zZSo+JiYg
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICBzdGFydFNlcXVlbnRpYWxNYXRjaChXVEY6Om1hcChtX2Nh
Y2hlcywgY29weUNhY2hlKSwgV1RGTW92ZShpbmZvKSwgV1RGTW92ZShvcHRpb25zKSwgW3RoaXMs
IHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8UmVmUHRyPEZldGNoUmVzcG9uc2U+PiYmIHJl
c3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX2lzU3RvcHBlZCkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ3MTk5
MDcyZjdmMjY2NWUxYWM4ZWY5NjVlNzUxNDE5MDc1Y2EzMDQuLmIxMTgwNDhlYTJhNGUyMGQ0ZTE5
Y2M5NjVhOGU4ZjNiYzgxNDEzYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMC0wNyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERPTUNhY2hlIHNob3Vs
ZCBub3QgcHJldmVudCBwYWdlcyBmcm9tIGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU5MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlv
dXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9t
aXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWw6IEFkZGVkLgorCiAyMDE5
LTEwLTA3ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBvcnQg
T2Zmc2NyZWVuQ2FudmFzIFdlYiBQbGF0Zm9ybSBUZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
MDVlY2UyODBmZjk2YWZjOGQzMDk3NzExZjhmNzUyMjRlZDQ3Mjg5Yy4uZjA3NjczN2I4NzQyYzE0
ZDhkZDIxNzIwYTQxYmE2NTJmNjdlYmFmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTMsNiAr
NDUzLDggQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMv
ZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLWNyZWRlbnQKIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvU2hhcmVkV29ya2VyIFsgU2tpcCBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyX2Jsb2JVcmwu
aHRtbCBbIFNraXAgXQogCitodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNo
ZS1wZW5kaW5nLXByb21pc2UuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCisKIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1iYXNpYy1ibG9iLmh0
bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWRpcmVjdC5hbnkud29ya2Vy
Lmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy94aHIvYWNjZXNzLWNvbnRyb2wtYW5kLXJlZGlyZWN0cy5odG0gWyBEdW1wSlND
b25zb2xlTG9nSW5TdGRFcnIgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hl
LXBlbmRpbmctcHJvbWlzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UwZDM1YzQ3NmZmNWE4
NTYxNmQ4Yjg2NDk5ZDg1OWM2NDNhY2U4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBw
ZW5kaW5nIERPTUNhY2hlIGFjdGl2aXR5IGdvZXMgaW50byB0aGUgcGFnZSBjYWNoZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3Bh
Z2VoaWRlIC0gZW50ZXJpbmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdl
IHdhcyByZXN0b3JlZCBmcm9tIFBhZ2UgQ2FjaGUKK1BBU1MgQ2FjaGUuYWRkKCkgc3VjY2VlZGVk
CitQQVNTICEhcmVzdG9yZWRGcm9tUGFnZUNhY2hlIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21p
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRv
bWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZTc2NWRmYmEwYmU1M2E1
MmE1NjEwMDhkNjFjNmNjMzg2ZmJjZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2Uu
aHRtbApAQCAtMCwwICsxLDUzIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBh
Z2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGgg
cGVuZGluZyBET01DYWNoZSBhY3Rpdml0eSBnb2VzIGludG8gdGhlIHBhZ2UgY2FjaGUuJyk7Citq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2xldCByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsK
Kword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICBkZWJ1ZygicGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAi
KSArICJmcm9tIGNhY2hlIik7CisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgICB0
ZXN0UGFzc2VkKCJQYWdlIHdhcyByZXN0b3JlZCBmcm9tIFBhZ2UgQ2FjaGUiKTsKKyAgICAgICAg
cmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgICB9Cit9KTsKKworZnVuY3Rpb24gdHJ5
Q2FjaGUoKQoreworICAgIGNhY2hlLmFkZCgncmVzb3VyY2VzL2JsYW5rLnR4dCcpLnRoZW4oKCkg
PT4geworICAgICAgICB0ZXN0UGFzc2VkKCJDYWNoZS5hZGQoKSBzdWNjZWVkZWQiKTsKKyAgICAg
ICAgc2hvdWxkQmVUcnVlKCIhIXJlc3RvcmVkRnJvbVBhZ2VDYWNoZSIpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICB9LCAoZSkgPT4geworICAgICAgICB0cnlDYWNoZSgpOworICAgIH0p
OworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVu
dCkgeworICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAi
bm90ICIpICsgImVudGVyaW5nIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsK
KyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8gZW50ZXIgdGhlIFBhZ2UgQ2FjaGUi
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAgdHJ5Q2FjaGUoKTsKK30p
OworCitvbmxvYWQgPSAoKSA9PiB7CisgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgIGNh
Y2hlcy5vcGVuKCd0ZXN0JykudGhlbigoX2NhY2hlKSA9PiB7CisgICAgICAgICAgICBjYWNoZSA9
IF9jYWNoZTsKKyAgICAgICAgICAgIHRlc3RMaW5rLmNsaWNrKCk7CisgICAgICAgIH0pOworICAg
IH0sIDApOworfQorPC9zY3JpcHQ+Cis8YSBpZD0idGVzdExpbmsiIGhyZWY9InJlc291cmNlcy9w
YWdlLWNhY2hlLWhlbHBlci5odG1sIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+TGluazwvYT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azEv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azEvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA1ZTY0MDM4YWQ4ZTY3ZDY5YmM3MTM5YzliN2Q5MzcxYmU1N2I2Y2M3Li41
NTcwNDJhNTc1NjgxOTdhMDFhMWM4YmRlZjJlODMwNDQ2NTZmMDkxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMSw2ICsxMSw3IEBAIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtl
cl9pZGwuaHRtbCBbIFNraXAgXQogaHR0cC93cHQvc2VydmljZS13b3JrZXJzIFsgU2tpcCBdCiBo
dHRwL3dwdC9jYWNoZS1zdG9yYWdlIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2NhY2hlLXN0b3JhZ2Ug
WyBTa2lwIF0KK2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRp
bmctcHJvbWlzZS5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kgWyBTa2lw
IF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGIwMGNiZDZlOTI4ZDAyNWJiMzZjMzY0ZjQwMTVhMzcxYTkyZTVhYjUuLmYzZjhiOGE3MTQ5
ZTE5ZjQ3ZWJlMWJhY2E1Zjc5MTJiYjVmMjJhNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI2Nyw2ICsyNjcsNyBAQCBodHRwL3dwdC9s
b2FkaW5nL3JlZGlyZWN0LWhlYWRlcnMuaHRtbCBbIFNraXAgXQogIyBObyBzZXJ2aWNlIHdvcmtl
ciBpbXBsZW1lbnRhdGlvbiBmb3IgV0sxCiBodHRwL3Rlc3RzL2FwcGNhY2hlL21haW4tcmVzb3Vy
Y2UtcmVkaXJlY3Qtd2l0aC1zdy5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2NhY2hlLXN0b3Jh
Z2UgWyBTa2lwIF0KK2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBl
bmRpbmctcHJvbWlzZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRl
L2ZldGNoLWluLWNyb3NzLW9yaWdpbi1zZXJ2aWNlLXdvcmtlci5odG1sIFsgU2tpcCBdCiBodHRw
L3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLXNhbWUtb3JpZ2luLXNlcnZpY2Utd29y
a2VyLmh0bWwgWyBTa2lwIF0KIGh0dHAvd3B0L2NhY2hlLXN0b3JhZ2UgWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzIzYzQ5ZDA0MDExNjY0
OTIzMTEyZTYwOTQzYjJkZjAyNTc3NTU3NC4uM2Q1MWYzZmY1ZDI0NmVmM2U2MmNmMTllZmI2ZGIy
MTllMTM1NDMyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTM3OTgsNiArMzc5OCw3IEBAIHdlYmtpdC5vcmcvYi85MzU4OSBzdmcvZG9tL1NWR1Njcmlw
dEVsZW1lbnQvc2NyaXB0LWNoYW5nZS1leHRlcm5hbFJlc291cmNlc1JlcXVpCiAjIE5vIHNlcnZp
Y2Ugd29ya2VyIGltcGxlbWVudGF0aW9uIGZvciBXSzEKIGh0dHAvdGVzdHMvYXBwY2FjaGUvbWFp
bi1yZXNvdXJjZS1yZWRpcmVjdC13aXRoLXN3Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvY2Fj
aGUtc3RvcmFnZSBbIFNraXAgXQoraHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9t
Y2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc2VydmljZS13b3JrZXIuaHRtbCBbIFNraXAgXQog
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UgWyBTa2lwIF0KIGh0dHAvd3B0L2NhY2hlLXN0b3Jh
Z2UgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380348</attachid>
            <date>2019-10-07 13:11:41 -0700</date>
            <delta_ts>2019-10-07 13:41:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202590-20191007131140.patch</filename>
            <type>text/plain</type>
            <size>20871</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YzMzBlNGVmOGY1ZDRk
OTg1NTI0NDRhZjJhYjk4NmI1NzAwNjc5OC4uZTg1N2JiYzk1NzZmODM2ZGY4OTVmMzdlYzNjODA1
MjJlNDhjNzU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEwLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRE9NQ2FjaGUgc2hvdWxkIG5v
dCBwcmV2ZW50IHBhZ2VzIGZyb20gZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNTkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBBbGxvdyBET01DYWNo
ZSB0byBzdXNwZW5kIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUgdW5jb25kaXRpb25hbGx5LCBi
eQorICAgICAgICBhcHBlbmRpbmcgYWxsIHByb21pc2UgcmVzb2x1dGlvbnMgdG8gYSBTdXNwZW5k
YWJsZVRhc2tRdWV1ZS4gVGhpcyBndWFyYW50ZWVzCisgICAgICAgIHRoYXQgYW55IGFzeW5jaHJv
bm91cyBwcm9taXNlIHJlc29sdXRpb24gaXMgZGVsYXllZCB3aGlsZSBpbiB0aGUgcGFnZSBjYWNo
ZSwKKyAgICAgICAgdW50aWwgdGhlIHBhZ2UgZ2V0cyByZXN1bWVkLgorCisgICAgICAgIFRlc3Q6
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlz
ZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRPTUNhY2hlOjpET01DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNo
ZTo6bWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6Om1hdGNoQWxsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTUNhY2hlOjphZGRBbGwpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2Fj
aGU6OnB1dFdpdGhSZXNwb25zZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OnB1
dCk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTUNhY2hlOjprZXlzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpjYW5TdXNw
ZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hl
L0RPTUNhY2hlLmg6CisKIDIwMTktMTAtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBQZW5kaW5nSW1hZ2VCaXRtYXAgc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVy
aW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9E
T01DYWNoZS5jcHAKaW5kZXggZTZmNzAzOTlkYmI0Nzc1MDIyNjM2Yjc3ZmYyODAzM2FlYmRjMTZl
YS4uMDkwZTJhYWMyZWEzOWM4NzZlZWNhMTE0ZmRiZDMxNzlkNTA4MGFhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJKU0ZldGNoUmVzcG9uc2UuaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbUNodW5rLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlN1c3BlbmRh
YmxlVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5j
bHVkZSA8d3RmL1VSTC5oPgogCkBAIC00NCw2ICs0NSw3IEBAIERPTUNhY2hlOjpET01DYWNoZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCB1aW50NjRfdCBp
ZGVuCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKICAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQogICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBt
X3Rhc2tRdWV1ZShTdXNwZW5kYWJsZVRhc2tRdWV1ZTo6Y3JlYXRlKCZjb250ZXh0KSkKIHsKICAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKICAgICBtX2Nvbm5lY3Rpb24tPnJlZmVyZW5jZShtX2lkZW50
aWZpZXIpOwpAQCAtNTcsMTYgKzU5LDE4IEBAIERPTUNhY2hlOjp+RE9NQ2FjaGUoKQogCiB2b2lk
IERPTUNhY2hlOjptYXRjaChSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYg
b3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGRvTWF0Y2go
V1RGTW92ZShpbmZvKSwgV1RGTW92ZShvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXShFeGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlKj4mJiByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLT5y
ZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKCFyZXN1bHQucmV0dXJuVmFsdWUoKSkgewotICAgICAgICAg
ICAgcHJvbWlzZS0+cmVzb2x2ZSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIHByb21pc2UtPnJlc29sdmU8SURMSW50ZXJmYWNlPEZldGNoUmVzcG9uc2U+PigqcmVz
dWx0LnJldHVyblZhbHVlKCkpOworICAgIGRvTWF0Y2goV1RGTW92ZShpbmZvKSwgV1RGTW92ZShv
cHRpb25zKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPFJlZlB0cjxGZXRjaFJlc3BvbnNlPj4mJiBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAg
ICAgICAgcHJvbWlzZS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghcmVzdWx0
LnJldHVyblZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvbWlz
ZS0+cmVzb2x2ZTxJRExJbnRlcmZhY2U8RmV0Y2hSZXNwb25zZT4+KCpyZXN1bHQucmV0dXJuVmFs
dWUoKSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCkBAIC05MSw3ICs5NSw3IEBAIHZvaWQg
RE9NQ2FjaGU6OmRvTWF0Y2goUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYm
IG9wdGlvbnMsIE1hdGNoQ2FsCiAgICAgICAgICAgICBjYWxsYmFjayhudWxscHRyKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBjYWxsYmFjayhyZXN1bHQucmV0dXJu
VmFsdWUoKVswXS5yZXNwb25zZS0+Y2xvbmUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkucmVs
ZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOworICAgICAgICBjYWxsYmFjayhSZWZQdHI8RmV0Y2hS
ZXNwb25zZT4ocmVzdWx0LnJldHVyblZhbHVlKClbMF0ucmVzcG9uc2UtPmNsb25lKCpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKSk7CiAgICAgfSk7CiB9CiAK
QEAgLTEyMCwyMCArMTI0LDI0IEBAIHZvaWQgRE9NQ2FjaGU6Om1hdGNoQWxsKE9wdGlvbmFsPFJl
cXVlc3RJbmZvPiYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9uCiAKICAgICBpZiAo
IXJlcXVlc3QpIHsKICAgICAgICAgcmV0cmlldmVSZWNvcmRzKFVSTCB7IH0sIFt0aGlzLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikg
bXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgICAgICAgICAgICAg
cHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSkpOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShj
bG9uZVJlc3BvbnNlcyhtX3JlY29yZHMpKTsKKyAgICAgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1
ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IFdU
Rk1vdmUoZXhjZXB0aW9uKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhjZXB0
aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0
aW9uLnZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoY2xvbmVSZXNwb25zZXMobV9y
ZWNvcmRzKSk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgcXVlcnlDYWNoZShyZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUo
b3B0aW9ucyksIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8
VmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgcHJvbWlzZS5yZWplY3Qo
cmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGNsb25lUmVzcG9uc2VzKHJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKSkpOworICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkg
bXV0YWJsZSB7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAg
ICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKGNsb25lUmVzcG9uc2VzKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOwor
ICAgICAgICB9KTsKICAgICB9KTsKIH0KIApAQCAtMjM1LDExICsyNDMsMTUgQEAgdm9pZCBET01D
YWNoZTo6YWRkQWxsKFZlY3RvcjxSZXF1ZXN0SW5mbz4mJiBpbmZvcywgRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYgcHIKIAogICAgIGF1dG8gdGFza0hhbmRsZXIgPSBGZXRjaFRhc2tzSGFuZGxl
cjo6Y3JlYXRlKCp0aGlzLCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2Vw
dGlvbk9yPFZlY3RvcjxSZWNvcmQ+PiYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIHByb21pc2UucmVqZWN0KHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVU
YXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVj
dChXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KLSAgICAgICAgYmF0Y2hQdXRPcGVyYXRpb24ocmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1v
dmUocmVzdWx0KSk7CisgICAgICAgIGJhdGNoUHV0T3BlcmF0aW9uKHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMDIsMTUgKzMxNCwxOSBAQCB2b2lkIERP
TUNhY2hlOjphZGRBbGwoVmVjdG9yPFJlcXVlc3RJbmZvPiYmIGluZm9zLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJiBwcgogdm9pZCBET01DYWNoZTo6cHV0V2l0aFJlc3BvbnNlRGF0YShET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlLCBSZWY8RmV0Y2hSZXF1ZXN0PiYmIHJlcXVl
c3QsIFJlZjxGZXRjaFJlc3BvbnNlPiYmIHJlc3BvbnNlLCBFeGNlcHRpb25PcjxSZWZQdHI8U2hh
cmVkQnVmZmVyPj4mJiByZXNwb25zZUJvZHkpCiB7CiAgICAgaWYgKHJlc3BvbnNlQm9keS5oYXNF
eGNlcHRpb24oKSkgewotICAgICAgICBwcm9taXNlLnJlamVjdChyZXNwb25zZUJvZHkucmVsZWFz
ZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gcmVzcG9uc2VCb2R5LnJlbGVhc2VFeGNl
cHRpb24oKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUo
ZXhjZXB0aW9uKSk7CisgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
RE9NQ2FjaGVFbmdpbmU6OlJlc3BvbnNlQm9keSBib2R5OwogICAgIGlmIChhdXRvIGJ1ZmZlciA9
IHJlc3BvbnNlQm9keS5yZWxlYXNlUmV0dXJuVmFsdWUoKSkKICAgICAgICAgYm9keSA9IGJ1ZmZl
ci5yZWxlYXNlTm9uTnVsbCgpOwotICAgIGJhdGNoUHV0T3BlcmF0aW9uKHJlcXVlc3QuZ2V0KCks
IHJlc3BvbnNlLmdldCgpLCBXVEZNb3ZlKGJvZHkpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcHJvbWlz
ZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICBiYXRjaFB1dE9wZXJhdGlvbihyZXF1ZXN0
LmdldCgpLCByZXNwb25zZS5nZXQoKSwgV1RGTW92ZShib2R5KSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgbV90YXNrUXVldWUtPmVucXVl
dWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1
bHQpXSgpIG11dGFibGUgeworICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1
bHQpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTM3Myw4ICszODksMTAgQEAgdm9p
ZCBET01DYWNoZTo6cHV0KFJlcXVlc3RJbmZvJiYgaW5mbywgUmVmPEZldGNoUmVzcG9uc2U+JiYg
cmVzcG9uc2UsIERPTVByb21pc2UKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGJhdGNo
UHV0T3BlcmF0aW9uKHJlcXVlc3QuZ2V0KCksIHJlc3BvbnNlLmdldCgpLCByZXNwb25zZS0+Y29u
c3VtZUJvZHkoKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lk
PiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVz
dWx0KSk7CisgICAgYmF0Y2hQdXRPcGVyYXRpb24ocmVxdWVzdC5nZXQoKSwgcmVzcG9uc2UuZ2V0
KCksIHJlc3BvbnNlLT5jb25zdW1lQm9keSgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8dm9pZD4m
JiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0
YWJsZSB7CisgICAgICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAg
ICAgICB9KTsKICAgICB9KTsKIH0KIApAQCAtMzg5LDggKzQwNywxMCBAQCB2b2lkIERPTUNhY2hl
OjpyZW1vdmUoUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMs
IERPTVByb21pcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYmF0Y2hEZWxldGVPcGVy
YXRpb24ocmVxdWVzdE9yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKG9w
dGlvbnMpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPGJvb2w+JiYg
cmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQp
KTsKKyAgICBiYXRjaERlbGV0ZU9wZXJhdGlvbihyZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZVJl
dHVyblZhbHVlKCksIFdURk1vdmUob3B0aW9ucyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjxib29s
PiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Cisg
ICAgICAgIH0pOwogICAgIH0pOwogfQogCkBAIC00MTYsMjIgKzQzNiwyNiBAQCB2b2lkIERPTUNh
Y2hlOjprZXlzKE9wdGlvbmFsPFJlcXVlc3RJbmZvPiYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25z
JiYgb3B0aW9ucywgSwogCiAgICAgaWYgKCFyZXF1ZXN0KSB7CiAgICAgICAgIHJldHJpZXZlUmVj
b3JkcyhVUkwgeyB9LCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFs
PEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICAgICAgaWYgKGV4Y2Vw
dGlvbikgewotICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9u
LnZhbHVlKCkpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBwcm9taXNlLnJlc29sdmUoV1RGOjptYXAobV9yZWNvcmRzLCBjb3B5UmVxdWVzdFJl
ZikpOworICAgICAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gV1RGTW92ZShleGNlcHRpb24pXSgpIG11
dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgICAg
ICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSkpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHByb21pc2UucmVzb2x2ZShXVEY6Om1hcChtX3JlY29yZHMsIGNvcHlSZXF1ZXN0UmVmKSk7Cisg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBxdWVyeUNhY2hlKHJlcXVlc3QucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShvcHRpb25zKSwg
W3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxWZWN0b3I8Q2FjaGVTdG9y
YWdlUmVjb3JkPj4mJiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgIHF1ZXJ5Q2Fj
aGUocmVxdWVzdC5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
YXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFz
ayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAg
ICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKFdURjo6bWFwKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgY29weVJlcXVl
c3RSZWYpKTsKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShXVEY6Om1hcChyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCksIGNvcHlSZXF1ZXN0UmVmKSk7CisgICAgICAgIH0pOwogICAgIH0p
OwogfQogCkBAIC01ODYsNyArNjEwLDcgQEAgY29uc3QgY2hhciogRE9NQ2FjaGU6OmFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdAogCiBib29sIERPTUNhY2hlOjpjYW5TdXNwZW5kRm9yRG9jdW1l
bnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yZWNvcmRzLmlzRW1wdHkoKSAm
JiAhaGFzUGVuZGluZ0FjdGl2aXR5KCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCmluZGV4IGZkNGZkM2Y3YTIyYTE2ZjY4MWEy
OGUwYmEyZmQzMjA0MjQ5MWE4OGEuLmNmMjA2MWQyOGY5ZTgyZDE3YzI1NmQ4ZDcyYjVmMjM2MTUy
OWI3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgKQEAgLTI4LDEw
ICsyOCwxMiBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VSZWNvcmQuaCIKKyNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFN1c3BlbmRhYmxlVGFza1F1ZXVlOwogCiBj
bGFzcyBET01DYWNoZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUNhY2hlPiwgcHVibGlj
IEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CkBAIC01Niw3ICs1OCw3IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICB1aW50
NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKLSAgICB1
c2luZyBNYXRjaENhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPEZldGNo
UmVzcG9uc2UqPik+OworICAgIHVzaW5nIE1hdGNoQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKEV4
Y2VwdGlvbk9yPFJlZlB0cjxGZXRjaFJlc3BvbnNlPj4pPjsKICAgICB2b2lkIGRvTWF0Y2goUmVx
dWVzdEluZm8mJiwgQ2FjaGVRdWVyeU9wdGlvbnMmJiwgTWF0Y2hDYWxsYmFjayYmKTsKIAogICAg
IENhY2hlU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rp
b24uZ2V0KCk7IH0KQEAgLTkwLDYgKzkyLDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxDYWNo
ZVN0b3JhZ2VSZWNvcmQ+IG1fcmVjb3JkczsKICAgICBib29sIG1faXNTdG9wcGVkIHsgZmFsc2Ug
fTsKKyAgICBVbmlxdWVSZWY8U3VzcGVuZGFibGVUYXNrUXVldWU+IG1fdGFza1F1ZXVlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IDZiYWIwM2E5MmUwOWEyNmJjYTkyM2Q5MzRj
NmFhZDA0NmEzODczZTEuLmVkZjE2OWQ4NjUyNDVkZTU3OTc5Yzc3ODAxMTcyNmQ3NTVhNjA4NDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5j
cHAKQEAgLTYwLDEzICs2MCwxMyBAQCBzdGF0aWMgdm9pZCBkb1NlcXVlbnRpYWxNYXRjaChzaXpl
X3QgaW5kZXgsIFZlY3RvcjxSZWY8RE9NQ2FjaGU+PiYmIGNhY2hlcywgRE9NQwogICAgIH0KIAog
ICAgIGF1dG8mIGNhY2hlID0gY2FjaGVzW2luZGV4XS5nZXQoKTsKLSAgICBjYWNoZS5kb01hdGNo
KFdURk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFtjYWNoZXMgPSBXVEZNb3ZlKGNhY2hl
cyksIGluZm8sIG9wdGlvbnMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIGluZGV4XShFeGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlKj4mJiByZXN1bHQpIG11
dGFibGUgeworICAgIGNhY2hlLmRvTWF0Y2goV1RGTW92ZShpbmZvKSwgV1RGTW92ZShvcHRpb25z
KSwgW2NhY2hlcyA9IFdURk1vdmUoY2FjaGVzKSwgaW5mbywgb3B0aW9ucywgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgaW5kZXhdKGF1dG8mJiByZXN1bHQp
IG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAocmVzdWx0LnJldHVyblZhbHVl
KCkpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC5yZXR1cm5WYWx1ZSgp
KTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgZG9TZXF1ZW50
aWFsTWF0Y2goKytpbmRleCwgV1RGTW92ZShjYWNoZXMpLCBXVEZNb3ZlKGluZm8pLCBXVEZNb3Zl
KG9wdGlvbnMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC04NSw3ICs4NSw3IEBA
IHN0YXRpYyBpbmxpbmUgUmVmPERPTUNhY2hlPiBjb3B5Q2FjaGUoY29uc3QgUmVmPERPTUNhY2hl
PiYgY2FjaGUpCiAKIHZvaWQgRE9NQ2FjaGVTdG9yYWdlOjpkb1NlcXVlbnRpYWxNYXRjaChET01D
YWNoZTo6UmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBzdGFydFNlcXVlbnRpYWxNYXRj
aChXVEY6Om1hcChtX2NhY2hlcywgY29weUNhY2hlKSwgV1RGTW92ZShpbmZvKSwgV1RGTW92ZShv
cHRpb25zKSwgW3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRo
aXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8RmV0Y2hSZXNwb25z
ZSo+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBzdGFydFNlcXVlbnRpYWxNYXRjaChXVEY6Om1h
cChtX2NhY2hlcywgY29weUNhY2hlKSwgV1RGTW92ZShpbmZvKSwgV1RGTW92ZShvcHRpb25zKSwg
W3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAg
IGlmIChtX2lzU3RvcHBlZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM4NDQ1MTdmNzYzYTJmNzQ1MzI1ZmQwZTc4ZTVj
ZjJmOTU0MzM5N2QuLjA2Zjc3ODA2NTRmMGJhMWQxZmQ3MWI0NWI0ZTg5MDk4YzdhMzcwNWIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIERPTUNhY2hlIHNob3VsZCBub3QgcHJldmVudCBwYWdlcyBmcm9t
IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU5MAorCisgICAgICAgIFJldmlld2VkIGJ5IFlv
dWVubiBGYWJsZXQuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAg
ICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5k
aW5nLXByb21pc2UuaHRtbDogQWRkZWQuCisKIDIwMTktMTAtMDcgIEFsZXhleSBTaHZheWthICA8
c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFN5bmMgd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtb3ZlcmZsb3cgZnJvbSB1cHN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTcw
ODcyOTliOWVkMzc2YmY3YjY0MWE0YzU3Y2MyNjUyZTAyOTRhYS4uNjFlM2FjNWVkZmJlMzU1MmQ3
YzI5M2I3MjFjNTYwZTcxZjhlMWE1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTQsNiArNDU0
LDggQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1vcHRpb25zLWNyZWRlbnQKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvU2hhcmVkV29ya2VyIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyX2Jsb2JVcmwuaHRt
bCBbIFNraXAgXQogCitodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1w
ZW5kaW5nLXByb21pc2UuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCisKIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1iYXNpYy1ibG9iLmh0bWwg
WyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWRpcmVjdC5hbnkud29ya2VyLmh0
bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy94aHIvYWNjZXNzLWNvbnRyb2wtYW5kLXJlZGlyZWN0cy5odG0gWyBEdW1wSlNDb25z
b2xlTG9nSW5TdGRFcnIgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBl
bmRpbmctcHJvbWlzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UwZDM1YzQ3NmZmNWE4NTYx
NmQ4Yjg2NDk5ZDg1OWM2NDNhY2U4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBwZW5k
aW5nIERPTUNhY2hlIGFjdGl2aXR5IGdvZXMgaW50byB0aGUgcGFnZSBjYWNoZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2Vo
aWRlIC0gZW50ZXJpbmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIHdh
cyByZXN0b3JlZCBmcm9tIFBhZ2UgQ2FjaGUKK1BBU1MgQ2FjaGUuYWRkKCkgc3VjY2VlZGVkCitQ
QVNTICEhcmVzdG9yZWRGcm9tUGFnZUNhY2hlIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNh
Y2hlLXBlbmRpbmctcHJvbWlzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZTc2NWRmYmEwYmU1M2E1MmE1
NjEwMDhkNjFjNmNjMzg2ZmJjZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2UuaHRt
bApAQCAtMCwwICsxLDUzIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggcGVu
ZGluZyBET01DYWNoZSBhY3Rpdml0eSBnb2VzIGludG8gdGhlIHBhZ2UgY2FjaGUuJyk7Citqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKK2xldCByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsKKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICBkZWJ1ZygicGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSAr
ICJmcm9tIGNhY2hlIik7CisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgICB0ZXN0
UGFzc2VkKCJQYWdlIHdhcyByZXN0b3JlZCBmcm9tIFBhZ2UgQ2FjaGUiKTsKKyAgICAgICAgcmVz
dG9yZWRGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgICB9Cit9KTsKKworZnVuY3Rpb24gdHJ5Q2Fj
aGUoKQoreworICAgIGNhY2hlLmFkZCgncmVzb3VyY2VzL2JsYW5rLnR4dCcpLnRoZW4oKCkgPT4g
eworICAgICAgICB0ZXN0UGFzc2VkKCJDYWNoZS5hZGQoKSBzdWNjZWVkZWQiKTsKKyAgICAgICAg
c2hvdWxkQmVUcnVlKCIhIXJlc3RvcmVkRnJvbVBhZ2VDYWNoZSIpOworICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICB9LCAoZSkgPT4geworICAgICAgICB0cnlDYWNoZSgpOworICAgIH0pOwor
fQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVudCkg
eworICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90
ICIpICsgImVudGVyaW5nIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsKKyAg
ICAgICAgdGVzdEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8gZW50ZXIgdGhlIFBhZ2UgQ2FjaGUiKTsK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAgdHJ5Q2FjaGUoKTsKK30pOwor
CitvbmxvYWQgPSAoKSA9PiB7CisgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgIGNhY2hl
cy5vcGVuKCd0ZXN0JykudGhlbigoX2NhY2hlKSA9PiB7CisgICAgICAgICAgICBjYWNoZSA9IF9j
YWNoZTsKKyAgICAgICAgICAgIHRlc3RMaW5rLmNsaWNrKCk7CisgICAgICAgIH0pOworICAgIH0s
IDApOworfQorPC9zY3JpcHQ+Cis8YSBpZD0idGVzdExpbmsiIGhyZWY9InJlc291cmNlcy9wYWdl
LWNhY2hlLWhlbHBlci5odG1sIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+TGluazwvYT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azEvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azEvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA1ZTY0MDM4YWQ4ZTY3ZDY5YmM3MTM5YzliN2Q5MzcxYmU1N2I2Y2M3Li41NTcw
NDJhNTc1NjgxOTdhMDFhMWM4YmRlZjJlODMwNDQ2NTZmMDkxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMSw2ICsxMSw3IEBAIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtlcl9p
ZGwuaHRtbCBbIFNraXAgXQogaHR0cC93cHQvc2VydmljZS13b3JrZXJzIFsgU2tpcCBdCiBodHRw
L3dwdC9jYWNoZS1zdG9yYWdlIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2NhY2hlLXN0b3JhZ2UgWyBT
a2lwIF0KK2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmct
cHJvbWlzZS5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kgWyBTa2lwIF0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IGIwMGNiZDZlOTI4ZDAyNWJiMzZjMzY0ZjQwMTVhMzcxYTkyZTVhYjUuLmYzZjhiOGE3MTQ5ZTE5
ZjQ3ZWJlMWJhY2E1Zjc5MTJiYjVmMjJhNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI2Nyw2ICsyNjcsNyBAQCBodHRwL3dwdC9sb2Fk
aW5nL3JlZGlyZWN0LWhlYWRlcnMuaHRtbCBbIFNraXAgXQogIyBObyBzZXJ2aWNlIHdvcmtlciBp
bXBsZW1lbnRhdGlvbiBmb3IgV0sxCiBodHRwL3Rlc3RzL2FwcGNhY2hlL21haW4tcmVzb3VyY2Ut
cmVkaXJlY3Qtd2l0aC1zdy5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2NhY2hlLXN0b3JhZ2Ug
WyBTa2lwIF0KK2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRp
bmctcHJvbWlzZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2Zl
dGNoLWluLWNyb3NzLW9yaWdpbi1zZXJ2aWNlLXdvcmtlci5odG1sIFsgU2tpcCBdCiBodHRwL3Rl
c3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLXNhbWUtb3JpZ2luLXNlcnZpY2Utd29ya2Vy
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvd3B0L2NhY2hlLXN0b3JhZ2UgWyBTa2lwIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzIzYzQ5ZDA0MDExNjY0OTIz
MTEyZTYwOTQzYjJkZjAyNTc3NTU3NC4uM2Q1MWYzZmY1ZDI0NmVmM2U2MmNmMTllZmI2ZGIyMTll
MTM1NDMyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM3OTgsNiArMzc5OCw3IEBAIHdlYmtpdC5vcmcvYi85MzU4OSBzdmcvZG9tL1NWR1NjcmlwdEVs
ZW1lbnQvc2NyaXB0LWNoYW5nZS1leHRlcm5hbFJlc291cmNlc1JlcXVpCiAjIE5vIHNlcnZpY2Ug
d29ya2VyIGltcGxlbWVudGF0aW9uIGZvciBXSzEKIGh0dHAvdGVzdHMvYXBwY2FjaGUvbWFpbi1y
ZXNvdXJjZS1yZWRpcmVjdC13aXRoLXN3Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvY2FjaGUt
c3RvcmFnZSBbIFNraXAgXQoraHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2Fj
aGUtcGVuZGluZy1wcm9taXNlLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc2VydmljZS13b3JrZXIuaHRtbCBbIFNraXAgXQogaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UgWyBTa2lwIF0KIGh0dHAvd3B0L2NhY2hlLXN0b3JhZ2Ug
WyBTa2lwIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>