<?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>207777</bug_id>
          
          <creation_ts>2020-02-14 10:06:58 -0800</creation_ts>
          <short_desc>Set User-Agent in preconnect requests</short_desc>
          <delta_ts>2020-02-19 16:27:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="Ben Nham">nham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>nham</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1619059</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-02-14 10:06:58 -0800</bug_when>
    <thetext>When using an HTTPS proxy, CFNetwork will not reuse a preconnected socket if the User-Agent on the preconnect request doesn&apos;t match the User-Agent of the actual request (&lt;rdar://problem/59434166&gt;). To work around this, we should set the User-Agent on preconnect requests.

In addition, this patch moves the preconnect request from WebProcess::loadRequest in the WebProcess to WebProcessProxy::loadRequest in the UIProcess. This is because there can be long sync IPCs that last &gt;100 ms that occur before WebProcess::loadRequest even starts, e.g. https://bugs.webkit.org/show_bug.cgi?id=203165.

By making both changes, we see a ~2% improvement in PLT5 times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619060</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-14 10:07:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/59462497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619064</commentid>
    <comment_count>2</comment_count>
      <attachid>390781</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-02-14 10:10:42 -0800</bug_when>
    <thetext>Created attachment 390781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619284</commentid>
    <comment_count>3</comment_count>
      <attachid>390781</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-02-14 16:21:20 -0800</bug_when>
    <thetext>Comment on attachment 390781
Patch

Looking into API test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619768</commentid>
    <comment_count>4</comment_count>
      <attachid>390956</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-02-17 11:49:42 -0800</bug_when>
    <thetext>Created attachment 390956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619934</commentid>
    <comment_count>5</comment_count>
      <attachid>390956</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-02-17 15:24:10 -0800</bug_when>
    <thetext>Comment on attachment 390956
Patch

Changed patch to match existing behavior of not preconnecting to localhost and respecting the preconnect flag on WebsiteDataStoreConfiguration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619941</commentid>
    <comment_count>6</comment_count>
      <attachid>390956</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-17 15:34:22 -0800</bug_when>
    <thetext>Comment on attachment 390956
Patch

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

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:1509
&gt; +void WebProcessPool::preconnectToServer(PAL::SessionID sessionID, const URL&amp; url, const String&amp; userAgent)

I don&apos;t think we need this method on the WebProcessPool. Seems like the WebPageProxy could call a method on the networkprocessproxy directly.

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:617
&gt; +void WebProcessProxy::preconnectTo(const URL&amp; url, const String&amp; userAgent)

I don&apos;t think it makes much sense to have a preconnect method on the WebProcessProxy. It should likely go on the NetworkProcessProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620153</commentid>
    <comment_count>7</comment_count>
      <attachid>390956</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-18 08:45:05 -0800</bug_when>
    <thetext>Comment on attachment 390956
Patch

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

&gt; Source/WebKit/ChangeLog:18
&gt; +        Reviewed by NOBODY (OOPS!).

FYI, this usually comes *before* the change log description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620323</commentid>
    <comment_count>8</comment_count>
      <attachid>391091</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-02-18 14:21:13 -0800</bug_when>
    <thetext>Created attachment 391091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620328</commentid>
    <comment_count>9</comment_count>
      <attachid>391091</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-18 14:27:01 -0800</bug_when>
    <thetext>Comment on attachment 391091
Patch

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

r=me

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:1307
&gt; +    if (!url.isValid() || !url.protocolIsInHTTPFamily() || SecurityOrigin::isLocalHostOrLoopbackIPAddress(url.host()))

Why do we need this check here? You&apos;re already doing them at the call site.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:4236
&gt; +        if (!networkProcess-&gt;canSendMessage())

Should not be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620337</commentid>
    <comment_count>10</comment_count>
      <attachid>391095</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-02-18 14:49:38 -0800</bug_when>
    <thetext>Created attachment 391095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620340</commentid>
    <comment_count>11</comment_count>
      <attachid>391095</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-02-18 14:51:13 -0800</bug_when>
    <thetext>Comment on attachment 391095
Patch

Addressed comments and requested cq in the latest version of the patch.

(In reply to Chris Dumez from comment #9)
&gt; Comment on attachment 391091 [details]
&gt; &gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:1307
&gt; &gt; +    if (!url.isValid() || !url.protocolIsInHTTPFamily() || SecurityOrigin::isLocalHostOrLoopbackIPAddress(url.host()))
&gt; 
&gt; Why do we need this check here? You&apos;re already doing them at the call site.

Are we allowed to trust the IPC channel? That&apos;s the only reason I was doing the parameter sanity checks on both the client side in NetworkProcessProxy and on the server side in NetworkProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620544</commentid>
    <comment_count>12</comment_count>
      <attachid>391095</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-18 22:44:35 -0800</bug_when>
    <thetext>Comment on attachment 391095
Patch

Clearing flags on attachment: 391095

Committed r256912: &lt;https://trac.webkit.org/changeset/256912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620545</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-18 22:44:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620737</commentid>
    <comment_count>14</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2020-02-19 10:57:00 -0800</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/256912/webkit

broke 2 API tests on Mac Debug: 
TestWebKitAPI.WebKit.DownloadNavigationResponseFromMemoryCache
TestWebKitAPI.ContentFiltering.LazilyLoadPlatformFrameworks

stdio:
https://build.webkit.org/builders/Apple-Catalina-Debug-WK2-Tests/builds/2404/steps/run-api-tests/logs/stdio

I was able to reproduce this test locally by just running these two tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620937</commentid>
    <comment_count>15</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2020-02-19 16:27:27 -0800</bug_when>
    <thetext>Those are debug asserts that are firing because I forgot to avoid preconnecting to custom URL schemes, which should be fixed in https://bugs.webkit.org/show_bug.cgi?id=207964.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390781</attachid>
            <date>2020-02-14 10:10:42 -0800</date>
            <delta_ts>2020-02-17 11:49:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207777-20200214101042.patch</filename>
            <type>text/plain</type>
            <size>11077</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmNTJmYTMxZjRiYmIwMzgx
MDkzY2ZhZjFhNjE2OWU4NjA3M2Y3MDcuLjZmMWI0MGZiNmZkNWMxMjY3NDdhZDZiNDVhNDUxZmRl
YjZmZDhjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjAtMDItMTQgIEJlbiBOaGFt
ICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFVzZXItQWdlbnQgaW4gcHJlY29ubmVj
dCByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA3Nzc3CisKKyAgICAgICAgV2hlbiB1c2luZyBhbiBIVFRQUyBwcm94eSwgQ0ZOZXR3b3Jr
IHdpbGwgbm90IHJldXNlIGEgcHJlY29ubmVjdGVkIHNvY2tldCBpZiB0aGUgVXNlci1BZ2VudAor
ICAgICAgICBvbiB0aGUgcHJlY29ubmVjdCByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2ggdGhlIFVzZXIt
QWdlbnQgb2YgdGhlIGFjdHVhbCByZXF1ZXN0CisgICAgICAgICg8cmRhcjovL3Byb2JsZW0vNTk0
MzQxNjY+KS4gVG8gd29yayBhcm91bmQgdGhpcywgdGhpcyBzZXRzIHRoZSBVc2VyLUFnZW50IG9u
IHByZWNvbm5lY3QKKyAgICAgICAgcmVxdWVzdHMuCisKKyAgICAgICAgSW4gYWRkaXRpb24sIHRo
aXMgcGF0Y2ggbW92ZXMgdGhlIHByZWNvbm5lY3QgcmVxdWVzdCBmcm9tIFdlYlBhZ2U6OmxvYWRS
ZXF1ZXN0IGluIHRoZQorICAgICAgICBXZWJQcm9jZXNzIHRvIFdlYlBhZ2VQcm94eTo6bG9hZFJl
cXVlc3QgaW4gdGhlIFVJUHJvY2Vzcy4gVGhpcyBpcyBiZWNhdXNlIHRoZXJlIGNhbiBiZQorICAg
ICAgICBsb25nIHN5bmMgSVBDcyB0aGF0IGxhc3QgPjEwMCBtcyB0aGF0IG9jY3VyIGJlZm9yZSBX
ZWJQcm9jZXNzOjpsb2FkUmVxdWVzdCBldmVuIHN0YXJ0cywKKyAgICAgICAgZS5nLiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTY1LgorCisgICAgICAgIEJ5IG1h
a2luZyBib3RoIGNoYW5nZXMsIHdlIHNlZSBhIH4yJSBpbXByb3ZlbWVudCBpbiBQTFQ1IHRpbWVz
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpwcmVjb25uZWN0VG9TZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnByZWNvbm5lY3RUbyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
YWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFJlcXVlc3QpOgor
CiAyMDIwLTAyLTE0ICBBbGJlcnRvIEdhcmNpYSAgPGJlcnRvQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW1dQRV0gV1BFUXRWaWV3LmggaW5jbHVkZXMgdGhlIHVuaW5zdGFsbGVkIFdQRVF0Vmlld0Jh
Y2tlbmQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAppbmRleCAyNGZjNWU0NTk0NWM2ZjZhNWRkMzk0MjQ1YjJiMGJlYTk4ZTU2N2YxLi4yNTg0
NmM1NDZjNjFkYjcxMzRkMWRmMTU0ODNmNmQ0NDIwM2Q1NzRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMTI5OSw2ICsxMjk5LDMw
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlY29ubmVjdFRvKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSkKK3sKKyNpZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCisgICAgaWYgKCF1cmwu
aXNWYWxpZCgpIHx8ICF1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAgICBwYXJhbWV0
ZXJzLnJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QgeyB1cmwgfTsKKyAgICBpZiAoIXVzZXJBZ2Vu
dC5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IHdlIGFkZCB1c2VyLWFnZW50IHRvIHRo
ZSBwcmVjb25uZWN0IHJlcXVlc3QgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHByZWNvbm5lY3QKKyAg
ICAgICAgLy8gZ2V0cyB0aHJvd24gYXdheSBieSBDRk5ldHdvcmsgd2hlbiB1c2luZyBhbiBIVFRQ
UyBwcm94eSAoPHJkYXI6Ly9wcm9ibGVtLzU5NDM0MTY2PikuCisgICAgICAgIHBhcmFtZXRlcnMu
cmVxdWVzdC5zZXRIVFRQVXNlckFnZW50KHVzZXJBZ2VudCk7CisgICAgfQorICAgIHBhcmFtZXRl
cnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKKyAg
ICBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5ID0gUHJlY29ubmVjdE9ubHk6OlllczsK
KworICAgIG5ldyBQcmVjb25uZWN0VGFzaygqdGhpcywgc2Vzc2lvbklELCBXVEZNb3ZlKHBhcmFt
ZXRlcnMpLCBbXShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgeyB9KTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKHVybCk7CisgICAgVU5VU0VEX1BBUkFNKHVzZXJBZ2VudCk7CisgICAg
VU5VU0VEX1BBUkFNKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKyNlbmRpZgorfQorCiBib29s
IE5ldHdvcmtQcm9jZXNzOjpzZXNzaW9uSXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zZXNzaW9uc0NvbnRyb2xs
ZWRCeUF1dG9tYXRpb24uY29udGFpbnMoc2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA2NjY1YWZkYjg4ODg3YmZmMTQ0ZGM5
YzdjNmU3YjhlNzQ3ZjhmMTgwLi5iMjUyZjJmYTcwZmIyZDNhMGE2NDdjMTQxODRkZTdlN2E3MzY4
YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CkBAIC0yNjksNiArMjY5LDggQEAgcHVibGljOgogICAgIHVzaW5nIENhY2hlU3RvcmFnZVJvb3RQ
YXRoQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT47CiAgICAgdm9p
ZCBjYWNoZVN0b3JhZ2VSb290UGF0aChQQUw6OlNlc3Npb25JRCwgQ2FjaGVTdG9yYWdlUm9vdFBh
dGhDYWxsYmFjayYmKTsKIAorICAgIHZvaWQgcHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSk7CisKICAgICB2b2lkIHNldFNlc3Npb25Jc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24oUEFMOjpT
ZXNzaW9uSUQsIGJvb2wpOwogICAgIGJvb2wgc2Vzc2lvbklzQ29udHJvbGxlZEJ5QXV0b21hdGlv
bihQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDQzMzQ0N2JhMTRl
NDMwMmU5Nzg1MDdmYjUxMmU5OTMwOTZjZWQ0YzIuLmFmNzA4YWU0ZmQzNWIxMjdhNmI5OGIwNjFm
YWY2MGVmODYyYzdjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtODAsNiArODAsOCBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUHJlcGFyZVRvU3VzcGVu
ZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAoKSBBc3luYwogICAgIFByb2Nlc3NEaWRS
ZXN1bWUoKQogCisgICAgUHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJM
IHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwogI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgQ2xlYXJQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9t
YWluKSAtPiAoKSBBc3luYwogICAgIENsZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+
ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAx
NjNiOGY3MDE0MmIyNTU5NmE0M2Q1MjYyMjMzMDhjOTA0NWViYmUxLi5jZWUxZWUwODMxZjhmNGJl
MmY3YTlkMzQyMjc5NzllOWNiNWUxZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTEyODksNiArMTI4OSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2Fk
UmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
CiAKICAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAorICAg
IHByb2Nlc3MtPnByZWNvbm5lY3RUbyh1cmwsIHVzZXJBZ2VudCgpKTsKKwogI2lmIEhBVkUoU0FO
REJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX0FVRElUX1RPS0VOKQogICAg
IGlmICghcHJvY2Vzcy0+aXNMYXVuY2hpbmcoKSB8fCAhdXJsLmlzTG9jYWxGaWxlKCkpCiAgICAg
ICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRSZXF1ZXN0KGxvYWRQYXJh
bWV0ZXJzKSwgd2ViUGFnZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCBiZmI1NGJhM2Q2Mjg4OTNlMDE3NTYzN2IxYTJkNTBhOGEwYWRmNjdkLi44
ZTU3MzdmMjUyNmQ3MTE2YzI1MDViZTM4ZmYwN2MyODMxMTg5ZTQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xNTA1LDYgKzE1MDUsMTMgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkKICAgICBzZW5k
VG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkNsZWFyUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcygpKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJlY29ubmVjdFRvU2VydmVy
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50KQoreworICAgIGlmICghdXJsLmlzVmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJ
bkhUVFBGYW1pbHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByZWNvbm5lY3RUbyhzZXNzaW9uSUQs
IHVybCwgdXNlckFnZW50LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKSwgMCk7Cit9CisK
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KGNv
bnN0IFN0cmluZyYgdXJsU2NoZW1lKQogewogICAgIG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0VtcHR5
RG9jdW1lbnQuYWRkKHVybFNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAppbmRleCBmY2QyODVmZmI0NWUxYjgzMzY0YjM1ZTkzMGM0NmQzYzg2NjEzNWVmLi45
ZmM4NTEzYTZjNDNkOGJlYzczNzE4NmYwZTc1MmFmNTllZTE5N2YyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTI3MCw3ICsyNzAsOSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wpOwogICAgIHZv
aWQgc2V0U2hvdWxkVXNlRm9udFNtb290aGluZyhib29sKTsKLSAgICAKKworICAgIHZvaWQgcHJl
Y29ubmVjdFRvU2VydmVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
KTsKKwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKGNvbnN0IFN0cmluZyYp
OwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBv
bGljeShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCmluZGV4IDgyYzdjYjBiZTQ2M2ZjZDkxMjE3MTU1YTVmNzI0ZThlMjY5ZjRlNDku
LjIwZWIzN2RlYjMyOGYyOWM0ZTE2ODE0NTEwOWJmMDY4MmJlN2M3M2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjE0LDYgKzYxNCwxMiBAQCBi
b29sIFdlYlByb2Nlc3NQcm94eTo6Y2hlY2tVUkxSZWNlaXZlZEZyb21XZWJQcm9jZXNzKGNvbnN0
IFVSTCYgdXJsKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJveHk6
OnByZWNvbm5lY3RUbyhjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCit7
CisgICAgaWYgKG1fcHJvY2Vzc1Bvb2wgJiYgbV93ZWJzaXRlRGF0YVN0b3JlKQorICAgICAgICBt
X3Byb2Nlc3NQb29sLT5wcmVjb25uZWN0VG9TZXJ2ZXIobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNz
aW9uSUQoKSwgdXJsLCB1c2VyQWdlbnQpOworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogYm9v
bCBXZWJQcm9jZXNzUHJveHk6OmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAyMTU4YTJiOTAxMTgwZmIy
MmY5YmQzMzdkMWQ3MzUwYzg5NDM3N2Q2Li42MzZjMTQ5MDlhOWExN2ZhZWE5MWFmMjAxOWUxMGQ2
NTRmOGU1NGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApA
QCAtMTk0LDYgKzE5NCw4IEBAIHB1YmxpYzoKICAgICBib29sIGNoZWNrVVJMUmVjZWl2ZWRGcm9t
V2ViUHJvY2Vzcyhjb25zdCBTdHJpbmcmKTsKICAgICBib29sIGNoZWNrVVJMUmVjZWl2ZWRGcm9t
V2ViUHJvY2Vzcyhjb25zdCBVUkwmKTsKIAorICAgIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyAmKTsKKwogICAgIHN0YXRpYyBib29sIGZ1bGxLZXlib2FyZEFjY2Vz
c0VuYWJsZWQoKTsKIAogICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0
ZURhdGEpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBjNDdiODc2NTMzNDI4YmNkMTBjMDUwNTlmMTgz
Yzc3NTVmZGRmNjRkLi5hMzU3ZTIyYThmZmJlMmNjNDQwNmNlNTgxZWRiNWI1YWVkYWE2MmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCkBAIC03MjQsNiArNzI0LDEzIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OnByZWNvbm5lY3RUbyhXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJQYWdl
CiAKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogICAgIHBh
cmFtZXRlcnMucmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7CisgICAgaWYgKHBhcmFtZXRlcnMu
cmVxdWVzdC5odHRwVXNlckFnZW50KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiB3
ZSBhZGQgdXNlci1hZ2VudCB0byB0aGUgcHJlY29ubmVjdCByZXF1ZXN0IGJlY2F1c2Ugb3RoZXJ3
aXNlIHRoZSBwcmVjb25uZWN0CisgICAgICAgIC8vIGdldHMgdGhyb3duIGF3YXkgYnkgQ0ZOZXR3
b3JrIHdoZW4gdXNpbmcgYW4gSFRUUFMgcHJveHkgKDxyZGFyOi8vcHJvYmxlbS81OTQzNDE2Nj4p
LgorICAgICAgICBTdHJpbmcgd2ViUGFnZVVzZXJBZ2VudCA9IHdlYlBhZ2UudXNlckFnZW50KHBh
cmFtZXRlcnMucmVxdWVzdC51cmwoKSk7CisgICAgICAgIGlmICghd2ViUGFnZVVzZXJBZ2VudC5p
c0VtcHR5KCkpCisgICAgICAgICAgICBwYXJhbWV0ZXJzLnJlcXVlc3Quc2V0SFRUUFVzZXJBZ2Vu
dCh3ZWJQYWdlVXNlckFnZW50KTsKKyAgICB9CiAgICAgcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJ
RCA9IHdlYlBhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpOwogICAgIHBhcmFtZXRlcnMud2Vi
UGFnZUlEID0gd2ViUGFnZS5pZGVudGlmaWVyKCk7CiAgICAgcGFyYW1ldGVycy53ZWJGcmFtZUlE
ID0gd2ViRnJhbWUuZnJhbWVJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCBhYTk5ZTlkYzBiMDBkNjUyNThmM2NlNDg0ZGFiNWE5MDQ2MzBk
YjdjLi4xZmUwODVkMTczN2Q2OGQ3OGFhMzFiZDkyMjc3NTY4MzQxOTUxOGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTU3MiwxMSArMTU3
Miw2IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3QoTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFy
YW1ldGVycykKIHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcjsKIAot
ICAgIGlmIChsb2FkUGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1p
bHkoKSAmJiAhU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxIb3N0T3JMb29wYmFja0lQQWRkcmVzcyhs
b2FkUGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpLmhvc3QoKSkpIHsKLSAgICAgICAgUmVzb3VyY2VS
ZXF1ZXN0IHVybE9ubHlQcmVjb25uZWN0UmVxdWVzdCB7IGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3Qu
dXJsKCkgfTsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRl
Z3koKS5wcmVjb25uZWN0VG8oV1RGTW92ZSh1cmxPbmx5UHJlY29ubmVjdFJlcXVlc3QpLCAqdGhp
cywgKm1fbWFpbkZyYW1lLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKTsKLSAgICB9Ci0K
ICAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uSUQgPSBsb2FkUGFyYW1ldGVycy5uYXZpZ2F0aW9uSUQ7
CiAgICAgbV9wZW5kaW5nV2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZShsb2FkUGFyYW1ldGVycy53
ZWJzaXRlUG9saWNpZXMpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390956</attachid>
            <date>2020-02-17 11:49:42 -0800</date>
            <delta_ts>2020-02-18 14:21:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207777-20200217114941.patch</filename>
            <type>text/plain</type>
            <size>11828</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNjZmMWU3YTlhZDlmNzc1
MzZjODZiMzk0YTVmYWY2NDFmNWViMTkuLjAwODM1ODkxNjA0ZDdmNTI1ZDc1NTZlYzc5YmFhZDM3
MTljYjRmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjAtMDItMTQgIEJlbiBOaGFt
ICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFVzZXItQWdlbnQgaW4gcHJlY29ubmVj
dCByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA3Nzc3CisKKyAgICAgICAgV2hlbiB1c2luZyBhbiBIVFRQUyBwcm94eSwgQ0ZOZXR3b3Jr
IHdpbGwgbm90IHJldXNlIGEgcHJlY29ubmVjdGVkIHNvY2tldCBpZiB0aGUgVXNlci1BZ2VudAor
ICAgICAgICBvbiB0aGUgcHJlY29ubmVjdCByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2ggdGhlIFVzZXIt
QWdlbnQgb2YgdGhlIGFjdHVhbCByZXF1ZXN0CisgICAgICAgICg8cmRhcjovL3Byb2JsZW0vNTk0
MzQxNjY+KS4gVG8gd29yayBhcm91bmQgdGhpcywgdGhpcyBzZXRzIHRoZSBVc2VyLUFnZW50IG9u
IHByZWNvbm5lY3QKKyAgICAgICAgcmVxdWVzdHMuCisKKyAgICAgICAgSW4gYWRkaXRpb24sIHRo
aXMgcGF0Y2ggbW92ZXMgdGhlIHByZWNvbm5lY3QgcmVxdWVzdCBmcm9tIFdlYlBhZ2U6OmxvYWRS
ZXF1ZXN0IGluIHRoZQorICAgICAgICBXZWJQcm9jZXNzIHRvIFdlYlBhZ2VQcm94eTo6bG9hZFJl
cXVlc3QgaW4gdGhlIFVJUHJvY2Vzcy4gVGhpcyBpcyBiZWNhdXNlIHRoZXJlIGNhbiBiZQorICAg
ICAgICBsb25nIHN5bmMgSVBDcyB0aGF0IGxhc3QgPjEwMCBtcyB0aGF0IG9jY3VyIGJlZm9yZSBX
ZWJQcm9jZXNzOjpsb2FkUmVxdWVzdCBldmVuIHN0YXJ0cywKKyAgICAgICAgZS5nLiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTY1LgorCisgICAgICAgIEJ5IG1h
a2luZyBib3RoIGNoYW5nZXMsIHdlIHNlZSBhIH4yJSBpbXByb3ZlbWVudCBpbiBQTFQ1IHRpbWVz
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpwcmVjb25uZWN0VG9TZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnByZWNvbm5lY3RUbyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
YWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFJlcXVlc3QpOgor
CiAyMDIwLTAyLTE0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIGZpeCB0aGUgaU9TIDEzLjEgYnVpbGQgYWZ0ZXIgcjI1NjUyMApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRl
eCA0MjJjZTllZWEyZmMxOWVlMDZkMGNjNDNlNDI5ZWI5MDE2Y2ZlMzYwLi41ZDFhZGNkNTk4M2Ez
MzI2ZDU0YjgwNjY3MGFmMWQ2MGUwMjEzYjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VRdW90
YU1hbmFnZXIuaD4KICNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgpAQCAtMTMwMiw2ICsxMzAz
LDMwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlY29ubmVjdFRv
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSkKK3sKKyNpZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCisgICAgaWYgKCF1
cmwuaXNWYWxpZCgpIHx8ICF1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpIHx8IFNlY3VyaXR5
T3JpZ2luOjppc0xvY2FsSG9zdE9yTG9vcGJhY2tJUEFkZHJlc3ModXJsLmhvc3QoKSkpCisgICAg
ICAgIHJldHVybjsKKworICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworICAg
IHBhcmFtZXRlcnMucmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCB7IHVybCB9OworICAgIGlmICgh
dXNlckFnZW50LmlzRW1wdHkoKSkgeworICAgICAgICAvLyBGSVhNRTogd2UgYWRkIHVzZXItYWdl
bnQgdG8gdGhlIHByZWNvbm5lY3QgcmVxdWVzdCBiZWNhdXNlIG90aGVyd2lzZSB0aGUgcHJlY29u
bmVjdAorICAgICAgICAvLyBnZXRzIHRocm93biBhd2F5IGJ5IENGTmV0d29yayB3aGVuIHVzaW5n
IGFuIEhUVFBTIHByb3h5ICg8cmRhcjovL3Byb2JsZW0vNTk0MzQxNjY+KS4KKyAgICAgICAgcGFy
YW1ldGVycy5yZXF1ZXN0LnNldEhUVFBVc2VyQWdlbnQodXNlckFnZW50KTsKKyAgICB9CisgICAg
cGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5OworICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0T25s
eTo6WWVzOworCisgICAgbmV3IFByZWNvbm5lY3RUYXNrKCp0aGlzLCBzZXNzaW9uSUQsIFdURk1v
dmUocGFyYW1ldGVycyksIFtdKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSB7IH0pOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKKyAgICBVTlVTRURfUEFSQU0odXNlckFnZW50
KTsKKyAgICBVTlVTRURfUEFSQU0oc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworI2VuZGlmCit9
CisKIGJvb2wgTmV0d29ya1Byb2Nlc3M6OnNlc3Npb25Jc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdAogewogICAgIHJldHVybiBtX3Nlc3Npb25z
Q29udHJvbGxlZEJ5QXV0b21hdGlvbi5jb250YWlucyhzZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDY2NjVhZmRiODg4ODdi
ZmYxNDRkYzljN2M2ZTdiOGU3NDdmOGYxODAuLmIyNTJmMmZhNzBmYjJkM2EwYTY0N2MxNDE4NGRl
N2U3YTczNjhjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKQEAgLTI2OSw2ICsyNjksOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQ2FjaGVTdG9y
YWdlUm9vdFBhdGhDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPjsK
ICAgICB2b2lkIGNhY2hlU3RvcmFnZVJvb3RQYXRoKFBBTDo6U2Vzc2lvbklELCBDYWNoZVN0b3Jh
Z2VSb290UGF0aENhbGxiYWNrJiYpOwogCisgICAgdm9pZCBwcmVjb25uZWN0VG8oUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5KTsKKwogICAgIHZvaWQgc2V0U2Vzc2lvbklzQ29udHJvbGxlZEJ5QXV0b21hdGlv
bihQQUw6OlNlc3Npb25JRCwgYm9vbCk7CiAgICAgYm9vbCBzZXNzaW9uSXNDb250cm9sbGVkQnlB
dXRvbWF0aW9uKFBBTDo6U2Vzc2lvbklEKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNDMz
NDQ3YmExNGU0MzAyZTk3ODUwN2ZiNTEyZTk5MzA5NmNlZDRjMi4uYWY3MDhhZTRmZDM1YjEyN2E2
Yjk4YjA2MWZhZjYwZWY4NjJjN2MyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC04MCw2ICs4MCw4IEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBQcmVwYXJl
VG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpIEFzeW5jCiAgICAgUHJv
Y2Vzc0RpZFJlc3VtZSgpCiAKKyAgICBQcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBDbGVhclByZXZhbGVudFJlc291cmNl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVz
b3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCiAgICAgQ2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURv
bWFpbikgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDE2M2I4ZjcwMTQyYjI1NTk2YTQzZDUyNjIyMzMwOGM5MDQ1ZWJiZTEuLmNlZTFlZTA4
MzFmOGY0YmUyZjdhOWQzNDIyNzk3OWU5Y2I1ZTFkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTI4OSw2ICsxMjg5LDggQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXMKIAogICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMp
OwogCisgICAgcHJvY2Vzcy0+cHJlY29ubmVjdFRvKHVybCwgdXNlckFnZW50KCkpOworCiAjaWYg
SEFWRShTQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfQVVESVRfVE9L
RU4pCiAgICAgaWYgKCFwcm9jZXNzLT5pc0xhdW5jaGluZygpIHx8ICF1cmwuaXNMb2NhbEZpbGUo
KSkKICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3Qo
bG9hZFBhcmFtZXRlcnMpLCB3ZWJQYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGJmYjU0YmEzZDYyODg5M2UwMTc1NjM3YjFhMmQ1MGE4YTBh
ZGY2N2QuLmY5OTY4Yzc4NjQzNzBiNDYyOTgzOGNkNDQwZDdlODI0NWQ2ZjY2NzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTkzLDYgKzkzLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5o
PgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgpAQCAtMTUwNSw2ICsxNTA2LDEzIEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpCiAgICAgc2VuZFRv
QWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpDbGVhclJlc291cmNlTG9hZFN0YXRp
c3RpY3MoKSk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByZWNvbm5lY3RUb1NlcnZlcihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCkKK3sKKyAgICBpZiAoIXVybC5pc1ZhbGlkKCkgfHwgIXVybC5wcm90b2NvbElzSW5I
VFRQRmFtaWx5KCkgfHwgU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxIb3N0T3JMb29wYmFja0lQQWRk
cmVzcyh1cmwuaG9zdCgpKSkKKyAgICAgICAgcmV0dXJuOworICAgIGVuc3VyZU5ldHdvcmtQcm9j
ZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByZWNvbm5lY3RUbyhzZXNzaW9u
SUQsIHVybCwgdXNlckFnZW50LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKSwgMCk7Cit9
CisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50
KGNvbnN0IFN0cmluZyYgdXJsU2NoZW1lKQogewogICAgIG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0Vt
cHR5RG9jdW1lbnQuYWRkKHVybFNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaAppbmRleCBmY2QyODVmZmI0NWUxYjgzMzY0YjM1ZTkzMGM0NmQzYzg2NjEzNWVm
Li45ZmM4NTEzYTZjNDNkOGJlYzczNzE4NmYwZTc1MmFmNTllZTE5N2YyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTI3MCw3ICsyNzAsOSBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wpOwogICAg
IHZvaWQgc2V0U2hvdWxkVXNlRm9udFNtb290aGluZyhib29sKTsKLSAgICAKKworICAgIHZvaWQg
cHJlY29ubmVjdFRvU2VydmVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmKTsKKwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoY29uc3Qg
U3RyaW5nJik7CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0
eVBvbGljeShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IDgyYzdjYjBiZTQ2M2ZjZDkxMjE3MTU1YTVmNzI0ZThlMjY5ZjRl
NDkuLjFlYzVhNzY1NzIyNzA5YjEzNTNhYjA5ZWFiYzBjZDYzZjFkZjE3N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjE0LDYgKzYxNCwxMiBA
QCBib29sIFdlYlByb2Nlc3NQcm94eTo6Y2hlY2tVUkxSZWNlaXZlZEZyb21XZWJQcm9jZXNzKGNv
bnN0IFVSTCYgdXJsKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OnByZWNvbm5lY3RUbyhjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQp
Cit7CisgICAgaWYgKG1fcHJvY2Vzc1Bvb2wgJiYgbV93ZWJzaXRlRGF0YVN0b3JlICYmIG1fd2Vi
c2l0ZURhdGFTdG9yZS0+Y29uZmlndXJhdGlvbigpLmFsbG93c1NlcnZlclByZWNvbm5lY3QoKSkK
KyAgICAgICAgbV9wcm9jZXNzUG9vbC0+cHJlY29ubmVjdFRvU2VydmVyKG1fd2Vic2l0ZURhdGFT
dG9yZS0+c2Vzc2lvbklEKCksIHVybCwgdXNlckFnZW50KTsKK30KKwogI2lmICFQTEFURk9STShD
T0NPQSkKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMjE1OGEy
YjkwMTE4MGZiMjJmOWJkMzM3ZDFkNzM1MGM4OTQzNzdkNi4uNjM2YzE0OTA5YTlhMTdmYWVhOTFh
ZjIwMTllMTBkNjU0ZjhlNTRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKQEAgLTE5NCw2ICsxOTQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjaGVja1VSTFJl
Y2VpdmVkRnJvbVdlYlByb2Nlc3MoY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBjaGVja1VSTFJl
Y2VpdmVkRnJvbVdlYlByb2Nlc3MoY29uc3QgVVJMJik7CiAKKyAgICB2b2lkIHByZWNvbm5lY3RU
byhjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcgJik7CisKICAgICBzdGF0aWMgYm9vbCBmdWxsS2V5
Ym9hcmRBY2Nlc3NFbmFibGVkKCk7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpT
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYnNpdGVEYXRhKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggYzQ3Yjg3NjUzMzQyOGJjZDEw
YzA1MDU5ZjE4M2M3NzU1ZmRkZjY0ZC4uYTM1N2UyMmE4ZmZiZTJjYzQ0MDZjZTU4MWVkYjViNWFl
ZGFhNjJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNzI0LDYgKzcyNCwxMyBAQCB2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpwcmVjb25uZWN0VG8oV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgV2ViUGFnZQogCiAgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVy
czsKICAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOworICAgIGlmIChw
YXJhbWV0ZXJzLnJlcXVlc3QuaHR0cFVzZXJBZ2VudCgpLmlzRW1wdHkoKSkgeworICAgICAgICAv
LyBGSVhNRTogd2UgYWRkIHVzZXItYWdlbnQgdG8gdGhlIHByZWNvbm5lY3QgcmVxdWVzdCBiZWNh
dXNlIG90aGVyd2lzZSB0aGUgcHJlY29ubmVjdAorICAgICAgICAvLyBnZXRzIHRocm93biBhd2F5
IGJ5IENGTmV0d29yayB3aGVuIHVzaW5nIGFuIEhUVFBTIHByb3h5ICg8cmRhcjovL3Byb2JsZW0v
NTk0MzQxNjY+KS4KKyAgICAgICAgU3RyaW5nIHdlYlBhZ2VVc2VyQWdlbnQgPSB3ZWJQYWdlLnVz
ZXJBZ2VudChwYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkpOworICAgICAgICBpZiAoIXdlYlBhZ2VV
c2VyQWdlbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgcGFyYW1ldGVycy5yZXF1ZXN0LnNldEhU
VFBVc2VyQWdlbnQod2ViUGFnZVVzZXJBZ2VudCk7CisgICAgfQogICAgIHBhcmFtZXRlcnMud2Vi
UGFnZVByb3h5SUQgPSB3ZWJQYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKTsKICAgICBwYXJh
bWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UuaWRlbnRpZmllcigpOwogICAgIHBhcmFtZXRlcnMu
d2ViRnJhbWVJRCA9IHdlYkZyYW1lLmZyYW1lSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYWE5OWU5ZGMwYjAwZDY1MjU4ZjNjZTQ4NGRh
YjVhOTA0NjMwZGI3Yy4uMWZlMDg1ZDE3MzdkNjhkNzhhYTMxYmQ5MjI3NzU2ODM0MTk1MThlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1
NzIsMTEgKzE1NzIsNiBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0KExvYWRQYXJhbWV0ZXJz
JiYgbG9hZFBhcmFtZXRlcnMpCiB7CiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0
b3BwZXI7CiAKLSAgICBpZiAobG9hZFBhcmFtZXRlcnMucmVxdWVzdC51cmwoKS5wcm90b2NvbElz
SW5IVFRQRmFtaWx5KCkgJiYgIVNlY3VyaXR5T3JpZ2luOjppc0xvY2FsSG9zdE9yTG9vcGJhY2tJ
UEFkZHJlc3MobG9hZFBhcmFtZXRlcnMucmVxdWVzdC51cmwoKS5ob3N0KCkpKSB7Ci0gICAgICAg
IFJlc291cmNlUmVxdWVzdCB1cmxPbmx5UHJlY29ubmVjdFJlcXVlc3QgeyBsb2FkUGFyYW1ldGVy
cy5yZXF1ZXN0LnVybCgpIH07Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxv
YWRlclN0cmF0ZWd5KCkucHJlY29ubmVjdFRvKFdURk1vdmUodXJsT25seVByZWNvbm5lY3RSZXF1
ZXN0KSwgKnRoaXMsICptX21haW5GcmFtZSwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSk7
Ci0gICAgfQotCiAgICAgbV9wZW5kaW5nTmF2aWdhdGlvbklEID0gbG9hZFBhcmFtZXRlcnMubmF2
aWdhdGlvbklEOwogICAgIG1fcGVuZGluZ1dlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUobG9hZFBh
cmFtZXRlcnMud2Vic2l0ZVBvbGljaWVzKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391091</attachid>
            <date>2020-02-18 14:21:13 -0800</date>
            <delta_ts>2020-02-18 14:49:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207777-20200218142112.patch</filename>
            <type>text/plain</type>
            <size>12321</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk4YWZmZWU2NzcyYTBlNDQw
NTU4ODY2ZjdmNTMwOGI2ZWU5YmUxNTEuLjQ5NWJiOWY3NjcwOTgxYWViOGRjOTYyZDFjNThhODQy
NzA0NjA2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjAtMDItMTggIEJlbiBOaGFt
ICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFVzZXItQWdlbnQgaW4gcHJlY29ubmVj
dCByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA3Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2hlbiB1c2luZyBhbiBIVFRQUyBwcm94eSwgQ0ZOZXR3b3JrIHdpbGwgbm90IHJldXNlIGEg
cHJlY29ubmVjdGVkIHNvY2tldCBpZiB0aGUgVXNlci1BZ2VudAorICAgICAgICBvbiB0aGUgcHJl
Y29ubmVjdCByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2ggdGhlIFVzZXItQWdlbnQgb2YgdGhlIGFjdHVh
bCByZXF1ZXN0CisgICAgICAgICg8cmRhcjovL3Byb2JsZW0vNTk0MzQxNjY+KS4gVG8gd29yayBh
cm91bmQgdGhpcywgdGhpcyBzZXRzIHRoZSBVc2VyLUFnZW50IG9uIHByZWNvbm5lY3QKKyAgICAg
ICAgcmVxdWVzdHMuCisKKyAgICAgICAgSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggbW92ZXMgdGhl
IHByZWNvbm5lY3QgcmVxdWVzdCBmcm9tIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0IGluIHRoZQorICAg
ICAgICBXZWJQcm9jZXNzIHRvIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3QgaW4gdGhlIFVJUHJv
Y2Vzcy4gVGhpcyBpcyBiZWNhdXNlIHRoZXJlIGNhbiBiZQorICAgICAgICBsb25nIHN5bmMgSVBD
cyB0aGF0IGxhc3QgPjEwMCBtcyB0aGF0IG9jY3VyIGJlZm9yZSBXZWJQcm9jZXNzOjpsb2FkUmVx
dWVzdCBldmVuIHN0YXJ0cywKKyAgICAgICAgZS5nLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzMTY1LgorCisgICAgICAgIEJ5IG1ha2luZyBib3RoIGNoYW5nZXMs
IHdlIHNlZSBhIH4yJSBpbXByb3ZlbWVudCBpbiBQTFQ1IHRpbWVzLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpwcmVjb25uZWN0VG8p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVj
dFRvKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRSZXF1ZXN0KToKKwogMjAyMC0wMi0xOCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyNTQ4NzMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDkxZGYzYjgwYTM2YTY3MzFjYjZmOGQzZGIzOTk0ODJm
OGNiMDE1YjUuLjEyZWU0MTYxN2NmYTAzOGExOWMwNzI1YTc4MTM0M2Y5YzY1NzA4NzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC03
OSw2ICs3OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlP
cmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU3RvcmFnZVF1b3RhTWFuYWdlci5oPgogI2luY2x1ZGUgPHd0Zi9BbGdvcml0
aG1zLmg+CkBAIC0xMzAwLDYgKzEzMDEsMzAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Rmly
c3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbkkKIH0K
ICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQoreworI2lmIEVOQUJMRShTRVJWRVJf
UFJFQ09OTkVDVCkKKyAgICBpZiAoIXVybC5pc1ZhbGlkKCkgfHwgIXVybC5wcm90b2NvbElzSW5I
VFRQRmFtaWx5KCkgfHwgU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxIb3N0T3JMb29wYmFja0lQQWRk
cmVzcyh1cmwuaG9zdCgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTmV0d29ya0xvYWRQYXJh
bWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gUmVzb3VyY2VSZXF1
ZXN0IHsgdXJsIH07CisgICAgaWYgKCF1c2VyQWdlbnQuaXNFbXB0eSgpKSB7CisgICAgICAgIC8v
IEZJWE1FOiB3ZSBhZGQgdXNlci1hZ2VudCB0byB0aGUgcHJlY29ubmVjdCByZXF1ZXN0IGJlY2F1
c2Ugb3RoZXJ3aXNlIHRoZSBwcmVjb25uZWN0CisgICAgICAgIC8vIGdldHMgdGhyb3duIGF3YXkg
YnkgQ0ZOZXR3b3JrIHdoZW4gdXNpbmcgYW4gSFRUUFMgcHJveHkgKDxyZGFyOi8vcHJvYmxlbS81
OTQzNDE2Nj4pLgorICAgICAgICBwYXJhbWV0ZXJzLnJlcXVlc3Quc2V0SFRUUFVzZXJBZ2VudCh1
c2VyQWdlbnQpOworICAgIH0KKyAgICBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5
ID0gc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CisgICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25u
ZWN0T25seSA9IFByZWNvbm5lY3RPbmx5OjpZZXM7CisKKyAgICBuZXcgUHJlY29ubmVjdFRhc2so
KnRoaXMsIHNlc3Npb25JRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW10oY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpIHsgfSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh1cmwpOworICAg
IFVOVVNFRF9QQVJBTSh1c2VyQWdlbnQpOworICAgIFVOVVNFRF9QQVJBTShzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSk7CisjZW5kaWYKK30KKwogYm9vbCBOZXR3b3JrUHJvY2Vzczo6c2Vzc2lvbklz
Q29udHJvbGxlZEJ5QXV0b21hdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fc2Vzc2lvbnNDb250cm9sbGVkQnlBdXRvbWF0aW9uLmNvbnRhaW5zKHNl
c3Npb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKaW5kZXggMmRjOTY0NmNjNWVmNzBlZGU4MDRiMjYyYTNiMzZhMzhjZDVjYzJmOC4uZDllOTE2
OWRmNjNlN2U5NDdkNGE5MzhhZTU0YmJjYjZhMzFmNDUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMjY4LDYgKzI2OCw4IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBDYWNoZVN0b3JhZ2VSb290UGF0aENhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdHJpbmcmJik+OwogICAgIHZvaWQgY2FjaGVTdG9yYWdlUm9vdFBhdGgoUEFM
OjpTZXNzaW9uSUQsIENhY2hlU3RvcmFnZVJvb3RQYXRoQ2FsbGJhY2smJik7CiAKKyAgICB2b2lk
IHByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworCiAgICAgdm9pZCBzZXRTZXNzaW9u
SXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKFBBTDo6U2Vzc2lvbklELCBib29sKTsKICAgICBib29s
IHNlc3Npb25Jc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24oUEFMOjpTZXNzaW9uSUQpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgppbmRleCA0MzM0NDdiYTE0ZTQzMDJlOTc4NTA3ZmI1MTJlOTkzMDk2Y2Vk
NGMyLi5hZjcwOGFlNGZkMzViMTI3YTZiOThiMDYxZmFmNjBlZjg2MmM3YzJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTgwLDYgKzgwLDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVu
dCkgLT4gKCkgQXN5bmMKICAgICBQcm9jZXNzRGlkUmVzdW1lKCkKIAorICAgIFByZWNvbm5lY3RU
byhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSk7CisKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAg
IENsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKICAgICBDbGVh
clVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5k
ZXggNGM4YzJlYjRlNDcyYTQxYzUwYWY1MDhlNWVlZDM2MjY4NGY5NGJhNC4uNjIwM2QwYTc0NWFm
MjQwMmM0YWZiMTM4NjlkZTFmMzRkN2I3OTg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDI5LDYg
KzE0MjksMTMgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRMb2NhbFN0b3JhZ2VEZXRh
aWxzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGwKICAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpHZXRMb2NhbFN0b3JhZ2VPcmlnaW5EZXRhaWxz
KHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpwcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdlYkNvcmU6OlN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQoreworICAgIGlmICghdXJs
LmlzVmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSB8fCBTZWN1cml0eU9y
aWdpbjo6aXNMb2NhbEhvc3RPckxvb3BiYWNrSVBBZGRyZXNzKHVybC5ob3N0KCkpKQorICAgICAg
ICByZXR1cm47CisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByZWNvbm5lY3RU
byhzZXNzaW9uSUQsIHVybCwgdXNlckFnZW50LCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSksIDAp
OworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnVwZGF0ZVByb2Nlc3NBc3NlcnRpb24o
KQogewogICAgIGlmIChwcm9jZXNzUG9vbCgpLmhhc0ZvcmVncm91bmRXZWJQcm9jZXNzZXMoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaAppbmRleCA1NzgxOGI3N2I2MjVhZmI1YWZhOWVhYTQ0YjRhYzdjNTI5YTYwNDQ1
Li5mNGI4NDViZTMyMWVlMTAyMGYzZjEzNGUyNzM4ZmRlYmI5YjIxZmZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApA
QCAtNTQsNiArNTQsNyBAQCBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBlbnVtIGNsYXNzIFNob3Vs
ZFNhbXBsZSA6IGJvb2w7CiBlbnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA6
IGJvb2w7CiBlbnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIDogYm9vbDsKK2VudW0g
Y2xhc3MgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgOiB1aW50OF90OwogY2xhc3MgU2VjdXJpdHlP
cmlnaW47CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogc3RydWN0IENsaWVudE9yaWdpbjsK
QEAgLTEwNSw2ICsxMDYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldExvY2FsU3RvcmFnZURl
dGFpbHMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPExvY2Fs
U3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6T3JpZ2luRGV0YWlscz4mJik+JiYpOwogCisgICAgdm9p
ZCBwcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9pZCBjbGVhclByZXZhbGVudFJlc291cmNlKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNTBlYmVmZDUyM2Iw
NmJlMmVjNjVlMWYyOTE2N2UxNzEzMzIzZDlkZi4uYzJjZjYyNDE3MjU5YTM3Nzc5ZDM2OTVlM2Y3
N2FlMjQ5MzAxNzBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0xNjksNiArMTY5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlRGF0YS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N0b3JlZENyZWRlbnRp
YWxzUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmFsaWRh
dGlvbkJ1YmJsZS5oPgpAQCAtMTI4OSw2ICsxMjkwLDggQEAgdm9pZCBXZWJQYWdlUHJveHk6Omxv
YWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXMKIAogICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCisg
ICAgcHJlY29ubmVjdFRvKHVybCk7CisKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9FWFRF
TlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTikKICAgICBpZiAoIXByb2Nlc3MtPmlzTGF1
bmNoaW5nKCkgfHwgIXVybC5pc0xvY2FsRmlsZSgpKQogICAgICAgICBwcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpMb2FkUmVxdWVzdChsb2FkUGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7
CkBAIC00MjI0LDYgKzQyMjcsMTkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE5ldHdvcmtSZXF1
ZXN0c0luUHJvZ3Jlc3MoYm9vbCBuZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKQogICAgIG1fcGFn
ZUxvYWRTdGF0ZS5zZXROZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKHRyYW5zYWN0aW9uLCBuZXR3
b3JrUmVxdWVzdHNJblByb2dyZXNzKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnByZWNvbm5l
Y3RUbyhjb25zdCBVUkwmIHVybCkKK3sKKyAgICBpZiAoIW1fd2Vic2l0ZURhdGFTdG9yZS0+Y29u
ZmlndXJhdGlvbigpLmFsbG93c1NlcnZlclByZWNvbm5lY3QoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgp
Lm5ldHdvcmtQcm9jZXNzKCkpIHsKKyAgICAgICAgaWYgKCFuZXR3b3JrUHJvY2Vzcy0+Y2FuU2Vu
ZE1lc3NhZ2UoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBuZXR3b3JrUHJvY2Vz
cy0+cHJlY29ubmVjdFRvKHNlc3Npb25JRCgpLCB1cmwsIHVzZXJBZ2VudCgpLCBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKTsKKyAgICB9Cit9CisKIHZvaWQgV2ViUGFnZVBy
b3h5OjpoYXNJbnNlY3VyZUNvbnRlbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpI
YXNJbnNlY3VyZUNvbnRlbnQsIFdlYkNvcmU6OlVzZWRMZWdhY3lUTFMpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIGNvbXBsZXRpb25IYW5kbGVyKApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCA2NzhmODFjMGRhZmEwYjFjNTc5YzQyNTI0ZTJiNjQ5ZDVjZWFk
NDEzLi5hYzczYTY0ZWEwODBhODAyMTdiNTJiNzEwYjMyMGFkOTY2NzQ2ZWU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTc2NSw2ICsxNzY1LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7CiAgICAgdm9pZCBzZXROZXR3b3JrUmVx
dWVzdHNJblByb2dyZXNzKGJvb2wpOwogCisgICAgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgVVJM
Jik7CisKICAgICB2b2lkIGhhc0luc2VjdXJlQ29udGVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudCwgV2ViQ29yZTo6VXNlZExlZ2FjeVRMUyk+JiYp
OwogCiAgICAgdm9pZCBkaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9uSUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCmluZGV4IGM0N2I4NzY1MzM0MjhiY2QxMGMwNTA1OWYxODNjNzc1NWZkZGY2
NGQuLmEzNTdlMjJhOGZmYmUyY2M0NDA2Y2U1ODFlZGI1YjVhZWRhYTYyZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAKQEAgLTcyNCw2ICs3MjQsMTMgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVj
dFRvKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdlYlBhZ2UKIAogICAgIE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgcGFyYW1ldGVycy5y
ZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKKyAgICBpZiAocGFyYW1ldGVycy5yZXF1ZXN0Lmh0
dHBVc2VyQWdlbnQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IHdlIGFkZCB1c2Vy
LWFnZW50IHRvIHRoZSBwcmVjb25uZWN0IHJlcXVlc3QgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHBy
ZWNvbm5lY3QKKyAgICAgICAgLy8gZ2V0cyB0aHJvd24gYXdheSBieSBDRk5ldHdvcmsgd2hlbiB1
c2luZyBhbiBIVFRQUyBwcm94eSAoPHJkYXI6Ly9wcm9ibGVtLzU5NDM0MTY2PikuCisgICAgICAg
IFN0cmluZyB3ZWJQYWdlVXNlckFnZW50ID0gd2ViUGFnZS51c2VyQWdlbnQocGFyYW1ldGVycy5y
ZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgaWYgKCF3ZWJQYWdlVXNlckFnZW50LmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIHBhcmFtZXRlcnMucmVxdWVzdC5zZXRIVFRQVXNlckFnZW50KHdlYlBhZ2VV
c2VyQWdlbnQpOworICAgIH0KICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlEID0gd2ViUGFn
ZS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCk7CiAgICAgcGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3
ZWJQYWdlLmlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFt
ZS5mcmFtZUlEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDUxNDAwMmQxOWM3ZmI3NzExOTIxODQ4NzI2MzFkMTA2MDQyOTkzMzYuLjQyZjI4
MTdhNTU0NWNlZTk5YTZlMjU5MWRkMDQzZjhiYThmNTU1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNTcyLDExICsxNTcyLDYgQEAgdm9p
ZCBXZWJQYWdlOjpsb2FkUmVxdWVzdChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQog
ewogICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyOwogCi0gICAgaWYgKGxv
YWRQYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYmICFT
ZWN1cml0eU9yaWdpbjo6aXNMb2NhbEhvc3RPckxvb3BiYWNrSVBBZGRyZXNzKGxvYWRQYXJhbWV0
ZXJzLnJlcXVlc3QudXJsKCkuaG9zdCgpKSkgewotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgdXJs
T25seVByZWNvbm5lY3RSZXF1ZXN0IHsgbG9hZFBhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9Owot
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVneSgpLnByZWNv
bm5lY3RUbyhXVEZNb3ZlKHVybE9ubHlQcmVjb25uZWN0UmVxdWVzdCksICp0aGlzLCAqbV9tYWlu
RnJhbWUsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpOwotICAgIH0KLQogICAgIG1fcGVu
ZGluZ05hdmlnYXRpb25JRCA9IGxvYWRQYXJhbWV0ZXJzLm5hdmlnYXRpb25JRDsKICAgICBtX3Bl
bmRpbmdXZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xp
Y2llcyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391095</attachid>
            <date>2020-02-18 14:49:38 -0800</date>
            <delta_ts>2020-02-18 22:44:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207777-20200218144937.patch</filename>
            <type>text/plain</type>
            <size>12099</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk4YWZmZWU2NzcyYTBlNDQw
NTU4ODY2ZjdmNTMwOGI2ZWU5YmUxNTEuLjRkNGJiOWM5YmUwMWQyNWFiOGZlYzBlMTc5NWY0YmFj
OTNjMjJjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjAtMDItMTggIEJlbiBOaGFt
ICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IFVzZXItQWdlbnQgaW4gcHJlY29ubmVj
dCByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA3Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAg
V2hlbiB1c2luZyBhbiBIVFRQUyBwcm94eSwgQ0ZOZXR3b3JrIHdpbGwgbm90IHJldXNlIGEgcHJl
Y29ubmVjdGVkIHNvY2tldCBpZiB0aGUgVXNlci1BZ2VudAorICAgICAgICBvbiB0aGUgcHJlY29u
bmVjdCByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2ggdGhlIFVzZXItQWdlbnQgb2YgdGhlIGFjdHVhbCBy
ZXF1ZXN0CisgICAgICAgICg8cmRhcjovL3Byb2JsZW0vNTk0MzQxNjY+KS4gVG8gd29yayBhcm91
bmQgdGhpcywgdGhpcyBzZXRzIHRoZSBVc2VyLUFnZW50IG9uIHByZWNvbm5lY3QKKyAgICAgICAg
cmVxdWVzdHMuCisKKyAgICAgICAgSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggbW92ZXMgdGhlIHBy
ZWNvbm5lY3QgcmVxdWVzdCBmcm9tIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0IGluIHRoZQorICAgICAg
ICBXZWJQcm9jZXNzIHRvIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3QgaW4gdGhlIFVJUHJvY2Vz
cy4gVGhpcyBpcyBiZWNhdXNlIHRoZXJlIGNhbiBiZQorICAgICAgICBsb25nIHN5bmMgSVBDcyB0
aGF0IGxhc3QgPjEwMCBtcyB0aGF0IG9jY3VyIGJlZm9yZSBXZWJQcm9jZXNzOjpsb2FkUmVxdWVz
dCBldmVuIHN0YXJ0cywKKyAgICAgICAgZS5nLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMTY1LgorCisgICAgICAgIEJ5IG1ha2luZyBib3RoIGNoYW5nZXMsIHdl
IHNlZSBhIH4yJSBpbXByb3ZlbWVudCBpbiBQTFQ1IHRpbWVzLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpwcmVjb25uZWN0VG8pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRv
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmxvYWRSZXF1ZXN0KToKKwogMjAyMC0wMi0xOCAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyNTQ4NzMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCmluZGV4IDkxZGYzYjgwYTM2YTY3MzFjYjZmOGQzZGIzOTk0ODJmOGNi
MDE1YjUuLjYyZjIzNzU3MmQyNmFjNmM3NWVmOWJkYjkyOWZjY2JlNzg1MTU5YjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC03OSw2
ICs3OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU3RvcmFnZVF1b3RhTWFuYWdlci5oPgogI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1z
Lmg+CkBAIC0xMzAwLDYgKzEzMDEsMjcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Rmlyc3RQ
YXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbkkKIH0KICNl
bmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogCit2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpwcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQoreworI2lmIEVOQUJMRShTRVJWRVJfUFJF
Q09OTkVDVCkKKyAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAgICBwYXJh
bWV0ZXJzLnJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QgeyB1cmwgfTsKKyAgICBpZiAoIXVzZXJB
Z2VudC5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IHdlIGFkZCB1c2VyLWFnZW50IHRv
IHRoZSBwcmVjb25uZWN0IHJlcXVlc3QgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHByZWNvbm5lY3QK
KyAgICAgICAgLy8gZ2V0cyB0aHJvd24gYXdheSBieSBDRk5ldHdvcmsgd2hlbiB1c2luZyBhbiBI
VFRQUyBwcm94eSAoPHJkYXI6Ly9wcm9ibGVtLzU5NDM0MTY2PikuCisgICAgICAgIHBhcmFtZXRl
cnMucmVxdWVzdC5zZXRIVFRQVXNlckFnZW50KHVzZXJBZ2VudCk7CisgICAgfQorICAgIHBhcmFt
ZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsK
KyAgICBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5ID0gUHJlY29ubmVjdE9ubHk6Olll
czsKKworICAgIG5ldyBQcmVjb25uZWN0VGFzaygqdGhpcywgc2Vzc2lvbklELCBXVEZNb3ZlKHBh
cmFtZXRlcnMpLCBbXShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgeyB9KTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKHVybCk7CisgICAgVU5VU0VEX1BBUkFNKHVzZXJBZ2VudCk7Cisg
ICAgVU5VU0VEX1BBUkFNKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKyNlbmRpZgorfQorCiBi
b29sIE5ldHdvcmtQcm9jZXNzOjpzZXNzaW9uSXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zZXNzaW9uc0NvbnRy
b2xsZWRCeUF1dG9tYXRpb24uY29udGFpbnMoc2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAyZGM5NjQ2Y2M1ZWY3MGVkZTgw
NGIyNjJhM2IzNmEzOGNkNWNjMmY4Li5kOWU5MTY5ZGY2M2U3ZTk0N2Q0YTkzOGFlNTRiYmNiNmEz
MWY0NTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCkBAIC0yNjgsNiArMjY4LDggQEAgcHVibGljOgogICAgIHVzaW5nIENhY2hlU3RvcmFnZVJv
b3RQYXRoQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT47CiAgICAg
dm9pZCBjYWNoZVN0b3JhZ2VSb290UGF0aChQQUw6OlNlc3Npb25JRCwgQ2FjaGVTdG9yYWdlUm9v
dFBhdGhDYWxsYmFjayYmKTsKIAorICAgIHZvaWQgcHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSk7CisKICAgICB2b2lkIHNldFNlc3Npb25Jc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24oUEFM
OjpTZXNzaW9uSUQsIGJvb2wpOwogICAgIGJvb2wgc2Vzc2lvbklzQ29udHJvbGxlZEJ5QXV0b21h
dGlvbihQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDQzMzQ0N2Jh
MTRlNDMwMmU5Nzg1MDdmYjUxMmU5OTMwOTZjZWQ0YzIuLmFmNzA4YWU0ZmQzNWIxMjdhNmI5OGIw
NjFmYWY2MGVmODYyYzdjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtODAsNiArODAsOCBAQCBtZXNz
YWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUHJlcGFyZVRvU3Vz
cGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAoKSBBc3luYwogICAgIFByb2Nlc3NE
aWRSZXN1bWUoKQogCisgICAgUHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VVJMIHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgQ2xlYXJQcmV2YWxlbnRSZXNvdXJjZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNl
RG9tYWluKSAtPiAoKSBBc3luYwogICAgIENsZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4p
IC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0YzhjMmViNGU0NzJhNDFjNTBhZjUwOGU1
ZWVkMzYyNjg0Zjk0YmE0Li42MjAzZDBhNzQ1YWYyNDAyYzRhZmIxMzg2OWRlMWYzNGQ3Yjc5ODY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKQEAgLTE0MjksNiArMTQyOSwxMyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmdldExvY2FsU3RvcmFnZURldGFpbHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBDb21wbAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OkdldExvY2FsU3RvcmFnZU9yaWdpbkRldGFpbHMoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnByZWNvbm5lY3RU
byhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kpCit7CisgICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8ICF1cmwucHJvdG9jb2xJ
c0luSFRUUEZhbWlseSgpIHx8IFNlY3VyaXR5T3JpZ2luOjppc0xvY2FsSG9zdE9yTG9vcGJhY2tJ
UEFkZHJlc3ModXJsLmhvc3QoKSkpCisgICAgICAgIHJldHVybjsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6UHJlY29ubmVjdFRvKHNlc3Npb25JRCwgdXJsLCB1c2VyQWdlbnQs
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KSwgMCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6dXBkYXRlUHJvY2Vzc0Fzc2VydGlvbigpCiB7CiAgICAgaWYgKHByb2Nlc3NQb29sKCku
aGFzRm9yZWdyb3VuZFdlYlByb2Nlc3NlcygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDU3ODE4Yjc3YjYy
NWFmYjVhZmE5ZWFhNDRiNGFjN2M1MjlhNjA0NDUuLmY0Yjg0NWJlMzIxZWUxMDIwZjNmMTM0ZTI3
MzhmZGViYjliMjFmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC01NCw2ICs1NCw3IEBAIGNsYXNzIFJlc291
cmNlUmVxdWVzdDsKIGVudW0gY2xhc3MgU2hvdWxkU2FtcGxlIDogYm9vbDsKIGVudW0gY2xhc3Mg
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIDogYm9vbDsKIGVudW0gY2xhc3MgU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQgOiBib29sOworZW51bSBjbGFzcyBTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSA6IHVpbnQ4X3Q7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIHN0cnVjdCBTZWN1cml0eU9yaWdp
bkRhdGE7CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwpAQCAtMTA1LDYgKzEwNiw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZ2V0TG9jYWxTdG9yYWdlRGV0YWlscyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpPcmln
aW5EZXRhaWxzPiYmKT4mJik7CiAKKyAgICB2b2lkIHByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25J
RCwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kpOworCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICB2b2lk
IGNsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsZWFyVXNl
ckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCA1MGViZWZkNTIzYjA2YmUyZWM2NWUxZjI5MTY3ZTE3MTMzMjNkOWRm
Li44NzkxMmUzOWMyMjRjOTg1OTBiNmJhNjAyZDEwODAyNGNjZGVlNTM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE2OSw2ICsxNjksNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvU2hhcmVEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9y
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CkBAIC0xMjg5LDYgKzEy
OTAsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogCiAgICAgYWRkUGxhdGZvcm1Mb2FkUGFy
YW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CiAKKyAgICBwcmVjb25uZWN0VG8odXJsKTsKKwogI2lm
IEhBVkUoU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX0FVRElUX1RP
S0VOKQogICAgIGlmICghcHJvY2Vzcy0+aXNMYXVuY2hpbmcoKSB8fCAhdXJsLmlzTG9jYWxGaWxl
KCkpCiAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRSZXF1ZXN0
KGxvYWRQYXJhbWV0ZXJzKSwgd2ViUGFnZUlEKTsKQEAgLTQyMjQsNiArNDIyNywxNSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0TmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyhib29sIG5ldHdvcmtS
ZXF1ZXN0c0luUHJvZ3Jlc3MpCiAgICAgbV9wYWdlTG9hZFN0YXRlLnNldE5ldHdvcmtSZXF1ZXN0
c0luUHJvZ3Jlc3ModHJhbnNhY3Rpb24sIG5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MpOwogfQog
Cit2b2lkIFdlYlBhZ2VQcm94eTo6cHJlY29ubmVjdFRvKGNvbnN0IFVSTCYgdXJsKQoreworICAg
IGlmICghbV93ZWJzaXRlRGF0YVN0b3JlLT5jb25maWd1cmF0aW9uKCkuYWxsb3dzU2VydmVyUHJl
Y29ubmVjdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nl
c3MgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkubmV0d29ya1Byb2Nlc3MoKSkKKyAgICAgICAg
bmV0d29ya1Byb2Nlc3MtPnByZWNvbm5lY3RUbyhzZXNzaW9uSUQoKSwgdXJsLCB1c2VyQWdlbnQo
KSwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSk7Cit9CisKIHZvaWQgV2Vi
UGFnZVByb3h5OjpoYXNJbnNlY3VyZUNvbnRlbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQsIFdlYkNvcmU6OlVzZWRMZWdhY3lUTFMpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIGNvbXBsZXRpb25IYW5kbGVyKApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2NzhmODFjMGRhZmEwYjFjNTc5YzQyNTI0ZTJiNjQ5
ZDVjZWFkNDEzLi5hYzczYTY0ZWEwODBhODAyMTdiNTJiNzEwYjMyMGFkOTY2NzQ2ZWU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTc2NSw2ICsxNzY1LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7CiAgICAgdm9pZCBzZXROZXR3
b3JrUmVxdWVzdHNJblByb2dyZXNzKGJvb2wpOwogCisgICAgdm9pZCBwcmVjb25uZWN0VG8oY29u
c3QgVVJMJik7CisKICAgICB2b2lkIGhhc0luc2VjdXJlQ29udGVudChDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudCwgV2ViQ29yZTo6VXNlZExlZ2FjeVRM
Uyk+JiYpOwogCiAgICAgdm9pZCBkaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0
aW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGM0N2I4NzY1MzM0MjhiY2QxMGMwNTA1OWYxODNjNzc1
NWZkZGY2NGQuLmEzNTdlMjJhOGZmYmUyY2M0NDA2Y2U1ODFlZGI1YjVhZWRhYTYyZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHAKQEAgLTcyNCw2ICs3MjQsMTMgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cHJl
Y29ubmVjdFRvKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdlYlBhZ2UKIAog
ICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgcGFyYW1l
dGVycy5yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKKyAgICBpZiAocGFyYW1ldGVycy5yZXF1
ZXN0Lmh0dHBVc2VyQWdlbnQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IHdlIGFk
ZCB1c2VyLWFnZW50IHRvIHRoZSBwcmVjb25uZWN0IHJlcXVlc3QgYmVjYXVzZSBvdGhlcndpc2Ug
dGhlIHByZWNvbm5lY3QKKyAgICAgICAgLy8gZ2V0cyB0aHJvd24gYXdheSBieSBDRk5ldHdvcmsg
d2hlbiB1c2luZyBhbiBIVFRQUyBwcm94eSAoPHJkYXI6Ly9wcm9ibGVtLzU5NDM0MTY2PikuCisg
ICAgICAgIFN0cmluZyB3ZWJQYWdlVXNlckFnZW50ID0gd2ViUGFnZS51c2VyQWdlbnQocGFyYW1l
dGVycy5yZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgaWYgKCF3ZWJQYWdlVXNlckFnZW50LmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIHBhcmFtZXRlcnMucmVxdWVzdC5zZXRIVFRQVXNlckFnZW50KHdl
YlBhZ2VVc2VyQWdlbnQpOworICAgIH0KICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlEID0g
d2ViUGFnZS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCk7CiAgICAgcGFyYW1ldGVycy53ZWJQYWdl
SUQgPSB3ZWJQYWdlLmlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3
ZWJGcmFtZS5mcmFtZUlEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDUxNDAwMmQxOWM3ZmI3NzExOTIxODQ4NzI2MzFkMTA2MDQyOTkzMzYu
LjQyZjI4MTdhNTU0NWNlZTk5YTZlMjU5MWRkMDQzZjhiYThmNTU1ZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNTcyLDExICsxNTcyLDYg
QEAgdm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVzdChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0
ZXJzKQogewogICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyOwogCi0gICAg
aWYgKGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgp
ICYmICFTZWN1cml0eU9yaWdpbjo6aXNMb2NhbEhvc3RPckxvb3BiYWNrSVBBZGRyZXNzKGxvYWRQ
YXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkuaG9zdCgpKSkgewotICAgICAgICBSZXNvdXJjZVJlcXVl
c3QgdXJsT25seVByZWNvbm5lY3RSZXF1ZXN0IHsgbG9hZFBhcmFtZXRlcnMucmVxdWVzdC51cmwo
KSB9OwotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVneSgp
LnByZWNvbm5lY3RUbyhXVEZNb3ZlKHVybE9ubHlQcmVjb25uZWN0UmVxdWVzdCksICp0aGlzLCAq
bV9tYWluRnJhbWUsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpOwotICAgIH0KLQogICAg
IG1fcGVuZGluZ05hdmlnYXRpb25JRCA9IGxvYWRQYXJhbWV0ZXJzLm5hdmlnYXRpb25JRDsKICAg
ICBtX3BlbmRpbmdXZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzLndlYnNp
dGVQb2xpY2llcyk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>